release 5.1.2
diff --git a/404.html b/404.html
index 94d5366..2dfe77a 100644
--- a/404.html
+++ b/404.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/404.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/404.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/about.html b/about.html
index 1881511..6033730 100644
--- a/about.html
+++ b/about.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/committers.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/committers.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/api.html b/api.html
index defd670..ca435ea 100644
--- a/api.html
+++ b/api.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/api.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/api.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/builder.html b/builder.html
index 3f5c648..c83bd96 100644
--- a/builder.html
+++ b/builder.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/builder.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/builder.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/changelog.html b/changelog.html
index a1f22cc..a00bf52 100644
--- a/changelog.html
+++ b/changelog.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/changelog.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/changelog.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/cheat-sheet.html b/cheat-sheet.html
index d3ba853..f4530ba 100644
--- a/cheat-sheet.html
+++ b/cheat-sheet.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/cheat-sheet.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/cheat-sheet.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/coding-standard.html b/coding-standard.html
index c9c5db5..fdc8a10 100644
--- a/coding-standard.html
+++ b/coding-standard.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/coding-standard.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/coding-standard.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/committer.html b/committer.html
index 3deb8ef..d24bdb5 100644
--- a/committer.html
+++ b/committer.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/committer.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/committer.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/components/builder.html b/components/builder.html
index 1015312..834afc1 100644
--- a/components/builder.html
+++ b/components/builder.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/components/download.html b/components/download.html
index 219d5ce..170e543 100644
--- a/components/download.html
+++ b/components/download.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -7,7 +7,7 @@
     document.head.insertBefore(el, document.getElementById('font-hack'));
 }
 </script><title>下载 - Apache ECharts</title><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://echarts.apache.org/zh/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
-<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://echarts.apache.org/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div class="page-info"><h1>下载</h1></div><div id="download-main" class="page-content container"><div class="d-section-version d-section"><h3 class="first">方法一:从下载的源代码或编译产物安装</h3><table id="download-table" class="table"><tr><th>版本</th><th>发布日期</th><th>从镜像网站下载源码</th><th>从 GitHub 下载编译产物</th></tr></table><div class="checksum"><p><strong>注意:</strong>如果从镜像网站下载,请检查 <a href="https://www.apache.org/dev/release-signing#sha-checksum">SHA-512</a> 并且检验确认 <a href="https://www.apache.org/dev/release-signing#openpgp">OpenPGP</a> 与 <a href="https://www.apache.org">Apache 主站</a>的签名一致。链接在上面的 Source 旁。这个 <a href="https://www.apache.org/dist/echarts/KEYS">KEYS</a> 文件包含了用于签名发布版的公钥。如果可能的话,建议使用<a href="https://www.apache.org/dev/release-signing#web-of-trust">可信任的网络(web of trust)</a>确认 KEYS 的同一性。</p><h4>使用 GPG 验证 ECharts 发布版本</h4><ol><li>从镜像网站下载 apache-echarts-X.Y.Z-src.zip</li><li>从 <a href="https://www.apache.org/dist/echarts/">Apache</a> 下载 checksum apache-echarts-X.Y.Z-src.zip.asc</li><li>下载 <a href="https://www.apache.org/dist/echarts/KEYS">ECharts KEYS</a></li><li>gpg –import KEYS</li><li>gpg –verify apache-echarts-X.Y.Z-src.zip.asc</li></ol><h4>使用 SHA-512 验证</h4><ol><li>从镜像网站下载 apache-echarts-X.Y.Z-src.zip</li><li>从 <a href="https://www.apache.org/dist/echarts/">Apache</a> 下载 checksum apache-echarts-X.Y.Z-src.zip.sha512</li><li>shasum -a 512 apache-echarts-X.Y.Z-src.zip</li></ol><h4>License</h4><p>Apache ECharts 基于 <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> 发布</p></div><h3>方法二:从 npm 安装</h3><p><code>npm install echarts</code></p><h3>方法三:选择需要的模块,在线定制下载</h3><a href="builder3.html" class="btn btn-main btn-thirdary more-btn">在线定制</a><p class="center">可自由选择所需图表和组件进行打包下载</p><h3>下载后……</h3><p><a href="./tutorial.html">5 分钟上手 ECharts</a></p></div></div><footer><div class="container"><div class="row"><div class="col-md-9"><p>Copyright © 2017-2021, The Apache Software Foundation Apache ECharts, ECharts, Apache, the Apache feather, and the Apache ECharts project logo are either registered trademarks or trademarks of the Apache Software Foundation.</p><div class="icon-panel"><a href="mailto:dev@echarts.apache.org?body=%28Thanks%20for%20using%20ECharts.%20Email%20us%20if%20you%20have%20non-technical%20problems%20using%20ECharts.%20For%20technical%20support%2C%20please%20go%20to%20https%3A//github.com/apache/echarts/issues%20.%29" class="footer-icon"><img src="https://echarts.apache.org/zh/images/icon-email.png?_v_=20200710_1"></a><a href="https://twitter.com/ApacheECharts" class="footer-icon"><img src="https://echarts.apache.org/zh/images/icon-twitter.png?_v_=20200710_1"></a><a href="https://weibo.com/echarts" class="footer-icon"><img src="https://echarts.apache.org/zh/images/icon-weibo.png?_v_=20200710_1"></a><a href="https://github.com/apache/echarts" class="footer-icon"><img src="https://echarts.apache.org/zh/images/icon-github.png?_v_=20200710_1"></a></div></div><div id="footer-icon-panel" class="col-md-3"><a href="https://www.apache.org"><img src="https://echarts.apache.org/zh/images/asf_logo.svg?_v_=20200710_1" class="footer-apache-logo"></a></div></div></div></footer></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://echarts.apache.org/zh/js/download.js?_v_=9748b37d3f"></script><script type="text/javascript">document.getElementById('nav-download').className = 'active';
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://echarts.apache.org/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div class="page-info"><h1>下载</h1></div><div id="download-main" class="page-content container"><div class="d-section-version d-section"><h3 class="first">方法一:从下载的源代码或编译产物安装</h3><table id="download-table" class="table"><tr><th>版本</th><th>发布日期</th><th>从镜像网站下载源码</th><th>从 GitHub 下载编译产物</th></tr></table><div class="checksum"><p><strong>注意:</strong>如果从镜像网站下载,请检查 <a href="https://www.apache.org/dev/release-signing#sha-checksum">SHA-512</a> 并且检验确认 <a href="https://www.apache.org/dev/release-signing#openpgp">OpenPGP</a> 与 <a href="https://www.apache.org">Apache 主站</a>的签名一致。链接在上面的 Source 旁。这个 <a href="https://www.apache.org/dist/echarts/KEYS">KEYS</a> 文件包含了用于签名发布版的公钥。如果可能的话,建议使用<a href="https://www.apache.org/dev/release-signing#web-of-trust">可信任的网络(web of trust)</a>确认 KEYS 的同一性。</p><h4>使用 GPG 验证 ECharts 发布版本</h4><ol><li>从镜像网站下载 apache-echarts-X.Y.Z-src.zip</li><li>从 <a href="https://www.apache.org/dist/echarts/">Apache</a> 下载 checksum apache-echarts-X.Y.Z-src.zip.asc</li><li>下载 <a href="https://www.apache.org/dist/echarts/KEYS">ECharts KEYS</a></li><li>gpg –import KEYS</li><li>gpg –verify apache-echarts-X.Y.Z-src.zip.asc</li></ol><h4>使用 SHA-512 验证</h4><ol><li>从镜像网站下载 apache-echarts-X.Y.Z-src.zip</li><li>从 <a href="https://www.apache.org/dist/echarts/">Apache</a> 下载 checksum apache-echarts-X.Y.Z-src.zip.sha512</li><li>shasum -a 512 apache-echarts-X.Y.Z-src.zip</li></ol><h4>License</h4><p>Apache ECharts 基于 <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> 发布</p></div><h3>方法二:从 npm 安装</h3><p><code>npm install echarts</code></p><h3>方法三:选择需要的模块,在线定制下载</h3><a href="builder3.html" class="btn btn-main btn-thirdary more-btn">在线定制</a><p class="center">可自由选择所需图表和组件进行打包下载</p><h3>下载后……</h3><p><a href="./tutorial.html">5 分钟上手 ECharts</a></p></div></div><footer><div class="container"><div class="row"><div class="col-md-9"><p>Copyright © 2017-2021, The Apache Software Foundation Apache ECharts, ECharts, Apache, the Apache feather, and the Apache ECharts project logo are either registered trademarks or trademarks of the Apache Software Foundation.</p><div class="icon-panel"><a href="mailto:dev@echarts.apache.org?body=%28Thanks%20for%20using%20ECharts.%20Email%20us%20if%20you%20have%20non-technical%20problems%20using%20ECharts.%20For%20technical%20support%2C%20please%20go%20to%20https%3A//github.com/apache/echarts/issues%20.%29" class="footer-icon"><img src="https://echarts.apache.org/zh/images/icon-email.png?_v_=20200710_1"></a><a href="https://twitter.com/ApacheECharts" class="footer-icon"><img src="https://echarts.apache.org/zh/images/icon-twitter.png?_v_=20200710_1"></a><a href="https://weibo.com/echarts" class="footer-icon"><img src="https://echarts.apache.org/zh/images/icon-weibo.png?_v_=20200710_1"></a><a href="https://github.com/apache/echarts" class="footer-icon"><img src="https://echarts.apache.org/zh/images/icon-github.png?_v_=20200710_1"></a></div></div><div id="footer-icon-panel" class="col-md-3"><a href="https://www.apache.org"><img src="https://echarts.apache.org/zh/images/asf_logo.svg?_v_=20200710_1" class="footer-apache-logo"></a></div></div></div></footer></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://echarts.apache.org/zh/js/download.js?_v_=49b697952f"></script><script type="text/javascript">document.getElementById('nav-download').className = 'active';
 
 //- $('.download-echarts').click(function (e) {
 //-     var el = document.createElement('div');
diff --git a/demo.html b/demo.html
index 411f414..aa82676 100644
--- a/demo.html
+++ b/demo.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/demo.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/demo.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/download-extension.html b/download-extension.html
index 21b8dc6..abf9837 100644
--- a/download-extension.html
+++ b/download-extension.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/download-extension.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/download-extension.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/download-map.html b/download-map.html
index 0b37bd9..dc61243 100644
--- a/download-map.html
+++ b/download-map.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/download-map.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/download-map.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/download-theme.html b/download-theme.html
index 1db2141..70ee0b0 100644
--- a/download-theme.html
+++ b/download-theme.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/download-theme.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/download-theme.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/download.html b/download.html
index b2d4d12..af6d43e 100644
--- a/download.html
+++ b/download.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/download.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/download.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/download3.html b/download3.html
index 8f59bf1..ead550f 100644
--- a/download3.html
+++ b/download3.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/download3.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/download3.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/en/404.html b/en/404.html
index 95ae635..94322c3 100644
--- a/en/404.html
+++ b/en/404.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/api.html b/en/api.html
index 036b6ae..54e7a39 100644
--- a/en/api.html
+++ b/en/api.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -19,7 +19,7 @@
 };
 if (window.EC_WWW_CDN_PAY_ROOT) {
     window.globalArgsExtra.cdnRoot = window.EC_WWW_CDN_PAY_ROOT + '/en/' + window.globalArgsExtra.baseUrl
-}</script><script type="text/javascript">window.globalArgsExtra.version = '5572398971';
+}</script><script type="text/javascript">window.globalArgsExtra.version = '047e49b373';
 echartsDoc.init('#ec-doc-main', window.globalArgsExtra);</script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
 var hm = document.createElement("script");
diff --git a/en/bar-race/assets/element-icons.9c88a535.woff b/en/bar-race/assets/element-icons.9c88a535.woff
new file mode 100644
index 0000000..c3fa4b9
--- /dev/null
+++ b/en/bar-race/assets/element-icons.9c88a535.woff
Binary files differ
diff --git a/en/bar-race/assets/element-icons.de5eb258.ttf b/en/bar-race/assets/element-icons.de5eb258.ttf
new file mode 100644
index 0000000..c0e5e06
--- /dev/null
+++ b/en/bar-race/assets/element-icons.de5eb258.ttf
Binary files differ
diff --git a/en/bar-race/assets/main.79ef808e.js b/en/bar-race/assets/main.79ef808e.js
new file mode 100644
index 0000000..3d2b9d1
--- /dev/null
+++ b/en/bar-race/assets/main.79ef808e.js
@@ -0,0 +1 @@
+import{d as e,r as a,c as l,a as s,t as n,F as o,b as t,o as u,p as r,e as d,w as c,f as p,g as m,I as i}from"./vendor.82c46759.js";var v=e({expose:[],props:{msg:{type:String,required:!0}},setup(e){const r=a(10);return(a,d)=>{const c=t("el-input-number");return u(),l(o,null,[s("h1",null,n(e.msg),1),s(c,{modelValue:r.value,"onUpdate:modelValue":d[1]||(d[1]=e=>r.value=e)},null,8,["modelValue"]),s("p",null,"Input Number: "+n(r.value),1)],64)}}});v.__scopeId="data-v-4f9cc77c";const h=c();r("data-v-09a45116");const _=s("h3",null,"Side Nav",-1);d();var E=e({expose:[],setup:e=>(e,a)=>{const n=t("el-aside"),o=t("el-main"),r=t("el-container");return u(),l(r,null,{default:h((()=>[s(n,null,{default:h((()=>[_])),_:1}),s(o,null,{default:h((()=>[s(v,{msg:e.$t("helloWorld")},null,8,["msg"])])),_:1})])),_:1})}});E.__scopeId="data-v-09a45116";const A=window.ECHARTS_WEBSITE_LANGUAGE;void 0===A&&console.error("Can't find environment variable ECHARTS_WEBSITE_LANGUAGE");const f=p({locale:A,messages:{en:{helloWorld:"Hello Apache ECharts"},zh:{helloWorld:"你好 Apache ECharts"}}}),g=m(E);g.use(i),g.use(f),g.mount("#echarts-spa-app");
diff --git a/en/bar-race/assets/main.80a6a299.css b/en/bar-race/assets/main.80a6a299.css
new file mode 100644
index 0000000..0d742fe
--- /dev/null
+++ b/en/bar-race/assets/main.80a6a299.css
@@ -0,0 +1 @@
+@charset "UTF-8";@font-face{font-family:element-icons;src:url(./element-icons.9c88a535.woff) format("woff"),url(./element-icons.de5eb258.ttf) format("truetype");font-weight:400;font-display:auto;font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:""}.el-icon-ice-cream-square:before{content:""}.el-icon-lollipop:before{content:""}.el-icon-potato-strips:before{content:""}.el-icon-milk-tea:before{content:""}.el-icon-ice-drink:before{content:""}.el-icon-ice-tea:before{content:""}.el-icon-coffee:before{content:""}.el-icon-orange:before{content:""}.el-icon-pear:before{content:""}.el-icon-apple:before{content:""}.el-icon-cherry:before{content:""}.el-icon-watermelon:before{content:""}.el-icon-grape:before{content:""}.el-icon-refrigerator:before{content:""}.el-icon-goblet-square-full:before{content:""}.el-icon-goblet-square:before{content:""}.el-icon-goblet-full:before{content:""}.el-icon-goblet:before{content:""}.el-icon-cold-drink:before{content:""}.el-icon-coffee-cup:before{content:""}.el-icon-water-cup:before{content:""}.el-icon-hot-water:before{content:""}.el-icon-ice-cream:before{content:""}.el-icon-dessert:before{content:""}.el-icon-sugar:before{content:""}.el-icon-tableware:before{content:""}.el-icon-burger:before{content:""}.el-icon-knife-fork:before{content:""}.el-icon-fork-spoon:before{content:""}.el-icon-chicken:before{content:""}.el-icon-food:before{content:""}.el-icon-dish-1:before{content:""}.el-icon-dish:before{content:""}.el-icon-moon-night:before{content:""}.el-icon-moon:before{content:""}.el-icon-cloudy-and-sunny:before{content:""}.el-icon-partly-cloudy:before{content:""}.el-icon-cloudy:before{content:""}.el-icon-sunny:before{content:""}.el-icon-sunset:before{content:""}.el-icon-sunrise-1:before{content:""}.el-icon-sunrise:before{content:""}.el-icon-heavy-rain:before{content:""}.el-icon-lightning:before{content:""}.el-icon-light-rain:before{content:""}.el-icon-wind-power:before{content:""}.el-icon-baseball:before{content:""}.el-icon-soccer:before{content:""}.el-icon-football:before{content:""}.el-icon-basketball:before{content:""}.el-icon-ship:before{content:""}.el-icon-truck:before{content:""}.el-icon-bicycle:before{content:""}.el-icon-mobile-phone:before{content:""}.el-icon-service:before{content:""}.el-icon-key:before{content:""}.el-icon-unlock:before{content:""}.el-icon-lock:before{content:""}.el-icon-watch:before{content:""}.el-icon-watch-1:before{content:""}.el-icon-timer:before{content:""}.el-icon-alarm-clock:before{content:""}.el-icon-map-location:before{content:""}.el-icon-delete-location:before{content:""}.el-icon-add-location:before{content:""}.el-icon-location-information:before{content:""}.el-icon-location-outline:before{content:""}.el-icon-location:before{content:""}.el-icon-place:before{content:""}.el-icon-discover:before{content:""}.el-icon-first-aid-kit:before{content:""}.el-icon-trophy-1:before{content:""}.el-icon-trophy:before{content:""}.el-icon-medal:before{content:""}.el-icon-medal-1:before{content:""}.el-icon-stopwatch:before{content:""}.el-icon-mic:before{content:""}.el-icon-copy-document:before{content:""}.el-icon-full-screen:before{content:""}.el-icon-switch-button:before{content:""}.el-icon-aim:before{content:""}.el-icon-crop:before{content:""}.el-icon-odometer:before{content:""}.el-icon-time:before{content:""}.el-icon-bangzhu:before{content:""}.el-icon-close-notification:before{content:""}.el-icon-microphone:before{content:""}.el-icon-turn-off-microphone:before{content:""}.el-icon-position:before{content:""}.el-icon-postcard:before{content:""}.el-icon-message:before{content:""}.el-icon-chat-line-square:before{content:""}.el-icon-chat-dot-square:before{content:""}.el-icon-chat-dot-round:before{content:""}.el-icon-chat-square:before{content:""}.el-icon-chat-line-round:before{content:""}.el-icon-chat-round:before{content:""}.el-icon-set-up:before{content:""}.el-icon-turn-off:before{content:""}.el-icon-open:before{content:""}.el-icon-connection:before{content:""}.el-icon-link:before{content:""}.el-icon-cpu:before{content:""}.el-icon-thumb:before{content:""}.el-icon-female:before{content:""}.el-icon-male:before{content:""}.el-icon-guide:before{content:""}.el-icon-news:before{content:""}.el-icon-price-tag:before{content:""}.el-icon-discount:before{content:""}.el-icon-wallet:before{content:""}.el-icon-coin:before{content:""}.el-icon-money:before{content:""}.el-icon-bank-card:before{content:""}.el-icon-box:before{content:""}.el-icon-present:before{content:""}.el-icon-sell:before{content:""}.el-icon-sold-out:before{content:""}.el-icon-shopping-bag-2:before{content:""}.el-icon-shopping-bag-1:before{content:""}.el-icon-shopping-cart-2:before{content:""}.el-icon-shopping-cart-1:before{content:""}.el-icon-shopping-cart-full:before{content:""}.el-icon-smoking:before{content:""}.el-icon-no-smoking:before{content:""}.el-icon-house:before{content:""}.el-icon-table-lamp:before{content:""}.el-icon-school:before{content:""}.el-icon-office-building:before{content:""}.el-icon-toilet-paper:before{content:""}.el-icon-notebook-2:before{content:""}.el-icon-notebook-1:before{content:""}.el-icon-files:before{content:""}.el-icon-collection:before{content:""}.el-icon-receiving:before{content:""}.el-icon-suitcase-1:before{content:""}.el-icon-suitcase:before{content:""}.el-icon-film:before{content:""}.el-icon-collection-tag:before{content:""}.el-icon-data-analysis:before{content:""}.el-icon-pie-chart:before{content:""}.el-icon-data-board:before{content:""}.el-icon-data-line:before{content:""}.el-icon-reading:before{content:""}.el-icon-magic-stick:before{content:""}.el-icon-coordinate:before{content:""}.el-icon-mouse:before{content:""}.el-icon-brush:before{content:""}.el-icon-headset:before{content:""}.el-icon-umbrella:before{content:""}.el-icon-scissors:before{content:""}.el-icon-mobile:before{content:""}.el-icon-attract:before{content:""}.el-icon-monitor:before{content:""}.el-icon-search:before{content:""}.el-icon-takeaway-box:before{content:""}.el-icon-paperclip:before{content:""}.el-icon-printer:before{content:""}.el-icon-document-add:before{content:""}.el-icon-document:before{content:""}.el-icon-document-checked:before{content:""}.el-icon-document-copy:before{content:""}.el-icon-document-delete:before{content:""}.el-icon-document-remove:before{content:""}.el-icon-tickets:before{content:""}.el-icon-folder-checked:before{content:""}.el-icon-folder-delete:before{content:""}.el-icon-folder-remove:before{content:""}.el-icon-folder-add:before{content:""}.el-icon-folder-opened:before{content:""}.el-icon-folder:before{content:""}.el-icon-edit-outline:before{content:""}.el-icon-edit:before{content:""}.el-icon-date:before{content:""}.el-icon-c-scale-to-original:before{content:""}.el-icon-view:before{content:""}.el-icon-loading:before{content:""}.el-icon-rank:before{content:""}.el-icon-sort-down:before{content:""}.el-icon-sort-up:before{content:""}.el-icon-sort:before{content:""}.el-icon-finished:before{content:""}.el-icon-refresh-left:before{content:""}.el-icon-refresh-right:before{content:""}.el-icon-refresh:before{content:""}.el-icon-video-play:before{content:""}.el-icon-video-pause:before{content:""}.el-icon-d-arrow-right:before{content:""}.el-icon-d-arrow-left:before{content:""}.el-icon-arrow-up:before{content:""}.el-icon-arrow-down:before{content:""}.el-icon-arrow-right:before{content:""}.el-icon-arrow-left:before{content:""}.el-icon-top-right:before{content:""}.el-icon-top-left:before{content:""}.el-icon-top:before{content:""}.el-icon-bottom:before{content:""}.el-icon-right:before{content:""}.el-icon-back:before{content:""}.el-icon-bottom-right:before{content:""}.el-icon-bottom-left:before{content:""}.el-icon-caret-top:before{content:""}.el-icon-caret-bottom:before{content:""}.el-icon-caret-right:before{content:""}.el-icon-caret-left:before{content:""}.el-icon-d-caret:before{content:""}.el-icon-share:before{content:""}.el-icon-menu:before{content:""}.el-icon-s-grid:before{content:""}.el-icon-s-check:before{content:""}.el-icon-s-data:before{content:""}.el-icon-s-opportunity:before{content:""}.el-icon-s-custom:before{content:""}.el-icon-s-claim:before{content:""}.el-icon-s-finance:before{content:""}.el-icon-s-comment:before{content:""}.el-icon-s-flag:before{content:""}.el-icon-s-marketing:before{content:""}.el-icon-s-shop:before{content:""}.el-icon-s-open:before{content:""}.el-icon-s-management:before{content:""}.el-icon-s-ticket:before{content:""}.el-icon-s-release:before{content:""}.el-icon-s-home:before{content:""}.el-icon-s-promotion:before{content:""}.el-icon-s-operation:before{content:""}.el-icon-s-unfold:before{content:""}.el-icon-s-fold:before{content:""}.el-icon-s-platform:before{content:""}.el-icon-s-order:before{content:""}.el-icon-s-cooperation:before{content:""}.el-icon-bell:before{content:""}.el-icon-message-solid:before{content:""}.el-icon-video-camera:before{content:""}.el-icon-video-camera-solid:before{content:""}.el-icon-camera:before{content:""}.el-icon-camera-solid:before{content:""}.el-icon-download:before{content:""}.el-icon-upload2:before{content:""}.el-icon-upload:before{content:""}.el-icon-picture-outline-round:before{content:""}.el-icon-picture-outline:before{content:""}.el-icon-picture:before{content:""}.el-icon-close:before{content:""}.el-icon-check:before{content:""}.el-icon-plus:before{content:""}.el-icon-minus:before{content:""}.el-icon-help:before{content:""}.el-icon-s-help:before{content:""}.el-icon-circle-close:before{content:""}.el-icon-circle-check:before{content:""}.el-icon-circle-plus-outline:before{content:""}.el-icon-remove-outline:before{content:""}.el-icon-zoom-out:before{content:""}.el-icon-zoom-in:before{content:""}.el-icon-error:before{content:""}.el-icon-success:before{content:""}.el-icon-circle-plus:before{content:""}.el-icon-remove:before{content:""}.el-icon-info:before{content:""}.el-icon-question:before{content:""}.el-icon-warning-outline:before{content:""}.el-icon-warning:before{content:""}.el-icon-goods:before{content:""}.el-icon-s-goods:before{content:""}.el-icon-star-off:before{content:""}.el-icon-star-on:before{content:""}.el-icon-more-outline:before{content:""}.el-icon-more:before{content:""}.el-icon-phone-outline:before{content:""}.el-icon-phone:before{content:""}.el-icon-user:before{content:""}.el-icon-user-solid:before{content:""}.el-icon-setting:before{content:""}.el-icon-s-tools:before{content:""}.el-icon-delete:before{content:""}.el-icon-delete-solid:before{content:""}.el-icon-eleme:before{content:""}.el-icon-platform-eleme:before{content:""}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}@keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination::after,.el-pagination::before{display:table;content:""}.el-pagination::after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;-webkit-box-sizing:border-box;box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;-webkit-transform:scale(.8);transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:#409eff}.el-pagination button:disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:center center no-repeat #fff;background-size:16px;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#c0c4cc;cursor:not-allowed}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .arrow.disabled{visibility:hidden}.el-pagination--small .more::before,.el-pagination--small li.more::before{line-height:22px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination--small .el-input--mini,.el-pagination--small .el-input__inner{height:22px!important;line-height:22px}.el-pagination--small .el-input__suffix,.el-pagination--small .el-input__suffix .el-input__suffix-inner,.el-pagination--small .el-input__suffix .el-input__suffix-inner i.el-select__caret{line-height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#409eff}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px}.el-pager,.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.disabled{color:#c0c4cc}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#409eff}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#409eff;color:#fff}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager,.el-pager li{vertical-align:top;margin:0;display:inline-block}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0}.el-pager .more::before{line-height:30px}.el-pager li{padding:0 4px;background:#fff;font-size:13px;min-width:35.5px;height:28px;line-height:28px;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center}.el-dialog,.el-dialog__footer{-webkit-box-sizing:border-box}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#c0c4cc}.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#409eff}.el-pager li.active{color:#409eff;cursor:default}@-webkit-keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{100%{opacity:0}}.el-dialog{position:relative;margin:0 auto 50px;background:#fff;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#409eff}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:10px 20px 20px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:modal-fade-in .3s!important;animation:modal-fade-in .3s!important}.dialog-fade-enter-active .el-dialog{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:modal-fade-out .3s;animation:modal-fade-out .3s}.dialog-fade-leave-active .el-dialog{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@-webkit-keyframes modal-fade-in{0%{opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes modal-fade-in{0%{opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}100%{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}100%{opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete__popper.el-popper[role=tooltip]{background:#fff;border:1px solid #e4e7ed;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-autocomplete__popper.el-popper[role=tooltip] .el-popper__arrow::before{border:1px solid #e4e7ed}.el-autocomplete__popper.el-popper[role=tooltip][data-popper-placement^=top] .el-popper__arrow::before{border-top-color:transparent;border-left-color:transparent}.el-autocomplete__popper.el-popper[role=tooltip][data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-autocomplete__popper.el-popper[role=tooltip][data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-autocomplete__popper.el-popper[role=tooltip][data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-autocomplete-suggestion{border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px;line-height:1}.el-dropdown__popper.el-popper[role=tooltip]{background:#fff;border:1px solid #e4e7ed;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown__popper.el-popper[role=tooltip] .el-popper__arrow::before{border:1px solid #e4e7ed}.el-dropdown__popper.el-popper[role=tooltip][data-popper-placement^=top] .el-popper__arrow::before{border-top-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[role=tooltip][data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[role=tooltip][data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-dropdown__popper.el-popper[role=tooltip][data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:0}.el-dropdown__popper .el-scrollbar__bar{z-index:11}.el-dropdown__popper .el-dropdown__list{list-style:none;padding:0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button::before{content:"";position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:rgba(255,255,255,.5)}.el-dropdown .el-dropdown__caret-button.el-button--default::before{background:rgba(220,223,230,.5)}.el-dropdown .el-dropdown__caret-button:hover::before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__list__icon{font-size:12px;margin:0 3px}.el-dropdown .el-dropdown-selfdefine{outline:0}.el-dropdown-menu{position:relative;top:0;left:0;z-index:10;padding:10px 0;margin:0;background-color:#fff;border:none;border-radius:4px;-webkit-box-shadow:none;box-shadow:none}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#606266;cursor:pointer;outline:0}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#ecf5ff;color:#66b1ff}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #ebeef5}.el-dropdown-menu__item--divided:before{content:"";height:6px;display:block;margin:0 -20px;background-color:#fff}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:#bbb}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:solid 1px #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0;background-color:#fff}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu::after,.el-menu::before{display:table;content:""}.el-breadcrumb__item:last-child .el-breadcrumb__separator,.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu::after{clear:both}.el-menu.el-menu--horizontal{border-bottom:solid 1px #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409eff;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu-item,.el-submenu__title{line-height:56px;-webkit-box-sizing:border-box;list-style:none}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409eff;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-submenu{min-width:200px}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid #e4e7ed;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup,.el-picker-panel .el-time-panel,.el-picker__popper.el-popper[role=tooltip],.el-popover.el-popper,.el-select__popper.el-popper[role=tooltip],.el-table-filter{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:none;transform:none}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu-item{height:56px;font-size:14px;color:#303133;padding:0 20px;cursor:pointer;position:relative;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409eff}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{height:56px;font-size:14px;color:#303133;padding:0 20px;cursor:pointer;position:relative;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box;white-space:nowrap}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-menu-item-group>ul,.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409eff}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.el-radio-button__inner,.el-radio-group{display:inline-block;line-height:1;vertical-align:middle}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{-webkit-transition:.2s;transition:.2s;opacity:0}.el-radio-group{font-size:0}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{white-space:nowrap;background:#fff;border:1px solid #dcdfe6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#409eff}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;-webkit-box-shadow:-1px 0 0 0 #409eff;box-shadow:-1px 0 0 0 #409eff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;-webkit-box-shadow:none;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){-webkit-box-shadow:0 0 2px 2px #409eff;box-shadow:0 0 2px 2px #409eff}.el-switch{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{-webkit-transition:.2s;transition:.2s;height:20px;font-size:14px;font-weight:500;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#409eff}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:0;border-radius:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#dcdfe6;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s;vertical-align:middle}.el-switch__core .el-switch__action{position:absolute;top:1px;left:1px;border-radius:100%;-webkit-transition:all .3s;transition:all .3s;width:16px;height:16px;background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#dcdfe6}.el-switch.is-checked .el-switch__core{border-color:#409eff;background-color:#409eff}.el-switch.is-checked .el-switch__core .el-switch__action{left:100%;margin-left:-17px;color:#409eff}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{z-index:1001;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#409eff;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after{position:absolute;right:20px;font-family:element-icons;content:"";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#409eff;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type)::after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#e4e7ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative;line-height:40px}.el-select__popper.el-popper[role=tooltip]{background:#fff;border:1px solid #e4e7ed;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-select__popper.el-popper[role=tooltip] .el-popper__arrow::before{border:1px solid #e4e7ed}.el-select__popper.el-popper[role=tooltip][data-popper-placement^=top] .el-popper__arrow::before{border-top-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[role=tooltip][data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[role=tooltip][data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[role=tooltip][data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-select:hover .el-input__inner,.el-slider__runway.disabled .el-slider__button{border-color:#c0c4cc}.el-select--mini{line-height:28px}.el-select--small{line-height:32px}.el-select--medium{line-height:36px}.el-select .el-select__tags>span{display:inline-block}.el-select .el-select__tags-text{text-overflow:ellipsis;display:inline-block;overflow-x:hidden;vertical-align:bottom}.el-select .el-input__inner{cursor:pointer;padding-right:35px;display:block}.el-select .el-input__inner:focus{border-color:#409eff}.el-select .el-input{display:block}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{-webkit-transform:rotateZ(0);transform:rotateZ(0)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg);border-radius:100%;color:#c0c4cc;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-range-editor.is-active,.el-range-editor.is-active:hover,.el-select .el-input.is-focus .el-input__inner{border-color:#409eff}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select .el-tag__close{margin-top:-2px}.el-select .el-select__tags .el-tag{-webkit-box-sizing:border-box;box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5}.el-select .el-select__tags .el-tag .el-icon-close{background-color:#c0c4cc;right:-7px;top:0;color:#fff}.el-select .el-select__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-table,.el-table__expanded-cell{background-color:#fff}.el-select .el-select__tags .el-tag .el-icon-close::before{display:block;-webkit-transform:translate(0,.5px);transform:translate(0,.5px)}.el-table{position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;font-size:12px;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table td,.el-table th,.el-table th>.cell{position:relative;-webkit-box-sizing:border-box;vertical-align:middle}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#f5f7fa}.el-table th,.el-table tr{background-color:#fff}.el-table td,.el-table th{padding:12px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;text-align:left}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table td.is-hidden>*,.el-table th.is-hidden>*{visibility:hidden}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small{font-size:12px}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini{font-size:12px}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #ebeef5}.el-table th.is-sortable{cursor:pointer}.el-table th{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table,.el-slider__button-wrapper,.el-time-panel{-moz-user-select:none;-ms-user-select:none}.el-table th>.cell{display:inline-block;box-sizing:border-box;width:100%}.el-table th>.cell.highlight{color:#409eff}.el-table th.required>div::before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{-webkit-box-sizing:border-box;box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-left:10px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #ebeef5}.el-table--border::after,.el-table--group::after,.el-table::before{content:"";position:absolute;background-color:#ebeef5;z-index:1}.el-table--border::after,.el-table--group::after{top:0;right:0;width:1px;height:100%}.el-table::before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border td,.el-table--border th,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ebeef5}.el-table--border td:first-child .cell,.el-table--border th:first-child .cell{padding-left:10px}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #ebeef5;border-bottom-width:1px}.el-table--border th,.el-table__fixed-right-patch{border-bottom:1px solid #ebeef5}.el-table--hidden{visibility:hidden}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;-webkit-box-shadow:0 0 10px rgba(0,0,0,.12);box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right::before,.el-table__fixed::before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#ebeef5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #ebeef5;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #ebeef5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{-webkit-box-shadow:none;box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ebeef5}.el-table .caret-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:-5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409eff}.el-table .descending .sort-caret.descending{border-top-color:#409eff}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td{background-color:#ecf5ff}.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#f5f7fa}.el-table__body tr.current-row>td{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #ebeef5;z-index:10}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;vertical-align:middle;-webkit-transform:scale(.75);transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #ebeef5;border-radius:2px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409eff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-date-table td.in-range div,.el-date-table td.in-range div:hover,.el-date-table.is-week-mode .el-date-table__row.current div,.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#f2f6fc}.el-table-filter__bottom button:hover{color:#409eff}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td{width:32px;height:30px;padding:4px 0;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td div{height:30px;padding:3px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#c0c4cc}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#409eff;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#409eff}.el-date-table td.current:not(.disabled) span{color:#fff;background-color:#409eff}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#409eff}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#c0c4cc}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#f2f6fc;border-radius:15px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#409eff;color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-month-table,.el-year-table{font-size:12px;border-collapse:collapse}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:solid 1px #ebeef5}.el-month-table{margin:-1px}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-month-table td.today .cell{color:#409eff;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-month-table td.disabled .cell:hover{color:#c0c4cc}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#606266;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#409eff}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:#409eff}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#409eff}.el-year-table{margin:-1px}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#409eff;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-year-table td.disabled .cell:hover{color:#c0c4cc}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#409eff}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{-webkit-box-sizing:border-box;box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px #ebeef5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#409eff}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#409eff;font-weight:700}.time-select-item.disabled{color:#e4e7ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.el-picker__popper.el-popper[role=tooltip]{background:#fff;border:1px solid #e4e7ed;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-picker__popper.el-popper[role=tooltip] .el-popper__arrow::before{border:1px solid #e4e7ed}.el-picker__popper.el-popper[role=tooltip][data-popper-placement^=top] .el-popper__arrow::before{border-top-color:transparent;border-left-color:transparent}.el-picker__popper.el-popper[role=tooltip][data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[role=tooltip][data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-picker__popper.el-popper[role=tooltip][data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#c0c4cc;float:left;line-height:32px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:100%;margin:0;padding:0;width:39%;text-align:center;font-size:14px;color:#606266}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-moz-placeholder{color:#c0c4cc}.el-date-editor .el-range-input:-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::placeholder{color:#c0c4cc}.el-date-editor .el-range-separator{display:inline-block;height:100%;padding:0 5px;margin:0;text-align:center;line-height:32px;font-size:14px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#c0c4cc;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label,.el-range-editor--medium{line-height:36px}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small{line-height:32px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini{line-height:28px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#e4e7ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-moz-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input:-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::placeholder{color:#c0c4cc}.el-range-editor.is-disabled .el-range-separator{color:#c0c4cc}.el-picker-panel{position:relative;color:#606266;background:#fff;border-radius:4px;line-height:30px}.el-picker-panel .el-time-panel{margin:5px 0;border:1px solid #e4e7ed;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-picker-panel__body-wrapper::after,.el-picker-panel__body::after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:#409eff}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#409eff}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#409eff}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__wrapper.is-arrow{-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{-webkit-transform:translateY(-32px);transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#409eff}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list::after,.el-time-spinner__list::before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#c0c4cc;cursor:not-allowed}.el-time-panel{border-radius:2px;position:relative;width:180px;left:0;z-index:1000;-webkit-user-select:none;user-select:none;-webkit-box-sizing:content-box;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content::after,.el-time-panel__content::before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.el-time-panel__content::after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content::before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds::after{left:calc(100% / 3 * 2)}.el-time-panel__content.has-seconds::before{padding-left:calc(100% / 3)}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#409eff}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.el-time-range-picker__cell{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-popover__title,.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-time-range-picker__body{border-radius:2px;border:1px solid #e4e7ed}.el-popover.el-popper{background:#fff;min-width:150px;border-radius:4px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover.el-popper--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{100%{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #ebeef5;font-size:18px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-overlay.is-message-box{text-align:center}.el-overlay.is-message-box::after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus,.el-message-box__input div.invalid>input,.el-message-box__input div.invalid>input:focus{border-color:#f56c6c}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409eff}.el-message-box__content{padding:10px 15px;color:#606266;font-size:14px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__status{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:24px!important}.el-message-box__status::before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67c23a}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#e6a23c}.el-message-box__status.el-icon-error{color:#f56c6c}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#f56c6c;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.fade-in-linear-enter-active .el-message-box{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.fade-in-linear-leave-active .el-message-box{animation:msgbox-fade-in .3s reverse}@-webkit-keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb::after,.el-breadcrumb::before{display:table;content:""}.el-breadcrumb::after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:#409eff;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:#606266;cursor:text}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content,.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-form-item{margin-bottom:22px}.el-form-item::after,.el-form-item::before{display:table;content:""}.el-form-item::after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content::after,.el-form-item__content::before{display:table;content:""}.el-form-item__content::after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409eff;z-index:1;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.el-tabs__new-tab .el-icon-plus{-webkit-transform:scale(.8,.8);transform:scale(.8,.8)}.el-tabs__new-tab:hover{color:#409eff}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed;z-index:1}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap::after,.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap::after{content:none}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{-webkit-transform:scale(.9);transform:scale(.9);display:inline-block}.el-tabs--card>.el-tabs__header .el-tabs__active-bar,.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#409eff}.el-tabs__item:hover{color:#409eff;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close{width:14px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409eff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409eff}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-cascader-menu:last-child .el-cascader-node,.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{-webkit-transform:rotateZ(90deg);transform:rotateZ(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left::after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left::after,.el-tabs--left .el-tabs__nav-wrap.is-right::after,.el-tabs--right .el-tabs__nav-wrap.is-left::after,.el-tabs--right .el-tabs__nav-wrap.is-right::after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-button-group>.el-button:not(:last-child),.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #e4e7ed;border-bottom:none;border-top:1px solid #e4e7ed;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #e4e7ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #e4e7ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right::after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #e4e7ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #e4e7ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}.el-tree{position:relative;cursor:default;background:#fff;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#909399;font-size:14px}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#409eff}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#409eff;color:#fff}.el-tree-node__content:hover,.el-upload-list__item:hover{background-color:#f5f7fa}.el-tree-node__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#c0c4cc;font-size:12px;-webkit-transform:rotate(0);transform:rotate(0);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#c0c4cc}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-alert,.el-notification{display:-ms-flexbox;display:-webkit-box}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#f0f7ff}.el-alert{width:100%;padding:8px 16px;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .2s;transition:opacity .2s}.el-notification,.el-slider__button{-webkit-box-sizing:border-box;background-color:#fff}.el-alert.is-light .el-alert__closebtn{color:#c0c4cc}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#fff}.el-alert.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-alert--success.is-light{background-color:#f0f9eb;color:#67c23a}.el-alert--success.is-light .el-alert__description{color:#67c23a}.el-alert--success.is-dark{background-color:#67c23a;color:#fff}.el-alert--info.is-light{background-color:#f4f4f5;color:#909399}.el-alert--info.is-dark{background-color:#909399;color:#fff}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning.is-light{background-color:#fdf6ec;color:#e6a23c}.el-alert--warning.is-light .el-alert__description{color:#e6a23c}.el-alert--warning.is-dark{background-color:#e6a23c;color:#fff}.el-alert--error.is-light{background-color:#fef0f0;color:#f56c6c}.el-alert--error.is-light .el-alert__description{color:#f56c6c}.el-alert--error.is-dark{background-color:#f56c6c;color:#fff}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{font-size:12px;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert-fade-enter-from,.el-alert-fade-leave-active,.el-loading-fade-enter-from,.el-loading-fade-leave-to,.el-notification-fade-leave-to,.el-upload iframe{opacity:0}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-notification{display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;box-sizing:border-box;border:1px solid #ebeef5;position:fixed;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;overflow-wrap:anywhere;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;line-height:24px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:24px;margin:6px 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#67c23a}.el-notification .el-icon-error{color:#f56c6c}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#e6a23c}.el-notification-fade-enter-from.right{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.el-notification-fade-enter-from.left{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#409eff}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #dcdfe6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #dcdfe6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#e4e7ed;color:#e4e7ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#e4e7ed;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.9);transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #dcdfe6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #dcdfe6;border-radius:0 0 4px}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow::after{content:" ";border-width:5px}.el-button-group::after,.el-button-group::before,.el-button.is-loading:before,.el-checkbox__inner::after,.el-checkbox__input.is-indeterminate .el-checkbox__inner::before,.el-color-dropdown__main-wrapper::after,.el-input__icon:after,.el-link.is-underline:hover:after,.el-page-header__left::after,.el-progress-bar__inner::after,.el-radio__inner::after,.el-row::after,.el-row::before,.el-slider::after,.el-slider::before,.el-slider__button-wrapper::after,.el-step.is-simple .el-step__arrow::after,.el-step.is-simple .el-step__arrow::before,.el-transfer-panel .el-transfer-panel__footer::after,.el-upload-cover::after,.el-upload-list--picture-card .el-upload-list__item-actions::after{content:""}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow::after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow::after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow::after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow::after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow::after{border-right-color:#fff}.el-slider::after,.el-slider::before{display:table}.el-slider::after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#e4e7ed;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{-webkit-transform:scale(1);transform:scale(1);cursor:not-allowed}.el-slider__button-wrapper,.el-slider__stop{-webkit-transform:translateX(-50%);position:absolute}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#409eff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;z-index:1;top:-15px;transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;user-select:none;line-height:normal;outline:0}.el-image-viewer__btn,.el-slider__button,.el-step__icon-inner{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-slider__button-wrapper::after{display:inline-block;height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{display:inline-block;width:20px;height:20px;vertical-align:middle;border:2px solid #409eff;border-radius:50%;box-sizing:border-box;-webkit-transition:.2s;transition:.2s;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{height:6px;width:6px;border-radius:100%;background-color:#fff;transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:14px;color:#909399;margin-top:15px}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px;-webkit-transform:translateY(50%);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{-webkit-transform:translateY(50%);transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #dcdfe6;line-height:20px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#c0c4cc}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#409eff}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;-webkit-transform:translateY(50%);transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:rgba(255,255,255,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-col-pull-0,.el-col-pull-1,.el-col-pull-10,.el-col-pull-11,.el-col-pull-12,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-2,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-push-0,.el-col-push-1,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-2,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-row,.el-upload-dragger,.el-upload-list__item{position:relative}.el-loading-spinner .el-loading-text{color:#409eff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409eff;stroke-linecap:round}.el-loading-spinner i{color:#409eff}@-webkit-keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-sizing:border-box;box-sizing:border-box}.el-row::after,.el-row::before{display:table}.el-row::after{clear:both}.el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}[class*=el-col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-0{max-width:0%;-webkit-box-flex:0;-ms-flex:0 0 0%;flex:0 0 0%}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{max-width:4.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 4.1666666667%;flex:0 0 4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{right:4.1666666667%}.el-col-push-1{left:4.1666666667%}.el-col-2{max-width:8.3333333333%;-webkit-box-flex:0;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{right:8.3333333333%}.el-col-push-2{left:8.3333333333%}.el-col-3{max-width:12.5%;-webkit-box-flex:0;-ms-flex:0 0 12.5%;flex:0 0 12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{max-width:16.6666666667%;-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{right:16.6666666667%}.el-col-push-4{left:16.6666666667%}.el-col-5{max-width:20.8333333333%;-webkit-box-flex:0;-ms-flex:0 0 20.8333333333%;flex:0 0 20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{right:20.8333333333%}.el-col-push-5{left:20.8333333333%}.el-col-6{max-width:25%;-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{max-width:29.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 29.1666666667%;flex:0 0 29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{right:29.1666666667%}.el-col-push-7{left:29.1666666667%}.el-col-8{max-width:33.3333333333%;-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{right:33.3333333333%}.el-col-push-8{left:33.3333333333%}.el-col-9{max-width:37.5%;-webkit-box-flex:0;-ms-flex:0 0 37.5%;flex:0 0 37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{max-width:41.6666666667%;-webkit-box-flex:0;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{right:41.6666666667%}.el-col-push-10{left:41.6666666667%}.el-col-11{max-width:45.8333333333%;-webkit-box-flex:0;-ms-flex:0 0 45.8333333333%;flex:0 0 45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{right:45.8333333333%}.el-col-push-11{left:45.8333333333%}.el-col-12{max-width:50%;-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{right:50%}.el-col-push-12{left:50%}.el-col-13{max-width:54.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 54.1666666667%;flex:0 0 54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{right:54.1666666667%}.el-col-push-13{left:54.1666666667%}.el-col-14{max-width:58.3333333333%;-webkit-box-flex:0;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{right:58.3333333333%}.el-col-push-14{left:58.3333333333%}.el-col-15{max-width:62.5%;-webkit-box-flex:0;-ms-flex:0 0 62.5%;flex:0 0 62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{max-width:66.6666666667%;-webkit-box-flex:0;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{right:66.6666666667%}.el-col-push-16{left:66.6666666667%}.el-col-17{max-width:70.8333333333%;-webkit-box-flex:0;-ms-flex:0 0 70.8333333333%;flex:0 0 70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{right:70.8333333333%}.el-col-push-17{left:70.8333333333%}.el-col-18{max-width:75%;-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{max-width:79.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 79.1666666667%;flex:0 0 79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{right:79.1666666667%}.el-col-push-19{left:79.1666666667%}.el-col-20{max-width:83.3333333333%;-webkit-box-flex:0;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{right:83.3333333333%}.el-col-push-20{left:83.3333333333%}.el-col-21{max-width:87.5%;-webkit-box-flex:0;-ms-flex:0 0 87.5%;flex:0 0 87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{max-width:91.6666666667%;-webkit-box-flex:0;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{right:91.6666666667%}.el-col-push-22{left:91.6666666667%}.el-col-23{max-width:95.8333333333%;-webkit-box-flex:0;-ms-flex:0 0 95.8333333333%;flex:0 0 95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{right:95.8333333333%}.el-col-push-23{left:95.8333333333%}.el-col-24{max-width:100%;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:768px){.el-col-xs-0,.el-col-xs-0.is-guttered{display:none}.el-col-xs-0{max-width:0%;-webkit-box-flex:0;-ms-flex:0 0 0%;flex:0 0 0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{display:block;max-width:4.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 4.1666666667%;flex:0 0 4.1666666667%}.el-col-xs-2,.el-col-xs-3{display:block;-webkit-box-flex:0}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{max-width:8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{max-width:12.5%;-ms-flex:0 0 12.5%;flex:0 0 12.5%}.el-col-xs-4,.el-col-xs-5{display:block;-webkit-box-flex:0}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{max-width:16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{max-width:20.8333333333%;-ms-flex:0 0 20.8333333333%;flex:0 0 20.8333333333%}.el-col-xs-6,.el-col-xs-7{display:block;-webkit-box-flex:0}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{max-width:29.1666666667%;-ms-flex:0 0 29.1666666667%;flex:0 0 29.1666666667%}.el-col-xs-8,.el-col-xs-9{display:block;-webkit-box-flex:0}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{max-width:33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{max-width:37.5%;-ms-flex:0 0 37.5%;flex:0 0 37.5%}.el-col-xs-10,.el-col-xs-11{display:block;-webkit-box-flex:0}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{max-width:41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{max-width:45.8333333333%;-ms-flex:0 0 45.8333333333%;flex:0 0 45.8333333333%}.el-col-xs-12,.el-col-xs-13{display:block;-webkit-box-flex:0}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{max-width:54.1666666667%;-ms-flex:0 0 54.1666666667%;flex:0 0 54.1666666667%}.el-col-xs-14,.el-col-xs-15{display:block;-webkit-box-flex:0}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{max-width:58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{max-width:62.5%;-ms-flex:0 0 62.5%;flex:0 0 62.5%}.el-col-xs-16,.el-col-xs-17{display:block;-webkit-box-flex:0}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{max-width:66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{max-width:70.8333333333%;-ms-flex:0 0 70.8333333333%;flex:0 0 70.8333333333%}.el-col-xs-18,.el-col-xs-19{display:block;-webkit-box-flex:0}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{max-width:79.1666666667%;-ms-flex:0 0 79.1666666667%;flex:0 0 79.1666666667%}.el-col-xs-20,.el-col-xs-21{display:block;-webkit-box-flex:0}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{max-width:83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{max-width:87.5%;-ms-flex:0 0 87.5%;flex:0 0 87.5%}.el-col-xs-22,.el-col-xs-23{-webkit-box-flex:0;display:block}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{max-width:91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{max-width:95.8333333333%;-ms-flex:0 0 95.8333333333%;flex:0 0 95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{display:block;max-width:100%;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0,.el-col-sm-0.is-guttered{display:none}.el-col-sm-0{max-width:0%;-webkit-box-flex:0;-ms-flex:0 0 0%;flex:0 0 0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{display:block;max-width:4.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 4.1666666667%;flex:0 0 4.1666666667%}.el-col-sm-2,.el-col-sm-3{display:block;-webkit-box-flex:0}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{max-width:8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{max-width:12.5%;-ms-flex:0 0 12.5%;flex:0 0 12.5%}.el-col-sm-4,.el-col-sm-5{display:block;-webkit-box-flex:0}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{max-width:16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{max-width:20.8333333333%;-ms-flex:0 0 20.8333333333%;flex:0 0 20.8333333333%}.el-col-sm-6,.el-col-sm-7{display:block;-webkit-box-flex:0}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{max-width:29.1666666667%;-ms-flex:0 0 29.1666666667%;flex:0 0 29.1666666667%}.el-col-sm-8,.el-col-sm-9{display:block;-webkit-box-flex:0}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{max-width:33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{max-width:37.5%;-ms-flex:0 0 37.5%;flex:0 0 37.5%}.el-col-sm-10,.el-col-sm-11{display:block;-webkit-box-flex:0}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{max-width:41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{max-width:45.8333333333%;-ms-flex:0 0 45.8333333333%;flex:0 0 45.8333333333%}.el-col-sm-12,.el-col-sm-13{display:block;-webkit-box-flex:0}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{max-width:54.1666666667%;-ms-flex:0 0 54.1666666667%;flex:0 0 54.1666666667%}.el-col-sm-14,.el-col-sm-15{display:block;-webkit-box-flex:0}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{max-width:58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{max-width:62.5%;-ms-flex:0 0 62.5%;flex:0 0 62.5%}.el-col-sm-16,.el-col-sm-17{display:block;-webkit-box-flex:0}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{max-width:66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{max-width:70.8333333333%;-ms-flex:0 0 70.8333333333%;flex:0 0 70.8333333333%}.el-col-sm-18,.el-col-sm-19{display:block;-webkit-box-flex:0}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{max-width:79.1666666667%;-ms-flex:0 0 79.1666666667%;flex:0 0 79.1666666667%}.el-col-sm-20,.el-col-sm-21{display:block;-webkit-box-flex:0}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{max-width:83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{max-width:87.5%;-ms-flex:0 0 87.5%;flex:0 0 87.5%}.el-col-sm-22,.el-col-sm-23{-webkit-box-flex:0;display:block}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{max-width:91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{max-width:95.8333333333%;-ms-flex:0 0 95.8333333333%;flex:0 0 95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{display:block;max-width:100%;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0,.el-col-md-0.is-guttered{display:none}.el-col-md-0{max-width:0%;-webkit-box-flex:0;-ms-flex:0 0 0%;flex:0 0 0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{display:block;max-width:4.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 4.1666666667%;flex:0 0 4.1666666667%}.el-col-md-2,.el-col-md-3{display:block;-webkit-box-flex:0}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{max-width:8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{max-width:12.5%;-ms-flex:0 0 12.5%;flex:0 0 12.5%}.el-col-md-4,.el-col-md-5{display:block;-webkit-box-flex:0}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{max-width:16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{max-width:20.8333333333%;-ms-flex:0 0 20.8333333333%;flex:0 0 20.8333333333%}.el-col-md-6,.el-col-md-7{display:block;-webkit-box-flex:0}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{max-width:29.1666666667%;-ms-flex:0 0 29.1666666667%;flex:0 0 29.1666666667%}.el-col-md-8,.el-col-md-9{display:block;-webkit-box-flex:0}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{max-width:33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{max-width:37.5%;-ms-flex:0 0 37.5%;flex:0 0 37.5%}.el-col-md-10,.el-col-md-11{display:block;-webkit-box-flex:0}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{max-width:41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{max-width:45.8333333333%;-ms-flex:0 0 45.8333333333%;flex:0 0 45.8333333333%}.el-col-md-12,.el-col-md-13{display:block;-webkit-box-flex:0}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{max-width:54.1666666667%;-ms-flex:0 0 54.1666666667%;flex:0 0 54.1666666667%}.el-col-md-14,.el-col-md-15{display:block;-webkit-box-flex:0}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{max-width:58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{max-width:62.5%;-ms-flex:0 0 62.5%;flex:0 0 62.5%}.el-col-md-16,.el-col-md-17{display:block;-webkit-box-flex:0}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{max-width:66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{max-width:70.8333333333%;-ms-flex:0 0 70.8333333333%;flex:0 0 70.8333333333%}.el-col-md-18,.el-col-md-19{display:block;-webkit-box-flex:0}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{max-width:79.1666666667%;-ms-flex:0 0 79.1666666667%;flex:0 0 79.1666666667%}.el-col-md-20,.el-col-md-21{display:block;-webkit-box-flex:0}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{max-width:83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{max-width:87.5%;-ms-flex:0 0 87.5%;flex:0 0 87.5%}.el-col-md-22,.el-col-md-23{-webkit-box-flex:0;display:block}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{max-width:91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{max-width:95.8333333333%;-ms-flex:0 0 95.8333333333%;flex:0 0 95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{display:block;max-width:100%;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0,.el-col-lg-0.is-guttered{display:none}.el-col-lg-0{max-width:0%;-webkit-box-flex:0;-ms-flex:0 0 0%;flex:0 0 0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{display:block;max-width:4.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 4.1666666667%;flex:0 0 4.1666666667%}.el-col-lg-2,.el-col-lg-3{display:block;-webkit-box-flex:0}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{max-width:8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{max-width:12.5%;-ms-flex:0 0 12.5%;flex:0 0 12.5%}.el-col-lg-4,.el-col-lg-5{display:block;-webkit-box-flex:0}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{max-width:16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{max-width:20.8333333333%;-ms-flex:0 0 20.8333333333%;flex:0 0 20.8333333333%}.el-col-lg-6,.el-col-lg-7{display:block;-webkit-box-flex:0}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{max-width:29.1666666667%;-ms-flex:0 0 29.1666666667%;flex:0 0 29.1666666667%}.el-col-lg-8,.el-col-lg-9{display:block;-webkit-box-flex:0}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{max-width:33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{max-width:37.5%;-ms-flex:0 0 37.5%;flex:0 0 37.5%}.el-col-lg-10,.el-col-lg-11{display:block;-webkit-box-flex:0}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{max-width:41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{max-width:45.8333333333%;-ms-flex:0 0 45.8333333333%;flex:0 0 45.8333333333%}.el-col-lg-12,.el-col-lg-13{display:block;-webkit-box-flex:0}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{max-width:54.1666666667%;-ms-flex:0 0 54.1666666667%;flex:0 0 54.1666666667%}.el-col-lg-14,.el-col-lg-15{display:block;-webkit-box-flex:0}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{max-width:58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{max-width:62.5%;-ms-flex:0 0 62.5%;flex:0 0 62.5%}.el-col-lg-16,.el-col-lg-17{display:block;-webkit-box-flex:0}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{max-width:66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{max-width:70.8333333333%;-ms-flex:0 0 70.8333333333%;flex:0 0 70.8333333333%}.el-col-lg-18,.el-col-lg-19{display:block;-webkit-box-flex:0}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{max-width:79.1666666667%;-ms-flex:0 0 79.1666666667%;flex:0 0 79.1666666667%}.el-col-lg-20,.el-col-lg-21{display:block;-webkit-box-flex:0}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{max-width:83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{max-width:87.5%;-ms-flex:0 0 87.5%;flex:0 0 87.5%}.el-col-lg-22,.el-col-lg-23{-webkit-box-flex:0;display:block}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{max-width:91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{max-width:95.8333333333%;-ms-flex:0 0 95.8333333333%;flex:0 0 95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{display:block;max-width:100%;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0,.el-col-xl-0.is-guttered{display:none}.el-col-xl-0{max-width:0%;-webkit-box-flex:0;-ms-flex:0 0 0%;flex:0 0 0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{display:block;max-width:4.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 4.1666666667%;flex:0 0 4.1666666667%}.el-col-xl-2,.el-col-xl-3{display:block;-webkit-box-flex:0}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{max-width:8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{max-width:12.5%;-ms-flex:0 0 12.5%;flex:0 0 12.5%}.el-col-xl-4,.el-col-xl-5{display:block;-webkit-box-flex:0}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{max-width:16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{max-width:20.8333333333%;-ms-flex:0 0 20.8333333333%;flex:0 0 20.8333333333%}.el-col-xl-6,.el-col-xl-7{display:block;-webkit-box-flex:0}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{max-width:29.1666666667%;-ms-flex:0 0 29.1666666667%;flex:0 0 29.1666666667%}.el-col-xl-8,.el-col-xl-9{display:block;-webkit-box-flex:0}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{max-width:33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{max-width:37.5%;-ms-flex:0 0 37.5%;flex:0 0 37.5%}.el-col-xl-10,.el-col-xl-11{display:block;-webkit-box-flex:0}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{max-width:41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{max-width:45.8333333333%;-ms-flex:0 0 45.8333333333%;flex:0 0 45.8333333333%}.el-col-xl-12,.el-col-xl-13{display:block;-webkit-box-flex:0}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{max-width:54.1666666667%;-ms-flex:0 0 54.1666666667%;flex:0 0 54.1666666667%}.el-col-xl-14,.el-col-xl-15{display:block;-webkit-box-flex:0}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{max-width:58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{max-width:62.5%;-ms-flex:0 0 62.5%;flex:0 0 62.5%}.el-col-xl-16,.el-col-xl-17{display:block;-webkit-box-flex:0}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{max-width:66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{max-width:70.8333333333%;-ms-flex:0 0 70.8333333333%;flex:0 0 70.8333333333%}.el-col-xl-18,.el-col-xl-19{display:block;-webkit-box-flex:0}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{max-width:79.1666666667%;-ms-flex:0 0 79.1666666667%;flex:0 0 79.1666666667%}.el-col-xl-20,.el-col-xl-21{display:block;-webkit-box-flex:0}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{max-width:83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{max-width:87.5%;-ms-flex:0 0 87.5%;flex:0 0 87.5%}.el-col-xl-22,.el-col-xl-23{-webkit-box-flex:0;display:block}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{max-width:91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{max-width:95.8333333333%;-ms-flex:0 0 95.8333333333%;flex:0 0 95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{display:block;max-width:100%;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}@-webkit-keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}100%{left:100%}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;cursor:pointer;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#409eff;color:#409eff}.el-upload:focus .el-upload-dragger{border-color:#409eff}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:360px;height:180px;text-align:center;cursor:pointer;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#c0c4cc;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dcdfe6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#409eff;font-style:normal}.el-upload-dragger:hover{border-color:#409eff}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #409eff}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{-webkit-transition:all .5s cubic-bezier(.55,0,.1,1);transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#67c23a}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#409eff}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#409eff;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;-webkit-transition:color .3s;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#409eff}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);-webkit-transition:opacity .3s;transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions::after{display:inline-block;height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:0 0;-webkit-box-shadow:none;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px;background-color:#fff}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 1px 1px #ccc;box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover::after{display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn span{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{-webkit-transform:translateY(-13px);transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-progress__text{font-size:14px;color:#606266;margin-left:5px;min-width:50px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67c23a}.el-progress.is-success .el-progress__text{color:#67c23a}.el-progress.is-warning .el-progress-bar__inner{background-color:#e6a23c}.el-badge__content,.el-progress.is-exception .el-progress-bar__inner{background-color:#f56c6c}.el-progress.is-warning .el-progress__text{color:#e6a23c}.el-progress.is-exception .el-progress__text{color:#f56c6c}.el-progress-bar{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__header,.el-message{-webkit-box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#ebeef5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#409eff;text-align:right;border-radius:100px;line-height:1;white-space:nowrap;-webkit-transition:width .6s ease;transition:width .6s ease}.el-progress-bar__inner::after{display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}100%{left:100%}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;box-sizing:border-box;border-radius:4px;border-width:1px;border-style:solid;border-color:#ebeef5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,transform .4s,top .4s;transition:opacity .3s,transform .4s,top .4s,-webkit-transform .4s;overflow:hidden;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:focus{outline-width:0}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#409eff}.el-badge__content--success{background-color:#67c23a}.el-badge__content--warning{background-color:#e6a23c}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#f56c6c}.el-card{border-radius:4px;border:1px solid #ebeef5;background-color:#fff;overflow:hidden;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #ebeef5;box-sizing:border-box}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate:active,.el-rate:focus{outline-width:0}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#c0c4cc;-webkit-transition:.3s;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{-webkit-transform:scale(1.15);transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-step.is-vertical,.el-steps{display:-webkit-box;display:-ms-flexbox}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#f5f7fa}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column}.el-step{position:relative;-ms-flex-negative:1;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{-ms-flex-preferred-size:auto!important;flex-basis:auto!important;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.el-step__head.is-success{color:#67c23a;border-color:#67c23a}.el-step__head.is-error{color:#f56c6c;border-color:#f56c6c}.el-step__head.is-finish{color:#409eff;border-color:#409eff}.el-step__icon{position:relative;z-index:1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:24px;height:24px;font-size:14px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#fff;-webkit-transition:.15s ease-out;transition:.15s ease-out}.el-step.is-horizontal,.el-step__icon-inner{display:inline-block}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{-webkit-transform:translateY(1px);transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#c0c4cc}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;-webkit-transition:.15s ease-out;transition:.15s ease-out;-webkit-box-sizing:border-box;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#c0c4cc}.el-step__title.is-success{color:#67c23a}.el-step__title.is-error{color:#f56c6c}.el-step__title.is-finish{color:#409eff}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#c0c4cc}.el-step__description.is-success{color:#67c23a}.el-step__description.is-error{color:#f56c6c}.el-step__description.is-finish{color:#409eff}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{-webkit-transform:scale(.8) translateY(1px);transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-step.is-simple .el-step__arrow::after,.el-step.is-simple .el-step__arrow::before{display:inline-block;position:absolute;height:15px;width:1px;background:#c0c4cc}.el-step.is-simple .el-step__arrow::before{-webkit-transform:rotate(-45deg) translateY(-4px);transform:rotate(-45deg) translateY(-4px);-webkit-transform-origin:0 0;transform-origin:0 0}.el-step.is-simple .el-step__arrow::after{-webkit-transform:rotate(45deg) translateY(4px);transform:rotate(45deg) translateY(4px);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:36px;width:36px;cursor:pointer;-webkit-transition:.3s;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;-webkit-transform:none;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#c0c4cc;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;-webkit-transform:none;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{width:2px;height:15px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;-webkit-transition:.3s;transition:.3s}.el-carousel__item,.el-cascader,.el-tag{display:inline-block}.el-carousel__item,.el-carousel__mask{height:100%;top:0;position:absolute;left:0}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{-webkit-transform:translateY(-50%) translateX(-10px);transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{-webkit-transform:translateY(-50%) translateX(10px);transform:translateY(-50%) translateX(10px);opacity:0}.el-carousel__item{width:100%;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item.is-animating{-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card{width:50%;-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;background-color:#fff;opacity:.24;-webkit-transition:.2s;transition:.2s}.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45,.45);transform:scale(.45,.45)}.collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter-from,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #ebeef5;border-bottom:1px solid #ebeef5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:48px;line-height:48px;background-color:#fff;color:#303133;cursor:pointer;border-bottom:1px solid #ebeef5;font-size:13px;font-weight:500;-webkit-transition:border-bottom-color .3s;transition:border-bottom-color .3s;outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-weight:300}.el-collapse-item__arrow.is-active{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#409eff}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #ebeef5}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word;visibility:visible}.el-popper__arrow,.el-popper__arrow::before{width:10px;height:10px;z-index:-1;position:absolute}.el-popper.is-dark{color:#fff;background:#303133}.el-popper.is-dark .el-popper__arrow::before{background:#303133;right:0}.el-popper.is-light{background:#fff;border:1px solid #e4e7ed}.el-popper.is-light .el-popper__arrow::before{border:1px solid #e4e7ed;background:#fff;right:0}.el-popper.is-pure{padding:0}.el-popper__arrow::before{content:" ";-webkit-transform:rotate(45deg);transform:rotate(45deg);background:#303133;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader__search-input,.el-cascader__tags,.el-tag{-webkit-box-sizing:border-box}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper.is-light[data-popper-placement^=top] .el-popper__arrow::before{border-top-color:transparent;border-left-color:transparent}.el-popper.is-light[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-popper.is-light[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-popper.is-light[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-tag{background-color:#ecf5ff;border-color:#d9ecff;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409eff;border-width:1px;border-style:solid;border-radius:4px;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#409eff}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67c23a}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close::before{display:block}.el-tag--dark{background-color:#409eff;border-color:#409eff;color:#fff}.el-tag--dark.is-hit{border-color:#409eff}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67c23a}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409eff}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.el-cascader{position:relative;font-size:14px;line-height:40px;outline:0}.el-cascader:not(.is-disabled):hover .el-input__inner{cursor:pointer;border-color:#c0c4cc}.el-cascader .el-input .el-input__inner:focus,.el-cascader .el-input.is-focus .el-input__inner{border-color:#409eff}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-icon-arrow-down{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:14px}.el-cascader .el-input .el-icon-arrow-down.is-reverse{-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#c0c4cc}.el-cascader__dropdown{font-size:14px;border-radius:4px}.el-cascader__dropdown.el-popper[role=tooltip]{background:#fff;border:1px solid #e4e7ed;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader__dropdown.el-popper[role=tooltip] .el-popper__arrow::before{border:1px solid #e4e7ed}.el-cascader__dropdown.el-popper[role=tooltip][data-popper-placement^=top] .el-popper__arrow::before{border-top-color:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[role=tooltip][data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[role=tooltip][data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-cascader__dropdown.el-popper[role=tooltip][data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:#f0f2f5}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{-webkit-box-flex:0;-ms-flex:none;flex:none;background-color:#c0c4cc;color:#fff}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:4px}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:14px;color:#606266;text-align:center}.el-cascader__suggestion-item>span,.el-descriptions__label:not(.is-bordered-label){margin-right:10px}.el-cascader__suggestion-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#f5f7fa}.el-cascader__suggestion-item.is-checked{color:#409eff;font-weight:700}.el-cascader__empty-text{margin:10px 0;color:#c0c4cc}.el-cascader__search-input{-webkit-box-flex:1;-ms-flex:1;flex:1;height:24px;min-width:60px;margin:2px 0 2px 15px;padding:0;color:#606266;border:none;outline:0;box-sizing:border-box}.el-cascader__search-input::-webkit-input-placeholder{color:#c0c4cc}.el-cascader__search-input::-moz-placeholder{color:#c0c4cc}.el-cascader__search-input:-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::placeholder{color:#c0c4cc}.el-color-predefine{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{-webkit-box-shadow:0 0 3px 2px #409eff;box-shadow:0 0 3px 2px #409eff}.el-color-predefine__color-selector>div{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px;float:right}.el-color-hue-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:-webkit-gradient(linear,left top,right top,from(#fff),to(rgba(255,255,255,0)));background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:-webkit-gradient(linear,left bottom,left top,from(#000),to(rgba(0,0,0,0)));background:linear-gradient(to top,#000,rgba(0,0,0,0))}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;-webkit-box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,0)),to(white));background:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0)),to(white));background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper::after{display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#409eff;border-color:#409eff}.el-color-dropdown__link-btn{cursor:pointer;color:#409eff;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#409eff,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:rgba(255,255,255,.7)}.el-color-picker__trigger{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty{font-size:12px;color:#999;position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{display:inline-block;position:absolute;width:100%;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);color:#fff;text-align:center;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;-webkit-box-sizing:content-box;box-sizing:content-box;background-color:#fff;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-color-picker__panel.el-popper{border:1px solid #ebeef5}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-input__inner,.el-textarea__inner{-webkit-box-sizing:border-box;font-size:inherit;width:100%}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;box-sizing:border-box;color:#606266;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:0;border-color:#409eff}.el-textarea .el-input__count{color:#909399;background:#fff;position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea.is-exceed .el-textarea__inner{border-color:#f56c6c}.el-textarea.is-exceed .el-input__count{color:#f56c6c}.el-input{position:relative;font-size:14px;display:inline-block;width:100%;line-height:40px}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner{background:#fff}.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;cursor:pointer;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#fff;line-height:initial;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;color:#606266;display:inline-block;height:40px;line-height:40px;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-input__prefix,.el-input__suffix{top:0;-webkit-transition:all .3s;height:100%;color:#c0c4cc;position:absolute;text-align:center}.el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409eff;outline:0}.el-input__suffix{right:5px;transition:all .3s;pointer-events:none}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px;transition:all .3s}.el-input__icon{width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.el-input__icon:after{height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#f56c6c}.el-input.is-exceed .el-input__suffix .el-input__count{color:#f56c6c}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px;line-height:36px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px;line-height:32px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px;line-height:28px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-button-group>.el-button+.el-button,.el-transfer-panel__item+.el-transfer-panel__item,.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-timeline,.el-transfer,.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-transfer-panel,.el-transfer__buttons{display:inline-block;vertical-align:middle}.el-transfer__buttons{padding:0 30px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #dcdfe6;background-color:#f5f7fa;color:#c0c4cc}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer-panel{border:1px solid #ebeef5;border-radius:4px;overflow:hidden;background:#fff;width:200px;max-height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block!important}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#409eff}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid #ebeef5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#000}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#fff;margin:0;padding:0;border-top:1px solid #ebeef5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer::after{display:inline-block;height:100%;vertical-align:middle}.el-container,.el-timeline-item__node{display:-webkit-box;display:-ms-flexbox}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner::after{height:6px;width:3px;left:4px}.el-container{display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:0}.el-container.is-vertical,.el-drawer{-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal}.el-container.is-vertical{flex-direction:column}.el-header{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-aside{overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-main{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box;padding:20px}.el-footer{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-timeline{margin:0;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid #e4e7ed}.el-timeline-item__icon{color:#fff;font-size:13px}.el-timeline-item__node{position:absolute;background-color:#e4e7ed;border-radius:50%;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-image__error,.el-timeline-item__dot{display:-webkit-box;display:-ms-flexbox;-webkit-box-pack:center}.el-timeline-item__node--normal{left:-1px;width:12px;height:12px}.el-timeline-item__node--large{left:-2px;width:14px;height:14px}.el-timeline-item__node--primary{background-color:#409eff}.el-timeline-item__node--success{background-color:#67c23a}.el-timeline-item__node--warning{background-color:#e6a23c}.el-timeline-item__node--danger{background-color:#f56c6c}.el-timeline-item__node--info{background-color:#909399}.el-timeline-item__dot{position:absolute;display:flex;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;line-height:1;font-size:13px}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:14px;font-weight:500}.el-link.is-underline:hover:after{position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #409eff}.el-link.el-link--default:after,.el-link.el-link--primary.is-underline:hover:after,.el-link.el-link--primary:after{border-color:#409eff}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#409eff}.el-link.el-link--default.is-disabled{color:#c0c4cc}.el-link.el-link--primary{color:#409eff}.el-link.el-link--primary:hover{color:#66b1ff}.el-link.el-link--primary.is-disabled{color:#a0cfff}.el-link.el-link--danger.is-underline:hover:after,.el-link.el-link--danger:after{border-color:#f56c6c}.el-link.el-link--danger{color:#f56c6c}.el-link.el-link--danger:hover{color:#f78989}.el-link.el-link--danger.is-disabled{color:#fab6b6}.el-link.el-link--success.is-underline:hover:after,.el-link.el-link--success:after{border-color:#67c23a}.el-link.el-link--success{color:#67c23a}.el-link.el-link--success:hover{color:#85ce61}.el-link.el-link--success.is-disabled{color:#b3e19d}.el-link.el-link--warning.is-underline:hover:after,.el-link.el-link--warning:after{border-color:#e6a23c}.el-link.el-link--warning{color:#e6a23c}.el-link.el-link--warning:hover{color:#ebb563}.el-link.el-link--warning.is-disabled{color:#f3d19e}.el-link.el-link--info.is-underline:hover:after,.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-divider{background-color:#dcdfe6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#fff;padding:0 20px;font-weight:500;color:#303133;font-size:14px}.el-image__error,.el-image__placeholder{background:#f5f7fa}.el-divider__text.is-left{left:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-divider__text.is-center{left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right,.el-image-viewer__next,.el-image-viewer__prev,.el-page-header__left::after{-webkit-transform:translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}@-webkit-keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-image__error,.el-image__inner,.el-image__placeholder{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top}.el-image__inner--center{position:relative;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:block}.el-image__error{display:flex;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;color:#c0c4cc;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;user-select:none}.el-button,.el-checkbox{-webkit-user-select:none;-moz-user-select:none}.el-button,.el-checkbox,.el-checkbox-button__inner,.el-empty__image img,.el-radio{-ms-user-select:none}.el-image-viewer__close{top:40px;right:40px}.el-image-viewer__canvas{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-image-viewer__actions{left:50%;bottom:30px;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:#606266;border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around}.el-image-viewer__close,.el-image-viewer__next,.el-image-viewer__prev{width:44px;height:44px;font-size:24px;background-color:#606266;border-color:#fff;color:#fff}.el-image-viewer__prev{top:50%;transform:translateY(-50%);left:40px}.el-image-viewer__next{top:50%;transform:translateY(-50%);right:40px;text-indent:2px}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in .3s;animation:viewer-fade-in .3s}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out .3s;animation:viewer-fade-out .3s}@keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes viewer-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-button{display:inline-block;line-height:1;min-height:40px;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button,.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-button:focus,.el-button:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#409eff;color:#409eff}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#fff;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:rgba(255,255,255,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#409eff;border-color:#409eff}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409eff;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409eff;border-color:#409eff;color:#fff}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#fff}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#fff}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67c23a;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67c23a;border-color:#67c23a;color:#fff}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#fff;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#fff}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#fff}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#e6a23c;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#e6a23c;border-color:#e6a23c;color:#fff}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#fff;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#fff}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#fff}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#f56c6c;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#f56c6c;border-color:#f56c6c;color:#fff}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#fff;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff;outline:0}.el-button--info.is-active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--medium{min-height:36px;padding:10px 20px;font-size:14px;border-radius:4px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small{min-height:32px;padding:9px 15px;font-size:12px;border-radius:3px}.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini{min-height:28px;font-size:12px;border-radius:3px}.el-button--mini.is-circle{padding:7px}.el-button--text{border-color:transparent;color:#409eff;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;border-color:transparent;background-color:transparent}.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover{border-color:transparent}.el-button-group .el-button--danger:last-child,.el-button-group .el-button--danger:not(:first-child):not(:last-child),.el-button-group .el-button--info:last-child,.el-button-group .el-button--info:not(:first-child):not(:last-child),.el-button-group .el-button--primary:last-child,.el-button-group .el-button--primary:not(:first-child):not(:last-child),.el-button-group .el-button--success:last-child,.el-button-group .el-button--success:not(:first-child):not(:last-child),.el-button-group .el-button--warning:last-child,.el-button-group .el-button--warning:not(:first-child):not(:last-child),.el-button-group>.el-dropdown>.el-button{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:first-child,.el-button-group .el-button--danger:not(:first-child):not(:last-child),.el-button-group .el-button--info:first-child,.el-button-group .el-button--info:not(:first-child):not(:last-child),.el-button-group .el-button--primary:first-child,.el-button-group .el-button--primary:not(:first-child):not(:last-child),.el-button-group .el-button--success:first-child,.el-button-group .el-button--success:not(:first-child):not(:last-child),.el-button-group .el-button--warning:first-child,.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-right-color:rgba(255,255,255,.5)}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group::after,.el-button-group::before{display:table}.el-button-group::after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button.is-active,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0}.el-calendar{background-color:#fff}.el-calendar__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #ebeef5}.el-calendar__title{color:#000;-ms-flex-item-align:center;align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:#606266;font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#c0c4cc}.el-backtop,.el-calendar-table td.is-today{color:#409eff}.el-calendar-table td{border-bottom:1px solid #ebeef5;border-right:1px solid #ebeef5;vertical-align:top;-webkit-transition:background-color .2s ease;transition:background-color .2s ease}.el-calendar-table td.is-selected{background-color:#f2f8fe}.el-calendar-table tr:first-child td{border-top:1px solid #ebeef5}.el-calendar-table tr td:first-child{border-left:1px solid #ebeef5}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px;height:85px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:#f2f8fe}.el-backtop{position:fixed;background-color:#fff;width:40px;height:40px;border-radius:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:20px;-webkit-box-shadow:0 0 6px rgba(0,0,0,.12);box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#f2f6fc}.el-page-header{display:-webkit-box;display:-ms-flexbox;display:flex;line-height:24px}.el-page-header__left{display:-webkit-box;display:-ms-flexbox;display:flex;cursor:pointer;margin-right:40px;position:relative}.el-page-header__left::after{position:absolute;width:1px;height:16px;right:-20px;top:50%;transform:translateY(-50%);background-color:#dcdfe6}.el-page-header__icon{font-size:18px;margin-right:6px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-checkbox,.el-checkbox__input{display:inline-block;position:relative;white-space:nowrap}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;user-select:none;margin-right:30px}.el-checkbox-button__inner,.el-empty__image img,.el-radio{-webkit-user-select:none;-moz-user-select:none}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409eff}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner::after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409eff;border-color:#409eff}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner::after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409eff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409eff}.el-checkbox__input.is-indeterminate .el-checkbox__inner::before{position:absolute;display:block;background-color:#fff;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409eff}.el-checkbox__inner::after{-webkit-box-sizing:content-box;box-sizing:content-box;border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s ease-in 50ms;transition:-webkit-transform .15s ease-in 50ms;transition:transform .15s ease-in 50ms;transition:transform .15s ease-in 50ms,-webkit-transform .15s ease-in 50ms;-webkit-transform-origin:center;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409eff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-radio,.el-radio__input{line-height:1;position:relative}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;-webkit-box-shadow:-1px 0 0 0 #8cc5ff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409eff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;-webkit-box-shadow:none;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409eff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-radio{color:#606266;font-weight:500;cursor:pointer;display:inline-block;white-space:nowrap;outline:0;font-size:14px;margin-right:30px}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#409eff}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#ebeef5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner::after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner::after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409eff;background:#409eff}.el-radio__input.is-checked .el-radio__inner::after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409eff}.el-radio__input.is-focus .el-radio__inner{border-color:#409eff}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;position:relative;cursor:pointer;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box}.el-radio__inner:hover{border-color:#409eff}.el-radio__inner::after{width:4px;height:4px;border-radius:100%;background-color:#fff;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s ease-in;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #409eff;box-shadow:0 0 2px 2px #409eff}.el-radio__label{font-size:14px;padding-left:10px}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{-webkit-transition:opacity 340ms ease-out;transition:opacity 340ms ease-out}.el-scrollbar-fade-leave-active{-webkit-transition:opacity 120ms ease-out;transition:opacity 120ms ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-cascader-panel{display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:4px;font-size:14px}.el-cascader-panel.is-bordered{border:1px solid #e4e7ed;border-radius:4px}.el-cascader-menu{min-width:180px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;border-right:solid 1px #e4e7ed}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center;color:#c0c4cc}.el-cascader-node{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#409eff;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#f5f7fa}.el-cascader-node.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:left;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden;color:#fff;background:#c0c4cc;width:40px;height:40px;line-height:40px;font-size:14px}.el-drawer,.el-drawer__body>*,.el-empty{-webkit-box-sizing:border-box}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-empty__image img,.el-empty__image svg{vertical-align:top;height:100%;width:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px}@-webkit-keyframes el-drawer-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes el-drawer-fade-in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes rtl-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(100%,0);transform:translate(100%,0)}}@keyframes rtl-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(100%,0);transform:translate(100%,0)}}@-webkit-keyframes ltr-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}}@keyframes ltr-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}}@-webkit-keyframes ttb-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}}@keyframes ttb-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}}@-webkit-keyframes btt-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,100%);transform:translate(0,100%)}}@keyframes btt-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,100%);transform:translate(0,100%)}}.el-drawer{position:absolute;box-sizing:border-box;background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;flex-direction:column;-webkit-box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);overflow:hidden}.el-drawer__header,.el-popconfirm__main{display:-webkit-box;display:-ms-flexbox}.el-drawer-fade-enter-active .el-drawer.rtl{animation:rtl-drawer-animation .3s linear reverse}.el-drawer-fade-leave-active .el-drawer.rtl{-webkit-animation:rtl-drawer-animation .3s linear;animation:rtl-drawer-animation .3s linear}.el-drawer-fade-enter-active .el-drawer.ltr{animation:ltr-drawer-animation .3s linear reverse}.el-drawer-fade-leave-active .el-drawer.ltr{-webkit-animation:ltr-drawer-animation .3s linear;animation:ltr-drawer-animation .3s linear}.el-drawer-fade-enter-active .el-drawer.ttb{animation:ttb-drawer-animation .3s linear reverse}.el-drawer-fade-leave-active .el-drawer.ttb{-webkit-animation:ttb-drawer-animation .3s linear;animation:ttb-drawer-animation .3s linear}.el-drawer-fade-enter-active .el-drawer.btt{animation:btt-drawer-animation .3s linear reverse}.el-drawer-fade-leave-active .el-drawer.btt{-webkit-animation:btt-drawer-animation .3s linear;animation:btt-drawer-animation .3s linear}.el-drawer__header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:20px 20px 0}.el-drawer__header>:first-child{-webkit-box-flex:1;-ms-flex:1;flex:1}.el-drawer__title{margin:0;-webkit-box-flex:1;-ms-flex:1;flex:1;line-height:inherit;font-size:1rem}.el-drawer__close-btn{border:none;cursor:pointer;font-size:20px;color:inherit;background-color:transparent;outline:0}.el-drawer__close-btn:hover i{color:#409eff}.el-drawer__body{-webkit-box-flex:1;-ms-flex:1;flex:1}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active{-webkit-animation:el-drawer-fade-in .3s;animation:el-drawer-fade-in .3s;overflow:hidden!important}.el-drawer-fade-leave-active{overflow:hidden!important;animation:el-drawer-fade-in .3s reverse}.el-overlay,.el-vl__viewport{overflow:auto}.el-popconfirm__main{display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:rgba(0,0,0,.5)}.el-overlay .el-overlay-root{height:0}.el-vl__content{overflow:hidden;will-change:transform;position:relative}.el-vl__item-container{will-change:transform;display:-webkit-box;display:-ms-flexbox;display:flex}.el-vl__item-container[data-direction=v]{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.el-vl__item-container[data-direction=h]{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.el-empty,.el-result,.el-space--vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal}.el-space{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.el-space--vertical{-ms-flex-direction:column;flex-direction:column}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:#f2f2f2}.el-skeleton.is-animated .el-skeleton__item{background:-webkit-gradient(linear,left top,right top,color-stop(25%,#f2f2f2),color-stop(37%,#e6e6e6),color-stop(63%,#f2f2f2));background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.el-skeleton__item{background:#f2f2f2;display:inline-block;height:16px;border-radius:4px;width:100%}.el-skeleton__circle{border-radius:50%;width:36px;height:36px;line-height:36px}.el-skeleton__circle--lg{width:40px;height:40px;line-height:40px}.el-skeleton__circle--md{width:28px;height:28px;line-height:28px}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:13px}.el-skeleton__caption{height:12px}.el-skeleton__h1{height:20px}.el-skeleton__h3{height:18px}.el-skeleton__h5{height:16px}.el-skeleton__image{width:unset;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:0}.el-descriptions__header,.el-empty{display:-webkit-box;display:-ms-flexbox}.el-skeleton__image svg{fill:#dcdde0;width:22%;height:22%}.el-empty{display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-direction:column;flex-direction:column;text-align:center;box-sizing:border-box;padding:40px 0}.el-descriptions,.el-result{-webkit-box-sizing:border-box}.el-empty__image{width:160px}.el-empty__image img{user-select:none;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{fill:#dcdde0}.el-empty__description{margin-top:20px}.el-empty__description p{margin:0;font-size:14px;color:#909399}.el-empty__bottom,.el-result__title{margin-top:20px}.el-affix--fixed{position:fixed}.el-check-tag{background-color:#f5f7fa;border-radius:4px;color:#909399;cursor:pointer;display:inline-block;font-size:14px;line-height:14px;padding:7px 15px;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);font-weight:700}.el-check-tag:hover{background-color:#dcdfe6}.el-check-tag.is-checked{background-color:#deedfc;color:#53a8ff}.el-check-tag.is-checked:hover{background-color:#c6e2ff}.el-descriptions{box-sizing:border-box;font-size:14px;color:#303133}.el-descriptions__header{display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:20px}.el-descriptions__title{font-size:16px;font-weight:700}.el-descriptions--mini,.el-descriptions--small{font-size:12px}.el-descriptions__body{color:#606266;background-color:#fff}.el-descriptions__body table{border-collapse:collapse;width:100%}.el-descriptions__body table td,.el-descriptions__body table th{text-align:left;font-weight:400;line-height:1.5}.el-descriptions .is-bordered td,.el-descriptions .is-bordered th{border:1px solid #ebeef5;padding:12px 10px}.el-descriptions :not(.is-bordered) td,.el-descriptions :not(.is-bordered) th{padding-bottom:12px}.el-descriptions--medium.is-bordered td,.el-descriptions--medium.is-bordered th{padding:10px}.el-descriptions--medium:not(.is-bordered) td,.el-descriptions--medium:not(.is-bordered) th{padding-bottom:10px}.el-descriptions--small.is-bordered td,.el-descriptions--small.is-bordered th{padding:8px 10px}.el-descriptions--small:not(.is-bordered) td,.el-descriptions--small:not(.is-bordered) th{padding-bottom:8px}.el-descriptions--mini.is-bordered td,.el-descriptions--mini.is-bordered th{padding:6px 10px}.el-descriptions--mini:not(.is-bordered) td,.el-descriptions--mini:not(.is-bordered) th{padding-bottom:6px}.el-descriptions__label.is-bordered-label{font-weight:700;color:#909399;background:#fafafa}.el-result{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-direction:column;flex-direction:column;text-align:center;box-sizing:border-box;padding:40px 30px}.el-result__icon svg{width:64px;height:64px}.el-result__title p{margin:0;font-size:20px;color:#303133;line-height:1.3}.el-result__subtitle{margin-top:10px}.el-result__subtitle p{margin:0;font-size:14px;color:#606266;line-height:1.3}.el-result__extra{margin-top:30px}.el-result .icon-success{fill:#67c23a}.el-result .icon-error{fill:#f56c6c}.el-result .icon-info{fill:#909399}.el-result .icon-warning{fill:#e6a23c}a[data-v-4f9cc77c]{color:#42b983}label[data-v-4f9cc77c]{margin:0 .5em;font-weight:700}code[data-v-4f9cc77c]{background-color:#eee;padding:2px 4px;border-radius:4px;color:#304455}#echarts-spa-app[data-v-09a45116]{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50;position:absolute;left:0;right:0;top:0;bottom:0}
\ No newline at end of file
diff --git a/en/bar-race/assets/vendor.82c46759.js b/en/bar-race/assets/vendor.82c46759.js
new file mode 100644
index 0000000..d3b3c47
--- /dev/null
+++ b/en/bar-race/assets/vendor.82c46759.js
@@ -0,0 +1,64 @@
+function e(e,t){const n=Object.create(null),l=e.split(",");for(let a=0;a<l.length;a++)n[l[a]]=!0;return t?e=>!!n[e.toLowerCase()]:e=>!!n[e]}const t=e("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt"),n=e("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function l(e){if(w(e)){const t={};for(let n=0;n<e.length;n++){const a=e[n],o=l(O(a)?r(a):a);if(o)for(const e in o)t[e]=o[e]}return t}if(D(e))return e}const a=/;(?![^(]*\))/g,o=/:(.+)/;function r(e){const t={};return e.split(a).forEach((e=>{if(e){const n=e.split(o);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function i(e){let t="";if(O(e))t=e;else if(w(e))for(let n=0;n<e.length;n++){const l=i(e[n]);l&&(t+=l+" ")}else if(D(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}function s(e,t){if(e===t)return!0;let n=E(e),l=E(t);if(n||l)return!(!n||!l)&&e.getTime()===t.getTime();if(n=w(e),l=w(t),n||l)return!(!n||!l)&&function(e,t){if(e.length!==t.length)return!1;let n=!0;for(let l=0;n&&l<e.length;l++)n=s(e[l],t[l]);return n}(e,t);if(n=D(e),l=D(t),n||l){if(!n||!l)return!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e){const l=e.hasOwnProperty(n),a=t.hasOwnProperty(n);if(l&&!a||!l&&a||!s(e[n],t[n]))return!1}}return String(e)===String(t)}function u(e,t){return e.findIndex((e=>s(e,t)))}const c=e=>null==e?"":D(e)?JSON.stringify(e,d,2):String(e),d=(e,t)=>C(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n])=>(e[`${t} =>`]=n,e)),{})}:S(t)?{[`Set(${t.size})`]:[...t.values()]}:!D(t)||w(t)||P(t)?t:String(t),p={},f=[],h=()=>{},v=()=>!1,m=/^on[^a-z]/,g=e=>m.test(e),y=e=>e.startsWith("onUpdate:"),b=Object.assign,_=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},k=Object.prototype.hasOwnProperty,x=(e,t)=>k.call(e,t),w=Array.isArray,C=e=>"[object Map]"===A(e),S=e=>"[object Set]"===A(e),E=e=>e instanceof Date,M=e=>"function"==typeof e,O=e=>"string"==typeof e,T=e=>"symbol"==typeof e,D=e=>null!==e&&"object"==typeof e,L=e=>D(e)&&M(e.then)&&M(e.catch),N=Object.prototype.toString,A=e=>N.call(e),P=e=>"[object Object]"===A(e),I=e=>O(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,F=e(",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),V=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},B=/-(\w)/g,$=V((e=>e.replace(B,((e,t)=>t?t.toUpperCase():"")))),z=/\B([A-Z])/g,j=V((e=>e.replace(z,"-$1").toLowerCase())),R=V((e=>e.charAt(0).toUpperCase()+e.slice(1))),H=V((e=>e?`on${R(e)}`:"")),W=(e,t)=>e!==t&&(e==e||t==t),Y=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},q=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},K=e=>{const t=parseFloat(e);return isNaN(t)?e:t},U=new WeakMap,G=[];let X;const Z=Symbol(""),J=Symbol("");function Q(e,t=p){(function(e){return e&&!0===e._isEffect})(e)&&(e=e.raw);const n=function(e,t){const n=function(){if(!n.active)return t.scheduler?void 0:e();if(!G.includes(n)){ne(n);try{return ae.push(le),le=!0,G.push(n),X=n,e()}finally{G.pop(),re(),X=G[G.length-1]}}};return n.id=te++,n.allowRecurse=!!t.allowRecurse,n._isEffect=!0,n.active=!0,n.raw=e,n.deps=[],n.options=t,n}(e,t);return t.lazy||n(),n}function ee(e){e.active&&(ne(e),e.options.onStop&&e.options.onStop(),e.active=!1)}let te=0;function ne(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let le=!0;const ae=[];function oe(){ae.push(le),le=!1}function re(){const e=ae.pop();le=void 0===e||e}function ie(e,t,n){if(!le||void 0===X)return;let l=U.get(e);l||U.set(e,l=new Map);let a=l.get(n);a||l.set(n,a=new Set),a.has(X)||(a.add(X),X.deps.push(a))}function se(e,t,n,l,a,o){const r=U.get(e);if(!r)return;const i=new Set,s=e=>{e&&e.forEach((e=>{(e!==X||e.allowRecurse)&&i.add(e)}))};if("clear"===t)r.forEach(s);else if("length"===n&&w(e))r.forEach(((e,t)=>{("length"===t||t>=l)&&s(e)}));else switch(void 0!==n&&s(r.get(n)),t){case"add":w(e)?I(n)&&s(r.get("length")):(s(r.get(Z)),C(e)&&s(r.get(J)));break;case"delete":w(e)||(s(r.get(Z)),C(e)&&s(r.get(J)));break;case"set":C(e)&&s(r.get(Z))}i.forEach((e=>{e.options.scheduler?e.options.scheduler(e):e()}))}const ue=e("__proto__,__v_isRef,__isVue"),ce=new Set(Object.getOwnPropertyNames(Symbol).map((e=>Symbol[e])).filter(T)),de=me(),pe=me(!1,!0),fe=me(!0),he=me(!0,!0),ve={};function me(e=!1,t=!1){return function(n,l,a){if("__v_isReactive"===l)return!e;if("__v_isReadonly"===l)return e;if("__v_raw"===l&&a===(e?t?qe:Ye:t?We:He).get(n))return n;const o=w(n);if(!e&&o&&x(ve,l))return Reflect.get(ve,l,a);const r=Reflect.get(n,l,a);if(T(l)?ce.has(l):ue(l))return r;if(e||ie(n,0,l),t)return r;if(nt(r)){return!o||!I(l)?r.value:r}return D(r)?e?Ge(r):Ue(r):r}}["includes","indexOf","lastIndexOf"].forEach((e=>{const t=Array.prototype[e];ve[e]=function(...e){const n=et(this);for(let t=0,a=this.length;t<a;t++)ie(n,0,t+"");const l=t.apply(n,e);return-1===l||!1===l?t.apply(n,e.map(et)):l}})),["push","pop","shift","unshift","splice"].forEach((e=>{const t=Array.prototype[e];ve[e]=function(...e){oe();const n=t.apply(this,e);return re(),n}}));function ge(e=!1){return function(t,n,l,a){let o=t[n];if(!e&&(l=et(l),o=et(o),!w(t)&&nt(o)&&!nt(l)))return o.value=l,!0;const r=w(t)&&I(n)?Number(n)<t.length:x(t,n),i=Reflect.set(t,n,l,a);return t===et(a)&&(r?W(l,o)&&se(t,"set",n,l):se(t,"add",n,l)),i}}const ye={get:de,set:ge(),deleteProperty:function(e,t){const n=x(e,t);e[t];const l=Reflect.deleteProperty(e,t);return l&&n&&se(e,"delete",t,void 0),l},has:function(e,t){const n=Reflect.has(e,t);return T(t)&&ce.has(t)||ie(e,0,t),n},ownKeys:function(e){return ie(e,0,w(e)?"length":Z),Reflect.ownKeys(e)}},be={get:fe,set:(e,t)=>!0,deleteProperty:(e,t)=>!0},_e=b({},ye,{get:pe,set:ge(!0)});b({},be,{get:he});const ke=e=>D(e)?Ue(e):e,xe=e=>D(e)?Ge(e):e,we=e=>e,Ce=e=>Reflect.getPrototypeOf(e);function Se(e,t,n=!1,l=!1){const a=et(e=e.__v_raw),o=et(t);t!==o&&!n&&ie(a,0,t),!n&&ie(a,0,o);const{has:r}=Ce(a),i=l?we:n?xe:ke;return r.call(a,t)?i(e.get(t)):r.call(a,o)?i(e.get(o)):void 0}function Ee(e,t=!1){const n=this.__v_raw,l=et(n),a=et(e);return e!==a&&!t&&ie(l,0,e),!t&&ie(l,0,a),e===a?n.has(e):n.has(e)||n.has(a)}function Me(e,t=!1){return e=e.__v_raw,!t&&ie(et(e),0,Z),Reflect.get(e,"size",e)}function Oe(e){e=et(e);const t=et(this);return Ce(t).has.call(t,e)||(t.add(e),se(t,"add",e,e)),this}function Te(e,t){t=et(t);const n=et(this),{has:l,get:a}=Ce(n);let o=l.call(n,e);o||(e=et(e),o=l.call(n,e));const r=a.call(n,e);return n.set(e,t),o?W(t,r)&&se(n,"set",e,t):se(n,"add",e,t),this}function De(e){const t=et(this),{has:n,get:l}=Ce(t);let a=n.call(t,e);a||(e=et(e),a=n.call(t,e)),l&&l.call(t,e);const o=t.delete(e);return a&&se(t,"delete",e,void 0),o}function Le(){const e=et(this),t=0!==e.size,n=e.clear();return t&&se(e,"clear",void 0,void 0),n}function Ne(e,t){return function(n,l){const a=this,o=a.__v_raw,r=et(o),i=t?we:e?xe:ke;return!e&&ie(r,0,Z),o.forEach(((e,t)=>n.call(l,i(e),i(t),a)))}}function Ae(e,t,n){return function(...l){const a=this.__v_raw,o=et(a),r=C(o),i="entries"===e||e===Symbol.iterator&&r,s="keys"===e&&r,u=a[e](...l),c=n?we:t?xe:ke;return!t&&ie(o,0,s?J:Z),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:i?[c(e[0]),c(e[1])]:c(e),done:t}},[Symbol.iterator](){return this}}}}function Pe(e){return function(...t){return"delete"!==e&&this}}const Ie={get(e){return Se(this,e)},get size(){return Me(this)},has:Ee,add:Oe,set:Te,delete:De,clear:Le,forEach:Ne(!1,!1)},Fe={get(e){return Se(this,e,!1,!0)},get size(){return Me(this)},has:Ee,add:Oe,set:Te,delete:De,clear:Le,forEach:Ne(!1,!0)},Ve={get(e){return Se(this,e,!0)},get size(){return Me(this,!0)},has(e){return Ee.call(this,e,!0)},add:Pe("add"),set:Pe("set"),delete:Pe("delete"),clear:Pe("clear"),forEach:Ne(!0,!1)},Be={get(e){return Se(this,e,!0,!0)},get size(){return Me(this,!0)},has(e){return Ee.call(this,e,!0)},add:Pe("add"),set:Pe("set"),delete:Pe("delete"),clear:Pe("clear"),forEach:Ne(!0,!0)};function $e(e,t){const n=t?e?Be:Fe:e?Ve:Ie;return(t,l,a)=>"__v_isReactive"===l?!e:"__v_isReadonly"===l?e:"__v_raw"===l?t:Reflect.get(x(n,l)&&l in t?n:t,l,a)}["keys","values","entries",Symbol.iterator].forEach((e=>{Ie[e]=Ae(e,!1,!1),Ve[e]=Ae(e,!0,!1),Fe[e]=Ae(e,!1,!0),Be[e]=Ae(e,!0,!0)}));const ze={get:$e(!1,!1)},je={get:$e(!1,!0)},Re={get:$e(!0,!1)},He=new WeakMap,We=new WeakMap,Ye=new WeakMap,qe=new WeakMap;function Ke(e){return e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>A(e).slice(8,-1))(e))}function Ue(e){return e&&e.__v_isReadonly?e:Xe(e,!1,ye,ze,He)}function Ge(e){return Xe(e,!0,be,Re,Ye)}function Xe(e,t,n,l,a){if(!D(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const o=a.get(e);if(o)return o;const r=Ke(e);if(0===r)return e;const i=new Proxy(e,2===r?l:n);return a.set(e,i),i}function Ze(e){return Je(e)?Ze(e.__v_raw):!(!e||!e.__v_isReactive)}function Je(e){return!(!e||!e.__v_isReadonly)}function Qe(e){return Ze(e)||Je(e)}function et(e){return e&&et(e.__v_raw)||e}const tt=e=>D(e)?Ue(e):e;function nt(e){return Boolean(e&&!0===e.__v_isRef)}function lt(e){return rt(e)}function at(e){return rt(e,!0)}class ot{constructor(e,t=!1){this._rawValue=e,this._shallow=t,this.__v_isRef=!0,this._value=t?e:tt(e)}get value(){return ie(et(this),0,"value"),this._value}set value(e){W(et(e),this._rawValue)&&(this._rawValue=e,this._value=this._shallow?e:tt(e),se(et(this),"set","value",e))}}function rt(e,t=!1){return nt(e)?e:new ot(e,t)}function it(e){return nt(e)?e.value:e}const st={get:(e,t,n)=>it(Reflect.get(e,t,n)),set:(e,t,n,l)=>{const a=e[t];return nt(a)&&!nt(n)?(a.value=n,!0):Reflect.set(e,t,n,l)}};function ut(e){return Ze(e)?e:new Proxy(e,st)}function ct(e){const t=w(e)?new Array(e.length):{};for(const n in e)t[n]=pt(e,n);return t}class dt{constructor(e,t){this._object=e,this._key=t,this.__v_isRef=!0}get value(){return this._object[this._key]}set value(e){this._object[this._key]=e}}function pt(e,t){return nt(e[t])?e[t]:new dt(e,t)}class ft{constructor(e,t,n){this._setter=t,this._dirty=!0,this.__v_isRef=!0,this.effect=Q(e,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,se(et(this),"set","value"))}}),this.__v_isReadonly=n}get value(){const e=et(this);return e._dirty&&(e._value=this.effect(),e._dirty=!1),ie(e,0,"value"),e._value}set value(e){this._setter(e)}}function ht(e,t,n,l){let a;try{a=l?e(...l):e()}catch(o){mt(o,t,n)}return a}function vt(e,t,n,l){if(M(e)){const a=ht(e,t,n,l);return a&&L(a)&&a.catch((e=>{mt(e,t,n)})),a}const a=[];for(let o=0;o<e.length;o++)a.push(vt(e[o],t,n,l));return a}function mt(e,t,n,l=!0){t&&t.vnode;if(t){let l=t.parent;const a=t.proxy,o=n;for(;l;){const t=l.ec;if(t)for(let n=0;n<t.length;n++)if(!1===t[n](e,a,o))return;l=l.parent}const r=t.appContext.config.errorHandler;if(r)return void ht(r,null,10,[e,a,o])}!function(e,t,n,l=!0){console.error(e)}(e,0,0,l)}let gt=!1,yt=!1;const bt=[];let _t=0;const kt=[];let xt=null,wt=0;const Ct=[];let St=null,Et=0;const Mt=Promise.resolve();let Ot=null,Tt=null;function Dt(e){const t=Ot||Mt;return e?t.then(this?e.bind(this):e):t}function Lt(e){if(!(bt.length&&bt.includes(e,gt&&e.allowRecurse?_t+1:_t)||e===Tt)){const t=function(e){let t=_t+1,n=bt.length;const l=Ft(e);for(;t<n;){const e=t+n>>>1;Ft(bt[e])<l?t=e+1:n=e}return t}(e);t>-1?bt.splice(t,0,e):bt.push(e),Nt()}}function Nt(){gt||yt||(yt=!0,Ot=Mt.then(Vt))}function At(e,t,n,l){w(e)?n.push(...e):t&&t.includes(e,e.allowRecurse?l+1:l)||n.push(e),Nt()}function Pt(e,t=null){if(kt.length){for(Tt=t,xt=[...new Set(kt)],kt.length=0,wt=0;wt<xt.length;wt++)xt[wt]();xt=null,wt=0,Tt=null,Pt(e,t)}}function It(e){if(Ct.length){const e=[...new Set(Ct)];if(Ct.length=0,St)return void St.push(...e);for(St=e,St.sort(((e,t)=>Ft(e)-Ft(t))),Et=0;Et<St.length;Et++)St[Et]();St=null,Et=0}}const Ft=e=>null==e.id?1/0:e.id;function Vt(e){yt=!1,gt=!0,Pt(e),bt.sort(((e,t)=>Ft(e)-Ft(t)));try{for(_t=0;_t<bt.length;_t++){const e=bt[_t];e&&ht(e,null,14)}}finally{_t=0,bt.length=0,It(),gt=!1,Ot=null,(bt.length||Ct.length)&&Vt(e)}}function Bt(e,t,...n){const l=e.vnode.props||p;let a=n;const o=t.startsWith("update:"),r=o&&t.slice(7);if(r&&r in l){const e=`${"modelValue"===r?"model":r}Modifiers`,{number:t,trim:o}=l[e]||p;o?a=n.map((e=>e.trim())):t&&(a=n.map(K))}let i,s=l[i=H(t)]||l[i=H($(t))];!s&&o&&(s=l[i=H(j(t))]),s&&vt(s,e,6,a);const u=l[i+"Once"];if(u){if(e.emitted){if(e.emitted[i])return}else(e.emitted={})[i]=!0;vt(u,e,6,a)}}function $t(e,t,n=!1){if(!t.deopt&&void 0!==e.__emits)return e.__emits;const l=e.emits;let a={},o=!1;if(!M(e)){const l=e=>{const n=$t(e,t,!0);n&&(o=!0,b(a,n))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return l||o?(w(l)?l.forEach((e=>a[e]=null)):b(a,l),e.__emits=a):e.__emits=null}function zt(e,t){return!(!e||!g(t))&&(t=t.slice(2).replace(/Once$/,""),x(e,t[0].toLowerCase()+t.slice(1))||x(e,j(t))||x(e,t))}let jt=0;const Rt=e=>jt+=e;function Ht(e,t,n={},l,a){let o=e[t];jt++,wl();const r=o&&Wt(o(n)),i=Sl(gl,{key:n.key||`_${t}`},r||(l?l():[]),r&&1===e._?64:-2);return!a&&i.scopeId&&(i.slotScopeIds=[i.scopeId+"-s"]),jt--,i}function Wt(e){return e.some((e=>!El(e)||e.type!==bl&&!(e.type===gl&&!Wt(e.children))))?e:null}let Yt=null,qt=null;function Kt(e){const t=Yt;return Yt=e,qt=e&&e.type.__scopeId||null,t}function Ut(e){qt=e}function Gt(){qt=null}const Xt=e=>Zt;function Zt(e,t=Yt){if(!t)return e;const n=(...n)=>{jt||wl(!0);const l=Kt(t),a=e(...n);return Kt(l),jt||Cl(),a};return n._c=!0,n}function Jt(e){const{type:t,vnode:n,proxy:l,withProxy:a,props:o,propsOptions:[r],slots:i,attrs:s,emit:u,render:c,renderCache:d,data:p,setupState:f,ctx:h}=e;let v;const m=Kt(e);try{let e;if(4&n.shapeFlag){const t=a||l;v=Il(c.call(t,t,d,o,f,p,h)),e=s}else{const n=t;0,v=Il(n.length>1?n(o,{attrs:s,slots:i,emit:u}):n(o,null)),e=t.props?s:en(s)}let m=v;if(!1!==t.inheritAttrs&&e){const t=Object.keys(e),{shapeFlag:n}=m;t.length&&(1&n||6&n)&&(r&&t.some(y)&&(e=tn(e,r)),m=Nl(m,e))}n.dirs&&(m.dirs=m.dirs?m.dirs.concat(n.dirs):n.dirs),n.transition&&(m.transition=n.transition),v=m}catch(g){kl.length=0,mt(g,e,1),v=Ll(bl)}return Kt(m),v}function Qt(e){let t;for(let n=0;n<e.length;n++){const l=e[n];if(!El(l))return;if(l.type!==bl||"v-if"===l.children){if(t)return;t=l}}return t}const en=e=>{let t;for(const n in e)("class"===n||"style"===n||g(n))&&((t||(t={}))[n]=e[n]);return t},tn=(e,t)=>{const n={};for(const l in e)y(l)&&l.slice(9)in t||(n[l]=e[l]);return n};function nn(e,t,n){const l=Object.keys(t);if(l.length!==Object.keys(e).length)return!0;for(let a=0;a<l.length;a++){const o=l[a];if(t[o]!==e[o]&&!zt(n,o))return!0}return!1}function ln(e){if(M(e)&&(e=e()),w(e)){e=Qt(e)}return Il(e)}function an(e,t,n,l=!1){const a={},o={};q(o,Ol,1),e.propsDefaults=Object.create(null),on(e,t,a,o),n?e.props=l?a:Xe(a,!1,_e,je,We):e.type.props?e.props=a:e.props=o,e.attrs=o}function on(e,t,n,l){const[a,o]=e.propsOptions;if(t)for(const r in t){const o=t[r];if(F(r))continue;let i;a&&x(a,i=$(r))?n[i]=o:zt(e.emitsOptions,r)||(l[r]=o)}if(o){const t=et(n);for(let l=0;l<o.length;l++){const r=o[l];n[r]=rn(a,t,r,t[r],e)}}}function rn(e,t,n,l,a){const o=e[n];if(null!=o){const e=x(o,"default");if(e&&void 0===l){const e=o.default;if(o.type!==Function&&M(e)){const{propsDefaults:o}=a;n in o?l=o[n]:(la(a),l=o[n]=e(t),la(null))}else l=e}o[0]&&(x(t,n)||e?!o[1]||""!==l&&l!==j(n)||(l=!0):l=!1)}return l}function sn(e,t,n=!1){if(!t.deopt&&e.__props)return e.__props;const l=e.props,a={},o=[];let r=!1;if(!M(e)){const l=e=>{r=!0;const[n,l]=sn(e,t,!0);b(a,n),l&&o.push(...l)};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}if(!l&&!r)return e.__props=f;if(w(l))for(let i=0;i<l.length;i++){const e=$(l[i]);un(e)&&(a[e]=p)}else if(l)for(const i in l){const e=$(i);if(un(e)){const t=l[i],n=a[e]=w(t)||M(t)?{type:t}:t;if(n){const t=pn(Boolean,n.type),l=pn(String,n.type);n[0]=t>-1,n[1]=l<0||t<l,(t>-1||x(n,"default"))&&o.push(e)}}}return e.__props=[a,o]}function un(e){return"$"!==e[0]}function cn(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:""}function dn(e,t){return cn(e)===cn(t)}function pn(e,t){return w(t)?t.findIndex((t=>dn(t,e))):M(t)&&dn(t,e)?0:-1}function fn(e,t,n=ta,l=!1){if(n){const a=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...l)=>{if(n.isUnmounted)return;oe(),la(n);const a=vt(t,n,e,l);return la(null),re(),a});return l?a.unshift(o):a.push(o),o}}const hn=e=>(t,n=ta)=>!oa&&fn(e,t,n),vn=hn("bm"),mn=hn("m"),gn=hn("bu"),yn=hn("u"),bn=hn("bum"),_n=hn("um"),kn=hn("rtg"),xn=hn("rtc");function wn(e,t){return En(e,null,t)}const Cn={};function Sn(e,t,n){return En(e,t,n)}function En(e,t,{immediate:n,deep:l,flush:a,onTrack:o,onTrigger:r}=p,i=ta){let s,u,c=!1;if(nt(e)?(s=()=>e.value,c=!!e._shallow):Ze(e)?(s=()=>e,l=!0):s=w(e)?()=>e.map((e=>nt(e)?e.value:Ze(e)?On(e):M(e)?ht(e,i,2,[i&&i.proxy]):void 0)):M(e)?t?()=>ht(e,i,2,[i&&i.proxy]):()=>{if(!i||!i.isUnmounted)return u&&u(),vt(e,i,3,[d])}:h,t&&l){const e=s;s=()=>On(e())}let d=e=>{u=g.options.onStop=()=>{ht(e,i,4)}},f=w(e)?[]:Cn;const v=()=>{if(g.active)if(t){const e=g();(l||c||W(e,f))&&(u&&u(),vt(t,i,3,[e,f===Cn?void 0:f,d]),f=e)}else g()};let m;v.allowRecurse=!!t,m="sync"===a?v:"post"===a?()=>tl(v,i&&i.suspense):()=>{!i||i.isMounted?function(e){At(e,xt,kt,wt)}(v):v()};const g=Q(s,{lazy:!0,onTrack:o,onTrigger:r,scheduler:m});return sa(g,i),t?n?v():f=g():"post"===a?tl(g,i&&i.suspense):g(),()=>{ee(g),i&&_(i.effects,g)}}function Mn(e,t,n){const l=this.proxy;return En(O(e)?()=>l[e]:e.bind(l),t.bind(l),n,this)}function On(e,t=new Set){if(!D(e)||t.has(e))return e;if(t.add(e),nt(e))On(e.value,t);else if(w(e))for(let n=0;n<e.length;n++)On(e[n],t);else if(S(e)||C(e))e.forEach((e=>{On(e,t)}));else for(const n in e)On(e[n],t);return e}function Tn(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return mn((()=>{e.isMounted=!0})),bn((()=>{e.isUnmounting=!0})),e}const Dn=[Function,Array],Ln={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Dn,onEnter:Dn,onAfterEnter:Dn,onEnterCancelled:Dn,onBeforeLeave:Dn,onLeave:Dn,onAfterLeave:Dn,onLeaveCancelled:Dn,onBeforeAppear:Dn,onAppear:Dn,onAfterAppear:Dn,onAppearCancelled:Dn},setup(e,{slots:t}){const n=na(),l=Tn();let a;return()=>{const o=t.default&&Vn(t.default(),!0);if(!o||!o.length)return;const r=et(e),{mode:i}=r,s=o[0];if(l.isLeaving)return Pn(s);const u=In(s);if(!u)return Pn(s);const c=An(u,r,l,n);Fn(u,c);const d=n.subTree,p=d&&In(d);let f=!1;const{getTransitionKey:h}=u.type;if(h){const e=h();void 0===a?a=e:e!==a&&(a=e,f=!0)}if(p&&p.type!==bl&&(!Ml(u,p)||f)){const e=An(p,r,l,n);if(Fn(p,e),"out-in"===i)return l.isLeaving=!0,e.afterLeave=()=>{l.isLeaving=!1,n.update()},Pn(s);"in-out"===i&&u.type!==bl&&(e.delayLeave=(e,t,n)=>{Nn(l,p)[String(p.key)]=p,e._leaveCb=()=>{t(),e._leaveCb=void 0,delete c.delayedLeave},c.delayedLeave=n})}return s}}};function Nn(e,t){const{leavingVNodes:n}=e;let l=n.get(t.type);return l||(l=Object.create(null),n.set(t.type,l)),l}function An(e,t,n,l){const{appear:a,mode:o,persisted:r=!1,onBeforeEnter:i,onEnter:s,onAfterEnter:u,onEnterCancelled:c,onBeforeLeave:d,onLeave:p,onAfterLeave:f,onLeaveCancelled:h,onBeforeAppear:v,onAppear:m,onAfterAppear:g,onAppearCancelled:y}=t,b=String(e.key),_=Nn(n,e),k=(e,t)=>{e&&vt(e,l,9,t)},x={mode:o,persisted:r,beforeEnter(t){let l=i;if(!n.isMounted){if(!a)return;l=v||i}t._leaveCb&&t._leaveCb(!0);const o=_[b];o&&Ml(e,o)&&o.el._leaveCb&&o.el._leaveCb(),k(l,[t])},enter(e){let t=s,l=u,o=c;if(!n.isMounted){if(!a)return;t=m||s,l=g||u,o=y||c}let r=!1;const i=e._enterCb=t=>{r||(r=!0,k(t?o:l,[e]),x.delayedLeave&&x.delayedLeave(),e._enterCb=void 0)};t?(t(e,i),t.length<=1&&i()):i()},leave(t,l){const a=String(e.key);if(t._enterCb&&t._enterCb(!0),n.isUnmounting)return l();k(d,[t]);let o=!1;const r=t._leaveCb=n=>{o||(o=!0,l(),k(n?h:f,[t]),t._leaveCb=void 0,_[a]===e&&delete _[a])};_[a]=e,p?(p(t,r),p.length<=1&&r()):r()},clone:e=>An(e,t,n,l)};return x}function Pn(e){if(Bn(e))return(e=Nl(e)).children=null,e}function In(e){return Bn(e)?e.children?e.children[0]:void 0:e}function Fn(e,t){6&e.shapeFlag&&e.component?Fn(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Vn(e,t=!1){let n=[],l=0;for(let a=0;a<e.length;a++){const o=e[a];o.type===gl?(128&o.patchFlag&&l++,n=n.concat(Vn(o.children,t))):(t||o.type!==bl)&&n.push(o)}if(l>1)for(let a=0;a<n.length;a++)n[a].patchFlag=-2;return n}const Bn=e=>e.type.__isKeepAlive;function $n(e,t){jn(e,"a",t)}function zn(e,t){jn(e,"da",t)}function jn(e,t,n=ta){const l=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}e()});if(fn(t,l,n),n){let e=n.parent;for(;e&&e.parent;)Bn(e.parent.vnode)&&Rn(l,t,n,e),e=e.parent}}function Rn(e,t,n,l){const a=fn(t,e,l,!0);_n((()=>{_(l[t],a)}),n)}const Hn=e=>"_"===e[0]||"$stable"===e,Wn=e=>w(e)?e.map(Il):[Il(e)],Yn=(e,t,n)=>Zt((e=>Wn(t(e))),n),qn=(e,t)=>{const n=e._ctx;for(const l in e){if(Hn(l))continue;const a=e[l];if(M(a))t[l]=Yn(0,a,n);else if(null!=a){const e=Wn(a);t[l]=()=>e}}},Kn=(e,t)=>{const n=Wn(t);e.slots.default=()=>n};function Un(e,t){if(null===Yt)return e;const n=Yt.proxy,l=e.dirs||(e.dirs=[]);for(let a=0;a<t.length;a++){let[e,o,r,i=p]=t[a];M(e)&&(e={mounted:e,updated:e}),l.push({dir:e,instance:n,value:o,oldValue:void 0,arg:r,modifiers:i})}return e}function Gn(e,t,n,l){const a=e.dirs,o=t&&t.dirs;for(let r=0;r<a.length;r++){const i=a[r];o&&(i.oldValue=o[r].value);const s=i.dir[l];s&&vt(s,n,8,[e.el,i,e,t])}}function Xn(){return{app:null,config:{isNativeTag:v,performance:!1,globalProperties:{},optionMergeStrategies:{},isCustomElement:v,errorHandler:void 0,warnHandler:void 0},mixins:[],components:{},directives:{},provides:Object.create(null)}}let Zn=0;function Jn(e,t){return function(n,l=null){null==l||D(l)||(l=null);const a=Xn(),o=new Set;let r=!1;const i=a.app={_uid:Zn++,_component:n,_props:l,_container:null,_context:a,version:va,get config(){return a.config},set config(e){},use:(e,...t)=>(o.has(e)||(e&&M(e.install)?(o.add(e),e.install(i,...t)):M(e)&&(o.add(e),e(i,...t))),i),mixin:e=>(a.mixins.includes(e)||(a.mixins.push(e),(e.props||e.emits)&&(a.deopt=!0)),i),component:(e,t)=>t?(a.components[e]=t,i):a.components[e],directive:(e,t)=>t?(a.directives[e]=t,i):a.directives[e],mount(o,s,u){if(!r){const c=Ll(n,l);return c.appContext=a,s&&t?t(c,o):e(c,o,u),r=!0,i._container=o,o.__vue_app__=i,c.component.proxy}},unmount(){r&&(e(null,i._container),delete i._container.__vue_app__)},provide:(e,t)=>(a.provides[e]=t,i)};return i}}function Qn(e){return M(e)?{setup:e,name:e.name}:e}const el={scheduler:Lt,allowRecurse:!0},tl=function(e,t){t&&t.pendingBranch?w(e)?t.effects.push(...e):t.effects.push(e):At(e,St,Ct,Et)},nl=(e,t,n,l)=>{if(w(e))return void e.forEach(((e,a)=>nl(e,t&&(w(t)?t[a]:t),n,l)));let a;if(l){if(l.type.__asyncLoader)return;a=4&l.shapeFlag?l.component.exposed||l.component.proxy:l.el}else a=null;const{i:o,r:r}=e,i=t&&t.r,s=o.refs===p?o.refs={}:o.refs,u=o.setupState;if(null!=i&&i!==r&&(O(i)?(s[i]=null,x(u,i)&&(u[i]=null)):nt(i)&&(i.value=null)),O(r)){const e=()=>{s[r]=a,x(u,r)&&(u[r]=a)};a?(e.id=-1,tl(e,n)):e()}else if(nt(r)){const e=()=>{r.value=a};a?(e.id=-1,tl(e,n)):e()}else M(r)&&ht(r,o,12,[a,s])};function ll(e){return function(e,t){const{insert:n,remove:l,patchProp:a,forcePatchProp:o,createElement:r,createText:i,createComment:s,setText:u,setElementText:c,parentNode:d,nextSibling:v,setScopeId:m=h,cloneNode:g,insertStaticContent:y}=e,_=(e,t,n,l=null,a=null,o=null,r=!1,i=null,s=!1)=>{e&&!Ml(e,t)&&(l=le(e),X(e,a,o,!0),e=null),-2===t.patchFlag&&(s=!1,t.dynamicChildren=null);const{type:u,ref:c,shapeFlag:d}=t;switch(u){case yl:k(e,t,n,l);break;case bl:w(e,t,n,l);break;case _l:null==e&&C(t,n,l,r);break;case gl:I(e,t,n,l,a,o,r,i,s);break;default:1&d?M(e,t,n,l,a,o,r,i,s):6&d?V(e,t,n,l,a,o,r,i,s):(64&d||128&d)&&u.process(e,t,n,l,a,o,r,i,s,ie)}null!=c&&a&&nl(c,e&&e.ref,o,t)},k=(e,t,l,a)=>{if(null==e)n(t.el=i(t.children),l,a);else{const n=t.el=e.el;t.children!==e.children&&u(n,t.children)}},w=(e,t,l,a)=>{null==e?n(t.el=s(t.children||""),l,a):t.el=e.el},C=(e,t,n,l)=>{[e.el,e.anchor]=y(e.children,t,n,l)},S=({el:e,anchor:t},l,a)=>{let o;for(;e&&e!==t;)o=v(e),n(e,l,a),e=o;n(t,l,a)},E=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=v(e),l(e),e=n;l(t)},M=(e,t,n,l,a,o,r,i,s)=>{r=r||"svg"===t.type,null==e?O(t,n,l,a,o,r,i,s):N(e,t,a,o,r,i,s)},O=(e,t,l,o,i,s,u,d)=>{let p,f;const{type:h,props:v,shapeFlag:m,transition:y,patchFlag:b,dirs:_}=e;if(e.el&&void 0!==g&&-1===b)p=e.el=g(e.el);else{if(p=e.el=r(e.type,s,v&&v.is,v),8&m?c(p,e.children):16&m&&D(e.children,p,null,o,i,s&&"foreignObject"!==h,u,d||!!e.dynamicChildren),_&&Gn(e,null,o,"created"),v){for(const t in v)F(t)||a(p,t,null,v[t],s,e.children,o,i,ne);(f=v.onVnodeBeforeMount)&&al(f,o,e)}T(p,e,e.scopeId,u,o)}_&&Gn(e,null,o,"beforeMount");const k=(!i||i&&!i.pendingBranch)&&y&&!y.persisted;k&&y.beforeEnter(p),n(p,t,l),((f=v&&v.onVnodeMounted)||k||_)&&tl((()=>{f&&al(f,o,e),k&&y.enter(p),_&&Gn(e,null,o,"mounted")}),i)},T=(e,t,n,l,a)=>{if(n&&m(e,n),l)for(let o=0;o<l.length;o++)m(e,l[o]);if(a){if(t===a.subTree){const t=a.vnode;T(e,t,t.scopeId,t.slotScopeIds,a.parent)}}},D=(e,t,n,l,a,o,r,i,s=0)=>{for(let u=s;u<e.length;u++){const s=e[u]=r?Fl(e[u]):Il(e[u]);_(null,s,t,n,l,a,o,r,i)}},N=(e,t,n,l,r,i,s)=>{const u=t.el=e.el;let{patchFlag:d,dynamicChildren:f,dirs:h}=t;d|=16&e.patchFlag;const v=e.props||p,m=t.props||p;let g;if((g=m.onVnodeBeforeUpdate)&&al(g,n,t,e),h&&Gn(t,e,n,"beforeUpdate"),d>0){if(16&d)P(u,t,v,m,n,l,r);else if(2&d&&v.class!==m.class&&a(u,"class",null,m.class,r),4&d&&a(u,"style",v.style,m.style,r),8&d){const i=t.dynamicProps;for(let t=0;t<i.length;t++){const s=i[t],c=v[s],d=m[s];(d!==c||o&&o(u,s))&&a(u,s,c,d,r,e.children,n,l,ne)}}1&d&&e.children!==t.children&&c(u,t.children)}else s||null!=f||P(u,t,v,m,n,l,r);const y=r&&"foreignObject"!==t.type;f?A(e.dynamicChildren,f,u,n,l,y,i):s||W(e,t,u,null,n,l,y,i,!1),((g=m.onVnodeUpdated)||h)&&tl((()=>{g&&al(g,n,t,e),h&&Gn(t,e,n,"updated")}),l)},A=(e,t,n,l,a,o,r)=>{for(let i=0;i<t.length;i++){const s=e[i],u=t[i],c=s.type===gl||!Ml(s,u)||6&s.shapeFlag||64&s.shapeFlag?d(s.el):n;_(s,u,c,null,l,a,o,r,!0)}},P=(e,t,n,l,r,i,s)=>{if(n!==l){for(const u in l){if(F(u))continue;const c=l[u],d=n[u];(c!==d||o&&o(e,u))&&a(e,u,d,c,s,t.children,r,i,ne)}if(n!==p)for(const o in n)F(o)||o in l||a(e,o,n[o],null,s,t.children,r,i,ne)}},I=(e,t,l,a,o,r,s,u,c)=>{const d=t.el=e?e.el:i(""),p=t.anchor=e?e.anchor:i("");let{patchFlag:f,dynamicChildren:h,slotScopeIds:v}=t;f>0&&(c=!0),v&&(u=u?u.concat(v):v),null==e?(n(d,l,a),n(p,l,a),D(t.children,l,p,o,r,s,u,c)):f>0&&64&f&&h&&e.dynamicChildren?(A(e.dynamicChildren,h,l,o,r,s,u),(null!=t.key||o&&t===o.subTree)&&ol(e,t,!0)):W(e,t,l,p,o,r,s,u,c)},V=(e,t,n,l,a,o,r,i,s)=>{t.slotScopeIds=i,null==e?512&t.shapeFlag?a.ctx.activate(t,n,l,r,s):B(t,n,l,a,o,r,s):z(e,t,s)},B=(e,t,n,l,a,o,r)=>{const i=e.component=function(e,t,n){const l=e.type,a=(t?t.appContext:e.appContext)||Ql,o={uid:ea++,vnode:e,type:l,parent:t,appContext:a,root:null,next:null,subTree:null,update:null,render:null,proxy:null,exposed:null,withProxy:null,effects:null,provides:t?t.provides:Object.create(a.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:sn(l,a),emitsOptions:$t(l,a),emit:null,emitted:null,propsDefaults:p,ctx:p,data:p,props:p,attrs:p,slots:p,refs:p,setupState:p,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null};return o.ctx={_:o},o.root=t?t.root:o,o.emit=Bt.bind(null,o),o}(e,l,a);if(Bn(e)&&(i.ctx.renderer=ie),function(e,t=!1){oa=t;const{props:n,children:l}=e.vnode,a=aa(e);an(e,n,a,t),((e,t)=>{if(32&e.vnode.shapeFlag){const n=t._;n?(e.slots=t,q(t,"_",n)):qn(t,e.slots={})}else e.slots={},t&&Kn(e,t);q(e.slots,Ol,1)})(e,l);const o=a?function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Zl);const{setup:l}=n;if(l){const n=e.setupContext=l.length>1?function(e){const t=t=>{e.exposed=ut(t)};return{attrs:e.attrs,slots:e.slots,emit:e.emit,expose:t}}(e):null;ta=e,oe();const a=ht(l,e,0,[e.props,n]);if(re(),ta=null,L(a)){if(t)return a.then((t=>{ra(e,t)})).catch((t=>{mt(t,e,0)}));e.asyncDep=a}else ra(e,a)}else ia(e)}(e,t):void 0;oa=!1}(i),i.asyncDep){if(a&&a.registerDep(i,R),!e.el){const e=i.subTree=Ll(bl);w(null,e,t,n)}}else R(i,e,t,n,a,o,r)},z=(e,t,n)=>{const l=t.component=e.component;if(function(e,t,n){const{props:l,children:a,component:o}=e,{props:r,children:i,patchFlag:s}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&s>=0))return!(!a&&!i||i&&i.$stable)||l!==r&&(l?!r||nn(l,r,u):!!r);if(1024&s)return!0;if(16&s)return l?nn(l,r,u):!!r;if(8&s){const e=t.dynamicProps;for(let t=0;t<e.length;t++){const n=e[t];if(r[n]!==l[n]&&!zt(u,n))return!0}}return!1}(e,t,n)){if(l.asyncDep&&!l.asyncResolved)return void H(l,t,n);l.next=t,function(e){const t=bt.indexOf(e);t>_t&&bt.splice(t,1)}(l.update),l.update()}else t.component=e.component,t.el=e.el,l.vnode=t},R=(e,t,n,l,a,o,r)=>{e.update=Q((function(){if(e.isMounted){let t,{next:n,bu:l,u:i,parent:s,vnode:u}=e,c=n;n?(n.el=u.el,H(e,n,r)):n=u,l&&Y(l),(t=n.props&&n.props.onVnodeBeforeUpdate)&&al(t,s,n,u);const p=Jt(e),f=e.subTree;e.subTree=p,_(f,p,d(f.el),le(f),e,a,o),n.el=p.el,null===c&&function({vnode:e,parent:t},n){for(;t&&t.subTree===e;)(e=t.vnode).el=n,t=t.parent}(e,p.el),i&&tl(i,a),(t=n.props&&n.props.onVnodeUpdated)&&tl((()=>{al(t,s,n,u)}),a)}else{let r;const{el:i,props:s}=t,{bm:u,m:c,parent:d}=e;u&&Y(u),(r=s&&s.onVnodeBeforeMount)&&al(r,d,t);const p=e.subTree=Jt(e);if(i&&ce?ce(t.el,p,e,a,null):(_(null,p,n,l,e,a,o),t.el=p.el),c&&tl(c,a),r=s&&s.onVnodeMounted){const e=t;tl((()=>{al(r,d,e)}),a)}const{a:f}=e;f&&256&t.shapeFlag&&tl(f,a),e.isMounted=!0,t=n=l=null}}),el)},H=(e,t,n)=>{t.component=e;const l=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,l){const{props:a,attrs:o,vnode:{patchFlag:r}}=e,i=et(a),[s]=e.propsOptions;if(!(l||r>0)||16&r){let l;on(e,t,a,o);for(const o in i)t&&(x(t,o)||(l=j(o))!==o&&x(t,l))||(s?!n||void 0===n[o]&&void 0===n[l]||(a[o]=rn(s,t||p,o,void 0,e)):delete a[o]);if(o!==i)for(const e in o)t&&x(t,e)||delete o[e]}else if(8&r){const n=e.vnode.dynamicProps;for(let l=0;l<n.length;l++){const r=n[l],u=t[r];if(s)if(x(o,r))o[r]=u;else{const t=$(r);a[t]=rn(s,i,t,u,e)}else o[r]=u}}se(e,"set","$attrs")}(e,t.props,l,n),((e,t,n)=>{const{vnode:l,slots:a}=e;let o=!0,r=p;if(32&l.shapeFlag){const e=t._;e?n&&1===e?o=!1:(b(a,t),n||1!==e||delete a._):(o=!t.$stable,qn(t,a)),r=t}else t&&(Kn(e,t),r={default:1});if(o)for(const i in a)Hn(i)||i in r||delete a[i]})(e,t.children,n),oe(),Pt(void 0,e.update),re()},W=(e,t,n,l,a,o,r,i,s=!1)=>{const u=e&&e.children,d=e?e.shapeFlag:0,p=t.children,{patchFlag:f,shapeFlag:h}=t;if(f>0){if(128&f)return void U(u,p,n,l,a,o,r,i,s);if(256&f)return void K(u,p,n,l,a,o,r,i,s)}8&h?(16&d&&ne(u,a,o),p!==u&&c(n,p)):16&d?16&h?U(u,p,n,l,a,o,r,i,s):ne(u,a,o,!0):(8&d&&c(n,""),16&h&&D(p,n,l,a,o,r,i,s))},K=(e,t,n,l,a,o,r,i,s)=>{t=t||f;const u=(e=e||f).length,c=t.length,d=Math.min(u,c);let p;for(p=0;p<d;p++){const l=t[p]=s?Fl(t[p]):Il(t[p]);_(e[p],l,n,null,a,o,r,i,s)}u>c?ne(e,a,o,!0,!1,d):D(t,n,l,a,o,r,i,s,d)},U=(e,t,n,l,a,o,r,i,s)=>{let u=0;const c=t.length;let d=e.length-1,p=c-1;for(;u<=d&&u<=p;){const l=e[u],c=t[u]=s?Fl(t[u]):Il(t[u]);if(!Ml(l,c))break;_(l,c,n,null,a,o,r,i,s),u++}for(;u<=d&&u<=p;){const l=e[d],u=t[p]=s?Fl(t[p]):Il(t[p]);if(!Ml(l,u))break;_(l,u,n,null,a,o,r,i,s),d--,p--}if(u>d){if(u<=p){const e=p+1,d=e<c?t[e].el:l;for(;u<=p;)_(null,t[u]=s?Fl(t[u]):Il(t[u]),n,d,a,o,r,i,s),u++}}else if(u>p)for(;u<=d;)X(e[u],a,o,!0),u++;else{const h=u,v=u,m=new Map;for(u=v;u<=p;u++){const e=t[u]=s?Fl(t[u]):Il(t[u]);null!=e.key&&m.set(e.key,u)}let g,y=0;const b=p-v+1;let k=!1,x=0;const w=new Array(b);for(u=0;u<b;u++)w[u]=0;for(u=h;u<=d;u++){const l=e[u];if(y>=b){X(l,a,o,!0);continue}let c;if(null!=l.key)c=m.get(l.key);else for(g=v;g<=p;g++)if(0===w[g-v]&&Ml(l,t[g])){c=g;break}void 0===c?X(l,a,o,!0):(w[c-v]=u+1,c>=x?x=c:k=!0,_(l,t[c],n,null,a,o,r,i,s),y++)}const C=k?function(e){const t=e.slice(),n=[0];let l,a,o,r,i;const s=e.length;for(l=0;l<s;l++){const s=e[l];if(0!==s){if(a=n[n.length-1],e[a]<s){t[l]=a,n.push(l);continue}for(o=0,r=n.length-1;o<r;)i=(o+r)/2|0,e[n[i]]<s?o=i+1:r=i;s<e[n[o]]&&(o>0&&(t[l]=n[o-1]),n[o]=l)}}o=n.length,r=n[o-1];for(;o-- >0;)n[o]=r,r=t[r];return n}(w):f;for(g=C.length-1,u=b-1;u>=0;u--){const e=v+u,d=t[e],p=e+1<c?t[e+1].el:l;0===w[u]?_(null,d,n,p,a,o,r,i,s):k&&(g<0||u!==C[g]?G(d,n,p,2):g--)}}},G=(e,t,l,a,o=null)=>{const{el:r,type:i,transition:s,children:u,shapeFlag:c}=e;if(6&c)return void G(e.component.subTree,t,l,a);if(128&c)return void e.suspense.move(t,l,a);if(64&c)return void i.move(e,t,l,ie);if(i===gl){n(r,t,l);for(let e=0;e<u.length;e++)G(u[e],t,l,a);return void n(e.anchor,t,l)}if(i===_l)return void S(e,t,l);if(2!==a&&1&c&&s)if(0===a)s.beforeEnter(r),n(r,t,l),tl((()=>s.enter(r)),o);else{const{leave:e,delayLeave:a,afterLeave:o}=s,i=()=>n(r,t,l),u=()=>{e(r,(()=>{i(),o&&o()}))};a?a(r,i,u):u()}else n(r,t,l)},X=(e,t,n,l=!1,a=!1)=>{const{type:o,props:r,ref:i,children:s,dynamicChildren:u,shapeFlag:c,patchFlag:d,dirs:p}=e;if(null!=i&&nl(i,null,n,null),256&c)return void t.ctx.deactivate(e);const f=1&c&&p;let h;if((h=r&&r.onVnodeBeforeUnmount)&&al(h,t,e),6&c)te(e.component,n,l);else{if(128&c)return void e.suspense.unmount(n,l);f&&Gn(e,null,t,"beforeUnmount"),64&c?e.type.remove(e,t,n,a,ie,l):u&&(o!==gl||d>0&&64&d)?ne(u,t,n,!1,!0):(o===gl&&(128&d||256&d)||!a&&16&c)&&ne(s,t,n),l&&Z(e)}((h=r&&r.onVnodeUnmounted)||f)&&tl((()=>{h&&al(h,t,e),f&&Gn(e,null,t,"unmounted")}),n)},Z=e=>{const{type:t,el:n,anchor:a,transition:o}=e;if(t===gl)return void J(n,a);if(t===_l)return void E(e);const r=()=>{l(n),o&&!o.persisted&&o.afterLeave&&o.afterLeave()};if(1&e.shapeFlag&&o&&!o.persisted){const{leave:t,delayLeave:l}=o,a=()=>t(n,r);l?l(e.el,r,a):a()}else r()},J=(e,t)=>{let n;for(;e!==t;)n=v(e),l(e),e=n;l(t)},te=(e,t,n)=>{const{bum:l,effects:a,update:o,subTree:r,um:i}=e;if(l&&Y(l),a)for(let s=0;s<a.length;s++)ee(a[s]);o&&(ee(o),X(r,e,t,n)),i&&tl(i,t),tl((()=>{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve())},ne=(e,t,n,l=!1,a=!1,o=0)=>{for(let r=o;r<e.length;r++)X(e[r],t,n,l,a)},le=e=>6&e.shapeFlag?le(e.component.subTree):128&e.shapeFlag?e.suspense.next():v(e.anchor||e.el),ae=(e,t,n)=>{null==e?t._vnode&&X(t._vnode,null,null,!0):_(t._vnode||null,e,t,null,null,null,n),It(),t._vnode=e},ie={p:_,um:X,m:G,r:Z,mt:B,mc:D,pc:W,pbc:A,n:le,o:e};let ue,ce;t&&([ue,ce]=t(ie));return{render:ae,hydrate:ue,createApp:Jn(ae,ue)}}(e)}function al(e,t,n,l=null){vt(e,t,7,[n,l])}function ol(e,t,n=!1){const l=e.children,a=t.children;if(w(l)&&w(a))for(let o=0;o<l.length;o++){const e=l[o];let t=a[o];1&t.shapeFlag&&!t.dynamicChildren&&((t.patchFlag<=0||32===t.patchFlag)&&(t=a[o]=Fl(a[o]),t.el=e.el),n||ol(e,t))}}const rl=e=>e&&(e.disabled||""===e.disabled),il=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,sl=(e,t)=>{const n=e&&e.to;if(O(n)){if(t){return t(n)}return null}return n};function ul(e,t,n,{o:{insert:l},m:a},o=2){0===o&&l(e.targetAnchor,t,n);const{el:r,anchor:i,shapeFlag:s,children:u,props:c}=e,d=2===o;if(d&&l(r,t,n),(!d||rl(c))&&16&s)for(let p=0;p<u.length;p++)a(u[p],t,n,2);d&&l(i,t,n)}const cl={__isTeleport:!0,process(e,t,n,l,a,o,r,i,s,u){const{mc:c,pc:d,pbc:p,o:{insert:f,querySelector:h,createText:v,createComment:m}}=u,g=rl(t.props),{shapeFlag:y,children:b}=t;if(null==e){const e=t.el=v(""),u=t.anchor=v("");f(e,n,l),f(u,n,l);const d=t.target=sl(t.props,h),p=t.targetAnchor=v("");d&&(f(p,d),r=r||il(d));const m=(e,t)=>{16&y&&c(b,e,t,a,o,r,i,s)};g?m(n,u):d&&m(d,p)}else{t.el=e.el;const l=t.anchor=e.anchor,c=t.target=e.target,f=t.targetAnchor=e.targetAnchor,v=rl(e.props),m=v?n:c,y=v?l:f;if(r=r||il(c),t.dynamicChildren?(p(e.dynamicChildren,t.dynamicChildren,m,a,o,r,i),ol(e,t,!0)):s||d(e,t,m,y,a,o,r,i,!1),g)v||ul(t,n,l,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const e=t.target=sl(t.props,h);e&&ul(t,e,null,u,0)}else v&&ul(t,c,f,u,1)}},remove(e,t,n,l,{um:a,o:{remove:o}},r){const{shapeFlag:i,children:s,anchor:u,targetAnchor:c,target:d,props:p}=e;if(d&&o(c),(r||!rl(p))&&(o(u),16&i))for(let f=0;f<s.length;f++)a(s[f],t,n,!0,l)},move:ul,hydrate:function(e,t,n,l,a,o,{o:{nextSibling:r,parentNode:i,querySelector:s}},u){const c=t.target=sl(t.props,s);if(c){const s=c._lpa||c.firstChild;16&t.shapeFlag&&(rl(t.props)?(t.anchor=u(r(e),t,i(e),n,l,a,o),t.targetAnchor=s):(t.anchor=r(e),t.targetAnchor=u(s,t,c,n,l,a,o)),c._lpa=t.targetAnchor&&r(t.targetAnchor))}return t.anchor&&r(t.anchor)}};function dl(e,t){return vl("components",e,!0,t)||e}const pl=Symbol();function fl(e){return O(e)?vl("components",e,!1)||e:e||pl}function hl(e){return vl("directives",e)}function vl(e,t,n=!0,l=!1){const a=Yt||ta;if(a){const n=a.type;if("components"===e){const e=ua(n);if(e&&(e===t||e===$(t)||e===R($(t))))return n}const o=ml(a[e]||n[e],t)||ml(a.appContext[e],t);return!o&&l?n:o}}function ml(e,t){return e&&(e[t]||e[$(t)]||e[R($(t))])}const gl=Symbol(void 0),yl=Symbol(void 0),bl=Symbol(void 0),_l=Symbol(void 0),kl=[];let xl=null;function wl(e=!1){kl.push(xl=e?null:[])}function Cl(){kl.pop(),xl=kl[kl.length-1]||null}function Sl(e,t,n,l,a){const o=Ll(e,t,n,l,a,!0);return o.dynamicChildren=xl||f,Cl(),xl&&xl.push(o),o}function El(e){return!!e&&!0===e.__v_isVNode}function Ml(e,t){return e.type===t.type&&e.key===t.key}const Ol="__vInternal",Tl=({key:e})=>null!=e?e:null,Dl=({ref:e})=>null!=e?O(e)||nt(e)||M(e)?{i:Yt,r:e}:e:null,Ll=function(e,t=null,n=null,a=0,o=null,r=!1){e&&e!==pl||(e=bl);if(El(e)){const l=Nl(e,t,!0);return n&&Vl(l,n),l}s=e,M(s)&&"__vccOpts"in s&&(e=e.__vccOpts);var s;if(t){(Qe(t)||Ol in t)&&(t=b({},t));let{class:e,style:n}=t;e&&!O(e)&&(t.class=i(e)),D(n)&&(Qe(n)&&!w(n)&&(n=b({},n)),t.style=l(n))}const u=O(e)?1:(e=>e.__isSuspense)(e)?128:(e=>e.__isTeleport)(e)?64:D(e)?4:M(e)?2:0,c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Tl(t),ref:t&&Dl(t),scopeId:qt,slotScopeIds:null,children:null,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:u,patchFlag:a,dynamicProps:o,dynamicChildren:null,appContext:null};if(Vl(c,n),128&u){const{content:e,fallback:t}=function(e){const{shapeFlag:t,children:n}=e;let l,a;return 32&t?(l=ln(n.default),a=ln(n.fallback)):(l=ln(n),a=Il(null)),{content:l,fallback:a}}(c);c.ssContent=e,c.ssFallback=t}!r&&xl&&(a>0||6&u)&&32!==a&&xl.push(c);return c};function Nl(e,t,n=!1){const{props:l,ref:a,patchFlag:o,children:r}=e,i=t?Bl(l||{},t):l;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:i,key:i&&Tl(i),ref:t&&t.ref?n&&a?w(a)?a.concat(Dl(t)):[a,Dl(t)]:Dl(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==gl?-1===o?16:16|o:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Nl(e.ssContent),ssFallback:e.ssFallback&&Nl(e.ssFallback),el:e.el,anchor:e.anchor}}function Al(e=" ",t=0){return Ll(yl,null,e,t)}function Pl(e="",t=!1){return t?(wl(),Sl(bl,null,e)):Ll(bl,null,e)}function Il(e){return null==e||"boolean"==typeof e?Ll(bl):w(e)?Ll(gl,null,e):"object"==typeof e?null===e.el?e:Nl(e):Ll(yl,null,String(e))}function Fl(e){return null===e.el?e:Nl(e)}function Vl(e,t){let n=0;const{shapeFlag:l}=e;if(null==t)t=null;else if(w(t))n=16;else if("object"==typeof t){if(1&l||64&l){const n=t.default;return void(n&&(n._c&&Rt(1),Vl(e,n()),n._c&&Rt(-1)))}{n=32;const l=t._;l||Ol in t?3===l&&Yt&&(1024&Yt.vnode.patchFlag?(t._=2,e.patchFlag|=1024):t._=1):t._ctx=Yt}}else M(t)?(t={default:t,_ctx:Yt},n=32):(t=String(t),64&l?(n=16,t=[Al(t)]):n=8);e.children=t,e.shapeFlag|=n}function Bl(...e){const t=b({},e[0]);for(let n=1;n<e.length;n++){const a=e[n];for(const e in a)if("class"===e)t.class!==a.class&&(t.class=i([t.class,a.class]));else if("style"===e)t.style=l([t.style,a.style]);else if(g(e)){const n=t[e],l=a[e];n!==l&&(t[e]=n?[].concat(n,a[e]):l)}else""!==e&&(t[e]=a[e])}return t}function $l(e,t){if(ta){let n=ta.provides;const l=ta.parent&&ta.parent.provides;l===n&&(n=ta.provides=Object.create(l)),n[e]=t}else;}function zl(e,t,n=!1){const l=ta||Yt;if(l){const a=null==l.parent?l.vnode.appContext&&l.vnode.appContext.provides:l.parent.provides;if(a&&e in a)return a[e];if(arguments.length>1)return n&&M(t)?t():t}}let jl=!0;function Rl(e,t,n=[],l=[],a=[],o=!1){const{mixins:r,extends:i,data:s,computed:u,methods:c,watch:d,provide:f,inject:v,components:m,directives:g,beforeMount:y,mounted:_,beforeUpdate:k,updated:x,activated:C,deactivated:S,beforeDestroy:E,beforeUnmount:O,destroyed:T,unmounted:L,render:N,renderTracked:A,renderTriggered:P,errorCaptured:I,expose:F}=t,V=e.proxy,B=e.ctx,$=e.appContext.mixins;if(o&&N&&e.render===h&&(e.render=N),o||(jl=!1,Hl("beforeCreate","bc",t,e,$),jl=!0,Yl(e,$,n,l,a)),i&&Rl(e,i,n,l,a,!0),r&&Yl(e,r,n,l,a),v)if(w(v))for(let p=0;p<v.length;p++){const e=v[p];B[e]=zl(e)}else for(const p in v){const e=v[p];D(e)?B[p]=zl(e.from||p,e.default,!0):B[p]=zl(e)}if(c)for(const p in c){const e=c[p];M(e)&&(B[p]=e.bind(V))}if(o?s&&n.push(s):(n.length&&n.forEach((t=>ql(e,t,V))),s&&ql(e,s,V)),u)for(const p in u){const e=u[p],t=ca({get:M(e)?e.bind(V,V):M(e.get)?e.get.bind(V,V):h,set:!M(e)&&M(e.set)?e.set.bind(V):h});Object.defineProperty(B,p,{enumerable:!0,configurable:!0,get:()=>t.value,set:e=>t.value=e})}if(d&&l.push(d),!o&&l.length&&l.forEach((e=>{for(const t in e)Kl(e[t],B,V,t)})),f&&a.push(f),!o&&a.length&&a.forEach((e=>{const t=M(e)?e.call(V):e;Reflect.ownKeys(t).forEach((e=>{$l(e,t[e])}))})),o&&(m&&b(e.components||(e.components=b({},e.type.components)),m),g&&b(e.directives||(e.directives=b({},e.type.directives)),g)),o||Hl("created","c",t,e,$),y&&vn(y.bind(V)),_&&mn(_.bind(V)),k&&gn(k.bind(V)),x&&yn(x.bind(V)),C&&$n(C.bind(V)),S&&zn(S.bind(V)),I&&((e,t=ta)=>{fn("ec",e,t)})(I.bind(V)),A&&xn(A.bind(V)),P&&kn(P.bind(V)),O&&bn(O.bind(V)),L&&_n(L.bind(V)),w(F)&&!o)if(F.length){const t=e.exposed||(e.exposed=ut({}));F.forEach((e=>{t[e]=pt(V,e)}))}else e.exposed||(e.exposed=p)}function Hl(e,t,n,l,a){for(let o=0;o<a.length;o++)Wl(e,t,a[o],l);Wl(e,t,n,l)}function Wl(e,t,n,l){const{extends:a,mixins:o}=n,r=n[e];if(a&&Wl(e,t,a,l),o)for(let i=0;i<o.length;i++)Wl(e,t,o[i],l);r&&vt(r.bind(l.proxy),l,t)}function Yl(e,t,n,l,a){for(let o=0;o<t.length;o++)Rl(e,t[o],n,l,a,!0)}function ql(e,t,n){jl=!1;const l=t.call(n,n);jl=!0,D(l)&&(e.data===p?e.data=Ue(l):b(e.data,l))}function Kl(e,t,n,l){const a=l.includes(".")?function(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}(n,l):()=>n[l];if(O(e)){const n=t[e];M(n)&&Sn(a,n)}else if(M(e))Sn(a,e.bind(n));else if(D(e))if(w(e))e.forEach((e=>Kl(e,t,n,l)));else{const l=M(e.handler)?e.handler.bind(n):t[e.handler];M(l)&&Sn(a,l,e)}}function Ul(e,t,n){const l=n.appContext.config.optionMergeStrategies,{mixins:a,extends:o}=t;o&&Ul(e,o,n),a&&a.forEach((t=>Ul(e,t,n)));for(const r in t)l&&x(l,r)?e[r]=l[r](e[r],t[r],n.proxy,r):e[r]=t[r]}const Gl=e=>e?aa(e)?e.exposed?e.exposed:e.proxy:Gl(e.parent):null,Xl=b(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Gl(e.parent),$root:e=>Gl(e.root),$emit:e=>e.emit,$options:e=>function(e){const t=e.type,{__merged:n,mixins:l,extends:a}=t;if(n)return n;const o=e.appContext.mixins;if(!o.length&&!l&&!a)return t;const r={};return o.forEach((t=>Ul(r,t,e))),Ul(r,t,e),t.__merged=r}(e),$forceUpdate:e=>()=>Lt(e.update),$nextTick:e=>Dt.bind(e.proxy),$watch:e=>Mn.bind(e)}),Zl={get({_:e},t){const{ctx:n,setupState:l,data:a,props:o,accessCache:r,type:i,appContext:s}=e;if("__v_skip"===t)return!0;let u;if("$"!==t[0]){const i=r[t];if(void 0!==i)switch(i){case 0:return l[t];case 1:return a[t];case 3:return n[t];case 2:return o[t]}else{if(l!==p&&x(l,t))return r[t]=0,l[t];if(a!==p&&x(a,t))return r[t]=1,a[t];if((u=e.propsOptions[0])&&x(u,t))return r[t]=2,o[t];if(n!==p&&x(n,t))return r[t]=3,n[t];jl&&(r[t]=4)}}const c=Xl[t];let d,f;return c?("$attrs"===t&&ie(e,0,t),c(e)):(d=i.__cssModules)&&(d=d[t])?d:n!==p&&x(n,t)?(r[t]=3,n[t]):(f=s.config.globalProperties,x(f,t)?f[t]:void 0)},set({_:e},t,n){const{data:l,setupState:a,ctx:o}=e;if(a!==p&&x(a,t))a[t]=n;else if(l!==p&&x(l,t))l[t]=n;else if(x(e.props,t))return!1;return("$"!==t[0]||!(t.slice(1)in e))&&(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:l,appContext:a,propsOptions:o}},r){let i;return void 0!==n[r]||e!==p&&x(e,r)||t!==p&&x(t,r)||(i=o[0])&&x(i,r)||x(l,r)||x(Xl,r)||x(a.config.globalProperties,r)}},Jl=b({},Zl,{get(e,t){if(t!==Symbol.unscopables)return Zl.get(e,t,e)},has:(e,n)=>"_"!==n[0]&&!t(n)}),Ql=Xn();let ea=0;let ta=null;const na=()=>ta||Yt,la=e=>{ta=e};function aa(e){return 4&e.vnode.shapeFlag}let oa=!1;function ra(e,t,n){M(t)?e.render=t:D(t)&&(e.setupState=ut(t)),ia(e)}function ia(e,t){const n=e.type;e.render||(e.render=n.render||h,e.render._rc&&(e.withProxy=new Proxy(e.ctx,Jl))),ta=e,oe(),Rl(e,n),re(),ta=null}function sa(e,t=ta){t&&(t.effects||(t.effects=[])).push(e)}function ua(e){return M(e)&&e.displayName||e.name}function ca(e){const t=function(e){let t,n;return M(e)?(t=e,n=h):(t=e.get,n=e.set),new ft(t,n,M(e)||!e.set)}(e);return sa(t.effect),t}function da(e,t,n){const l=arguments.length;return 2===l?D(t)&&!w(t)?El(t)?Ll(e,null,[t]):Ll(e,t):Ll(e,null,t):(l>3?n=Array.prototype.slice.call(arguments,2):3===l&&El(n)&&(n=[n]),Ll(e,t,n))}function pa(e,t){let n;if(w(e)||O(e)){n=new Array(e.length);for(let l=0,a=e.length;l<a;l++)n[l]=t(e[l],l)}else if("number"==typeof e){n=new Array(e);for(let l=0;l<e;l++)n[l]=t(l+1,l)}else if(D(e))if(e[Symbol.iterator])n=Array.from(e,t);else{const l=Object.keys(e);n=new Array(l.length);for(let a=0,o=l.length;a<o;a++){const o=l[a];n[a]=t(e[o],o,a)}}else n=[];return n}function fa(e){const t={};for(const n in e)t[H(n)]=e[n];return t}function ha(e,t){for(let n=0;n<t.length;n++){const l=t[n];if(w(l))for(let t=0;t<l.length;t++)e[l[t].name]=l[t].fn;else l&&(e[l.name]=l.fn)}return e}const va="3.0.11",ma="http://www.w3.org/2000/svg",ga="undefined"!=typeof document?document:null;let ya,ba;const _a={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,l)=>{const a=t?ga.createElementNS(ma,e):ga.createElement(e,n?{is:n}:void 0);return"select"===e&&l&&null!=l.multiple&&a.setAttribute("multiple",l.multiple),a},createText:e=>ga.createTextNode(e),createComment:e=>ga.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ga.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,l){const a=l?ba||(ba=ga.createElementNS(ma,"svg")):ya||(ya=ga.createElement("div"));a.innerHTML=e;const o=a.firstChild;let r=o,i=r;for(;r;)i=r,_a.insert(r,t,n),r=a.firstChild;return[o,i]}};const ka=/\s*!important$/;function xa(e,t,n){if(w(n))n.forEach((n=>xa(e,t,n)));else if(t.startsWith("--"))e.setProperty(t,n);else{const l=function(e,t){const n=Ca[t];if(n)return n;let l=$(t);if("filter"!==l&&l in e)return Ca[t]=l;l=R(l);for(let a=0;a<wa.length;a++){const n=wa[a]+l;if(n in e)return Ca[t]=n}return t}(e,t);ka.test(n)?e.setProperty(j(l),n.replace(ka,""),"important"):e[l]=n}}const wa=["Webkit","Moz","ms"],Ca={};const Sa="http://www.w3.org/1999/xlink";let Ea=Date.now,Ma=!1;if("undefined"!=typeof window){Ea()>document.createEvent("Event").timeStamp&&(Ea=()=>performance.now());const e=navigator.userAgent.match(/firefox\/(\d+)/i);Ma=!!(e&&Number(e[1])<=53)}let Oa=0;const Ta=Promise.resolve(),Da=()=>{Oa=0};function La(e,t,n,l){e.addEventListener(t,n,l)}function Na(e,t,n,l,a=null){const o=e._vei||(e._vei={}),r=o[t];if(l&&r)r.value=l;else{const[n,i]=function(e){let t;if(Aa.test(e)){let n;for(t={};n=e.match(Aa);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[j(e.slice(2)),t]}(t);if(l){La(e,n,o[t]=function(e,t){const n=e=>{const l=e.timeStamp||Ea();(Ma||l>=n.attached-1)&&vt(function(e,t){if(w(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e(t)))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=(()=>Oa||(Ta.then(Da),Oa=Ea()))(),n}(l,a),i)}else r&&(!function(e,t,n,l){e.removeEventListener(t,n,l)}(e,n,r,i),o[t]=void 0)}}const Aa=/(?:Once|Passive|Capture)$/;const Pa=/^on[a-z]/;const Ia=(e,{slots:t})=>da(Ln,Ba(e),t);Ia.displayName="Transition";const Fa={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Va=Ia.props=b({},Ln.props,Fa);function Ba(e){let{name:t="v",type:n,css:l=!0,duration:a,enterFromClass:o=`${t}-enter-from`,enterActiveClass:r=`${t}-enter-active`,enterToClass:i=`${t}-enter-to`,appearFromClass:s=o,appearActiveClass:u=r,appearToClass:c=i,leaveFromClass:d=`${t}-leave-from`,leaveActiveClass:p=`${t}-leave-active`,leaveToClass:f=`${t}-leave-to`}=e;const h={};for(const b in e)b in Fa||(h[b]=e[b]);if(!l)return h;const v=function(e){if(null==e)return null;if(D(e))return[$a(e.enter),$a(e.leave)];{const t=$a(e);return[t,t]}}(a),m=v&&v[0],g=v&&v[1],{onBeforeEnter:y,onEnter:_,onEnterCancelled:k,onLeave:x,onLeaveCancelled:w,onBeforeAppear:C=y,onAppear:S=_,onAppearCancelled:E=k}=h,M=(e,t,n)=>{ja(e,t?c:i),ja(e,t?u:r),n&&n()},O=(e,t)=>{ja(e,f),ja(e,p),t&&t()},T=e=>(t,l)=>{const a=e?S:_,r=()=>M(t,e,l);a&&a(t,r),Ra((()=>{ja(t,e?s:o),za(t,e?c:i),a&&a.length>1||Wa(t,n,m,r)}))};return b(h,{onBeforeEnter(e){y&&y(e),za(e,o),za(e,r)},onBeforeAppear(e){C&&C(e),za(e,s),za(e,u)},onEnter:T(!1),onAppear:T(!0),onLeave(e,t){const l=()=>O(e,t);za(e,d),Ua(),za(e,p),Ra((()=>{ja(e,d),za(e,f),x&&x.length>1||Wa(e,n,g,l)})),x&&x(e,l)},onEnterCancelled(e){M(e,!1),k&&k(e)},onAppearCancelled(e){M(e,!0),E&&E(e)},onLeaveCancelled(e){O(e),w&&w(e)}})}function $a(e){return K(e)}function za(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.add(t))),(e._vtc||(e._vtc=new Set)).add(t)}function ja(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.remove(t)));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function Ra(e){requestAnimationFrame((()=>{requestAnimationFrame(e)}))}let Ha=0;function Wa(e,t,n,l){const a=e._endId=++Ha,o=()=>{a===e._endId&&l()};if(n)return setTimeout(o,n);const{type:r,timeout:i,propCount:s}=Ya(e,t);if(!r)return l();const u=r+"end";let c=0;const d=()=>{e.removeEventListener(u,p),o()},p=t=>{t.target===e&&++c>=s&&d()};setTimeout((()=>{c<s&&d()}),i+1),e.addEventListener(u,p)}function Ya(e,t){const n=window.getComputedStyle(e),l=e=>(n[e]||"").split(", "),a=l("transitionDelay"),o=l("transitionDuration"),r=qa(a,o),i=l("animationDelay"),s=l("animationDuration"),u=qa(i,s);let c=null,d=0,p=0;"transition"===t?r>0&&(c="transition",d=r,p=o.length):"animation"===t?u>0&&(c="animation",d=u,p=s.length):(d=Math.max(r,u),c=d>0?r>u?"transition":"animation":null,p=c?"transition"===c?o.length:s.length:0);return{type:c,timeout:d,propCount:p,hasTransform:"transition"===c&&/\b(transform|all)(,|$)/.test(n.transitionProperty)}}function qa(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map(((t,n)=>Ka(t)+Ka(e[n]))))}function Ka(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function Ua(){return document.body.offsetHeight}const Ga=new WeakMap,Xa=new WeakMap,Za={name:"TransitionGroup",props:b({},Va,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=na(),l=Tn();let a,o;return yn((()=>{if(!a.length)return;const t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){const l=e.cloneNode();e._vtc&&e._vtc.forEach((e=>{e.split(/\s+/).forEach((e=>e&&l.classList.remove(e)))}));n.split(/\s+/).forEach((e=>e&&l.classList.add(e))),l.style.display="none";const a=1===t.nodeType?t:t.parentNode;a.appendChild(l);const{hasTransform:o}=Ya(l);return a.removeChild(l),o}(a[0].el,n.vnode.el,t))return;a.forEach(Ja),a.forEach(Qa);const l=a.filter(eo);Ua(),l.forEach((e=>{const n=e.el,l=n.style;za(n,t),l.transform=l.webkitTransform=l.transitionDuration="";const a=n._moveCb=e=>{e&&e.target!==n||e&&!/transform$/.test(e.propertyName)||(n.removeEventListener("transitionend",a),n._moveCb=null,ja(n,t))};n.addEventListener("transitionend",a)}))})),()=>{const r=et(e),i=Ba(r),s=r.tag||gl;a=o,o=t.default?Vn(t.default()):[];for(let e=0;e<o.length;e++){const t=o[e];null!=t.key&&Fn(t,An(t,i,l,n))}if(a)for(let e=0;e<a.length;e++){const t=a[e];Fn(t,An(t,i,l,n)),Ga.set(t,t.el.getBoundingClientRect())}return Ll(s,null,o)}}};function Ja(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function Qa(e){Xa.set(e,e.el.getBoundingClientRect())}function eo(e){const t=Ga.get(e),n=Xa.get(e),l=t.left-n.left,a=t.top-n.top;if(l||a){const t=e.el.style;return t.transform=t.webkitTransform=`translate(${l}px,${a}px)`,t.transitionDuration="0s",e}}const to=e=>{const t=e.props["onUpdate:modelValue"];return w(t)?e=>Y(t,e):t};function no(e){e.target.composing=!0}function lo(e){const t=e.target;t.composing&&(t.composing=!1,function(e,t){const n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}(t,"input"))}const ao={created(e,{modifiers:{lazy:t,trim:n,number:l}},a){e._assign=to(a);const o=l||"number"===e.type;La(e,t?"change":"input",(t=>{if(t.target.composing)return;let l=e.value;n?l=l.trim():o&&(l=K(l)),e._assign(l)})),n&&La(e,"change",(()=>{e.value=e.value.trim()})),t||(La(e,"compositionstart",no),La(e,"compositionend",lo),La(e,"change",lo))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,modifiers:{trim:n,number:l}},a){if(e._assign=to(a),e.composing)return;if(document.activeElement===e){if(n&&e.value.trim()===t)return;if((l||"number"===e.type)&&K(e.value)===t)return}const o=null==t?"":t;e.value!==o&&(e.value=o)}},oo={created(e,t,n){e._assign=to(n),La(e,"change",(()=>{const t=e._modelValue,n=so(e),l=e.checked,a=e._assign;if(w(t)){const e=u(t,n),o=-1!==e;if(l&&!o)a(t.concat(n));else if(!l&&o){const n=[...t];n.splice(e,1),a(n)}}else if(S(t)){const e=new Set(t);l?e.add(n):e.delete(n),a(e)}else a(uo(e,l))}))},mounted:ro,beforeUpdate(e,t,n){e._assign=to(n),ro(e,t,n)}};function ro(e,{value:t,oldValue:n},l){e._modelValue=t,w(t)?e.checked=u(t,l.props.value)>-1:S(t)?e.checked=t.has(l.props.value):t!==n&&(e.checked=s(t,uo(e,!0)))}const io={created(e,{value:t},n){e.checked=s(t,n.props.value),e._assign=to(n),La(e,"change",(()=>{e._assign(so(e))}))},beforeUpdate(e,{value:t,oldValue:n},l){e._assign=to(l),t!==n&&(e.checked=s(t,l.props.value))}};function so(e){return"_value"in e?e._value:e.value}function uo(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const co=["ctrl","shift","alt","meta"],po={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>co.some((n=>e[`${n}Key`]&&!t.includes(n)))},fo=(e,t)=>(n,...l)=>{for(let e=0;e<t.length;e++){const l=po[t[e]];if(l&&l(n,t))return}return e(n,...l)},ho={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},vo=(e,t)=>n=>{if(!("key"in n))return;const l=j(n.key);return t.some((e=>e===l||ho[e]===l))?e(n):void 0},mo={beforeMount(e,{value:t},{transition:n}){e._vod="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):go(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:l}){!t!=!n&&(l?t?(l.beforeEnter(e),go(e,!0),l.enter(e)):l.leave(e,(()=>{go(e,!1)})):go(e,t))},beforeUnmount(e,{value:t}){go(e,t)}};function go(e,t){e.style.display=t?e._vod:"none"}const yo=b({patchProp:(e,t,l,a,o=!1,r,i,s,u)=>{switch(t){case"class":!function(e,t,n){if(null==t&&(t=""),n)e.setAttribute("class",t);else{const n=e._vtc;n&&(t=(t?[t,...n]:[...n]).join(" ")),e.className=t}}(e,a,o);break;case"style":!function(e,t,n){const l=e.style;if(n)if(O(n)){if(t!==n){const t=l.display;l.cssText=n,"_vod"in e&&(l.display=t)}}else{for(const e in n)xa(l,e,n[e]);if(t&&!O(t))for(const e in t)null==n[e]&&xa(l,e,"")}else e.removeAttribute("style")}(e,l,a);break;default:g(t)?y(t)||Na(e,t,0,a,i):function(e,t,n,l){if(l)return"innerHTML"===t||!!(t in e&&Pa.test(t)&&M(n));if("spellcheck"===t||"draggable"===t)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if(Pa.test(t)&&O(n))return!1;return t in e}(e,t,a,o)?function(e,t,n,l,a,o,r){if("innerHTML"===t||"textContent"===t)return l&&r(l,a,o),void(e[t]=null==n?"":n);if("value"!==t||"PROGRESS"===e.tagName){if(""===n||null==n){const l=typeof e[t];if(""===n&&"boolean"===l)return void(e[t]=!0);if(null==n&&"string"===l)return e[t]="",void e.removeAttribute(t);if("number"===l)return e[t]=0,void e.removeAttribute(t)}try{e[t]=n}catch(Oc){}}else{e._value=n;const t=null==n?"":n;e.value!==t&&(e.value=t)}}(e,t,a,r,i,s,u):("true-value"===t?e._trueValue=a:"false-value"===t&&(e._falseValue=a),function(e,t,l,a){if(a&&t.startsWith("xlink:"))null==l?e.removeAttributeNS(Sa,t.slice(6,t.length)):e.setAttributeNS(Sa,t,l);else{const a=n(t);null==l||a&&!1===l?e.removeAttribute(t):e.setAttribute(t,a?"":l)}}(e,t,a,o))}},forcePatchProp:(e,t)=>"value"===t},_a);let bo;function _o(){return bo||(bo=ll(yo))}const ko=(...e)=>{_o().render(...e)},xo=(...e)=>{const t=_o().createApp(...e),{mount:n}=t;return t.mount=e=>{const l=function(e){if(O(e)){return document.querySelector(e)}return e}
+/*!
+  * @intlify/shared v9.1.6
+  * (c) 2021 kazuya kawaguchi
+  * Released under the MIT License.
+  */(e);if(!l)return;const a=t._component;M(a)||a.render||a.template||(a.template=l.innerHTML),l.innerHTML="";const o=n(l,!1,l instanceof SVGElement);return l instanceof Element&&(l.removeAttribute("v-cloak"),l.setAttribute("data-v-app","")),o},t};const wo="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,Co=e=>wo?Symbol(e):e,So=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Eo=e=>"number"==typeof e&&isFinite(e),Mo=e=>"[object RegExp]"===Ro(e),Oo=e=>Ho(e)&&0===Object.keys(e).length;function To(e,t){"undefined"!=typeof console&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Do=Object.assign;let Lo;const No=()=>Lo||(Lo="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{});function Ao(e){return e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}const Po=Object.prototype.hasOwnProperty;function Io(e,t){return Po.call(e,t)}const Fo=Array.isArray,Vo=e=>"function"==typeof e,Bo=e=>"string"==typeof e,$o=e=>"boolean"==typeof e,zo=e=>null!==e&&"object"==typeof e,jo=Object.prototype.toString,Ro=e=>jo.call(e),Ho=e=>"[object Object]"===Ro(e);function Wo(){const e=new Map;return{events:e,on(t,n){const l=e.get(t);l&&l.push(n)||e.set(t,[n])},off(t,n){const l=e.get(t);l&&l.splice(l.indexOf(n)>>>0,1)},emit(t,n){(e.get(t)||[]).slice().map((e=>e(n))),(e.get("*")||[]).slice().map((e=>e(t,n)))}}}
+/*!
+  * @intlify/message-resolver v9.1.6
+  * (c) 2021 kazuya kawaguchi
+  * Released under the MIT License.
+  */const Yo=Object.prototype.hasOwnProperty;function qo(e,t){return Yo.call(e,t)}const Ko=e=>null!==e&&"object"==typeof e,Uo=[];Uo[0]={w:[0],i:[3,0],"[":[4],o:[7]},Uo[1]={w:[1],".":[2],"[":[4],o:[7]},Uo[2]={w:[2],i:[3,0],0:[3,0]},Uo[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]},Uo[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]},Uo[5]={"'":[4,0],o:8,l:[5,0]},Uo[6]={'"':[4,0],o:8,l:[6,0]};const Go=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function Xo(e){if(null==e)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function Zo(e){const t=e.trim();return("0"!==e.charAt(0)||!isNaN(parseInt(e)))&&(n=t,Go.test(n)?function(e){const t=e.charCodeAt(0);return t!==e.charCodeAt(e.length-1)||34!==t&&39!==t?e:e.slice(1,-1)}(t):"*"+t);var n}const Jo=new Map;function Qo(e,t){if(!Ko(e))return null;let n=Jo.get(t);if(n||(n=function(e){const t=[];let n,l,a,o,r,i,s,u=-1,c=0,d=0;const p=[];function f(){const t=e[u+1];if(5===c&&"'"===t||6===c&&'"'===t)return u++,a="\\"+t,p[0](),!0}for(p[0]=()=>{void 0===l?l=a:l+=a},p[1]=()=>{void 0!==l&&(t.push(l),l=void 0)},p[2]=()=>{p[0](),d++},p[3]=()=>{if(d>0)d--,c=4,p[0]();else{if(d=0,void 0===l)return!1;if(l=Zo(l),!1===l)return!1;p[1]()}};null!==c;)if(u++,n=e[u],"\\"!==n||!f()){if(o=Xo(n),s=Uo[c],r=s[o]||s.l||8,8===r)return;if(c=r[0],void 0!==r[1]&&(i=p[r[1]],i&&(a=n,!1===i())))return;if(7===c)return t}}(t),n&&Jo.set(t,n)),!n)return null;const l=n.length;let a=e,o=0;for(;o<l;){const e=a[n[o]];if(void 0===e)return null;a=e,o++}return a}function er(e){if(!Ko(e))return e;for(const t in e)if(qo(e,t))if(t.includes(".")){const n=t.split("."),l=n.length-1;let a=e;for(let e=0;e<l;e++)n[e]in a||(a[n[e]]={}),a=a[n[e]];a[n[l]]=e[t],delete e[t],Ko(a[n[l]])&&er(a[n[l]])}else Ko(e[t])&&er(e[t]);return e}
+/*!
+  * @intlify/runtime v9.1.6
+  * (c) 2021 kazuya kawaguchi
+  * Released under the MIT License.
+  */const tr=e=>e,nr=e=>"",lr=e=>0===e.length?"":e.join(""),ar=e=>null==e?"":Fo(e)||Ho(e)&&e.toString===jo?JSON.stringify(e,null,2):String(e);function or(e,t){return e=Math.abs(e),2===t?e?e>1?1:0:1:e?Math.min(e,2):0}function rr(e={}){const t=e.locale,n=function(e){const t=Eo(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Eo(e.named.count)||Eo(e.named.n))?Eo(e.named.count)?e.named.count:Eo(e.named.n)?e.named.n:t:t}(e),l=zo(e.pluralRules)&&Bo(t)&&Vo(e.pluralRules[t])?e.pluralRules[t]:or,a=zo(e.pluralRules)&&Bo(t)&&Vo(e.pluralRules[t])?or:void 0,o=e.list||[],r=e.named||{};Eo(e.pluralIndex)&&function(e,t){t.count||(t.count=e),t.n||(t.n=e)}(n,r);function i(t){const n=Vo(e.messages)?e.messages(t):!!zo(e.messages)&&e.messages[t];return n||(e.parent?e.parent.message(t):nr)}const s=Ho(e.processor)&&Vo(e.processor.normalize)?e.processor.normalize:lr,u=Ho(e.processor)&&Vo(e.processor.interpolate)?e.processor.interpolate:ar,c={list:e=>o[e],named:e=>r[e],plural:e=>e[l(n,e.length,a)],linked:(t,n)=>{const l=i(t)(c);return Bo(n)?(a=n,e.modifiers?e.modifiers[a]:tr)(l):l;var a},message:i,type:Ho(e.processor)&&Bo(e.processor.type)?e.processor.type:"text",interpolate:u,normalize:s};return c}
+/*!
+  * @intlify/message-compiler v9.1.6
+  * (c) 2021 kazuya kawaguchi
+  * Released under the MIT License.
+  */function ir(e,t,n={}){const{domain:l,messages:a,args:o}=n,r=new SyntaxError(String(e));return r.code=e,t&&(r.location=t),r.domain=l,r}function sr(e){throw e}function ur(e,t,n){const l={start:e,end:t};return null!=n&&(l.source=n),l}const cr=String.fromCharCode(8232),dr=String.fromCharCode(8233);function pr(e){const t=e;let n=0,l=1,a=1,o=0;const r=e=>"\r"===t[e]&&"\n"===t[e+1],i=e=>t[e]===dr,s=e=>t[e]===cr,u=e=>r(e)||(e=>"\n"===t[e])(e)||i(e)||s(e),c=e=>r(e)||i(e)||s(e)?"\n":t[e];function d(){return o=0,u(n)&&(l++,a=0),r(n)&&n++,n++,a++,t[n]}return{index:()=>n,line:()=>l,column:()=>a,peekOffset:()=>o,charAt:c,currentChar:()=>c(n),currentPeek:()=>c(n+o),next:d,peek:function(){return r(n+o)&&o++,o++,t[n+o]},reset:function(){n=0,l=1,a=1,o=0},resetPeek:function(e=0){o=e},skipToPeek:function(){const e=n+o;for(;e!==n;)d();o=0}}}const fr=void 0;function hr(e,t={}){const n=!1!==t.location,l=pr(e),a=()=>l.index(),o=()=>{return e=l.line(),t=l.column(),n=l.index(),{line:e,column:t,offset:n};var e,t,n},r=o(),i=a(),s={currentType:14,offset:i,startLoc:r,endLoc:r,lastType:14,lastOffset:i,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},u=()=>s,{onError:c}=t;function d(e,t,n,...l){const a=u();if(t.column+=n,t.offset+=n,c){const n=ir(e,ur(a.startLoc,t),{domain:"tokenizer",args:l});c(n)}}function p(e,t,l){e.endLoc=o(),e.currentType=t;const a={type:t};return n&&(a.loc=ur(e.startLoc,e.endLoc)),null!=l&&(a.value=l),a}const f=e=>p(e,14);function h(e,t){return e.currentChar()===t?(e.next(),t):(d(0,o(),0,t),"")}function v(e){let t="";for(;" "===e.currentPeek()||"\n"===e.currentPeek();)t+=e.currentPeek(),e.peek();return t}function m(e){const t=v(e);return e.skipToPeek(),t}function g(e){if(e===fr)return!1;const t=e.charCodeAt(0);return t>=97&&t<=122||t>=65&&t<=90||95===t}function y(e,t){const{currentType:n}=t;if(2!==n)return!1;v(e);const l=function(e){if(e===fr)return!1;const t=e.charCodeAt(0);return t>=48&&t<=57}("-"===e.currentPeek()?e.peek():e.currentPeek());return e.resetPeek(),l}function b(e){v(e);const t="|"===e.currentPeek();return e.resetPeek(),t}function _(e,t=!0){const n=(t=!1,l="",a=!1)=>{const o=e.currentPeek();return"{"===o?"%"!==l&&t:"@"!==o&&o?"%"===o?(e.peek(),n(t,"%",!0)):"|"===o?!("%"!==l&&!a)||!(" "===l||"\n"===l):" "===o?(e.peek(),n(!0," ",a)):"\n"!==o||(e.peek(),n(!0,"\n",a)):"%"===l||t},l=n();return t&&e.resetPeek(),l}function k(e,t){const n=e.currentChar();return n===fr?fr:t(n)?(e.next(),n):null}function x(e){return k(e,(e=>{const t=e.charCodeAt(0);return t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||95===t||36===t}))}function w(e){return k(e,(e=>{const t=e.charCodeAt(0);return t>=48&&t<=57}))}function C(e){return k(e,(e=>{const t=e.charCodeAt(0);return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}))}function S(e){let t="",n="";for(;t=w(e);)n+=t;return n}function E(e){const t=e.currentChar();switch(t){case"\\":case"'":return e.next(),`\\${t}`;case"u":return M(e,t,4);case"U":return M(e,t,6);default:return d(3,o(),0,t),""}}function M(e,t,n){h(e,t);let l="";for(let a=0;a<n;a++){const n=C(e);if(!n){d(4,o(),0,`\\${t}${l}${e.currentChar()}`);break}l+=n}return`\\${t}${l}`}function O(e){m(e);const t=h(e,"|");return m(e),t}function T(e,t){let n=null;switch(e.currentChar()){case"{":return t.braceNest>=1&&d(8,o(),0),e.next(),n=p(t,2,"{"),m(e),t.braceNest++,n;case"}":return t.braceNest>0&&2===t.currentType&&d(7,o(),0),e.next(),n=p(t,3,"}"),t.braceNest--,t.braceNest>0&&m(e),t.inLinked&&0===t.braceNest&&(t.inLinked=!1),n;case"@":return t.braceNest>0&&d(6,o(),0),n=D(e,t)||f(t),t.braceNest=0,n;default:let l=!0,a=!0,r=!0;if(b(e))return t.braceNest>0&&d(6,o(),0),n=p(t,1,O(e)),t.braceNest=0,t.inLinked=!1,n;if(t.braceNest>0&&(5===t.currentType||6===t.currentType||7===t.currentType))return d(6,o(),0),t.braceNest=0,L(e,t);if(l=function(e,t){const{currentType:n}=t;if(2!==n)return!1;v(e);const l=g(e.currentPeek());return e.resetPeek(),l}(e,t))return n=p(t,5,function(e){m(e);let t="",n="";for(;t=x(e);)n+=t;return e.currentChar()===fr&&d(6,o(),0),n}(e)),m(e),n;if(a=y(e,t))return n=p(t,6,function(e){m(e);let t="";return"-"===e.currentChar()?(e.next(),t+=`-${S(e)}`):t+=S(e),e.currentChar()===fr&&d(6,o(),0),t}(e)),m(e),n;if(r=function(e,t){const{currentType:n}=t;if(2!==n)return!1;v(e);const l="'"===e.currentPeek();return e.resetPeek(),l}(e,t))return n=p(t,7,function(e){m(e),h(e,"'");let t="",n="";const l=e=>"'"!==e&&"\n"!==e;for(;t=k(e,l);)n+="\\"===t?E(e):t;const a=e.currentChar();return"\n"===a||a===fr?(d(2,o(),0),"\n"===a&&(e.next(),h(e,"'")),n):(h(e,"'"),n)}(e)),m(e),n;if(!l&&!a&&!r)return n=p(t,13,function(e){m(e);let t="",n="";const l=e=>"{"!==e&&"}"!==e&&" "!==e&&"\n"!==e;for(;t=k(e,l);)n+=t;return n}(e)),d(1,o(),0,n.value),m(e),n}return n}function D(e,t){const{currentType:n}=t;let l=null;const a=e.currentChar();switch(8!==n&&9!==n&&12!==n&&10!==n||"\n"!==a&&" "!==a||d(9,o(),0),a){case"@":return e.next(),l=p(t,8,"@"),t.inLinked=!0,l;case".":return m(e),e.next(),p(t,9,".");case":":return m(e),e.next(),p(t,10,":");default:return b(e)?(l=p(t,1,O(e)),t.braceNest=0,t.inLinked=!1,l):function(e,t){const{currentType:n}=t;if(8!==n)return!1;v(e);const l="."===e.currentPeek();return e.resetPeek(),l}(e,t)||function(e,t){const{currentType:n}=t;if(8!==n&&12!==n)return!1;v(e);const l=":"===e.currentPeek();return e.resetPeek(),l}(e,t)?(m(e),D(e,t)):function(e,t){const{currentType:n}=t;if(9!==n)return!1;v(e);const l=g(e.currentPeek());return e.resetPeek(),l}(e,t)?(m(e),p(t,12,function(e){let t="",n="";for(;t=x(e);)n+=t;return n}(e))):function(e,t){const{currentType:n}=t;if(10!==n)return!1;const l=()=>{const t=e.currentPeek();return"{"===t?g(e.peek()):!("@"===t||"%"===t||"|"===t||":"===t||"."===t||" "===t||!t)&&("\n"===t?(e.peek(),l()):g(t))},a=l();return e.resetPeek(),a}(e,t)?(m(e),"{"===a?T(e,t)||l:p(t,11,function(e){const t=(n=!1,l)=>{const a=e.currentChar();return"{"!==a&&"%"!==a&&"@"!==a&&"|"!==a&&a?" "===a?l:"\n"===a?(l+=a,e.next(),t(n,l)):(l+=a,e.next(),t(!0,l)):l};return t(!1,"")}(e))):(8===n&&d(9,o(),0),t.braceNest=0,t.inLinked=!1,L(e,t))}}function L(e,t){let n={type:14};if(t.braceNest>0)return T(e,t)||f(t);if(t.inLinked)return D(e,t)||f(t);const l=e.currentChar();switch(l){case"{":return T(e,t)||f(t);case"}":return d(5,o(),0),e.next(),p(t,3,"}");case"@":return D(e,t)||f(t);default:if(b(e))return n=p(t,1,O(e)),t.braceNest=0,t.inLinked=!1,n;if(_(e))return p(t,0,function(e){const t=n=>{const l=e.currentChar();return"{"!==l&&"}"!==l&&"@"!==l&&l?"%"===l?_(e)?(n+=l,e.next(),t(n)):n:"|"===l?n:" "===l||"\n"===l?_(e)?(n+=l,e.next(),t(n)):b(e)?n:(n+=l,e.next(),t(n)):(n+=l,e.next(),t(n)):n};return t("")}(e));if("%"===l)return e.next(),p(t,4,"%")}return n}return{nextToken:function(){const{currentType:e,offset:t,startLoc:n,endLoc:r}=s;return s.lastType=e,s.lastOffset=t,s.lastStartLoc=n,s.lastEndLoc=r,s.offset=a(),s.startLoc=o(),l.currentChar()===fr?p(s,14):L(l,s)},currentOffset:a,currentPosition:o,context:u}}const vr=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function mr(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const e=parseInt(t||n,16);return e<=55295||e>=57344?String.fromCodePoint(e):"�"}}}function gr(e={}){const t=!1!==e.location,{onError:n}=e;function l(e,t,l,a,...o){const r=e.currentPosition();if(r.offset+=a,r.column+=a,n){const e=ir(t,ur(l,r),{domain:"parser",args:o});n(e)}}function a(e,n,l){const a={type:e,start:n,end:n};return t&&(a.loc={start:l,end:l}),a}function o(e,n,l,a){e.end=n,a&&(e.type=a),t&&e.loc&&(e.loc.end=l)}function r(e,t){const n=e.context(),l=a(3,n.offset,n.startLoc);return l.value=t,o(l,e.currentOffset(),e.currentPosition()),l}function i(e,t){const n=e.context(),{lastOffset:l,lastStartLoc:r}=n,i=a(5,l,r);return i.index=parseInt(t,10),e.nextToken(),o(i,e.currentOffset(),e.currentPosition()),i}function s(e,t){const n=e.context(),{lastOffset:l,lastStartLoc:r}=n,i=a(4,l,r);return i.key=t,e.nextToken(),o(i,e.currentOffset(),e.currentPosition()),i}function u(e,t){const n=e.context(),{lastOffset:l,lastStartLoc:r}=n,i=a(9,l,r);return i.value=t.replace(vr,mr),e.nextToken(),o(i,e.currentOffset(),e.currentPosition()),i}function c(e){const t=e.context(),n=a(6,t.offset,t.startLoc);let r=e.nextToken();if(9===r.type){const t=function(e){const t=e.nextToken(),n=e.context(),{lastOffset:r,lastStartLoc:i}=n,s=a(8,r,i);return 12!==t.type?(l(e,11,n.lastStartLoc,0),s.value="",o(s,r,i),{nextConsumeToken:t,node:s}):(null==t.value&&l(e,13,n.lastStartLoc,0,yr(t)),s.value=t.value||"",o(s,e.currentOffset(),e.currentPosition()),{node:s})}(e);n.modifier=t.node,r=t.nextConsumeToken||e.nextToken()}switch(10!==r.type&&l(e,13,t.lastStartLoc,0,yr(r)),r=e.nextToken(),2===r.type&&(r=e.nextToken()),r.type){case 11:null==r.value&&l(e,13,t.lastStartLoc,0,yr(r)),n.key=function(e,t){const n=e.context(),l=a(7,n.offset,n.startLoc);return l.value=t,o(l,e.currentOffset(),e.currentPosition()),l}(e,r.value||"");break;case 5:null==r.value&&l(e,13,t.lastStartLoc,0,yr(r)),n.key=s(e,r.value||"");break;case 6:null==r.value&&l(e,13,t.lastStartLoc,0,yr(r)),n.key=i(e,r.value||"");break;case 7:null==r.value&&l(e,13,t.lastStartLoc,0,yr(r)),n.key=u(e,r.value||"");break;default:l(e,12,t.lastStartLoc,0);const c=e.context(),d=a(7,c.offset,c.startLoc);return d.value="",o(d,c.offset,c.startLoc),n.key=d,o(n,c.offset,c.startLoc),{nextConsumeToken:r,node:n}}return o(n,e.currentOffset(),e.currentPosition()),{node:n}}function d(e){const t=e.context(),n=a(2,1===t.currentType?e.currentOffset():t.offset,1===t.currentType?t.endLoc:t.startLoc);n.items=[];let d=null;do{const a=d||e.nextToken();switch(d=null,a.type){case 0:null==a.value&&l(e,13,t.lastStartLoc,0,yr(a)),n.items.push(r(e,a.value||""));break;case 6:null==a.value&&l(e,13,t.lastStartLoc,0,yr(a)),n.items.push(i(e,a.value||""));break;case 5:null==a.value&&l(e,13,t.lastStartLoc,0,yr(a)),n.items.push(s(e,a.value||""));break;case 7:null==a.value&&l(e,13,t.lastStartLoc,0,yr(a)),n.items.push(u(e,a.value||""));break;case 8:const o=c(e);n.items.push(o.node),d=o.nextConsumeToken||null}}while(14!==t.currentType&&1!==t.currentType);return o(n,1===t.currentType?t.lastOffset:e.currentOffset(),1===t.currentType?t.lastEndLoc:e.currentPosition()),n}function p(e){const t=e.context(),{offset:n,startLoc:r}=t,i=d(e);return 14===t.currentType?i:function(e,t,n,r){const i=e.context();let s=0===r.items.length;const u=a(1,t,n);u.cases=[],u.cases.push(r);do{const t=d(e);s||(s=0===t.items.length),u.cases.push(t)}while(14!==i.currentType);return s&&l(e,10,n,0),o(u,e.currentOffset(),e.currentPosition()),u}(e,n,r,i)}return{parse:function(n){const r=hr(n,Do({},e)),i=r.context(),s=a(0,i.offset,i.startLoc);return t&&s.loc&&(s.loc.source=n),s.body=p(r),14!==i.currentType&&l(r,13,i.lastStartLoc,0,n[i.offset]||""),o(s,r.currentOffset(),r.currentPosition()),s}}}function yr(e){if(14===e.type)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function br(e,t){for(let n=0;n<e.length;n++)_r(e[n],t)}function _r(e,t){switch(e.type){case 1:br(e.cases,t),t.helper("plural");break;case 2:br(e.items,t);break;case 6:_r(e.key,t),t.helper("linked");break;case 5:t.helper("interpolate"),t.helper("list");break;case 4:t.helper("interpolate"),t.helper("named")}}function kr(e,t={}){const n=function(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:e=>(n.helpers.add(e),e)}}(e);n.helper("normalize"),e.body&&_r(e.body,n);const l=n.context();e.helpers=Array.from(l.helpers)}function xr(e,t){const{helper:n}=e;switch(t.type){case 0:!function(e,t){t.body?xr(e,t.body):e.push("null")}(e,t);break;case 1:!function(e,t){const{helper:n,needIndent:l}=e;if(t.cases.length>1){e.push(`${n("plural")}([`),e.indent(l());const a=t.cases.length;for(let n=0;n<a&&(xr(e,t.cases[n]),n!==a-1);n++)e.push(", ");e.deindent(l()),e.push("])")}}(e,t);break;case 2:!function(e,t){const{helper:n,needIndent:l}=e;e.push(`${n("normalize")}([`),e.indent(l());const a=t.items.length;for(let o=0;o<a&&(xr(e,t.items[o]),o!==a-1);o++)e.push(", ");e.deindent(l()),e.push("])")}(e,t);break;case 6:!function(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),xr(e,t.key),t.modifier&&(e.push(", "),xr(e,t.modifier)),e.push(")")}(e,t);break;case 8:case 7:e.push(JSON.stringify(t.value),t);break;case 5:e.push(`${n("interpolate")}(${n("list")}(${t.index}))`,t);break;case 4:e.push(`${n("interpolate")}(${n("named")}(${JSON.stringify(t.key)}))`,t);break;case 9:case 3:e.push(JSON.stringify(t.value),t)}}function wr(e,t={}){const n=Do({},t),l=gr(n).parse(e);return kr(l,n),((e,t={})=>{const n=Bo(t.mode)?t.mode:"normal",l=Bo(t.filename)?t.filename:"message.intl",a=!!t.sourceMap,o=null!=t.breakLineCode?t.breakLineCode:"arrow"===n?";":"\n",r=t.needIndent?t.needIndent:"arrow"!==n,i=e.helpers||[],s=function(e,t){const{sourceMap:n,filename:l,breakLineCode:a,needIndent:o}=t,r={source:e.loc.source,filename:l,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:a,needIndent:o,indentLevel:0};function i(e,t){r.code+=e}function s(e,t=!0){const n=t?a:"";i(o?n+"  ".repeat(e):n)}return{context:()=>r,push:i,indent:function(e=!0){const t=++r.indentLevel;e&&s(t)},deindent:function(e=!0){const t=--r.indentLevel;e&&s(t)},newline:function(){s(r.indentLevel)},helper:e=>`_${e}`,needIndent:()=>r.needIndent}}(e,{mode:n,filename:l,sourceMap:a,breakLineCode:o,needIndent:r});s.push("normal"===n?"function __msg__ (ctx) {":"(ctx) => {"),s.indent(r),i.length>0&&(s.push(`const { ${i.map((e=>`${e}: _${e}`)).join(", ")} } = ctx`),s.newline()),s.push("return "),xr(s,e),s.deindent(r),s.push("}");const{code:u,map:c}=s.context();return{ast:e,code:u,map:c?c.toJSON():void 0}})(l,n)}
+/*!
+  * @intlify/devtools-if v9.1.6
+  * (c) 2021 kazuya kawaguchi
+  * Released under the MIT License.
+  */const Cr="i18n:init";
+/*!
+  * @intlify/core-base v9.1.6
+  * (c) 2021 kazuya kawaguchi
+  * Released under the MIT License.
+  */let Sr=null;const Er=Mr("function:translate");function Mr(e){return t=>Sr&&Sr.emit(e,t)}let Or;let Tr=null;const Dr=e=>{Tr=e};let Lr=0;function Nr(e={}){const t=Bo(e.version)?e.version:"9.1.6",n=Bo(e.locale)?e.locale:"en-US",l=Fo(e.fallbackLocale)||Ho(e.fallbackLocale)||Bo(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:n,a=Ho(e.messages)?e.messages:{[n]:{}},o=Ho(e.datetimeFormats)?e.datetimeFormats:{[n]:{}},r=Ho(e.numberFormats)?e.numberFormats:{[n]:{}},i=Do({},e.modifiers||{},{upper:e=>Bo(e)?e.toUpperCase():e,lower:e=>Bo(e)?e.toLowerCase():e,capitalize:e=>Bo(e)?`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`:e}),s=e.pluralRules||{},u=Vo(e.missing)?e.missing:null,c=!$o(e.missingWarn)&&!Mo(e.missingWarn)||e.missingWarn,d=!$o(e.fallbackWarn)&&!Mo(e.fallbackWarn)||e.fallbackWarn,p=!!e.fallbackFormat,f=!!e.unresolving,h=Vo(e.postTranslation)?e.postTranslation:null,v=Ho(e.processor)?e.processor:null,m=!$o(e.warnHtmlMessage)||e.warnHtmlMessage,g=!!e.escapeParameter,y=Vo(e.messageCompiler)?e.messageCompiler:Or,b=Vo(e.onWarn)?e.onWarn:To,_=e,k=zo(_.__datetimeFormatters)?_.__datetimeFormatters:new Map,x=zo(_.__numberFormatters)?_.__numberFormatters:new Map,w=zo(_.__meta)?_.__meta:{};Lr++;const C={version:t,cid:Lr,locale:n,fallbackLocale:l,messages:a,datetimeFormats:o,numberFormats:r,modifiers:i,pluralRules:s,missing:u,missingWarn:c,fallbackWarn:d,fallbackFormat:p,unresolving:f,postTranslation:h,processor:v,warnHtmlMessage:m,escapeParameter:g,messageCompiler:y,onWarn:b,__datetimeFormatters:k,__numberFormatters:x,__meta:w};return __INTLIFY_PROD_DEVTOOLS__&&function(e,t,n){Sr&&Sr.emit(Cr,{timestamp:Date.now(),i18n:e,version:t,meta:n})}(C,t,w),C}function Ar(e,t,n,l,a){const{missing:o,onWarn:r}=e;if(null!==o){const l=o(e,n,t,a);return Bo(l)?l:t}return t}function Pr(e,t,n){const l=e;l.__localeChainCache||(l.__localeChainCache=new Map);let a=l.__localeChainCache.get(n);if(!a){a=[];let e=[n];for(;Fo(e);)e=Ir(a,e,t);const o=Fo(t)?t:Ho(t)?t.default?t.default:null:t;e=Bo(o)?[o]:o,Fo(e)&&Ir(a,e,!1),l.__localeChainCache.set(n,a)}return a}function Ir(e,t,n){let l=!0;for(let a=0;a<t.length&&$o(l);a++){const o=t[a];Bo(o)&&(l=Fr(e,t[a],n))}return l}function Fr(e,t,n){let l;const a=t.split("-");do{l=Vr(e,a.join("-"),n),a.splice(-1,1)}while(a.length&&!0===l);return l}function Vr(e,t,n){let l=!1;if(!e.includes(t)&&(l=!0,t)){l="!"!==t[t.length-1];const a=t.replace(/!/g,"");e.push(a),(Fo(n)||Ho(n))&&n[a]&&(l=n[a])}return l}function Br(e,t,n){e.__localeChainCache=new Map,Pr(e,n,t)}const $r=e=>e;let zr=Object.create(null);function jr(e){return ir(e,null,void 0)}const Rr=()=>"",Hr=e=>Vo(e);function Wr(e,...t){const{fallbackFormat:n,postTranslation:l,unresolving:a,fallbackLocale:o,messages:r}=e,[i,s]=qr(...t),u=($o(s.missingWarn)?s.missingWarn:e.missingWarn,$o(s.fallbackWarn)?s.fallbackWarn:e.fallbackWarn,$o(s.escapeParameter)?s.escapeParameter:e.escapeParameter),c=!!s.resolvedMessage,d=Bo(s.default)||$o(s.default)?$o(s.default)?i:s.default:n?i:"",p=n||""!==d,f=Bo(s.locale)?s.locale:e.locale;u&&function(e){Fo(e.list)?e.list=e.list.map((e=>Bo(e)?Ao(e):e)):zo(e.named)&&Object.keys(e.named).forEach((t=>{Bo(e.named[t])&&(e.named[t]=Ao(e.named[t]))}))}(s);let[h,v,m]=c?[i,f,r[f]||{}]:function(e,t,n,l,a,o){const{messages:r,onWarn:i}=e,s=Pr(e,l,n);let u,c={},d=null;const p="translate";for(let f=0;f<s.length&&(u=s[f],c=r[u]||{},null===(d=Qo(c,t))&&(d=c[t]),!Bo(d)&&!Vo(d));f++){const n=Ar(e,t,u,0,p);n!==t&&(d=n)}return[d,u,c]}(e,i,f,o),g=i;if(c||Bo(h)||Hr(h)||p&&(h=d,g=h),!(c||(Bo(h)||Hr(h))&&Bo(v)))return a?-1:i;let y=!1;const b=Hr(h)?h:Yr(e,i,v,h,g,(()=>{y=!0}));if(y)return h;const _=function(e,t,n){return t(n)}(0,b,rr(function(e,t,n,l){const{modifiers:a,pluralRules:o}=e,r={locale:t,modifiers:a,pluralRules:o,messages:l=>{const a=Qo(n,l);if(Bo(a)){let n=!1;const o=Yr(e,l,t,a,l,(()=>{n=!0}));return n?Rr:o}return Hr(a)?a:Rr}};e.processor&&(r.processor=e.processor);l.list&&(r.list=l.list);l.named&&(r.named=l.named);Eo(l.plural)&&(r.pluralIndex=l.plural);return r}(e,v,m,s))),k=l?l(_):_;if(__INTLIFY_PROD_DEVTOOLS__){const t={timestamp:Date.now(),key:Bo(i)?i:Hr(h)?h.key:"",locale:v||(Hr(h)?h.locale:""),format:Bo(h)?h:Hr(h)?h.source:"",message:k};t.meta=Do({},e.__meta,Tr||{}),Er(t)}return k}function Yr(e,t,n,l,a,o){const{messageCompiler:r,warnHtmlMessage:i}=e;if(Hr(l)){const e=l;return e.locale=e.locale||n,e.key=e.key||t,e}const s=r(l,function(e,t,n,l,a,o){return{warnHtmlMessage:a,onError:e=>{throw o&&o(e),e},onCacheKey:e=>((e,t,n)=>So({l:e,k:t,s:n}))(t,n,e)}}(0,n,a,0,i,o));return s.locale=n,s.key=t,s.source=l,s}function qr(...e){const[t,n,l]=e,a={};if(!Bo(t)&&!Eo(t)&&!Hr(t))throw jr(14);const o=Eo(t)?String(t):(Hr(t),t);return Eo(n)?a.plural=n:Bo(n)?a.default=n:Ho(n)&&!Oo(n)?a.named=n:Fo(n)&&(a.list=n),Eo(l)?a.plural=l:Bo(l)?a.default=l:Ho(l)&&Do(a,l),[o,a]}function Kr(e,...t){const{datetimeFormats:n,unresolving:l,fallbackLocale:a,onWarn:o}=e,{__datetimeFormatters:r}=e,[i,s,u,c]=Ur(...t);$o(u.missingWarn)?u.missingWarn:e.missingWarn;$o(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const d=!!u.part,p=Bo(u.locale)?u.locale:e.locale,f=Pr(e,a,p);if(!Bo(i)||""===i)return new Intl.DateTimeFormat(p).format(s);let h,v={},m=null;for(let b=0;b<f.length&&(h=f[b],v=n[h]||{},m=v[i],!Ho(m));b++)Ar(e,i,h,0,"datetime format");if(!Ho(m)||!Bo(h))return l?-1:i;let g=`${h}__${i}`;Oo(c)||(g=`${g}__${JSON.stringify(c)}`);let y=r.get(g);return y||(y=new Intl.DateTimeFormat(h,Do({},m,c)),r.set(g,y)),d?y.formatToParts(s):y.format(s)}function Ur(...e){const[t,n,l,a]=e;let o,r={},i={};if(Bo(t)){if(!/\d{4}-\d{2}-\d{2}(T.*)?/.test(t))throw jr(16);o=new Date(t);try{o.toISOString()}catch(Oc){throw jr(16)}}else if("[object Date]"===Ro(t)){if(isNaN(t.getTime()))throw jr(15);o=t}else{if(!Eo(t))throw jr(14);o=t}return Bo(n)?r.key=n:Ho(n)&&(r=n),Bo(l)?r.locale=l:Ho(l)&&(i=l),Ho(a)&&(i=a),[r.key||"",o,r,i]}function Gr(e,t,n){const l=e;for(const a in n){const e=`${t}__${a}`;l.__datetimeFormatters.has(e)&&l.__datetimeFormatters.delete(e)}}function Xr(e,...t){const{numberFormats:n,unresolving:l,fallbackLocale:a,onWarn:o}=e,{__numberFormatters:r}=e,[i,s,u,c]=Zr(...t);$o(u.missingWarn)?u.missingWarn:e.missingWarn;$o(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const d=!!u.part,p=Bo(u.locale)?u.locale:e.locale,f=Pr(e,a,p);if(!Bo(i)||""===i)return new Intl.NumberFormat(p).format(s);let h,v={},m=null;for(let b=0;b<f.length&&(h=f[b],v=n[h]||{},m=v[i],!Ho(m));b++)Ar(e,i,h,0,"number format");if(!Ho(m)||!Bo(h))return l?-1:i;let g=`${h}__${i}`;Oo(c)||(g=`${g}__${JSON.stringify(c)}`);let y=r.get(g);return y||(y=new Intl.NumberFormat(h,Do({},m,c)),r.set(g,y)),d?y.formatToParts(s):y.format(s)}function Zr(...e){const[t,n,l,a]=e;let o={},r={};if(!Eo(t))throw jr(14);const i=t;return Bo(n)?o.key=n:Ho(n)&&(o=n),Bo(l)?o.locale=l:Ho(l)&&(r=l),Ho(a)&&(r=a),[o.key||"",i,o,r]}function Jr(e,t,n){const l=e;for(const a in n){const e=`${t}__${a}`;l.__numberFormatters.has(e)&&l.__numberFormatters.delete(e)}}function Qr(){return"undefined"!=typeof navigator?window:"undefined"!=typeof global?global:{}}function ei(e,t){const n=Qr().__VUE_DEVTOOLS_GLOBAL_HOOK__;if(n)n.emit("devtools-plugin:setup",e,t);else{const n=Qr();(n.__VUE_DEVTOOLS_PLUGINS__=n.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:e,setupFn:t})}}
+/*!
+  * @intlify/vue-devtools v9.1.6
+  * (c) 2021 kazuya kawaguchi
+  * Released under the MIT License.
+  */const ti={"vue-devtools-plugin-vue-i18n":"Vue I18n devtools","vue-i18n-resource-inspector":"I18n Resources","vue-i18n-timeline":"Vue I18n"},ni={"vue-i18n-resource-inspector":"Search for scopes ..."},li={"vue-i18n-timeline":16764185};function ai(e,...t){return ir(e,null,void 0)}const oi=Co("__transrateVNode"),ri=Co("__datetimeParts"),ii=Co("__numberParts"),si=Co("__enableEmitter"),ui=Co("__disableEmitter"),ci=Co("__setPluralRules");let di=0;function pi(e){return(t,n,l,a)=>e(n,l,na()||void 0,a)}function fi(e,t){const{messages:n,__i18n:l}=t,a=Ho(n)?n:Fo(l)?{}:{[e]:{}};if(Fo(l)&&l.forEach((({locale:e,resource:t})=>{e?(a[e]=a[e]||{},vi(t,a[e])):vi(t,a)})),t.flatJson)for(const o in a)Io(a,o)&&er(a[o]);return a}const hi=e=>!zo(e)||Fo(e);function vi(e,t){if(hi(e)||hi(t))throw ai(20);for(const n in e)Io(e,n)&&(hi(e[n])||hi(t[n])?t[n]=e[n]:vi(e[n],t[n]))}function mi(e={}){const{__root:t}=e,n=void 0===t;let l=!$o(e.inheritLocale)||e.inheritLocale;const a=lt(t&&l?t.locale.value:Bo(e.locale)?e.locale:"en-US"),o=lt(t&&l?t.fallbackLocale.value:Bo(e.fallbackLocale)||Fo(e.fallbackLocale)||Ho(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:a.value),r=lt(fi(a.value,e)),i=lt(Ho(e.datetimeFormats)?e.datetimeFormats:{[a.value]:{}}),s=lt(Ho(e.numberFormats)?e.numberFormats:{[a.value]:{}});let u=t?t.missingWarn:!$o(e.missingWarn)&&!Mo(e.missingWarn)||e.missingWarn,c=t?t.fallbackWarn:!$o(e.fallbackWarn)&&!Mo(e.fallbackWarn)||e.fallbackWarn,d=t?t.fallbackRoot:!$o(e.fallbackRoot)||e.fallbackRoot,p=!!e.fallbackFormat,f=Vo(e.missing)?e.missing:null,h=Vo(e.missing)?pi(e.missing):null,v=Vo(e.postTranslation)?e.postTranslation:null,m=!$o(e.warnHtmlMessage)||e.warnHtmlMessage,g=!!e.escapeParameter;const y=t?t.modifiers:Ho(e.modifiers)?e.modifiers:{};let b,_=e.pluralRules||t&&t.pluralRules;b=Nr({version:"9.1.6",locale:a.value,fallbackLocale:o.value,messages:r.value,datetimeFormats:i.value,numberFormats:s.value,modifiers:y,pluralRules:_,missing:null===h?void 0:h,missingWarn:u,fallbackWarn:c,fallbackFormat:p,unresolving:!0,postTranslation:null===v?void 0:v,warnHtmlMessage:m,escapeParameter:g,__datetimeFormatters:Ho(b)?b.__datetimeFormatters:void 0,__numberFormatters:Ho(b)?b.__numberFormatters:void 0,__v_emitter:Ho(b)?b.__v_emitter:void 0,__meta:{framework:"vue"}}),Br(b,a.value,o.value);const k=ca({get:()=>a.value,set:e=>{a.value=e,b.locale=a.value}}),x=ca({get:()=>o.value,set:e=>{o.value=e,b.fallbackLocale=o.value,Br(b,a.value,e)}}),w=ca((()=>r.value)),C=ca((()=>i.value)),S=ca((()=>s.value));function E(e,n,l,u,c,p){let f;if(a.value,o.value,r.value,i.value,s.value,__INTLIFY_PROD_DEVTOOLS__)try{Dr((()=>{const e=na();return e&&e.type.__INTLIFY_META__?{__INTLIFY_META__:e.type.__INTLIFY_META__}:null})()),f=e(b)}finally{Dr(null)}else f=e(b);if(Eo(f)&&-1===f){const[e,l]=n();return t&&d?u(t):c(e)}if(p(f))return f;throw ai(14)}function M(...e){return E((t=>Wr(t,...e)),(()=>qr(...e)),0,(t=>t.t(...e)),(e=>e),(e=>Bo(e)))}const O={normalize:function(e){return e.map((e=>Bo(e)?Ll(yl,null,e,0):e))},interpolate:e=>e,type:"vnode"};function T(e){return r.value[e]||{}}di++,t&&(Sn(t.locale,(e=>{l&&(a.value=e,b.locale=e,Br(b,a.value,o.value))})),Sn(t.fallbackLocale,(e=>{l&&(o.value=e,b.fallbackLocale=e,Br(b,a.value,o.value))})));return{id:di,locale:k,fallbackLocale:x,get inheritLocale(){return l},set inheritLocale(e){l=e,e&&t&&(a.value=t.locale.value,o.value=t.fallbackLocale.value,Br(b,a.value,o.value))},get availableLocales(){return Object.keys(r.value).sort()},messages:w,datetimeFormats:C,numberFormats:S,get modifiers(){return y},get pluralRules(){return _||{}},get isGlobal(){return n},get missingWarn(){return u},set missingWarn(e){u=e,b.missingWarn=u},get fallbackWarn(){return c},set fallbackWarn(e){c=e,b.fallbackWarn=c},get fallbackRoot(){return d},set fallbackRoot(e){d=e},get fallbackFormat(){return p},set fallbackFormat(e){p=e,b.fallbackFormat=p},get warnHtmlMessage(){return m},set warnHtmlMessage(e){m=e,b.warnHtmlMessage=e},get escapeParameter(){return g},set escapeParameter(e){g=e,b.escapeParameter=e},t:M,rt:function(...e){const[t,n,l]=e;if(l&&!zo(l))throw ai(15);return M(t,n,Do({resolvedMessage:!0},l||{}))},d:function(...e){return E((t=>Kr(t,...e)),(()=>Ur(...e)),0,(t=>t.d(...e)),(()=>""),(e=>Bo(e)))},n:function(...e){return E((t=>Xr(t,...e)),(()=>Zr(...e)),0,(t=>t.n(...e)),(()=>""),(e=>Bo(e)))},te:function(e,t){return null!==Qo(T(Bo(t)?t:a.value),e)},tm:function(e){const n=function(e){let t=null;const n=Pr(b,o.value,a.value);for(let l=0;l<n.length;l++){const a=Qo(r.value[n[l]]||{},e);if(null!=a){t=a;break}}return t}(e);return null!=n?n:t&&t.tm(e)||{}},getLocaleMessage:T,setLocaleMessage:function(e,t){r.value[e]=t,b.messages=r.value},mergeLocaleMessage:function(e,t){r.value[e]=r.value[e]||{},vi(t,r.value[e]),b.messages=r.value},getDateTimeFormat:function(e){return i.value[e]||{}},setDateTimeFormat:function(e,t){i.value[e]=t,b.datetimeFormats=i.value,Gr(b,e,t)},mergeDateTimeFormat:function(e,t){i.value[e]=Do(i.value[e]||{},t),b.datetimeFormats=i.value,Gr(b,e,t)},getNumberFormat:function(e){return s.value[e]||{}},setNumberFormat:function(e,t){s.value[e]=t,b.numberFormats=s.value,Jr(b,e,t)},mergeNumberFormat:function(e,t){s.value[e]=Do(s.value[e]||{},t),b.numberFormats=s.value,Jr(b,e,t)},getPostTranslationHandler:function(){return Vo(v)?v:null},setPostTranslationHandler:function(e){v=e,b.postTranslation=e},getMissingHandler:function(){return f},setMissingHandler:function(e){null!==e&&(h=pi(e)),f=e,b.missing=h},[oi]:function(...e){return E((t=>{let n;const l=t;try{l.processor=O,n=Wr(l,...e)}finally{l.processor=null}return n}),(()=>qr(...e)),0,(t=>t[oi](...e)),(e=>[Ll(yl,null,e,0)]),(e=>Fo(e)))},[ii]:function(...e){return E((t=>Xr(t,...e)),(()=>Zr(...e)),0,(t=>t[ii](...e)),(()=>[]),(e=>Bo(e)||Fo(e)))},[ri]:function(...e){return E((t=>Kr(t,...e)),(()=>Ur(...e)),0,(t=>t[ri](...e)),(()=>[]),(e=>Bo(e)||Fo(e)))},[ci]:function(e){_=e,b.pluralRules=_}}}function gi(e={}){const t=mi(function(e){const t=Bo(e.locale)?e.locale:"en-US",n=Bo(e.fallbackLocale)||Fo(e.fallbackLocale)||Ho(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:t,l=Vo(e.missing)?e.missing:void 0,a=!$o(e.silentTranslationWarn)&&!Mo(e.silentTranslationWarn)||!e.silentTranslationWarn,o=!$o(e.silentFallbackWarn)&&!Mo(e.silentFallbackWarn)||!e.silentFallbackWarn,r=!$o(e.fallbackRoot)||e.fallbackRoot,i=!!e.formatFallbackMessages,s=Ho(e.modifiers)?e.modifiers:{},u=e.pluralizationRules,c=Vo(e.postTranslation)?e.postTranslation:void 0,d=!Bo(e.warnHtmlInMessage)||"off"!==e.warnHtmlInMessage,p=!!e.escapeParameterHtml,f=!$o(e.sync)||e.sync;let h=e.messages;if(Ho(e.sharedMessages)){const t=e.sharedMessages;h=Object.keys(t).reduce(((e,n)=>{const l=e[n]||(e[n]={});return Do(l,t[n]),e}),h||{})}const{__i18n:v,__root:m}=e,g=e.datetimeFormats,y=e.numberFormats;return{locale:t,fallbackLocale:n,messages:h,flatJson:e.flatJson,datetimeFormats:g,numberFormats:y,missing:l,missingWarn:a,fallbackWarn:o,fallbackRoot:r,fallbackFormat:i,modifiers:s,pluralRules:u,postTranslation:c,warnHtmlMessage:d,escapeParameter:p,inheritLocale:f,__i18n:v,__root:m}}(e)),n={id:t.id,get locale(){return t.locale.value},set locale(e){t.locale.value=e},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(e){t.fallbackLocale.value=e},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get formatter(){return{interpolate:()=>[]}},set formatter(e){},get missing(){return t.getMissingHandler()},set missing(e){t.setMissingHandler(e)},get silentTranslationWarn(){return $o(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(e){t.missingWarn=$o(e)?!e:e},get silentFallbackWarn(){return $o(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(e){t.fallbackWarn=$o(e)?!e:e},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(e){t.fallbackFormat=e},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(e){t.setPostTranslationHandler(e)},get sync(){return t.inheritLocale},set sync(e){t.inheritLocale=e},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(e){t.warnHtmlMessage="off"!==e},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(e){t.escapeParameter=e},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(e){},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...e){const[n,l,a]=e,o={};let r=null,i=null;if(!Bo(n))throw ai(15);const s=n;return Bo(l)?o.locale=l:Fo(l)?r=l:Ho(l)&&(i=l),Fo(a)?r=a:Ho(a)&&(i=a),t.t(s,r||i||{},o)},rt:(...e)=>t.rt(...e),tc(...e){const[n,l,a]=e,o={plural:1};let r=null,i=null;if(!Bo(n))throw ai(15);const s=n;return Bo(l)?o.locale=l:Eo(l)?o.plural=l:Fo(l)?r=l:Ho(l)&&(i=l),Bo(a)?o.locale=a:Fo(a)?r=a:Ho(a)&&(i=a),t.t(s,r||i||{},o)},te:(e,n)=>t.te(e,n),tm:e=>t.tm(e),getLocaleMessage:e=>t.getLocaleMessage(e),setLocaleMessage(e,n){t.setLocaleMessage(e,n)},mergeLocaleMessage(e,n){t.mergeLocaleMessage(e,n)},d:(...e)=>t.d(...e),getDateTimeFormat:e=>t.getDateTimeFormat(e),setDateTimeFormat(e,n){t.setDateTimeFormat(e,n)},mergeDateTimeFormat(e,n){t.mergeDateTimeFormat(e,n)},n:(...e)=>t.n(...e),getNumberFormat:e=>t.getNumberFormat(e),setNumberFormat(e,n){t.setNumberFormat(e,n)},mergeNumberFormat(e,n){t.mergeNumberFormat(e,n)},getChoiceIndex:(e,t)=>-1,__onComponentInstanceCreated(t){const{componentInstanceCreatedListener:l}=e;l&&l(t,n)}};return n}const yi={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>"parent"===e||"global"===e,default:"parent"},i18n:{type:Object}},bi={name:"i18n-t",props:Do({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Eo(e)||!isNaN(e)}},yi),setup(e,t){const{slots:n,attrs:l}=t,a=e.i18n||Vi({useScope:e.scope}),o=Object.keys(n).filter((e=>"_"!==e));return()=>{const n={};e.locale&&(n.locale=e.locale),void 0!==e.plural&&(n.plural=Bo(e.plural)?+e.plural:e.plural);const r=function({slots:e},t){return 1===t.length&&"default"===t[0]?e.default?e.default():[]:t.reduce(((t,n)=>{const l=e[n];return l&&(t[n]=l()),t}),{})}(t,o),i=a[oi](e.keypath,r,n),s=Do({},l);return Bo(e.tag)||zo(e.tag)?da(e.tag,s,i):da(gl,s,i)}}};function _i(e,t,n,l){const{slots:a,attrs:o}=t;return()=>{const t={part:!0};let r={};e.locale&&(t.locale=e.locale),Bo(e.format)?t.key=e.format:zo(e.format)&&(Bo(e.format.key)&&(t.key=e.format.key),r=Object.keys(e.format).reduce(((t,l)=>n.includes(l)?Do({},t,{[l]:e.format[l]}):t),{}));const i=l(e.value,t,r);let s=[t.key];Fo(i)?s=i.map(((e,t)=>{const n=a[e.type];return n?n({[e.type]:e.value,index:t,parts:i}):[e.value]})):Bo(i)&&(s=[i]);const u=Do({},o);return Bo(e.tag)||zo(e.tag)?da(e.tag,u,s):da(gl,u,s)}}const ki=["localeMatcher","style","unit","unitDisplay","currency","currencyDisplay","useGrouping","numberingSystem","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","notation","formatMatcher"],xi={name:"i18n-n",props:Do({value:{type:Number,required:!0},format:{type:[String,Object]}},yi),setup(e,t){const n=e.i18n||Vi({useScope:"parent"});return _i(e,t,ki,((...e)=>n[ii](...e)))}},wi=["dateStyle","timeStyle","fractionalSecondDigits","calendar","dayPeriod","numberingSystem","localeMatcher","timeZone","hour12","hourCycle","formatMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName"],Ci={name:"i18n-d",props:Do({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},yi),setup(e,t){const n=e.i18n||Vi({useScope:"parent"});return _i(e,t,wi,((...e)=>n[ri](...e)))}};function Si(e){const t=(t,{instance:n,value:l,modifiers:a})=>{if(!n||!n.$)throw ai(22);const o=function(e,t){const n=e;if("composition"===e.mode)return n.__getInstance(t)||e.global;{const l=n.__getInstance(t);return null!=l?l.__composer:e.global.__composer}}(e,n.$),r=function(e){if(Bo(e))return{path:e};if(Ho(e)){if(!("path"in e))throw ai(19);return e}throw ai(20)}(l);t.textContent=o.t(...function(e){const{path:t,locale:n,args:l,choice:a,plural:o}=e,r={},i=l||{};Bo(n)&&(r.locale=n);Eo(a)&&(r.plural=a);Eo(o)&&(r.plural=o);return[t,i,r]}(r))};return{beforeMount:t,beforeUpdate:t}}let Ei;async function Mi(e,t){return new Promise(((n,l)=>{try{ei({id:"vue-devtools-plugin-vue-i18n",label:ti["vue-devtools-plugin-vue-i18n"],packageName:"vue-i18n",homepage:"https://vue-i18n.intlify.dev",logo:"https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png",componentStateTypes:["vue-i18n: composer properties"],app:e},(l=>{Ei=l,l.on.visitComponentTree((({componentInstance:e,treeNode:n})=>{!function(e,t,n){const l="composition"===n.mode?n.global:n.global.__composer;if(e&&e.vnode.el.__VUE_I18N__&&e.vnode.el.__VUE_I18N__!==l){const n={label:`i18n (${e.type.name||e.type.displayName||e.type.__file} Scope)`,textColor:0,backgroundColor:16764185};t.tags.push(n)}}(e,n,t)})),l.on.inspectComponent((({componentInstance:e,instanceData:n})=>{e.vnode.el.__VUE_I18N__&&n&&("legacy"===t.mode?e.vnode.el.__VUE_I18N__!==t.global.__composer&&Oi(n,e.vnode.el.__VUE_I18N__):Oi(n,e.vnode.el.__VUE_I18N__))})),l.addInspector({id:"vue-i18n-resource-inspector",label:ti["vue-i18n-resource-inspector"],icon:"language",treeFilterPlaceholder:ni["vue-i18n-resource-inspector"]}),l.on.getInspectorTree((n=>{n.app===e&&"vue-i18n-resource-inspector"===n.inspectorId&&function(e,t){e.rootNodes.push({id:"global",label:"Global Scope"});const n="composition"===t.mode?t.global:t.global.__composer;for(const[l,a]of t.__instances){const o="composition"===t.mode?a:a.__composer;if(n===o)continue;const r=l.type.name||l.type.displayName||l.type.__file;e.rootNodes.push({id:o.id.toString(),label:`${r} Scope`})}}(n,t)})),l.on.getInspectorState((n=>{n.app===e&&"vue-i18n-resource-inspector"===n.inspectorId&&function(e,t){const n=Ai(e.nodeId,t);n&&(e.state=function(e){const t={},n="Locale related info",l=[{type:n,key:"locale",editable:!0,value:e.locale.value},{type:n,key:"fallbackLocale",editable:!0,value:e.fallbackLocale.value},{type:n,key:"availableLocales",editable:!1,value:e.availableLocales},{type:n,key:"inheritLocale",editable:!0,value:e.inheritLocale}];t[n]=l;const a="Locale messages info",o=[{type:a,key:"messages",editable:!1,value:Ti(e.messages.value)}];t[a]=o;const r="Datetime formats info",i=[{type:r,key:"datetimeFormats",editable:!1,value:e.datetimeFormats.value}];t[r]=i;const s="Datetime formats info",u=[{type:s,key:"numberFormats",editable:!1,value:e.numberFormats.value}];return t[s]=u,t}(n))}(n,t)})),l.on.editInspectorState((n=>{n.app===e&&"vue-i18n-resource-inspector"===n.inspectorId&&function(e,t){const n=Ai(e.nodeId,t);if(n){const[t]=e.path;"locale"===t&&Bo(e.state.value)?n.locale.value=e.state.value:"fallbackLocale"===t&&(Bo(e.state.value)||Fo(e.state.value)||zo(e.state.value))?n.fallbackLocale.value=e.state.value:"inheritLocale"===t&&$o(e.state.value)&&(n.inheritLocale=e.state.value)}}(n,t)})),l.addTimelineLayer({id:"vue-i18n-timeline",label:ti["vue-i18n-timeline"],color:li["vue-i18n-timeline"]}),n(!0)}))}catch(Oc){console.error(Oc),l(!1)}}))}function Oi(e,t){const n="vue-i18n: composer properties";e.state.push({type:n,key:"locale",editable:!0,value:t.locale.value}),e.state.push({type:n,key:"availableLocales",editable:!1,value:t.availableLocales}),e.state.push({type:n,key:"fallbackLocale",editable:!0,value:t.fallbackLocale.value}),e.state.push({type:n,key:"inheritLocale",editable:!0,value:t.inheritLocale}),e.state.push({type:n,key:"messages",editable:!1,value:Ti(t.messages.value)}),e.state.push({type:n,key:"datetimeFormats",editable:!1,value:t.datetimeFormats.value}),e.state.push({type:n,key:"numberFormats",editable:!1,value:t.numberFormats.value})}function Ti(e){const t={};return Object.keys(e).forEach((n=>{const l=e[n];var a;Vo(l)&&"source"in l?t[n]={_custom:{type:"function",display:"<span>ƒ</span> "+((a=l).source?`("${Li(a.source)}")`:"(?)")}}:zo(l)?t[n]=Ti(l):t[n]=l})),t}const Di={"<":"&lt;",">":"&gt;",'"':"&quot;","&":"&amp;"};function Li(e){return e.replace(/[<>"&]/g,Ni)}function Ni(e){return Di[e]||e}function Ai(e,t){if("global"===e)return"composition"===t.mode?t.global:t.global.__composer;{const n=Array.from(t.__instances.values()).find((t=>t.id.toString()===e));return n?"composition"===t.mode?n:n.__composer:null}}function Pi(e,t){if(Ei){let n;t&&"groupId"in t&&(n=t.groupId,delete t.groupId),Ei.addTimelineEvent({layerId:"vue-i18n-timeline",event:{title:e,groupId:n,time:Date.now(),meta:{},data:t||{},logType:"compile-error"===e?"error":"fallback"===e||"missing"===e?"warning":"default"}})}}function Ii(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[ci](t.pluralizationRules||e.pluralizationRules);const n=fi(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach((t=>e.mergeLocaleMessage(t,n[t]))),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach((n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n]))),t.numberFormats&&Object.keys(t.numberFormats).forEach((n=>e.mergeNumberFormat(n,t.numberFormats[n]))),e}function Fi(e={}){const t=__VUE_I18N_LEGACY_API__&&$o(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=!!e.globalInjection,l=new Map,a=__VUE_I18N_LEGACY_API__&&t?gi(e):mi(e),o=Co(""),r={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},async install(e,...l){if(__VUE_I18N_PROD_DEVTOOLS__&&(e.__VUE_I18N__=r),e.__VUE_I18N_SYMBOL__=o,e.provide(e.__VUE_I18N_SYMBOL__,r),!t&&n&&function(e,t){const n=Object.create(null);Bi.forEach((e=>{const l=Object.getOwnPropertyDescriptor(t,e);if(!l)throw ai(22);const a=nt(l.value)?{get:()=>l.value.value,set(e){l.value.value=e}}:{get:()=>l.get&&l.get()};Object.defineProperty(n,e,a)})),e.config.globalProperties.$i18n=n,$i.forEach((n=>{const l=Object.getOwnPropertyDescriptor(t,n);if(!l||!l.value)throw ai(22);Object.defineProperty(e.config.globalProperties,`$${n}`,l)}))}(e,r.global),__VUE_I18N_FULL_INSTALL__&&function(e,t,...n){const l=Ho(n[0])?n[0]:{},a=!!l.useI18nComponentName;(!$o(l.globalInstall)||l.globalInstall)&&(e.component(a?"i18n":bi.name,bi),e.component(xi.name,xi),e.component(Ci.name,Ci)),e.directive("t",Si(t))}(e,r,...l),__VUE_I18N_LEGACY_API__&&t&&e.mixin(function(e,t,n){return{beforeCreate(){const l=na();if(!l)throw ai(22);const a=this.$options;if(a.i18n){const n=a.i18n;a.__i18n&&(n.__i18n=a.__i18n),n.__root=t,this===this.$root?this.$i18n=Ii(e,n):this.$i18n=gi(n)}else a.__i18n?this===this.$root?this.$i18n=Ii(e,a):this.$i18n=gi({__i18n:a.__i18n,__root:t}):this.$i18n=e;e.__onComponentInstanceCreated(this.$i18n),n.__setInstance(l,this.$i18n),this.$t=(...e)=>this.$i18n.t(...e),this.$rt=(...e)=>this.$i18n.rt(...e),this.$tc=(...e)=>this.$i18n.tc(...e),this.$te=(e,t)=>this.$i18n.te(e,t),this.$d=(...e)=>this.$i18n.d(...e),this.$n=(...e)=>this.$i18n.n(...e),this.$tm=e=>this.$i18n.tm(e)},mounted(){if(__VUE_I18N_PROD_DEVTOOLS__){this.$el.__VUE_I18N__=this.$i18n.__composer;const e=this.__v_emitter=Wo(),t=this.$i18n;t.__enableEmitter&&t.__enableEmitter(e),e.on("*",Pi)}},beforeUnmount(){const e=na();if(!e)throw ai(22);if(__VUE_I18N_PROD_DEVTOOLS__){this.__v_emitter&&(this.__v_emitter.off("*",Pi),delete this.__v_emitter);const e=this.$i18n;e.__disableEmitter&&e.__disableEmitter(),delete this.$el.__VUE_I18N__}delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,n.__deleteInstance(e),delete this.$i18n}}}(a,a.__composer,r)),__VUE_I18N_PROD_DEVTOOLS__){if(!(await Mi(e,r)))throw ai(21);const n=Wo();if(t){const e=a;e.__enableEmitter&&e.__enableEmitter(n)}else{const e=a;e[si]&&e[si](n)}n.on("*",Pi)}},get global(){return a},__instances:l,__getInstance:e=>l.get(e)||null,__setInstance(e,t){l.set(e,t)},__deleteInstance(e){l.delete(e)}};return r}function Vi(e={}){const t=na();if(null==t)throw ai(16);if(!t.appContext.app.__VUE_I18N_SYMBOL__)throw ai(17);const n=zl(t.appContext.app.__VUE_I18N_SYMBOL__);if(!n)throw ai(22);const l="composition"===n.mode?n.global:n.global.__composer,a=Oo(e)?"__i18n"in t.type?"local":"global":e.useScope?e.useScope:"local";if("global"===a){let n=zo(e.messages)?e.messages:{};"__i18nGlobal"in t.type&&(n=fi(l.locale.value,{messages:n,__i18n:t.type.__i18nGlobal}));const a=Object.keys(n);if(a.length&&a.forEach((e=>{l.mergeLocaleMessage(e,n[e])})),zo(e.datetimeFormats)){const t=Object.keys(e.datetimeFormats);t.length&&t.forEach((t=>{l.mergeDateTimeFormat(t,e.datetimeFormats[t])}))}if(zo(e.numberFormats)){const t=Object.keys(e.numberFormats);t.length&&t.forEach((t=>{l.mergeNumberFormat(t,e.numberFormats[t])}))}return l}if("parent"===a){let e=function(e,t){let n=null;const l=t.root;let a=t.parent;for(;null!=a;){const t=e;if("composition"===e.mode)n=t.__getInstance(a);else{const e=t.__getInstance(a);null!=e&&(n=e.__composer)}if(null!=n)break;if(l===a)break;a=a.parent}return n}(n,t);return null==e&&(e=l),e}if("legacy"===n.mode)throw ai(18);const o=n;let r=o.__getInstance(t);if(null==r){const n=t.type,a=Do({},e);n.__i18n&&(a.__i18n=n.__i18n),l&&(a.__root=l),r=mi(a),function(e,t,n){let l=null;mn((()=>{if(__VUE_I18N_PROD_DEVTOOLS__&&t.vnode.el){t.vnode.el.__VUE_I18N__=n,l=Wo();const e=n;e[si]&&e[si](l),l.on("*",Pi)}}),t),_n((()=>{if(__VUE_I18N_PROD_DEVTOOLS__&&t.vnode.el&&t.vnode.el.__VUE_I18N__){l&&l.off("*",Pi);const e=n;e[ui]&&e[ui](),delete t.vnode.el.__VUE_I18N__}e.__deleteInstance(t)}),t)}(o,t,r),o.__setInstance(t,r)}return r}const Bi=["locale","fallbackLocale","availableLocales"],$i=["t","rt","d","n","tm"];var zi;if(Or=function(e,t={}){{const n=(t.onCacheKey||$r)(e),l=zr[n];if(l)return l;let a=!1;const o=t.onError||sr;t.onError=e=>{a=!0,o(e)};const{code:r}=wr(e,t),i=new Function(`return ${r}`)();return a?i:zr[n]=i}},"boolean"!=typeof __VUE_I18N_FULL_INSTALL__&&(No().__VUE_I18N_FULL_INSTALL__=!0),"boolean"!=typeof __VUE_I18N_LEGACY_API__&&(No().__VUE_I18N_LEGACY_API__=!0),"boolean"!=typeof __VUE_I18N_PROD_DEVTOOLS__&&(No().__VUE_I18N_PROD_DEVTOOLS__=!1),"boolean"!=typeof __INTLIFY_PROD_DEVTOOLS__&&(No().__INTLIFY_PROD_DEVTOOLS__=!1),__INTLIFY_PROD_DEVTOOLS__){const e=No();e.__INTLIFY__=!0,zi=e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__,Sr=zi}var ji=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,l){return e[0]===t&&(n=l,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),l=this.__entries__[n];return l&&l[1]},t.prototype.set=function(t,n){var l=e(this.__entries__,t);~l?this.__entries__[l][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,l=e(n,t);~l&&n.splice(l,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,l=this.__entries__;n<l.length;n++){var a=l[n];e.call(t,a[1],a[0])}},t}()}(),Ri="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,Hi="undefined"!=typeof global&&global.Math===Math?global:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),Wi="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(Hi):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var Yi=["top","right","bottom","left","width","height","size","weight"],qi="undefined"!=typeof MutationObserver,Ki=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,l=!1,a=0;function o(){n&&(n=!1,e()),l&&i()}function r(){Wi(o)}function i(){var e=Date.now();if(n){if(e-a<2)return;l=!0}else n=!0,l=!1,setTimeout(r,t);a=e}return i}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){Ri&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),qi?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){Ri&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;Yi.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),Ui=function(e,t){for(var n=0,l=Object.keys(t);n<l.length;n++){var a=l[n];Object.defineProperty(e,a,{value:t[a],enumerable:!1,writable:!1,configurable:!0})}return e},Gi=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||Hi},Xi=ns(0,0,0,0);function Zi(e){return parseFloat(e)||0}function Ji(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+Zi(e["border-"+n+"-width"])}),0)}function Qi(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return Xi;var l=Gi(e).getComputedStyle(e),a=function(e){for(var t={},n=0,l=["top","right","bottom","left"];n<l.length;n++){var a=l[n],o=e["padding-"+a];t[a]=Zi(o)}return t}(l),o=a.left+a.right,r=a.top+a.bottom,i=Zi(l.width),s=Zi(l.height);if("border-box"===l.boxSizing&&(Math.round(i+o)!==t&&(i-=Ji(l,"left","right")+o),Math.round(s+r)!==n&&(s-=Ji(l,"top","bottom")+r)),!function(e){return e===Gi(e).document.documentElement}(e)){var u=Math.round(i+o)-t,c=Math.round(s+r)-n;1!==Math.abs(u)&&(i-=u),1!==Math.abs(c)&&(s-=c)}return ns(a.left,a.top,i,s)}var es="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof Gi(e).SVGGraphicsElement}:function(e){return e instanceof Gi(e).SVGElement&&"function"==typeof e.getBBox};function ts(e){return Ri?es(e)?function(e){var t=e.getBBox();return ns(0,0,t.width,t.height)}(e):Qi(e):Xi}function ns(e,t,n,l){return{x:e,y:t,width:n,height:l}}var ls=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=ns(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=ts(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),as=function(e,t){var n,l,a,o,r,i,s,u=(l=(n=t).x,a=n.y,o=n.width,r=n.height,i="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,s=Object.create(i.prototype),Ui(s,{x:l,y:a,width:o,height:r,top:a,right:l+o,bottom:r+a,left:l}),s);Ui(this,{target:e,contentRect:u})},os=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new ji,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof Gi(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new ls(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof Gi(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new as(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),rs="undefined"!=typeof WeakMap?new WeakMap:new ji,is=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=Ki.getInstance(),l=new os(t,n,this);rs.set(this,l)};["observe","unobserve","disconnect"].forEach((function(e){is.prototype[e]=function(){var t;return(t=rs.get(this))[e].apply(t,arguments)}}));var ss=void 0!==Hi.ResizeObserver?Hi.ResizeObserver:is,us="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var cs=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},ds="object"==typeof us&&us&&us.Object===Object&&us,ps=ds,fs="object"==typeof self&&self&&self.Object===Object&&self,hs=ps||fs||Function("return this")(),vs=hs,ms=function(){return vs.Date.now()},gs=/\s/;var ys=function(e){for(var t=e.length;t--&&gs.test(e.charAt(t)););return t},bs=/^\s+/;var _s=function(e){return e?e.slice(0,ys(e)+1).replace(bs,""):e},ks=hs.Symbol,xs=ks,ws=Object.prototype,Cs=ws.hasOwnProperty,Ss=ws.toString,Es=xs?xs.toStringTag:void 0;var Ms=function(e){var t=Cs.call(e,Es),n=e[Es];try{e[Es]=void 0;var l=!0}catch(Oc){}var a=Ss.call(e);return l&&(t?e[Es]=n:delete e[Es]),a},Os=Object.prototype.toString;var Ts=Ms,Ds=function(e){return Os.call(e)},Ls=ks?ks.toStringTag:void 0;var Ns=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Ls&&Ls in Object(e)?Ts(e):Ds(e)};var As=function(e){return null!=e&&"object"==typeof e},Ps=Ns,Is=As;var Fs=_s,Vs=cs,Bs=function(e){return"symbol"==typeof e||Is(e)&&"[object Symbol]"==Ps(e)},$s=/^[-+]0x[0-9a-f]+$/i,zs=/^0b[01]+$/i,js=/^0o[0-7]+$/i,Rs=parseInt;var Hs=cs,Ws=ms,Ys=function(e){if("number"==typeof e)return e;if(Bs(e))return NaN;if(Vs(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Vs(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Fs(e);var n=zs.test(e);return n||js.test(e)?Rs(e.slice(2),n?2:8):$s.test(e)?NaN:+e},qs=Math.max,Ks=Math.min;var Us,Gs,Xs,Zs,Js,Qs,eu,tu,nu,lu,au,ou,ru,iu,su,uu=function(e,t,n){var l,a,o,r,i,s,u=0,c=!1,d=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function f(t){var n=l,o=a;return l=a=void 0,u=t,r=e.apply(o,n)}function h(e){return u=e,i=setTimeout(m,t),c?f(e):r}function v(e){var n=e-s;return void 0===s||n>=t||n<0||d&&e-u>=o}function m(){var e=Ws();if(v(e))return g(e);i=setTimeout(m,function(e){var n=t-(e-s);return d?Ks(n,o-(e-u)):n}(e))}function g(e){return i=void 0,p&&l?f(e):(l=a=void 0,r)}function y(){var e=Ws(),n=v(e);if(l=arguments,a=this,s=e,n){if(void 0===i)return h(s);if(d)return clearTimeout(i),i=setTimeout(m,t),f(s)}return void 0===i&&(i=setTimeout(m,t)),r}return t=Ys(t)||0,Hs(n)&&(c=!!n.leading,o=(d="maxWait"in n)?qs(Ys(n.maxWait)||0,t):o,p="trailing"in n?!!n.trailing:p),y.cancel=function(){void 0!==i&&clearTimeout(i),u=0,l=s=a=i=void 0},y.flush=function(){return void 0===i?r:g(Ws())},y},cu=!1;function du(){if(!cu){cu=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(ou=/\b(iPhone|iP[ao]d)/.exec(e),ru=/\b(iP[ao]d)/.exec(e),lu=/Android/i.exec(e),iu=/FBAN\/\w+;/i.exec(e),su=/Mobile/i.exec(e),au=!!/Win64/.exec(e),t){(Us=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN)&&document&&document.documentMode&&(Us=document.documentMode);var l=/(?:Trident\/(\d+.\d+))/.exec(e);Qs=l?parseFloat(l[1])+4:Us,Gs=t[2]?parseFloat(t[2]):NaN,Xs=t[3]?parseFloat(t[3]):NaN,(Zs=t[4]?parseFloat(t[4]):NaN)?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),Js=t&&t[1]?parseFloat(t[1]):NaN):Js=NaN}else Us=Gs=Xs=Js=Zs=NaN;if(n){if(n[1]){var a=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);eu=!a||parseFloat(a[1].replace("_","."))}else eu=!1;tu=!!n[2],nu=!!n[3]}else eu=tu=nu=!1}}var pu,fu={ie:function(){return du()||Us},ieCompatibilityMode:function(){return du()||Qs>Us},ie64:function(){return fu.ie()&&au},firefox:function(){return du()||Gs},opera:function(){return du()||Xs},webkit:function(){return du()||Zs},safari:function(){return fu.webkit()},chrome:function(){return du()||Js},windows:function(){return du()||tu},osx:function(){return du()||eu},linux:function(){return du()||nu},iphone:function(){return du()||ou},mobile:function(){return du()||ou||ru||lu||su},nativeApp:function(){return du()||iu},android:function(){return du()||lu},ipad:function(){return du()||ru}},hu=fu,vu=!("undefined"==typeof window||!window.document||!window.document.createElement),mu={canUseDOM:vu,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:vu&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:vu&&!!window.screen,isInWorker:!vu};mu.canUseDOM&&(pu=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""))
+/**
+ * Checks if an event is supported in the current execution environment.
+ *
+ * NOTE: This will not work correctly for non-generic events such as `change`,
+ * `reset`, `load`, `error`, and `select`.
+ *
+ * Borrows from Modernizr.
+ *
+ * @param {string} eventNameSuffix Event name, e.g. "click".
+ * @param {?boolean} capture Check if the capture phase is supported.
+ * @return {boolean} True if the event is supported.
+ * @internal
+ * @license Modernizr 3.0.0pre (Custom Build) | MIT
+ */;var gu=hu,yu=function(e,t){if(!mu.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,l=n in document;if(!l){var a=document.createElement("div");a.setAttribute(n,"return;"),l="function"==typeof a[n]}return!l&&pu&&"wheel"===e&&(l=document.implementation.hasFeature("Events.wheel","3.0")),l};function bu(e){var t=0,n=0,l=0,a=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),l=10*t,a=10*n,"deltaY"in e&&(a=e.deltaY),"deltaX"in e&&(l=e.deltaX),(l||a)&&e.deltaMode&&(1==e.deltaMode?(l*=40,a*=40):(l*=800,a*=800)),l&&!t&&(t=l<1?-1:1),a&&!n&&(n=a<1?-1:1),{spinX:t,spinY:n,pixelX:l,pixelY:a}}bu.getEventType=function(){return gu.firefox()?"DOMMouseScroll":yu("wheel")?"wheel":"mousewheel"};var _u=bu;function ku(e){return{all:e=e||new Map,on:function(t,n){var l=e.get(t);l&&l.push(n)||e.set(t,[n])},off:function(t,n){var l=e.get(t);l&&l.splice(l.indexOf(n)>>>0,1)},emit:function(t,n){(e.get(t)||[]).slice().map((function(e){e(n)})),(e.get("*")||[]).slice().map((function(e){e(t,n)}))}}}var xu="top",wu="bottom",Cu="right",Su="left",Eu=[xu,wu,Cu,Su],Mu=Eu.reduce((function(e,t){return e.concat([t+"-start",t+"-end"])}),[]),Ou=[].concat(Eu,["auto"]).reduce((function(e,t){return e.concat([t,t+"-start",t+"-end"])}),[]),Tu=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Du(e){return e?(e.nodeName||"").toLowerCase():null}function Lu(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Nu(e){return e instanceof Lu(e).Element||e instanceof Element}function Au(e){return e instanceof Lu(e).HTMLElement||e instanceof HTMLElement}function Pu(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Lu(e).ShadowRoot||e instanceof ShadowRoot)}var Iu={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},l=t.attributes[e]||{},a=t.elements[e];Au(a)&&Du(a)&&(Object.assign(a.style,n),Object.keys(l).forEach((function(e){var t=l[e];!1===t?a.removeAttribute(e):a.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var l=t.elements[e],a=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});Au(l)&&Du(l)&&(Object.assign(l.style,o),Object.keys(a).forEach((function(e){l.removeAttribute(e)})))}))}},requires:["computeStyles"]};function Fu(e){return e.split("-")[0]}function Vu(e){var t=e.getBoundingClientRect();return{width:t.width,height:t.height,top:t.top,right:t.right,bottom:t.bottom,left:t.left,x:t.left,y:t.top}}function Bu(e){var t=Vu(e),n=e.offsetWidth,l=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-l)<=1&&(l=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:l}}function $u(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Pu(n)){var l=t;do{if(l&&e.isSameNode(l))return!0;l=l.parentNode||l.host}while(l)}return!1}function zu(e){return Lu(e).getComputedStyle(e)}function ju(e){return["table","td","th"].indexOf(Du(e))>=0}function Ru(e){return((Nu(e)?e.ownerDocument:e.document)||window.document).documentElement}function Hu(e){return"html"===Du(e)?e:e.assignedSlot||e.parentNode||(Pu(e)?e.host:null)||Ru(e)}function Wu(e){return Au(e)&&"fixed"!==zu(e).position?e.offsetParent:null}function Yu(e){for(var t=Lu(e),n=Wu(e);n&&ju(n)&&"static"===zu(n).position;)n=Wu(n);return n&&("html"===Du(n)||"body"===Du(n)&&"static"===zu(n).position)?t:n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Au(e)&&"fixed"===zu(e).position)return null;for(var n=Hu(e);Au(n)&&["html","body"].indexOf(Du(n))<0;){var l=zu(n);if("none"!==l.transform||"none"!==l.perspective||"paint"===l.contain||-1!==["transform","perspective"].indexOf(l.willChange)||t&&"filter"===l.willChange||t&&l.filter&&"none"!==l.filter)return n;n=n.parentNode}return null}(e)||t}function qu(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}var Ku=Math.max,Uu=Math.min,Gu=Math.round;function Xu(e,t,n){return Ku(e,Uu(t,n))}function Zu(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Ju(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Qu={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ec(e){var t,n=e.popper,l=e.popperRect,a=e.placement,o=e.offsets,r=e.position,i=e.gpuAcceleration,s=e.adaptive,u=e.roundOffsets,c=!0===u?function(e){var t=e.x,n=e.y,l=window.devicePixelRatio||1;return{x:Gu(Gu(t*l)/l)||0,y:Gu(Gu(n*l)/l)||0}}(o):"function"==typeof u?u(o):o,d=c.x,p=void 0===d?0:d,f=c.y,h=void 0===f?0:f,v=o.hasOwnProperty("x"),m=o.hasOwnProperty("y"),g=Su,y=xu,b=window;if(s){var _=Yu(n),k="clientHeight",x="clientWidth";_===Lu(n)&&"static"!==zu(_=Ru(n)).position&&(k="scrollHeight",x="scrollWidth"),_=_,a===xu&&(y=wu,h-=_[k]-l.height,h*=i?1:-1),a===Su&&(g=Cu,p-=_[x]-l.width,p*=i?1:-1)}var w,C=Object.assign({position:r},s&&Qu);return i?Object.assign({},C,((w={})[y]=m?"0":"",w[g]=v?"0":"",w.transform=(b.devicePixelRatio||1)<2?"translate("+p+"px, "+h+"px)":"translate3d("+p+"px, "+h+"px, 0)",w)):Object.assign({},C,((t={})[y]=m?h+"px":"",t[g]=v?p+"px":"",t.transform="",t))}var tc={passive:!0};var nc={left:"right",right:"left",bottom:"top",top:"bottom"};function lc(e){return e.replace(/left|right|bottom|top/g,(function(e){return nc[e]}))}var ac={start:"end",end:"start"};function oc(e){return e.replace(/start|end/g,(function(e){return ac[e]}))}function rc(e){var t=Lu(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ic(e){return Vu(Ru(e)).left+rc(e).scrollLeft}function sc(e){var t=zu(e),n=t.overflow,l=t.overflowX,a=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+a+l)}function uc(e){return["html","body","#document"].indexOf(Du(e))>=0?e.ownerDocument.body:Au(e)&&sc(e)?e:uc(Hu(e))}function cc(e,t){var n;void 0===t&&(t=[]);var l=uc(e),a=l===(null==(n=e.ownerDocument)?void 0:n.body),o=Lu(l),r=a?[o].concat(o.visualViewport||[],sc(l)?l:[]):l,i=t.concat(r);return a?i:i.concat(cc(Hu(r)))}function dc(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function pc(e,t){return"viewport"===t?dc(function(e){var t=Lu(e),n=Ru(e),l=t.visualViewport,a=n.clientWidth,o=n.clientHeight,r=0,i=0;return l&&(a=l.width,o=l.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=l.offsetLeft,i=l.offsetTop)),{width:a,height:o,x:r+ic(e),y:i}}(e)):Au(t)?function(e){var t=Vu(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):dc(function(e){var t,n=Ru(e),l=rc(e),a=null==(t=e.ownerDocument)?void 0:t.body,o=Ku(n.scrollWidth,n.clientWidth,a?a.scrollWidth:0,a?a.clientWidth:0),r=Ku(n.scrollHeight,n.clientHeight,a?a.scrollHeight:0,a?a.clientHeight:0),i=-l.scrollLeft+ic(e),s=-l.scrollTop;return"rtl"===zu(a||n).direction&&(i+=Ku(n.clientWidth,a?a.clientWidth:0)-o),{width:o,height:r,x:i,y:s}}(Ru(e)))}function fc(e,t,n){var l="clippingParents"===t?function(e){var t=cc(Hu(e)),n=["absolute","fixed"].indexOf(zu(e).position)>=0&&Au(e)?Yu(e):e;return Nu(n)?t.filter((function(e){return Nu(e)&&$u(e,n)&&"body"!==Du(e)})):[]}(e):[].concat(t),a=[].concat(l,[n]),o=a[0],r=a.reduce((function(t,n){var l=pc(e,n);return t.top=Ku(l.top,t.top),t.right=Uu(l.right,t.right),t.bottom=Uu(l.bottom,t.bottom),t.left=Ku(l.left,t.left),t}),pc(e,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}function hc(e){return e.split("-")[1]}function vc(e){var t,n=e.reference,l=e.element,a=e.placement,o=a?Fu(a):null,r=a?hc(a):null,i=n.x+n.width/2-l.width/2,s=n.y+n.height/2-l.height/2;switch(o){case xu:t={x:i,y:n.y-l.height};break;case wu:t={x:i,y:n.y+n.height};break;case Cu:t={x:n.x+n.width,y:s};break;case Su:t={x:n.x-l.width,y:s};break;default:t={x:n.x,y:n.y}}var u=o?qu(o):null;if(null!=u){var c="y"===u?"height":"width";switch(r){case"start":t[u]=t[u]-(n[c]/2-l[c]/2);break;case"end":t[u]=t[u]+(n[c]/2-l[c]/2)}}return t}function mc(e,t){void 0===t&&(t={});var n=t,l=n.placement,a=void 0===l?e.placement:l,o=n.boundary,r=void 0===o?"clippingParents":o,i=n.rootBoundary,s=void 0===i?"viewport":i,u=n.elementContext,c=void 0===u?"popper":u,d=n.altBoundary,p=void 0!==d&&d,f=n.padding,h=void 0===f?0:f,v=Zu("number"!=typeof h?h:Ju(h,Eu)),m="popper"===c?"reference":"popper",g=e.elements.reference,y=e.rects.popper,b=e.elements[p?m:c],_=fc(Nu(b)?b:b.contextElement||Ru(e.elements.popper),r,s),k=Vu(g),x=vc({reference:k,element:y,strategy:"absolute",placement:a}),w=dc(Object.assign({},y,x)),C="popper"===c?w:k,S={top:_.top-C.top+v.top,bottom:C.bottom-_.bottom+v.bottom,left:_.left-C.left+v.left,right:C.right-_.right+v.right},E=e.modifiersData.offset;if("popper"===c&&E){var M=E[a];Object.keys(S).forEach((function(e){var t=[Cu,wu].indexOf(e)>=0?1:-1,n=[xu,wu].indexOf(e)>=0?"y":"x";S[e]+=M[n]*t}))}return S}function gc(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function yc(e){return[xu,Cu,wu,Su].some((function(t){return e[t]>=0}))}function bc(e,t,n){void 0===n&&(n=!1);var l,a,o=Ru(t),r=Vu(e),i=Au(t),s={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(i||!i&&!n)&&(("body"!==Du(t)||sc(o))&&(s=(l=t)!==Lu(l)&&Au(l)?{scrollLeft:(a=l).scrollLeft,scrollTop:a.scrollTop}:rc(l)),Au(t)?((u=Vu(t)).x+=t.clientLeft,u.y+=t.clientTop):o&&(u.x=ic(o))),{x:r.left+s.scrollLeft-u.x,y:r.top+s.scrollTop-u.y,width:r.width,height:r.height}}function _c(e){var t=new Map,n=new Set,l=[];function a(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var l=t.get(e);l&&a(l)}})),l.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||a(e)})),l}var kc={placement:"bottom",modifiers:[],strategy:"absolute"};function xc(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some((function(e){return!(e&&"function"==typeof e.getBoundingClientRect)}))}function wc(e){void 0===e&&(e={});var t=e,n=t.defaultModifiers,l=void 0===n?[]:n,a=t.defaultOptions,o=void 0===a?kc:a;return function(e,t,n){void 0===n&&(n=o);var a,r,i={placement:"bottom",orderedModifiers:[],options:Object.assign({},kc,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},s=[],u=!1,c={state:i,setOptions:function(n){d(),i.options=Object.assign({},o,i.options,n),i.scrollParents={reference:Nu(e)?cc(e):e.contextElement?cc(e.contextElement):[],popper:cc(t)};var a,r,u=function(e){var t=_c(e);return Tu.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}((a=[].concat(l,i.options.modifiers),r=a.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{}),Object.keys(r).map((function(e){return r[e]}))));return i.orderedModifiers=u.filter((function(e){return e.enabled})),i.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,l=void 0===n?{}:n,a=e.effect;if("function"==typeof a){var o=a({state:i,name:t,instance:c,options:l}),r=function(){};s.push(o||r)}})),c.update()},forceUpdate:function(){if(!u){var e=i.elements,t=e.reference,n=e.popper;if(xc(t,n)){i.rects={reference:bc(t,Yu(n),"fixed"===i.options.strategy),popper:Bu(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach((function(e){return i.modifiersData[e.name]=Object.assign({},e.data)}));for(var l=0;l<i.orderedModifiers.length;l++)if(!0!==i.reset){var a=i.orderedModifiers[l],o=a.fn,r=a.options,s=void 0===r?{}:r,d=a.name;"function"==typeof o&&(i=o({state:i,options:s,name:d,instance:c})||i)}else i.reset=!1,l=-1}}},update:(a=function(){return new Promise((function(e){c.forceUpdate(),e(i)}))},function(){return r||(r=new Promise((function(e){Promise.resolve().then((function(){r=void 0,e(a())}))}))),r}),destroy:function(){d(),u=!0}};if(!xc(e,t))return c;function d(){s.forEach((function(e){return e()})),s=[]}return c.setOptions(n).then((function(e){!u&&n.onFirstUpdate&&n.onFirstUpdate(e)})),c}}var Cc=wc({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,l=e.options,a=l.scroll,o=void 0===a||a,r=l.resize,i=void 0===r||r,s=Lu(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&u.forEach((function(e){e.addEventListener("scroll",n.update,tc)})),i&&s.addEventListener("resize",n.update,tc),function(){o&&u.forEach((function(e){e.removeEventListener("scroll",n.update,tc)})),i&&s.removeEventListener("resize",n.update,tc)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=vc({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,l=n.gpuAcceleration,a=void 0===l||l,o=n.adaptive,r=void 0===o||o,i=n.roundOffsets,s=void 0===i||i,u={placement:Fu(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:a};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,ec(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:r,roundOffsets:s})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,ec(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:s})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},Iu,{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,l=e.name,a=n.offset,o=void 0===a?[0,0]:a,r=Ou.reduce((function(e,n){return e[n]=function(e,t,n){var l=Fu(e),a=[Su,xu].indexOf(l)>=0?-1:1,o="function"==typeof n?n(Object.assign({},t,{placement:e})):n,r=o[0],i=o[1];return r=r||0,i=(i||0)*a,[Su,Cu].indexOf(l)>=0?{x:i,y:r}:{x:r,y:i}}(n,t.rects,o),e}),{}),i=r[t.placement],s=i.x,u=i.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=s,t.modifiersData.popperOffsets.y+=u),t.modifiersData[l]=r}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,l=e.name;if(!t.modifiersData[l]._skip){for(var a=n.mainAxis,o=void 0===a||a,r=n.altAxis,i=void 0===r||r,s=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,p=n.altBoundary,f=n.flipVariations,h=void 0===f||f,v=n.allowedAutoPlacements,m=t.options.placement,g=Fu(m),y=s||(g===m||!h?[lc(m)]:function(e){if("auto"===Fu(e))return[];var t=lc(e);return[oc(e),t,oc(t)]}(m)),b=[m].concat(y).reduce((function(e,n){return e.concat("auto"===Fu(n)?function(e,t){void 0===t&&(t={});var n=t,l=n.placement,a=n.boundary,o=n.rootBoundary,r=n.padding,i=n.flipVariations,s=n.allowedAutoPlacements,u=void 0===s?Ou:s,c=hc(l),d=c?i?Mu:Mu.filter((function(e){return hc(e)===c})):Eu,p=d.filter((function(e){return u.indexOf(e)>=0}));0===p.length&&(p=d);var f=p.reduce((function(t,n){return t[n]=mc(e,{placement:n,boundary:a,rootBoundary:o,padding:r})[Fu(n)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}(t,{placement:n,boundary:c,rootBoundary:d,padding:u,flipVariations:h,allowedAutoPlacements:v}):n)}),[]),_=t.rects.reference,k=t.rects.popper,x=new Map,w=!0,C=b[0],S=0;S<b.length;S++){var E=b[S],M=Fu(E),O="start"===hc(E),T=[xu,wu].indexOf(M)>=0,D=T?"width":"height",L=mc(t,{placement:E,boundary:c,rootBoundary:d,altBoundary:p,padding:u}),N=T?O?Cu:Su:O?wu:xu;_[D]>k[D]&&(N=lc(N));var A=lc(N),P=[];if(o&&P.push(L[M]<=0),i&&P.push(L[N]<=0,L[A]<=0),P.every((function(e){return e}))){C=E,w=!1;break}x.set(E,P)}if(w)for(var I=function(e){var t=b.find((function(t){var n=x.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return C=t,"break"},F=h?3:1;F>0;F--){if("break"===I(F))break}t.placement!==C&&(t.modifiersData[l]._skip=!0,t.placement=C,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,l=e.name,a=n.mainAxis,o=void 0===a||a,r=n.altAxis,i=void 0!==r&&r,s=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,p=n.tether,f=void 0===p||p,h=n.tetherOffset,v=void 0===h?0:h,m=mc(t,{boundary:s,rootBoundary:u,padding:d,altBoundary:c}),g=Fu(t.placement),y=hc(t.placement),b=!y,_=qu(g),k="x"===_?"y":"x",x=t.modifiersData.popperOffsets,w=t.rects.reference,C=t.rects.popper,S="function"==typeof v?v(Object.assign({},t.rects,{placement:t.placement})):v,E={x:0,y:0};if(x){if(o||i){var M="y"===_?xu:Su,O="y"===_?wu:Cu,T="y"===_?"height":"width",D=x[_],L=x[_]+m[M],N=x[_]-m[O],A=f?-C[T]/2:0,P="start"===y?w[T]:C[T],I="start"===y?-C[T]:-w[T],F=t.elements.arrow,V=f&&F?Bu(F):{width:0,height:0},B=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},$=B[M],z=B[O],j=Xu(0,w[T],V[T]),R=b?w[T]/2-A-j-$-S:P-j-$-S,H=b?-w[T]/2+A+j+z+S:I+j+z+S,W=t.elements.arrow&&Yu(t.elements.arrow),Y=W?"y"===_?W.clientTop||0:W.clientLeft||0:0,q=t.modifiersData.offset?t.modifiersData.offset[t.placement][_]:0,K=x[_]+R-q-Y,U=x[_]+H-q;if(o){var G=Xu(f?Uu(L,K):L,D,f?Ku(N,U):N);x[_]=G,E[_]=G-D}if(i){var X="x"===_?xu:Su,Z="x"===_?wu:Cu,J=x[k],Q=J+m[X],ee=J-m[Z],te=Xu(f?Uu(Q,K):Q,J,f?Ku(ee,U):ee);x[k]=te,E[k]=te-J}}t.modifiersData[l]=E}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,l=e.name,a=e.options,o=n.elements.arrow,r=n.modifiersData.popperOffsets,i=Fu(n.placement),s=qu(i),u=[Su,Cu].indexOf(i)>=0?"height":"width";if(o&&r){var c=function(e,t){return Zu("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Ju(e,Eu))}(a.padding,n),d=Bu(o),p="y"===s?xu:Su,f="y"===s?wu:Cu,h=n.rects.reference[u]+n.rects.reference[s]-r[s]-n.rects.popper[u],v=r[s]-n.rects.reference[s],m=Yu(o),g=m?"y"===s?m.clientHeight||0:m.clientWidth||0:0,y=h/2-v/2,b=c[p],_=g-d[u]-c[f],k=g/2-d[u]/2+y,x=Xu(b,k,_),w=s;n.modifiersData[l]=((t={})[w]=x,t.centerOffset=x-k,t)}},effect:function(e){var t=e.state,n=e.options.element,l=void 0===n?"[data-popper-arrow]":n;null!=l&&("string"!=typeof l||(l=t.elements.popper.querySelector(l)))&&$u(t.elements.popper,l)&&(t.elements.arrow=l)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,l=t.rects.reference,a=t.rects.popper,o=t.modifiersData.preventOverflow,r=mc(t,{elementContext:"reference"}),i=mc(t,{altBoundary:!0}),s=gc(r,l),u=gc(i,a,o),c=yc(s),d=yc(u);t.modifiersData[n]={referenceClippingOffsets:s,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}}]}),Sc=uu,Ec=cs;var Mc,Oc,Tc,Dc,Lc,Nc,Ac,Pc,Ic,Fc,Vc,Bc,$c,zc=function(e,t,n){var l=!0,a=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return Ec(n)&&(l="leading"in n?!!n.leading:l,a="trailing"in n?!!n.trailing:a),Sc(e,t,{leading:l,maxWait:t,trailing:a})},jc={exports:{}},Rc=jc.exports=function(){var e="millisecond",t="second",n="minute",l="hour",a="day",o="week",r="month",i="quarter",s="year",u="date",c=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,d=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,p={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},f=function(e,t,n){var l=String(e);return!l||l.length>=t?e:""+Array(t+1-l.length).join(n)+e},h={s:f,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),l=Math.floor(n/60),a=n%60;return(t<=0?"+":"-")+f(l,2,"0")+":"+f(a,2,"0")},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var l=12*(n.year()-t.year())+(n.month()-t.month()),a=t.clone().add(l,r),o=n-a<0,i=t.clone().add(l+(o?-1:1),r);return+(-(l+(n-a)/(o?a-i:i-a))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(c){return{M:r,y:s,w:o,d:a,D:u,h:l,m:n,s:t,ms:e,Q:i}[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},v="en",m={};m[v]=p;var g=function(e){return e instanceof k},y=function(e,t,n){var l;if(!e)return v;if("string"==typeof e)m[e]&&(l=e),t&&(m[e]=t,l=e);else{var a=e.name;m[a]=e,l=a}return!n&&l&&(v=l),l||!n&&v},b=function(e,t){if(g(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new k(n)},_=h;_.l=y,_.i=g,_.w=function(e,t){return b(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var k=function(){function p(e){this.$L=y(e.locale,null,!0),this.parse(e)}var f=p.prototype;return f.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(_.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var l=t.match(c);if(l){var a=l[2]-1||0,o=(l[7]||"0").substring(0,3);return n?new Date(Date.UTC(l[1],a,l[3]||1,l[4]||0,l[5]||0,l[6]||0,o)):new Date(l[1],a,l[3]||1,l[4]||0,l[5]||0,l[6]||0,o)}}return new Date(t)}(e),this.$x=e.x||{},this.init()},f.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},f.$utils=function(){return _},f.isValid=function(){return!("Invalid Date"===this.$d.toString())},f.isSame=function(e,t){var n=b(e);return this.startOf(t)<=n&&n<=this.endOf(t)},f.isAfter=function(e,t){return b(e)<this.startOf(t)},f.isBefore=function(e,t){return this.endOf(t)<b(e)},f.$g=function(e,t,n){return _.u(e)?this[t]:this.set(n,e)},f.unix=function(){return Math.floor(this.valueOf()/1e3)},f.valueOf=function(){return this.$d.getTime()},f.startOf=function(e,i){var c=this,d=!!_.u(i)||i,p=_.p(e),f=function(e,t){var n=_.w(c.$u?Date.UTC(c.$y,t,e):new Date(c.$y,t,e),c);return d?n:n.endOf(a)},h=function(e,t){return _.w(c.toDate()[e].apply(c.toDate("s"),(d?[0,0,0,0]:[23,59,59,999]).slice(t)),c)},v=this.$W,m=this.$M,g=this.$D,y="set"+(this.$u?"UTC":"");switch(p){case s:return d?f(1,0):f(31,11);case r:return d?f(1,m):f(0,m+1);case o:var b=this.$locale().weekStart||0,k=(v<b?v+7:v)-b;return f(d?g-k:g+(6-k),m);case a:case u:return h(y+"Hours",0);case l:return h(y+"Minutes",1);case n:return h(y+"Seconds",2);case t:return h(y+"Milliseconds",3);default:return this.clone()}},f.endOf=function(e){return this.startOf(e,!1)},f.$set=function(o,i){var c,d=_.p(o),p="set"+(this.$u?"UTC":""),f=(c={},c[a]=p+"Date",c[u]=p+"Date",c[r]=p+"Month",c[s]=p+"FullYear",c[l]=p+"Hours",c[n]=p+"Minutes",c[t]=p+"Seconds",c[e]=p+"Milliseconds",c)[d],h=d===a?this.$D+(i-this.$W):i;if(d===r||d===s){var v=this.clone().set(u,1);v.$d[f](h),v.init(),this.$d=v.set(u,Math.min(this.$D,v.daysInMonth())).$d}else f&&this.$d[f](h);return this.init(),this},f.set=function(e,t){return this.clone().$set(e,t)},f.get=function(e){return this[_.p(e)]()},f.add=function(e,i){var u,c=this;e=Number(e);var d=_.p(i),p=function(t){var n=b(c);return _.w(n.date(n.date()+Math.round(t*e)),c)};if(d===r)return this.set(r,this.$M+e);if(d===s)return this.set(s,this.$y+e);if(d===a)return p(1);if(d===o)return p(7);var f=(u={},u[n]=6e4,u[l]=36e5,u[t]=1e3,u)[d]||1,h=this.$d.getTime()+e*f;return _.w(h,this)},f.subtract=function(e,t){return this.add(-1*e,t)},f.format=function(e){var t=this;if(!this.isValid())return"Invalid Date";var n=e||"YYYY-MM-DDTHH:mm:ssZ",l=_.z(this),a=this.$locale(),o=this.$H,r=this.$m,i=this.$M,s=a.weekdays,u=a.months,c=function(e,l,a,o){return e&&(e[l]||e(t,n))||a[l].substr(0,o)},p=function(e){return _.s(o%12||12,e,"0")},f=a.meridiem||function(e,t,n){var l=e<12?"AM":"PM";return n?l.toLowerCase():l},h={YY:String(this.$y).slice(-2),YYYY:this.$y,M:i+1,MM:_.s(i+1,2,"0"),MMM:c(a.monthsShort,i,u,3),MMMM:c(u,i),D:this.$D,DD:_.s(this.$D,2,"0"),d:String(this.$W),dd:c(a.weekdaysMin,this.$W,s,2),ddd:c(a.weekdaysShort,this.$W,s,3),dddd:s[this.$W],H:String(o),HH:_.s(o,2,"0"),h:p(1),hh:p(2),a:f(o,r,!0),A:f(o,r,!1),m:String(r),mm:_.s(r,2,"0"),s:String(this.$s),ss:_.s(this.$s,2,"0"),SSS:_.s(this.$ms,3,"0"),Z:l};return n.replace(d,(function(e,t){return t||h[e]||l.replace(":","")}))},f.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},f.diff=function(e,u,c){var d,p=_.p(u),f=b(e),h=6e4*(f.utcOffset()-this.utcOffset()),v=this-f,m=_.m(this,f);return m=(d={},d[s]=m/12,d[r]=m,d[i]=m/3,d[o]=(v-h)/6048e5,d[a]=(v-h)/864e5,d[l]=v/36e5,d[n]=v/6e4,d[t]=v/1e3,d)[p]||v,c?m:_.a(m)},f.daysInMonth=function(){return this.endOf(r).$D},f.$locale=function(){return m[this.$L]},f.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),l=y(e,t,!0);return l&&(n.$L=l),n},f.clone=function(){return _.w(this.$d,this)},f.toDate=function(){return new Date(this.valueOf())},f.toJSON=function(){return this.isValid()?this.toISOString():null},f.toISOString=function(){return this.$d.toISOString()},f.toString=function(){return this.$d.toUTCString()},p}(),x=k.prototype;return b.prototype=x,[["$ms",e],["$s",t],["$m",n],["$H",l],["$W",a],["$M",r],["$y",s],["$D",u]].forEach((function(e){x[e[1]]=function(t){return this.$g(t,e[0],e[1])}})),b.extend=function(e,t){return e.$i||(e(t,k,b),e.$i=!0),b},b.locale=y,b.isDayjs=g,b.unix=function(e){return b(1e3*e)},b.en=m[v],b.Ls=m,b.p={},b}(),Hc={exports:{}},Wc=Hc.exports=function(e,t,n){var l=function(e){return e&&(e.indexOf?e:e.s)},a=function(e,t,n,a,o){var r=e.name?e:e.$locale(),i=l(r[t]),s=l(r[n]),u=i||s.map((function(e){return e.substr(0,a)}));if(!o)return u;var c=r.weekStart;return u.map((function(e,t){return u[(t+(c||0))%7]}))},o=function(){return n.Ls[n.locale()]},r=function(e,t){return e.formats[t]||e.formats[t.toUpperCase()].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))};t.prototype.localeData=function(){return function(){var e=this;return{months:function(t){return t?t.format("MMMM"):a(e,"months")},monthsShort:function(t){return t?t.format("MMM"):a(e,"monthsShort","months",3)},firstDayOfWeek:function(){return e.$locale().weekStart||0},weekdays:function(t){return t?t.format("dddd"):a(e,"weekdays")},weekdaysMin:function(t){return t?t.format("dd"):a(e,"weekdaysMin","weekdays",2)},weekdaysShort:function(t){return t?t.format("ddd"):a(e,"weekdaysShort","weekdays",3)},longDateFormat:function(t){return r(e.$locale(),t)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}}.bind(this)()},n.localeData=function(){var e=o();return{firstDayOfWeek:function(){return e.weekStart||0},weekdays:function(){return n.weekdays()},weekdaysShort:function(){return n.weekdaysShort()},weekdaysMin:function(){return n.weekdaysMin()},months:function(){return n.months()},monthsShort:function(){return n.monthsShort()},longDateFormat:function(t){return r(e,t)},meridiem:e.meridiem,ordinal:e.ordinal}},n.months=function(){return a(o(),"months")},n.monthsShort=function(){return a(o(),"monthsShort","months",3)},n.weekdays=function(e){return a(o(),"weekdays",null,null,e)},n.weekdaysShort=function(e){return a(o(),"weekdaysShort","weekdays",3,e)},n.weekdaysMin=function(e){return a(o(),"weekdaysMin","weekdays",2,e)}},Yc={exports:{}},qc=Yc.exports=(Mc={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Oc=function(e,t){return e.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,l){var a=l&&l.toUpperCase();return n||t[l]||Mc[l]||t[a].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))},Tc=/(\[[^[]*\])|([-:/.()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,Ac={},Ic=[/[+-]\d\d:?(\d\d)?/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e)}],Fc=function(e){var t=Ac[e];return t&&(t.indexOf?t:t.s.concat(t.f))},Vc=function(e,t){var n,l=Ac.meridiem;if(l){for(var a=1;a<=24;a+=1)if(e.indexOf(l(a,0,t))>-1){n=a>12;break}}else n=e===(t?"pm":"PM");return n},Bc={A:[Nc=/\d*[^\s\d-_:/()]+/,function(e){this.afternoon=Vc(e,!1)}],a:[Nc,function(e){this.afternoon=Vc(e,!0)}],S:[/\d/,function(e){this.milliseconds=100*+e}],SS:[Dc=/\d\d/,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[Lc=/\d\d?/,(Pc=function(e){return function(t){this[e]=+t}})("seconds")],ss:[Lc,Pc("seconds")],m:[Lc,Pc("minutes")],mm:[Lc,Pc("minutes")],H:[Lc,Pc("hours")],h:[Lc,Pc("hours")],HH:[Lc,Pc("hours")],hh:[Lc,Pc("hours")],D:[Lc,Pc("day")],DD:[Dc,Pc("day")],Do:[Nc,function(e){var t=Ac.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var l=1;l<=31;l+=1)t(l).replace(/\[|\]/g,"")===e&&(this.day=l)}],M:[Lc,Pc("month")],MM:[Dc,Pc("month")],MMM:[Nc,function(e){var t=Fc("months"),n=(Fc("monthsShort")||t.map((function(e){return e.substr(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[Nc,function(e){var t=Fc("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,Pc("year")],YY:[Dc,function(e){e=+e,this.year=e+(e>68?1900:2e3)}],YYYY:[/\d{4}/,Pc("year")],Z:Ic,ZZ:Ic},$c=function(e,t,n){try{var l=function(e){for(var t=(e=Oc(e,Ac&&Ac.formats)).match(Tc),n=t.length,l=0;l<n;l+=1){var a=t[l],o=Bc[a],r=o&&o[0],i=o&&o[1];t[l]=i?{regex:r,parser:i}:a.replace(/^\[|\]$/g,"")}return function(e){for(var l={},a=0,o=0;a<n;a+=1){var r=t[a];if("string"==typeof r)o+=r.length;else{var i=r.regex,s=r.parser,u=e.substr(o),c=i.exec(u)[0];s.call(l,c),e=e.replace(c,"")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(l),l}}(t)(e),a=l.year,o=l.month,r=l.day,i=l.hours,s=l.minutes,u=l.seconds,c=l.milliseconds,d=l.zone,p=new Date,f=r||(a||o?1:p.getDate()),h=a||p.getFullYear(),v=0;a&&!o||(v=o>0?o-1:p.getMonth());var m=i||0,g=s||0,y=u||0,b=c||0;return d?new Date(Date.UTC(h,v,f,m,g,y,b+60*d.offset*1e3)):n?new Date(Date.UTC(h,v,f,m,g,y,b)):new Date(h,v,f,m,g,y,b)}catch(_){return new Date("")}},function(e,t,n){n.p.customParseFormat=!0;var l=t.prototype,a=l.parse;l.parse=function(e){var t=e.date,l=e.utc,o=e.args;this.$u=l;var r=o[1];if("string"==typeof r){var i=!0===o[2],s=!0===o[3],u=i||s,c=o[2];s&&(c=o[2]),Ac=this.$locale(),!i&&c&&(Ac=n.Ls[c]),this.$d=$c(t,r,l),this.init(),c&&!0!==c&&(this.$L=this.locale(c).$L),u&&t!==this.format(r)&&(this.$d=new Date("")),Ac={}}else if(r instanceof Array)for(var d=r.length,p=1;p<=d;p+=1){o[1]=r[p-1];var f=n.apply(this,o);if(f.isValid()){this.$d=f.$d,this.$L=f.$L,this.init();break}p===d&&(this.$d=new Date(""))}else a.call(this,e)}});var Kc=function(e,t){for(var n=-1,l=t.length,a=e.length;++n<l;)e[a+n]=t[n];return e},Uc=Ns,Gc=As;var Xc=function(e){return Gc(e)&&"[object Arguments]"==Uc(e)},Zc=As,Jc=Object.prototype,Qc=Jc.hasOwnProperty,ed=Jc.propertyIsEnumerable,td=Xc(function(){return arguments}())?Xc:function(e){return Zc(e)&&Qc.call(e,"callee")&&!ed.call(e,"callee")},nd=Array.isArray,ld=td,ad=nd,od=ks?ks.isConcatSpreadable:void 0;var rd=Kc,id=function(e){return ad(e)||ld(e)||!!(od&&e&&e[od])};var sd=function e(t,n,l,a,o){var r=-1,i=t.length;for(l||(l=id),o||(o=[]);++r<i;){var s=t[r];n>0&&l(s)?n>1?e(s,n-1,l,a,o):rd(o,s):a||(o[o.length]=s)}return o};var ud=function(e){return e};var cd=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)},dd=Math.max;var pd=function(e,t,n){return t=dd(void 0===t?e.length-1:t,0),function(){for(var l=arguments,a=-1,o=dd(l.length-t,0),r=Array(o);++a<o;)r[a]=l[t+a];a=-1;for(var i=Array(t+1);++a<t;)i[a]=l[a];return i[t]=n(r),cd(e,this,i)}};var fd=function(e){return function(){return e}},hd=Ns,vd=cs;var md,gd=function(e){if(!vd(e))return!1;var t=hd(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},yd=hs["__core-js_shared__"],bd=(md=/[^.]+$/.exec(yd&&yd.keys&&yd.keys.IE_PROTO||""))?"Symbol(src)_1."+md:"";var _d=function(e){return!!bd&&bd in e},kd=Function.prototype.toString;var xd=function(e){if(null!=e){try{return kd.call(e)}catch(Oc){}try{return e+""}catch(Oc){}}return""},wd=gd,Cd=_d,Sd=cs,Ed=xd,Md=/^\[object .+?Constructor\]$/,Od=Function.prototype,Td=Object.prototype,Dd=Od.toString,Ld=Td.hasOwnProperty,Nd=RegExp("^"+Dd.call(Ld).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var Ad=function(e){return!(!Sd(e)||Cd(e))&&(wd(e)?Nd:Md).test(Ed(e))},Pd=function(e,t){return null==e?void 0:e[t]};var Id=function(e,t){var n=Pd(e,t);return Ad(n)?n:void 0},Fd=Id,Vd=function(){try{var e=Fd(Object,"defineProperty");return e({},"",{}),e}catch(Oc){}}(),Bd=fd,$d=Vd,zd=$d?function(e,t){return $d(e,"toString",{configurable:!0,enumerable:!1,value:Bd(t),writable:!0})}:ud,jd=Date.now;var Rd=function(e){var t=0,n=0;return function(){var l=jd(),a=16-(l-n);if(n=l,a>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(zd),Hd=ud,Wd=pd,Yd=Rd;var qd=function(e,t){return Yd(Wd(e,t,Hd),e+"")},Kd=Id(Object,"create"),Ud=Kd;var Gd=function(){this.__data__=Ud?Ud(null):{},this.size=0};var Xd=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Zd=Kd,Jd=Object.prototype.hasOwnProperty;var Qd=function(e){var t=this.__data__;if(Zd){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return Jd.call(t,e)?t[e]:void 0},ep=Kd,tp=Object.prototype.hasOwnProperty;var np=Kd;var lp=Gd,ap=Xd,op=Qd,rp=function(e){var t=this.__data__;return ep?void 0!==t[e]:tp.call(t,e)},ip=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=np&&void 0===t?"__lodash_hash_undefined__":t,this};function sp(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var l=e[t];this.set(l[0],l[1])}}sp.prototype.clear=lp,sp.prototype.delete=ap,sp.prototype.get=op,sp.prototype.has=rp,sp.prototype.set=ip;var up=sp;var cp=function(){this.__data__=[],this.size=0};var dp=function(e,t){return e===t||e!=e&&t!=t},pp=dp;var fp=function(e,t){for(var n=e.length;n--;)if(pp(e[n][0],t))return n;return-1},hp=fp,vp=Array.prototype.splice;var mp=fp;var gp=fp;var yp=fp;var bp=cp,_p=function(e){var t=this.__data__,n=hp(t,e);return!(n<0)&&(n==t.length-1?t.pop():vp.call(t,n,1),--this.size,!0)},kp=function(e){var t=this.__data__,n=mp(t,e);return n<0?void 0:t[n][1]},xp=function(e){return gp(this.__data__,e)>-1},wp=function(e,t){var n=this.__data__,l=yp(n,e);return l<0?(++this.size,n.push([e,t])):n[l][1]=t,this};function Cp(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var l=e[t];this.set(l[0],l[1])}}Cp.prototype.clear=bp,Cp.prototype.delete=_p,Cp.prototype.get=kp,Cp.prototype.has=xp,Cp.prototype.set=wp;var Sp=Cp,Ep=Id(hs,"Map"),Mp=up,Op=Sp,Tp=Ep;var Dp=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e};var Lp=function(e,t){var n=e.__data__;return Dp(t)?n["string"==typeof t?"string":"hash"]:n.map},Np=Lp;var Ap=Lp;var Pp=Lp;var Ip=Lp;var Fp=function(){this.size=0,this.__data__={hash:new Mp,map:new(Tp||Op),string:new Mp}},Vp=function(e){var t=Np(this,e).delete(e);return this.size-=t?1:0,t},Bp=function(e){return Ap(this,e).get(e)},$p=function(e){return Pp(this,e).has(e)},zp=function(e,t){var n=Ip(this,e),l=n.size;return n.set(e,t),this.size+=n.size==l?0:1,this};function jp(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var l=e[t];this.set(l[0],l[1])}}jp.prototype.clear=Fp,jp.prototype.delete=Vp,jp.prototype.get=Bp,jp.prototype.has=$p,jp.prototype.set=zp;var Rp=jp;var Hp=Rp,Wp=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Yp=function(e){return this.__data__.has(e)};function qp(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new Hp;++t<n;)this.add(e[t])}qp.prototype.add=qp.prototype.push=Wp,qp.prototype.has=Yp;var Kp=qp;var Up=function(e,t,n,l){for(var a=e.length,o=n+(l?1:-1);l?o--:++o<a;)if(t(e[o],o,e))return o;return-1},Gp=function(e){return e!=e},Xp=function(e,t,n){for(var l=n-1,a=e.length;++l<a;)if(e[l]===t)return l;return-1};var Zp=function(e,t,n){return t==t?Xp(e,t,n):Up(e,Gp,n)};var Jp=function(e,t){return!!(null==e?0:e.length)&&Zp(e,t,0)>-1};var Qp=function(e,t,n){for(var l=-1,a=null==e?0:e.length;++l<a;)if(n(t,e[l]))return!0;return!1};var ef=function(e,t){return e.has(t)},tf=Id(hs,"Set");var nf=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n},lf=tf,af=function(){},of=lf&&1/nf(new lf([,-0]))[1]==1/0?function(e){return new lf(e)}:af,rf=Kp,sf=Jp,uf=Qp,cf=ef,df=of,pf=nf;var ff=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991},hf=gd,vf=ff;var mf=function(e){return null!=e&&vf(e.length)&&!hf(e)},gf=mf,yf=As;var bf=sd,_f=function(e,t,n){var l=-1,a=sf,o=e.length,r=!0,i=[],s=i;if(n)r=!1,a=uf;else if(o>=200){var u=t?null:df(e);if(u)return pf(u);r=!1,a=cf,s=new rf}else s=t?[]:i;e:for(;++l<o;){var c=e[l],d=t?t(c):c;if(c=n||0!==c?c:0,r&&d==d){for(var p=s.length;p--;)if(s[p]===d)continue e;t&&s.push(d),i.push(c)}else a(s,d,n)||(s!==i&&s.push(d),i.push(c))}return i},kf=function(e){return yf(e)&&gf(e)},xf=qd((function(e){return _f(bf(e,1,kf,!0))})),wf=Sp;var Cf=Sp,Sf=Ep,Ef=Rp;var Mf=Sp,Of=function(){this.__data__=new wf,this.size=0},Tf=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Df=function(e){return this.__data__.get(e)},Lf=function(e){return this.__data__.has(e)},Nf=function(e,t){var n=this.__data__;if(n instanceof Cf){var l=n.__data__;if(!Sf||l.length<199)return l.push([e,t]),this.size=++n.size,this;n=this.__data__=new Ef(l)}return n.set(e,t),this.size=n.size,this};function Af(e){var t=this.__data__=new Mf(e);this.size=t.size}Af.prototype.clear=Of,Af.prototype.delete=Tf,Af.prototype.get=Df,Af.prototype.has=Lf,Af.prototype.set=Nf;var Pf=Af;var If=Kp,Ff=function(e,t){for(var n=-1,l=null==e?0:e.length;++n<l;)if(t(e[n],n,e))return!0;return!1},Vf=ef;var Bf=function(e,t,n,l,a,o){var r=1&n,i=e.length,s=t.length;if(i!=s&&!(r&&s>i))return!1;var u=o.get(e),c=o.get(t);if(u&&c)return u==t&&c==e;var d=-1,p=!0,f=2&n?new If:void 0;for(o.set(e,t),o.set(t,e);++d<i;){var h=e[d],v=t[d];if(l)var m=r?l(v,h,d,t,e,o):l(h,v,d,e,t,o);if(void 0!==m){if(m)continue;p=!1;break}if(f){if(!Ff(t,(function(e,t){if(!Vf(f,t)&&(h===e||a(h,e,n,l,o)))return f.push(t)}))){p=!1;break}}else if(h!==v&&!a(h,v,n,l,o)){p=!1;break}}return o.delete(e),o.delete(t),p},$f=hs.Uint8Array;var zf=$f,jf=dp,Rf=Bf,Hf=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,l){n[++t]=[l,e]})),n},Wf=nf,Yf=ks?ks.prototype:void 0,qf=Yf?Yf.valueOf:void 0;var Kf=function(e,t,n,l,a,o,r){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!o(new zf(e),new zf(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return jf(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var i=Hf;case"[object Set]":var s=1&l;if(i||(i=Wf),e.size!=t.size&&!s)return!1;var u=r.get(e);if(u)return u==t;l|=2,r.set(e,t);var c=Rf(i(e),i(t),l,a,o,r);return r.delete(e),c;case"[object Symbol]":if(qf)return qf.call(e)==qf.call(t)}return!1},Uf=Kc,Gf=nd;var Xf=function(e,t,n){var l=t(e);return Gf(e)?l:Uf(l,n(e))};var Zf=function(){return[]},Jf=function(e,t){for(var n=-1,l=null==e?0:e.length,a=0,o=[];++n<l;){var r=e[n];t(r,n,e)&&(o[a++]=r)}return o},Qf=Zf,eh=Object.prototype.propertyIsEnumerable,th=Object.getOwnPropertySymbols,nh=th?function(e){return null==e?[]:(e=Object(e),Jf(th(e),(function(t){return eh.call(e,t)})))}:Qf;var lh,ah,oh,rh,ih,sh,uh,ch,dh=function(e,t){for(var n=-1,l=Array(e);++n<e;)l[n]=t(n);return l},ph={exports:{}};lh=ph,oh=hs,rh=function(){return!1},ih=(ah=ph.exports)&&!ah.nodeType&&ah,sh=ih&&lh&&!lh.nodeType&&lh,uh=sh&&sh.exports===ih?oh.Buffer:void 0,ch=(uh?uh.isBuffer:void 0)||rh,lh.exports=ch;var fh=/^(?:0|[1-9]\d*)$/;var hh=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&fh.test(e))&&e>-1&&e%1==0&&e<t},vh=Ns,mh=ff,gh=As,yh={};yh["[object Float32Array]"]=yh["[object Float64Array]"]=yh["[object Int8Array]"]=yh["[object Int16Array]"]=yh["[object Int32Array]"]=yh["[object Uint8Array]"]=yh["[object Uint8ClampedArray]"]=yh["[object Uint16Array]"]=yh["[object Uint32Array]"]=!0,yh["[object Arguments]"]=yh["[object Array]"]=yh["[object ArrayBuffer]"]=yh["[object Boolean]"]=yh["[object DataView]"]=yh["[object Date]"]=yh["[object Error]"]=yh["[object Function]"]=yh["[object Map]"]=yh["[object Number]"]=yh["[object Object]"]=yh["[object RegExp]"]=yh["[object Set]"]=yh["[object String]"]=yh["[object WeakMap]"]=!1;var bh=function(e){return gh(e)&&mh(e.length)&&!!yh[vh(e)]};var _h=function(e){return function(t){return e(t)}},kh={exports:{}};!function(e,t){var n=ds,l=t&&!t.nodeType&&t,a=l&&e&&!e.nodeType&&e,o=a&&a.exports===l&&n.process,r=function(){try{var e=a&&a.require&&a.require("util").types;return e||o&&o.binding&&o.binding("util")}catch(Oc){}}();e.exports=r}(kh,kh.exports);var xh=bh,wh=_h,Ch=kh.exports,Sh=Ch&&Ch.isTypedArray,Eh=Sh?wh(Sh):xh,Mh=dh,Oh=td,Th=nd,Dh=ph.exports,Lh=hh,Nh=Eh,Ah=Object.prototype.hasOwnProperty;var Ph=function(e,t){var n=Th(e),l=!n&&Oh(e),a=!n&&!l&&Dh(e),o=!n&&!l&&!a&&Nh(e),r=n||l||a||o,i=r?Mh(e.length,String):[],s=i.length;for(var u in e)!t&&!Ah.call(e,u)||r&&("length"==u||a&&("offset"==u||"parent"==u)||o&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||Lh(u,s))||i.push(u);return i},Ih=Object.prototype;var Fh=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ih)};var Vh=function(e,t){return function(n){return e(t(n))}},Bh=Vh(Object.keys,Object),$h=Fh,zh=Bh,jh=Object.prototype.hasOwnProperty;var Rh=Ph,Hh=function(e){if(!$h(e))return zh(e);var t=[];for(var n in Object(e))jh.call(e,n)&&"constructor"!=n&&t.push(n);return t},Wh=mf;var Yh=function(e){return Wh(e)?Rh(e):Hh(e)},qh=Xf,Kh=nh,Uh=Yh;var Gh=function(e){return qh(e,Uh,Kh)},Xh=Gh,Zh=Object.prototype.hasOwnProperty;var Jh=function(e,t,n,l,a,o){var r=1&n,i=Xh(e),s=i.length;if(s!=Xh(t).length&&!r)return!1;for(var u=s;u--;){var c=i[u];if(!(r?c in t:Zh.call(t,c)))return!1}var d=o.get(e),p=o.get(t);if(d&&p)return d==t&&p==e;var f=!0;o.set(e,t),o.set(t,e);for(var h=r;++u<s;){var v=e[c=i[u]],m=t[c];if(l)var g=r?l(m,v,c,t,e,o):l(v,m,c,e,t,o);if(!(void 0===g?v===m||a(v,m,n,l,o):g)){f=!1;break}h||(h="constructor"==c)}if(f&&!h){var y=e.constructor,b=t.constructor;y==b||!("constructor"in e)||!("constructor"in t)||"function"==typeof y&&y instanceof y&&"function"==typeof b&&b instanceof b||(f=!1)}return o.delete(e),o.delete(t),f},Qh=Id(hs,"DataView"),ev=Ep,tv=Id(hs,"Promise"),nv=tf,lv=Id(hs,"WeakMap"),av=Ns,ov=xd,rv=ov(Qh),iv=ov(ev),sv=ov(tv),uv=ov(nv),cv=ov(lv),dv=av;(Qh&&"[object DataView]"!=dv(new Qh(new ArrayBuffer(1)))||ev&&"[object Map]"!=dv(new ev)||tv&&"[object Promise]"!=dv(tv.resolve())||nv&&"[object Set]"!=dv(new nv)||lv&&"[object WeakMap]"!=dv(new lv))&&(dv=function(e){var t=av(e),n="[object Object]"==t?e.constructor:void 0,l=n?ov(n):"";if(l)switch(l){case rv:return"[object DataView]";case iv:return"[object Map]";case sv:return"[object Promise]";case uv:return"[object Set]";case cv:return"[object WeakMap]"}return t});var pv=dv,fv=Pf,hv=Bf,vv=Kf,mv=Jh,gv=pv,yv=nd,bv=ph.exports,_v=Eh,kv=Object.prototype.hasOwnProperty;var xv=function(e,t,n,l,a,o){var r=yv(e),i=yv(t),s=r?"[object Array]":gv(e),u=i?"[object Array]":gv(t),c="[object Object]"==(s="[object Arguments]"==s?"[object Object]":s),d="[object Object]"==(u="[object Arguments]"==u?"[object Object]":u),p=s==u;if(p&&bv(e)){if(!bv(t))return!1;r=!0,c=!1}if(p&&!c)return o||(o=new fv),r||_v(e)?hv(e,t,n,l,a,o):vv(e,t,s,n,l,a,o);if(!(1&n)){var f=c&&kv.call(e,"__wrapped__"),h=d&&kv.call(t,"__wrapped__");if(f||h){var v=f?e.value():e,m=h?t.value():t;return o||(o=new fv),a(v,m,n,l,o)}}return!!p&&(o||(o=new fv),mv(e,t,n,l,a,o))},wv=As;var Cv=function e(t,n,l,a,o){return t===n||(null==t||null==n||!wv(t)&&!wv(n)?t!=t&&n!=n:xv(t,n,l,a,e,o))};var Sv=function(e,t){return Cv(e,t)},Ev={exports:{}},Mv=Ev.exports=function(e,t,n){var l=t.prototype,a=l.format;n.en.ordinal=function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"},l.format=function(e){var t=this,n=this.$locale(),l=this.$utils(),o=(e||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case"Q":return Math.ceil((t.$M+1)/3);case"Do":return n.ordinal(t.$D);case"gggg":return t.weekYear();case"GGGG":return t.isoWeekYear();case"wo":return n.ordinal(t.week(),"W");case"w":case"ww":return l.s(t.week(),"w"===e?1:2,"0");case"W":case"WW":return l.s(t.isoWeek(),"W"===e?1:2,"0");case"k":case"kk":return l.s(String(0===t.$H?24:t.$H),"k"===e?1:2,"0");case"X":return Math.floor(t.$d.getTime()/1e3);case"x":return t.$d.getTime();case"z":return"["+t.offsetName()+"]";case"zzz":return"["+t.offsetName("long")+"]";default:return e}}));return a.bind(this)(o)}},Ov={exports:{}},Tv=Ov.exports=function(){var e="week",t="year";return function(n,l,a){var o=l.prototype;o.week=function(n){if(void 0===n&&(n=null),null!==n)return this.add(7*(n-this.week()),"day");var l=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var o=a(this).startOf(t).add(1,t).date(l),r=a(this).endOf(e);if(o.isBefore(r))return 1}var i=a(this).startOf(t).date(l).startOf(e).subtract(1,"millisecond"),s=this.diff(i,e,!0);return s<0?a(this).startOf("week").week():Math.ceil(s)},o.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}(),Dv={exports:{}},Lv=Dv.exports=function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}},Nv={exports:{}},Av=Nv.exports=function(e,t){t.prototype.dayOfYear=function(e){var t=Math.round((this.startOf("day")-this.startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"day")}},Pv={exports:{}},Iv=Pv.exports=function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}},Fv={exports:{}},Vv=Fv.exports=function(e,t){t.prototype.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)}};function Bv(){return(Bv=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var l in n)Object.prototype.hasOwnProperty.call(n,l)&&(e[l]=n[l])}return e}).apply(this,arguments)}function $v(e){return($v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function zv(e,t){return(zv=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function jv(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(Oc){return!1}}function Rv(e,t,n){return(Rv=jv()?Reflect.construct:function(e,t,n){var l=[null];l.push.apply(l,t);var a=new(Function.bind.apply(e,l));return n&&zv(a,n.prototype),a}).apply(null,arguments)}function Hv(e){var t="function"==typeof Map?new Map:void 0;return(Hv=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,l)}function l(){return Rv(e,arguments,$v(this).constructor)}return l.prototype=Object.create(e.prototype,{constructor:{value:l,enumerable:!1,writable:!0,configurable:!0}}),zv(l,e)})(e)}var Wv=/%[sdj%]/g,Yv=function(){};function qv(e){if(!e||!e.length)return null;var t={};return e.forEach((function(e){var n=e.field;t[n]=t[n]||[],t[n].push(e)})),t}function Kv(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var l=1,a=t[0],o=t.length;if("function"==typeof a)return a.apply(null,t.slice(1));if("string"==typeof a){var r=String(a).replace(Wv,(function(e){if("%%"===e)return"%";if(l>=o)return e;switch(e){case"%s":return String(t[l++]);case"%d":return Number(t[l++]);case"%j":try{return JSON.stringify(t[l++])}catch(n){return"[Circular]"}break;default:return e}}));return r}return a}function Uv(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function Gv(e,t,n){var l=0,a=e.length;!function o(r){if(r&&r.length)n(r);else{var i=l;l+=1,i<a?t(e[i],o):n([])}}([])}"undefined"!=typeof process&&process.env;var Xv=function(e){var t,n;function l(t,n){var l;return(l=e.call(this,"Async Validation Error")||this).errors=t,l.fields=n,l}return n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,zv(t,n),l}(Hv(Error));function Zv(e,t,n,l){if(t.first){var a=new Promise((function(t,a){Gv(function(e){var t=[];return Object.keys(e).forEach((function(n){t.push.apply(t,e[n])})),t}(e),n,(function(e){return l(e),e.length?a(new Xv(e,qv(e))):t()}))}));return a.catch((function(e){return e})),a}var o=t.firstFields||[];!0===o&&(o=Object.keys(e));var r=Object.keys(e),i=r.length,s=0,u=[],c=new Promise((function(t,a){var c=function(e){if(u.push.apply(u,e),++s===i)return l(u),u.length?a(new Xv(u,qv(u))):t()};r.length||(l(u),t()),r.forEach((function(t){var l=e[t];-1!==o.indexOf(t)?Gv(l,n,c):function(e,t,n){var l=[],a=0,o=e.length;function r(e){l.push.apply(l,e),++a===o&&n(l)}e.forEach((function(e){t(e,r)}))}(l,n,c)}))}));return c.catch((function(e){return e})),c}function Jv(e){return function(t){return t&&t.message?(t.field=t.field||e.fullField,t):{message:"function"==typeof t?t():t,field:t.field||e.fullField}}}function Qv(e,t){if(t)for(var n in t)if(t.hasOwnProperty(n)){var l=t[n];"object"==typeof l&&"object"==typeof e[n]?e[n]=Bv({},e[n],l):e[n]=l}return e}function em(e,t,n,l,a,o){!e.required||n.hasOwnProperty(e.field)&&!Uv(t,o||e.type)||l.push(Kv(a.messages.required,e.fullField))}var tm={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},nm={integer:function(e){return nm.number(e)&&parseInt(e,10)===e},float:function(e){return nm.number(e)&&!nm.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(Oc){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"==typeof e&&!nm.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(tm.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(tm.url)},hex:function(e){return"string"==typeof e&&!!e.match(tm.hex)}};var lm={required:em,whitespace:function(e,t,n,l,a){(/^\s+$/.test(t)||""===t)&&l.push(Kv(a.messages.whitespace,e.fullField))},type:function(e,t,n,l,a){if(e.required&&void 0===t)em(e,t,n,l,a);else{var o=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(o)>-1?nm[o](t)||l.push(Kv(a.messages.types[o],e.fullField,e.type)):o&&typeof t!==e.type&&l.push(Kv(a.messages.types[o],e.fullField,e.type))}},range:function(e,t,n,l,a){var o="number"==typeof e.len,r="number"==typeof e.min,i="number"==typeof e.max,s=t,u=null,c="number"==typeof t,d="string"==typeof t,p=Array.isArray(t);if(c?u="number":d?u="string":p&&(u="array"),!u)return!1;p&&(s=t.length),d&&(s=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),o?s!==e.len&&l.push(Kv(a.messages[u].len,e.fullField,e.len)):r&&!i&&s<e.min?l.push(Kv(a.messages[u].min,e.fullField,e.min)):i&&!r&&s>e.max?l.push(Kv(a.messages[u].max,e.fullField,e.max)):r&&i&&(s<e.min||s>e.max)&&l.push(Kv(a.messages[u].range,e.fullField,e.min,e.max))},enum:function(e,t,n,l,a){e.enum=Array.isArray(e.enum)?e.enum:[],-1===e.enum.indexOf(t)&&l.push(Kv(a.messages.enum,e.fullField,e.enum.join(", ")))},pattern:function(e,t,n,l,a){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||l.push(Kv(a.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||l.push(Kv(a.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};function am(e,t,n,l,a){var o=e.type,r=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t,o)&&!e.required)return n();lm.required(e,t,l,r,a,o),Uv(t,o)||lm.type(e,t,l,r,a)}n(r)}var om={string:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t,"string")&&!e.required)return n();lm.required(e,t,l,o,a,"string"),Uv(t,"string")||(lm.type(e,t,l,o,a),lm.range(e,t,l,o,a),lm.pattern(e,t,l,o,a),!0===e.whitespace&&lm.whitespace(e,t,l,o,a))}n(o)},method:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),void 0!==t&&lm.type(e,t,l,o,a)}n(o)},number:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(""===t&&(t=void 0),Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),void 0!==t&&(lm.type(e,t,l,o,a),lm.range(e,t,l,o,a))}n(o)},boolean:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),void 0!==t&&lm.type(e,t,l,o,a)}n(o)},regexp:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),Uv(t)||lm.type(e,t,l,o,a)}n(o)},integer:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),void 0!==t&&(lm.type(e,t,l,o,a),lm.range(e,t,l,o,a))}n(o)},float:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),void 0!==t&&(lm.type(e,t,l,o,a),lm.range(e,t,l,o,a))}n(o)},array:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(null==t&&!e.required)return n();lm.required(e,t,l,o,a,"array"),null!=t&&(lm.type(e,t,l,o,a),lm.range(e,t,l,o,a))}n(o)},object:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),void 0!==t&&lm.type(e,t,l,o,a)}n(o)},enum:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),void 0!==t&&lm.enum(e,t,l,o,a)}n(o)},pattern:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t,"string")&&!e.required)return n();lm.required(e,t,l,o,a),Uv(t,"string")||lm.pattern(e,t,l,o,a)}n(o)},date:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t,"date")&&!e.required)return n();var r;if(lm.required(e,t,l,o,a),!Uv(t,"date"))r=t instanceof Date?t:new Date(t),lm.type(e,r,l,o,a),r&&lm.range(e,r.getTime(),l,o,a)}n(o)},url:am,hex:am,email:am,required:function(e,t,n,l,a){var o=[],r=Array.isArray(t)?"array":typeof t;lm.required(e,t,l,o,a,r),n(o)},any:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a)}n(o)}};function rm(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var im=rm();function sm(e){this.rules=null,this._messages=im,this.define(e)}sm.prototype={messages:function(e){return e&&(this._messages=Qv(rm(),e)),this._messages},define:function(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");var t,n;for(t in this.rules={},e)e.hasOwnProperty(t)&&(n=e[t],this.rules[t]=Array.isArray(n)?n:[n])},validate:function(e,t,n){var l=this;void 0===t&&(t={}),void 0===n&&(n=function(){});var a,o,r=e,i=t,s=n;if("function"==typeof i&&(s=i,i={}),!this.rules||0===Object.keys(this.rules).length)return s&&s(),Promise.resolve();if(i.messages){var u=this.messages();u===im&&(u=rm()),Qv(u,i.messages),i.messages=u}else i.messages=this.messages();var c={};(i.keys||Object.keys(this.rules)).forEach((function(t){a=l.rules[t],o=r[t],a.forEach((function(n){var a=n;"function"==typeof a.transform&&(r===e&&(r=Bv({},r)),o=r[t]=a.transform(o)),(a="function"==typeof a?{validator:a}:Bv({},a)).validator=l.getValidationMethod(a),a.field=t,a.fullField=a.fullField||t,a.type=l.getType(a),a.validator&&(c[t]=c[t]||[],c[t].push({rule:a,value:o,source:r,field:t}))}))}));var d={};return Zv(c,i,(function(e,t){var n,l=e.rule,a=!("object"!==l.type&&"array"!==l.type||"object"!=typeof l.fields&&"object"!=typeof l.defaultField);function o(e,t){return Bv({},t,{fullField:l.fullField+"."+e})}function r(n){void 0===n&&(n=[]);var r=n;if(Array.isArray(r)||(r=[r]),!i.suppressWarning&&r.length&&sm.warning("async-validator:",r),r.length&&void 0!==l.message&&(r=[].concat(l.message)),r=r.map(Jv(l)),i.first&&r.length)return d[l.field]=1,t(r);if(a){if(l.required&&!e.value)return void 0!==l.message?r=[].concat(l.message).map(Jv(l)):i.error&&(r=[i.error(l,Kv(i.messages.required,l.field))]),t(r);var s={};if(l.defaultField)for(var u in e.value)e.value.hasOwnProperty(u)&&(s[u]=l.defaultField);for(var c in s=Bv({},s,e.rule.fields))if(s.hasOwnProperty(c)){var p=Array.isArray(s[c])?s[c]:[s[c]];s[c]=p.map(o.bind(null,c))}var f=new sm(s);f.messages(i.messages),e.rule.options&&(e.rule.options.messages=i.messages,e.rule.options.error=i.error),f.validate(e.value,e.rule.options||i,(function(e){var n=[];r&&r.length&&n.push.apply(n,r),e&&e.length&&n.push.apply(n,e),t(n.length?n:null)}))}else t(r)}a=a&&(l.required||!l.required&&e.value),l.field=e.field,l.asyncValidator?n=l.asyncValidator(l,e.value,r,e.source,i):l.validator&&(!0===(n=l.validator(l,e.value,r,e.source,i))?r():!1===n?r(l.message||l.field+" fails"):n instanceof Array?r(n):n instanceof Error&&r(n.message)),n&&n.then&&n.then((function(){return r()}),(function(e){return r(e)}))}),(function(e){!function(e){var t,n=[],l={};function a(e){var t;Array.isArray(e)?n=(t=n).concat.apply(t,e):n.push(e)}for(t=0;t<e.length;t++)a(e[t]);n.length?l=qv(n):(n=null,l=null),s(n,l)}(e)}))},getType:function(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!om.hasOwnProperty(e.type))throw new Error(Kv("Unknown rule type %s",e.type));return e.type||"string"},getValidationMethod:function(e){if("function"==typeof e.validator)return e.validator;var t=Object.keys(e),n=t.indexOf("message");return-1!==n&&t.splice(n,1),1===t.length&&"required"===t[0]?om.required:om[this.getType(e)]||!1}},sm.register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");om[e]=t},sm.warning=Yv,sm.messages=im,sm.validators=om;var um=function(e,t){for(var n=-1,l=null==e?0:e.length;++n<l&&!1!==t(e[n],n,e););return e},cm=Vd;var dm=function(e,t,n){"__proto__"==t&&cm?cm(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n},pm=dm,fm=dp,hm=Object.prototype.hasOwnProperty;var vm=function(e,t,n){var l=e[t];hm.call(e,t)&&fm(l,n)&&(void 0!==n||t in e)||pm(e,t,n)},mm=vm,gm=dm;var ym=function(e,t,n,l){var a=!n;n||(n={});for(var o=-1,r=t.length;++o<r;){var i=t[o],s=l?l(n[i],e[i],i,n,e):void 0;void 0===s&&(s=e[i]),a?gm(n,i,s):mm(n,i,s)}return n},bm=ym,_m=Yh;var km=function(e,t){return e&&bm(t,_m(t),e)};var xm=cs,wm=Fh,Cm=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t},Sm=Object.prototype.hasOwnProperty;var Em=Ph,Mm=function(e){if(!xm(e))return Cm(e);var t=wm(e),n=[];for(var l in e)("constructor"!=l||!t&&Sm.call(e,l))&&n.push(l);return n},Om=mf;var Tm=function(e){return Om(e)?Em(e,!0):Mm(e)},Dm=ym,Lm=Tm;var Nm=function(e,t){return e&&Dm(t,Lm(t),e)},Am={exports:{}};!function(e,t){var n=hs,l=t&&!t.nodeType&&t,a=l&&e&&!e.nodeType&&e,o=a&&a.exports===l?n.Buffer:void 0,r=o?o.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,l=r?r(n):new e.constructor(n);return e.copy(l),l}}(Am,Am.exports);var Pm=function(e,t){var n=-1,l=e.length;for(t||(t=Array(l));++n<l;)t[n]=e[n];return t},Im=ym,Fm=nh;var Vm=function(e,t){return Im(e,Fm(e),t)},Bm=Vh(Object.getPrototypeOf,Object),$m=Kc,zm=Bm,jm=nh,Rm=Zf,Hm=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)$m(t,jm(e)),e=zm(e);return t}:Rm,Wm=ym,Ym=Hm;var qm=function(e,t){return Wm(e,Ym(e),t)},Km=Xf,Um=Hm,Gm=Tm;var Xm=function(e){return Km(e,Gm,Um)},Zm=Object.prototype.hasOwnProperty;var Jm=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&Zm.call(e,"index")&&(n.index=e.index,n.input=e.input),n},Qm=$f;var eg=function(e){var t=new e.constructor(e.byteLength);return new Qm(t).set(new Qm(e)),t},tg=eg;var ng=function(e,t){var n=t?tg(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)},lg=/\w*$/;var ag=function(e){var t=new e.constructor(e.source,lg.exec(e));return t.lastIndex=e.lastIndex,t},og=ks?ks.prototype:void 0,rg=og?og.valueOf:void 0;var ig=eg;var sg=eg,ug=ng,cg=ag,dg=function(e){return rg?Object(rg.call(e)):{}},pg=function(e,t){var n=t?ig(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)};var fg=function(e,t,n){var l=e.constructor;switch(t){case"[object ArrayBuffer]":return sg(e);case"[object Boolean]":case"[object Date]":return new l(+e);case"[object DataView]":return ug(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return pg(e,n);case"[object Map]":return new l;case"[object Number]":case"[object String]":return new l(e);case"[object RegExp]":return cg(e);case"[object Set]":return new l;case"[object Symbol]":return dg(e)}},hg=cs,vg=Object.create,mg=function(){function e(){}return function(t){if(!hg(t))return{};if(vg)return vg(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),gg=Bm,yg=Fh;var bg=function(e){return"function"!=typeof e.constructor||yg(e)?{}:mg(gg(e))},_g=pv,kg=As;var xg=function(e){return kg(e)&&"[object Map]"==_g(e)},wg=_h,Cg=kh.exports,Sg=Cg&&Cg.isMap,Eg=Sg?wg(Sg):xg,Mg=pv,Og=As;var Tg=function(e){return Og(e)&&"[object Set]"==Mg(e)},Dg=_h,Lg=kh.exports,Ng=Lg&&Lg.isSet,Ag=Ng?Dg(Ng):Tg,Pg=Pf,Ig=um,Fg=vm,Vg=km,Bg=Nm,$g=Am.exports,zg=Pm,jg=Vm,Rg=qm,Hg=Gh,Wg=Xm,Yg=pv,qg=Jm,Kg=fg,Ug=bg,Gg=nd,Xg=ph.exports,Zg=Eg,Jg=cs,Qg=Ag,ey=Yh,ty=Tm,ny={};ny["[object Arguments]"]=ny["[object Array]"]=ny["[object ArrayBuffer]"]=ny["[object DataView]"]=ny["[object Boolean]"]=ny["[object Date]"]=ny["[object Float32Array]"]=ny["[object Float64Array]"]=ny["[object Int8Array]"]=ny["[object Int16Array]"]=ny["[object Int32Array]"]=ny["[object Map]"]=ny["[object Number]"]=ny["[object Object]"]=ny["[object RegExp]"]=ny["[object Set]"]=ny["[object String]"]=ny["[object Symbol]"]=ny["[object Uint8Array]"]=ny["[object Uint8ClampedArray]"]=ny["[object Uint16Array]"]=ny["[object Uint32Array]"]=!0,ny["[object Error]"]=ny["[object Function]"]=ny["[object WeakMap]"]=!1;var ly=function e(t,n,l,a,o,r){var i,s=1&n,u=2&n,c=4&n;if(l&&(i=o?l(t,a,o,r):l(t)),void 0!==i)return i;if(!Jg(t))return t;var d=Gg(t);if(d){if(i=qg(t),!s)return zg(t,i)}else{var p=Yg(t),f="[object Function]"==p||"[object GeneratorFunction]"==p;if(Xg(t))return $g(t,s);if("[object Object]"==p||"[object Arguments]"==p||f&&!o){if(i=u||f?{}:Ug(t),!s)return u?Rg(t,Bg(i,t)):jg(t,Vg(i,t))}else{if(!ny[p])return o?t:{};i=Kg(t,p,s)}}r||(r=new Pg);var h=r.get(t);if(h)return h;r.set(t,i),Qg(t)?t.forEach((function(a){i.add(e(a,n,l,a,t,r))})):Zg(t)&&t.forEach((function(a,o){i.set(o,e(a,n,l,o,t,r))}));var v=d?void 0:(c?u?Wg:Hg:u?ty:ey)(t);return Ig(v||t,(function(a,o){v&&(a=t[o=a]),Fg(i,o,e(a,n,l,o,t,r))})),i};var ay=function(e){return ly(e,5)},oy="undefined"==typeof window;const ry=()=>{},iy=Object.assign,sy=Object.prototype.hasOwnProperty,uy=(e,t)=>sy.call(e,t),cy=Array.isArray,dy=e=>"function"==typeof e,py=e=>"string"==typeof e,fy=e=>null!==e&&"object"==typeof e,hy=e=>fy(e)&&dy(e.then)&&dy(e.catch),vy=Object.prototype.toString,my=e=>vy.call(e),gy=e=>my(e).slice(8,-1),yy=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},by=/-(\w)/g,_y=yy((e=>e.replace(by,((e,t)=>t?t.toUpperCase():"")))),ky=yy((e=>e.charAt(0).toUpperCase()+e.slice(1)));class xy extends Error{constructor(e){super(e),this.name="ElementPlusError"}}var wy=(e,t)=>{throw new xy(`[${e}] ${t}`)};const Cy=(e,t="")=>{let n=e;return t.split(".").map((e=>{n=null==n?void 0:n[e]})),n};function Sy(e,t,n){let l=e;const a=(t=(t=t.replace(/\[(\w+)\]/g,".$1")).replace(/^\./,"")).split(".");let o=0;for(;o<a.length-1&&(l||n);o++){const e=a[o];if(!(e in l)){if(n)throw new Error("please transfer a valid prop path to form item!");break}l=l[e]}return{o:l,k:a[o],v:null==l?void 0:l[a[o]]}}const Ey=()=>Math.floor(1e4*Math.random()),My=e=>e||0===e?Array.isArray(e)?e:[e]:[],Oy=e=>"boolean"==typeof e,Ty=e=>"number"==typeof e;function Dy(e){let t=!1;return function(...n){t||(t=!0,window.requestAnimationFrame((()=>{e.apply(this,n),t=!1})))}}const Ly=e=>{clearTimeout(e.value),e.value=null};function Ny(e){return Object.keys(e).map((t=>[t,e[t]]))}function Ay(){const e=na();return"$ELEMENT"in e.proxy?e.proxy.$ELEMENT:{}}const Py=function(e,t){return e.find(t)};function Iy(e){return!!(!e&&0!==e||cy(e)&&!e.length||fy(e)&&!Object.keys(e).length)}function Fy(e){return e.reduce(((e,t)=>{const n=Array.isArray(t)?Fy(t):t;return e.concat(n)}),[])}function Vy(e){return Array.from(new Set(e))}function By(e){return e.value}function $y(e){return py(e)?e:Ty(e)?e+"px":""}const zy=function(e,t,n,l=!1){e&&t&&n&&e.addEventListener(t,n,l)},jy=function(e,t,n,l=!1){e&&t&&n&&e.removeEventListener(t,n,l)};function Ry(e,t){if(!e||!t)return!1;if(-1!==t.indexOf(" "))throw new Error("className should not contain space.");return e.classList?e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1}function Hy(e,t){if(!e)return;let n=e.className;const l=(t||"").split(" ");for(let a=0,o=l.length;a<o;a++){const t=l[a];t&&(e.classList?e.classList.add(t):Ry(e,t)||(n+=" "+t))}e.classList||(e.className=n)}function Wy(e,t){if(!e||!t)return;const n=t.split(" ");let l=" "+e.className+" ";for(let a=0,o=n.length;a<o;a++){const t=n[a];t&&(e.classList?e.classList.remove(t):Ry(e,t)&&(l=l.replace(" "+t+" "," ")))}e.classList||(e.className=(l||"").replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g,""))}const Yy=function(e,t){if(!oy){if(!e||!t)return null;"float"===(t=_y(t))&&(t="cssFloat");try{const n=e.style[t];if(n)return n;const l=document.defaultView.getComputedStyle(e,"");return l?l[t]:""}catch(n){return e.style[t]}}},qy=(e,t)=>{if(!oy)return Yy(e,null==t?"overflow":t?"overflow-y":"overflow-x").match(/(scroll|auto)/)},Ky=(e,t)=>{if(oy)return;let n=e;for(;n;){if([window,document,document.documentElement].includes(n))return window;if(qy(n,t))return n;n=n.parentNode}return n},Uy=e=>{let t=0,n=e;for(;n;)t+=n.offsetTop,n=n.offsetParent;return t},Gy=e=>e.stopPropagation(),Xy=function(e){for(const t of e){const e=t.target.__resizeListeners__||[];e.length&&e.forEach((e=>{e()}))}},Zy=function(e,t){!oy&&e&&(e.__resizeListeners__||(e.__resizeListeners__=[],e.__ro__=new ss(Xy),e.__ro__.observe(e)),e.__resizeListeners__.push(t))},Jy=function(e,t){e&&e.__resizeListeners__&&(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),e.__resizeListeners__.length||e.__ro__.disconnect())};var Qy=Qn({name:"ElAffix",props:{zIndex:{type:Number,default:100},target:{type:String,default:""},offset:{type:Number,default:0},position:{type:String,default:"top"}},emits:["scroll","change"],setup(e,{emit:t}){const n=lt(null),l=lt(null),a=lt(null),o=Ue({fixed:!1,height:0,width:0,scrollTop:0,clientHeight:0,transform:0}),r=ca((()=>({height:o.fixed?o.height+"px":"",width:o.fixed?o.width+"px":""}))),i=ca((()=>{if(!o.fixed)return;const t=e.offset?e.offset+"px":0,n=o.transform?`translateY(${o.transform}px)`:"";return{height:o.height+"px",width:o.width+"px",top:"top"===e.position?t:"",bottom:"bottom"===e.position?t:"",transform:n,zIndex:e.zIndex}})),s=()=>{const t=l.value.getBoundingClientRect(),r=n.value.getBoundingClientRect();if(o.height=t.height,o.width=t.width,o.scrollTop=a.value===window?document.documentElement.scrollTop:a.value.scrollTop,o.clientHeight=document.documentElement.clientHeight,"top"===e.position)if(e.target){const n=r.bottom-e.offset-o.height;o.fixed=e.offset>t.top&&r.bottom>0,o.transform=n<0?n:0}else o.fixed=e.offset>t.top;else if(e.target){const n=o.clientHeight-r.top-e.offset-o.height;o.fixed=o.clientHeight-e.offset<t.bottom&&o.clientHeight>r.top,o.transform=n<0?-n:0}else o.fixed=o.clientHeight-e.offset<t.bottom},u=()=>{s(),t("scroll",{scrollTop:o.scrollTop,fixed:o.fixed})};return Sn((()=>o.fixed),(()=>{t("change",o.fixed)})),mn((()=>{if(e.target){if(n.value=document.querySelector(e.target),!n.value)throw new Error("target is not existed: "+e.target)}else n.value=document.documentElement;a.value=Ky(l.value),zy(a.value,"scroll",u),Zy(l.value,s)})),bn((()=>{jy(a.value,"scroll",u),Jy(l.value,s)})),{root:l,state:o,rootStyle:r,affixStyle:i}}});Qy.render=function(e,t,n,l,a,o){return wl(),Sl("div",{ref:"root",class:"el-affix",style:e.rootStyle},[Ll("div",{class:{"el-affix--fixed":e.state.fixed},style:e.affixStyle},[Ht(e.$slots,"default")],6)],4)},Qy.__file="packages/affix/src/index.vue",Qy.install=e=>{e.component(Qy.name,Qy)};const eb=Qy,tb={success:"el-icon-success",warning:"el-icon-warning",error:"el-icon-error"};var nb=Qn({name:"ElAlert",props:{title:{type:String,default:""},description:{type:String,default:""},type:{type:String,default:"info"},closable:{type:Boolean,default:!0},closeText:{type:String,default:""},showIcon:Boolean,center:Boolean,effect:{type:String,default:"light",validator:e=>["light","dark"].indexOf(e)>-1}},emits:["close"],setup(e,t){const n=lt(!0),l=ca((()=>"el-alert--"+e.type)),a=ca((()=>tb[e.type]||"el-icon-info")),o=ca((()=>e.description||t.slots.default?"is-big":"")),r=ca((()=>e.description||t.slots.default?"is-bold":""));return{visible:n,typeClass:l,iconClass:a,isBigIcon:o,isBoldTitle:r,close:e=>{n.value=!1,t.emit("close",e)}}}});const lb={class:"el-alert__content"},ab={key:1,class:"el-alert__description"};nb.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,{name:"el-alert-fade"},{default:Zt((()=>[Un(Ll("div",{class:["el-alert",[e.typeClass,e.center?"is-center":"","is-"+e.effect]],role:"alert"},[e.showIcon?(wl(),Sl("i",{key:0,class:["el-alert__icon",[e.iconClass,e.isBigIcon]]},null,2)):Pl("v-if",!0),Ll("div",lb,[e.title||e.$slots.title?(wl(),Sl("span",{key:0,class:["el-alert__title",[e.isBoldTitle]]},[Ht(e.$slots,"title",{},(()=>[Al(c(e.title),1)]))],2)):Pl("v-if",!0),e.$slots.default||e.description?(wl(),Sl("p",ab,[Ht(e.$slots,"default",{},(()=>[Al(c(e.description),1)]))])):Pl("v-if",!0),e.closable?(wl(),Sl("i",{key:2,class:["el-alert__closebtn",{"is-customed":""!==e.closeText,"el-icon-close":""===e.closeText}],onClick:t[1]||(t[1]=(...t)=>e.close&&e.close(...t))},c(e.closeText),3)):Pl("v-if",!0)])],2),[[mo,e.visible]])])),_:3})},nb.__file="packages/alert/src/index.vue",nb.install=e=>{e.component(nb.name,nb)};const ob=nb;var rb=Qn({name:"ElAside",props:{width:{type:String,default:"300px"}}});rb.render=function(e,t,n,l,a,o){return wl(),Sl("aside",{class:"el-aside",style:{width:e.width}},[Ht(e.$slots,"default")],4)},rb.__file="packages/container/src/aside.vue",rb.install=e=>{e.component(rb.name,rb)};const ib=rb,sb=["class","style"],ub=/^on[A-Z]/;var cb=(e={})=>{const{excludeListeners:t=!1,excludeKeys:n=[]}=e,l=na(),a=at({}),o=n.concat(sb);return l.attrs=Ue(l.attrs),wn((()=>{const e=Ny(l.attrs).reduce(((e,[n,l])=>(o.includes(n)||t&&ub.test(n)||(e[n]=l),e)),{});a.value=e})),a};let db;function pb(){if(oy)return 0;if(void 0!==db)return db;const e=document.createElement("div");e.className="el-scrollbar__wrap",e.style.visibility="hidden",e.style.width="100px",e.style.position="absolute",e.style.top="-9999px",document.body.appendChild(e);const t=e.offsetWidth;e.style.overflow="scroll";const n=document.createElement("div");n.style.width="100%",e.appendChild(n);const l=n.offsetWidth;return e.parentNode.removeChild(e),db=t-l,db}var fb=e=>{nt(e)||wy("[useLockScreen]","You need to pass a ref param to this function");let t=0,n=!1,l="0",a=0;_n((()=>{o()}));const o=()=>{Wy(document.body,"el-popup-parent--hidden"),n&&(document.body.style.paddingRight=l)};Sn(e,(e=>{if(e){n=!Ry(document.body,"el-popup-parent--hidden"),n&&(l=document.body.style.paddingRight,a=parseInt(Yy(document.body,"paddingRight"),10)),t=pb();const e=document.documentElement.clientHeight<document.body.scrollHeight,o=Yy(document.body,"overflowY");t>0&&(e||"scroll"===o)&&n&&(document.body.style.paddingRight=a+t+"px"),Hy(document.body,"el-popup-parent--hidden")}else o()}))},hb=(e,t)=>{let n;Sn((()=>e.value),(e=>{var l,a;e?(n=document.activeElement,nt(t)&&(null===(a=(l=t.value).focus)||void 0===a||a.call(l))):n.focus()}))};const vb={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace"},mb=e=>"fixed"!==getComputedStyle(e).position&&null!==e.offsetParent,gb=e=>Array.from(e.querySelectorAll('a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])')).filter(yb).filter(mb),yb=e=>{if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return!("hidden"===e.type||"file"===e.type);case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},bb=function(e,t,...n){let l;l=t.includes("mouse")||t.includes("click")?"MouseEvents":t.includes("key")?"KeyboardEvent":"HTMLEvents";const a=document.createEvent(l);return a.initEvent(t,...n),e.dispatchEvent(a),e},_b=[];var kb=(e,t)=>{Sn((()=>t.value),(t=>{t?_b.push(e):_b.splice(_b.findIndex((t=>t===e)),1)}))};oy||zy(document,"keydown",(e=>{0!==_b.length&&e.code===vb.esc&&(e.stopPropagation(),_b[_b.length-1].handleClose())}));const xb=new Map;let wb;function Cb(e,t){let n=[];return Array.isArray(t.arg)?n=t.arg:n.push(t.arg),function(l,a){const o=t.instance.popperRef,r=l.target,i=null==a?void 0:a.target,s=!t||!t.instance,u=!r||!i,c=e.contains(r)||e.contains(i),d=e===r,p=n.length&&n.some((e=>null==e?void 0:e.contains(r)))||n.length&&n.includes(i),f=o&&(o.contains(r)||o.contains(i));s||u||c||d||p||f||t.value()}}oy||(zy(document,"mousedown",(e=>wb=e)),zy(document,"mouseup",(e=>{for(const{documentHandler:t}of xb.values())t(e,wb)})));const Sb={beforeMount(e,t){xb.set(e,{documentHandler:Cb(e,t),bindingFn:t.value})},updated(e,t){xb.set(e,{documentHandler:Cb(e,t),bindingFn:t.value})},unmounted(e){xb.delete(e)}};var Eb={beforeMount(e,t){let n,l=null;const a=()=>t.value&&t.value(),o=()=>{Date.now()-n<100&&a(),clearInterval(l),l=null};zy(e,"mousedown",(e=>{0===e.button&&(n=Date.now(),function(e,t,n){const l=function(...a){n&&n.apply(this,a),jy(e,t,l)};zy(e,t,l)}(document,"mouseup",o),clearInterval(l),l=setInterval(a,100))}))}};const Mb=[],Ob=e=>{if(0===Mb.length)return;const t=Mb[Mb.length-1]["_trap-focus-children"];if(t.length>0&&e.code===vb.tab){if(1===t.length)return e.preventDefault(),void(document.activeElement!==t[0]&&t[0].focus());const n=e.shiftKey,l=e.target===t[0],a=e.target===t[t.length-1];l&&n&&(e.preventDefault(),t[t.length-1].focus()),a&&!n&&(e.preventDefault(),t[0].focus()),0}},Tb={beforeMount(e){e["_trap-focus-children"]=gb(e),Mb.push(e),Mb.length<=1&&zy(document,"keydown",Ob)},updated(e){Dt((()=>{e["_trap-focus-children"]=gb(e)}))},unmounted(){Mb.shift(),0===Mb.length&&jy(document,"keydown",Ob)}},Db="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>-1,Lb={beforeMount(e,t){!function(e,t){if(e&&e.addEventListener){const n=function(e){const n=_u(e);t&&t.apply(this,[e,n])};Db?e.addEventListener("DOMMouseScroll",n):e.onmousewheel=n}}(e,t.value)}},Nb="update:modelValue",Ab={validating:"el-icon-loading",success:"el-icon-circle-check",error:"el-icon-circle-close"};function Pb(e){return/([(\uAC00-\uD7AF)|(\u3130-\u318F)])+/gi.test(e)}const Ib=e=>["","large","medium","small","mini"].includes(e),Fb="el.form.addField",Vb="el.form.removeField";var Bb=Qn({name:"ElForm",props:{model:Object,rules:Object,labelPosition:String,labelWidth:String,labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:String,disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1}},emits:["validate"],setup(e,{emit:t}){const n=ku(),l=[];Sn((()=>e.rules),(()=>{l.forEach((e=>{e.removeValidateEvents(),e.addValidateEvents()})),e.validateOnRuleChange&&r((()=>({})))})),n.on(Fb,(e=>{e&&l.push(e)})),n.on(Vb,(e=>{e.prop&&l.splice(l.indexOf(e),1)}));const a=()=>{e.model?l.forEach((e=>{e.resetField()})):console.warn("[Element Warn][Form]model is required for resetFields to work.")},o=(e=[])=>{(e.length?"string"==typeof e?l.filter((t=>e===t.prop)):l.filter((t=>e.indexOf(t.prop)>-1)):l).forEach((e=>{e.clearValidate()}))},r=t=>{if(!e.model)return void console.warn("[Element Warn][Form]model is required for validate to work!");let n;"function"!=typeof t&&(n=new Promise(((e,n)=>{t=function(t,l){t?e(!0):n(l)}}))),0===l.length&&t(!0);let a=!0,o=0,r={};for(const e of l)e.validate("",((e,n)=>{e&&(a=!1),r=Object.assign(Object.assign({},r),n),++o===l.length&&t(a,r)}));return n},i=(e,t)=>{e=[].concat(e);const n=l.filter((t=>-1!==e.indexOf(t.prop)));l.length?n.forEach((e=>{e.validate("",t)})):console.warn("[Element Warn]please pass correct props!")};return $l("elForm",Ue(Object.assign(Object.assign(Object.assign({formMitt:n},ct(e)),{resetFields:a,clearValidate:o,validateField:i,emit:t}),function(){const e=lt([]);function t(t){const n=e.value.indexOf(t);return-1===n&&console.warn("[Element Warn][ElementForm]unexpected width "+t),n}return{autoLabelWidth:ca((()=>{if(!e.value.length)return"0";const t=Math.max(...e.value);return t?t+"px":""})),registerLabelWidth:function(n,l){if(n&&l){const a=t(l);e.value.splice(a,1,n)}else n&&e.value.push(n)},deregisterLabelWidth:function(n){const l=t(n);l>-1&&e.value.splice(l,1)}}}()))),{validate:r,resetFields:a,clearValidate:o,validateField:i}}});Bb.render=function(e,t,n,l,a,o){return wl(),Sl("form",{class:["el-form",[e.labelPosition?"el-form--label-"+e.labelPosition:"",{"el-form--inline":e.inline}]]},[Ht(e.$slots,"default")],2)},Bb.__file="packages/form/src/form.vue",Bb.install=e=>{e.component(Bb.name,Bb)};const $b=Bb;let zb;const jb=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function Rb(e,t=1,n=null){var l;zb||(zb=document.createElement("textarea"),document.body.appendChild(zb));const{paddingSize:a,borderSize:o,boxSizing:r,contextStyle:i}=function(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),l=parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),a=parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:jb.map((e=>`${e}:${t.getPropertyValue(e)}`)).join(";"),paddingSize:l,borderSize:a,boxSizing:n}}(e);zb.setAttribute("style",i+";\n  height:0 !important;\n  visibility:hidden !important;\n  overflow:hidden !important;\n  position:absolute !important;\n  z-index:-1000 !important;\n  top:0 !important;\n  right:0 !important;\n"),zb.value=e.value||e.placeholder||"";let s=zb.scrollHeight;const u={};"border-box"===r?s+=o:"content-box"===r&&(s-=a),zb.value="";const c=zb.scrollHeight-a;if(null!==t){let e=c*t;"border-box"===r&&(e=e+a+o),s=Math.max(e,s),u.minHeight=e+"px"}if(null!==n){let e=c*n;"border-box"===r&&(e=e+a+o),s=Math.min(e,s)}return u.height=s+"px",null===(l=zb.parentNode)||void 0===l||l.removeChild(zb),zb=null,u}const Hb={suffix:"append",prefix:"prepend"};var Wb=Qn({name:"ElInput",inheritAttrs:!1,props:{modelValue:{type:[String,Number],default:""},type:{type:String,default:"text"},size:{type:String,validator:Ib},resize:{type:String,validator:e=>["none","both","horizontal","vertical"].includes(e)},autosize:{type:[Boolean,Object],default:!1},autocomplete:{type:String,default:"off",validator:e=>["on","off"].includes(e)},placeholder:{type:String},form:{type:String,default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},suffixIcon:{type:String,default:""},prefixIcon:{type:String,default:""},label:{type:String},tabindex:{type:String},validateEvent:{type:Boolean,default:!0}},emits:[Nb,"input","change","focus","blur","clear","mouseleave","mouseenter","keydown"],setup(e,t){const n=na(),l=cb(),a=Ay(),o=zl("elForm",{}),r=zl("elFormItem",{}),i=lt(null),s=lt(null),u=lt(!1),c=lt(!1),d=lt(!1),p=lt(!1),f=at({}),h=ca((()=>i.value||s.value)),v=ca((()=>e.size||r.size||a.size)),m=ca((()=>o.statusIcon)),g=ca((()=>r.validateState||"")),y=ca((()=>Ab[g.value])),b=ca((()=>Object.assign(Object.assign({},f.value),{resize:e.resize}))),_=ca((()=>e.disabled||o.disabled)),k=ca((()=>null===e.modelValue||void 0===e.modelValue?"":String(e.modelValue))),x=ca((()=>t.attrs.maxlength)),w=ca((()=>e.clearable&&!_.value&&!e.readonly&&k.value&&(u.value||c.value))),C=ca((()=>e.showPassword&&!_.value&&!e.readonly&&(!!k.value||u.value))),S=ca((()=>e.showWordLimit&&t.attrs.maxlength&&("text"===e.type||"textarea"===e.type)&&!_.value&&!e.readonly&&!e.showPassword)),E=ca((()=>"number"==typeof e.modelValue?String(e.modelValue).length:(e.modelValue||"").length)),M=ca((()=>S.value&&E.value>x.value)),O=()=>{const{type:t,autosize:n}=e;if(!oy&&"textarea"===t)if(n){const e=fy(n)?n.minRows:void 0,t=fy(n)?n.maxRows:void 0;f.value=Rb(s.value,e,t)}else f.value={minHeight:Rb(s.value).minHeight}},T=()=>{const e=h.value;e&&e.value!==k.value&&(e.value=k.value)},D=e=>{const{el:l}=n.vnode,a=Array.from(l.querySelectorAll(".el-input__"+e)).find((e=>e.parentNode===l));if(!a)return;const o=Hb[e];t.slots[o]?a.style.transform=`translateX(${"suffix"===e?"-":""}${l.querySelector(".el-input-group__"+o).offsetWidth}px)`:a.removeAttribute("style")},L=()=>{D("prefix"),D("suffix")},N=e=>{const{value:n}=e.target;d.value||n!==k.value&&(t.emit(Nb,n),t.emit("input",n),Dt(T))},A=()=>{Dt((()=>{h.value.focus()}))};return Sn((()=>e.modelValue),(t=>{var n;Dt(O),e.validateEvent&&(null===(n=r.formItemMitt)||void 0===n||n.emit("el.form.change",[t]))})),Sn(k,(()=>{T()})),Sn((()=>e.type),(()=>{Dt((()=>{T(),O(),L()}))})),mn((()=>{T(),L(),Dt(O)})),yn((()=>{Dt(L)})),{input:i,textarea:s,attrs:l,inputSize:v,validateState:g,validateIcon:y,textareaStyle:b,resizeTextarea:O,inputDisabled:_,showClear:w,showPwdVisible:C,isWordLimitVisible:S,upperLimit:x,textLength:E,hovering:c,inputExceed:M,passwordVisible:p,inputOrTextarea:h,handleInput:N,handleChange:e=>{t.emit("change",e.target.value)},handleFocus:e=>{u.value=!0,t.emit("focus",e)},handleBlur:n=>{var l;u.value=!1,t.emit("blur",n),e.validateEvent&&(null===(l=r.formItemMitt)||void 0===l||l.emit("el.form.blur",[e.modelValue]))},handleCompositionStart:()=>{d.value=!0},handleCompositionUpdate:e=>{const t=e.target.value,n=t[t.length-1]||"";d.value=!Pb(n)},handleCompositionEnd:e=>{d.value&&(d.value=!1,N(e))},handlePasswordVisible:()=>{p.value=!p.value,A()},clear:()=>{t.emit(Nb,""),t.emit("change",""),t.emit("clear")},select:()=>{h.value.select()},focus:A,blur:()=>{h.value.blur()},getSuffixVisible:()=>t.slots.suffix||e.suffixIcon||w.value||e.showPassword||S.value||g.value&&m.value,onMouseLeave:e=>{c.value=!1,t.emit("mouseleave",e)},onMouseEnter:e=>{c.value=!0,t.emit("mouseenter",e)},handleKeydown:e=>{t.emit("keydown",e)}}}});const Yb={key:0,class:"el-input-group__prepend"},qb={key:2,class:"el-input__prefix"},Kb={key:3,class:"el-input__suffix"},Ub={class:"el-input__suffix-inner"},Gb={key:3,class:"el-input__count"},Xb={class:"el-input__count-inner"},Zb={key:4,class:"el-input-group__append"},Jb={key:2,class:"el-input__count"};Wb.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["textarea"===e.type?"el-textarea":"el-input",e.inputSize?"el-input--"+e.inputSize:"",{"is-disabled":e.inputDisabled,"is-exceed":e.inputExceed,"el-input-group":e.$slots.prepend||e.$slots.append,"el-input-group--append":e.$slots.append,"el-input-group--prepend":e.$slots.prepend,"el-input--prefix":e.$slots.prefix||e.prefixIcon,"el-input--suffix":e.$slots.suffix||e.suffixIcon||e.clearable||e.showPassword},e.$attrs.class],style:e.$attrs.style,onMouseenter:t[20]||(t[20]=(...t)=>e.onMouseEnter&&e.onMouseEnter(...t)),onMouseleave:t[21]||(t[21]=(...t)=>e.onMouseLeave&&e.onMouseLeave(...t))},["textarea"!==e.type?(wl(),Sl(gl,{key:0},[Pl(" 前置元素 "),e.$slots.prepend?(wl(),Sl("div",Yb,[Ht(e.$slots,"prepend")])):Pl("v-if",!0),"textarea"!==e.type?(wl(),Sl("input",Bl({key:1,ref:"input",class:"el-input__inner"},e.attrs,{type:e.showPassword?e.passwordVisible?"text":"password":e.type,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autocomplete,tabindex:e.tabindex,"aria-label":e.label,placeholder:e.placeholder,onCompositionstart:t[1]||(t[1]=(...t)=>e.handleCompositionStart&&e.handleCompositionStart(...t)),onCompositionupdate:t[2]||(t[2]=(...t)=>e.handleCompositionUpdate&&e.handleCompositionUpdate(...t)),onCompositionend:t[3]||(t[3]=(...t)=>e.handleCompositionEnd&&e.handleCompositionEnd(...t)),onInput:t[4]||(t[4]=(...t)=>e.handleInput&&e.handleInput(...t)),onFocus:t[5]||(t[5]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onBlur:t[6]||(t[6]=(...t)=>e.handleBlur&&e.handleBlur(...t)),onChange:t[7]||(t[7]=(...t)=>e.handleChange&&e.handleChange(...t)),onKeydown:t[8]||(t[8]=(...t)=>e.handleKeydown&&e.handleKeydown(...t))}),null,16,["type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder"])):Pl("v-if",!0),Pl(" 前置内容 "),e.$slots.prefix||e.prefixIcon?(wl(),Sl("span",qb,[Ht(e.$slots,"prefix"),e.prefixIcon?(wl(),Sl("i",{key:0,class:["el-input__icon",e.prefixIcon]},null,2)):Pl("v-if",!0)])):Pl("v-if",!0),Pl(" 后置内容 "),e.getSuffixVisible()?(wl(),Sl("span",Kb,[Ll("span",Ub,[e.showClear&&e.showPwdVisible&&e.isWordLimitVisible?Pl("v-if",!0):(wl(),Sl(gl,{key:0},[Ht(e.$slots,"suffix"),e.suffixIcon?(wl(),Sl("i",{key:0,class:["el-input__icon",e.suffixIcon]},null,2)):Pl("v-if",!0)],64)),e.showClear?(wl(),Sl("i",{key:1,class:"el-input__icon el-icon-circle-close el-input__clear",onMousedown:t[9]||(t[9]=fo((()=>{}),["prevent"])),onClick:t[10]||(t[10]=(...t)=>e.clear&&e.clear(...t))},null,32)):Pl("v-if",!0),e.showPwdVisible?(wl(),Sl("i",{key:2,class:"el-input__icon el-icon-view el-input__clear",onClick:t[11]||(t[11]=(...t)=>e.handlePasswordVisible&&e.handlePasswordVisible(...t))})):Pl("v-if",!0),e.isWordLimitVisible?(wl(),Sl("span",Gb,[Ll("span",Xb,c(e.textLength)+"/"+c(e.upperLimit),1)])):Pl("v-if",!0)]),e.validateState?(wl(),Sl("i",{key:0,class:["el-input__icon","el-input__validateIcon",e.validateIcon]},null,2)):Pl("v-if",!0)])):Pl("v-if",!0),Pl(" 后置元素 "),e.$slots.append?(wl(),Sl("div",Zb,[Ht(e.$slots,"append")])):Pl("v-if",!0)],64)):(wl(),Sl("textarea",Bl({key:1,ref:"textarea",class:"el-textarea__inner"},e.attrs,{tabindex:e.tabindex,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autocomplete,style:e.textareaStyle,"aria-label":e.label,placeholder:e.placeholder,onCompositionstart:t[12]||(t[12]=(...t)=>e.handleCompositionStart&&e.handleCompositionStart(...t)),onCompositionupdate:t[13]||(t[13]=(...t)=>e.handleCompositionUpdate&&e.handleCompositionUpdate(...t)),onCompositionend:t[14]||(t[14]=(...t)=>e.handleCompositionEnd&&e.handleCompositionEnd(...t)),onInput:t[15]||(t[15]=(...t)=>e.handleInput&&e.handleInput(...t)),onFocus:t[16]||(t[16]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onBlur:t[17]||(t[17]=(...t)=>e.handleBlur&&e.handleBlur(...t)),onChange:t[18]||(t[18]=(...t)=>e.handleChange&&e.handleChange(...t)),onKeydown:t[19]||(t[19]=(...t)=>e.handleKeydown&&e.handleKeydown(...t))}),"\n    ",16,["tabindex","disabled","readonly","autocomplete","aria-label","placeholder"])),e.isWordLimitVisible&&"textarea"===e.type?(wl(),Sl("span",Jb,c(e.textLength)+"/"+c(e.upperLimit),1)):Pl("v-if",!0)],38)},Wb.__file="packages/input/src/index.vue",Wb.install=e=>{e.component(Wb.name,Wb)};const Qb=Wb,e_={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}};var t_=Qn({name:"Bar",props:{vertical:Boolean,size:String,move:Number},setup(e){const t=lt(null),n=lt(null),l=zl("scrollbar",{}),a=zl("scrollbar-wrap",{}),o=ca((()=>e_[e.vertical?"vertical":"horizontal"])),r=lt({}),i=lt(null),s=lt(null),u=lt(!1);let c=null;const d=e=>{if(!1===i.value)return;const l=r.value[o.value.axis];if(!l)return;const s=100*(-1*(t.value.getBoundingClientRect()[o.value.direction]-e[o.value.client])-(n.value[o.value.offset]-l))/t.value[o.value.offset];a.value[o.value.scroll]=s*a.value[o.value.scrollSize]/100},p=()=>{i.value=!1,r.value[o.value.axis]=0,jy(document,"mousemove",d),document.onselectstart=c,s.value&&(u.value=!1)},f=ca((()=>function({move:e,size:t,bar:n}){const l={},a=`translate${n.axis}(${e}%)`;return l[n.size]=t,l.transform=a,l.msTransform=a,l.webkitTransform=a,l}({size:e.size,move:e.move,bar:o.value}))),h=()=>{s.value=!1,u.value=!!e.size},v=()=>{s.value=!0,u.value=i.value};return mn((()=>{zy(l.value,"mousemove",h),zy(l.value,"mouseleave",v)})),bn((()=>{jy(document,"mouseup",p),jy(l.value,"mousemove",h),jy(l.value,"mouseleave",v)})),{instance:t,thumb:n,bar:o,clickTrackHandler:e=>{const l=100*(Math.abs(e.target.getBoundingClientRect()[o.value.direction]-e[o.value.client])-n.value[o.value.offset]/2)/t.value[o.value.offset];a.value[o.value.scroll]=l*a.value[o.value.scrollSize]/100},clickThumbHandler:e=>{e.stopPropagation(),e.ctrlKey||[1,2].includes(e.button)||((e=>{e.stopImmediatePropagation(),i.value=!0,zy(document,"mousemove",d),zy(document,"mouseup",p),c=document.onselectstart,document.onselectstart=()=>!1})(e),r.value[o.value.axis]=e.currentTarget[o.value.offset]-(e[o.value.client]-e.currentTarget.getBoundingClientRect()[o.value.direction]))},thumbStyle:f,visible:u}}});t_.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,{name:"el-scrollbar-fade"},{default:Zt((()=>[Un(Ll("div",{ref:"instance",class:["el-scrollbar__bar","is-"+e.bar.key],onMousedown:t[2]||(t[2]=(...t)=>e.clickTrackHandler&&e.clickTrackHandler(...t))},[Ll("div",{ref:"thumb",class:"el-scrollbar__thumb",style:e.thumbStyle,onMousedown:t[1]||(t[1]=(...t)=>e.clickThumbHandler&&e.clickThumbHandler(...t))},null,36)],34),[[mo,e.visible]])])),_:1})},t_.__file="packages/scrollbar/src/bar.vue";var n_=Qn({name:"ElScrollbar",components:{Bar:t_},props:{height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:[String,Array],default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array],default:""},noresize:Boolean,tag:{type:String,default:"div"}},emits:["scroll"],setup(e,{emit:t}){const n=lt("0"),l=lt("0"),a=lt(0),o=lt(0),r=lt(null),i=lt(null),s=lt(null);$l("scrollbar",r),$l("scrollbar-wrap",i);const u=()=>{if(!i.value)return;const e=100*i.value.clientHeight/i.value.scrollHeight,t=100*i.value.clientWidth/i.value.scrollWidth;l.value=e<100?e+"%":"",n.value=t<100?t+"%":""},c=ca((()=>{let t=e.wrapStyle;return cy(t)?(t=function(e){const t={};for(let n=0;n<e.length;n++)e[n]&&iy(t,e[n]);return t}(t),t.height=$y(e.height),t.maxHeight=$y(e.maxHeight)):py(t)&&(t+=$y(e.height)?`height: ${$y(e.height)};`:"",t+=$y(e.maxHeight)?`max-height: ${$y(e.maxHeight)};`:""),t}));return mn((()=>{e.native||Dt(u),e.noresize||(Zy(s.value,u),addEventListener("resize",u))})),bn((()=>{e.noresize||(Jy(s.value,u),removeEventListener("resize",u))})),{moveX:a,moveY:o,sizeWidth:n,sizeHeight:l,style:c,scrollbar:r,wrap:i,resize:s,update:u,handleScroll:()=>{i.value&&(o.value=100*i.value.scrollTop/i.value.clientHeight,a.value=100*i.value.scrollLeft/i.value.clientWidth,t("scroll",{scrollLeft:a.value,scrollTop:o.value}))}}}});const l_={ref:"scrollbar",class:"el-scrollbar"};n_.render=function(e,t,n,l,a,o){const r=dl("bar");return wl(),Sl("div",l_,[Ll("div",{ref:"wrap",class:[e.wrapClass,"el-scrollbar__wrap",e.native?"":"el-scrollbar__wrap--hidden-default"],style:e.style,onScroll:t[1]||(t[1]=(...t)=>e.handleScroll&&e.handleScroll(...t))},[(wl(),Sl(fl(e.tag),{ref:"resize",class:["el-scrollbar__view",e.viewClass],style:e.viewStyle},{default:Zt((()=>[Ht(e.$slots,"default")])),_:3},8,["class","style"]))],38),e.native?Pl("v-if",!0):(wl(),Sl(gl,{key:0},[Ll(r,{move:e.moveX,size:e.sizeWidth},null,8,["move","size"]),Ll(r,{vertical:"",move:e.moveY,size:e.sizeHeight},null,8,["move","size"])],64))],512)},n_.__file="packages/scrollbar/src/index.vue",n_.install=e=>{e.component(n_.name,n_)};const a_=n_;var o_;!function(e){e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL"}(o_||(o_={}));const r_=e=>e.type===gl,i_=e=>e.type===bl;function s_(e,t){if(!i_(e))return r_(e)||"template"===e.type?t>0?u_(e.children,t-1):void 0:e}const u_=(e,t=3)=>Array.isArray(e)?s_(e[0],t):s_(e,t);function c_(e,t,n,l,a){return wl(),Sl(e,t,n,l,a)}let d_={};const p_=e=>{e.preventDefault(),e.stopPropagation()},f_=()=>{null==y_||y_.doOnModalClick()};let h_,v_=!1;const m_=function(){if(oy)return;let e=y_.modalDom;return e?v_=!0:(v_=!1,e=document.createElement("div"),y_.modalDom=e,zy(e,"touchmove",p_),zy(e,"click",f_)),e},g_={},y_={modalFade:!0,modalDom:void 0,zIndex:h_,getInstance:function(e){return g_[e]},register:function(e,t){e&&t&&(g_[e]=t)},deregister:function(e){e&&(g_[e]=null,delete g_[e])},nextZIndex:function(){return++y_.zIndex},modalStack:[],doOnModalClick:function(){const e=y_.modalStack[y_.modalStack.length-1];if(!e)return;const t=y_.getInstance(e.id);t&&t.closeOnClickModal.value&&t.close()},openModal:function(e,t,n,l,a){if(oy)return;if(!e||void 0===t)return;this.modalFade=a;const o=this.modalStack;for(let i=0,s=o.length;i<s;i++)if(o[i].id===e)return;const r=m_();Hy(r,"v-modal"),this.modalFade&&!v_&&Hy(r,"v-modal-enter"),l&&l.trim().split(/\s+/).forEach((e=>Hy(r,e))),setTimeout((()=>{Wy(r,"v-modal-enter")}),200),n&&n.parentNode&&11!==n.parentNode.nodeType?n.parentNode.appendChild(r):document.body.appendChild(r),t&&(r.style.zIndex=String(t)),r.tabIndex=0,r.style.display="",this.modalStack.push({id:e,zIndex:t,modalClass:l})},closeModal:function(e){const t=this.modalStack,n=m_();if(t.length>0){const l=t[t.length-1];if(l.id===e)l.modalClass&&l.modalClass.trim().split(/\s+/).forEach((e=>Wy(n,e))),t.pop(),t.length>0&&(n.style.zIndex=t[t.length-1].zIndex);else for(let n=t.length-1;n>=0;n--)if(t[n].id===e){t.splice(n,1);break}}0===t.length&&(this.modalFade&&Hy(n,"v-modal-leave"),setTimeout((()=>{0===t.length&&(n.parentNode&&n.parentNode.removeChild(n),n.style.display="none",y_.modalDom=void 0),Wy(n,"v-modal-leave")}),200))}};function b_(e,t=[]){const{arrow:n,arrowOffset:l,offset:a,gpuAcceleration:o}=e,r=[{name:"offset",options:{offset:[0,null!=a?a:12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{gpuAcceleration:o,adaptive:o}}];return n&&r.push({name:"arrow",options:{element:n,padding:null!=l?l:5}}),r.push(...t),r}var __;Object.defineProperty(y_,"zIndex",{configurable:!0,get:()=>(void 0===h_&&(h_=d_.zIndex||2e3),h_),set(e){h_=e}}),oy||zy(window,"keydown",(function(e){if(e.code===vb.esc){const e=function(){if(!oy&&y_.modalStack.length>0){const e=y_.modalStack[y_.modalStack.length-1];if(!e)return;return y_.getInstance(e.id)}}();e&&e.closeOnPressEscape.value&&(e.handleClose?e.handleClose():e.handleAction?e.handleAction("cancel"):e.close())}})),function(e){e.DARK="dark",e.LIGHT="light"}(__||(__={}));var k_={arrowOffset:{type:Number,default:5},appendToBody:{type:Boolean,default:!0},autoClose:{type:Number,default:0},boundariesPadding:{type:Number,default:0},content:{type:String,default:""},class:{type:String,default:""},style:Object,hideAfter:{type:Number,default:200},cutoff:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},effect:{type:String,default:__.DARK},enterable:{type:Boolean,default:!0},manualMode:{type:Boolean,default:!1},showAfter:{type:Number,default:0},offset:{type:Number,default:12},placement:{type:String,default:"bottom"},popperClass:{type:String,default:""},pure:{type:Boolean,default:!1},popperOptions:{type:Object,default:()=>null},showArrow:{type:Boolean,default:!0},strategy:{type:String,default:"fixed"},transition:{type:String,default:"el-fade-in-linear"},trigger:{type:[String,Array],default:"hover"},visible:{type:Boolean,default:void 0},stopPopperMouseEvent:{type:Boolean,default:!0},gpuAcceleration:{type:Boolean,default:!0}};function x_(e,{emit:t}){const n=lt(null),l=lt(null),a=lt(null),o="el-popper-"+Ey();let r=null,i=null,s=null,u=!1;const c=()=>e.manualMode||"manual"===e.trigger,d=lt({zIndex:y_.nextZIndex()}),p=(v=e,m={arrow:n},ca((()=>{var e;return Object.assign(Object.assign({placement:v.placement},v.popperOptions),{modifiers:b_({arrow:m.arrow.value,arrowOffset:v.arrowOffset,offset:v.offset,gpuAcceleration:v.gpuAcceleration},null===(e=v.popperOptions)||void 0===e?void 0:e.modifiers)})}))),f=Ue({visible:!!e.visible}),h=ca({get:()=>!e.disabled&&(Oy(e.visible)?e.visible:f.visible),set(n){c()||(Oy(e.visible)?t("update:visible",n):f.visible=n)}});var v,m;function g(){e.autoClose>0&&(s=window.setTimeout((()=>{y()}),e.autoClose)),h.value=!0}function y(){h.value=!1}function b(){clearTimeout(i),clearTimeout(s)}const _=()=>{c()||e.disabled||(b(),0===e.showAfter?g():i=window.setTimeout((()=>{g()}),e.showAfter))},k=()=>{c()||(b(),e.hideAfter>0?s=window.setTimeout((()=>{x()}),e.hideAfter):x())},x=()=>{y(),e.disabled&&C(!0)};function w(){if(!By(h))return;const e=By(l),t=gy(e).startsWith("HTML")?e:e.$el;r=Cc(t,By(a),By(p)),r.update()}function C(e){!r||By(h)&&!e||S()}function S(){var e;null===(e=null==r?void 0:r.destroy)||void 0===e||e.call(r),r=null}const E={};if(!c()){const t=()=>{By(h)?k():_()},n=e=>{switch(e.stopPropagation(),e.type){case"click":u?u=!1:t();break;case"mouseenter":_();break;case"mouseleave":k();break;case"focus":u=!0,_();break;case"blur":u=!1,k()}},l={click:["onClick"],hover:["onMouseenter","onMouseleave"],focus:["onFocus","onBlur"]},a=e=>{l[e].forEach((e=>{E[e]=n}))};cy(e.trigger)?Object.values(e.trigger).forEach(a):a(e.trigger)}return Sn(p,(e=>{r&&(r.setOptions(e),r.update())})),Sn(h,(function(e){e&&(d.value.zIndex=y_.nextZIndex(),w())})),{update:function(){By(h)&&(r?r.update():w())},doDestroy:C,show:_,hide:k,onPopperMouseEnter:function(){e.enterable&&"click"!==e.trigger&&clearTimeout(s)},onPopperMouseLeave:function(){const{trigger:t}=e;py(t)&&("click"===t||"focus"===t)||1===t.length&&("click"===t[0]||"focus"===t[0])||k()},onAfterEnter:()=>{t("after-enter")},onAfterLeave:()=>{S(),t("after-leave")},onBeforeEnter:()=>{t("before-enter")},onBeforeLeave:()=>{t("before-leave")},initializePopper:w,isManualMode:c,arrowRef:n,events:E,popperId:o,popperInstance:r,popperRef:a,popperStyle:d,triggerRef:l,visibility:h}}function w_(e,t){const{effect:n,name:l,stopPopperMouseEvent:a,popperClass:o,popperStyle:r,popperRef:i,pure:s,popperId:u,visibility:c,onMouseenter:d,onMouseleave:p,onAfterEnter:f,onAfterLeave:h,onBeforeEnter:v,onBeforeLeave:m}=e,g=[o,"el-popper","is-"+n,s?"is-pure":""],y=a?Gy:ry;return Ll(Ia,{name:l,onAfterEnter:f,onAfterLeave:h,onBeforeEnter:v,onBeforeLeave:m},{default:Zt((()=>[Un(Ll("div",{"aria-hidden":String(!c),class:g,style:null!=r?r:{},id:u,ref:null!=i?i:"popperRef",role:"tooltip",onMouseenter:d,onMouseleave:p,onClick:Gy,onMousedown:y,onMouseup:y},t,o_.CLASS|o_.STYLE|o_.PROPS|o_.HYDRATE_EVENTS,["aria-hidden","onMouseenter","onMouseleave","onMousedown","onMouseup","onClick","id"]),[[mo,c]])]))},o_.PROPS,["name","onAfterEnter","onAfterLeave","onBeforeEnter","onBeforeLeave"])}function C_(e,t){const n=u_(e,1);return n||wy("renderTrigger","trigger expects single rooted node"),Nl(n,t,!0)}function S_(e){return e?(wl(),Sl("div",{ref:"arrowRef",class:"el-popper__arrow","data-popper-arrow":""},null,o_.NEED_PATCH)):(wl(),Sl(bl,null,""))}var E_=Qn({name:"ElPopper",props:k_,emits:["update:visible","after-enter","after-leave","before-enter","before-leave"],setup(e,t){t.slots.trigger||wy("ElPopper","Trigger must be provided");const n=x_(e,t),l=()=>n.doDestroy(!0);return mn(n.initializePopper),bn(l),$n(n.initializePopper),zn(l),n},render(){var e;const{$slots:t,appendToBody:n,class:l,style:a,effect:o,hide:r,onPopperMouseEnter:i,onPopperMouseLeave:s,onAfterEnter:u,onAfterLeave:d,onBeforeEnter:p,onBeforeLeave:f,popperClass:h,popperId:v,popperStyle:m,pure:g,showArrow:y,transition:b,visibility:_,stopPopperMouseEvent:k}=this,x=this.isManualMode(),w=S_(y),C=w_({effect:o,name:b,popperClass:h,popperId:v,popperStyle:m,pure:g,stopPopperMouseEvent:k,onMouseenter:i,onMouseleave:s,onAfterEnter:u,onAfterLeave:d,onBeforeEnter:p,onBeforeLeave:f,visibility:_},[Ht(t,"default",{},(()=>[c(this.content)])),w]),S=null===(e=t.trigger)||void 0===e?void 0:e.call(t),E=Object.assign({ariaDescribedby:v,class:l,style:a,ref:"triggerRef"},this.events),M=x?C_(S,E):Un(C_(S,E),[[Sb,r]]);return c_(gl,null,[M,Ll(cl,{to:"body",disabled:!n},[C],o_.PROPS,["disabled"])])}});E_.__file="packages/popper/src/index.vue",E_.install=e=>{e.component(E_.name,E_)};const M_=E_;var O_=Qn({name:"ElAutocomplete",components:{ElPopper:M_,ElInput:Qb,ElScrollbar:a_},directives:{clickoutside:Sb},inheritAttrs:!1,props:{valueKey:{type:String,default:"value"},modelValue:{type:[String,Number],default:""},debounce:{type:Number,default:300},placement:{type:String,validator:e=>["top","top-start","top-end","bottom","bottom-start","bottom-end"].includes(e),default:"bottom-start"},fetchSuggestions:{type:Function,default:ry},popperClass:{type:String,default:""},triggerOnFocus:{type:Boolean,default:!0},selectWhenUnmatched:{type:Boolean,default:!1},hideLoading:{type:Boolean,default:!1},popperAppendToBody:{type:Boolean,default:!0},highlightFirstItem:{type:Boolean,default:!1}},emits:[Nb,"input","change","focus","blur","clear","select"],setup(e,t){const n=cb(),l=lt([]),a=lt(-1),o=lt(""),r=lt(!1),i=lt(!1),s=lt(!1),u=lt(null),c=lt(null),d=lt(null),p=ca((()=>"el-autocomplete-"+Ey())),f=ca((()=>(cy(l.value)&&l.value.length>0||s.value)&&r.value)),h=ca((()=>!e.hideLoading&&s.value)),v=()=>{Dt(d.value.update)};Sn(f,(()=>{o.value=u.value.$el.offsetWidth+"px"})),mn((()=>{u.value.inputOrTextarea.setAttribute("role","textbox"),u.value.inputOrTextarea.setAttribute("aria-autocomplete","list"),u.value.inputOrTextarea.setAttribute("aria-controls","id"),u.value.inputOrTextarea.setAttribute("aria-activedescendant",`${p.value}-item-${a.value}`);const e=c.value.querySelector(".el-autocomplete-suggestion__list");e.setAttribute("role","listbox"),e.setAttribute("id",p.value)})),yn(v);const m=t=>{i.value||(s.value=!0,v(),e.fetchSuggestions(t,(t=>{s.value=!1,i.value||(cy(t)?(l.value=t,a.value=e.highlightFirstItem?0:-1):wy("ElAutocomplete","autocomplete suggestions must be an array"))})))},g=uu(m,e.debounce),y=n=>{t.emit("input",n[e.valueKey]),t.emit(Nb,n[e.valueKey]),t.emit("select",n),Dt((()=>{l.value=[],a.value=-1}))};return{attrs:n,suggestions:l,highlightedIndex:a,dropdownWidth:o,activated:r,suggestionDisabled:i,loading:s,inputRef:u,regionRef:c,popper:d,id:p,suggestionVisible:f,suggestionLoading:h,getData:m,handleInput:n=>{if(t.emit("input",n),t.emit(Nb,n),i.value=!1,!e.triggerOnFocus&&!n)return i.value=!0,void(l.value=[]);g(n)},handleChange:e=>{t.emit("change",e)},handleFocus:n=>{r.value=!0,t.emit("focus",n),e.triggerOnFocus&&g(e.modelValue)},handleBlur:e=>{t.emit("blur",e)},handleClear:()=>{r.value=!1,t.emit(Nb,""),t.emit("clear")},handleKeyEnter:()=>{f.value&&a.value>=0&&a.value<l.value.length?y(l.value[a.value]):e.selectWhenUnmatched&&(t.emit("select",{value:e.modelValue}),Dt((()=>{l.value=[],a.value=-1})))},close:()=>{r.value=!1},focus:()=>{u.value.focus()},select:y,highlight:e=>{if(!f.value||s.value)return;if(e<0)return void(a.value=-1);e>=l.value.length&&(e=l.value.length-1);const t=c.value.querySelector(".el-autocomplete-suggestion__wrap"),n=t.querySelectorAll(".el-autocomplete-suggestion__list li")[e],o=t.scrollTop,r=n.offsetTop;r+n.scrollHeight>o+t.clientHeight&&(t.scrollTop+=n.scrollHeight),r<o&&(t.scrollTop-=n.scrollHeight),a.value=e,u.value.inputOrTextarea.setAttribute("aria-activedescendant",`${p.value}-item-${a.value}`)}}}});const T_={key:0},D_=Ll("i",{class:"el-icon-loading"},null,-1);O_.render=function(e,t,n,l,a,o){const r=dl("el-input"),i=dl("el-scrollbar"),s=dl("el-popper"),u=hl("clickoutside");return wl(),Sl(s,{ref:"popper",visible:e.suggestionVisible,"onUpdate:visible":t[3]||(t[3]=t=>e.suggestionVisible=t),placement:e.placement,"popper-class":"el-autocomplete__popper "+e.popperClass,"append-to-body":e.popperAppendToBody,pure:"","manual-mode":"",effect:"light",trigger:"click",transition:"el-zoom-in-top","gpu-acceleration":!1},{trigger:Zt((()=>[Un(Ll("div",{class:["el-autocomplete",e.$attrs.class],style:e.$attrs.style,role:"combobox","aria-haspopup":"listbox","aria-expanded":e.suggestionVisible,"aria-owns":e.id},[Ll(r,Bl({ref:"inputRef"},e.attrs,{"model-value":e.modelValue,onInput:e.handleInput,onChange:e.handleChange,onFocus:e.handleFocus,onBlur:e.handleBlur,onClear:e.handleClear,onKeydown:[t[1]||(t[1]=vo(fo((t=>e.highlight(e.highlightedIndex-1)),["prevent"]),["up"])),t[2]||(t[2]=vo(fo((t=>e.highlight(e.highlightedIndex+1)),["prevent"]),["down"])),vo(e.handleKeyEnter,["enter"]),vo(e.close,["tab"])]}),ha({_:2},[e.$slots.prepend?{name:"prepend",fn:Zt((()=>[Ht(e.$slots,"prepend")]))}:void 0,e.$slots.append?{name:"append",fn:Zt((()=>[Ht(e.$slots,"append")]))}:void 0,e.$slots.prefix?{name:"prefix",fn:Zt((()=>[Ht(e.$slots,"prefix")]))}:void 0,e.$slots.suffix?{name:"suffix",fn:Zt((()=>[Ht(e.$slots,"suffix")]))}:void 0]),1040,["model-value","onInput","onChange","onFocus","onBlur","onClear","onKeydown"])],14,["aria-expanded","aria-owns"]),[[u,e.close]])])),default:Zt((()=>[Ll("div",{ref:"regionRef",class:["el-autocomplete-suggestion",e.suggestionLoading&&"is-loading"],style:{width:e.dropdownWidth,outline:"none"},role:"region"},[Ll(i,{tag:"ul","wrap-class":"el-autocomplete-suggestion__wrap","view-class":"el-autocomplete-suggestion__list"},{default:Zt((()=>[e.suggestionLoading?(wl(),Sl("li",T_,[D_])):(wl(!0),Sl(gl,{key:1},pa(e.suggestions,((t,n)=>(wl(),Sl("li",{id:`${e.id}-item-${n}`,key:n,class:{highlighted:e.highlightedIndex===n},role:"option","aria-selected":e.highlightedIndex===n,onClick:n=>e.select(t)},[Ht(e.$slots,"default",{item:t},(()=>[Al(c(t[e.valueKey]),1)]))],10,["id","aria-selected","onClick"])))),128))])),_:3})],6)])),_:1},8,["visible","placement","popper-class","append-to-body"])},O_.__file="packages/autocomplete/src/index.vue",O_.install=e=>{e.component(O_.name,O_)};const L_=O_;var N_=Qn({name:"ElAvatar",props:{size:{type:[Number,String],validator:e=>"string"==typeof e?["large","medium","small"].includes(e):"number"==typeof e,default:"large"},shape:{type:String,default:"circle",validator:e=>["circle","square"].includes(e)},icon:String,src:{type:String,default:""},alt:String,srcSet:String,fit:{type:String,default:"cover"}},emits:["error"],setup(e,{emit:t}){const n=lt(!1);Sn(pt(e,"src"),(()=>{n.value=!1}));const l=ca((()=>{const{size:t,icon:n,shape:l}=e;let a=["el-avatar"];return t&&"string"==typeof t&&a.push("el-avatar--"+t),n&&a.push("el-avatar--icon"),l&&a.push("el-avatar--"+l),a})),a=ca((()=>{const{size:t}=e;return"number"==typeof t?{height:t+"px",width:t+"px",lineHeight:t+"px"}:{}})),o=ca((()=>({objectFit:e.fit})));return{hasLoadError:n,avatarClass:l,sizeStyle:a,handleError:function(e){n.value=!0,t("error",e)},fitStyle:o}}});N_.render=function(e,t,n,l,a,o){return wl(),Sl("span",{class:e.avatarClass,style:e.sizeStyle},[!e.src&&!e.srcSet||e.hasLoadError?e.icon?(wl(),Sl("i",{key:1,class:e.icon},null,2)):Ht(e.$slots,"default",{key:2}):(wl(),Sl("img",{key:0,src:e.src,alt:e.alt,srcset:e.srcSet,style:e.fitStyle,onError:t[1]||(t[1]=(...t)=>e.handleError&&e.handleError(...t))},null,44,["src","alt","srcset"]))],6)},N_.__file="packages/avatar/src/index.vue",N_.install=e=>{e.component(N_.name,N_)};const A_=N_,P_=e=>Math.pow(e,3);var I_=Qn({name:"ElBacktop",props:{visibilityHeight:{type:Number,default:200},target:{type:String,default:""},right:{type:Number,default:40},bottom:{type:Number,default:40}},emits:["click"],setup(e,t){const n=lt(null),l=lt(null),a=lt(!1),o=ca((()=>e.bottom+"px")),r=ca((()=>e.right+"px")),i=zc((()=>{a.value=n.value.scrollTop>=e.visibilityHeight}),300);return mn((()=>{if(l.value=document,n.value=document.documentElement,e.target){if(n.value=document.querySelector(e.target),!n.value)throw new Error("target is not existed: "+e.target);l.value=n.value}zy(l.value,"scroll",i)})),bn((()=>{jy(l.value,"scroll",i)})),{el:n,container:l,visible:a,styleBottom:o,styleRight:r,handleClick:e=>{(()=>{const e=Date.now(),t=n.value.scrollTop,l=window.requestAnimationFrame||(e=>setTimeout(e,16)),a=()=>{const o=(Date.now()-e)/500;var r;o<1?(n.value.scrollTop=t*(1-((r=o)<.5?P_(2*r)/2:1-P_(2*(1-r))/2)),l(a)):n.value.scrollTop=0};l(a)})(),t.emit("click",e)}}}});const F_=Ll("i",{class:"el-icon-caret-top"},null,-1);I_.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,{name:"el-fade-in"},{default:Zt((()=>[e.visible?(wl(),Sl("div",{key:0,style:{right:e.styleRight,bottom:e.styleBottom},class:"el-backtop",onClick:t[1]||(t[1]=fo(((...t)=>e.handleClick&&e.handleClick(...t)),["stop"]))},[Ht(e.$slots,"default",{},(()=>[F_]))],4)):Pl("v-if",!0)])),_:3})},I_.__file="packages/backtop/src/index.vue",I_.install=e=>{e.component(I_.name,I_)};const V_=I_;var B_=Qn({name:"ElBadge",props:{value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,default:"primary",validator:e=>["primary","success","warning","info","danger"].includes(e)}},setup:e=>({content:ca((()=>{if(!e.isDot)return"number"==typeof e.value&&"number"==typeof e.max&&e.max<e.value?e.max+"+":e.value}))})});const $_={class:"el-badge"};B_.render=function(e,t,n,l,a,o){return wl(),Sl("div",$_,[Ht(e.$slots,"default"),Ll(Ia,{name:"el-zoom-in-center"},{default:Zt((()=>[Un(Ll("sup",{class:["el-badge__content",["el-badge__content--"+e.type,{"is-fixed":e.$slots.default,"is-dot":e.isDot}]],textContent:c(e.content)},null,10,["textContent"]),[[mo,!e.hidden&&(e.content||0===e.content||e.isDot)]])])),_:1})])},B_.__file="packages/badge/src/index.vue",B_.install=e=>{e.component(B_.name,B_)};const z_=B_;var j_=Qn({name:"ElBreadcrumb",props:{separator:{type:String,default:"/"},separatorClass:{type:String,default:""}},setup(e){const t=lt(null);return $l("breadcrumb",e),mn((()=>{const e=t.value.querySelectorAll(".el-breadcrumb__item");e.length&&e[e.length-1].setAttribute("aria-current","page")})),{breadcrumb:t}}});const R_={ref:"breadcrumb",class:"el-breadcrumb","aria-label":"Breadcrumb",role:"navigation"};j_.render=function(e,t,n,l,a,o){return wl(),Sl("div",R_,[Ht(e.$slots,"default")],512)},j_.__file="packages/breadcrumb/src/index.vue",j_.install=e=>{e.component(j_.name,j_)};const H_=j_;var W_=Qn({name:"ElBreadcrumbItem",props:{to:{type:[String,Object],default:""},replace:{type:Boolean,default:!1}},setup(e){const t=lt(null),n=zl("breadcrumb"),l=na().appContext.config.globalProperties.$router;return mn((()=>{t.value.setAttribute("role","link"),t.value.addEventListener("click",(()=>{e.to&&l&&(e.replace?l.replace(e.to):l.push(e.to))}))})),{link:t,separator:null==n?void 0:n.separator,separatorClass:null==n?void 0:n.separatorClass}}});const Y_={class:"el-breadcrumb__item"},q_={key:1,class:"el-breadcrumb__separator",role:"presentation"};W_.render=function(e,t,n,l,a,o){return wl(),Sl("span",Y_,[Ll("span",{ref:"link",class:["el-breadcrumb__inner",e.to?"is-link":""],role:"link"},[Ht(e.$slots,"default")],2),e.separatorClass?(wl(),Sl("i",{key:0,class:["el-breadcrumb__separator",e.separatorClass]},null,2)):(wl(),Sl("span",q_,c(e.separator),1))])},W_.__file="packages/breadcrumb/src/item.vue",W_.install=e=>{e.component(W_.name,W_)};const K_=W_;var U_=Qn({name:"ElButton",props:{type:{type:String,default:"default",validator:e=>["default","primary","success","warning","info","danger","text"].includes(e)},size:{type:String,validator:Ib},icon:{type:String,default:""},nativeType:{type:String,default:"button",validator:e=>["button","submit","reset"].includes(e)},loading:Boolean,disabled:Boolean,plain:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean},emits:["click"],setup(e,{emit:t}){const n=Ay(),l=zl("elForm",{}),a=zl("elFormItem",{});return{buttonSize:ca((()=>e.size||a.size||n.size)),buttonDisabled:ca((()=>e.disabled||l.disabled)),handleClick:e=>{t("click",e)}}}});const G_={key:0,class:"el-icon-loading"},X_={key:2};U_.render=function(e,t,n,l,a,o){return wl(),Sl("button",{class:["el-button",e.type?"el-button--"+e.type:"",e.buttonSize?"el-button--"+e.buttonSize:"",{"is-disabled":e.buttonDisabled,"is-loading":e.loading,"is-plain":e.plain,"is-round":e.round,"is-circle":e.circle}],disabled:e.buttonDisabled||e.loading,autofocus:e.autofocus,type:e.nativeType,onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t))},[e.loading?(wl(),Sl("i",G_)):Pl("v-if",!0),e.icon&&!e.loading?(wl(),Sl("i",{key:1,class:e.icon},null,2)):Pl("v-if",!0),e.$slots.default?(wl(),Sl("span",X_,[Ht(e.$slots,"default")])):Pl("v-if",!0)],10,["disabled","autofocus","type"])},U_.__file="packages/button/src/button.vue",U_.install=e=>{e.component(U_.name,U_)};const Z_=U_;var J_=Qn({name:"ElButtonGroup"});const Q_={class:"el-button-group"};J_.render=function(e,t,n,l,a,o){return wl(),Sl("div",Q_,[Ht(e.$slots,"default")])},J_.__file="packages/button/src/button-group.vue",J_.install=e=>{e.component(J_.name,J_)};const ek=J_;let tk={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:""},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}},nk=null;function lk(e,t){return e&&t?e.replace(/\{(\w+)\}/g,((e,n)=>t[n])):e}const ak=(...e)=>{if(nk)return nk(...e);const[t,n]=e;let l;const a=t.split(".");let o=tk;for(let r=0,i=a.length;r<i;r++){if(l=o[a[r]],r===i-1)return lk(l,n);if(!l)return"";o=l}return""},ok={date:"YYYY-MM-DD",week:"gggg[w]ww",year:"YYYY",month:"YYYY-MM",datetime:"YYYY-MM-DD HH:mm:ss",monthrange:"YYYY-MM",daterange:"YYYY-MM-DD",datetimerange:"YYYY-MM-DD HH:mm:ss"},rk={name:{type:[Array,String],default:""},popperClass:{type:String,default:""},format:{type:String},type:{type:String,default:""},clearable:{type:Boolean,default:!0},clearIcon:{type:String,default:"el-icon-circle-close"},editable:{type:Boolean,default:!0},prefixIcon:{type:String,default:""},size:{type:String,validator:Ib},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},placeholder:{type:String,default:""},popperOptions:{type:Object,default:()=>({})},modelValue:{type:[Date,Array,String],default:""},rangeSeparator:{type:String,default:"-"},startPlaceholder:String,endPlaceholder:String,defaultValue:{type:[Date,Array]},defaultTime:{type:[Date,Array]},isRange:{type:Boolean,default:!1},disabledHours:{type:Function},disabledMinutes:{type:Function},disabledSeconds:{type:Function},disabledDate:{type:Function},cellClassName:{type:Function},shortcuts:{type:Array,default:()=>[]},arrowControl:{type:Boolean,default:!1},validateEvent:{type:Boolean,default:!0},unlinkPanels:Boolean},ik=function(e,t){const n=e instanceof Date,l=t instanceof Date;return n&&l?e.getTime()===t.getTime():!n&&!l&&e===t},sk=function(e,t){const n=e instanceof Array,l=t instanceof Array;return n&&l?e.length===t.length&&e.every(((e,n)=>ik(e,t[n]))):!n&&!l&&ik(e,t)};var uk=Qn({name:"Picker",components:{ElInput:Qb,ElPopper:M_},directives:{clickoutside:Sb},props:rk,emits:["update:modelValue","change","focus","blur"],setup(e,t){const n=Ay(),l=zl("elForm",{}),a=zl("elFormItem",{}),o=zl("ElPopperOptions",{}),r=lt(null),i=lt(!1),s=lt(!1),u=lt(null);Sn(i,(n=>{var l;n?u.value=e.modelValue:(S.value=null,Dt((()=>{c(e.modelValue)})),t.emit("blur"),M(),e.validateEvent&&(null===(l=a.formItemMitt)||void 0===l||l.emit("el.form.blur")))}));const c=(n,l)=>{var o;!l&&sk(n,u.value)||(t.emit("change",n),e.validateEvent&&(null===(o=a.formItemMitt)||void 0===o||o.emit("el.form.change",n)))},d=n=>{sk(e.modelValue,n)||t.emit("update:modelValue",n)},p=ca((()=>{if(r.value.triggerRef){const e=x.value?r.value.triggerRef:r.value.triggerRef.$el;return[].slice.call(e.querySelectorAll("input"))}return[]})),f=ca((()=>e.disabled||l.disabled)),h=ca((()=>{let t;return k.value?L.value.getDefaultValue&&(t=L.value.getDefaultValue()):t=Array.isArray(e.modelValue)?e.modelValue.map((e=>Rc(e))):Rc(e.modelValue),L.value.getRangeAvaliableTime&&(t=L.value.getRangeAvaliableTime(t)),t})),v=ca((()=>{if(!L.value.panelReady)return;const e=T(h.value);return Array.isArray(S.value)?[S.value[0]||e&&e[0]||"",S.value[1]||e&&e[1]||""]:null!==S.value?S.value:!g.value&&k.value||!i.value&&k.value?void 0:e?y.value?e.join(", "):e:""})),m=ca((()=>-1!==e.type.indexOf("time"))),g=ca((()=>0===e.type.indexOf("time"))),y=ca((()=>"dates"===e.type)),b=ca((()=>e.prefixIcon||(m.value?"el-icon-time":"el-icon-date"))),_=lt(!1),k=ca((()=>!e.modelValue||Array.isArray(e.modelValue)&&!e.modelValue.length)),x=ca((()=>e.type.indexOf("range")>-1)),w=ca((()=>e.size||a.size||n.size)),C=ca((()=>{var e;return null===(e=r.value)||void 0===e?void 0:e.popperRef})),S=lt(null),E=()=>{if(S.value){const e=O(v.value);e&&D(e)&&(d(Array.isArray(e)?e.map((e=>e.toDate())):e.toDate()),S.value=null)}""===S.value&&(d(null),c(null),S.value=null)},M=()=>{p.value.forEach((e=>e.blur()))},O=e=>e?L.value.parseUserInput(e):null,T=e=>e?L.value.formatToString(e):null,D=e=>L.value.isValidValue(e),L=lt({});return $l("EP_PICKER_BASE",{props:e}),{elPopperOptions:o,isDatesPicker:y,handleEndChange:()=>{const e=O(S.value&&S.value[1]);if(e&&e.isValid()){S.value=[v.value[0],T(e)];const t=[h.value&&h.value[0],e];D(t)&&(d(t),S.value=null)}},handleStartChange:()=>{const e=O(S.value&&S.value[0]);if(e&&e.isValid()){S.value=[T(e),v.value[1]];const t=[e,h.value&&h.value[1]];D(t)&&(d(t),S.value=null)}},handleStartInput:e=>{S.value?S.value=[e.target.value,S.value[1]]:S.value=[e.target.value,null]},handleEndInput:e=>{S.value?S.value=[S.value[0],e.target.value]:S.value=[null,e.target.value]},onUserInput:e=>{S.value=e},handleChange:E,handleKeydown:e=>{const t=e.code;return t===vb.esc?(i.value=!1,void e.stopPropagation()):t!==vb.tab?t===vb.enter?((""===S.value||D(O(v.value)))&&(E(),i.value=!1),void e.stopPropagation()):void(S.value?e.stopPropagation():L.value.handleKeydown&&L.value.handleKeydown(e)):void(x.value?setTimeout((()=>{-1===p.value.indexOf(document.activeElement)&&(i.value=!1,M())}),0):(E(),i.value=!1,e.stopPropagation()))},popperPaneRef:C,onClickOutside:()=>{i.value&&(i.value=!1)},pickerSize:w,isRangeInput:x,onMouseLeave:()=>{_.value=!1},onMouseEnter:()=>{e.readonly||f.value||!k.value&&e.clearable&&(_.value=!0)},onClearIconClick:t=>{e.readonly||f.value||_.value&&(t.stopPropagation(),d(null),c(null,!0),_.value=!1,i.value=!1,L.value.handleClear&&L.value.handleClear())},showClose:_,triggerClass:b,onPick:(e="",t=!1)=>{let n;i.value=t,n=Array.isArray(e)?e.map((e=>e.toDate())):e?e.toDate():e,S.value=null,d(n)},handleFocus:n=>{e.readonly||f.value||(i.value=!0,t.emit("focus",n))},pickerVisible:i,pickerActualVisible:s,displayValue:v,parsedValue:h,setSelectionRange:(e,t,n)=>{const l=p.value;l.length&&(n&&"min"!==n?"max"===n&&(l[1].setSelectionRange(e,t),l[1].focus()):(l[0].setSelectionRange(e,t),l[0].focus()))},refPopper:r,pickerDisabled:f,onSetPickerOption:e=>{L.value[e[0]]=e[1],L.value.panelReady=!0}}}});const ck={class:"el-range-separator"};uk.render=function(e,t,n,l,a,o){const r=dl("el-input"),i=dl("el-popper"),s=hl("clickoutside");return wl(),Sl(i,Bl({ref:"refPopper",visible:e.pickerVisible,"onUpdate:visible":t[18]||(t[18]=t=>e.pickerVisible=t),"manual-mode":"",effect:"light",pure:"",trigger:"click"},e.$attrs,{"popper-class":"el-picker__popper "+e.popperClass,"popper-options":e.elPopperOptions,transition:"el-zoom-in-top","gpu-acceleration":!1,"stop-popper-mouse-event":!1,"append-to-body":"",onBeforeEnter:t[19]||(t[19]=t=>e.pickerActualVisible=!0),onAfterLeave:t[20]||(t[20]=t=>e.pickerActualVisible=!1)}),{trigger:Zt((()=>[e.isRangeInput?Un((wl(),Sl("div",{key:1,class:["el-date-editor el-range-editor el-input__inner",["el-date-editor--"+e.type,e.pickerSize?"el-range-editor--"+e.pickerSize:"",e.pickerDisabled?"is-disabled":"",e.pickerVisible?"is-active":""]],onClick:t[10]||(t[10]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onMouseenter:t[11]||(t[11]=(...t)=>e.onMouseEnter&&e.onMouseEnter(...t)),onMouseleave:t[12]||(t[12]=(...t)=>e.onMouseLeave&&e.onMouseLeave(...t)),onKeydown:t[13]||(t[13]=(...t)=>e.handleKeydown&&e.handleKeydown(...t))},[Ll("i",{class:["el-input__icon","el-range__icon",e.triggerClass]},null,2),Ll("input",{autocomplete:"off",name:e.name&&e.name[0],placeholder:e.startPlaceholder,value:e.displayValue&&e.displayValue[0],disabled:e.pickerDisabled,readonly:!e.editable||e.readonly,class:"el-range-input",onInput:t[3]||(t[3]=(...t)=>e.handleStartInput&&e.handleStartInput(...t)),onChange:t[4]||(t[4]=(...t)=>e.handleStartChange&&e.handleStartChange(...t)),onFocus:t[5]||(t[5]=(...t)=>e.handleFocus&&e.handleFocus(...t))},null,40,["name","placeholder","value","disabled","readonly"]),Ht(e.$slots,"range-separator",{},(()=>[Ll("span",ck,c(e.rangeSeparator),1)])),Ll("input",{autocomplete:"off",name:e.name&&e.name[1],placeholder:e.endPlaceholder,value:e.displayValue&&e.displayValue[1],disabled:e.pickerDisabled,readonly:!e.editable||e.readonly,class:"el-range-input",onFocus:t[6]||(t[6]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onInput:t[7]||(t[7]=(...t)=>e.handleEndInput&&e.handleEndInput(...t)),onChange:t[8]||(t[8]=(...t)=>e.handleEndChange&&e.handleEndChange(...t))},null,40,["name","placeholder","value","disabled","readonly"]),Ll("i",{class:[[e.showClose?""+e.clearIcon:""],"el-input__icon el-range__close-icon"],onClick:t[9]||(t[9]=(...t)=>e.onClearIconClick&&e.onClearIconClick(...t))},null,2)],34)),[[s,e.onClickOutside,e.popperPaneRef]]):Un((wl(),Sl(r,{key:0,"model-value":e.displayValue,name:e.name,size:e.pickerSize,disabled:e.pickerDisabled,placeholder:e.placeholder,class:["el-date-editor","el-date-editor--"+e.type],readonly:!e.editable||e.readonly||e.isDatesPicker||"week"===e.type,onInput:e.onUserInput,onFocus:e.handleFocus,onKeydown:e.handleKeydown,onChange:e.handleChange,onMouseenter:e.onMouseEnter,onMouseleave:e.onMouseLeave},{prefix:Zt((()=>[Ll("i",{class:["el-input__icon",e.triggerClass],onClick:t[1]||(t[1]=(...t)=>e.handleFocus&&e.handleFocus(...t))},null,2)])),suffix:Zt((()=>[Ll("i",{class:["el-input__icon",[e.showClose?""+e.clearIcon:""]],onClick:t[2]||(t[2]=(...t)=>e.onClearIconClick&&e.onClearIconClick(...t))},null,2)])),_:1},8,["model-value","name","size","disabled","placeholder","class","readonly","onInput","onFocus","onKeydown","onChange","onMouseenter","onMouseleave"])),[[s,e.onClickOutside,e.popperPaneRef]])])),default:Zt((()=>[Ht(e.$slots,"default",{visible:e.pickerVisible,actualVisible:e.pickerActualVisible,parsedValue:e.parsedValue,format:e.format,unlinkPanels:e.unlinkPanels,type:e.type,defaultValue:e.defaultValue,onPick:t[14]||(t[14]=(...t)=>e.onPick&&e.onPick(...t)),onSelectRange:t[15]||(t[15]=(...t)=>e.setSelectionRange&&e.setSelectionRange(...t)),onSetPickerOption:t[16]||(t[16]=(...t)=>e.onSetPickerOption&&e.onSetPickerOption(...t)),onMousedown:t[17]||(t[17]=fo((()=>{}),["stop"]))})])),_:1},16,["visible","popper-class","popper-options"])},uk.__file="packages/time-picker/src/common/picker.vue";const dk=(e,t,n)=>{const l=[],a=t&&n();for(let o=0;o<e;o++)l[o]=!!a&&a.includes(o);return l},pk=e=>e.map(((e,t)=>e||t)).filter((e=>!0!==e)),fk=(e,t,n)=>({getHoursList:(t,n)=>dk(24,e,(()=>e(t,n))),getMinutesList:(e,n,l)=>dk(60,t,(()=>t(e,n,l))),getSecondsList:(e,t,l,a)=>dk(60,n,(()=>n(e,t,l,a)))}),hk=(e,t,n)=>{const{getHoursList:l,getMinutesList:a,getSecondsList:o}=fk(e,t,n);return{getAvaliableHours:(e,t)=>pk(l(e,t)),getAvaliableMinutes:(e,t,n)=>pk(a(e,t,n)),getAvaliableSeconds:(e,t,n,l)=>pk(o(e,t,n,l))}},vk=e=>{const t=lt(e.parsedValue);return Sn((()=>e.visible),(n=>{n||(t.value=e.parsedValue)})),t};var mk=Qn({directives:{repeatClick:Eb},components:{ElScrollbar:a_},props:{role:{type:String,required:!0},spinnerDate:{type:Object,required:!0},showSeconds:{type:Boolean,default:!0},arrowControl:Boolean,amPmMode:{type:String,default:""},disabledHours:{type:Function},disabledMinutes:{type:Function},disabledSeconds:{type:Function}},emits:["change","select-range","set-option"],setup(e,t){let n=!1;const l=uu((e=>{n=!1,w(e)}),200),a=lt(null),o=lt(null),r=lt(null),i=lt(null),s={hours:o,minutes:r,seconds:i},u=ca((()=>{const t=["hours","minutes","seconds"];return e.showSeconds?t:t.slice(0,2)})),c=ca((()=>e.spinnerDate.hour())),d=ca((()=>e.spinnerDate.minute())),p=ca((()=>e.spinnerDate.second())),f=ca((()=>({hours:c,minutes:d,seconds:p}))),h=ca((()=>D(e.role))),v=ca((()=>L(c.value,e.role))),m=ca((()=>N(c.value,d.value,e.role))),g=ca((()=>({hours:h,minutes:v,seconds:m}))),y=ca((()=>{const e=c.value;return[e>0?e-1:void 0,e,e<23?e+1:void 0]})),b=ca((()=>{const e=d.value;return[e>0?e-1:void 0,e,e<59?e+1:void 0]})),_=ca((()=>{const e=p.value;return[e>0?e-1:void 0,e,e<59?e+1:void 0]})),k=ca((()=>({hours:y,minutes:b,seconds:_}))),x=e=>{"hours"===e?t.emit("select-range",0,2):"minutes"===e?t.emit("select-range",3,5):"seconds"===e&&t.emit("select-range",6,8),a.value=e},w=e=>{S(e,f.value[e].value)},C=()=>{w("hours"),w("minutes"),w("seconds")},S=(t,n)=>{if(e.arrowControl)return;const l=s[t];l.value&&(l.value.$el.querySelector(".el-scrollbar__wrap").scrollTop=Math.max(0,n*E(t)))},E=e=>s[e].value.$el.querySelector("li").offsetHeight,M=e=>{a.value||x("hours");const t=a.value;let n=f.value[t].value;const l="hours"===a.value?24:60;n=(n+e+l)%l,O(t,n),S(t,n),Dt((()=>x(a.value)))},O=(n,l)=>{if(!g.value[n].value[l])switch(n){case"hours":t.emit("change",e.spinnerDate.hour(l).minute(d.value).second(p.value));break;case"minutes":t.emit("change",e.spinnerDate.hour(c.value).minute(l).second(p.value));break;case"seconds":t.emit("change",e.spinnerDate.hour(c.value).minute(d.value).second(l))}},T=()=>{const e=e=>{s[e].value&&(s[e].value.$el.querySelector(".el-scrollbar__wrap").onscroll=()=>{(e=>{n=!0,l(e);const t=Math.min(Math.round((s[e].value.$el.querySelector(".el-scrollbar__wrap").scrollTop-(.5*(e=>s[e].value.$el.offsetHeight)(e)-10)/E(e)+3)/E(e)),"hours"===e?23:59);O(e,t)})(e)})};e("hours"),e("minutes"),e("seconds")};mn((()=>{Dt((()=>{!e.arrowControl&&T(),C(),"start"===e.role&&x("hours")}))})),t.emit("set-option",[e.role+"_scrollDown",M]),t.emit("set-option",[e.role+"_emitSelectRange",x]);const{getHoursList:D,getMinutesList:L,getSecondsList:N}=fk(e.disabledHours,e.disabledMinutes,e.disabledSeconds);return Sn((()=>e.spinnerDate),(()=>{n||C()})),{getRefId:e=>`list${e.charAt(0).toUpperCase()+e.slice(1)}Ref`,spinnerItems:u,currentScrollbar:a,hours:c,minutes:d,seconds:p,hoursList:h,minutesList:v,arrowHourList:y,arrowMinuteList:b,arrowSecondList:_,getAmPmFlag:t=>{if(!e.amPmMode)return"";let n=t<12?" am":" pm";return"A"===e.amPmMode&&(n=n.toUpperCase()),n},emitSelectRange:x,adjustCurrentSpinner:w,typeItemHeight:E,listHoursRef:o,listMinutesRef:r,listSecondsRef:i,onIncreaseClick:()=>{M(1)},onDecreaseClick:()=>{M(-1)},handleClick:(e,{value:t,disabled:n})=>{n||(O(e,t),x(e),S(e,t))},secondsList:m,timePartsMap:f,arrowListMap:k,listMap:g}}});const gk={class:"el-time-spinner__arrow el-icon-arrow-up"},yk={class:"el-time-spinner__arrow el-icon-arrow-down"},bk={class:"el-time-spinner__list"};mk.render=function(e,t,n,l,a,o){const r=dl("el-scrollbar"),i=hl("repeat-click");return wl(),Sl("div",{class:["el-time-spinner",{"has-seconds":e.showSeconds}]},[e.arrowControl?Pl("v-if",!0):(wl(!0),Sl(gl,{key:0},pa(e.spinnerItems,(t=>(wl(),Sl(r,{key:t,ref:e.getRefId(t),class:"el-time-spinner__wrapper","wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list",noresize:"",tag:"ul",onMouseenter:n=>e.emitSelectRange(t),onMousemove:n=>e.adjustCurrentSpinner(t)},{default:Zt((()=>[(wl(!0),Sl(gl,null,pa(e.listMap[t].value,((n,l)=>(wl(),Sl("li",{key:l,class:["el-time-spinner__item",{active:l===e.timePartsMap[t].value,disabled:n}],onClick:a=>e.handleClick(t,{value:l,disabled:n})},["hours"===t?(wl(),Sl(gl,{key:0},[Al(c(("0"+(e.amPmMode?l%12||12:l)).slice(-2))+c(e.getAmPmFlag(l)),1)],2112)):(wl(),Sl(gl,{key:1},[Al(c(("0"+l).slice(-2)),1)],2112))],10,["onClick"])))),128))])),_:2},1032,["onMouseenter","onMousemove"])))),128)),e.arrowControl?(wl(!0),Sl(gl,{key:1},pa(e.spinnerItems,(t=>(wl(),Sl("div",{key:t,class:"el-time-spinner__wrapper is-arrow",onMouseenter:n=>e.emitSelectRange(t)},[Un(Ll("i",gk,null,512),[[i,e.onDecreaseClick]]),Un(Ll("i",yk,null,512),[[i,e.onIncreaseClick]]),Ll("ul",bk,[(wl(!0),Sl(gl,null,pa(e.arrowListMap[t].value,((n,l)=>(wl(),Sl("li",{key:l,class:["el-time-spinner__item",{active:n===e.timePartsMap[t].value,disabled:e.listMap[t].value[n]}]},c(void 0===n?"":("0"+(e.amPmMode?n%12||12:n)).slice(-2)+e.getAmPmFlag(n)),3)))),128))])],40,["onMouseenter"])))),128)):Pl("v-if",!0)],2)},mk.__file="packages/time-picker/src/time-picker-com/basic-time-spinner.vue";var _k=Qn({components:{TimeSpinner:mk},props:{visible:Boolean,actualVisible:{type:Boolean,default:void 0},datetimeRole:{type:String},parsedValue:{type:[Object,String]},format:{type:String,default:""}},emits:["pick","select-range","set-picker-option"],setup(e,t){const n=lt([0,2]),l=vk(e),a=ca((()=>void 0===e.actualVisible?"el-zoom-in-top":"")),o=ca((()=>e.format.includes("ss"))),r=ca((()=>e.format.includes("A")?"A":e.format.includes("a")?"a":"")),i=t=>{const n={hour:v,minute:m,second:g};let l=t;return["hour","minute","second"].forEach((t=>{if(n[t]){let a;const o=n[t];a="minute"===t?o(l.hour(),e.datetimeRole):"second"===t?o(l.hour(),l.minute(),e.datetimeRole):o(e.datetimeRole),a&&a.length&&!a.includes(l[t]())&&(l=l[t](a[0]))}})),l};t.emit("set-picker-option",["isValidValue",e=>{const t=Rc(e),n=i(t);return t.isSame(n)}]),t.emit("set-picker-option",["formatToString",t=>t?t.format(e.format):null]),t.emit("set-picker-option",["parseUserInput",t=>t?Rc(t,e.format):null]),t.emit("set-picker-option",["handleKeydown",e=>{const t=e.code;if(t===vb.left||t===vb.right)return(e=>{const t=[0,3].concat(o.value?[6]:[]),l=["hours","minutes"].concat(o.value?["seconds"]:[]),a=(t.indexOf(n.value[0])+e+t.length)%t.length;s.start_emitSelectRange(l[a])})(t===vb.left?-1:1),void e.preventDefault();if(t===vb.up||t===vb.down){const n=t===vb.up?-1:1;return s.start_scrollDown(n),void e.preventDefault()}}]),t.emit("set-picker-option",["getRangeAvaliableTime",i]),t.emit("set-picker-option",["getDefaultValue",()=>Rc(h)]);const s={},u=zl("EP_PICKER_BASE"),{arrowControl:c,disabledHours:d,disabledMinutes:p,disabledSeconds:f,defaultValue:h}=u.props,{getAvaliableHours:v,getAvaliableMinutes:m,getAvaliableSeconds:g}=hk(d,p,f);return{transitionName:a,arrowControl:c,onSetOption:e=>{s[e[0]]=e[1]},t:ak,handleConfirm:(n=!1,l)=>{l||t.emit("pick",e.parsedValue,n)},handleChange:n=>{if(!e.visible)return;const l=i(n).millisecond(0);t.emit("pick",l,!0)},setSelectionRange:(e,l)=>{t.emit("select-range",e,l),n.value=[e,l]},amPmMode:r,showSeconds:o,handleCancel:()=>{t.emit("pick",l.value,!1)},disabledHours:d,disabledMinutes:p,disabledSeconds:f}}});const kk={key:0,class:"el-time-panel"},xk={class:"el-time-panel__footer"};_k.render=function(e,t,n,l,a,o){const r=dl("time-spinner");return wl(),Sl(Ia,{name:e.transitionName},{default:Zt((()=>[e.actualVisible||e.visible?(wl(),Sl("div",kk,[Ll("div",{class:["el-time-panel__content",{"has-seconds":e.showSeconds}]},[Ll(r,{ref:"spinner",role:e.datetimeRole||"start","arrow-control":e.arrowControl,"show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,"spinner-date":e.parsedValue,"disabled-hours":e.disabledHours,"disabled-minutes":e.disabledMinutes,"disabled-seconds":e.disabledSeconds,onChange:e.handleChange,onSetOption:e.onSetOption,onSelectRange:e.setSelectionRange},null,8,["role","arrow-control","show-seconds","am-pm-mode","spinner-date","disabled-hours","disabled-minutes","disabled-seconds","onChange","onSetOption","onSelectRange"])],2),Ll("div",xk,[Ll("button",{type:"button",class:"el-time-panel__btn cancel",onClick:t[1]||(t[1]=(...t)=>e.handleCancel&&e.handleCancel(...t))},c(e.t("el.datepicker.cancel")),1),Ll("button",{type:"button",class:"el-time-panel__btn confirm",onClick:t[2]||(t[2]=t=>e.handleConfirm())},c(e.t("el.datepicker.confirm")),1)])])):Pl("v-if",!0)])),_:1},8,["name"])},_k.__file="packages/time-picker/src/time-picker-com/panel-time-pick.vue";const wk=(e,t)=>{const n=[];for(let l=e;l<=t;l++)n.push(l);return n};var Ck=Qn({components:{TimeSpinner:mk},props:{visible:Boolean,actualVisible:Boolean,parsedValue:{type:[Array,String]},format:{type:String,default:""}},emits:["pick","select-range","set-picker-option"],setup(e,t){const n=ca((()=>e.parsedValue[0])),l=ca((()=>e.parsedValue[1])),a=vk(e),o=ca((()=>e.format.includes("ss"))),r=ca((()=>e.format.includes("A")?"A":e.format.includes("a")?"a":"")),i=lt([]),s=lt([]),u=(e,n)=>{t.emit("pick",[e,n],!0)},c=ca((()=>n.value>l.value)),d=lt([0,2]),p=ca((()=>o.value?11:8)),f=(e,t)=>{const a=C?C(e):[],o="start"===e,r=(t||(o?l.value:n.value)).hour(),i=o?wk(r+1,23):wk(0,r-1);return xf(a,i)},h=(e,t,a)=>{const o=S?S(e,t):[],r="start"===t,i=a||(r?l.value:n.value);if(e!==i.hour())return o;const s=i.minute(),u=r?wk(s+1,59):wk(0,s-1);return xf(o,u)},v=(e,t,a,o)=>{const r=E?E(e,t,a):[],i="start"===a,s=o||(i?l.value:n.value),u=s.hour(),c=s.minute();if(e!==u||t!==c)return r;const d=s.second(),p=i?wk(d+1,59):wk(0,d-1);return xf(r,p)},m=e=>e.map(((t,n)=>_(e[0],e[1],0===n?"start":"end"))),{getAvaliableHours:g,getAvaliableMinutes:y,getAvaliableSeconds:b}=hk(f,h,v),_=(e,t,n)=>{const l={hour:g,minute:y,second:b},a="start"===n;let o=a?e:t;const r=a?t:e;return["hour","minute","second"].forEach((e=>{if(l[e]){let t;const i=l[e];if(t="minute"===e?i(o.hour(),n,r):"second"===e?i(o.hour(),o.minute(),n,r):i(n,r),t&&t.length&&!t.includes(o[e]())){const n=a?0:t.length-1;o=o[e](t[n])}}})),o};t.emit("set-picker-option",["formatToString",t=>t?Array.isArray(t)?t.map((t=>t.format(e.format))):t.format(e.format):null]),t.emit("set-picker-option",["parseUserInput",t=>t?Array.isArray(t)?t.map((t=>Rc(t,e.format))):Rc(t,e.format):null]),t.emit("set-picker-option",["isValidValue",e=>{const t=e.map((e=>Rc(e))),n=m(t);return t[0].isSame(n[0])&&t[1].isSame(n[1])}]),t.emit("set-picker-option",["handleKeydown",e=>{const t=e.code;if(t===vb.left||t===vb.right)return(e=>{const t=o.value?[0,3,6,11,14,17]:[0,3,8,11],n=["hours","minutes"].concat(o.value?["seconds"]:[]),l=(t.indexOf(d.value[0])+e+t.length)%t.length,a=t.length/2;l<a?k.start_emitSelectRange(n[l]):k.end_emitSelectRange(n[l-a])})(t===vb.left?-1:1),void e.preventDefault();if(t===vb.up||t===vb.down){const n=t===vb.up?-1:1,l=d.value[0]<p.value?"start":"end";return k[l+"_scrollDown"](n),void e.preventDefault()}}]),t.emit("set-picker-option",["getDefaultValue",()=>Array.isArray(M)?M.map((e=>Rc(e))):[Rc(M),Rc(M).add(60,"m")]]),t.emit("set-picker-option",["getRangeAvaliableTime",m]);const k={},x=zl("EP_PICKER_BASE"),{arrowControl:w,disabledHours:C,disabledMinutes:S,disabledSeconds:E,defaultValue:M}=x.props;return{arrowControl:w,onSetOption:e=>{k[e[0]]=e[1]},setMaxSelectionRange:(e,n)=>{t.emit("select-range",e,n,"max"),d.value=[e+p.value,n+p.value]},setMinSelectionRange:(e,n)=>{t.emit("select-range",e,n,"min"),d.value=[e,n]},btnConfirmDisabled:c,handleCancel:()=>{t.emit("pick",a.value,null)},handleConfirm:(e=!1)=>{t.emit("pick",[n.value,l.value],e)},t:ak,showSeconds:o,minDate:n,maxDate:l,amPmMode:r,handleMinChange:e=>{u(e.millisecond(0),l.value)},handleMaxChange:e=>{u(n.value,e.millisecond(0))},minSelectableRange:i,maxSelectableRange:s,disabledHours_:f,disabledMinutes_:h,disabledSeconds_:v}}});const Sk={key:0,class:"el-time-range-picker el-picker-panel"},Ek={class:"el-time-range-picker__content"},Mk={class:"el-time-range-picker__cell"},Ok={class:"el-time-range-picker__header"},Tk={class:"el-time-range-picker__cell"},Dk={class:"el-time-range-picker__header"},Lk={class:"el-time-panel__footer"};Ck.render=function(e,t,n,l,a,o){const r=dl("time-spinner");return e.actualVisible?(wl(),Sl("div",Sk,[Ll("div",Ek,[Ll("div",Mk,[Ll("div",Ok,c(e.t("el.datepicker.startTime")),1),Ll("div",{class:[{"has-seconds":e.showSeconds,"is-arrow":e.arrowControl},"el-time-range-picker__body el-time-panel__content"]},[Ll(r,{ref:"minSpinner",role:"start","show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,"arrow-control":e.arrowControl,"spinner-date":e.minDate,"disabled-hours":e.disabledHours_,"disabled-minutes":e.disabledMinutes_,"disabled-seconds":e.disabledSeconds_,onChange:e.handleMinChange,onSetOption:e.onSetOption,onSelectRange:e.setMinSelectionRange},null,8,["show-seconds","am-pm-mode","arrow-control","spinner-date","disabled-hours","disabled-minutes","disabled-seconds","onChange","onSetOption","onSelectRange"])],2)]),Ll("div",Tk,[Ll("div",Dk,c(e.t("el.datepicker.endTime")),1),Ll("div",{class:[{"has-seconds":e.showSeconds,"is-arrow":e.arrowControl},"el-time-range-picker__body el-time-panel__content"]},[Ll(r,{ref:"maxSpinner",role:"end","show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,"arrow-control":e.arrowControl,"spinner-date":e.maxDate,"disabled-hours":e.disabledHours_,"disabled-minutes":e.disabledMinutes_,"disabled-seconds":e.disabledSeconds_,onChange:e.handleMaxChange,onSetOption:e.onSetOption,onSelectRange:e.setMaxSelectionRange},null,8,["show-seconds","am-pm-mode","arrow-control","spinner-date","disabled-hours","disabled-minutes","disabled-seconds","onChange","onSetOption","onSelectRange"])],2)])]),Ll("div",Lk,[Ll("button",{type:"button",class:"el-time-panel__btn cancel",onClick:t[1]||(t[1]=t=>e.handleCancel())},c(e.t("el.datepicker.cancel")),1),Ll("button",{type:"button",class:"el-time-panel__btn confirm",disabled:e.btnConfirmDisabled,onClick:t[2]||(t[2]=t=>e.handleConfirm())},c(e.t("el.datepicker.confirm")),9,["disabled"])])])):Pl("v-if",!0)},Ck.__file="packages/time-picker/src/time-picker-com/panel-time-range.vue",Rc.extend(qc);var Nk=Qn({name:"ElTimePicker",install:null,props:Object.assign(Object.assign({},rk),{isRange:{type:Boolean,default:!1}}),emits:["update:modelValue"],setup(e,t){const n=lt(null),l=e.isRange?"timerange":"time",a=e.isRange?Ck:_k,o=Object.assign(Object.assign({},e),{focus:()=>{var e;null===(e=n.value)||void 0===e||e.handleFocus()}});return $l("ElPopperOptions",e.popperOptions),t.expose(o),()=>da(uk,Object.assign(Object.assign({format:"HH:mm:ss"},e),{type:l,ref:n,"onUpdate:modelValue":e=>t.emit("update:modelValue",e)}),{default:e=>da(a,e)})}});const Ak=e=>Array.from(Array(e).keys()),Pk=e=>e.replace(/\W?m{1,2}|\W?ZZ/g,"").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi,"").trim(),Ik=e=>e.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?Y{2,4}/g,"").trim(),Fk=Nk;Fk.install=e=>{e.component(Fk.name,Fk)},Rc.extend(Wc);var Vk=Qn({props:{selectedDay:{type:Object},range:{type:Array},date:{type:Object},hideHeader:{type:Boolean}},emits:["pick"],setup(e,t){const n=lt(Rc().localeData().weekdaysShort()),l=Rc(),a=l.$locale().weekStart||0,o=(t,n)=>{let l;return l="prev"===n?e.date.startOf("month").subtract(1,"month").date(t):"next"===n?e.date.startOf("month").add(1,"month").date(t):e.date.date(t),l},r=ca((()=>e.range&&e.range.length)),i=ca((()=>{let t=[];if(r.value){const[n,l]=e.range,a=Ak(l.date()-n.date()+1).map(((e,t)=>({text:n.date()+t,type:"current"})));let o=a.length%7;o=0===o?0:7-o;const r=Ak(o).map(((e,t)=>({text:t+1,type:"next"})));t=a.concat(r)}else{const n=e.date.startOf("month").day()||7;t=[...((e,t)=>{const n=e.subtract(1,"month").endOf("month").date();return Ak(t).map(((e,l)=>n-(t-l-1)))})(e.date,n-a).map((e=>({text:e,type:"prev"}))),...(e=>{const t=e.daysInMonth();return Ak(t).map(((e,t)=>t+1))})(e.date).map((e=>({text:e,type:"current"})))];const l=Ak(42-t.length).map(((e,t)=>({text:t+1,type:"next"})));t=t.concat(l)}return Ak((n=t).length/7).map(((e,t)=>{const l=7*t;return n.slice(l,l+7)}));var n})),s=ca((()=>{const e=a;return 0===e?n.value:n.value.slice(e).concat(n.value.slice(0,e))}));return{isInRange:r,weekDays:s,rows:i,getCellClass:({text:t,type:n})=>{const a=[n];if("current"===n){const r=o(t,n);r.isSame(e.selectedDay,"day")&&a.push("is-selected"),r.isSame(l,"day")&&a.push("is-today")}return a},pickDay:({text:e,type:n})=>{const l=o(e,n);t.emit("pick",l)},getSlotData:({text:t,type:n})=>{const l=o(t,n);return{isSelected:l.isSame(e.selectedDay),type:n+"-month",day:l.format("YYYY-MM-DD"),date:l.toDate()}}}}});const Bk={key:0},$k={class:"el-calendar-day"};Vk.render=function(e,t,n,l,a,o){return wl(),Sl("table",{class:{"el-calendar-table":!0,"is-range":e.isInRange},cellspacing:"0",cellpadding:"0"},[e.hideHeader?Pl("v-if",!0):(wl(),Sl("thead",Bk,[(wl(!0),Sl(gl,null,pa(e.weekDays,(e=>(wl(),Sl("th",{key:e},c(e),1)))),128))])),Ll("tbody",null,[(wl(!0),Sl(gl,null,pa(e.rows,((t,n)=>(wl(),Sl("tr",{key:n,class:{"el-calendar-table__row":!0,"el-calendar-table__row--hide-border":0===n&&e.hideHeader}},[(wl(!0),Sl(gl,null,pa(t,((t,n)=>(wl(),Sl("td",{key:n,class:e.getCellClass(t),onClick:n=>e.pickDay(t)},[Ll("div",$k,[Ht(e.$slots,"dateCell",{data:e.getSlotData(t)},(()=>[Ll("span",null,c(t.text),1)]))])],10,["onClick"])))),128))],2)))),128))])],2)},Vk.__file="packages/calendar/src/date-table.vue";var zk=Qn({name:"ElCalendar",components:{DateTable:Vk,ElButton:Z_,ElButtonGroup:ek},props:{modelValue:{type:Date},range:{type:Array,validator:e=>!!Array.isArray(e)&&2===e.length&&e.every((e=>e instanceof Date))}},emits:["input","update:modelValue"],setup(e,t){const n=lt(null),l=Rc(),a=ca((()=>u.value.subtract(1,"month"))),o=ca((()=>Rc(u.value).format("YYYY-MM"))),r=ca((()=>u.value.add(1,"month"))),i=ca((()=>{const e="el.datepicker.month"+u.value.format("M");return`${u.value.year()} ${ak("el.datepicker.year")} ${ak(e)}`})),s=ca({get:()=>e.modelValue?u.value:n.value,set(e){n.value=e;const l=e.toDate();t.emit("input",l),t.emit("update:modelValue",l)}}),u=ca((()=>e.modelValue?Rc(e.modelValue):s.value?s.value:c.value.length?c.value[0][0]:l)),c=ca((()=>{if(!e.range)return[];const t=e.range.map((e=>Rc(e))),[n,l]=t;if(n.isAfter(l))return console.warn("[ElementCalendar]end time should be greater than start time"),[];if(n.isSame(l,"month"))return[[n.startOf("week"),l.endOf("week")]];{if(n.add(1,"month").month()!==l.month())return console.warn("[ElementCalendar]start time and end time interval must not exceed two months"),[];const e=l.startOf("month"),t=e.startOf("week");let a=e;return e.isSame(t,"month")||(a=e.endOf("week").add(1,"day")),[[n.startOf("week"),n.endOf("month")],[a,l.endOf("week")]]}})),d=e=>{s.value=e};return{selectedDay:n,curMonthDatePrefix:o,i18nDate:i,realSelectedDay:s,date:u,validatedRange:c,pickDay:d,selectDate:e=>{let t;t="prev-month"===e?a.value:"next-month"===e?r.value:l,t.isSame(u.value,"day")||d(t)},t:ak}}});const jk={class:"el-calendar"},Rk={class:"el-calendar__header"},Hk={class:"el-calendar__title"},Wk={key:0,class:"el-calendar__button-group"},Yk={key:0,class:"el-calendar__body"},qk={key:1,class:"el-calendar__body"};zk.render=function(e,t,n,l,a,o){const r=dl("el-button"),i=dl("el-button-group"),s=dl("date-table");return wl(),Sl("div",jk,[Ll("div",Rk,[Ll("div",Hk,c(e.i18nDate),1),0===e.validatedRange.length?(wl(),Sl("div",Wk,[Ll(i,null,{default:Zt((()=>[Ll(r,{size:"mini",onClick:t[1]||(t[1]=t=>e.selectDate("prev-month"))},{default:Zt((()=>[Al(c(e.t("el.datepicker.prevMonth")),1)])),_:1}),Ll(r,{size:"mini",onClick:t[2]||(t[2]=t=>e.selectDate("today"))},{default:Zt((()=>[Al(c(e.t("el.datepicker.today")),1)])),_:1}),Ll(r,{size:"mini",onClick:t[3]||(t[3]=t=>e.selectDate("next-month"))},{default:Zt((()=>[Al(c(e.t("el.datepicker.nextMonth")),1)])),_:1})])),_:1})])):Pl("v-if",!0)]),0===e.validatedRange.length?(wl(),Sl("div",Yk,[Ll(s,{date:e.date,"selected-day":e.realSelectedDay,onPick:e.pickDay},ha({_:2},[e.$slots.dateCell?{name:"dateCell",fn:Zt((t=>[Ht(e.$slots,"dateCell",t)]))}:void 0]),1032,["date","selected-day","onPick"])])):(wl(),Sl("div",qk,[(wl(!0),Sl(gl,null,pa(e.validatedRange,((t,n)=>(wl(),Sl(s,{key:n,date:t[0],"selected-day":e.realSelectedDay,range:t,"hide-header":0!==n,onPick:e.pickDay},ha({_:2},[e.$slots.dateCell?{name:"dateCell",fn:Zt((t=>[Ht(e.$slots,"dateCell",t)]))}:void 0]),1032,["date","selected-day","range","hide-header","onPick"])))),128))]))])},zk.__file="packages/calendar/src/index.vue",zk.install=e=>{e.component(zk.name,zk)};const Kk=zk;var Uk=Qn({name:"ElCard",props:{header:{type:String,default:""},bodyStyle:{type:[String,Object,Array],default:""},shadow:{type:String,default:""}}});const Gk={key:0,class:"el-card__header"};Uk.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-card",e.shadow?"is-"+e.shadow+"-shadow":"is-always-shadow"]},[e.$slots.header||e.header?(wl(),Sl("div",Gk,[Ht(e.$slots,"header",{},(()=>[Al(c(e.header),1)]))])):Pl("v-if",!0),Ll("div",{class:"el-card__body",style:e.bodyStyle},[Ht(e.$slots,"default")],4)],2)},Uk.__file="packages/card/src/index.vue",Uk.install=e=>{e.component(Uk.name,Uk)};const Xk=Uk;var Zk=Qn({name:"ElCarousel",props:{initialIndex:{type:Number,default:0},height:{type:String,default:""},trigger:{type:String,default:"hover"},autoplay:{type:Boolean,default:!0},interval:{type:Number,default:3e3},indicatorPosition:{type:String,default:""},indicator:{type:Boolean,default:!0},arrow:{type:String,default:"hover"},type:{type:String,default:""},loop:{type:Boolean,default:!0},direction:{type:String,default:"horizontal",validator:e=>["horizontal","vertical"].includes(e)},pauseOnHover:{type:Boolean,default:!0}},emits:["change"],setup(e,{emit:t}){const n=Ue({activeIndex:-1,containerWidth:0,timer:null,hover:!1}),l=lt(null),a=lt([]),o=lt(0),r=lt(0),i=ca((()=>"never"!==e.arrow&&"vertical"!==e.direction)),s=ca((()=>a.value.some((e=>e.label.toString().length>0)))),u=ca((()=>{const t=["el-carousel","el-carousel--"+e.direction];return"card"===e.type&&t.push("el-carousel--card"),t})),c=ca((()=>{const t=["el-carousel__indicators","el-carousel__indicators--"+e.direction];return s.value&&t.push("el-carousel__indicators--labels"),"outside"!==e.indicatorPosition&&"card"!==e.type||t.push("el-carousel__indicators--outside"),t})),d=zc((e=>{m(e)}),300,{trailing:!0}),p=zc((t=>{var l;l=t,"hover"===e.trigger&&l!==n.activeIndex&&(n.activeIndex=l)}),300);function f(){n.timer&&(clearInterval(n.timer),n.timer=null)}function h(){e.interval<=0||!e.autoplay||n.timer||(n.timer=setInterval((()=>v()),e.interval))}const v=()=>{n.activeIndex<a.value.length-1?n.activeIndex=n.activeIndex+1:e.loop&&(n.activeIndex=0)};function m(t){if("string"==typeof t){const e=a.value.filter((e=>e.name===t));e.length>0&&(t=a.value.indexOf(e[0]))}if(t=Number(t),isNaN(t)||t!==Math.floor(t))return void console.warn("[Element Warn][Carousel]index must be an integer.");let l=a.value.length;const o=n.activeIndex;n.activeIndex=t<0?e.loop?l-1:0:t>=l?e.loop?0:l-1:t,o===n.activeIndex&&g(o)}function g(e){a.value.forEach(((t,l)=>{t.translateItem(l,n.activeIndex,e)}))}function y(){m(n.activeIndex+1)}return Sn((()=>n.activeIndex),((e,n)=>{g(n),n>-1&&t("change",e,n)})),Sn((()=>e.autoplay),(e=>{e?h():f()})),Sn((()=>e.loop),(()=>{m(n.activeIndex)})),mn((()=>{Dt((()=>{Zy(l.value,g),l.value&&(o.value=l.value.offsetWidth,r.value=l.value.offsetHeight),e.initialIndex<a.value.length&&e.initialIndex>=0&&(n.activeIndex=e.initialIndex),h()}))})),bn((()=>{l.value&&Jy(l.value,g),f()})),$l("injectCarouselScope",{direction:e.direction,offsetWidth:o,offsetHeight:r,type:e.type,items:a,loop:e.loop,addItem:function(e){a.value.push(e)},removeItem:function(e){const t=a.value.findIndex((t=>t.uid===e));-1!==t&&(a.value.splice(t,1),n.activeIndex===t&&y())},setActiveItem:m}),{data:n,props:e,items:a,arrowDisplay:i,carouselClasses:u,indicatorsClasses:c,hasLabel:s,handleMouseEnter:function(){n.hover=!0,e.pauseOnHover&&f()},handleMouseLeave:function(){n.hover=!1,h()},handleIndicatorClick:function(e){n.activeIndex=e},throttledArrowClick:d,throttledIndicatorHover:p,handleButtonEnter:function(t){"vertical"!==e.direction&&a.value.forEach(((e,n)=>{t===function(e,t){const n=a.value.length;return t===n-1&&e.inStage&&a.value[0].active||e.inStage&&a.value[t+1]&&a.value[t+1].active?"left":!!(0===t&&e.inStage&&a.value[n-1].active||e.inStage&&a.value[t-1]&&a.value[t-1].active)&&"right"}(e,n)&&(e.hover=!0)}))},handleButtonLeave:function(){"vertical"!==e.direction&&a.value.forEach((e=>{e.hover=!1}))},prev:function(){m(n.activeIndex-1)},next:y,setActiveItem:m,root:l}}});const Jk=Ll("i",{class:"el-icon-arrow-left"},null,-1),Qk=Ll("i",{class:"el-icon-arrow-right"},null,-1),ex={class:"el-carousel__button"},tx={key:0};Zk.render=function(e,t,n,l,a,o){return wl(),Sl("div",{ref:"root",class:e.carouselClasses,onMouseenter:t[7]||(t[7]=fo(((...t)=>e.handleMouseEnter&&e.handleMouseEnter(...t)),["stop"])),onMouseleave:t[8]||(t[8]=fo(((...t)=>e.handleMouseLeave&&e.handleMouseLeave(...t)),["stop"]))},[Ll("div",{class:"el-carousel__container",style:{height:e.height}},[e.arrowDisplay?(wl(),Sl(Ia,{key:0,name:"carousel-arrow-left"},{default:Zt((()=>[Un(Ll("button",{type:"button",class:"el-carousel__arrow el-carousel__arrow--left",onMouseenter:t[1]||(t[1]=t=>e.handleButtonEnter("left")),onMouseleave:t[2]||(t[2]=(...t)=>e.handleButtonLeave&&e.handleButtonLeave(...t)),onClick:t[3]||(t[3]=fo((t=>e.throttledArrowClick(e.data.activeIndex-1)),["stop"]))},[Jk],544),[[mo,("always"===e.arrow||e.data.hover)&&(e.props.loop||e.data.activeIndex>0)]])])),_:1})):Pl("v-if",!0),e.arrowDisplay?(wl(),Sl(Ia,{key:1,name:"carousel-arrow-right"},{default:Zt((()=>[Un(Ll("button",{type:"button",class:"el-carousel__arrow el-carousel__arrow--right",onMouseenter:t[4]||(t[4]=t=>e.handleButtonEnter("right")),onMouseleave:t[5]||(t[5]=(...t)=>e.handleButtonLeave&&e.handleButtonLeave(...t)),onClick:t[6]||(t[6]=fo((t=>e.throttledArrowClick(e.data.activeIndex+1)),["stop"]))},[Qk],544),[[mo,("always"===e.arrow||e.data.hover)&&(e.props.loop||e.data.activeIndex<e.items.length-1)]])])),_:1})):Pl("v-if",!0),Ht(e.$slots,"default")],4),"none"!==e.indicatorPosition?(wl(),Sl("ul",{key:0,class:e.indicatorsClasses},[(wl(!0),Sl(gl,null,pa(e.items,((t,n)=>(wl(),Sl("li",{key:n,class:["el-carousel__indicator","el-carousel__indicator--"+e.direction,{"is-active":n===e.data.activeIndex}],onMouseenter:t=>e.throttledIndicatorHover(n),onClick:fo((t=>e.handleIndicatorClick(n)),["stop"])},[Ll("button",ex,[e.hasLabel?(wl(),Sl("span",tx,c(t.label),1)):Pl("v-if",!0)])],42,["onMouseenter","onClick"])))),128))],2)):Pl("v-if",!0)],34)},Zk.__file="packages/carousel/src/main.vue",Zk.install=e=>{e.component(Zk.name,Zk)};const nx=Zk;var lx=Qn({name:"ElCarouselItem",props:{name:{type:String,default:""},label:{type:[String,Number],default:""}},setup(e){const t=na();t.uid;const n=Ue({hover:!1,translate:0,scale:1,active:!1,ready:!1,inStage:!1,animating:!1}),l=zl("injectCarouselScope"),a=ca((()=>l.direction)),o=ca((()=>function(e){const t=["ms-","webkit-"];return["transform","transition","animation"].forEach((n=>{const l=e[n];n&&l&&t.forEach((t=>{e[t+n]=l}))})),e}({transform:`${"vertical"===a.value?"translateY":"translateX"}(${n.translate}px) scale(${n.scale})`}))),r=(e,t,o)=>{const r=l.type,i=l.items.value.length;if("card"!==r&&void 0!==o&&(n.animating=e===t||e===o),e!==t&&i>2&&l.loop&&(s=e,c=i,e=0===(u=t)&&s===c-1?-1:u===c-1&&0===s?c:s<u-1&&u-s>=c/2?c+1:s>u+1&&s-u>=c/2?-2:s),"card"===r)"vertical"===a.value&&console.warn("[Element Warn][Carousel]vertical direction is not supported in card mode"),n.inStage=Math.round(Math.abs(e-t))<=1,n.active=e===t,n.translate=function(e,t){const a=l.offsetWidth.value;return n.inStage?a*(1.17*(e-t)+1)/4:e<t?-1.83*a/4:3.83*a/4}(e,t),n.scale=n.active?1:.83;else{n.active=e===t;const o="vertical"===a.value;n.translate=function(e,t,n){return l[n?"offsetHeight":"offsetWidth"].value*(e-t)}(e,t,o)}var s,u,c;n.ready=!0};return mn((()=>{l.addItem&&l.addItem(Object.assign(Object.assign(Object.assign({uid:t.uid},e),ct(n)),{translateItem:r}))})),_n((()=>{l.removeItem&&l.removeItem(t.uid)})),{data:n,itemStyle:o,translateItem:r,type:l.type,handleItemClick:function(){if(l&&"card"===l.type){const e=l.items.value.map((e=>e.uid)).indexOf(t.uid);l.setActiveItem(e)}}}}});const ax={key:0,class:"el-carousel__mask"};lx.render=function(e,t,n,l,a,o){return Un((wl(),Sl("div",{class:["el-carousel__item",{"is-active":e.data.active,"el-carousel__item--card":"card"===e.type,"is-in-stage":e.data.inStage,"is-hover":e.data.hover,"is-animating":e.data.animating}],style:e.itemStyle,onClick:t[1]||(t[1]=(...t)=>e.handleItemClick&&e.handleItemClick(...t))},["card"===e.type?Un((wl(),Sl("div",ax,null,512)),[[mo,!e.data.active]]):Pl("v-if",!0),Ht(e.$slots,"default")],6)),[[mo,e.data.ready]])},lx.__file="packages/carousel/src/item.vue",lx.install=e=>{e.component(lx.name,lx)};const ox=lx,rx=()=>{const e=Ay(),t=zl("elForm",{}),n=zl("elFormItem",{}),l=zl("CheckboxGroup",{}),a=ca((()=>l&&"ElCheckboxGroup"===(null==l?void 0:l.name))),o=ca((()=>n.size));return{isGroup:a,checkboxGroup:l,elForm:t,ELEMENT:e,elFormItemSize:o,elFormItem:n}},ix=e=>{const{model:t,isLimitExceeded:n}=(e=>{let t=!1;const{emit:n}=na(),{isGroup:l,checkboxGroup:a}=rx(),o=lt(!1),r=ca((()=>{var t;return a?null===(t=a.modelValue)||void 0===t?void 0:t.value:e.modelValue}));return{model:ca({get(){var n;return l.value?r.value:null!==(n=e.modelValue)&&void 0!==n?n:t},set(e){var r;l.value&&Array.isArray(e)?(o.value=!1,void 0!==a.min&&e.length<a.min.value&&(o.value=!0),void 0!==a.max&&e.length>a.max.value&&(o.value=!0),!1===o.value&&(null===(r=null==a?void 0:a.changeEvent)||void 0===r||r.call(a,e))):(n(Nb,e),t=e)}}),isLimitExceeded:o}})(e),{focus:l,size:a,isChecked:o,checkboxSize:r}=((e,{model:t})=>{const{isGroup:n,checkboxGroup:l,elFormItemSize:a,ELEMENT:o}=rx(),r=lt(!1),i=ca((()=>{var e;return(null===(e=null==l?void 0:l.checkboxGroupSize)||void 0===e?void 0:e.value)||a.value||o.size}));return{isChecked:ca((()=>{const n=t.value;return"[object Boolean]"===my(n)?n:Array.isArray(n)?n.includes(e.label):null!=n?n===e.trueLabel:void 0})),focus:r,size:i,checkboxSize:ca((()=>{var t;const r=e.size||a.value||o.size;return n.value&&(null===(t=null==l?void 0:l.checkboxGroupSize)||void 0===t?void 0:t.value)||r}))}})(e,{model:t}),{isDisabled:i}=((e,{model:t,isChecked:n})=>{const{elForm:l,isGroup:a,checkboxGroup:o}=rx(),r=ca((()=>{var e,l;const a=null===(e=o.max)||void 0===e?void 0:e.value,r=null===(l=o.min)||void 0===l?void 0:l.value;return!(!a&&!r)&&t.value.length>=a&&!n.value||t.value.length<=r&&n.value}));return{isDisabled:ca((()=>{var t;const n=e.disabled||l.disabled;return a.value?(null===(t=o.disabled)||void 0===t?void 0:t.value)||n||r.value:e.disabled||l.disabled})),isLimitDisabled:r}})(e,{model:t,isChecked:o}),{handleChange:s}=((e,{isLimitExceeded:t})=>{const{elFormItem:n}=rx(),{emit:l}=na();return Sn((()=>e.modelValue),(e=>{var t;null===(t=n.formItemMitt)||void 0===t||t.emit("el.form.change",[e])})),{handleChange:function(n){var a,o;if(t.value)return;const r=n.target.checked?null===(a=e.trueLabel)||void 0===a||a:null!==(o=e.falseLabel)&&void 0!==o&&o;l("change",r,n)}}})(e,{isLimitExceeded:n});return((e,{model:t})=>{e.checked&&(Array.isArray(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0)})(e,{model:t}),{isChecked:o,isDisabled:i,checkboxSize:r,model:t,handleChange:s,focus:l,size:a}};var sx=Qn({name:"ElCheckbox",props:{modelValue:{type:[Boolean,Number,String],default:()=>{}},label:{type:[Boolean,Number,String]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:{type:String,validator:Ib}},emits:[Nb,"change"],setup:e=>ix(e)});const ux=Ll("span",{class:"el-checkbox__inner"},null,-1),cx={key:0,class:"el-checkbox__label"};sx.render=function(e,t,n,l,a,o){return wl(),Sl("label",{id:e.id,class:["el-checkbox",[e.border&&e.checkboxSize?"el-checkbox--"+e.checkboxSize:"",{"is-disabled":e.isDisabled},{"is-bordered":e.border},{"is-checked":e.isChecked}]],"aria-controls":e.indeterminate?e.controls:null},[Ll("span",{class:["el-checkbox__input",{"is-disabled":e.isDisabled,"is-checked":e.isChecked,"is-indeterminate":e.indeterminate,"is-focus":e.focus}],tabindex:!!e.indeterminate&&0,role:!!e.indeterminate&&"checkbox","aria-checked":!!e.indeterminate&&"mixed"},[ux,e.trueLabel||e.falseLabel?Un((wl(),Sl("input",{key:0,"onUpdate:modelValue":t[1]||(t[1]=t=>e.model=t),checked:e.isChecked,class:"el-checkbox__original",type:"checkbox","aria-hidden":e.indeterminate?"true":"false",name:e.name,disabled:e.isDisabled,"true-value":e.trueLabel,"false-value":e.falseLabel,onChange:t[2]||(t[2]=(...t)=>e.handleChange&&e.handleChange(...t)),onFocus:t[3]||(t[3]=t=>e.focus=!0),onBlur:t[4]||(t[4]=t=>e.focus=!1)},null,40,["checked","aria-hidden","name","disabled","true-value","false-value"])),[[oo,e.model]]):Un((wl(),Sl("input",{key:1,"onUpdate:modelValue":t[5]||(t[5]=t=>e.model=t),class:"el-checkbox__original",type:"checkbox","aria-hidden":e.indeterminate?"true":"false",disabled:e.isDisabled,value:e.label,name:e.name,onChange:t[6]||(t[6]=(...t)=>e.handleChange&&e.handleChange(...t)),onFocus:t[7]||(t[7]=t=>e.focus=!0),onBlur:t[8]||(t[8]=t=>e.focus=!1)},null,40,["aria-hidden","disabled","value","name"])),[[oo,e.model]])],10,["tabindex","role","aria-checked"]),e.$slots.default||e.label?(wl(),Sl("span",cx,[Ht(e.$slots,"default"),e.$slots.default?Pl("v-if",!0):(wl(),Sl(gl,{key:0},[Al(c(e.label),1)],2112))])):Pl("v-if",!0)],10,["id","aria-controls"])},sx.__file="packages/checkbox/src/checkbox.vue",sx.install=e=>{e.component(sx.name,sx)};const dx=sx,px=()=>{const e=Ay(),t=zl("elForm",{}),n=zl("elFormItem",{}),l=zl("RadioGroup",{}),a=lt(!1),o=ca((()=>"ElRadioGroup"===(null==l?void 0:l.name))),r=ca((()=>n.size||e.size));return{isGroup:o,focus:a,radioGroup:l,elForm:t,ELEMENT:e,elFormItemSize:r}},fx=(e,{isGroup:t,radioGroup:n,elForm:l,model:a})=>{const o=ca((()=>t.value?n.disabled||e.disabled||l.disabled:e.disabled||l.disabled)),r=ca((()=>o.value||t.value&&a.value!==e.label?-1:0));return{isDisabled:o,tabIndex:r}};var hx=Qn({name:"ElRadio",componentName:"ElRadio",props:{modelValue:{type:[String,Number,Boolean],default:""},label:{type:[String,Number,Boolean],default:""},disabled:Boolean,name:{type:String,default:""},border:Boolean,size:{type:String,validator:Ib}},emits:[Nb,"change"],setup(e,t){const{isGroup:n,radioGroup:l,elFormItemSize:a,ELEMENT:o,focus:r,elForm:i}=px(),s=lt(),u=ca({get:()=>n.value?l.modelValue:e.modelValue,set(a){n.value?l.changeEvent(a):t.emit(Nb,a),s.value.checked=e.modelValue===e.label}}),{tabIndex:c,isDisabled:d}=fx(e,{isGroup:n,radioGroup:l,elForm:i,model:u}),p=ca((()=>{const t=e.size||a.value||o.size;return n.value&&l.radioGroupSize||t}));return{focus:r,isGroup:n,isDisabled:d,model:u,tabIndex:c,radioSize:p,handleChange:function(){Dt((()=>{t.emit("change",u.value)}))},radioRef:s}}});const vx=Ll("span",{class:"el-radio__inner"},null,-1);hx.render=function(e,t,n,l,a,o){return wl(),Sl("label",{class:["el-radio",{["el-radio--"+(e.radioSize||"")]:e.border&&e.radioSize,"is-disabled":e.isDisabled,"is-focus":e.focus,"is-bordered":e.border,"is-checked":e.model===e.label}],role:"radio","aria-checked":e.model===e.label,"aria-disabled":e.isDisabled,tabindex:e.tabIndex,onKeydown:t[6]||(t[6]=vo(fo((t=>e.model=e.isDisabled?e.model:e.label),["stop","prevent"]),["space"]))},[Ll("span",{class:["el-radio__input",{"is-disabled":e.isDisabled,"is-checked":e.model===e.label}]},[vx,Un(Ll("input",{ref:"radioRef","onUpdate:modelValue":t[1]||(t[1]=t=>e.model=t),class:"el-radio__original",value:e.label,type:"radio","aria-hidden":"true",name:e.name,disabled:e.isDisabled,tabindex:"-1",onFocus:t[2]||(t[2]=t=>e.focus=!0),onBlur:t[3]||(t[3]=t=>e.focus=!1),onChange:t[4]||(t[4]=(...t)=>e.handleChange&&e.handleChange(...t))},null,40,["value","name","disabled"]),[[io,e.model]])],2),Ll("span",{class:"el-radio__label",onKeydown:t[5]||(t[5]=fo((()=>{}),["stop"]))},[Ht(e.$slots,"default",{},(()=>[Al(c(e.label),1)]))],32)],42,["aria-checked","aria-disabled","tabindex"])},hx.__file="packages/radio/src/radio.vue",hx.install=e=>{e.component(hx.name,hx)};const mx=hx;var gx;!function(e){e.CLICK="click",e.HOVER="hover"}(gx||(gx={}));const yx=Symbol();var bx=Qn({name:"ElCascaderNode",components:{ElCheckbox:dx,ElRadio:mx,NodeContent:{render(){const{node:e,panel:t}=this.$parent,{data:n,label:l}=e,{renderLabelFn:a}=t;return da("span",{class:"el-cascader-node__label"},a?a({node:e,data:n}):l)}}},props:{node:{type:Object,required:!0},menuId:String},emits:["expand"],setup(e,{emit:t}){const n=zl(yx),l=ca((()=>n.isHoverMenu)),a=ca((()=>n.config.multiple)),o=ca((()=>n.config.checkStrictly)),r=ca((()=>{var e;return null===(e=n.checkedNodes[0])||void 0===e?void 0:e.uid})),i=ca((()=>e.node.isDisabled)),s=ca((()=>e.node.isLeaf)),u=ca((()=>o.value&&!s.value||!i.value)),c=ca((()=>p(n.expandingNode))),d=ca((()=>o.value&&n.checkedNodes.some(p))),p=t=>{var n;const{level:l,uid:a}=e.node;return(null===(n=null==t?void 0:t.pathNodes[l-1])||void 0===n?void 0:n.uid)===a},f=()=>{c.value||n.expandNode(e.node)},h=()=>{n.lazyLoad(e.node,(()=>{s.value||f()}))},v=()=>{const{node:t}=e;u.value&&!t.loading&&(t.loaded?f():h())},m=t=>{e.node.loaded?((t=>{const{node:l}=e;t!==l.checked&&n.handleCheckChange(l,t)})(t),!o.value&&f()):h()};return{panel:n,isHoverMenu:l,multiple:a,checkStrictly:o,checkedNodeId:r,isDisabled:i,isLeaf:s,expandable:u,inExpandingPath:c,inCheckedPath:d,handleHoverExpand:e=>{l.value&&(v(),!s.value&&t("expand",e))},handleExpand:v,handleClick:()=>{l.value&&!s.value||(!s.value||i.value||o.value||a.value?v():m(!0))},handleCheck:m}}});const _x=Ll("span",null,null,-1),kx={key:2,class:"el-icon-check el-cascader-node__prefix"},xx={key:0,class:"el-icon-loading el-cascader-node__postfix"},wx={key:1,class:"el-icon-arrow-right el-cascader-node__postfix"};bx.render=function(e,t,n,l,a,o){const r=dl("el-checkbox"),i=dl("el-radio"),s=dl("node-content");return wl(),Sl("li",{id:`${e.menuId}-${e.node.uid}`,role:"menuitem","aria-haspopup":!e.isLeaf,"aria-owns":e.isLeaf?null:e.menuId,"aria-expanded":e.inExpandingPath,tabindex:e.expandable?-1:null,class:["el-cascader-node",e.checkStrictly&&"is-selectable",e.inExpandingPath&&"in-active-path",e.inCheckedPath&&"in-checked-path",e.node.checked&&"is-active",!e.expandable&&"is-disabled"],onMouseenter:t[3]||(t[3]=(...t)=>e.handleHoverExpand&&e.handleHoverExpand(...t)),onFocus:t[4]||(t[4]=(...t)=>e.handleHoverExpand&&e.handleHoverExpand(...t)),onClick:t[5]||(t[5]=(...t)=>e.handleClick&&e.handleClick(...t))},[Pl(" prefix "),e.multiple?(wl(),Sl(r,{key:0,"model-value":e.node.checked,indeterminate:e.node.indeterminate,disabled:e.isDisabled,onClick:t[1]||(t[1]=fo((()=>{}),["stop"])),"onUpdate:modelValue":e.handleCheck},null,8,["model-value","indeterminate","disabled","onUpdate:modelValue"])):e.checkStrictly?(wl(),Sl(i,{key:1,"model-value":e.checkedNodeId,label:e.node.uid,disabled:e.isDisabled,"onUpdate:modelValue":e.handleCheck,onClick:t[2]||(t[2]=fo((()=>{}),["stop"]))},{default:Zt((()=>[Pl("\n        Add an empty element to avoid render label,\n        do not use empty fragment here for https://github.com/vuejs/vue-next/pull/2485\n      "),_x])),_:1},8,["model-value","label","disabled","onUpdate:modelValue"])):e.isLeaf&&e.node.checked?(wl(),Sl("i",kx)):Pl("v-if",!0),Pl(" content "),Ll(s),Pl(" postfix "),e.isLeaf?Pl("v-if",!0):(wl(),Sl(gl,{key:3},[e.node.loading?(wl(),Sl("i",xx)):(wl(),Sl("i",wx))],2112))],42,["id","aria-haspopup","aria-owns","aria-expanded","tabindex"])},bx.__file="packages/cascader-panel/src/node.vue";var Cx=Qn({name:"ElCascaderMenu",components:{ElScrollbar:a_,ElCascaderNode:bx},props:{nodes:{type:Array,required:!0},index:{type:Number,required:!0}},setup(e){const t=na(),n=Ey();let l=null,a=null;const o=zl(yx),r=lt(null),i=ca((()=>!e.nodes.length)),s=ca((()=>`cascader-menu-${n}-${e.index}`)),u=()=>{a&&(clearTimeout(a),a=null)},c=()=>{r.value&&(r.value.innerHTML="",u())};return{panel:o,hoverZone:r,isEmpty:i,menuId:s,t:ak,handleExpand:e=>{l=e.target},handleMouseMove:e=>{if(o.isHoverMenu&&l&&r.value)if(l.contains(e.target)){u();const n=t.vnode.el,{left:a}=n.getBoundingClientRect(),{offsetWidth:o,offsetHeight:i}=n,s=e.clientX-a,c=l.offsetTop,d=c+l.offsetHeight;r.value.innerHTML=`\n          <path style="pointer-events: auto;" fill="transparent" d="M${s} ${c} L${o} 0 V${c} Z" />\n          <path style="pointer-events: auto;" fill="transparent" d="M${s} ${d} L${o} ${i} V${d} Z" />\n        `}else a||(a=window.setTimeout(c,o.config.hoverThreshold))},clearHoverZone:c}}});const Sx={key:0,class:"el-cascader-menu__empty-text"},Ex={key:1,ref:"hoverZone",class:"el-cascader-menu__hover-zone"};Cx.render=function(e,t,n,l,a,o){const r=dl("el-cascader-node"),i=dl("el-scrollbar");return wl(),Sl(i,{id:e.menuId,tag:"ul",role:"menu",class:"el-cascader-menu","wrap-class":"el-cascader-menu__wrap","view-class":["el-cascader-menu__list",e.isEmpty&&"is-empty"],onMousemove:e.handleMouseMove,onMouseleave:e.clearHoverZone},{default:Zt((()=>[(wl(!0),Sl(gl,null,pa(e.nodes,(t=>(wl(),Sl(r,{key:t.uid,node:t,"menu-id":e.menuId,onExpand:e.handleExpand},null,8,["node","menu-id","onExpand"])))),128)),e.isEmpty?(wl(),Sl("div",Sx,c(e.t("el.cascader.noData")),1)):e.panel.isHoverMenu?(wl(),Sl("svg",Ex,null,512)):Pl("v-if",!0)])),_:1},8,["id","view-class","onMousemove","onMouseleave"])},Cx.__file="packages/cascader-panel/src/menu.vue";let Mx=0;class Ox{constructor(e,t,n,l=!1){this.data=e,this.config=t,this.parent=n,this.root=l,this.uid=Mx++,this.checked=!1,this.indeterminate=!1,this.loading=!1;const{value:a,label:o,children:r}=t,i=e[r],s=(e=>{const t=[e];let{parent:n}=e;for(;n;)t.unshift(n),n=n.parent;return t})(this);this.level=l?0:n?n.level+1:1,this.value=e[a],this.label=e[o],this.pathNodes=s,this.pathValues=s.map((e=>e.value)),this.pathLabels=s.map((e=>e.label)),this.childrenData=i,this.children=(i||[]).map((e=>new Ox(e,t,this))),this.loaded=!t.lazy||this.isLeaf||!Iy(i)}get isDisabled(){const{data:e,parent:t,config:n}=this,{disabled:l,checkStrictly:a}=n;return(dy(l)?l(e,this):!!e[l])||!a&&(null==t?void 0:t.isDisabled)}get isLeaf(){const{data:e,config:t,childrenData:n,loaded:l}=this,{lazy:a,leaf:o}=t,r=dy(o)?o(e,this):e[o];return void 0===r?!(a&&!l||Array.isArray(n)):!!r}get valueByOption(){return this.config.emitPath?this.pathValues:this.value}appendChild(e){const{childrenData:t,children:n}=this,l=new Ox(e,this.config,this);return Array.isArray(t)?t.push(e):this.childrenData=[e],n.push(l),l}calcText(e,t){const n=e?this.pathLabels.join(t):this.label;return this.text=n,n}broadcast(e,...t){const n="onParent"+ky(e);this.children.forEach((l=>{l&&(l.broadcast(e,...t),l[n]&&l[n](...t))}))}emit(e,...t){const{parent:n}=this,l="onChild"+ky(e);n&&(n[l]&&n[l](...t),n.emit(e,...t))}onParentCheck(e){this.isDisabled||this.setCheckState(e)}onChildCheck(){const{children:e}=this,t=e.filter((e=>!e.isDisabled)),n=!!t.length&&t.every((e=>e.checked));this.setCheckState(n)}setCheckState(e){const t=this.children.length,n=this.children.reduce(((e,t)=>e+(t.checked?1:t.indeterminate?.5:0)),0);this.checked=this.loaded&&this.children.every((e=>e.loaded&&e.checked))&&e,this.indeterminate=this.loaded&&n!==t&&n>0}doCheck(e){if(this.checked===e)return;const{checkStrictly:t,multiple:n}=this.config;t||!n?this.checked=e:(this.broadcast("check",e),this.setCheckState(e),this.emit("check"))}}const Tx=(e,t)=>e.reduce(((e,n)=>(n.isLeaf?e.push(n):(!t&&e.push(n),e=e.concat(Tx(n.children,t))),e)),[]);class Dx{constructor(e,t){this.config=t;const n=(e||[]).map((e=>new Ox(e,this.config)));this.nodes=n,this.allNodes=Tx(n,!1),this.leafNodes=Tx(n,!0)}getNodes(){return this.nodes}getFlattedNodes(e){return e?this.leafNodes:this.allNodes}appendNode(e,t){const n=t?t.appendChild(e):new Ox(e,this.config);t||this.nodes.push(n),this.allNodes.push(n),n.isLeaf&&this.leafNodes.push(n)}appendNodes(e,t){e.forEach((e=>this.appendNode(e,t)))}getNodeByValue(e,t=!1){return(e||0===e)&&this.getFlattedNodes(t).filter((t=>t.value===e||Sv(t.pathValues,e)))[0]||null}getSameNode(e){return e&&this.getFlattedNodes(!1).filter((({value:t,level:n})=>e.value===t&&e.level===n))[0]||null}}function Lx(e,t){if(oy)return;if(!t)return void(e.scrollTop=0);const n=[];let l=t.offsetParent;for(;null!==l&&e!==l&&e.contains(l);)n.push(l),l=l.offsetParent;const a=t.offsetTop+n.reduce(((e,t)=>e+t.offsetTop),0),o=a+t.offsetHeight,r=e.scrollTop,i=r+e.clientHeight;a<r?e.scrollTop=a:o>i&&(e.scrollTop=o-e.clientHeight)}const Nx={modelValue:[Number,String,Array],options:{type:Array,default:()=>[]},props:{type:Object,default:()=>({})}},Ax={expandTrigger:gx.CLICK,multiple:!1,checkStrictly:!1,emitPath:!0,lazy:!1,lazyLoad:ry,value:"value",label:"label",children:"children",leaf:"leaf",disabled:"disabled",hoverThreshold:500},Px=e=>!e.getAttribute("aria-owns"),Ix=e=>{if(!e)return 0;const t=e.id.split("-");return Number(t[t.length-2])},Fx=e=>{e&&(e.focus(),!Px(e)&&e.click())};var Vx=Qn({name:"ElCascaderPanel",components:{ElCascaderMenu:Cx},props:Object.assign(Object.assign({},Nx),{border:{type:Boolean,default:!0},renderLabel:Function}),emits:[Nb,"change","close","expand-change"],setup(e,{emit:t,slots:n}){let l=!0,a=!1;const o=(w=e,ca((()=>Object.assign(Object.assign({},Ax),w.props)))),r=lt(null),i=lt([]),s=lt(null),u=lt([]),c=lt(null),d=lt([]),p=ca((()=>o.value.expandTrigger===gx.HOVER)),f=ca((()=>e.renderLabel||n.default)),h=(e,t)=>{const n=o.value;(e=e||new Ox({},n,null,!0)).loading=!0,n.lazyLoad(e,(n=>{const l=e.root?null:e;n&&r.value.appendNodes(n,l),e.loading=!1,e.loaded=!0,t&&t(n)}))},v=(e,n)=>{var l;const{level:a}=e,o=u.value.slice(0,a);let r;e.isLeaf?r=e.pathNodes[a-2]:(r=e,o.push(e.children)),(null===(l=c.value)||void 0===l?void 0:l.uid)!==(null==r?void 0:r.uid)&&(c.value=e,u.value=o,!n&&t("expand-change",(null==e?void 0:e.pathValues)||[]))},m=(e,n,l=!0)=>{const{checkStrictly:r,multiple:i}=o.value,s=d.value[0];a=!0,!i&&(null==s||s.doCheck(!1)),e.doCheck(n),b(),l&&!i&&!r&&t("close")},g=e=>r.value.getFlattedNodes(e),y=e=>g(e).filter((e=>!1!==e.checked)),b=()=>{var e;const{checkStrictly:t,multiple:n}=o.value,l=((e,t)=>{const n=t.slice(0),l=n.map((e=>e.uid)),a=e.reduce(((e,t)=>{const a=l.indexOf(t.uid);return a>-1&&(e.push(t),n.splice(a,1),l.splice(a,1)),e}),[]);return a.push(...n),a})(d.value,y(!t)),a=l.map((e=>e.valueByOption));d.value=l,s.value=n?a:null!==(e=a[0])&&void 0!==e?e:null},_=(t=!1,n=!1)=>{const{modelValue:i}=e,{lazy:u,multiple:c,checkStrictly:d}=o.value,p=!d;if(l&&!a&&(n||!Sv(i,s.value)))if(u&&!t){const e=Vy(Fy(My(i))).map((e=>r.value.getNodeByValue(e))).filter((e=>!!e&&!e.loaded&&!e.loading));e.length?e.forEach((e=>{h(e,(()=>_(!1,n)))})):_(!0,n)}else{const e=Vy((c?My(i):[i]).map((e=>r.value.getNodeByValue(e,p))));k(e,!1),s.value=i}},k=(e,t=!0)=>{const{checkStrictly:n}=o.value,l=d.value,a=e.filter((e=>!!e&&(n||e.isLeaf))),i=r.value.getSameNode(c.value),s=t&&i||a[0];s?s.pathNodes.forEach((e=>v(e,!0))):c.value=null,l.forEach((e=>e.doCheck(!1))),a.forEach((e=>e.doCheck(!0))),d.value=a,Dt(x)},x=()=>{oy||i.value.forEach((e=>{const t=null==e?void 0:e.$el;t&&Lx(t.querySelector(".el-scrollbar__wrap"),t.querySelector(".el-cascader-node.is-active")||t.querySelector(".el-cascader-node.in-active-path"))}))};var w;return $l(yx,Ue({config:o,expandingNode:c,checkedNodes:d,isHoverMenu:p,renderLabelFn:f,lazyLoad:h,expandNode:v,handleCheckChange:m})),Sn([o,()=>e.options],(()=>{const{options:t}=e,n=o.value;a=!1,r.value=new Dx(t,n),u.value=[r.value.getNodes()],n.lazy&&Iy(e.options)?(l=!1,h(null,(()=>{l=!0,_(!1,!0)}))):_(!1,!0)}),{deep:!0,immediate:!0}),Sn((()=>e.modelValue),(()=>{a=!1,_()})),Sn(s,(n=>{Sv(n,e.modelValue)||(t(Nb,n),t("change",n))})),gn((()=>i.value=[])),mn((()=>!Iy(e.modelValue)&&_())),{menuList:i,menus:u,checkedNodes:d,handleKeyDown:e=>{const n=e.target,{code:l}=e;switch(l){case vb.up:case vb.down:const e=l===vb.up?-1:1;Fx(((e,t)=>{const{parentNode:n}=e;if(!n)return null;const l=n.querySelectorAll('.el-cascader-node[tabindex="-1"]');return l[Array.prototype.indexOf.call(l,e)+t]||null})(n,e));break;case vb.left:const a=i.value[Ix(n)-1],o=null==a?void 0:a.$el.querySelector('.el-cascader-node[aria-expanded="true"]');Fx(o);break;case vb.right:const r=i.value[Ix(n)+1],s=null==r?void 0:r.$el.querySelector('.el-cascader-node[tabindex="-1"]');Fx(s);break;case vb.enter:(e=>{if(!e)return;const t=e.querySelector("input");t?t.click():Px(e)&&e.click()})(n);break;case vb.esc:case vb.tab:t("close")}},handleCheckChange:m,getFlattedNodes:g,getCheckedNodes:y,clearCheckedNodes:()=>{d.value.forEach((e=>e.doCheck(!1))),b()},calculateCheckedValue:b,scrollToExpandingNode:x}}});Vx.render=function(e,t,n,l,a,o){const r=dl("el-cascader-menu");return wl(),Sl("div",{class:["el-cascader-panel",e.border&&"is-bordered"],onKeydown:t[1]||(t[1]=(...t)=>e.handleKeyDown&&e.handleKeyDown(...t))},[(wl(!0),Sl(gl,null,pa(e.menus,((t,n)=>(wl(),Sl(r,{key:n,ref:t=>e.menuList[n]=t,index:n,nodes:t},null,8,["index","nodes"])))),128))],34)},Vx.__file="packages/cascader-panel/src/index.vue",Vx.install=e=>{e.component(Vx.name,Vx)};const Bx=Vx;var $x=Qn({name:"ElTag",props:{closable:Boolean,type:{type:String,default:""},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:""},size:{type:String,validator:Ib},effect:{type:String,default:"light",validator:e=>-1!==["dark","light","plain"].indexOf(e)}},emits:["close","click"],setup(e,t){const n=Ay(),l=ca((()=>e.size||n.size)),a=ca((()=>{const{type:t,hit:n,effect:a}=e;return["el-tag",t?"el-tag--"+t:"",l.value?"el-tag--"+l.value:"",a?"el-tag--"+a:"",n&&"is-hit"]}));return{tagSize:l,classes:a,handleClose:e=>{e.stopPropagation(),t.emit("close",e)},handleClick:e=>{t.emit("click",e)}}}});$x.render=function(e,t,n,l,a,o){return e.disableTransitions?(wl(),Sl(Ia,{key:1,name:"el-zoom-in-center"},{default:Zt((()=>[Ll("span",{class:e.classes,style:{backgroundColor:e.color},onClick:t[4]||(t[4]=(...t)=>e.handleClick&&e.handleClick(...t))},[Ht(e.$slots,"default"),e.closable?(wl(),Sl("i",{key:0,class:"el-tag__close el-icon-close",onClick:t[3]||(t[3]=(...t)=>e.handleClose&&e.handleClose(...t))})):Pl("v-if",!0)],6)])),_:3})):(wl(),Sl("span",{key:0,class:e.classes,style:{backgroundColor:e.color},onClick:t[2]||(t[2]=(...t)=>e.handleClick&&e.handleClick(...t))},[Ht(e.$slots,"default"),e.closable?(wl(),Sl("i",{key:0,class:"el-tag__close el-icon-close",onClick:t[1]||(t[1]=(...t)=>e.handleClose&&e.handleClose(...t))})):Pl("v-if",!0)],6))},$x.__file="packages/tag/src/index.vue",$x.install=e=>{e.component($x.name,$x)};const zx=$x,jx={medium:36,small:32,mini:28},Rx={modifiers:[{name:"arrowPosition",enabled:!0,phase:"main",fn:({state:e})=>{const{modifiersData:t,elements:n}=e,{reference:l,arrow:a}=n;t.arrow.x=t.arrow.x-(l.clientWidth-a.clientWidth)/2+35},requires:["arrow"]}]};var Hx=Qn({name:"ElCascader",components:{ElCascaderPanel:Bx,ElInput:Qb,ElPopper:M_,ElScrollbar:a_,ElTag:zx},directives:{Clickoutside:Sb},props:Object.assign(Object.assign({},Nx),{size:{type:String,validator:Ib},placeholder:{type:String,default:()=>ak("el.cascader.placeholder")},disabled:Boolean,clearable:Boolean,filterable:Boolean,filterMethod:{type:Function,default:(e,t)=>e.text.includes(t)},separator:{type:String,default:" / "},showAllLevels:{type:Boolean,default:!0},collapseTags:Boolean,debounce:{type:Number,default:300},beforeFilter:{type:Function,default:()=>!0},popperClass:{type:String,default:""}}),emits:[Nb,"change","focus","blur","visible-change","expand-change","remove-tag"],setup(e,{emit:t}){let n=0,l=0;const a=Ay(),o=zl("elForm",{}),r=zl("elFormItem",{}),i=lt(null),s=lt(null),u=lt(null),c=lt(null),d=lt(null),p=lt(!1),f=lt(!1),h=lt(!1),v=lt(""),m=lt(""),g=lt([]),y=lt([]),b=ca((()=>e.disabled||o.disabled)),_=ca((()=>e.size||r.size||a.size)),k=ca((()=>["small","mini"].includes(_.value)?"mini":"small")),x=ca((()=>!!e.props.multiple)),w=ca((()=>!e.filterable||x.value)),C=ca((()=>x.value?m.value:v.value)),S=ca((()=>{var e;return(null===(e=c.value)||void 0===e?void 0:e.checkedNodes)||[]})),E=ca((()=>!(!e.clearable||b.value||h.value||!f.value||!S.value.length))),M=ca((()=>{const{showAllLevels:t,separator:n}=e,l=S.value;return l.length?x.value?" ":l[0].calcText(t,n):""})),O=ca({get:()=>e.modelValue,set(e){var n;t(Nb,e),t("change",e),null===(n=r.formItemMitt)||void 0===n||n.emit("el.form.change",[e])}}),T=ca((()=>{var e;return null===(e=i.value)||void 0===e?void 0:e.popperRef})),D=n=>{if(!b.value&&(n=null!=n?n:!p.value)!==p.value){if(p.value=n,s.value.input.setAttribute("aria-expanded",n),n)L(),Dt(c.value.scrollToExpandingNode);else if(e.filterable){const{value:e}=M;v.value=e,m.value=e}t("visible-change",n)}},L=()=>{Dt(i.value.update)},N=()=>{h.value=!1},A=t=>{const{showAllLevels:n,separator:l}=e;return{node:t,key:t.uid,text:t.calcText(n,l),hitState:!1,closable:!b.value&&!t.isDisabled}},P=e=>{const{node:n}=e;n.doCheck(!1),c.value.calculateCheckedValue(),t("remove-tag",n.valueByOption)},I=()=>{const{filterMethod:t,showAllLevels:n,separator:l}=e,a=c.value.getFlattedNodes(!e.props.checkStrictly).filter((e=>!e.isDisabled&&(e.calcText(n,l),t(e,C.value))));x.value&&g.value.forEach((e=>{e.hitState=!1})),h.value=!0,y.value=a,L()},F=()=>{var e;let t=null;t=h.value&&d.value?d.value.$el.querySelector(".el-cascader__suggestion-item"):null===(e=c.value)||void 0===e?void 0:e.$el.querySelector('.el-cascader-node[tabindex="-1"]'),t&&(t.focus(),!h.value&&t.click())},V=()=>{var e;const t=s.value.input,l=u.value,a=null===(e=d.value)||void 0===e?void 0:e.$el;if(!oy&&t&&(a&&(a.querySelector(".el-cascader__suggestion-list").style.minWidth=t.offsetWidth+"px"),l)){const{offsetHeight:e}=l,a=Math.max(e+6,n)+"px";t.style.height=a,L()}},B=uu((()=>{const{value:t}=C;if(!t)return;const n=e.beforeFilter(t);hy(n)?n.then(I).catch((()=>{})):!1!==n?I():N()}),e.debounce);return Sn(h,L),Sn([S,b],(()=>{if(!x.value)return;const t=S.value,n=[];if(t.length){const[l,...a]=t,o=a.length;n.push(A(l)),o&&(e.collapseTags?n.push({key:-1,text:"+ "+o,closable:!1}):a.forEach((e=>n.push(A(e)))))}g.value=n})),Sn(g,(()=>Dt(V))),Sn(M,(e=>v.value=e),{immediate:!0}),mn((()=>{const e=s.value.$el;n=(null==e?void 0:e.offsetHeight)||jx[_.value]||40,Zy(e,V)})),bn((()=>{Jy(s.value.$el,V)})),{popperOptions:Rx,popper:i,popperPaneRef:T,input:s,tagWrapper:u,panel:c,suggestionPanel:d,popperVisible:p,inputHover:f,filtering:h,presentText:M,checkedValue:O,inputValue:v,searchInputValue:m,presentTags:g,suggestions:y,isDisabled:b,realSize:_,tagSize:k,multiple:x,readonly:w,clearBtnVisible:E,t:ak,togglePopperVisible:D,hideSuggestionPanel:N,deleteTag:P,focusFirstNode:F,getCheckedNodes:e=>c.value.getCheckedNodes(e),handleExpandChange:e=>{L(),t("expand-change",e)},handleKeyDown:e=>{switch(e.code){case vb.enter:D();break;case vb.down:D(!0),Dt(F),event.preventDefault();break;case vb.esc:case vb.tab:D(!1)}},handleClear:()=>{c.value.clearCheckedNodes(),D(!1)},handleSuggestionClick:e=>{const{checked:t}=e;x.value?c.value.handleCheckChange(e,!t,!1):(!t&&c.value.handleCheckChange(e,!0,!1),D(!1))},handleDelete:()=>{const e=g.value,t=e[e.length-1];l=m.value?0:l+1,t&&l&&(t.hitState?P(t):t.hitState=!0)},handleInput:(e,t)=>{!p.value&&D(!0),(null==t?void 0:t.isComposing)||(e?B():N())}}}});const Wx={key:0,ref:"tagWrapper",class:"el-cascader__tags"},Yx={key:0,class:"el-icon-check"},qx={class:"el-cascader__empty-text"};Hx.render=function(e,t,n,l,a,o){const r=dl("el-input"),i=dl("el-tag"),s=dl("el-cascader-panel"),u=dl("el-scrollbar"),d=dl("el-popper"),p=hl("clickoutside");return wl(),Sl(d,{ref:"popper",visible:e.popperVisible,"onUpdate:visible":t[16]||(t[16]=t=>e.popperVisible=t),"manual-mode":"",placement:"bottom-start","popper-class":"el-cascader__dropdown "+e.popperClass,"popper-options":e.popperOptions,"stop-popper-mouse-event":!1,transition:"el-zoom-in-top","gpu-acceleration":!1,effect:"light",pure:"",onAfterLeave:e.hideSuggestionPanel},{trigger:Zt((()=>[Un(Ll("div",{class:["el-cascader",e.realSize&&"el-cascader--"+e.realSize,{"is-disabled":e.isDisabled}],onClick:t[10]||(t[10]=()=>e.togglePopperVisible(!e.readonly||void 0)),onKeydown:t[11]||(t[11]=(...t)=>e.handleKeyDown&&e.handleKeyDown(...t)),onMouseenter:t[12]||(t[12]=t=>e.inputHover=!0),onMouseleave:t[13]||(t[13]=t=>e.inputHover=!1)},[Ll(r,{ref:"input",modelValue:e.inputValue,"onUpdate:modelValue":t[3]||(t[3]=t=>e.inputValue=t),modelModifiers:{trim:!0},placeholder:e.placeholder,readonly:e.readonly,disabled:e.isDisabled,"validate-event":!1,size:e.realSize,class:{"is-focus":e.popperVisible},onFocus:t[4]||(t[4]=t=>e.$emit("focus",t)),onBlur:t[5]||(t[5]=t=>e.$emit("blur",t)),onInput:e.handleInput},{suffix:Zt((()=>[e.clearBtnVisible?(wl(),Sl("i",{key:"clear",class:"el-input__icon el-icon-circle-close",onClick:t[1]||(t[1]=fo(((...t)=>e.handleClear&&e.handleClear(...t)),["stop"]))})):(wl(),Sl("i",{key:"arrow-down",class:["el-input__icon","el-icon-arrow-down",e.popperVisible&&"is-reverse"],onClick:t[2]||(t[2]=fo((t=>e.togglePopperVisible()),["stop"]))},null,2))])),_:1},8,["modelValue","placeholder","readonly","disabled","size","class","onInput"]),e.multiple?(wl(),Sl("div",Wx,[(wl(!0),Sl(gl,null,pa(e.presentTags,(t=>(wl(),Sl(i,{key:t.key,type:"info",size:e.tagSize,hit:t.hitState,closable:t.closable,"disable-transitions":"",onClose:n=>e.deleteTag(t)},{default:Zt((()=>[Ll("span",null,c(t.text),1)])),_:2},1032,["size","hit","closable","onClose"])))),128)),e.filterable&&!e.isDisabled?Un((wl(),Sl("input",{key:0,"onUpdate:modelValue":t[6]||(t[6]=t=>e.searchInputValue=t),type:"text",class:"el-cascader__search-input",placeholder:e.presentText?"":e.placeholder,onInput:t[7]||(t[7]=t=>e.handleInput(e.searchInputValue,t)),onClick:t[8]||(t[8]=fo((t=>e.togglePopperVisible(!0)),["stop"])),onKeydown:t[9]||(t[9]=vo(((...t)=>e.handleDelete&&e.handleDelete(...t)),["delete"]))},null,40,["placeholder"])),[[ao,e.searchInputValue,void 0,{trim:!0}]]):Pl("v-if",!0)],512)):Pl("v-if",!0)],34),[[p,()=>e.togglePopperVisible(!1),e.popperPaneRef]])])),default:Zt((()=>[Un(Ll(s,{ref:"panel",modelValue:e.checkedValue,"onUpdate:modelValue":t[14]||(t[14]=t=>e.checkedValue=t),options:e.options,props:e.props,border:!1,"render-label":e.$slots.default,onExpandChange:e.handleExpandChange,onClose:t[15]||(t[15]=t=>e.togglePopperVisible(!1))},null,8,["modelValue","options","props","render-label","onExpandChange"]),[[mo,!e.filtering]]),e.filterable?Un((wl(),Sl(u,{key:0,ref:"suggestionPanel",tag:"ul",class:"el-cascader__suggestion-panel","view-class":"el-cascader__suggestion-list"},{default:Zt((()=>[e.suggestions.length?(wl(!0),Sl(gl,{key:0},pa(e.suggestions,(t=>(wl(),Sl("li",{key:t.uid,class:["el-cascader__suggestion-item",t.checked&&"is-checked"],tabindex:-1,onClick:n=>e.handleSuggestionClick(t)},[Ll("span",null,c(t.text),1),t.checked?(wl(),Sl("i",Yx)):Pl("v-if",!0)],10,["onClick"])))),128)):Ht(e.$slots,"empty",{key:1},(()=>[Ll("li",qx,c(e.t("el.cascader.noMatch")),1)]))])),_:3},512)),[[mo,e.filtering]]):Pl("v-if",!0)])),_:1},8,["visible","popper-class","popper-options","onAfterLeave"])},Hx.__file="packages/cascader/src/index.vue",Hx.install=e=>{e.component(Hx.name,Hx)};const Kx=Hx;var Ux=Qn({name:"ElCheckboxButton",props:{modelValue:{type:[Boolean,Number,String],default:()=>{}},label:{type:[Boolean,Number,String]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0}},emits:[Nb,"change"],setup(e){const{focus:t,isChecked:n,isDisabled:l,size:a,model:o,handleChange:r}=ix(e),{checkboxGroup:i}=rx();return{focus:t,isChecked:n,isDisabled:l,model:o,handleChange:r,activeStyle:ca((()=>{var e,t,n,l;const a=null!==(t=null===(e=null==i?void 0:i.fill)||void 0===e?void 0:e.value)&&void 0!==t?t:"";return{backgroundColor:a,borderColor:a,color:null!==(l=null===(n=null==i?void 0:i.textColor)||void 0===n?void 0:n.value)&&void 0!==l?l:"",boxShadow:a?"-1px 0 0 0 "+a:null}})),size:a}}});Ux.render=function(e,t,n,l,a,o){return wl(),Sl("label",{class:["el-checkbox-button",[e.size?"el-checkbox-button--"+e.size:"",{"is-disabled":e.isDisabled},{"is-checked":e.isChecked},{"is-focus":e.focus}]],role:"checkbox","aria-checked":e.isChecked,"aria-disabled":e.isDisabled},[e.trueLabel||e.falseLabel?Un((wl(),Sl("input",{key:0,"onUpdate:modelValue":t[1]||(t[1]=t=>e.model=t),checked:e.isChecked,class:"el-checkbox-button__original",type:"checkbox",name:e.name,disabled:e.isDisabled,"true-value":e.trueLabel,"false-value":e.falseLabel,onChange:t[2]||(t[2]=(...t)=>e.handleChange&&e.handleChange(...t)),onFocus:t[3]||(t[3]=t=>e.focus=!0),onBlur:t[4]||(t[4]=t=>e.focus=!1)},null,40,["checked","name","disabled","true-value","false-value"])),[[oo,e.model]]):Un((wl(),Sl("input",{key:1,"onUpdate:modelValue":t[5]||(t[5]=t=>e.model=t),class:"el-checkbox-button__original",type:"checkbox",name:e.name,disabled:e.isDisabled,value:e.label,onChange:t[6]||(t[6]=(...t)=>e.handleChange&&e.handleChange(...t)),onFocus:t[7]||(t[7]=t=>e.focus=!0),onBlur:t[8]||(t[8]=t=>e.focus=!1)},null,40,["name","disabled","value"])),[[oo,e.model]]),e.$slots.default||e.label?(wl(),Sl("span",{key:2,class:"el-checkbox-button__inner",style:e.isChecked?e.activeStyle:null},[Ht(e.$slots,"default",{},(()=>[Al(c(e.label),1)]))],4)):Pl("v-if",!0)],10,["aria-checked","aria-disabled"])},Ux.__file="packages/checkbox/src/checkbox-button.vue",Ux.install=e=>{e.component(Ux.name,Ux)};const Gx=Ux;var Xx=Qn({name:"ElCheckboxGroup",props:{modelValue:{type:[Object,Boolean,Array],default:()=>{}},disabled:Boolean,min:{type:Number,default:void 0},max:{type:Number,default:void 0},size:{type:String,validator:Ib},fill:{type:String,default:void 0},textColor:{type:String,default:void 0}},emits:[Nb,"change"],setup(e,t){const{elFormItem:n,elFormItemSize:l,ELEMENT:a}=rx(),o=ca((()=>e.size||l.value||a.size)),r=e=>{t.emit(Nb,e),Dt((()=>{t.emit("change",e)}))},i=ca({get:()=>e.modelValue,set(e){r(e)}});$l("CheckboxGroup",Object.assign(Object.assign({name:"ElCheckboxGroup",modelValue:i},ct(e)),{checkboxGroupSize:o,changeEvent:r})),Sn((()=>e.modelValue),(e=>{var t;null===(t=n.formItemMitt)||void 0===t||t.emit("el.form.change",[e])}))}});const Zx={class:"el-checkbox-group",role:"group","aria-label":"checkbox-group"};Xx.render=function(e,t,n,l,a,o){return wl(),Sl("div",Zx,[Ht(e.$slots,"default")])},Xx.__file="packages/checkbox/src/checkbox-group.vue",Xx.install=e=>{e.component(Xx.name,Xx)};const Jx=Xx,Qx=Qn({name:"ElCol",props:{tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:[Number,Object],default:()=>({})},sm:{type:[Number,Object],default:()=>({})},md:{type:[Number,Object],default:()=>({})},lg:{type:[Number,Object],default:()=>({})},xl:{type:[Number,Object],default:()=>({})}},setup(e,{slots:t}){const{gutter:n}=zl("ElRow",{gutter:{value:0}}),l=ca((()=>n.value?{paddingLeft:n.value/2+"px",paddingRight:n.value/2+"px"}:{})),a=ca((()=>{const t=[];return["span","offset","pull","push"].forEach((n=>{const l=e[n];"number"==typeof l&&l>0&&t.push("span"!==n?`el-col-${n}-${e[n]}`:"el-col-"+e[n])})),["xs","sm","md","lg","xl"].forEach((n=>{if("number"==typeof e[n])t.push(`el-col-${n}-${e[n]}`);else if("object"==typeof e[n]){const l=e[n];Object.keys(l).forEach((e=>{t.push("span"!==e?`el-col-${n}-${e}-${l[e]}`:`el-col-${n}-${l[e]}`)}))}})),n.value&&t.push("is-guttered"),t}));return()=>{var n;return da(e.tag,{class:["el-col",a.value],style:l.value},null===(n=t.default)||void 0===n?void 0:n.call(t))}}});Qx.install=e=>{e.component(Qx.name,Qx)};var ew=Qn({name:"ElCollapse",props:{accordion:Boolean,modelValue:{type:[Array,String,Number],default:()=>[]}},emits:[Nb,"change"],setup(e,{emit:t}){const n=lt([].concat(e.modelValue)),l=ku(),a=l=>{n.value=[].concat(l);const a=e.accordion?n.value[0]:n.value;t(Nb,a),t("change",a)},o=t=>{if(e.accordion)a(!n.value[0]&&0!==n.value[0]||n.value[0]!==t?t:"");else{let e=n.value.slice(0);const l=e.indexOf(t);l>-1?e.splice(l,1):e.push(t),a(e)}};return Sn((()=>e.modelValue),(()=>{n.value=[].concat(e.modelValue)})),l.on("item-click",o),_n((()=>{l.all.clear()})),$l("collapse",{activeNames:n,collapseMitt:l}),{activeNames:n,setActiveNames:a,handleItemClick:o}}});const tw={class:"el-collapse",role:"tablist","aria-multiselectable":"true"};ew.render=function(e,t,n,l,a,o){return wl(),Sl("div",tw,[Ht(e.$slots,"default")])},ew.__file="packages/collapse/src/collapse.vue",ew.install=e=>{e.component(ew.name,ew)};const nw=ew;var lw=Qn({name:"ElCollapseTransition",setup:()=>({on:{beforeEnter(e){Hy(e,"collapse-transition"),e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height="0",e.style.paddingTop=0,e.style.paddingBottom=0},enter(e){e.dataset.oldOverflow=e.style.overflow,0!==e.scrollHeight?(e.style.height=e.scrollHeight+"px",e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom):(e.style.height="",e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom),e.style.overflow="hidden"},afterEnter(e){Wy(e,"collapse-transition"),e.style.height="",e.style.overflow=e.dataset.oldOverflow},beforeLeave(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height=e.scrollHeight+"px",e.style.overflow="hidden"},leave(e){0!==e.scrollHeight&&(Hy(e,"collapse-transition"),e.style.transitionProperty="height",e.style.height=0,e.style.paddingTop=0,e.style.paddingBottom=0)},afterLeave(e){Wy(e,"collapse-transition"),e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom}}})});lw.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,fa(e.on),{default:Zt((()=>[Ht(e.$slots,"default")])),_:3},16)},lw.__file="packages/transition/collapse-transition/index.vue",lw.install=e=>{e.component(lw.name,lw)};const aw=lw;var ow=Qn({name:"ElCollapseItem",components:{ElCollapseTransition:aw},props:{title:{type:String,default:""},name:{type:[String,Number],default:()=>Ey()},disabled:Boolean},setup(e){const t=zl("collapse"),n=null==t?void 0:t.collapseMitt,l=lt({height:"auto",display:"block"}),a=lt(0),o=lt(!1),r=lt(!1),i=lt(Ey());return{isActive:ca((()=>(null==t?void 0:t.activeNames.value.indexOf(e.name))>-1)),contentWrapStyle:l,contentHeight:a,focusing:o,isClick:r,id:i,handleFocus:()=>{setTimeout((()=>{r.value?r.value=!1:o.value=!0}),50)},handleHeaderClick:()=>{e.disabled||(null==n||n.emit("item-click",e.name),o.value=!1,r.value=!0)},handleEnterClick:()=>{null==n||n.emit("item-click",e.name)},collapse:t}}});const rw={class:"el-collapse-item__content"};ow.render=function(e,t,n,l,a,o){const r=dl("el-collapse-transition");return wl(),Sl("div",{class:["el-collapse-item",{"is-active":e.isActive,"is-disabled":e.disabled}]},[Ll("div",{role:"tab","aria-expanded":e.isActive,"aria-controls":"el-collapse-content-"+e.id,"aria-describedby":"el-collapse-content-"+e.id},[Ll("div",{id:"el-collapse-head-"+e.id,class:["el-collapse-item__header",{focusing:e.focusing,"is-active":e.isActive}],role:"button",tabindex:e.disabled?-1:0,onClick:t[1]||(t[1]=(...t)=>e.handleHeaderClick&&e.handleHeaderClick(...t)),onKeyup:t[2]||(t[2]=vo(fo(((...t)=>e.handleEnterClick&&e.handleEnterClick(...t)),["stop"]),["space","enter"])),onFocus:t[3]||(t[3]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onBlur:t[4]||(t[4]=t=>e.focusing=!1)},[Ht(e.$slots,"title",{},(()=>[Al(c(e.title),1)])),Ll("i",{class:["el-collapse-item__arrow el-icon-arrow-right",{"is-active":e.isActive}]},null,2)],42,["id","tabindex"])],8,["aria-expanded","aria-controls","aria-describedby"]),Ll(r,null,{default:Zt((()=>[Un(Ll("div",{id:"el-collapse-content-"+e.id,class:"el-collapse-item__wrap",role:"tabpanel","aria-hidden":!e.isActive,"aria-labelledby":"el-collapse-head-"+e.id},[Ll("div",rw,[Ht(e.$slots,"default")])],8,["id","aria-hidden","aria-labelledby"]),[[mo,e.isActive]])])),_:3})],2)},ow.__file="packages/collapse/src/collapse-item.vue",ow.install=e=>{e.component(ow.name,ow)};const iw=ow,sw=function(e,t,n){return[e,t*n/((e=(2-t)*n)<1?e:2-e)||0,e/2]},uw=function(e,t){var n;"string"==typeof(n=e)&&-1!==n.indexOf(".")&&1===parseFloat(n)&&(e="100%");const l="string"==typeof(a=e)&&-1!==a.indexOf("%");var a;return e=Math.min(t,Math.max(0,parseFloat(e+""))),l&&(e=parseInt(e*t+"",10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)},cw={10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"},dw={A:10,B:11,C:12,D:13,E:14,F:15},pw=function(e){return 2===e.length?16*(dw[e[0].toUpperCase()]||+e[0])+(dw[e[1].toUpperCase()]||+e[1]):dw[e[1].toUpperCase()]||+e[1]},fw=function(e,t,n){e=uw(e,255),t=uw(t,255),n=uw(n,255);const l=Math.max(e,t,n),a=Math.min(e,t,n);let o;const r=l,i=l-a,s=0===l?0:i/l;if(l===a)o=0;else{switch(l){case e:o=(t-n)/i+(t<n?6:0);break;case t:o=(n-e)/i+2;break;case n:o=(e-t)/i+4}o/=6}return{h:360*o,s:100*s,v:100*r}},hw=function(e,t,n){e=6*uw(e,360),t=uw(t,100),n=uw(n,100);const l=Math.floor(e),a=e-l,o=n*(1-t),r=n*(1-a*t),i=n*(1-(1-a)*t),s=l%6,u=[n,r,o,o,i,n][s],c=[i,n,n,r,o,o][s],d=[o,o,i,n,n,r][s];return{r:Math.round(255*u),g:Math.round(255*c),b:Math.round(255*d)}};class vw{constructor(e){this._hue=0,this._saturation=100,this._value=100,this._alpha=100,this.enableAlpha=!1,this.format="hex",this.value="",e=e||{};for(const t in e)uy(e,t)&&(this[t]=e[t]);this.doOnChange()}set(e,t){if(1!==arguments.length||"object"!=typeof e)this["_"+e]=t,this.doOnChange();else for(const n in e)uy(e,n)&&this.set(n,e[n])}get(e){return this["_"+e]}toRgb(){return hw(this._hue,this._saturation,this._value)}fromString(e){if(!e)return this._hue=0,this._saturation=100,this._value=100,void this.doOnChange();const t=(e,t,n)=>{this._hue=Math.max(0,Math.min(360,e)),this._saturation=Math.max(0,Math.min(100,t)),this._value=Math.max(0,Math.min(100,n)),this.doOnChange()};if(-1!==e.indexOf("hsl")){const n=e.replace(/hsla|hsl|\(|\)/gm,"").split(/\s|,/g).filter((e=>""!==e)).map(((e,t)=>t>2?parseFloat(e):parseInt(e,10)));if(4===n.length?this._alpha=Math.floor(100*parseFloat(n[3])):3===n.length&&(this._alpha=100),n.length>=3){const{h:e,s:l,v:a}=function(e,t,n){n/=100;let l=t/=100;const a=Math.max(n,.01);return t*=(n*=2)<=1?n:2-n,l*=a<=1?a:2-a,{h:e,s:100*(0===n?2*l/(a+l):2*t/(n+t)),v:(n+t)/2*100}}(n[0],n[1],n[2]);t(e,l,a)}}else if(-1!==e.indexOf("hsv")){const n=e.replace(/hsva|hsv|\(|\)/gm,"").split(/\s|,/g).filter((e=>""!==e)).map(((e,t)=>t>2?parseFloat(e):parseInt(e,10)));4===n.length?this._alpha=Math.floor(100*parseFloat(n[3])):3===n.length&&(this._alpha=100),n.length>=3&&t(n[0],n[1],n[2])}else if(-1!==e.indexOf("rgb")){const n=e.replace(/rgba|rgb|\(|\)/gm,"").split(/\s|,/g).filter((e=>""!==e)).map(((e,t)=>t>2?parseFloat(e):parseInt(e,10)));if(4===n.length?this._alpha=Math.floor(100*parseFloat(n[3])):3===n.length&&(this._alpha=100),n.length>=3){const{h:e,s:l,v:a}=fw(n[0],n[1],n[2]);t(e,l,a)}}else if(-1!==e.indexOf("#")){const n=e.replace("#","").trim();if(!/^[0-9a-fA-F]{3}$|^[0-9a-fA-F]{6}$|^[0-9a-fA-F]{8}$/.test(n))return;let l,a,o;3===n.length?(l=pw(n[0]+n[0]),a=pw(n[1]+n[1]),o=pw(n[2]+n[2])):6!==n.length&&8!==n.length||(l=pw(n.substring(0,2)),a=pw(n.substring(2,4)),o=pw(n.substring(4,6))),8===n.length?this._alpha=Math.floor(pw(n.substring(6))/255*100):3!==n.length&&6!==n.length||(this._alpha=100);const{h:r,s:i,v:s}=fw(l,a,o);t(r,i,s)}}compare(e){return Math.abs(e._hue-this._hue)<2&&Math.abs(e._saturation-this._saturation)<1&&Math.abs(e._value-this._value)<1&&Math.abs(e._alpha-this._alpha)<1}doOnChange(){const{_hue:e,_saturation:t,_value:n,_alpha:l,format:a}=this;if(this.enableAlpha)switch(a){case"hsl":{const a=sw(e,t/100,n/100);this.value=`hsla(${e}, ${Math.round(100*a[1])}%, ${Math.round(100*a[2])}%, ${l/100})`;break}case"hsv":this.value=`hsva(${e}, ${Math.round(t)}%, ${Math.round(n)}%, ${l/100})`;break;default:{const{r:a,g:o,b:r}=hw(e,t,n);this.value=`rgba(${a}, ${o}, ${r}, ${l/100})`}}else switch(a){case"hsl":{const l=sw(e,t/100,n/100);this.value=`hsl(${e}, ${Math.round(100*l[1])}%, ${Math.round(100*l[2])}%)`;break}case"hsv":this.value=`hsv(${e}, ${Math.round(t)}%, ${Math.round(n)}%)`;break;case"rgb":{const{r:l,g:a,b:o}=hw(e,t,n);this.value=`rgb(${l}, ${a}, ${o})`;break}default:this.value=function({r:e,g:t,b:n}){const l=function(e){e=Math.min(Math.round(e),255);const t=Math.floor(e/16),n=e%16;return""+(cw[t]||t)+(cw[n]||n)};return isNaN(e)||isNaN(t)||isNaN(n)?"":"#"+l(e)+l(t)+l(n)}(hw(e,t,n))}}}let mw=!1;function gw(e,t){if(oy)return;const n=function(e){var n;null===(n=t.drag)||void 0===n||n.call(t,e)},l=function(e){var a;jy(document,"mousemove",n),jy(document,"mouseup",l),document.onselectstart=null,document.ondragstart=null,mw=!1,null===(a=t.end)||void 0===a||a.call(t,e)};zy(e,"mousedown",(function(e){var a;mw||(document.onselectstart=()=>!1,document.ondragstart=()=>!1,zy(document,"mousemove",n),zy(document,"mouseup",l),mw=!0,null===(a=t.start)||void 0===a||a.call(t,e))}))}var yw=Qn({name:"ElSlPanel",props:{color:{type:Object,required:!0}},setup(e){const t=na(),n=lt(0),l=lt(0),a=lt("hsl(0, 100%, 50%)"),o=ca((()=>({hue:e.color.get("hue"),value:e.color.get("value")})));function r(){const o=e.color.get("saturation"),r=e.color.get("value"),i=t.vnode.el;let{clientWidth:s,clientHeight:u}=i;l.value=o*s/100,n.value=(100-r)*u/100,a.value="hsl("+e.color.get("hue")+", 100%, 50%)"}function i(a){const o=t.vnode.el.getBoundingClientRect();let r=a.clientX-o.left,i=a.clientY-o.top;r=Math.max(0,r),r=Math.min(r,o.width),i=Math.max(0,i),i=Math.min(i,o.height),l.value=r,n.value=i,e.color.set({saturation:r/o.width*100,value:100-i/o.height*100})}return Sn((()=>o.value),(()=>{r()})),mn((()=>{gw(t.vnode.el,{drag:e=>{i(e)},end:e=>{i(e)}}),r()})),{cursorTop:n,cursorLeft:l,background:a,colorValue:o,handleDrag:i,update:r}}});const bw=Ll("div",{class:"el-color-svpanel__white"},null,-1),_w=Ll("div",{class:"el-color-svpanel__black"},null,-1),kw=Ll("div",null,null,-1);yw.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:"el-color-svpanel",style:{backgroundColor:e.background}},[bw,_w,Ll("div",{class:"el-color-svpanel__cursor",style:{top:e.cursorTop+"px",left:e.cursorLeft+"px"}},[kw],4)],4)},yw.__file="packages/color-picker/src/components/sv-panel.vue";var xw=Qn({name:"ElColorHueSlider",props:{color:{type:Object,required:!0},vertical:Boolean},setup(e){const t=na(),n=lt(null),l=lt(null),a=lt(0),o=lt(0),r=ca((()=>e.color.get("hue")));function i(l){const a=t.vnode.el.getBoundingClientRect();let o;if(e.vertical){let e=l.clientY-a.top;e=Math.min(e,a.height-n.value.offsetHeight/2),e=Math.max(n.value.offsetHeight/2,e),o=Math.round((e-n.value.offsetHeight/2)/(a.height-n.value.offsetHeight)*360)}else{let e=l.clientX-a.left;e=Math.min(e,a.width-n.value.offsetWidth/2),e=Math.max(n.value.offsetWidth/2,e),o=Math.round((e-n.value.offsetWidth/2)/(a.width-n.value.offsetWidth)*360)}e.color.set("hue",o)}function s(){a.value=function(){const l=t.vnode.el;if(e.vertical)return 0;const a=e.color.get("hue");return l?Math.round(a*(l.offsetWidth-n.value.offsetWidth/2)/360):0}(),o.value=function(){const l=t.vnode.el;if(!e.vertical)return 0;const a=e.color.get("hue");return l?Math.round(a*(l.offsetHeight-n.value.offsetHeight/2)/360):0}()}return Sn((()=>r.value),(()=>{s()})),mn((()=>{const e={drag:e=>{i(e)},end:e=>{i(e)}};gw(l.value,e),gw(n.value,e),s()})),{bar:l,thumb:n,thumbLeft:a,thumbTop:o,hueValue:r,handleClick:function(e){e.target!==n.value&&i(e)},update:s}}});xw.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-color-hue-slider",{"is-vertical":e.vertical}]},[Ll("div",{ref:"bar",class:"el-color-hue-slider__bar",onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t))},null,512),Ll("div",{ref:"thumb",class:"el-color-hue-slider__thumb",style:{left:e.thumbLeft+"px",top:e.thumbTop+"px"}},null,4)],2)},xw.__file="packages/color-picker/src/components/hue-slider.vue";var ww=Qn({name:"ElColorAlphaSlider",props:{color:{type:Object,required:!0},vertical:{type:Boolean,default:!1}},setup(e){const t=na(),n=lt(null),l=lt(null),a=lt(0),o=lt(0),r=lt(null);function i(l){const a=t.vnode.el.getBoundingClientRect();if(e.vertical){let t=l.clientY-a.top;t=Math.max(n.value.offsetHeight/2,t),t=Math.min(t,a.height-n.value.offsetHeight/2),e.color.set("alpha",Math.round((t-n.value.offsetHeight/2)/(a.height-n.value.offsetHeight)*100))}else{let t=l.clientX-a.left;t=Math.max(n.value.offsetWidth/2,t),t=Math.min(t,a.width-n.value.offsetWidth/2),e.color.set("alpha",Math.round((t-n.value.offsetWidth/2)/(a.width-n.value.offsetWidth)*100))}}function s(){a.value=function(){if(e.vertical)return 0;const l=t.vnode.el,a=e.color.get("alpha");return l?Math.round(a*(l.offsetWidth-n.value.offsetWidth/2)/100):0}(),o.value=function(){const l=t.vnode.el;if(!e.vertical)return 0;const a=e.color.get("alpha");return l?Math.round(a*(l.offsetHeight-n.value.offsetHeight/2)/100):0}(),r.value=function(){if(e.color&&e.color.value){const{r:t,g:n,b:l}=e.color.toRgb();return`linear-gradient(to right, rgba(${t}, ${n}, ${l}, 0) 0%, rgba(${t}, ${n}, ${l}, 1) 100%)`}return null}()}return Sn((()=>e.color.get("alpha")),(()=>{s()})),Sn((()=>e.color.value),(()=>{s()})),mn((()=>{const e={drag:e=>{i(e)},end:e=>{i(e)}};gw(l.value,e),gw(n.value,e),s()})),{thumb:n,bar:l,thumbLeft:a,thumbTop:o,background:r,handleClick:function(e){e.target!==n.value&&i(e)},update:s}}});ww.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-color-alpha-slider",{"is-vertical":e.vertical}]},[Ll("div",{ref:"bar",class:"el-color-alpha-slider__bar",style:{background:e.background},onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t))},null,4),Ll("div",{ref:"thumb",class:"el-color-alpha-slider__thumb",style:{left:e.thumbLeft+"px",top:e.thumbTop+"px"}},null,4)],2)},ww.__file="packages/color-picker/src/components/alpha-slider.vue";var Cw=Qn({props:{colors:{type:Array,required:!0},color:{type:Object,required:!0}},setup(e){const{currentColor:t}=Ow(),n=lt(l(e.colors,e.color));function l(e,t){return e.map((e=>{const n=new vw;return n.enableAlpha=!0,n.format="rgba",n.fromString(e),n.selected=n.value===t.value,n}))}return Sn((()=>t.value),(e=>{const t=new vw;t.fromString(e),n.value.forEach((e=>{e.selected=t.compare(e)}))})),wn((()=>{n.value=l(e.colors,e.color)})),{rgbaColors:n,handleSelect:function(t){e.color.fromString(e.colors[t])}}}});const Sw={class:"el-color-predefine"},Ew={class:"el-color-predefine__colors"};Cw.render=function(e,t,n,l,a,o){return wl(),Sl("div",Sw,[Ll("div",Ew,[(wl(!0),Sl(gl,null,pa(e.rgbaColors,((t,n)=>(wl(),Sl("div",{key:e.colors[n],class:["el-color-predefine__color-selector",{selected:t.selected,"is-alpha":t._alpha<100}],onClick:t=>e.handleSelect(n)},[Ll("div",{style:{"background-color":t.value}},null,4)],10,["onClick"])))),128))])])},Cw.__file="packages/color-picker/src/components/predefine.vue";const Mw=Symbol(),Ow=()=>zl(Mw);var Tw=Qn({name:"ElColorPicker",components:{ElPopper:M_,ElInput:Qb,SvPanel:yw,HueSlider:xw,AlphaSlider:ww,ElButton:Z_,Predefine:Cw},directives:{ClickOutside:Sb},props:{modelValue:String,showAlpha:Boolean,colorFormat:String,disabled:Boolean,size:{type:String,validator:Ib},popperClass:String,predefine:Array},emits:["change","active-change",Nb],setup(e,{emit:t}){const n=Ay(),l=zl("elForm",{}),a=zl("elFormItem",{}),o=lt(null),r=lt(null),i=lt(null),s=lt(null),u=Ue(new vw({enableAlpha:e.showAlpha,format:e.colorFormat})),c=lt(!1),d=lt(!1),p=lt(""),f=ca((()=>e.modelValue||d.value?function(e,t){if(!(e instanceof vw))throw Error("color should be instance of _color Class");const{r:n,g:l,b:a}=e.toRgb();return t?`rgba(${n}, ${l}, ${a}, ${e.get("alpha")/100})`:`rgb(${n}, ${l}, ${a})`}(u,e.showAlpha):"transparent")),h=ca((()=>e.size||a.size||n.size)),v=ca((()=>e.disabled||l.disabled)),m=ca((()=>e.modelValue||d.value?u.value:""));Sn((()=>e.modelValue),(e=>{e?e&&e!==u.value&&u.fromString(e):d.value=!1})),Sn((()=>m.value),(e=>{p.value=e,t("active-change",e)})),Sn((()=>u.value),(()=>{e.modelValue||d.value||(d.value=!0)}));const g=uu((function(e){c.value=e}),100);function y(){Dt((()=>{e.modelValue?u.fromString(e.modelValue):d.value=!1}))}return mn((()=>{e.modelValue&&(u.fromString(e.modelValue),p.value=m.value)})),Sn((()=>c.value),(()=>{Dt((()=>{var e,t,n;null===(e=o.value)||void 0===e||e.update(),null===(t=r.value)||void 0===t||t.update(),null===(n=i.value)||void 0===n||n.update()}))})),$l(Mw,{currentColor:m}),{color:u,colorDisabled:v,colorSize:h,displayedColor:f,showPanelColor:d,showPicker:c,customInput:p,handleConfirm:function(){u.fromString(p.value)},hide:function(){g(!1),y()},handleTrigger:function(){v.value||g(!c.value)},clear:function(){var n;g(!1),t(Nb,null),t("change",null),null!==e.modelValue&&(null===(n=a.formItemMitt)||void 0===n||n.emit("el.form.change",null)),y()},confirmValue:function(){var n;const l=u.value;t(Nb,l),t("change",l),null===(n=a.formItemMitt)||void 0===n||n.emit("el.form.change",l),g(!1),Dt((()=>{const t=new vw({enableAlpha:e.showAlpha,format:e.colorFormat});t.fromString(e.modelValue),u.compare(t)||y()}))},t:ak,hue:o,svPanel:r,alpha:i,popper:s}}});const Dw={class:"el-color-dropdown__main-wrapper"},Lw={class:"el-color-dropdown__btns"},Nw={class:"el-color-dropdown__value"},Aw={key:0,class:"el-color-picker__mask"},Pw={key:0,class:"el-color-picker__empty el-icon-close"},Iw={class:"el-color-picker__icon el-icon-arrow-down"};Tw.render=function(e,t,n,l,a,o){const r=dl("hue-slider"),i=dl("sv-panel"),s=dl("alpha-slider"),u=dl("predefine"),d=dl("el-input"),p=dl("el-button"),f=dl("el-popper"),h=hl("click-outside");return wl(),Sl(f,{ref:"popper",visible:e.showPicker,"onUpdate:visible":t[3]||(t[3]=t=>e.showPicker=t),effect:"light","manual-mode":"",trigger:"click","show-arrow":!1,offset:0,transition:"el-zoom-in-top","gpu-acceleration":!1,"popper-class":"el-color-picker__panel el-color-dropdown "+e.popperClass,"stop-popper-mouse-event":!1},{default:Zt((()=>[Un(Ll("div",null,[Ll("div",Dw,[Ll(r,{ref:"hue",class:"hue-slider",color:e.color,vertical:""},null,8,["color"]),Ll(i,{ref:"svPanel",color:e.color},null,8,["color"])]),e.showAlpha?(wl(),Sl(s,{key:0,ref:"alpha",color:e.color},null,8,["color"])):Pl("v-if",!0),e.predefine?(wl(),Sl(u,{key:1,ref:"predefine",color:e.color,colors:e.predefine},null,8,["color","colors"])):Pl("v-if",!0),Ll("div",Lw,[Ll("span",Nw,[Ll(d,{modelValue:e.customInput,"onUpdate:modelValue":t[1]||(t[1]=t=>e.customInput=t),"validate-event":!1,size:"mini",onKeyup:vo(e.handleConfirm,["enter"]),onBlur:e.handleConfirm},null,8,["modelValue","onKeyup","onBlur"])]),Ll(p,{size:"mini",type:"text",class:"el-color-dropdown__link-btn",onClick:e.clear},{default:Zt((()=>[Al(c(e.t("el.colorpicker.clear")),1)])),_:1},8,["onClick"]),Ll(p,{plain:"",size:"mini",class:"el-color-dropdown__btn",onClick:e.confirmValue},{default:Zt((()=>[Al(c(e.t("el.colorpicker.confirm")),1)])),_:1},8,["onClick"])])],512),[[h,e.hide]])])),trigger:Zt((()=>[Ll("div",{class:["el-color-picker",e.colorDisabled?"is-disabled":"",e.colorSize?"el-color-picker--"+e.colorSize:""]},[e.colorDisabled?(wl(),Sl("div",Aw)):Pl("v-if",!0),Ll("div",{class:"el-color-picker__trigger",onClick:t[2]||(t[2]=(...t)=>e.handleTrigger&&e.handleTrigger(...t))},[Ll("span",{class:["el-color-picker__color",{"is-alpha":e.showAlpha}]},[Ll("span",{class:"el-color-picker__color-inner",style:{backgroundColor:e.displayedColor}},null,4),e.modelValue||e.showPanelColor?Pl("v-if",!0):(wl(),Sl("span",Pw))],2),Un(Ll("span",Iw,null,512),[[mo,e.modelValue||e.showPanelColor]])])],2)])),_:1},8,["visible","popper-class"])},Tw.__file="packages/color-picker/src/index.vue",Tw.install=e=>{e.component(Tw.name,Tw)};const Fw=Tw;var Vw=Qn({name:"ElContainer",props:{direction:{type:String,default:""}},setup:(e,{slots:t})=>({isVertical:ca((()=>"vertical"===e.direction||"horizontal"!==e.direction&&(!(!t||!t.default)&&t.default().some((e=>{const t=e.type.name;return"ElHeader"===t||"ElFooter"===t})))))})});Vw.render=function(e,t,n,l,a,o){return wl(),Sl("section",{class:["el-container",{"is-vertical":e.isVertical}]},[Ht(e.$slots,"default")],2)},Vw.__file="packages/container/src/container.vue",Vw.install=e=>{e.component(Vw.name,Vw)};const Bw=Vw;var $w=Qn({props:{date:{type:Object},minDate:{type:Object},maxDate:{type:Object},parsedValue:{type:[Object,Array]},selectionMode:{type:String,default:"day"},showWeekNumber:{type:Boolean,default:!1},disabledDate:{type:Function},cellClassName:{type:Function},rangeState:{type:Object,default:()=>({endDate:null,selecting:!1})}},emits:["changerange","pick","select"],setup(e,t){const n=lt(null),l=lt(null),a=lt([[],[],[],[],[],[]]),o=e.date.$locale().weekStart||7,r=e.date.locale("en").localeData().weekdaysShort().map((e=>e.toLowerCase())),i=ca((()=>o>3?7-o:-o)),s=ca((()=>{const t=e.date.startOf("month");return t.subtract(t.day()||7,"day")})),u=ca((()=>r.concat(r).slice(o,o+7))),c=ca((()=>{var t;const n=e.date.startOf("month"),l=n.day()||7,o=n.daysInMonth(),r=n.subtract(1,"month").daysInMonth(),u=i.value,c=a.value;let d=1;const f="dates"===e.selectionMode?My(e.parsedValue):[],h=Rc().startOf("day");for(let a=0;a<6;a++){const n=c[a];e.showWeekNumber&&(n[0]||(n[0]={type:"week",text:s.value.add(7*a+1,"day").week()}));for(let i=0;i<7;i++){let c=n[e.showWeekNumber?i+1:i];c||(c={row:a,column:i,type:"normal",inRange:!1,start:!1,end:!1});const p=7*a+i,v=s.value.add(p-u,"day");c.type="normal";const m=e.rangeState.endDate||e.maxDate||e.rangeState.selecting&&e.minDate;if(c.inRange=e.minDate&&v.isSameOrAfter(e.minDate,"day")&&m&&v.isSameOrBefore(m,"day")||e.minDate&&v.isSameOrBefore(e.minDate,"day")&&m&&v.isSameOrAfter(m,"day"),(null===(t=e.minDate)||void 0===t?void 0:t.isSameOrAfter(m))?(c.start=m&&v.isSame(m,"day"),c.end=e.minDate&&v.isSame(e.minDate,"day")):(c.start=e.minDate&&v.isSame(e.minDate,"day"),c.end=m&&v.isSame(m,"day")),v.isSame(h,"day")&&(c.type="today"),a>=0&&a<=1){const e=l+u<0?7+l+u:l+u;i+7*a>=e?c.text=d++:(c.text=r-(e-i%7)+1+7*a,c.type="prev-month")}else d<=o?c.text=d++:(c.text=d++-o,c.type="next-month");const g=v.toDate();c.selected=f.find((e=>e.valueOf()===v.valueOf())),c.disabled=e.disabledDate&&e.disabledDate(g),c.customClass=e.cellClassName&&e.cellClassName(g),n[e.showWeekNumber?i+1:i]=c}if("week"===e.selectionMode){const t=e.showWeekNumber?1:0,l=e.showWeekNumber?7:6,a=p(n[t+1]);n[t].inRange=a,n[t].start=a,n[l].inRange=a,n[l].end=a}}return c})),d=(t,n)=>{const l=7*t+(n-(e.showWeekNumber?1:0))-i.value;return s.value.add(l,"day")},p=t=>{if("week"!==e.selectionMode)return!1;let n=e.date.startOf("day");if("prev-month"===t.type&&(n=n.subtract(1,"month")),"next-month"===t.type&&(n=n.add(1,"month")),n=n.date(parseInt(t.text,10)),e.parsedValue&&!Array.isArray(e.parsedValue)){const t=(e.parsedValue.day()-o+7)%7-1;return e.parsedValue.subtract(t,"day").isSame(n,"day")}return!1};return{handleMouseMove:a=>{if(!e.rangeState.selecting)return;let o=a.target;if("SPAN"===o.tagName&&(o=o.parentNode.parentNode),"DIV"===o.tagName&&(o=o.parentNode),"TD"!==o.tagName)return;const r=o.parentNode.rowIndex-1,i=o.cellIndex;c.value[r][i].disabled||r===n.value&&i===l.value||(n.value=r,l.value=i,t.emit("changerange",{selecting:!0,endDate:d(r,i)}))},t:ak,rows:c,isWeekActive:p,getCellClasses:t=>{let n=[];return"normal"!==t.type&&"today"!==t.type||t.disabled?n.push(t.type):(n.push("available"),"today"===t.type&&n.push("today")),"day"!==e.selectionMode||"normal"!==t.type&&"today"!==t.type||(l=t,!((a=e.parsedValue)&&Rc(a).isSame(e.date.date(Number(l.text)),"day")))||n.push("current"),!t.inRange||"normal"!==t.type&&"today"!==t.type&&"week"!==e.selectionMode||(n.push("in-range"),t.start&&n.push("start-date"),t.end&&n.push("end-date")),t.disabled&&n.push("disabled"),t.selected&&n.push("selected"),t.customClass&&n.push(t.customClass),n.join(" ");var l,a},WEEKS:u,handleClick:n=>{let l=n.target;if("SPAN"===l.tagName&&(l=l.parentNode.parentNode),"DIV"===l.tagName&&(l=l.parentNode),"TD"!==l.tagName)return;const a=l.parentNode.rowIndex-1,o=l.cellIndex,r=c.value[a][o];if(r.disabled||"week"===r.type)return;const i=d(a,o);if("range"===e.selectionMode)e.rangeState.selecting?(i>=e.minDate?t.emit("pick",{minDate:e.minDate,maxDate:i}):t.emit("pick",{minDate:i,maxDate:e.minDate}),t.emit("select",!1)):(t.emit("pick",{minDate:i,maxDate:null}),t.emit("select",!0));else if("day"===e.selectionMode)t.emit("pick",i);else if("week"===e.selectionMode){const e=i.week(),n=i.year()+"w"+e;t.emit("pick",{year:i.year(),week:e,value:n,date:i.startOf("week")})}else if("dates"===e.selectionMode){const n=r.selected?My(e.parsedValue).filter((e=>e.valueOf()!==i.valueOf())):My(e.parsedValue).concat([i]);t.emit("pick",n)}}}}});const zw={key:0};$w.render=function(e,t,n,l,a,o){return wl(),Sl("table",{cellspacing:"0",cellpadding:"0",class:["el-date-table",{"is-week-mode":"week"===e.selectionMode}],onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t)),onMousemove:t[2]||(t[2]=(...t)=>e.handleMouseMove&&e.handleMouseMove(...t))},[Ll("tbody",null,[Ll("tr",null,[e.showWeekNumber?(wl(),Sl("th",zw,c(e.t("el.datepicker.week")),1)):Pl("v-if",!0),(wl(!0),Sl(gl,null,pa(e.WEEKS,((t,n)=>(wl(),Sl("th",{key:n},c(e.t("el.datepicker.weeks."+t)),1)))),128))]),(wl(!0),Sl(gl,null,pa(e.rows,((t,n)=>(wl(),Sl("tr",{key:n,class:["el-date-table__row",{current:e.isWeekActive(t[1])}]},[(wl(!0),Sl(gl,null,pa(t,((t,n)=>(wl(),Sl("td",{key:n,class:e.getCellClasses(t)},[Ll("div",null,[Ll("span",null,c(t.text),1)])],2)))),128))],2)))),128))])],34)},$w.__file="packages/date-picker/src/date-picker-com/basic-date-table.vue";var jw=Qn({props:{disabledDate:{type:Function},selectionMode:{type:String,default:"month"},minDate:{type:Object},maxDate:{type:Object},date:{type:Object},parsedValue:{type:Object},rangeState:{type:Object,default:()=>({endDate:null,selecting:!1})}},emits:["changerange","pick","select"],setup(e,t){const n=lt(e.date.locale("en").localeData().monthsShort().map((e=>e.toLowerCase()))),l=lt([[],[],[]]),a=lt(null),o=lt(null),r=ca((()=>{var t;const n=l.value,a=Rc().startOf("month");for(let l=0;l<3;l++){const o=n[l];for(let n=0;n<4;n++){let r=o[n];r||(r={row:l,column:n,type:"normal",inRange:!1,start:!1,end:!1}),r.type="normal";const i=4*l+n,s=e.date.startOf("year").month(i),u=e.rangeState.endDate||e.maxDate||e.rangeState.selecting&&e.minDate;r.inRange=e.minDate&&s.isSameOrAfter(e.minDate,"month")&&u&&s.isSameOrBefore(u,"month")||e.minDate&&s.isSameOrBefore(e.minDate,"month")&&u&&s.isSameOrAfter(u,"month"),(null===(t=e.minDate)||void 0===t?void 0:t.isSameOrAfter(u))?(r.start=u&&s.isSame(u,"month"),r.end=e.minDate&&s.isSame(e.minDate,"month")):(r.start=e.minDate&&s.isSame(e.minDate,"month"),r.end=u&&s.isSame(u,"month")),a.isSame(s)&&(r.type="today"),r.text=i;let c=s.toDate();r.disabled=e.disabledDate&&e.disabledDate(c),o[n]=r}}return n}));return{handleMouseMove:n=>{if(!e.rangeState.selecting)return;let l=n.target;if("A"===l.tagName&&(l=l.parentNode.parentNode),"DIV"===l.tagName&&(l=l.parentNode),"TD"!==l.tagName)return;const i=l.parentNode.rowIndex,s=l.cellIndex;r.value[i][s].disabled||i===a.value&&s===o.value||(a.value=i,o.value=s,t.emit("changerange",{selecting:!0,endDate:e.date.startOf("year").month(4*i+s)}))},handleMonthTableClick:n=>{let l=n.target;if("A"===l.tagName&&(l=l.parentNode.parentNode),"DIV"===l.tagName&&(l=l.parentNode),"TD"!==l.tagName)return;if(Ry(l,"disabled"))return;const a=l.cellIndex,o=4*l.parentNode.rowIndex+a,r=e.date.startOf("year").month(o);"range"===e.selectionMode?e.rangeState.selecting?(r>=e.minDate?t.emit("pick",{minDate:e.minDate,maxDate:r}):t.emit("pick",{minDate:r,maxDate:e.minDate}),t.emit("select",!1)):(t.emit("pick",{minDate:r,maxDate:null}),t.emit("select",!0)):t.emit("pick",o)},rows:r,getCellStyle:t=>{const n={},l=e.date.year(),a=new Date,o=t.text;return n.disabled=!!e.disabledDate&&((e,t)=>{const n=Rc().startOf("month").month(t).year(e),l=n.daysInMonth();return Ak(l).map((e=>n.add(e,"day").toDate()))})(l,o).every(e.disabledDate),n.current=My(e.parsedValue).findIndex((e=>e.year()===l&&e.month()===o))>=0,n.today=a.getFullYear()===l&&a.getMonth()===o,t.inRange&&(n["in-range"]=!0,t.start&&(n["start-date"]=!0),t.end&&(n["end-date"]=!0)),n},t:ak,months:n}}});const Rw={class:"cell"};jw.render=function(e,t,n,l,a,o){return wl(),Sl("table",{class:"el-month-table",onClick:t[1]||(t[1]=(...t)=>e.handleMonthTableClick&&e.handleMonthTableClick(...t)),onMousemove:t[2]||(t[2]=(...t)=>e.handleMouseMove&&e.handleMouseMove(...t))},[Ll("tbody",null,[(wl(!0),Sl(gl,null,pa(e.rows,((t,n)=>(wl(),Sl("tr",{key:n},[(wl(!0),Sl(gl,null,pa(t,((t,n)=>(wl(),Sl("td",{key:n,class:e.getCellStyle(t)},[Ll("div",null,[Ll("a",Rw,c(e.t("el.datepicker.months."+e.months[t.text])),1)])],2)))),128))])))),128))])],32)},jw.__file="packages/date-picker/src/date-picker-com/basic-month-table.vue";var Hw=Qn({props:{disabledDate:{type:Function},parsedValue:{type:Object},date:{type:Object}},emits:["pick"],setup:(e,t)=>({startYear:ca((()=>10*Math.floor(e.date.year()/10))),getCellStyle:t=>{const n={},l=Rc();return n.disabled=!!e.disabledDate&&(e=>{const t=Rc(String(e)).startOf("year"),n=t.endOf("year").dayOfYear();return Ak(n).map((e=>t.add(e,"day").toDate()))})(t).every(e.disabledDate),n.current=My(e.parsedValue).findIndex((e=>e.year()===t))>=0,n.today=l.year()===t,n},handleYearTableClick:e=>{const n=e.target;if("A"===n.tagName){if(Ry(n.parentNode,"disabled"))return;const e=n.textContent||n.innerText;t.emit("pick",Number(e))}}})});const Ww={class:"cell"},Yw={class:"cell"},qw={class:"cell"},Kw={class:"cell"},Uw={class:"cell"},Gw={class:"cell"},Xw={class:"cell"},Zw={class:"cell"},Jw={class:"cell"},Qw={class:"cell"},eC=Ll("td",null,null,-1),tC=Ll("td",null,null,-1);Hw.render=function(e,t,n,l,a,o){return wl(),Sl("table",{class:"el-year-table",onClick:t[1]||(t[1]=(...t)=>e.handleYearTableClick&&e.handleYearTableClick(...t))},[Ll("tbody",null,[Ll("tr",null,[Ll("td",{class:["available",e.getCellStyle(e.startYear+0)]},[Ll("a",Ww,c(e.startYear),1)],2),Ll("td",{class:["available",e.getCellStyle(e.startYear+1)]},[Ll("a",Yw,c(e.startYear+1),1)],2),Ll("td",{class:["available",e.getCellStyle(e.startYear+2)]},[Ll("a",qw,c(e.startYear+2),1)],2),Ll("td",{class:["available",e.getCellStyle(e.startYear+3)]},[Ll("a",Kw,c(e.startYear+3),1)],2)]),Ll("tr",null,[Ll("td",{class:["available",e.getCellStyle(e.startYear+4)]},[Ll("a",Uw,c(e.startYear+4),1)],2),Ll("td",{class:["available",e.getCellStyle(e.startYear+5)]},[Ll("a",Gw,c(e.startYear+5),1)],2),Ll("td",{class:["available",e.getCellStyle(e.startYear+6)]},[Ll("a",Xw,c(e.startYear+6),1)],2),Ll("td",{class:["available",e.getCellStyle(e.startYear+7)]},[Ll("a",Zw,c(e.startYear+7),1)],2)]),Ll("tr",null,[Ll("td",{class:["available",e.getCellStyle(e.startYear+8)]},[Ll("a",Jw,c(e.startYear+8),1)],2),Ll("td",{class:["available",e.getCellStyle(e.startYear+9)]},[Ll("a",Qw,c(e.startYear+9),1)],2),eC,tC])])])},Hw.__file="packages/date-picker/src/date-picker-com/basic-year-table.vue";var nC=Qn({components:{DateTable:$w,ElInput:Qb,ElButton:Z_,TimePickPanel:_k,MonthTable:jw,YearTable:Hw},directives:{clickoutside:Sb},props:{visible:{type:Boolean,default:!1},parsedValue:{type:[Object,Array]},format:{type:String,default:""},type:{type:String,required:!0}},emits:["pick","set-picker-option"],setup(e,t){const n=lt(Rc()),l=ca((()=>n.value.month())),a=ca((()=>n.value.year())),o=lt([]),r=lt(null),i=lt(null),s=t=>!(o.value.length>0&&(o.value,e.format,0)),u=e=>v.value?e.millisecond(0):M?Rc(M).year(e.year()).month(e.month()).date(e.date()):e.startOf("day"),c=(e,...n)=>{if(e)if(Array.isArray(e)){const l=e.map(u);t.emit("pick",l,...n)}else t.emit("pick",u(e),...n);else t.emit("pick",e,...n);r.value=null,i.value=null},d=lt("date"),p=ca((()=>{const e=ak("el.datepicker.year");if("year"===d.value){const t=10*Math.floor(a.value/10);return e?t+" "+e+" - "+(t+9)+" "+e:t+" - "+(t+9)}return a.value+" "+e})),f=ca((()=>["week","month","year","dates"].includes(e.type)?e.type:"day"));Sn((()=>f.value),(e=>{["month","year"].includes(e)?d.value=e:d.value="date"}),{immediate:!0});const h=ca((()=>!!C.length)),v=ca((()=>"datetime"===e.type||"datetimerange"===e.type)),m=ca((()=>v.value||"dates"===f.value)),g=ca((()=>Ik(e.format))),y=ca((()=>Pk(e.format))),b=ca((()=>i.value?i.value:e.parsedValue||O?(e.parsedValue||n.value).format(g.value):void 0)),_=ca((()=>r.value?r.value:e.parsedValue||O?(e.parsedValue||n.value).format(y.value):void 0)),k=lt(!1),x=()=>Rc(O);t.emit("set-picker-option",["isValidValue",e=>e.isValid()&&(!S||!S(e.toDate()))]),t.emit("set-picker-option",["formatToString",t=>"dates"===f.value?t.map((t=>t.format(e.format))):t.format(e.format)]),t.emit("set-picker-option",["parseUserInput",t=>Rc(t,e.format)]),t.emit("set-picker-option",["handleKeydown",l=>{const{code:a,keyCode:o}=l,s=[vb.up,vb.down,vb.left,vb.right];e.visible&&!k.value&&(s.includes(a)&&((e=>{const l={year:{38:-4,40:4,37:-1,39:1,offset:(e,t)=>e.setFullYear(e.getFullYear()+t)},month:{38:-4,40:4,37:-1,39:1,offset:(e,t)=>e.setMonth(e.getMonth()+t)},week:{38:-1,40:1,37:-1,39:1,offset:(e,t)=>e.setDate(e.getDate()+7*t)},day:{38:-7,40:7,37:-1,39:1,offset:(e,t)=>e.setDate(e.getDate()+t)}},a=n.value.toDate();for(;Math.abs(n.value.diff(a,"year",!0))<1;){const o=l[f.value];if(o.offset(a,o[e]),S&&S(a))continue;const r=Rc(a);n.value=r,t.emit("pick",r,!0);break}})(o),l.stopPropagation(),l.preventDefault()),a===vb.enter&&null===r.value&&null===i.value&&c(n,!1))}]);const w=zl("EP_PICKER_BASE"),{shortcuts:C,disabledDate:S,cellClassName:E,defaultTime:M,defaultValue:O,arrowControl:T}=w.props;return Sn((()=>e.parsedValue),(e=>{if(e){if("dates"===f.value)return;if(Array.isArray(e))return;n.value=e}else n.value=x()}),{immediate:!0}),{handleTimePick:(t,l,a)=>{const o=e.parsedValue?e.parsedValue.hour(t.hour()).minute(t.minute()).second(t.second()):t;n.value=o,c(n.value,!0),a||(k.value=l)},handleTimePickClose:()=>{k.value=!1},onTimePickerInputFocus:()=>{k.value=!0},timePickerVisible:k,visibleTime:b,visibleDate:_,showTime:v,changeToNow:()=>{const e=Rc().toDate();S&&S(e)||!s()||(n.value=Rc(),c(n.value))},onConfirm:()=>{if("dates"===f.value)c(e.parsedValue);else{let t=e.parsedValue;if(!t){const e=Rc(M),n=x();t=e.year(n.year()).month(n.month()).date(n.date())}n.value=t,c(t)}},footerVisible:m,handleYearPick:e=>{"year"===f.value?(n.value=n.value.startOf("year").year(e),c(n.value)):(n.value=n.value.year(e),d.value="month")},showMonthPicker:()=>{d.value="month"},showYearPicker:()=>{d.value="year"},handleMonthPick:e=>{n.value=n.value.startOf("month").month(e),"month"===f.value?c(n.value):d.value="date"},hasShortcuts:h,shortcuts:C,arrowControl:T,disabledDate:S,cellClassName:E,selectionMode:f,handleShortcutClick:e=>{e.value?c(Rc(e.value)):e.onClick&&e.onClick(t)},prevYear_:()=>{"year"===d.value?n.value=n.value.subtract(10,"year"):n.value=n.value.subtract(1,"year")},nextYear_:()=>{"year"===d.value?n.value=n.value.add(10,"year"):n.value=n.value.add(1,"year")},prevMonth_:()=>{n.value=n.value.subtract(1,"month")},nextMonth_:()=>{n.value=n.value.add(1,"month")},innerDate:n,t:ak,yearLabel:p,currentView:d,month:l,handleDatePick:t=>{if("day"===f.value){let l=e.parsedValue?e.parsedValue.year(t.year()).month(t.month()).date(t.date()):t;s()||(l=o.value[0][0].year(t.year()).month(t.month()).date(t.date())),n.value=l,c(l,v.value)}else"week"===f.value?c(t.date):"dates"===f.value&&c(t,!0)},handleVisibleTimeChange:e=>{const t=Rc(e,g.value);t.isValid()&&s()&&(n.value=t.year(n.value.year()).month(n.value.month()).date(n.value.date()),i.value=null,k.value=!1,c(n.value,!0))},handleVisibleDateChange:e=>{const t=Rc(e,y.value);if(t.isValid()){if(S&&S(t.toDate()))return;n.value=t.hour(n.value.hour()).minute(n.value.minute()).second(n.value.second()),r.value=null,c(n.value,!0)}},timeFormat:g,userInputTime:i,userInputDate:r}}});const lC={class:"el-picker-panel__body-wrapper"},aC={key:0,class:"el-picker-panel__sidebar"},oC={class:"el-picker-panel__body"},rC={key:0,class:"el-date-picker__time-header"},iC={class:"el-date-picker__editor-wrap"},sC={class:"el-date-picker__editor-wrap"},uC={class:"el-picker-panel__content"},cC={class:"el-picker-panel__footer"};nC.render=function(e,t,n,l,a,o){const r=dl("el-input"),i=dl("time-pick-panel"),s=dl("date-table"),u=dl("year-table"),d=dl("month-table"),p=dl("el-button"),f=hl("clickoutside");return wl(),Sl("div",{class:["el-picker-panel el-date-picker",[{"has-sidebar":e.$slots.sidebar||e.hasShortcuts,"has-time":e.showTime}]]},[Ll("div",lC,[Ht(e.$slots,"sidebar",{class:"el-picker-panel__sidebar"}),e.hasShortcuts?(wl(),Sl("div",aC,[(wl(!0),Sl(gl,null,pa(e.shortcuts,((t,n)=>(wl(),Sl("button",{key:n,type:"button",class:"el-picker-panel__shortcut",onClick:n=>e.handleShortcutClick(t)},c(t.text),9,["onClick"])))),128))])):Pl("v-if",!0),Ll("div",oC,[e.showTime?(wl(),Sl("div",rC,[Ll("span",iC,[Ll(r,{placeholder:e.t("el.datepicker.selectDate"),"model-value":e.visibleDate,size:"small",onInput:t[1]||(t[1]=t=>e.userInputDate=t),onChange:e.handleVisibleDateChange},null,8,["placeholder","model-value","onChange"])]),Un(Ll("span",sC,[Ll(r,{placeholder:e.t("el.datepicker.selectTime"),"model-value":e.visibleTime,size:"small",onFocus:e.onTimePickerInputFocus,onInput:t[2]||(t[2]=t=>e.userInputTime=t),onChange:e.handleVisibleTimeChange},null,8,["placeholder","model-value","onFocus","onChange"]),Ll(i,{visible:e.timePickerVisible,format:e.timeFormat,"time-arrow-control":e.arrowControl,"parsed-value":e.innerDate,onPick:e.handleTimePick},null,8,["visible","format","time-arrow-control","parsed-value","onPick"])],512),[[f,e.handleTimePickClose]])])):Pl("v-if",!0),Un(Ll("div",{class:["el-date-picker__header",{"el-date-picker__header--bordered":"year"===e.currentView||"month"===e.currentView}]},[Ll("button",{type:"button","aria-label":e.t("el.datepicker.prevYear"),class:"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-d-arrow-left",onClick:t[3]||(t[3]=(...t)=>e.prevYear_&&e.prevYear_(...t))},null,8,["aria-label"]),Un(Ll("button",{type:"button","aria-label":e.t("el.datepicker.prevMonth"),class:"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-arrow-left",onClick:t[4]||(t[4]=(...t)=>e.prevMonth_&&e.prevMonth_(...t))},null,8,["aria-label"]),[[mo,"date"===e.currentView]]),Ll("span",{role:"button",class:"el-date-picker__header-label",onClick:t[5]||(t[5]=(...t)=>e.showYearPicker&&e.showYearPicker(...t))},c(e.yearLabel),1),Un(Ll("span",{role:"button",class:["el-date-picker__header-label",{active:"month"===e.currentView}],onClick:t[6]||(t[6]=(...t)=>e.showMonthPicker&&e.showMonthPicker(...t))},c(e.t("el.datepicker.month"+(e.month+1))),3),[[mo,"date"===e.currentView]]),Ll("button",{type:"button","aria-label":e.t("el.datepicker.nextYear"),class:"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-d-arrow-right",onClick:t[7]||(t[7]=(...t)=>e.nextYear_&&e.nextYear_(...t))},null,8,["aria-label"]),Un(Ll("button",{type:"button","aria-label":e.t("el.datepicker.nextMonth"),class:"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-arrow-right",onClick:t[8]||(t[8]=(...t)=>e.nextMonth_&&e.nextMonth_(...t))},null,8,["aria-label"]),[[mo,"date"===e.currentView]])],2),[[mo,"time"!==e.currentView]]),Ll("div",uC,["date"===e.currentView?(wl(),Sl(s,{key:0,"selection-mode":e.selectionMode,date:e.innerDate,"parsed-value":e.parsedValue,"disabled-date":e.disabledDate,onPick:e.handleDatePick},null,8,["selection-mode","date","parsed-value","disabled-date","onPick"])):Pl("v-if",!0),"year"===e.currentView?(wl(),Sl(u,{key:1,date:e.innerDate,"disabled-date":e.disabledDate,"parsed-value":e.parsedValue,onPick:e.handleYearPick},null,8,["date","disabled-date","parsed-value","onPick"])):Pl("v-if",!0),"month"===e.currentView?(wl(),Sl(d,{key:2,date:e.innerDate,"parsed-value":e.parsedValue,"disabled-date":e.disabledDate,onPick:e.handleMonthPick},null,8,["date","parsed-value","disabled-date","onPick"])):Pl("v-if",!0)])])]),Un(Ll("div",cC,[Un(Ll(p,{size:"mini",type:"text",class:"el-picker-panel__link-btn",onClick:e.changeToNow},{default:Zt((()=>[Al(c(e.t("el.datepicker.now")),1)])),_:1},8,["onClick"]),[[mo,"dates"!==e.selectionMode]]),Ll(p,{plain:"",size:"mini",class:"el-picker-panel__link-btn",onClick:e.onConfirm},{default:Zt((()=>[Al(c(e.t("el.datepicker.confirm")),1)])),_:1},8,["onClick"])],512),[[mo,e.footerVisible&&"date"===e.currentView]])],2)},nC.__file="packages/date-picker/src/date-picker-com/panel-date-pick.vue";var dC=Qn({directives:{clickoutside:Sb},components:{TimePickPanel:_k,DateTable:$w,ElInput:Qb,ElButton:Z_},props:{unlinkPanels:Boolean,parsedValue:{type:Array},type:{type:String,required:!0}},emits:["pick","set-picker-option"],setup(e,t){const n=lt(Rc()),l=lt(Rc().add(1,"month")),a=lt(null),o=lt(null),r=lt({min:null,max:null}),i=lt({min:null,max:null}),s=ca((()=>n.value.year()+" "+ak("el.datepicker.year")+" "+ak("el.datepicker.month"+(n.value.month()+1)))),u=ca((()=>l.value.year()+" "+ak("el.datepicker.year")+" "+ak("el.datepicker.month"+(l.value.month()+1)))),c=ca((()=>n.value.year())),d=ca((()=>n.value.month())),p=ca((()=>l.value.year())),f=ca((()=>l.value.month())),h=ca((()=>!!P.length)),v=ca((()=>null!==r.value.min?r.value.min:a.value?a.value.format(_.value):"")),m=ca((()=>null!==r.value.max?r.value.max:o.value||a.value?(o.value||a.value).format(_.value):"")),g=ca((()=>null!==i.value.min?i.value.min:a.value?a.value.format(b.value):"")),y=ca((()=>null!==i.value.max?i.value.max:o.value||a.value?(o.value||a.value).format(b.value):"")),b=ca((()=>Ik(V))),_=ca((()=>Pk(V))),k=ca((()=>{const t=(d.value+1)%12,n=d.value+1>=12?1:0;return e.unlinkPanels&&new Date(c.value+n,t)<new Date(p.value,f.value)})),x=ca((()=>e.unlinkPanels&&12*p.value+f.value-(12*c.value+d.value+1)>=12)),w=e=>Array.isArray(e)&&e[0]&&e[1]&&e[0].valueOf()<=e[1].valueOf(),C=lt({endDate:null,selecting:!1}),S=ca((()=>!(a.value&&o.value&&!C.value.selecting&&w([a.value,o.value])))),E=ca((()=>"datetime"===e.type||"datetimerange"===e.type)),M=(e=!1)=>{w([a.value,o.value])&&t.emit("pick",[a.value,o.value],e)},O=(e,t)=>{if(e)return B?Rc(B[t]||B).year(e.year()).month(e.month()).date(e.date()):e},T=lt(!1),D=lt(!1),L=()=>{n.value=N()[0],l.value=n.value.add(1,"month"),t.emit("pick",null)},N=()=>{let t;if(Array.isArray($)){const t=Rc($[0]);let n=Rc($[1]);return e.unlinkPanels||(n=t.add(1,"month")),[t,n]}return t=$?Rc($):Rc(),[t,t.add(1,"month")]};t.emit("set-picker-option",["isValidValue",w]),t.emit("set-picker-option",["parseUserInput",e=>Array.isArray(e)?e.map((e=>Rc(e,V))):Rc(e,V)]),t.emit("set-picker-option",["formatToString",e=>Array.isArray(e)?e.map((e=>e.format(V))):e.format(V)]),t.emit("set-picker-option",["handleClear",L]);const A=zl("EP_PICKER_BASE"),{shortcuts:P,disabledDate:I,cellClassName:F,format:V,defaultTime:B,defaultValue:$,arrowControl:z}=A.props;return Sn((()=>e.parsedValue),(t=>{if(t&&2===t.length)if(a.value=t[0],o.value=t[1],n.value=a.value,e.unlinkPanels&&o.value){const e=a.value.year(),t=a.value.month(),n=o.value.year(),r=o.value.month();l.value=e===n&&t===r?o.value.add(1,"month"):o.value}else l.value=n.value.add(1,"month");else{const e=N();a.value=null,o.value=null,n.value=e[0],l.value=e[1]}}),{immediate:!0}),{shortcuts:P,disabledDate:I,cellClassName:F,minTimePickerVisible:T,maxTimePickerVisible:D,handleMinTimeClose:()=>{T.value=!1},handleMaxTimeClose:()=>{D.value=!1},handleShortcutClick:e=>{e.value?t.emit("pick",[Rc(e.value[0]),Rc(e.value[1])]):e.onClick&&e.onClick(t)},rangeState:C,minDate:a,maxDate:o,handleRangePick:(e,t=!0)=>{const n=O(e.minDate,0),l=O(e.maxDate,1);o.value===l&&a.value===n||(o.value=l,a.value=n,t&&!E.value&&M())},onSelect:e=>{C.value.selecting=e,e||(C.value.endDate=null)},handleChangeRange:e=>{C.value=e},btnDisabled:S,enableYearArrow:x,enableMonthArrow:k,rightPrevMonth:()=>{l.value=l.value.subtract(1,"month")},rightPrevYear:()=>{l.value=l.value.subtract(1,"year")},rightNextMonth:()=>{e.unlinkPanels?l.value=l.value.add(1,"month"):(n.value=n.value.add(1,"month"),l.value=n.value.add(1,"month"))},rightNextYear:()=>{e.unlinkPanels?l.value=l.value.add(1,"year"):(n.value=n.value.add(1,"year"),l.value=n.value.add(1,"month"))},leftPrevMonth:()=>{n.value=n.value.subtract(1,"month"),e.unlinkPanels||(l.value=n.value.add(1,"month"))},leftPrevYear:()=>{n.value=n.value.subtract(1,"year"),e.unlinkPanels||(l.value=n.value.add(1,"month"))},leftNextMonth:()=>{n.value=n.value.add(1,"month")},leftNextYear:()=>{n.value=n.value.add(1,"year")},hasShortcuts:h,leftLabel:s,rightLabel:u,leftDate:n,rightDate:l,showTime:E,t:ak,minVisibleDate:v,maxVisibleDate:m,minVisibleTime:g,maxVisibleTime:y,arrowControl:z,handleDateInput:(t,i)=>{r.value[i]=t;const s=Rc(t,_.value);if(s.isValid()){if(I&&I(s.toDate()))return;"min"===i?(n.value=s,a.value=(a.value||n.value).year(s.year()).month(s.month()).date(s.date()),e.unlinkPanels||(l.value=s.add(1,"month"),o.value=a.value.add(1,"month"))):(l.value=s,o.value=(o.value||l.value).year(s.year()).month(s.month()).date(s.date()),e.unlinkPanels||(n.value=s.subtract(1,"month"),a.value=o.value.subtract(1,"month")))}},handleDateChange:(e,t)=>{r.value[t]=null},handleTimeInput:(e,t)=>{i.value[t]=e;const r=Rc(e,b.value);r.isValid()&&("min"===t?(T.value=!0,a.value=(a.value||n.value).hour(r.hour()).minute(r.minute()).second(r.second()),o.value&&!o.value.isBefore(a.value)||(o.value=a.value)):(D.value=!0,o.value=(o.value||l.value).hour(r.hour()).minute(r.minute()).second(r.second()),l.value=o.value,o.value&&o.value.isBefore(a.value)&&(a.value=o.value)))},handleTimeChange:(e,t)=>{i.value[t]=null,"min"===t?(n.value=a.value,T.value=!1):(l.value=o.value,D.value=!1)},handleMinTimePick:(e,t,l)=>{i.value.min||(e&&(n.value=e,a.value=(a.value||n.value).hour(e.hour()).minute(e.minute()).second(e.second())),l||(T.value=t),o.value&&!o.value.isBefore(a.value)||(o.value=a.value))},handleMaxTimePick:(e,t,n)=>{i.value.max||(e&&(l.value=e,o.value=(o.value||l.value).hour(e.hour()).minute(e.minute()).second(e.second())),n||(D.value=t),o.value&&o.value.isBefore(a.value)&&(a.value=o.value))},handleClear:L,handleConfirm:M,timeFormat:b}}});const pC={class:"el-picker-panel__body-wrapper"},fC={key:0,class:"el-picker-panel__sidebar"},hC={class:"el-picker-panel__body"},vC={key:0,class:"el-date-range-picker__time-header"},mC={class:"el-date-range-picker__editors-wrap"},gC={class:"el-date-range-picker__time-picker-wrap"},yC={class:"el-date-range-picker__time-picker-wrap"},bC=Ll("span",{class:"el-icon-arrow-right"},null,-1),_C={class:"el-date-range-picker__editors-wrap is-right"},kC={class:"el-date-range-picker__time-picker-wrap"},xC={class:"el-date-range-picker__time-picker-wrap"},wC={class:"el-picker-panel__content el-date-range-picker__content is-left"},CC={class:"el-date-range-picker__header"},SC={class:"el-picker-panel__content el-date-range-picker__content is-right"},EC={class:"el-date-range-picker__header"},MC={key:0,class:"el-picker-panel__footer"};dC.render=function(e,t,n,l,a,o){const r=dl("el-input"),i=dl("time-pick-panel"),s=dl("date-table"),u=dl("el-button"),d=hl("clickoutside");return wl(),Sl("div",{class:["el-picker-panel el-date-range-picker",[{"has-sidebar":e.$slots.sidebar||e.hasShortcuts,"has-time":e.showTime}]]},[Ll("div",pC,[Ht(e.$slots,"sidebar",{class:"el-picker-panel__sidebar"}),e.hasShortcuts?(wl(),Sl("div",fC,[(wl(!0),Sl(gl,null,pa(e.shortcuts,((t,n)=>(wl(),Sl("button",{key:n,type:"button",class:"el-picker-panel__shortcut",onClick:n=>e.handleShortcutClick(t)},c(t.text),9,["onClick"])))),128))])):Pl("v-if",!0),Ll("div",hC,[e.showTime?(wl(),Sl("div",vC,[Ll("span",mC,[Ll("span",gC,[Ll(r,{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.startDate"),class:"el-date-range-picker__editor","model-value":e.minVisibleDate,onInput:t[1]||(t[1]=t=>e.handleDateInput(t,"min")),onChange:t[2]||(t[2]=t=>e.handleDateChange(t,"min"))},null,8,["disabled","placeholder","model-value"])]),Un(Ll("span",yC,[Ll(r,{size:"small",class:"el-date-range-picker__editor",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.startTime"),"model-value":e.minVisibleTime,onFocus:t[3]||(t[3]=t=>e.minTimePickerVisible=!0),onInput:t[4]||(t[4]=t=>e.handleTimeInput(t,"min")),onChange:t[5]||(t[5]=t=>e.handleTimeChange(t,"min"))},null,8,["disabled","placeholder","model-value"]),Ll(i,{visible:e.minTimePickerVisible,format:e.timeFormat,"datetime-role":"start","time-arrow-control":e.arrowControl,"parsed-value":e.leftDate,onPick:e.handleMinTimePick},null,8,["visible","format","time-arrow-control","parsed-value","onPick"])],512),[[d,e.handleMinTimeClose]])]),bC,Ll("span",_C,[Ll("span",kC,[Ll(r,{size:"small",class:"el-date-range-picker__editor",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.endDate"),"model-value":e.maxVisibleDate,readonly:!e.minDate,onInput:t[6]||(t[6]=t=>e.handleDateInput(t,"max")),onChange:t[7]||(t[7]=t=>e.handleDateChange(t,"max"))},null,8,["disabled","placeholder","model-value","readonly"])]),Un(Ll("span",xC,[Ll(r,{size:"small",class:"el-date-range-picker__editor",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.endTime"),"model-value":e.maxVisibleTime,readonly:!e.minDate,onFocus:t[8]||(t[8]=t=>e.minDate&&(e.maxTimePickerVisible=!0)),onInput:t[9]||(t[9]=t=>e.handleTimeInput(t,"max")),onChange:t[10]||(t[10]=t=>e.handleTimeChange(t,"max"))},null,8,["disabled","placeholder","model-value","readonly"]),Ll(i,{"datetime-role":"end",visible:e.maxTimePickerVisible,format:e.timeFormat,"time-arrow-control":e.arrowControl,"parsed-value":e.rightDate,onPick:e.handleMaxTimePick},null,8,["visible","format","time-arrow-control","parsed-value","onPick"])],512),[[d,e.handleMaxTimeClose]])])])):Pl("v-if",!0),Ll("div",wC,[Ll("div",CC,[Ll("button",{type:"button",class:"el-picker-panel__icon-btn el-icon-d-arrow-left",onClick:t[11]||(t[11]=(...t)=>e.leftPrevYear&&e.leftPrevYear(...t))}),Ll("button",{type:"button",class:"el-picker-panel__icon-btn el-icon-arrow-left",onClick:t[12]||(t[12]=(...t)=>e.leftPrevMonth&&e.leftPrevMonth(...t))}),e.unlinkPanels?(wl(),Sl("button",{key:0,type:"button",disabled:!e.enableYearArrow,class:[{"is-disabled":!e.enableYearArrow},"el-picker-panel__icon-btn el-icon-d-arrow-right"],onClick:t[13]||(t[13]=(...t)=>e.leftNextYear&&e.leftNextYear(...t))},null,10,["disabled"])):Pl("v-if",!0),e.unlinkPanels?(wl(),Sl("button",{key:1,type:"button",disabled:!e.enableMonthArrow,class:[{"is-disabled":!e.enableMonthArrow},"el-picker-panel__icon-btn el-icon-arrow-right"],onClick:t[14]||(t[14]=(...t)=>e.leftNextMonth&&e.leftNextMonth(...t))},null,10,["disabled"])):Pl("v-if",!0),Ll("div",null,c(e.leftLabel),1)]),Ll(s,{"selection-mode":"range",date:e.leftDate,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,"cell-class-name":e.cellClassName,onChangerange:e.handleChangeRange,onPick:e.handleRangePick,onSelect:e.onSelect},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onPick","onSelect"])]),Ll("div",SC,[Ll("div",EC,[e.unlinkPanels?(wl(),Sl("button",{key:0,type:"button",disabled:!e.enableYearArrow,class:[{"is-disabled":!e.enableYearArrow},"el-picker-panel__icon-btn el-icon-d-arrow-left"],onClick:t[15]||(t[15]=(...t)=>e.rightPrevYear&&e.rightPrevYear(...t))},null,10,["disabled"])):Pl("v-if",!0),e.unlinkPanels?(wl(),Sl("button",{key:1,type:"button",disabled:!e.enableMonthArrow,class:[{"is-disabled":!e.enableMonthArrow},"el-picker-panel__icon-btn el-icon-arrow-left"],onClick:t[16]||(t[16]=(...t)=>e.rightPrevMonth&&e.rightPrevMonth(...t))},null,10,["disabled"])):Pl("v-if",!0),Ll("button",{type:"button",class:"el-picker-panel__icon-btn el-icon-d-arrow-right",onClick:t[17]||(t[17]=(...t)=>e.rightNextYear&&e.rightNextYear(...t))}),Ll("button",{type:"button",class:"el-picker-panel__icon-btn el-icon-arrow-right",onClick:t[18]||(t[18]=(...t)=>e.rightNextMonth&&e.rightNextMonth(...t))}),Ll("div",null,c(e.rightLabel),1)]),Ll(s,{"selection-mode":"range",date:e.rightDate,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,"cell-class-name":e.cellClassName,onChangerange:e.handleChangeRange,onPick:e.handleRangePick,onSelect:e.onSelect},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onPick","onSelect"])])])]),e.showTime?(wl(),Sl("div",MC,[Ll(u,{size:"mini",type:"text",class:"el-picker-panel__link-btn",onClick:e.handleClear},{default:Zt((()=>[Al(c(e.t("el.datepicker.clear")),1)])),_:1},8,["onClick"]),Ll(u,{plain:"",size:"mini",class:"el-picker-panel__link-btn",disabled:e.btnDisabled,onClick:t[19]||(t[19]=t=>e.handleConfirm(!1))},{default:Zt((()=>[Al(c(e.t("el.datepicker.confirm")),1)])),_:1},8,["disabled"])])):Pl("v-if",!0)],2)},dC.__file="packages/date-picker/src/date-picker-com/panel-date-range.vue";var OC=Qn({components:{MonthTable:jw},props:{unlinkPanels:Boolean,parsedValue:{type:Array}},emits:["pick","set-picker-option"],setup(e,t){const n=lt(Rc()),l=lt(Rc().add(1,"year")),a=ca((()=>!!h.length)),o=ca((()=>`${n.value.year()} ${ak("el.datepicker.year")}`)),r=ca((()=>`${l.value.year()} ${ak("el.datepicker.year")}`)),i=ca((()=>n.value.year())),s=ca((()=>l.value.year()===n.value.year()?n.value.year()+1:l.value.year())),u=ca((()=>e.unlinkPanels&&s.value>i.value+1)),c=lt(null),d=lt(null),p=lt({endDate:null,selecting:!1});t.emit("set-picker-option",["formatToString",e=>e.map((e=>e.format(m)))]);const f=zl("EP_PICKER_BASE"),{shortcuts:h,disabledDate:v,format:m,defaultValue:g}=f.props;return Sn((()=>e.parsedValue),(t=>{if(t&&2===t.length)if(c.value=t[0],d.value=t[1],n.value=c.value,e.unlinkPanels&&d.value){const e=c.value.year(),t=d.value.year();l.value=e===t?d.value.add(1,"year"):d.value}else l.value=n.value.add(1,"year");else{const t=(()=>{let t;if(Array.isArray(g)){const t=Rc(g[0]);let n=Rc(g[1]);return e.unlinkPanels||(n=t.add(1,"year")),[t,n]}return t=g?Rc(g):Rc(),[t,t.add(1,"year")]})();n.value=t[0],l.value=t[1]}}),{immediate:!0}),{shortcuts:h,disabledDate:v,onSelect:e=>{p.value.selecting=e,e||(p.value.endDate=null)},handleRangePick:(e,n=!0)=>{const l=e.minDate,a=e.maxDate;d.value===a&&c.value===l||(d.value=a,c.value=l,n&&((e=!1)=>{var n;n=[c.value,d.value],Array.isArray(n)&&n&&n[0]&&n[1]&&n[0].valueOf()<=n[1].valueOf()&&t.emit("pick",[c.value,d.value],e)})())},rangeState:p,handleChangeRange:e=>{p.value=e},minDate:c,maxDate:d,enableYearArrow:u,leftLabel:o,rightLabel:r,leftNextYear:()=>{n.value=n.value.add(1,"year")},leftPrevYear:()=>{n.value=n.value.subtract(1,"year"),e.unlinkPanels||(l.value=l.value.subtract(1,"year"))},rightNextYear:()=>{e.unlinkPanels||(n.value=n.value.add(1,"year")),l.value=l.value.add(1,"year")},rightPrevYear:()=>{l.value=l.value.subtract(1,"year")},t:ak,leftDate:n,rightDate:l,hasShortcuts:a,handleShortcutClick:e=>{e.value?t.emit("pick",[Rc(e.value[0]),Rc(e.value[1])]):e.onClick&&e.onClick(t)}}}});const TC={class:"el-picker-panel__body-wrapper"},DC={key:0,class:"el-picker-panel__sidebar"},LC={class:"el-picker-panel__body"},NC={class:"el-picker-panel__content el-date-range-picker__content is-left"},AC={class:"el-date-range-picker__header"},PC={class:"el-picker-panel__content el-date-range-picker__content is-right"},IC={class:"el-date-range-picker__header"};OC.render=function(e,t,n,l,a,o){const r=dl("month-table");return wl(),Sl("div",{class:["el-picker-panel el-date-range-picker",[{"has-sidebar":e.$slots.sidebar||e.hasShortcuts}]]},[Ll("div",TC,[Ht(e.$slots,"sidebar",{class:"el-picker-panel__sidebar"}),e.hasShortcuts?(wl(),Sl("div",DC,[(wl(!0),Sl(gl,null,pa(e.shortcuts,((t,n)=>(wl(),Sl("button",{key:n,type:"button",class:"el-picker-panel__shortcut",onClick:n=>e.handleShortcutClick(t)},c(t.text),9,["onClick"])))),128))])):Pl("v-if",!0),Ll("div",LC,[Ll("div",NC,[Ll("div",AC,[Ll("button",{type:"button",class:"el-picker-panel__icon-btn el-icon-d-arrow-left",onClick:t[1]||(t[1]=(...t)=>e.leftPrevYear&&e.leftPrevYear(...t))}),e.unlinkPanels?(wl(),Sl("button",{key:0,type:"button",disabled:!e.enableYearArrow,class:[{"is-disabled":!e.enableYearArrow},"el-picker-panel__icon-btn el-icon-d-arrow-right"],onClick:t[2]||(t[2]=(...t)=>e.leftNextYear&&e.leftNextYear(...t))},null,10,["disabled"])):Pl("v-if",!0),Ll("div",null,c(e.leftLabel),1)]),Ll(r,{"selection-mode":"range",date:e.leftDate,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,onChangerange:e.handleChangeRange,onPick:e.handleRangePick,onSelect:e.onSelect},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onPick","onSelect"])]),Ll("div",PC,[Ll("div",IC,[e.unlinkPanels?(wl(),Sl("button",{key:0,type:"button",disabled:!e.enableYearArrow,class:[{"is-disabled":!e.enableYearArrow},"el-picker-panel__icon-btn el-icon-d-arrow-left"],onClick:t[3]||(t[3]=(...t)=>e.rightPrevYear&&e.rightPrevYear(...t))},null,10,["disabled"])):Pl("v-if",!0),Ll("button",{type:"button",class:"el-picker-panel__icon-btn el-icon-d-arrow-right",onClick:t[4]||(t[4]=(...t)=>e.rightNextYear&&e.rightNextYear(...t))}),Ll("div",null,c(e.rightLabel),1)]),Ll(r,{"selection-mode":"range",date:e.rightDate,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,onChangerange:e.handleChangeRange,onPick:e.handleRangePick,onSelect:e.onSelect},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onPick","onSelect"])])])])],2)},OC.__file="packages/date-picker/src/date-picker-com/panel-month-range.vue",Rc.extend(Wc),Rc.extend(Mv),Rc.extend(qc),Rc.extend(Tv),Rc.extend(Lv),Rc.extend(Av),Rc.extend(Iv),Rc.extend(Vv);const FC=Qn({name:"ElDatePicker",install:null,props:Object.assign(Object.assign({},rk),{type:{type:String,default:"date"}}),emits:["update:modelValue"],setup(e,t){$l("ElPopperOptions",e.popperOptions);const n=lt(null),l=ok[e.type]||"YYYY-MM-DD",a=Object.assign(Object.assign({},e),{focus:()=>{var e;null===(e=n.value)||void 0===e||e.handleFocus()}});return t.expose(a),()=>da(uk,Object.assign(Object.assign({format:l},e),{type:e.type,ref:n,"onUpdate:modelValue":e=>t.emit("update:modelValue",e)}),{default:t=>{return da("daterange"===(n=e.type)||"datetimerange"===n?dC:"monthrange"===n?OC:nC,t);var n}})}});FC.install=e=>{e.component(FC.name,FC)};var VC=Qn({name:"ElOverlay",props:{mask:{type:Boolean,default:!0},overlayClass:{type:[String,Array,Object]},zIndex:{type:Number}},emits:["click"],setup(e,{slots:t,emit:n}){let l=!1,a=!1;const o=e=>{l&&a&&n("click",e),l=a=!1};return()=>e.mask?Ll("div",{class:["el-overlay",e.overlayClass],style:{zIndex:e.zIndex},onClick:o,onMousedown:t=>{e.mask&&(l=t.target===t.currentTarget)},onMouseup:t=>{e.mask&&(a=t.target===t.currentTarget)}},[Ht(t,"default")],o_.STYLE|o_.CLASS|o_.PROPS,["onClick","onMouseup","onMousedown"]):da("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Ht(t,"default")])}});function BC(e,t,n){const l=lt(!1),a=lt(!1),o=lt(null),r=lt(null),i=lt(null),s=lt(!1),u=lt(e.zIndex||y_.nextZIndex()),c=lt(null),d=ca((()=>{const t={};return e.fullscreen||(t.marginTop=e.top,e.width&&(t.width=Ty(e.width)?e.width+"px":e.width)),t}));function p(){Ly(i),Ly(r),e.openDelay&&e.openDelay>0?r.value=window.setTimeout((()=>{r.value=null,m()}),e.openDelay):m()}function f(){Ly(r),Ly(i),e.closeDelay&&e.closeDelay>0?i.value=window.setTimeout((()=>{i.value=null,g()}),e.closeDelay):g()}function h(e){e||(a.value=!0,l.value=!1)}function v(){e.beforeClose?e.beforeClose(h):f()}function m(){oy||(l.value=!0)}function g(){l.value=!1}return e.lockScroll&&fb(l),e.closeOnPressEscape&&kb({handleClose:v},l),hb(l),Sn((()=>e.modelValue),(o=>{o?(a.value=!1,p(),s.value=!0,t.emit("open"),u.value=e.zIndex?u.value++:y_.nextZIndex(),Dt((()=>{n.value&&(n.value.scrollTop=0)}))):l.value&&f()})),mn((()=>{e.modelValue&&(l.value=!0,s.value=!0,p())})),{afterEnter:function(){t.emit("opened")},afterLeave:function(){t.emit("closed"),t.emit(Nb,!1),e.destroyOnClose&&(s.value=!1)},beforeLeave:function(){t.emit("close")},handleClose:v,onModalClick:function(){e.closeOnClickModal&&v()},closed:a,dialogRef:o,style:d,rendered:s,modalRef:c,visible:l,zIndex:u}}VC.__file="packages/overlay/src/index.vue";var $C=Qn({name:"ElDialog",components:{"el-overlay":VC},directives:{TrapFocus:Tb},props:{appendToBody:{type:Boolean,default:!1},beforeClose:{type:Function},destroyOnClose:{type:Boolean,default:!1},center:{type:Boolean,default:!1},customClass:{type:String,default:""},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},fullscreen:{type:Boolean,default:!1},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},title:{type:String,default:""},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String,default:"15vh"},modelValue:{type:Boolean,required:!0},modalClass:String,width:{type:[String,Number],default:"50%",validator:e=>!!Ty(e)||["px","rem","em","vw","%","vmin","vmax"].some((t=>e.endsWith(t)))},zIndex:{type:Number}},emits:["open","opened","close","closed",Nb],setup(e,t){const n=lt(null);return Object.assign(Object.assign({},BC(e,t,n)),{dialogRef:n})}});const zC={class:"el-dialog__header"},jC={class:"el-dialog__title"},RC=Ll("i",{class:"el-dialog__close el-icon el-icon-close"},null,-1),HC={key:0,class:"el-dialog__body"},WC={key:1,class:"el-dialog__footer"};$C.render=function(e,t,n,l,a,o){const r=dl("el-overlay"),i=hl("trap-focus");return wl(),Sl(cl,{to:"body",disabled:!e.appendToBody},[Ll(Ia,{name:"dialog-fade",onAfterEnter:e.afterEnter,onAfterLeave:e.afterLeave,onBeforeLeave:e.beforeLeave},{default:Zt((()=>[Un(Ll(r,{mask:e.modal,"overlay-class":e.modalClass,"z-index":e.zIndex,onClick:e.onModalClick},{default:Zt((()=>[Un(Ll("div",{ref:"dialogRef",class:["el-dialog",{"is-fullscreen":e.fullscreen,"el-dialog--center":e.center},e.customClass],"aria-modal":"true",role:"dialog","aria-label":e.title||"dialog",style:e.style,onClick:t[2]||(t[2]=fo((()=>{}),["stop"]))},[Ll("div",zC,[Ht(e.$slots,"title",{},(()=>[Ll("span",jC,c(e.title),1)])),e.showClose?(wl(),Sl("button",{key:0,"aria-label":"close",class:"el-dialog__headerbtn",type:"button",onClick:t[1]||(t[1]=(...t)=>e.handleClose&&e.handleClose(...t))},[RC])):Pl("v-if",!0)]),e.rendered?(wl(),Sl("div",HC,[Ht(e.$slots,"default")])):Pl("v-if",!0),e.$slots.footer?(wl(),Sl("div",WC,[Ht(e.$slots,"footer")])):Pl("v-if",!0)],14,["aria-label"]),[[i]])])),_:3},8,["mask","overlay-class","z-index","onClick"]),[[mo,e.visible]])])),_:1},8,["onAfterEnter","onAfterLeave","onBeforeLeave"])],8,["disabled"])},$C.__file="packages/dialog/src/index.vue",$C.install=e=>{e.component($C.name,$C)};const YC=$C;var qC=Qn({name:"ElDivider",props:{direction:{type:String,default:"horizontal",validator:e=>-1!==["horizontal","vertical"].indexOf(e)},contentPosition:{type:String,default:"center",validator:e=>-1!==["left","center","right"].indexOf(e)}}});qC.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-divider","el-divider--"+e.direction]},[e.$slots.default&&"vertical"!==e.direction?(wl(),Sl("div",{key:0,class:["el-divider__text","is-"+e.contentPosition]},[Ht(e.$slots,"default")],2)):Pl("v-if",!0)],2)},qC.__file="packages/divider/src/index.vue",qC.install=e=>{e.component(qC.name,qC)};const KC=qC;var UC=Qn({name:"ElDrawer",components:{[VC.name]:VC},directives:{TrapFocus:Tb},props:{modelValue:{type:Boolean,required:!0},appendToBody:{type:Boolean,default:!1},beforeClose:Function,customClass:{type:String,default:""},direction:{type:String,default:"rtl",validator:e=>-1!==["ltr","rtl","ttb","btt"].indexOf(e)},showClose:{type:Boolean,default:!0},size:{type:[String,Number],default:"30%"},title:{type:String,default:""},closeOnClickModal:{type:Boolean,default:!0},withHeader:{type:Boolean,default:!0},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},zIndex:Number,modal:{type:Boolean,default:!0},modalFade:{type:Boolean,default:!0},modalClass:String,lockScroll:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!1}},emits:["open","opened","close","closed","update:modelValue"],setup(e,t){const n=lt(null);return Object.assign(Object.assign({},BC(e,t,n)),{drawerRef:n,isHorizontal:ca((()=>"rtl"===e.direction||"ltr"===e.direction)),drawerSize:ca((()=>"number"==typeof e.size?e.size+"px":e.size))})}});const GC={key:0,id:"el-drawer__title",class:"el-drawer__header"},XC=Ll("i",{class:"el-drawer__close el-icon el-icon-close"},null,-1),ZC={key:1,class:"el-drawer__body"};UC.render=function(e,t,n,l,a,o){const r=dl("el-overlay"),i=hl("trap-focus");return wl(),Sl(cl,{to:"body",disabled:!e.appendToBody},[Ll(Ia,{name:"el-drawer-fade",onAfterEnter:e.afterEnter,onAfterLeave:e.afterLeave,onBeforeLeave:e.beforeLeave},{default:Zt((()=>[Un(Ll(r,{mask:e.modal,"overlay-class":e.modalClass,"z-index":e.zIndex,onClick:e.onModalClick},{default:Zt((()=>[Un(Ll("div",{ref:"drawerRef","aria-modal":"true","aria-labelledby":"el-drawer__title","aria-label":e.title,class:["el-drawer",e.direction,e.customClass],style:e.isHorizontal?"width: "+e.drawerSize:"height: "+e.drawerSize,role:"dialog",onClick:t[2]||(t[2]=fo((()=>{}),["stop"]))},[e.withHeader?(wl(),Sl("header",GC,[Ht(e.$slots,"title",{},(()=>[Ll("span",{role:"heading",title:e.title},c(e.title),9,["title"])])),e.showClose?(wl(),Sl("button",{key:0,"aria-label":"close "+(e.title||"drawer"),class:"el-drawer__close-btn",type:"button",onClick:t[1]||(t[1]=(...t)=>e.handleClose&&e.handleClose(...t))},[XC],8,["aria-label"])):Pl("v-if",!0)])):Pl("v-if",!0),e.rendered?(wl(),Sl("section",ZC,[Ht(e.$slots,"default")])):Pl("v-if",!0)],14,["aria-label"]),[[i]])])),_:3},8,["mask","overlay-class","z-index","onClick"]),[[mo,e.visible]])])),_:1},8,["onAfterEnter","onAfterLeave","onBeforeLeave"])],8,["disabled"])},UC.__file="packages/drawer/src/index.vue",UC.install=e=>{e.component(UC.name,UC)};const JC=UC,QC=()=>{const e=Ay(),t=zl("elDropdown",{}),n=ca((()=>null==t?void 0:t.dropdownSize));return{ELEMENT:e,elDropdown:t,_elDropdownSize:n}};var eS=Qn({name:"ElDropdown",components:{ElButton:Z_,ElButtonGroup:ek,ElScrollbar:a_,ElPopper:M_},props:{trigger:{type:String,default:"hover"},type:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},placement:{type:String,default:"bottom"},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:Number,default:0},effect:{type:String,default:"light"},maxHeight:{type:[Number,String],default:""}},emits:["visible-change","click","command"],setup(e,{emit:t}){const n=na(),{ELEMENT:l}=QC(),a=lt(null),o=lt(!1),r=lt(null),i=ca((()=>"max-height: "+$y(e.maxHeight)));Sn((()=>o.value),(e=>{var n,l,a,o;e&&(null===(l=null===(n=c.value)||void 0===n?void 0:n.focus)||void 0===l||l.call(n)),e||null===(o=null===(a=c.value)||void 0===a?void 0:a.blur)||void 0===o||o.call(a),t("visible-change",e)}));const s=lt(!1);Sn((()=>s.value),(e=>{const t=c.value;t&&(e?Hy(t,"focusing"):Wy(t,"focusing"))}));const u=lt(null),c=ca((()=>{var t,n,l,a;const o=null!==(l=null===(n=null===(t=u.value)||void 0===t?void 0:t.$refs.triggerRef)||void 0===n?void 0:n.children[0])&&void 0!==l?l:{};return e.splitButton?null===(a=o.children)||void 0===a?void 0:a[1]:o}));function d(){var e;(null===(e=c.value)||void 0===e?void 0:e.disabled)||(o.value?f():p())}function p(){var t;(null===(t=c.value)||void 0===t?void 0:t.disabled)||(a.value&&clearTimeout(a.value),a.value=window.setTimeout((()=>{o.value=!0}),["click","contextmenu"].includes(e.trigger)?0:e.showTimeout))}function f(){var t;(null===(t=c.value)||void 0===t?void 0:t.disabled)||(h(),e.tabindex>=0&&v(c.value),clearTimeout(a.value),a.value=window.setTimeout((()=>{o.value=!1}),["click","contextmenu"].includes(e.trigger)?0:e.hideTimeout))}function h(){var e;null===(e=c.value)||void 0===e||e.setAttribute("tabindex","-1")}function v(e){h(),null==e||e.setAttribute("tabindex","0")}const m=ca((()=>e.size||l.size));return $l("elDropdown",{instance:n,dropdownSize:m,visible:o,handleClick:d,commandHandler:function(...e){t("command",...e)},show:p,hide:f,trigger:ca((()=>e.trigger)),hideOnClick:ca((()=>e.hideOnClick)),triggerElm:c}),mn((()=>{e.splitButton||(zy(c.value,"focus",(()=>{s.value=!0})),zy(c.value,"blur",(()=>{s.value=!1})),zy(c.value,"click",(()=>{s.value=!1}))),"hover"===e.trigger?(zy(c.value,"mouseenter",p),zy(c.value,"mouseleave",f)):"click"===e.trigger?zy(c.value,"click",d):"contextmenu"===e.trigger&&zy(c.value,"contextmenu",(e=>{e.preventDefault(),d()})),Object.assign(n,{handleClick:d,hide:f,resetTabindex:v})})),{visible:o,scrollbar:r,wrapStyle:i,dropdownSize:m,handlerMainButtonClick:e=>{t("click",e),f()},triggerVnode:u}}});const tS=Ll("i",{class:"el-dropdown__icon el-icon-arrow-down"},null,-1);eS.render=function(e,t,n,l,a,o){const r=dl("el-scrollbar"),i=dl("el-button"),s=dl("el-button-group"),u=dl("el-popper");return wl(),Sl(u,{ref:"triggerVnode",visible:e.visible,"onUpdate:visible":t[1]||(t[1]=t=>e.visible=t),placement:e.placement,effect:e.effect,pure:"","manual-mode":!0,trigger:[e.trigger],"popper-class":"el-dropdown__popper","append-to-body":"",transition:"el-zoom-in-top","stop-popper-mouse-event":!1,"gpu-acceleration":!1},{default:Zt((()=>[Ll(r,{ref:"scrollbar",tag:"ul","wrap-style":e.wrapStyle,"view-class":"el-dropdown__list"},{default:Zt((()=>[Ht(e.$slots,"dropdown")])),_:3},8,["wrap-style"])])),trigger:Zt((()=>[Ll("div",{class:["el-dropdown",e.dropdownSize?"el-dropdown--"+e.dropdownSize:""]},[e.splitButton?(wl(),Sl(s,{key:1},{default:Zt((()=>[Ll(i,{size:e.dropdownSize,type:e.type,onClick:e.handlerMainButtonClick},{default:Zt((()=>[Ht(e.$slots,"default")])),_:3},8,["size","type","onClick"]),Ll(i,{size:e.dropdownSize,type:e.type,class:"el-dropdown__caret-button"},{default:Zt((()=>[tS])),_:1},8,["size","type"])])),_:1})):Ht(e.$slots,"default",{key:0})],2)])),_:1},8,["visible","placement","effect","trigger"])},eS.__file="packages/dropdown/src/dropdown.vue",eS.install=e=>{e.component(eS.name,eS)};const nS=eS;var lS=Qn({name:"ElDropdownItem",props:{command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,icon:String},setup(e){const{elDropdown:t}=QC(),n=na();return{handleClick:function(l){var a,o;e.disabled?l.stopImmediatePropagation():(t.hideOnClick.value&&(null===(a=t.handleClick)||void 0===a||a.call(t)),null===(o=t.commandHandler)||void 0===o||o.call(t,e.command,n,l))}}}});lS.render=function(e,t,n,l,a,o){return wl(),Sl("li",{class:["el-dropdown-menu__item",{"is-disabled":e.disabled,"el-dropdown-menu__item--divided":e.divided}],"aria-disabled":e.disabled,tabindex:e.disabled?null:-1,onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t))},[e.icon?(wl(),Sl("i",{key:0,class:e.icon},null,2)):Pl("v-if",!0),Ht(e.$slots,"default")],10,["aria-disabled","tabindex"])},lS.__file="packages/dropdown/src/dropdown-item.vue",lS.install=e=>{e.component(lS.name,lS)};const aS=lS;var oS=Qn({name:"ElDropdownMenu",directives:{ClickOutside:Sb},setup(){const{_elDropdownSize:e,elDropdown:t}=QC(),n=e.value;function l(){var e;null===(e=t.hide)||void 0===e||e.call(t)}return mn((()=>{((e,t,n)=>{const l=lt(null),a=lt(null),o=lt(null),r=lt("dropdown-menu-"+Ey());function i(){var e;t.setAttribute("tabindex","-1"),null===(e=a.value)||void 0===e||e.forEach((e=>{e.setAttribute("tabindex","-1")}))}function s(e){i(),null==e||e.setAttribute("tabindex","0")}function u(){t.focus()}o.value=null==e?void 0:e.subTree.el,l.value=o.value.querySelectorAll("[tabindex='-1']"),a.value=[].slice.call(l.value),zy(t,"keydown",(function(e){const t=e.code;[vb.up,vb.down].includes(t)?(i(),s(l.value[0]),l.value[0].focus(),e.preventDefault(),e.stopPropagation()):t===vb.enter?n.handleClick():[vb.tab,vb.esc].includes(t)&&n.hide()})),zy(o.value,"keydown",(function(e){const t=e.code,o=e.target,r=a.value.indexOf(o),c=a.value.length-1;let d;[vb.up,vb.down].includes(t)?(d=t===vb.up?0!==r?r-1:0:r<c?r+1:c,i(),s(l.value[d]),l.value[d].focus(),e.preventDefault(),e.stopPropagation()):t===vb.enter?(u(),o.click(),n.props.hideOnClick&&n.hide()):[vb.tab,vb.esc].includes(t)&&(n.hide(),u())}),!0),o.value.setAttribute("id",r.value),t.setAttribute("aria-haspopup","list"),t.setAttribute("aria-controls",r.value),n.props.splitButton||(t.setAttribute("role","button"),t.setAttribute("tabindex",n.props.tabindex),Hy(t,"el-dropdown-selfdefine"))})(na(),t.triggerElm.value,t.instance)})),{size:n,show:function(){var e;["click","contextmenu"].includes(t.trigger.value)||null===(e=t.show)||void 0===e||e.call(t)},hide:function(){["click","contextmenu"].includes(t.trigger.value)||l()},innerHide:l,triggerElm:t.triggerElm}}});oS.render=function(e,t,n,l,a,o){const r=hl("clickOutside");return Un((wl(),Sl("ul",{class:[[e.size&&"el-dropdown-menu--"+e.size],"el-dropdown-menu"],onMouseenter:t[1]||(t[1]=fo(((...t)=>e.show&&e.show(...t)),["stop"])),onMouseleave:t[2]||(t[2]=fo(((...t)=>e.hide&&e.hide(...t)),["stop"]))},[Ht(e.$slots,"default")],34)),[[r,e.innerHide,e.triggerElm]])},oS.__file="packages/dropdown/src/dropdown-menu.vue",oS.install=e=>{e.component(oS.name,oS)};const rS=oS;let iS=0;var sS=Qn({name:"ImgEmpty",setup:()=>({id:++iS})});const uS={viewBox:"0 0 79 86",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},cS=Ll("stop",{"stop-color":"#FCFCFD",offset:"0%"},null,-1),dS=Ll("stop",{"stop-color":"#EEEFF3",offset:"100%"},null,-1),pS=Ll("stop",{"stop-color":"#FCFCFD",offset:"0%"},null,-1),fS=Ll("stop",{"stop-color":"#E9EBEF",offset:"100%"},null,-1),hS={id:"Illustrations",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},vS={id:"B-type",transform:"translate(-1268.000000, -535.000000)"},mS={id:"Group-2",transform:"translate(1268.000000, 535.000000)"},gS=Ll("path",{id:"Oval-Copy-2",d:"M39.5,86 C61.3152476,86 79,83.9106622 79,81.3333333 C79,78.7560045 57.3152476,78 35.5,78 C13.6847524,78 0,78.7560045 0,81.3333333 C0,83.9106622 17.6847524,86 39.5,86 Z",fill:"#F7F8FC"},null,-1),yS=Ll("polygon",{id:"Rectangle-Copy-14",fill:"#E5E7E9",transform:"translate(27.500000, 51.500000) scale(1, -1) translate(-27.500000, -51.500000) ",points:"13 58 53 58 42 45 2 45"},null,-1),bS={id:"Group-Copy",transform:"translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"},_S=Ll("polygon",{id:"Rectangle-Copy-10",fill:"#E5E7E9",transform:"translate(11.500000, 5.000000) scale(1, -1) translate(-11.500000, -5.000000) ",points:"2.84078316e-14 3 18 3 23 7 5 7"},null,-1),kS=Ll("polygon",{id:"Rectangle-Copy-11",fill:"#EDEEF2",points:"-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43"},null,-1),xS=Ll("polygon",{id:"Rectangle-Copy-13",fill:"#F8F9FB",transform:"translate(39.500000, 3.500000) scale(-1, 1) translate(-39.500000, -3.500000) ",points:"24 7 41 7 55 -3.63806207e-12 38 -3.63806207e-12"},null,-1),wS={id:"Rectangle-Copy-17",transform:"translate(53.000000, 45.000000)"},CS=Ll("polygon",{id:"Rectangle-Copy-18",fill:"#F8F9FB",transform:"translate(66.000000, 51.500000) scale(-1, 1) translate(-66.000000, -51.500000) ",points:"62 45 79 45 70 58 53 58"},null,-1);sS.render=function(e,t,n,l,a,o){return wl(),Sl("svg",uS,[Ll("defs",null,[Ll("linearGradient",{id:"linearGradient-1-"+e.id,x1:"38.8503086%",y1:"0%",x2:"61.1496914%",y2:"100%"},[cS,dS],8,["id"]),Ll("linearGradient",{id:"linearGradient-2-"+e.id,x1:"0%",y1:"9.5%",x2:"100%",y2:"90.5%"},[pS,fS],8,["id"]),Ll("rect",{id:"path-3-"+e.id,x:"0",y:"0",width:"17",height:"36"},null,8,["id"])]),Ll("g",hS,[Ll("g",vS,[Ll("g",mS,[gS,yS,Ll("g",bS,[_S,kS,Ll("rect",{id:"Rectangle-Copy-12",fill:`url(#linearGradient-1-${e.id})`,transform:"translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ",x:"38",y:"7",width:"17",height:"36"},null,8,["fill"]),xS]),Ll("rect",{id:"Rectangle-Copy-15",fill:`url(#linearGradient-2-${e.id})`,x:"13",y:"45",width:"40",height:"36"},null,8,["fill"]),Ll("g",wS,[Ll("mask",{id:"mask-4-"+e.id,fill:"white"},[Ll("use",{"xlink:href":"#path-3-"+e.id},null,8,["xlink:href"])],8,["id"]),Ll("use",{id:"Mask",fill:"#E0E3E9",transform:"translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ","xlink:href":"#path-3-"+e.id},null,8,["xlink:href"]),Ll("polygon",{id:"Rectangle-Copy",fill:"#D5D7DE",mask:`url(#mask-4-${e.id})`,transform:"translate(12.000000, 9.000000) scale(-1, 1) translate(-12.000000, -9.000000) ",points:"7 0 24 0 20 18 -1.70530257e-13 16"},null,8,["mask"])]),CS])])])])},sS.__file="packages/empty/src/img-empty.vue";var SS=Qn({name:"ElEmpty",components:{[sS.name]:sS},props:{image:{type:String,default:""},imageSize:Number,description:{type:String,default:""}},setup:e=>({emptyDescription:ca((()=>e.description||ak("el.table.emptyText"))),imageStyle:ca((()=>({width:e.imageSize?e.imageSize+"px":""})))})});const ES={class:"el-empty"},MS={class:"el-empty__description"},OS={key:1},TS={key:0,class:"el-empty__bottom"};SS.render=function(e,t,n,l,a,o){const r=dl("img-empty");return wl(),Sl("div",ES,[Ll("div",{class:"el-empty__image",style:e.imageStyle},[e.image?(wl(),Sl("img",{key:0,src:e.image,ondragstart:"return false"},null,8,["src"])):Ht(e.$slots,"image",{key:1},(()=>[Ll(r)]))],4),Ll("div",MS,[e.$slots.description?Ht(e.$slots,"description",{key:0}):(wl(),Sl("p",OS,c(e.emptyDescription),1))]),e.$slots.default?(wl(),Sl("div",TS,[Ht(e.$slots,"default")])):Pl("v-if",!0)])},SS.__file="packages/empty/src/index.vue",SS.install=e=>{e.component(SS.name,SS)};const DS=SS;var LS=Qn({name:"ElFooter",props:{height:{type:String,default:"60px"}}});LS.render=function(e,t,n,l,a,o){return wl(),Sl("footer",{class:"el-footer",style:{height:e.height}},[Ht(e.$slots,"default")],4)},LS.__file="packages/container/src/footer.vue",LS.install=e=>{e.component(LS.name,LS)};const NS=LS;var AS=Qn({name:"ElLabelWrap",props:{isAutoWidth:Boolean,updateAll:Boolean},setup(e,{slots:t}){const n=lt(null),l=zl("elForm"),a=zl("elFormItem"),o=lt(0);Sn(o,((t,n)=>{e.updateAll&&(l.registerLabelWidth(t,n),a.updateComputedLabelWidth(t))}));const r=(a="update")=>{Dt((()=>{t.default&&e.isAutoWidth&&("update"===a?o.value=(()=>{var e;if(null===(e=n.value)||void 0===e?void 0:e.firstElementChild){const e=window.getComputedStyle(n.value.firstElementChild).width;return Math.ceil(parseFloat(e))}return 0})():"remove"===a&&l.deregisterLabelWidth(o.value))}))},i=()=>r("update");return mn((()=>{Zy(n.value.firstElementChild,i),i()})),yn(i),bn((()=>{r("remove"),Jy(n.value.firstElementChild,i)})),function(){var a,r;if(!t)return null;if(e.isAutoWidth){const e=l.autoLabelWidth,r={};if(e&&"auto"!==e){const t=parseInt(e,10)-o.value;t&&(r.marginLeft=t+"px")}return da("div",{ref:n,class:["el-form-item__label-wrap"],style:r},null===(a=t.default)||void 0===a?void 0:a.call(t))}return da(gl,{ref:n},null===(r=t.default)||void 0===r?void 0:r.call(t))}}}),PS=Qn({name:"ElFormItem",componentName:"ElFormItem",components:{LabelWrap:AS},props:{label:String,labelWidth:String,prop:String,required:{type:Boolean,default:void 0},rules:[Object,Array],error:String,validateStatus:String,for:String,inlineMessage:{type:[String,Boolean],default:""},showMessage:{type:Boolean,default:!0},size:{types:String,validator:Ib}},setup(e){const t=ku(),n=Ay(),l=zl("elForm",{}),a=lt(""),o=lt(""),r=lt(!1),i=lt(""),s=na(),u=ca((()=>{let e=s.parent;for(;e&&"ElForm"!==e.type.name;){if("ElFormItem"===e.type.name)return!0;e=e.parent}return!1}));let c;Sn((()=>e.error),(e=>{o.value=e,a.value=e?"error":""}),{immediate:!0}),Sn((()=>e.validateStatus),(e=>{a.value=e}));const d=ca((()=>e.for||e.prop)),p=ca((()=>{if("top"===l.labelPosition)return{};const t=e.labelWidth||l.labelWidth;return t?{width:t}:{}})),f=ca((()=>{if("top"===l.labelPosition||l.inline)return{};if(!e.label&&!e.labelWidth&&u.value)return{};const t=e.labelWidth||l.labelWidth,n={};return"auto"===t?"auto"===e.labelWidth?n.marginLeft=i.value:"auto"===l.labelWidth&&(n.marginLeft=l.autoLabelWidth):n.marginLeft=t,n})),h=ca((()=>{const t=l.model;if(!t||!e.prop)return;let n=e.prop;return-1!==n.indexOf(":")&&(n=n.replace(/:/,".")),Sy(t,n,!0).v})),v=ca((()=>{let e=k(),t=!1;return e&&e.length&&e.every((e=>!e.required||(t=!0,!1))),t})),m=ca((()=>e.size||l.size)),g=ca((()=>m.value||n.size)),y=(t,n=ry)=>{r.value=!1;const i=x(t);if((!i||0===i.length)&&void 0===e.required)return void n();a.value="validating";const s={};i&&i.length>0&&i.forEach((e=>{delete e.trigger})),s[e.prop]=i;const u=new sm(s),c={};c[e.prop]=h.value,u.validate(c,{firstFields:!0},((t,r)=>{var i;a.value=t?"error":"success",o.value=t?t[0].message:"",n(o.value,r),null===(i=l.emit)||void 0===i||i.call(l,"validate",e.prop,!t,o.value||null)}))},b=()=>{a.value="",o.value="",r.value=!1},_=()=>{a.value="",o.value="";let t=l.model,n=h.value,i=e.prop;-1!==i.indexOf(":")&&(i=i.replace(/:/,"."));let s=Sy(t,i,!0);r.value=!0,Array.isArray(n)?s.o[s.k]=[].concat(c):s.o[s.k]=c,Dt((()=>{r.value=!1}))},k=()=>{const t=l.rules,n=e.rules,a=void 0!==e.required?{required:!!e.required}:[],o=Sy(t,e.prop||"",!1),r=t?o.o[e.prop||""]||o.v:[];return[].concat(n||r||[]).concat(a)},x=e=>k().filter((t=>!t.trigger||""===e||(Array.isArray(t.trigger)?t.trigger.indexOf(e)>-1:t.trigger===e))).map((e=>Object.assign({},e))),w=()=>{y("blur")},C=()=>{r.value?r.value=!1:y("change")},S=()=>{(k().length||void 0!==e.required)&&(t.on("el.form.blur",w),t.on("el.form.change",C))},E=Ue(Object.assign(Object.assign({},ct(e)),{size:g,validateState:a,removeValidateEvents:()=>{t.off("el.form.blur",w),t.off("el.form.change",C)},addValidateEvents:S,resetField:_,clearValidate:b,validate:y,formItemMitt:t,updateComputedLabelWidth:e=>{i.value=e?e+"px":""}}));return mn((()=>{var t;if(e.prop){null===(t=l.formMitt)||void 0===t||t.emit(Fb,E);let e=h.value;c=Array.isArray(e)?[...e]:e,S()}})),bn((()=>{var e;null===(e=l.formMitt)||void 0===e||e.emit(Vb,E)})),$l("elFormItem",E),{formItemClass:ca((()=>[{"el-form-item--feedback":l.statusIcon,"is-error":"error"===a.value,"is-validating":"validating"===a.value,"is-success":"success"===a.value,"is-required":v.value||e.required,"is-no-asterisk":l.hideRequiredAsterisk},g.value?"el-form-item--"+g.value:""])),shouldShowError:ca((()=>"error"===a.value&&e.showMessage&&l.showMessage)),elForm:l,labelStyle:p,contentStyle:f,validateMessage:o,labelFor:d,resetField:_,clearValidate:b}}});PS.render=function(e,t,n,l,a,o){const r=dl("LabelWrap");return wl(),Sl("div",{class:["el-form-item",e.formItemClass]},[Ll(r,{"is-auto-width":"auto"===e.labelStyle.width,"update-all":"auto"===e.elForm.labelWidth},{default:Zt((()=>[e.label||e.$slots.label?(wl(),Sl("label",{key:0,for:e.labelFor,class:"el-form-item__label",style:e.labelStyle},[Ht(e.$slots,"label",{},(()=>[Al(c(e.label+e.elForm.labelSuffix),1)]))],12,["for"])):Pl("v-if",!0)])),_:3},8,["is-auto-width","update-all"]),Ll("div",{class:"el-form-item__content",style:e.contentStyle},[Ht(e.$slots,"default"),Ll(Ia,{name:"el-zoom-in-top"},{default:Zt((()=>[e.shouldShowError?Ht(e.$slots,"error",{key:0,error:e.validateMessage},(()=>[Ll("div",{class:["el-form-item__error",{"el-form-item__error--inline":"boolean"==typeof e.inlineMessage?e.inlineMessage:e.elForm.inlineMessage||!1}]},c(e.validateMessage),3)])):Pl("v-if",!0)])),_:3})],4)],2)},PS.__file="packages/form/src/form-item.vue",PS.install=e=>{e.component(PS.name,PS)};const IS=PS;var FS=Qn({name:"ElHeader",props:{height:{type:String,default:"60px"}}});FS.render=function(e,t,n,l,a,o){return wl(),Sl("header",{class:"el-header",style:{height:e.height}},[Ht(e.$slots,"default")],4)},FS.__file="packages/container/src/header.vue",FS.install=e=>{e.component(FS.name,FS)};const VS=FS;var BS=Qn({name:"ElIcon",props:{name:{type:String,default:""}}});BS.render=function(e,t,n,l,a,o){return wl(),Sl("i",{class:"el-icon-"+e.name},null,2)},BS.__file="packages/icon/src/index.vue",BS.install=e=>{e.component(BS.name,BS)};const $S=BS,zS={CONTAIN:{name:"contain",icon:"el-icon-full-screen"},ORIGINAL:{name:"original",icon:"el-icon-c-scale-to-original"}},jS=!oy&&window.navigator.userAgent.match(/firefox/i)?"DOMMouseScroll":"mousewheel";var RS=Qn({name:"ElImageViewer",props:{urlList:{type:Array,default:[]},zIndex:{type:Number,default:2e3},initialIndex:{type:Number,default:0},infinite:{type:Boolean,default:!0},hideOnClickModal:{type:Boolean,default:!1}},emits:["close","switch"],setup(e,{emit:t}){let n=null,l=null,a=null;const o=lt(!0),r=lt(e.initialIndex),i=lt(null),s=lt(null),u=lt(zS.CONTAIN);let c=lt({scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1});const d=ca((()=>{const{urlList:t}=e;return t.length<=1})),p=ca((()=>0===r.value)),f=ca((()=>0===r.value)),h=ca((()=>e.urlList[r.value])),v=ca((()=>{const{scale:e,deg:t,offsetX:n,offsetY:l,enableTransition:a}=c.value,o={transform:`scale(${e}) rotate(${t}deg)`,transition:a?"transform .3s":"",marginLeft:n+"px",marginTop:l+"px"};return u.value.name===zS.CONTAIN.name&&(o.maxWidth=o.maxHeight="100%"),o}));function m(){jy(document,"keydown",n),jy(document,jS,l),n=null,l=null,t("close")}function g(){c.value={scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}}function y(){if(o.value)return;const e=Object.keys(zS),t=Object.values(zS),n=u.value.name,l=(t.findIndex((e=>e.name===n))+1)%e.length;u.value=zS[e[l]],g()}function b(){if(p.value&&!e.infinite)return;const t=e.urlList.length;r.value=(r.value-1+t)%t}function _(){if(f.value&&!e.infinite)return;const t=e.urlList.length;r.value=(r.value+1)%t}function k(e,t={}){if(o.value)return;const{zoomRate:n,rotateDeg:l,enableTransition:a}=Object.assign({zoomRate:.2,rotateDeg:90,enableTransition:!0},t);switch(e){case"zoomOut":c.value.scale>.2&&(c.value.scale=parseFloat((c.value.scale-n).toFixed(3)));break;case"zoomIn":c.value.scale=parseFloat((c.value.scale+n).toFixed(3));break;case"clocelise":c.value.deg+=l;break;case"anticlocelise":c.value.deg-=l}c.value.enableTransition=a}return Sn(h,(()=>{Dt((()=>{s.value.complete||(o.value=!0)}))})),Sn(r,(e=>{g(),t("switch",e)})),mn((()=>{var e,t;n=Dy((e=>{switch(e.code){case vb.esc:m();break;case vb.space:y();break;case vb.left:b();break;case vb.up:k("zoomIn");break;case vb.right:_();break;case vb.down:k("zoomOut")}})),l=Dy((e=>{k((e.wheelDelta?e.wheelDelta:-e.detail)>0?"zoomIn":"zoomOut",{zoomRate:.015,enableTransition:!1})})),zy(document,"keydown",n),zy(document,jS,l),null===(t=null===(e=i.value)||void 0===e?void 0:e.focus)||void 0===t||t.call(e)})),{index:r,wrapper:i,img:s,isSingle:d,isFirst:p,isLast:f,currentImg:h,imgStyle:v,mode:u,handleActions:k,prev:b,next:_,hide:m,toggleMode:y,handleImgLoad:function(){o.value=!1},handleImgError:function(e){o.value=!1,e.target.alt=ak("el.image.error")},handleMouseDown:function(e){if(o.value||0!==e.button)return;const{offsetX:t,offsetY:n}=c.value,l=e.pageX,r=e.pageY;a=Dy((e=>{c.value=Object.assign(Object.assign({},c.value),{offsetX:t+e.pageX-l,offsetY:n+e.pageY-r})})),zy(document,"mousemove",a),zy(document,"mouseup",(()=>{jy(document,"mousemove",a)})),e.preventDefault()}}}});const HS=Ll("i",{class:"el-icon-close"},null,-1),WS=Ll("i",{class:"el-icon-arrow-left"},null,-1),YS=Ll("i",{class:"el-icon-arrow-right"},null,-1),qS={class:"el-image-viewer__btn el-image-viewer__actions"},KS={class:"el-image-viewer__actions__inner"},US=Ll("i",{class:"el-image-viewer__actions__divider"},null,-1),GS=Ll("i",{class:"el-image-viewer__actions__divider"},null,-1),XS={class:"el-image-viewer__canvas"};RS.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,{name:"viewer-fade"},{default:Zt((()=>[Ll("div",{ref:"wrapper",tabindex:-1,class:"el-image-viewer__wrapper",style:{zIndex:e.zIndex}},[Ll("div",{class:"el-image-viewer__mask",onClick:t[1]||(t[1]=fo((t=>e.hideOnClickModal&&e.hide()),["self"]))}),Pl(" CLOSE "),Ll("span",{class:"el-image-viewer__btn el-image-viewer__close",onClick:t[2]||(t[2]=(...t)=>e.hide&&e.hide(...t))},[HS]),Pl(" ARROW "),e.isSingle?Pl("v-if",!0):(wl(),Sl(gl,{key:0},[Ll("span",{class:["el-image-viewer__btn el-image-viewer__prev",{"is-disabled":!e.infinite&&e.isFirst}],onClick:t[3]||(t[3]=(...t)=>e.prev&&e.prev(...t))},[WS],2),Ll("span",{class:["el-image-viewer__btn el-image-viewer__next",{"is-disabled":!e.infinite&&e.isLast}],onClick:t[4]||(t[4]=(...t)=>e.next&&e.next(...t))},[YS],2)],64)),Pl(" ACTIONS "),Ll("div",qS,[Ll("div",KS,[Ll("i",{class:"el-icon-zoom-out",onClick:t[5]||(t[5]=t=>e.handleActions("zoomOut"))}),Ll("i",{class:"el-icon-zoom-in",onClick:t[6]||(t[6]=t=>e.handleActions("zoomIn"))}),US,Ll("i",{class:e.mode.icon,onClick:t[7]||(t[7]=(...t)=>e.toggleMode&&e.toggleMode(...t))},null,2),GS,Ll("i",{class:"el-icon-refresh-left",onClick:t[8]||(t[8]=t=>e.handleActions("anticlocelise"))}),Ll("i",{class:"el-icon-refresh-right",onClick:t[9]||(t[9]=t=>e.handleActions("clocelise"))})])]),Pl(" CANVAS "),Ll("div",XS,[(wl(!0),Sl(gl,null,pa(e.urlList,((n,l)=>Un((wl(),Sl("img",{ref:"img",key:n,src:n,style:e.imgStyle,class:"el-image-viewer__img",onLoad:t[10]||(t[10]=(...t)=>e.handleImgLoad&&e.handleImgLoad(...t)),onError:t[11]||(t[11]=(...t)=>e.handleImgError&&e.handleImgError(...t)),onMousedown:t[12]||(t[12]=(...t)=>e.handleMouseDown&&e.handleMouseDown(...t))},null,44,["src"])),[[mo,l===e.index]]))),128))])],4)])),_:1})},RS.__file="packages/image-viewer/src/index.vue",RS.install=e=>{e.component(Image.name,Image)};const ZS=RS,JS=()=>void 0!==document.documentElement.style.objectFit,QS="contain";let eE="";var tE=Qn({name:"ElImage",components:{ImageViewer:ZS},inheritAttrs:!1,props:{appendToBody:{type:Boolean,default:!1},hideOnClickModal:{type:Boolean,default:!1},src:{type:String,default:""},fit:{type:String,default:""},lazy:{type:Boolean,default:!1},scrollContainer:{type:[String,Object],default:null},previewSrcList:{type:Array,default:()=>[]},zIndex:{type:Number,default:2e3}},emits:["error"],setup(e,{emit:t}){const n=cb(),l=lt(!1),a=lt(!0),o=lt(0),r=lt(0),i=lt(!1),s=lt(null);let u=null,c=null;const d=ca((()=>{const{fit:t}=e;return!oy&&t?JS()?{"object-fit":t}:function(e){const t=o.value,n=r.value;if(!s.value)return{};const{clientWidth:l,clientHeight:a}=s.value;if(!(t&&n&&l&&a))return{};const i=t/n,u=l/a;switch("scale-down"===e&&(e=t<l&&n<a?"none":QS),e){case"none":return{width:"auto",height:"auto"};case QS:return i<u?{width:"auto"}:{height:"auto"};case"cover":return i<u?{height:"auto"}:{width:"auto"};default:return{}}}(t):{}})),p=ca((()=>{const{fit:t}=e;return!oy&&!JS()&&"fill"!==t})),f=ca((()=>{const{previewSrcList:t}=e;return Array.isArray(t)&&t.length>0})),h=ca((()=>{const{src:t,previewSrcList:n}=e;let l=0;const a=n.indexOf(t);return a>=0&&(l=a),l})),v=()=>{if(oy)return;const t=n.value;a.value=!0,l.value=!1;const i=new Image;i.onload=e=>{return t=i,o.value=t.width,r.value=t.height,a.value=!1,void(l.value=!1);var t},i.onerror=m,Object.keys(t).forEach((e=>{if("onload"===e.toLowerCase())return;const n=t[e];i.setAttribute(e,n)})),i.src=e.src};function m(e){a.value=!1,l.value=!0,t("error",e)}function g(){((e,t)=>{if(oy||!e||!t)return!1;const n=e.getBoundingClientRect();let l;return l=[window,document,document.documentElement,null,void 0].includes(t)?{top:0,right:window.innerWidth,bottom:window.innerHeight,left:0}:t.getBoundingClientRect(),n.top<l.bottom&&n.bottom>l.top&&n.right>l.left&&n.left<l.right})(s.value,u)&&(v(),b())}function y(){if(oy)return;const{scrollContainer:t}=e;var n;u=(n=t)&&1===n.nodeType?t:py(t)&&""!==t?document.querySelector(t):Ky(s.value),u&&(c=zc(g,200),zy(u,"scroll",c),setTimeout((()=>g()),100))}function b(){!oy&&u&&c&&(jy(u,"scroll",c),u=null,c=null)}return Sn((()=>e.src),(()=>{v()})),mn((()=>{e.lazy?Dt(y):v()})),bn((()=>{e.lazy&&b()})),{attrs:n,loading:a,hasLoadError:l,showViewer:i,imgWidth:o,imgHeight:r,imageStyle:d,alignCenter:p,preview:f,imageIndex:h,clickHandler:function(){f.value&&(eE=document.body.style.overflow,document.body.style.overflow="hidden",i.value=!0)},closeViewer:function(){document.body.style.overflow=eE,i.value=!1},container:s,handleError:m,t:ak}}});const nE=Ll("div",{class:"el-image__placeholder"},null,-1),lE={class:"el-image__error"};tE.render=function(e,t,n,l,a,o){const r=dl("image-viewer");return wl(),Sl("div",{ref:"container",class:["el-image",e.$attrs.class],style:e.$attrs.style},[e.loading?Ht(e.$slots,"placeholder",{key:0},(()=>[nE])):e.hasLoadError?Ht(e.$slots,"error",{key:1},(()=>[Ll("div",lE,c(e.t("el.image.error")),1)])):(wl(),Sl("img",Bl({key:2,class:"el-image__inner"},e.attrs,{src:e.src,style:e.imageStyle,class:{"el-image__inner--center":e.alignCenter,"el-image__preview":e.preview},onClick:t[1]||(t[1]=(...t)=>e.clickHandler&&e.clickHandler(...t))}),null,16,["src"])),(wl(),Sl(cl,{to:"body",disabled:!e.appendToBody},[e.preview?(wl(),Sl(gl,{key:0},[e.showViewer?(wl(),Sl(r,{key:0,"z-index":e.zIndex,"initial-index":e.imageIndex,"url-list":e.previewSrcList,"hide-on-click-modal":e.hideOnClickModal,onClose:e.closeViewer},null,8,["z-index","initial-index","url-list","hide-on-click-modal","onClose"])):Pl("v-if",!0)],2112)):Pl("v-if",!0)],8,["disabled"]))],6)},tE.__file="packages/image/src/index.vue",tE.install=e=>{e.component(tE.name,tE)};const aE=tE;
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */function oE(e,t,n,l){return new(n||(n=Promise))((function(a,o){function r(e){try{s(l.next(e))}catch(t){o(t)}}function i(e){try{s(l.throw(e))}catch(t){o(t)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,i)}s((l=l.apply(e,t||[])).next())}))}const rE="ElInfiniteScroll",iE={delay:{type:Number,default:200},distance:{type:Number,default:0},disabled:{type:Boolean,default:!1},immediate:{type:Boolean,default:!0}},sE=(e,t)=>Ny(iE).reduce(((n,[l,a])=>{var o,r;const{type:i,default:s}=a,u=e.getAttribute("infinite-scroll-"+l);let c=null!==(r=null!==(o=t[u])&&void 0!==o?o:u)&&void 0!==r?r:s;return c="false"!==c&&c,c=i(c),n[l]=Number.isNaN(c)?s:c,n}),{}),uE=e=>{const{observer:t}=e[rE];t&&(t.disconnect(),delete e[rE].observer)},cE=(e,t)=>{const{container:n,containerEl:l,instance:a,observer:o,lastScrollTop:r}=e[rE],{disabled:i,distance:s}=sE(e,a),{clientHeight:u,scrollHeight:c,scrollTop:d}=l,p=d-r;if(e[rE].lastScrollTop=d,o||i||p<0)return;let f=!1;if(n===e)f=c-(u+d)<=s;else{const{clientTop:t,scrollHeight:n}=e;f=d+u>=(h=e,v=l,Math.abs(Uy(h)-Uy(v))+t+n-s)}var h,v;f&&t.call(a)};function dE(e,t){const{containerEl:n,instance:l}=e[rE],{disabled:a}=sE(e,l);a||(n.scrollHeight<=n.clientHeight?t.call(l):uE(e))}const pE={mounted(e,t){return oE(this,void 0,void 0,(function*(){const{instance:n,value:l}=t;dy(l)||wy(rE,"'v-infinite-scroll' binding value must be a function"),yield Dt();const{delay:a,immediate:o}=sE(e,n),r=Ky(e,!0),i=r===window?document.documentElement:r,s=zc(cE.bind(null,e,l),a);if(r){if(e[rE]={instance:n,container:r,containerEl:i,delay:a,cb:l,onScroll:s,lastScrollTop:i.scrollTop},o){const t=new MutationObserver(zc(dE.bind(null,e,l),50));e[rE].observer=t,t.observe(e,{childList:!0,subtree:!0}),dE(e,l)}r.addEventListener("scroll",s)}}))},unmounted(e){const{container:t,onScroll:n}=e[rE];null==t||t.removeEventListener("scroll",n),uE(e)},install:e=>{e.directive("InfiniteScroll",pE)}};var fE=Qn({name:"ElInputNumber",components:{ElInput:Qb},directives:{RepeatClick:Eb},props:{step:{type:Number,default:1},stepStrictly:{type:Boolean,default:!1},max:{type:Number,default:1/0},min:{type:Number,default:-1/0},modelValue:{required:!0,validator:e=>"Number"===gy(e)||void 0===e},disabled:{type:Boolean,default:!1},size:{type:String,validator:Ib},controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:""},name:String,label:String,placeholder:String,precision:{type:Number,validator:e=>e>=0&&e===parseInt(e+"",10)}},emits:["update:modelValue","change","input","blur","focus"],setup(e,{emit:t}){const n=Ay(),l=zl("elForm",{}),a=zl("elFormItem",{}),o=lt(null),r=Ue({currentValue:e.modelValue,userInput:null}),i=ca((()=>g(e.modelValue)<e.min)),s=ca((()=>m(e.modelValue)>e.max)),u=ca((()=>{const t=v(e.step);return void 0!==e.precision?(t>e.precision&&console.warn("[Element Warn][InputNumber]precision should not be less than the decimal places of step"),e.precision):Math.max(v(e.modelValue),t)})),c=ca((()=>e.controls&&"right"===e.controlsPosition)),d=ca((()=>e.size||a.size||n.size)),p=ca((()=>e.disabled||l.disabled)),f=ca((()=>{if(null!==r.userInput)return r.userInput;let t=r.currentValue;return"number"==typeof t&&void 0!==e.precision&&(t=t.toFixed(e.precision)),t})),h=(e,t)=>(void 0===t&&(t=u.value),parseFloat(Math.round(e*Math.pow(10,t))/Math.pow(10,t)+"")),v=e=>{if(void 0===e)return 0;const t=e.toString(),n=t.indexOf(".");let l=0;return-1!==n&&(l=t.length-n-1),l},m=t=>{if("number"!=typeof t&&void 0!==t)return r.currentValue;const n=Math.pow(10,u.value);return h((n*t+n*e.step)/n)},g=t=>{if("number"!=typeof t&&void 0!==t)return r.currentValue;const n=Math.pow(10,u.value);return h((n*t-n*e.step)/n)},y=n=>{const l=r.currentValue;"number"==typeof n&&void 0!==e.precision&&(n=h(n,e.precision)),void 0!==n&&n>=e.max&&(n=e.max),void 0!==n&&n<=e.min&&(n=e.min),l!==n&&(r.userInput=null,t("update:modelValue",n),t("input",n),t("change",n,l),r.currentValue=n)};return Sn((()=>e.modelValue),(n=>{let l=void 0===n?n:Number(n);if(void 0!==l){if(isNaN(l))return;if(e.stepStrictly){const t=v(e.step),n=Math.pow(10,t);l=Math.round(l/e.step)*n*e.step/n}void 0!==e.precision&&(l=h(l,e.precision))}void 0!==l&&l>=e.max&&(l=e.max,t("update:modelValue",l)),void 0!==l&&l<=e.min&&(l=e.min,t("update:modelValue",l)),r.currentValue=l,r.userInput=null}),{immediate:!0}),mn((()=>{let n=o.value.input;n.setAttribute("role","spinbutton"),n.setAttribute("aria-valuemax",e.max),n.setAttribute("aria-valuemin",e.min),n.setAttribute("aria-valuenow",r.currentValue),n.setAttribute("aria-disabled",p.value),"Number"!==gy(e.modelValue)&&void 0!==e.modelValue&&t("update:modelValue",void 0)})),yn((()=>{o.value.input.setAttribute("aria-valuenow",r.currentValue)})),{input:o,displayValue:f,handleInput:e=>r.userInput=e,handleInputChange:e=>{const t=""===e?void 0:Number(e);isNaN(t)&&""!==e||y(t),r.userInput=null},controlsAtRight:c,decrease:()=>{if(p.value||i.value)return;const t=e.modelValue||0,n=g(t);y(n)},increase:()=>{if(p.value||s.value)return;const t=e.modelValue||0,n=m(t);y(n)},inputNumberSize:d,inputNumberDisabled:p,maxDisabled:s,minDisabled:i}}});fE.render=function(e,t,n,l,a,o){const r=dl("el-input"),i=hl("repeat-click");return wl(),Sl("div",{class:["el-input-number",e.inputNumberSize?"el-input-number--"+e.inputNumberSize:"",{"is-disabled":e.inputNumberDisabled},{"is-without-controls":!e.controls},{"is-controls-right":e.controlsAtRight}],onDragstart:t[5]||(t[5]=fo((()=>{}),["prevent"]))},[e.controls?Un((wl(),Sl("span",{key:0,class:["el-input-number__decrease",{"is-disabled":e.minDisabled}],role:"button",onKeydown:t[1]||(t[1]=vo(((...t)=>e.decrease&&e.decrease(...t)),["enter"]))},[Ll("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-down":"minus")},null,2)],34)),[[i,e.decrease]]):Pl("v-if",!0),e.controls?Un((wl(),Sl("span",{key:1,class:["el-input-number__increase",{"is-disabled":e.maxDisabled}],role:"button",onKeydown:t[2]||(t[2]=vo(((...t)=>e.increase&&e.increase(...t)),["enter"]))},[Ll("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-up":"plus")},null,2)],34)),[[i,e.increase]]):Pl("v-if",!0),Ll(r,{ref:"input","model-value":e.displayValue,placeholder:e.placeholder,disabled:e.inputNumberDisabled,size:e.inputNumberSize,max:e.max,min:e.min,name:e.name,label:e.label,onKeydown:[vo(fo(e.increase,["prevent"]),["up"]),vo(fo(e.decrease,["prevent"]),["down"])],onBlur:t[3]||(t[3]=t=>e.$emit("blur",t)),onFocus:t[4]||(t[4]=t=>e.$emit("focus",t)),onInput:e.handleInput,onChange:e.handleInputChange},null,8,["model-value","placeholder","disabled","size","max","min","name","label","onKeydown","onInput","onChange"])],34)},fE.__file="packages/input-number/src/index.vue",fE.install=e=>{e.component(fE.name,fE)};const hE=fE;var vE=Qn({name:"ElLink",props:{type:{type:String,default:"default",validator:e=>["default","primary","success","warning","info","danger"].includes(e)},underline:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},href:{type:String,default:""},icon:{type:String,default:""}},emits:["click"],setup:(e,{emit:t})=>({handleClick:function(n){e.disabled||t("click",n)}})});const mE={key:1,class:"el-link--inner"};vE.render=function(e,t,n,l,a,o){return wl(),Sl("a",{class:["el-link",e.type?"el-link--"+e.type:"",e.disabled&&"is-disabled",e.underline&&!e.disabled&&"is-underline"],href:e.disabled?null:e.href,onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t))},[e.icon?(wl(),Sl("i",{key:0,class:e.icon},null,2)):Pl("v-if",!0),e.$slots.default?(wl(),Sl("span",mE,[Ht(e.$slots,"default")])):Pl("v-if",!0),e.$slots.icon?Ht(e.$slots,"icon",{key:2}):Pl("v-if",!0)],10,["href"])},vE.__file="packages/link/src/index.vue",vE.install=e=>{e.component(vE.name,vE)};const gE=vE,yE={parent:null,background:"",spinner:!1,text:null,fullscreen:!0,body:!1,lock:!1,customClass:""},bE={fullscreenLoading:null},_E=(e,t,n)=>{"absolute"!==n.originalPosition.value&&"fixed"!==n.originalPosition.value?Hy(t,"el-loading-parent--relative"):Wy(t,"el-loading-parent--relative"),e.fullscreen&&e.lock?Hy(t,"el-loading-parent--hidden"):Wy(t,"el-loading-parent--hidden")},kE=function(e={}){if(oy)return;"string"==typeof(e=Object.assign(Object.assign({},yE),e)).target&&(e.target=document.querySelector(e.target)),e.target=e.target||document.body,e.target!==document.body?e.fullscreen=!1:e.body=!0,e.fullscreen&&bE.fullscreenLoading&&bE.fullscreenLoading.close();const t=e.body?document.body:e.target;e.parent=t;const n=function({options:e,globalLoadingOption:t}){let n=null,l=null;const a=lt(!1),o=Ue(Object.assign(Object.assign({},e),{originalPosition:"",originalOverflow:"",visible:!1}));function r(){const e=o.parent;if(!e.vLoadingAddClassList){let t=e.getAttribute("loading-number");t=Number.parseInt(t)-1,t?e.setAttribute("loading-number",t.toString()):(Wy(e,"el-loading-parent--relative"),e.removeAttribute("loading-number")),Wy(e,"el-loading-parent--hidden")}n.el&&n.el.parentNode&&n.el.parentNode.removeChild(n.el)}const i=Object.assign(Object.assign({},ct(o)),{setText:function(e){o.text=e},close:function(){o.parent.vLoadingAddClassList=null,o.fullscreen&&(t.fullscreenLoading=void 0),a.value=!0,clearTimeout(l),l=window.setTimeout((()=>{a.value&&(a.value=!1,r())}),400),o.visible=!1},handleAfterLeave:function(){a.value&&(a.value=!1,r())}}),s={name:"ElLoading",setup:()=>i,render(){const e=da("svg",{class:"circular",viewBox:"25 25 50 50"},[da("circle",{class:"path",cx:"50",cy:"50",r:"20",fill:"none"})]),t=da("i",{class:this.spinner}),n=da("p",{class:"el-loading-text"},[this.text]);return da(Ia,{name:"el-loading-fade",onAfterLeave:this.handleAfterLeave},{default:Zt((()=>[Un(Ll("div",{style:{backgroundColor:this.background||""},class:["el-loading-mask",this.customClass,this.fullscreen?"is-fullscreen":""]},[da("div",{class:"el-loading-spinner"},[this.spinner?t:e,this.text?n:null])]),[[mo,this.visible]])]))})}};return n=Ll(s),ko(n,document.createElement("div")),Object.assign(Object.assign({},i),{vm:n,get $el(){return n.el}})}({options:e,globalLoadingOption:bE});var l,a,o;l=e,a=t,o=n,oE(void 0,void 0,void 0,(function*(){const e={};l.fullscreen?(o.originalPosition.value=Yy(document.body,"position"),o.originalOverflow.value=Yy(document.body,"overflow"),e.zIndex=String(y_.nextZIndex())):l.body?(o.originalPosition.value=Yy(document.body,"position"),yield Dt(),["top","left"].forEach((t=>{const n="top"===t?"scrollTop":"scrollLeft";e[t]=l.target.getBoundingClientRect()[t]+document.body[n]+document.documentElement[n]-parseInt(Yy(document.body,"margin-"+t),10)+"px"})),["height","width"].forEach((t=>{e[t]=l.target.getBoundingClientRect()[t]+"px"}))):o.originalPosition.value=Yy(a,"position"),Object.keys(e).forEach((t=>{o.$el.style[t]=e[t]}))})),_E(e,t,n),e.parent.vLoadingAddClassList=()=>{_E(e,t,n)};let r=t.getAttribute("loading-number");return r=r?Number.parseInt(r)+1:1,t.setAttribute("loading-number",r.toString()),t.appendChild(n.$el),Dt().then((()=>{n.visible.value=!uy(e,"visible")||e.visible})),e.fullscreen&&(bE.fullscreenLoading=n),n},xE=(e,t)=>{const n=e.getAttribute("element-loading-text"),l=e.getAttribute("element-loading-spinner"),a=e.getAttribute("element-loading-background"),o=e.getAttribute("element-loading-custom-class"),r=t.instance;e.instance=kE({text:r&&r[n]||n,spinner:r&&r[l]||l,background:r&&r[a]||a,customClass:r&&r[o]||o,fullscreen:!!t.modifiers.fullscreen,target:t.modifiers.fullscreen?null:e,body:!!t.modifiers.body,visible:!0,lock:!!t.modifiers.lock})},wE={mounted(e,t){t.value&&xE(e,t)},updated(e,t){const n=e.instance;t.oldValue!==t.value&&(t.value?xE(e,t):n.close())},unmounted(e){var t;null===(t=null==e?void 0:e.instance)||void 0===t||t.close()}};var CE={install(e){e.directive("loading",wE),e.config.globalProperties.$loading=kE},directive:wE,service:kE},SE=Qn({name:"ElMain"});const EE={class:"el-main"};SE.render=function(e,t,n,l,a,o){return wl(),Sl("main",EE,[Ht(e.$slots,"default")])},SE.__file="packages/container/src/main.vue",SE.install=e=>{e.component(SE.name,SE)};const ME=SE;class OE{constructor(e,t){this.parent=e,this.domNode=t,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(e){e===this.subMenuItems.length?e=0:e<0&&(e=this.subMenuItems.length-1),this.subMenuItems[e].focus(),this.subIndex=e}addListeners(){const e=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,(t=>{t.addEventListener("keydown",(t=>{let n=!1;switch(t.code){case vb.down:this.gotoSubIndex(this.subIndex+1),n=!0;break;case vb.up:this.gotoSubIndex(this.subIndex-1),n=!0;break;case vb.tab:bb(e,"mouseleave");break;case vb.enter:case vb.space:n=!0,t.currentTarget.click()}return n&&(t.preventDefault(),t.stopPropagation()),!1}))}))}}class TE{constructor(e){this.domNode=e,this.submenu=null,this.submenu=null,this.init()}init(){this.domNode.setAttribute("tabindex","0");const e=this.domNode.querySelector(".el-menu");e&&(this.submenu=new OE(this,e)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",(e=>{let t=!1;switch(e.code){case vb.down:bb(e.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),t=!0;break;case vb.up:bb(e.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),t=!0;break;case vb.tab:bb(e.currentTarget,"mouseleave");break;case vb.enter:case vb.space:t=!0,e.currentTarget.click()}t&&e.preventDefault()}))}}class DE{constructor(e){this.domNode=e,this.init()}init(){const e=this.domNode.childNodes;[].filter.call(e,(e=>1===e.nodeType)).forEach((e=>{new TE(e)}))}}var LE=Qn({name:"ElMenuCollapseTransition",setup:()=>({on:{beforeEnter(e){e.style.opacity=.2},enter(e,t){Hy(e,"el-opacity-transition"),e.style.opacity=1,t()},afterEnter(e){Wy(e,"el-opacity-transition"),e.style.opacity=""},beforeLeave(e){e.dataset||(e.dataset={}),Ry(e,"el-menu--collapse")?(Wy(e,"el-menu--collapse"),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth,Hy(e,"el-menu--collapse")):(Hy(e,"el-menu--collapse"),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth,Wy(e,"el-menu--collapse")),e.style.width=e.scrollWidth+"px",e.style.overflow="hidden"},leave(e){Hy(e,"horizontal-collapse-transition"),e.style.width=e.dataset.scrollWidth+"px"}}})});LE.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,Bl({mode:"out-in"},fa(e.on)),{default:Zt((()=>[Ht(e.$slots,"default")])),_:3},16)},LE.__file="packages/menu/src/menu-collapse-transition.vue";var NE=Qn({name:"ElMenu",componentName:"ElMenu",components:{ElMenuCollapseTransition:LE},props:{mode:{type:String,default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:Array,uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,default:"hover"},collapse:Boolean,backgroundColor:{type:String},textColor:{type:String},activeTextColor:{type:String},collapseTransition:{type:Boolean,default:!0}},emits:["close","open","select"],setup(e,t){const n=lt(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),l=na(),a=lt(e.defaultActive),o=lt({}),r=lt({}),i=lt(!1),s=ku(),u=l.appContext.config.globalProperties.$router,c=function(e=""){const t=lt("");return e?(t.value=function(e,t=.2){let{red:n,green:l,blue:a}=function(e){let t=e.replace("#","");if(/^[0-9a-fA-F]{3}$/.test(t)){const e=t.split("");for(let t=2;t>=0;t--)e.splice(t,0,e[t]);t=e.join("")}return/^[0-9a-fA-F]{6}$/.test(t)?{red:parseInt(t.slice(0,2),16),green:parseInt(t.slice(2,4),16),blue:parseInt(t.slice(4,6),16)}:{red:255,green:255,blue:255}}(e);return t>0?(n*=1-t,l*=1-t,a*=1-t):(n+=(255-n)*t,l+=(255-l)*t,a+=(255-a)*t),`rgb(${Math.round(n)}, ${Math.round(l)}, ${Math.round(a)})`}(e),t):t}(e.backgroundColor),d=ca((()=>"horizontal"===e.mode||"vertical"===e.mode&&e.collapse)),p=()=>{const t=a.value,n=o.value[t];n&&"horizontal"!==e.mode&&!e.collapse&&n.indexPath.forEach((e=>{let t=r.value[e];t&&v(e,null==t?void 0:t.indexPath)}))},f=e=>{r.value[e.index]=e},h=e=>{delete r.value[e.index]},v=(t,l)=>{n.value.includes(t)||(e.uniqueOpened&&(n.value=n.value.filter((e=>-1!==(nt(l)?l.value:l).indexOf(e)))),n.value.push(t))},m=e=>{const t=n.value.indexOf(e);-1!==t&&n.value.splice(t,1)},g=e=>{const{index:l,indexPath:a}=e;n.value.includes(l)?(m(l),t.emit("close",l,a.value)):(v(l,a),t.emit("open",l,a.value))},y=l=>{const{index:o,indexPath:r}=l,i=null!==l.index,s=a.value;i&&(a.value=l.index),t.emit("select",o,r.value,l),("horizontal"===e.mode||e.collapse)&&(n.value=[]),e.router&&u&&i&&b(l,(e=>{if(a.value=s,e){if("NavigationDuplicated"===e.name)return;console.error(e)}}))},b=(e,t)=>{let n=e.route||e.index;try{null==u||u.push(n,(()=>null),t)}catch(l){console.error(l)}},_=t=>{const n=o.value,l=n[t]||n[a.value]||n[e.defaultActive];l?(a.value=l.index,p()):i.value?i.value=!1:a.value=null};return Sn((()=>e.defaultActive),(e=>{o.value[e]||(a.value=""),_(e)})),Sn(o.value,(()=>{_()})),Sn((()=>e.collapse),((t,l)=>{t!==l&&(i.value=!0),t&&(n.value=[]),s.emit("rootMenu:toggle-collapse",Boolean(e.collapse))})),$l("rootMenu",{props:e,openedMenus:n,items:o,submenus:r,hoverBackground:c,activeIndex:a,isMenuPopup:d,methods:{addMenuItem:e=>{o.value[e.index]=e},removeMenuItem:e=>{delete o.value[e.index]},addSubMenu:f,removeSubMenu:h,openMenu:v,closeMenu:m},rootMenuEmit:s.emit,rootMenuOn:s.on}),$l("subMenu:"+l.uid,{addSubMenu:f,removeSubMenu:h}),mn((()=>{p(),s.on("menuItem:item-click",y),s.on("submenu:submenu-click",g),"horizontal"===e.mode&&new DE(l.vnode.el)})),{hoverBackground:c,isMenuPopup:d,props:e,open:e=>{const{indexPath:t}=r.value[e.toString()];t.forEach((e=>v(e,t)))},close:e=>{m(e)}}}});NE.render=function(e,t,n,l,a,o){const r=dl("el-menu-collapse-transition");return e.props.collapseTransition?(wl(),Sl(r,{key:0},{default:Zt((()=>[(wl(),Sl("ul",{key:+e.props.collapse,role:"menubar",style:{backgroundColor:e.props.backgroundColor||""},class:{"el-menu":!0,"el-menu--horizontal":"horizontal"===e.mode,"el-menu--collapse":e.props.collapse}},[Ht(e.$slots,"default")],6))])),_:3})):(wl(),Sl("ul",{key:+e.props.collapse,role:"menubar",style:{backgroundColor:e.props.backgroundColor||""},class:{"el-menu":!0,"el-menu--horizontal":"horizontal"===e.mode,"el-menu--collapse":e.props.collapse}},[Ht(e.$slots,"default")],6))},NE.__file="packages/menu/src/menu.vue",NE.install=e=>{e.component(NE.name,NE)};const AE=NE;function PE(e,t){const n=zl("rootMenu"),l=ca((()=>{let n=e.parent;const l=[t];for(;"ElMenu"!==n.type.name;)n.props.index&&l.unshift(n.props.index),n=n.parent;return l}));return{parentMenu:ca((()=>{let t=e.parent;for(;t&&-1===["ElMenu","ElSubmenu"].indexOf(t.type.name);)t=t.parent;return t})),paddingStyle:ca((()=>{let t=e.parent;if("vertical"!==n.props.mode)return{};let l=20;if(n.props.collapse)l=20;else for(;t&&"ElMenu"!==t.type.name;)"ElSubmenu"===t.type.name&&(l+=20),t=t.parent;return{paddingLeft:l+"px"}})),indexPath:l}}var IE=Qn({name:"ElTooltip",components:{ElPopper:M_},props:Object.assign(Object.assign({},k_),{manual:{type:Boolean,default:!1},modelValue:{type:Boolean,validator:e=>"boolean"==typeof e,default:void 0},openDelay:{type:Number,default:0},visibleArrow:{type:Boolean,default:!0},tabindex:{type:Number,default:0}}),emits:[Nb],setup(e,t){e.manual&&void 0===e.modelValue&&wy("[ElTooltip]","You need to pass a v-model to el-tooltip when `manual` is true");const n=lt(null);return{popper:n,onUpdateVisible:e=>{t.emit(Nb,e)},updatePopper:()=>n.value.update()}},render(){const{$slots:e,content:t,manual:n,openDelay:l,onUpdateVisible:a,showAfter:o,visibleArrow:r,modelValue:i,tabindex:s}=this,u=()=>{wy("[ElTooltip]","you need to provide a valid default slot.")};return da(M_,Object.assign(Object.assign({},Object.keys(k_).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:this[t]})),{})),{ref:"popper",manualMode:n,showAfter:l||o,showArrow:r,visible:i,"onUpdate:visible":a}),{default:()=>e.content?e.content():t,trigger:()=>{if(e.default){const t=u_(e.default(),1);return t||u(),Nl(t,{tabindex:s},!0)}u()}})}});IE.install=e=>{e.component(IE.name,IE)};const FE=IE;var VE=Qn({name:"ElMenuItem",componentName:"ElMenuItem",components:{ElTooltip:FE},props:{index:{default:null,validator:e=>"string"==typeof e||null===e},route:[String,Object],disabled:Boolean},emits:["click"],setup(e,{emit:t,slots:n}){const l=na(),a=zl("rootMenu"),{parentMenu:o,paddingStyle:r,indexPath:i}=PE(l,e.index),{addSubMenu:s,removeSubMenu:u}=zl("subMenu:"+o.value.uid),c=ca((()=>e.index===a.activeIndex.value)),d=ca((()=>a.hoverBackground.value)),p=ca((()=>a.props.backgroundColor||"")),f=ca((()=>a.props.activeTextColor||"")),h=ca((()=>a.props.textColor||"")),v=ca((()=>a.props.mode)),m=ca((()=>"ElMenu"!==o.value.type.name)),g=ca((()=>{const e={color:c.value?f.value:h.value,borderBottomColor:""};return"horizontal"!==v.value||m.value||(e.borderBottomColor=c.value?a.props.activeTextColor?f.value:"":"transparent"),e}));return mn((()=>{s({index:e.index,indexPath:i,active:c}),a.methods.addMenuItem({index:e.index,indexPath:i,active:c})})),bn((()=>{u({index:e.index,indexPath:i,active:c}),a.methods.removeMenuItem({index:e.index,indexPath:i,active:c})})),{parentMenu:o,rootMenu:a,slots:n,paddingStyle:r,itemStyle:g,backgroundColor:p,active:c,handleClick:()=>{e.disabled||(a.rootMenuEmit("menuItem:item-click",{index:e.index,indexPath:i,route:e.route}),t("click",{index:e.index,indexPath:i.value}))},onMouseEnter:()=>{("horizontal"!==v.value||a.props.backgroundColor)&&(l.vnode.el.style.backgroundColor=d.value)},onMouseLeave:()=>{("horizontal"!==v.value||a.props.backgroundColor)&&(l.vnode.el.style.backgroundColor=p.value)}}}});const BE={style:{position:"absolute",left:"0",top:"0",height:"100%",width:"100%",display:"inline-block","box-sizing":"border-box",padding:"0 20px"}};VE.render=function(e,t,n,l,a,o){const r=dl("el-tooltip");return wl(),Sl("li",{class:["el-menu-item",{"is-active":e.active,"is-disabled":e.disabled}],role:"menuitem",tabindex:"-1",style:[e.paddingStyle,e.itemStyle,{backgroundColor:e.backgroundColor}],onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t)),onMouseenter:t[2]||(t[2]=(...t)=>e.onMouseEnter&&e.onMouseEnter(...t)),onFocus:t[3]||(t[3]=(...t)=>e.onMouseEnter&&e.onMouseEnter(...t)),onBlur:t[4]||(t[4]=(...t)=>e.onMouseLeave&&e.onMouseLeave(...t)),onMouseleave:t[5]||(t[5]=(...t)=>e.onMouseLeave&&e.onMouseLeave(...t))},["ElMenu"===e.parentMenu.type.name&&e.rootMenu.props.collapse&&e.slots.title?(wl(),Sl(r,{key:0,effect:"dark",placement:"right"},{content:Zt((()=>[Ht(e.$slots,"title")])),default:Zt((()=>[Ll("div",BE,[Ht(e.$slots,"default")])])),_:3})):(wl(),Sl(gl,{key:1},[Ht(e.$slots,"default"),Ht(e.$slots,"title")],64))],38)},VE.__file="packages/menu/src/menuItem.vue",VE.install=e=>{e.component(VE.name,VE)};const $E=VE;var zE=Qn({name:"ElMenuItemGroup",componentName:"ElMenuItemGroup",props:{title:{type:String}},setup(e,{slots:t}){const n=Ue({paddingLeft:20}),l=na(),a=ca((()=>{let e=20,t=l.parent;if(o.collapse)return 20;for(;t&&"ElMenu"!==t.type.name;)"ElSubmenu"===t.type.name&&(e+=20),t=t.parent;return e})),{props:o}=zl("rootMenu");return{data:n,levelPadding:a,props:e,slots:t}}});const jE={class:"el-menu-item-group"};zE.render=function(e,t,n,l,a,o){return wl(),Sl("li",jE,[Ll("div",{class:"el-menu-item-group__title",style:{paddingLeft:e.levelPadding+"px"}},[e.slots.title?Ht(e.$slots,"title",{key:1}):(wl(),Sl(gl,{key:0},[Al(c(e.title),1)],2112))],4),Ll("ul",null,[Ht(e.$slots,"default")])])},zE.__file="packages/menu/src/menuItemGroup.vue",zE.install=e=>{e.component(zE.name,zE)};const RE=zE,HE={success:"success",info:"info",warning:"warning",error:"error"};var WE=Qn({name:"ElMessage",props:{customClass:{type:String,default:""},center:{type:Boolean,default:!1},dangerouslyUseHTMLString:{type:Boolean,default:!1},duration:{type:Number,default:3e3},iconClass:{type:String,default:""},id:{type:String,default:""},message:{type:[String,Object],default:""},onClose:{type:Function,required:!0},showClose:{type:Boolean,default:!1},type:{type:String,default:"info"},offset:{type:Number,default:20},zIndex:{type:Number,default:0}},emits:["destroy"],setup(e){const t=ca((()=>{const t=e.type;return t&&HE[t]?"el-message__icon el-icon-"+HE[t]:""})),n=ca((()=>({top:e.offset+"px",zIndex:e.zIndex}))),l=lt(!1);let a=null;function o(){e.duration>0&&(a=setTimeout((()=>{l.value&&r()}),e.duration))}function r(){l.value=!1}function i({code:e}){e===vb.esc?l.value&&r():o()}return mn((()=>{o(),l.value=!0,zy(document,"keydown",i)})),bn((()=>{jy(document,"keydown",i)})),{typeClass:t,customStyle:n,visible:l,close:r,clearTimer:function(){clearTimeout(a),a=null},startTimer:o}}});const YE={key:0,class:"el-message__content"};WE.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,{name:"el-message-fade",onBeforeLeave:e.onClose,onAfterLeave:t[4]||(t[4]=t=>e.$emit("destroy"))},{default:Zt((()=>[Un(Ll("div",{id:e.id,class:["el-message",e.type&&!e.iconClass?"el-message--"+e.type:"",e.center?"is-center":"",e.showClose?"is-closable":"",e.customClass],style:e.customStyle,role:"alert",onMouseenter:t[2]||(t[2]=(...t)=>e.clearTimer&&e.clearTimer(...t)),onMouseleave:t[3]||(t[3]=(...t)=>e.startTimer&&e.startTimer(...t))},[e.type||e.iconClass?(wl(),Sl("i",{key:0,class:[e.typeClass,e.iconClass]},null,2)):Pl("v-if",!0),Ht(e.$slots,"default",{},(()=>[e.dangerouslyUseHTMLString?(wl(),Sl(gl,{key:1},[Pl(" Caution here, message could've been compromised, never use user's input as message "),Pl("  eslint-disable-next-line "),Ll("p",{class:"el-message__content",innerHTML:e.message},null,8,["innerHTML"])],2112)):(wl(),Sl("p",YE,c(e.message),1))])),e.showClose?(wl(),Sl("div",{key:1,class:"el-message__closeBtn el-icon-close",onClick:t[1]||(t[1]=fo(((...t)=>e.close&&e.close(...t)),["stop"]))})):Pl("v-if",!0)],46,["id"]),[[mo,e.visible]])])),_:3},8,["onBeforeLeave"])},WE.__file="packages/message/src/index.vue";const qE=[];let KE=1;const UE=function(e={}){if(oy)return;"string"==typeof e&&(e={message:e});let t=e,n=e.offset||20;qE.forEach((({vm:e})=>{n+=(e.el.offsetHeight||0)+16})),n+=16;const l="message_"+KE++,a=t.onClose;t=Object.assign(Object.assign({},t),{onClose:()=>{!function(e,t){const n=qE.findIndex((({vm:t})=>{const{id:n}=t.component.props;return e===n}));if(-1===n)return;const{vm:l}=qE[n];if(!l)return;null==t||t(l);const a=l.el.offsetHeight;qE.splice(n,1);const o=qE.length;if(!(o<1))for(let r=n;r<o;r++){const e=parseInt(qE[r].vm.el.style.top,10)-a-16;qE[r].vm.component.props.offset=e}}(l,a)},offset:n,id:l,zIndex:y_.nextZIndex()});const o=document.createElement("div");o.className="container_"+l;const r=t.message,i=Ll(WE,t,El(t.message)?{default:()=>r}:null);return i.props.onDestroy=()=>{ko(null,o)},ko(i,o),qE.push({vm:i}),document.body.appendChild(o.firstElementChild),{close:()=>i.component.proxy.visible=!1}};["success","warning","info","error"].forEach((e=>{UE[e]=t=>("string"==typeof t?t={message:t,type:e}:t.type=e,UE(t))})),UE.closeAll=function(){for(let e=qE.length-1;e>=0;e--)qE[e].vm.component.ctx.close()};const GE=UE;GE.install=e=>{e.config.globalProperties.$message=GE};const XE={success:"success",info:"info",warning:"warning",error:"error"};var ZE=Qn({name:"ElMessageBox",directives:{TrapFocus:Tb},components:{ElButton:Z_,ElInput:Qb,ElOverlay:VC},inheritAttrs:!1,props:{buttonSize:{type:String,validator:Ib},modal:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},closeOnHashChange:{type:Boolean,default:!0},center:Boolean,roundButton:{default:!1,type:Boolean},container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(e,{emit:t}){const n=lt(!1),l=Ue({beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,iconClass:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:null,inputValidator:null,inputErrorMessage:"",message:null,modalFade:!0,modalClass:"",showCancelButton:!1,showConfirmButton:!0,type:"",title:void 0,showInput:!1,action:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonDisabled:!1,editorErrorMessage:"",validateError:!1,zIndex:y_.nextZIndex()}),a=ca((()=>l.iconClass||(l.type&&XE[l.type]?"el-icon-"+XE[l.type]:""))),o=ca((()=>!!l.message)),r=lt(null),i=lt(null),s=ca((()=>"el-button--primary "+l.confirmButtonClass));function u(){n.value&&(n.value=!1,Dt((()=>{l.action&&t("action",l.action)})))}Sn((()=>l.inputValue),(t=>oE(this,void 0,void 0,(function*(){yield Dt(),"prompt"===e.boxType&&null!==t&&d()}))),{immediate:!0}),Sn((()=>n.value),(t=>{t&&("alert"!==e.boxType&&"confirm"!==e.boxType||Dt().then((()=>{var e,t,n;null===(n=null===(t=null===(e=i.value)||void 0===e?void 0:e.$el)||void 0===t?void 0:t.focus)||void 0===n||n.call(t)})),l.zIndex=y_.nextZIndex()),"prompt"===e.boxType&&(t?Dt().then((()=>{r.value&&r.value.$el&&p().focus()})):(l.editorErrorMessage="",l.validateError=!1))})),mn((()=>oE(this,void 0,void 0,(function*(){yield Dt(),e.closeOnHashChange&&zy(window,"hashchange",u)})))),bn((()=>{e.closeOnHashChange&&jy(window,"hashchange",u)}));const c=t=>{var n;("prompt"!==e.boxType||"confirm"!==t||d())&&(l.action=t,l.beforeClose?null===(n=l.beforeClose)||void 0===n||n.call(l,t,l,u):u())},d=()=>{if("prompt"===e.boxType){const e=l.inputPattern;if(e&&!e.test(l.inputValue||""))return l.editorErrorMessage=l.inputErrorMessage||ak("el.messagebox.error"),l.validateError=!0,!1;const t=l.inputValidator;if("function"==typeof t){const e=t(l.inputValue);if(!1===e)return l.editorErrorMessage=l.inputErrorMessage||ak("el.messagebox.error"),l.validateError=!0,!1;if("string"==typeof e)return l.editorErrorMessage=e,l.validateError=!0,!1}}return l.editorErrorMessage="",l.validateError=!1,!0},p=()=>{const e=r.value.$refs;return e.input||e.textarea},f=()=>{c("close")};return e.closeOnPressEscape?kb({handleClose:f},n):((e,t,n)=>{const l=e=>{(e=>e.code===vb.esc)(e)&&e.stopImmediatePropagation()};Sn((()=>e.value),(e=>{e?zy(document,t,l,!0):jy(document,t,l,!0)}),{immediate:!0})})(n,"keydown"),e.lockScroll&&fb(n),hb(n),Object.assign(Object.assign({},ct(l)),{visible:n,hasMessage:o,icon:a,confirmButtonClasses:s,inputRef:r,confirmRef:i,doClose:u,handleClose:f,handleWrapperClick:()=>{e.closeOnClickModal&&c(l.distinguishCancelAndClose?"close":"cancel")},handleInputEnter:()=>{if("textarea"!==l.inputType)return c("confirm")},handleAction:c,t:ak})}});const JE={key:0,class:"el-message-box__header"},QE={class:"el-message-box__title"},eM=Ll("i",{class:"el-message-box__close el-icon-close"},null,-1),tM={class:"el-message-box__content"},nM={class:"el-message-box__container"},lM={key:1,class:"el-message-box__message"},aM={key:0},oM={class:"el-message-box__input"},rM={class:"el-message-box__btns"};ZE.render=function(e,t,n,l,a,o){const r=dl("el-input"),i=dl("el-button"),s=dl("el-overlay"),u=hl("trap-focus");return wl(),Sl(Ia,{name:"fade-in-linear",onAfterLeave:t[8]||(t[8]=t=>e.$emit("vanish"))},{default:Zt((()=>[Un(Ll(s,{"z-index":e.zIndex,"overlay-class":["is-message-box",e.modalClass],mask:e.modal,onClick:fo(e.handleWrapperClick,["self"])},{default:Zt((()=>[Un(Ll("div",{ref:"root","aria-label":e.title||"dialog","aria-modal":"true",class:["el-message-box",e.customClass,{"el-message-box--center":e.center}]},[null!==e.title&&void 0!==e.title?(wl(),Sl("div",JE,[Ll("div",QE,[e.icon&&e.center?(wl(),Sl("div",{key:0,class:["el-message-box__status",e.icon]},null,2)):Pl("v-if",!0),Ll("span",null,c(e.title),1)]),e.showClose?(wl(),Sl("button",{key:0,type:"button",class:"el-message-box__headerbtn","aria-label":"Close",onClick:t[1]||(t[1]=t=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),onKeydown:t[2]||(t[2]=vo((t=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),["enter"]))},[eM],32)):Pl("v-if",!0)])):Pl("v-if",!0),Ll("div",tM,[Ll("div",nM,[e.icon&&!e.center&&e.hasMessage?(wl(),Sl("div",{key:0,class:["el-message-box__status",e.icon]},null,2)):Pl("v-if",!0),e.hasMessage?(wl(),Sl("div",lM,[Ht(e.$slots,"default",{},(()=>[e.dangerouslyUseHTMLString?(wl(),Sl("p",{key:1,innerHTML:e.message},null,8,["innerHTML"])):(wl(),Sl("p",aM,c(e.message),1))]))])):Pl("v-if",!0)]),Un(Ll("div",oM,[Ll(r,{ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":t[3]||(t[3]=t=>e.inputValue=t),type:e.inputType,placeholder:e.inputPlaceholder,class:{invalid:e.validateError},onKeydown:vo(fo(e.handleInputEnter,["prevent"]),["enter"])},null,8,["modelValue","type","placeholder","class","onKeydown"]),Ll("div",{class:"el-message-box__errormsg",style:{visibility:e.editorErrorMessage?"visible":"hidden"}},c(e.editorErrorMessage),5)],512),[[mo,e.showInput]])]),Ll("div",rM,[e.showCancelButton?(wl(),Sl(i,{key:0,loading:e.cancelButtonLoading,class:[e.cancelButtonClass],round:e.roundButton,size:e.buttonSize||"small",onClick:t[4]||(t[4]=t=>e.handleAction("cancel")),onKeydown:t[5]||(t[5]=vo((t=>e.handleAction("cancel")),["enter"]))},{default:Zt((()=>[Al(c(e.cancelButtonText||e.t("el.messagebox.cancel")),1)])),_:1},8,["loading","class","round","size"])):Pl("v-if",!0),Un(Ll(i,{ref:"confirmRef",loading:e.confirmButtonLoading,class:[e.confirmButtonClasses],round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.buttonSize||"small",onClick:t[6]||(t[6]=t=>e.handleAction("confirm")),onKeydown:t[7]||(t[7]=vo((t=>e.handleAction("confirm")),["enter"]))},{default:Zt((()=>[Al(c(e.confirmButtonText||e.t("el.messagebox.confirm")),1)])),_:1},8,["loading","class","round","disabled","size"]),[[mo,e.showConfirmButton]])])],10,["aria-label"]),[[u]])])),_:3},8,["z-index","overlay-class","mask","onClick"]),[[mo,e.visible]])])),_:1})},ZE.__file="packages/message-box/src/index.vue";const iM=new Map;function sM(e){if(oy)return;let t;return py(e)||El(e)?e={message:e}:t=e.callback,new Promise(((n,l)=>{const a=(e=>{const t=document.createElement("div");e.onVanish=()=>{ko(null,t),iM.delete(l)},e.onAction=t=>{const a=iM.get(l);let o;o=e.showInput?{value:l.inputValue,action:t}:t,e.callback?e.callback(o,n.proxy):"cancel"===t||"close"===t?e.distinguishCancelAndClose&&"cancel"!==t?a.reject("close"):a.reject("cancel"):a.resolve(o)};const n=((e,t)=>{const n=da(ZE,e);return ko(n,t),document.body.appendChild(t.firstElementChild),n.component})(e,t),l=n.proxy;for(const a in e)uy(e,a)&&!uy(l.$props,a)&&(l[a]=e[a]);return Sn((()=>l.message),((e,t)=>{El(e)?n.slots.default=()=>[e]:El(t)&&!El(e)&&delete n.slots.default}),{immediate:!0}),l.visible=!0,l})(e);iM.set(a,{options:e,callback:t,resolve:n,reject:l})}))}sM.alert=(e,t,n)=>("object"==typeof t?(n=t,t=""):void 0===t&&(t=""),sM(Object.assign({title:t,message:e,type:"",closeOnPressEscape:!1,closeOnClickModal:!1},n,{boxType:"alert"}))),sM.confirm=(e,t,n)=>("object"==typeof t?(n=t,t=""):void 0===t&&(t=""),sM(Object.assign({title:t,message:e,type:"",showCancelButton:!0},n,{boxType:"confirm"}))),sM.prompt=(e,t,n)=>("object"==typeof t?(n=t,t=""):void 0===t&&(t=""),sM(Object.assign({title:t,message:e,showCancelButton:!0,showInput:!0,type:""},n,{boxType:"prompt"}))),sM.close=()=>{iM.forEach(((e,t)=>{t.doClose()})),iM.clear()};const uM=sM;uM.install=e=>{e.config.globalProperties.$msgbox=uM,e.config.globalProperties.$messageBox=uM,e.config.globalProperties.$alert=uM.alert,e.config.globalProperties.$confirm=uM.confirm,e.config.globalProperties.$prompt=uM.prompt};const cM={success:"success",info:"info",warning:"warning",error:"error"};var dM=Qn({name:"ElNotification",props:{customClass:{type:String,default:""},dangerouslyUseHTMLString:{type:Boolean,default:!1},duration:{type:Number,default:4500},iconClass:{type:String,default:""},id:{type:String,default:""},message:{type:[String,Object],default:""},offset:{type:Number,default:0},onClick:{type:Function,default:()=>{}},onClose:{type:Function,required:!0},position:{type:String,default:"top-right"},showClose:{type:Boolean,default:!0},title:{type:String,default:""},type:{type:String,default:""},zIndex:{type:Number,default:0}},emits:["destroy"],setup(e){const t=lt(!1);let n=null;const l=ca((()=>{const t=e.type;return t&&cM[t]?"el-icon-"+cM[t]:""})),a=ca((()=>e.position.indexOf("right")>1?"right":"left")),o=ca((()=>e.position.startsWith("top")?"top":"bottom")),r=ca((()=>({[o.value]:e.offset+"px"})));function i(){e.duration>0&&(n=setTimeout((()=>{t.value&&u()}),e.duration))}function s(){clearTimeout(n),n=null}function u(){t.value=!1}function c({code:e}){e===vb.delete||e===vb.backspace?s():e===vb.esc?t.value&&u():i()}return mn((()=>{i(),t.value=!0,zy(document,"keydown",c)})),bn((()=>{jy(document,"keydown",c)})),{horizontalClass:a,typeClass:l,positionStyle:r,visible:t,close:u,clearTimer:s,startTimer:i}}});const pM={key:0};dM.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,{name:"el-notification-fade",onBeforeLeave:e.onClose,onAfterLeave:t[5]||(t[5]=t=>e.$emit("destroy"))},{default:Zt((()=>[Un(Ll("div",{id:e.id,class:["el-notification",e.customClass,e.horizontalClass],style:e.positionStyle,role:"alert",onMouseenter:t[2]||(t[2]=(...t)=>e.clearTimer&&e.clearTimer(...t)),onMouseleave:t[3]||(t[3]=(...t)=>e.startTimer&&e.startTimer(...t)),onClick:t[4]||(t[4]=(...t)=>e.onClick&&e.onClick(...t))},[e.type||e.iconClass?(wl(),Sl("i",{key:0,class:["el-notification__icon",[e.typeClass,e.iconClass]]},null,2)):Pl("v-if",!0),Ll("div",{class:["el-notification__group",{"is-with-icon":e.typeClass||e.iconClass}]},[Ll("h2",{class:"el-notification__title",textContent:c(e.title)},null,8,["textContent"]),Un(Ll("div",{class:"el-notification__content",style:e.title?null:"margin: 0"},[Ht(e.$slots,"default",{},(()=>[e.dangerouslyUseHTMLString?(wl(),Sl(gl,{key:1},[Pl(" Caution here, message could've been compromized, nerver use user's input as message "),Pl(" eslint-disable-next-line "),Ll("p",{innerHTML:e.message},null,8,["innerHTML"])],2112)):(wl(),Sl("p",pM,c(e.message),1))]))],4),[[mo,e.message]]),e.showClose?(wl(),Sl("div",{key:0,class:"el-notification__closeBtn el-icon-close",onClick:t[1]||(t[1]=fo(((...t)=>e.close&&e.close(...t)),["stop"]))})):Pl("v-if",!0)],2)],46,["id"]),[[mo,e.visible]])])),_:3},8,["onBeforeLeave"])},dM.__file="packages/notification/src/index.vue";const fM={"top-left":[],"top-right":[],"bottom-left":[],"bottom-right":[]};let hM=1;const vM=function(e={}){if(oy)return;const t=e.position||"top-right";let n=e.offset||0;fM[t].forEach((({vm:e})=>{n+=(e.el.offsetHeight||0)+16})),n+=16;const l="notification_"+hM++,a=e.onClose;e=Object.assign(Object.assign({},e),{onClose:()=>{!function(e,t,n){const l=fM[t],a=l.findIndex((({vm:t})=>t.component.props.id===e));if(-1===a)return;const{vm:o}=l[a];if(!o)return;null==n||n(o);const r=o.el.offsetHeight,i=t.split("-")[0];l.splice(a,1);const s=l.length;if(!(s<1))for(let u=a;u<s;u++){const{el:e,component:t}=l[u].vm,n=parseInt(e.style[i],10)-r-16;t.props.offset=n}}(l,t,a)},offset:n,id:l,zIndex:y_.nextZIndex()});const o=document.createElement("div"),r=Ll(dM,e,El(e.message)?{default:()=>e.message}:null);return r.props.onDestroy=()=>{ko(null,o)},ko(r,o),fM[t].push({vm:r}),document.body.appendChild(o.firstElementChild),{close:()=>{r.component.proxy.visible=!1}}};["success","warning","info","error"].forEach((e=>{Object.assign(vM,{[e]:(t={})=>(("string"==typeof t||El(t))&&(t={message:t}),t.type=e,vM(t))})}));const mM=vM;mM.install=e=>{e.config.globalProperties.$notify=mM};var gM=Qn({name:"ElOption",componentName:"ElOption",props:{value:{required:!0,type:[String,Number,Boolean,Object]},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},setup(e){const t=Ue({index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}),{currentLabel:n,itemSelected:l,isDisabled:a,select:o,hoverItem:r}=function(e,t){const n=zl("ElSelect"),l=zl("ElSelectGroup",{disabled:!1}),a=ca((()=>"[object object]"===Object.prototype.toString.call(e.value).toLowerCase())),o=ca((()=>n.props.multiple?d(n.props.modelValue,e.value):p(e.value,n.props.modelValue))),r=ca((()=>{if(n.props.multiple){const e=n.props.modelValue||[];return!o.value&&e.length>=n.props.multipleLimit&&n.props.multipleLimit>0}return!1})),i=ca((()=>e.label||(a.value?"":e.value))),s=ca((()=>e.value||e.label||"")),u=ca((()=>e.disabled||t.groupDisabled||r.value)),c=na(),d=(e=[],t)=>{if(a.value){const l=n.props.valueKey;return e&&e.some((e=>Cy(e,l)===Cy(t,l)))}return e&&e.indexOf(t)>-1},p=(e,t)=>{if(a.value){const{valueKey:l}=n.props;return Cy(e,l)===Cy(t,l)}return e===t};return Sn((()=>i.value),(()=>{e.created||n.props.remote||n.setSelected()})),Sn((()=>e.value),((t,l)=>{const{remote:a,valueKey:o}=n.props;if(!e.created&&!a){if(o&&"object"==typeof t&&"object"==typeof l&&t[o]===l[o])return;n.setSelected()}})),Sn((()=>l.disabled),(()=>{t.groupDisabled=l.disabled}),{immediate:!0}),n.selectEmitter.on("elOptionQueryChange",(l=>{const a=new RegExp(((e="")=>String(e).replace(/[|\\{}()[\]^$+*?.]/g,"\\$&"))(l),"i");t.visible=a.test(i.value)||e.created,t.visible||n.filteredOptionsCount--})),{select:n,currentLabel:i,currentValue:s,itemSelected:o,isDisabled:u,hoverItem:()=>{e.disabled||l.disabled||(n.hoverIndex=n.optionsArray.indexOf(c))}}}(e,t),{visible:i,hover:s}=ct(t),u=na().proxy;return o.onOptionCreate(u),bn((()=>{const{selected:t}=o;let n=o.props.multiple?t:[t];const l=o.cachedOptions.has(e.value),a=n.some((e=>e.value===u.value));l&&!a&&o.cachedOptions.delete(e.value),o.onOptionDestroy(e.value)})),{currentLabel:n,itemSelected:l,isDisabled:a,select:o,hoverItem:r,visible:i,hover:s,selectOptionClick:function(){!0!==e.disabled&&!0!==t.groupDisabled&&o.handleOptionSelect(u,!0)}}}});gM.render=function(e,t,n,l,a,o){return Un((wl(),Sl("li",{class:["el-select-dropdown__item",{selected:e.itemSelected,"is-disabled":e.isDisabled,hover:e.hover}],onMouseenter:t[1]||(t[1]=(...t)=>e.hoverItem&&e.hoverItem(...t)),onClick:t[2]||(t[2]=fo(((...t)=>e.selectOptionClick&&e.selectOptionClick(...t)),["stop"]))},[Ht(e.$slots,"default",{},(()=>[Ll("span",null,c(e.currentLabel),1)]))],34)),[[mo,e.visible]])},gM.__file="packages/select/src/option.vue";var yM=Qn({name:"ElSelectDropdown",componentName:"ElSelectDropdown",setup(){const e=zl("ElSelect"),t=ca((()=>e.props.popperClass)),n=ca((()=>e.props.multiple)),l=lt("");function a(){var t;l.value=(null===(t=e.selectWrapper)||void 0===t?void 0:t.getBoundingClientRect().width)+"px"}return mn((()=>{Zy(e.selectWrapper,a)})),bn((()=>{Jy(e.selectWrapper,a)})),{minWidth:l,popperClass:t,isMultiple:n}}});yM.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-select-dropdown",[{"is-multiple":e.isMultiple},e.popperClass]],style:{minWidth:e.minWidth}},[Ht(e.$slots,"default")],6)},yM.__file="packages/select/src/select-dropdown.vue";const bM=(e,t,n)=>{const l=Ay(),a=lt(null),o=lt(null),r=lt(null),i=lt(null),s=lt(null),u=lt(null),c=lt(-1),d=zl("elForm",{}),p=zl("elFormItem",{}),f=ca((()=>!e.filterable||e.multiple||!(!oy&&!isNaN(Number(document.documentMode)))&&!(!oy&&navigator.userAgent.indexOf("Edge")>-1)&&!t.visible)),h=ca((()=>e.disabled||d.disabled)),v=ca((()=>{const n=e.multiple?Array.isArray(e.modelValue)&&e.modelValue.length>0:void 0!==e.modelValue&&null!==e.modelValue&&""!==e.modelValue;return e.clearable&&!h.value&&t.inputHovering&&n})),m=ca((()=>e.remote&&e.filterable?"":t.visible?"arrow-up is-reverse":"arrow-up")),g=ca((()=>e.remote?300:0)),y=ca((()=>e.loading?e.loadingText||ak("el.select.loading"):(!e.remote||""!==t.query||0!==t.options.size)&&(e.filterable&&t.query&&t.options.size>0&&0===t.filteredOptionsCount?e.noMatchText||ak("el.select.noMatch"):0===t.options.size?e.noDataText||ak("el.select.noData"):null))),b=ca((()=>Array.from(t.options.values()))),_=ca((()=>Array.from(t.cachedOptions.values()))),k=ca((()=>{const n=b.value.filter((e=>!e.created)).some((e=>e.currentLabel===t.query));return e.filterable&&e.allowCreate&&""!==t.query&&!n})),x=ca((()=>e.size||p.size||l.size)),w=ca((()=>["small","mini"].indexOf(x.value)>-1?"mini":"small")),C=ca((()=>t.visible&&!1!==y.value));Sn((()=>h.value),(()=>{Dt((()=>{S()}))})),Sn((()=>e.placeholder),(e=>{t.cachedPlaceHolder=t.currentPlaceholder=e})),Sn((()=>e.modelValue),((n,l)=>{var a;e.multiple&&(S(),n&&n.length>0||o.value&&""!==t.query?t.currentPlaceholder="":t.currentPlaceholder=t.cachedPlaceHolder,e.filterable&&!e.reserveKeyword&&(t.query="",E(t.query))),T(),e.filterable&&!e.multiple&&(t.inputLength=20),Sv(n,l)||null===(a=p.formItemMitt)||void 0===a||a.emit("el.form.change",n)}),{flush:"post",deep:!0}),Sn((()=>t.visible),(l=>{var a,i;l?(null===(i=null===(a=r.value)||void 0===a?void 0:a.update)||void 0===i||i.call(a),e.filterable&&(t.filteredOptionsCount=t.optionsCount,t.query=e.remote?"":t.selectedLabel,e.multiple?o.value.focus():t.selectedLabel&&(t.currentPlaceholder=t.selectedLabel,t.selectedLabel=""),E(t.query),e.multiple||e.remote||(t.selectEmitter.emit("elOptionQueryChange",""),t.selectEmitter.emit("elOptionGroupQueryChange")))):(o.value&&o.value.blur(),t.query="",t.previousQuery=null,t.selectedLabel="",t.inputLength=20,t.menuVisibleOnFocus=!1,L(),Dt((()=>{o.value&&""===o.value.value&&0===t.selected.length&&(t.currentPlaceholder=t.cachedPlaceHolder)})),e.multiple||(t.selected&&(e.filterable&&e.allowCreate&&t.createdSelected&&t.createdLabel?t.selectedLabel=t.createdLabel:t.selectedLabel=t.selected.currentLabel,e.filterable&&(t.query=t.selectedLabel)),e.filterable&&(t.currentPlaceholder=t.cachedPlaceHolder))),n.emit("visible-change",l)})),Sn((()=>t.options.entries()),(()=>{var n,l,a;if(oy)return;null===(l=null===(n=r.value)||void 0===n?void 0:n.update)||void 0===l||l.call(n),e.multiple&&S();const o=(null===(a=s.value)||void 0===a?void 0:a.querySelectorAll("input"))||[];-1===[].indexOf.call(o,document.activeElement)&&T(),e.defaultFirstOption&&(e.filterable||e.remote)&&t.filteredOptionsCount&&O()}),{flush:"post"}),Sn((()=>t.hoverIndex),(e=>{"number"==typeof e&&e>-1&&(c.value=b.value[e]||{}),b.value.forEach((e=>{e.hover=c.value===e}))}));const S=()=>{e.collapseTags&&!e.filterable||Dt((()=>{var e,n;if(!a.value)return;const l=a.value.$el.childNodes,o=[].filter.call(l,(e=>"INPUT"===e.tagName))[0],s=i.value,u=t.initialInputHeight||40;o.style.height=0===t.selected.length?u+"px":Math.max(s?s.clientHeight+(s.clientHeight>u?6:0):0,u)+"px",t.tagInMultiLine=parseFloat(o.style.height)>u,t.visible&&!1!==y.value&&(null===(n=null===(e=r.value)||void 0===e?void 0:e.update)||void 0===n||n.call(e))}))},E=n=>{t.previousQuery===n||t.isOnComposition||(null!==t.previousQuery||"function"!=typeof e.filterMethod&&"function"!=typeof e.remoteMethod?(t.previousQuery=n,Dt((()=>{var e,n;t.visible&&(null===(n=null===(e=r.value)||void 0===e?void 0:e.update)||void 0===n||n.call(e))})),t.hoverIndex=-1,e.multiple&&e.filterable&&Dt((()=>{const n=15*o.value.length+20;t.inputLength=e.collapseTags?Math.min(50,n):n,M(),S()})),e.remote&&"function"==typeof e.remoteMethod?(t.hoverIndex=-1,e.remoteMethod(n)):"function"==typeof e.filterMethod?(e.filterMethod(n),t.selectEmitter.emit("elOptionGroupQueryChange")):(t.filteredOptionsCount=t.optionsCount,t.selectEmitter.emit("elOptionQueryChange",n),t.selectEmitter.emit("elOptionGroupQueryChange")),e.defaultFirstOption&&(e.filterable||e.remote)&&t.filteredOptionsCount&&O()):t.previousQuery=n)},M=()=>{""!==t.currentPlaceholder&&(t.currentPlaceholder=o.value.value?"":t.cachedPlaceHolder)},O=()=>{t.hoverIndex=-1;let e=!1;for(let n=t.options.size-1;n>=0;n--)if(b.value[n].created){e=!0,t.hoverIndex=n;break}if(!e)for(let n=0;n!==t.options.size;++n){const e=b.value[n];if(t.query){if(!e.disabled&&!e.groupDisabled&&e.visible){t.hoverIndex=n;break}}else if(e.itemSelected){t.hoverIndex=n;break}}},T=()=>{var n;if(!e.multiple){const l=D(e.modelValue);return(null===(n=l.props)||void 0===n?void 0:n.created)?(t.createdLabel=l.props.value,t.createdSelected=!0):t.createdSelected=!1,t.selectedLabel=l.currentLabel,t.selected=l,void(e.filterable&&(t.query=t.selectedLabel))}const l=[];Array.isArray(e.modelValue)&&e.modelValue.forEach((e=>{l.push(D(e))})),t.selected=l,Dt((()=>{S()}))},D=n=>{let l;const a="object"===gy(n).toLowerCase(),o="null"===gy(n).toLowerCase(),r="undefined"===gy(n).toLowerCase();for(let s=t.cachedOptions.size-1;s>=0;s--){const t=_.value[s];if(a?Cy(t.value,e.valueKey)===Cy(n,e.valueKey):t.value===n){l={value:n,currentLabel:t.currentLabel,isDisabled:t.isDisabled};break}}if(l)return l;const i={value:n,currentLabel:a||o||r?"":n};return e.multiple&&(i.hitState=!1),i},L=()=>{setTimeout((()=>{e.multiple?t.selected.length>0?t.hoverIndex=Math.min.apply(null,t.selected.map((e=>b.value.indexOf(e)))):t.hoverIndex=-1:t.hoverIndex=b.value.indexOf(t.selected)}),300)},N=uu((()=>{e.filterable&&t.query!==t.selectedLabel&&(t.query=t.selectedLabel,E(t.query))}),g.value),A=uu((e=>{E(e.target.value)}),g.value),P=t=>{Sv(e.modelValue,t)||n.emit("change",t)},I=l=>{l.stopPropagation();const a=e.multiple?[]:"";if("string"!=typeof a)for(const e of t.selected)e.isDisabled&&a.push(e.value);n.emit(Nb,a),P(a),t.visible=!1,n.emit("clear")},F=(l,a)=>{if(e.multiple){const a=(e.modelValue||[]).slice(),r=V(a,l.value);r>-1?a.splice(r,1):(e.multipleLimit<=0||a.length<e.multipleLimit)&&a.push(l.value),n.emit(Nb,a),P(a),l.created&&(t.query="",E(""),t.inputLength=20),e.filterable&&o.value.focus()}else n.emit(Nb,l.value),P(l.value),t.visible=!1;t.isSilentBlur=a,B(),t.visible||Dt((()=>{$(l)}))},V=(t=[],n)=>{if(!fy(n))return t.indexOf(n);const l=e.valueKey;let a=-1;return t.some(((e,t)=>Cy(e,l)===Cy(n,l)&&(a=t,!0))),a},B=()=>{t.softFocus=!0;const e=o.value||a.value;e&&e.focus()},$=e=>{var t,n,l,a;const o=Array.isArray(e)?e[0]:e;let i=null;if(null==o?void 0:o.value){const e=b.value.filter((e=>e.value===o.value));e.length>0&&(i=e[0].$el)}if(r.value&&i){const e=null===(l=null===(n=null===(t=r.value)||void 0===t?void 0:t.popperRef)||void 0===n?void 0:n.querySelector)||void 0===l?void 0:l.call(n,".el-select-dropdown__wrap");e&&Lx(e,i)}null===(a=u.value)||void 0===a||a.handleScroll()},z=e=>{if(!Array.isArray(t.selected))return;const n=t.selected[t.selected.length-1];return n?!0===e||!1===e?(n.hitState=e,e):(n.hitState=!n.hitState,n.hitState):void 0},j=()=>{e.automaticDropdown||h.value||(t.menuVisibleOnFocus?t.menuVisibleOnFocus=!1:t.visible=!t.visible,t.visible&&(o.value||a.value).focus())},R=ca((()=>b.value.filter((e=>e.visible)).every((e=>e.disabled)))),H=e=>{if(t.visible){if(0!==t.options.size&&0!==t.filteredOptionsCount&&!R.value){"next"===e?(t.hoverIndex++,t.hoverIndex===t.options.size&&(t.hoverIndex=0)):"prev"===e&&(t.hoverIndex--,t.hoverIndex<0&&(t.hoverIndex=t.options.size-1));const n=b.value[t.hoverIndex];!0!==n.disabled&&!0!==n.groupDisabled&&n.visible||H(e),Dt((()=>$(c.value)))}}else t.visible=!0};return{optionsArray:b,selectSize:x,handleResize:()=>{var n,l,o;t.inputWidth=null===(o=a.value)||void 0===o?void 0:o.$el.getBoundingClientRect().width,null===(l=null===(n=r.value)||void 0===n?void 0:n.update)||void 0===l||l.call(n),e.multiple&&S()},debouncedOnInputChange:N,debouncedQueryChange:A,deletePrevTag:l=>{if(l.target.value.length<=0&&!z()){const t=e.modelValue.slice();t.pop(),n.emit(Nb,t),P(t)}1===l.target.value.length&&0===e.modelValue.length&&(t.currentPlaceholder=t.cachedPlaceHolder)},deleteTag:(l,a)=>{const o=t.selected.indexOf(a);if(o>-1&&!h.value){const t=e.modelValue.slice();t.splice(o,1),n.emit(Nb,t),P(t),n.emit("remove-tag",a.value)}l.stopPropagation()},deleteSelected:I,handleOptionSelect:F,scrollToOption:$,readonly:f,resetInputHeight:S,showClose:v,iconClass:m,showNewOption:k,collapseTagSize:w,setSelected:T,managePlaceholder:M,selectDisabled:h,emptyText:y,toggleLastOptionHitState:z,resetInputState:e=>{e.code!==vb.backspace&&z(!1),t.inputLength=15*o.value.length+20,S()},handleComposition:e=>{const n=e.target.value;if("compositionend"===e.type)t.isOnComposition=!1,Dt((()=>E(n)));else{const e=n[n.length-1]||"";t.isOnComposition=!Pb(e)}},onOptionCreate:e=>{t.optionsCount++,t.filteredOptionsCount++,t.options.set(e.value,e),t.cachedOptions.set(e.value,e)},onOptionDestroy:e=>{t.optionsCount--,t.filteredOptionsCount--,t.options.delete(e)},handleMenuEnter:()=>{Dt((()=>$(t.selected)))},handleFocus:l=>{t.softFocus?t.softFocus=!1:((e.automaticDropdown||e.filterable)&&(t.visible=!0,e.filterable&&(t.menuVisibleOnFocus=!0)),n.emit("focus",l))},blur:()=>{t.visible=!1,a.value.blur()},handleBlur:e=>{Dt((()=>{t.isSilentBlur?t.isSilentBlur=!1:n.emit("blur",e)})),t.softFocus=!1},handleClearClick:e=>{I(e)},handleClose:()=>{t.visible=!1},toggleMenu:j,selectOption:()=>{t.visible?b.value[t.hoverIndex]&&F(b.value[t.hoverIndex],void 0):j()},getValueKey:t=>fy(t.value)?Cy(t.value,e.valueKey):t.value,navigateOptions:H,dropMenuVisible:C,reference:a,input:o,popper:r,tags:i,selectWrapper:s,scrollbar:u}};var _M=Qn({name:"ElSelect",componentName:"ElSelect",components:{ElInput:Qb,ElSelectMenu:yM,ElOption:gM,ElTag:zx,ElScrollbar:a_,ElPopper:M_},directives:{ClickOutside:Sb},props:{name:String,id:String,modelValue:[Array,String,Number,Boolean,Object],autocomplete:{type:String,default:"off"},automaticDropdown:Boolean,size:{type:String,validator:Ib},disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:{type:String,default:""},remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String},defaultFirstOption:Boolean,reserveKeyword:Boolean,valueKey:{type:String,default:"value"},collapseTags:Boolean,popperAppendToBody:{type:Boolean,default:!0},clearIcon:{type:String,default:"el-icon-circle-close"}},emits:[Nb,"change","remove-tag","clear","visible-change","focus","blur"],setup(e,t){const n=function(e){const t=ku();return Ue({options:new Map,cachedOptions:new Map,createdLabel:null,createdSelected:!1,selected:e.multiple?[]:{},inputLength:20,inputWidth:0,initialInputHeight:0,optionsCount:0,filteredOptionsCount:0,visible:!1,softFocus:!1,selectedLabel:"",hoverIndex:-1,query:"",previousQuery:null,inputHovering:!1,cachedPlaceHolder:"",currentPlaceholder:ak("el.select.placeholder"),menuVisibleOnFocus:!1,isOnComposition:!1,isSilentBlur:!1,selectEmitter:t,prefixWidth:null,tagInMultiLine:!1})}(e),{optionsArray:l,selectSize:a,readonly:o,handleResize:r,collapseTagSize:i,debouncedOnInputChange:s,debouncedQueryChange:u,deletePrevTag:c,deleteTag:d,deleteSelected:p,handleOptionSelect:f,scrollToOption:h,setSelected:v,resetInputHeight:m,managePlaceholder:g,showClose:y,selectDisabled:b,iconClass:_,showNewOption:k,emptyText:x,toggleLastOptionHitState:w,resetInputState:C,handleComposition:S,onOptionCreate:E,onOptionDestroy:M,handleMenuEnter:O,handleFocus:T,blur:D,handleBlur:L,handleClearClick:N,handleClose:A,toggleMenu:P,selectOption:I,getValueKey:F,navigateOptions:V,dropMenuVisible:B,reference:$,input:z,popper:j,tags:R,selectWrapper:H,scrollbar:W}=bM(e,n,t),{focus:Y}=(q=$,{focus:()=>{var e,t;null===(t=null===(e=q.value)||void 0===e?void 0:e.focus)||void 0===t||t.call(e)}});var q;const{inputWidth:K,selected:U,inputLength:G,filteredOptionsCount:X,visible:Z,softFocus:J,selectedLabel:Q,hoverIndex:ee,query:te,inputHovering:ne,currentPlaceholder:le,menuVisibleOnFocus:ae,isOnComposition:oe,isSilentBlur:re,options:ie,cachedOptions:se,optionsCount:ue,prefixWidth:ce,tagInMultiLine:de}=ct(n);$l("ElSelect",Ue({props:e,options:ie,optionsArray:l,cachedOptions:se,optionsCount:ue,filteredOptionsCount:X,hoverIndex:ee,handleOptionSelect:f,selectEmitter:n.selectEmitter,onOptionCreate:E,onOptionDestroy:M,selectWrapper:H,selected:U,setSelected:v})),mn((()=>{if(n.cachedPlaceHolder=le.value=e.placeholder||ak("el.select.placeholder"),e.multiple&&Array.isArray(e.modelValue)&&e.modelValue.length>0&&(le.value=""),Zy(H.value,r),$.value&&$.value.$el){const e={medium:36,small:32,mini:28},t=$.value.input;n.initialInputHeight=t.getBoundingClientRect().height||e[a.value]}e.remote&&e.multiple&&m(),Dt((()=>{if($.value.$el&&(K.value=$.value.$el.getBoundingClientRect().width),t.slots.prefix){const e=$.value.$el.childNodes,t=[].filter.call(e,(e=>"INPUT"===e.tagName))[0],l=$.value.$el.querySelector(".el-input__prefix");ce.value=Math.max(l.getBoundingClientRect().width+5,30),n.prefixWidth&&(t.style.paddingLeft=Math.max(n.prefixWidth,30)+"px")}})),v()})),bn((()=>{Jy(H.value,r)})),e.multiple&&!Array.isArray(e.modelValue)&&t.emit(Nb,[]),!e.multiple&&Array.isArray(e.modelValue)&&t.emit(Nb,"");const pe=ca((()=>{var e;return null===(e=j.value)||void 0===e?void 0:e.popperRef}));return{tagInMultiLine:de,prefixWidth:ce,selectSize:a,readonly:o,handleResize:r,collapseTagSize:i,debouncedOnInputChange:s,debouncedQueryChange:u,deletePrevTag:c,deleteTag:d,deleteSelected:p,handleOptionSelect:f,scrollToOption:h,inputWidth:K,selected:U,inputLength:G,filteredOptionsCount:X,visible:Z,softFocus:J,selectedLabel:Q,hoverIndex:ee,query:te,inputHovering:ne,currentPlaceholder:le,menuVisibleOnFocus:ae,isOnComposition:oe,isSilentBlur:re,options:ie,resetInputHeight:m,managePlaceholder:g,showClose:y,selectDisabled:b,iconClass:_,showNewOption:k,emptyText:x,toggleLastOptionHitState:w,resetInputState:C,handleComposition:S,handleMenuEnter:O,handleFocus:T,blur:D,handleBlur:L,handleClearClick:N,handleClose:A,toggleMenu:P,selectOption:I,getValueKey:F,navigateOptions:V,dropMenuVisible:B,focus:Y,reference:$,input:z,popper:j,popperPaneRef:pe,tags:R,selectWrapper:H,scrollbar:W}}});const kM={class:"select-trigger"},xM={key:0},wM={class:"el-select__tags-text"},CM={style:{height:"100%",display:"flex","justify-content":"center","align-items":"center"}},SM={key:1,class:"el-select-dropdown__empty"};_M.render=function(e,t,n,l,a,o){const r=dl("el-tag"),i=dl("el-input"),s=dl("el-option"),u=dl("el-scrollbar"),d=dl("el-select-menu"),p=dl("el-popper"),f=hl("click-outside");return Un((wl(),Sl("div",{ref:"selectWrapper",class:["el-select",[e.selectSize?"el-select--"+e.selectSize:""]],onClick:t[26]||(t[26]=fo(((...t)=>e.toggleMenu&&e.toggleMenu(...t)),["stop"]))},[Ll(p,{ref:"popper",visible:e.dropMenuVisible,"onUpdate:visible":t[25]||(t[25]=t=>e.dropMenuVisible=t),placement:"bottom-start","append-to-body":e.popperAppendToBody,"popper-class":"el-select__popper "+e.popperClass,"manual-mode":"",effect:"light",pure:"",trigger:"click",transition:"el-zoom-in-top","stop-popper-mouse-event":!1,"gpu-acceleration":!1,onBeforeEnter:e.handleMenuEnter},{trigger:Zt((()=>[Ll("div",kM,[e.multiple?(wl(),Sl("div",{key:0,ref:"tags",class:"el-select__tags",style:{"max-width":e.inputWidth-32+"px",width:"100%"}},[e.collapseTags&&e.selected.length?(wl(),Sl("span",xM,[Ll(r,{closable:!e.selectDisabled&&!e.selected[0].isDisabled,size:e.collapseTagSize,hit:e.selected[0].hitState,type:"info","disable-transitions":"",onClose:t[1]||(t[1]=t=>e.deleteTag(t,e.selected[0]))},{default:Zt((()=>[Ll("span",{class:"el-select__tags-text",style:{"max-width":e.inputWidth-123+"px"}},c(e.selected[0].currentLabel),5)])),_:1},8,["closable","size","hit"]),e.selected.length>1?(wl(),Sl(r,{key:0,closable:!1,size:e.collapseTagSize,type:"info","disable-transitions":""},{default:Zt((()=>[Ll("span",wM,"+ "+c(e.selected.length-1),1)])),_:1},8,["size"])):Pl("v-if",!0)])):Pl("v-if",!0),Pl(" <div> "),e.collapseTags?Pl("v-if",!0):(wl(),Sl(Ia,{key:1,onAfterLeave:e.resetInputHeight},{default:Zt((()=>[Ll("span",{style:{marginLeft:e.prefixWidth&&e.selected.length?e.prefixWidth+"px":null}},[(wl(!0),Sl(gl,null,pa(e.selected,(t=>(wl(),Sl(r,{key:e.getValueKey(t),closable:!e.selectDisabled&&!t.isDisabled,size:e.collapseTagSize,hit:t.hitState,type:"info","disable-transitions":"",onClose:n=>e.deleteTag(n,t)},{default:Zt((()=>[Ll("span",{class:"el-select__tags-text",style:{"max-width":e.inputWidth-75+"px"}},c(t.currentLabel),5)])),_:2},1032,["closable","size","hit","onClose"])))),128))],4)])),_:1},8,["onAfterLeave"])),Pl(" </div> "),e.filterable?Un((wl(),Sl("input",{key:2,ref:"input","onUpdate:modelValue":t[2]||(t[2]=t=>e.query=t),type:"text",class:["el-select__input",[e.selectSize?"is-"+e.selectSize:""]],disabled:e.selectDisabled,autocomplete:e.autocomplete,style:{marginLeft:e.prefixWidth&&!e.selected.length||e.tagInMultiLine?e.prefixWidth+"px":null,flexGrow:"1",width:e.inputLength/(e.inputWidth-32)+"%",maxWidth:e.inputWidth-42+"px"},onFocus:t[3]||(t[3]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onBlur:t[4]||(t[4]=(...t)=>e.handleBlur&&e.handleBlur(...t)),onKeyup:t[5]||(t[5]=(...t)=>e.managePlaceholder&&e.managePlaceholder(...t)),onKeydown:[t[6]||(t[6]=(...t)=>e.resetInputState&&e.resetInputState(...t)),t[7]||(t[7]=vo(fo((t=>e.navigateOptions("next")),["prevent"]),["down"])),t[8]||(t[8]=vo(fo((t=>e.navigateOptions("prev")),["prevent"]),["up"])),t[9]||(t[9]=vo(fo((t=>e.visible=!1),["stop","prevent"]),["esc"])),t[10]||(t[10]=vo(fo(((...t)=>e.selectOption&&e.selectOption(...t)),["stop","prevent"]),["enter"])),t[11]||(t[11]=vo(((...t)=>e.deletePrevTag&&e.deletePrevTag(...t)),["delete"])),t[12]||(t[12]=vo((t=>e.visible=!1),["tab"]))],onCompositionstart:t[13]||(t[13]=(...t)=>e.handleComposition&&e.handleComposition(...t)),onCompositionupdate:t[14]||(t[14]=(...t)=>e.handleComposition&&e.handleComposition(...t)),onCompositionend:t[15]||(t[15]=(...t)=>e.handleComposition&&e.handleComposition(...t)),onInput:t[16]||(t[16]=(...t)=>e.debouncedQueryChange&&e.debouncedQueryChange(...t))},null,46,["disabled","autocomplete"])),[[ao,e.query]]):Pl("v-if",!0)],4)):Pl("v-if",!0),Ll(i,{id:e.id,ref:"reference",modelValue:e.selectedLabel,"onUpdate:modelValue":t[18]||(t[18]=t=>e.selectedLabel=t),type:"text",placeholder:e.currentPlaceholder,name:e.name,autocomplete:e.autocomplete,size:e.selectSize,disabled:e.selectDisabled,readonly:e.readonly,"validate-event":!1,class:{"is-focus":e.visible},tabindex:e.multiple&&e.filterable?"-1":null,onFocus:e.handleFocus,onBlur:e.handleBlur,onInput:e.debouncedOnInputChange,onPaste:e.debouncedOnInputChange,onKeydown:[t[19]||(t[19]=vo(fo((t=>e.navigateOptions("next")),["stop","prevent"]),["down"])),t[20]||(t[20]=vo(fo((t=>e.navigateOptions("prev")),["stop","prevent"]),["up"])),vo(fo(e.selectOption,["stop","prevent"]),["enter"]),t[21]||(t[21]=vo(fo((t=>e.visible=!1),["stop","prevent"]),["esc"])),t[22]||(t[22]=vo((t=>e.visible=!1),["tab"]))],onMouseenter:t[23]||(t[23]=t=>e.inputHovering=!0),onMouseleave:t[24]||(t[24]=t=>e.inputHovering=!1)},ha({suffix:Zt((()=>[Un(Ll("i",{class:["el-select__caret","el-input__icon","el-icon-"+e.iconClass]},null,2),[[mo,!e.showClose]]),e.showClose?(wl(),Sl("i",{key:0,class:"el-select__caret el-input__icon "+e.clearIcon,onClick:t[17]||(t[17]=(...t)=>e.handleClearClick&&e.handleClearClick(...t))},null,2)):Pl("v-if",!0)])),_:2},[e.$slots.prefix?{name:"prefix",fn:Zt((()=>[Ll("div",CM,[Ht(e.$slots,"prefix")])]))}:void 0]),1032,["id","modelValue","placeholder","name","autocomplete","size","disabled","readonly","class","tabindex","onFocus","onBlur","onInput","onPaste","onKeydown"])])])),default:Zt((()=>[Ll(d,null,{default:Zt((()=>[Un(Ll(u,{ref:"scrollbar",tag:"ul","wrap-class":"el-select-dropdown__wrap","view-class":"el-select-dropdown__list",class:{"is-empty":!e.allowCreate&&e.query&&0===e.filteredOptionsCount}},{default:Zt((()=>[e.showNewOption?(wl(),Sl(s,{key:0,value:e.query,created:!0},null,8,["value"])):Pl("v-if",!0),Ht(e.$slots,"default")])),_:3},8,["class"]),[[mo,e.options.size>0&&!e.loading]]),e.emptyText&&(!e.allowCreate||e.loading||e.allowCreate&&0===e.options.size)?(wl(),Sl(gl,{key:0},[e.$slots.empty?Ht(e.$slots,"empty",{key:0}):(wl(),Sl("p",SM,c(e.emptyText),1))],2112)):Pl("v-if",!0)])),_:3})])),_:1},8,["visible","append-to-body","popper-class","onBeforeEnter"])],2)),[[f,e.handleClose,e.popperPaneRef]])},_M.__file="packages/select/src/select.vue",_M.install=e=>{e.component(_M.name,_M)};const EM=_M,MM=gM;MM.install=e=>{e.component(MM.name,MM)};var OM=Qn({name:"ElOptionGroup",componentName:"ElOptionGroup",props:{label:String,disabled:{type:Boolean,default:!1}},setup(e){const t=lt(!0);$l("ElSelectGroup",Ue(Object.assign({},ct(e))));const n=zl("ElSelect");return n.selectEmitter.on("elOptionGroupQueryChange",(()=>{var e;t.value=null===(e=null==n?void 0:n.optionsArray)||void 0===e?void 0:e.some((e=>!0===e.visible))})),{visible:t}}});const TM={class:"el-select-group__wrap"},DM={class:"el-select-group__title"},LM={class:"el-select-group"};OM.render=function(e,t,n,l,a,o){return Un((wl(),Sl("ul",TM,[Ll("li",DM,c(e.label),1),Ll("li",null,[Ll("ul",LM,[Ht(e.$slots,"default")])])],512)),[[mo,e.visible]])},OM.__file="packages/select/src/option-group.vue",OM.install=e=>{e.component(OM.name,OM)};const NM=OM;var AM=Qn({name:"ElPageHeader",props:{icon:{type:String,default:"el-icon-back"},title:{type:String,default:()=>ak("el.pageHeader.title")},content:{type:String,default:""}},emits:["back"],setup:(e,{emit:t})=>({handleClick:function(){t("back")}})});const PM={class:"el-page-header"},IM={key:0,class:"el-page-header__icon"},FM={class:"el-page-header__title"},VM={class:"el-page-header__content"};AM.render=function(e,t,n,l,a,o){return wl(),Sl("div",PM,[Ll("div",{class:"el-page-header__left",onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t))},[e.icon||e.$slots.icon?(wl(),Sl("div",IM,[Ht(e.$slots,"icon",{},(()=>[Ll("i",{class:e.icon},null,2)]))])):Pl("v-if",!0),Ll("div",FM,[Ht(e.$slots,"title",{},(()=>[Al(c(e.title),1)]))])]),Ll("div",VM,[Ht(e.$slots,"content",{},(()=>[Al(c(e.content),1)]))])])},AM.__file="packages/page-header/src/index.vue",AM.install=e=>{e.component(AM.name,AM)};const BM=AM;var $M=Qn({name:"Prev",props:{disabled:Boolean,currentPage:{type:Number,default:1},prevText:{type:String,default:""}},setup:e=>({internalDisabled:ca((()=>e.disabled||e.currentPage<=1))})});const zM={key:0},jM={key:1,class:"el-icon el-icon-arrow-left"};$M.render=function(e,t,n,l,a,o){return wl(),Sl("button",{type:"button",class:"btn-prev",disabled:e.internalDisabled,onClick:t[1]||(t[1]=fo((()=>{}),["self","prevent"]))},[e.prevText?(wl(),Sl("span",zM,c(e.prevText),1)):(wl(),Sl("i",jM))],8,["disabled"])},$M.__file="packages/pagination/src/prev.vue";var RM=Qn({name:"Next",props:{disabled:Boolean,currentPage:{type:Number,default:1},pageCount:{type:Number,default:50},nextText:{type:String,default:""}},setup:e=>({internalDisabled:ca((()=>e.disabled||e.currentPage===e.pageCount||0===e.pageCount))})});const HM={key:0},WM={key:1,class:"el-icon el-icon-arrow-right"};RM.render=function(e,t,n,l,a,o){return wl(),Sl("button",{type:"button",class:"btn-next",disabled:e.internalDisabled,onClick:t[1]||(t[1]=fo((()=>{}),["self","prevent"]))},[e.nextText?(wl(),Sl("span",HM,c(e.nextText),1)):(wl(),Sl("i",WM))],8,["disabled"])},RM.__file="packages/pagination/src/next.vue";const YM=()=>{const e=zl("pagination",{});return{pagination:e,pageCount:e.pageCount,disabled:e.disabled,currentPage:e.currentPage}};var qM=Qn({name:"Sizes",components:{ElSelect:EM,ElOption:MM},props:{pageSize:Number,pageSizes:{type:Array,default:()=>[10,20,30,40,50,100]},popperClass:{type:String,default:""},disabled:Boolean},emits:["page-size-change"],setup(e,{emit:t}){const{pagination:n}=YM(),l=lt(e.pageSize);Sn((()=>e.pageSizes),((n,l)=>{if(!Sv(n,l)&&Array.isArray(n)){const l=n.indexOf(e.pageSize)>-1?e.pageSize:e.pageSizes[0];t("page-size-change",l)}})),Sn((()=>e.pageSize),(e=>{l.value=e}));const a=ca((()=>e.pageSizes));return{t:ak,innerPagesizes:a,innerPageSize:l,handleChange:function(e){e!==l.value&&(l.value=e,null==n||n.handleSizesChange(Number(e)))}}}});const KM={class:"el-pagination__sizes"};qM.render=function(e,t,n,l,a,o){const r=dl("el-option"),i=dl("el-select");return wl(),Sl("span",KM,[Ll(i,{"model-value":e.innerPageSize,disabled:e.disabled,"popper-class":e.popperClass,size:"mini",onChange:e.handleChange},{default:Zt((()=>[(wl(!0),Sl(gl,null,pa(e.innerPagesizes,(t=>(wl(),Sl(r,{key:t,value:t,label:t+e.t("el.pagination.pagesize")},null,8,["value","label"])))),128))])),_:1},8,["model-value","disabled","popper-class","onChange"])])},qM.__file="packages/pagination/src/sizes.vue";var UM=Qn({components:{ElInput:Qb},setup(){const{pagination:e,pageCount:t,disabled:n,currentPage:l}=YM(),a=lt(null),o=ca((()=>{var e;return null!==(e=a.value)&&void 0!==e?e:l.value}));return{t:ak,userInput:a,pageCount:t,disabled:n,handleInput:function(e){a.value=Number(e)},handleChange:function(t){null==e||e.changeEvent(Number(t)),a.value=null},innerValue:o}}});const GM={class:"el-pagination__jump"};UM.render=function(e,t,n,l,a,o){const r=dl("el-input");return wl(),Sl("span",GM,[Al(c(e.t("el.pagination.goto"))+" ",1),Ll(r,{size:"mini",class:"el-pagination__editor is-in-pagination",min:1,max:e.pageCount,disabled:e.disabled,"model-value":e.innerValue,type:"number","onUpdate:modelValue":e.handleInput,onChange:e.handleChange},null,8,["max","disabled","model-value","onUpdate:modelValue","onChange"]),Al(" "+c(e.t("el.pagination.pageClassifier")),1)])},UM.__file="packages/pagination/src/jumper.vue";var XM=Qn({name:"Total",props:{total:{type:Number,default:1e3}},setup:()=>({t:ak})});const ZM={class:"el-pagination__total"};XM.render=function(e,t,n,l,a,o){return wl(),Sl("span",ZM,c(e.t("el.pagination.total",{total:e.total})),1)},XM.__file="packages/pagination/src/total.vue";var JM=Qn({name:"ElPager",props:{currentPage:{type:Number,default:1},pageCount:{type:Number},pagerCount:{type:Number,default:7},disabled:Boolean},emits:["change"],setup(e,{emit:t}){const n=lt(!1),l=lt(!1),a=lt("el-icon-more"),o=lt("el-icon-more"),r=ca((()=>{const t=e.pagerCount,n=(t-1)/2,l=Number(e.currentPage),a=Number(e.pageCount);let o=!1,r=!1;a>t&&(l>t-n&&(o=!0),l<a-n&&(r=!0));const i=[];if(o&&!r)for(let e=a-(t-2);e<a;e++)i.push(e);else if(!o&&r)for(let e=2;e<t;e++)i.push(e);else if(o&&r){const e=Math.floor(t/2)-1;for(let t=l-e;t<=l+e;t++)i.push(t)}else for(let e=2;e<a;e++)i.push(e);return i}));return wn((()=>{const t=(e.pagerCount-1)/2;n.value=!1,l.value=!1,e.pageCount>e.pagerCount&&(e.currentPage>e.pagerCount-t&&(n.value=!0),e.currentPage<e.pageCount-t&&(l.value=!0))})),wn((()=>{n.value||(o.value="el-icon-more")})),wn((()=>{l.value||(a.value="el-icon-more")})),{showPrevMore:n,showNextMore:l,quicknextIconClass:a,quickprevIconClass:o,pagers:r,onMouseenter:function(t){e.disabled||("left"===t?o.value="el-icon-d-arrow-left":a.value="el-icon-d-arrow-right")},onPagerClick:function(n){const l=n.target;if("ul"===l.tagName.toLowerCase()||e.disabled)return;let a=Number(l.textContent);const o=e.pageCount,r=e.currentPage,i=e.pagerCount-2;l.className.includes("more")&&(l.className.includes("quickprev")?a=r-i:l.className.includes("quicknext")&&(a=r+i)),isNaN(a)||(a<1&&(a=1),a>o&&(a=o)),a!==r&&t("change",a)}}}});JM.render=function(e,t,n,l,a,o){return wl(),Sl("ul",{class:"el-pager",onClick:t[5]||(t[5]=(...t)=>e.onPagerClick&&e.onPagerClick(...t))},[e.pageCount>0?(wl(),Sl("li",{key:0,class:[{active:1===e.currentPage,disabled:e.disabled},"number"]}," 1 ",2)):Pl("v-if",!0),e.showPrevMore?(wl(),Sl("li",{key:1,class:["el-icon more btn-quickprev",[e.quickprevIconClass,{disabled:e.disabled}]],onMouseenter:t[1]||(t[1]=t=>e.onMouseenter("left")),onMouseleave:t[2]||(t[2]=t=>e.quickprevIconClass="el-icon-more")},null,34)):Pl("v-if",!0),(wl(!0),Sl(gl,null,pa(e.pagers,(t=>(wl(),Sl("li",{key:t,class:[{active:e.currentPage===t,disabled:e.disabled},"number"]},c(t),3)))),128)),e.showNextMore?(wl(),Sl("li",{key:2,class:["el-icon more btn-quicknext",[e.quicknextIconClass,{disabled:e.disabled}]],onMouseenter:t[3]||(t[3]=t=>e.onMouseenter("right")),onMouseleave:t[4]||(t[4]=t=>e.quicknextIconClass="el-icon-more")},null,34)):Pl("v-if",!0),e.pageCount>1?(wl(),Sl("li",{key:3,class:[{active:e.currentPage===e.pageCount,disabled:e.disabled},"number"]},c(e.pageCount),3)):Pl("v-if",!0)])},JM.__file="packages/pagination/src/pager.vue";const QM=e=>Number.isNaN(e)?10:e,eO=Qn({name:"ElPagination",components:{Prev:$M,Next:RM,Sizes:qM,Jumper:UM,Total:XM,Pager:JM},props:{pageSize:{type:Number,default:10},small:Boolean,total:{type:Number},pageCount:{type:Number},pagerCount:{type:Number,validator:e=>(0|e)===e&&e>4&&e<22&&e%2==1,default:7},currentPage:{type:Number,default:1},layout:{type:String,default:"prev, pager, next, jumper, ->, total"},pageSizes:{type:Array,default:()=>[10,20,30,40,50,100]},popperClass:{type:String,default:""},prevText:{type:String,default:""},nextText:{type:String,default:""},background:Boolean,disabled:Boolean,hideOnSinglePage:Boolean},emits:["size-change","current-change","prev-click","next-click","update:currentPage","update:pageSize"],setup(e,{emit:t}){const n=lt(-1),l=lt(!1),a=lt(QM(e.pageSize)),o=ca((()=>"number"==typeof e.total?Math.max(1,Math.ceil(e.total/a.value)):"number"==typeof e.pageCount?Math.max(1,e.pageCount):null)),r=lt(u(e.currentPage));function i(){(r.value!==n.value||l.value)&&(n.value=r.value,l.value=!1,t("update:currentPage",r.value),t("current-change",r.value))}function s(e){r.value=u(e),l.value=!0,i()}function u(e){let t;return"string"==typeof e&&(e=parseInt(e,10)),isNaN(e)||e<1?t=1:o.value<e&&(t=o.value),null!=t?t:e}return Sn((()=>e.currentPage),(e=>{r.value=u(e)})),Sn((()=>e.pageSize),(e=>{a.value=QM(e)})),Sn((()=>o.value),(e=>{const t=r.value;e>0&&0===t?r.value=1:t>e&&(r.value=0===e?1:e,i())})),$l("pagination",{pageCount:ca((()=>e.pageCount)),disabled:ca((()=>e.disabled)),currentPage:ca((()=>r.value)),changeEvent:s,handleSizesChange:function(e){l.value=!0,a.value=e,t("update:pageSize",e),t("size-change",e)}}),{internalCurrentPage:r,internalPageSize:a,lastEmittedPage:n,userChangePageSize:l,internalPageCount:o,getValidCurrentPage:u,emitChange:i,handleCurrentChange:s,prev:function(){if(e.disabled)return;const n=r.value-1;r.value=u(n),t("prev-click",r.value),i()},next:function(){if(e.disabled)return;const n=r.value+1;r.value=u(n),t("next-click",r.value),i()}}},render(){var e,t,n;const l=this.layout;if(!l)return null;if(this.hideOnSinglePage&&this.internalPageCount<=1)return null;const a=da("div",{class:["el-pagination",{"is-background":this.background,"el-pagination--small":this.small}]}),o=[],r=[],i=da("div",{class:"el-pagination__rightwrapper"},r),s={prev:da($M,{disabled:this.disabled,currentPage:this.internalCurrentPage,prevText:this.prevText,onClick:this.prev}),jumper:da(UM),pager:da(JM,{currentPage:this.internalCurrentPage,pageCount:this.internalPageCount,pagerCount:this.pagerCount,onChange:this.handleCurrentChange,disabled:this.disabled}),next:da(RM,{disabled:this.disabled,currentPage:this.internalCurrentPage,pageCount:this.internalPageCount,nextText:this.nextText,onClick:this.next}),sizes:da(qM,{pageSize:this.pageSize,pageSizes:this.pageSizes,popperClass:this.popperClass,disabled:this.disabled}),slot:null!==(n=null===(t=null===(e=this.$slots)||void 0===e?void 0:e.default)||void 0===t?void 0:t.call(e))&&void 0!==n?n:null,total:da(XM,{total:this.total})},u=l.split(",").map((e=>e.trim()));let c=!1;return u.forEach((e=>{"->"!==e?c?r.push(s[e]):o.push(s[e]):c=!0})),c&&r.length>0&&o.unshift(i),da(a,{},o)}});eO.install=e=>{e.component(eO.name,eO)};var tO=Qn({name:"ElPopconfirm",components:{ElButton:Z_,ElPopper:M_},props:{title:{type:String},confirmButtonText:{type:String},cancelButtonText:{type:String},confirmButtonType:{type:String,default:"primary"},cancelButtonType:{type:String,default:"text"},icon:{type:String,default:"el-icon-question"},iconColor:{type:String,default:"#f90"},hideIcon:{type:Boolean,default:!1}},emits:["confirm","cancel"],setup(e,{emit:t}){const n=lt(!1),l=ca((()=>e.confirmButtonText||ak("el.popconfirm.confirmButtonText"))),a=ca((()=>e.cancelButtonText||ak("el.popconfirm.cancelButtonText")));return{visible:n,confirm:()=>{n.value=!1,t("confirm")},cancel:()=>{n.value=!1,t("cancel")},confirmButtonText_:l,cancelButtonText_:a}}});const nO={class:"el-popconfirm"},lO={class:"el-popconfirm__main"},aO={class:"el-popconfirm__action"};tO.render=function(e,t,n,l,a,o){const r=dl("el-button"),i=dl("el-popper");return wl(),Sl(i,{visible:e.visible,"onUpdate:visible":t[1]||(t[1]=t=>e.visible=t),trigger:"click",effect:"light","popper-class":"el-popover","append-to-body":""},{trigger:Zt((()=>[Ht(e.$slots,"reference")])),default:Zt((()=>[Ll("div",nO,[Ll("p",lO,[e.hideIcon?Pl("v-if",!0):(wl(),Sl("i",{key:0,class:[e.icon,"el-popconfirm__icon"],style:{color:e.iconColor}},null,6)),Al(" "+c(e.title),1)]),Ll("div",aO,[Ll(r,{size:"mini",type:e.cancelButtonType,onClick:e.cancel},{default:Zt((()=>[Al(c(e.cancelButtonText_),1)])),_:1},8,["type","onClick"]),Ll(r,{size:"mini",type:e.confirmButtonType,onClick:e.confirm},{default:Zt((()=>[Al(c(e.confirmButtonText_),1)])),_:1},8,["type","onClick"])])])])),_:1},8,["visible"])},tO.__file="packages/popconfirm/src/index.vue",tO.install=e=>{e.component(tO.name,tO)};const oO=tO,rO={key:0,class:"el-popover__title",role:"title"};var iO=Qn({name:"ElPopover",components:{ElPopper:M_},props:Object.assign(Object.assign({},k_),{content:{type:String},trigger:{type:String,default:"click"},title:{type:String},transition:{type:String,default:"fade-in-linear"},width:{type:[String,Number],default:150},appendToBody:{type:Boolean,default:!0},tabindex:Number}),emits:["update:visible","after-enter","after-leave","show","hide"],setup:(e,t)=>function(e,t){const n=lt(y_.nextZIndex()),l=ca((()=>py(e.width)?e.width:e.width+"px")),a=ca((()=>({width:l.value,zIndex:n.value}))),o=x_(e,t);return Sn(o.visibility,(e=>{e&&(n.value=y_.nextZIndex()),t.emit(e?"show":"hide")})),Object.assign(Object.assign({},o),{popperStyle:a})}(e,t),render(){const{$slots:e}=this,t=e.reference?e.reference():null,n=(l=this.title,"div",a=rO,o=c(this.title),r=o_.TEXT,l?c_("div",a,o,r,undefined):Pl("v-if",!0));var l,a,o,r;const i=Ht(e,"default",{},(()=>[Al(c(this.content),o_.TEXT)])),{events:s,onAfterEnter:u,onAfterLeave:d,onPopperMouseEnter:p,onPopperMouseLeave:f,popperStyle:h,popperId:v,popperClass:m,showArrow:g,transition:y,visibility:b,tabindex:_}=this,k=[this.content?"el-popover--plain":"","el-popover",m].join(" ");let x=w_({effect:__.LIGHT,name:y,popperClass:k,popperStyle:h,popperId:v,visibility:b,onMouseenter:p,onMouseleave:f,onAfterEnter:u,onAfterLeave:d,stopPopperMouseEvent:!1},[n,i,S_(g)]);const w=t?C_(t,Object.assign({ariaDescribedby:v,ref:"triggerRef",tabindex:_},s)):Pl("v-if",!0);return c_(gl,null,["click"===this.trigger?Un(w,[[Sb,this.hide]]):w,Ll(cl,{disabled:!this.appendToBody,to:"body"},[x],o_.PROPS,["disabled"])])}});iO.__file="packages/popover/src/index.vue";const sO=(e,t,n)=>{const l=t.arg||t.value,a=n.dirs[0].instance.$refs[l];a&&(a.triggerRef=e,e.setAttribute("tabindex",a.tabindex),Object.entries(a.events).forEach((([t,n])=>{zy(e,t.toLowerCase().slice(2),n)})))};var uO={mounted(e,t,n){sO(e,t,n)},updated(e,t,n){sO(e,t,n)}};iO.install=e=>{e.component(iO.name,iO),e.directive("popover",uO)},iO.directive=uO;const cO=iO;var dO=Qn({name:"ElProgress",props:{type:{type:String,default:"line",validator:e=>["line","circle","dashboard"].indexOf(e)>-1},percentage:{type:Number,default:0,required:!0,validator:e=>e>=0&&e<=100},status:{type:String,default:"",validator:e=>["","success","exception","warning"].indexOf(e)>-1},indeterminate:{type:Boolean,default:!1},duration:{type:Number,default:3},strokeWidth:{type:Number,default:6},strokeLinecap:{type:String,default:"round"},textInside:{type:Boolean,default:!1},width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:[String,Array,Function],default:""},format:{type:Function,default:e=>e+"%"}},setup(e){const t=ca((()=>({width:e.percentage+"%",animationDuration:e.duration+"s",backgroundColor:h(e.percentage)}))),n=ca((()=>(e.strokeWidth/e.width*100).toFixed(1))),l=ca((()=>"circle"===e.type||"dashboard"===e.type?parseInt(""+(50-parseFloat(n.value)/2),10):0)),a=ca((()=>{const t=l.value,n="dashboard"===e.type;return`\n          M 50 50\n          m 0 ${n?"":"-"}${t}\n          a ${t} ${t} 0 1 1 0 ${n?"-":""}${2*t}\n          a ${t} ${t} 0 1 1 0 ${n?"":"-"}${2*t}\n          `})),o=ca((()=>2*Math.PI*l.value)),r=ca((()=>"dashboard"===e.type?.75:1)),i=ca((()=>-1*o.value*(1-r.value)/2+"px")),s=ca((()=>({strokeDasharray:`${o.value*r.value}px, ${o.value}px`,strokeDashoffset:i.value}))),u=ca((()=>({strokeDasharray:`${o.value*r.value*(e.percentage/100)}px, ${o.value}px`,strokeDashoffset:i.value,transition:"stroke-dasharray 0.6s ease 0s, stroke 0.6s ease"}))),c=ca((()=>{let t;if(e.color)t=h(e.percentage);else switch(e.status){case"success":t="#13ce66";break;case"exception":t="#ff4949";break;case"warning":t="#e6a23c";break;default:t="#20a0ff"}return t})),d=ca((()=>"warning"===e.status?"el-icon-warning":"line"===e.type?"success"===e.status?"el-icon-circle-check":"el-icon-circle-close":"success"===e.status?"el-icon-check":"el-icon-close")),p=ca((()=>"line"===e.type?12+.4*e.strokeWidth:.111111*e.width+2)),f=ca((()=>e.format(e.percentage))),h=t=>{var n;const{color:l}=e;if("function"==typeof l)return l(t);if("string"==typeof l)return l;{const e=100/l.length,a=l.map(((t,n)=>"string"==typeof t?{color:t,percentage:(n+1)*e}:t)).sort(((e,t)=>e.percentage-t.percentage));for(let n=0;n<a.length;n++)if(a[n].percentage>t)return a[n].color;return null===(n=a[a.length-1])||void 0===n?void 0:n.color}},v=ca((()=>({percentage:e.percentage})));return{barStyle:t,relativeStrokeWidth:n,radius:l,trackPath:a,perimeter:o,rate:r,strokeDashoffset:i,trailPathStyle:s,circlePathStyle:u,stroke:c,iconClass:d,progressTextSize:p,content:f,getCurrentColor:h,slotData:v}}});const pO={key:0,class:"el-progress-bar"},fO={key:0,class:"el-progress-bar__innerText"},hO={viewBox:"0 0 100 100"},vO={key:0};dO.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-progress",["el-progress--"+e.type,e.status?"is-"+e.status:"",{"el-progress--without-text":!e.showText,"el-progress--text-inside":e.textInside}]],role:"progressbar","aria-valuenow":e.percentage,"aria-valuemin":"0","aria-valuemax":"100"},["line"===e.type?(wl(),Sl("div",pO,[Ll("div",{class:"el-progress-bar__outer",style:{height:e.strokeWidth+"px"}},[Ll("div",{class:["el-progress-bar__inner",{"el-progress-bar__inner--indeterminate":e.indeterminate}],style:e.barStyle},[(e.showText||e.$slots.default)&&e.textInside?(wl(),Sl("div",fO,[Ht(e.$slots,"default",e.slotData,(()=>[Ll("span",null,c(e.content),1)]))])):Pl("v-if",!0)],6)],4)])):(wl(),Sl("div",{key:1,class:"el-progress-circle",style:{height:e.width+"px",width:e.width+"px"}},[(wl(),Sl("svg",hO,[Ll("path",{class:"el-progress-circle__track",d:e.trackPath,stroke:"#e5e9f2","stroke-width":e.relativeStrokeWidth,fill:"none",style:e.trailPathStyle},null,12,["d","stroke-width"]),Ll("path",{class:"el-progress-circle__path",d:e.trackPath,stroke:e.stroke,fill:"none","stroke-linecap":e.strokeLinecap,"stroke-width":e.percentage?e.relativeStrokeWidth:0,style:e.circlePathStyle},null,12,["d","stroke","stroke-linecap","stroke-width"])]))],4)),!e.showText&&!e.$slots.default||e.textInside?Pl("v-if",!0):(wl(),Sl("div",{key:2,class:"el-progress__text",style:{fontSize:e.progressTextSize+"px"}},[Ht(e.$slots,"default",e.slotData,(()=>[e.status?(wl(),Sl("i",{key:1,class:e.iconClass},null,2)):(wl(),Sl("span",vO,c(e.content),1))]))],4))],10,["aria-valuenow"])},dO.__file="packages/progress/src/index.vue",dO.install=e=>{e.component(dO.name,dO)};const mO=dO;var gO=Qn({name:"ElRadioButton",props:{label:{type:[String,Number,Boolean],default:""},disabled:Boolean,name:{type:String,default:""}},setup(e){const{isGroup:t,radioGroup:n,elFormItemSize:l,ELEMENT:a,focus:o,elForm:r}=px(),i=ca((()=>n.radioGroupSize||l.value||a.size)),s=ca({get:()=>n.modelValue,set(e){n.changeEvent(e)}}),{isDisabled:u,tabIndex:c}=fx(e,{model:s,elForm:r,radioGroup:n,isGroup:t});return{isGroup:t,size:i,isDisabled:u,tabIndex:c,value:s,focus:o,activeStyle:ca((()=>({backgroundColor:n.fill||"",borderColor:n.fill||"",boxShadow:n.fill?"-1px 0 0 0 "+n.fill:"",color:n.textColor||""})))}}});gO.render=function(e,t,n,l,a,o){return wl(),Sl("label",{class:["el-radio-button",[e.size?"el-radio-button--"+e.size:"",{"is-active":e.value===e.label,"is-disabled":e.isDisabled,"is-focus":e.focus}]],role:"radio","aria-checked":e.value===e.label,"aria-disabled":e.isDisabled,tabindex:e.tabIndex,onKeydown:t[5]||(t[5]=vo(fo((t=>e.value=e.isDisabled?e.value:e.label),["stop","prevent"]),["space"]))},[Un(Ll("input",{"onUpdate:modelValue":t[1]||(t[1]=t=>e.value=t),class:"el-radio-button__orig-radio",value:e.label,type:"radio",name:e.name,disabled:e.isDisabled,tabindex:"-1",onFocus:t[2]||(t[2]=t=>e.focus=!0),onBlur:t[3]||(t[3]=t=>e.focus=!1)},null,40,["value","name","disabled"]),[[io,e.value]]),Ll("span",{class:"el-radio-button__inner",style:e.value===e.label?e.activeStyle:null,onKeydown:t[4]||(t[4]=fo((()=>{}),["stop"]))},[Ht(e.$slots,"default",{},(()=>[Al(c(e.label),1)]))],36)],42,["aria-checked","aria-disabled","tabindex"])},gO.__file="packages/radio/src/radio-button.vue",gO.install=e=>{e.component(gO.name,gO)};const yO=gO;var bO=Qn({name:"ElRadioGroup",componentName:"ElRadioGroup",props:{modelValue:{type:[String,Number,Boolean],default:""},size:{type:String,validator:Ib},fill:{type:String,default:""},textColor:{type:String,default:""},disabled:Boolean},emits:[Nb,"change"],setup(e,t){const n=lt(null),l=zl("elFormItem",{}),a=ca((()=>e.size||l.size));return $l("RadioGroup",Ue(Object.assign(Object.assign({name:"ElRadioGroup"},ct(e)),{radioGroupSize:a,changeEvent:e=>{t.emit(Nb,e),Dt((()=>{t.emit("change",e)}))}}))),Sn((()=>e.modelValue),(e=>{var t;null===(t=l.formItemMitt)||void 0===t||t.emit("el.form.change",[e])})),mn((()=>{const e=n.value.querySelectorAll("[type=radio]"),t=e[0];!Array.from(e).some((e=>e.checked))&&t&&(t.tabIndex=0)})),{handleKeydown:e=>{const t=e.target,l="INPUT"===t.nodeName?"[type=radio]":"[role=radio]",a=n.value.querySelectorAll(l),o=a.length,r=Array.from(a).indexOf(t),i=n.value.querySelectorAll("[role=radio]");let s=null;switch(e.code){case vb.left:case vb.up:e.stopPropagation(),e.preventDefault(),s=0===r?o-1:r-1;break;case vb.right:case vb.down:e.stopPropagation(),e.preventDefault(),s=r===o-1?0:r+1}null!==s&&(i[s].click(),i[s].focus())},radioGroupSize:a,radioGroup:n}}});bO.render=function(e,t,n,l,a,o){return wl(),Sl("div",{ref:"radioGroup",class:"el-radio-group",role:"radiogroup",onKeydown:t[1]||(t[1]=(...t)=>e.handleKeydown&&e.handleKeydown(...t))},[Ht(e.$slots,"default")],544)},bO.__file="packages/radio/src/radio-group.vue",bO.install=e=>{e.component(bO.name,bO)};const _O=bO;var kO=Qn({name:"ElRate",props:{modelValue:{type:Number,default:0},lowThreshold:{type:Number,default:2},highThreshold:{type:Number,default:4},max:{type:Number,default:5},colors:{type:[Array,Object],default:()=>["#F7BA2A","#F7BA2A","#F7BA2A"]},voidColor:{type:String,default:"#C6D1DE"},disabledVoidColor:{type:String,default:"#EFF2F7"},iconClasses:{type:[Array,Object],default:()=>["el-icon-star-on","el-icon-star-on","el-icon-star-on"]},voidIconClass:{type:String,default:"el-icon-star-off"},disabledVoidIconClass:{type:String,default:"el-icon-star-on"},disabled:{type:Boolean,default:!1},allowHalf:{type:Boolean,default:!1},showText:{type:Boolean,default:!1},showScore:{type:Boolean,default:!1},textColor:{type:String,default:"#1f2d3d"},texts:{type:Array,default:()=>["Extremely bad","Disappointed","Fair","Satisfied","Surprise"]},scoreTemplate:{type:String,default:"{value}"}},emits:["update:modelValue","change"],setup(e,{emit:t}){const n=zl("elForm",{}),l=lt(e.modelValue),a=ca((()=>e.disabled||n.disabled)),o=ca((()=>{let t="";return e.showScore?t=e.scoreTemplate.replace(/\{\s*value\s*\}/,a.value?""+e.modelValue:""+l.value):e.showText&&(t=e.texts[Math.ceil(l.value)-1]),t}));function r(e,t){const n=Object.keys(t).filter((n=>{const l=t[n];return fy(l)&&l.excluded?e<n:e<=n})).sort(((e,t)=>e-t)),l=t[n[0]];return fy(l)?l.value:l||""}const i=ca((()=>100*e.modelValue-100*Math.floor(e.modelValue))),s=ca((()=>cy(e.colors)?{[e.lowThreshold]:e.colors[0],[e.highThreshold]:{value:e.colors[1],excluded:!0},[e.max]:e.colors[2]}:e.colors)),u=ca((()=>r(l.value,s.value))),c=ca((()=>{let t="";return a.value?t=i.value+"%":e.allowHalf&&(t="50%"),{color:u.value,width:t}})),d=ca((()=>cy(e.iconClasses)?{[e.lowThreshold]:e.iconClasses[0],[e.highThreshold]:{value:e.iconClasses[1],excluded:!0},[e.max]:e.iconClasses[2]}:e.iconClasses)),p=ca((()=>r(e.modelValue,d.value))),f=ca((()=>a.value?e.disabledVoidIconClass:e.voidIconClass)),h=ca((()=>r(l.value,d.value))),v=ca((()=>{let t=Array(e.max),n=l.value;return t.fill(h.value,0,n),t.fill(f.value,n,e.max),t})),m=lt(!0);Sn((()=>e.modelValue),(t=>{l.value=t,m.value=e.modelValue!==Math.floor(e.modelValue)}));const g=lt(-1);return e.modelValue||t("update:modelValue",0),{hoverIndex:g,currentValue:l,rateDisabled:a,text:o,decimalStyle:c,decimalIconClass:p,classes:v,showDecimalIcon:function(t){let n=a.value&&i.value>0&&t-1<e.modelValue&&t>e.modelValue,o=e.allowHalf&&m.value&&t-.5<=l.value&&t>l.value;return n||o},getIconStyle:function(t){const n=a.value?e.disabledVoidColor:e.voidColor;return{color:t<=l.value?u.value:n}},selectValue:function(n){a.value||(e.allowHalf&&m.value?(t("update:modelValue",l.value),t("change",l.value)):(t("update:modelValue",n),t("change",n)))},handleKey:function(n){if(a.value)return;let o=l.value;const r=n.code;return r===vb.up||r===vb.right?(e.allowHalf?o+=.5:o+=1,n.stopPropagation(),n.preventDefault()):r!==vb.left&&r!==vb.down||(e.allowHalf?o-=.5:o-=1,n.stopPropagation(),n.preventDefault()),o=o<0?0:o,o=o>e.max?e.max:o,t("update:modelValue",o),t("change",o),o},setCurrentValue:function(t,n){if(!a.value){if(e.allowHalf){let e=n.target;Ry(e,"el-rate__item")&&(e=e.querySelector(".el-rate__icon")),Ry(e,"el-rate__decimal")&&(e=e.parentNode),m.value=2*n.offsetX<=e.clientWidth,l.value=m.value?t-.5:t}else l.value=t;g.value=t}},resetCurrentValue:function(){a.value||(e.allowHalf&&(m.value=e.modelValue!==Math.floor(e.modelValue)),l.value=e.modelValue,g.value=-1)}}}});kO.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:"el-rate",role:"slider","aria-valuenow":e.currentValue,"aria-valuetext":e.text,"aria-valuemin":"0","aria-valuemax":e.max,tabindex:"0",onKeydown:t[2]||(t[2]=(...t)=>e.handleKey&&e.handleKey(...t))},[(wl(!0),Sl(gl,null,pa(e.max,((n,l)=>(wl(),Sl("span",{key:l,class:"el-rate__item",style:{cursor:e.rateDisabled?"auto":"pointer"},onMousemove:t=>e.setCurrentValue(n,t),onMouseleave:t[1]||(t[1]=(...t)=>e.resetCurrentValue&&e.resetCurrentValue(...t)),onClick:t=>e.selectValue(n)},[Ll("i",{class:[[e.classes[n-1],{hover:e.hoverIndex===n}],"el-rate__icon"],style:e.getIconStyle(n)},[e.showDecimalIcon(n)?(wl(),Sl("i",{key:0,class:[e.decimalIconClass,"el-rate__decimal"],style:e.decimalStyle},null,6)):Pl("v-if",!0)],6)],44,["onMousemove","onClick"])))),128)),e.showText||e.showScore?(wl(),Sl("span",{key:0,class:"el-rate__text",style:{color:e.textColor}},c(e.text),5)):Pl("v-if",!0)],40,["aria-valuenow","aria-valuetext","aria-valuemax"])},kO.__file="packages/rate/src/index.vue",kO.install=e=>{e.component(kO.name,kO)};const xO=kO,wO=Qn({name:"ElRow",props:{tag:{type:String,default:"div"},gutter:{type:Number,default:0},type:{type:String,default:""},justify:{type:String,default:"start"},align:{type:String,default:"top"}},setup(e,{slots:t}){$l("ElRow",{gutter:ca((()=>e.gutter))});const n=ca((()=>{const t={marginLeft:"",marginRight:""};return e.gutter&&(t.marginLeft=`-${e.gutter/2}px`,t.marginRight=t.marginLeft),t}));return()=>{var l;return da(e.tag,{class:["el-row","start"!==e.justify?"is-justify-"+e.justify:"","top"!==e.align?"is-align-"+e.align:"","flex"===e.type?"el-row--flex":""],style:n.value},null===(l=t.default)||void 0===l?void 0:l.call(t))}}});wO.install=e=>{e.component(wO.name,wO)};const CO=(e,t,n)=>{const{disabled:l,min:a,max:o,step:r,showTooltip:i,precision:s,sliderSize:u,formatTooltip:c,emitChange:d,resetSize:p,updateDragging:f}=zl("SliderProvider"),{tooltip:h,tooltipVisible:v,formatValue:m,displayTooltip:g,hideTooltip:y}=((e,t,n)=>{const l=lt(null),a=lt(!1),o=ca((()=>t.value instanceof Function)),r=ca((()=>o.value&&t.value(e.modelValue)||e.modelValue)),i=uu((()=>{n.value&&(a.value=!0)}),50),s=uu((()=>{n.value&&(a.value=!1)}),50);return{tooltip:l,tooltipVisible:a,formatValue:r,displayTooltip:i,hideTooltip:s}})(e,c,i),b=ca((()=>(e.modelValue-a.value)/(o.value-a.value)*100+"%")),_=ca((()=>e.vertical?{bottom:b.value}:{left:b.value})),k=e=>{let t,n;return e.type.startsWith("touch")?(n=e.touches[0].clientY,t=e.touches[0].clientX):(n=e.clientY,t=e.clientX),{clientX:t,clientY:n}},x=n=>{if(t.dragging){let l;t.isClick=!1,g(),p();const{clientX:a,clientY:o}=k(n);e.vertical?(t.currentY=o,l=(t.startY-t.currentY)/u.value*100):(t.currentX=a,l=(t.currentX-t.startX)/u.value*100),t.newPosition=t.startPosition+l,C(t.newPosition)}},w=()=>{t.dragging&&(setTimeout((()=>{t.dragging=!1,t.hovering||y(),t.isClick||(C(t.newPosition),d())}),0),jy(window,"mousemove",x),jy(window,"touchmove",x),jy(window,"mouseup",w),jy(window,"touchend",w),jy(window,"contextmenu",w))},C=l=>oE(void 0,void 0,void 0,(function*(){if(null===l||isNaN(l))return;l<0?l=0:l>100&&(l=100);const i=100/((o.value-a.value)/r.value);let u=Math.round(l/i)*i*(o.value-a.value)*.01+a.value;u=parseFloat(u.toFixed(s.value)),n(Nb,u),t.dragging||e.modelValue===t.oldValue||(t.oldValue=e.modelValue),yield Dt(),t.dragging&&g(),h.value.updatePopper()}));return Sn((()=>t.dragging),(e=>{f(e)})),{tooltip:h,tooltipVisible:v,showTooltip:i,wrapperStyle:_,formatValue:m,handleMouseEnter:()=>{t.hovering=!0,g()},handleMouseLeave:()=>{t.hovering=!1,t.dragging||y()},onButtonDown:n=>{l.value||(n.preventDefault(),(n=>{t.dragging=!0,t.isClick=!0;const{clientX:l,clientY:a}=k(n);e.vertical?t.startY=a:t.startX=l,t.startPosition=parseFloat(b.value),t.newPosition=t.startPosition})(n),zy(window,"mousemove",x),zy(window,"touchmove",x),zy(window,"mouseup",w),zy(window,"touchend",w),zy(window,"contextmenu",w))},onLeftKeyDown:()=>{l.value||(t.newPosition=parseFloat(b.value)-r.value/(o.value-a.value)*100,C(t.newPosition),d())},onRightKeyDown:()=>{l.value||(t.newPosition=parseFloat(b.value)+r.value/(o.value-a.value)*100,C(t.newPosition),d())},setPosition:C}};var SO=Qn({name:"ElSliderButton",components:{ElTooltip:FE},props:{modelValue:{type:Number,default:0},vertical:{type:Boolean,default:!1},tooltipClass:{type:String,default:""}},emits:[Nb],setup(e,{emit:t}){const n=Ue({hovering:!1,dragging:!1,isClick:!1,startX:0,currentX:0,startY:0,currentY:0,startPosition:0,newPosition:0,oldValue:e.modelValue}),{tooltip:l,showTooltip:a,tooltipVisible:o,wrapperStyle:r,formatValue:i,handleMouseEnter:s,handleMouseLeave:u,onButtonDown:c,onLeftKeyDown:d,onRightKeyDown:p,setPosition:f}=CO(e,n,t),{hovering:h,dragging:v}=ct(n);return{tooltip:l,tooltipVisible:o,showTooltip:a,wrapperStyle:r,formatValue:i,handleMouseEnter:s,handleMouseLeave:u,onButtonDown:c,onLeftKeyDown:d,onRightKeyDown:p,setPosition:f,hovering:h,dragging:v}}});SO.render=function(e,t,n,l,a,o){const r=dl("el-tooltip");return wl(),Sl("div",{ref:"button",class:["el-slider__button-wrapper",{hover:e.hovering,dragging:e.dragging}],style:e.wrapperStyle,tabindex:"0",onMouseenter:t[2]||(t[2]=(...t)=>e.handleMouseEnter&&e.handleMouseEnter(...t)),onMouseleave:t[3]||(t[3]=(...t)=>e.handleMouseLeave&&e.handleMouseLeave(...t)),onMousedown:t[4]||(t[4]=(...t)=>e.onButtonDown&&e.onButtonDown(...t)),onTouchstart:t[5]||(t[5]=(...t)=>e.onButtonDown&&e.onButtonDown(...t)),onFocus:t[6]||(t[6]=(...t)=>e.handleMouseEnter&&e.handleMouseEnter(...t)),onBlur:t[7]||(t[7]=(...t)=>e.handleMouseLeave&&e.handleMouseLeave(...t)),onKeydown:[t[8]||(t[8]=vo(((...t)=>e.onLeftKeyDown&&e.onLeftKeyDown(...t)),["left"])),t[9]||(t[9]=vo(((...t)=>e.onRightKeyDown&&e.onRightKeyDown(...t)),["right"])),t[10]||(t[10]=vo(fo(((...t)=>e.onLeftKeyDown&&e.onLeftKeyDown(...t)),["prevent"]),["down"])),t[11]||(t[11]=vo(fo(((...t)=>e.onRightKeyDown&&e.onRightKeyDown(...t)),["prevent"]),["up"]))]},[Ll(r,{ref:"tooltip",modelValue:e.tooltipVisible,"onUpdate:modelValue":t[1]||(t[1]=t=>e.tooltipVisible=t),placement:"top","stop-popper-mouse-event":!1,"popper-class":e.tooltipClass,disabled:!e.showTooltip,manual:""},{content:Zt((()=>[Ll("span",null,c(e.formatValue),1)])),default:Zt((()=>[Ll("div",{class:["el-slider__button",{hover:e.hovering,dragging:e.dragging}]},null,2)])),_:1},8,["modelValue","popper-class","disabled"])],38)},SO.__file="packages/slider/src/button.vue";var EO=Qn({name:"ElMarker",props:{mark:{type:[String,Object],default:()=>{}}},setup:e=>({label:ca((()=>"string"==typeof e.mark?e.mark:e.mark.label))}),render(){var e;return da("div",{class:"el-slider__marks-text",style:null===(e=this.mark)||void 0===e?void 0:e.style},this.label)}});EO.__file="packages/slider/src/marker.vue";var MO=Qn({name:"ElSlider",components:{ElInputNumber:hE,SliderButton:SO,SliderMarker:EO},props:{modelValue:{type:[Number,Array],default:0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},showInput:{type:Boolean,default:!1},showInputControls:{type:Boolean,default:!0},inputSize:{type:String,default:"small"},showStops:{type:Boolean,default:!1},showTooltip:{type:Boolean,default:!0},formatTooltip:{type:Function,default:void 0},disabled:{type:Boolean,default:!1},range:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},height:{type:String,default:""},debounce:{type:Number,default:300},label:{type:String,default:void 0},tooltipClass:{type:String,default:void 0},marks:Object},emits:[Nb,"change","input"],setup(e,{emit:t}){const n=Ue({firstValue:0,secondValue:0,oldValue:0,dragging:!1,sliderSize:1}),{elFormItem:l,slider:a,firstButton:o,secondButton:r,sliderDisabled:i,minValue:s,maxValue:u,runwayStyle:c,barStyle:d,resetSize:p,emitChange:f,onSliderClick:h}=((e,t,n)=>{const l=zl("elForm",{}),a=zl("elFormItem",{}),o=lt(null),r=lt(null),i=lt(null),s={firstButton:r,secondButton:i},u=ca((()=>e.disabled||l.disabled||!1)),c=ca((()=>Math.min(t.firstValue,t.secondValue))),d=ca((()=>Math.max(t.firstValue,t.secondValue))),p=ca((()=>e.range?100*(d.value-c.value)/(e.max-e.min)+"%":100*(t.firstValue-e.min)/(e.max-e.min)+"%")),f=ca((()=>e.range?100*(c.value-e.min)/(e.max-e.min)+"%":"0%")),h=ca((()=>e.vertical?{height:e.height}:{})),v=ca((()=>e.vertical?{height:p.value,bottom:f.value}:{width:p.value,left:f.value})),m=()=>{o.value&&(t.sliderSize=o.value["client"+(e.vertical?"Height":"Width")])},g=n=>{const l=e.min+n*(e.max-e.min)/100;if(!e.range)return void r.value.setPosition(n);let a;a=Math.abs(c.value-l)<Math.abs(d.value-l)?t.firstValue<t.secondValue?"firstButton":"secondButton":t.firstValue>t.secondValue?"firstButton":"secondButton",s[a].value.setPosition(n)},y=()=>oE(void 0,void 0,void 0,(function*(){yield Dt(),n("change",e.range?[c.value,d.value]:e.modelValue)}));return{elFormItem:a,slider:o,firstButton:r,secondButton:i,sliderDisabled:u,minValue:c,maxValue:d,runwayStyle:h,barStyle:v,resetSize:m,setPosition:g,emitChange:y,onSliderClick:n=>{if(!u.value&&!t.dragging){if(m(),e.vertical){const e=o.value.getBoundingClientRect().bottom;g((e-n.clientY)/t.sliderSize*100)}else{const e=o.value.getBoundingClientRect().left;g((n.clientX-e)/t.sliderSize*100)}y()}}}})(e,n,t),{stops:v,getStopStyle:m}=((e,t,n,l)=>({stops:ca((()=>{if(!e.showStops||e.min>e.max)return[];if(0===e.step)return[];const a=(e.max-e.min)/e.step,o=100*e.step/(e.max-e.min),r=Array.from({length:a-1}).map(((e,t)=>(t+1)*o));return e.range?r.filter((t=>t<100*(n.value-e.min)/(e.max-e.min)||t>100*(l.value-e.min)/(e.max-e.min))):r.filter((n=>n>100*(t.firstValue-e.min)/(e.max-e.min)))})),getStopStyle:t=>e.vertical?{bottom:t+"%"}:{left:t+"%"}}))(e,n,s,u),g=(y=e,ca((()=>y.marks?Object.keys(y.marks).map(parseFloat).sort(((e,t)=>e-t)).filter((e=>e<=y.max&&e>=y.min)).map((e=>({point:e,position:100*(e-y.min)/(y.max-y.min),mark:y.marks[e]}))):[])));var y;OO(e,n,s,u,t,l);const b=ca((()=>{let t=[e.min,e.max,e.step].map((e=>{let t=(""+e).split(".")[1];return t?t.length:0}));return Math.max.apply(null,t)})),{sliderWrapper:_}=TO(e,n,p),{firstValue:k,secondValue:x,oldValue:w,dragging:C,sliderSize:S}=ct(n);return $l("SliderProvider",Object.assign(Object.assign({},ct(e)),{sliderSize:S,disabled:i,precision:b,emitChange:f,resetSize:p,updateDragging:e=>{n.dragging=e}})),{firstValue:k,secondValue:x,oldValue:w,dragging:C,sliderSize:S,slider:a,firstButton:o,secondButton:r,sliderDisabled:i,runwayStyle:c,barStyle:d,emitChange:f,onSliderClick:h,getStopStyle:m,stops:v,markList:g,sliderWrapper:_}}});const OO=(e,t,n,l,a,o)=>{const r=e=>{a(Nb,e),a("input",e)},i=()=>e.range?![n.value,l.value].every(((e,n)=>e===t.oldValue[n])):e.modelValue!==t.oldValue,s=()=>{var a,s;if(e.min>e.max)return void wy("Slider","min should not be greater than max.");const u=e.modelValue;e.range&&Array.isArray(u)?u[1]<e.min?r([e.min,e.min]):u[0]>e.max?r([e.max,e.max]):u[0]<e.min?r([e.min,u[1]]):u[1]>e.max?r([u[0],e.max]):(t.firstValue=u[0],t.secondValue=u[1],i()&&(null===(a=o.formItemMitt)||void 0===a||a.emit("el.form.change",[n.value,l.value]),t.oldValue=u.slice())):e.range||"number"!=typeof u||isNaN(u)||(u<e.min?r(e.min):u>e.max?r(e.max):(t.firstValue=u,i()&&(null===(s=o.formItemMitt)||void 0===s||s.emit("el.form.change",u),t.oldValue=u)))};s(),Sn((()=>t.dragging),(e=>{e||s()})),Sn((()=>t.firstValue),(t=>{e.range?r([n.value,l.value]):r(t)})),Sn((()=>t.secondValue),(()=>{e.range&&r([n.value,l.value])})),Sn((()=>e.modelValue),((e,n)=>{t.dragging||Array.isArray(e)&&Array.isArray(n)&&e.every(((e,t)=>e===n[t]))||s()})),Sn((()=>[e.min,e.max]),(()=>{s()}))},TO=(e,t,n)=>{const l=lt(null);return mn((()=>oE(void 0,void 0,void 0,(function*(){let a;e.range?(Array.isArray(e.modelValue)?(t.firstValue=Math.max(e.min,e.modelValue[0]),t.secondValue=Math.min(e.max,e.modelValue[1])):(t.firstValue=e.min,t.secondValue=e.max),t.oldValue=[t.firstValue,t.secondValue],a=`${t.firstValue}-${t.secondValue}`):("number"!=typeof e.modelValue||isNaN(e.modelValue)?t.firstValue=e.min:t.firstValue=Math.min(e.max,Math.max(e.min,e.modelValue)),t.oldValue=t.firstValue,a=t.firstValue),l.value.setAttribute("aria-valuetext",a),l.value.setAttribute("aria-label",e.label?e.label:`slider between ${e.min} and ${e.max}`),zy(window,"resize",n),yield Dt(),n()})))),bn((()=>{jy(window,"resize",n)})),{sliderWrapper:l}},DO={key:1},LO={class:"el-slider__marks"};MO.render=function(e,t,n,l,a,o){const r=dl("el-input-number"),i=dl("slider-button"),s=dl("slider-marker");return wl(),Sl("div",{ref:"sliderWrapper",class:["el-slider",{"is-vertical":e.vertical,"el-slider--with-input":e.showInput}],role:"slider","aria-valuemin":e.min,"aria-valuemax":e.max,"aria-orientation":e.vertical?"vertical":"horizontal","aria-disabled":e.sliderDisabled},[e.showInput&&!e.range?(wl(),Sl(r,{key:0,ref:"input",modelValue:e.firstValue,"onUpdate:modelValue":t[1]||(t[1]=t=>e.firstValue=t),class:"el-slider__input",step:e.step,disabled:e.sliderDisabled,controls:e.showInputControls,min:e.min,max:e.max,debounce:e.debounce,size:e.inputSize,onChange:e.emitChange},null,8,["modelValue","step","disabled","controls","min","max","debounce","size","onChange"])):Pl("v-if",!0),Ll("div",{ref:"slider",class:["el-slider__runway",{"show-input":e.showInput&&!e.range,disabled:e.sliderDisabled}],style:e.runwayStyle,onClick:t[4]||(t[4]=(...t)=>e.onSliderClick&&e.onSliderClick(...t))},[Ll("div",{class:"el-slider__bar",style:e.barStyle},null,4),Ll(i,{ref:"firstButton",modelValue:e.firstValue,"onUpdate:modelValue":t[2]||(t[2]=t=>e.firstValue=t),vertical:e.vertical,"tooltip-class":e.tooltipClass},null,8,["modelValue","vertical","tooltip-class"]),e.range?(wl(),Sl(i,{key:0,ref:"secondButton",modelValue:e.secondValue,"onUpdate:modelValue":t[3]||(t[3]=t=>e.secondValue=t),vertical:e.vertical,"tooltip-class":e.tooltipClass},null,8,["modelValue","vertical","tooltip-class"])):Pl("v-if",!0),e.showStops?(wl(),Sl("div",DO,[(wl(!0),Sl(gl,null,pa(e.stops,((t,n)=>(wl(),Sl("div",{key:n,class:"el-slider__stop",style:e.getStopStyle(t)},null,4)))),128))])):Pl("v-if",!0),e.markList.length>0?(wl(),Sl(gl,{key:2},[Ll("div",null,[(wl(!0),Sl(gl,null,pa(e.markList,((t,n)=>(wl(),Sl("div",{key:n,style:e.getStopStyle(t.position),class:"el-slider__stop el-slider__marks-stop"},null,4)))),128))]),Ll("div",LO,[(wl(!0),Sl(gl,null,pa(e.markList,((t,n)=>(wl(),Sl(s,{key:n,mark:t.mark,style:e.getStopStyle(t.position)},null,8,["mark","style"])))),128))])],64)):Pl("v-if",!0)],6)],10,["aria-valuemin","aria-valuemax","aria-orientation","aria-disabled"])},MO.__file="packages/slider/src/index.vue",MO.install=e=>{e.component(MO.name,MO)};const NO=MO;var AO=Qn({name:"ElStep",props:{title:{type:String,default:""},icon:{type:String,default:""},description:{type:String,default:""},status:{type:String,default:"",validator:e=>["","wait","process","finish","error","success"].includes(e)}},setup(e){const t=lt(-1),n=lt({}),l=lt(""),a=zl("ElSteps"),o=na();mn((()=>{Sn([()=>a.props.active,()=>a.props.processStatus,()=>a.props.finishStatus],(([e])=>{g(e)}),{immediate:!0})})),bn((()=>{a.steps.value=a.steps.value.filter((e=>e.uid!==o.uid))}));const r=ca((()=>e.status||l.value)),i=ca((()=>{const e=a.steps.value[t.value-1];return e?e.currentStatus:"wait"})),s=ca((()=>a.props.alignCenter)),u=ca((()=>"vertical"===a.props.direction)),c=ca((()=>a.props.simple)),d=ca((()=>a.steps.value.length)),p=ca((()=>{var e;return(null===(e=a.steps.value[d.value-1])||void 0===e?void 0:e.uid)===o.uid})),f=ca((()=>c.value?"":a.props.space)),h=ca((()=>{const e={flexBasis:"number"==typeof f.value?f.value+"px":f.value?f.value:100/(d.value-(s.value?0:1))+"%"};return u.value||p.value&&(e.maxWidth=100/d.value+"%"),e})),v=e=>{t.value=e},m=e=>{let l=100;const o={};o.transitionDelay=150*t.value+"ms",e===a.props.processStatus?l=0:"wait"===e&&(l=0,o.transitionDelay=-150*t.value+"ms"),o.borderWidth=l&&!c.value?"1px":0,o["vertical"===a.props.direction?"height":"width"]=l+"%",n.value=o},g=e=>{e>t.value?l.value=a.props.finishStatus:e===t.value&&"error"!==i.value?l.value=a.props.processStatus:l.value="wait";const n=a.steps.value[d.value-1];n&&n.calcProgress(l.value)},y=Ue({uid:ca((()=>o.uid)),currentStatus:r,setIndex:v,calcProgress:m});return a.steps.value=[...a.steps.value,y],{index:t,lineStyle:n,currentStatus:r,isCenter:s,isVertical:u,isSimple:c,isLast:p,space:f,style:h,parent:a,setIndex:v,calcProgress:m,updateStatus:g}}});const PO={class:"el-step__line"},IO={key:1,class:"el-step__icon-inner"},FO={class:"el-step__main"},VO={key:0,class:"el-step__arrow"};AO.render=function(e,t,n,l,a,o){return wl(),Sl("div",{style:e.style,class:["el-step",e.isSimple?"is-simple":"is-"+e.parent.props.direction,e.isLast&&!e.space&&!e.isCenter&&"is-flex",e.isCenter&&!e.isVertical&&!e.isSimple&&"is-center"]},[Pl(" icon & line "),Ll("div",{class:["el-step__head","is-"+e.currentStatus]},[Ll("div",PO,[Ll("i",{class:"el-step__line-inner",style:e.lineStyle},null,4)]),Ll("div",{class:["el-step__icon","is-"+(e.icon?"icon":"text")]},["success"!==e.currentStatus&&"error"!==e.currentStatus?Ht(e.$slots,"icon",{key:0},(()=>[e.icon?(wl(),Sl("i",{key:0,class:["el-step__icon-inner",e.icon]},null,2)):Pl("v-if",!0),e.icon||e.isSimple?Pl("v-if",!0):(wl(),Sl("div",IO,c(e.index+1),1))])):(wl(),Sl("i",{key:1,class:["el-step__icon-inner","is-status","el-icon-"+("success"===e.currentStatus?"check":"close")]},null,2))],2)],2),Pl(" title & description "),Ll("div",FO,[Ll("div",{class:["el-step__title","is-"+e.currentStatus]},[Ht(e.$slots,"title",{},(()=>[Al(c(e.title),1)]))],2),e.isSimple?(wl(),Sl("div",VO)):(wl(),Sl("div",{key:1,class:["el-step__description","is-"+e.currentStatus]},[Ht(e.$slots,"description",{},(()=>[Al(c(e.description),1)]))],2))])],6)},AO.__file="packages/steps/src/item.vue",AO.install=e=>{e.component(AO.name,AO)};const BO=AO;var $O=Qn({name:"ElSteps",props:{space:{type:[Number,String],default:""},active:{type:Number,default:0},direction:{type:String,default:"horizontal",validator:e=>["horizontal","vertical"].includes(e)},alignCenter:{type:Boolean,default:!1},simple:{type:Boolean,default:!1},finishStatus:{type:String,default:"finish",validator:e=>["wait","process","finish","error","success"].includes(e)},processStatus:{type:String,default:"process",validator:e=>["wait","process","finish","error","success"].includes(e)}},emits:["change"],setup(e,{emit:t}){const n=lt([]);return Sn(n,(()=>{n.value.forEach(((e,t)=>{e.setIndex(t)}))})),$l("ElSteps",{props:e,steps:n}),Sn((()=>e.active),((e,n)=>{t("change",e,n)})),{steps:n}}});$O.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-steps",e.simple?"el-steps--simple":"el-steps--"+e.direction]},[Ht(e.$slots,"default")],2)},$O.__file="packages/steps/src/index.vue",$O.install=e=>{e.component($O.name,$O)};const zO=$O;var jO=Qn({name:"ElSubmenu",componentName:"ElSubmenu",props:{index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0}},setup(e){const t=Ue({popperJS:null,timeout:null,items:{},submenus:{},currentPlacement:"",mouseInChild:!1,opened:!1}),n=lt(null),l=lt(null),a=na(),{paddingStyle:o,indexPath:r,parentMenu:i}=PE(a,e.index),{openedMenus:s,isMenuPopup:u,hoverBackground:c,methods:d,props:p,methods:{closeMenu:f},rootMenuOn:h,rootMenuEmit:v}=zl("rootMenu"),{addSubMenu:m,removeSubMenu:g,handleMouseleave:y}=zl("subMenu:"+i.value.uid),b=ca((()=>"horizontal"===O.value&&_.value||"vertical"===O.value&&!p.collapse?"el-icon-arrow-down":"el-icon-arrow-right")),_=ca((()=>{let e=!0,t=a.parent;for(;t&&"ElMenu"!==t.type.name;){if(["ElSubmenu","ElMenuItemGroup"].includes(t.type.name)){e=!1;break}t=t.parent}return e})),k=ca((()=>void 0===e.popperAppendToBody?_.value:Boolean(e.popperAppendToBody))),x=ca((()=>p.collapse?"el-zoom-in-left":"el-zoom-in-top")),w=ca((()=>s.value.includes(e.index))),C=ca((()=>{let e=!1;const n=t.submenus,l=t.items;return Object.keys(l).forEach((t=>{l[t].active&&(e=!0)})),Object.keys(n).forEach((t=>{n[t].active&&(e=!0)})),e})),S=ca((()=>p.backgroundColor||"")),E=ca((()=>p.activeTextColor||"")),M=ca((()=>p.textColor||"")),O=ca((()=>p.mode)),T=ca((()=>"horizontal"!==O.value?{color:M.value}:{borderBottomColor:C.value?p.activeTextColor?E.value:"":"transparent",color:C.value?E.value:M.value})),D=ku(),L=e=>{t.submenus[e.index]=e},N=e=>{delete t.submenus[e.index]},A=(n=!1)=>{"click"===p.menuTrigger&&"horizontal"===p.mode||!p.collapse&&"vertical"===p.mode||(D.emit("submenu:mouse-leave-child"),clearTimeout(t.timeout),t.timeout=setTimeout((()=>{!t.mouseInChild&&f(e.index)}),e.hideTimeout),k.value&&n&&"ElSubmenu"===a.parent.type.name&&y(!0))},P=()=>{t.currentPlacement="horizontal"===O.value&&_.value?"bottom-start":"right-start"};return $l("subMenu:"+a.uid,{addSubMenu:L,removeSubMenu:N,handleMouseleave:A}),vn((()=>{h("rootMenu:toggle-collapse",(e=>{(e=>{var t;e?P():null===(t=l.value)||void 0===t||t.doDestroy()})(e)})),D.on("submenu:mouse-enter-child",(()=>{t.mouseInChild=!0,clearTimeout(t.timeout)})),D.on("submenu:mouse-leave-child",(()=>{t.mouseInChild=!1,clearTimeout(t.timeout)}))})),mn((()=>{d.addSubMenu({index:e.index,indexPath:r,active:C}),m({index:e.index,indexPath:r,active:C}),P()})),bn((()=>{g({index:e.index,indexPath:r,active:C}),d.removeSubMenu({index:e.index,indexPath:r,active:C})})),{data:t,props:e,mode:O,active:C,isMenuPopup:u,opened:w,paddingStyle:o,titleStyle:T,backgroundColor:S,rootProps:p,menuTransitionName:x,submenuTitleIcon:b,appendToBody:k,handleClick:()=>{const t=e.disabled;"hover"===p.menuTrigger&&"horizontal"===p.mode||p.collapse&&"vertical"===p.mode||t||v("submenu:submenu-click",{index:e.index,indexPath:r})},handleMouseenter:(n,l=e.showTimeout)=>{if(!("ActiveXObject"in window)&&"focus"===n.type&&!n.relatedTarget)return;const a=e.disabled;"click"===p.menuTrigger&&"horizontal"===p.mode||!p.collapse&&"vertical"===p.mode||a||(D.emit("submenu:mouse-enter-child"),clearTimeout(t.timeout),t.timeout=setTimeout((()=>{d.openMenu(e.index,r)}),l),k.value&&i.value.vnode.el.dispatchEvent(new MouseEvent("mouseenter")))},handleMouseleave:A,handleTitleMouseenter:()=>{var e;if("horizontal"===O.value&&!p.backgroundColor)return;const t=(null===(e=l.value)||void 0===e?void 0:e.triggerRef)||n.value;t&&(t.style.backgroundColor=c.value)},handleTitleMouseleave:()=>{var e;if("horizontal"===O.value&&!p.backgroundColor)return;const t=(null===(e=l.value)||void 0===e?void 0:e.triggerRef)||n.value;t&&(t.style.backgroundColor=p.backgroundColor||"")},addItem:e=>{t.items[e.index]=e},removeItem:e=>{delete t.items[e.index]},addSubMenu:L,removeSubMenu:N,popperVnode:l,verticalTitleRef:n}},render(){var e,t;const n=[null===(t=(e=this.$slots).title)||void 0===t?void 0:t.call(e),da("i",{class:["el-submenu__icon-arrow",this.submenuTitleIcon]},null)],l={backgroundColor:this.rootProps.backgroundColor||""},a=this.isMenuPopup?da(M_,{ref:"popperVNode",manualMode:!0,visible:this.opened,"onUpdate:visible":e=>this.opened=e,effect:"light",pure:!0,offset:6,showArrow:!1,popperClass:this.popperClass,placement:this.data.currentPlacement,appendToBody:this.appendToBody,transition:this.menuTransitionName,gpuAcceleration:!1},{default:()=>{var e,t;return da("div",{ref:"menu",class:["el-menu--"+this.mode,this.popperClass],onMouseenter:e=>this.handleMouseenter(e,100),onMouseleave:()=>this.handleMouseleave(!0),onFocus:e=>this.handleMouseenter(e,100)},[da("ul",{class:["el-menu el-menu--popup","el-menu--popup-"+this.data.currentPlacement],style:l},[null===(t=(e=this.$slots).default)||void 0===t?void 0:t.call(e)])])},trigger:()=>da("div",{class:"el-submenu__title",style:[this.paddingStyle,this.titleStyle,{backgroundColor:this.backgroundColor}],onClick:this.handleClick,onMouseenter:this.handleTitleMouseenter,onMouseleave:this.handleTitleMouseleave},n)}):da(gl,{},[da("div",{class:"el-submenu__title",style:[this.paddingStyle,this.titleStyle,{backgroundColor:this.backgroundColor}],ref:"verticalTitleRef",onClick:this.handleClick,onMouseenter:this.handleTitleMouseenter,onMouseleave:this.handleTitleMouseleave},n),da(aw,{},{default:()=>{var e,t;return Un(da("ul",{role:"menu",class:"el-menu el-menu--inline",style:l},[null===(t=(e=this.$slots).default)||void 0===t?void 0:t.call(e)]),[[mo,this.opened]])}})]);return da("li",{class:["el-submenu",{"is-active":this.active,"is-opened":this.opened,"is-disabled":this.disabled}],role:"menuitem",ariaHaspopup:!0,ariaExpanded:this.opened,onMouseenter:this.handleMouseenter,onMouseleave:()=>this.handleMouseleave(!0),onFocus:this.handleMouseenter},[a])}});jO.__file="packages/menu/src/submenu.vue",jO.install=e=>{e.component(jO.name,jO)};const RO=jO;var HO=Qn({name:"ElSwitch",props:{modelValue:{type:[Boolean,String,Number],default:!1},value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:Number,default:40},activeIconClass:{type:String,default:""},inactiveIconClass:{type:String,default:""},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},id:String,loading:{type:Boolean,default:!1},beforeChange:Function},emits:["update:modelValue","change","input"],setup(e,t){const n=zl("elForm",{}),l=zl("elFormItem",{}),a=lt(!1!==e.modelValue),o=lt(null),r=lt(null);Sn((()=>e.modelValue),(()=>{a.value=!0})),Sn((()=>e.value),(()=>{a.value=!1}));const i=ca((()=>a.value?e.modelValue:e.value)),s=ca((()=>i.value===e.activeValue));~[e.activeValue,e.inactiveValue].indexOf(i.value)||(t.emit("update:modelValue",e.inactiveValue),t.emit("change",e.inactiveValue),t.emit("input",e.inactiveValue)),Sn(s,(()=>{var t;o.value.checked=s.value,(e.activeColor||e.inactiveColor)&&d(),e.validateEvent&&(null===(t=l.formItemMitt)||void 0===t||t.emit("el.form.change",[i.value]))}));const u=ca((()=>e.disabled||e.loading||(n||{}).disabled)),c=()=>{const n=s.value?e.inactiveValue:e.activeValue;t.emit("update:modelValue",n),t.emit("change",n),t.emit("input",n),Dt((()=>{o.value.checked=s.value}))},d=()=>{const t=s.value?e.activeColor:e.inactiveColor,n=r.value;n.style.borderColor=t,n.style.backgroundColor=t,n.children[0].style.color=t};return mn((()=>{(e.activeColor||e.inactiveColor)&&d(),o.value.checked=s.value})),{input:o,core:r,switchDisabled:u,checked:s,handleChange:c,switchValue:()=>{if(u.value)return;const{beforeChange:t}=e;if(!t)return void c();const n=t();[hy(n),Oy(n)].some((e=>e))||wy("ElSwitch","beforeChange must return type `Promise<boolean>` or `boolean`"),hy(n)?n.then((e=>{e&&c()})).catch((e=>{})):n&&c()},focus:()=>{var e,t;null===(t=null===(e=o.value)||void 0===e?void 0:e.focus)||void 0===t||t.call(e)}}}});const WO={class:"el-switch__action"},YO={key:0,class:"el-icon-loading"};HO.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-switch",{"is-disabled":e.switchDisabled,"is-checked":e.checked}],role:"switch","aria-checked":e.checked,"aria-disabled":e.switchDisabled,onClick:t[3]||(t[3]=fo(((...t)=>e.switchValue&&e.switchValue(...t)),["prevent"]))},[Ll("input",{id:e.id,ref:"input",class:"el-switch__input",type:"checkbox",name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:e.switchDisabled,onChange:t[1]||(t[1]=(...t)=>e.handleChange&&e.handleChange(...t)),onKeydown:t[2]||(t[2]=vo(((...t)=>e.switchValue&&e.switchValue(...t)),["enter"]))},null,40,["id","name","true-value","false-value","disabled"]),e.inactiveIconClass||e.inactiveText?(wl(),Sl("span",{key:0,class:["el-switch__label","el-switch__label--left",e.checked?"":"is-active"]},[e.inactiveIconClass?(wl(),Sl("i",{key:0,class:[e.inactiveIconClass]},null,2)):Pl("v-if",!0),!e.inactiveIconClass&&e.inactiveText?(wl(),Sl("span",{key:1,"aria-hidden":e.checked},c(e.inactiveText),9,["aria-hidden"])):Pl("v-if",!0)],2)):Pl("v-if",!0),Ll("span",{ref:"core",class:"el-switch__core",style:{width:(e.width||40)+"px"}},[Ll("div",WO,[e.loading?(wl(),Sl("i",YO)):Pl("v-if",!0)])],4),e.activeIconClass||e.activeText?(wl(),Sl("span",{key:1,class:["el-switch__label","el-switch__label--right",e.checked?"is-active":""]},[e.activeIconClass?(wl(),Sl("i",{key:0,class:[e.activeIconClass]},null,2)):Pl("v-if",!0),!e.activeIconClass&&e.activeText?(wl(),Sl("span",{key:1,"aria-hidden":!e.checked},c(e.activeText),9,["aria-hidden"])):Pl("v-if",!0)],2)):Pl("v-if",!0)],10,["aria-checked","aria-disabled"])},HO.__file="packages/switch/src/index.vue",HO.install=e=>{e.component(HO.name,HO)};const qO=HO;var KO=Qn({name:"ElTabPane",props:{label:{type:String,default:""},name:{type:String,default:""},closable:Boolean,disabled:Boolean,lazy:Boolean},setup(e){const t=lt(null),n=lt(!1),l=zl("rootTabs"),a=zl("updatePaneState");if(!l||!a)throw new Error("ElTabPane must use with ElTabs");const o=ca((()=>e.closable||l.props.closable)),r=ca((()=>{const a=l.currentName.value===(e.name||t.value);return a&&(n.value=!0),a})),i=ca((()=>e.name||t.value)),s=ca((()=>!e.lazy||n.value||r.value)),u=na();return a({uid:u.uid,instance:u,props:e,paneName:i,active:r,index:t,isClosable:o}),{index:t,loaded:n,isClosable:o,active:r,paneName:i,shouldBeRender:s}}});KO.render=function(e,t,n,l,a,o){return e.shouldBeRender?Un((wl(),Sl("div",{key:0,id:"pane-"+e.paneName,class:"el-tab-pane",role:"tabpanel","aria-hidden":!e.active,"aria-labelledby":"tab-"+e.paneName},[Ht(e.$slots,"default")],8,["id","aria-hidden","aria-labelledby"])),[[mo,e.active]]):Pl("v-if",!0)},KO.__file="packages/tabs/src/tab-pane.vue",KO.install=e=>{e.component(KO.name,KO)};const UO=KO,GO=function(e){let t=e.target;for(;t&&"HTML"!==t.tagName.toUpperCase();){if("TD"===t.tagName.toUpperCase())return t;t=t.parentNode}return null},XO=function(e){return null!==e&&"object"==typeof e},ZO=function(e,t){let n=null;return e.columns.forEach((function(e){e.id===t&&(n=e)})),n},JO=function(e,t){const n=(t.className||"").match(/el-table_[^\s]+/gm);return n?ZO(e,n[0]):null},QO=(e,t)=>{if(!e)throw new Error("row is required when get row identity");if("string"==typeof t){if(t.indexOf(".")<0)return e[t];const n=t.split(".");let l=e;for(let e=0;e<n.length;e++)l=l[n[e]];return l}if("function"==typeof t)return t.call(null,e)},eT=function(e,t){const n={};return(e||[]).forEach(((e,l)=>{n[QO(e,t)]={row:e,index:l}})),n};function tT(e){return void 0!==e&&(e=parseInt(e,10),isNaN(e)&&(e=null)),e}function nT(e){return"number"==typeof e?e:"string"==typeof e?/^\d+(?:px)?$/.test(e)?parseInt(e,10):e:null}function lT(e,t,n){let l=!1;const a=e.indexOf(t),o=-1!==a,r=()=>{e.push(t),l=!0},i=()=>{e.splice(a,1),l=!0};return"boolean"==typeof n?n&&!o?r():!n&&o&&i():o?i():r(),l}function aT(e,t,n="children",l="hasChildren"){const a=e=>!(Array.isArray(e)&&e.length);function o(e,r,i){t(e,r,i),r.forEach((e=>{if(e[l])return void t(e,null,i+1);const r=e[n];a(r)||o(e,r,i+1)}))}e.forEach((e=>{if(e[l])return void t(e,null,0);const r=e[n];a(r)||o(e,r,0)}))}let oT;const rT=e=>{const t=[];return e.forEach((e=>{e.children?t.push.apply(t,rT(e.children)):t.push(e)})),t};function iT(){const e=na(),t=lt(null),n=lt([]),l=lt([]),a=lt(!1),o=lt([]),r=lt([]),i=lt([]),s=lt([]),u=lt([]),c=lt([]),d=lt([]),p=lt([]),f=lt(0),h=lt(0),v=lt(0),m=lt(!1),g=lt([]),y=lt(!1),b=lt(!1),_=lt(null),k=lt({}),x=lt(null),w=lt(null),C=lt(null),S=lt(null),E=lt(null);Sn(n,(()=>e.state&&O(!1)),{deep:!0});const M=()=>{s.value=o.value.filter((e=>!0===e.fixed||"left"===e.fixed)),u.value=o.value.filter((e=>"right"===e.fixed)),s.value.length>0&&o.value[0]&&"selection"===o.value[0].type&&!o.value[0].fixed&&(o.value[0].fixed=!0,s.value.unshift(o.value[0]));const e=o.value.filter((e=>!e.fixed));r.value=[].concat(s.value).concat(e).concat(u.value);const t=rT(e),n=rT(s.value),l=rT(u.value);f.value=t.length,h.value=n.length,v.value=l.length,i.value=[].concat(n).concat(t).concat(l),a.value=s.value.length>0||u.value.length>0},O=(t,n=!1)=>{t&&M(),n?e.state.doLayout():e.state.debouncedUpdateLayout()},T=(e,t,n)=>{w.value&&w.value!==e&&(w.value.order=null),w.value=e,C.value=t,S.value=n},D=()=>{let e=it(l);Object.keys(k.value).forEach((t=>{const n=k.value[t];if(!n||0===n.length)return;const l=ZO({columns:i.value},t);l&&l.filterMethod&&(e=e.filter((e=>n.some((t=>l.filterMethod.call(null,t,e,l))))))})),x.value=e},L=()=>{n.value=((e,t)=>{const n=t.sortingColumn;return n&&"string"!=typeof n.sortable?function(e,t,n,l,a){if(!t&&!l&&(!a||Array.isArray(a)&&!a.length))return e;n="string"==typeof n?"descending"===n?-1:1:n&&n<0?-1:1;const o=l?null:function(n,l){return a?(Array.isArray(a)||(a=[a]),a.map((function(t){return"string"==typeof t?Cy(n,t):t(n,l,e)}))):("$key"!==t&&XO(n)&&"$value"in n&&(n=n.$value),[XO(n)?Cy(n,t):n])};return e.map((function(e,t){return{value:e,index:t,key:o?o(e,t):null}})).sort((function(e,t){let a=function(e,t){if(l)return l(e.value,t.value);for(let n=0,l=e.key.length;n<l;n++){if(e.key[n]<t.key[n])return-1;if(e.key[n]>t.key[n])return 1}return 0}(e,t);return a||(a=e.index-t.index),a*n})).map((e=>e.value))}(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy):e})(x.value,{sortingColumn:w.value,sortProp:C.value,sortOrder:S.value})},{setExpandRowKeys:N,toggleRowExpansion:A,updateExpandRows:P,states:I,isRowExpanded:F}=function(e){const t=na(),n=lt(!1),l=lt([]);return{updateExpandRows:()=>{const t=e.data.value||[],a=e.rowKey.value;if(n.value)l.value=t.slice();else if(a){const e=eT(l.value,a);l.value=t.reduce(((t,n)=>{const l=QO(n,a);return e[l]&&t.push(n),t}),[])}else l.value=[]},toggleRowExpansion:(e,n)=>{lT(l.value,e,n)&&(t.emit("expand-change",e,l.value.slice()),t.store.scheduleLayout())},setExpandRowKeys:n=>{t.store.assertRowKey();const a=e.data.value||[],o=e.rowKey.value,r=eT(a,o);l.value=n.reduce(((e,t)=>{const n=r[t];return n&&e.push(n.row),e}),[])},isRowExpanded:t=>{const n=e.rowKey.value;return n?!!eT(l.value,n)[QO(t,n)]:-1!==l.value.indexOf(t)},states:{expandRows:l,defaultExpandAll:n}}}({data:n,rowKey:t}),{updateTreeExpandKeys:V,toggleTreeExpansion:B,loadOrToggle:$,states:z}=function(e){const t=lt([]),n=lt({}),l=lt(16),a=lt(!1),o=lt({}),r=lt("hasChildren"),i=lt("children"),s=na(),u=ca((()=>{if(!e.rowKey.value)return{};const t=e.data.value||[];return d(t)})),c=ca((()=>{const t=e.rowKey.value,n=Object.keys(o.value),l={};return n.length?(n.forEach((e=>{if(o.value[e].length){const n={children:[]};o.value[e].forEach((e=>{const a=QO(e,t);n.children.push(a),e[r.value]&&!l[a]&&(l[a]={children:[]})})),l[e]=n}})),l):l})),d=t=>{const n=e.rowKey.value,l={};return aT(t,((e,t,o)=>{const r=QO(e,n);Array.isArray(t)?l[r]={children:t.map((e=>QO(e,n))),level:o}:a.value&&(l[r]={children:[],lazy:!0,level:o})}),i.value,r.value),l},p=()=>{var e,l;const o=u.value,r=c.value,i=Object.keys(o),d={};if(i.length){const l=it(n),u=null===(e=s.store)||void 0===e?void 0:e.states.defaultExpandAll.value,c=[],p=(e,n)=>{const l=u||t.value&&-1!==t.value.indexOf(n);return!!(e&&e.expanded||l)};i.forEach((e=>{const t=l[e],n=Object.assign({},o[e]);if(n.expanded=p(t,e),n.lazy){const{loaded:l=!1,loading:a=!1}=t||{};n.loaded=!!l,n.loading=!!a,c.push(e)}d[e]=n}));const f=Object.keys(r);a.value&&f.length&&c.length&&f.forEach((e=>{const t=l[e],n=r[e].children;if(-1!==c.indexOf(e)){if(0!==d[e].children.length)throw new Error("[ElTable]children must be an empty array.");d[e].children=n}else{const{loaded:l=!1,loading:a=!1}=t||{};d[e]={lazy:!0,loaded:!!l,loading:!!a,expanded:p(t,e),children:n,level:""}}}))}n.value=d,null===(l=s.store)||void 0===l||l.updateTableScrollY()};Sn((()=>u.value),p),Sn((()=>c.value),p);const f=(t,l)=>{s.store.assertRowKey();const a=e.rowKey.value,o=QO(t,a),r=o&&n.value[o];if(o&&r&&"expanded"in r){const e=r.expanded;l=void 0===l?!r.expanded:l,n.value[o].expanded=l,e!==l&&s.emit("expand-change",t,l),s.store.updateTableScrollY()}},h=(e,t,l)=>{const{load:a}=s.props;a&&!n.value[t].loaded&&(n.value[t].loading=!0,a(e,l,(l=>{if(!Array.isArray(l))throw new Error("[ElTable] data must be an array");n.value[t].loading=!1,n.value[t].loaded=!0,n.value[t].expanded=!0,l.length&&(o.value[t]=l),s.emit("expand-change",e,!0)})))};return{loadData:h,loadOrToggle:t=>{s.store.assertRowKey();const l=e.rowKey.value,o=QO(t,l),r=n.value[o];a.value&&r&&"loaded"in r&&!r.loaded?h(t,o,r):f(t,void 0)},toggleTreeExpansion:f,updateTreeExpandKeys:e=>{t.value=e,p()},updateTreeData:p,normalize:d,states:{expandRowKeys:t,treeData:n,indent:l,lazy:a,lazyTreeNodeMap:o,lazyColumnIdentifier:r,childrenColumnName:i}}}({data:n,rowKey:t}),{updateCurrentRowData:j,updateCurrentRow:R,setCurrentRowKey:H,states:W}=function(e){const t=na(),n=lt(null),l=lt(null),a=()=>{n.value=null},o=t=>{const{data:n=[],rowKey:a}=e;let o=null;a.value&&(o=Py(it(n),(e=>QO(e,a.value)===t))),l.value=o};return{setCurrentRowKey:e=>{t.store.assertRowKey(),n.value=e,o(e)},restoreCurrentRowKey:a,setCurrentRowByKey:o,updateCurrentRow:e=>{const n=l.value;if(e&&e!==n)return l.value=e,void t.emit("current-change",l.value,n);!e&&n&&(l.value=null,t.emit("current-change",null,n))},updateCurrentRowData:()=>{const r=e.rowKey.value,i=e.data.value||[],s=l.value;if(-1===i.indexOf(s)&&s){if(r){const e=QO(s,r);o(e)}else l.value=null;null===l.value&&t.emit("current-change",null,s)}else n.value&&(o(n.value),a())},states:{_currentRowKey:n,currentRow:l}}}({data:n,rowKey:t});return{assertRowKey:()=>{if(!t.value)throw new Error("[ElTable] prop row-key is required")},updateColumns:M,scheduleLayout:O,isSelected:e=>g.value.indexOf(e)>-1,clearSelection:()=>{m.value=!1,g.value.length&&(g.value=[],e.emit("selection-change",[]))},cleanSelection:()=>{let l;if(t.value){l=[];const e=eT(g.value,t.value),a=eT(n.value,t.value);for(const t in e)uy(e,t)&&!a[t]&&l.push(e[t].row)}else l=g.value.filter((e=>-1===n.value.indexOf(e)));if(l.length){const t=g.value.filter((e=>-1===l.indexOf(e)));g.value=t,e.emit("selection-change",t.slice())}},toggleRowSelection:(t,n,l=!0)=>{if(lT(g.value,t,n)){const n=(g.value||[]).slice();l&&e.emit("select",n,t),e.emit("selection-change",n)}},_toggleAllSelection:()=>{const t=b.value?!m.value:!(m.value||g.value.length);m.value=t;let l=!1;n.value.forEach(((e,n)=>{_.value?_.value.call(null,e,n)&&lT(g.value,e,t)&&(l=!0):lT(g.value,e,t)&&(l=!0)})),l&&e.emit("selection-change",g.value?g.value.slice():[]),e.emit("select-all",g.value)},updateSelectionByRowKey:()=>{const e=eT(g.value,t.value);n.value.forEach((n=>{const l=QO(n,t.value),a=e[l];a&&(g.value[a.index]=n)}))},updateAllSelected:()=>{var e;if(0===(null===(e=n.value)||void 0===e?void 0:e.length))return void(m.value=!1);let l;t.value&&(l=eT(g.value,t.value));let a=!0,o=0;for(let i=0,s=(n.value||[]).length;i<s;i++){const e=n.value[i],s=_.value&&_.value.call(null,e,i);if(r=e,l?l[QO(r,t.value)]:-1!==g.value.indexOf(r))o++;else if(!_.value||s){a=!1;break}}var r;0===o&&(a=!1),m.value=a},updateFilters:(e,t)=>{Array.isArray(e)||(e=[e]);const n={};return e.forEach((e=>{k.value[e.id]=t,n[e.columnKey||e.id]=t})),n},updateCurrentRow:R,updateSort:T,execFilter:D,execSort:L,execQuery:e=>{e&&e.filter||D(),L()},clearFilter:t=>{const{tableHeader:n,fixedTableHeader:l,rightFixedTableHeader:a}=e.refs;let o={};n&&(o=Object.assign(o,n.filterPanels)),l&&(o=Object.assign(o,l.filterPanels)),a&&(o=Object.assign(o,a.filterPanels));const r=Object.keys(o);if(r.length)if("string"==typeof t&&(t=[t]),Array.isArray(t)){const n=t.map((e=>function(e,t){let n=null;for(let l=0;l<e.columns.length;l++){const a=e.columns[l];if(a.columnKey===t){n=a;break}}return n}({columns:i.value},e)));r.forEach((e=>{const t=n.find((t=>t.id===e));t&&(t.filteredValue=[])})),e.store.commit("filterChange",{column:n,values:[],silent:!0,multi:!0})}else r.forEach((e=>{const t=i.value.find((t=>t.id===e));t&&(t.filteredValue=[])})),k.value={},e.store.commit("filterChange",{column:{},values:[],silent:!0})},clearSort:()=>{w.value&&(T(null,null,null),e.store.commit("changeSortCondition",{silent:!0}))},toggleRowExpansion:A,setExpandRowKeysAdapter:e=>{N(e),V(e)},setCurrentRowKey:H,toggleRowExpansionAdapter:(e,t)=>{i.value.some((({type:e})=>"expand"===e))?A(e,t):B(e,t)},isRowExpanded:F,updateExpandRows:P,updateCurrentRowData:j,loadOrToggle:$,states:Object.assign(Object.assign(Object.assign({rowKey:t,data:n,_data:l,isComplex:a,_columns:o,originColumns:r,columns:i,fixedColumns:s,rightFixedColumns:u,leafColumns:c,fixedLeafColumns:d,rightFixedLeafColumns:p,leafColumnsLength:f,fixedLeafColumnsLength:h,rightFixedLeafColumnsLength:v,isAllSelected:m,selection:g,reserveSelection:y,selectOnIndeterminate:b,selectable:_,filters:k,filteredData:x,sortingColumn:w,sortProp:C,sortOrder:S,hoverRow:E},I),z),W)}}function sT(e,t){return e.map((e=>{var n;return e.id===t.id?t:((null===(n=e.children)||void 0===n?void 0:n.length)&&(e.children=sT(e.children,t)),e)}))}function uT(e){e.forEach((e=>{var t,n;e.no=null===(t=e.getColumnIndex)||void 0===t?void 0:t.call(e),(null===(n=e.children)||void 0===n?void 0:n.length)&&uT(e.children)})),e.sort(((e,t)=>e.no-t.no))}function cT(){const e=na(),t={setData(t,n){const l=it(t.data)!==n;t.data.value=n,t._data.value=n,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),it(t.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):l?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(t,n,l){const a=it(t._columns);let o=[];l?(l&&!l.children&&(l.children=[]),l.children.push(n),o=sT(a,l)):(a.push(n),o=a),uT(o),t._columns.value=o,"selection"===n.type&&(t.selectable.value=n.selectable,t.reserveSelection.value=n.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},removeColumn(t,n,l){const a=it(t._columns)||[];if(l)l.children.splice(l.children.findIndex((e=>e.id===n.id)),1),0===l.children.length&&delete l.children,t._columns.value=sT(a,l);else{const e=a.indexOf(n);e>-1&&(a.splice(e,1),t._columns.value=a)}e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(t,n){const{prop:l,order:a,init:o}=n;if(l){const n=Py(it(t.columns),(e=>e.property===l));n&&(n.order=a,e.store.updateSort(n,l,a),e.store.commit("changeSortCondition",{init:o}))}},changeSortCondition(t,n){const{sortingColumn:l,sortProp:a,sortOrder:o}=t;null===it(o)&&(t.sortingColumn.value=null,t.sortProp.value=null),e.store.execQuery({filter:!0}),n&&(n.silent||n.init)||e.emit("sort-change",{column:it(l),prop:it(a),order:it(o)}),e.store.updateTableScrollY()},filterChange(t,n){const{column:l,values:a,silent:o}=n,r=e.store.updateFilters(l,a);e.store.execQuery(),o||e.emit("filter-change",r),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(t,n){e.store.toggleRowSelection(n),e.store.updateAllSelected()},setHoverRow(e,t){e.hoverRow.value=t},setCurrentRow(t,n){e.store.updateCurrentRow(n)}},n=iT();return Object.assign(Object.assign({},n),{mutations:t,commit:function(t,...n){const l=e.store.mutations;if(!l[t])throw new Error("Action not found: "+t);l[t].apply(e,[e.store.states].concat(n))},updateTableScrollY:function(){Dt((()=>e.layout.updateScrollY.apply(e.layout)))}})}class dT{constructor(e){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=lt(null),this.scrollX=lt(!1),this.scrollY=lt(!1),this.bodyWidth=lt(null),this.fixedWidth=lt(null),this.rightFixedWidth=lt(null),this.tableHeight=lt(null),this.headerHeight=lt(44),this.appendHeight=lt(0),this.footerHeight=lt(44),this.viewportHeight=lt(null),this.bodyHeight=lt(null),this.fixedBodyHeight=lt(null),this.gutterWidth=pb();for(const t in e)uy(e,t)&&(nt(this[t])?this[t].value=e[t]:this[t]=e[t]);if(!this.table)throw new Error("table is required for Table Layout");if(!this.store)throw new Error("store is required for Table Layout")}updateScrollY(){if(null===this.height.value)return!1;const e=this.table.refs.bodyWrapper;if(this.table.vnode.el&&e){let t=!0;const n=this.scrollY.value;return t=null!==this.bodyHeight.value&&e.querySelector(".el-table__body").offsetHeight>this.bodyHeight.value,this.scrollY.value=t,n!==t}return!1}setHeight(e,t="height"){if(oy)return;const n=this.table.vnode.el;if(e=nT(e),this.height.value=Number(e),!n&&(e||0===e))return Dt((()=>this.setHeight(e,t)));"number"==typeof e?(n.style[t]=e+"px",this.updateElsHeight()):"string"==typeof e&&(n.style[t]=e,this.updateElsHeight())}setMaxHeight(e){this.setHeight(e,"max-height")}getFlattenColumns(){const e=[];return this.table.store.states.columns.value.forEach((t=>{t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)})),e}updateElsHeight(){if(!this.table.$ready)return Dt((()=>this.updateElsHeight()));const{headerWrapper:e,appendWrapper:t,footerWrapper:n}=this.table.refs,l=t,a=e,o=n;if(this.appendHeight.value=l?l.offsetHeight:0,this.showHeader&&!a)return;const r=a?a.querySelector(".el-table__header tr"):null,i=this.headerDisplayNone(r),s=this.headerHeight.value=this.showHeader?a.offsetHeight:0;if(this.showHeader&&!i&&a.offsetWidth>0&&(this.table.store.states.columns.value||[]).length>0&&s<2)return Dt((()=>this.updateElsHeight()));const u=this.tableHeight.value=this.table.vnode.el.clientHeight,c=this.footerHeight.value=o?o.offsetHeight:0;null!==this.height.value&&(this.bodyHeight.value=u-s-c+(o?1:0)),this.fixedBodyHeight.value=this.scrollX.value?this.bodyHeight.value-this.gutterWidth:this.bodyHeight.value,this.viewportHeight.value=this.scrollX.value?u-this.gutterWidth:u,this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(e){if(!e)return!0;let t=e;for(;"DIV"!==t.tagName;){if("none"===getComputedStyle(t).display)return!0;t=t.parentElement}return!1}updateColumnsWidth(){if(oy)return;const e=this.fit,t=this.table.vnode.el.clientWidth;let n=0;const l=this.getFlattenColumns(),a=l.filter((e=>"number"!=typeof e.width));if(l.forEach((e=>{"number"==typeof e.width&&e.realWidth&&(e.realWidth=null)})),a.length>0&&e){l.forEach((e=>{n+=e.width||e.minWidth||80}));const e=this.scrollY.value?this.gutterWidth:0;if(n<=t-e){this.scrollX.value=!1;const l=t-e-n;if(1===a.length)a[0].realWidth=(a[0].minWidth||80)+l;else{const e=l/a.reduce(((e,t)=>e+(t.minWidth||80)),0);let t=0;a.forEach(((n,l)=>{if(0===l)return;const a=Math.floor((n.minWidth||80)*e);t+=a,n.realWidth=(n.minWidth||80)+a})),a[0].realWidth=(a[0].minWidth||80)+l-t}}else this.scrollX.value=!0,a.forEach((function(e){e.realWidth=e.minWidth}));this.bodyWidth.value=Math.max(n,t),this.table.state.resizeState.value.width=this.bodyWidth.value}else l.forEach((e=>{e.width||e.minWidth?e.realWidth=e.width||e.minWidth:e.realWidth=80,n+=e.realWidth})),this.scrollX.value=n>t,this.bodyWidth.value=n;const o=this.store.states.fixedColumns.value;if(o.length>0){let e=0;o.forEach((function(t){e+=t.realWidth||t.width})),this.fixedWidth.value=e}const r=this.store.states.rightFixedColumns.value;if(r.length>0){let e=0;r.forEach((function(t){e+=t.realWidth||t.width})),this.rightFixedWidth.value=e}this.notifyObservers("columns")}addObserver(e){this.observers.push(e)}removeObserver(e){const t=this.observers.indexOf(e);-1!==t&&this.observers.splice(t,1)}notifyObservers(e){this.observers.forEach((t=>{var n,l;switch(e){case"columns":null===(n=t.state)||void 0===n||n.onColumnsChange(this);break;case"scrollable":null===(l=t.state)||void 0===l||l.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${e}.`)}}))}}var pT=Qn({name:"ElTableFilterPanel",components:{ElCheckbox:dx,ElCheckboxGroup:Jx,ElScrollbar:a_,ElPopper:M_},directives:{ClickOutside:Sb},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=na(),n=t.parent;n.filterPanels.value[e.column.id]||(n.filterPanels.value[e.column.id]=t);const l=lt(!1),a=lt(null),o=ca((()=>e.column&&e.column.filters)),r=ca({get:()=>(e.column.filteredValue||[])[0],set:e=>{i.value&&(null!=e?i.value.splice(0,1,e):i.value.splice(0,1))}}),i=ca({get:()=>e.column&&e.column.filteredValue||[],set(t){e.column&&e.upDataColumn("filteredValue",t)}}),s=ca((()=>!e.column||e.column.filterMultiple)),u=()=>{l.value=!1},c=t=>{e.store.commit("filterChange",{column:e.column,values:t}),e.store.updateAllSelected()};Sn(l,(t=>{e.column&&e.upDataColumn("filterOpened",t)}),{immediate:!0});const d=ca((()=>{var e;return null===(e=a.value)||void 0===e?void 0:e.popperRef}));return{tooltipVisible:l,multiple:s,filteredValue:i,filterValue:r,filters:o,handleConfirm:()=>{c(i.value),u()},handleReset:()=>{i.value=[],c(i.value),u()},handleSelect:e=>{r.value=e,c(null!=e?i.value:[]),u()},isActive:e=>e.value===r.value,t:ak,showFilterPanel:e=>{e.stopPropagation(),l.value=!l.value},hideFilterPanel:()=>{l.value=!1},popperPaneRef:d,tooltip:a}}});const fT={key:0},hT={class:"el-table-filter__content"},vT={class:"el-table-filter__bottom"},mT={key:1,class:"el-table-filter__list"};function gT(e){const t=na();vn((()=>{n.value.addObserver(t)})),mn((()=>{l(n.value),a(n.value)})),yn((()=>{l(n.value),a(n.value)})),_n((()=>{n.value.removeObserver(t)}));const n=ca((()=>{const t=e.layout;if(!t)throw new Error("Can not find table layout.");return t})),l=t=>{var n;const l=(null===(n=e.vnode.el)||void 0===n?void 0:n.querySelectorAll("colgroup > col"))||[];if(!l.length)return;const a=t.getFlattenColumns(),o={};a.forEach((e=>{o[e.id]=e}));for(let e=0,r=l.length;e<r;e++){const t=l[e],n=t.getAttribute("name"),a=o[n];a&&t.setAttribute("width",a.realWidth||a.width)}},a=t=>{const n=e.vnode.el.querySelectorAll("colgroup > col[name=gutter]");for(let e=0,a=n.length;e<a;e++)n[e].setAttribute("width",t.scrollY.value?t.gutterWidth:"0");const l=e.vnode.el.querySelectorAll("th.gutter");for(let e=0,a=l.length;e<a;e++){const n=l[e];n.style.width=t.scrollY.value?t.gutterWidth+"px":"0",n.style.display=t.scrollY.value?"":"none"}};return{tableLayout:n.value,onColumnsChange:l,onScrollableChange:a}}pT.render=function(e,t,n,l,a,o){const r=dl("el-checkbox"),i=dl("el-checkbox-group"),s=dl("el-scrollbar"),u=dl("el-popper"),d=hl("click-outside");return wl(),Sl(u,{ref:"tooltip",visible:e.tooltipVisible,"onUpdate:visible":t[6]||(t[6]=t=>e.tooltipVisible=t),offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,effect:"light",pure:"","manual-mode":"","popper-class":"el-table-filter","append-to-body":""},{default:Zt((()=>[e.multiple?(wl(),Sl("div",fT,[Ll("div",hT,[Ll(s,{"wrap-class":"el-table-filter__wrap"},{default:Zt((()=>[Ll(i,{modelValue:e.filteredValue,"onUpdate:modelValue":t[1]||(t[1]=t=>e.filteredValue=t),class:"el-table-filter__checkbox-group"},{default:Zt((()=>[(wl(!0),Sl(gl,null,pa(e.filters,(e=>(wl(),Sl(r,{key:e.value,label:e.value},{default:Zt((()=>[Al(c(e.text),1)])),_:2},1032,["label"])))),128))])),_:1},8,["modelValue"])])),_:1})]),Ll("div",vT,[Ll("button",{class:{"is-disabled":0===e.filteredValue.length},disabled:0===e.filteredValue.length,type:"",onClick:t[2]||(t[2]=(...t)=>e.handleConfirm&&e.handleConfirm(...t))},c(e.t("el.table.confirmFilter")),11,["disabled"]),Ll("button",{type:"",onClick:t[3]||(t[3]=(...t)=>e.handleReset&&e.handleReset(...t))},c(e.t("el.table.resetFilter")),1)])])):(wl(),Sl("ul",mT,[Ll("li",{class:[{"is-active":void 0===e.filterValue||null===e.filterValue},"el-table-filter__list-item"],onClick:t[4]||(t[4]=t=>e.handleSelect(null))},c(e.t("el.table.clearFilter")),3),(wl(!0),Sl(gl,null,pa(e.filters,(t=>(wl(),Sl("li",{key:t.value,class:[{"is-active":e.isActive(t)},"el-table-filter__list-item"],label:t.value,onClick:n=>e.handleSelect(t.value)},c(t.text),11,["label","onClick"])))),128))]))])),trigger:Zt((()=>[Un(Ll("span",{class:"el-table__column-filter-trigger el-none-outline",onClick:t[5]||(t[5]=(...t)=>e.showFilterPanel&&e.showFilterPanel(...t))},[Ll("i",{class:["el-icon-arrow-down",e.column.filterOpened?"el-icon-arrow-up":""]},null,2)],512),[[d,e.hideFilterPanel,e.popperPaneRef]])])),_:1},8,["visible","placement"])},pT.__file="packages/table/src/filter-panel.vue";const yT=e=>{const t=[];return e.forEach((e=>{e.children?(t.push(e),t.push.apply(t,yT(e.children))):t.push(e)})),t};function bT(){return da("col",{name:"gutter"})}function _T(e,t=!1){return da("colgroup",{},[...e.map((e=>da("col",{name:e.id,key:e.id}))),t&&bT()])}var kT=Qn({name:"ElTableHeader",components:{ElCheckbox:dx},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const n=na(),l=n.parent,a=l.store.states,o=lt({}),{tableLayout:r,onColumnsChange:i,onScrollableChange:s}=gT(l),u=ca((()=>!e.fixed&&r.gutterWidth));mn((()=>{Dt((()=>{const{prop:t,order:n}=e.defaultSort;l.store.commit("sort",{prop:t,order:n,init:!0})}))}));const{handleHeaderClick:c,handleHeaderContextMenu:d,handleMouseDown:p,handleMouseMove:f,handleMouseOut:h,handleSortClick:v,handleFilterClick:m}=function(e,t){const n=na(),l=n.parent,a=e=>{e.stopPropagation()},o=lt(null),r=lt(!1),i=lt({}),s=(t,n,a)=>{t.stopPropagation();const o=n.order===a?null:a||(({order:e,sortOrders:t})=>{if(""===e)return t[0];const n=t.indexOf(e||null);return t[n>t.length-2?0:n+1]})(n);let r=t.target;for(;r&&"TH"!==r.tagName;)r=r.parentNode;if(r&&"TH"===r.tagName&&Ry(r,"noclick"))return void Wy(r,"noclick");if(!n.sortable)return;const i=e.store.states;let s,u=i.sortProp.value;const c=i.sortingColumn.value;(c!==n||c===n&&null===c.order)&&(c&&(c.order=null),i.sortingColumn.value=n,u=n.property),s=n.order=o||null,i.sortProp.value=u,i.sortOrder.value=s,l.store.commit("changeSortCondition")};return{handleHeaderClick:(e,t)=>{!t.filters&&t.sortable?s(e,t,!1):t.filterable&&!t.sortable&&a(e),l.emit("header-click",t,e)},handleHeaderContextMenu:(e,t)=>{l.emit("header-contextmenu",t,e)},handleMouseDown:(a,s)=>{if(!oy&&!(s.children&&s.children.length>0)&&o.value&&e.border){r.value=!0;const u=l;t("set-drag-visible",!0);const c=u.vnode.el.getBoundingClientRect().left,d=n.vnode.el.querySelector("th."+s.id),p=d.getBoundingClientRect(),f=p.left-c+30;Hy(d,"noclick"),i.value={startMouseLeft:a.clientX,startLeft:p.right-c,startColumnLeft:p.left-c,tableLeft:c};const h=u.refs.resizeProxy;h.style.left=i.value.startLeft+"px",document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const v=e=>{const t=e.clientX-i.value.startMouseLeft,n=i.value.startLeft+t;h.style.left=Math.max(f,n)+"px"},m=()=>{if(r.value){const{startColumnLeft:n,startLeft:l}=i.value,c=parseInt(h.style.left,10)-n;s.width=s.realWidth=c,u.emit("header-dragend",s.width,l-n,s,a),e.store.scheduleLayout(!1,!0),document.body.style.cursor="",r.value=!1,o.value=null,i.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",v),document.removeEventListener("mouseup",m),document.onselectstart=null,document.ondragstart=null,setTimeout((function(){Wy(d,"noclick")}),0)};document.addEventListener("mousemove",v),document.addEventListener("mouseup",m)}},handleMouseMove:(t,n)=>{if(n.children&&n.children.length>0)return;let l=t.target;for(;l&&"TH"!==l.tagName;)l=l.parentNode;if(n&&n.resizable&&!r.value&&e.border){const e=l.getBoundingClientRect(),a=document.body.style;e.width>12&&e.right-t.pageX<8?(a.cursor="col-resize",Ry(l,"is-sortable")&&(l.style.cursor="col-resize"),o.value=n):r.value||(a.cursor="",Ry(l,"is-sortable")&&(l.style.cursor="pointer"),o.value=null)}},handleMouseOut:()=>{oy||(document.body.style.cursor="")},handleSortClick:s,handleFilterClick:a}}(e,t),{getHeaderRowStyle:g,getHeaderRowClass:y,getHeaderCellStyle:b,getHeaderCellClass:_}=function(e){const t=na().parent,n=t.store.states;return{getHeaderRowStyle:e=>{const n=t.props.headerRowStyle;return"function"==typeof n?n.call(null,{rowIndex:e}):n},getHeaderRowClass:e=>{const n=[],l=t.props.headerRowClassName;return"string"==typeof l?n.push(l):"function"==typeof l&&n.push(l.call(null,{rowIndex:e})),n.join(" ")},getHeaderCellStyle:(e,n,l,a)=>{const o=t.props.headerCellStyle;return"function"==typeof o?o.call(null,{rowIndex:e,columnIndex:n,row:l,column:a}):o},getHeaderCellClass:(l,a,o,r)=>{const i=[r.id,r.order,r.headerAlign,r.className,r.labelClassName];0===l&&((t,l)=>{let a=0;for(let e=0;e<t;e++)a+=l[e].colSpan;const o=a+l[t].colSpan-1;return"left"===e.fixed?o>=n.fixedLeafColumnsLength.value:"right"===e.fixed?a<n.columns.value.length-n.rightFixedLeafColumnsLength.value:o<n.fixedLeafColumnsLength.value||a>=n.columns.value.length-n.rightFixedLeafColumnsLength.value})(a,o)&&i.push("is-hidden"),r.children||i.push("is-leaf"),r.sortable&&i.push("is-sortable");const s=t.props.headerCellClassName;return"string"==typeof s?i.push(s):"function"==typeof s&&i.push(s.call(null,{rowIndex:l,columnIndex:a,row:o,column:r})),i.join(" ")}}}(e),{isGroup:k,toggleAllSelection:x,columnRows:w}=function(e){const t=na().parent,n=ca((()=>(e=>{let t=1;const n=(e,l)=>{if(l&&(e.level=l.level+1,t<e.level&&(t=e.level)),e.children){let t=0;e.children.forEach((l=>{n(l,e),t+=l.colSpan})),e.colSpan=t}else e.colSpan=1};e.forEach((e=>{e.level=1,n(e,void 0)}));const l=[];for(let a=0;a<t;a++)l.push([]);return yT(e).forEach((e=>{e.children?e.rowSpan=1:e.rowSpan=t-e.level+1,l[e.level-1].push(e)})),l})(e.store.states.originColumns.value)));return{isGroup:ca((()=>{const e=n.value.length>1;return e&&(t.state.isGroup.value=!0),e})),toggleAllSelection:e=>{e.stopPropagation(),t.store.commit("toggleAllSelection")},columnRows:n}}(e);return n.state={onColumnsChange:i,onScrollableChange:s},n.filterPanels=o,{columns:a.columns,filterPanels:o,hasGutter:u,onColumnsChange:i,onScrollableChange:s,columnRows:w,getHeaderRowClass:y,getHeaderRowStyle:g,getHeaderCellClass:_,getHeaderCellStyle:b,handleHeaderClick:c,handleHeaderContextMenu:d,handleMouseDown:p,handleMouseMove:f,handleMouseOut:h,handleSortClick:v,handleFilterClick:m,isGroup:k,toggleAllSelection:x}},render(){return da("table",{border:"0",cellpadding:"0",cellspacing:"0",class:"el-table__header"},[_T(this.columns,this.hasGutter),da("thead",{class:{"is-group":this.isGroup,"has-gutter":this.hasGutter}},this.columnRows.map(((e,t)=>da("tr",{class:this.getHeaderRowClass(t),key:t,style:this.getHeaderRowStyle(t)},e.map(((n,l)=>da("th",{class:this.getHeaderCellClass(t,l,e,n),colspan:n.colSpan,key:n.id+"-thead",rowSpan:n.rowSpan,style:this.getHeaderCellStyle(t,l,e,n),onClick:e=>this.handleHeaderClick(e,n),onContextmenu:e=>this.handleHeaderContextMenu(e,n),onMousedown:e=>this.handleMouseDown(e,n),onMousemove:e=>this.handleMouseMove(e,n),onMouseout:this.handleMouseOut},[da("div",{class:["cell",n.filteredValue&&n.filteredValue.length>0?"highlight":"",n.labelClassName]},[n.renderHeader?n.renderHeader({column:n,$index:l,store:this.store,_self:this.$parent}):n.label,n.sortable&&da("span",{onClick:e=>this.handleSortClick(e,n),class:"caret-wrapper"},[da("i",{onClick:e=>this.handleSortClick(e,n,"ascending"),class:"sort-caret ascending"}),da("i",{onClick:e=>this.handleSortClick(e,n,"descending"),class:"sort-caret descending"})]),n.filterable&&da(pT,{store:this.$parent.store,placement:n.filterPlacement||"bottom-start",column:n,upDataColumn:(e,t)=>{n[e]=t}})])])))))))])}});function xT(e){const t=na().parent,{handleDoubleClick:n,handleClick:l,handleContextMenu:a,handleMouseEnter:o,handleMouseLeave:r,handleCellMouseEnter:i,handleCellMouseLeave:s,tooltipContent:u,tooltipTrigger:c}=function(e){const t=na().parent,n=lt(""),l=lt(da("div")),a=(n,l,a)=>{const o=t,r=GO(n);let i;r&&(i=JO({columns:e.store.states.columns.value},r),i&&o.emit("cell-"+a,l,i,r,n)),o.emit("row-"+a,l,i,n)};return{handleDoubleClick:(e,t)=>{a(e,t,"dblclick")},handleClick:(t,n)=>{e.store.commit("setCurrentRow",n),a(t,n,"click")},handleContextMenu:(e,t)=>{a(e,t,"contextmenu")},handleMouseEnter:uu((function(t){e.store.commit("setHoverRow",t)}),30),handleMouseLeave:uu((function(){e.store.commit("setHoverRow",null)}),30),handleCellMouseEnter:(n,l)=>{const a=t,o=GO(n);if(o){const t=JO({columns:e.store.states.columns.value},o),r=a.hoverState={cell:o,column:t,row:l};a.emit("cell-mouse-enter",r.row,r.column,r.cell,n)}const r=n.target.querySelector(".cell");if(!Ry(r,"el-tooltip")||!r.childNodes.length)return;const i=document.createRange();i.setStart(r,0),i.setEnd(r,r.childNodes.length),(i.getBoundingClientRect().width+((parseInt(Yy(r,"paddingLeft"),10)||0)+(parseInt(Yy(r,"paddingRight"),10)||0))>r.offsetWidth||r.scrollWidth>r.offsetWidth)&&function(e,t,n,l){function a(){o&&o.update()}oT=function t(){try{o&&o.destroy(),r&&document.body.removeChild(r),jy(e,"mouseenter",a),jy(e,"mouseleave",t)}catch(n){}};let o=null;const r=function(){const e="light"===l,n=document.createElement("div");return n.className="el-popper "+(e?"is-light":"is-dark"),n.innerHTML=t,n.style.zIndex=String(y_.nextZIndex()),document.body.appendChild(n),n}(),i=function(){const e=document.createElement("div");return e.className="el-popper__arrow",e.style.bottom="-4px",e}();r.appendChild(i),o=Cc(e,r,Object.assign({modifiers:[{name:"offset",options:{offset:[0,8]}},{name:"arrow",options:{element:i,padding:10}}]},{placement:"top",strategy:"fixed"})),zy(e,"mouseenter",a),zy(e,"mouseleave",oT)}(o,o.innerText||o.textContent,0,l.tooltipEffect)},handleCellMouseLeave:e=>{if(!GO(e))return;const n=t.hoverState;t.emit("cell-mouse-leave",null==n?void 0:n.row,null==n?void 0:n.column,null==n?void 0:n.cell,e)},tooltipContent:n,tooltipTrigger:l}}(e),{getRowStyle:d,getRowClass:p,getCellStyle:f,getCellClass:h,getSpan:v,getColspanRealWidth:m}=function(e){const t=na().parent,n=t=>"left"===e.fixed?t>=e.store.states.fixedLeafColumnsLength.value:"right"===e.fixed?t<e.store.states.columns.value.length-e.store.states.rightFixedLeafColumnsLength.value:t<e.store.states.fixedLeafColumnsLength.value||t>=e.store.states.columns.value.length-e.store.states.rightFixedLeafColumnsLength.value;return{getRowStyle:(e,n)=>{const l=t.props.rowStyle;return"function"==typeof l?l.call(null,{row:e,rowIndex:n}):l||null},getRowClass:(n,l)=>{const a=["el-table__row"];t.props.highlightCurrentRow&&n===e.store.states.currentRow.value&&a.push("current-row"),e.stripe&&l%2==1&&a.push("el-table__row--striped");const o=t.props.rowClassName;return"string"==typeof o?a.push(o):"function"==typeof o&&a.push(o.call(null,{row:n,rowIndex:l})),e.store.states.expandRows.value.indexOf(n)>-1&&a.push("expanded"),a},getCellStyle:(e,n,l,a)=>{const o=t.props.cellStyle;return"function"==typeof o?o.call(null,{rowIndex:e,columnIndex:n,row:l,column:a}):o},getCellClass:(e,l,a,o)=>{const r=[o.id,o.align,o.className];n(l)&&r.push("is-hidden");const i=t.props.cellClassName;return"string"==typeof i?r.push(i):"function"==typeof i&&r.push(i.call(null,{rowIndex:e,columnIndex:l,row:a,column:o})),r.join(" ")},getSpan:(e,n,l,a)=>{let o=1,r=1;const i=t.props.spanMethod;if("function"==typeof i){const t=i({row:e,column:n,rowIndex:l,columnIndex:a});Array.isArray(t)?(o=t[0],r=t[1]):"object"==typeof t&&(o=t.rowspan,r=t.colspan)}return{rowspan:o,colspan:r}},getColspanRealWidth:(e,t,n)=>t<1?e[n].realWidth:e.map((({realWidth:e,width:t})=>e||t)).slice(n,n+t).reduce(((e,t)=>e+t),-1),isColumnHidden:n}}(e),g=ca((()=>{return t=({type:e})=>"default"===e,e.store.states.columns.value.findIndex(t);var t})),y=(e,n)=>{const l=t.props.rowKey;return l?QO(e,l):n},b=(u,c,b)=>{const{tooltipEffect:_,store:k}=e,{indent:x,columns:w}=k.states,C=p(u,c);let S=!0;return b&&(C.push("el-table__row--level-"+b.level),S=b.display),da("tr",{style:[S?null:{display:"none"},d(u,c)],class:C,key:y(u,c),onDblclick:e=>n(e,u),onClick:e=>l(e,u),onContextmenu:e=>a(e,u),onMouseenter:()=>o(c),onMouseleave:r},w.value.map(((n,l)=>{const{rowspan:a,colspan:o}=v(u,n,c,l);if(!a||!o)return null;const r=Object.assign({},n);r.realWidth=m(w.value,o,l);const d={store:e.store,_self:e.context||t,column:r,row:u,$index:c};l===g.value&&b&&(d.treeNode={indent:b.level*x.value,level:b.level},"boolean"==typeof b.expanded&&(d.treeNode.expanded=b.expanded,"loading"in b&&(d.treeNode.loading=b.loading),"noLazyChildren"in b&&(d.treeNode.noLazyChildren=b.noLazyChildren)));const p=`${c},${l}`;return da("td",{style:f(c,l,u,n),class:h(c,l,u,n),key:p,rowspan:a,colspan:o,onMouseenter:e=>i(e,Object.assign(Object.assign({},u),{tooltipEffect:_})),onMouseleave:s},[n.renderCell(d)])})))};return{wrappedRowRender:(n,l)=>{const a=e.store,{isRowExpanded:o,assertRowKey:r}=a,{treeData:i,lazyTreeNodeMap:s,childrenColumnName:u,rowKey:c}=a.states;if(a.states.columns.value.some((({type:e})=>"expand"===e))&&o(n)){const e=t.renderExpanded,o=b(n,l,void 0);return e?[o,da("tr",{key:"expanded-row__"+o.key},[da("td",{colspan:a.states.columns.value.length,class:"el-table__expanded-cell"},[e({row:n,$index:l,store:a})])])]:(console.error("[Element Error]renderExpanded is required."),o)}if(Object.keys(i.value).length){r();const e=QO(n,c.value);let t=i.value[e],a=null;t&&(a={expanded:t.expanded,level:t.level,display:!0},"boolean"==typeof t.lazy&&("boolean"==typeof t.loaded&&t.loaded&&(a.noLazyChildren=!(t.children&&t.children.length)),a.loading=t.loading));const o=[b(n,l,a)];if(t){let a=0;const r=(e,n)=>{e&&e.length&&n&&e.forEach((e=>{const d={display:n.display&&n.expanded,level:n.level+1,expanded:!1,noLazyChildren:!1,loading:!1},p=QO(e,c.value);if(null==p)throw new Error("for nested data item, row-key is required.");if(t=Object.assign({},i.value[p]),t&&(d.expanded=t.expanded,t.level=t.level||d.level,t.display=!(!t.expanded||!d.display),"boolean"==typeof t.lazy&&("boolean"==typeof t.loaded&&t.loaded&&(d.noLazyChildren=!(t.children&&t.children.length)),d.loading=t.loading)),a++,o.push(b(e,l+a,d)),t){const n=s.value[p]||e[u.value];r(n,t)}}))};t.display=!0;const d=s.value[e]||n[u.value];r(d,t)}return o}return b(n,l,void 0)},tooltipContent:u,tooltipTrigger:c}}var wT=Qn({name:"ElTableBody",props:{store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean},setup(e){const t=na(),n=t.parent,{wrappedRowRender:l,tooltipContent:a,tooltipTrigger:o}=xT(e),{onColumnsChange:r,onScrollableChange:i}=gT(n);return Sn(e.store.states.hoverRow,((n,l)=>{if(!e.store.states.isComplex.value||oy)return;let a=window.requestAnimationFrame;a||(a=e=>window.setTimeout(e,16)),a((()=>{const e=t.vnode.el.querySelectorAll(".el-table__row"),a=e[l],o=e[n];a&&Wy(a,"hover-row"),o&&Hy(o,"hover-row")}))})),_n((()=>{null==oT||oT()})),yn((()=>{null==oT||oT()})),{onColumnsChange:r,onScrollableChange:i,wrappedRowRender:l,tooltipContent:a,tooltipTrigger:o}},render(){const e=this.store.states.data.value||[];return da("table",{class:"el-table__body",cellspacing:"0",cellpadding:"0",border:"0"},[_T(this.store.states.columns.value),da("tbody",{},[e.reduce(((e,t)=>e.concat(this.wrappedRowRender(t,e.length))),[])])])}});var CT=Qn({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{hasGutter:t,getRowClasses:n,columns:l}=function(e){const t=na().parent,n=t.store,{leftFixedLeafCount:l,rightFixedLeafCount:a,columnsCount:o,leftFixedCount:r,rightFixedCount:i,columns:s}=function(){const e=na().parent.store;return{leftFixedLeafCount:ca((()=>e.states.fixedLeafColumnsLength.value)),rightFixedLeafCount:ca((()=>e.states.rightFixedColumns.value.length)),columnsCount:ca((()=>e.states.columns.value.length)),leftFixedCount:ca((()=>e.states.fixedColumns.value.length)),rightFixedCount:ca((()=>e.states.rightFixedColumns.value.length)),columns:e.states.columns}}();return{hasGutter:ca((()=>!e.fixed&&t.layout.gutterWidth)),getRowClasses:(t,s)=>{const u=[t.id,t.align,t.labelClassName];return t.className&&u.push(t.className),((t,n,s)=>{if(e.fixed||"left"===e.fixed)return t>=l.value;if("right"===e.fixed){let e=0;for(let l=0;l<t;l++)e+=n[l].colSpan;return e<o.value-a.value}return!(e.fixed||!s.fixed)||t<r.value||t>=o.value-i.value})(s,n.states.columns.value,t)&&u.push("is-hidden"),t.children||u.push("is-leaf"),u},columns:s}}(e);return{getRowClasses:n,hasGutter:t,columns:l}},render(){let e=[];return this.summaryMethod?e=this.summaryMethod({columns:this.columns,data:this.store.states.data.value}):this.columns.forEach(((t,n)=>{if(0===n)return void(e[n]=this.sumText);const l=this.store.states.data.value.map((e=>Number(e[t.property]))),a=[];let o=!0;l.forEach((e=>{if(!isNaN(e)){o=!1;const t=(""+e).split(".")[1];a.push(t?t.length:0)}}));const r=Math.max.apply(null,a);e[n]=o?"":l.reduce(((e,t)=>{const n=Number(t);return isNaN(n)?e:parseFloat((e+t).toFixed(Math.min(r,20)))}),0)})),da("table",{class:"el-table__footer",cellspacing:"0",cellpadding:"0",border:"0"},[_T(this.columns,this.hasGutter),da("tbody",{class:[{"has-gutter":this.hasGutter}]},[da("tr",{},[...this.columns.map(((t,n)=>da("td",{key:n,colspan:t.colSpan,rowspan:t.rowSpan,class:this.getRowClasses(t,n)},[da("div",{class:["cell",t.labelClassName]},[e[n]])]))),this.hasGutter&&bT()])])])}});let ST=1;var ET=Qn({name:"ElTable",directives:{Mousewheel:Lb},components:{TableHeader:kT,TableBody:wT,TableFooter:CT},props:{data:{type:Array,default:function(){return[]}},size:String,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function},emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){let t=na();const n=function(e,t={}){if(!e)throw new Error("Table is required.");const n=cT();return n.toggleAllSelection=uu(n._toggleAllSelection,10),Object.keys(t).forEach((e=>{n.states[e].value=t[e]})),n}(t,{rowKey:e.rowKey,defaultExpandAll:e.defaultExpandAll,selectOnIndeterminate:e.selectOnIndeterminate,indent:e.indent,lazy:e.lazy,lazyColumnIdentifier:e.treeProps.hasChildren||"hasChildren",childrenColumnName:e.treeProps.children||"children",data:e.data});t.store=n;const l=new dT({store:t.store,table:t,fit:e.fit,showHeader:e.showHeader});t.layout=l;const{setCurrentRow:a,toggleRowSelection:o,clearSelection:r,clearFilter:i,toggleAllSelection:s,toggleRowExpansion:u,clearSort:c,sort:d}=function(e){return{setCurrentRow:t=>{e.commit("setCurrentRow",t)},toggleRowSelection:(t,n)=>{e.toggleRowSelection(t,n,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:t=>{e.clearFilter(t)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(t,n)=>{e.toggleRowExpansionAdapter(t,n)},clearSort:()=>{e.clearSort()},sort:(t,n)=>{e.commit("sort",{prop:t,order:n})}}}(n),{isHidden:p,renderExpanded:f,setDragVisible:h,isGroup:v,handleMouseLeave:m,handleHeaderFooterMousewheel:g,tableSize:y,bodyHeight:b,emptyBlockStyle:_,handleFixedMousewheel:k,fixedHeight:x,fixedBodyHeight:w,resizeProxyVisible:C,bodyWidth:S,resizeState:E,doLayout:M}=function(e,t,n,l){const a=Ay(),o=lt(!1),r=lt(null),i=lt(!1),s=lt({width:null,height:null}),u=lt(!1);wn((()=>{t.setHeight(e.height)})),wn((()=>{t.setMaxHeight(e.maxHeight)})),wn((()=>{n.states.rowKey.value&&n.setCurrentRowKey(e.currentRowKey)})),Sn((()=>e.data),(()=>{l.store.commit("setData",e.data)}),{immediate:!0,deep:!0}),wn((()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)}));const c=ca((()=>e.height||e.maxHeight||n.states.fixedColumns.value.length>0||n.states.rightFixedColumns.value.length>0)),d=()=>{c.value&&t.updateElsHeight(),t.updateColumnsWidth(),f()};mn((()=>{p("is-scrolling-left"),h(),n.updateColumns(),d(),s.value={width:l.vnode.el.offsetWidth,height:l.vnode.el.offsetHeight},n.states.columns.value.forEach((e=>{e.filteredValue&&e.filteredValue.length&&l.store.commit("filterChange",{column:e,values:e.filteredValue,silent:!0})})),l.$ready=!0}));const p=e=>{const{bodyWrapper:n}=l.refs;((e,n)=>{if(!e)return;const l=Array.from(e.classList).filter((e=>!e.startsWith("is-scrolling-")));l.push(t.scrollX.value?n:"is-scrolling-none"),e.className=l.join(" ")})(n,e)},f=zc((function(){if(!l.refs.bodyWrapper)return;const{scrollLeft:e,scrollTop:t,offsetWidth:n,scrollWidth:a}=l.refs.bodyWrapper,{headerWrapper:o,footerWrapper:r,fixedBodyWrapper:i,rightFixedBodyWrapper:s}=l.refs;o&&(o.scrollLeft=e),r&&(r.scrollLeft=e),i&&(i.scrollTop=t),s&&(s.scrollTop=t),p(e>=a-n-1?"is-scrolling-right":0===e?"is-scrolling-left":"is-scrolling-middle")}),10),h=()=>{window.addEventListener("resize",d),l.refs.bodyWrapper.addEventListener("scroll",f,{passive:!0}),e.fit&&Zy(l.vnode.el,m)};_n((()=>{v()}));const v=()=>{var t;null===(t=l.refs.bodyWrapper)||void 0===t||t.removeEventListener("scroll",f,!0),window.removeEventListener("resize",d),e.fit&&Jy(l.vnode.el,m)},m=()=>{if(!l.$ready)return;let t=!1;const n=l.vnode.el,{width:a,height:o}=s.value,r=n.offsetWidth;a!==r&&(t=!0);const i=n.offsetHeight;(e.height||c.value)&&o!==i&&(t=!0),t&&(s.value={width:r,height:i},d())},g=ca((()=>e.size||a.size)),y=ca((()=>{const{bodyWidth:e,scrollY:n,gutterWidth:l}=t;return e.value?e.value-(n.value?l:0)+"px":""}));return{isHidden:o,renderExpanded:r,setDragVisible:e=>{i.value=e},isGroup:u,handleMouseLeave:()=>{l.store.commit("setHoverRow",null),l.hoverState&&(l.hoverState=null)},handleHeaderFooterMousewheel:(e,t)=>{const{pixelX:n,pixelY:a}=t;Math.abs(n)>=Math.abs(a)&&(l.refs.bodyWrapper.scrollLeft+=t.pixelX/5)},tableSize:g,bodyHeight:ca((()=>{const n=t.headerHeight.value||0,l=t.bodyHeight.value,a=t.footerHeight.value||0;if(e.height)return{height:l?l+"px":""};if(e.maxHeight){const t=nT(e.maxHeight);if("number"==typeof t)return{"max-height":t-a-(e.showHeader?n:0)+"px"}}return{}})),emptyBlockStyle:ca((()=>{if(e.data&&e.data.length)return null;let n="100%";return t.appendHeight.value&&(n=`calc(100% - ${t.appendHeight.value}px)`),{width:y.value,height:n}})),handleFixedMousewheel:(e,t)=>{const n=l.refs.bodyWrapper;if(Math.abs(t.spinY)>0){const l=n.scrollTop;t.pixelY<0&&0!==l&&e.preventDefault(),t.pixelY>0&&n.scrollHeight-n.clientHeight>l&&e.preventDefault(),n.scrollTop+=Math.ceil(t.pixelY/5)}else n.scrollLeft+=Math.ceil(t.pixelX/5)},fixedHeight:ca((()=>e.maxHeight?e.showSummary?{bottom:0}:{bottom:t.scrollX.value&&e.data.length?t.gutterWidth+"px":""}:e.showSummary?{height:t.tableHeight.value?t.tableHeight.value+"px":""}:{height:t.viewportHeight.value?t.viewportHeight.value+"px":""})),fixedBodyHeight:ca((()=>{if(e.height)return{height:t.fixedBodyHeight.value?t.fixedBodyHeight.value+"px":""};if(e.maxHeight){let n=nT(e.maxHeight);if("number"==typeof n)return n=t.scrollX.value?n-t.gutterWidth:n,e.showHeader&&(n-=t.headerHeight.value),n-=t.footerHeight.value,{"max-height":n+"px"}}return{}})),resizeProxyVisible:i,bodyWidth:y,resizeState:s,doLayout:d}}(e,l,n,t),O=uu((()=>M()),50),T="el-table_"+ST++;return t.tableId=T,t.state={isGroup:v,resizeState:E,doLayout:M,debouncedUpdateLayout:O},{layout:l,store:n,handleHeaderFooterMousewheel:g,handleMouseLeave:m,tableId:T,tableSize:y,isHidden:p,renderExpanded:f,resizeProxyVisible:C,resizeState:E,isGroup:v,bodyWidth:S,bodyHeight:b,emptyBlockStyle:_,debouncedUpdateLayout:O,handleFixedMousewheel:k,fixedHeight:x,fixedBodyHeight:w,setCurrentRow:a,toggleRowSelection:o,clearSelection:r,clearFilter:i,toggleAllSelection:s,toggleRowExpansion:u,clearSort:c,doLayout:M,sort:d,t:ak,setDragVisible:h,context:t}}});const MT={ref:"hiddenColumns",class:"hidden-columns"},OT={key:0,ref:"headerWrapper",class:"el-table__header-wrapper"},TT={class:"el-table__empty-text"},DT={key:1,ref:"appendWrapper",class:"el-table__append-wrapper"},LT={key:1,ref:"footerWrapper",class:"el-table__footer-wrapper"},NT={key:0,ref:"fixedHeaderWrapper",class:"el-table__fixed-header-wrapper"},AT={key:1,ref:"fixedFooterWrapper",class:"el-table__fixed-footer-wrapper"},PT={key:0,ref:"rightFixedHeaderWrapper",class:"el-table__fixed-header-wrapper"},IT={key:1,ref:"rightFixedFooterWrapper",class:"el-table__fixed-footer-wrapper"},FT={ref:"resizeProxy",class:"el-table__column-resize-proxy"};ET.render=function(e,t,n,l,a,o){const r=dl("table-header"),i=dl("table-body"),s=dl("table-footer"),u=hl("mousewheel");return wl(),Sl("div",{class:[[{"el-table--fit":e.fit,"el-table--striped":e.stripe,"el-table--border":e.border||e.isGroup,"el-table--hidden":e.isHidden,"el-table--group":e.isGroup,"el-table--fluid-height":e.maxHeight,"el-table--scrollable-x":e.layout.scrollX.value,"el-table--scrollable-y":e.layout.scrollY.value,"el-table--enable-row-hover":!e.store.states.isComplex.value,"el-table--enable-row-transition":0!==(e.store.states.data.value||[]).length&&(e.store.states.data.value||[]).length<100},e.tableSize?"el-table--"+e.tableSize:""],"el-table"],onMouseleave:t[1]||(t[1]=t=>e.handleMouseLeave())},[Ll("div",MT,[Ht(e.$slots,"default")],512),e.showHeader?Un((wl(),Sl("div",OT,[Ll(r,{ref:"tableHeader",border:e.border,"default-sort":e.defaultSort,store:e.store,style:{width:e.layout.bodyWidth.value?e.layout.bodyWidth.value+"px":""},onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","style","onSetDragVisible"])],512)),[[u,e.handleHeaderFooterMousewheel]]):Pl("v-if",!0),Ll("div",{ref:"bodyWrapper",style:[e.bodyHeight],class:"el-table__body-wrapper"},[Ll(i,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"row-style":e.rowStyle,store:e.store,stripe:e.stripe,style:{width:e.bodyWidth}},null,8,["context","highlight","row-class-name","tooltip-effect","row-style","store","stripe","style"]),e.data&&0!==e.data.length?Pl("v-if",!0):(wl(),Sl("div",{key:0,ref:"emptyBlock",style:e.emptyBlockStyle,class:"el-table__empty-block"},[Ll("span",TT,[Ht(e.$slots,"empty",{},(()=>[Al(c(e.emptyText||e.t("el.table.emptyText")),1)]))])],4)),e.$slots.append?(wl(),Sl("div",DT,[Ht(e.$slots,"append")],512)):Pl("v-if",!0)],4),e.showSummary?Un((wl(),Sl("div",LT,[Ll(s,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:{width:e.layout.bodyWidth.value?e.layout.bodyWidth.value+"px":""},"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],512)),[[mo,e.data&&e.data.length>0],[u,e.handleHeaderFooterMousewheel]]):Pl("v-if",!0),e.store.states.fixedColumns.value.length>0?Un((wl(),Sl("div",{key:2,ref:"fixedWrapper",style:[{width:e.layout.fixedWidth.value?e.layout.fixedWidth.value+"px":""},e.fixedHeight],class:"el-table__fixed"},[e.showHeader?(wl(),Sl("div",NT,[Ll(r,{ref:"fixedTableHeader",border:e.border,store:e.store,style:{width:e.bodyWidth},fixed:"left",onSetDragVisible:e.setDragVisible},null,8,["border","store","style","onSetDragVisible"])],512)):Pl("v-if",!0),Ll("div",{ref:"fixedBodyWrapper",style:[{top:e.layout.headerHeight.value+"px"},e.fixedBodyHeight],class:"el-table__fixed-body-wrapper"},[Ll(i,{highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"row-style":e.rowStyle,store:e.store,stripe:e.stripe,style:{width:e.bodyWidth},fixed:"left"},null,8,["highlight","row-class-name","tooltip-effect","row-style","store","stripe","style"]),e.$slots.append?(wl(),Sl("div",{key:0,style:{height:e.layout.appendHeight.value+"px"},class:"el-table__append-gutter"},null,4)):Pl("v-if",!0)],4),e.showSummary?Un((wl(),Sl("div",AT,[Ll(s,{border:e.border,store:e.store,style:{width:e.bodyWidth},"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,fixed:"left"},null,8,["border","store","style","sum-text","summary-method"])],512)),[[mo,e.data&&e.data.length>0]]):Pl("v-if",!0)],4)),[[u,e.handleFixedMousewheel]]):Pl("v-if",!0),e.store.states.rightFixedColumns.value.length>0?Un((wl(),Sl("div",{key:3,ref:"rightFixedWrapper",style:[{width:e.layout.rightFixedWidth.value?e.layout.rightFixedWidth.value+"px":"",right:e.layout.scrollY.value?(e.border?e.layout.gutterWidth:e.layout.gutterWidth||0)+"px":""},e.fixedHeight],class:"el-table__fixed-right"},[e.showHeader?(wl(),Sl("div",PT,[Ll(r,{ref:"rightFixedTableHeader",border:e.border,store:e.store,style:{width:e.bodyWidth},fixed:"right",onSetDragVisible:e.setDragVisible},null,8,["border","store","style","onSetDragVisible"])],512)):Pl("v-if",!0),Ll("div",{ref:"rightFixedBodyWrapper",style:[{top:e.layout.headerHeight.value+"px"},e.fixedBodyHeight],class:"el-table__fixed-body-wrapper"},[Ll(i,{highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"row-style":e.rowStyle,store:e.store,stripe:e.stripe,style:{width:e.bodyWidth},fixed:"right"},null,8,["highlight","row-class-name","tooltip-effect","row-style","store","stripe","style"]),e.$slots.append?(wl(),Sl("div",{key:0,style:{height:e.layout.appendHeight.value+"px"},class:"el-table__append-gutter"},null,4)):Pl("v-if",!0)],4),e.showSummary?Un((wl(),Sl("div",IT,[Ll(s,{border:e.border,store:e.store,style:{width:e.bodyWidth},"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,fixed:"right"},null,8,["border","store","style","sum-text","summary-method"])],512)),[[mo,e.data&&e.data.length>0]]):Pl("v-if",!0)],4)),[[u,e.handleFixedMousewheel]]):Pl("v-if",!0),e.store.states.rightFixedColumns.value.length>0?(wl(),Sl("div",{key:4,ref:"rightFixedPatch",style:{width:e.layout.scrollY.value?e.layout.gutterWidth+"px":"0",height:e.layout.headerHeight.value+"px"},class:"el-table__fixed-right-patch"},null,4)):Pl("v-if",!0),Un(Ll("div",FT,null,512),[[mo,e.resizeProxyVisible]])],34)},ET.__file="packages/table/src/table.vue",ET.install=e=>{e.component(ET.name,ET)};const VT=ET,BT={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:"",className:"el-table-column--selection"},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},$T={selection:{renderHeader:function({store:e}){const t=e;return da(dx,{disabled:t.states.data.value&&0===t.states.data.value.length,indeterminate:t.states.selection.value.length>0&&!t.states.isAllSelected.value,"onUpdate:modelValue":t.toggleAllSelection,modelValue:t.states.isAllSelected.value})},renderCell:function({row:e,column:t,store:n,$index:l}){return da(dx,{disabled:!!t.selectable&&!t.selectable.call(null,e,l),onChange:()=>{n.commit("rowSelectedChanged",e)},onClick:e=>e.stopPropagation(),modelValue:n.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader:function({column:e}){return e.label||"#"},renderCell:function({column:e,$index:t}){let n=t+1;const l=e.index;return"number"==typeof l?n=t+l:"function"==typeof l&&(n=l(t)),da("div",{},[n])},sortable:!1},expand:{renderHeader:function({column:e}){return e.label||""},renderCell:function({row:e,store:t}){const n=t,l=e,a=["el-table__expand-icon"];return n.states.expandRows.value.indexOf(l)>-1&&a.push("el-table__expand-icon--expanded"),da("div",{class:a,onClick:function(e){e.stopPropagation(),n.toggleRowExpansion(l)}},[da("i",{class:"el-icon el-icon-arrow-right"})])},sortable:!1,resizable:!1,className:"el-table__expand-column"}};function zT({row:e,column:t,$index:n}){var l;const a=t.property,o=a&&Sy(e,a,!1).v;return t&&t.formatter?t.formatter(e,t,o,n):(null===(l=null==o?void 0:o.toString)||void 0===l?void 0:l.call(o))||""}let jT=1;const RT=Qn({name:"ElTableColumn",components:{ElCheckbox:dx},props:{type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[Object,Number,String],default:()=>({})},minWidth:{type:[Object,Number,String],default:()=>({})},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showTooltipWhenOverflow:Boolean,showOverflowTooltip:Boolean,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every((e=>["ascending","descending",null].indexOf(e)>-1))}},setup(e,{slots:t}){const n=na(),l=lt({}),a=e,o=ca((()=>{let e=n.parent;for(;e&&!e.tableId;)e=e.parent;return e})),{registerNormalWatchers:r,registerComplexWatchers:i}=function(e,t){const n=na();return{registerComplexWatchers:()=>{const l={realWidth:"width",realMinWidth:"minWidth"},a=["fixed"].reduce(((e,t)=>(e[t]=t,e)),l);Object.keys(a).forEach((a=>{const o=l[a];uy(t,o)&&Sn((()=>t[o]),(t=>{n.columnConfig.value[o]=t,n.columnConfig.value[a]=t;const l="fixed"===o;e.value.store.scheduleLayout(l)}))}))},registerNormalWatchers:()=>{const e={prop:"property",realAlign:"align",realHeaderAlign:"headerAlign"},l=["label","property","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"].reduce(((e,t)=>(e[t]=t,e)),e);Object.keys(l).forEach((l=>{const a=e[l];uy(t,a)&&Sn((()=>t[a]),(e=>{n.columnConfig.value[a]=e}))}))}}}(o,a),{columnId:s,isSubColumn:u,realHeaderAlign:c,columnOrTableParent:d,setColumnWidth:p,setColumnForcedProps:f,setColumnRenders:h,getPropsData:v,getColumnElIndex:m,realAlign:g}=function(e,t,n){const l=na(),a=lt(""),o=lt(!1),r=lt(),i=lt();wn((()=>{r.value=e.align?"is-"+e.align:null,r.value})),wn((()=>{i.value=e.headerAlign?"is-"+e.headerAlign:r.value,i.value}));const s=ca((()=>{let e=l.vnode.vParent||l.parent;for(;e&&!e.tableId&&!e.columnId;)e=e.vnode.vParent||e.parent;return e})),u=lt(tT(e.width)),c=lt((void 0!==(d=e.minWidth)&&(d=tT(d),isNaN(d)&&(d=80)),d));var d;return{columnId:a,realAlign:r,isSubColumn:o,realHeaderAlign:i,columnOrTableParent:s,setColumnWidth:e=>(u.value&&(e.width=u.value),c.value&&(e.minWidth=c.value),e.minWidth||(e.minWidth=80),e.realWidth=void 0===e.width?e.minWidth:e.width,e),setColumnForcedProps:e=>{const t=e.type,n=$T[t]||{};return Object.keys(n).forEach((t=>{const l=n[t];void 0!==l&&(e[t]="className"===t?`${e[t]} ${l}`:l)})),e},setColumnRenders:a=>{e.renderHeader?console.warn("[Element Warn][TableColumn]Comparing to render-header, scoped-slot header is easier to use. We recommend users to use scoped-slot header."):"selection"!==a.type&&(a.renderHeader=e=>{l.columnConfig.value.label;const n=t.header;return n?n(e):a.label});let o=a.renderCell;return"expand"===a.type?(a.renderCell=e=>da("div",{class:"cell"},[o(e)]),n.value.renderExpanded=e=>t.default?t.default(e):t.default):(o=o||zT,a.renderCell=e=>{let n=null;n=t.default?t.default(e):o(e);const r=function({row:e,treeNode:t,store:n}){const l=e,a=n,o=t;if(!o)return null;const r=[],i=function(e){e.stopPropagation(),a.loadOrToggle(l)};if(o.indent&&r.push(da("span",{class:"el-table__indent",style:{"padding-left":o.indent+"px"}})),"boolean"!=typeof o.expanded||o.noLazyChildren)r.push(da("span",{class:"el-table__placeholder"}));else{const e=["el-table__expand-icon",o.expanded?"el-table__expand-icon--expanded":""];let t=["el-icon-arrow-right"];o.loading&&(t=["el-icon-loading"]),r.push(da("div",{class:e,onClick:i},[da("i",{class:t})]))}return r}(e),i={class:"cell",style:{}};return a.showOverflowTooltip&&(i.class+=" el-tooltip",i.style={width:(e.column.realWidth||e.column.width)-1+"px"}),(e=>{function t(e){var t;"ElTableColumn"===(null===(t=null==e?void 0:e.type)||void 0===t?void 0:t.name)&&(e.vParent=l)}e instanceof Array?e.forEach((e=>t(e))):t(e)})(n),da("div",i,[r,n])}),a},getPropsData:(...t)=>t.reduce(((t,n)=>(Array.isArray(n)&&n.forEach((n=>{t[n]=e[n]})),t)),{}),getColumnElIndex:(e,t)=>[].indexOf.call(e,t)}}(a,t,o),y=d.value;s.value=(y.tableId||y.columnId)+"_column_"+jT++,vn((()=>{u.value=o.value!==y;const e=a.type||"default",t=""===a.sortable||a.sortable,n=Object.assign(Object.assign({},BT[e]),{id:s.value,type:e,property:a.prop||a.property,align:g,headerAlign:c,showOverflowTooltip:a.showOverflowTooltip||a.showTooltipWhenOverflow,filterable:a.filters||a.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,filterOpened:!1,sortable:t,index:a.index});let d=v(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);d=function(e,t){const n={};let l;for(l in e)n[l]=e[l];for(l in t)if(uy(t,l)){const e=t[l];void 0!==e&&(n[l]=e)}return n}(n,d),d=function(...e){return 0===e.length?e=>e:1===e.length?e[0]:e.reduce(((e,t)=>(...n)=>e(t(...n))))}(h,p,f)(d),l.value=d,r(),i()})),mn((()=>{var e;const t=d.value,a=u.value?t.vnode.el.children:null===(e=t.refs.hiddenColumns)||void 0===e?void 0:e.children,r=()=>m(a||[],n.vnode.el);l.value.getColumnIndex=r,r()>-1&&o.value.store.commit("insertColumn",l.value,u.value?t.columnConfig.value:null)})),bn((()=>{o.value.store.commit("removeColumn",l.value,u.value?y.columnConfig.value:null)})),n.columnId=s.value,n.columnConfig=l},render(){var e,t,n;let l=[];try{const a=null===(t=(e=this.$slots).default)||void 0===t?void 0:t.call(e,{row:{},column:{},$index:-1});if(a instanceof Array)for(const e of a)"ElTableColumn"===(null===(n=e.type)||void 0===n?void 0:n.name)||36!==e.shapeFlag?l.push(e):e.type===gl&&e.children instanceof Array&&a.push(...e.children)}catch(a){l=[]}return da("div",l)}});RT.install=e=>{e.component(RT.name,RT)};var HT=Qn({name:"ElTabBar",props:{tabs:{type:Array,default:()=>[]}},setup(e){const t=zl("rootTabs");if(!t)throw new Error("ElTabBar must use with ElTabs");const n=na(),l=()=>{let l={},a=0,o=0;const r=["top","bottom"].includes(t.props.tabPosition)?"width":"height",i="width"===r?"x":"y";e.tabs.every((t=>{var l;let i=null===(l=n.parent.refs)||void 0===l?void 0:l["tab-"+t.paneName];if(!i)return!1;if(t.active){o=i["client"+ky(r)];const t=window.getComputedStyle(i);return"width"===r&&(e.tabs.length>1&&(o-=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight)),a+=parseFloat(t.paddingLeft)),!1}return a+=i["client"+ky(r)],!0}));const s=`translate${ky(i)}(${a}px)`;return l[r]=o+"px",l.transform=s,l.msTransform=s,l.webkitTransform=s,l},a=lt(l());return Sn((()=>e.tabs),(()=>{Dt((()=>{a.value=l()}))})),{rootTabs:t,barStyle:a}}});HT.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-tabs__active-bar","is-"+e.rootTabs.props.tabPosition],style:e.barStyle},null,6)},HT.__file="packages/tabs/src/tab-bar.vue";var WT=Qn({name:"ElTabNav",components:{TabBar:HT},props:{panes:{type:Array,default:()=>[]},currentName:{type:String,default:""},editable:Boolean,onTabClick:{type:Function,default:ry},onTabRemove:{type:Function,default:ry},type:{type:String,default:""},stretch:Boolean},setup(){const e=zl("rootTabs");if(!e)throw new Error("ElTabNav must use with ElTabs");const t=lt(!1),n=lt(0),l=lt(!1),a=lt(!0),o=lt(null),r=lt(null),i=lt(null),s=ca((()=>["top","bottom"].includes(e.props.tabPosition)?"width":"height")),u=ca((()=>({transform:`translate${"width"===s.value?"X":"Y"}(-${n.value}px)`}))),c=()=>{if(!t.value)return;const l=r.value,a=i.value.querySelector(".is-active");if(!a)return;const s=o.value,u=["top","bottom"].includes(e.props.tabPosition),c=a.getBoundingClientRect(),d=s.getBoundingClientRect(),p=u?l.offsetWidth-d.width:l.offsetHeight-d.height,f=n.value;let h=f;u?(c.left<d.left&&(h=f-(d.left-c.left)),c.right>d.right&&(h=f+c.right-d.right)):(c.top<d.top&&(h=f-(d.top-c.top)),c.bottom>d.bottom&&(h=f+(c.bottom-d.bottom))),h=Math.max(h,0),n.value=Math.min(h,p)},d=()=>{if(!r.value)return;const e=r.value["offset"+ky(s.value)],l=o.value["offset"+ky(s.value)],a=n.value;if(l<e){const a=n.value;t.value=t.value||{},t.value.prev=a,t.value.next=a+l<e,e-a<l&&(n.value=e-l)}else t.value=!1,a>0&&(n.value=0)},p=()=>{a.value&&(l.value=!0)},f=()=>{const e=document.visibilityState;"hidden"===e?a.value=!1:"visible"===e&&setTimeout((()=>{a.value=!0}),50)},h=()=>{a.value=!1},v=()=>{setTimeout((()=>{a.value=!0}),50)};return yn((()=>{d()})),mn((()=>{Zy(i.value,d),zy(document,"visibilitychange",f),zy(window,"blur",h),zy(window,"focus",v),setTimeout((()=>{c()}),0)})),bn((()=>{i.value&&Jy(i.value,d),jy(document,"visibilitychange",f),jy(window,"blur",h),jy(window,"focus",v)})),{rootTabs:e,scrollable:t,navOffset:n,isFocus:l,focusable:a,navScroll$:o,nav$:r,el$:i,sizeName:s,navStyle:u,scrollPrev:()=>{const e=o.value["offset"+ky(s.value)],t=n.value;if(!t)return;let l=t>e?t-e:0;n.value=l},scrollNext:()=>{const e=r.value["offset"+ky(s.value)],t=o.value["offset"+ky(s.value)],l=n.value;if(e-l<=t)return;let a=e-l>2*t?l+t:e-t;n.value=a},scrollToActiveTab:c,update:d,changeTab:e=>{const t=e.code;let n,l,a;const{up:o,down:r,left:i,right:s}=vb;-1!==[o,r,i,s].indexOf(t)&&(a=e.currentTarget.querySelectorAll("[role=tab]"),l=Array.prototype.indexOf.call(a,e.target),n=t===i||t===o?0===l?a.length-1:l-1:l<a.length-1?l+1:0,a[n].focus(),a[n].click(),p())},setFocus:p,removeFocus:()=>{l.value=!1},visibilityChangeHandler:f,windowBlurHandler:h,windowFocusHandler:v}},render(){const{type:e,panes:t,editable:n,stretch:l,onTabClick:a,onTabRemove:o,navStyle:r,scrollable:i,scrollNext:s,scrollPrev:u,changeTab:c,setFocus:d,removeFocus:p,rootTabs:f,isFocus:h}=this,v=i?[da("span",{class:["el-tabs__nav-prev",i.prev?"":"is-disabled"],onClick:u},[da("i",{class:"el-icon-arrow-left"})]),da("span",{class:["el-tabs__nav-next",i.next?"":"is-disabled"],onClick:s},[da("i",{class:"el-icon-arrow-right"})])]:null,m=t.map(((e,t)=>{var l,r;let i=e.props.name||e.index||""+t;const s=e.isClosable||n;e.index=""+t;const u=s?da("span",{class:"el-icon-close",onClick:t=>{o(e,t)}}):null,c=(null===(r=(l=e.instance.slots).label)||void 0===r?void 0:r.call(l))||e.props.label,v=e.active?0:-1;return da("div",{class:{"el-tabs__item":!0,["is-"+f.props.tabPosition]:!0,"is-active":e.active,"is-disabled":e.props.disabled,"is-closable":s,"is-focus":h},id:"tab-"+i,key:"tab-"+i,"aria-controls":"pane-"+i,role:"tab","aria-selected":e.active,ref:"tab-"+i,tabindex:v,onFocus:()=>{d()},onBlur:()=>{p()},onClick:t=>{p(),a(e,i,t)},onKeydown:t=>{!s||t.code!==vb.delete&&t.code!==vb.backspace||o(e,t)}},[c,u])}));return da("div",{ref:"el$",class:["el-tabs__nav-wrap",i?"is-scrollable":"","is-"+f.props.tabPosition]},[v,da("div",{class:"el-tabs__nav-scroll",ref:"navScroll$"},[da("div",{class:["el-tabs__nav","is-"+f.props.tabPosition,l&&["top","bottom"].includes(f.props.tabPosition)?"is-stretch":""],ref:"nav$",style:r,role:"tablist",onKeydown:c},[e?null:da(HT,{tabs:t}),m])])])}});WT.__file="packages/tabs/src/tab-nav.vue";var YT=Qn({name:"ElTabs",components:{TabNav:WT},props:{type:{type:String,default:""},activeName:{type:String,default:""},closable:Boolean,addable:Boolean,modelValue:{type:String,default:""},editable:Boolean,tabPosition:{type:String,default:"top"},beforeLeave:{type:Function,default:null},stretch:Boolean},emits:["tab-click","edit","tab-remove","tab-add","input","update:modelValue"],setup(e,t){const n=lt(null),l=lt(e.modelValue||e.activeName||"0"),a=lt([]),o=na(),r={};$l("rootTabs",{props:e,currentName:l}),$l("updatePaneState",(e=>{r[e.uid]=e})),Sn((()=>e.activeName),(e=>{c(e)})),Sn((()=>e.modelValue),(e=>{c(e)})),Sn(l,(()=>{n.value&&Dt((()=>{n.value.$nextTick((()=>{n.value.scrollToActiveTab()}))})),s(!0)}));const i=(e,t=[])=>(Array.from(e.children||[]).forEach((e=>{let n=e.type;n=n.name||n,"ElTabPane"===n&&e.component?t.push(e.component):n!==gl&&"template"!==n||i(e,t)})),t),s=(e=!1)=>{if(t.slots.default){const t=o.subTree.children,n=Array.from(t).find((({props:e})=>"el-tabs__content"===e.class));if(!n)return;const l=i(n).map((e=>r[e.uid])),s=!(l.length===a.value.length&&l.every(((e,t)=>e.uid===a.value[t].uid)));(e||s)&&(a.value=l)}else 0!==a.value.length&&(a.value=[])},u=e=>{l.value=e,t.emit("input",e),t.emit("update:modelValue",e)},c=t=>{if(l.value!==t&&e.beforeLeave){const a=e.beforeLeave(t,l.value);a&&a.then?a.then((()=>{u(t),n.value&&n.value.removeFocus()}),(()=>{})):!1!==a&&u(t)}else u(t)};return yn((()=>{s()})),mn((()=>{s()})),{nav$:n,handleTabClick:(e,n,l)=>{e.props.disabled||(c(n),t.emit("tab-click",e,l))},handleTabRemove:(e,n)=>{e.props.disabled||(n.stopPropagation(),t.emit("edit",e.props.name,"remove"),t.emit("tab-remove",e.props.name))},handleTabAdd:()=>{t.emit("edit",null,"add"),t.emit("tab-add")},currentName:l,panes:a}},render(){var e;let{type:t,handleTabClick:n,handleTabRemove:l,handleTabAdd:a,currentName:o,panes:r,editable:i,addable:s,tabPosition:u,stretch:c}=this;const d=i||s?da("span",{class:"el-tabs__new-tab",tabindex:"0",onClick:a,onKeydown:e=>{e.code===vb.enter&&a()}},[da("i",{class:"el-icon-plus"})]):null,p=da("div",{class:["el-tabs__header","is-"+u]},[d,da(WT,{currentName:o,editable:i,type:t,panes:r,stretch:c,ref:"nav$",onTabClick:n,onTabRemove:l})]),f=da("div",{class:"el-tabs__content"},null===(e=this.$slots)||void 0===e?void 0:e.default());return da("div",{class:{"el-tabs":!0,"el-tabs--card":"card"===t,["el-tabs--"+u]:!0,"el-tabs--border-card":"border-card"===t}},"bottom"!==u?[p,f]:[f,p])}});YT.__file="packages/tabs/src/tabs.vue",YT.install=e=>{e.component(YT.name,YT)};const qT=YT,KT=e=>{const t=(e||"").split(":");return t.length>=2?{hours:parseInt(t[0],10),minutes:parseInt(t[1],10)}:null},UT=(e,t)=>{const n=KT(e),l=KT(t),a=n.minutes+60*n.hours,o=l.minutes+60*l.hours;return a===o?0:a>o?1:-1},GT=(e,t)=>{const n=KT(e),l=KT(t),a={hours:n.hours,minutes:n.minutes};return a.minutes+=l.minutes,a.hours+=l.hours,a.hours+=Math.floor(a.minutes/60),a.minutes=a.minutes%60,((o=a).hours<10?"0"+o.hours:o.hours)+":"+(o.minutes<10?"0"+o.minutes:o.minutes);var o};var XT=Qn({name:"ElTimeSelect",components:{ElSelect:EM,ElOption:MM},model:{prop:"value",event:"change"},props:{modelValue:String,editable:{type:Boolean,default:!0},clearable:{type:Boolean,default:!0},size:{type:String,default:"",validator:e=>!e||-1!==["medium","small","mini"].indexOf(e)},placeholder:{type:String,default:""},start:{type:String,default:"09:00"},end:{type:String,default:"18:00"},step:{type:String,default:"00:30"},minTime:{type:String,default:""},maxTime:{type:String,default:""},name:{type:String,default:""},prefixIcon:{type:String,default:"el-icon-time"},clearIcon:{type:String,default:"el-icon-circle-close"}},emits:["change","blur","focus","update:modelValue"],setup:e=>({value:ca((()=>e.modelValue)),items:ca((()=>{const t=[];if(e.start&&e.end&&e.step){let n=e.start;for(;UT(n,e.end)<=0;)t.push({value:n,disabled:UT(n,e.minTime||"-1:-1")<=0||UT(n,e.maxTime||"100:100")>=0}),n=GT(n,e.step)}return t}))})});XT.render=function(e,t,n,l,a,o){const r=dl("el-option"),i=dl("el-select");return wl(),Sl(i,{"model-value":e.value,disabled:!e.editable,clearable:e.clearable,"clear-icon":e.clearIcon,size:e.size,placeholder:e.placeholder,"default-first-option":"",filterable:"","onUpdate:modelValue":t[1]||(t[1]=t=>e.$emit("update:modelValue",t)),onChange:t[2]||(t[2]=t=>e.$emit("change",t)),onBlur:t[3]||(t[3]=t=>e.$emit("blur",t)),onFocus:t[4]||(t[4]=t=>e.$emit("focus",t))},{prefix:Zt((()=>[Ll("i",{class:"el-input__icon "+e.prefixIcon},null,2)])),default:Zt((()=>[(wl(!0),Sl(gl,null,pa(e.items,(e=>(wl(),Sl(r,{key:e.value,label:e.value,value:e.value,disabled:e.disabled},null,8,["label","value","disabled"])))),128))])),_:1},8,["model-value","disabled","clearable","clear-icon","size","placeholder"])},XT.__file="packages/time-select/src/time-select.vue",XT.install=e=>{e.component(XT.name,XT)};const ZT=XT;var JT=Qn({name:"ElTimeline",setup:(e,t)=>($l("timeline",t),()=>{var e,n;return da("ul",{class:{"el-timeline":!0}},null===(n=(e=t.slots).default)||void 0===n?void 0:n.call(e))})});JT.__file="packages/timeline/src/index.vue",JT.install=e=>{e.component(JT.name,JT)};const QT=JT;var eD=Qn({name:"ElTimelineItem",props:{timestamp:{type:String,default:""},hideTimestamp:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},type:{type:String,default:""},color:{type:String,default:""},size:{type:String,default:"normal"},icon:{type:String,default:""}},setup(){zl("timeline")}});const tD={class:"el-timeline-item"},nD=Ll("div",{class:"el-timeline-item__tail"},null,-1),lD={key:1,class:"el-timeline-item__dot"},aD={class:"el-timeline-item__wrapper"},oD={key:0,class:"el-timeline-item__timestamp is-top"},rD={class:"el-timeline-item__content"},iD={key:1,class:"el-timeline-item__timestamp is-bottom"};eD.render=function(e,t,n,l,a,o){return wl(),Sl("li",tD,[nD,e.$slots.dot?Pl("v-if",!0):(wl(),Sl("div",{key:0,class:["el-timeline-item__node",["el-timeline-item__node--"+(e.size||""),"el-timeline-item__node--"+(e.type||"")]],style:{backgroundColor:e.color}},[e.icon?(wl(),Sl("i",{key:0,class:["el-timeline-item__icon",e.icon]},null,2)):Pl("v-if",!0)],6)),e.$slots.dot?(wl(),Sl("div",lD,[Ht(e.$slots,"dot")])):Pl("v-if",!0),Ll("div",aD,[e.hideTimestamp||"top"!==e.placement?Pl("v-if",!0):(wl(),Sl("div",oD,c(e.timestamp),1)),Ll("div",rD,[Ht(e.$slots,"default")]),e.hideTimestamp||"bottom"!==e.placement?Pl("v-if",!0):(wl(),Sl("div",iD,c(e.timestamp),1))])])},eD.__file="packages/timeline/src/item.vue",eD.install=e=>{e.component(eD.name,eD)};const sD=eD;var uD=Qn({name:"ElTransferPanel",components:{ElCheckboxGroup:Jx,ElCheckbox:dx,ElInput:Qb,OptionContent:({option:e})=>e},props:{data:{type:Array,default:()=>[]},optionRender:Function,placeholder:String,title:String,filterable:Boolean,format:Object,filterMethod:Function,defaultChecked:Array,props:Object},emits:["checked-change"],setup(e,{emit:t,slots:n}){const l=Ue({checked:[],allChecked:!1,query:"",inputHover:!1,checkChangeByUser:!0}),{labelProp:a,keyProp:o,disabledProp:r,filteredData:i,checkedSummary:s,isIndeterminate:u,handleAllCheckedChange:c}=((e,t,n)=>{const l=ca((()=>e.props.label||"label")),a=ca((()=>e.props.key||"key")),o=ca((()=>e.props.disabled||"disabled")),r=ca((()=>e.data.filter((n=>"function"==typeof e.filterMethod?e.filterMethod(t.query,n):(n[l.value]||n[a.value].toString()).toLowerCase().includes(t.query.toLowerCase()))))),i=ca((()=>r.value.filter((e=>!e[o.value])))),s=ca((()=>{const n=t.checked.length,l=e.data.length,{noChecked:a,hasChecked:o}=e.format;return a&&o?n>0?o.replace(/\${checked}/g,n.toString()).replace(/\${total}/g,l.toString()):a.replace(/\${total}/g,l.toString()):`${n}/${l}`})),u=ca((()=>{const e=t.checked.length;return e>0&&e<i.value.length})),c=()=>{const e=i.value.map((e=>e[a.value]));t.allChecked=e.length>0&&e.every((e=>t.checked.includes(e)))};return Sn((()=>t.checked),((e,l)=>{if(c(),t.checkChangeByUser){const t=e.concat(l).filter((t=>!e.includes(t)||!l.includes(t)));n("checked-change",e,t)}else n("checked-change",e),t.checkChangeByUser=!0})),Sn(i,(()=>{c()})),Sn((()=>e.data),(()=>{const e=[],n=r.value.map((e=>e[a.value]));t.checked.forEach((t=>{n.includes(t)&&e.push(t)})),t.checkChangeByUser=!1,t.checked=e})),Sn((()=>e.defaultChecked),((e,n)=>{if(n&&e.length===n.length&&e.every((e=>n.includes(e))))return;const l=[],o=i.value.map((e=>e[a.value]));e.forEach((e=>{o.includes(e)&&l.push(e)})),t.checkChangeByUser=!1,t.checked=l}),{immediate:!0}),{labelProp:l,keyProp:a,disabledProp:o,filteredData:r,checkableData:i,checkedSummary:s,isIndeterminate:u,updateAllChecked:c,handleAllCheckedChange:e=>{t.checked=e?i.value.map((e=>e[a.value])):[]}}})(e,l,t),d=ca((()=>l.query.length>0&&0===i.value.length)),p=ca((()=>l.query.length>0&&l.inputHover?"circle-close":"search")),f=ca((()=>!!n.default()[0].children.length)),{checked:h,allChecked:v,query:m,inputHover:g,checkChangeByUser:y}=ct(l);return{labelProp:a,keyProp:o,disabledProp:r,filteredData:i,checkedSummary:s,isIndeterminate:u,handleAllCheckedChange:c,checked:h,allChecked:v,query:m,inputHover:g,checkChangeByUser:y,hasNoMatch:d,inputIcon:p,hasFooter:f,clearQuery:()=>{"circle-close"===p.value&&(l.query="")},t:ak}}});const cD={class:"el-transfer-panel"},dD={class:"el-transfer-panel__header"},pD={key:0,class:"el-transfer-panel__footer"};uD.render=function(e,t,n,l,a,o){const r=dl("el-checkbox"),i=dl("el-input"),s=dl("option-content"),u=dl("el-checkbox-group");return wl(),Sl("div",cD,[Ll("p",dD,[Ll(r,{modelValue:e.allChecked,"onUpdate:modelValue":t[1]||(t[1]=t=>e.allChecked=t),indeterminate:e.isIndeterminate,onChange:e.handleAllCheckedChange},{default:Zt((()=>[Al(c(e.title)+" ",1),Ll("span",null,c(e.checkedSummary),1)])),_:1},8,["modelValue","indeterminate","onChange"])]),Ll("div",{class:["el-transfer-panel__body",e.hasFooter?"is-with-footer":""]},[e.filterable?(wl(),Sl(i,{key:0,modelValue:e.query,"onUpdate:modelValue":t[3]||(t[3]=t=>e.query=t),class:"el-transfer-panel__filter",size:"small",placeholder:e.placeholder,onMouseenter:t[4]||(t[4]=t=>e.inputHover=!0),onMouseleave:t[5]||(t[5]=t=>e.inputHover=!1)},{prefix:Zt((()=>[Ll("i",{class:["el-input__icon","el-icon-"+e.inputIcon],onClick:t[2]||(t[2]=(...t)=>e.clearQuery&&e.clearQuery(...t))},null,2)])),_:1},8,["modelValue","placeholder"])):Pl("v-if",!0),Un(Ll(u,{modelValue:e.checked,"onUpdate:modelValue":t[6]||(t[6]=t=>e.checked=t),class:[{"is-filterable":e.filterable},"el-transfer-panel__list"]},{default:Zt((()=>[(wl(!0),Sl(gl,null,pa(e.filteredData,(t=>(wl(),Sl(r,{key:t[e.keyProp],class:"el-transfer-panel__item",label:t[e.keyProp],disabled:t[e.disabledProp]},{default:Zt((()=>[Ll(s,{option:e.optionRender(t)},null,8,["option"])])),_:2},1032,["label","disabled"])))),128))])),_:1},8,["modelValue","class"]),[[mo,!e.hasNoMatch&&e.data.length>0]]),Un(Ll("p",{class:"el-transfer-panel__empty"},c(e.hasNoMatch?e.t("el.transfer.noMatch"):e.t("el.transfer.noData")),513),[[mo,e.hasNoMatch||0===e.data.length]])],2),e.hasFooter?(wl(),Sl("p",pD,[Ht(e.$slots,"default")])):Pl("v-if",!0)])},uD.__file="packages/transfer/src/transfer-panel.vue";var fD=Qn({name:"ElTransfer",components:{TransferPanel:uD,ElButton:Z_},props:{data:{type:Array,default:()=>[]},titles:{type:Array,default:()=>[]},buttonTexts:{type:Array,default:()=>[]},filterPlaceholder:{type:String,default:""},filterMethod:Function,leftDefaultChecked:{type:Array,default:()=>[]},rightDefaultChecked:{type:Array,default:()=>[]},renderContent:Function,modelValue:{type:Array,default:()=>[]},format:{type:Object,default:()=>({})},filterable:{type:Boolean,default:!1},props:{type:Object,default:()=>({label:"label",key:"key",disabled:"disabled"})},targetOrder:{type:String,default:"original",validator:e=>["original","push","unshift"].includes(e)}},emits:[Nb,"change","left-check-change","right-check-change"],setup(e,{emit:t,slots:n}){const l=zl("elFormItem",{}),a=Ue({leftChecked:[],rightChecked:[]}),{propsKey:o,sourceData:r,targetData:i}=(e=>{const t=ca((()=>e.props.key)),n=ca((()=>e.data.reduce(((e,n)=>(e[n[t.value]]=n)&&e),{}))),l=ca((()=>e.data.filter((n=>!e.modelValue.includes(n[t.value]))))),a=ca((()=>"original"===e.targetOrder?e.data.filter((n=>e.modelValue.includes(n[t.value]))):e.modelValue.reduce(((e,t)=>{const l=n.value[t];return l&&e.push(l),e}),[])));return{propsKey:t,sourceData:l,targetData:a}})(e),{onSourceCheckedChange:s,onTargetCheckedChange:u}=(y=a,b=t,{onSourceCheckedChange:(e,t)=>{y.leftChecked=e,void 0!==t&&b("left-check-change",e,t)},onTargetCheckedChange:(e,t)=>{y.rightChecked=e,void 0!==t&&b("right-check-change",e,t)}}),{addToLeft:c,addToRight:d}=((e,t,n,l)=>{const a=(e,t,n)=>{l(Nb,e),l("change",e,t,n)};return{addToLeft:()=>{const n=e.modelValue.slice();t.rightChecked.forEach((e=>{const t=n.indexOf(e);t>-1&&n.splice(t,1)})),a(n,"left",t.rightChecked)},addToRight:()=>{let l=e.modelValue.slice();const o=e.data.filter((l=>{const a=l[n.value];return t.leftChecked.includes(a)&&!e.modelValue.includes(a)})).map((e=>e[n.value]));l="unshift"===e.targetOrder?o.concat(l):l.concat(o),a(l,"right",t.leftChecked)}}})(e,a,o,t),p=lt(null),f=lt(null),h=ca((()=>2===e.buttonTexts.length)),v=ca((()=>e.titles[0]||ak("el.transfer.titles.0"))),m=ca((()=>e.titles[1]||ak("el.transfer.titles.1"))),g=ca((()=>e.filterPlaceholder||ak("el.transfer.filterPlaceholder")));var y,b;Sn((()=>e.modelValue),(e=>{var t;null===(t=l.formItemMitt)||void 0===t||t.emit("el.form.change",e)}));const _=ca((()=>t=>e.renderContent?e.renderContent(da,t):n.default?n.default({option:t}):da("span",t[e.props.label]||t[e.props.key])));return Object.assign(Object.assign({sourceData:r,targetData:i,onSourceCheckedChange:s,onTargetCheckedChange:u,addToLeft:c,addToRight:d},ct(a)),{hasButtonTexts:h,leftPanelTitle:v,rightPanelTitle:m,panelFilterPlaceholder:g,clearQuery:e=>{"left"===e?p.value.query="":"right"===e&&(f.value.query="")},optionRender:_})}});const hD={class:"el-transfer"},vD={class:"el-transfer__buttons"},mD=Ll("i",{class:"el-icon-arrow-left"},null,-1),gD={key:0},yD={key:0},bD=Ll("i",{class:"el-icon-arrow-right"},null,-1);fD.render=function(e,t,n,l,a,o){const r=dl("transfer-panel"),i=dl("el-button");return wl(),Sl("div",hD,[Ll(r,{ref:"leftPanel",data:e.sourceData,"option-render":e.optionRender,placeholder:e.panelFilterPlaceholder,title:e.leftPanelTitle,filterable:e.filterable,format:e.format,"filter-method":e.filterMethod,"default-checked":e.leftDefaultChecked,props:e.props,onCheckedChange:e.onSourceCheckedChange},{default:Zt((()=>[Ht(e.$slots,"left-footer")])),_:3},8,["data","option-render","placeholder","title","filterable","format","filter-method","default-checked","props","onCheckedChange"]),Ll("div",vD,[Ll(i,{type:"primary",class:["el-transfer__button",e.hasButtonTexts?"is-with-texts":""],disabled:0===e.rightChecked.length,onClick:e.addToLeft},{default:Zt((()=>[mD,void 0!==e.buttonTexts[0]?(wl(),Sl("span",gD,c(e.buttonTexts[0]),1)):Pl("v-if",!0)])),_:1},8,["class","disabled","onClick"]),Ll(i,{type:"primary",class:["el-transfer__button",e.hasButtonTexts?"is-with-texts":""],disabled:0===e.leftChecked.length,onClick:e.addToRight},{default:Zt((()=>[void 0!==e.buttonTexts[1]?(wl(),Sl("span",yD,c(e.buttonTexts[1]),1)):Pl("v-if",!0),bD])),_:1},8,["class","disabled","onClick"])]),Ll(r,{ref:"rightPanel",data:e.targetData,"option-render":e.optionRender,placeholder:e.panelFilterPlaceholder,filterable:e.filterable,format:e.format,"filter-method":e.filterMethod,title:e.rightPanelTitle,"default-checked":e.rightDefaultChecked,props:e.props,onCheckedChange:e.onTargetCheckedChange},{default:Zt((()=>[Ht(e.$slots,"right-footer")])),_:3},8,["data","option-render","placeholder","filterable","format","filter-method","title","default-checked","props","onCheckedChange"])])},fD.__file="packages/transfer/src/index.vue",fD.install=e=>{e.component(fD.name,fD)};const _D=fD,kD="$treeNodeId",xD=function(e,t){t&&!t[kD]&&Object.defineProperty(t,kD,{value:e.id,enumerable:!1,configurable:!1,writable:!1})},wD=function(e,t){return e?t[e]:t[kD]},CD=e=>{let t=!0,n=!0,l=!0;for(let a=0,o=e.length;a<o;a++){const o=e[a];(!0!==o.checked||o.indeterminate)&&(t=!1,o.disabled||(l=!1)),(!1!==o.checked||o.indeterminate)&&(n=!1)}return{all:t,none:n,allWithoutDisable:l,half:!t&&!n}},SD=function(e){if(0===e.childNodes.length)return;const{all:t,none:n,half:l}=CD(e.childNodes);t?(e.checked=!0,e.indeterminate=!1):l?(e.checked=!1,e.indeterminate=!0):n&&(e.checked=!1,e.indeterminate=!1);const a=e.parent;a&&0!==a.level&&(e.store.checkStrictly||SD(a))},ED=function(e,t){const n=e.store.props,l=e.data||{},a=n[t];if("function"==typeof a)return a(l,e);if("string"==typeof a)return l[a];if(void 0===a){const e=l[t];return void 0===e?"":e}};let MD=0;class OD{constructor(e){this.id=MD++,this.text=null,this.checked=!1,this.indeterminate=!1,this.data=null,this.expanded=!1,this.parent=null,this.visible=!0,this.isCurrent=!1,this.canFocus=!1;for(const t in e)uy(e,t)&&(this[t]=e[t]);this.level=0,this.loaded=!1,this.childNodes=[],this.loading=!1,this.parent&&(this.level=this.parent.level+1)}initialize(){const e=this.store;if(!e)throw new Error("[Node]store is required!");e.registerNode(this);const t=e.props;if(t&&void 0!==t.isLeaf){const e=ED(this,"isLeaf");"boolean"==typeof e&&(this.isLeafByUser=e)}if(!0!==e.lazy&&this.data?(this.setData(this.data),e.defaultExpandAll&&(this.expanded=!0,this.canFocus=!0)):this.level>0&&e.lazy&&e.defaultExpandAll&&this.expand(),Array.isArray(this.data)||xD(this,this.data),!this.data)return;const n=e.defaultExpandedKeys,l=e.key;l&&n&&-1!==n.indexOf(this.key)&&this.expand(null,e.autoExpandParent),l&&void 0!==e.currentNodeKey&&this.key===e.currentNodeKey&&(e.currentNode=this,e.currentNode.isCurrent=!0),e.lazy&&e._initDefaultCheckedNode(this),this.updateLeafState(),!this.parent||1!==this.level&&!0!==this.parent.expanded||(this.canFocus=!0)}setData(e){let t;Array.isArray(e)||xD(this,e),this.data=e,this.childNodes=[],t=0===this.level&&this.data instanceof Array?this.data:ED(this,"children")||[];for(let n=0,l=t.length;n<l;n++)this.insertChild({data:t[n]})}get label(){return ED(this,"label")}get key(){const e=this.store.key;return this.data?this.data[e]:null}get disabled(){return ED(this,"disabled")}get nextSibling(){const e=this.parent;if(e){const t=e.childNodes.indexOf(this);if(t>-1)return e.childNodes[t+1]}return null}get previousSibling(){const e=this.parent;if(e){const t=e.childNodes.indexOf(this);if(t>-1)return t>0?e.childNodes[t-1]:null}return null}contains(e,t=!0){return(this.childNodes||[]).some((n=>n===e||t&&n.contains(e)))}remove(){const e=this.parent;e&&e.removeChild(this)}insertChild(e,t,n){if(!e)throw new Error("insertChild error: child is required.");if(!(e instanceof OD)){if(!n){const n=this.getChildren(!0);-1===n.indexOf(e.data)&&(void 0===t||t<0?n.push(e.data):n.splice(t,0,e.data))}Object.assign(e,{parent:this,store:this.store}),(e=Ue(new OD(e)))instanceof OD&&e.initialize()}e.level=this.level+1,void 0===t||t<0?this.childNodes.push(e):this.childNodes.splice(t,0,e),this.updateLeafState()}insertBefore(e,t){let n;t&&(n=this.childNodes.indexOf(t)),this.insertChild(e,n)}insertAfter(e,t){let n;t&&(n=this.childNodes.indexOf(t),-1!==n&&(n+=1)),this.insertChild(e,n)}removeChild(e){const t=this.getChildren()||[],n=t.indexOf(e.data);n>-1&&t.splice(n,1);const l=this.childNodes.indexOf(e);l>-1&&(this.store&&this.store.deregisterNode(e),e.parent=null,this.childNodes.splice(l,1)),this.updateLeafState()}removeChildByData(e){let t=null;for(let n=0;n<this.childNodes.length;n++)if(this.childNodes[n].data===e){t=this.childNodes[n];break}t&&this.removeChild(t)}expand(e,t){const n=()=>{if(t){let e=this.parent;for(;e.level>0;)e.expanded=!0,e=e.parent}this.expanded=!0,e&&e(),this.childNodes.forEach((e=>{e.canFocus=!0}))};this.shouldLoadData()?this.loadData((e=>{Array.isArray(e)&&(this.checked?this.setChecked(!0,!0):this.store.checkStrictly||SD(this),n())})):n()}doCreateChildren(e,t={}){e.forEach((e=>{this.insertChild(Object.assign({data:e},t),void 0,!0)}))}collapse(){this.expanded=!1,this.childNodes.forEach((e=>{e.canFocus=!1}))}shouldLoadData(){return!0===this.store.lazy&&this.store.load&&!this.loaded}updateLeafState(){if(!0===this.store.lazy&&!0!==this.loaded&&void 0!==this.isLeafByUser)return void(this.isLeaf=this.isLeafByUser);const e=this.childNodes;!this.store.lazy||!0===this.store.lazy&&!0===this.loaded?this.isLeaf=!e||0===e.length:this.isLeaf=!1}setChecked(e,t,n,l){if(this.indeterminate="half"===e,this.checked=!0===e,this.store.checkStrictly)return;if(!this.shouldLoadData()||this.store.checkDescendants){const{all:n,allWithoutDisable:a}=CD(this.childNodes);this.isLeaf||n||!a||(this.checked=!1,e=!1);const o=()=>{if(t){const n=this.childNodes;for(let r=0,i=n.length;r<i;r++){const a=n[r];l=l||!1!==e;const o=a.disabled?a.checked:l;a.setChecked(o,t,!0,l)}const{half:a,all:o}=CD(n);o||(this.checked=o,this.indeterminate=a)}};if(this.shouldLoadData())return void this.loadData((()=>{o(),SD(this)}),{checked:!1!==e});o()}const a=this.parent;a&&0!==a.level&&(n||SD(a))}getChildren(e=!1){if(0===this.level)return this.data;const t=this.data;if(!t)return null;const n=this.store.props;let l="children";return n&&(l=n.children||"children"),void 0===t[l]&&(t[l]=null),e&&!t[l]&&(t[l]=[]),t[l]}updateChildren(){const e=this.getChildren()||[],t=this.childNodes.map((e=>e.data)),n={},l=[];e.forEach(((e,a)=>{const o=e[kD];o&&t.findIndex((e=>e[kD]===o))>=0?n[o]={index:a,data:e}:l.push({index:a,data:e})})),this.store.lazy||t.forEach((e=>{n[e[kD]]||this.removeChildByData(e)})),l.forEach((({index:e,data:t})=>{this.insertChild({data:t},e)})),this.updateLeafState()}loadData(e,t={}){if(!0!==this.store.lazy||!this.store.load||this.loaded||this.loading&&!Object.keys(t).length)e&&e.call(this);else{this.loading=!0;const n=n=>{this.loaded=!0,this.loading=!1,this.childNodes=[],this.doCreateChildren(n,t),this.updateLeafState(),e&&e.call(this,n)};this.store.load(this,n)}}}class TD{constructor(e){this.currentNode=null,this.currentNodeKey=null;for(const t in e)uy(e,t)&&(this[t]=e[t]);this.nodesMap={}}initialize(){this.root=new OD({data:this.data,store:this}),this.root.initialize(),this.lazy&&this.load?(0,this.load)(this.root,(e=>{this.root.doCreateChildren(e),this._initDefaultCheckedNodes()})):this._initDefaultCheckedNodes()}filter(e){const t=this.filterNodeMethod,n=this.lazy,l=function(a){const o=a.root?a.root.childNodes:a.childNodes;if(o.forEach((n=>{n.visible=t.call(n,e,n.data,n),l(n)})),!a.visible&&o.length){let e=!0;e=!o.some((e=>e.visible)),a.root?a.root.visible=!1===e:a.visible=!1===e}e&&(!a.visible||a.isLeaf||n||a.expand())};l(this)}setData(e){e!==this.root.data?(this.root.setData(e),this._initDefaultCheckedNodes()):this.root.updateChildren()}getNode(e){if(e instanceof OD)return e;const t="object"!=typeof e?e:wD(this.key,e);return this.nodesMap[t]||null}insertBefore(e,t){const n=this.getNode(t);n.parent.insertBefore({data:e},n)}insertAfter(e,t){const n=this.getNode(t);n.parent.insertAfter({data:e},n)}remove(e){const t=this.getNode(e);t&&t.parent&&(t===this.currentNode&&(this.currentNode=null),t.parent.removeChild(t))}append(e,t){const n=t?this.getNode(t):this.root;n&&n.insertChild({data:e})}_initDefaultCheckedNodes(){const e=this.defaultCheckedKeys||[],t=this.nodesMap;e.forEach((e=>{const n=t[e];n&&n.setChecked(!0,!this.checkStrictly)}))}_initDefaultCheckedNode(e){-1!==(this.defaultCheckedKeys||[]).indexOf(e.key)&&e.setChecked(!0,!this.checkStrictly)}setDefaultCheckedKey(e){e!==this.defaultCheckedKeys&&(this.defaultCheckedKeys=e,this._initDefaultCheckedNodes())}registerNode(e){const t=this.key;e&&e.data&&(t?void 0!==e.key&&(this.nodesMap[e.key]=e):this.nodesMap[e.id]=e)}deregisterNode(e){this.key&&e&&e.data&&(e.childNodes.forEach((e=>{this.deregisterNode(e)})),delete this.nodesMap[e.key])}getCheckedNodes(e=!1,t=!1){const n=[],l=function(a){(a.root?a.root.childNodes:a.childNodes).forEach((a=>{(a.checked||t&&a.indeterminate)&&(!e||e&&a.isLeaf)&&n.push(a.data),l(a)}))};return l(this),n}getCheckedKeys(e=!1){return this.getCheckedNodes(e).map((e=>(e||{})[this.key]))}getHalfCheckedNodes(){const e=[],t=function(n){(n.root?n.root.childNodes:n.childNodes).forEach((n=>{n.indeterminate&&e.push(n.data),t(n)}))};return t(this),e}getHalfCheckedKeys(){return this.getHalfCheckedNodes().map((e=>(e||{})[this.key]))}_getAllNodes(){const e=[],t=this.nodesMap;for(const n in t)uy(t,n)&&e.push(t[n]);return e}updateChildren(e,t){const n=this.nodesMap[e];if(!n)return;const l=n.childNodes;for(let a=l.length-1;a>=0;a--){const e=l[a];this.remove(e.data)}for(let a=0,o=t.length;a<o;a++){const e=t[a];this.append(e,n.data)}}_setCheckedKeys(e,t=!1,n){const l=this._getAllNodes().sort(((e,t)=>t.level-e.level)),a=Object.create(null),o=Object.keys(n);l.forEach((e=>e.setChecked(!1,!1)));for(let r=0,i=l.length;r<i;r++){const n=l[r],i=n.data[e].toString();if(!(o.indexOf(i)>-1)){n.checked&&!a[i]&&n.setChecked(!1,!1);continue}let s=n.parent;for(;s&&s.level>0;)a[s.data[e]]=!0,s=s.parent;if(n.isLeaf||this.checkStrictly)n.setChecked(!0,!1);else if(n.setChecked(!0,!0),t){n.setChecked(!1,!1);const e=function(t){t.childNodes.forEach((t=>{t.isLeaf||t.setChecked(!1,!1),e(t)}))};e(n)}}}setCheckedNodes(e,t=!1){const n=this.key,l={};e.forEach((e=>{l[(e||{})[n]]=!0})),this._setCheckedKeys(n,t,l)}setCheckedKeys(e,t=!1){this.defaultCheckedKeys=e;const n=this.key,l={};e.forEach((e=>{l[e]=!0})),this._setCheckedKeys(n,t,l)}setDefaultExpandedKeys(e){e=e||[],this.defaultExpandedKeys=e,e.forEach((e=>{const t=this.getNode(e);t&&t.expand(null,this.autoExpandParent)}))}setChecked(e,t,n){const l=this.getNode(e);l&&l.setChecked(!!t,n)}getCurrentNode(){return this.currentNode}setCurrentNode(e){const t=this.currentNode;t&&(t.isCurrent=!1),this.currentNode=e,this.currentNode.isCurrent=!0}setUserCurrentNode(e,t=!0){const n=e[this.key],l=this.nodesMap[n];this.setCurrentNode(l),t&&this.currentNode.level>1&&this.currentNode.parent.expand(null,!0)}setCurrentNodeKey(e,t=!0){if(null==e)return this.currentNode&&(this.currentNode.isCurrent=!1),void(this.currentNode=null);const n=this.getNode(e);n&&(this.setCurrentNode(n),t&&this.currentNode.level>1&&this.currentNode.parent.expand(null,!0))}}var DD=Qn({name:"ElTreeNodeContent",props:{node:{type:Object,required:!0},renderContent:Function},setup(e){const t=zl("NodeInstance"),n=zl("RootTree");return()=>{const l=e.node,{data:a,store:o}=l;return e.renderContent?e.renderContent(da,{_self:t,node:l,data:a,store:o}):n.ctx.slots.default?n.ctx.slots.default({node:l,data:a}):da("span",{class:"el-tree-node__label"},[l.label])}}});function LD(e){const t=zl("TreeNodeMap",null),n={treeNodeExpand:t=>{e.node!==t&&e.node.collapse()},children:[]};return t&&t.children.push(n),$l("TreeNodeMap",n),{broadcastExpanded:t=>{if(e.accordion)for(const e of n.children)e.treeNodeExpand(t)}}}DD.__file="packages/tree/src/tree-node-content.vue";var ND=Qn({name:"ElTreeNode",components:{ElCollapseTransition:aw,ElCheckbox:dx,NodeContent:DD},props:{node:{type:OD,default:()=>({})},props:{type:Object,default:()=>({})},renderContent:Function,renderAfterExpand:Boolean,showCheckbox:{type:Boolean,default:!1}},emits:["node-expand"],setup(e,t){const{broadcastExpanded:n}=LD(e),l=zl("RootTree"),a=lt(!1),o=lt(!1),r=lt(null),i=lt(null),s=lt(null),{emitter:u}={emitter:zl("DragNodeEmitter")},c=na();$l("NodeInstance",c),l||console.warn("Can not find node's tree."),e.node.expanded&&(a.value=!0,o.value=!0);const d=l.props.children||"children";Sn((()=>{const t=e.node.data[d];return t&&[...t]}),(()=>{e.node.updateChildren()})),Sn((()=>e.node.indeterminate),(t=>{p(e.node.checked,t)})),Sn((()=>e.node.checked),(t=>{p(t,e.node.indeterminate)})),Sn((()=>e.node.expanded),(e=>{Dt((()=>a.value=e)),e&&(o.value=!0)}));const p=(t,n)=>{r.value===t&&i.value===n||l.ctx.emit("check-change",e.node.data,t,n),r.value=t,i.value=n},f=()=>{e.node.isLeaf||(a.value?(l.ctx.emit("node-collapse",e.node.data,e.node,c),e.node.collapse()):(e.node.expand(),t.emit("node-expand",e.node.data,e.node,c)))},h=(t,n)=>{e.node.setChecked(n.target.checked,!l.props.checkStrictly),Dt((()=>{const t=l.store.value;l.ctx.emit("check",e.node.data,{checkedNodes:t.getCheckedNodes(),checkedKeys:t.getCheckedKeys(),halfCheckedNodes:t.getHalfCheckedNodes(),halfCheckedKeys:t.getHalfCheckedKeys()})}))};return{node$:s,tree:l,expanded:a,childNodeRendered:o,oldChecked:r,oldIndeterminate:i,emitter:u,parent:parent,getNodeKey:e=>wD(l.props.nodeKey,e.data),handleSelectChange:p,handleClick:()=>{const t=l.store.value;t.setCurrentNode(e.node),l.ctx.emit("current-change",t.currentNode?t.currentNode.data:null,t.currentNode),l.currentNode.value=e.node,l.props.expandOnClickNode&&f(),l.props.checkOnClickNode&&!e.node.disabled&&h(0,{target:{checked:!e.node.checked}}),l.ctx.emit("node-click",e.node.data,e.node,c)},handleContextMenu:t=>{l.instance.vnode.props.onNodeContextmenu&&(t.stopPropagation(),t.preventDefault()),l.ctx.emit("node-contextmenu",t,e.node.data,e.node,c)},handleExpandIconClick:f,handleCheckChange:h,handleChildNodeExpand:(e,t,a)=>{n(t),l.ctx.emit("node-expand",e,t,a)},handleDragStart:t=>{l.props.draggable&&u.emit("tree-node-drag-start",{event:t,treeNode:e})},handleDragOver:t=>{l.props.draggable&&(u.emit("tree-node-drag-over",{event:t,treeNode:{$el:s.value,node:e.node}}),t.preventDefault())},handleDrop:e=>{e.preventDefault()},handleDragEnd:e=>{l.props.draggable&&u.emit("tree-node-drag-end",e)}}}});const AD={key:1,class:"el-tree-node__loading-icon el-icon-loading"};ND.render=function(e,t,n,l,a,o){const r=dl("el-checkbox"),i=dl("node-content"),s=dl("el-tree-node"),u=dl("el-collapse-transition");return Un((wl(),Sl("div",{ref:"node$",class:["el-tree-node",{"is-expanded":e.expanded,"is-current":e.node.isCurrent,"is-hidden":!e.node.visible,"is-focusable":!e.node.disabled,"is-checked":!e.node.disabled&&e.node.checked}],role:"treeitem",tabindex:"-1","aria-expanded":e.expanded,"aria-disabled":e.node.disabled,"aria-checked":e.node.checked,draggable:e.tree.props.draggable,"data-key":e.getNodeKey(e.node),onClick:t[3]||(t[3]=fo(((...t)=>e.handleClick&&e.handleClick(...t)),["stop"])),onContextmenu:t[4]||(t[4]=(...t)=>e.handleContextMenu&&e.handleContextMenu(...t)),onDragstart:t[5]||(t[5]=fo(((...t)=>e.handleDragStart&&e.handleDragStart(...t)),["stop"])),onDragover:t[6]||(t[6]=fo(((...t)=>e.handleDragOver&&e.handleDragOver(...t)),["stop"])),onDragend:t[7]||(t[7]=fo(((...t)=>e.handleDragEnd&&e.handleDragEnd(...t)),["stop"])),onDrop:t[8]||(t[8]=fo(((...t)=>e.handleDrop&&e.handleDrop(...t)),["stop"]))},[Ll("div",{class:"el-tree-node__content",style:{"padding-left":(e.node.level-1)*e.tree.props.indent+"px"}},[Ll("span",{class:[{"is-leaf":e.node.isLeaf,expanded:!e.node.isLeaf&&e.expanded},"el-tree-node__expand-icon",e.tree.props.iconClass?e.tree.props.iconClass:"el-icon-caret-right"],onClick:t[1]||(t[1]=fo(((...t)=>e.handleExpandIconClick&&e.handleExpandIconClick(...t)),["stop"]))},null,2),e.showCheckbox?(wl(),Sl(r,{key:0,"model-value":e.node.checked,indeterminate:e.node.indeterminate,disabled:!!e.node.disabled,onClick:t[2]||(t[2]=fo((()=>{}),["stop"])),onChange:e.handleCheckChange},null,8,["model-value","indeterminate","disabled","onChange"])):Pl("v-if",!0),e.node.loading?(wl(),Sl("span",AD)):Pl("v-if",!0),Ll(i,{node:e.node,"render-content":e.renderContent},null,8,["node","render-content"])],4),Ll(u,null,{default:Zt((()=>[!e.renderAfterExpand||e.childNodeRendered?Un((wl(),Sl("div",{key:0,class:"el-tree-node__children",role:"group","aria-expanded":e.expanded},[(wl(!0),Sl(gl,null,pa(e.node.childNodes,(t=>(wl(),Sl(s,{key:e.getNodeKey(t),"render-content":e.renderContent,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,node:t,onNodeExpand:e.handleChildNodeExpand},null,8,["render-content","render-after-expand","show-checkbox","node","onNodeExpand"])))),128))],8,["aria-expanded"])),[[mo,e.expanded]]):Pl("v-if",!0)])),_:1})],42,["aria-expanded","aria-disabled","aria-checked","draggable","data-key"])),[[mo,e.node.visible]])},ND.__file="packages/tree/src/tree-node.vue";var PD=Qn({name:"ElTree",components:{ElTreeNode:ND},props:{data:{type:Array},emptyText:{type:String,default:()=>ak("el.tree.emptyText")},renderAfterExpand:{type:Boolean,default:!0},nodeKey:String,checkStrictly:Boolean,defaultExpandAll:Boolean,expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:Boolean,checkDescendants:{type:Boolean,default:!1},autoExpandParent:{type:Boolean,default:!0},defaultCheckedKeys:Array,defaultExpandedKeys:Array,currentNodeKey:[String,Number],renderContent:Function,showCheckbox:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},allowDrag:Function,allowDrop:Function,props:{type:Object,default:()=>({children:"children",label:"label",disabled:"disabled"})},lazy:{type:Boolean,default:!1},highlightCurrent:Boolean,load:Function,filterNodeMethod:Function,accordion:Boolean,indent:{type:Number,default:18},iconClass:String},emits:["check-change","current-change","node-click","node-contextmenu","node-collapse","node-expand","check","node-drag-start","node-drag-end","node-drop","node-drag-leave","node-drag-enter","node-drag-over"],setup(e,t){const n=lt(new TD({key:e.nodeKey,data:e.data,lazy:e.lazy,props:e.props,load:e.load,currentNodeKey:e.currentNodeKey,checkStrictly:e.checkStrictly,checkDescendants:e.checkDescendants,defaultCheckedKeys:e.defaultCheckedKeys,defaultExpandedKeys:e.defaultExpandedKeys,autoExpandParent:e.autoExpandParent,defaultExpandAll:e.defaultExpandAll,filterNodeMethod:e.filterNodeMethod}));n.value.initialize();const l=lt(n.value.root),a=lt(null),o=lt(null),r=lt(null),{broadcastExpanded:i}=LD(e),{dragState:s}=function({props:e,ctx:t,el$:n,dropIndicator$:l,store:a}){const o=ku();$l("DragNodeEmitter",o);const r=lt({showDropIndicator:!1,draggingNode:null,dropNode:null,allowDrop:!0,dropType:null});return o.on("tree-node-drag-start",(({event:n,treeNode:l})=>{if(console.log(n,l),"function"==typeof e.allowDrag&&!e.allowDrag(l.node))return n.preventDefault(),!1;n.dataTransfer.effectAllowed="move";try{n.dataTransfer.setData("text/plain","")}catch(a){}r.value.draggingNode=l,t.emit("node-drag-start",l.node,n)})),o.on("tree-node-drag-over",(({event:a,treeNode:o})=>{const i=o,s=r.value.dropNode;s&&s!==i&&Wy(s.$el,"is-drop-inner");const u=r.value.draggingNode;if(!u||!i)return;let c=!0,d=!0,p=!0,f=!0;"function"==typeof e.allowDrop&&(c=e.allowDrop(u.node,i.node,"prev"),f=d=e.allowDrop(u.node,i.node,"inner"),p=e.allowDrop(u.node,i.node,"next")),a.dataTransfer.dropEffect=d?"move":"none",(c||d||p)&&s!==i&&(s&&t.emit("node-drag-leave",u.node,s.node,a),t.emit("node-drag-enter",u.node,i.node,a)),(c||d||p)&&(r.value.dropNode=i),i.node.nextSibling===u.node&&(p=!1),i.node.previousSibling===u.node&&(c=!1),i.node.contains(u.node,!1)&&(d=!1),(u.node===i.node||u.node.contains(i.node))&&(c=!1,d=!1,p=!1);const h=i.$el.getBoundingClientRect(),v=n.value.getBoundingClientRect();let m;const g=c?d?.25:p?.45:1:-1,y=p?d?.75:c?.55:0:1;let b=-9999;const _=a.clientY-h.top;m=_<h.height*g?"before":_>h.height*y?"after":d?"inner":"none";const k=i.$el.querySelector(".el-tree-node__expand-icon").getBoundingClientRect(),x=l.value;"before"===m?b=k.top-v.top:"after"===m&&(b=k.bottom-v.top),x.style.top=b+"px",x.style.left=k.right-v.left+"px","inner"===m?Hy(i.$el,"is-drop-inner"):Wy(i.$el,"is-drop-inner"),r.value.showDropIndicator="before"===m||"after"===m,r.value.allowDrop=r.value.showDropIndicator||f,r.value.dropType=m,t.emit("node-drag-over",u.node,i.node,a)})),o.on("tree-node-drag-end",(e=>{const{draggingNode:n,dropType:l,dropNode:o}=r.value;if(e.preventDefault(),e.dataTransfer.dropEffect="move",n&&o){const r={data:n.node.data};"none"!==l&&n.node.remove(),"before"===l?o.node.parent.insertBefore(r,o.node):"after"===l?o.node.parent.insertAfter(r,o.node):"inner"===l&&o.node.insertChild(r),"none"!==l&&a.value.registerNode(r),Wy(o.$el,"is-drop-inner"),t.emit("node-drag-end",n.node,o.node,l,e),"none"!==l&&t.emit("node-drop",n.node,o.node,l,e)}n&&!o&&t.emit("node-drag-end",n.node,null,l,e),r.value.showDropIndicator=!1,r.value.draggingNode=null,r.value.dropNode=null,r.value.allowDrop=!0})),{dragState:r}}({props:e,ctx:t,el$:o,dropIndicator$:r,store:n});!function({el$:e},t){const n=lt([]),l=lt([]);mn((()=>{o(),zy(e.value,"keydown",a)})),bn((()=>{jy(e.value,"keydown",a)})),yn((()=>{n.value=Array.from(e.value.querySelectorAll("[role=treeitem]")),l.value=Array.from(e.value.querySelectorAll("input[type=checkbox]"))})),Sn(l,(e=>{e.forEach((e=>{e.setAttribute("tabindex","-1")}))}));const a=l=>{const a=l.target;if(-1===a.className.indexOf("el-tree-node"))return;const o=l.code;n.value=Array.from(e.value.querySelectorAll(".is-focusable[role=treeitem]"));const r=n.value.indexOf(a);let i;if([vb.up,vb.down].indexOf(o)>-1){if(l.preventDefault(),o===vb.up){i=-1===r?0:0!==r?r-1:n.value.length-1;const e=i;for(;!t.value.getNode(n.value[i].dataset.key).canFocus;){if(i--,i===e){i=-1;break}i<0&&(i=n.value.length-1)}}else{i=-1===r?0:r<n.value.length-1?r+1:0;const e=i;for(;!t.value.getNode(n.value[i].dataset.key).canFocus;){if(i++,i===e){i=-1;break}i>=n.value.length&&(i=0)}}-1!==i&&n.value[i].focus()}[vb.left,vb.right].indexOf(o)>-1&&(l.preventDefault(),a.click());const s=a.querySelector('[type="checkbox"]');[vb.enter,vb.space].indexOf(o)>-1&&s&&(l.preventDefault(),s.click())},o=()=>{var t;n.value=Array.from(e.value.querySelectorAll(".is-focusable[role=treeitem]")),l.value=Array.from(e.value.querySelectorAll("input[type=checkbox]"));const a=e.value.querySelectorAll(".is-checked[role=treeitem]");a.length?a[0].setAttribute("tabindex","0"):null===(t=n.value[0])||void 0===t||t.setAttribute("tabindex","0")}}({el$:o},n);const u=ca((()=>{const{childNodes:e}=l.value;return!e||0===e.length||e.every((({visible:e})=>!e))}));Sn((()=>e.defaultCheckedKeys),(e=>{n.value.setDefaultCheckedKey(e)})),Sn((()=>e.defaultExpandedKeys),(e=>{n.value.defaultExpandedKeys=e,n.value.setDefaultExpandedKeys(e)})),Sn((()=>e.data),(e=>{n.value.setData(e)}),{deep:!0}),Sn((()=>e.checkStrictly),(e=>{n.value.checkStrictly=e}));const c=()=>{const e=n.value.getCurrentNode();return e?e.data:null};return $l("RootTree",{ctx:t,props:e,store:n,root:l,currentNode:a,instance:na()}),{store:n,root:l,currentNode:a,dragState:s,el$:o,dropIndicator$:r,isEmpty:u,filter:t=>{if(!e.filterNodeMethod)throw new Error("[Tree] filterNodeMethod is required when filter");n.value.filter(t)},getNodeKey:t=>wD(e.nodeKey,t.data),getNodePath:t=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in getNodePath");const a=n.value.getNode(t);if(!a)return[];const o=[a.data];let r=a.parent;for(;r&&r!==l.value;)o.push(r.data),r=r.parent;return o.reverse()},getCheckedNodes:(e,t)=>n.value.getCheckedNodes(e,t),getCheckedKeys:e=>n.value.getCheckedKeys(e),getCurrentNode:c,getCurrentKey:()=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in getCurrentKey");const t=c();return t?t[e.nodeKey]:null},setCheckedNodes:(t,l)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedNodes");n.value.setCheckedNodes(t,l)},setCheckedKeys:(t,l)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedKeys");n.value.setCheckedKeys(t,l)},setChecked:(e,t,l)=>{n.value.setChecked(e,t,l)},getHalfCheckedNodes:()=>n.value.getHalfCheckedNodes(),getHalfCheckedKeys:()=>n.value.getHalfCheckedKeys(),setCurrentNode:(t,l=!0)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentNode");n.value.setUserCurrentNode(t,l)},setCurrentKey:(t,l=!0)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentKey");n.value.setCurrentNodeKey(t,l)},getNode:e=>n.value.getNode(e),remove:e=>{n.value.remove(e)},append:(e,t)=>{n.value.append(e,t)},insertBefore:(e,t)=>{n.value.insertBefore(e,t)},insertAfter:(e,t)=>{n.value.insertAfter(e,t)},handleNodeExpand:(e,n,l)=>{i(n),t.emit("node-expand",e,n,l)},updateKeyChildren:(t,l)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in updateKeyChild");n.value.updateChildren(t,l)}}}});const ID={key:0,class:"el-tree__empty-block"},FD={class:"el-tree__empty-text"},VD={ref:"dropIndicator$",class:"el-tree__drop-indicator"};PD.render=function(e,t,n,l,a,o){const r=dl("el-tree-node");return wl(),Sl("div",{ref:"el$",class:["el-tree",{"el-tree--highlight-current":e.highlightCurrent,"is-dragging":!!e.dragState.draggingNode,"is-drop-not-allow":!e.dragState.allowDrop,"is-drop-inner":"inner"===e.dragState.dropType}],role:"tree"},[(wl(!0),Sl(gl,null,pa(e.root.childNodes,(t=>(wl(),Sl(r,{key:e.getNodeKey(t),node:t,props:e.props,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,"render-content":e.renderContent,onNodeExpand:e.handleNodeExpand},null,8,["node","props","render-after-expand","show-checkbox","render-content","onNodeExpand"])))),128)),e.isEmpty?(wl(),Sl("div",ID,[Ll("span",FD,c(e.emptyText),1)])):Pl("v-if",!0),Un(Ll("div",VD,null,512),[[mo,e.dragState.showDropIndicator]])],2)},PD.__file="packages/tree/src/tree.vue",PD.install=e=>{e.component(PD.name,PD)};const BD=PD;function $D(e,t,n){let l;l=n.response?""+(n.response.error||n.response):n.responseText?""+n.responseText:`fail to post ${e} ${n.status}`;const a=new Error(l);return a.status=n.status,a.method="post",a.url=e,a}function zD(e){if("undefined"==typeof XMLHttpRequest)return;const t=new XMLHttpRequest,n=e.action;t.upload&&(t.upload.onprogress=function(t){t.total>0&&(t.percent=t.loaded/t.total*100),e.onProgress(t)});const l=new FormData;e.data&&Object.keys(e.data).forEach((t=>{l.append(t,e.data[t])})),l.append(e.filename,e.file,e.file.name),t.onerror=function(){e.onError($D(n,0,t))},t.onload=function(){if(t.status<200||t.status>=300)return e.onError($D(n,0,t));e.onSuccess(function(e){const t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch(n){return t}}(t))},t.open("post",n,!0),e.withCredentials&&"withCredentials"in t&&(t.withCredentials=!0);const a=e.headers||{};for(const o in a)uy(a,o)&&null!==a[o]&&t.setRequestHeader(o,a[o]);return t.send(l),t}var jD=Qn({name:"ElUploadList",components:{ElProgress:mO},props:{files:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1},handlePreview:{type:Function,default:()=>ry},listType:{type:String,default:"text"}},emits:["remove"],setup:(e,{emit:t})=>({focusing:lt(!1),parsePercentage:e=>parseInt(e,10),handleClick:t=>{e.handlePreview(t)},handleRemove:(e,n)=>{t("remove",n)},onFileClicked:e=>{e.target.focus()},t:ak})});const RD=Ll("i",{class:"el-icon-document"},null,-1),HD={class:"el-upload-list__item-status-label"},WD={key:2,class:"el-icon-close-tip"},YD={key:4,class:"el-upload-list__item-actions"},qD=Ll("i",{class:"el-icon-zoom-in"},null,-1),KD=Ll("i",{class:"el-icon-delete"},null,-1);jD.render=function(e,t,n,l,a,o){const r=dl("el-progress");return wl(),Sl(Za,{tag:"ul",class:["el-upload-list","el-upload-list--"+e.listType,{"is-disabled":e.disabled}],name:"el-list"},{default:Zt((()=>[(wl(!0),Sl(gl,null,pa(e.files,(n=>(wl(),Sl("li",{key:n,class:["el-upload-list__item","is-"+n.status,e.focusing?"focusing":""],tabindex:"0",onKeydown:vo((t=>!e.disabled&&e.handleRemove(t,n)),["delete"]),onFocus:t[1]||(t[1]=t=>e.focusing=!0),onBlur:t[2]||(t[2]=t=>e.focusing=!1),onClick:t[3]||(t[3]=(...t)=>e.onFileClicked&&e.onFileClicked(...t))},[Ht(e.$slots,"default",{file:n},(()=>["uploading"!==n.status&&["picture-card","picture"].includes(e.listType)?(wl(),Sl("img",{key:0,class:"el-upload-list__item-thumbnail",src:n.url,alt:""},null,8,["src"])):Pl("v-if",!0),Ll("a",{class:"el-upload-list__item-name",onClick:t=>e.handleClick(n)},[RD,Al(c(n.name),1)],8,["onClick"]),Ll("label",HD,[Ll("i",{class:{"el-icon-upload-success":!0,"el-icon-circle-check":"text"===e.listType,"el-icon-check":["picture-card","picture"].includes(e.listType)}},null,2)]),e.disabled?Pl("v-if",!0):(wl(),Sl("i",{key:1,class:"el-icon-close",onClick:t=>e.handleRemove(t,n)},null,8,["onClick"])),Pl(" Due to close btn only appears when li gets focused disappears after li gets blurred, thus keyboard navigation can never reach close btn"),Pl(" This is a bug which needs to be fixed "),Pl(" TODO: Fix the incorrect navigation interaction "),e.disabled?Pl("v-if",!0):(wl(),Sl("i",WD,c(e.t("el.upload.deleteTip")),1)),"uploading"===n.status?(wl(),Sl(r,{key:3,type:"picture-card"===e.listType?"circle":"line","stroke-width":"picture-card"===e.listType?6:2,percentage:e.parsePercentage(n.percentage)},null,8,["type","stroke-width","percentage"])):Pl("v-if",!0),"picture-card"===e.listType?(wl(),Sl("span",YD,[Ll("span",{class:"el-upload-list__item-preview",onClick:t=>e.handlePreview(n)},[qD],8,["onClick"]),e.disabled?Pl("v-if",!0):(wl(),Sl("span",{key:0,class:"el-upload-list__item-delete",onClick:t=>e.handleRemove(t,n)},[KD],8,["onClick"]))])):Pl("v-if",!0)]))],42,["onKeydown"])))),128))])),_:3},8,["class"])},jD.__file="packages/upload/src/upload-list.vue";var UD=Qn({name:"ElUploadDrag",props:{disabled:{type:Boolean,default:!1}},emits:["file"],setup(e,{emit:t}){const n=zl("uploader",{}),l=lt(!1);return{dragover:l,onDrop:function(a){if(e.disabled||!n)return;const o=n.accept;l.value=!1,t("file",o?Array.from(a.dataTransfer.files).filter((e=>{const{type:t,name:n}=e,l=n.indexOf(".")>-1?"."+n.split(".").pop():"",a=t.replace(/\/.*$/,"");return o.split(",").map((e=>e.trim())).filter((e=>e)).some((e=>e.startsWith(".")?l===e:/\/\*$/.test(e)?a===e.replace(/\/\*$/,""):!!/^[^\/]+\/[^\/]+$/.test(e)&&t===e))})):a.dataTransfer.files)},onDragover:function(){e.disabled||(l.value=!0)}}}});UD.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:{"el-upload-dragger":!0,"is-dragover":e.dragover},onDrop:t[1]||(t[1]=fo(((...t)=>e.onDrop&&e.onDrop(...t)),["prevent"])),onDragover:t[2]||(t[2]=fo(((...t)=>e.onDragover&&e.onDragover(...t)),["prevent"])),onDragleave:t[3]||(t[3]=fo((t=>e.dragover=!1),["prevent"]))},[Ht(e.$slots,"default")],34)},UD.__file="packages/upload/src/upload-dragger.vue";var GD=Qn({components:{UploadDragger:UD},props:{type:{type:String,default:""},action:{type:String,required:!0},name:{type:String,default:"file"},data:{type:Object,default:()=>null},headers:{type:Object,default:()=>null},withCredentials:{type:Boolean,default:!1},multiple:{type:Boolean,default:null},accept:{type:String,default:""},onStart:{type:Function,default:ry},onProgress:{type:Function,default:ry},onSuccess:{type:Function,default:ry},onError:{type:Function,default:ry},beforeUpload:{type:Function,default:ry},drag:{type:Boolean,default:!1},onPreview:{type:Function,default:ry},onRemove:{type:Function,default:ry},fileList:{type:Array,default:()=>[]},autoUpload:{type:Boolean,default:!0},listType:{type:String,default:"text"},httpRequest:{type:Function,default:()=>zD},disabled:Boolean,limit:{type:Number,default:null},onExceed:{type:Function,default:ry}},setup(e){const t=lt({}),n=lt(!1),l=lt(null);function a(t){if(e.limit&&e.fileList.length+t.length>e.limit)return void e.onExceed(t,e.fileList);let n=Array.from(t);e.multiple||(n=n.slice(0,1)),0!==n.length&&n.forEach((t=>{e.onStart(t),e.autoUpload&&o(t)}))}function o(t){if(l.value.value=null,!e.beforeUpload)return r(t);const n=e.beforeUpload(t);n instanceof Promise?n.then((e=>{const n=Object.prototype.toString.call(e);if("[object File]"===n||"[object Blob]"===n){"[object Blob]"===n&&(e=new File([e],t.name,{type:t.type}));for(const n in t)uy(t,n)&&(e[n]=t[n]);r(e)}else r(t)})).catch((()=>{e.onRemove(null,t)})):!1!==n?r(t):e.onRemove(null,t)}function r(n){const{uid:l}=n,a={headers:e.headers,withCredentials:e.withCredentials,file:n,data:e.data,filename:e.name,action:e.action,onProgress:t=>{e.onProgress(t,n)},onSuccess:a=>{e.onSuccess(a,n),delete t.value[l]},onError:a=>{e.onError(a,n),delete t.value[l]}},o=e.httpRequest(a);t.value[l]=o,o instanceof Promise&&o.then(a.onSuccess,a.onError)}function i(){e.disabled||(l.value.value=null,l.value.click())}return{reqs:t,mouseover:n,inputRef:l,abort:function(e){const n=t.value;if(e){let t=e;e.uid&&(t=e.uid),n[t]&&n[t].abort()}else Object.keys(n).forEach((e=>{n[e]&&n[e].abort(),delete n[e]}))},post:r,handleChange:function(e){const t=e.target.files;t&&a(t)},handleClick:i,handleKeydown:function(){i()},upload:o,uploadFiles:a}}});function XD(e,t){return t.find((t=>t.uid===e.uid))}function ZD(e){return Date.now()+e}GD.render=function(e,t,n,l,a,o){const r=dl("upload-dragger");return wl(),Sl("div",{class:["el-upload","el-upload--"+e.listType],tabindex:"0",onClick:t[2]||(t[2]=(...t)=>e.handleClick&&e.handleClick(...t)),onKeydown:t[3]||(t[3]=vo(fo(((...t)=>e.handleKeydown&&e.handleKeydown(...t)),["self"]),["enter","space"]))},[e.drag?(wl(),Sl(r,{key:0,disabled:e.disabled,onFile:e.uploadFiles},{default:Zt((()=>[Ht(e.$slots,"default")])),_:3},8,["disabled","onFile"])):Ht(e.$slots,"default",{key:1}),Ll("input",{ref:"inputRef",class:"el-upload__input",type:"file",name:e.name,multiple:e.multiple,accept:e.accept,onChange:t[1]||(t[1]=(...t)=>e.handleChange&&e.handleChange(...t))},null,40,["name","multiple","accept"])],34)},GD.__file="packages/upload/src/upload.vue";var JD=Qn({name:"ElUpload",components:{Upload:GD,UploadList:jD},props:{action:{type:String,required:!0},headers:{type:Object,default:()=>({})},data:{type:Object,default:()=>({})},multiple:{type:Boolean,default:!1},name:{type:String,default:"file"},drag:{type:Boolean,default:!1},withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:{type:String,default:""},type:{type:String,default:"select"},beforeUpload:{type:Function,default:ry},beforeRemove:{type:Function,default:ry},onRemove:{type:Function,default:ry},onChange:{type:Function,default:ry},onPreview:{type:Function,default:ry},onSuccess:{type:Function,default:ry},onProgress:{type:Function,default:ry},onError:{type:Function,default:ry},fileList:{type:Array,default:()=>[]},autoUpload:{type:Boolean,default:!0},listType:{type:String,default:"text"},httpRequest:{type:Function,default:zD},disabled:Boolean,limit:{type:Number,default:null},onExceed:{type:Function,default:()=>ry}},setup(e){const t=zl("elForm",{}),n=ca((()=>e.disabled||t.disabled)),{abort:l,clearFiles:a,handleError:o,handleProgress:r,handleStart:i,handleSuccess:s,handleRemove:u,submit:c,uploadRef:d,uploadFiles:p}=(e=>{let t=[];const n=lt([]),l=lt(null);let a=1;function o(e){l.value.abort(e)}return Sn((()=>e.listType),(t=>{"picture-card"!==t&&"picture"!==t||(n.value=n.value.map((t=>{if(!t.url&&t.raw)try{t.url=URL.createObjectURL(t.raw)}catch(l){e.onError(l,t,n.value)}return t})))})),Sn((()=>e.fileList),(e=>{Sv(t,e)||(t=[],n.value=e.map((e=>{const n=ay(e);return t.push(n),Object.assign(Object.assign({},n),{uid:e.uid||ZD(a++),status:e.status||"success"})})))}),{immediate:!0,deep:!0}),{abort:o,clearFiles:function(){n.value=[]},handleError:function(t,l){const a=XD(l,n.value);a.status="fail",n.value.splice(n.value.indexOf(a),1),e.onError(t,a,n.value),e.onChange(a,n.value)},handleProgress:function(t,l){const a=XD(l,n.value);e.onProgress(t,a,n.value),a.status="uploading",a.percentage=t.percent||0},handleStart:function(t){const l=ZD(a++);t.uid=l;const o={name:t.name,percentage:0,status:"ready",size:t.size,raw:t,uid:l};if("picture-card"===e.listType||"picture"===e.listType)try{o.url=URL.createObjectURL(t)}catch(r){console.error("[Element Error][Upload]",r),e.onError(r,o,n.value)}n.value.push(o),e.onChange(o,n.value)},handleSuccess:function(t,l){const a=XD(l,n.value);a&&(a.status="success",a.response=t,e.onSuccess(t,a,n.value),e.onChange(a,n.value))},handleRemove:function(t,l){l&&(t=XD(l,n.value));const a=()=>{o(t);const l=n.value;l.splice(l.indexOf(t),1),e.onRemove(t,l)};if(e.beforeRemove){if("function"==typeof e.beforeRemove){const l=e.beforeRemove(t,n.value);l instanceof Promise?l.then((()=>{a()})).catch(ry):!1!==l&&a()}}else a()},submit:function(){n.value.filter((e=>"ready"===e.status)).forEach((e=>{l.value.upload(e.raw)}))},uploadFiles:n,uploadRef:l}})(e);return $l("uploader",na()),bn((()=>{p.value.forEach((e=>{e.url&&0===e.url.indexOf("blob:")&&URL.revokeObjectURL(e.url)}))})),{abort:l,dragOver:lt(!1),draging:lt(!1),handleError:o,handleProgress:r,handleRemove:u,handleStart:i,handleSuccess:s,uploadDisabled:n,uploadFiles:p,uploadRef:d,submit:c,clearFiles:a}},render(){var e,t;let n;n=this.showFileList?da(jD,{disabled:this.uploadDisabled,listType:this.listType,files:this.uploadFiles,onRemove:this.handleRemove,handlePreview:this.onPreview},this.$slots.file?{default:e=>this.$slots.file({file:e.file})}:null):null;const l={type:this.type,drag:this.drag,action:this.action,multiple:this.multiple,"before-upload":this.beforeUpload,"with-credentials":this.withCredentials,headers:this.headers,name:this.name,data:this.data,accept:this.accept,fileList:this.uploadFiles,autoUpload:this.autoUpload,listType:this.listType,disabled:this.uploadDisabled,limit:this.limit,"on-exceed":this.onExceed,"on-start":this.handleStart,"on-progress":this.handleProgress,"on-success":this.handleSuccess,"on-error":this.handleError,"on-preview":this.onPreview,"on-remove":this.handleRemove,"http-request":this.httpRequest,ref:"uploadRef"},a=this.$slots.trigger||this.$slots.default,o=da(GD,l,{default:()=>null==a?void 0:a()});return da("div",["picture-card"===this.listType?n:null,this.$slots.trigger?[o,this.$slots.default()]:o,null===(t=(e=this.$slots).tip)||void 0===t?void 0:t.call(e),"picture-card"!==this.listType?n:null])}});JD.__file="packages/upload/src/index.vue",JD.install=e=>{e.component(JD.name,JD)};const QD=JD;var eL=Qn({props:{prefixCls:{type:String,default:"el-space"}},setup:e=>({classes:ca((()=>e.prefixCls+"__item"))})});eL.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:e.classes},[Ht(e.$slots,"default")],2)},eL.__file="packages/space/src/item.vue";const tL={mini:4,small:8,medium:12,large:16},nL=Qn({name:"ElSpace",props:{direction:{type:String,default:"horizontal"},class:{type:[String,Object,Array],default:""},style:{type:[String,Array,Object]},alignment:{type:String,default:"center"},prefixCls:{type:String},spacer:{type:[Object,String,Number],default:null,validator:e=>El(e)||Ty(e)||py(e)},wrap:{type:Boolean,default:!1},size:{type:[String,Array,Number],validator:e=>Ib(e)||Ty(e)||cy(e)}},setup:e=>function(e){const t=ca((()=>["el-space","el-space--"+e.direction,e.class])),n=lt(0),l=lt(0);return Sn((()=>[e.size,e.wrap,e.direction]),(([e="small",t,a])=>{if(cy(e)){const[t=0,a=0]=e;n.value=t,l.value=a}else{let o;o=Ty(e)?e:tL[e]||tL.small,t&&"horizontal"===a?n.value=l.value=o:"horizontal"===a?(n.value=o,l.value=0):(l.value=o,n.value=0)}}),{immediate:!0}),{classes:t,containerStyle:ca((()=>[e.wrap?{flexWrap:"wrap",marginBottom:`-${l.value}px`}:null,{alignItems:e.alignment},e.style])),itemStyle:ca((()=>({paddingBottom:l.value+"px",marginRight:n.value+"px"})))}}(e),render(e){const{classes:t,$slots:n,containerStyle:l,itemStyle:a,spacer:o,prefixCls:r,direction:i}=e,s=Ht(n,"default",{key:0},(()=>[]));if(0===s.children.length)return null;if(cy(s.children)){let e=[];if(s.children.forEach(((t,n)=>{var l;r_(t)?cy(t.children)&&t.children.forEach(((t,n)=>{e.push(Ll(eL,{style:a,prefixCls:r,key:"nested-"+n},{default:()=>[t]},o_.PROPS|o_.STYLE,["style","prefixCls"]))})):r_(l=t)||i_(l)||e.push(Ll(eL,{style:a,prefixCls:r,key:"LoopKey"+n},{default:()=>[t]},o_.PROPS|o_.STYLE,["style","prefixCls"]))})),o){const t=e.length-1;e=e.reduce(((e,n,l)=>l===t?[...e,n]:[...e,n,Ll("span",{style:[a,"vertical"===i?"width: 100%":null],key:l},[El(o)?o:Al(o,o_.TEXT)],o_.STYLE)]),[])}return Ll("div",{class:t,style:l},e,o_.STYLE|o_.CLASS)}return s.children}});nL.install=e=>{e.component(nL.name,nL)};var lL=Qn({name:"ImgPlaceholder"});const aL={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},oL=Ll("path",{d:"M64 896V128h896v768H64z m64-128l192-192 116.352 116.352L640 448l256 307.2V192H128v576z m224-480a96 96 0 1 1-0.064 192.064A96 96 0 0 1 352 288z"},null,-1);lL.render=function(e,t,n,l,a,o){return wl(),Sl("svg",aL,[oL])},lL.__file="packages/skeleton-item/src/img-placeholder.vue";var rL=Qn({name:"ElSkeletonItem",components:{[lL.name]:lL},props:{variant:{type:String,default:"text"}}});rL.render=function(e,t,n,l,a,o){const r=dl("img-placeholder");return wl(),Sl("div",{class:["el-skeleton__item","el-skeleton__"+e.variant]},["image"===e.variant?(wl(),Sl(r,{key:0})):Pl("v-if",!0)],2)},rL.__file="packages/skeleton-item/src/index.vue",rL.install=e=>{e.component(rL.name,rL)};const iL=rL;var sL=Qn({name:"ElSkeleton",components:{[iL.name]:iL},props:{animated:{type:Boolean,default:!1},count:{type:Number,default:1},rows:{type:Number,default:3},loading:{type:Boolean,default:!0},throttle:{type:Number}},setup:e=>({uiLoading:function(e,t=0){if(0===t)return e;const n=lt(!1);let l=0;const a=()=>{l&&clearTimeout(l),l=window.setTimeout((()=>{n.value=e.value}),t)};return mn(a),Sn((()=>e.value),(e=>{e?a():n.value=e})),n}(ca((()=>e.loading)),e.throttle)})});sL.render=function(e,t,n,l,a,o){const r=dl("el-skeleton-item");return e.uiLoading?(wl(),Sl("div",Bl({key:0,class:["el-skeleton",e.animated?"is-animated":""]},e.$attrs),[(wl(!0),Sl(gl,null,pa(e.count,(t=>(wl(),Sl(gl,{key:t},[e.loading?Ht(e.$slots,"template",{key:0},(()=>[Ll(r,{class:"is-first",variant:"p"}),(wl(!0),Sl(gl,null,pa(e.rows,(t=>(wl(),Sl(r,{key:t,class:{"el-skeleton__paragraph":!0,"is-last":t===e.rows&&e.rows>1},variant:"p"},null,8,["class"])))),128))])):Pl("v-if",!0)],64)))),128))],16)):Ht(e.$slots,"default",Bl({key:1},e.$attrs))},sL.__file="packages/skeleton/src/index.vue",sL.install=e=>{e.component(sL.name,sL)};const uL=sL;var cL=Qn({name:"ElCheckTag",props:{checked:Boolean},emits:["change"],setup:(e,{emit:t})=>({onChange:()=>{t("change",!e.checked)}})});cL.render=function(e,t,n,l,a,o){return wl(),Sl("span",{class:{"el-check-tag":!0,"is-checked":e.checked},onClick:t[1]||(t[1]=(...t)=>e.onChange&&e.onChange(...t))},[Ht(e.$slots,"default")],2)},cL.__file="packages/check-tag/src/index.vue",cL.install=e=>{e.component(cL.name,cL)};const dL=cL;var pL=Qn({name:"ElDescriptionsItem"});pL.install=e=>{e.component(pL.name,pL)};const fL=pL;var hL=Qn({name:"ElDescriptionsCell",props:{cell:{type:Object},tag:{type:String},type:{type:String}},setup:e=>({descriptions:zl("elDescriptions",{}),label:ca((()=>{var t,n,l,a,o;return(null===(l=null===(n=null===(t=e.cell)||void 0===t?void 0:t.children)||void 0===n?void 0:n.label)||void 0===l?void 0:l.call(n))||(null===(o=null===(a=e.cell)||void 0===a?void 0:a.props)||void 0===o?void 0:o.label)})),content:ca((()=>{var t,n,l;return null===(l=null===(n=null===(t=e.cell)||void 0===t?void 0:t.children)||void 0===n?void 0:n.default)||void 0===l?void 0:l.call(n)})),span:ca((()=>{var t,n;return(null===(n=null===(t=e.cell)||void 0===t?void 0:t.props)||void 0===n?void 0:n.span)||1}))}),render(){switch(this.type){case"label":return da(this.tag,{class:["el-descriptions__label",{"is-bordered-label":this.descriptions.border}],colSpan:"vertical"===this.descriptions.direction?this.span:1},this.label);case"content":return da(this.tag,{class:"el-descriptions__content",colSpan:"vertical"===this.descriptions.direction?this.span:2*this.span-1},this.content);default:return da("td",{colSpan:this.span},[da("span",{class:["el-descriptions__label",{"is-bordered-label":this.descriptions.border}]},this.label),da("span",{class:"el-descriptions__content"},this.content)])}}}),vL=Qn({name:"ElDescriptionsRow",components:{[hL.name]:hL},props:{row:{type:Array}},setup:()=>({descriptions:zl("elDescriptions",{})})});const mL={key:1};vL.render=function(e,t,n,l,a,o){const r=dl("el-descriptions-cell");return"vertical"===e.descriptions.direction?(wl(),Sl(gl,{key:0},[Ll("tr",null,[(wl(!0),Sl(gl,null,pa(e.row,((e,t)=>(wl(),Sl(r,{key:"tr1-"+t,cell:e,tag:"th",type:"label"},null,8,["cell"])))),128))]),Ll("tr",null,[(wl(!0),Sl(gl,null,pa(e.row,((e,t)=>(wl(),Sl(r,{key:"tr2-"+t,cell:e,tag:"td",type:"content"},null,8,["cell"])))),128))])],64)):(wl(),Sl("tr",mL,[(wl(!0),Sl(gl,null,pa(e.row,((t,n)=>(wl(),Sl(gl,{key:"tr3-"+n},[e.descriptions.border?(wl(),Sl(gl,{key:0},[Ll(r,{cell:t,tag:"td",type:"label"},null,8,["cell"]),Ll(r,{cell:t,tag:"td",type:"content"},null,8,["cell"])],64)):(wl(),Sl(r,{key:1,cell:t,tag:"td",type:"both"},null,8,["cell"]))],64)))),128))]))},vL.__file="packages/descriptions/src/descriptions-row.vue";var gL=Qn({name:"ElDescriptions",components:{[fL.name]:fL,[vL.name]:vL},props:{border:{type:Boolean,default:!1},column:{type:Number,default:3},direction:{type:String,default:"horizontal"},size:{type:String,validator:Ib},title:{type:String,default:""},extra:{type:String,default:""}},setup(e,{slots:t}){$l("elDescriptions",e);const n=Ay(),l=ca((()=>e.size||n.size)),a=e=>{const t=Array.isArray(e)?e:[e],n=[];return t.forEach((e=>{Array.isArray(e.children)?n.push(...a(e.children)):n.push(e)})),n},o=(t,n,l,a=!1)=>(t.props||(t.props={}),n>l&&(t.props.span=l),a&&(t.props.span=e.column),t);return{descriptionsSize:l,rows:ca((()=>{var n;const l=a(null===(n=t.default)||void 0===n?void 0:n.call(t)).filter((e=>{var t;return"ElDescriptionsItem"===(null===(t=null==e?void 0:e.type)||void 0===t?void 0:t.name)})),r=[];let i=[],s=e.column;return l.forEach(((t,n)=>{var a;const u=(null===(a=t.props)||void 0===a?void 0:a.span)||1;if(n===l.length-1)return i.push(o(t,u,s,!0)),void r.push(i);u<s?(s-=u,i.push(t)):(i.push(o(t,u,s)),r.push(i),s=e.column,i=[])})),r}))}}});const yL={class:"el-descriptions"},bL={key:0,class:"el-descriptions__header"},_L={class:"el-descriptions__title"},kL={class:"el-descriptions__extra"},xL={class:"el-descriptions__body"};gL.render=function(e,t,n,l,a,o){const r=dl("el-descriptions-row");return wl(),Sl("div",yL,[e.title||e.extra||e.$slots.title||e.$slots.extra?(wl(),Sl("div",bL,[Ll("div",_L,[Ht(e.$slots,"title",{},(()=>[Al(c(e.title),1)]))]),Ll("div",kL,[Ht(e.$slots,"extra",{},(()=>[Al(c(e.extra),1)]))])])):Pl("v-if",!0),Ll("div",xL,[Ll("table",{class:[{"is-bordered":e.border},e.descriptionsSize?"el-descriptions--"+e.descriptionsSize:""]},[Ll("tbody",null,[(wl(!0),Sl(gl,null,pa(e.rows,((e,t)=>(wl(),Sl(r,{key:t,row:e},null,8,["row"])))),128))])],2)])])},gL.__file="packages/descriptions/src/index.vue",gL.install=e=>{e.component(gL.name,gL)};const wL=gL;var CL=Qn({name:"IconSuccess"});const SL={viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg"},EL=Ll("path",{d:"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M34.5548098,16.4485711 C33.9612228,15.8504763 32.9988282,15.8504763 32.4052412,16.4485711 L32.4052412,16.4485711 L21.413757,27.5805811 L21.413757,27.5805811 L21.4034642,27.590855 C21.0097542,27.9781674 20.3766105,27.9729811 19.9892981,27.5792711 L19.9892981,27.5792711 L15.5947588,23.1121428 C15.0011718,22.514048 14.0387772,22.514048 13.4451902,23.1121428 C12.8516033,23.7102376 12.8516033,24.6799409 13.4451902,25.2780357 L13.4451902,25.2780357 L19.6260786,31.5514289 C20.2196656,32.1495237 21.1820602,32.1495237 21.7756472,31.5514289 L21.7756472,31.5514289 L34.5548098,18.614464 C35.1483967,18.0163692 35.1483967,17.0466659 34.5548098,16.4485711 Z"},null,-1);CL.render=function(e,t,n,l,a,o){return wl(),Sl("svg",SL,[EL])},CL.__file="packages/result/src/icon-success.vue";var ML=Qn({name:"IconError"});const OL={viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg"},TL=Ll("path",{d:"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M32.57818,15.42182 C32.0157534,14.8593933 31.1038797,14.8593933 30.541453,15.42182 L30.541453,15.42182 L24.0006789,21.9625941 L17.458547,15.42182 C16.8961203,14.8593933 15.9842466,14.8593933 15.42182,15.42182 C14.8593933,15.9842466 14.8593933,16.8961203 15.42182,17.458547 L15.42182,17.458547 L21.9639519,23.9993211 L15.42182,30.541453 C14.8593933,31.1038797 14.8593933,32.0157534 15.42182,32.57818 C15.9842466,33.1406067 16.8961203,33.1406067 17.458547,32.57818 L17.458547,32.57818 L24.0006789,26.0360481 L30.541453,32.57818 C31.1038797,33.1406067 32.0157534,33.1406067 32.57818,32.57818 C33.1406067,32.0157534 33.1406067,31.1038797 32.57818,30.541453 L32.57818,30.541453 L26.0374059,23.9993211 L32.57818,17.458547 C33.1406067,16.8961203 33.1406067,15.9842466 32.57818,15.42182 Z"},null,-1);ML.render=function(e,t,n,l,a,o){return wl(),Sl("svg",OL,[TL])},ML.__file="packages/result/src/icon-error.vue";var DL=Qn({name:"IconWarning"});const LL={viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg"},NL=Ll("path",{d:"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M24,31 C22.8954305,31 22,31.8954305 22,33 C22,34.1045695 22.8954305,35 24,35 C25.1045695,35 26,34.1045695 26,33 C26,31.8954305 25.1045695,31 24,31 Z M24,14 C23.1715729,14 22.5,14.6715729 22.5,15.5 L22.5,15.5 L22.5,27.5 C22.5,28.3284271 23.1715729,29 24,29 C24.8284271,29 25.5,28.3284271 25.5,27.5 L25.5,27.5 L25.5,15.5 C25.5,14.6715729 24.8284271,14 24,14 Z"},null,-1);DL.render=function(e,t,n,l,a,o){return wl(),Sl("svg",LL,[NL])},DL.__file="packages/result/src/icon-warning.vue";var AL=Qn({name:"IconInfo"});const PL={viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg"},IL=Ll("path",{d:"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M24,19 L21,19 C20.1715729,19 19.5,19.6715729 19.5,20.5 C19.5,21.3284271 20.1715729,22 21,22 L21,22 L22.5,22 L22.5,31 L21,31 C20.1715729,31 19.5,31.6715729 19.5,32.5 C19.5,33.3284271 20.1715729,34 21,34 L21,34 L27,34 C27.8284271,34 28.5,33.3284271 28.5,32.5 C28.5,31.6715729 27.8284271,31 27,31 L27,31 L25.5,31 L25.5,20.5 C25.5,19.6715729 24.8284271,19 24,19 L24,19 Z M24,13 C22.8954305,13 22,13.8954305 22,15 C22,16.1045695 22.8954305,17 24,17 C25.1045695,17 26,16.1045695 26,15 C26,13.8954305 25.1045695,13 24,13 Z"},null,-1);AL.render=function(e,t,n,l,a,o){return wl(),Sl("svg",PL,[IL])},AL.__file="packages/result/src/icon-info.vue";const FL={success:"icon-success",warning:"icon-warning",error:"icon-error",info:"icon-info"};var VL=Qn({name:"ElResult",components:{[CL.name]:CL,[ML.name]:ML,[DL.name]:DL,[AL.name]:AL},props:{title:{type:String,default:""},subTitle:{type:String,default:""},icon:{type:String,default:"info"}},setup:e=>({iconElement:ca((()=>{const t=e.icon;return t&&FL[t]?FL[t]:"icon-info"}))})});const BL={class:"el-result"},$L={class:"el-result__icon"},zL={key:0,class:"el-result__title"},jL={key:1,class:"el-result__subtitle"},RL={key:2,class:"el-result__extra"};VL.render=function(e,t,n,l,a,o){return wl(),Sl("div",BL,[Ll("div",$L,[Ht(e.$slots,"icon",{},(()=>[(wl(),Sl(fl(e.iconElement),{class:e.iconElement},null,8,["class"]))]))]),e.title||e.$slots.title?(wl(),Sl("div",zL,[Ht(e.$slots,"title",{},(()=>[Ll("p",null,c(e.title),1)]))])):Pl("v-if",!0),e.subTitle||e.$slots.subTitle?(wl(),Sl("div",jL,[Ht(e.$slots,"subTitle",{},(()=>[Ll("p",null,c(e.subTitle),1)]))])):Pl("v-if",!0),e.$slots.extra?(wl(),Sl("div",RL,[Ht(e.$slots,"extra")])):Pl("v-if",!0)])},VL.__file="packages/result/src/index.vue",VL.install=e=>{e.component(VL.name,VL)};const HL=VL;if(!oy){const e=window;e.dayjs||(e.dayjs=Rc)}const WL={size:"",zIndex:2e3},YL=[eb,ob,ib,L_,A_,V_,z_,H_,K_,Z_,ek,Kk,Xk,nx,ox,Kx,Bx,dx,Gx,Jx,dL,Qx,nw,iw,aw,Fw,Bw,FC,YC,KC,JC,nS,aS,rS,DS,NS,$b,IS,VS,$S,aE,ZS,Qb,hE,gE,ME,AE,$E,RE,MM,NM,BM,eO,oO,cO,M_,mO,mx,yO,_O,xO,wO,a_,EM,NO,BO,zO,RO,qO,UO,VT,RT,qT,zx,Fk,ZT,QT,sD,FE,_D,BD,QD,nL,uL,iL,wL,fL,HL],qL=[pE,CE,GE,uM,mM];var KL={version:"1.0.2-beta.44",install:(e,t)=>{const n=Object.assign(WL,t);var l;(e=>{tk=e||tk,tk.name&&Rc.locale(tk.name)})(n.locale),n.i18n&&(l=n.i18n,nk=l),e.config.globalProperties.$ELEMENT=n,d_=n,YL.forEach((t=>{e.component(t.name,t)})),qL.forEach((t=>{e.use(t)}))}};export{gl as F,KL as I,Ll as a,dl as b,Sl as c,Qn as d,Gt as e,Fi as f,xo as g,wl as o,Ut as p,lt as r,c as t,Xt as w};
diff --git a/en/bar-race/body.html b/en/bar-race/body.html
new file mode 100644
index 0000000..b842d50
--- /dev/null
+++ b/en/bar-race/body.html
@@ -0,0 +1,6 @@
+<script type="module" crossorigin src="./assets/main.79ef808e.js"></script>
+  <link rel="modulepreload" href="./assets/vendor.82c46759.js">
+  <link rel="stylesheet" href="./assets/main.80a6a299.css">
+<!-- Body HTML that will be final deployed -->
+<div id="echarts-spa-app"></div>
+
diff --git a/en/builder.html b/en/builder.html
index 6d758f3..16d73a4 100644
--- a/en/builder.html
+++ b/en/builder.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/builder/echarts.html b/en/builder/echarts.html
index 023224f..dcef92e 100644
--- a/en/builder/echarts.html
+++ b/en/builder/echarts.html
@@ -54,7 +54,7 @@
                 'rollup': 'lib/rollup.browser',
                 'transformDev': 'lib/transform-dev-bundle'
             },
-            urlArgs: 'v=1620894510041'
+            urlArgs: 'v=1623211036275'
         });
 
         require(['build']);
diff --git a/en/changelog.html b/en/changelog.html
index ad4c76d..4d15a80 100644
--- a/en/changelog.html
+++ b/en/changelog.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -7,7 +7,39 @@
     document.head.insertBefore(el, document.getElementById('font-hack'));
 }
 </script><title>Changelog - Apache ECharts</title><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://echarts.apache.org/en/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
-<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>Please visit the official Apache ECharts Website at</p><a id="a2" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>Visit Official Website</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav class="navbar navbar-default navbar-fixed-top"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/en/index.html" class="navbar-brand"><img src="https://echarts.apache.org/en/images/logo.png" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/en/index.html">Home</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Docs<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/feature.html">Features</a></li><li><a href="https://echarts.apache.org/en/tutorial.html">Tutorials</a></li><li><a href="https://echarts.apache.org/en/api.html">API</a></li><li><a href="https://echarts.apache.org/en/option.html">Chart Configuration</a></li><li><a href="https://echarts.apache.org/en/changelog.html">Changelog</a></li><li><a href="https://echarts.apache.org/en/faq.html">FAQ</a></li><li><a href="https://echarts.apache.org/en/tutorial.html#ECharts%205%20Upgrade%20Guide">V5 Upgrade Guide<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Download<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/download.html">Download</a></li><li><a href="https://echarts.apache.org/en/download-theme.html">Download Themes</a></li><li><a href="https://echarts.apache.org/en/download-extension.html">Download Extensions</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/en/index.html">Examples</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Resources<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/spreadsheet.html">Spread Sheet Tool</a></li><li><a href="https://echarts.apache.org/en/theme-builder.html">Theme Builder</a></li><li><a href="https://echarts.apache.org/en/cheat-sheet.html">Cheat Sheet</a></li><li><a href="https://echarts.apache.org/en/resources.html">More Resources</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/events.html">Events</a></li><li><a href="https://echarts.apache.org/en/committers.html">Committers</a></li><li><a href="https://echarts.apache.org/en/maillist.html">Mailing List</a></li><li><a href="https://echarts.apache.org/en/contributing.html">How to Contribute</a></li><li><a href="https://echarts.apache.org/en/dependencies.html">Dependencies</a></li><li><a href="https://echarts.apache.org/en/coding-standard.html">Code Standard</a></li><li><a href="https://github.com/apache/echarts" target="_blank">Source Code (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/en/security.html">Security</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">License<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">Events<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('zh')">中文</a></li></ul></div></div></nav></nav><div class="page-main"><div class="page-info"><h1>Changelog</h1><p>[+]Add [-]Remove [^]Update [#]Fix</p><p class="page-info-echarts">Apache ECharts<sup>TM</sup></p></div><div class="page-content single-page"><div class="page-nav"><a class="slide-btn">Collapse</a><h4>Versions</h4><ul></ul></div><div class="page-detail changelog"><h2 id="v5-1-1">v5.1.1</h2>
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>Please visit the official Apache ECharts Website at</p><a id="a2" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>Visit Official Website</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav class="navbar navbar-default navbar-fixed-top"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/en/index.html" class="navbar-brand"><img src="https://echarts.apache.org/en/images/logo.png" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/en/index.html">Home</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Docs<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/feature.html">Features</a></li><li><a href="https://echarts.apache.org/en/tutorial.html">Tutorials</a></li><li><a href="https://echarts.apache.org/en/api.html">API</a></li><li><a href="https://echarts.apache.org/en/option.html">Chart Configuration</a></li><li><a href="https://echarts.apache.org/en/changelog.html">Changelog</a></li><li><a href="https://echarts.apache.org/en/faq.html">FAQ</a></li><li><a href="https://echarts.apache.org/en/tutorial.html#ECharts%205%20Upgrade%20Guide">V5 Upgrade Guide<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Download<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/download.html">Download</a></li><li><a href="https://echarts.apache.org/en/download-theme.html">Download Themes</a></li><li><a href="https://echarts.apache.org/en/download-extension.html">Download Extensions</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/en/index.html">Examples</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Resources<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/spreadsheet.html">Spread Sheet Tool</a></li><li><a href="https://echarts.apache.org/en/theme-builder.html">Theme Builder</a></li><li><a href="https://echarts.apache.org/en/cheat-sheet.html">Cheat Sheet</a></li><li><a href="https://echarts.apache.org/en/resources.html">More Resources</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/events.html">Events</a></li><li><a href="https://echarts.apache.org/en/committers.html">Committers</a></li><li><a href="https://echarts.apache.org/en/maillist.html">Mailing List</a></li><li><a href="https://echarts.apache.org/en/contributing.html">How to Contribute</a></li><li><a href="https://echarts.apache.org/en/dependencies.html">Dependencies</a></li><li><a href="https://echarts.apache.org/en/coding-standard.html">Code Standard</a></li><li><a href="https://github.com/apache/echarts" target="_blank">Source Code (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/en/security.html">Security</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">License<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">Events<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('zh')">中文</a></li></ul></div></div></nav></nav><div class="page-main"><div class="page-info"><h1>Changelog</h1><p>[+]Add [-]Remove [^]Update [#]Fix</p><p class="page-info-echarts">Apache ECharts<sup>TM</sup></p></div><div class="page-content single-page"><div class="page-nav"><a class="slide-btn">Collapse</a><h4>Versions</h4><ul></ul></div><div class="page-detail changelog"><h2 id="v5-1-2">v5.1.2</h2>
+<div class="time">2021-06-04</div>
+
+<ul>
+<li>[Feature] [geo/map] Support skew in transform and svg parser. <a href="https://github.com/ecomfe/zrender/issues/755">#755</a> (<a href="https://github.com/pissang">pissang</a>)</li>
+<li>[Feature] [tree] Add <code>treeAncestors</code> property in the params of tooltip callback . <a href="https://github.com/apache/echarts/issues/14957">#14957</a> (<a href="https://github.com/stephenLYZ">stephenLYZ</a>)</li>
+<li>[Feature] [i18n] Add Slovenian translation. <a href="https://github.com/apache/echarts/issues/14758">#14758</a> (<a href="https://github.com/dkrat7">dkrat7</a>)</li>
+<li>[Fix] [canvas] Fix extra <code>ctx.save</code> call when dirty rect is enabled. <a href="https://github.com/ecomfe/zrender/issues/765">#765</a> (<a href="https://github.com/pissang">pissang</a>)</li>
+<li>[Fix] [path] Fix small subpath may be ignored when optimizing small line segments. <a href="https://github.com/ecomfe/zrender/issues/760">#760</a> (<a href="https://github.com/pissang">pissang</a>)</li>
+<li>[Fix] [tooltip] When component <code>tooltip.formatter</code> is not specified, use a specific default formatter, rather than use global <code>tooltip.formatter</code> as default. Fix <a href="https://github.com/apache/echarts/issues/14939">#14939</a>. <a href="https://github.com/apache/echarts/issues/14972">#14972</a> (<a href="https://github.com/100pah">100pah</a>)</li>
+<li>[Fix] [resize] Error thrown when resize is called after setOption called with lazyUpdate: true. Fix <a href="https://github.com/apache/echarts/issues/14846">#14846</a>, Fix <a href="https://github.com/apache/echarts/issues/11395">#11395</a>. <a href="https://github.com/apache/echarts/issues/14934">#14934</a> (<a href="https://github.com/100pah">100pah</a>)</li>
+<li>[Fix] [treemap] Error when running setOption twice with diff data. <a href="https://github.com/apache/echarts/issues/14930">#14930</a> (<a href="https://github.com/Map1en">Map1en</a>)</li>
+<li>[Fix] [tree] Error when running setOption twice with diff data. <a href="https://github.com/apache/echarts/issues/14905">#14905</a> (<a href="https://github.com/Map1en">Map1en</a>)</li>
+<li>[Fix] [option] Check the missing component before merge theme. <a href="https://github.com/apache/echarts/issues/14966">#14966</a> (<a href="https://github.com/pissang">pissang</a>)</li>
+<li>[Fix] [text] Fix gradient text background cause rendering error. <a href="https://github.com/ecomfe/zrender/issues/756">#756</a> (<a href="https://github.com/pissang">pissang</a>)</li>
+<li>[Fix] [clip] Line chart will throw an error when <code>clip</code> is set as <code>false</code>. <a href="https://github.com/apache/echarts/issues/14813">#14813</a> (<a href="https://github.com/plainheart">plainheart</a>)</li>
+<li>[Fix] [legend] Remove unexpected syntax to ensure better compatibility. <a href="https://github.com/apache/echarts/issues/14810">#14810</a> (<a href="https://github.com/plainheart">plainheart</a>)</li>
+<li>[Fix] [dataZoom] Type fix for startValue and endValue. Close <a href="https://github.com/apache/echarts/issues/14412">#14412</a> <a href="https://github.com/apache/echarts/issues/14775">#14775</a> (<a href="https://github.com/dileepyelleti">dileepyelleti</a>)</li>
+<li>[Fix] [label] Ensure the label of the temporary symbol is in front of line and area polygon. <a href="https://github.com/apache/echarts/issues/14993">#14993</a> (<a href="https://github.com/plainheart">plainheart</a>)</li>
+<li>[Fix] [stack] Fix number getPrecisionSafe incorrect on scientific notation like 3.45e-1. Stack sum eliminate floating arithmetic problem. <a href="https://github.com/apache/echarts/issues/15015">#15015</a> (<a href="https://github.com/100pah">100pah</a>)</li>
+<li>[Fix] [dataZoom] Should no dataZoom filtering when <code>toolbox.feature.dataZoom</code> not declared. <a href="https://github.com/apache/echarts/issues/15015">#15015</a> (<a href="https://github.com/100pah">100pah</a>)</li>
+<li>[Fix] [line] Avoid the infinite value in <code>linearMap</code> util. <a href="https://github.com/apache/echarts/issues/14602">#14602</a> (<a href="https://github.com/plainheart">plainheart</a>)</li>
+<li>[Fix] [timeline] Trigger <code>timelineplaychange</code> event when play to the end. <a href="https://github.com/apache/echarts/issues/14620">#14620</a> (<a href="https://github.com/Ovilia">Ovilia</a>)</li>
+<li>[Fix] [custom] Fix progressive rendering in custom series. <a href="https://github.com/apache/echarts/issues/14920">#14920</a> (<a href="https://github.com/pissang">pissang</a>)</li>
+<li>[Fix] [brush] Clamp range when brush. <a href="https://github.com/apache/echarts/issues/14569">#14569</a> (<a href="https://github.com/susiwen8">susiwen8</a>)</li>
+<li>[Fix] [label] Fix labels are not on the top bug. <a href="https://github.com/apache/echarts/issues/14542">#14542</a> (<a href="https://github.com/plainheart">plainheart</a>)</li>
+<li>[Fix] [toolbox] The <code>show</code> option of customized toolbox button does not work. <a href="https://github.com/apache/echarts/issues/14408">#14408</a> (<a href="https://github.com/plainheart">plainheart</a>)</li>
+<li>[Fix] [type] Changed <code>LineEndLabelOption.valueAnimation</code> to be optional. <a href="https://github.com/apache/echarts/issues/14806">#14806</a> (<a href="https://github.com/Bilge">Bilge</a>)</li>
+<li>[Fix] [type] Export cbs and their parameter types. <a href="https://github.com/apache/echarts/issues/14871">#14871</a> (<a href="https://github.com/dougalg">dougalg</a>)</li>
+<li>[Fix] [type] Fix position callback return type. Fix <a href="https://github.com/apache/echarts/issues/15031">#15031</a>. (<a href="https://github.com/congjiujiu">congjiujiu</a>)</li>
+<li>[Fix] [type] Remove non-required properties from PatternObject and fix some type issues. <a href="https://github.com/ecomfe/zrender/issues/759">#759</a>. (<a href="https://github.com/plainheart">plainheart</a>)</li>
+</ul>
+<h2 id="v5-1-1">v5.1.1</h2>
 <div class="time">2021-04-27</div>
 
 <ul>
diff --git a/en/cheat-sheet.html b/en/cheat-sheet.html
index 87fdd5c..b04b4ab 100644
--- a/en/cheat-sheet.html
+++ b/en/cheat-sheet.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/coding-standard.html b/en/coding-standard.html
index 8d8d3a9..4b0fad9 100644
--- a/en/coding-standard.html
+++ b/en/coding-standard.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/committers.html b/en/committers.html
index 39cb8c2..b451c6b 100644
--- a/en/committers.html
+++ b/en/committers.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/contributing.html b/en/contributing.html
index ace7de4..cfd46b5 100644
--- a/en/contributing.html
+++ b/en/contributing.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/css/main.css b/en/css/main.css
index e45b7e1..a6beee2 100644
--- a/en/css/main.css
+++ b/en/css/main.css
@@ -1 +1 @@
-@font-face{font-family:'iconfont';src:url("font/iconfont.eot");src:url("font/iconfont.eot?#iefix") format("embedded-opentype"),url("font/iconfont.woff") format("woff"),url("font/iconfont.ttf") format("truetype"),url("font/iconfont.svg#iconfont") format("svg")}.iconfont{font-family:"iconfont" !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:url(font/OpenSans-Regular.ttf) format("truetype")}@font-face{font-family:'Open Sans';font-style:bold;font-weight:800;src:url(font/OpenSans-Bold.ttf) format("truetype")}html{height:100%}body{font-family:'Open Sans', "PingFang SC", Helvetica, Arial, sans-serif}#lowie-main{display:none}.lower-ie #main{display:none}.lower-ie #lowie-main{display:block;height:100%;width:100%;padding:200px 0 100px;background-color:#2a3c54}.lower-ie #lowie-main img{display:block;width:60%;margin:0 auto}#v4-link{position:fixed;bottom:0;left:50%;width:200px;margin-left:-100px;text-align:center;z-index:1000;padding:5px 30px}.navbar-default{border:none;background-color:#fff;z-index:10000;-webkit-transition:background-color 0.5s linear;-o-transition:background-color 0.5s linear;transition:background-color 0.5s linear;height:50px;-webkit-box-shadow:0 0 20px rgba(0,0,0,0.2);box-shadow:0 0 20px rgba(0,0,0,0.2)}.navbar-default .navbar-nav{-webkit-transition:background-color 0.5s linear;-o-transition:background-color 0.5s linear;transition:background-color 0.5s linear}.navbar-default .navbar-nav li{position:relative}.navbar-default .navbar-nav li a{color:#081642;background-color:none !important;padding:15px 20px;-webkit-transition:0.5s background-color;-o-transition:0.5s background-color;transition:0.5s background-color;font-size:14px}.navbar-default .navbar-nav li a:before{content:'';position:absolute;left:50%;right:50%;top:0;background:#081642;height:3px;-webkit-transition-property:'left, right';-o-transition-property:'left, right';transition-property:'left, right';-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.navbar-default .navbar-nav li a:hover,.navbar-default .navbar-nav li a:focus{color:#081642;background-color:#f9f9f9}.navbar-default .navbar-nav li a:hover:before,.navbar-default .navbar-nav li a:focus:before{left:0;right:0}.navbar-default .navbar-nav li a .iconfont{font-size:12px}.navbar-default .navbar-nav li a .new{display:inline-block;padding:0 5px;background-color:#F72C5B;color:#fff;font-size:12px;border-radius:3px;vertical-align:middle;-webkit-transform:scale(0.8);-ms-transform:scale(0.8);transform:scale(0.8)}.navbar-default .navbar-nav li.open{background-color:#f9f9f9;color:#fff}.navbar-default .navbar-nav li.open>a:focus,.navbar-default .navbar-nav li.open>a:hover{color:#081642;background-color:#f9f9f9}.navbar-default .navbar-nav li.active>a{padding-top:11px;border-top:3px solid #F72C5B;color:#F72C5B;background-color:#fff;-webkit-transition:0.5s background-color;-o-transition:0.5s background-color;transition:0.5s background-color}.navbar-default .navbar-nav li.active>a:before{display:none}.navbar-default .navbar-nav li.active>a:hover,.navbar-default .navbar-nav li.active>a:focus{color:#FF6D8F;background-color:#f9f9f9}.navbar-default .navbar-nav li .dropdown-menu{width:250px;padding:0;border:none}.navbar-default .navbar-nav li .dropdown-menu li{background-color:#fff;border-top:none}.navbar-default .navbar-nav li .dropdown-menu li a{padding:13px 20px}.navbar-default .navbar-nav li .dropdown-menu li:hover,.navbar-default .navbar-nav li .dropdown-menu li:focus{background-color:#f9f9f9}.navbar-default .navbar-nav li .dropdown-menu li:hover a,.navbar-default .navbar-nav li .dropdown-menu li:focus a{color:#344C9B;background-color:#f9f9f9}.navbar-default .navbar-nav li ul{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.1);box-shadow:0 0 20px rgba(0,0,0,0.1);border-radius:0 0 10px 10px;overflow:hidden}.navbar-default .navbar-nav li ul a:before{display:none}.navbar-default .navbar-logo{height:32px;margin-top:-6px;margin-left:-2px}.navbar-default #navbar-collapse{border-top:none;background:#fff;margin-left:-25px;margin-right:-15px}.navbar-default .navbar-toggle{padding:1px 5px;margin:7px 16px 0 0;border-color:#ddd;background-color:#fff}.navbar-default .navbar-toggle .icon-bar{margin:7px 0 !important;height:1px;background-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{border-color:#ddd;background-color:#f9f9f9}.container-fluid{padding:0 25px}#menu-btn{display:none;float:right;height:45px;line-height:45px;margin:5px 20px 0 0;font-size:30px;color:#fff;cursor:pointer}.navbar-bg{background-color:#fff;-webkit-transition-duration:0.3s;-o-transition-duration:0.3s;transition-duration:0.3s;-webkit-transition-property:background-color, opacity;-o-transition-property:background-color, opacity;transition-property:background-color, opacity}.navbar-bg .navbar-nav li a{color:#081642}.navbar-bg .navbar-nav li.active a{color:#F72C5B;background-color:transparent}#nav-apache{margin-left:10px;margin-right:10px;position:relative;top:1px}#nav-apache a{padding:10px 15px}#nav-apache a img{height:30px}#nav-github{height:50px;overflow:hidden}#nav-github a{padding-top:13px}.nav-circle{height:50px}.nav-circle-inner{width:22px;height:22px;margin:14px 20px;text-align:center;overflow:hidden;border:1px solid;border-radius:50%}.navbar-default .navbar-nav li .nav-circle-inner a{height:100%;padding:0;font-size:12px}.navbar-default .navbar-nav li .nav-circle-inner a:hover{text-decoration:none}.icon-external-link{position:relative;top:2px;left:5px;opacity:0.5}@media (max-width: 768px){.navbar-default .navbar-nav{-webkit-transition:background-color 0.5s linear;-o-transition:background-color 0.5s linear;transition:background-color 0.5s linear;margin-top:0;margin-bottom:0}.navbar-default .navbar-nav li.active>a{border-left:3px solid #081642;border-top:none;padding:10px 15px 10px 11px}#menu-btn{display:block}#nav-download{display:none}.dropdown-menu{width:100% !important}}@media (max-width: 1280px) and (min-width: 1192px){.navbar-default .navbar-nav li a{padding:15px 15px}}@media (max-width: 1192px) and (min-width: 900px){.navbar-default .navbar-nav li a{padding:15px 8px}}@media (max-width: 900px) and (min-width: 768px){.navbar-default .navbar-nav li a{padding:15px 3px;font-size:12px}}@media (max-width: 1065px){#nav-apache{display:none}}.page-main{position:absolute;left:0;right:0;top:50px;bottom:0;overflow-y:auto}.doc-version-change{position:absolute;top:70px;right:50px;z-index:100}.doc-version-change a{display:inline-block;margin-left:20px}.section-bg{background:#F4F7FC;padding:10px 0}.d-section.last-section{margin-bottom:30px;border-bottom:0}.page-info{margin-bottom:30px;text-align:center;padding:40px;color:#4e6167;background:#F4F7FC}.page-info h1{margin-bottom:5px;font-size:40px;font-weight:bold;color:#333}.page-info p{font-size:16px}.page-info-echarts{font-size:12px;margin-top:15px;color:#8E99AB}.page-content{min-height:300px;padding-bottom:40px;font-size:16px;line-height:22px}.page-content h2{color:#C42E51;padding-bottom:15px;border-bottom:1px solid #ddd;margin-top:40px;margin-bottom:20px}.page-content h2:first-child{margin-top:0}.page-content h3{margin:30px 0 10px 0}.page-content p{margin:10px 0}.page-content section{padding:40px 0;text-align:center}.page-content td,.page-content th{padding:5px 10px;border:1px solid #ddd}.page-content td ol,.page-content th ol{padding-left:1em}.page-content ul{padding-left:30px}.page-content ul li{list-style:disc}.page-content ol li{list-style:decimal}.page-content li{margin:5px 0}.page-nav{position:-webkit-sticky;position:sticky;overflow:auto;float:left;width:200px;top:20px;height:-webkit-calc(100vh - 100px);height:calc(100vh - 100px);margin:0 0 0 30px;padding:0 0 20px 0}.page-nav h4{margin:10px 0;color:#666;font-size:14px;padding-left:10px}.page-nav h4:first-child{margin-top:0}.page-nav h4.inner{margin:0;padding-left:0;font-size:18px}.page-nav a{border-left:1px solid rgba(78,97,103,0.25);color:#999;padding:7px 10px;display:block;position:relative}.page-nav a:before{content:'';position:absolute;top:50%;bottom:50%;background:#F72C5B;width:3px;left:-1px;-webkit-transition-property:'top, bottom';-o-transition-property:'top, bottom';transition-property:'top, bottom';-webkit-transition-duration:0.3s;-o-transition-duration:0.3s;transition-duration:0.3s;-webkit-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.page-nav a:hover{text-decoration:none;color:#333}.page-nav a:hover:before{top:0;bottom:0}.page-nav a.active{color:#F72C5B}.page-nav .slide-btn{display:none}.page-detail{margin-left:220px;margin-bottom:20px;padding:0 40px 0 40px;overflow-x:hidden}.page-detail h2{margin:10px 0;padding-top:20px;font-size:22px}.page-detail h2:first-child{margin-top:0;padding-top:0}.page-detail h2+h3{margin-top:20px}.page-detail h3{margin:40px 0 15px 0;font-size:18px}.page-detail p{margin:15px 0}.page-detail li{padding-left:0}.page-detail li li{margin:5px 0}.page-detail .time{float:right;position:relative;top:-35px}@media screen and (max-device-width: 600px){.page-content.single-page{position:static}.page-content.slide-up .page-nav ul{display:none}.page-info{text-align:left;padding:15px;margin-bottom:10px}.page-info h1{margin-bottom:10px}.page-nav{position:static}.page-nav .slide-btn{display:block;color:#F72C5B;position:absolute;right:20px;margin-top:10px}.page-detail{position:static;margin-left:0;padding:0 15px}.page-detail h2{padding-top:20px}.page-detail h2:first-child{padding-top:0}}#download-extension-container{max-width:800px}#download-extension-container .row{margin-top:40px;margin-bottom:40px}#reference{padding:90px 0 140px 0;text-align:center}footer{min-height:190px;background-color:#202D42;color:#808795;font-size:14px}footer.inner-footer{background-color:transparent;border-top:1px solid #eee;margin-top:40px;color:#aaa;font-size:12px}footer.inner-footer .container{padding:0}footer.inner-footer p{line-height:20px}footer.inner-footer .row{margin-top:20px !important}footer.inner-footer #footer-icon-panel{text-align:right}footer.inner-footer #footer-icon-panel img{margin-top:20px;width:250px}footer .row{margin-top:50px !important;margin-bottom:0 !important}footer .logo img{display:block;margin-bottom:20px;width:109px}footer .footer-apache-logo{width:300px;max-width:80%;margin:0 0 10px 0}footer #echarts-copyright{color:rgba(255,255,255,0.4);margin:65px 0 20px 0;font-size:1.2rem}footer h3{color:#fff;font-size:1.5rem;margin:10px 0}footer ul{height:150px}footer ul dt{width:50%;float:left;font-weight:300}footer ul li{font-weight:300}footer ul a{color:rgba(255,255,255,0.4);font-size:1.2rem;margin:5px 0}footer ul a:hover{color:rgba(255,255,255,0.8)}footer .icon-panel{margin-top:20px}footer .footer-icon{display:inline-block;width:40px;height:40px;border-radius:50px;margin-right:10px;padding:8px 10px;border:1px solid white;opacity:0.5;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}footer .footer-icon:hover{opacity:1}@media (max-width: 992px){footer .footer-apache-logo{-webkit-transform:scale(0.7);-ms-transform:scale(0.7);transform:scale(0.7)}footer .icon-panel{margin:20px 0}footer #echarts-copyright{margin:20px 0;text-align:center}}@media (max-width: 768px){footer .logo img{margin:0 auto}footer #footer-icon-panel{text-align:center}footer #echarts-copyright{text-align:center}}html{overflow-x:hidden}body{width:100%;background-color:#fff}#main-content{overflow:hidden;color:#949CB1}#main-content a{color:#5E7AD9}#main-content .more{text-align:center;display:block}#main-content footer{font-weight:400 !important}#main-content footer h3{color:white}#main-content #home-section{width:100%;height:100vh;overflow:hidden}#main-content .home-brand-panel{margin:0 auto;height:100%;padding:0 30px;position:relative}#main-content .home-info{margin-top:20vh}#main-content .home-brand{font-size:75px;font-weight:800;color:#081642;line-height:1.2em}#main-content .home-subtitle{font-size:21px;color:#1d2b5a;margin-top:15px}#main-content .home-btn-panel{margin-top:40px}#main-content .btn-index-home{min-width:150px;padding:15px 10px;border-radius:30px;background-color:#fff;border:1px solid #F72C5B;color:#F72C5B;opacity:0.8;font-size:16px}#main-content .btn-index-home:first-child{background-color:#F72C5B;color:#fff;opacity:1}#main-content .btn-index-home:first-child .index-home-svg{left:-3px;top:3px}#main-content .btn-index-home:hover,#main-content .btn-index-home:focus{-webkit-box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2);box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2)}#main-content .btn-index-github{min-width:56px;height:56px;background:transparent;border:none;opacity:0.5}#main-content .btn-index-github:hover{opacity:1}#main-content .index-home-svg{position:relative;top:4px;left:-6px}#main-content .home-chart{height:60%;top:16%;position:absolute;right:50px;z-index:-100}#main-content .home-chart img{max-height:100%}#main-content #events-section{margin:20px 0 60px 0}#main-content .banner-section{position:relative;margin-top:-5px}#main-content .banner-section a{display:block;text-align:center}#main-content .banner-img{width:100%}#main-content h2{margin:35px 0 5px 0}#main-content .row{margin-top:20px;margin-bottom:20px}#main-content section.normal{padding-top:50px;padding-bottom:165px;text-align:center}#reference{font-size:1.6rem;font-weight:400;line-height:2.4rem;text-align:center;background-image:url("../images/map.png");background-repeat:no-repeat;background-position:center center;background-size:contain;color:#333}#reference #recommends{height:160px;position:relative;max-width:90%;width:600px;margin:0 auto;text-align:center}#reference .recommend{display:none;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s;position:absolute;bottom:0;width:100%}#reference .recommend.active{display:block}#reference .recommend p{margin:10px auto;font-size:20px;font-weight:400;color:#333}#reference .recommend p:before{display:inline-block;content:'';width:41px;height:37px;background-image:url("../images/yinhao.png");background-size:100%;margin-right:20px}#reference .person{margin:10px 0 20px 0;color:#949CB1}#reference .person .name{margin-top:-5px}#reference .people{height:100px}#reference .people img{width:70px;border-radius:50%;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s;border-color:white;opacity:0.5;display:inline-block;margin:15px 10px}#reference .people img.active{width:100px;margin:0;-webkit-box-shadow:1px 4px 8px 0 rgba(46,37,37,0.3);box-shadow:1px 4px 8px 0 rgba(46,37,37,0.3);border:4px solid white;opacity:1}#main-content #reference{margin-top:100px}#feature-section hr{display:inline-block;text-align:center;width:36px;margin:15px 0;height:2px;border:0;background-color:#5E7AD9}.index-features{margin-top:20px;text-align:center;color:#949CB1}.index-features h2{font-size:35px;font-weight:800;color:#090909}.index-feature{margin:30px 0}.index-feature-left{display:inline-block;position:absolute;width:107px;height:99px}.index-feature-icon{position:absolute;width:50%;left:28%;top:22.5%}.index-feature-right{display:inline-block;margin-left:127px}.index-feature-right h3{margin-top:10px;font-size:16px;font-weight:bold;color:#06133B}.index-feature-right p{margin-top:14px;line-height:1.75em}#publication{overflow:hidden;height:720px;opacity:0;-webkit-transition:1s;-o-transition:1s;transition:1s}#publication #start-line{position:relative;left:500px;top:95px;width:200px;z-index:-10}#publication #end-line{position:relative;left:1015px;top:-84px;width:257px;z-index:-10}#publication .container .paper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}#publication .container .paper .content{width:528px}#publication .container .paper .content h2{line-height:36px;font-weight:600;font-size:25px;color:#090909}#publication .container .paper .icon #paper-icon{width:530px}#publication p.note{margin-top:10px}#publication .pdf{display:inline-block;margin-top:20px;height:45px;width:237px;text-align:center;background:#5E7AD9;border-radius:22.5px;padding:13px 0;color:#fff;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}#publication .pdf:hover,#publication .pdf:focus{text-decoration:none;-webkit-box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2);box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2)}#gongzhonghao{margin:40px 0}#gongzhonghao img{width:150px;-webkit-box-shadow:0px 6px 12px 0 #eee;box-shadow:0px 6px 12px 0 #eee}#about-section{padding-top:40px;padding-bottom:90px;background-color:#fff}#about-section h3{font-weight:600;font-size:35px;color:#06133B}#about-section hr{display:inline-block;text-align:center;width:36px;height:2px;background-color:#8EE3A9;color:#8EE3A9;margin-top:24px;border:0px}#about-section p{font-size:12px;color:#949CB1;letter-spacing:0}#about-section .btn-panel{text-align:center;margin-top:30px}#about-section .btn-panel a{height:78px}#about-section .btn-panel a:hover{text-decoration:none}#about-section .btn-content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;height:100%;margin:20px 0;padding:9px 22px 9px 24px;text-indent:10px;position:relative;z-index:100;-webkit-transition:0.3s;-o-transition:0.3s;transition:0.3s;line-height:60px;-webkit-box-shadow:2px 4px 14px 4px rgba(112,114,124,0.2);box-shadow:2px 4px 14px 4px rgba(112,114,124,0.2);border-radius:8px}#about-section .btn-content .btn-logo{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}#about-section .btn-content .btn-logo span{margin-left:14px;font-size:20px;color:#06133B}#about-section .btn-content .btn-logo svg{height:41px;width:41px}#about-section .btn-content .icon-v-right{width:12px;height:12px;border:2px solid rgba(148,156,177,0.4);border-width:2px 2px 0 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);margin:0;line-height:60px}#about-section .btn-content .weixin-code{width:60px}#about-section .btn-content img{margin-right:10px;position:relative;top:-2px}@media (max-width: 992px){#main-content .home-info{width:100%;left:0;margin-left:0;text-align:center}#main-content .home-brand{font-size:55px}#main-content .home-chart{margin:0 auto;width:100%;left:0;text-align:center;top:15vh;opacity:0.3;right:auto}.single-btn-panel{text-align:center}#start-line,#paper-icon,#end-line{display:none}#publication{height:auto;margin:80px 10px}#publication .container .paper .content{width:100%}#publication .home-chart{top:140px}}@media (max-width: 768px){#main-content .home-brand{font-size:48px}#main-content .home-btn-panel{margin:40px auto}#main-content .home-subtitle{font-size:14px;margin-top:10px}#main-content .btn-index-home{display:block;margin:15px auto;width:220px}#main-content .feature-btn{margin:0 auto;margin-top:50px;text-align:center}#main-content .container .paper .content h2{font-size:20px;line-height:25px}#main-content .index-feature{margin:50px 0}#reference{background-size:cover}#reference .people{height:180px}}@media (max-width: 480px){#home-section .home-brand-panel{text-align:center}#home-section .home-brand-panel .btn{display:block;margin:10px auto}}.ch-main{position:relative;margin-top:100px;margin-left:100px}.ch-pc-chart{width:90%;height:280px;border-radius:12px;-webkit-box-shadow:6px 6px 22px #ccc;box-shadow:6px 6px 22px #ccc}.ch-pc-chart div{z-index:50 !important}.ch-mobile{position:absolute;right:0;width:180px;top:-30px;z-index:300}.ch-mobile-box{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ch-mobile-content{position:absolute;overflow:hidden;border-bottom-left-radius:5px;border-bottom-right-radius:5px;left:12%;right:12%;top:16%;bottom:15.5%;background:#333;z-index:300;padding:0;margin:0}.ch-mobile-chart{width:200%;height:200%;-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scale(0.5);-ms-transform:scale(0.5);transform:scale(0.5);padding:0;margin:0}.ch-mobile-chart div div{z-index:50 !important}.ch-on-touch .ch-pc-chart{width:auto}.ch-on-touch .ch-mobile{display:none}@media (max-width: 768px){.ch-main{margin-left:0}}@media (max-width: 480px){.ch-main{margin-top:0}}#ec-example-main #toolbar{top:81px}#ec-doc-main .ec-doc-tutorial .page-description h4{margin:1.33em 0;padding:0;font-weight:bold}#ec-doc-main .ec-doc-tutorial .page-description h5{margin:1.67em 0;padding:0;font-weight:bold}h1,h2,h3,h4,h5,h6,h7,p{font-weight:400;margin:0;padding:0}ul{list-style:none;padding:0;margin:0}img{max-width:100%}.clear :after{display:block;content:'';clear:both}iframe{border:1px solid #ccc}#download-table{margin:20px 0}#download-table td{padding:8px;text-align:left}#download-main{max-width:800px}#download-main .d-section{margin-top:20px;padding-top:20px}#download-main h2{font-size:25px;border-bottom:0;text-align:center;color:#5E7AD9;text-align:left}#download-main h3{margin-top:40px;font-size:18px;font-weight:bold;text-align:left}#download-main h3.first{margin-top:-20px}#download-main p{text-align:left}#download-main .center{text-align:center}#download-main h4{margin:10px auto;margin-top:20px;font-size:16px;font-weight:bold;text-align:left}#download-main h4 .warn{color:#A9334C}#download-main .list-wrap{margin:20px 0 0 0}#download-main .d-section-version h2{margin-top:-30px}#download-main .checksum{text-align:left;margin:20px 0;border-left:0;padding:0}#download-main .checksum p,#download-main .checksum li{font-size:14px}#download-main li{list-style:inherit;margin:5px 0}.download-note{margin-top:12px;line-height:20px;font-size:14px;color:#999;text-align:left}.paper-desc{text-align:left;margin:20px -20px;padding:20px;background-color:#f5f7fd}.paper-desc .paper-title{font-size:16px;margin-top:5px;font-weight:bold}.paper-desc .paper-author{font-size:12px;margin:10px 0px;color:#999}.paper-desc .paper-journal{font-size:14px}#download-row{text-align:center}.d-section{padding-top:50px;padding-bottom:25px;text-align:center;border-bottom:1px solid rgba(78,97,118,0.25);color:#6b7a89}.d-section{*zoom:1}.d-section:before,.d-section:after{display:table;line-height:0;content:""}.d-section:after{clear:both}.download-theme img{-webkit-box-shadow:0 0 1px rgba(0,0,0,0.3);box-shadow:0 0 1px rgba(0,0,0,0.3);-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}.download-theme img:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.3);box-shadow:0 0 20px rgba(0,0,0,0.3)}#download-main .d-section-version a,#download-main .d-section-gl a{text-decoration:none}#download-main .d-section-version a:hover .circle-wrap,#download-main .d-section-gl a:hover .circle-wrap{color:#fff;background-color:#45B4E8;-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);border-color:transparent}#download-main .d-section-version a:active .circle-wrap,#download-main .d-section-version a:focus .circle-wrap,#download-main .d-section-gl a:active .circle-wrap,#download-main .d-section-gl a:focus .circle-wrap{color:#fff;background-color:#2997D6;-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);border-color:transparent}#download-main .d-section-version .mode,#download-main .d-section-gl .mode{display:block;margin:38px 0 2px;font-size:17px}#download-main .d-section-version .text,#download-main .d-section-gl .text{margin-left:-10px;text-align:center;color:#333}#download-main .d-section-version .text span,#download-main .d-section-gl .text span{color:#333;opacity:0.7}.d-section-version{padding-bottom:50px}.d-section-version .row>div{height:220px}#download-main .circle-wrap{width:120px;height:120px;border-radius:50%;background-color:white;border:1px solid rgba(78,97,118,0.2);margin:0 auto;margin-bottom:15px;color:#5E7AD9;-webkit-transition:0.2s;-o-transition:0.2s;transition:0.2s}.more-btn{position:relative;display:block;margin:20px auto;margin-bottom:10px}.more-btn:after{display:block;content:'';width:19px;height:18px;background-image:url("../images/btn-arrow.png");background-size:80% 80%;position:absolute;background-repeat:no-repeat;right:20px;top:13px}.more-btn+p{color:#6b7a89}.btn-two{margin-left:15px;margin-right:15px;margin-bottom:10px;position:relative;text-align:left;padding-left:45px !important}.d-section-map ul,.d-section-theme ul{*zoom:1}.d-section-map ul:before,.d-section-map ul:after,.d-section-theme ul:before,.d-section-theme ul:after{display:table;line-height:0;content:""}.d-section-map ul:after,.d-section-theme ul:after{clear:both}.d-section-map li,.d-section-theme li{float:left;width:260px}.d-section-map .first-item,.d-section-theme .first-item{margin-right:160px}.hover-shadow{-webkit-box-shadow:0 0 1px rgba(0,0,0,0.3);box-shadow:0 0 1px rgba(0,0,0,0.3);-webkit-transition:0.5s ease-out;-o-transition:0.5s ease-out;transition:0.5s ease-out}.hover-shadow:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.3);box-shadow:0 0 20px rgba(0,0,0,0.3)}#download-extension-container h2{color:#5E7AD9;margin-bottom:5px}#download-extension-container p{margin:5px 0}#builder .warn{color:#F72C5B;margin-top:10px;font-size:16px;line-height:25px}#builder ul{margin:0px;padding:0px}#builder li{list-style:none}#title h1 span{margin-left:20px;font-size:34px;color:#888;font-weight:100}#title .download-version{margin:15px;font-size:18px;font-weight:bold}#title .download-version select{margin-left:10px}#configuration{width:1000px;margin:0 auto}#configuration p.desc{color:#6b7a89;font-size:16px}#configuration h3{font-family:noto-thin;margin:26px 0}#configuration>section{border-bottom:1px solid #e5e5e5;text-align:left}#configuration>section p{margin:20px 0}#configuration h3{margin:10px 0;color:#3c485c;font-size:26px;font-weight:normal}#configuration h3 span{font-size:16px;margin-left:5px}#configuration ul{margin:10px}#configuration li{display:inline-block;vertical-align:top;margin:20px 18px;text-align:center;width:120px;border:2px solid rgba(0,0,0,0);cursor:pointer;-webkit-transition:all 0.4s;-o-transition:all 0.4s;transition:all 0.4s}#configuration li input{display:none}#configuration li img{margin-top:5px;width:90px;height:90px;padding:5px 10px}#configuration li h5{color:#000;font-weight:normal;margin:10px 0;padding:0;line-height:18px;position:relative}#configuration li h5 span{font-size:12px;margin-left:3px}#configuration li:hover{-webkit-box-shadow:0px 0px 10px rgba(0,0,0,0.1);box-shadow:0px 0px 10px rgba(0,0,0,0.1)}#configuration li.checked{-webkit-box-shadow:0px 0px 15px rgba(41,60,85,0.2);box-shadow:0px 0px 15px rgba(41,60,85,0.2);border-radius:5px}#configuration li.checked h5::before{content:'';width:15px;height:15px;background-size:15px 15px;background-image:url(../images/builder/checked.png);display:inline-block;position:absolute;right:-2px;top:-107px;border-radius:0 3px 0 0}#other input{margin:0 10px 0 0;vertical-align:middle}#other label{font-size:16px}#other p.desc{font-size:14px;padding-left:10px}#other a{color:black}#other .other-option{margin-left:15px}#action{margin-top:50px;margin-bottom:100px;text-align:center}#email{border:1px solid #ccc;border-radius:20px;line-height:2em;width:250px;padding:5px 20px;outline:none;margin-top:20px}#build{margin-top:20px}.clear{clear:both}#about-page{margin-bottom:20px;text-align:center}#about-page section{padding:40px 15px}#about-page .contributor{max-width:800px}#about-page h3{margin-bottom:20px}#about-page p{color:#888;margin:5px 0}#about-page h4.group{text-align:left;border-left:4px solid;padding-left:15px}#about-page h4.group.pmc{margin:0px 0 10px 0;border-color:#E86C4B}#about-page h4.group.committer{margin:40px 0 40px 0;border-color:#40A7DC}#about-page h4.group.contributor{margin:40px 0 40px 0;border-color:#58A77C}#about-page h5{margin:5px 0;font-weight:bold}#about-page .about-person{margin:20px 0;height:150px}#about-page .about-person>a{display:inline-block;height:90px}#about-page .about-person>a img{height:88px}#about-page .about-person>a:hover img{-webkit-box-shadow:0 4px 9px 0 rgba(46,37,37,0.3);box-shadow:0 4px 9px 0 rgba(46,37,37,0.3);border-color:white}#about-page .about-person img{display:block;margin:0 auto;margin-bottom:10px;width:90px;border-radius:50%;border:4px solid white;border-color:transparent;-webkit-box-shadow:0 4px 9px 0 rgba(46,37,37,0);box-shadow:0 4px 9px 0 rgba(46,37,37,0);-webkit-transition-duration:0.5s;-o-transition-duration:0.5s;transition-duration:0.5s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}#about-page .about-person .about-desc{color:#888}#about-page .about-person.wait-for-you img{border:1px solid #ececec;padding:10px;margin-bottom:20px}#about-page .company{border-top:1px solid rgba(78,97,118,0.25);max-width:800px}#about-page .company h3{margin-bottom:40px}#about-page .company .col-md-3{height:80px}#about-send-logo{margin:20px 0 50px 0}#about-send-logo p{margin-top:10px}.not-found{padding:150px 0 160px;height:100%;background-color:#2a3c54;overflow:hidden}.not-found img{display:block;width:60%;margin:0 auto}.not-found .text{margin-top:50px;text-align:center;font-size:20px;color:#fff}.not-found .link{margin-left:10px;color:#3183c6}@media (max-width: 768px){.not-found .text{padding:0 15px;font-size:14px}}#maps .links{text-align:center}#maps .links a{display:inline-block;margin:0 5px}#maps h3{margin-top:20px}#maps h3 span{font-size:0.7em;display:inline-block;margin:0 4px}#maps h5{text-align:center}#maps .province{margin-top:10px;margin-bottom:10px}#maps #map-list{padding-bottom:40px}#maps section p{margin-bottom:0;color:#6b7a89}#map-example{margin-top:30px;margin-bottom:100px;line-height:2em;font-size:14px}#map-example h4{margin:20px 0 10px 0}#map-example .prettyprint{padding:10px;border:#ccc 1px solid}#themes{max-width:800px}#themes p.desc{color:#888}#themes h1{text-align:center}#themes h3 span{font-size:16px;margin-left:5px}#themes .theme{text-align:center}#themes .theme img{margin-top:20px;width:285px;-webkit-box-shadow:0 0 1px rgba(0,0,0,0.3);box-shadow:0 0 1px rgba(0,0,0,0.3);-webkit-transition:0.5s ease-out;-o-transition:0.5s ease-out;transition:0.5s ease-out;cursor:pointer}#themes .theme img:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.3);box-shadow:0 0 20px rgba(0,0,0,0.3)}#theme-configure-section{margin-top:40px}#theme-example{margin:50px 0 80px 0;line-height:2em;font-size:14px}#theme-example h4{margin:20px 0 10px 0}#theme-example .prettyprint{padding:10px;border:#ccc 1px solid}#theme-builder{margin:30px 0;text-align:center}#changelog{width:700px;margin:0 auto;margin-top:100px;margin-bottom:100px;font-family:'Microsoft Yahei'}#changelog p.desc{margin:10px 0}#changelog p{font-weight:normal}#changelog .time{color:#888;float:right;margin-top:-35px;margin-right:10px}#changelog h2{margin-top:50px;border-bottom:1px solid #ccc;padding-bottom:5px;margin-bottom:10px}#changelog strong{color:#c12c2c}#changelog strong a{color:#3cafa4}#changelog>ul{margin-left:-10px}#changelog li{margin:10px 0;padding:0 20px}#changelog pre{margin:10px 20px;border:none}#ec-doc-main{position:absolute;left:0;right:0;top:0;bottom:0}@media (max-width: 600px){#ec-doc-main{-webkit-overflow-scrolling:touch;position:static}#ec-doc-nav{position:static;margin-bottom:0}}#extension{margin-bottom:-40px}#extension .nav-container{text-align:center;border-bottom:1px solid rgba(78,97,118,0.25);height:52px}#extension .nav-tabs{display:inline-block;border-bottom:none}#extension .nav-tabs li>a{border:none;color:#5E7AD9}#extension .nav-tabs li>a:hover{background:transparent}#extension .nav-tabs li.active>a{color:#F72C5B;border-bottom:4px solid #F72C5B}#extension .tab-content{margin:40px 0}.extension{margin:10px 0 40px 0}.extension-content{-webkit-box-shadow:0 1px 4px 0 rgba(0,0,0,0.05);box-shadow:0 1px 4px 0 rgba(0,0,0,0.05);border:1px solid rgba(0,0,0,0.1);border-radius:4px}.extension-head{display:block}.extension-img{width:100%}.extension-info{padding:10px 15px;height:132px;overflow:hidden}@media (min-width: 992px){.extension-info:lang(en){height:195px}.extension-info:lang(zh){height:155px}}@media (min-width: 768px){.extension-info:lang(en){height:215px}}.extension-name{font-size:18px}.extension-author{margin-bottom:5px}.extension-author-name{display:inline-block;margin-right:5px}.extension-author-name+.extension-author-name{opacity:0.5}#submit-extension{text-align:center;padding-top:60px;padding-bottom:40px;background:#F4F7FC}#submit-extension h3{margin-bottom:10px}#submit-extension p{margin:2px 0;color:#6b7a89}#submit-extension a.btn{margin:20px 0 5px 0}#faq-page .page-detail li{margin:10px 0;list-style:circle}#maillist ul{list-style:circle;font-size:16px;padding-left:40px}#maillist li{margin:10px 0}#cheat-selector{margin-bottom:20px}#cheat-selector .selected .btn{background-color:#5E7AD9;border-color:#4B65BD;color:white}#cheat-chart{width:100%;height:400px}#cheat-detail{min-height:100px}#cheat-detail .desc{margin:10px 0 20px 0;font-size:14px;color:#555}.page-cheatsheet h2{font-size:22px;margin-top:30px;margin-bottom:10px}.page-cheatsheet h2:first-child{margin-top:0}.cheat-chart-item{display:inline-block;vertical-align:top;margin:20px 11px;text-align:center;width:120.5px;border:2px solid rgba(0,0,0,0);cursor:pointer;-webkit-transition:all 0.4s;-o-transition:all 0.4s;transition:all 0.4s}.cheat-chart-item:hover{-webkit-box-shadow:0px 0px 10px rgba(0,0,0,0.2);box-shadow:0px 0px 10px rgba(0,0,0,0.2)}.cheat-chart-item a{text-decoration:none}.cheat-chart-item img{margin-top:5px;width:90px;height:90px;padding:5px 10px}.cheat-chart-item h5{color:#000;font-weight:normal;margin:10px 0;padding:0;line-height:18px;position:relative}#page-events .page-content h2{border-bottom:none;margin-bottom:0;margin-top:80px}#page-events .page-content h2:first-child{margin-top:20px}.event{display:block;margin:15px 0;width:100%;border-radius:10px;-webkit-box-shadow:0 0 20px rgba(0,0,0,0.1);box-shadow:0 0 20px rgba(0,0,0,0.1);-webkit-transition:0.3s;-o-transition:0.3s;transition:0.3s;overflow:hidden}.event:hover{-webkit-box-shadow:0 10px 20px rgba(0,0,0,0.2);box-shadow:0 10px 20px rgba(0,0,0,0.2)}.event.event-detail-img:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.1);box-shadow:0 0 20px rgba(0,0,0,0.1)}#apache-banner{position:fixed;left:0;right:0;bottom:0;padding:20px 40px 0;z-index:10000;background-color:rgba(0,0,0,0.6);color:#fff;display:none}#apache-banner .txt{width:80%;height:100%;display:inline-block}#apache-banner p{margin:5px 0}#apache-banner p a{color:#fff;text-decoration:underline}#apache-banner .btn{position:relative;bottom:20px;width:20%;height:100%;display:inline-block;background-color:#F72C5B;border-radius:6px;color:#fff;padding:10px}#apache-banner .btn:hover{-webkit-box-shadow:none;box-shadow:none}#apache-banner .close-btn{position:absolute;padding:5px;right:15px;top:15px;color:#fff}#apache-banner .close-btn:hover{text-decoration:none}@media (max-width: 768px){#apache-banner{padding:15px}#apache-banner .txt{width:100%;height:auto;display:block;margin-top:20px}#apache-banner .btn{width:100%;height:auto;display:block;top:0}#apache-banner .close-btn{top:10px}}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#F72C5B;position:fixed;z-index:100000;top:0;right:100%;width:100%;height:2px}.pace .pace-progress-inner{display:block;position:absolute;right:0px;width:100px;height:100%;-webkit-box-shadow:0 0 10px #F72C5B,0 0 5px #F72C5B;box-shadow:0 0 10px #F72C5B,0 0 5px #F72C5B;opacity:1.0;-webkit-transform:rotate(3deg) translate(0px, -4px);-ms-transform:rotate(3deg) translate(0px, -4px);transform:rotate(3deg) translate(0px, -4px)}.btn-main{border-radius:20px;padding:8px 50px;-webkit-transition-duration:0.5s;-o-transition-duration:0.5s;transition-duration:0.5s}.btn-main+.btn{margin-left:15px}.btn-main img{width:20px;margin-right:10px;margin-top:-2px;margin-left:-5px}.btn-main:hover{-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5)}.btn-main:focus,.btn-main:active{-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5)}.btn-thirdary{width:180px;-webkit-box-shadow:1px 3px 8px 0 rgba(25,119,173,0.4);box-shadow:1px 3px 8px 0 rgba(25,119,173,0.4);background-color:#3FA5DC;padding:9px 10px;color:white;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}.btn-thirdary:hover{color:white;background-color:#45B4E8}.btn-thirdary:focus,.btn-thirdary:active{color:white;background-color:#2997D6}.btn-blue{background-color:#47ACE3;color:white;-webkit-box-shadow:1px 4px 8px 0 rgba(25,119,173,0.4);box-shadow:1px 4px 8px 0 rgba(25,119,173,0.4)}.btn-blue:hover{background-color:#46B5F1;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5)}.btn-blue:focus{background-color:#2E9FDC;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5)}.btn-red{background-color:#FF424F;color:white;-webkit-box-shadow:1px 4px 8px 0 rgba(174,44,53,0.4);box-shadow:1px 4px 8px 0 rgba(174,44,53,0.4)}.btn-red:hover{background-color:#FF4F4B;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5);box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5)}.btn-red:focus{background-color:#EE2A38;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5);box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5)}.btn-green{background-color:#80BB6A;color:white}.btn-green:hover,.btn-green:focus{background-color:#95CC81;color:white;-webkit-box-shadow:1px 3px 8px 0 rgba(76,151,47,0.4);box-shadow:1px 3px 8px 0 rgba(76,151,47,0.4)}.btn-default{background-color:white;color:#40A7DC;border:1px solid #40A7DC}.btn-default:hover,.btn-default:focus{background-color:#40A7DC;color:white;border:1px solid #40A7DC}.btn-group{margin:0 5px}.btn-group .caret{margin-left:5px}::-webkit-scrollbar{height:8px;width:8px;-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;border-radius:2px}::-webkit-scrollbar-button{display:none}::-webkit-scrollbar-thumb{width:8px;min-height:15px;background:rgba(50,50,50,0.3) !important;-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.5) !important}
+@font-face{font-family:'iconfont';src:url("font/iconfont.eot");src:url("font/iconfont.eot?#iefix") format("embedded-opentype"),url("font/iconfont.woff") format("woff"),url("font/iconfont.ttf") format("truetype"),url("font/iconfont.svg#iconfont") format("svg")}.iconfont{font-family:"iconfont" !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:url(font/OpenSans-Regular.ttf) format("truetype")}@font-face{font-family:'Open Sans';font-style:bold;font-weight:800;src:url(font/OpenSans-Bold.ttf) format("truetype")}html{height:100%}body{font-family:'Open Sans', "PingFang SC", Helvetica, Arial, sans-serif}#lowie-main{display:none}.lower-ie #main{display:none}.lower-ie #lowie-main{display:block;height:100%;width:100%;padding:200px 0 100px;background-color:#2a3c54}.lower-ie #lowie-main img{display:block;width:60%;margin:0 auto}#v4-link{position:fixed;bottom:0;left:50%;width:200px;margin-left:-100px;text-align:center;z-index:1000;padding:5px 30px}.navbar-default{border:none;background-color:#fff;z-index:10000;-webkit-transition:background-color 0.5s linear;-o-transition:background-color 0.5s linear;transition:background-color 0.5s linear;height:50px;-webkit-box-shadow:0 0 20px rgba(0,0,0,0.2);box-shadow:0 0 20px rgba(0,0,0,0.2)}.navbar-default .navbar-nav{-webkit-transition:background-color 0.5s linear;-o-transition:background-color 0.5s linear;transition:background-color 0.5s linear}.navbar-default .navbar-nav li{position:relative}.navbar-default .navbar-nav li a{color:#081642;background-color:none !important;padding:15px 20px;-webkit-transition:0.5s background-color;-o-transition:0.5s background-color;transition:0.5s background-color;font-size:14px}.navbar-default .navbar-nav li a:before{content:'';position:absolute;left:50%;right:50%;top:0;background:#081642;height:3px;-webkit-transition-property:'left, right';-o-transition-property:'left, right';transition-property:'left, right';-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.navbar-default .navbar-nav li a:hover,.navbar-default .navbar-nav li a:focus{color:#081642;background-color:#f9f9f9}.navbar-default .navbar-nav li a:hover:before,.navbar-default .navbar-nav li a:focus:before{left:0;right:0}.navbar-default .navbar-nav li a .iconfont{font-size:12px}.navbar-default .navbar-nav li a .new{display:inline-block;padding:0 5px;background-color:#F72C5B;color:#fff;font-size:12px;border-radius:3px;vertical-align:middle;-webkit-transform:scale(0.8);-ms-transform:scale(0.8);transform:scale(0.8)}.navbar-default .navbar-nav li.open{background-color:#f9f9f9;color:#fff}.navbar-default .navbar-nav li.open>a:focus,.navbar-default .navbar-nav li.open>a:hover{color:#081642;background-color:#f9f9f9}.navbar-default .navbar-nav li.active>a{padding-top:11px;border-top:3px solid #F72C5B;color:#F72C5B;background-color:#fff;-webkit-transition:0.5s background-color;-o-transition:0.5s background-color;transition:0.5s background-color}.navbar-default .navbar-nav li.active>a:before{display:none}.navbar-default .navbar-nav li.active>a:hover,.navbar-default .navbar-nav li.active>a:focus{color:#FF6D8F;background-color:#f9f9f9}.navbar-default .navbar-nav li .dropdown-menu{width:250px;padding:0;border:none}.navbar-default .navbar-nav li .dropdown-menu li{background-color:#fff;border-top:none}.navbar-default .navbar-nav li .dropdown-menu li a{padding:13px 20px}.navbar-default .navbar-nav li .dropdown-menu li:hover,.navbar-default .navbar-nav li .dropdown-menu li:focus{background-color:#f9f9f9}.navbar-default .navbar-nav li .dropdown-menu li:hover a,.navbar-default .navbar-nav li .dropdown-menu li:focus a{color:#344C9B;background-color:#f9f9f9}.navbar-default .navbar-nav li ul{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.1);box-shadow:0 0 20px rgba(0,0,0,0.1);border-radius:0 0 10px 10px;overflow:hidden}.navbar-default .navbar-nav li ul a:before{display:none}.navbar-default .navbar-logo{height:32px;margin-top:-6px;margin-left:-2px}.navbar-default #navbar-collapse{border-top:none;background:#fff;margin-left:-25px;margin-right:-15px}.navbar-default .navbar-toggle{padding:1px 5px;margin:7px 16px 0 0;border-color:#ddd;background-color:#fff}.navbar-default .navbar-toggle .icon-bar{margin:7px 0 !important;height:1px;background-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{border-color:#ddd;background-color:#f9f9f9}.container-fluid{padding:0 25px}#menu-btn{display:none;float:right;height:45px;line-height:45px;margin:5px 20px 0 0;font-size:30px;color:#fff;cursor:pointer}.navbar-bg{background-color:#fff;-webkit-transition-duration:0.3s;-o-transition-duration:0.3s;transition-duration:0.3s;-webkit-transition-property:background-color, opacity;-o-transition-property:background-color, opacity;transition-property:background-color, opacity}.navbar-bg .navbar-nav li a{color:#081642}.navbar-bg .navbar-nav li.active a{color:#F72C5B;background-color:transparent}#nav-apache{margin-left:10px;margin-right:10px;position:relative;top:1px}#nav-apache a{padding:10px 15px}#nav-apache a img{height:30px}#nav-github{height:50px;overflow:hidden}#nav-github a{padding-top:13px}.nav-circle{height:50px}.nav-circle-inner{width:22px;height:22px;margin:14px 20px;text-align:center;overflow:hidden;border:1px solid;border-radius:50%}.navbar-default .navbar-nav li .nav-circle-inner a{height:100%;padding:0;font-size:12px}.navbar-default .navbar-nav li .nav-circle-inner a:hover{text-decoration:none}.icon-external-link{position:relative;top:2px;left:5px;opacity:0.5}@media (max-width: 768px){.navbar-default .navbar-nav{-webkit-transition:background-color 0.5s linear;-o-transition:background-color 0.5s linear;transition:background-color 0.5s linear;margin-top:0;margin-bottom:0}.navbar-default .navbar-nav li.active>a{border-left:3px solid #081642;border-top:none;padding:10px 15px 10px 11px}#menu-btn{display:block}#nav-download{display:none}.dropdown-menu{width:100% !important}}@media (max-width: 1280px) and (min-width: 1192px){.navbar-default .navbar-nav li a{padding:15px 15px}}@media (max-width: 1192px) and (min-width: 900px){.navbar-default .navbar-nav li a{padding:15px 8px}}@media (max-width: 900px) and (min-width: 768px){.navbar-default .navbar-nav li a{padding:15px 3px;font-size:12px}}@media (max-width: 1065px){#nav-apache{display:none}}.page-main{position:absolute;left:0;right:0;top:50px;bottom:0;overflow-y:auto}.doc-version-change{position:absolute;top:70px;right:50px;z-index:100}.doc-version-change a{display:inline-block;margin-left:20px}.section-bg{background:#F4F7FC;padding:10px 0}.d-section.last-section{margin-bottom:30px;border-bottom:0}.page-info{margin-bottom:30px;text-align:center;padding:40px;color:#4e6167;background:#F4F7FC}.page-info h1{margin-bottom:5px;font-size:40px;font-weight:bold;color:#333}.page-info p{font-size:16px}.page-info-echarts{font-size:12px;margin-top:15px;color:#8E99AB}.page-content{min-height:300px;padding-bottom:40px;font-size:16px;line-height:22px}.page-content h2{color:#C42E51;padding-bottom:15px;border-bottom:1px solid #ddd;margin-top:40px;margin-bottom:20px}.page-content h2:first-child{margin-top:0}.page-content h3{margin:30px 0 10px 0}.page-content p{margin:10px 0}.page-content section{padding:40px 0;text-align:center}.page-content td,.page-content th{padding:5px 10px;border:1px solid #ddd}.page-content td ol,.page-content th ol{padding-left:1em}.page-content ul{padding-left:30px}.page-content ul li{list-style:disc}.page-content ol li{list-style:decimal}.page-content li{margin:5px 0}.page-nav{position:-webkit-sticky;position:sticky;overflow:auto;float:left;width:200px;top:20px;height:-webkit-calc(100vh - 100px);height:calc(100vh - 100px);margin:0 0 0 30px;padding:0 0 20px 0}.page-nav h4{margin:10px 0;color:#666;font-size:14px;padding-left:10px}.page-nav h4:first-child{margin-top:0}.page-nav h4.inner{margin:0;padding-left:0;font-size:18px}.page-nav a{border-left:1px solid rgba(78,97,103,0.25);color:#999;padding:7px 10px;display:block;position:relative}.page-nav a:before{content:'';position:absolute;top:50%;bottom:50%;background:#F72C5B;width:3px;left:-1px;-webkit-transition-property:'top, bottom';-o-transition-property:'top, bottom';transition-property:'top, bottom';-webkit-transition-duration:0.3s;-o-transition-duration:0.3s;transition-duration:0.3s;-webkit-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.page-nav a:hover{text-decoration:none;color:#333}.page-nav a:hover:before{top:0;bottom:0}.page-nav a.active{color:#F72C5B}.page-nav .slide-btn{display:none}.page-detail{margin-left:220px;margin-bottom:20px;padding:0 40px 0 40px;overflow-x:hidden}.page-detail h2{margin:10px 0;padding-top:20px;font-size:22px}.page-detail h2:first-child{margin-top:0;padding-top:0}.page-detail h2+h3{margin-top:20px}.page-detail h3{margin:40px 0 15px 0;font-size:18px}.page-detail p{margin:15px 0}.page-detail li{padding-left:0}.page-detail li li{margin:5px 0}.page-detail .time{float:right;position:relative;top:-35px}@media screen and (max-device-width: 600px){.page-content.single-page{position:static}.page-content.slide-up .page-nav ul{display:none}.page-info{text-align:left;padding:15px;margin-bottom:10px}.page-info h1{margin-bottom:10px}.page-nav{position:static}.page-nav .slide-btn{display:block;color:#F72C5B;position:absolute;right:20px;margin-top:10px}.page-detail{position:static;margin-left:0;padding:0 15px}.page-detail h2{padding-top:20px}.page-detail h2:first-child{padding-top:0}}#download-extension-container{max-width:800px}#download-extension-container .row{margin-top:40px;margin-bottom:40px}#reference{padding:90px 0 140px 0;text-align:center}footer{min-height:190px;background-color:#202D42;color:#808795;font-size:14px}footer.inner-footer{background-color:transparent;border-top:1px solid #eee;margin-top:40px;color:#aaa;font-size:12px}footer.inner-footer .container{padding:0}footer.inner-footer p{line-height:20px}footer.inner-footer .row{margin-top:20px !important}footer.inner-footer #footer-icon-panel{text-align:right}footer.inner-footer #footer-icon-panel img{margin-top:20px;width:250px}footer .row{margin-top:50px !important;margin-bottom:0 !important}footer .logo img{display:block;margin-bottom:20px;width:109px}footer .footer-apache-logo{width:300px;max-width:80%;margin:0 0 10px 0}footer #echarts-copyright{color:rgba(255,255,255,0.4);margin:65px 0 20px 0;font-size:1.2rem}footer h3{color:#fff;font-size:1.5rem;margin:10px 0}footer ul{height:150px}footer ul dt{width:50%;float:left;font-weight:300}footer ul li{font-weight:300}footer ul a{color:rgba(255,255,255,0.4);font-size:1.2rem;margin:5px 0}footer ul a:hover{color:rgba(255,255,255,0.8)}footer .icon-panel{margin-top:20px}footer .footer-icon{display:inline-block;width:40px;height:40px;border-radius:50px;margin-right:10px;padding:8px 10px;border:1px solid white;opacity:0.5;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}footer .footer-icon:hover{opacity:1}@media (max-width: 992px){footer .footer-apache-logo{-webkit-transform:scale(0.7);-ms-transform:scale(0.7);transform:scale(0.7)}footer .icon-panel{margin:20px 0}footer #echarts-copyright{margin:20px 0;text-align:center}}@media (max-width: 768px){footer .logo img{margin:0 auto}footer #footer-icon-panel{text-align:center}footer #echarts-copyright{text-align:center}}html{overflow-x:hidden}body{width:100%;background-color:#fff}#main-content{overflow:hidden;color:#949CB1}#main-content a{color:#5E7AD9}#main-content .more{text-align:center;display:block}#main-content footer{font-weight:400 !important}#main-content footer h3{color:white}#main-content #home-section{width:100%;height:100vh;overflow:hidden}#main-content .home-brand-panel{margin:0 auto;height:100%;padding:0 30px;position:relative}#main-content .home-info{margin-top:20vh}#main-content .home-brand{font-size:75px;font-weight:800;color:#081642;line-height:1.2em}#main-content .home-subtitle{font-size:21px;color:#1d2b5a;margin-top:15px}#main-content .home-btn-panel{margin-top:40px}#main-content .btn-index-home{min-width:150px;padding:15px 10px;border-radius:30px;background-color:#fff;border:1px solid #F72C5B;color:#F72C5B;opacity:0.8;font-size:16px}#main-content .btn-index-home:first-child{background-color:#F72C5B;color:#fff;opacity:1}#main-content .btn-index-home:first-child .index-home-svg{left:-3px;top:3px}#main-content .btn-index-home:hover,#main-content .btn-index-home:focus{-webkit-box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2);box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2)}#main-content .btn-index-github{min-width:56px;height:56px;background:transparent;border:none;opacity:0.5}#main-content .btn-index-github:hover{opacity:1}#main-content .index-home-svg{position:relative;top:4px;left:-6px}#main-content .home-chart{height:60%;top:16%;position:absolute;right:50px;z-index:-100}#main-content .home-chart img{max-height:100%}#main-content #events-section{margin:20px 0 60px 0}#main-content .banner-section{position:relative;margin-top:-5px}#main-content .banner-section a{display:block;text-align:center}#main-content .banner-img{width:100%}#main-content h2{margin:35px 0 5px 0}#main-content .row{margin-top:20px;margin-bottom:20px}#main-content section.normal{padding-top:50px;padding-bottom:165px;text-align:center}#reference{font-size:1.6rem;font-weight:400;line-height:2.4rem;text-align:center;background-image:url("../images/map.png");background-repeat:no-repeat;background-position:center center;background-size:contain;color:#333}#reference #recommends{height:160px;position:relative;max-width:90%;width:600px;margin:0 auto;text-align:center}#reference .recommend{display:none;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s;position:absolute;bottom:0;width:100%}#reference .recommend.active{display:block}#reference .recommend p{margin:10px auto;font-size:20px;font-weight:400;color:#333}#reference .recommend p:before{display:inline-block;content:'';width:41px;height:37px;background-image:url("../images/yinhao.png");background-size:100%;margin-right:20px}#reference .person{margin:10px 0 20px 0;color:#949CB1}#reference .person .name{margin-top:-5px}#reference .people{height:100px}#reference .people img{width:70px;border-radius:50%;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s;border-color:white;opacity:0.5;display:inline-block;margin:15px 10px}#reference .people img.active{width:100px;margin:0;-webkit-box-shadow:1px 4px 8px 0 rgba(46,37,37,0.3);box-shadow:1px 4px 8px 0 rgba(46,37,37,0.3);border:4px solid white;opacity:1}#main-content #reference{margin-top:100px}#feature-section hr{display:inline-block;text-align:center;width:36px;margin:15px 0;height:2px;border:0;background-color:#5E7AD9}.index-features{margin-top:20px;text-align:center;color:#949CB1}.index-features h2{font-size:35px;font-weight:800;color:#090909}.index-feature{margin:30px 0}.index-feature-left{display:inline-block;position:absolute;width:107px;height:99px}.index-feature-icon{position:absolute;width:50%;left:28%;top:22.5%}.index-feature-right{display:inline-block;margin-left:127px}.index-feature-right h3{margin-top:10px;font-size:16px;font-weight:bold;color:#06133B}.index-feature-right p{margin-top:14px;line-height:1.75em}#publication{overflow:hidden;height:720px;opacity:0;-webkit-transition:1s;-o-transition:1s;transition:1s}#publication #start-line{position:relative;left:500px;top:95px;width:200px;z-index:-10}#publication #end-line{position:relative;left:1015px;top:-84px;width:257px;z-index:-10}#publication .container .paper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}#publication .container .paper .content{width:528px}#publication .container .paper .content h2{line-height:36px;font-weight:600;font-size:25px;color:#090909}#publication .container .paper .icon #paper-icon{width:530px}#publication p.note{margin-top:10px}#publication .pdf{display:inline-block;margin-top:20px;height:45px;width:237px;text-align:center;background:#5E7AD9;border-radius:22.5px;padding:13px 0;color:#fff;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}#publication .pdf:hover,#publication .pdf:focus{text-decoration:none;-webkit-box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2);box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2)}#gongzhonghao{margin:40px 0}#gongzhonghao img{width:150px;-webkit-box-shadow:0px 6px 12px 0 #eee;box-shadow:0px 6px 12px 0 #eee}#about-section{padding-top:40px;padding-bottom:90px;background-color:#fff}#about-section h3{font-weight:600;font-size:35px;color:#06133B}#about-section hr{display:inline-block;text-align:center;width:36px;height:2px;background-color:#8EE3A9;color:#8EE3A9;margin-top:24px;border:0px}#about-section p{font-size:12px;color:#949CB1;letter-spacing:0}#about-section .btn-panel{text-align:center;margin-top:30px}#about-section .btn-panel a{height:78px}#about-section .btn-panel a:hover{text-decoration:none}#about-section .btn-content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;height:100%;margin:20px 0;padding:9px 22px 9px 24px;text-indent:10px;position:relative;z-index:100;-webkit-transition:0.3s;-o-transition:0.3s;transition:0.3s;line-height:60px;-webkit-box-shadow:2px 4px 14px 4px rgba(112,114,124,0.2);box-shadow:2px 4px 14px 4px rgba(112,114,124,0.2);border-radius:8px}#about-section .btn-content .btn-logo{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}#about-section .btn-content .btn-logo span{margin-left:14px;font-size:20px;color:#06133B}#about-section .btn-content .btn-logo svg{height:41px;width:41px}#about-section .btn-content .icon-v-right{width:12px;height:12px;border:2px solid rgba(148,156,177,0.4);border-width:2px 2px 0 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);margin:0;line-height:60px}#about-section .btn-content .weixin-code{width:60px}#about-section .btn-content img{margin-right:10px;position:relative;top:-2px}@media (max-width: 992px){#main-content .home-info{width:100%;left:0;margin-left:0;text-align:center}#main-content .home-brand{font-size:55px}#main-content .home-chart{margin:0 auto;width:100%;left:0;text-align:center;top:15vh;opacity:0.3;right:auto}.single-btn-panel{text-align:center}#start-line,#paper-icon,#end-line{display:none}#publication{height:auto;margin:80px 10px}#publication .container .paper .content{width:100%}#publication .home-chart{top:140px}}@media (max-width: 768px){#main-content .home-brand{font-size:48px}#main-content .home-btn-panel{margin:40px auto}#main-content .home-subtitle{font-size:14px;margin-top:10px}#main-content .btn-index-home{display:block;margin:15px auto;width:220px}#main-content .feature-btn{margin:0 auto;margin-top:50px;text-align:center}#main-content .container .paper .content h2{font-size:20px;line-height:25px}#main-content .index-feature{margin:50px 0}#reference{background-size:cover}#reference .people{height:180px}}@media (max-width: 480px){#home-section .home-brand-panel{text-align:center}#home-section .home-brand-panel .btn{display:block;margin:10px auto}}.ch-main{position:relative;margin-top:100px;margin-left:100px}.ch-pc-chart{width:90%;height:280px;border-radius:12px;-webkit-box-shadow:6px 6px 22px #ccc;box-shadow:6px 6px 22px #ccc}.ch-pc-chart div{z-index:50 !important}.ch-mobile{position:absolute;right:0;width:180px;top:-30px;z-index:300}.ch-mobile-box{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ch-mobile-content{position:absolute;overflow:hidden;border-bottom-left-radius:5px;border-bottom-right-radius:5px;left:12%;right:12%;top:16%;bottom:15.5%;background:#333;z-index:300;padding:0;margin:0}.ch-mobile-chart{width:200%;height:200%;-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scale(0.5);-ms-transform:scale(0.5);transform:scale(0.5);padding:0;margin:0}.ch-mobile-chart div div{z-index:50 !important}.ch-on-touch .ch-pc-chart{width:auto}.ch-on-touch .ch-mobile{display:none}@media (max-width: 768px){.ch-main{margin-left:0}}@media (max-width: 480px){.ch-main{margin-top:0}}#ec-example-main #toolbar{top:81px}#ec-doc-main .ec-doc-tutorial .page-description h4{margin:1.33em 0;padding:0;font-weight:bold}#ec-doc-main .ec-doc-tutorial .page-description h5{margin:1.67em 0;padding:0;font-weight:bold}h1,h2,h3,h4,h5,h6,h7,p{font-weight:400;margin:0;padding:0}ul{list-style:none;padding:0;margin:0}img{max-width:100%}.clear :after{display:block;content:'';clear:both}iframe{border:1px solid #ccc}#download-table{margin:20px 0}#download-table td{padding:8px;text-align:left}#download-main{max-width:800px}#download-main .d-section{margin-top:20px;padding-top:20px}#download-main h2{font-size:25px;border-bottom:0;text-align:center;color:#5E7AD9;text-align:left}#download-main h3{margin-top:40px;font-size:18px;font-weight:bold;text-align:left}#download-main h3.first{margin-top:-20px}#download-main p{text-align:left}#download-main .center{text-align:center}#download-main h4{margin:10px auto;margin-top:20px;font-size:16px;font-weight:bold;text-align:left}#download-main h4 .warn{color:#A9334C}#download-main .list-wrap{margin:20px 0 0 0}#download-main .d-section-version h2{margin-top:-30px}#download-main .checksum{text-align:left;margin:20px 0;border-left:0;padding:0}#download-main .checksum p,#download-main .checksum li{font-size:14px}#download-main li{list-style:inherit;margin:5px 0}.download-note{margin-top:12px;line-height:20px;font-size:14px;color:#999;text-align:left}.paper-desc{text-align:left;margin:20px -20px;padding:20px;background-color:#f5f7fd}.paper-desc .paper-title{font-size:16px;margin-top:5px;font-weight:bold}.paper-desc .paper-author{font-size:12px;margin:10px 0px;color:#999}.paper-desc .paper-journal{font-size:14px}#download-row{text-align:center}.d-section{padding-top:50px;padding-bottom:25px;text-align:center;border-bottom:1px solid rgba(78,97,118,0.25);color:#6b7a89}.d-section{*zoom:1}.d-section:before,.d-section:after{display:table;line-height:0;content:""}.d-section:after{clear:both}.download-theme img{-webkit-box-shadow:0 0 1px rgba(0,0,0,0.3);box-shadow:0 0 1px rgba(0,0,0,0.3);-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}.download-theme img:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.3);box-shadow:0 0 20px rgba(0,0,0,0.3)}#download-main .d-section-version a,#download-main .d-section-gl a{text-decoration:none}#download-main .d-section-version a:hover .circle-wrap,#download-main .d-section-gl a:hover .circle-wrap{color:#fff;background-color:#45B4E8;-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);border-color:transparent}#download-main .d-section-version a:active .circle-wrap,#download-main .d-section-version a:focus .circle-wrap,#download-main .d-section-gl a:active .circle-wrap,#download-main .d-section-gl a:focus .circle-wrap{color:#fff;background-color:#2997D6;-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);border-color:transparent}#download-main .d-section-version .mode,#download-main .d-section-gl .mode{display:block;margin:38px 0 2px;font-size:17px}#download-main .d-section-version .text,#download-main .d-section-gl .text{margin-left:-10px;text-align:center;color:#333}#download-main .d-section-version .text span,#download-main .d-section-gl .text span{color:#333;opacity:0.7}.d-section-version{padding-bottom:50px}.d-section-version .row>div{height:220px}#download-main .circle-wrap{width:120px;height:120px;border-radius:50%;background-color:white;border:1px solid rgba(78,97,118,0.2);margin:0 auto;margin-bottom:15px;color:#5E7AD9;-webkit-transition:0.2s;-o-transition:0.2s;transition:0.2s}.more-btn{position:relative;display:block;margin:20px auto;margin-bottom:10px}.more-btn:after{display:block;content:'';width:19px;height:18px;background-image:url("../images/btn-arrow.png");background-size:80% 80%;position:absolute;background-repeat:no-repeat;right:20px;top:13px}.more-btn+p{color:#6b7a89}.btn-two{margin-left:15px;margin-right:15px;margin-bottom:10px;position:relative;text-align:left;padding-left:45px !important}.d-section-map ul,.d-section-theme ul{*zoom:1}.d-section-map ul:before,.d-section-map ul:after,.d-section-theme ul:before,.d-section-theme ul:after{display:table;line-height:0;content:""}.d-section-map ul:after,.d-section-theme ul:after{clear:both}.d-section-map li,.d-section-theme li{float:left;width:260px}.d-section-map .first-item,.d-section-theme .first-item{margin-right:160px}.hover-shadow{-webkit-box-shadow:0 0 1px rgba(0,0,0,0.3);box-shadow:0 0 1px rgba(0,0,0,0.3);-webkit-transition:0.5s ease-out;-o-transition:0.5s ease-out;transition:0.5s ease-out}.hover-shadow:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.3);box-shadow:0 0 20px rgba(0,0,0,0.3)}#download-extension-container h2{color:#5E7AD9;margin-bottom:5px}#download-extension-container p{margin:5px 0}#builder .warn{color:#F72C5B;margin-top:10px;font-size:16px;line-height:25px}#builder ul{margin:0px;padding:0px}#builder li{list-style:none}#title h1 span{margin-left:20px;font-size:34px;color:#888;font-weight:100}#title .download-version{margin:15px;font-size:18px;font-weight:bold}#title .download-version select{margin-left:10px}#configuration{width:1000px;margin:0 auto}#configuration p.desc{color:#6b7a89;font-size:16px}#configuration h3{font-family:noto-thin;margin:26px 0}#configuration>section{border-bottom:1px solid #e5e5e5;text-align:left}#configuration>section p{margin:20px 0}#configuration h3{margin:10px 0;color:#3c485c;font-size:26px;font-weight:normal}#configuration h3 span{font-size:16px;margin-left:5px}#configuration ul{margin:10px}#configuration li{display:inline-block;vertical-align:top;margin:20px 18px;text-align:center;width:120px;border:2px solid rgba(0,0,0,0);cursor:pointer;-webkit-transition:all 0.4s;-o-transition:all 0.4s;transition:all 0.4s}#configuration li input{display:none}#configuration li img{margin-top:5px;width:90px;height:90px;padding:5px 10px}#configuration li h5{color:#000;font-weight:normal;margin:10px 0;padding:0;line-height:18px;position:relative}#configuration li h5 span{font-size:12px;margin-left:3px}#configuration li:hover{-webkit-box-shadow:0px 0px 10px rgba(0,0,0,0.1);box-shadow:0px 0px 10px rgba(0,0,0,0.1)}#configuration li.checked{-webkit-box-shadow:0px 0px 15px rgba(41,60,85,0.2);box-shadow:0px 0px 15px rgba(41,60,85,0.2);border-radius:5px}#configuration li.checked h5::before{content:'';width:15px;height:15px;background-size:15px 15px;background-image:url(../images/builder/checked.png);display:inline-block;position:absolute;right:-2px;top:-107px;border-radius:0 3px 0 0}#other input{margin:0 10px 0 0;vertical-align:middle}#other label{font-size:16px}#other p.desc{font-size:14px;padding-left:10px}#other a{color:black}#other .other-option{margin-left:15px}#action{margin-top:50px;margin-bottom:100px;text-align:center}#email{border:1px solid #ccc;border-radius:20px;line-height:2em;width:250px;padding:5px 20px;outline:none;margin-top:20px}#build{margin-top:20px}.clear{clear:both}#about-page{margin-bottom:20px;text-align:center}#about-page section{padding:40px 15px}#about-page .contributor{max-width:800px}#about-page h3{margin-bottom:20px}#about-page p{color:#888;margin:5px 0}#about-page h4.group{text-align:left;border-left:4px solid;padding-left:15px}#about-page h4.group.pmc{margin:0px 0 10px 0;border-color:#E86C4B}#about-page h4.group.committer{margin:40px 0 40px 0;border-color:#40A7DC}#about-page h4.group.contributor{margin:40px 0 40px 0;border-color:#58A77C}#about-page h5{margin:5px 0;font-weight:bold}#about-page .about-person{margin:20px 0;height:150px}#about-page .about-person>a{display:inline-block;height:90px}#about-page .about-person>a img{height:88px}#about-page .about-person>a:hover img{-webkit-box-shadow:0 4px 9px 0 rgba(46,37,37,0.3);box-shadow:0 4px 9px 0 rgba(46,37,37,0.3);border-color:white}#about-page .about-person img{display:block;margin:0 auto;margin-bottom:10px;width:90px;border-radius:50%;border:4px solid white;border-color:transparent;-webkit-box-shadow:0 4px 9px 0 rgba(46,37,37,0);box-shadow:0 4px 9px 0 rgba(46,37,37,0);-webkit-transition-duration:0.5s;-o-transition-duration:0.5s;transition-duration:0.5s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}#about-page .about-person .about-desc{color:#888}#about-page .about-person.wait-for-you img{border:1px solid #ececec;padding:10px;margin-bottom:20px}#about-page .company{border-top:1px solid rgba(78,97,118,0.25);max-width:800px}#about-page .company h3{margin-bottom:40px}#about-page .company .col-md-3{height:80px}#about-send-logo{margin:20px 0 50px 0}#about-send-logo p{margin-top:10px}.not-found{padding:150px 0 160px;height:100%;background-color:#2a3c54;overflow:hidden}.not-found img{display:block;width:60%;margin:0 auto}.not-found .text{margin-top:50px;text-align:center;font-size:20px;color:#fff}.not-found .link{margin-left:10px;color:#3183c6}@media (max-width: 768px){.not-found .text{padding:0 15px;font-size:14px}}#maps .links{text-align:center}#maps .links a{display:inline-block;margin:0 5px}#maps h3{margin-top:20px}#maps h3 span{font-size:0.7em;display:inline-block;margin:0 4px}#maps h5{text-align:center}#maps .province{margin-top:10px;margin-bottom:10px}#maps #map-list{padding-bottom:40px}#maps section p{margin-bottom:0;color:#6b7a89}#map-example{margin-top:30px;margin-bottom:100px;line-height:2em;font-size:14px}#map-example h4{margin:20px 0 10px 0}#map-example .prettyprint{padding:10px;border:#ccc 1px solid}#themes{max-width:800px}#themes p.desc{color:#888}#themes h1{text-align:center}#themes h3 span{font-size:16px;margin-left:5px}#themes .theme{text-align:center}#themes .theme img{margin-top:20px;width:285px;-webkit-box-shadow:0 0 1px rgba(0,0,0,0.3);box-shadow:0 0 1px rgba(0,0,0,0.3);-webkit-transition:0.5s ease-out;-o-transition:0.5s ease-out;transition:0.5s ease-out;cursor:pointer}#themes .theme img:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.3);box-shadow:0 0 20px rgba(0,0,0,0.3)}#theme-configure-section{margin-top:40px}#theme-example{margin:50px 0 80px 0;line-height:2em;font-size:14px}#theme-example h4{margin:20px 0 10px 0}#theme-example .prettyprint{padding:10px;border:#ccc 1px solid}#theme-builder{margin:30px 0;text-align:center}#changelog{width:700px;margin:0 auto;margin-top:100px;margin-bottom:100px;font-family:'Microsoft Yahei'}#changelog p.desc{margin:10px 0}#changelog p{font-weight:normal}#changelog .time{color:#888;float:right;margin-top:-35px;margin-right:10px}#changelog h2{margin-top:50px;border-bottom:1px solid #ccc;padding-bottom:5px;margin-bottom:10px}#changelog strong{color:#c12c2c}#changelog strong a{color:#3cafa4}#changelog>ul{margin-left:-10px}#changelog li{margin:10px 0;padding:0 20px}#changelog pre{margin:10px 20px;border:none}#ec-doc-main{position:absolute;left:0;right:0;top:0;bottom:0}@media (max-width: 600px){#ec-doc-main{-webkit-overflow-scrolling:touch;position:static}#ec-doc-nav{position:static;margin-bottom:0}}#extension{margin-bottom:-40px}#extension .nav-container{text-align:center;border-bottom:1px solid rgba(78,97,118,0.25);height:52px}#extension .nav-tabs{display:inline-block;border-bottom:none}#extension .nav-tabs li>a{border:none;color:#5E7AD9}#extension .nav-tabs li>a:hover{background:transparent}#extension .nav-tabs li.active>a{color:#F72C5B;border-bottom:4px solid #F72C5B}#extension .tab-content{margin:40px 0}.extension{margin:10px 0 40px 0}.extension-content{-webkit-box-shadow:0 1px 4px 0 rgba(0,0,0,0.05);box-shadow:0 1px 4px 0 rgba(0,0,0,0.05);border:1px solid rgba(0,0,0,0.1);border-radius:4px}.extension-head{display:block}.extension-img{width:100%}.extension-info{padding:10px 15px;height:132px;overflow:hidden}@media (min-width: 992px){.extension-info:lang(en){height:195px}.extension-info:lang(zh){height:155px}}@media (min-width: 768px){.extension-info:lang(en){height:215px}}.extension-name{font-size:18px}.extension-author{margin-bottom:5px}.extension-author-name{display:inline-block;margin-right:5px}.extension-author-name+.extension-author-name{opacity:0.5}#submit-extension{text-align:center;padding-top:60px;padding-bottom:40px;background:#F4F7FC}#submit-extension h3{margin-bottom:10px}#submit-extension p{margin:2px 0;color:#6b7a89}#submit-extension a.btn{margin:20px 0 5px 0}#faq-page .page-detail li{margin:10px 0;list-style:circle}#maillist ul{list-style:circle;font-size:16px;padding-left:40px}#maillist li{margin:10px 0}#cheat-selector{margin-bottom:20px}#cheat-selector .selected .btn{background-color:#5E7AD9;border-color:#4B65BD;color:white}#cheat-chart{width:100%;height:400px}#cheat-detail{min-height:100px}#cheat-detail .desc{margin:10px 0 20px 0;font-size:14px;color:#555}.page-cheatsheet h2{font-size:22px;margin-top:30px;margin-bottom:10px}.page-cheatsheet h2:first-child{margin-top:0}.cheat-chart-item{display:inline-block;vertical-align:top;margin:20px 11px;text-align:center;width:120.5px;border:2px solid rgba(0,0,0,0);cursor:pointer;-webkit-transition:all 0.4s;-o-transition:all 0.4s;transition:all 0.4s}.cheat-chart-item:hover{-webkit-box-shadow:0px 0px 10px rgba(0,0,0,0.2);box-shadow:0px 0px 10px rgba(0,0,0,0.2)}.cheat-chart-item a{text-decoration:none}.cheat-chart-item img{margin-top:5px;width:90px;height:90px;padding:5px 10px}.cheat-chart-item h5{color:#000;font-weight:normal;margin:10px 0;padding:0;line-height:18px;position:relative}#page-events .page-content h2{border-bottom:none;margin-bottom:0;margin-top:80px}#page-events .page-content h2:first-child{margin-top:20px}.event{display:block;margin:15px 0;width:100%;border-radius:10px;-webkit-box-shadow:0 0 20px rgba(0,0,0,0.1);box-shadow:0 0 20px rgba(0,0,0,0.1);-webkit-transition:0.3s;-o-transition:0.3s;transition:0.3s;overflow:hidden}.event:hover{-webkit-box-shadow:0 10px 20px rgba(0,0,0,0.2);box-shadow:0 10px 20px rgba(0,0,0,0.2)}.event.event-detail-img:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.1);box-shadow:0 0 20px rgba(0,0,0,0.1)}.page-spa-container{position:absolute;top:51px;bottom:0;left:0;right:0}#apache-banner{position:fixed;left:0;right:0;bottom:0;padding:20px 40px 0;z-index:10000;background-color:rgba(0,0,0,0.6);color:#fff;display:none}#apache-banner .txt{width:80%;height:100%;display:inline-block}#apache-banner p{margin:5px 0}#apache-banner p a{color:#fff;text-decoration:underline}#apache-banner .btn{position:relative;bottom:20px;width:20%;height:100%;display:inline-block;background-color:#F72C5B;border-radius:6px;color:#fff;padding:10px}#apache-banner .btn:hover{-webkit-box-shadow:none;box-shadow:none}#apache-banner .close-btn{position:absolute;padding:5px;right:15px;top:15px;color:#fff}#apache-banner .close-btn:hover{text-decoration:none}@media (max-width: 768px){#apache-banner{padding:15px}#apache-banner .txt{width:100%;height:auto;display:block;margin-top:20px}#apache-banner .btn{width:100%;height:auto;display:block;top:0}#apache-banner .close-btn{top:10px}}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#F72C5B;position:fixed;z-index:100000;top:0;right:100%;width:100%;height:2px}.pace .pace-progress-inner{display:block;position:absolute;right:0px;width:100px;height:100%;-webkit-box-shadow:0 0 10px #F72C5B,0 0 5px #F72C5B;box-shadow:0 0 10px #F72C5B,0 0 5px #F72C5B;opacity:1.0;-webkit-transform:rotate(3deg) translate(0px, -4px);-ms-transform:rotate(3deg) translate(0px, -4px);transform:rotate(3deg) translate(0px, -4px)}.btn-main{border-radius:20px;padding:8px 50px;-webkit-transition-duration:0.5s;-o-transition-duration:0.5s;transition-duration:0.5s}.btn-main+.btn{margin-left:15px}.btn-main img{width:20px;margin-right:10px;margin-top:-2px;margin-left:-5px}.btn-main:hover{-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5)}.btn-main:focus,.btn-main:active{-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5)}.btn-thirdary{width:180px;-webkit-box-shadow:1px 3px 8px 0 rgba(25,119,173,0.4);box-shadow:1px 3px 8px 0 rgba(25,119,173,0.4);background-color:#3FA5DC;padding:9px 10px;color:white;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}.btn-thirdary:hover{color:white;background-color:#45B4E8}.btn-thirdary:focus,.btn-thirdary:active{color:white;background-color:#2997D6}.btn-blue{background-color:#47ACE3;color:white;-webkit-box-shadow:1px 4px 8px 0 rgba(25,119,173,0.4);box-shadow:1px 4px 8px 0 rgba(25,119,173,0.4)}.btn-blue:hover{background-color:#46B5F1;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5)}.btn-blue:focus{background-color:#2E9FDC;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5)}.btn-red{background-color:#FF424F;color:white;-webkit-box-shadow:1px 4px 8px 0 rgba(174,44,53,0.4);box-shadow:1px 4px 8px 0 rgba(174,44,53,0.4)}.btn-red:hover{background-color:#FF4F4B;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5);box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5)}.btn-red:focus{background-color:#EE2A38;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5);box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5)}.btn-green{background-color:#80BB6A;color:white}.btn-green:hover,.btn-green:focus{background-color:#95CC81;color:white;-webkit-box-shadow:1px 3px 8px 0 rgba(76,151,47,0.4);box-shadow:1px 3px 8px 0 rgba(76,151,47,0.4)}.btn-default{background-color:white;color:#40A7DC;border:1px solid #40A7DC}.btn-default:hover,.btn-default:focus{background-color:#40A7DC;color:white;border:1px solid #40A7DC}.btn-group{margin:0 5px}.btn-group .caret{margin-left:5px}::-webkit-scrollbar{height:8px;width:8px;-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;border-radius:2px}::-webkit-scrollbar-button{display:none}::-webkit-scrollbar-thumb{width:8px;min-height:15px;background:rgba(50,50,50,0.3) !important;-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.5) !important}
diff --git a/en/dependencies.html b/en/dependencies.html
index e7c1bee..2456bcd 100644
--- a/en/dependencies.html
+++ b/en/dependencies.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/documents/tutorial-parts/tutorial.js b/en/documents/tutorial-parts/tutorial.js
index f724e49..9e88c47 100644
--- a/en/documents/tutorial-parts/tutorial.js
+++ b/en/documents/tutorial-parts/tutorial.js
@@ -57,7 +57,7 @@
     "desc": "<p>Apache ECharts<sup>TM</sup> can be rendered at server-side. For example, the thumbnails in the <a href=\"https://echarts.apache.org/examples/en/index.html\" target=\"_blank\">official examples page</a> are generated at a server.</p>\n<p>Commonly used headless tool is required, for example, <a href=\"https://github.com/GoogleChrome/puppeteer\" target=\"_blank\">puppeteer</a>, <a href=\"https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md\" target=\"_blank\">headless chrome</a>, <a href=\"https://github.com/Automattic/node-canvas\" target=\"_blank\">node-canvas</a>, <a href=\"https://github.com/jsdom/jsdom\" target=\"_blank\">jsdom</a>, <a href=\"http://phantomjs.org/\" target=\"_blank\">PhantomJS</a>, etc.</p>\n<p>Some solutions contributed by the community are list as follows:</p>\n<ul>\n<li><a href=\"https://github.com/hellosean1025/node-echarts\" target=\"_blank\">https://github.com/hellosean1025/node-echarts</a></li>\n<li><a href=\"https://github.com/chfw/echarts-scrappeteer\" target=\"_blank\">https://github.com/chfw/echarts-scrappeteer</a></li>\n<li><a href=\"https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js\" target=\"_blank\">https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js</a></li>\n<li><a href=\"https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73\" target=\"_blank\">https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73</a></li>\n</ul>\n"
   },
   "Render by Canvas or SVG": {
-    "desc": "<p>Most of browser-side charting libraries use SVG or Canvas as their underlying renderer. In the scope of Apache ECharts<sup>TM</sup>, they are usually alternative, without critical differences. But in some environment and scenarios, they show notable differences in performance or functionality.</p>\n<p>ECharts has been using Canvas as its renderer (use VML for IE8-) from the beginning. As of <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">ECharts v3.8</a> we provide an SVG renderer (beta version) as another option. Either of them can be used by specifing parameter <a href=\"api.html#echarts.init\" target=\"_blank\">renderer</a> as <code class=\"codespan\">&#39;canvas&#39;</code> or <code class=\"codespan\">&#39;svg&#39;</code> when initailizing a chart instance.</p>\n<blockquote>\n<p>Both SVG and Canvas, which are very different rendering implementations, are supported in ECharts by leveraging the Canvas and SVG renderers offered by the <a href=\"https://github.com/ecomfe/zrender\" target=\"_blank\">zrender</a> library.</p>\n</blockquote>\n<h2 id=\"how-to-make-a-choice-\">How to make a choice?</h2>\n<p>Generally speaking, Canvas is suitable for cases where there is a large amount of graphical elements (usually due to a large amount of data points), like heatmap and lines or scatter plot with large data in geo or parallel coordinates. In addition, it supports some <a href=\"https://echarts.apache.org/examples/en/editor.html?c=lines-bmap-effect\" target=\"_blank\">special visual effect</a> not supported by SVG. However, in some other scenarios SVG has some critical advantages: it consumes less memory than Canvas (especially in mobile devices), and gives better performance in rendering. Moreover, it never blurs when zooming the viewport of the browser whereas Canvas may blur.</p>\n<p>Below is a comparison of frame rate during the initial animation stage when rendering line, bar, pie charts with the Canvas renderer and the SVG renderer:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/canvas-vs-svg-en&reset=1\" width=\"90%\" height=\"400\" ></iframe>\n\n\n<p>In the example above, the SVG renderer provides better FPS performance in mobile devices. In some other scenarios with large amounts of data or with certain kinds of user interaction, the SVG renderer is still not as good as the Canvas renderer in performance, but two options provide the ability to optimize the performance according to the requirements of each developer.</p>\n<p>How to make a choice? These factors, hardware and software environment, data amount and functional requirements, should be considered.</p>\n<ul>\n<li>When not constrained by hardware/software, and the data amount is not large, both should provide equally satisfactory results.</li>\n<li>When encountering performance issues, we can attempt to get better result by choose appropriate renderer.<ul>\n<li>If lots of ECharts instances have to be created, and it causes the browser crash (probably caused by that the large memory consumption) we can try the SVG renderer. Or, generally, when running on some old Android devices, or if we are using some kind of charts like <a href=\"https://ecomfe.github.io/echarts-liquidfill/example/\" target=\"_blank\">liquidfill</a>, the SVG renderer probably gives a better performance.</li>\n<li>If visualizing a large amount of data, or complicated human interactions with data is required, the Canvas renderer works better currently.</li>\n</ul>\n</li>\n</ul>\n<p>Therefore <a href=\"https://github.com/apache/echarts/issues/new\" target=\"_blank\">feedback</a> of experiences and usage scenarios are strongly welcomed, which will help improve the these renderers.</p>\n<p>Notice: The features of rich text, shadow and texture have not been supported yet in the current beta version of the SVG renderer.</p>\n<h2 id=\"how-to-use-specify-a-renderer-\">How to use specify a renderer?</h2>\n<p>ECharts uses Canvas by default. If a user intends to use the SVG renderer, the module of the SVG renderer should be included in ECharts bundle.</p>\n<ul>\n<li>In the <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">pre-build</a> of ECharts, the SVG renderer has been included in <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.common.min.js\" target=\"_blank\">common version</a> and <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js\" target=\"_blank\">complete version</a>. But not in <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.simple.min.js\" target=\"_blank\">simple version</a>.</li>\n<li>When <a href=\"https://echarts.apache.org/en/builder.html\" target=\"_blank\">building ECharts online</a>, the checkbox &quot;SVG Renderer&quot; should be checked.</li>\n<li>When <a href=\"tutorial.html#Use%20ECharts%20with%20bundler%20and%20NPM\" target=\"_blank\">building ECharts offline</a>, the SVG renderer module should be imported:</li>\n</ul>\n<pre><code class=\"lang-js\">import &#39;zrender/lib/svg/svg&#39;;\n</code></pre>\n<p>Then we can specify renderer by <a href=\"api.html#echarts.init\" target=\"_blank\">parameter</a>:</p>\n<pre><code class=\"lang-js\">// Use the Canvas renderer (default).\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n// which is equal to:\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n\n// Use the SVG renderer.\nvar chart = echarts.init(containerDom, null, {renderer: &#39;svg&#39;});\n</code></pre>\n"
+    "desc": "<p>Most of browser-side charting libraries use SVG or Canvas as their underlying renderer. In the scope of Apache ECharts<sup>TM</sup>, they are usually alternative, without critical differences. But in some environment and scenarios, they show notable differences in performance or functionality.</p>\n<p>ECharts has been using Canvas as its renderer (use VML for IE8-) from the beginning. As of <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">ECharts v3.8</a> we provide an SVG renderer (beta version) as another option. Either of them can be used by specifing parameter <a href=\"api.html#echarts.init\" target=\"_blank\">renderer</a> as <code class=\"codespan\">&#39;canvas&#39;</code> or <code class=\"codespan\">&#39;svg&#39;</code> when initailizing a chart instance.</p>\n<blockquote>\n<p>Both SVG and Canvas, which are very different rendering implementations, are supported in ECharts by leveraging the Canvas and SVG renderers offered by the <a href=\"https://github.com/ecomfe/zrender\" target=\"_blank\">zrender</a> library.</p>\n</blockquote>\n<h2 id=\"how-to-make-a-choice-\">How to make a choice?</h2>\n<p>Generally speaking, Canvas is suitable for cases where there is a large amount of graphical elements (usually due to a large amount of data points), like heatmap and lines or scatter plot with large data in geo or parallel coordinates. In addition, it supports some <a href=\"https://echarts.apache.org/examples/en/editor.html?c=lines-bmap-effect\" target=\"_blank\">special visual effect</a> not supported by SVG. However, in some other scenarios SVG has some critical advantages: it consumes less memory than Canvas (especially in mobile devices), and gives better performance in rendering. Moreover, it never blurs when zooming the viewport of the browser whereas Canvas may blur.</p>\n<p>How to make a choice? These factors, hardware and software environment, data amount and functional requirements, should be considered.</p>\n<ul>\n<li>When not constrained by hardware/software, and the data amount is not large, both should provide equally satisfactory results.</li>\n<li>When encountering performance issues, we can attempt to get better result by choose appropriate renderer.<ul>\n<li>If lots of ECharts instances have to be created, and it causes the browser crash (probably caused by that the large memory consumption) we can try the SVG renderer. Or, generally, when running on some old Android devices, or if we are using some kind of charts like <a href=\"https://ecomfe.github.io/echarts-liquidfill/example/\" target=\"_blank\">liquidfill</a>, the SVG renderer probably gives a better performance.</li>\n<li>If visualizing a large amount of data, or complicated human interactions with data is required, the Canvas renderer works better currently.</li>\n</ul>\n</li>\n</ul>\n<p>Therefore <a href=\"https://github.com/apache/echarts/issues/new\" target=\"_blank\">feedback</a> of experiences and usage scenarios are strongly welcomed, which will help improve the these renderers.</p>\n<h2 id=\"how-to-use-specify-a-renderer-\">How to use specify a renderer?</h2>\n<p>ECharts uses Canvas by default. If a user intends to use the SVG renderer, the module of the SVG renderer should be included in ECharts bundle.</p>\n<ul>\n<li>In the <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">pre-build</a> of ECharts, the SVG renderer has been included in <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.common.min.js\" target=\"_blank\">common version</a> and <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js\" target=\"_blank\">complete version</a>. But not in <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.simple.min.js\" target=\"_blank\">simple version</a>.</li>\n<li>When <a href=\"https://echarts.apache.org/en/builder.html\" target=\"_blank\">building ECharts online</a>, the checkbox &quot;SVG Renderer&quot; should be checked.</li>\n<li>When <a href=\"tutorial.html#Use%20ECharts%20with%20bundler%20and%20NPM\" target=\"_blank\">building ECharts offline</a>, the SVG renderer module should be imported:</li>\n</ul>\n<pre><code class=\"lang-js\">import &#39;zrender/lib/svg/svg&#39;;\n</code></pre>\n<p>Then we can specify renderer by <a href=\"api.html#echarts.init\" target=\"_blank\">parameter</a>:</p>\n<pre><code class=\"lang-js\">// Use the Canvas renderer (default).\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n// which is equal to:\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n\n// Use the SVG renderer.\nvar chart = echarts.init(containerDom, null, {renderer: &#39;svg&#39;});\n</code></pre>\n"
   },
   "SVG Base Map in Geo Coords and Map Series": {
     "desc": "<p>Since <code class=\"codespan\">v5.1.0</code>, ECharts support to use SVG as the base map in <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> and <a href=\"option.html#series-map\" target=\"_blank\">map series</a>, where previously only <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a> is supported.</p>\n<p>This feature enables ECharts to display SVG in either of the render modes (<code class=\"codespan\">canvas</code> render mode and <code class=\"codespan\">svg</code> render mode), and enables features like <a href=\"option.html#geo.roam\" target=\"_blank\">zoom</a>, <a href=\"option.html#geo.roam\" target=\"_blank\">pan</a>, <a href=\"option.html#geo.select\" target=\"_blank\">select</a>, <a href=\"option.html#geo.emphasis\" target=\"_blank\">emphasis</a>, <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">focus-blur</a>, <a href=\"option.html#geo.label\" target=\"_blank\">label</a>, <a href=\"option.html#series-map.labelLayout\" target=\"_blank\">labelLayout</a>, <a href=\"option.html#geo.tooltip\" target=\"_blank\">tooltip</a> on SVG with only simple some ECharts options. Series like <a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>, <a href=\"option.html#series-effectScatter\" target=\"_blank\">effectScatter</a>, <a href=\"option.html#series-lines\" target=\"_blank\">lines</a>, <a href=\"option.html#series-custom\" target=\"_blank\">custom</a> that are available on <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> can also be positioned and displayed based on SVG base map.</p>\n<p>There are several examples where SVG base map is used:</p>\n<p><a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-beef-cuts\" target=\"_blank\">Beef Cuts</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-seatmap-flight\" target=\"_blank\">Flight Seatmap</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-map\" target=\"_blank\">SVG Map</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">SVG Scatter</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-lines\" target=\"_blank\">SVG Lines</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-traffic\" target=\"_blank\">SVG Traffic</a></p>\n<h2 id=\"basic-usage\">Basic Usage</h2>\n<p>The usage of SVG base map is the same as the usage of <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a>.</p>\n<p>If used in <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a>:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/organ.svg&#39;, function (svg) {\n    // Firstly we need to register SVG raw string or parsed SVG DOM\n    // to echarts with a name:\n    echarts.registerMap(&#39;organ_diagram&#39;, {svg: svg});\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;));\n    chart.setOption({\n        geo: {\n            // Reference it in echarts option.\n            map: &#39;organ_diagram&#39;,\n            ...\n        }\n    });\n});\n</code></pre>\n<p>If used in <a href=\"option.html#series-map\" target=\"_blank\">map series</a>:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/beef_cuts.svg&#39;, function (svg) {\n    // Firstly we need to register SVG raw string or parsed SVG DOM\n    // to echarts with a name:\n    echarts.registerMap(&#39;beef_cuts_diagram&#39;, {svg: svg});\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;));\n    chart.setOption({\n        series: {\n            type: &#39;map&#39;,\n            // Reference it in echarts option.\n            map: &#39;beef_cuts_diagram&#39;,\n            ...\n        }\n    });\n});\n</code></pre>\n<h2 id=\"zoom-and-pan\">Zoom and Pan</h2>\n<p>For <a href=\"option.html#geo\" target=\"_blank\">Geo coordinate system</a></p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        // Enable zoom and pan.\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p>For <a href=\"option.html#series-map\" target=\"_blank\">map series</a></p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;map&#39;,\n        // Enable zoom and pan.\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p>See <a href=\"option.html#geo.roam\" target=\"_blank\">roam</a>.\nAlso see example <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-map\" target=\"_blank\">SVG Map</a>.</p>\n<h2 id=\"named-element\">Named Element</h2>\n<p>If intending to interact with some elements of SVG, we need to mark those elements in SVG firstly. That can be done simply by adding names to the target elements. The interaction related feature like <a href=\"option.html#geo.select\" target=\"_blank\">select</a>, <a href=\"option.html#geo.emphasis\" target=\"_blank\">emphasis</a>, <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">focus-blur</a>, <a href=\"option.html#geo.label\" target=\"_blank\">label</a>, <a href=\"option.html#series-map.labelLayout\" target=\"_blank\">labelLayout</a>, <a href=\"option.html#geo.tooltip\" target=\"_blank\">tooltip</a> depend on those named elements.</p>\n<p>For example, we add name attribute <code class=\"codespan\">name=&quot;named_rect&quot;</code> only to the left SVG <code class=\"codespan\">path</code>.</p>\n<pre><code class=\"lang-xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;\n&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.2&quot; fill-rule=&quot;evenodd&quot; xml:space=&quot;preserve&quot;&gt;\n    &lt;path name=&quot;named_rect&quot; d=&quot;M 0,0 L 0,100 100,100 100,0 Z&quot; fill=&quot;#765&quot; /&gt;\n    &lt;path d=&quot;M 150,0 L 150,100 250,100 250,0 Z&quot; fill=&quot;#567&quot; /&gt;\n&lt;/svg&gt;\n</code></pre>\n<p>Then hover on the left rect, it can be highlighted, whereas the right one can not.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/geo-svg-named-basic&edit=1&reset=1\" width=\"500\" height=\"200\" ></iframe>\n\n\n<p>Option for some certain named elements can be specified in <a href=\"option.html#geo.regions\" target=\"_blank\">geo.regions</a>, like:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        regions: [{\n            name: &#39;element_name_1&#39;,\n            itemStyle: { ... }\n        }, {\n            name: &#39;element_name_2&#39;,\n            itemStyle: { ... }\n        }]\n    }\n};\n</code></pre>\n<p>Note:</p>\n<ul>\n<li>These SVG elements can be named and recognized by ECharts:\n<code class=\"codespan\">rect</code>, <code class=\"codespan\">circle</code>, <code class=\"codespan\">line</code>, <code class=\"codespan\">ellipse</code>, <code class=\"codespan\">polygon</code>, <code class=\"codespan\">polyline</code>, <code class=\"codespan\">path</code>, <code class=\"codespan\">text</code>, <code class=\"codespan\">tspan</code>, <code class=\"codespan\">g</code>.</li>\n<li>It is supported that multiple elements are named with the same name, will they will be highlighted/selected together.</li>\n</ul>\n<h2 id=\"style-customization\">Style Customization</h2>\n<p>Although the style (such as color, font, lineWidth, ...) of SVG Elements can be defined directly in SVG file, style of named elements can also be customized in ECharts option, which will be handy in some scenario.</p>\n<p>Styles can be specified in <a href=\"option.html#geo.itemStyle\" target=\"_blank\">geo.itemStyle</a> and <a href=\"option.html#series-map.itemStyle\" target=\"_blank\">series-map.itemStyle</a> (also includes <code class=\"codespan\">emphasis.itemStyle</code>, <code class=\"codespan\">select.itemStyle</code>, <code class=\"codespan\">blur.itemStyle</code>, <code class=\"codespan\">regions[i].itemStyle</code>, <code class=\"codespan\">regions[i].emphasis.itemStyle</code>, <code class=\"codespan\">regions[i].select.itemStyle</code>, <code class=\"codespan\">regions[i].blur.itemStyle</code>). Some default style of the named elements can also be removed here (e.g., set <code class=\"codespan\">emphasis.itemStyle.color: null</code> to prevent the fill color from changing when mouse hovering.)</p>\n<p>Moreover, named elements can also be styled by <a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a> if using <a href=\"option.html#series-map\" target=\"_blank\">series-map</a>. See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-beef-cuts\" target=\"_blank\">Beef Cuts</a>.</p>\n<p>Note:\nOnly these named elements can be styled in <code class=\"codespan\">itemStyle</code>:\n<code class=\"codespan\">rect</code>, <code class=\"codespan\">circle</code>, <code class=\"codespan\">line</code>, <code class=\"codespan\">ellipse</code>, <code class=\"codespan\">polygon</code>, <code class=\"codespan\">polyline</code>, <code class=\"codespan\">path</code>.</p>\n<h2 id=\"select\">Select</h2>\n<p>Named elements can adopt &quot;select&quot; feature by setting <a href=\"option.html#geo.selectedMode\" target=\"_blank\">geo.selectedMode</a> or <a href=\"option.html#series-map.selectedMode\" target=\"_blank\">series-map.selectedMode</a> as <code class=\"codespan\">&#39;single&#39;</code> or <code class=\"codespan\">&#39;multiple&#39;</code>. The style of element when selected can be specified in <a href=\"option.html#geo.select\" target=\"_blank\">geo.select</a> or <a href=\"option.html#series-map.select\" target=\"_blank\">series-map.select</a>.</p>\n<p>The selected names can be obtained by <a href=\"api.html#event.geoselectchanged\" target=\"_blank\">geoselectchanged</a> event, like:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;geoselectchanged&#39;, function (params) {\n    var selectedNames = params.allSelected[0].name;\n    console.log(&#39;selected&#39;, selectedNames);\n});\n</code></pre>\n<p>See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-seatmap-flight\" target=\"_blank\">Flight Seatmap</a> for more details.</p>\n<h2 id=\"emphasis-and-focus-blur\">Emphasis and Focus-Blur</h2>\n<p><code class=\"codespan\">emphasis</code> state (highlight when hovering) can be auto adopted to named elements.</p>\n<p>Especially, <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">geo.emphasis.focus</a> and be set as <code class=\"codespan\">&#39;self&#39;</code> to enable &quot;focus-blur&quot; feature, where all all of the other elements will be blurred when hovering on an named element.</p>\n<p>See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a> for more details.</p>\n<h2 id=\"tooltip\">Tooltip</h2>\n<p>Tooltip can be enabled or disabled on named elements.</p>\n<pre><code class=\"lang-js\">option = {\n    // Need to declare the root tooltip to\n    // enable tooltip feature on ECharts.\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            // Use `show` to enable/disable tooltip\n            // on geo coordinate system.\n            show: true\n        },\n        regions: [{\n            name: &#39;some_name1&#39;,\n            // Set named element specified tooltip option if needed.\n            tooltip: {\n                formatter: &#39;some special tooltip 1&#39;\n            }\n        }, {\n            name: &#39;some_name2&#39;,\n            tooltip: {\n                formatter: &#39;some special tooltip 2&#39;\n            }\n        }]\n    }\n};\n</code></pre>\n<p>If intending to disable the geo tooltip when hovering a on named elements, just:</p>\n<pre><code class=\"lang-js\">option = {\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            show: false\n        }\n    }\n};\n</code></pre>\n<p>See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-map\" target=\"_blank\">SVG Map</a> for more details.</p>\n<h2 id=\"label\">Label</h2>\n<p>Although text label can be declared in SVG file directly via <code class=\"codespan\">&lt;text&gt;</code>/<code class=\"codespan\">&lt;tspan&gt;</code>, we can also use ECharts built-in label feature on named elements by specifying <a href=\"option.html#geo.label\" target=\"_blank\">geo.label</a> or <a href=\"option.html#series-map.label\" target=\"_blank\">series-map.label</a>.</p>\n<p>By default the label feature is enabled when hovering on a named element. If intending to disable it, just:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        emphasis: {\n            label: {\n                show: false\n            }\n        }\n    }\n};\n</code></pre>\n<p>When multiple elements need to share one label text, we have two choices:</p>\n<ul>\n<li>Wrap those elements in a named <code class=\"codespan\">&lt;g&gt;</code> (e.g., <code class=\"codespan\">&lt;g name=&quot;name_a&quot;&gt;</code>), where a single label will be displayed and located based on the bounding rect of the <code class=\"codespan\">&lt;g&gt;</code>.</li>\n<li>Name those elements with the same name (e.g., <code class=\"codespan\">&lt;path name=&quot;name_b&quot;/&gt;&lt;path name=&quot;name_b&quot;/&gt;</code>), where multiple labels will be displayed and located based on each elements self.</li>\n</ul>\n<p>For example (hover to show the labels):</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/geo-svg-label-basic&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n<p>Note: Only these named elements can be labeled via <code class=\"codespan\">label</code> option:\n<code class=\"codespan\">rect</code>, <code class=\"codespan\">circle</code>, <code class=\"codespan\">line</code>, <code class=\"codespan\">ellipse</code>, <code class=\"codespan\">polygon</code>, <code class=\"codespan\">polyline</code>, <code class=\"codespan\">path</code>, <code class=\"codespan\">g</code>.</p>\n<p>Also see <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a> for the usage of label.</p>\n<h2 id=\"events\">Events</h2>\n<p>Mouse events or touch events of named elements can be listened simply by:</p>\n<pre><code class=\"lang-js\">// &#39;name1&#39; is a name of a SVG element.\nmyChart.on(&#39;click&#39;, { geoIndex: 0, name: &#39;name1&#39; }, function (params) {\n    console.log(params);\n});\n</code></pre>\n<h2 id=\"layout-of-svg-base-map\">Layout of SVG Base Map</h2>\n<p>By default ECharts will position the SVG base map in the center of the canvas. If need some adjust, we usually only adjust <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>/<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>, and occasionally <code class=\"codespan\">&lt;svg viewBox=&quot;...&quot;&gt;</code>/<a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a> (difference: clip or not). In most cases they are enough.</p>\n<p>If need some advanced precise control of the position and zoom, several concepts below can be noticed.</p>\n<p>The layout rule and options of <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> and <a href=\"option.html#series-map\" target=\"_blank\">map series</a> are the same. So we only demonstrate <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> below.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/geo-svg-layout-basic&edit=1&reset=1\" width=\"700\" height=\"550\" ></iframe>\n\n\n<p>The demo above shows six <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> with three SVG files in a single ECharts canvas. Each two <a href=\"option.html#geo\" target=\"_blank\">geo</a> that are in the same column use the same SVG file.</p>\n<p>Firstly, what shapes looks like is determined by SVG file itself. That is, in the demo above, determined by the <code class=\"codespan\">&lt;circle&gt;</code> and <code class=\"codespan\">viewBox</code> attribute (<code class=\"codespan\">viewBox</code> cut (clips) the circle). We can noticed that the final shape outlines in each column are the same (despite the difference in position, size and scratch), since they use the same SVG file.</p>\n<p>Secondly, users can use either of the two option groups below to determine the location and the size of the <code class=\"codespan\">geo view port</code> of <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> according to the entire chart canvas (all of these options are measured in echarts canvas pixel, or percentage value):</p>\n<ul>\n<li><a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>, <a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a> (recommended).</li>\n<li><a href=\"option.html#geo.top\" target=\"_blank\">top</a>, <a href=\"option.html#geo.right\" target=\"_blank\">right</a>, <a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>, <a href=\"option.html#geo.left\" target=\"_blank\">left</a> (which is used in the demo above).</li>\n</ul>\n<p>In the demo above, the six geo <code class=\"codespan\">geo view ports</code> are displayed as six black squares.</p>\n<p>Thirdly, a <code class=\"codespan\">bounding rect</code> of the SVG is determined, which is determined by methods below (all of them are measured in SVG local unit):</p>\n<ol>\n<li>If <a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a> is specified, use it as <code class=\"codespan\">bounding rect</code>.</li>\n<li>Else if <code class=\"codespan\">&lt;svg width=&quot;...&quot; height=&quot;...&quot;&gt;</code> is specified, use <code class=\"codespan\">[0, 0, width, height]</code> as <code class=\"codespan\">bounding rect</code>. (If only <code class=\"codespan\">width</code> or only <code class=\"codespan\">height</code> is specified, only use <code class=\"codespan\">[0, width]</code> or <code class=\"codespan\">[0, height]</code>).</li>\n<li>Else if <code class=\"codespan\">svg viewBox=&quot;...&quot;&gt;</code> is specified, use <code class=\"codespan\">viewBox</code> as <code class=\"codespan\">bounding rect</code>.</li>\n<li>Else use the union bounding rect of all of the SVG elements as the <code class=\"codespan\">bounding rect</code>.</li>\n<li>If <a href=\"option.html#geo.center\" target=\"_blank\">geo.center</a> or <a href=\"option.html#geo.zoom\" target=\"_blank\">geo.zoom</a> is specified, transform the <code class=\"codespan\">bounding rect</code> determined by <code class=\"codespan\">1~4</code> above.</li>\n</ol>\n<p>Having <code class=\"codespan\">bounding rect</code> determined, it will be placed into its corresponding <code class=\"codespan\">geo view port</code>:</p>\n<ul>\n<li>If <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>, <a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a> is used, the <code class=\"codespan\">bounding rect</code> will be placed at the center and as big as possible into the <code class=\"codespan\">geo view port</code> (keep aspect ratio).</li>\n<li>If <a href=\"option.html#geo.top\" target=\"_blank\">top</a>, <a href=\"option.html#geo.right\" target=\"_blank\">right</a>, <a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>, <a href=\"option.html#geo.left\" target=\"_blank\">left</a> is used, the view rect will be stretched to fill the <code class=\"codespan\">geo view port</code> entirely.</li>\n</ul>\n<h2 id=\"place-series-on-svg-base-map\">Place Series on SVG Base Map</h2>\n<p>Series like <a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>, <a href=\"option.html#series-effectScatter\" target=\"_blank\">effectScatter</a>, <a href=\"option.html#series-lines\" target=\"_blank\">lines</a>, <a href=\"option.html#series-custom\" target=\"_blank\">custom</a> that are available on <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> can also be positioned and displayed on SVG base map.</p>\n<p>Note that in this kind of usage the unit of series data value is the SVG file local coords. For example:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;\n    },\n    series: {\n        type: &#39;effectScatter&#39;,\n        coordinateSystem: &#39;geo&#39;,\n        geoIndex: 0,\n        data: [\n            // SVG local coords.\n            [488.2358421078053, 459.70913833075736],\n            [770.3415644319939, 757.9672194986475],\n            [1180.0329284196291, 743.6141808346214],\n        ]\n    }\n};\n</code></pre>\n<p>By the way, there is a simple approach to get SVG local coord:</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    geo: {\n        map: &#39;some_svg&#39;\n    }\n});\nmyChart.getZr().on(&#39;click&#39;, function (params) {\n    var pixelPoint = [params.offsetX, params.offsetY];\n    var dataPoint = myChart.convertFromPixel({ geoIndex: 0 }, pixelPoint);\n    // When click, the data in SVG local coords will be printed,\n    // which can be used in `series.data`.\n    console.log(dataPoint);\n});\n</code></pre>\n<p>See also <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">SVG Scatter</a>, <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-lines\" target=\"_blank\">SVG Lines</a>, <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-traffic\" target=\"_blank\">SVG Traffic</a>.</p>\n<h2 id=\"unsupported-svg-features\">Unsupported SVG features</h2>\n<p>Unfortunately it is difficult to implement a complete SVG parser. While the common SVG features are supported, at least these features listed below are not supported yet:</p>\n<ul>\n<li>Flip and skew (will be supported <code class=\"codespan\">v5.1.2</code>):<ul>\n<li>Not support <code class=\"codespan\">transform: skew(...)</code> (including <code class=\"codespan\">transform: matrix(...)</code> that includes skew).</li>\n<li>Not support <code class=\"codespan\">transform: scale(x, y)</code> that <code class=\"codespan\">x</code>, <code class=\"codespan\">y</code> has different sign while has <code class=\"codespan\">rotate</code> (e.g., <code class=\"codespan\">scale: (1, -1), rotate(90)</code>).</li>\n</ul>\n</li>\n<li>Standalone <code class=\"codespan\">&lt;style&gt;</code> tag is not supported.<ul>\n<li>But inline style is supported (e.g., <code class=\"codespan\">&lt;path style=&quot;color:red&quot; /&gt;</code>).</li>\n</ul>\n</li>\n<li>Unit:<ul>\n<li>Only <code class=\"codespan\">px</code> is supported. Other unit like <code class=\"codespan\">width=&quot;231.65mm&quot;</code> is not supported.</li>\n<li>Percentage value like <code class=\"codespan\">&lt;svg width=&quot;30%&quot; height=&quot;40%&quot;&gt;</code> is not supported.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;defs&gt;</code> tag:<ul>\n<li>Only <code class=\"codespan\">&lt;linearGradient&gt;</code>, <code class=\"codespan\">&lt;radialGradient&gt;</code> are supported.</li>\n<li>other elements (e.g., <code class=\"codespan\">&lt;pattern&gt;</code>, <code class=\"codespan\">&lt;path&gt;</code>, ...) defined in <code class=\"codespan\">&lt;defs&gt;</code> are not supported yet.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;linearGradient&gt;</code>, <code class=\"codespan\">&lt;radialGradient&gt;</code>:<ul>\n<li><code class=\"codespan\">fx</code>, <code class=\"codespan\">fy</code> is not supported.</li>\n<li><code class=\"codespan\">gradientTransform</code> attribute is not supported.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">fill:url(...)</code>, <code class=\"codespan\">stroke:utl(...)</code>:<ul>\n<li>Only <code class=\"codespan\">url(#someId)</code> is supported.</li>\n<li>Other URL patterns are not supported. e.g.,<ul>\n<li><code class=\"codespan\">url(https://example.com/images/myImg.jpg)</code>;</li>\n<li><code class=\"codespan\">url(data:image/png;base64,iRxVB0…)</code>;</li>\n<li><code class=\"codespan\">url(myFont.woff)</code>;</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;switch&gt;</code> tag:<ul>\n<li>All the content inside <code class=\"codespan\">&lt;switch&gt;</code> tag will be displayed. The &quot;switch&quot; feature is not supported.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;text&gt;</code>:<ul>\n<li><code class=\"codespan\">textPath</code> is not supported.</li>\n<li><a href=\"https://www.w3.org/TR/SVG/text.html#TermAddressableCharacter\" target=\"_blank\">Addressable character</a> is not supported. That is,<pre><code class=\"lang-xml\">&lt;!-- Not supported: --&gt;\n&lt;tspan x=&quot;0 4.94 9.89&quot;&gt;abc&lt;/tspan&gt;\n&lt;!-- Supported: --&gt;\n&lt;tspan x=&quot;0&quot;&gt;a&lt;/tspan&gt;\n&lt;tspan x=&quot;4.94&quot;&gt;b&lt;/tspan&gt;\n&lt;tspan x=&quot;9.89&quot;&gt;c&lt;/tspan&gt;\n</code></pre>\n</li>\n</ul>\n</li>\n</ul>\n"
diff --git a/en/documents/tutorial-parts/tutorial.json b/en/documents/tutorial-parts/tutorial.json
index fda8c6a..77b782f 100644
--- a/en/documents/tutorial-parts/tutorial.json
+++ b/en/documents/tutorial-parts/tutorial.json
@@ -57,7 +57,7 @@
     "desc": "<p>Apache ECharts<sup>TM</sup> can be rendered at server-side. For example, the thumbnails in the <a href=\"https://echarts.apache.org/examples/en/index.html\" target=\"_blank\">official examples page</a> are generated at a server.</p>\n<p>Commonly used headless tool is required, for example, <a href=\"https://github.com/GoogleChrome/puppeteer\" target=\"_blank\">puppeteer</a>, <a href=\"https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md\" target=\"_blank\">headless chrome</a>, <a href=\"https://github.com/Automattic/node-canvas\" target=\"_blank\">node-canvas</a>, <a href=\"https://github.com/jsdom/jsdom\" target=\"_blank\">jsdom</a>, <a href=\"http://phantomjs.org/\" target=\"_blank\">PhantomJS</a>, etc.</p>\n<p>Some solutions contributed by the community are list as follows:</p>\n<ul>\n<li><a href=\"https://github.com/hellosean1025/node-echarts\" target=\"_blank\">https://github.com/hellosean1025/node-echarts</a></li>\n<li><a href=\"https://github.com/chfw/echarts-scrappeteer\" target=\"_blank\">https://github.com/chfw/echarts-scrappeteer</a></li>\n<li><a href=\"https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js\" target=\"_blank\">https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js</a></li>\n<li><a href=\"https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73\" target=\"_blank\">https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73</a></li>\n</ul>\n"
   },
   "Render by Canvas or SVG": {
-    "desc": "<p>Most of browser-side charting libraries use SVG or Canvas as their underlying renderer. In the scope of Apache ECharts<sup>TM</sup>, they are usually alternative, without critical differences. But in some environment and scenarios, they show notable differences in performance or functionality.</p>\n<p>ECharts has been using Canvas as its renderer (use VML for IE8-) from the beginning. As of <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">ECharts v3.8</a> we provide an SVG renderer (beta version) as another option. Either of them can be used by specifing parameter <a href=\"api.html#echarts.init\" target=\"_blank\">renderer</a> as <code class=\"codespan\">&#39;canvas&#39;</code> or <code class=\"codespan\">&#39;svg&#39;</code> when initailizing a chart instance.</p>\n<blockquote>\n<p>Both SVG and Canvas, which are very different rendering implementations, are supported in ECharts by leveraging the Canvas and SVG renderers offered by the <a href=\"https://github.com/ecomfe/zrender\" target=\"_blank\">zrender</a> library.</p>\n</blockquote>\n<h2 id=\"how-to-make-a-choice-\">How to make a choice?</h2>\n<p>Generally speaking, Canvas is suitable for cases where there is a large amount of graphical elements (usually due to a large amount of data points), like heatmap and lines or scatter plot with large data in geo or parallel coordinates. In addition, it supports some <a href=\"https://echarts.apache.org/examples/en/editor.html?c=lines-bmap-effect\" target=\"_blank\">special visual effect</a> not supported by SVG. However, in some other scenarios SVG has some critical advantages: it consumes less memory than Canvas (especially in mobile devices), and gives better performance in rendering. Moreover, it never blurs when zooming the viewport of the browser whereas Canvas may blur.</p>\n<p>Below is a comparison of frame rate during the initial animation stage when rendering line, bar, pie charts with the Canvas renderer and the SVG renderer:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/canvas-vs-svg-en&reset=1\" width=\"90%\" height=\"400\" ></iframe>\n\n\n<p>In the example above, the SVG renderer provides better FPS performance in mobile devices. In some other scenarios with large amounts of data or with certain kinds of user interaction, the SVG renderer is still not as good as the Canvas renderer in performance, but two options provide the ability to optimize the performance according to the requirements of each developer.</p>\n<p>How to make a choice? These factors, hardware and software environment, data amount and functional requirements, should be considered.</p>\n<ul>\n<li>When not constrained by hardware/software, and the data amount is not large, both should provide equally satisfactory results.</li>\n<li>When encountering performance issues, we can attempt to get better result by choose appropriate renderer.<ul>\n<li>If lots of ECharts instances have to be created, and it causes the browser crash (probably caused by that the large memory consumption) we can try the SVG renderer. Or, generally, when running on some old Android devices, or if we are using some kind of charts like <a href=\"https://ecomfe.github.io/echarts-liquidfill/example/\" target=\"_blank\">liquidfill</a>, the SVG renderer probably gives a better performance.</li>\n<li>If visualizing a large amount of data, or complicated human interactions with data is required, the Canvas renderer works better currently.</li>\n</ul>\n</li>\n</ul>\n<p>Therefore <a href=\"https://github.com/apache/echarts/issues/new\" target=\"_blank\">feedback</a> of experiences and usage scenarios are strongly welcomed, which will help improve the these renderers.</p>\n<p>Notice: The features of rich text, shadow and texture have not been supported yet in the current beta version of the SVG renderer.</p>\n<h2 id=\"how-to-use-specify-a-renderer-\">How to use specify a renderer?</h2>\n<p>ECharts uses Canvas by default. If a user intends to use the SVG renderer, the module of the SVG renderer should be included in ECharts bundle.</p>\n<ul>\n<li>In the <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">pre-build</a> of ECharts, the SVG renderer has been included in <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.common.min.js\" target=\"_blank\">common version</a> and <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js\" target=\"_blank\">complete version</a>. But not in <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.simple.min.js\" target=\"_blank\">simple version</a>.</li>\n<li>When <a href=\"https://echarts.apache.org/en/builder.html\" target=\"_blank\">building ECharts online</a>, the checkbox &quot;SVG Renderer&quot; should be checked.</li>\n<li>When <a href=\"tutorial.html#Use%20ECharts%20with%20bundler%20and%20NPM\" target=\"_blank\">building ECharts offline</a>, the SVG renderer module should be imported:</li>\n</ul>\n<pre><code class=\"lang-js\">import &#39;zrender/lib/svg/svg&#39;;\n</code></pre>\n<p>Then we can specify renderer by <a href=\"api.html#echarts.init\" target=\"_blank\">parameter</a>:</p>\n<pre><code class=\"lang-js\">// Use the Canvas renderer (default).\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n// which is equal to:\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n\n// Use the SVG renderer.\nvar chart = echarts.init(containerDom, null, {renderer: &#39;svg&#39;});\n</code></pre>\n"
+    "desc": "<p>Most of browser-side charting libraries use SVG or Canvas as their underlying renderer. In the scope of Apache ECharts<sup>TM</sup>, they are usually alternative, without critical differences. But in some environment and scenarios, they show notable differences in performance or functionality.</p>\n<p>ECharts has been using Canvas as its renderer (use VML for IE8-) from the beginning. As of <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">ECharts v3.8</a> we provide an SVG renderer (beta version) as another option. Either of them can be used by specifing parameter <a href=\"api.html#echarts.init\" target=\"_blank\">renderer</a> as <code class=\"codespan\">&#39;canvas&#39;</code> or <code class=\"codespan\">&#39;svg&#39;</code> when initailizing a chart instance.</p>\n<blockquote>\n<p>Both SVG and Canvas, which are very different rendering implementations, are supported in ECharts by leveraging the Canvas and SVG renderers offered by the <a href=\"https://github.com/ecomfe/zrender\" target=\"_blank\">zrender</a> library.</p>\n</blockquote>\n<h2 id=\"how-to-make-a-choice-\">How to make a choice?</h2>\n<p>Generally speaking, Canvas is suitable for cases where there is a large amount of graphical elements (usually due to a large amount of data points), like heatmap and lines or scatter plot with large data in geo or parallel coordinates. In addition, it supports some <a href=\"https://echarts.apache.org/examples/en/editor.html?c=lines-bmap-effect\" target=\"_blank\">special visual effect</a> not supported by SVG. However, in some other scenarios SVG has some critical advantages: it consumes less memory than Canvas (especially in mobile devices), and gives better performance in rendering. Moreover, it never blurs when zooming the viewport of the browser whereas Canvas may blur.</p>\n<p>How to make a choice? These factors, hardware and software environment, data amount and functional requirements, should be considered.</p>\n<ul>\n<li>When not constrained by hardware/software, and the data amount is not large, both should provide equally satisfactory results.</li>\n<li>When encountering performance issues, we can attempt to get better result by choose appropriate renderer.<ul>\n<li>If lots of ECharts instances have to be created, and it causes the browser crash (probably caused by that the large memory consumption) we can try the SVG renderer. Or, generally, when running on some old Android devices, or if we are using some kind of charts like <a href=\"https://ecomfe.github.io/echarts-liquidfill/example/\" target=\"_blank\">liquidfill</a>, the SVG renderer probably gives a better performance.</li>\n<li>If visualizing a large amount of data, or complicated human interactions with data is required, the Canvas renderer works better currently.</li>\n</ul>\n</li>\n</ul>\n<p>Therefore <a href=\"https://github.com/apache/echarts/issues/new\" target=\"_blank\">feedback</a> of experiences and usage scenarios are strongly welcomed, which will help improve the these renderers.</p>\n<h2 id=\"how-to-use-specify-a-renderer-\">How to use specify a renderer?</h2>\n<p>ECharts uses Canvas by default. If a user intends to use the SVG renderer, the module of the SVG renderer should be included in ECharts bundle.</p>\n<ul>\n<li>In the <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">pre-build</a> of ECharts, the SVG renderer has been included in <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.common.min.js\" target=\"_blank\">common version</a> and <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js\" target=\"_blank\">complete version</a>. But not in <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.simple.min.js\" target=\"_blank\">simple version</a>.</li>\n<li>When <a href=\"https://echarts.apache.org/en/builder.html\" target=\"_blank\">building ECharts online</a>, the checkbox &quot;SVG Renderer&quot; should be checked.</li>\n<li>When <a href=\"tutorial.html#Use%20ECharts%20with%20bundler%20and%20NPM\" target=\"_blank\">building ECharts offline</a>, the SVG renderer module should be imported:</li>\n</ul>\n<pre><code class=\"lang-js\">import &#39;zrender/lib/svg/svg&#39;;\n</code></pre>\n<p>Then we can specify renderer by <a href=\"api.html#echarts.init\" target=\"_blank\">parameter</a>:</p>\n<pre><code class=\"lang-js\">// Use the Canvas renderer (default).\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n// which is equal to:\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n\n// Use the SVG renderer.\nvar chart = echarts.init(containerDom, null, {renderer: &#39;svg&#39;});\n</code></pre>\n"
   },
   "SVG Base Map in Geo Coords and Map Series": {
     "desc": "<p>Since <code class=\"codespan\">v5.1.0</code>, ECharts support to use SVG as the base map in <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> and <a href=\"option.html#series-map\" target=\"_blank\">map series</a>, where previously only <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a> is supported.</p>\n<p>This feature enables ECharts to display SVG in either of the render modes (<code class=\"codespan\">canvas</code> render mode and <code class=\"codespan\">svg</code> render mode), and enables features like <a href=\"option.html#geo.roam\" target=\"_blank\">zoom</a>, <a href=\"option.html#geo.roam\" target=\"_blank\">pan</a>, <a href=\"option.html#geo.select\" target=\"_blank\">select</a>, <a href=\"option.html#geo.emphasis\" target=\"_blank\">emphasis</a>, <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">focus-blur</a>, <a href=\"option.html#geo.label\" target=\"_blank\">label</a>, <a href=\"option.html#series-map.labelLayout\" target=\"_blank\">labelLayout</a>, <a href=\"option.html#geo.tooltip\" target=\"_blank\">tooltip</a> on SVG with only simple some ECharts options. Series like <a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>, <a href=\"option.html#series-effectScatter\" target=\"_blank\">effectScatter</a>, <a href=\"option.html#series-lines\" target=\"_blank\">lines</a>, <a href=\"option.html#series-custom\" target=\"_blank\">custom</a> that are available on <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> can also be positioned and displayed based on SVG base map.</p>\n<p>There are several examples where SVG base map is used:</p>\n<p><a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-beef-cuts\" target=\"_blank\">Beef Cuts</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-seatmap-flight\" target=\"_blank\">Flight Seatmap</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-map\" target=\"_blank\">SVG Map</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">SVG Scatter</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-lines\" target=\"_blank\">SVG Lines</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-traffic\" target=\"_blank\">SVG Traffic</a></p>\n<h2 id=\"basic-usage\">Basic Usage</h2>\n<p>The usage of SVG base map is the same as the usage of <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a>.</p>\n<p>If used in <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a>:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/organ.svg&#39;, function (svg) {\n    // Firstly we need to register SVG raw string or parsed SVG DOM\n    // to echarts with a name:\n    echarts.registerMap(&#39;organ_diagram&#39;, {svg: svg});\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;));\n    chart.setOption({\n        geo: {\n            // Reference it in echarts option.\n            map: &#39;organ_diagram&#39;,\n            ...\n        }\n    });\n});\n</code></pre>\n<p>If used in <a href=\"option.html#series-map\" target=\"_blank\">map series</a>:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/beef_cuts.svg&#39;, function (svg) {\n    // Firstly we need to register SVG raw string or parsed SVG DOM\n    // to echarts with a name:\n    echarts.registerMap(&#39;beef_cuts_diagram&#39;, {svg: svg});\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;));\n    chart.setOption({\n        series: {\n            type: &#39;map&#39;,\n            // Reference it in echarts option.\n            map: &#39;beef_cuts_diagram&#39;,\n            ...\n        }\n    });\n});\n</code></pre>\n<h2 id=\"zoom-and-pan\">Zoom and Pan</h2>\n<p>For <a href=\"option.html#geo\" target=\"_blank\">Geo coordinate system</a></p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        // Enable zoom and pan.\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p>For <a href=\"option.html#series-map\" target=\"_blank\">map series</a></p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;map&#39;,\n        // Enable zoom and pan.\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p>See <a href=\"option.html#geo.roam\" target=\"_blank\">roam</a>.\nAlso see example <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-map\" target=\"_blank\">SVG Map</a>.</p>\n<h2 id=\"named-element\">Named Element</h2>\n<p>If intending to interact with some elements of SVG, we need to mark those elements in SVG firstly. That can be done simply by adding names to the target elements. The interaction related feature like <a href=\"option.html#geo.select\" target=\"_blank\">select</a>, <a href=\"option.html#geo.emphasis\" target=\"_blank\">emphasis</a>, <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">focus-blur</a>, <a href=\"option.html#geo.label\" target=\"_blank\">label</a>, <a href=\"option.html#series-map.labelLayout\" target=\"_blank\">labelLayout</a>, <a href=\"option.html#geo.tooltip\" target=\"_blank\">tooltip</a> depend on those named elements.</p>\n<p>For example, we add name attribute <code class=\"codespan\">name=&quot;named_rect&quot;</code> only to the left SVG <code class=\"codespan\">path</code>.</p>\n<pre><code class=\"lang-xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;\n&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.2&quot; fill-rule=&quot;evenodd&quot; xml:space=&quot;preserve&quot;&gt;\n    &lt;path name=&quot;named_rect&quot; d=&quot;M 0,0 L 0,100 100,100 100,0 Z&quot; fill=&quot;#765&quot; /&gt;\n    &lt;path d=&quot;M 150,0 L 150,100 250,100 250,0 Z&quot; fill=&quot;#567&quot; /&gt;\n&lt;/svg&gt;\n</code></pre>\n<p>Then hover on the left rect, it can be highlighted, whereas the right one can not.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/geo-svg-named-basic&edit=1&reset=1\" width=\"500\" height=\"200\" ></iframe>\n\n\n<p>Option for some certain named elements can be specified in <a href=\"option.html#geo.regions\" target=\"_blank\">geo.regions</a>, like:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        regions: [{\n            name: &#39;element_name_1&#39;,\n            itemStyle: { ... }\n        }, {\n            name: &#39;element_name_2&#39;,\n            itemStyle: { ... }\n        }]\n    }\n};\n</code></pre>\n<p>Note:</p>\n<ul>\n<li>These SVG elements can be named and recognized by ECharts:\n<code class=\"codespan\">rect</code>, <code class=\"codespan\">circle</code>, <code class=\"codespan\">line</code>, <code class=\"codespan\">ellipse</code>, <code class=\"codespan\">polygon</code>, <code class=\"codespan\">polyline</code>, <code class=\"codespan\">path</code>, <code class=\"codespan\">text</code>, <code class=\"codespan\">tspan</code>, <code class=\"codespan\">g</code>.</li>\n<li>It is supported that multiple elements are named with the same name, will they will be highlighted/selected together.</li>\n</ul>\n<h2 id=\"style-customization\">Style Customization</h2>\n<p>Although the style (such as color, font, lineWidth, ...) of SVG Elements can be defined directly in SVG file, style of named elements can also be customized in ECharts option, which will be handy in some scenario.</p>\n<p>Styles can be specified in <a href=\"option.html#geo.itemStyle\" target=\"_blank\">geo.itemStyle</a> and <a href=\"option.html#series-map.itemStyle\" target=\"_blank\">series-map.itemStyle</a> (also includes <code class=\"codespan\">emphasis.itemStyle</code>, <code class=\"codespan\">select.itemStyle</code>, <code class=\"codespan\">blur.itemStyle</code>, <code class=\"codespan\">regions[i].itemStyle</code>, <code class=\"codespan\">regions[i].emphasis.itemStyle</code>, <code class=\"codespan\">regions[i].select.itemStyle</code>, <code class=\"codespan\">regions[i].blur.itemStyle</code>). Some default style of the named elements can also be removed here (e.g., set <code class=\"codespan\">emphasis.itemStyle.color: null</code> to prevent the fill color from changing when mouse hovering.)</p>\n<p>Moreover, named elements can also be styled by <a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a> if using <a href=\"option.html#series-map\" target=\"_blank\">series-map</a>. See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-beef-cuts\" target=\"_blank\">Beef Cuts</a>.</p>\n<p>Note:\nOnly these named elements can be styled in <code class=\"codespan\">itemStyle</code>:\n<code class=\"codespan\">rect</code>, <code class=\"codespan\">circle</code>, <code class=\"codespan\">line</code>, <code class=\"codespan\">ellipse</code>, <code class=\"codespan\">polygon</code>, <code class=\"codespan\">polyline</code>, <code class=\"codespan\">path</code>.</p>\n<h2 id=\"select\">Select</h2>\n<p>Named elements can adopt &quot;select&quot; feature by setting <a href=\"option.html#geo.selectedMode\" target=\"_blank\">geo.selectedMode</a> or <a href=\"option.html#series-map.selectedMode\" target=\"_blank\">series-map.selectedMode</a> as <code class=\"codespan\">&#39;single&#39;</code> or <code class=\"codespan\">&#39;multiple&#39;</code>. The style of element when selected can be specified in <a href=\"option.html#geo.select\" target=\"_blank\">geo.select</a> or <a href=\"option.html#series-map.select\" target=\"_blank\">series-map.select</a>.</p>\n<p>The selected names can be obtained by <a href=\"api.html#event.geoselectchanged\" target=\"_blank\">geoselectchanged</a> event, like:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;geoselectchanged&#39;, function (params) {\n    var selectedNames = params.allSelected[0].name;\n    console.log(&#39;selected&#39;, selectedNames);\n});\n</code></pre>\n<p>See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-seatmap-flight\" target=\"_blank\">Flight Seatmap</a> for more details.</p>\n<h2 id=\"emphasis-and-focus-blur\">Emphasis and Focus-Blur</h2>\n<p><code class=\"codespan\">emphasis</code> state (highlight when hovering) can be auto adopted to named elements.</p>\n<p>Especially, <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">geo.emphasis.focus</a> and be set as <code class=\"codespan\">&#39;self&#39;</code> to enable &quot;focus-blur&quot; feature, where all all of the other elements will be blurred when hovering on an named element.</p>\n<p>See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a> for more details.</p>\n<h2 id=\"tooltip\">Tooltip</h2>\n<p>Tooltip can be enabled or disabled on named elements.</p>\n<pre><code class=\"lang-js\">option = {\n    // Need to declare the root tooltip to\n    // enable tooltip feature on ECharts.\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            // Use `show` to enable/disable tooltip\n            // on geo coordinate system.\n            show: true\n        },\n        regions: [{\n            name: &#39;some_name1&#39;,\n            // Set named element specified tooltip option if needed.\n            tooltip: {\n                formatter: &#39;some special tooltip 1&#39;\n            }\n        }, {\n            name: &#39;some_name2&#39;,\n            tooltip: {\n                formatter: &#39;some special tooltip 2&#39;\n            }\n        }]\n    }\n};\n</code></pre>\n<p>If intending to disable the geo tooltip when hovering a on named elements, just:</p>\n<pre><code class=\"lang-js\">option = {\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            show: false\n        }\n    }\n};\n</code></pre>\n<p>See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-map\" target=\"_blank\">SVG Map</a> for more details.</p>\n<h2 id=\"label\">Label</h2>\n<p>Although text label can be declared in SVG file directly via <code class=\"codespan\">&lt;text&gt;</code>/<code class=\"codespan\">&lt;tspan&gt;</code>, we can also use ECharts built-in label feature on named elements by specifying <a href=\"option.html#geo.label\" target=\"_blank\">geo.label</a> or <a href=\"option.html#series-map.label\" target=\"_blank\">series-map.label</a>.</p>\n<p>By default the label feature is enabled when hovering on a named element. If intending to disable it, just:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        emphasis: {\n            label: {\n                show: false\n            }\n        }\n    }\n};\n</code></pre>\n<p>When multiple elements need to share one label text, we have two choices:</p>\n<ul>\n<li>Wrap those elements in a named <code class=\"codespan\">&lt;g&gt;</code> (e.g., <code class=\"codespan\">&lt;g name=&quot;name_a&quot;&gt;</code>), where a single label will be displayed and located based on the bounding rect of the <code class=\"codespan\">&lt;g&gt;</code>.</li>\n<li>Name those elements with the same name (e.g., <code class=\"codespan\">&lt;path name=&quot;name_b&quot;/&gt;&lt;path name=&quot;name_b&quot;/&gt;</code>), where multiple labels will be displayed and located based on each elements self.</li>\n</ul>\n<p>For example (hover to show the labels):</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/geo-svg-label-basic&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n<p>Note: Only these named elements can be labeled via <code class=\"codespan\">label</code> option:\n<code class=\"codespan\">rect</code>, <code class=\"codespan\">circle</code>, <code class=\"codespan\">line</code>, <code class=\"codespan\">ellipse</code>, <code class=\"codespan\">polygon</code>, <code class=\"codespan\">polyline</code>, <code class=\"codespan\">path</code>, <code class=\"codespan\">g</code>.</p>\n<p>Also see <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a> for the usage of label.</p>\n<h2 id=\"events\">Events</h2>\n<p>Mouse events or touch events of named elements can be listened simply by:</p>\n<pre><code class=\"lang-js\">// &#39;name1&#39; is a name of a SVG element.\nmyChart.on(&#39;click&#39;, { geoIndex: 0, name: &#39;name1&#39; }, function (params) {\n    console.log(params);\n});\n</code></pre>\n<h2 id=\"layout-of-svg-base-map\">Layout of SVG Base Map</h2>\n<p>By default ECharts will position the SVG base map in the center of the canvas. If need some adjust, we usually only adjust <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>/<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>, and occasionally <code class=\"codespan\">&lt;svg viewBox=&quot;...&quot;&gt;</code>/<a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a> (difference: clip or not). In most cases they are enough.</p>\n<p>If need some advanced precise control of the position and zoom, several concepts below can be noticed.</p>\n<p>The layout rule and options of <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> and <a href=\"option.html#series-map\" target=\"_blank\">map series</a> are the same. So we only demonstrate <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> below.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/geo-svg-layout-basic&edit=1&reset=1\" width=\"700\" height=\"550\" ></iframe>\n\n\n<p>The demo above shows six <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> with three SVG files in a single ECharts canvas. Each two <a href=\"option.html#geo\" target=\"_blank\">geo</a> that are in the same column use the same SVG file.</p>\n<p>Firstly, what shapes looks like is determined by SVG file itself. That is, in the demo above, determined by the <code class=\"codespan\">&lt;circle&gt;</code> and <code class=\"codespan\">viewBox</code> attribute (<code class=\"codespan\">viewBox</code> cut (clips) the circle). We can noticed that the final shape outlines in each column are the same (despite the difference in position, size and scratch), since they use the same SVG file.</p>\n<p>Secondly, users can use either of the two option groups below to determine the location and the size of the <code class=\"codespan\">geo view port</code> of <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> according to the entire chart canvas (all of these options are measured in echarts canvas pixel, or percentage value):</p>\n<ul>\n<li><a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>, <a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a> (recommended).</li>\n<li><a href=\"option.html#geo.top\" target=\"_blank\">top</a>, <a href=\"option.html#geo.right\" target=\"_blank\">right</a>, <a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>, <a href=\"option.html#geo.left\" target=\"_blank\">left</a> (which is used in the demo above).</li>\n</ul>\n<p>In the demo above, the six geo <code class=\"codespan\">geo view ports</code> are displayed as six black squares.</p>\n<p>Thirdly, a <code class=\"codespan\">bounding rect</code> of the SVG is determined, which is determined by methods below (all of them are measured in SVG local unit):</p>\n<ol>\n<li>If <a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a> is specified, use it as <code class=\"codespan\">bounding rect</code>.</li>\n<li>Else if <code class=\"codespan\">&lt;svg width=&quot;...&quot; height=&quot;...&quot;&gt;</code> is specified, use <code class=\"codespan\">[0, 0, width, height]</code> as <code class=\"codespan\">bounding rect</code>. (If only <code class=\"codespan\">width</code> or only <code class=\"codespan\">height</code> is specified, only use <code class=\"codespan\">[0, width]</code> or <code class=\"codespan\">[0, height]</code>).</li>\n<li>Else if <code class=\"codespan\">svg viewBox=&quot;...&quot;&gt;</code> is specified, use <code class=\"codespan\">viewBox</code> as <code class=\"codespan\">bounding rect</code>.</li>\n<li>Else use the union bounding rect of all of the SVG elements as the <code class=\"codespan\">bounding rect</code>.</li>\n<li>If <a href=\"option.html#geo.center\" target=\"_blank\">geo.center</a> or <a href=\"option.html#geo.zoom\" target=\"_blank\">geo.zoom</a> is specified, transform the <code class=\"codespan\">bounding rect</code> determined by <code class=\"codespan\">1~4</code> above.</li>\n</ol>\n<p>Having <code class=\"codespan\">bounding rect</code> determined, it will be placed into its corresponding <code class=\"codespan\">geo view port</code>:</p>\n<ul>\n<li>If <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>, <a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a> is used, the <code class=\"codespan\">bounding rect</code> will be placed at the center and as big as possible into the <code class=\"codespan\">geo view port</code> (keep aspect ratio).</li>\n<li>If <a href=\"option.html#geo.top\" target=\"_blank\">top</a>, <a href=\"option.html#geo.right\" target=\"_blank\">right</a>, <a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>, <a href=\"option.html#geo.left\" target=\"_blank\">left</a> is used, the view rect will be stretched to fill the <code class=\"codespan\">geo view port</code> entirely.</li>\n</ul>\n<h2 id=\"place-series-on-svg-base-map\">Place Series on SVG Base Map</h2>\n<p>Series like <a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>, <a href=\"option.html#series-effectScatter\" target=\"_blank\">effectScatter</a>, <a href=\"option.html#series-lines\" target=\"_blank\">lines</a>, <a href=\"option.html#series-custom\" target=\"_blank\">custom</a> that are available on <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> can also be positioned and displayed on SVG base map.</p>\n<p>Note that in this kind of usage the unit of series data value is the SVG file local coords. For example:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;\n    },\n    series: {\n        type: &#39;effectScatter&#39;,\n        coordinateSystem: &#39;geo&#39;,\n        geoIndex: 0,\n        data: [\n            // SVG local coords.\n            [488.2358421078053, 459.70913833075736],\n            [770.3415644319939, 757.9672194986475],\n            [1180.0329284196291, 743.6141808346214],\n        ]\n    }\n};\n</code></pre>\n<p>By the way, there is a simple approach to get SVG local coord:</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    geo: {\n        map: &#39;some_svg&#39;\n    }\n});\nmyChart.getZr().on(&#39;click&#39;, function (params) {\n    var pixelPoint = [params.offsetX, params.offsetY];\n    var dataPoint = myChart.convertFromPixel({ geoIndex: 0 }, pixelPoint);\n    // When click, the data in SVG local coords will be printed,\n    // which can be used in `series.data`.\n    console.log(dataPoint);\n});\n</code></pre>\n<p>See also <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">SVG Scatter</a>, <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-lines\" target=\"_blank\">SVG Lines</a>, <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-traffic\" target=\"_blank\">SVG Traffic</a>.</p>\n<h2 id=\"unsupported-svg-features\">Unsupported SVG features</h2>\n<p>Unfortunately it is difficult to implement a complete SVG parser. While the common SVG features are supported, at least these features listed below are not supported yet:</p>\n<ul>\n<li>Flip and skew (will be supported <code class=\"codespan\">v5.1.2</code>):<ul>\n<li>Not support <code class=\"codespan\">transform: skew(...)</code> (including <code class=\"codespan\">transform: matrix(...)</code> that includes skew).</li>\n<li>Not support <code class=\"codespan\">transform: scale(x, y)</code> that <code class=\"codespan\">x</code>, <code class=\"codespan\">y</code> has different sign while has <code class=\"codespan\">rotate</code> (e.g., <code class=\"codespan\">scale: (1, -1), rotate(90)</code>).</li>\n</ul>\n</li>\n<li>Standalone <code class=\"codespan\">&lt;style&gt;</code> tag is not supported.<ul>\n<li>But inline style is supported (e.g., <code class=\"codespan\">&lt;path style=&quot;color:red&quot; /&gt;</code>).</li>\n</ul>\n</li>\n<li>Unit:<ul>\n<li>Only <code class=\"codespan\">px</code> is supported. Other unit like <code class=\"codespan\">width=&quot;231.65mm&quot;</code> is not supported.</li>\n<li>Percentage value like <code class=\"codespan\">&lt;svg width=&quot;30%&quot; height=&quot;40%&quot;&gt;</code> is not supported.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;defs&gt;</code> tag:<ul>\n<li>Only <code class=\"codespan\">&lt;linearGradient&gt;</code>, <code class=\"codespan\">&lt;radialGradient&gt;</code> are supported.</li>\n<li>other elements (e.g., <code class=\"codespan\">&lt;pattern&gt;</code>, <code class=\"codespan\">&lt;path&gt;</code>, ...) defined in <code class=\"codespan\">&lt;defs&gt;</code> are not supported yet.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;linearGradient&gt;</code>, <code class=\"codespan\">&lt;radialGradient&gt;</code>:<ul>\n<li><code class=\"codespan\">fx</code>, <code class=\"codespan\">fy</code> is not supported.</li>\n<li><code class=\"codespan\">gradientTransform</code> attribute is not supported.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">fill:url(...)</code>, <code class=\"codespan\">stroke:utl(...)</code>:<ul>\n<li>Only <code class=\"codespan\">url(#someId)</code> is supported.</li>\n<li>Other URL patterns are not supported. e.g.,<ul>\n<li><code class=\"codespan\">url(https://example.com/images/myImg.jpg)</code>;</li>\n<li><code class=\"codespan\">url(data:image/png;base64,iRxVB0…)</code>;</li>\n<li><code class=\"codespan\">url(myFont.woff)</code>;</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;switch&gt;</code> tag:<ul>\n<li>All the content inside <code class=\"codespan\">&lt;switch&gt;</code> tag will be displayed. The &quot;switch&quot; feature is not supported.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;text&gt;</code>:<ul>\n<li><code class=\"codespan\">textPath</code> is not supported.</li>\n<li><a href=\"https://www.w3.org/TR/SVG/text.html#TermAddressableCharacter\" target=\"_blank\">Addressable character</a> is not supported. That is,<pre><code class=\"lang-xml\">&lt;!-- Not supported: --&gt;\n&lt;tspan x=&quot;0 4.94 9.89&quot;&gt;abc&lt;/tspan&gt;\n&lt;!-- Supported: --&gt;\n&lt;tspan x=&quot;0&quot;&gt;a&lt;/tspan&gt;\n&lt;tspan x=&quot;4.94&quot;&gt;b&lt;/tspan&gt;\n&lt;tspan x=&quot;9.89&quot;&gt;c&lt;/tspan&gt;\n</code></pre>\n</li>\n</ul>\n</li>\n</ul>\n"
diff --git a/en/documents/tutorial.json b/en/documents/tutorial.json
index cf3b40d..19ce2d6 100644
--- a/en/documents/tutorial.json
+++ b/en/documents/tutorial.json
@@ -1 +1 @@
-{"$schema":"https://echarts.apache.org/doc/json-schem","option":{"type":"Object","properties":{"Get Started with ECharts in 5 minutes":{"type":["*"],"description":"<h2 id=\"installing-echarts\">Installing ECharts</h2>\n<p>First, install Apache ECharts<sup>TM</sup> using one of the following methods:</p>\n<ul>\n<li><p>Download official source release from <a href=\"https://echarts.apache.org/en/download.html\" target=\"_blank\">Apache ECharts website</a>. Then <a href=\"https://github.com/apache/echarts#build\" target=\"_blank\">build</a> from the source release.</p>\n</li>\n<li><p>Download from <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">GitHub</a></p>\n</li>\n<li><p>Using npm: <code class=\"codespan\">npm install echarts --save</code>. <a href=\"tutorial.html#Use%20ECharts%20with%20webpack\" target=\"_blank\">Using ECharts with webpack</a></p>\n</li>\n<li><p>Use CDN like <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">jsDelivr</a>.</p>\n</li>\n</ul>\n<h2 id=\"including-echarts\">Including ECharts</h2>\n<p>Load <code class=\"codespan\">echarts.min.js</code> with a script tag.</p>\n<pre><code class=\"lang-html\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;!-- including ECharts file --&gt;\n    &lt;script src=&quot;echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;/head&gt;\n&lt;/html&gt;\n</code></pre>\n<h2 id=\"draw-a-simple-chart\">Draw a simple chart</h2>\n<p>Before drawing charts, we need to prepare a DOM container with width and height for ECharts.</p>\n<pre><code>&lt;body&gt;\n    &lt;!-- preparing a DOM with width and height for ECharts --&gt;\n    &lt;div id=&quot;main&quot; style=&quot;width:600px; height:400px;&quot;&gt;&lt;/div&gt;\n&lt;/body&gt;\n</code></pre><p>Then we can initialize an ECharts instance using <a href=\"api.html#echarts.init\" target=\"_blank\">echarts.init</a>, and create a simple bar chart with <a href=\"api.html#echartsInstance.setOption\" target=\"_blank\">setOption</a>. Below is the complete code.</p>\n<pre><code class=\"lang-html\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;title&gt;ECharts&lt;/title&gt;\n    &lt;!-- including ECharts file --&gt;\n    &lt;script src=&quot;echarts.js&quot;&gt;&lt;/script&gt;\n&lt;/head&gt;\n&lt;body&gt;\n    &lt;!-- prepare a DOM container with width and height --&gt;\n    &lt;div id=&quot;main&quot; style=&quot;width: 600px;height:400px;&quot;&gt;&lt;/div&gt;\n    &lt;script type=&quot;text/javascript&quot;&gt;\n        // based on prepared DOM, initialize echarts instance\n        var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n        // specify chart configuration item and data\n        var option = {\n            title: {\n                text: &#39;ECharts entry example&#39;\n            },\n            tooltip: {},\n            legend: {\n                data:[&#39;Sales&#39;]\n            },\n            xAxis: {\n                data: [&quot;shirt&quot;,&quot;cardign&quot;,&quot;chiffon shirt&quot;,&quot;pants&quot;,&quot;heels&quot;,&quot;socks&quot;]\n            },\n            yAxis: {},\n            series: [{\n                name: &#39;Sales&#39;,\n                type: &#39;bar&#39;,\n                data: [5, 20, 36, 10, 10, 20]\n            }]\n        };\n\n        // use configuration item and data specified to show chart\n        myChart.setOption(option);\n    &lt;/script&gt;\n&lt;/body&gt;\n&lt;/html&gt;\n</code></pre>\n<p>You&#39;ve made your first chart!</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/getting-started&reset=1&edit=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n<p>For more examples, go to the <a href=\"https://echarts.apache.org/examples/en/editor.html?c=doc-example/getting-started\" target=\"_blank\">ECharts Gallery</a></p>\n"},"New features in ECharts 5":{"type":["*"],"description":"<p>Data visualization has come a long way in the last few years. Developers no longer expect visualization products to be simple chart creation tools, but have more advanced needs in terms of interaction, performance, data processing, and more.</p>\n<p>Apache ECharts has always been committed to making it easier for developers to create flexible and rich visualizations. In the latest release of Apache ECharts 5, we have focused on enhancing the storytelling of charts, allowing developers to tell the story behind the data in a simpler way.</p>\n<p><img src=\"documents/asset/img/feature-v5/echarts-5-en.png\" width=\"800px\" /></p>\n<p>&quot;The core of Apache ECharts 5 is &quot;Show, do not tell&quot;, which is a comprehensive upgrade of five topics and 15 features around the stroy telling of visualizations, allowing charts to better tell the story behind the data. It helps developers to create visualizations that meet the needs of various scenarios more easily.</p>\n<h2 id=\"storytelling\">Storytelling</h2>\n<p>The importance of animation to human cognition cannot be overstated. In our previous work, we used initialization animations and transition animations to help users understand the connection between data transformations, making the appearance of charts and transformations seem less rigid. This time, we have even enhanced our animation capabilities, even more significantly. We hope to further exploit the role of animation to help users&#39; cognition, and help them understand the story behind the chart more easily with the dynamic stroy function of the chart.</p>\n<h4 id=\"bar-line-racing\">Bar/Line Racing</h4>\n<p>Apache ECharts 5 adds support for dynamically sorted bar-racing and dynamically sorted line-racing charts to help developers easily create time-series charts that show changes in data over time and tell the evolution of data.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=bar-race-country&edit=1&reset=1\" width=\"700\" height=\"400\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=line-race&edit=1&reset=1\" width=\"700\" height=\"400\" ></iframe>\n\n\n<p>The dynamic sorting chart shows the derivation of different categories in the ranking over time. The developer can enable this effect in ECharts with a few simple configuration code.</p>\n<h4 id=\"custom-series-animation\">Custom Series Animation</h4>\n<p>In addition to dynamic sorting charts, Apache ECharts 5 provides even richer and more powerful animations in the custom series, supporting interpolation animations for label value text, transition animations for morph, combine, separate, and other effects of graphics.</p>\n<p>Imagine what amazing visualizations you can create with these dynamic effects!</p>\n<h2 id=\"visual-design\">Visual Design</h2>\n<p>The role of visual design is not only to make the chart look better, but more importantly, a design that conforms to the principles of visualization can help users understand more quickly what the chart is trying to say and eliminate as much misunderstanding as possible from poor design.</p>\n<h4 id=\"overall-design\">Overall Design</h4>\n<p>We have found that a large percentage of developers use the default theme style for ECharts, so it is important to have an elegant default theme design. In Apache ECharts 5, we redesigned the default theme style, optimizing it for different charts and components. For example, we took into account factors such as differentiation between colors, contrast with background colors, and harmony with adjacent colors, and ensured that people with color blindness could clearly distinguish data.</p>\n<p><img src=\"documents/asset/img/feature-v5/theme-color.png\" width=\"400px\" /></p>\n<p>Let&#39;s look at the new version of the light and dark theme styles using the most commonly used bar chart as an example.</p>\n<p><img src=\"documents/asset/img/feature-v5/new-theme-light.png\" width=\"500px\" />\n<img src=\"documents/asset/img/feature-v5/new-theme-dark.png\" width=\"500px\" /></p>\n<p>For the data area zoom, timeline and other interactive components, we also designed a new style and provide a better interactive experience: &lt;img src=&quot;documents/asset/img/feature/v5/new-theme-dark.png</p>\n<p><img src=\"documents/asset/img/feature-v5/dataZoom.png\" width=\"500px\" /></p>\n<p><img src=\"documents/asset/img/feature-v5/timeline.png\" width=\"500px\" /></p>\n<h4 id=\"label\">Label</h4>\n<p>Labels are one of the core elements of a chart, and clear and unambiguous labels help users to have a more accurate understanding of the data. Apache ECharts 5 provides a variety of new labeling features that allow dense labels to be clearly displayed and accurately represented.</p>\n<p>Apache ECharts 5 can be enabled to automatically hide overlapping labels through a configuration item. For labels that exceed the display area, you can choose to automatically truncate or line break them. Dense pie chart labels now have a more aesthetically pleasing automatic layout.</p>\n<p>These features can help avoid text that is too dense and affects readability. And, no additional code needs to be written by the developer for them to take effect by default, greatly simplifying the development cost for developers.</p>\n<p>We also provide several configuration options to allow developers to actively control the layout strategy of tabs, such as tab dragging, overall display at the edge of the canvas, connecting with guide lines and graphical elements, and still linking to highlight the associated relationships.</p>\n<p>The new label feature allows you to have very clear label presentation even in a confined space mobile:</p>\n<p><img src=\"documents/asset/img/feature-v5/pie-label.png\" height=\"150px\" />\n<img src=\"documents/asset/img/feature-v5/pie-label-2.png\" height=\"150px\" /></p>\n<h4 id=\"time-axis\">Time Axis</h4>\n<p>Apache ECharts 5 brings a time axis suitable for expressing timestamp scales. The default design of the time axis highlights important information more prominently and provides more flexible customization capabilities, allowing developers to tailor the time axis&#39;s label content to different needs.</p>\n<p>First of all, the time axis is no longer split absolutely evenly as before, but instead selects more meaningful points like year, month, day, and whole point to display, and can show different levels of scales at the same time. The <code class=\"codespan\">formatter</code> of labels supports templates for time (e.g. <code class=\"codespan\">{yyyy}-{MM}-{dd}</code>), and different <code class=\"codespan\">formatter</code> can be specified for labels with different time granularity, which can be combined with rich text labels to create eye-catching and diverse time effects.</p>\n<p>The display of the time scale at different dataZoom granularities.</p>\n<p><img src=\"documents/asset/img/feature-v5/time-axis.png\" width=\"600px\" /></p>\n<p><img src=\"documents/asset/img/feature-v5/time-axis-2.png\" width=\"600px\" /></p>\n<h4 id=\"tooltip\">Tooltip</h4>\n<p>Tooltip is one of the most commonly used visualization components to help users interactively understand the details of data. In Apache ECharts 5, we have optimized the style of the tooltip, making the default display of the tooltip elegant and clear by adjusting the font style, color, arrow pointing to the graph, border color following the graph color, and other features. The rendering logic of rich text has been improved to ensure that the display is consistent with the HTML way, allowing users to choose different technical solutions to achieve the same effect in different scenarios.</p>\n<p><img src=\"documents/asset/img/feature-v5/new-tooltip.png\" height=\"200px\" />\n<img src=\"documents/asset/img/feature-v5/new-tooltip-2.png\" height=\"200px\" /></p>\n<p>In addition to this, we have also added the ability to sort the list in the tip box by value size or category order this time.</p>\n<h4 id=\"gauge\">Gauge</h4>\n<p>We have seen a lot of cool gauge charts created by community users, but the way they are configured is often complex and tricky. Therefore, we have upgraded the gauge to support image or vector path drawing pointers, anchor configurations, progress bars, rounded corner effects, and more.</p>\n<p>Different styles of gauge pointers.</p>\n<p><img src=\"documents/asset/img/feature-v5/gauge-pointer.png\" width=\"600px\" /></p>\n<p>These upgrades not only allow developers to achieve cool effects with simpler configuration items, but also bring richer customization capabilities.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=gauge-clock&edit=1&reset=1\" width=\"600\" height=\"600\" ></iframe>\n\n\n<h4 id=\"round-corner\">Round Corner</h4>\n<p>Apache ECharts 5 supports round corner for pie charts, sunburst charts, and treemap charts. Don&#39;t underestimate the simplicity of the rounded corners configuration, but combine them with other effects to create a more personalized visualization.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=sunburst-borderRadius&edit=1&reset=1\" width=\"400\" height=\"400\" ></iframe>\n\n\n\n<h2 id=\"interactivity\">Interactivity</h2>\n<p>The interactivity of the visualization helps users explore the work and deepen their understanding of the main idea of the diagram.</p>\n<h4 id=\"multi-state\">Multi-State</h4>\n<p>In ECharts 4, there were two interactive states, <code class=\"codespan\">emphasis</code> and <code class=\"codespan\">normal</code>, graph will enter the <code class=\"codespan\">emphasis</code> state when the mouse hovered to distinguish the data.</p>\n<p>This time in Apache ECharts 5, we have added a new effect of <strong>blur</strong> other non-related elements to the original mouse hover highlighting, so that the target data can be focused.</p>\n<p>For example, in this <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=bar-y-category-stack\" target=\"_blank\">bar chart</a> example, when the mouse hovers over a series, other non-related series will fade out, thus highlighting more clearly the comparison of data in the focused series. of data in the comparison. On diagrams with more complex data structures such as relationship, tree, sunburst, sankey, etc., it is also possible to see the connections between data by fading out non-related elements. Also, colors, shadows, and other styles that can be set in <code class=\"codespan\">emphasis</code> can now be set in <code class=\"codespan\">blur</code>.</p>\n<p>In addition, we&#39;ve added <strong>click to select</strong> to all series, an interaction that was previously only available in a few series such as pie charts and maps, allowing developers to set it to single or multiple selection mode, and to listen to the <code class=\"codespan\">selectchanged</code> event to get all the selected shapes for further processing. As with <code class=\"codespan\">emphasis</code> and <code class=\"codespan\">blur</code>, the selection style can also be configured in <code class=\"codespan\">select</code>.</p>\n<h4 id=\"performance-improvements\">Performance improvements</h4>\n<h5 id=\"dirty-rectangle-rendering\">Dirty Rectangle Rendering</h5>\n<p>Apache ECharts 5 has new support for dirty rectangle rendering to address performance bottlenecks in large scenes with only local changes. When using the Canvas renderer, the dirty rectangle rendering technique detects and updates only the parts of the view that have changed, rather than any changes causing a complete redraw of the canvas. This can help improve rendering frame rates in some special scenarios, such as scenes where the mouse frequently triggers some graphical highlighting many times. In the past for such scenes, additional Canvas layers were used to optimize performance, but this approach is not universal for all scenes and does not work well for complex styles. Dirty Rectangle rendering does a good job of satisfying both performance and display correctness.</p>\n<p>A visual demonstration of a dirty rectangle, with the red boxed area redrawn for the frame.</p>\n<p><img src=\"documents/asset/img/feature-v5/dirty-rect.gif\" width=\"500px\" /></p>\n<p>You can see the effect by enable dirty rectangle optimization on the new example page.</p>\n<h5 id=\"line-chart-performance-optimization-for-real-time-time-series-data\">Line Chart Performance Optimization for Real-Time Time-Series Data</h5>\n<p>In addition, the performance of line graphs with large amounts of data has also seen a significant performance improvement. We often encounter the need for high-performance plotting of large amounts of real-time time-series data, which will be updated every hundreds or tens of milliseconds.</p>\n<p>Apache ECharts 5 deeply optimizes CPU consumption, memory usage, and initialization time in these scenarios, enabling real-time updates (less than 30ms per update) for millions of data, and even rendering within 1s for ten millions of data, with low memory usage and smooth tooltip interactions.</p>\n<h2 id=\"development-experience\">Development Experience</h2>\n<p>We want such a powerful visualization tool to be used by more developers in a simpler way, so the developer experience is also a very important aspect for us.</p>\n<h4 id=\"datasets\">Datasets</h4>\n<p>ECharts 5 enhances the data transformation capabilities of datasets, allowing developers to implement common data processing such as filtering, sorting, aggregating, histogram, simple clustering, regression, etc. in a simple way. Developers can use these functions in a uniform and declarative way, and can easily implement common data operations.</p>\n<h4 id=\"internationalization\">Internationalization</h4>\n<p>The original internationalization implementation of ECharts takes the form of different distribution files packaged according to different language parameters. In this way, the dynamic language and main code are bound together, and the only way to switch languages when using ECharts is to reload different language versions of ECharts distributions.</p>\n<p>Therefore, starting with Apache ECharts 5, the dynamic language is separated from the main code. To switch languages, you only need to load the corresponding language, use the <code class=\"codespan\">registerLocale</code> function to mount the language object in a similar way to mount the theme, and then reinitialize it to complete the language switch.</p>\n<pre><code class=\"lang-js\">// import the lang object and set when init\necharts.registerLocale(&#39;DE&#39;, lang).\necharts.init(DomElement, null, {\n   locale: &#39;DE&#39;\n});\n</code></pre>\n<h4 id=\"typescript-refactoring\">TypeScript Refactoring</h4>\n<p>In order to continue to refactor and develop new features more safely and efficiently, we started the development of Apache ECharts 5 by rewriting the code using TypeScript. The strong typing brought by TypeScript gave us the confidence to refactor the code drastically to achieve more exciting features during the development of ECharts 5.</p>\n<p>For developers, we can also generate better and more code-compliant <code class=\"codespan\">DTS</code> type description files directly from TypeScript code. Until now, ECharts type description files have been maintained by community developers and published to <a href=\"https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/echarts\" target=\"_blank\">DefinityTyped</a>, which is a lot of work, so thanks for your contribution.</p>\n<p>In addition, if a developer&#39;s component is introduced on-demand, we provide a <code class=\"codespan\">ComposeOption</code> type method that can combine a configuration item type that contains only the introduced components, which can bring stricter type checking and help you detect unintroduced component types in advance.</p>\n<h2 id=\"accessibility\">Accessibility</h2>\n<p>Apache ECharts has always taken accessibility design seriously, and we want to make the information conveyed by charts equally to be accessed. We also want to make this possible for chart developers at a very low development cost, thus making developers more willing to support the accessibility.</p>\n<p>In the last major release, we supported automatic intelligent generation of chart descriptions based on different chart types and data, making it very easy for developers to support DOM description information for charts. In ECharts 5, we have also made more accessibility improvements to help people with visual impairments better understand the chart content.</p>\n<h4 id=\"theme-colors\">Theme Colors</h4>\n<p>We took accessibility into account when designing the new default theme, and we repeatedly tested the brightness and color values of the colors to help accessibility users clearly identify the chart data.</p>\n<p>Moreover, for developers with further accessibility needs, we also provide special high-contrast themes to further differentiate the data with higher contrast colors.</p>\n<h4 id=\"decal-patterns\">Decal Patterns</h4>\n<p>ECharts 5 also provides a new feature of decals to help users further differentiate data by using patterns to assist with color representation.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/aria-decal-simple&edit=1&reset=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n<p>In addition, decal patterns can also help in some other scenarios, such as: helping to better distinguish data in printed materials like newspapers and books that have only a single color or very few colors; using graphical elements to facilitate a more intuitive understanding of the data by the user.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/aria-decal-newspaper&edit=1&reset=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n\n<h2 id=\"summary\">Summary</h2>\n<p>In addition to the features described above, Apache ECharts has been improved in a very large number of details to help developers more easily create charts that good by default, are flexible in configuration, and tell the story behind the data with charts.</p>\n<p>Thank you to all the developers who have used ECharts, and even participated in community contributions, for making Apache ECharts 5 possible. We&#39;ll be working on future developments with even more enthusiasm, and we&#39;ll see you all in 6 with even more enthusiasm!</p>\n"},"ECharts 5 Upgrade Guide":{"type":["*"],"description":"<p>This guide is for those who want to upgrade from echarts 4.x (hereafter <code class=\"codespan\">v4</code>) to echarts 5.x (hereafter <code class=\"codespan\">v5</code>). You can find out what new features <code class=\"codespan\">v5</code> brings that are worth upgrading in <a href=\"tutorial.html#ECharts%205%20Upgrade%20Guide\" target=\"_blank\">New Features in ECharts 5</a>. In most cases, developers won&#39;t need to do anything extra for this upgrade, as echarts has always tried to keep the API as stable and backward-compatible as possible. However, <code class=\"codespan\">v5</code> still brings some breaking changes that require special attention. In addition, in some cases, <code class=\"codespan\">v5</code> provides a better API to replace the previous one, and these superseded APIs will no longer be recommended (though we have tried to be as compatible as possible with these changes). We&#39;ll try to explain these changes in detail in this document.</p>\n<p>Since we added the new <a href=\"tutorial.html#Use%20ECharts%20with%20bundler%20and%20NPM\" target=\"_blank\">tree-shaking API</a> in <code class=\"codespan\">v5.0.1</code>, this documentation is based on <code class=\"codespan\">v5.0.1</code> or higher.</p>\n<h2 id=\"breaking-changes\">Breaking Changes</h2>\n<h4 id=\"default-theme\">Default theme</h4>\n<p>First of all, the default theme has been changed. <code class=\"codespan\">v5</code> has made a lot of changes and optimizations on the theme design. If you still want to keep the colors of the old version, you can manually declare the colors as follows.</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    color: [\n        &#39;#c23531&#39;, &#39;#2f4554&#39;, &#39;#61a0a8&#39;, &#39;#d48265&#39;, &#39;#91c7ae&#39;, &#39;#749f83&#39;,\n        &#39;#ca8622&#39;, &#39;#bda29a&#39;, &#39;#6e7074&#39;, &#39;#546570&#39;, &#39;#c4ccd3&#39;\n    ],\n    // ...\n});\n</code></pre>\n<p>Or, to make a simple <code class=\"codespan\">v4</code> theme.</p>\n<pre><code class=\"lang-js\">var themeEC4 = {\n    color: [\n        &#39;#c23531&#39;, &#39;#2f4554&#39;, &#39;#61a0a8&#39;, &#39;#d48265&#39;, &#39;#91c7ae&#39;, &#39;#749f83&#39;,\n        &#39;#ca8622&#39;, &#39;#bda29a&#39;, &#39;#6e7074&#39;, &#39;#546570&#39;, &#39;#c4ccd3&#39;\n    ]\n};\nvar chart = echarts.init(dom, themeEC4);\nchart.setOption(/* ... */);\n</code></pre>\n<h4 id=\"importing-echarts\">Importing ECharts</h4>\n<h5 id=\"removing-support-for-default-exports\">Removing support for default exports</h5>\n<p>Since <code class=\"codespan\">v5</code>, echarts only provides <code class=\"codespan\">named exports</code>.</p>\n<p>So if you are importing <code class=\"codespan\">echarts</code> like this:</p>\n<pre><code class=\"lang-js\">import echarts from &#39;echarts&#39;;\n// Or import core module\nimport echarts from &#39;echarts/lib/echarts&#39;;\n</code></pre>\n<p>It will throw error in <code class=\"codespan\">v5</code>. You need to change the code as follows to import the entire module.</p>\n<pre><code class=\"lang-js\">import * as echarts from &#39;echarts&#39;;\n// Or\nimport * as echarts from &#39;echarts/lib/echarts&#39;;\n</code></pre>\n<h5 id=\"tree-shaking-api\">tree-shaking API</h5>\n<p>In 5.0.1, we introduced the new <a href=\"tutorial.html#Use%20ECharts%20with%20bundler%20and%20NPM\" target=\"_blank\">tree-shaking API</a></p>\n<pre><code class=\"lang-js\">import * as echarts from &#39;echarts/core&#39;;\nimport { BarChart } from &#39;echarts/charts&#39;;\nimport { GridComponent } from &#39;echarts/components&#39;;\n// Note that the Canvas renderer is no longer included by default and needs to be imported explictly, or import the SVGRenderer if you need to use the SVG rendering mode\nimport { CanvasRenderer } from &#39;echarts/renderers&#39;;\n\necharts.use([BarChart, GridComponent, CanvasRenderer]);\n</code></pre>\n<p>To make it easier for you to know which modules you need to import based on your option, our new example page adds a new feature to generate the three-shakable code, you can check the <code class=\"codespan\">Full Code</code> tab on the example page to see the modules you need to introduce and the related code.</p>\n<p>In most cases, we recommend using the new tree-shaking interface whenever possible, as it maximizes the power of the packaging tool tree-shaking and effectively resolves namespace conflicts and prevents the exposure of internal structures. If you are still using the CommonJS method of writing modules, the previous approach is still supported:</p>\n<pre><code class=\"lang-js\">const echarts = require(&#39;echarts/lib/echarts&#39;);\nrequire(&#39;echarts/lib/chart/bar&#39;);\nrequire(&#39;echarts/lib/component/grid&#39;);\n</code></pre>\n<p>Second, because our source code has been rewritten using TypeScript, <code class=\"codespan\">v5</code> will no longer support importing files from <code class=\"codespan\">echarts/src</code>. You need to change it to import from <code class=\"codespan\">echarts/lib</code>.</p>\n<h5 id=\"dependency-adjustment\">dependency adjustment</h5>\n<blockquote>\n<p>Note: This section is only for developers who use tree-shaking interfaces to ensure a minimal bundle size, not for those who imports the whole package.</p>\n</blockquote>\n<p>In order to keep the size of the bundle small enough, we remove some dependencies that would have been imported by default. For example, as mentioned above, when using the new on-demand interface, <code class=\"codespan\">CanvasRenderer</code> is no longer introduced by default, which ensures that unneeded Canvas rendering code is not imported when only SVG rendering mode is used, and in addition, the following dependencies are adjusted.</p>\n<ul>\n<li>The right-angle coordinate system component is no longer introduced by default when using line charts and bar charts, so the following introduction method was used before<pre><code class=\"lang-js\">const echarts = require(&#39;echarts/lib/echarts&#39;);\nrequire(&#39;echarts/lib/chart/bar&#39;);\nrequire(&#39;echarts/lib/chart/line&#39;);\n</code></pre>\nNeed to introduce the <code class=\"codespan\">grid</code> component separately again<pre><code class=\"lang-js\">require(&#39;echarts/lib/component/grid&#39;);\n</code></pre>\n</li>\n</ul>\n<p>Reference issues: <a href=\"https://github.com/apache/echarts/issues/14080\" target=\"_blank\">#14080</a>, <a href=\"https://github.com/apache/echarts/issues/13764\" target=\"_blank\">#13764</a></p>\n<ul>\n<li><code class=\"codespan\">aria</code> components are no longer imported by default. You need import it manually if necessary.<pre><code class=\"lang-js\">import { AriaComponent } from &#39;echarts/components&#39;;\necharts.use(AriaComponent);\n</code></pre>\nOr<pre><code class=\"lang-js\">require(&#39;echarts/lib/component/aria&#39;);\n</code></pre>\n</li>\n</ul>\n<h4 id=\"removes-built-in-geojson\">removes built-in geoJSON</h4>\n<p><code class=\"codespan\">v5</code> removes the built-in geoJSON (previously in the <code class=\"codespan\">echarts/map</code> folder). These geoJSON files were always sourced from third parties. If users still need them, they can go get them from the old version, or find more appropriate data and register it with ECharts via the registerMap interface.</p>\n<h4 id=\"browser-compatibility\">Browser Compatibility</h4>\n<p>IE8 is no longer supported by <code class=\"codespan\">v5</code>. We no longer maintain and upgrade the previous <a href=\"https://github.com/ecomfe/zrender/tree/4.3.2/src/vml\" target=\"_blank\">VML renderer</a> for IE8 compatibility. If developers have a strong need for a VML renderer, they are welcome to submit a pull request to upgrade the VML renderer or maintain a separate third-party VML renderer, as we support registration of standalone renderers starting with <code class=\"codespan\">v5.0.1</code>.</p>\n<h4 id=\"echarts-configuration-item-adjustment\">ECharts configuration item adjustment</h4>\n<h5 id=\"visual-style-settings-priority-change\">Visual style settings priority change</h5>\n<p>The priority of the visuals between <a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a> and <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a> are reversed since <code class=\"codespan\">v5</code>.</p>\n<p>That is, previously in <code class=\"codespan\">v4</code>, the visuals (i.e., color, symbol, symbolSize, ...) that generated by <a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a> has the highest priority, which will overwrite the same visuals settings in <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a>. That brought troubles when needing to specify specific style to some certain data items while using <a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a>. Since <code class=\"codespan\">v5</code>, the visuals specified in <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a> has the highest priority.</p>\n<p>In most cases, users will probably not notice this change when migrating from <code class=\"codespan\">v4</code> to <code class=\"codespan\">v5</code>. But users can still check that if <a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a> and <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a> are both specified.</p>\n<h5 id=\"padding-for-rich-text\"><code class=\"codespan\">padding</code> for rich text</h5>\n<p><code class=\"codespan\">v5</code> adjusts the <a href=\"option.html#series-scatter.label.rich.&lt;style_name&gt;.padding\" target=\"_blank\">rich.?.padding</a> to make it more compliant with CSS specifications. In <code class=\"codespan\">v4</code>, for example <code class=\"codespan\">rich. .padding: [11, 22, 33, 44]</code> means that <code class=\"codespan\">padding-top</code> is <code class=\"codespan\">33</code> and <code class=\"codespan\">padding-bottom</code> is <code class=\"codespan\">11</code>. The position of the top and bottom is adjusted in <code class=\"codespan\">v5</code>, <code class=\"codespan\">rich. .padding: [11, 22, 33, 44]</code> means that <code class=\"codespan\">padding-top</code> is <code class=\"codespan\">11</code> and <code class=\"codespan\">padding-bottom</code> is <code class=\"codespan\">33</code>.</p>\n<p>If the user is using <a href=\"option.html#series-scatter.label.rich.&lt;style_name&gt;.padding\" target=\"_blank\">rich.?.padding</a>, this order needs to be adjusted.</p>\n<h2 id=\"echarts-related-extensions\">ECharts Related Extensions</h2>\n<p>These extensions need to be upgraded to new version to support echarts <code class=\"codespan\">v5</code>:</p>\n<ul>\n<li><a href=\"https://github.com/ecomfe/echarts-gl\" target=\"_blank\">echarts-gl</a></li>\n<li><a href=\"https://github.com/ecomfe/echarts-wordcloud\" target=\"_blank\">echarts-wordcloud</a></li>\n<li><a href=\"https://github.com/ecomfe/echarts-liquidfill\" target=\"_blank\">echarts-liquidfill</a></li>\n</ul>\n<h2 id=\"deprecated-api\">Deprecated API</h2>\n<p>Some of the API and echarts options are deprecated since <code class=\"codespan\">v5</code>, but are still backward compatible. Users can <strong>keep using these deprecated API</strong>, with only some warning will be printed to console in dev mode. But if users have spare time, it is recommended to upgraded to new API for the consideration of long term maintenance.</p>\n<p>The deprecated API and their corresponding new API are listed as follows:</p>\n<ul>\n<li>Transform related props of a graphic element are changed:<ul>\n<li>Changes:<ul>\n<li><code class=\"codespan\">position: [number, number]</code> are changed to <code class=\"codespan\">x: number</code>/<code class=\"codespan\">y: number</code>.</li>\n<li><code class=\"codespan\">scale: [number, number]</code> are changed to <code class=\"codespan\">scaleX: number</code>/<code class=\"codespan\">scaleY: number</code>.</li>\n<li><code class=\"codespan\">origin: [number, number]</code> are changed to <code class=\"codespan\">originX: number</code>/<code class=\"codespan\">originY: number</code>.</li>\n</ul>\n</li>\n<li>The <code class=\"codespan\">position</code>, <code class=\"codespan\">scale</code> and <code class=\"codespan\">origin</code> are still supported but deprecated.</li>\n<li>It effects these places:<ul>\n<li>In the <code class=\"codespan\">graphic</code> components: the declarations of each element.</li>\n<li>In <code class=\"codespan\">custom series</code>: the declarations of each element in the return of <code class=\"codespan\">renderItem</code>.</li>\n<li>Directly use zrender graphic elements.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>Text related props on graphic elements are changed:<ul>\n<li>Changes:<ul>\n<li>The declaration of attached text (or say, rect text) are changed.<ul>\n<li>Prop <code class=\"codespan\">style.text</code> are deprecated in elements except <code class=\"codespan\">Text</code>. Instead, Prop set <code class=\"codespan\">textContent</code> and <code class=\"codespan\">textConfig</code> are provided to support more powerful capabilities.</li>\n<li>These related props at the left part below are deprecated. Use the right part below instead.<ul>\n<li>textPosition =&gt; textConfig.position</li>\n<li>textOffset =&gt; textConfig.offset</li>\n<li>textRotation =&gt; textConfig.rotation</li>\n<li>textDistance =&gt; textConfig.distance</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>The props at the left part below are deprecated in <code class=\"codespan\">style</code> and <code class=\"codespan\">style.rich.?</code>. Use the props at the right part below instead.<ul>\n<li>textFill =&gt; fill</li>\n<li>textStroke =&gt; stroke</li>\n<li>textFont =&gt; font</li>\n<li>textStrokeWidth =&gt; lineWidth</li>\n<li>textAlign =&gt; align</li>\n<li>textVerticalAlign =&gt; verticalAlign);</li>\n<li>textLineHeight =&gt;</li>\n<li>textWidth =&gt; width</li>\n<li>textHeight =&gt; hight</li>\n<li>textBackgroundColor =&gt; backgroundColor</li>\n<li>textPadding =&gt; padding</li>\n<li>textBorderColor =&gt; borderColor</li>\n<li>textBorderWidth =&gt; borderWidth</li>\n<li>textBorderRadius =&gt; borderRadius</li>\n<li>textBoxShadowColor =&gt; shadowColor</li>\n<li>textBoxShadowBlur =&gt; shadowBlur</li>\n<li>textBoxShadowOffsetX =&gt; shadowOffsetX</li>\n<li>textBoxShadowOffsetY =&gt; shadowOffsetY</li>\n</ul>\n</li>\n<li>Note: these props are not changed:<ul>\n<li>textShadowColor</li>\n<li>textShadowBlur</li>\n<li>textShadowOffsetX</li>\n<li>textShadowOffsetY</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>It effects these places:<ul>\n<li>In the <code class=\"codespan\">graphic</code> components: the declarations of each element. [compat, but not accurately the same in some complicated cases.]</li>\n<li>In <code class=\"codespan\">custom series</code>: the declarations of each element in the return of <code class=\"codespan\">renderItem</code>. [compat, but not accurately the same in some complicated cases].</li>\n<li>Directly use zrender API to create graphic elements. [No compat, breaking change].</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>API on chart instance:<ul>\n<li><code class=\"codespan\">chart.one(...)</code> is deprecated.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">label</code>:<ul>\n<li>In props <code class=\"codespan\">color</code>, <code class=\"codespan\">textBorderColor</code>, <code class=\"codespan\">backgroundColor</code> and <code class=\"codespan\">borderColor</code>, the value <code class=\"codespan\">&#39;auto&#39;</code> is deprecated. Use the value <code class=\"codespan\">&#39;inherit&#39;</code> instead.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">hoverAnimation</code>:<ul>\n<li>option <code class=\"codespan\">series.hoverAnimation</code> is deprecated. Use <code class=\"codespan\">series.emphasis.scale</code> instead.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">line series</code>:<ul>\n<li>option <code class=\"codespan\">series.clipOverflow</code> is deprecated. Use <code class=\"codespan\">series.clip</code> instead.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">custom series</code>:<ul>\n<li>In <code class=\"codespan\">renderItem</code>, the <code class=\"codespan\">api.style(...)</code> and <code class=\"codespan\">api.styleEmphasis(...)</code> are deprecated. Because it is not really necessary and hard to ensure backward compatibility. Users can fetch system designated visual by <code class=\"codespan\">api.visual(...)</code>.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">sunburst series</code>:<ul>\n<li>Action type <code class=\"codespan\">highlight</code> is deprecated. Use <code class=\"codespan\">sunburstHighlight</code> instead.</li>\n<li>Action type <code class=\"codespan\">downplay</code> is deprecated. Use <code class=\"codespan\">sunburstUnhighlight</code> instead.</li>\n<li>option <code class=\"codespan\">series.downplay</code> is deprecated. Use <code class=\"codespan\">series.blur</code> instead.</li>\n<li>option <code class=\"codespan\">series.highlightPolicy</code> is deprecated. Use <code class=\"codespan\">series.emphasis.focus</code> instead.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">pie series</code>:<ul>\n<li>The action type at the left part below are deprecated. Use the right part instead:<ul>\n<li><code class=\"codespan\">pieToggleSelect</code> =&gt; <code class=\"codespan\">toggleSelect</code></li>\n<li><code class=\"codespan\">pieSelect</code> =&gt; <code class=\"codespan\">select</code></li>\n<li><code class=\"codespan\">pieUnSelect</code> =&gt; <code class=\"codespan\">unselect</code></li>\n</ul>\n</li>\n<li>The event type at the left part below are deprecated. Use the right part instead:<ul>\n<li><code class=\"codespan\">pieselectchanged</code> =&gt; <code class=\"codespan\">selectchanged</code></li>\n<li><code class=\"codespan\">pieselected</code> =&gt; <code class=\"codespan\">selected</code></li>\n<li><code class=\"codespan\">pieunselected</code> =&gt; <code class=\"codespan\">unselected</code></li>\n</ul>\n</li>\n<li>option <code class=\"codespan\">series.label.margin</code> is deprecated. Use <code class=\"codespan\">series.label.edgeDistance</code> instead.</li>\n<li>option <code class=\"codespan\">series.clockWise</code> is deprecated. Use <code class=\"codespan\">series.clockwise</code> instead.</li>\n<li>option <code class=\"codespan\">series.hoverOffset</code> is deprecated. Use <code class=\"codespan\">series.emphasis.scaleSize</code> instead.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">map series</code>:<ul>\n<li>The action type at the left part below are deprecated. Use the right part instead:<ul>\n<li><code class=\"codespan\">mapToggleSelect</code> =&gt; <code class=\"codespan\">toggleSelect</code></li>\n<li><code class=\"codespan\">mapSelect</code> =&gt; <code class=\"codespan\">select</code></li>\n<li><code class=\"codespan\">mapUnSelect</code> =&gt; <code class=\"codespan\">unselect</code></li>\n</ul>\n</li>\n<li>The event type at the left part below are deprecated. Use the right part instead:<ul>\n<li><code class=\"codespan\">mapselectchanged</code> =&gt; <code class=\"codespan\">selectchanged</code></li>\n<li><code class=\"codespan\">mapselected</code> =&gt; <code class=\"codespan\">selected</code></li>\n<li><code class=\"codespan\">mapunselected</code> =&gt; <code class=\"codespan\">unselected</code></li>\n</ul>\n</li>\n<li>option <code class=\"codespan\">series.mapType</code> is deprecated. Use <code class=\"codespan\">series.map</code> instead.</li>\n<li>option <code class=\"codespan\">series.mapLocation</code> is deprecated.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">graph series</code>:<ul>\n<li>option <code class=\"codespan\">series.focusNodeAdjacency</code> is deprecated. Use <code class=\"codespan\">series.emphasis: { focus: &#39;adjacency&#39;}</code> instead.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">gauge series</code>:<ul>\n<li>option <code class=\"codespan\">series.clockWise</code> is deprecated. Use <code class=\"codespan\">series.clockwise</code> instead.</li>\n<li>option <code class=\"codespan\">series.hoverOffset</code> is deprecated. Use <code class=\"codespan\">series.emphasis.scaleSize</code> instead.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">dataZoom component</code>:<ul>\n<li>option <code class=\"codespan\">dataZoom.handleIcon</code> need prefix <code class=\"codespan\">path://</code> if using SVGPath.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">radar</code>:<ul>\n<li>option <code class=\"codespan\">radar.name</code> is deprecated. Use <code class=\"codespan\">radar.axisName</code> instead.</li>\n<li>option <code class=\"codespan\">radar.nameGap</code> is deprecated. Use <code class=\"codespan\">radar.axisNameGap</code> instead.</li>\n</ul>\n</li>\n<li>Parse and format:<ul>\n<li><code class=\"codespan\">echarts.format.formatTime</code> is deprecated. Use <code class=\"codespan\">echarts.time.format</code> instead.</li>\n<li><code class=\"codespan\">echarts.number.parseDate</code> is deprecated. Use <code class=\"codespan\">echarts.time.parse</code> instead.</li>\n<li><code class=\"codespan\">echarts.format.getTextRect</code> is deprecated.</li>\n</ul>\n</li>\n</ul>\n"},"Use ECharts with bundler and NPM":{"type":["*"],"description":"<p>If your development environment uses a package management tool like <code class=\"codespan\">npm</code> or <code class=\"codespan\">yarn</code> and builds with a packaging tool like Webpack, this article will describe how to get a minimal bundle of Apache ECharts<sup>TM</sup> via treeshaking.</p>\n<h2 id=\"npm-installation-of-echarts\">NPM installation of ECharts</h2>\n<p>You can install ECharts via npm using the following command</p>\n<pre><code class=\"lang-shell\">npm install echarts --save\n</code></pre>\n<h2 id=\"introduce-echarts\">Introduce ECharts</h2>\n<pre><code class=\"lang-js\">import * as echarts from &#39;echarts&#39;;\n\n// initialize the echarts instance\nvar myChart = echarts.init(document.getElementById(&#39;main&#39;));\n// Draw the chart\nmyChart.setOption({\n    title: {\n        text: &#39;ECharts Getting Started Example&#39;\n    },\n    tooltip: {},\n    xAxis: {\n        data: [&#39;shirt&#39;, &#39;cardigan&#39;, &#39;chiffon&#39;, &#39;pants&#39;, &#39;heels&#39;, &#39;socks&#39;]\n    },\n    yAxis: {},\n    series: [{\n        name: &#39;sales&#39;,\n        type: &#39;bar&#39;,\n        data: [5, 20, 36, 10, 10, 20]\n    }]\n});\n</code></pre>\n<h2 id=\"importing-required-charts-and-components-to-have-minimal-bundle-\">Importing required charts and components to have minimal bundle.</h2>\n<p>The above code will import all the charts and components in ECharts, but if you don&#39;t want to bring in all the components, you can use the tree-shakeable interface provided by ECharts to bundle the required components and get a minimal bundle.</p>\n<pre><code class=\"lang-js\">// Import the echarts core module, which provides the necessary interfaces for using echarts.\nimport * as echarts from &#39;echarts/core&#39;;\n// Import bar charts, all with Chart suffix\nimport {\n    BarChart\n} from &#39;echarts/charts&#39;;\n// import the tooltip, title, and rectangular coordinate system components, all suffixed with Component\nimport {\n    TitleComponent,\n    TooltipComponent,\n    GridComponent\n} from &#39;echarts/components&#39;;\n// Import the Canvas renderer, note that introducing the CanvasRenderer or SVGRenderer is a required step\nimport {\n    CanvasRenderer\n} from &#39;echarts/renderers&#39;;\n\n// Register the required components\necharts.use(\n    [TitleComponent, TooltipComponent, GridComponent, BarChart, CanvasRenderer]\n);\n\n// The next step is the same as before, initialize the chart and set the configuration items\nvar myChart = echarts.init(document.getElementById(&#39;main&#39;));\nmyChart.setOption({\n    ...\n});\n</code></pre>\n<blockquote>\n<p>Note that in order to keep the size of the package to a minimum, ECharts does not provide any renderer in tree-shakeable interface, so you need to choose to import <code class=\"codespan\">CanvasRenderer</code> or <code class=\"codespan\">SVGRenderer</code> as the renderer. The advantage of this is that if you only need to use the svg rendering mode, the bundle will not include the <code class=\"codespan\">CanvasRenderer</code> module, which is not needed.</p>\n</blockquote>\n<p>The &quot;Full Code&quot; tab on our sample editor page provides a very convenient way to generate a tree-shakable code. It will generate tree-shakable code based on the current option dynamically. You can use it directly in your project.</p>\n<h2 id=\"minimal-option-type-in-typescript\">Minimal Option Type in TypeScript</h2>\n<p>For developers who are using TypeScript to develop ECharts, we provide a type interface to combine the minimal <code class=\"codespan\">EChartsOption</code> type. This stricter type can effectively help you check for missing components or charts.</p>\n<pre><code class=\"lang-ts\">import * as echarts from &#39;echarts/core&#39;;\nimport {\n    BarChart,\n    // The series types are defined with the SeriesOption suffix\n    BarSeriesOption,\n    LineChart,\n    LineSeriesOption\n} from &#39;echarts/charts&#39;;\nimport {\n    TitleComponent,\n    // The component types are defined with the suffix ComponentOption\n    TitleComponentOption,\n    GridComponent,\n    GridComponentOption\n} from &#39;echarts/components&#39;;\nimport {\n    CanvasRenderer\n} from &#39;echarts/renderers&#39;;\n\n// Combine an Option type with only required components and charts via ComposeOption\ntype ECOption = echarts.ComposeOption&lt;\n  BarSeriesOption | LineSeriesOption | TitleComponentOption | GridComponentOption\n&gt;;\n\n// Register the required components\necharts.use(\n    [TitleComponent, TooltipComponent, GridComponent, BarChart, CanvasRenderer]\n);\n\nvar option: ECOption = {\n    ...\n}\n</code></pre>\n"},"ECharts Basic Concepts Overview":{"type":["*"],"description":"<p>This chapter describes some of the common concepts and terms of Apache ECharts<sup>TM</sup>.</p>\n<h2 id=\"echarts-instance\">ECharts instance</h2>\n<p>We can create multiple <code class=\"codespan\">echarts instances</code> in a webpage. In each <code class=\"codespan\">echarts instance</code> we can create multiple diagrams, coordinate systems, etc. (described by <code class=\"codespan\">option</code>). With a DOM element prepared (as the container of an echarts instance), we can create a <code class=\"codespan\">echarts instance</code> based on that element. Each <code class=\"codespan\">echarts instance</code> takes its DOM element exclusively.</p>\n<p><br></p>\n<p><img width=\"500\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/multiple-ec-instance.jpg\"></p>\n<h2 id=\"series\">Series</h2>\n<p><a href=\"option.html#series\" target=\"_blank\">series</a> is a very common term. In echarts, <a href=\"option.html#series\" target=\"_blank\">series</a> represents a series of value and the diagram generated from them. So the concept <a href=\"option.html#series\" target=\"_blank\">series</a> includes these key points: a series of value, the type of the diagram (<code class=\"codespan\">series.type</code>) and other parameters specified for the mapping from the values to a diagram.</p>\n<p>In echarts, the <code class=\"codespan\">series.type</code> and the &quot;diagram type&quot; are the same concept. <code class=\"codespan\">series.type</code> includes: <a href=\"option.html#series-line\" target=\"_blank\">line</a> (line plot), <a href=\"option.html#series-bar\" target=\"_blank\">bar</a> (bar chart), <a href=\"option.html#series-pie\" target=\"_blank\">pie</a> (pie chart), <a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a> (scatter plot), <a href=\"option.html#series-graph\" target=\"_blank\">graph</a> (graph plot), <a href=\"option.html#series-tree\" target=\"_blank\">tree</a> (tree plot), etc.</p>\n<p>In the example below, there are three <a href=\"option.html#series\" target=\"_blank\">series</a> (<a href=\"option.html#series-pie\" target=\"_blank\">pie</a>, <a href=\"option.html#series-line\" target=\"_blank\">line</a>, <a href=\"option.html#series-bar\" target=\"_blank\">bar</a>) declared in the <code class=\"codespan\">option</code> on the right, where <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> are declared in each series:</p>\n<p><br></p>\n<p><img width=\"700\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/series-all-a.jpg\"></p>\n<p><br></p>\n<p>Similarly, the following example shows another style of <code class=\"codespan\">option</code>, where each series retrieves data from <a href=\"option.html#dataset\" target=\"_blank\">dataset</a>:</p>\n<p><br></p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/series-all-b.jpg\"></p>\n<h2 id=\"component\">Component</h2>\n<p>Over series, the entities in echarts are abstracted using the term &quot;component&quot;. For example, echarts includes these components: <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a> (the x axis of Cartesian coordinate system), <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a> (the y axis of Cartesian coordinate system), <a href=\"option.html#grid\" target=\"_blank\">grid</a> (the baseboard of Cartesian coordinate system), <a href=\"option.html#angleAxis\" target=\"_blank\">angleAxis</a> (the angle axis of polar coordinate system), <a href=\"option.html#radiusAxis\" target=\"_blank\">radiusAxis</a> (the radius axis of polar coordinate system), <a href=\"option.html#polar\" target=\"_blank\">polar</a> (the baseboard of polar coordinate system), <a href=\"option.html#geo\" target=\"_blank\">geo</a> (GEO coordinate system), <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a> (the component for changing the displayed range of data), <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> (the component for specifying the visual mapping), <a href=\"option.html#tooltip\" target=\"_blank\">tooltip</a> (the tooltip component), <a href=\"option.html#toolbox\" target=\"_blank\">toolbox</a> (the toolbox component), <a href=\"option.html#series\" target=\"_blank\">series</a>, etc.</p>\n<p>Notice that <a href=\"option.html#series\" target=\"_blank\">series</a> is a kind of component, a component for rendering diagram.</p>\n<p>Check the example below. Components (including series) are declared in <code class=\"codespan\">option</code> on the right, and the are finally rendered in the echarts instance.</p>\n<p><br></p>\n<p><img width=\"800\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/components.jpg\"></p>\n<p><br></p>\n<p>Notice: although <a href=\"option.html#series\" target=\"_blank\">series</a> is a kind of component, sometimes we can see phrases like &quot;series and components&quot;. The term &quot;component&quot; in this context actually means &quot;components except series&quot;.</p>\n<h2 id=\"define-charts-using-option\">Define charts using option</h2>\n<p>We have met the term <code class=\"codespan\">option</code> above. Users should use <code class=\"codespan\">option</code> to describe all of their requirements and input it to echarts. The requirements includes: &quot;what does the data like&quot;, &quot;what the diagram we need&quot;, &quot;what components we need&quot;, &quot;what the user interactions we need&quot;, etc. In short, <code class=\"codespan\">option</code> defines: <code class=\"codespan\">data</code>, <code class=\"codespan\">visual mapping</code>, <code class=\"codespan\">interaction</code>.</p>\n<pre><code class=\"lang-js\">// Create an echarts instance.\nvar dom = document.getElementById(&#39;dom-id&#39;);\nvar chart = echarts.init(dom);\n\n// Use option to describe `data`, `visual mapping`, `interaction`, ...\n// `option` is a big JavaScript object.\nvar option = {\n    // Each property represents a kind of components.\n    legend: {...},\n    grid: {...},\n    tooltip: {...},\n    toolbox: {...},\n    dataZoom: {...},\n    visualMap: {...},\n    // If there are more than one components in one kind, we use an array.\n    // For example, there are three x axes here.\n    xAxis: [\n        // Each item represents an instance of component.\n        // `type` is used to indicate the sub-type of the component.\n        {type: &#39;category&#39;, ...},\n        {type: &#39;category&#39;, ...},\n        {type: &#39;value&#39;, ...}\n    ],\n    yAxis: [{...}, {...}],\n    // There are multiple series, using an array.\n    series: [\n        // `type` is also used to indicate the sub-type\n        // (i.e., diagram type) of each series.\n        {type: &#39;line&#39;, data: [[&#39;AA&#39;, 332], [&#39;CC&#39;, 124], [&#39;FF&#39;, 412], ... ]},\n        {type: &#39;line&#39;, data: [2231, 1234, 552, ... ]},\n        {type: &#39;line&#39;, data: [[4, 51], [8, 12], ... ]}\n    }]\n};\n\n// Call `setOption` and input the `option`. And then the\n// echarts instance processes data and renders charts.\nchart.setOption(option);\n</code></pre>\n<p>Data is put in <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> in the above example. And we give another example showing another way, where each series retrieves data from <a href=\"option.html#dataset\" target=\"_blank\">dataset</a>:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: {\n        source: [\n            [121, &#39;XX&#39;, 442, 43.11],\n            [663, &#39;ZZ&#39;, 311, 91.14],\n            [913, &#39;ZZ&#39;, 312, 92.12],\n            ...\n        ]\n    },\n    xAxis: {},\n    yAxis: {},\n    series: [\n        // Each series retrieves data from `dataset`. The values in `encode`\n        // are the indices of the dimensions (i.e., column) of `dataset.source`.\n        {type: &#39;bar&#39;, encode: {x: 1, y: 0}},\n        {type: &#39;bar&#39;, encode: {x: 1, y: 2}},\n        {type: &#39;scatter&#39;, encode: {x: 1, y: 3}},\n        ...\n    ]\n};\n</code></pre>\n<h2 id=\"position-a-component\">Position a component</h2>\n<p>These approaches are used to Position a component.</p>\n<p><br></p>\n<p><strong>[Absolute positioning like CSS]</strong></p>\n<p><br></p>\n<p>Most components and series can be absolutely positioned according to <code class=\"codespan\">top</code> / <code class=\"codespan\">right</code> / <code class=\"codespan\">down</code> / <code class=\"codespan\">left</code> / <code class=\"codespan\">width</code> / <code class=\"codespan\">height</code>. This approach is like the absolute positioning in CSS. The absolute positioning is based on the container DOM element of the echarts.</p>\n<p>The value of each attribute can be:</p>\n<ul>\n<li>Absolute value (like <code class=\"codespan\">bottom: 54</code>, means: the distance from the boundary of the echarts container to bottom boundary of the component is <code class=\"codespan\">54</code> pixel).</li>\n<li>Or the percentage based on the width/height of the echarts container (like <code class=\"codespan\">right: &#39;20%&#39;</code>, means: the distance from the boundary of the echarts container to the right boundary of this component is <code class=\"codespan\">20%</code> of the width of the echarts container).</li>\n</ul>\n<p>Check the example below, where the <a href=\"option.html#grid\" target=\"_blank\">grid</a> component (that is the baseboard of a Cartesian coordinate system) are configured with <code class=\"codespan\">left</code>、<code class=\"codespan\">right</code>、<code class=\"codespan\">height</code>、<code class=\"codespan\">bottom</code>.</p>\n<p><br></p>\n<p><img width=\"800\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/locate.jpg\"></p>\n<p><br></p>\n<p>Note that <code class=\"codespan\">left</code> <code class=\"codespan\">right</code> <code class=\"codespan\">width</code> are one group of attributes for horizontal layout, while <code class=\"codespan\">top</code> <code class=\"codespan\">bottom</code> <code class=\"codespan\">height</code> are another group of attributes for vertical layout. The two groups have nothing to do with each other. In each group, it is enough to set only one or at most two attributes. For example, when <code class=\"codespan\">left</code> and <code class=\"codespan\">right</code> have been specified, <code class=\"codespan\">width</code> can be automatically calculated by them.</p>\n<p><br></p>\n<p><strong>[Center-radius positioning]</strong></p>\n<p><br></p>\n<p>A few circular components or series need to be positioned by &quot;center&quot; and &quot;radius&quot;. For example, <a href=\"option.html#series-pie\" target=\"_blank\">pie</a> (pie chart)、<a href=\"option.html#series-sunburst\" target=\"_blank\">sunburst</a> (sunburst chart)、<a href=\"option.html#polar\" target=\"_blank\">polar</a> (polar coordinate system).</p>\n<p>As the name implies, it position the component according to <a href=\"option.html#series-pie.center\" target=\"_blank\">center</a> and <a href=\"option.html#series-pie.radius\" target=\"_blank\">radius</a>.</p>\n<p><br></p>\n<p><strong>[Other positioning]</strong></p>\n<p><br></p>\n<p>A few other components may has their own specific positioning approach. Check their docs before using them.</p>\n<h2 id=\"coordinate-system\">Coordinate system</h2>\n<p>Many series, like <a href=\"option.html#series-line\" target=\"_blank\">line</a>, <a href=\"option.html#series-bar\" target=\"_blank\">bar</a>, <a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>, <a href=\"option.html#series-heatmap\" target=\"_blank\">heatmap</a>, etc., need to work on a coordinate system. Coordinate system is used to layout each graphic elements and display some ticks and labels. For example, echarts at least provides these coordinate systems: <a href=\"option.html#grid\" target=\"_blank\">Cartesian coordinate system</a>, <a href=\"option.html#polar\" target=\"_blank\">polar coordinate system</a>, <a href=\"option.html#geo\" target=\"_blank\">GEO coordinate system</a>, <a href=\"option.html#singleAxis\" target=\"_blank\">single axis coordinate system</a>, <a href=\"option.html#calendar\" target=\"_blank\">calendar coordinate system</a>, etc. Some other series like <a href=\"option.html#series-pie\" target=\"_blank\">pie</a>, <a href=\"option.html#series-tree\" target=\"_blank\">tree</a>, work independently without any coordinate systems. And still some other series like <a href=\"option.html#series-graph\" target=\"_blank\">graph</a> are available either independently or on some coordinate system, depending on user settings.</p>\n<p>A coordinate system may consist of several components. For example, Cartesian coordinate system consists of <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a>, <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a> and <a href=\"option.html#grid\" target=\"_blank\">grid</a> (the baseboard). <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a> and <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a> are referenced and assembled by <code class=\"codespan\">grid</code> and work together cooperatively.</p>\n<p>The following example demonstrates the most simple way to use a Cartesian coordinate system, where only <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a>, <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a> and a <a href=\"option.html#series-scatter\" target=\"_blank\">scatter series</a> are declared, and <code class=\"codespan\">echarts</code> create and a <code class=\"codespan\">grid</code> implicitly to link them.</p>\n<p><br></p>\n<p><img width=\"450\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/coord-sys-0.jpg\"></p>\n<p><br></p>\n<p>And the following example demonstrates a more complicated case, where two <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a> share one <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a>. And the two <code class=\"codespan\">series</code> are also share the <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a>, but use different <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a> respectively. The property <a href=\"option.html#series-line.yAxisIndex\" target=\"_blank\">yAxisIndex</a> is used to specify which <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a> is used.</p>\n<p><br></p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/coord-sys-1.jpg\"></p>\n<p><br></p>\n<p>The following echarts instance contain more than one <a href=\"option.html#grid\" target=\"_blank\">grid</a>. Each <a href=\"option.html#grid\" target=\"_blank\">grid</a> has its own <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a> and <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a>. The properties <a href=\"option.html#series-line.xAxisIndex\" target=\"_blank\">xAxisIndex</a>, <a href=\"option.html#series-line.yAxisIndex\" target=\"_blank\">yAxisIndex</a> and <a href=\"option.html#yAxis.gridIndex\" target=\"_blank\">gridIndex</a> are used to specify the reference relationships.</p>\n<p><br></p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/coord-sys-2.jpg\"></p>\n<p><br></p>\n<p>Moreover, a type of series is usually available on various coordinate systems. For example, a <a href=\"option.html#series-scatter\" target=\"_blank\">scatter series</a> can work on <a href=\"option.html#grid\" target=\"_blank\">Cartesian coordinate system</a>, <a href=\"option.html#polar\" target=\"_blank\">polar coordinate system</a>, <a href=\"option.html#geo\" target=\"_blank\">GEO coordinate system</a> or other coordinate systems. Similarly, a coordinate system can serve different type of series. As the examples shown above, a <a href=\"option.html#grid\" target=\"_blank\">Cartesian coordinate system</a> serves several <a href=\"option.html#series-line\" target=\"_blank\">line series</a> and <a href=\"option.html#series-bar\" target=\"_blank\">bar series</a>.</p>\n"},"Customized Chart Styles":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> provides a rich amount of configurable items, which can be set in global, series, and data three different levels. Next, let&#39;s see an example of how to use ECharts to implement the following Nightingale rose chart:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-styling-step5&edit=1&reset=1\" width=\"500\" height=\"400\" ></iframe>\n\n\n<h2 id=\"drawing-nightingale-rose-chart\">Drawing Nightingale Rose Chart</h2>\n<p><a href=\"#Get%20Started%20with%20ECharts%20in%205%20minutes\">Getting started tutorial</a> introduced how to make a simple bar chart. This time, we are going to make a pie chart. Pie charts use arc length of fans to represent ratio of a certain series in total share. It&#39;s data format is simpler than bar chart, because it only contains one dimension without category. Besides, since it&#39;s not in rectangular system, it doesn&#39;t need <code class=\"codespan\">xAxis</code>、<code class=\"codespan\">yAxis</code> either.</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    series : [\n        {\n            name: &#39;Reference Page&#39;,\n            type: &#39;pie&#39;,\n            radius: &#39;55%&#39;,\n            data:[\n                {value:400, name:&#39;Searching Engine&#39;},\n                {value:335, name:&#39;Direct&#39;},\n                {value:310, name:&#39;Email&#39;},\n                {value:274, name:&#39;Alliance Advertisement&#39;},\n                {value:235, name:&#39;Video Advertisement&#39;}\n            ]\n        }\n    ]\n})\n</code></pre>\n<p>With the above code, we can create a simple pie chart:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-styling-step0&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>Here, the value of <code class=\"codespan\">data</code> is not a single value, as that of the example in get started. Instead, it&#39;s an object containing <code class=\"codespan\">name</code> and <code class=\"codespan\">value</code>. Data in ECharts can always be a single value, or a configurable object with name, style and label. You may refer to <a href=\"option.html#series-pie.data\" target=\"_blank\">data</a> for more information.</p>\n<p><a href=\"option.html#series-pie\" target=\"_blank\">Pie charts</a> of EChart can be made into Nightingale rose charts with <a href=\"option.html#series-pie.roseType\" target=\"_blank\">roseType</a> field.</p>\n<pre><code class=\"lang-js\">roseType: &#39;angle&#39;\n</code></pre>\n<p>Nightingale rose charts use radius to represent data value.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-styling-step1&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<h2 id=\"configuring-shadow\">Configuring Shadow</h2>\n<p>Commonly used styles of ECharts, like shadow, opacity, color, border-color, border-width, and etc., are set by <a href=\"#series-pie.itemStyle\">itemStyle</a> in series.</p>\n<pre><code class=\"lang-js\">itemStyle: {\n    // shadow size\n    shadowBlur: 200,\n    // horizontal offset of shadow\n    shadowOffsetX: 0,\n    // vertical offset of shadow\n    shadowOffsetY: 0,\n    // shadow color\n    shadowColor: &#39;rgba(0, 0, 0, 0.5)&#39;\n}\n</code></pre>\n<p>The effect after added shadow is:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-styling-step2&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>Each <code class=\"codespan\">itemStyle</code> has <code class=\"codespan\">emphasis</code> as the highlighted style when mouse hovered. The last example shows the effect of adding shadow by default. But in most situations, we may probably need to add shadow to emphasis when mouse is hovered.</p>\n<pre><code class=\"lang-js\">itemStyle: {\n    emphasis: {\n        shadowBlur: 200,\n        shadowColor: &#39;rgba(0, 0, 0, 0.5)&#39;\n    }\n}\n</code></pre>\n<h2 id=\"dark-background-and-light-text\">Dark Background and Light Text</h2>\n<p>Now, we need to change the whole theme as that shown in the example at the beginning of this tutorial. This can be achieved by changing background color and text color.</p>\n<p>Background is a global configurable object, so we can set it directly with <a href=\"option.html#backgroundColor\" target=\"_blank\">backgroundColor</a> of option.</p>\n<pre><code class=\"lang-js\">setOption({\n    backgroundColor: &#39;#2c343c&#39;\n})\n</code></pre>\n<p>Text style can also be set globally in <a href=\"option.html#textStyle\" target=\"_blank\">textStyle</a>.</p>\n<pre><code class=\"lang-js\">setOption({\n    textStyle: {\n        color: &#39;rgba(255, 255, 255, 0.3)&#39;\n    }\n})\n</code></pre>\n<p>On the other hand, we can also set them in <a href=\"option.html#series-pie.label.textStyle\" target=\"_blank\">label.textStyle</a> of each series.</p>\n<pre><code class=\"lang-js\">label: {\n    textStyle: {\n        color: &#39;rgba(255, 255, 255, 0.3)&#39;\n    }\n}\n</code></pre>\n<p>We also need to set line color of pie chart to be lighter.</p>\n<pre><code class=\"lang-js\">labelLine: {\n    lineStyle: {\n        color: &#39;rgba(255, 255, 255, 0.3)&#39;\n    }\n}\n</code></pre>\n<p>Thus, we can get the following effect.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-styling-step3&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>Similar to <code class=\"codespan\">itemStyle</code>, <code class=\"codespan\">label</code> and <code class=\"codespan\">labelLine</code> also have <code class=\"codespan\">emphasis</code> children.</p>\n<h2 id=\"setting-fan-colors\">Setting Fan Colors</h2>\n<p>Fan colors can be set in <code class=\"codespan\">itemStyle</code>:</p>\n<pre><code class=\"lang-js\">itemStyle: {\n    // 设置扇形的颜色\n    color: &#39;#c23531&#39;,\n    shadowBlur: 200,\n    shadowColor: &#39;rgba(0, 0, 0, 0.5)&#39;\n}\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-styling-step4&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>This is quite similar to our expect effect, except that fan colors should be made darker within shadow area, so as to make a sense of layering and space with blocked light.</p>\n<p>Each fan&#39;s color can be set under <code class=\"codespan\">data</code>:</p>\n<pre><code class=\"lang-js\">data: [{\n    value:400,\n    name:&#39;搜索引擎&#39;,\n    itemStyle: {\n        color: &#39;#c23531&#39;\n    }\n}, ...]\n</code></pre>\n<p>But since we only need the variation of color in this example, there&#39;s a simpler way to map data value to lightness through <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a>.</p>\n<pre><code class=\"lang-js\">visualMap: {\n    // hide visualMap component; use lightness mapping only\n    show: false,\n    // mapping with min value at 80\n    min: 80,\n    // mapping with max value at 600\n    max: 600,\n    inRange: {\n        // mapping lightness from 0 to 1\n        colorLightness: [0, 1]\n    }\n}\n</code></pre>\n<p>The final effect is:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-styling-step5&edit=1&reset=1\" width=\"500\" height=\"400\" ></iframe>\n\n\n\n\n\n"},"Overview of Style Customization":{"type":["*"],"description":"<p>This article provides an overview of the different approaches about Apache ECharts<sup>TM</sup> style customization. For example, how to config the color, size, shadow of the graphic elements and labels.</p>\n<blockquote>\n<p>The term &quot;style&quot; may not follow the convention of data visualization, but we use it in this article because it is popular and easy to understand.</p>\n</blockquote>\n<p>These approaches below will be introduced. The functionalities of them might be overlapped, but they are suitable for different scenarios.</p>\n<ul>\n<li>Theme</li>\n<li>Pallette</li>\n<li>Customize style explicitly (itemStyle, lineStyle, areaStyle, label, ...)</li>\n<li>Visual encoding (visualMap component)</li>\n</ul>\n<p>Other article about styling can be check in <a href=\"#Customized%20Chart%20Styles\">Customized Chart Styles</a> and <a href=\"#Visual%20Map%20of%20Data\">Visual Map of Data</a>.</p>\n<p><br></p>\n<hr>\n<p><br></p>\n<p><strong>Theme</strong></p>\n<p>Setting a theme is the simplest way to change the color style. For example, in <a href=\"https://echarts.apache.org/examples/en/index.html\" target=\"_blank\">Examples page</a>, &quot;Theme&quot; can be selected, and view the result directly.</p>\n<p>Since ECharts4, besides the original default theme, ECharts provide another two built-in themes, named &#39;<code class=\"codespan\">&#39;light&#39;</code> and <code class=\"codespan\">&#39;dark&#39;</code>. They can be used as follows:</p>\n<pre><code class=\"lang-js\">var chart = echarts.init(dom, &#39;light&#39;);\n</code></pre>\n<p>or</p>\n<pre><code class=\"lang-js\">var chart = echarts.init(dom, &#39;dark&#39;);\n</code></pre>\n<p>Other themes are not included in ECharts package by default, and need to load them ourselves if we want to use them. Themes can be visited and downloaded in <a href=\"https://echarts.apache.org/en/theme-builder.html\" target=\"_blank\">Theme Builder</a>. Theme can also be created or edited in it. The downloaded theme can be used as follows:</p>\n<p>If a theme is downloaded as a JSON file, we should register it by ourselves, for example:</p>\n<pre><code class=\"lang-js\">var xhr = new XMLHttpRequest();\n// Assume the theme name is &quot;vintage&quot;.\nxhr.open(&#39;GET&#39;, &#39;xxx/xxx/vintage.json&#39;, true);\nxhr.onload = function () {\n    var themeJSON = this.response;\n    echarts.registerTheme(&#39;vintage&#39;, JSON.parse(themeJSON))\n    var chart = echarts.init(dom, &#39;vintage&#39;);\n    // ...\n});\nxhr.send();\n</code></pre>\n<p>If a them is downloaded as a JS file, it will auto register itself:</p>\n<pre><code class=\"lang-js\">// Import the `vintage.js` file in HTML, then:\nvar chart = echarts.init(dom, &#39;vintage&#39;);\n// ...\n</code></pre>\n<p><br></p>\n<hr>\n<p><br></p>\n<p><strong>Palette</strong></p>\n<p>Pallettes can be given in option. They provide a group of colors, which will be auto picked by series and data. We can give a global palette, or exclusive pallette for certain series.</p>\n<pre><code class=\"lang-js\">option = {\n    // Global palette:\n    color: [&#39;#c23531&#39;,&#39;#2f4554&#39;, &#39;#61a0a8&#39;, &#39;#d48265&#39;, &#39;#91c7ae&#39;,&#39;#749f83&#39;,  &#39;#ca8622&#39;, &#39;#bda29a&#39;,&#39;#6e7074&#39;, &#39;#546570&#39;, &#39;#c4ccd3&#39;],\n\n    series: [{\n        type: &#39;bar&#39;,\n        // A palette only work for the series:\n        color: [&#39;#dd6b66&#39;,&#39;#759aa0&#39;,&#39;#e69d87&#39;,&#39;#8dc1a9&#39;,&#39;#ea7e53&#39;,&#39;#eedd78&#39;,&#39;#73a373&#39;,&#39;#73b9bc&#39;,&#39;#7289ab&#39;, &#39;#91ca8c&#39;,&#39;#f49f42&#39;],\n        ...\n    }, {\n        type: &#39;pie&#39;,\n        // A palette only work for the series:\n        color: [&#39;#37A2DA&#39;, &#39;#32C5E9&#39;, &#39;#67E0E3&#39;, &#39;#9FE6B8&#39;, &#39;#FFDB5C&#39;,&#39;#ff9f7f&#39;, &#39;#fb7293&#39;, &#39;#E062AE&#39;, &#39;#E690D1&#39;, &#39;#e7bcf3&#39;, &#39;#9d96f5&#39;, &#39;#8378EA&#39;, &#39;#96BFFF&#39;],\n        ...\n    }]\n}\n</code></pre>\n<p><br></p>\n<hr>\n<p><br></p>\n<p><strong>Customize style explicitly (itemStyle, lineStyle, areaStyle, label, ...)</strong></p>\n<p>It is a common way to set style explicitly. Throughout ECharts <a href=\"option.html\" target=\"_blank\">option</a>, style related options can be set in various place, including <a href=\"option.html#series.itemStyle\" target=\"_blank\">itemStyle</a>, <a href=\"option.html#series-line.lineStyle\" target=\"_blank\">lineStyle</a>, <a href=\"option.html#series-line.areaStyle\" target=\"_blank\">areaStyle</a>, <a href=\"option.html#series.label\" target=\"_blank\">label</a>, etc.</p>\n<p>Generally speaking, all of the built-in components and series follow the naming convention like <code class=\"codespan\">itemStyle</code>, <code class=\"codespan\">lineStyle</code>, <code class=\"codespan\">areaStyle</code>, <code class=\"codespan\">label</code> etc., although they may occur in different place according to different series or components.</p>\n<p>There is another article for style setting, <a href=\"#Customized%20Chart%20Styles\">Customized Chart Styles</a>.</p>\n<p><br></p>\n<hr>\n<p><br></p>\n<p><strong>Style of emphasis state</strong></p>\n<p>When mouse hovering a graphic elements, usually the emphasis style will be displayed. By default, the emphasis style is auto generated by the normal style. However they can be specified by <a href=\"option.html#series-scatter.emphasis\" target=\"_blank\">emphasis</a> property. The options in <a href=\"option.html#series-scatter.emphasis\" target=\"_blank\">emphasis</a> is the same as the ones for normal state, for example:</p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;scatter&#39;,\n\n        // Styles for normal state.\n        itemStyle: {\n            // Color of the point.\n            color: &#39;red&#39;\n        },\n        label: {\n            show: true,\n            // Text of labels.\n            formatter: &#39;This is a normal label.&#39;\n        },\n\n        // Styles for emphasis state.\n        emphasis: {\n            itemStyle: {\n                // Color in emphasis state.\n                color: &#39;blue&#39;\n            },\n            label: {\n                show: true,\n                // Text in emphasis.\n                formatter: &#39;This is a emphasis label.&#39;\n            }\n        }\n    }\n}\n</code></pre>\n<p>Notice: Before ECharts4, the emphasis style should be written like this:</p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;scatter&#39;,\n\n        itemStyle: {\n            // Styles for normal state.\n            normal: {\n                color: &#39;red&#39;\n            },\n            // Styles for emphasis state.\n            emphasis: {\n                color: &#39;blue&#39;\n            }\n        },\n\n        label: {\n            // Styles for normal state.\n            normal: {\n                show: true,\n                formatter: &#39;This is a normal label.&#39;\n            },\n            // Styles for emphasis state.\n            emphasis: {\n                show: true,\n                formatter: &#39;This is a emphasis label.&#39;\n            }\n        }\n    }\n}\n</code></pre>\n<p>The option format is still <strong>compatible</strong>, but not recommended. In fact, in most cases, users only set normal style, and use the default emphasis style. So since ECharts4, we support to write style without the &quot;normal&quot; term, which makes the option more simple and neat.</p>\n<p><br></p>\n<hr>\n<p><br></p>\n<p><strong>Visual encoding (visualMap component)</strong></p>\n<p><a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a> supports config the rule that mapping value to visual channel (color, size, ...). More details can be check in <a href=\"#Visual%20Map%20of%20Data\">Visual Map of Data</a>.</p>\n"},"Loading and Updating of Asynchronous Data":{"type":["*"],"description":"<h2 id=\"asynchronous-loading\">Asynchronous Loading</h2>\n<p>Data in <a href=\"#getting-started\">Get started</a> is directly filled in <code class=\"codespan\">setOption</code> after initialization, but in some cases, data may be filled after asynchronous loading. Data updating asynchronously in Apache ECharts<sup>TM</sup> is very easy. After initialization, you can pass in data and configuration item through <code class=\"codespan\">setOption</code> after data obtained through  jQuery and other tools at any time.</p>\n<pre><code class=\"lang-js\">var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n$.get(&#39;data.json&#39;).done(function (data) {\n    myChart.setOption({\n        title: {\n            text: &#39;asynchronous data loading example&#39;\n        },\n        tooltip: {},\n        legend: {\n            data:[&#39;Sales&#39;]\n        },\n        xAxis: {\n            data: data.categories\n        },\n        yAxis: {},\n        series: [{\n            name: &#39;Sales&#39;,\n            type: &#39;bar&#39;,\n            data: data.data\n        }]\n    });\n});\n</code></pre>\n<p>Or, you may set other styles, displaying an empty rectangular axis, and then fill in data when ready.</p>\n<pre><code class=\"lang-js\">var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n// show title. legend and empty axis\nmyChart.setOption({\n    title: {\n        text: &#39;asynchronous data loading example&#39;\n    },\n    tooltip: {},\n    legend: {\n        data:[&#39;Sales&#39;]\n    },\n    xAxis: {\n        data: []\n    },\n    yAxis: {},\n    series: [{\n        name: &#39;Sales&#39;,\n        type: &#39;bar&#39;,\n        data: []\n    }]\n});\n\n// Asynchronous data loading\n$.get(&#39;data.json&#39;).done(function (data) {\n    // fill in data\n    myChart.setOption({\n        xAxis: {\n            data: data.categories\n        },\n        series: [{\n            // find series by name\n            name: &#39;Sales&#39;,\n            data: data.data\n        }]\n    });\n});\n</code></pre>\n<p>For example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-async&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>In ECharts, updating data need to find the corresponding series through <code class=\"codespan\">name</code>. In the above example, updating can be performed correctly according to series order if <code class=\"codespan\">name</code> is not defined. But in most cases, it is recommended to update data with series <code class=\"codespan\">name</code> information.</p>\n<h2 id=\"loading-animation\">Loading Animation</h2>\n<p>If data loading time is too long, an empty axis on the canvas may confuse users. In this case, a loading animation is needed to tell the user that it&#39;s still loading.</p>\n<p>ECharts provides a simple loading animation by default. You only need <a href=\"api.html#echartsInstance.showLoading\" target=\"_blank\">showLoading</a> to show, and then use <a href=\"api.html#echartsInstance.hideLoading\" target=\"_blank\">hideLoading</a> to hide loading animation after data loading.</p>\n<pre><code class=\"lang-js\">myChart.showLoading();\n$.get(&#39;data.json&#39;).done(function (data) {\n    myChart.hideLoading();\n    myChart.setOption(...);\n});\n</code></pre>\n<p>Effects are as followed:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-loading&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<h2 id=\"dynamic-data-updating\">Dynamic Data Updating</h2>\n<p>ECharts is driven by data. Change of data changes the presentation of chart, therefore, implementing dynamic data updating is extremely easy.</p>\n<p>All data updating are through <a href=\"#api.html#echartsInstance.setOption\">setOption</a>. You only need to get data as you wish, fill in data to <a href=\"#api.html#echartsInstance.setOption\">setOption</a> without considering the changes brought by data, ECharts will find the difference between two group of data and present the difference through proper animation.</p>\n<blockquote>\n<p>In ECharts 3, addData in ECharts 2 is removed.If a single data needs to be added, you can first data.push(value) and then setOption.</p>\n</blockquote>\n<p>See details in the following example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-dynamic-data&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n\n"},"Dataset":{"type":["*"],"description":"<p><code class=\"codespan\">dataset</code> component is published since Apache ECharts<sup>TM</sup> 4. <code class=\"codespan\">dataset</code> brings convenience in data management separated with styles and enables data reuse by different series. More importantly, it enables data encoding from data to visual, which brings convenience in some scenarios.</p>\n<p>Before ECharts 4, data was only able to declared in each series, for example:</p>\n<pre><code class=\"lang-js\">option = {\n    xAxis: {\n        type: &#39;category&#39;,\n        data: [&#39;Matcha Latte&#39;, &#39;Milk Tea&#39;, &#39;Cheese Cocoa&#39;, &#39;Walnut Brownie&#39;]\n    },\n    yAxis: {},\n    series: [\n        {\n            type: &#39;bar&#39;,\n            name: &#39;2015&#39;,\n            data: [89.3, 92.1, 94.4, 85.4]\n        },\n        {\n            type: &#39;bar&#39;,\n            name: &#39;2016&#39;,\n            data: [95.8, 89.4, 91.2, 76.9]\n        },\n        {\n            type: &#39;bar&#39;,\n            name: &#39;2017&#39;,\n            data: [97.7, 83.1, 92.5, 78.1]\n        }\n    ]\n}\n</code></pre>\n<p>This approach is easy to be understand and is flexible when some series needs special data definitions. But the shortcomings are also obvious: some data extra works are usually needed to split the original data to each series, and it not supports sharing data in different series, moreover, it is not good for encode.</p>\n<p>ECharts4 starts to provide <code class=\"codespan\">dataset</code> component, which brings benefits below:</p>\n<ul>\n<li>Benefit from <code class=\"codespan\">dataset</code>, we can follow the common methodology of data visualization: based on data, specify the mapping (via the option <a href=\"option.html#series.encode\" target=\"_blank\">encode</a>) from data to visual.</li>\n<li>Data can be managed and configured separately from other configurations.</li>\n<li>Data can be reused by different series and components.</li>\n<li>Support more common data format (like 2d-array, object-array), to avoid data transform works for users.</li>\n</ul>\n<h2 id=\"get-started\">Get started</h2>\n<p>This is a simplest example of <code class=\"codespan\">dataset</code>:</p>\n<pre><code class=\"lang-js\">option = {\n    legend: {},\n    tooltip: {},\n    dataset: {\n        // Provide data.\n        source: [\n            [&#39;product&#39;, &#39;2015&#39;, &#39;2016&#39;, &#39;2017&#39;],\n            [&#39;Matcha Latte&#39;, 43.3, 85.8, 93.7],\n            [&#39;Milk Tea&#39;, 83.1, 73.4, 55.1],\n            [&#39;Cheese Cocoa&#39;, 86.4, 65.2, 82.5],\n            [&#39;Walnut Brownie&#39;, 72.4, 53.9, 39.1]\n        ]\n    },\n    // Declare X axis, which is a category axis, mapping\n    // to the first column by default.\n    xAxis: {type: &#39;category&#39;},\n    // Declare Y axis, which is a value axis.\n    yAxis: {},\n    // Declare several series, each of them mapped to a\n    // column of the dataset by default.\n    series: [\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;}\n    ]\n}\n</code></pre>\n<p>This is the result:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=dataset-simple0&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n<p>Or the common format object-array is also supported:</p>\n<pre><code class=\"lang-js\">option = {\n    legend: {},\n    tooltip: {},\n    dataset: {\n        // Here the declared `dimensions` is mainly for providing the order of\n        // the dimensions, which enables ECharts to apply the default mapping\n        // from dimensions to axes.\n        // Alternatively, we can declare `series.encode` to specify the mapping,\n        // which will be introduced later.\n        dimensions: [&#39;product&#39;, &#39;2015&#39;, &#39;2016&#39;, &#39;2017&#39;],\n        source: [\n            {product: &#39;Matcha Latte&#39;, &#39;2015&#39;: 43.3, &#39;2016&#39;: 85.8, &#39;2017&#39;: 93.7},\n            {product: &#39;Milk Tea&#39;, &#39;2015&#39;: 83.1, &#39;2016&#39;: 73.4, &#39;2017&#39;: 55.1},\n            {product: &#39;Cheese Cocoa&#39;, &#39;2015&#39;: 86.4, &#39;2016&#39;: 65.2, &#39;2017&#39;: 82.5},\n            {product: &#39;Walnut Brownie&#39;, &#39;2015&#39;: 72.4, &#39;2016&#39;: 53.9, &#39;2017&#39;: 39.1}\n        ]\n    },\n    xAxis: {type: &#39;category&#39;},\n    yAxis: {},\n    series: [\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;}\n    ]\n};\n</code></pre>\n<h2 id=\"mapping-from-data-to-graphic\">Mapping from data to graphic</h2>\n<p>In this tutorial, we make charts following this methodology: base on data, config the rule to map data to graphic, namely, encode the data to graphic.</p>\n<p>Generally, this mapping can be performed:</p>\n<ul>\n<li>Configure whether columns or rows of a dataset will mapped to series, namely, the series layout on the columns or rows of a dataset. This can be specified by <a href=\"option.html#series.seriesLayoutBy\" target=\"_blank\">series.seriesLayoutBy</a>. <code class=\"codespan\">&#39;column&#39;</code> is the default value.</li>\n<li>Configure the mapping rule from dimensions (a dimension means a column/row) to axes in coordinate system, tooltip, labels, color, symbol size, etc. This can be specified by <a href=\"option.html#series.encode\" target=\"_blank\">series.encode</a> and <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> (if visual encoding is required). The example above does not give a mapping rule, so ECharts make default mapping by common sense: because x axis is a category axis, the first column is mapped to the x axis, and each series use each subsequent column in order.</li>\n</ul>\n<p>Let&#39;s illustrate them in detail below.</p>\n<h2 id=\"mapping-by-column-or-row\">Mapping by column or row</h2>\n<p>Giving dataset, users can configure whether columns or rows of a dataset will be mapped to series, namely, the series layout on the columns or rows of a dataset. This can be specified by <a href=\"option.html#series.seriesLayoutBy\" target=\"_blank\">series.seriesLayoutBy</a>. The optional values are:</p>\n<ul>\n<li>&#39;column&#39;: series are positioned on each columns of the dataset. Default value.</li>\n<li>&#39;row&#39;: series are positioned on each row of the dataset.</li>\n</ul>\n<p>See the example below:</p>\n<pre><code class=\"lang-js\">option = {\n    legend: {},\n    tooltip: {},\n    dataset: {\n        source: [\n            [&#39;product&#39;, &#39;2012&#39;, &#39;2013&#39;, &#39;2014&#39;, &#39;2015&#39;],\n            [&#39;Matcha Latte&#39;, 41.1, 30.4, 65.1, 53.3],\n            [&#39;Milk Tea&#39;, 86.5, 92.1, 85.7, 83.1],\n            [&#39;Cheese Cocoa&#39;, 24.1, 67.2, 79.5, 86.4]\n        ]\n    },\n    xAxis: [\n        {type: &#39;category&#39;, gridIndex: 0},\n        {type: &#39;category&#39;, gridIndex: 1}\n    ],\n    yAxis: [\n        {gridIndex: 0},\n        {gridIndex: 1}\n    ],\n    grid: [\n        {bottom: &#39;55%&#39;},\n        {top: &#39;55%&#39;}\n    ],\n    series: [\n        // These series is in the first cartesian (grid), and each\n        // is mapped to a row.\n        {type: &#39;bar&#39;, seriesLayoutBy: &#39;row&#39;},\n        {type: &#39;bar&#39;, seriesLayoutBy: &#39;row&#39;},\n        {type: &#39;bar&#39;, seriesLayoutBy: &#39;row&#39;},\n        // These series is in the second cartesian (grid), and each\n        // is mapped to a column.\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1},\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1},\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1},\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1}\n    ]\n}\n</code></pre>\n<p>This is the result:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=dataset-series-layout-by&edit=1&reset=1\" width=\"800\" height=\"600\" ></iframe>\n\n\n\n<h2 id=\"dimension\">Dimension</h2>\n<p>Before introducing <code class=\"codespan\">encode</code>, we should clarify the concept of <code class=\"codespan\">dimension</code>.</p>\n<p>Most of common charts describe data in the format of &quot;two-dimensions table&quot; (note that the meaning of the word &quot;dimension&quot; in &quot;two-dimension table&quot; is not the same as the dimensions in ECharts. \bIn order not to be confusing, we use &quot;2d-table&quot;, &quot;2d-array&quot; below). In the examples above, we use 2d-array to carry the 2d-table. When we set <code class=\"codespan\">seriesLayoutBy</code> as <code class=\"codespan\">&#39;column&#39;</code>, namely, mapping columns to series, each column is called a dimension, and each row is a data item. When we set <code class=\"codespan\">seriesLayoutBy</code> as <code class=\"codespan\">&#39;row&#39;</code>, namely, mapping rows to series, each row is called a dimension, and each column is a data item.</p>\n<p>Dimension can have its name to displayed on charts. Dimension name can be defined on the first row/column. Take the code above as an example, <code class=\"codespan\">&#39;score&#39;</code>、<code class=\"codespan\">&#39;amount&#39;</code>、<code class=\"codespan\">&#39;product&#39;</code> are dimension names, and data start from the second row. By default ECharts auto detect whether the first row/column of <code class=\"codespan\">dataset.source</code> is dimension name or data. Use can also set <code class=\"codespan\">dataset.sourceHeader</code> as <code class=\"codespan\">true</code> to mandatorily specify the first row/column is dimension name, or set as <code class=\"codespan\">false</code> to indicate the data start from the first row/column.</p>\n<p>The definitions of the dimensions can also be provided separately in <code class=\"codespan\">dataset.dimensions</code> or <code class=\"codespan\">series.dimensions</code>, where not only dimension name, but also dimension type can be specified:</p>\n<pre><code class=\"lang-js\">var option1 = {\n    dataset: {\n        dimensions: [\n            // Each item can be object or string.\n            {name: &#39;score&#39;},\n            // A string indicates the dimension name.\n            &#39;amount&#39;,\n            // Dimension type can be specified.\n            {name: &#39;product&#39;, type: &#39;ordinal&#39;}\n        ],\n        source: [...]\n    },\n    ...\n};\n\nvar option2 = {\n    dataset: {\n        source: [...]\n    },\n    series: {\n        type: &#39;line&#39;,\n        // Dimensions declared in series will be adapted with higher priority.\n        dimensions: [\n            null, // Set as null means we dont want to set dimension name.\n            &#39;amount&#39;,\n            {name: &#39;product&#39;, type: &#39;ordinal&#39;}\n        ]\n    },\n    ...\n};\n</code></pre>\n<p>Generally, we do not need to set dimensions types, because it can be auto detected based on data by ECharts. But in some cases, for example, the data is empty, the detection might not be accurate, where dimension type can be set manually.</p>\n<p>The optional values of dimension types can be:</p>\n<ul>\n<li><code class=\"codespan\">&#39;number&#39;</code>: Normal data, default value.</li>\n<li><code class=\"codespan\">&#39;ordinal&#39;</code>: Represents string data like category data or text data. ECharts will auto detect them by default. They can be set manually if the detection fail.</li>\n<li><code class=\"codespan\">&#39;time&#39;</code>: Represents time data, where it is supported that parse time string to timestamp. For example, if users need to parse &#39;2017-05-10&#39; to timestamp, it should be set as <code class=\"codespan\">time</code> type. If the dimension is used on a time axis (<a href=\"option.html#xAxis.type\" target=\"_blank\">axis.type</a> is <code class=\"codespan\">&#39;time&#39;</code>), it will be auto set to <code class=\"codespan\">time</code> type. The supported time string is listed in <a href=\"option.html#series.data\" target=\"_blank\">data</a>.</li>\n<li><code class=\"codespan\">&#39;float&#39;</code>: If set as <code class=\"codespan\">&#39;float&#39;</code>, it will be stored in <code class=\"codespan\">TypedArray</code>, which is good for performance optimization.</li>\n<li><code class=\"codespan\">&#39;int&#39;</code>: If set as <code class=\"codespan\">&#39;int&#39;</code>, it will be stored in <code class=\"codespan\">TypedArray</code>, which is good for performance optimization.</li>\n</ul>\n<h2 id=\"mapping-from-data-to-graphic-encode-\">Mapping from data to graphic (encode)</h2>\n<p>Having the concept of dimension clarified, we can use <a href=\"option.html#series.encode\" target=\"_blank\">encode</a> to map data to graphic:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: {\n        source: [\n            [&#39;score&#39;, &#39;amount&#39;, &#39;product&#39;],\n            [89.3, 58212, &#39;Matcha Latte&#39;],\n            [57.1, 78254, &#39;Milk Tea&#39;],\n            [74.4, 41032, &#39;Cheese Cocoa&#39;],\n            [50.1, 12755, &#39;Cheese Brownie&#39;],\n            [89.7, 20145, &#39;Matcha Cocoa&#39;],\n            [68.1, 79146, &#39;Tea&#39;],\n            [19.6, 91852, &#39;Orange Juice&#39;],\n            [10.6, 101852, &#39;Lemon Juice&#39;],\n            [32.7, 20112, &#39;Walnut Brownie&#39;]\n        ]\n    },\n    xAxis: {},\n    yAxis: {type: &#39;category&#39;},\n    series: [\n        {\n            type: &#39;bar&#39;,\n            encode: {\n                // Map dimension &quot;amount&quot; to the X axis.\n                x: &#39;amount&#39;,\n                // Map dimension &quot;product&quot; to the Y axis.\n                y: &#39;product&#39;\n            }\n        }\n    ]\n};\n</code></pre>\n<p>This is the result:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/dataset-encode-simple0&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n\n<p>The basic structure of <a href=\"option.html#series.encode\" target=\"_blank\">encode</a> is illustrated as follows, where the left part of colon is the name of axis like <code class=\"codespan\">&#39;x&#39;</code>, <code class=\"codespan\">&#39;y&#39;</code>, <code class=\"codespan\">&#39;radius&#39;</code>, <code class=\"codespan\">&#39;angle&#39;</code> or some special reserved names like &quot;tooltip&quot;, &quot;itemName&quot; etc., and the right part of the colon is the dimension names or dimension indices (based on 0). One or more dimensions can be specified. Usually not all of mappings need to be specified, only specify needed ones.</p>\n<p>The properties available in <code class=\"codespan\">encode</code> listed as follows:</p>\n<pre><code class=\"lang-js\">// In any of the series and coordinate systems,\n// these properties are available:\nencode: {\n    // Display dimension &quot;product&quot; and &quot;score&quot; in the tooltip.\n    tooltip: [&#39;product&#39;, &#39;score&#39;]\n    // Set the series name as the concat of the names of dimensions[1] and dimensions[3].\n    // (sometimes the dimension names are too long to type in series.name manually).\n    seriesName: [1, 3],\n    // Using dimensions[2] as the id of each data item. This is useful when dynamically\n    // update data by `chart.setOption()`, where the new and old data item can be\n    // corresponded by id, by which the appropriate animation can be performed when updating.\n    itemId: 2,\n    // Using dimensions[3] as the name of each data item. This is useful in charts like\n    // &#39;pie&#39;, &#39;funnel&#39;, where data item name can be displayed in legend.\n    itemName: 3\n}\n\n// These properties only work in cartesian(grid) coordinate system:\nencode: {\n    // Map dimensions[1], dimensions[5] and dimension &quot;score&quot; to the X axis.\n    x: [1, 5, &#39;score&#39;],\n    // Map dimensions[0] to the Y axis.\n    y: 0\n}\n\n// These properties only work in polar coordinate system:\nencode: {\n    radius: 3,\n    angle: 2,\n    ...\n}\n\n// These properties only work in geo coordinate system:\nencode: {\n    lng: 3,\n    lat: 2\n}\n\n// For some type of series that are not in any coordinate system,\n// like &#39;pie&#39;, &#39;funnel&#39; etc.:\nencode: {\n    value: 3\n}\n</code></pre>\n<p>There is an other example for <code class=\"codespan\">encode</code>:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=dataset-encode1&edit=1&reset=1\" width=\"800\" height=\"600\" ></iframe>\n\n\n\n\n\n<h2 id=\"visual-encoding-color-symbol-etc-\">Visual encoding (color, symbol, etc.)</h2>\n<p>We can use <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> component to map data to visual channel like color, symbol size, etc.. More info about it can be checked in its <a href=\"option.html#visualMap\" target=\"_blank\">doc</a>.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=dataset-encode0&edit=1&reset=1\" width=\"500\" height=\"400\" ></iframe>\n\n\n\n\n<h2 id=\"default-encoding\">Default encoding</h2>\n<p>For some common cases (line chart, bar chart, scatter plot, candlestick, pie, funnel, etc.), EChart provides default encoding settings, by which chart will be displayed even if no <code class=\"codespan\">encode</code> option is specified. (If <code class=\"codespan\">encode</code> option is specified, default encoding will not be applied.) The rule of default encoding should not be too complicated. Basically it is:</p>\n<ul>\n<li>In coordinate system (like cartesian(grid), polar):<ul>\n<li>If category axis (i.e., axis.type is <code class=\"codespan\">&#39;category&#39;</code>) exists, map the first column/row to the axis, and each series use a following column/row.</li>\n<li>If no category axis exists, and the coordinate system contains two axis (like X Y in cartesian), each series use two columns/rows, one for a axis.</li>\n</ul>\n</li>\n<li>If no coordinate system (like pie chart):<ul>\n<li>Use the first column/row as item name, and the second column/row as item value.</li>\n</ul>\n</li>\n</ul>\n<p>If the default rule does not meet the requirements, configure the <code class=\"codespan\">encode</code> yourself please.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=dataset-default&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n\n<h2 id=\"q-a\">Q &amp; A</h2>\n<p>Q: How to map the third column to X axis, and map the fifth column to Y axis?</p>\n<p>A:</p>\n<pre><code class=\"lang-js\">series: {\n    // Notice that the dimension index is based on 0,\n    // thus the third column is dimensions[2].\n    encode: {x: 2, y: 4},\n    ...\n}\n</code></pre>\n<p>Q: How to map the third row th X axis, and map the fifth row to Y axis?</p>\n<p>A:</p>\n<pre><code class=\"lang-js\">series: {\n    encode: {x: 2, y: 4},\n    seriesLayoutBy: &#39;row&#39;,\n    ...\n}\n</code></pre>\n<p>Q: How to use the values in the second column in label.</p>\n<p>A:\nThe <a href=\"option.html#series.label.formatter\" target=\"_blank\">label.formatter</a> supports refer value in a certain dimension. For example:</p>\n<pre><code class=\"lang-js\">series: {\n    label: {\n        // `&#39;{@score}&#39;` means use the value in the &quot;score&quot; dimension.\n        // `&#39;{@[4]}&#39;` means use the value in dimensions[4].\n        formatter: &#39;aaa{@product}bbb{@score}ccc{@[4]}ddd&#39;\n    }\n}\n</code></pre>\n<p>Q: How to display the second column and the third column in tooltip?</p>\n<p>A:</p>\n<pre><code class=\"lang-js\">series: {\n    encode: {\n        tooltip: [1, 2]\n        ...\n    },\n    ...\n}\n</code></pre>\n<p>Q: If there is no dimension name in dataset.source, how to give dimension name?</p>\n<p>A:</p>\n<pre><code class=\"lang-js\">dataset: {\n    dimensions: [&#39;score&#39;, &#39;amount&#39;],\n    source: [\n        [89.3, 3371],\n        [92.1, 8123],\n        [94.4, 1954],\n        [85.4, 829]\n    ]\n}\n</code></pre>\n<p>Q: How to encode the third column in bubble size in bubble plot?</p>\n<p>A:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: {\n        source: [\n            [12, 323, 11.2],\n            [23, 167, 8.3],\n            [81, 284, 12],\n            [91, 413, 4.1],\n            [13, 287, 13.5]\n        ]\n    },\n    // Use visualMap to perform visual encoding.\n    visualMap: {\n        show: false,\n        dimension: 2, // Encode the third column.\n        min: 2, // Min value is required in visualMap component.\n        max: 15, // Max value is required in visualMap component.\n        inRange: {\n            // The range of bubble size, from 5 pixel to 60 pixel.\n            symbolSize: [5, 60]\n        }\n    },\n    xAxis: {},\n    yAxis: {},\n    series: {\n        type: &#39;scatter&#39;\n    }\n};\n</code></pre>\n<p>Q: We have specified <code class=\"codespan\">encode</code>, but why it does not work?</p>\n<p>A: Maybe we can try to check typo, for example, the dimension name is <code class=\"codespan\">&#39;Life Expectancy&#39;</code>, be we typed <code class=\"codespan\">&#39;Life Expectency&#39;</code> in <code class=\"codespan\">encode</code> option.</p>\n<h2 id=\"various-formats-in-dataset\">Various formats in dataset</h2>\n<p>In lots of cases, data is described in 2d-table. For example, some data processing software like MS Excel, Numbers are based on 2d-table. The data can be exported as JSON format and input to <code class=\"codespan\">dataset.source</code>.</p>\n<blockquote>\n<p>Some csv tools can be used to export the table data to JSON, for example, <a href=\"https://github.com/d3/d3-dsv\" target=\"_blank\">dsv</a> or <a href=\"https://github.com/mholt/PapaParse\" target=\"_blank\">PapaParse</a>.</p>\n</blockquote>\n<p>In common used data transfer formats in JavaScript, 2d-array is a good choice to carry table data, which has been illustrated in the examples above.</p>\n<p>Besides, 2d-array, <code class=\"codespan\">dataset</code> also support key-value format as follows, which is also commonly used. But notice, the option <a href=\"option.html#series.seriesLayoutBy\" target=\"_blank\">seriesLayoutBy</a> is not supported in this format.</p>\n<pre><code class=\"lang-js\">dataset: [{\n    // Row based key-value format, namely, object array, is a commonly used format.\n    source: [\n        {product: &#39;Matcha Latte&#39;, count: 823, score: 95.8},\n        {product: &#39;Milk Tea&#39;, count: 235, score: 81.4},\n        {product: &#39;Cheese Cocoa&#39;, count: 1042, score: 91.2},\n        {product: &#39;Walnut Brownie&#39;, count: 988, score: 76.9}\n    ]\n}, {\n    // Column based key-value format is also supported.\n    source: {\n        &#39;product&#39;: [&#39;Matcha Latte&#39;, &#39;Milk Tea&#39;, &#39;Cheese Cocoa&#39;, &#39;Walnut Brownie&#39;],\n        &#39;count&#39;: [823, 235, 1042, 988],\n        &#39;score&#39;: [95.8, 81.4, 91.2, 76.9]\n    }\n}]\n</code></pre>\n<h2 id=\"multiple-datasets-and-references\">Multiple datasets and references</h2>\n<p>Multiple datasets can be defined, and series can refer them by <a href=\"option.html#series.datasetIndex\" target=\"_blank\">series.datasetIndex</a>.</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: [{\n        source: [...],\n    }, {\n        source: [...]\n    }, {\n        source: [...]\n    }],\n    series: [{\n        // Use the third dataset.\n        datasetIndex: 2\n    }, {\n        // Use the second dataset.\n        datasetIndex: 1\n    }]\n}\n</code></pre>\n<h2 id=\"data-transform\">Data transform</h2>\n<p><code class=\"codespan\">Data transform</code> has been supported since Apache ECharts<sup>TM</sup> 5. In echarts, the term <code class=\"codespan\">data transform</code> means that generate new data from user provided source data and transform functions. This feature is enable users to process data in declarative way, and provides users some common &quot;transform functions&quot; to make that kind of tasks &quot;out-of-the-box&quot;.</p>\n<p>See the details of data transform in this <a href=\"#data-transform\">doc</a>.</p>\n<h2 id=\"echarts3-data-setting-approach-series-data-can-be-used-normally\">ECharts3 data setting approach (series.data) can be used normally</h2>\n<p>The data setting approach before ECharts4 can still be used normally. If a series has declared <a href=\"option.html#series.data\" target=\"_blank\">series.data</a>, it will be used but not <code class=\"codespan\">dataset</code>.</p>\n<pre><code class=\"lang-js\">{\n    xAxis: {\n        type: &#39;category&#39;\n        data: [&#39;Matcha Latte&#39;, &#39;Milk Tea&#39;, &#39;Cheese Cocoa&#39;, &#39;Walnut Brownie&#39;]\n    },\n    yAxis: {},\n    series: [{\n        type: &#39;bar&#39;,\n        name: &#39;2015&#39;,\n        data: [89.3, 92.1, 94.4, 85.4]\n    }, {\n        type: &#39;bar&#39;,\n        name: &#39;2016&#39;,\n        data: [95.8, 89.4, 91.2, 76.9]\n    }, {\n        type: &#39;bar&#39;,\n        name: &#39;2017&#39;,\n        data: [97.7, 83.1, 92.5, 78.1]\n    }]\n}\n</code></pre>\n<p>In fact, setting data via <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> is not deprecated and useful in some cases. For example, for some charts, like <a href=\"option.html#series-treemap\" target=\"_blank\">treemap</a>, <a href=\"option.html#series-graph\" target=\"_blank\">graph</a>, <a href=\"option.html#series-lines\" target=\"_blank\">lines</a>, that do not apply table data, <code class=\"codespan\">dataset</code> is not supported for yet. Moreover, for the case of large data rendering (for example, millions of data), <a href=\"api.html#echartsInstance.appendData\" target=\"_blank\">appendData</a> is probably needed to load data incrementally. <code class=\"codespan\">dataset</code> is not supported in the case.</p>\n<h2 id=\"data-transform\">Data transform</h2>\n<p>See <a href=\"#Data%20Transform\">data transform</a>.</p>\n<h2 id=\"others\">Others</h2>\n<p>Currently, not all types of series support dataset. Series that support dataset includes:</p>\n<p><code class=\"codespan\">line</code>, <code class=\"codespan\">bar</code>, <code class=\"codespan\">pie</code>, <code class=\"codespan\">scatter</code>, <code class=\"codespan\">effectScatter</code>, <code class=\"codespan\">parallel</code>, <code class=\"codespan\">candlestick</code>, <code class=\"codespan\">map</code>, <code class=\"codespan\">funnel</code>, <code class=\"codespan\">custom</code>.</p>\n<p>More types of series will support dataset in our further work.</p>\n<p>Finally, this is an example, multiple series sharing one <code class=\"codespan\">dataset</code> and having interactions:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=dataset-link&edit=1&reset=1\" width=\"800\" height=\"500\" ></iframe>\n\n\n\n\n"},"Data Transform":{"type":["*"],"description":"<p><code class=\"codespan\">Data transform</code> has been supported since Apache ECharts<sup>TM</sup> 5. In echarts, the term <code class=\"codespan\">data transform</code> means that generate new data from user provided source data and transform functions. both This feature is enable users to process data in declarative way, and provides users some common &quot;transform functions&quot; to make that kind of tasks &quot;out-of-the-box&quot;. (For consistency in the context, the noun form of the word we keep using the &quot;transform&quot; rather than &quot;transformation&quot;).</p>\n<p>The abstract formula of data transform is: <code class=\"codespan\">outData = f(inputData)</code>, where the transform function <code class=\"codespan\">f</code> can be like <code class=\"codespan\">filter</code>, <code class=\"codespan\">sort</code>, <code class=\"codespan\">regression</code>, <code class=\"codespan\">boxplot</code>, <code class=\"codespan\">cluster</code>, <code class=\"codespan\">aggregate</code>(todo) ...\nWith the help of those transform methods, users can be implements the features like:</p>\n<ul>\n<li>Partition data into multiple series.</li>\n<li>Make some statistics and visualize the result.</li>\n<li>Adapt some visualization algorithms to data and display the result.</li>\n<li>Sort data.</li>\n<li>Remove or choose some kind of empty or special datums.</li>\n<li>...</li>\n</ul>\n<h2 id=\"get-started-to-data-transform\">Get started to data transform</h2>\n<p>In echarts, data transform is implemented based on the concept of <a href=\"#dataset\">dataset</a>. A <a href=\"option.html#dataset.transform\" target=\"_blank\">dataset.transform</a> can be configured in a dataset instance to indicate that this dataset is to be generated from this <code class=\"codespan\">transform</code>. For example:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: [{\n        // This dataset is on `datasetIndex: 0`.\n        source: [\n            [&#39;Product&#39;, &#39;Sales&#39;, &#39;Price&#39;, &#39;Year&#39;],\n            [&#39;Cake&#39;, 123, 32, 2011],\n            [&#39;Cereal&#39;, 231, 14, 2011],\n            [&#39;Tofu&#39;, 235, 5, 2011],\n            [&#39;Dumpling&#39;, 341, 25, 2011],\n            [&#39;Biscuit&#39;, 122, 29, 2011],\n            [&#39;Cake&#39;, 143, 30, 2012],\n            [&#39;Cereal&#39;, 201, 19, 2012],\n            [&#39;Tofu&#39;, 255, 7, 2012],\n            [&#39;Dumpling&#39;, 241, 27, 2012],\n            [&#39;Biscuit&#39;, 102, 34, 2012],\n            [&#39;Cake&#39;, 153, 28, 2013],\n            [&#39;Cereal&#39;, 181, 21, 2013],\n            [&#39;Tofu&#39;, 395, 4, 2013],\n            [&#39;Dumpling&#39;, 281, 31, 2013],\n            [&#39;Biscuit&#39;, 92, 39, 2013],\n            [&#39;Cake&#39;, 223, 29, 2014],\n            [&#39;Cereal&#39;, 211, 17, 2014],\n            [&#39;Tofu&#39;, 345, 3, 2014],\n            [&#39;Dumpling&#39;, 211, 35, 2014],\n            [&#39;Biscuit&#39;, 72, 24, 2014],\n        ],\n        // id: &#39;a&#39;\n    }, {\n        // This dataset is on `datasetIndex: 1`.\n        // A `transform` is configured to indicate that the\n        // final data of this dataset is transformed via this\n        // transform function.\n        transform: {\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Year&#39;, value: 2011 }\n        },\n        // There can be optional properties `fromDatasetIndex` or `fromDatasetId`\n        // to indicate that where is the input data of the transform from.\n        // For example, `fromDatasetIndex: 0` specify the input data is from\n        // the dataset on `datasetIndex: 0`, or `fromDatasetId: &#39;a&#39;` specify the\n        // input data is from the dataset having `id: &#39;a&#39;`.\n        // [DEFAULT_RULE]\n        // If both `fromDatasetIndex` and `fromDatasetId` are omitted,\n        // `fromDatasetIndex: 0` are used by default.\n    }, {\n        // This dataset is on `datasetIndex: 2`.\n        // Similarly, if neither `fromDatasetIndex` nor `fromDatasetId` is\n        // specified, `fromDatasetIndex: 0` is used by default\n        transform: {\n            // The &quot;filter&quot; transform filters and gets data items only match\n            // the given condition in property `config`.\n            type: &#39;filter&#39;,\n            // Transforms has a property `config`. In this &quot;filter&quot; transform,\n            // the `config` specify the condition that each result data item\n            // should be satisfied. In this case, this transform get all of\n            // the data items that the value on dimension &quot;Year&quot; equals to 2012.\n            config: { dimension: &#39;Year&#39;, value: 2012 }\n        }\n    }, {\n        // This dataset is on `datasetIndex: 3`\n        transform: {\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Year&#39;, value: 2013 }\n        }\n    }],\n    series: [{\n        type: &#39;pie&#39;, radius: 50, center: [&#39;25%&#39;, &#39;50%&#39;],\n        // In this case, each &quot;pie&quot; series reference to a dataset that has\n        // the result of its &quot;filter&quot; transform.\n        datasetIndex: 1\n    }, {\n        type: &#39;pie&#39;, radius: 50, center: [&#39;50%&#39;, &#39;50%&#39;],\n        datasetIndex: 2\n    }, {\n        type: &#39;pie&#39;, radius: 50, center: [&#39;75%&#39;, &#39;50%&#39;],\n        datasetIndex: 3\n    }]\n};\n</code></pre>\n<p>The case shows how we get three pies, representing the data from 2011, 2012, 2013.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=data-transform-multiple-pie&reset=1&edit=1\" width=\"800\" height=\"300\" ></iframe>\n\n\n\n<p>Let&#39;s summarize the key points of using data transform:</p>\n<ul>\n<li>Generate new data from existing declared data via the declaration of <code class=\"codespan\">transform</code>, <code class=\"codespan\">fromDatasetIndex</code>/<code class=\"codespan\">fromDatasetId</code> in some blank dataset.</li>\n<li>Series references these datasets to show the result.</li>\n</ul>\n<h2 id=\"advanced-usage\">Advanced usage</h2>\n<h4 id=\"piped-transform\">Piped transform</h4>\n<p>There is a syntactic sugar that pipe transforms like:</p>\n<pre><code class=\"lang-js\">option: {\n    dataset: [{\n        source: [ ... ] // The original data\n    }, {\n        // Declare transforms in an array to pipe multiple transforms,\n        // which makes them execute one by one and take the output of\n        // the previous transform as the input of the next transform.\n        transform: [{\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Product&#39;, value: &#39;Tofu&#39; }\n        }, {\n            type: &#39;sort&#39;,\n            config: { dimension: &#39;Year&#39;, order: &#39;desc&#39; }\n        }]\n    }],\n    series: {\n        type: &#39;pie&#39;,\n        // Display the result of the piped transform.\n        datasetIndex: 1\n    }\n}\n</code></pre>\n<blockquote>\n<p>Note: theoretically any type of transform is able to have multiple input data and multiple output data. But when a transform is piped, it is only able to take one input (except it is the first transform of the pipe) and product one output (except it is the last transform of the pipe).</p>\n</blockquote>\n<h4 id=\"output-multiple-data\">Output multiple data</h4>\n<p>In most cases, transform functions only need to produce one data. But there is indeed scenarios that a transform function needs to produce multiple data, each of whom might be used by different series.</p>\n<p>For example, in the built-in boxplot transform, besides boxplot data produced, the outlier data are also produced, which can be used in a scatter series. See the <a href=\"https://echarts.apache.org/examples/en/editor.html?c=boxplot-light-velocity&amp;edit=1&amp;reset=1\" target=\"_blank\">example</a>.</p>\n<p>We use prop <a href=\"option.html#dataset.fromTransformResult\" target=\"_blank\">dataset.fromTransformResult</a> to satisfy this requirement. For example:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        // Original source data.\n        source: [...]\n    }, {\n        transform: {\n            type: &#39;boxplot&#39;\n        }\n        // After this &quot;boxplot transform&quot; two result data generated:\n        // result[0]: The boxplot data\n        // result[1]: The outlier data\n        // By default, when series or other dataset reference this dataset,\n        // only result[0] can be visited.\n        // If we need to visit result[1], we have to use another dataset\n        // as follows:\n    }, {\n        // This extra dataset references the dataset above, and retrieves\n        // the result[1] as its own data. Thus series or other dataset can\n        // reference this dataset to get the data from result[1].\n        fromDatasetIndex: 1,\n        fromTransformResult: 1\n    }],\n    xAxis: {\n        type: &#39;category&#39;\n    },\n    yAxis: {\n    },\n    series: [{\n        name: &#39;boxplot&#39;,\n        type: &#39;boxplot&#39;,\n        // Reference the data from result[0].\n        datasetIndex: 1\n    }, {\n        name: &#39;outlier&#39;,\n        type: &#39;scatter&#39;,\n        // Reference the data from result[1].\n        datasetIndex: 2\n    }]\n};\n</code></pre>\n<p>What more, <a href=\"option.html#dataset.fromTransformResult\" target=\"_blank\">dataset.fromTransformResult</a> and <a href=\"option.html#dataset.transform\" target=\"_blank\">dataset.transform</a> can both appear in one dataset, which means that the input of the transform is from retrieved from the upstream result specified by <code class=\"codespan\">fromTransformResult</code>. For example:</p>\n<pre><code class=\"lang-js\">{\n    fromDatasetIndex: 1,\n    fromTransformResult: 1,\n    transform: {\n        type: &#39;sort&#39;,\n        config: { dimension: 2, order: &#39;desc&#39; }\n    }\n}\n</code></pre>\n<h4 id=\"debug-in-develop-environment\">Debug in develop environment</h4>\n<p>When using data transform, we might run into the trouble that the final chart do not display correctly but we do not know where the config is wrong. There is a property <code class=\"codespan\">transform.print</code> might help in such case. (<code class=\"codespan\">transform.print</code> is only available in dev environment).</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [ ... ]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: { ... }\n            // The result of this transform will be printed\n            // in dev tool via `console.log`.\n            print: true\n        }\n    }],\n    ...\n}\n</code></pre>\n<h2 id=\"the-transform-filter\">The transform &quot;filter&quot;</h2>\n<p>Transform type &quot;filter&quot; is a built-in transform that provide data filter according to specified conditions. The basic option is like:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [\n            [&#39;Product&#39;, &#39;Sales&#39;, &#39;Price&#39;, &#39;Year&#39;],\n            [&#39;Cake&#39;, 123, 32, 2011],\n            [&#39;Latte&#39;, 231, 14, 2011],\n            [&#39;Tofu&#39;, 235, 5, 2011],\n            [&#39;Milk Tee&#39;, 341, 25, 2011],\n            [&#39;Porridge&#39;, 122, 29, 2011],\n            [&#39;Cake&#39;, 143, 30, 2012],\n            [&#39;Latte&#39;, 201, 19, 2012],\n            [&#39;Tofu&#39;, 255, 7, 2012],\n            [&#39;Milk Tee&#39;, 241, 27, 2012],\n            [&#39;Porridge&#39;, 102, 34, 2012],\n            [&#39;Cake&#39;, 153, 28, 2013],\n            [&#39;Latte&#39;, 181, 21, 2013],\n            [&#39;Tofu&#39;, 395, 4, 2013],\n            [&#39;Milk Tee&#39;, 281, 31, 2013],\n            [&#39;Porridge&#39;, 92, 39, 2013],\n            [&#39;Cake&#39;, 223, 29, 2014],\n            [&#39;Latte&#39;, 211, 17, 2014],\n            [&#39;Tofu&#39;, 345, 3, 2014],\n            [&#39;Milk Tee&#39;, 211, 35, 2014],\n            [&#39;Porridge&#39;, 72, 24, 2014]\n        ]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Year&#39;, &#39;=&#39;: 2011 }\n            // The config is the &quot;condition&quot; of this filter.\n            // This transform traverse the source data and\n            // and retrieve all the items that the &quot;Year&quot;\n            // is `2011`.\n        }\n    }],\n    series: {\n        type: &#39;pie&#39;,\n        datasetIndex: 1\n    }\n};\n</code></pre>\n<p><br>\n<br>\nThis is another example of filter transform:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=data-transform-filter&reset=1&edit=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n<p><strong>About dimension:</strong></p>\n<p>The <code class=\"codespan\">config.dimension</code> can be:</p>\n<ul>\n<li>Dimension name declared in dataset, like <code class=\"codespan\">config: { dimension: &#39;Year&#39;, &#39;=&#39;: 2011 }</code>. Dimension name declaration is not mandatory.</li>\n<li>Dimension index (start from 0), like <code class=\"codespan\">config: { dimension: 3, &#39;=&#39;: 2011 }</code>.</li>\n</ul>\n<p><strong>About relational operator:</strong></p>\n<p>The relational operator can be:\n<code class=\"codespan\">&gt;</code>(<code class=\"codespan\">gt</code>), <code class=\"codespan\">&gt;=</code>(<code class=\"codespan\">gte</code>), <code class=\"codespan\">&lt;</code>(<code class=\"codespan\">lt</code>), <code class=\"codespan\">&lt;=</code>(<code class=\"codespan\">lte</code>), <code class=\"codespan\">=</code>(<code class=\"codespan\">eq</code>), <code class=\"codespan\">!=</code>(<code class=\"codespan\">ne</code>, <code class=\"codespan\">&lt;&gt;</code>), <code class=\"codespan\">reg</code>. (The name in the parentheses are aliases). They follows the common semantics.\nBesides the common number comparison, there is some extra features:</p>\n<ul>\n<li>Multiple operators are able to appear in one {} item like <code class=\"codespan\">{ dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 20, &#39;&lt;&#39;: 30 }</code>, which means logical &quot;and&quot; (Price &gt;= 20 and Price &lt; 30).</li>\n<li>The data value can be &quot;numeric string&quot;. Numeric string is a string that can be converted to number. Like &#39; 123 &#39;. White spaces and line breaks will be auto trimmed in the conversion.</li>\n<li>If we need to compare &quot;JS <code class=\"codespan\">Date</code> instance&quot; or date string (like &#39;2012-05-12&#39;), we need to specify <code class=\"codespan\">parser: &#39;time&#39;</code> manually, like <code class=\"codespan\">config: { dimension: 3, lt: &#39;2012-05-12&#39;, parser: &#39;time&#39; }</code>.</li>\n<li>Pure string comparison is supported but can only be used in <code class=\"codespan\">=</code>, <code class=\"codespan\">!=</code>. <code class=\"codespan\">&gt;</code>, <code class=\"codespan\">&gt;=</code>, <code class=\"codespan\">&lt;</code>, <code class=\"codespan\">&lt;=</code> do not support pure string comparison (the &quot;right value&quot; of the four operators can not be a &quot;string&quot;).</li>\n<li>The operator <code class=\"codespan\">reg</code> can be used to make regular expression test. Like using <code class=\"codespan\">{ dimension: &#39;Name&#39;, reg: /\\s+Müller\\s*$/ }</code> to select all data items that the &quot;Name&quot; dimension contains family name Müller.</li>\n</ul>\n<p><strong>About logical relationship:</strong></p>\n<p>Sometimes we also need to express logical relationship ( <code class=\"codespan\">and</code> / <code class=\"codespan\">or</code> / <code class=\"codespan\">not</code> ):</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [...]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: {\n                // Use operator &quot;and&quot;.\n                // Similarly, we can also use &quot;or&quot;, &quot;not&quot; in the same place.\n                // But &quot;not&quot; should be followed with a {...} rather than `[...]`.\n                and: [\n                    { dimension: &#39;Year&#39;, &#39;=&#39;: 2011 },\n                    { dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 20, &#39;&lt;&#39;: 30 }\n                ]\n            }\n            // The condition is &quot;Year&quot; is 2011 and &quot;Price&quot; is greater\n            // or equal to 20 but less than 30.\n        }\n    }],\n    series: {\n        type: &#39;pie&#39;,\n        datasetIndex: 1\n    }\n};\n</code></pre>\n<p><code class=\"codespan\">and</code>/<code class=\"codespan\">or</code>/<code class=\"codespan\">not</code> can be nested like:</p>\n<pre><code class=\"lang-js\">transform: {\n    type: &#39;filter&#39;,\n    config: {\n        or: [{\n            and: [{\n                dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 10, &#39;&lt;&#39;: 20\n            }, {\n                dimension: &#39;Sales&#39;, &#39;&lt;&#39;: 100\n            }, {\n                not: { dimension: &#39;Product&#39;, &#39;=&#39;: &#39;Tofu&#39; }\n            }]\n        }, {\n            and: [{\n                dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 10, &#39;&lt;&#39;: 20\n            }, {\n                dimension: &#39;Sales&#39;, &#39;&lt;&#39;: 100\n            }, {\n                not: { dimension: &#39;Product&#39;, &#39;=&#39;: &#39;Cake&#39; }\n            }]\n        }]\n    }\n}\n</code></pre>\n<p><strong>About parser:</strong></p>\n<p>Some &quot;parser&quot; can be specified when make value comparison. At present only supported:</p>\n<ul>\n<li><code class=\"codespan\">parser: &#39;time&#39;</code>: Parse the value to date time before comparing. The parser rule is the same as <code class=\"codespan\">echarts.time.parse</code>, where JS <code class=\"codespan\">Date</code> instance, timestamp number (in millisecond) and time string (like <code class=\"codespan\">&#39;2012-05-12 03:11:22&#39;</code>) are supported to be parse to timestamp number, while other value will be parsed to <code class=\"codespan\">NaN</code>.</li>\n<li><code class=\"codespan\">parser: &#39;trim&#39;</code>: Trim the string before making comparison. For non-string, return the original value.</li>\n<li><code class=\"codespan\">parser: &#39;number&#39;</code>: Force to convert the value to number before making comparison. If not possible to be converted to a meaningful number, converted to <code class=\"codespan\">NaN</code>. In most cases it is not necessary, because by default the value will be auto converted to number if possible before making comparison. But the default conversion is strict while this parser provide a loose strategy. If we meet the case that number string with unit suffix (like <code class=\"codespan\">&#39;33%&#39;</code>, <code class=\"codespan\">12px</code>), we should use <code class=\"codespan\">parser: &#39;number&#39;</code> to convert them to number before making comparison.</li>\n</ul>\n<p>This is an example to show the <code class=\"codespan\">parser: &#39;time&#39;</code>:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [\n            [&#39;Product&#39;, &#39;Sales&#39;, &#39;Price&#39;, &#39;Date&#39;],\n            [&#39;Milk Tee&#39;, 311, 21, &#39;2012-05-12&#39;],\n            [&#39;Cake&#39;, 135, 28, &#39;2012-05-22&#39;],\n            [&#39;Latte&#39;, 262, 36, &#39;2012-06-02&#39;],\n            [&#39;Milk Tee&#39;, 359, 21, &#39;2012-06-22&#39;],\n            [&#39;Cake&#39;, 121, 28, &#39;2012-07-02&#39;],\n            [&#39;Latte&#39;, 271, 36, &#39;2012-06-22&#39;],\n            ...\n        ]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: {\n                { dimension: &#39;Date&#39;, &#39;&gt;=&#39;: &#39;2012-05&#39;, &#39;&lt;&#39;: &#39;2012-06&#39;, parser: &#39;time&#39; }\n            }\n        }\n    }]\n}\n</code></pre>\n<p><strong>Formally definition:</strong></p>\n<p>Finally, we give the formally definition of the filter transform config here:</p>\n<pre><code class=\"lang-ts\">type FilterTransform = {\n    type: &#39;filter&#39;;\n    config: ConditionalExpressionOption;\n};\ntype ConditionalExpressionOption =\n    true | false | RelationalExpressionOption | LogicalExpressionOption;\ntype RelationalExpressionOption = {\n    dimension: DimensionName | DimensionIndex;\n    parser?: &#39;time&#39; | &#39;trim&#39; | &#39;number&#39;;\n    lt?: DataValue; // less than\n    lte?: DataValue; // less than or equal\n    gt?: DataValue; // greater than\n    gte?: DataValue; // greater than or equal\n    eq?: DataValue; // equal\n    ne?: DataValue; // not equal\n    &#39;&lt;&#39;?: DataValue; // lt\n    &#39;&lt;=&#39;?: DataValue; // lte\n    &#39;&gt;&#39;?: DataValue; // gt\n    &#39;&gt;=&#39;?: DataValue; // gte\n    &#39;=&#39;?: DataValue; // eq\n    &#39;!=&#39;?: DataValue; // ne\n    &#39;&lt;&gt;&#39;?: DataValue; // ne (SQL style)\n    reg?: RegExp | string; // RegExp\n};\ntype LogicalExpressionOption = {\n    and?: ConditionalExpressionOption[];\n    or?: ConditionalExpressionOption[];\n    not?: ConditionalExpressionOption;\n};\ntype DataValue = string | number | Date;\ntype DimensionName = string;\ntype DimensionIndex = number;\n</code></pre>\n<h2 id=\"the-transform-sort\">The transform &quot;sort&quot;</h2>\n<p>Another built-in transform is &quot;sort&quot;.</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        dimensions: [&#39;name&#39;, &#39;age&#39;, &#39;profession&#39;, &#39;score&#39;, &#39;date&#39;],\n        source: [\n            [&#39; Hannah Krause &#39;, 41, &#39;Engineer&#39;, 314, &#39;2011-02-12&#39;],\n            [&#39;Zhao Qian &#39;, 20, &#39;Teacher&#39;, 351, &#39;2011-03-01&#39;],\n            [&#39; Jasmin Krause &#39;, 52, &#39;Musician&#39;, 287, &#39;2011-02-14&#39;],\n            [&#39;Li Lei&#39;, 37, &#39;Teacher&#39;, 219, &#39;2011-02-18&#39;],\n            [&#39; Karle Neumann &#39;, 25, &#39;Engineer&#39;, 253, &#39;2011-04-02&#39;],\n            [&#39; Adrian Groß&#39;, 19, &#39;Teacher&#39;, null, &#39;2011-01-16&#39;],\n            [&#39;Mia Neumann&#39;, 71, &#39;Engineer&#39;, 165, &#39;2011-03-19&#39;],\n            [&#39; Böhm Fuchs&#39;, 36, &#39;Musician&#39;, 318, &#39;2011-02-24&#39;],\n            [&#39;Han Meimei &#39;, 67, &#39;Engineer&#39;, 366, &#39;2011-03-12&#39;],\n        ]\n    }, {\n        transform: {\n            type: &#39;sort&#39;,\n            // Sort by score.\n            config: { dimension: &#39;score&#39;, order: &#39;asc&#39; }\n        }\n    }],\n    series: {\n        type: &#39;bar&#39;,\n        datasetIndex: 1\n    },\n    ...\n};\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=data-transform-sort-bar&reset=1&edit=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n\n<p>Some extra features about &quot;sort transform&quot;:</p>\n<ul>\n<li>Order by multiple dimensions is supported. See examples below.</li>\n<li>The sort rule:<ul>\n<li>By default &quot;numeric&quot; (that is, number and numeric-string like <code class=\"codespan\">&#39; 123 &#39;</code>) are able to sorted by numeric order.</li>\n<li>Otherwise &quot;non-numeric-string&quot; are also able to be ordered among themselves. This might help to the case like grouping data items with the same tag, especially when multiple dimensions participated in the sort (See example below).</li>\n<li>When &quot;numeric&quot; is compared with &quot;non-numeric-string&quot;, or either of them is compared with other types of value, they are not comparable. So we call the latter one as &quot;incomparable&quot; and treat it as &quot;min value&quot; or &quot;max value&quot; according to the prop <code class=\"codespan\">incomparable: &#39;min&#39; | &#39;max&#39;</code>. This feature usually helps to decide whether to put the empty values (like <code class=\"codespan\">null</code>, <code class=\"codespan\">undefined</code>, <code class=\"codespan\">NaN</code>, <code class=\"codespan\">&#39;&#39;</code>, <code class=\"codespan\">&#39;-&#39;</code>) or other illegal values to the head or tail.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">filter: &#39;time&#39; | &#39;trim&#39; | &#39;number&#39;</code> can be used, the same as &quot;filter transform&quot;.<ul>\n<li>If intending to sort time values (JS <code class=\"codespan\">Date</code> instance or time string like <code class=\"codespan\">&#39;2012-03-12 11:13:54&#39;</code>), <code class=\"codespan\">parser: &#39;time&#39;</code> should be specified. Like <code class=\"codespan\">config: { dimension: &#39;date&#39;, order: &#39;desc&#39;, parser: &#39;time&#39; }</code></li>\n<li>If intending to sort values with unit suffix (like <code class=\"codespan\">&#39;33%&#39;</code>, <code class=\"codespan\">&#39;16px&#39;</code>), need to use <code class=\"codespan\">parser: &#39;number&#39;</code>.</li>\n</ul>\n</li>\n</ul>\n<p>See an example of multiple order:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        dimensions: [&#39;name&#39;, &#39;age&#39;, &#39;profession&#39;, &#39;score&#39;, &#39;date&#39;],\n        source: [\n            [&#39; Hannah Krause &#39;, 41, &#39;Engineer&#39;, 314, &#39;2011-02-12&#39;],\n            [&#39;Zhao Qian &#39;, 20, &#39;Teacher&#39;, 351, &#39;2011-03-01&#39;],\n            [&#39; Jasmin Krause &#39;, 52, &#39;Musician&#39;, 287, &#39;2011-02-14&#39;],\n            [&#39;Li Lei&#39;, 37, &#39;Teacher&#39;, 219, &#39;2011-02-18&#39;],\n            [&#39; Karle Neumann &#39;, 25, &#39;Engineer&#39;, 253, &#39;2011-04-02&#39;],\n            [&#39; Adrian Groß&#39;, 19, &#39;Teacher&#39;, null, &#39;2011-01-16&#39;],\n            [&#39;Mia Neumann&#39;, 71, &#39;Engineer&#39;, 165, &#39;2011-03-19&#39;],\n            [&#39; Böhm Fuchs&#39;, 36, &#39;Musician&#39;, 318, &#39;2011-02-24&#39;],\n            [&#39;Han Meimei &#39;, 67, &#39;Engineer&#39;, 366, &#39;2011-03-12&#39;],\n        ]\n    }, {\n        transform: {\n            type: &#39;sort&#39;,\n            config: [\n                // Sort by the two dimensions.\n                { dimension: &#39;profession&#39;, order: &#39;desc&#39; },\n                { dimension: &#39;score&#39;, order: &#39;desc&#39; }\n            ]\n        }\n    }],\n    series: {\n        type: &#39;bar&#39;,\n        datasetIndex: 1\n    },\n    ...\n};\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/data-transform-multiple-sort-bar&reset=1&edit=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n<p>Finally, we give the formally definition of the sort transform config here:</p>\n<pre><code class=\"lang-ts\">type SortTransform = {\n    type: &#39;filter&#39;;\n    config: OrderExpression | OrderExpression[];\n};\ntype OrderExpression = {\n    dimension: DimensionName | DimensionIndex;\n    order: &#39;asc&#39; | &#39;desc&#39;;\n    incomparable?: &#39;min&#39; | &#39;max&#39;;\n    parser?: &#39;time&#39; | &#39;trim&#39; | &#39;number&#39;;\n};\ntype DimensionName = string;\ntype DimensionIndex = number;\n</code></pre>\n<h2 id=\"use-external-transforms\">Use external transforms</h2>\n<p>Besides built-in transforms (like &#39;filter&#39;, &#39;sort&#39;), we can also use external transforms to provide more powerful functionalities. Here we use a third-party library <a href=\"https://github.com/ecomfe/echarts-stat\" target=\"_blank\">ecStat</a> as an example:</p>\n<p>This case show how to make a regression line via ecStat:</p>\n<pre><code class=\"lang-js\">// Register the external transform at first.\necharts.registerTransform(ecStatTransform(ecStat).regression);\n</code></pre>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: rawData\n    }, {\n        transform: {\n            // Reference the registered external transform.\n            // Note that external transform has a namespace (like &#39;ecStat:xxx&#39;\n            // has namespace &#39;ecStat&#39;).\n            // built-in transform (like &#39;filter&#39;, &#39;sort&#39;) does not have a namespace.\n            type: &#39;ecStat:regression&#39;,\n            config: {\n                // Parameters needed by the external transform.\n                method: &#39;exponential&#39;\n            }\n        }\n    }],\n    xAxis: { type: &#39;category&#39; },\n    yAxis: {},\n    series: [{\n        name: &#39;scatter&#39;,\n        type: &#39;scatter&#39;,\n        datasetIndex: 0\n    }, {\n        name: &#39;regression&#39;,\n        type: &#39;line&#39;,\n        symbol: &#39;none&#39;,\n        datasetIndex: 1\n    }]\n};\n</code></pre>\n<p>Examples with echarts-stat:</p>\n<ul>\n<li><a href=\"https://echarts.apache.org/examples/en/editor.html?c=bar-histogram&amp;edit=1&amp;reset=1\" target=\"_blank\">Bar histogram</a></li>\n<li><a href=\"https://echarts.apache.org/examples/en/editor.html?c=scatter-clustering&amp;edit=1&amp;reset=1\" target=\"_blank\">Scatter clustering</a></li>\n<li><a href=\"https://echarts.apache.org/examples/en/editor.html?c=scatter-linear-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">Scatter linear regression</a></li>\n<li><a href=\"https://echarts.apache.org/examples/en/editor.html?c=scatter-exponential-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">Scatter exponential regression</a></li>\n<li><a href=\"https://echarts.apache.org/examples/en/editor.html?c=scatter-logarithmic-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">Scatter logarithmic regression</a></li>\n<li><a href=\"https://echarts.apache.org/examples/en/editor.html?c=scatter-polynomial-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">Scatter polynomial regression</a></li>\n</ul>\n"},"Add interaction to the chart component":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> provides many interaction components besides chart. For example:</p>\n<p><code class=\"codespan\">legend component</code> <a href=\"option.html#legend\" target=\"_blank\">legend</a>、<code class=\"codespan\">title component</code> <a href=\"option.html#title\" target=\"_blank\">title</a>、<code class=\"codespan\">visualmap component</code> <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a>、<code class=\"codespan\">datazoom component</code> <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a>、<code class=\"codespan\">dataline component</code> <a href=\"option.html#timeline\" target=\"_blank\">timeline</a></p>\n<p>Following is an example of <code class=\"codespan\">datazoom component</code> <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a> as an introduction of how to add this kind of component.</p>\n<h2 id=\"introduction-of-data-zoom-component-datazoom-\">Introduction of data zoom component (dataZoom)</h2>\n<p>Data overview by default, and detail by requirement is a basic interaction need of data visualization. <code class=\"codespan\">dataZoom</code> component can implement this function in rectangular coordinate (<a href=\"option.html#grid\" target=\"_blank\">grid</a>) and polar coordinate (<a href=\"option.html#polar\" target=\"_blank\">polar</a>.</p>\n<p><strong>For example: </strong></p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/scatter-dataZoom-all&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n<p><br></p>\n<ul>\n<li><code class=\"codespan\">dataZoom</code> component operates <em>data window zoom</em> and <em>data window translation</em> on <code class=\"codespan\">axis</code>.</li>\n</ul>\n<blockquote>\n<p>Use <a href=\"option.html#dataZoom.xAxisIndex\" target=\"_blank\">dataZoom.xAxisIndex</a>, <a href=\"option.html#dataZoom.yAxisIndex\" target=\"_blank\">dataZoom.yAxisIndex</a> to specify which axis <code class=\"codespan\">dataZoom</code> controls.</p>\n</blockquote>\n<ul>\n<li><p>Multiple <code class=\"codespan\">dataZoom</code> components can exist at the same time to control function together. Components controling the same axis will be connected automatically. The example below explains in detail.</p>\n</li>\n<li><p>Operation principle of <code class=\"codespan\">dataZoom</code> achieves <em>data window zooming</em> through <em>data filtering</em>.</p>\n<p>  Different settings of data filtering modes lead to different data window zooming effects, please see: <a href=\"option.html#dataZoom.filterMode\" target=\"_blank\">dataZoom.filterMode</a>.</p>\n</li>\n<li><p>Setting of <code class=\"codespan\">dataZoom</code> data window range supports two formats currently:</p>\n<ul>\n<li><p>Percentage: see <a href=\"option.html#dataZoom.start\" target=\"_blank\">dataZoom.start</a> and <a href=\"option.html#dataZoom.end\" target=\"_blank\">dataZoom.end</a>.</p>\n</li>\n<li><p>Absolute value: see <a href=\"option.html#dataZoom.startValue\" target=\"_blank\">dataZoom.startValue</a> and <a href=\"option.html#dataZoom.endValue\" target=\"_blank\">dataZoom.endValue</a>.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>dataZoom component supports several child components: </strong></p>\n<ul>\n<li><p><a href=\"option.html#dataZoom-inside\" target=\"_blank\">Inside data zoom component (dataZoomInside)</a>: inside coordinates.</p>\n</li>\n<li><p><a href=\"option.html#dataZoom-slider\" target=\"_blank\">Slider data zoom component (dataZoomSlider)</a>: has seperate slide option.</p>\n</li>\n<li><p><a href=\"option.html#toolbox.feature.dataZoom\" target=\"_blank\">Select data zoom component (dataZoomSelect)</a>: full-screen box for zoom data area. Entrance and configuration item are both in <code class=\"codespan\">toolbox</code>.</p>\n</li>\n</ul>\n<h2 id=\"adding-datazoom-component\">Adding dataZoom component</h2>\n<p>First, only add dataZoom component to x-axis. Following examples shows the code.</p>\n<pre><code class=\"lang-javascript\">\noption = {\n    xAxis: {\n        type: &#39;value&#39;\n    },\n    yAxis: {\n        type: &#39;value&#39;\n    },\n    dataZoom: [\n        {   // This dataZoom component controls x-axis by dafault\n            type: &#39;slider&#39;, // this dataZoom component is dataZoom component of slider\n            start: 10,      // the left is located at 10%\n            end: 60         // the right is located at 60%\n        }\n    ],\n    series: [\n        {\n            type: &#39;scatter&#39;, // this is scatter chart\n            itemStyle: {\n                opacity: 0.8\n            },\n            symbolSize: function (val) {\n                return val[2] * 40;\n            },\n            data: [[&quot;14.616&quot;,&quot;7.241&quot;,&quot;0.896&quot;],[&quot;3.958&quot;,&quot;5.701&quot;,&quot;0.955&quot;],[&quot;2.768&quot;,&quot;8.971&quot;,&quot;0.669&quot;],[&quot;9.051&quot;,&quot;9.710&quot;,&quot;0.171&quot;],[&quot;14.046&quot;,&quot;4.182&quot;,&quot;0.536&quot;],[&quot;12.295&quot;,&quot;1.429&quot;,&quot;0.962&quot;],[&quot;4.417&quot;,&quot;8.167&quot;,&quot;0.113&quot;],[&quot;0.492&quot;,&quot;4.771&quot;,&quot;0.785&quot;],[&quot;7.632&quot;,&quot;2.605&quot;,&quot;0.645&quot;],[&quot;14.242&quot;,&quot;5.042&quot;,&quot;0.368&quot;]]\n        }\n    ]\n}\n</code></pre>\n<p>which will show the following result:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/scatter-tutorial-dataZoom-1&edit=1&reset=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n<p><br></p>\n<p>The chart above can only change window by dragging dataZoom component. If you want to drag in coordinate, or use mouse wheel (or slides with two fingers on mobile) to zoom, then another inside dataZoom component needs to be added. You can just add in the <code class=\"codespan\">option.dataZoom</code> above:</p>\n<pre><code class=\"lang-javascript\">option = {\n    ...,\n    dataZoom: [\n        {   // this dataZoom component controls x-axis by dafault\n            type: &#39;slider&#39;, // this dataZoom component is dataZoom component of slider\n            start: 10,      // the left is located at 10%\n            end: 60         // the right is located at 60%\n        },\n        {   // This dataZoom component controls x-axis by dafault\n            type: &#39;inside&#39;, // this dataZoom component is dataZoom component of inside\n            start: 10,      // the left is located at 10%\n            end: 60         // the right is located at 60%\n        }\n    ],\n    ...\n}\n</code></pre>\n<p>Following results can be seen (you can now slide or use mouse wheel to zoom in coordinate) :</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/scatter-tutorial-dataZoom-2&edit=1&reset=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n\n<p><br></p>\n<p>If you want to enable zooming on y-axis, then you need to add dataZoom componet on y-axis:</p>\n<pre><code class=\"lang-javascript\">option = {\n    ...,\n    dataZoom: [\n        {\n            type: &#39;slider&#39;,\n            xAxisIndex: 0,\n            start: 10,\n            end: 60\n        },\n        {\n            type: &#39;inside&#39;,\n            xAxisIndex: 0,\n            start: 10,\n            end: 60\n        },\n        {\n            type: &#39;slider&#39;,\n            yAxisIndex: 0,\n            start: 30,\n            end: 80\n        },\n        {\n            type: &#39;inside&#39;,\n            yAxisIndex: 0,\n            start: 30,\n            end: 80\n        }\n    ],\n    ...\n}\n</code></pre>\n<p>Following result can be seen:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/scatter-tutorial-dataZoom-3&edit=1&reset=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n\n\n\n\n\n\n"},"Responsive Mobile-End":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> works in DOM nodes with user defined width and height. ECharts <em>component</em> and <em>series</em> are both in this DOM node, whose location can be assigned by user seperately. Inner components of charts are not suitable for implementing DOM flow layout. Instead, we use a simpler and more understandable layout similar to absolute layout. But sometimes when container is of extreme size, this method cannot avoid component overlapping automatically, especially on small screens on mobile-end.</p>\n<p>Besides, sometimes one chart may need to be displayed on both PC and mobile-end, which involves the ability of ECharts inner components to be responsive with different container sizes.</p>\n<p>To solve this problem, ECharts improved component location algorithm, and implemented responsive ability similar to <a href=\"https://www.w3.org/TR/css3-mediaqueries/\" target=\"_blank\">CSS Media Query</a>.</p>\n<h2 id=\"location-and-layout-of-echarts-components\">Location and layout of ECharts components</h2>\n<p>Most <em>component</em> and <em>series</em> follow two locating methods:</p>\n<p><br>\n<strong>left/right/top/bottom/width/height locating method:</strong></p>\n<p>Each of those six parameters can be <em>absolute value</em> or <em>percentage</em> or <em>location description</em>.</p>\n<ul>\n<li><p>Absolute value</p>\n<p>  in browser pixels (px); in form of <code class=\"codespan\">number</code> (no unit); e.g.: <code class=\"codespan\">{left: 23, height: 400}</code>.</p>\n</li>\n<li><p>Percentage</p>\n<p>  to the width and height of DOM container; in form of <code class=\"codespan\">string</code>; e.g.: <code class=\"codespan\">{right: &#39;30%&#39;, bottom: &#39;40%&#39;}</code>.</p>\n</li>\n<li><p>Location Description</p>\n<ul>\n<li>can be set to <code class=\"codespan\">left: &#39;center&#39;</code>, for horizontally centering.</li>\n<li>can be set to <code class=\"codespan\">top: &#39;middle&#39;</code>, for vertically centering.</li>\n</ul>\n</li>\n</ul>\n<p>The concept of these six parameters is similar to that in CSS:</p>\n<ul>\n<li>left: distance to left border of DOM container.</li>\n<li>right: distance to right border of DOM container.</li>\n<li>top: distance to top border of DOM container.</li>\n<li>bottom: distance to bottom border of DOM container.</li>\n<li>width: width.</li>\n<li>height: height.</li>\n</ul>\n<p>Two out of the three horizontal parameters, <code class=\"codespan\">left</code>, <code class=\"codespan\">right</code>, <code class=\"codespan\">width</code>, are enough to determine the component location. For example, <code class=\"codespan\">left</code> and <code class=\"codespan\">right</code>, or <code class=\"codespan\">right</code> and <code class=\"codespan\">width</code> can both determine component location and size.\nThe same goes for vertical paramters <code class=\"codespan\">top</code>, <code class=\"codespan\">bottom</code> and <code class=\"codespan\">height</code>.</p>\n<p><br>\n<strong>Locating method of <code class=\"codespan\">center</code> / <code class=\"codespan\">radius</code>: </strong></p>\n<ul>\n<li><p><code class=\"codespan\">center</code></p>\n<p>  an array in form of <code class=\"codespan\">[x, y]</code>, in which <code class=\"codespan\">x</code> and <code class=\"codespan\">y</code> can either be <em>absolute value</em> or <em>percentage</em>, as described above.</p>\n</li>\n<li><p><code class=\"codespan\">radius</code></p>\n<p>  an array in form of <code class=\"codespan\">[innerRadius, outerRadius]</code>, in which <code class=\"codespan\">innerRadius</code> and <code class=\"codespan\">outerRadius</code> can either be <em>absolute value</em> or <em>percentage</em>, as described above.</p>\n<p>  Percentage location turns out to be very useful for responsive positioning.</p>\n</li>\n</ul>\n<p><br>\n<strong>Horizontal and vertical</strong></p>\n<p>Most of ECharts&#39;s long and narrow components (such as <code class=\"codespan\">legend</code>,<code class=\"codespan\">visualMap</code>,<code class=\"codespan\">dataZoom</code>,<code class=\"codespan\">timeline</code> and so on), provide option to set them to be horizontal or vertical. For example, long and narrow screen of mobile-end, vertical layout may be a more suitable choice, while horizontal may more suit for PC&#39;s wide screen.</p>\n<p>Setting of horizontal or vertical layout is usually with component or series&#39;s <code class=\"codespan\">orient</code> or <code class=\"codespan\">layout</code> option, which can be set to <code class=\"codespan\">&#39;horizontal&#39;</code> or <code class=\"codespan\">&#39;vertical&#39;</code>.</p>\n<p><br>\n<strong>Compatibility with ECharts2: </strong></p>\n<p>Naming of <code class=\"codespan\">x/x2/y/y2</code> in ECharts2 is still compatible, as well as the newly added <code class=\"codespan\">left/right/top/bottom</code>. But <code class=\"codespan\">left/right/top/bottom</code> is recommended.</p>\n<p>To be compatible with ECharts2, there may be settings that seems to be odd, e.g.: <code class=\"codespan\">left: &#39;right&#39;</code>, <code class=\"codespan\">left: &#39;left&#39;</code>, <code class=\"codespan\">top: &#39;bottom&#39;</code>, <code class=\"codespan\">top: &#39;top&#39;</code>, which are equal to: <code class=\"codespan\">right: 0</code>, <code class=\"codespan\">left: 0</code>, <code class=\"codespan\">bottom: 0</code>, <code class=\"codespan\">top: 0</code>, in a more normal expression.</p>\n<h2 id=\"media-query\">Media Query</h2>\n<p><a href=\"https://www.w3.org/TR/css3-mediaqueries/#media1\" target=\"_blank\">Media Query</a> provides the ability to be responsive with container size.</p>\n<p>As shown in the following example, you may drag <strong>the circle in bottom-right corner</strong> to see the legend and series change layout position and method with container size.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/pie-media&edit=1&reset=1\" width=\"750\" height=\"600\" ></iframe>\n\n\n<p>The following format should be followed if you need to set Media Query in option:</p>\n<pre><code class=\"lang-javascript\">option = {\n    // here defines baseOption\n    title: {...},\n    legend: {...},\n    series: [{...}, {...}, ...],\n    ...,\n    media: [ // each rule of media query is defined here\n        {\n            query: {...},   // write rule here\n            option: {       // write options accordingly\n                legend: {...},\n                ...\n            }\n        },\n        {\n            query: {...},   // the second rule\n            option: {       // the second option\n                legend: {...},\n                ...\n            }\n        },\n        {                   // default with no rules,\n            option: {       // when all rules fail, use this option\n                legend: {...},\n                ...\n            }\n        }\n    ]\n};\n</code></pre>\n<p>In the above example, <code class=\"codespan\">baseOption</code> and every option in <code class=\"codespan\">media</code> are all <em>simple options</em>, which are regular options containing components and series. <code class=\"codespan\">baseOption</code> is always be used, while options of every will be merged with <code class=\"codespan\">chart.mergeOption()</code> when given <code class=\"codespan\">query</code> condition is satisfied with.</p>\n<p><strong>query: </strong></p>\n<p>A <code class=\"codespan\">query</code> is in the following format:</p>\n<pre><code class=\"lang-javascript\">{\n    minWidth: 200,\n    maxHeight: 300,\n    minAspectRatio: 1.3\n}\n</code></pre>\n<p>Currently there are three supported attributes:<code class=\"codespan\">width</code>, <code class=\"codespan\">height</code>, <code class=\"codespan\">aspectRatio</code> (height / width), each of which can add <code class=\"codespan\">min</code> or <code class=\"codespan\">max</code> as prefix. E.g., <code class=\"codespan\">minWidth: 200</code> stands for when width is greater than or equal to 200px. When two attributes are written together, it means <em>and</em> in Bool logic. For example, <code class=\"codespan\">{minWidth: 200, maxHeight: 300}</code> stands for when width is greater than or equal to 200px and height is smaller than or equal to 300px.</p>\n<p><strong>option: </strong></p>\n<p>Since option in <code class=\"codespan\">media</code> is <em>simple option</em>, technically speaking, you can write every option configuration item. But usually we only write those related to layout. Take part of the above query option as example:</p>\n<pre><code class=\"lang-javascript\">media: [\n    ...,\n    {\n        query: {\n            maxAspectRatio: 1           // when length-to-width ratio is less than 1\n        },\n        option: {\n            legend: {                   // legend is placed in middle-bottom\n                right: &#39;center&#39;,\n                bottom: 0,\n                orient: &#39;horizontal&#39;    // horizontal layout of legend\n            },\n            series: [                   // left and right layout of two pie charts\n                {\n                    radius: [20, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;30%&#39;]\n                },\n                {\n                    radius: [30, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;70%&#39;]\n                }\n            ]\n        }\n    },\n    {\n        query: {\n            maxWidth: 500               // when container width is smaller than 500\n        },\n        option: {\n            legend: {\n                right: 10,              // legend is placed in middle-right\n                top: &#39;15%&#39;,\n                orient: &#39;vertical&#39;      // vertical layout\n            },\n            series: [                   // top and bottom layout of two pie charts\n                {\n                    radius: [20, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;30%&#39;]\n                },\n                {\n                    radius: [30, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;75%&#39;]\n                }\n            ]\n        }\n    },\n    ...\n]\n</code></pre>\n<p><strong>Priority when multiple queries are satisfied: </strong></p>\n<p>Attention: When multiple <code class=\"codespan\">query</code> are satisfied at the same time, all of them will be merged with <code class=\"codespan\">mergeOption</code> and those are defined later will be merged later, thus provides them with higher priority.</p>\n<p><strong>Query by default: </strong></p>\n<p>If an item in <code class=\"codespan\">media</code> has no not <code class=\"codespan\">query</code>, then it means <em>default value</em>, which will be used when all other rules fail.</p>\n<p><strong>Pay attention when container size changes:</strong></p>\n<p>In many cases, container DOM node doesn&#39;t need to change size with user dragging. Instead, it may set to several sizes on varied ends.</p>\n<p>But if the container DOM node needs to change size with dragging, you need to pay attention to this: if certain configuration item appears in one <code class=\"codespan\">query option</code>, then it should also appeared in other <code class=\"codespan\">query option</code>, or it will not be able to return to the original state. (<code class=\"codespan\">left/right/top/bottom/width/height</code> are not restricted to this rule.)</p>\n<p><strong><code class=\"codespan\">media</code> in <em>composite option</em> does not support merge</strong></p>\n<p>When <code class=\"codespan\">chart.setOption(rawOption)</code> for the second, third, fourth, fifth, and etc. times, if <code class=\"codespan\">rawOption</code> is <code class=\"codespan\">composite option</code> (which means it contains <code class=\"codespan\">media</code> list), then, the new <code class=\"codespan\">rawOption.media</code> list will not merge with the old <code class=\"codespan\">media</code>. instead, it will simply replace the option. Of course, <code class=\"codespan\">baseOption</code> will still merge with the old option normally.</p>\n<p><br>\nFinally, let&#39;s see an example combining with timeline:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/bar-media-timeline&edit=1&reset=1\" width=\"750\" height=\"700\" ></iframe>\n\n\n\n\n\n"},"Visual Map of Data":{"type":["*"],"description":"<p>Data visualization is a procedure of mapping data into visual elements. This procedure can also be called visual coding, and visual elements can also be called visual tunnels.</p>\n<p>Every type of charts in Apache ECharts<sup>TM</sup> has this built-in mapping procedure. For example, line charts map data into <em>lines</em>, bar charts map data into <em>length</em>. Some more complicated charts, like <code class=\"codespan\">graph</code>, <code class=\"codespan\">themeRiver</code>, and <code class=\"codespan\">treemap</code> have their own built-in mapping.</p>\n<p>Besides, ECharts provides <a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a> for general visual mapping. Visual elements allowed in <code class=\"codespan\">visualMap</code> component are:<br>\n<code class=\"codespan\">symbol</code>, <code class=\"codespan\">symbolSize</code><br>\n<code class=\"codespan\">color</code>, <code class=\"codespan\">opacity</code>, <code class=\"codespan\">colorAlpha</code>, <br>\n<code class=\"codespan\">colorLightness</code>, <code class=\"codespan\">colorSaturation</code>, <code class=\"codespan\">colorHue</code></p>\n<p>Next, we are going to introduce how to use <code class=\"codespan\">visualMap</code> component.</p>\n<h2 id=\"data-and-dimension\">Data and Dimension</h2>\n<p>Data are usually stored in <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> in ECharts. Depending on chart types, like list, tree, graph, and so on, the form of data may vary somehow. But they have one common feature, that they are a collection of <code class=\"codespan\">dataItem</code>s. Every data item contains data value, and other information if needed. Every data value can be a single value (one dimension) or an array (multiple dimensions).</p>\n<p>For example, <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> is the most common form, which is a <code class=\"codespan\">list</code>, a common array:</p>\n<pre><code class=\"lang-javascript\">series: {\n    data: [\n        {       // every item here is a dataItem\n            value: 2323, // this is data value\n            itemStyle: {...}\n        },\n        1212,   // it can also be a value of dataItem, which is a more common case\n        2323,   // every data value here is one dimension\n        4343,\n        3434\n    ]\n}\n</code></pre>\n<pre><code class=\"lang-javascript\">series: {\n    data: [\n        {                        // every item here is a dataItem\n            value: [3434, 129,  &#39;San Marino&#39;], // this is data value\n            itemStyle: {...}\n        },\n        [1212, 5454, &#39;Vatican&#39;],   // it can also be a value of dataItem, which is a more common case\n        [2323, 3223, &#39;Nauru&#39;],     // every data value here is three dimension\n        [4343, 23,   &#39;Tuvalu&#39;]    // If is scatter chart, usually map the first dimension to x axis,\n                                 // the second dimension to y axis,\n                                 // and the third dimension to symbolSize\n    ]\n}\n</code></pre>\n<p>Usually the first one or two dimensions are used for mapping. For example, map the first dimension to x axis, and the second dimension to y axis. If you want to represent more dimensions, <code class=\"codespan\">visualMap</code> is what you need. Most likely, <a href=\"option.html#series-scatter\" target=\"_blank\">scatter charts</a> use radius to represent the third dimension.</p>\n<h2 id=\"visualmap-component\">visualMap Component</h2>\n<p>visualMap component defines the mapping from <em>which dimension of data</em> to <em>what visual elements</em>.</p>\n<p>The following two types of visualMap components are supported, identified with <a href=\"option.html#visualMap.type\" target=\"_blank\">visualMap.type</a>.</p>\n<p>Its structure is defined as:</p>\n<pre><code class=\"lang-javascript\">option = {\n    visualMap: [ // can define multiple visualMap components at the same time\n        { // the first visualMap component\n            type: &#39;continuous&#39;, // defined as continuous visualMap\n            ...\n        },\n        { // the second visualMap component\n            type: &#39;piecewise&#39;, // defined as discrete visualMap\n            ...\n        }\n    ],\n    ...\n};\n</code></pre>\n<p><a href=\"option.html#visualMap-continuous\" target=\"_blank\">visualMapContinuous</a>:</p>\n<p><a href=\"option.html#visualMap-piecewise\" target=\"_blank\">visualMapPiecewise</a>:</p>\n<p>Piecewise visual map component(visualMapPiecewise)has three types:</p>\n<ul>\n<li>Equal division of continuous data: divide equally based on <a href=\"option.html#visualMap-piecewise.splitNumber\" target=\"_blank\">visualMap-piecewise.splitNumber</a>;</li>\n<li>User-defined division of continuous data: divide with range in <a href=\"option.html#visualMap-piecewise.pieces\" target=\"_blank\">visualMap-piecewise.pieces</a>;</li>\n<li>Discrete data (data in category type): divide with <a href=\"option.html#visualMap-piecewise.categories\" target=\"_blank\">visualMap-piecewise.categories</a>.</li>\n</ul>\n<p><br>\n<strong>Configuration of visualMap mapping method</strong></p>\n<p>As we have introduced above, <code class=\"codespan\">visualMap</code> maps a certain dimension to a certain visual element, we can configure which dimension of the data (see in <a href=\"#visualMap.dimension\">visualMap.dimension</a>) to be mapped to which visual elements (see in <a href=\"option.html#visualMap.inRange\" target=\"_blank\">visualMap.inRange</a> and <a href=\"option.html#visualMap.outOfRange\" target=\"_blank\">visualMap.outOfRange</a>).</p>\n<p>Example A:</p>\n<pre><code class=\"lang-javascript\">option = {\n    visualMap: [\n        {\n            type: &#39;piecewise&#39;,\n            min: 0,\n            max: 5000,\n            dimension: 3,       // the fourth dimension of series.data, or value[3], is mapped\n            seriesIndex: 4,     // map with the fourth series\n            inRange: {          // visual configuration items in selected range\n                color: [&#39;blue&#39;, &#39;#121122&#39;, &#39;red&#39;], // defines color list of mapping\n                                                   // The largest value will be mapped to &#39;red&#39;,\n                                                   // and others will be interpolated\n                symbolSize: [30, 100]              // the smallest value will be mapped to size of 30,\n                                                   // the largest to 100,\n                                                   // and others will be interpolated\n            },\n            outOfRange: {       // visual configuration items out of selected range\n                symbolSize: [30, 100]\n            }\n        },\n        ...\n    ]\n};\n</code></pre>\n<p>Example B:</p>\n<pre><code class=\"lang-javascript\">option = {\n    visualMap: [\n        {\n            ...,\n            inRange: {          // visual configuration items in selected range\n                colorLightness: [0.2, 1], // map to lightness, which will process lightness based on original color\n                                          // original color may be selected from global color palette,\n                                          // which is not concerned by visualMap component\n                symbolSize: [30, 100]\n            },\n            ...\n        },\n        ...\n    ]\n};\n</code></pre>\n<p>For more information, please refer to <a href=\"option.html#visualMap.inRange\" target=\"_blank\">visualMap.inRange</a> and <a href=\"option.html#visualMap.outOfRange\" target=\"_blank\">visualMap.outOfRange</a>.</p>\n"},"Events and Actions in ECharts":{"type":["*"],"description":"<p>User interactions trigger corresponding events in Apache ECharts<sup>TM</sup>. Developers can listen to these events and handle accordingly through callback functions, e.g., redirecting to an address, popping out a dialog box, or drilling down data and so on.</p>\n<p>Binding events in ECharts 3 is though <a href=\"api.html#EChartsInstance.on\" target=\"_blank\">on</a> method, same as in ECharts 2. But event names are much simpler than it is in 2. Event names in ECharts 3 are the same as DOM event names, in lowercases. Below is an example of binding clicking operation.</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;click&#39;, function (params) {\n    // printing data name in console\n    console.log(params.name);\n});\n</code></pre>\n<p>Event in ECharts can be divided in two kinds. One is mouse event, which is triggered when mouse clicks on certain component, the other is triggered with interaction components, such as triggering <a href=\"api.html#events.legendselectchanged\" target=\"_blank\">&#39;legendselectchanged&#39;</a> event when toggling legend (Notice here, that <code class=\"codespan\">&#39;legendselected&#39;</code> event will not be triggered when toggling legend), triggering <a href=\"api.html#events.legendselectchanged\" target=\"_blank\">&#39;datazoom&#39;</a> event when data zooming in some area.</p>\n<h2 id=\"mouse-events-handling\">Mouse Events Handling</h2>\n<p>ECharts support regular mouse events, which includes <code class=\"codespan\">&#39;click&#39;</code>, <code class=\"codespan\">&#39;dblclick&#39;</code>, <code class=\"codespan\">&#39;mousedown&#39;</code>, <code class=\"codespan\">&#39;mousemove&#39;</code>, <code class=\"codespan\">&#39;mouseup&#39;</code>, <code class=\"codespan\">&#39;mouseover&#39;</code>, <code class=\"codespan\">&#39;mouseout&#39;</code>, <code class=\"codespan\">&#39;globalout&#39;</code>, <code class=\"codespan\">&#39;contextmenu&#39;</code>. Next let&#39;s see an example of opening Baidu search page when clicks a bar chart.</p>\n<pre><code class=\"lang-js\">// initialize ECharts instance based on prepared dom\nvar myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n// data and configuration item of specific chart\nvar option = {\n    xAxis: {\n        data: [&quot;shirt&quot;,&quot;cardign&quot;,&quot;chiffon shirt&quot;,&quot;pants&quot;,&quot;heels&quot;,&quot;socks&quot;]\n    },\n    yAxis: {},\n    series: [{\n        name: &#39;sales&#39;,\n        type: &#39;bar&#39;,\n        data: [5, 20, 36, 10, 10, 20]\n    }]\n};\n// use specified configuration item and data to show chart\nmyChart.setOption(option);\n// handle click event and redirect to corresponding Baidu search page\nmyChart.on(&#39;click&#39;, function (params) {\n    window.open(&#39;https://www.baidu.com/s?wd=&#39; + encodeURIComponent(params.name));\n});\n</code></pre>\n<p>All types of mouse events have a common parameter called <code class=\"codespan\">params</code>, which is an object that contains data information of the clicked chart, whose format is as followed:</p>\n<pre><code class=\"lang-js\">{\n    // component name of clicked component\n    // e.g., &#39;series&#39;, &#39;markLine&#39;, &#39;markPoint&#39;, &#39;timeLine&#39;\n    componentType: string,\n    // series type (useful when componentType is &#39;series&#39;)\n    // e.g., &#39;line&#39;, &#39;bar&#39;, &#39;pie&#39;\n    seriesType: string,\n    // series index in option.series (useful when componentType is &#39;series&#39;)\n    seriesIndex: number,\n    // series name (useful when componentType is &#39;series&#39;)\n    seriesName: string,\n    // data name, or category name\n    name: string,\n    // data index in input data array\n    dataIndex: number,\n    // raw input data item\n    data: Object,\n    // Some series, such as sankey or graph, maintains both nodeData and edgeData,\n    // in which case, dataType is set to be &#39;node&#39; or &#39;edge&#39; to identify.\n    // On the other hand, most other series have only one type of data,\n    // where dataType is not needed.\n    dataType: string,\n    // input data value\n    value: number|Array\n    // color of component (useful when componentType is &#39;series&#39;)\n    color: string\n}\n</code></pre>\n<p>How to know where the mouse clicked:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;click&#39;, function (params) {\n    if (params.componentType === &#39;markPoint&#39;) {\n        // clicked on markPoint\n        if (params.seriesIndex === 5) {\n            // clicked on a markPoint which belongs to a series indexed with 5\n        }\n    }\n    else if (params.componentType === &#39;series&#39;) {\n        if (params.seriesType === &#39;graph&#39;) {\n            if (params.dataType === &#39;edge&#39;) {\n                // clicked on an edge of the graph\n            }\n            else {\n                // clicked on a node of the graph\n            }\n        }\n    }\n});\n</code></pre>\n<p>Use <code class=\"codespan\">query</code> to call handler only on the graphic elements of the specified components:</p>\n<pre><code class=\"lang-js\">chart.on(eventName, query, handler);\n</code></pre>\n<p><code class=\"codespan\">query</code> can be <code class=\"codespan\">string</code> or <code class=\"codespan\">Object</code>.</p>\n<p>If <code class=\"codespan\">string</code>, the formatter can be &#39;mainType&#39; or &#39;mainType.subType&#39;. For example:</p>\n<pre><code class=\"lang-js\">chart.on(&#39;click&#39;, &#39;series&#39;, function () {...});\nchart.on(&#39;click&#39;, &#39;series.line&#39;, function () {...});\nchart.on(&#39;click&#39;, &#39;dataZoom&#39;, function () {...});\nchart.on(&#39;click&#39;, &#39;xAxis.category&#39;, function () {...});\n</code></pre>\n<p>If <code class=\"codespan\">Object</code>, one or more properties below can be included, and any of them is optional.</p>\n<pre><code class=\"lang-js\">{\n    &lt;mainType&gt;Index: number // component index\n    &lt;mainType&gt;Name: string // component name\n    &lt;mainType&gt;Id: string // component id\n    dataIndex: number // data item index\n    name: string // data item name\n    dataType: string // data item type, e.g.,\n                     // &#39;node&#39; and &#39;edge&#39; in graph.\n    element: string // element name in custom series\n}\n</code></pre>\n<p>For example:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: [{\n        name: &#39;uuu&#39;\n        // ...\n    }]\n});\nchart.on(&#39;mouseover&#39;, {seriesName: &#39;uuu&#39;}, function () {\n    // When the graphic elements in the series with name &#39;uuu&#39; mouse overed, this method called.\n});\n</code></pre>\n<p>For example:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: [{\n        // ...\n    }, {\n        // ...\n        data: [\n            {name: &#39;xx&#39;, value: 121},\n            {name: &#39;yy&#39;, value: 33}\n        ]\n    }]\n});\nchart.on(&#39;mouseover&#39;, {seriesIndex: 1, name: &#39;xx&#39;}, function () {\n    // When the graphic elements of the data item with name &#39;xx&#39; in the series with index 1 mouse overed, this method called.\n});\n</code></pre>\n<p>For example:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: [{\n        type: &#39;graph&#39;,\n        nodes: [{name: &#39;a&#39;, value: 10}, {name: &#39;b&#39;, value: 20}],\n        edges: [{source: 0, target: 1}]\n    }]\n});\nchart.on(&#39;click&#39;, {dataType: &#39;node&#39;}, function () {\n    // When the nodes of the graph clicked, this method is called.\n});\nchart.on(&#39;click&#39;, {dataType: &#39;edge&#39;}, function () {\n    // When the edges of the graph clicked, this method is called.\n});\n</code></pre>\n<p>For example:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: {\n        // ...\n        type: &#39;custom&#39;,\n        renderItem: function (params, api) {\n            return {\n                type: &#39;group&#39;,\n                children: [{\n                    type: &#39;circle&#39;,\n                    name: &#39;my_el&#39;,\n                    // ...\n                }, {\n                    // ...\n                }]\n            }\n        },\n        data: [[12, 33]]\n    }\n})\nchart.on(&#39;click&#39;, {element: &#39;my_el&#39;}, function () {\n    // When the element with name &#39;my_el&#39; clicked, this method called.\n});\n</code></pre>\n<p>You may update chart or show customized layer with information got from your own data warehouse, indexed from data name or series name of an object received from a callback function. Sample code is shown as followed:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;click&#39;, function (parmas) {\n    $.get(&#39;detail?q=&#39; + params.name, function (detail) {\n        myChart.setOption({\n            series: [{\n                name: &#39;pie&#39;,\n                // present data distribution  of a single bar through pie chart\n                data: [detail.data]\n            }]\n        });\n    });\n});\n</code></pre>\n<h2 id=\"interaction-events-with-components\">Interaction Events with Components</h2>\n<p>Basically all component interactions in ECharts trigger corresponding events. Frequently used events and corresponding parameters are listed in <a href=\"api.html#events\" target=\"_blank\">events</a>.</p>\n<p>Below is example that listens to a legend toggling:</p>\n<pre><code class=\"lang-js\">// legend toggling triggers legendselectchanged event only\nmyChart.on(&#39;legendselectchanged&#39;, function (params) {\n    // obtain selecting status of clicked legend\n    var isSelected = params.selected[params.name];\n    // print in console\n    console.log((isSelected ? &#39;select&#39; : &#39;unselect&#39;) + &#39;legend&#39; + params.name);\n    // print all legend status\n    console.log(params.selected);\n});\n</code></pre>\n<h2 id=\"triggering-component-actions-through-code-in-echarts\">Triggering Component Actions through Code in ECharts</h2>\n<p>Actions like <code class=\"codespan\">&#39;legendselectchanged&#39;</code> mentioned above will be triggered by component interaction. Besides that, sometimes we need to trigger certain actions in our program, such as showing tooltip, or selecting legend.</p>\n<p>ECharts 2.x triggers actions through <code class=\"codespan\">myChart.component.tooltip.showTip</code>, whose entrance is deep and involves organization of inner components. On the other hand, ECharts 3 triggers actions through <code class=\"codespan\">myChart.dispatchAction({ type: &#39;&#39; })</code>, which manages all actions in a uniformed way, and may record user&#39;s event path when need.</p>\n<p>Frequently used actions and the parameters are listed in <a href=\"api.html#action\" target=\"_blank\">action</a>.</p>\n<p>Below displays how to highlight each sector of pie chart in turn through <code class=\"codespan\">dispatchAction</code>.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/pie-highlight&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n\n<h2 id=\"listen-to-events-from-the-blank\">Listen to events from the blank</h2>\n<p>Sometimes developers need to listen to the events that are triggered from the blank of the canvas. For example, need to reset the chart when users click on the blank.</p>\n<p>Before we talk about this feature, we need to clarify two kinds of events: <code class=\"codespan\">zrender events</code> and <code class=\"codespan\">echarts events</code>.</p>\n<pre><code class=\"lang-js\">myChart.getZr().on(&#39;click&#39;, function (event) {\n    // This listener is listening to a `zrender event`.\n});\nmyChart.on(&#39;click&#39;, function (event) {\n    // This listener is listening to a `echarts event`.\n});\n</code></pre>\n<p><code class=\"codespan\">zrender events</code> are different from <code class=\"codespan\">echarts events</code>. The former one are triggered when mouse/pointer is at everywhere, while the latter one can only be triggered when mouse/pointer is at the graphic elements. In fact, <code class=\"codespan\">echarts events</code> are implemented based on <code class=\"codespan\">zrender events</code>, that is, when a <code class=\"codespan\">zrender events</code> is triggered at a graphic element, <code class=\"codespan\">echarts</code> will trigger a <code class=\"codespan\">echarts event</code>.</p>\n<p>Having <code class=\"codespan\">zrender events</code>, we can implement &quot;listen to events from the blank&quot; as follows:</p>\n<pre><code class=\"lang-js\">myChart.getZr().on(&#39;click&#39;, function (event) {\n    // No &quot;target&quot; means that mouse/pointer is not on\n    // any of the graphic elements, which is &quot;blank&quot;.\n    if (!event.target) {\n        // Click on blank. Do something.\n    }\n});\n</code></pre>\n"},"Bar Race":{"type":["*"],"description":"<p>Bar race is a chart that shows changes in the ranking of data over time and it is supported by default sinde ECharts 5.</p>\n<blockquote>\n<p>Bar race charts usually use horizontal bars. If you want to use vertical bars, just take the X axis and Y axis in this tutorial to the opposite.</p>\n</blockquote>\n<ol>\n<li>Set <code class=\"codespan\">yAxis.realtimeSort</code> to be <code class=\"codespan\">true</code> to enable bar race</li>\n<li>Set <code class=\"codespan\">yAxis.inverse</code> to be <code class=\"codespan\">true</code> to display longer bars at top</li>\n<li><code class=\"codespan\">yAxis.animationDuration</code> is suggested to be set to be <code class=\"codespan\">300</code> for bar reordering animation for the first time</li>\n<li><code class=\"codespan\">yAxis.animationDurationUpdate</code> is suggested to be set to be <code class=\"codespan\">300</code> for bar reordering animation for later times</li>\n<li>Set <code class=\"codespan\">yAxis.max</code> to be <em>n - 1</em> where <em>n</em> is the number of bars to be displayed; otherwise, all bars are displayed</li>\n<li><code class=\"codespan\">xAxis.max</code> is suggested to be set to be <code class=\"codespan\">&#39;dataMax&#39;</code> so that the maximum of data is used as X maximum.</li>\n<li>If realtime label changing is required, set <code class=\"codespan\">series.label.valueAnimation</code> to be <code class=\"codespan\">true</code></li>\n<li>Set <code class=\"codespan\">animationDuration</code> to be <code class=\"codespan\">0</code> so that the first animation doesn&#39;t start from 0; if you wish otherwise, set it to be the same value as <code class=\"codespan\">animationDurationUpdate</code></li>\n<li><code class=\"codespan\">animationDurationUpdate</code> is suggested to be set to be <code class=\"codespan\">3000</code> for animation update duration, which should be the same as the frequency of calling <code class=\"codespan\">setOption</code></li>\n<li>Call <code class=\"codespan\">setOption</code> to update data to be of next time with <code class=\"codespan\">setInterval</code> at the frequency of <code class=\"codespan\">animationDurationUpdate</code></li>\n</ol>\n<p>A full example is:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=bar-race&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n<p>As you see, there are many options to be set to enable bar race effect. We are going to provide a tool that doesn&#39;t require any coding to help you make bar race charts more easily.</p>\n"},"An Example: Implement Dragging":{"type":["*"],"description":"<p>This is a tiny example, introducing how to implement dragging of graphic elements in Apache ECharts<sup>TM</sup>. From this example, we will see how to make an application with rich intractivity based on echarts API.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=line-draggable&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n<p>This example mainly implements that dragging points of a curve and by which the curve is modified. Although it is simple example, but we can do more based on that, like edit charts viually. So let&#39;s get started from this simple example.</p>\n<h2 id=\"-part-1-implement-basic-dragging\">[ Part 1 ] Implement basic dragging</h2>\n<p>First of all, we create a basic <a href=\"option.html#series-line\" target=\"_blank\">line chart (line series)</a>:</p>\n<pre><code class=\"lang-js\">var symbolSize = 20;\nvar data = [[15, 0], [-50, 10], [-56.5, 20], [-46.5, 30], [-22.1, 40]];\n\nmyChart.setOption({\n    xAxis: {\n        min: -100,\n        max: 80,\n        type: &#39;value&#39;,\n        axisLine: {onZero: false}\n    },\n    yAxis: {\n        min: -30,\n        max: 60,\n        type: &#39;value&#39;,\n        axisLine: {onZero: false}\n    },\n    series: [\n        {\n            id: &#39;a&#39;,\n            type: &#39;line&#39;,\n            smooth: true,\n            // Set a big symbolSize for dragging convenience.\n            symbolSize: symbolSize,\n            data: data\n        }\n    ]\n});\n</code></pre>\n<p>Since the symbols in line is not draggable, we make them draggable by using <a href=\"option.html#graphic\" target=\"_blank\">graphic component</a> to add draggable circular elements to symbols respectively.</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    // Declare a graphic component, which contains some graphic elements\n    // with the type of &#39;circle&#39;.\n    // Here we have used the method `echarts.util.map`, which has the same\n    // behavior as Array.prototype.map, and is compatible with ES5-.\n    graphic: echarts.util.map(data, function (dataItem, dataIndex) {\n        return {\n            // &#39;circle&#39; means this graphic element is a shape of circle.\n            type: &#39;circle&#39;,\n\n            shape: {\n                // The radius of the circle.\n                r: symbolSize / 2\n            },\n            // Transform is used to located the circle. position:\n            // [x, y] means translate the circle to the position [x, y].\n            // The API `convertToPixel` is used to get the position of\n            // the circle, which will introduced later.\n            position: myChart.convertToPixel(&#39;grid&#39;, dataItem),\n\n            // Make the circle invisible (but mouse event works as normal).\n            invisible: true,\n            // Make the circle draggable.\n            draggable: true,\n            // Give a big z value, which makes the circle cover the symbol\n            // in line series.\n            z: 100,\n            // This is the event handler of dragging, which will be triggered\n            // repeatly while dragging. See more details below.\n            // A util method `echarts.util.curry` is used here to generate a\n            // new function the same as `onPointDragging`, except that the\n            // first parameter is fixed to be the `dataIndex` here.\n            ondrag: echarts.util.curry(onPointDragging, dataIndex)\n        };\n    })\n});\n</code></pre>\n<p>In the code above, API <a href=\"api.html#echartsInstance.convertToPixel\" target=\"_blank\">convertToPixel</a> is used to convert data to its &quot;pixel coodinate&quot;, based on which each graphic elements can be rendered on canvas. The term &quot;pixel coodinate&quot; means the coordinate is in canvas pixel, whose origin is the top-left of the canvas. In the sentence <code class=\"codespan\">myChart.convertToPixel(&#39;grid&#39;, dataItem)</code>, the first parameter <code class=\"codespan\">&#39;grid&#39;</code> indicates that <code class=\"codespan\">dataItem</code> should be converted in the first <a href=\"option.html#grid\" target=\"_blank\">grid component (cartesian)</a>.</p>\n<p><strong>Notice:</strong> <code class=\"codespan\">convertToPixel</code> should not be called before the first time that <code class=\"codespan\">setOption</code> called. Namely, it can only be used after coordinate systems (grid/polar/...) initialized.</p>\n<p>Now points have been made draggable. Then we will bind event listeners on dragging to those points.</p>\n<pre><code class=\"lang-js\">// This function will be called repeatly while dragging.\n// The mission of this function is to update `series.data` based on\n// the new points updated by dragging, and to re-render the line\n// series based on the new data, by which the graphic elements of the\n// line series can be synchronized with dragging.\nfunction onPointDragging(dataIndex) {\n    // Here the `data` is declared in the code block in the beginning\n    // of this article. The `this` refers to the dragged circle.\n    // `this.position` is the current position of the circle.\n    data[dataIndex] = myChart.convertFromPixel(&#39;grid&#39;, this.position);\n    // Re-render the chart based on the updated `data`.\n    myChart.setOption({\n        series: [{\n            id: &#39;a&#39;,\n            data: data\n        }]\n    });\n}\n</code></pre>\n<p>In the code above, API <a href=\"api.html#echartsInstance.convertFromPixel\" target=\"_blank\">convertFromPixel</a> is used, which is the reversed process of <a href=\"api.html#echartsInstance.convertToPixel\" target=\"_blank\">convertToPixel</a>. <code class=\"codespan\">myChart.convertFromPixel(&#39;grid&#39;, this.position)</code> converts a pixel coordinate to data item in <a href=\"option.html#grid\" target=\"_blank\">grid (cartesian)</a>.</p>\n<p>Finally, add those code to make graphic elements responsive to change of canvas size.</p>\n<pre><code class=\"lang-js\">window.addEventListener(&#39;resize&#39;, function () {\n    // Re-calculate the position of each circle and update chart using `setOption`.\n    myChart.setOption({\n        graphic: echarts.util.map(data, function (item, dataIndex) {\n            return {\n                position: myChart.convertToPixel(&#39;grid&#39;, item)\n            };\n        })\n    });\n});\n\n</code></pre>\n<h2 id=\"-part-2-add-tooltip-component\">[ Part 2 ] Add tooltip component</h2>\n<p>Now basic functionality have been implemented by parte 1. If we need the data can be displayed realtime when dragging, we can use <a href=\"option.html#tooltip\" target=\"_blank\">tooltip component</a> to do that. Nevertheless, tooltip component has its default &quot;show/hide rule&quot;, which is not applicable in this case. So we need to customize the &quot;show/hide rule&quot; for our case.</p>\n<p>Add these snippets to the code block above:</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    ...,\n    tooltip: {\n        // Means disable default &quot;show/hide rule&quot;.\n        triggerOn: &#39;none&#39;,\n        formatter: function (params) {\n            return &#39;X: &#39; + params.data[0].toFixed(2) + &#39;&lt;br&gt;Y: &#39; + params.data[1].toFixed(2);\n        }\n    }\n});\n</code></pre>\n<pre><code class=\"lang-js\">myChart.setOption({\n    graphic: echarts.util.map(data, function (item, dataIndex) {\n        return {\n            type: &#39;circle&#39;,\n            ...,\n            // Customize &quot;show/hide rule&quot;, show when mouse over, hide when mouse out.\n            onmousemove: echarts.util.curry(showTooltip, dataIndex),\n            onmouseout: echarts.util.curry(hideTooltip, dataIndex),\n        };\n    })\n});\n\nfunction showTooltip(dataIndex) {\n    myChart.dispatchAction({\n        type: &#39;showTip&#39;,\n        seriesIndex: 0,\n        dataIndex: dataIndex\n    });\n}\n\nfunction hideTooltip(dataIndex) {\n    myChart.dispatchAction({\n        type: &#39;hideTip&#39;\n    });\n}\n</code></pre>\n<p>The API <a href=\"api.html#echartsInstance.dispatchAction\" target=\"_blank\">dispatchAction</a> is used to show/hide tooltip content, where actions <a href=\"api.html#action.tooltip.showTip\" target=\"_blank\">showTip</a> and <a href=\"api.html#action.tooltip.hideTip\" target=\"_blank\">hideTip</a> is dispatched.</p>\n<h2 id=\"-part-3-full-code\">[ Part 3 ] Full code</h2>\n<p>Full code is shown as follow:</p>\n<pre><code>&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;script src=&quot;dist/echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;/head&gt;\n&lt;body&gt;\n    &lt;div id=&quot;main&quot; style=&quot;width: 600px;height:400px;&quot;&gt;&lt;/div&gt;\n    &lt;script type=&quot;text/javascript&quot;&gt;\n\n    var symbolSize = 20;\n    var data = [[15, 0], [-50, 10], [-56.5, 20], [-46.5, 30], [-22.1, 40]];\n\n    var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n    myChart.setOption({\n        tooltip: {\n            triggerOn: &#39;none&#39;,\n            formatter: function (params) {\n                return &#39;X: &#39; + params.data[0].toFixed(2) + &#39;&lt;br&gt;Y: &#39; + params.data[1].toFixed(2);\n            }\n        },\n        xAxis: {\n            min: -100,\n            max: 80,\n            type: &#39;value&#39;,\n            axisLine: {onZero: false}\n        },\n        yAxis: {\n            min: -30,\n            max: 60,\n            type: &#39;value&#39;,\n            axisLine: {onZero: false}\n        },\n        series: [\n            {\n                id: &#39;a&#39;,\n                type: &#39;line&#39;,\n                smooth: true,\n                symbolSize: symbolSize,\n                data: data\n            }\n        ],\n    });\n\n    myChart.setOption({\n        graphic: echarts.util.map(data, function (item, dataIndex) {\n            return {\n                type: &#39;circle&#39;,\n                position: myChart.convertToPixel(&#39;grid&#39;, item),\n                shape: {\n                    r: symbolSize / 2\n                },\n                invisible: true,\n                draggable: true,\n                ondrag: echarts.util.curry(onPointDragging, dataIndex),\n                onmousemove: echarts.util.curry(showTooltip, dataIndex),\n                onmouseout: echarts.util.curry(hideTooltip, dataIndex),\n                z: 100\n            };\n        })\n    });\n\n    window.addEventListener(&#39;resize&#39;, function () {\n        myChart.setOption({\n            graphic: echarts.util.map(data, function (item, dataIndex) {\n                return {\n                    position: myChart.convertToPixel(&#39;grid&#39;, item)\n                };\n            })\n        });\n    });\n\n    function showTooltip(dataIndex) {\n        myChart.dispatchAction({\n            type: &#39;showTip&#39;,\n            seriesIndex: 0,\n            dataIndex: dataIndex\n        });\n    }\n\n    function hideTooltip(dataIndex) {\n        myChart.dispatchAction({\n            type: &#39;hideTip&#39;\n        });\n    }\n\n    function onPointDragging(dataIndex, dx, dy) {\n        data[dataIndex] = myChart.convertFromPixel(&#39;grid&#39;, this.position);\n        myChart.setOption({\n            series: [{\n                id: &#39;a&#39;,\n                data: data\n            }]\n        });\n    }\n\n&lt;/script&gt;\n&lt;/body&gt;\n&lt;/html&gt;\n</code></pre><p><br></p>\n<p>With knowledge introduced above, more feature can be implemented. For example, <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom component</a> can be added to cooperate with the cartesian, or we can make a plotting board on coordinate systems. Use your imagination ~</p>\n"},"Custom Series":{"type":["*"],"description":"<p><a href=\"option.html#series-custom\" target=\"_blank\">custom series</a> is a type of series, which enable develpers to customize graphic elements rendering and generate new types of chart.</p>\n<p>Why does Apache ECharts<sup>TM</sup> supports <code class=\"codespan\">custom series</code>?</p>\n<p>There are endless chart types in the world of data visualization, which are not enumerable. Thus only most common used chart types are built-in supported in echarts. For other chart types, it is necessary to provide an approach to make new types of chart for developers. This approach should be as simple as possible, which had better not to bothered developers with some details of implementation, such as creating and deleting graphic elements, transition animation, tooltip supporting, working with <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a> or <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a>. Having considered the factors above, a solution <a href=\"option.html#series-custom\" target=\"_blank\">custom series</a> is published.</p>\n<p><strong>For example, a &quot;x-range&quot; chart is made by custom sereis:</strong></p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=custom-profile&reset=1&edit=1\" width=\"800\" height=\"500\" ></iframe>\n\n\n<p><strong><a href=\"https://echarts.apache.org/examples/en/index.html#chart-type-custom\" target=\"_blank\">More samples of custom series</a></strong></p>\n<p>Let&#39;s begin the tutorial.</p>\n<h2 id=\"-i-the-method-renderitem\">(I) The method <code class=\"codespan\">renderItem</code></h2>\n<p>The snippet of graphic elements rendering should be written in <code class=\"codespan\">renderItem</code> method my developers. For example:</p>\n<pre><code class=\"lang-js\">var option = {\n    ...,\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function (params, api) {\n            // ...\n        },\n        data: data\n    }]\n}\n</code></pre>\n<p>In the rendering phase of echarts workflow, <a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> is called respectively for each <code class=\"codespan\">dataItem</code> in <a href=\"option.html#series-custom.data\" target=\"_blank\">series.data</a>. <code class=\"codespan\">renderItem</code> is responsible for build a group of definitions of graphic elements, including graphic type, size, location, style, etc. echarts will then build graphic elements according to those definitions. For example:</p>\n<pre><code class=\"lang-js\">var option = {\n    ...,\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function (params, api) {\n            // This method will be called for each dataItem repectively.\n            // Notice: it does not ensure that called according to the order\n            // of `dataItem`.\n\n            // Some processes, such as coordinate conversion.\n            // `api.value(0)` is used to retrieve the value on the first\n            // dimension in the current `dataItem`.\n            var categoryIndex = api.value(0);\n            // `api.coord(...)` is used to convert data values to pixel values,\n            // will are necessary for graphic elements rendering.\n            var startPoint = api.coord([api.value(1), categoryIndex]);\n            var endPoint = api.coord([api.value(2), categoryIndex]);\n            // `api.size(...)` is used to calculate the pixel size corresponding to\n            // the a value range that the length is 1 on Y axis.\n            var height = api.size([0, 1])[1] * 0.6;\n\n            // The property `shape` incicates the location and size of thsi\n            // element.\n            // `echarts.graphic.clipRectByRect` is used for clipping the\n            // rectangular when it overflow the bounding box of the current\n            // coordinate system (cartesian).\n            // If the rect is totally clipped, returns undefined.\n            var rectShape = echarts.graphic.clipRectByRect({\n                // position and location of the rectangular.\n                x: startPoint[0],\n                y: startPoint[1] - height / 2,\n                width: endPoint[0] - startPoint[0],\n                height: height\n            }, {\n                // Bounding box of the current cooridinate system (cartesian).\n                x: params.coordSys.x,\n                y: params.coordSys.y,\n                width: params.coordSys.width,\n                height: params.coordSys.height\n            })\n\n            // Returns definitions for the current `dataItem`.\n            return rectShape &amp;&amp; {\n                // &#39;rect&#39; indicates that the graphic element is rectangular.\n                // Can also be &#39;circle&#39;, &#39;sector&#39;, &#39;polygon&#39;, ...\n                type: &#39;rect&#39;,\n                shape: rectShape,\n                // `api.style(...)` is used to obtain style settings, which\n                // includes itemStyle settings in optino and the result of\n                // visual mapping.\n                style: api.style()\n            };\n        },\n        data: [\n            [12, 44, 55, 60], // The first dataItem.\n            [53, 31, 21, 56], // The second dataItem.\n            [71, 33, 10, 20], // The third dataItem.\n            ...\n        ]\n    }]\n}\n</code></pre>\n<p><a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> provides two parameters:</p>\n<ul>\n<li><a href=\"option.html#series-custom.renderItem.arguments.params\" target=\"_blank\">params</a>:provides info about the current series (such as <code class=\"codespan\">seriesIndex</code>、<code class=\"codespan\">dataIndex</code>, etc.) and data (such as <code class=\"codespan\">dataIndex</code>, <code class=\"codespan\">dataIndexInside</code>, etc.) and coordinate system (such as location and size of bounding box of the current coordinate system)</li>\n<li><a href=\"option.html#series-custom.renderItem.arguments.api\" target=\"_blank\">api</a> provides some methods to developers (such as <code class=\"codespan\">api.value()</code>, <code class=\"codespan\">api.coord()</code>).</li>\n</ul>\n<p><a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> method should return definitions of graphic elements for the current <code class=\"codespan\">dataItem</code>. See <a href=\"option.html#series-custom.renderItem.return\" target=\"_blank\">renderItem.return</a>.</p>\n<p>Generally, the main process of <a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> is that retrieve value from data and convert them to graphic elements on the current coordinate system. Two methods in <a href=\"option.html#series-custom.renderItem.arguments.api\" target=\"_blank\">renderItem.arguments.api</a> are always used in this procedure:</p>\n<ul>\n<li><a href=\"option.html#series-custom.renderItem.arguments.api.value\" target=\"_blank\">api.value(...)</a> is used to retrieve value from data. For example, <code class=\"codespan\">api.value(0)</code> retrieve the value of the first dimension in the current data item.</li>\n<li><a href=\"option.html#series-custom.renderItem.arguments.api.coord\" target=\"_blank\">api.coord(...)</a> is used to convert data to coordinate. For example, <code class=\"codespan\">var point = api.coord([api.value(0), api.value(1)])</code> converet the data to the point on the current coordinate system.</li>\n</ul>\n<p>Sometimes <a href=\"option.html#series-custom.renderItem.arguments.api.size\" target=\"_blank\">api.size(...)</a> method is needed, which calculates the size on the coordinate system by a given data range.</p>\n<p>Moreover, <a href=\"option.html#series-custom.renderItem.arguments.api.style\" target=\"_blank\">api.style(...)</a> method can be used to set style. It provides not only the style settings specified in <a href=\"option.html#series-custom.itemStyle\" target=\"_blank\">series.itemStyle</a>, but also the result of visual mapping. This method can also be called like <code class=\"codespan\">api.style({fill: &#39;green&#39;, stroke: &#39;yellow&#39;})</code> to override those style settings.</p>\n<p>Having <code class=\"codespan\">renderItem</code> provided, 90% of the work of creating custom series has been accomplished. The rest of this work is to refine and polish them.</p>\n<h2 id=\"-ii-make-the-extent-of-axes-fit-the-data\">(II) Make the extent of axes fit the data</h2>\n<p>There is axes in some coordinate systems, such as <a href=\"option.html#grid\" target=\"_blank\">cartesian2d (grid)</a>and <a href=\"option.html#polar\" target=\"_blank\">polar</a>. The extent of an axis should fit the data automatically, otherwise the graphic elements would be overflow the bounding box of the coordinate system. So, for example, in <a href=\"option.html#grid\" target=\"_blank\">cartesian2d (grid)</a>, developers should specify that which dimensions correspond to <code class=\"codespan\">x</code> axis and which to <code class=\"codespan\">y</code> axis use the property <a href=\"option.html#series-custom.encode\" target=\"_blank\">encode</a>:</p>\n<pre><code class=\"lang-js\">option = {\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            ...\n        },\n        encode: {\n            // `dim1` and `dim2` correspond to `x` axis.\n            x: [1, 2],\n            // `dim0` corresponds to `y` axis.\n            y: 0\n        },\n        data: [\n            // dim0  dim1  dim2  dim3\n            [   12,   44,   55,   60   ], // The first dataItem.\n            [   53,   31,   21,   56   ], // The second dataItem.\n            [   71,   33,   10,   20   ], // The third dataItem.\n            ...\n        ]\n    }]\n};\n</code></pre>\n<h2 id=\"-iii-set-tooltip-content\">(III) Set tooltip content</h2>\n<p>Of course <a href=\"option.html#tooltip.formatter\" target=\"_blank\">tooltip.formatter</a> can be used to define the content in tooltip. But it is easier to do that by setting <a href=\"option.html#series-custom.encode\" target=\"_blank\">encode</a> and <a href=\"option.html#series-custom.dimensions\" target=\"_blank\">dimensions</a>:</p>\n<pre><code class=\"lang-js\">option = {\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            ...\n        },\n        encode: {\n            x: [1, 2],\n            y: 0,\n            // `dim2` and `dim3` will displayed in tooltip.\n            tooltip: [2, 3]\n        },\n        // `dim2` is named as &quot;Age&quot; and `dim3` is named as &quot;Satisfaction&quot;.\n        dimensions: [null, null, &#39;Age&#39;, &#39;Satisfaction&#39;],\n        data: [\n            // dim0  dim1  dim2  dim3\n            [   12,   44,   55,   60   ],\n            [   53,   31,   21,   56   ],\n            [   71,   33,   10,   20   ],\n            ...\n        ]\n    }]\n};\n</code></pre>\n<p><br>\n<br>\n<br></p>\n<hr>\n<p>Several other issues about <code class=\"codespan\">custom series</code> are introduced below.</p>\n<h2 id=\"-iv-shape-clipping-when-overflow-the-coordinates-area\">(IV) Shape clipping when overflow the coordinates area</h2>\n<p>When use <code class=\"codespan\">custom series</code> with <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a>, <a href=\"option.html#dataZoom.filterMode\" target=\"_blank\">dataZoom.filterMode</a> usually be set as <code class=\"codespan\">&#39;weakFilter&#39;</code>, which prevent <code class=\"codespan\">dataItem</code> from being filtered when only part of its dimensions are out of the current data window. For example:</p>\n<pre><code class=\"lang-js\">option = {\n    dataZoom: {\n        xAxisIndex: 0,\n        filterMode: &#39;weakFilter&#39;\n    },\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            ...\n        },\n        encode: {\n            x: [1, 2],\n            y: 0\n        },\n        data: [\n            // dim0  dim1  dim2  dim3\n            [   12,   44,   55,   60   ], // The first dataItem.\n            [   53,   31,   21,   56   ], // The second dataItem.\n            [   71,   33,   10,   20   ], // The third dataItem.\n            ...\n        ]\n    }]\n};\n</code></pre>\n<p>In the example above, <code class=\"codespan\">dim</code> and <code class=\"codespan\">dim2</code> corresponds to <code class=\"codespan\">x</code> axis, and the <code class=\"codespan\">dataZoom</code> component constrols the data window of <code class=\"codespan\">x</code> axis. If part of a <code class=\"codespan\">dataItem</code> is overflow the extent of <code class=\"codespan\">x</code> axis (the value on <code class=\"codespan\">dim1</code> is overflow and the value on <code class=\"codespan\">dim2</code> is not) while zooming, the <code class=\"codespan\">dataItem</code> will not be filtered if <code class=\"codespan\">dataZoom.filterMode = &#39;weakFilter&#39;</code> set. Thus the <code class=\"codespan\">dataItem</code> can be still rendered (usually be partially rendered by using <code class=\"codespan\">echarts.graphic.clipRectByRect</code> to clip the exceeding part).\nSee the example mentioned above <a href=\"https://echarts.apache.org/examples/en/editor.html?c=custom-profile\" target=\"_blank\">Profile</a>.</p>\n<h2 id=\"-v-about-dataindex\">(V) About dataIndex</h2>\n<p>Developers had better notice that in <a href=\"option.html#series-custom.renderItem.arguments.params\" target=\"_blank\">renderItem.arguments.params</a> <code class=\"codespan\">dataIndexInside</code> and <code class=\"codespan\">dataIndex</code> is different:</p>\n<ul>\n<li><code class=\"codespan\">dataIndex</code> is the index of a <code class=\"codespan\">dataItem</code> in the original data.</li>\n<li><code class=\"codespan\">dataIndexInside</code> is the index of a <code class=\"codespan\">dataItem</code> in the current data window (see <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a>.</li>\n</ul>\n<p><a href=\"option.html#series-custom.renderItem.arguments.api\" target=\"_blank\">renderItem.arguments.api</a> uses <code class=\"codespan\">dataIndexInside</code> as the input parameter but not <code class=\"codespan\">dataIndex</code>, because conversion from <code class=\"codespan\">dataIndex</code> to <code class=\"codespan\">dataIndexInside</code> is time-consuming.</p>\n<h2 id=\"-vi-event-listener\">(VI) Event listener</h2>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: {\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            // ...\n            return {\n                type: &#39;group&#39;,\n                children: [{\n                    type: &#39;circle&#39;\n                    // ...\n                }, {\n                    type: &#39;circle&#39;,\n                    name: &#39;aaa&#39;,\n                    // User specified info, available\n                    // in event handler.\n                    info: 12345,\n                    // ...\n                }]\n            };\n        }\n    }\n});\nchart.on(&#39;click&#39;, {element: &#39;aaa&#39;}, function (params) {\n    // When the element with name &#39;aaa&#39; clicked,\n    // this method called.\n    console.log(params.info);\n});\n</code></pre>\n<h2 id=\"-vii-custom-vector-shapes\">(VII) Custom vector shapes</h2>\n<p><a href=\"http://www.w3.org/TR/SVG/paths.html#PathData\" target=\"_blank\">SVG PathData</a> is supported, which enables to use shapes that are created in vector tool. See <a href=\"option.html#series-custom.renderItem.return_path\" target=\"_blank\">path</a>, and examples: <a href=\"https://echarts.apache.org/examples/en/editor.html?c=custom-calendar-icon\" target=\"_blank\">icons</a>, <a href=\"https://echarts.apache.org/examples/en/editor.html?c=custom-gantt-flight\" target=\"_blank\">shapes</a>.</p>\n<p><br></p>\n<p><strong><a href=\"https://echarts.apache.org/examples/en/index.html#chart-type-custom\" target=\"_blank\">More examples about custom series</a></strong></p>\n"},"Rich Text":{"type":["*"],"description":"<p>Rich text can be used in Apache ECharts<sup>TM</sup> labels of series, axis or other components. For example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=pie-rich-text&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=treemap-obama&edit=1&reset=1\" width=\"800\" height=\"550\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=bar-rich-text&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n<p><br></p>\n<p>More examples:\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=map-labels&amp;edit=1&amp;reset=1\" target=\"_blank\">Map Labels</a>,\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=pie-nest&amp;edit=1&amp;reset=1\" target=\"_blank\">Pie Labels</a>,\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=gauge-car&amp;edit=1&amp;reset=1\" target=\"_blank\">Gauge</a>.</p>\n<p><br></p>\n<p>Before v3.7, the style options was only able to applied to the whole label text block, and only color and font can be configured, which restricted the expressability of text descriptions.</p>\n<p>Since v3.7, rich text has been supported:</p>\n<ul>\n<li>Box styles (background, border, shadow, etc.), rotation, position of a text block can be specified.</li>\n<li>Styles (color, font, width/height, background, shadow, etc.) and alignment can be customzied on fragments of text.</li>\n<li>Image can be used in text as icon or background.</li>\n<li>Combine these configurations, some special effects can be made, such as simple table, horizontal rule (hr).</li>\n</ul>\n<p>At the beginning, the meanings of two terms that will be used below should be clarified:</p>\n<ul>\n<li>Text Block: The whole block of label text.</li>\n<li>Text fragment: Some piece of text in a text block.</li>\n</ul>\n<p>For example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/text-block-fragment&edit=1&reset=1\" width=\"340\" height=\"240\" ></iframe>\n\n\n\n<h2 id=\"options-about-text\">Options about Text</h2>\n<p>echarts provides plenty of text options, including:</p>\n<ul>\n<li>Basic font style: <code class=\"codespan\">fontStyle</code>, <code class=\"codespan\">fontWeight</code>, <code class=\"codespan\">fontSize</code>, <code class=\"codespan\">fontFamily</code>.</li>\n<li>Fill of text: <code class=\"codespan\">color</code>.</li>\n<li>Stroke of text: <code class=\"codespan\">textBorderColor</code>, <code class=\"codespan\">textBorderWidth</code>.</li>\n<li>Shadow of text: <code class=\"codespan\">textShadowColor</code>, <code class=\"codespan\">textShadowBlur</code>, <code class=\"codespan\">textShadowOffsetX</code>, <code class=\"codespan\">textShadowOffsetY</code>.</li>\n<li>Box size of text block or text fragment: <code class=\"codespan\">lineHeight</code>, <code class=\"codespan\">width</code>, <code class=\"codespan\">height</code>, <code class=\"codespan\">padding</code>.</li>\n<li>Alignment of text block or text fragment: <code class=\"codespan\">align</code>, <code class=\"codespan\">verticalAlign</code>.</li>\n<li>Border, background (color or image) of text block or text fragment: <code class=\"codespan\">backgroundColor</code>, <code class=\"codespan\">borderColor</code>, <code class=\"codespan\">borderWidth</code>, <code class=\"codespan\">borderRadius</code>.</li>\n<li>Shadow of text block or text fragment: <code class=\"codespan\">shadowColor</code>, <code class=\"codespan\">shadowBlur</code>, <code class=\"codespan\">shadowOffsetX</code>, <code class=\"codespan\">shadowOffsetY</code>.</li>\n<li>Position and rotation of text block: <code class=\"codespan\">position</code>, <code class=\"codespan\">distance</code>, <code class=\"codespan\">rotate</code>.</li>\n</ul>\n<p>User can defined styles for text fragment in <code class=\"codespan\">rich</code> property. For example, <a href=\"option.html#series-bar.label.rich\" target=\"_blank\">series-bar.label.rich</a></p>\n<p>For example:</p>\n<pre><code class=\"lang-js\">label: {\n    // Styles defined in &#39;rich&#39; can be applied to some fragments\n    // of text by adding some markers to those fragment, like\n    // `{styleName|text content text content}`.\n    // `&#39;\\n&#39;` is the newline character.\n    formatter: [\n        &#39;{a|Style &quot;a&quot; is applied to this fragment}&#39;\n        &#39;{b|Style &quot;b&quot; is applied to this fragment}This fragment use default style{x|use style &quot;x&quot;}&#39;\n    ].join(&#39;\\n&#39;),\n\n    // Styles for the whole text block are defined here:\n    color: &#39;#333&#39;,\n    fontSize: 5,\n    fontFamily: &#39;Arial&#39;,\n    borderWidth: 3,\n    backgroundColor: &#39;#984455&#39;,\n    padding: [3, 10, 10, 5],\n    lineHeight: 20,\n\n    // Styles for text fragments are defined here:\n    rich: {\n        a: {\n            color: &#39;red&#39;,\n            lineHeight: 10\n        },\n        b: {\n            backgroundColor: {\n                image: &#39;xxx/xxx.jpg&#39;\n            },\n            height: 40\n        },\n        x: {\n            fontSize: 18,\n            fontFamily: &#39;Microsoft YaHei&#39;,\n            borderColor: &#39;#449933&#39;,\n            borderRadius: 4\n        },\n        ...\n    }\n}\n</code></pre>\n<blockquote>\n<p>Notice: <code class=\"codespan\">width</code> 和 <code class=\"codespan\">height</code> only work when <code class=\"codespan\">rich</code> specified.</p>\n</blockquote>\n<h2 id=\"basic-styles-of-text-text-block-and-text-fragment\">Basic Styles of Text, Text Block and Text Fragment</h2>\n<p>Basic font style can be set to text: <code class=\"codespan\">fontStyle</code>, <code class=\"codespan\">fontWeight</code>, <code class=\"codespan\">fontSize</code>, <code class=\"codespan\">fontFamily</code>.</p>\n<p>Fill color and stroke color can be set to text: <code class=\"codespan\">color</code>, <code class=\"codespan\">textBorderColor</code>, <code class=\"codespan\">textBorderWidth</code>.</p>\n<p>Border style and background style can be set to text block: <code class=\"codespan\">borderColor</code>, <code class=\"codespan\">borderWidth</code>, <code class=\"codespan\">backgroundColor</code>, <code class=\"codespan\">padding</code>.</p>\n<p>Border style and background style can be set to text fragment too: <code class=\"codespan\">borderColor</code>, <code class=\"codespan\">borderWidth</code>, <code class=\"codespan\">backgroundColor</code>, <code class=\"codespan\">padding</code>.</p>\n<p>For example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/text-options&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n\n<h2 id=\"label-position\">Label Position</h2>\n<p><code class=\"codespan\">label</code> option can be use in charts like <code class=\"codespan\">bar</code>, <code class=\"codespan\">line</code>, <code class=\"codespan\">scatter</code>, etc. The position of a label, can be specified by <a href=\"option.html#series-scatter.label.position\" target=\"_blank\">label.position</a>、<a href=\"option.html#series-scatter.label.distance\" target=\"_blank\">label.distance</a>.</p>\n<p>For example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/label-position&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n<blockquote>\n<p>Notice, there are different optional values of <code class=\"codespan\">position</code> by different chart types. And <code class=\"codespan\">distance</code> is not supported in every chart. More detailed info can be checked in <a href=\"option.html\" target=\"_blank\">option doc</a>.</p>\n</blockquote>\n<h2 id=\"label-rotation\">Label Rotation</h2>\n<p>Sometimes label is needed to be rotated. For example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=bar-label-rotation&edit=1&reset=1\" width=\"900\" height=\"500\" ></iframe>\n\n\n<p><a href=\"option.html#series-bar.label.align\" target=\"_blank\">align</a> and<a href=\"option.html#series-bar.label.verticalAlign\" target=\"_blank\">verticalAlign</a> can be used to adjust location of label in this scenario.</p>\n<p>Notice, <code class=\"codespan\">align</code> and <code class=\"codespan\">verticalAlign</code> are applied firstly, then rotate.</p>\n<h2 id=\"layout-and-alignment-of-text-fragment\">Layout and Alignment of Text fragment</h2>\n<p>To understand the layout rule, every text fragment can be imagined as a <code class=\"codespan\">inline-block</code> dom element in CSS.</p>\n<p><code class=\"codespan\">content box size</code> of a text fragment is determined by its font size by default. It can also be specified directly by <code class=\"codespan\">width</code> and <code class=\"codespan\">height</code>, although they are rarely set. <code class=\"codespan\">border box size</code> of a text fragment is calculated by adding the <code class=\"codespan\">border box size</code> and <code class=\"codespan\">padding</code>.</p>\n<p>Only <code class=\"codespan\">&#39;\\n&#39;</code> is the newline character, which breaks a line.</p>\n<p>Multiple text fragment exist in a single line. The height of a line is determined by the biggest <code class=\"codespan\">lineHeight</code> of text fragments. <code class=\"codespan\">lineHeight</code> of a text fragment can be specified in <code class=\"codespan\">rich</code>, or in the parent level of <code class=\"codespan\">rich</code>, otherwise using <code class=\"codespan\">box size</code> of the text fragment.</p>\n<p>Having <code class=\"codespan\">lineHeight</code> determined, the vertical position of text fragments can be determined by <code class=\"codespan\">verticalAlign</code> (there is a little different from the rule in CSS):</p>\n<ul>\n<li><code class=\"codespan\">&#39;bottom&#39;</code>: The bottom edge of the text fragment sticks to the bottom edge of the line.</li>\n<li><code class=\"codespan\">&#39;top&#39;</code>: The top edge of the text fragment sticks to the top edge of the line.</li>\n<li><code class=\"codespan\">&#39;middle&#39;</code>: In the middle of the line.</li>\n</ul>\n<p>The width of a text block can be specified by <code class=\"codespan\">width</code>, otherwise, by the longest line. Having the width determined, text fragment can be placed in each line, where the horizontal position of text fragments can be determined by its <code class=\"codespan\">align</code>.</p>\n<ul>\n<li>Firstly, place text fragments whose <code class=\"codespan\">align</code> is <code class=\"codespan\">&#39;left&#39;</code> from left to right continuously.</li>\n<li>Secondly, place text fragments whose <code class=\"codespan\">align</code> is <code class=\"codespan\">&#39;right&#39;</code> from right to left continuously.</li>\n<li>Finally, the text fragments remained will be sticked and placed in the center of the rest of space.</li>\n</ul>\n<p>The position of text in a text fragment:</p>\n<ul>\n<li>If <code class=\"codespan\">align</code> is <code class=\"codespan\">&#39;center&#39;</code>, text aligns at the center of the text fragment box.</li>\n<li>If <code class=\"codespan\">align</code> is <code class=\"codespan\">&#39;left&#39;</code>, text aligns at the left of the text fragment box.</li>\n<li>If <code class=\"codespan\">align</code> is <code class=\"codespan\">&#39;right&#39;</code>, text aligns at the right of the text fragment box.</li>\n</ul>\n<p>For example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/text-fragment-align&edit=1&reset=1\" width=\"800\" height=\"220\" ></iframe>\n\n\n\n\n<h2 id=\"effects-icon-horizontal-rule-title-block-simple-table\">Effects: Icon, Horizontal Rule, Title Block, Simple Table</h2>\n<p>See example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/title-block&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n<p>Icon is implemented by using image in <code class=\"codespan\">backgroundColor</code>.</p>\n<pre><code class=\"lang-js\">rich: {\n    Sunny: {\n        backgroundColor: {\n            image: &#39;./data/asset/img/weather/sunny_128.png&#39;\n        },\n        // Can only height specified, but leave width auto obtained\n        // from the image, where the aspect ratio kept.\n        height: 30\n    }\n}\n</code></pre>\n<p>Horizontal rule (like HTML &lt;hr&gt; tag) can be implemented by border:</p>\n<pre><code class=\"lang-js\">rich: {\n    hr: {\n        borderColor: &#39;#777&#39;,\n        // width is set as &#39;100%&#39; to fullfill the text block.\n        // Notice, the percentage is based on the content box, without\n        // padding. Although it is a little different from CSS rule,\n        // it is convinent in most cases.\n        width: &#39;100%&#39;,\n        borderWidth: 0.5,\n        height: 0\n    }\n}\n</code></pre>\n<p>Title block can be implemented by <code class=\"codespan\">backgroundColor</code>:</p>\n<pre><code class=\"lang-js\">// Title is at left.\nformatter: &#39;{titleBg|Left Title}&#39;,\nrich: {\n    titleBg: {\n        backgroundColor: &#39;#000&#39;,\n        height: 30,\n        borderRadius: [5, 5, 0, 0],\n        padding: [0, 10, 0, 10],\n        width: &#39;100%&#39;,\n        color: &#39;#eee&#39;\n    }\n}\n\n// Title is in the center of the line.\n// This implementation is a little tricky, but is works\n// without more complicated layout mechanism involved.\nformatter: &#39;{tc|Center Title}{titleBg|}&#39;,\nrich: {\n    titleBg: {\n        align: &#39;right&#39;,\n        backgroundColor: &#39;#000&#39;,\n        height: 30,\n        borderRadius: [5, 5, 0, 0],\n        padding: [0, 10, 0, 10],\n        width: &#39;100%&#39;,\n        color: &#39;#eee&#39;\n    }\n}\n</code></pre>\n<p>Simple table can be implemented by specify the same width to text fragments that are in the same column of different lines. See the <a href=\"https://echarts.apache.org/examples/en/view.html?c=pie-rich-text&amp;edit=1&amp;reset=1\" target=\"_blank\">example</a> at the mentioned above.</p>\n"},"Server-side Rendering":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> can be rendered at server-side. For example, the thumbnails in the <a href=\"https://echarts.apache.org/examples/en/index.html\" target=\"_blank\">official examples page</a> are generated at a server.</p>\n<p>Commonly used headless tool is required, for example, <a href=\"https://github.com/GoogleChrome/puppeteer\" target=\"_blank\">puppeteer</a>, <a href=\"https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md\" target=\"_blank\">headless chrome</a>, <a href=\"https://github.com/Automattic/node-canvas\" target=\"_blank\">node-canvas</a>, <a href=\"https://github.com/jsdom/jsdom\" target=\"_blank\">jsdom</a>, <a href=\"http://phantomjs.org/\" target=\"_blank\">PhantomJS</a>, etc.</p>\n<p>Some solutions contributed by the community are list as follows:</p>\n<ul>\n<li><a href=\"https://github.com/hellosean1025/node-echarts\" target=\"_blank\">https://github.com/hellosean1025/node-echarts</a></li>\n<li><a href=\"https://github.com/chfw/echarts-scrappeteer\" target=\"_blank\">https://github.com/chfw/echarts-scrappeteer</a></li>\n<li><a href=\"https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js\" target=\"_blank\">https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js</a></li>\n<li><a href=\"https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73\" target=\"_blank\">https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73</a></li>\n</ul>\n"},"Render by Canvas or SVG":{"type":["*"],"description":"<p>Most of browser-side charting libraries use SVG or Canvas as their underlying renderer. In the scope of Apache ECharts<sup>TM</sup>, they are usually alternative, without critical differences. But in some environment and scenarios, they show notable differences in performance or functionality.</p>\n<p>ECharts has been using Canvas as its renderer (use VML for IE8-) from the beginning. As of <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">ECharts v3.8</a> we provide an SVG renderer (beta version) as another option. Either of them can be used by specifing parameter <a href=\"api.html#echarts.init\" target=\"_blank\">renderer</a> as <code class=\"codespan\">&#39;canvas&#39;</code> or <code class=\"codespan\">&#39;svg&#39;</code> when initailizing a chart instance.</p>\n<blockquote>\n<p>Both SVG and Canvas, which are very different rendering implementations, are supported in ECharts by leveraging the Canvas and SVG renderers offered by the <a href=\"https://github.com/ecomfe/zrender\" target=\"_blank\">zrender</a> library.</p>\n</blockquote>\n<h2 id=\"how-to-make-a-choice-\">How to make a choice?</h2>\n<p>Generally speaking, Canvas is suitable for cases where there is a large amount of graphical elements (usually due to a large amount of data points), like heatmap and lines or scatter plot with large data in geo or parallel coordinates. In addition, it supports some <a href=\"https://echarts.apache.org/examples/en/editor.html?c=lines-bmap-effect\" target=\"_blank\">special visual effect</a> not supported by SVG. However, in some other scenarios SVG has some critical advantages: it consumes less memory than Canvas (especially in mobile devices), and gives better performance in rendering. Moreover, it never blurs when zooming the viewport of the browser whereas Canvas may blur.</p>\n<p>Below is a comparison of frame rate during the initial animation stage when rendering line, bar, pie charts with the Canvas renderer and the SVG renderer:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/canvas-vs-svg-en&reset=1\" width=\"90%\" height=\"400\" ></iframe>\n\n\n<p>In the example above, the SVG renderer provides better FPS performance in mobile devices. In some other scenarios with large amounts of data or with certain kinds of user interaction, the SVG renderer is still not as good as the Canvas renderer in performance, but two options provide the ability to optimize the performance according to the requirements of each developer.</p>\n<p>How to make a choice? These factors, hardware and software environment, data amount and functional requirements, should be considered.</p>\n<ul>\n<li>When not constrained by hardware/software, and the data amount is not large, both should provide equally satisfactory results.</li>\n<li>When encountering performance issues, we can attempt to get better result by choose appropriate renderer.<ul>\n<li>If lots of ECharts instances have to be created, and it causes the browser crash (probably caused by that the large memory consumption) we can try the SVG renderer. Or, generally, when running on some old Android devices, or if we are using some kind of charts like <a href=\"https://ecomfe.github.io/echarts-liquidfill/example/\" target=\"_blank\">liquidfill</a>, the SVG renderer probably gives a better performance.</li>\n<li>If visualizing a large amount of data, or complicated human interactions with data is required, the Canvas renderer works better currently.</li>\n</ul>\n</li>\n</ul>\n<p>Therefore <a href=\"https://github.com/apache/echarts/issues/new\" target=\"_blank\">feedback</a> of experiences and usage scenarios are strongly welcomed, which will help improve the these renderers.</p>\n<p>Notice: The features of rich text, shadow and texture have not been supported yet in the current beta version of the SVG renderer.</p>\n<h2 id=\"how-to-use-specify-a-renderer-\">How to use specify a renderer?</h2>\n<p>ECharts uses Canvas by default. If a user intends to use the SVG renderer, the module of the SVG renderer should be included in ECharts bundle.</p>\n<ul>\n<li>In the <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">pre-build</a> of ECharts, the SVG renderer has been included in <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.common.min.js\" target=\"_blank\">common version</a> and <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js\" target=\"_blank\">complete version</a>. But not in <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.simple.min.js\" target=\"_blank\">simple version</a>.</li>\n<li>When <a href=\"https://echarts.apache.org/en/builder.html\" target=\"_blank\">building ECharts online</a>, the checkbox &quot;SVG Renderer&quot; should be checked.</li>\n<li>When <a href=\"tutorial.html#Use%20ECharts%20with%20bundler%20and%20NPM\" target=\"_blank\">building ECharts offline</a>, the SVG renderer module should be imported:</li>\n</ul>\n<pre><code class=\"lang-js\">import &#39;zrender/lib/svg/svg&#39;;\n</code></pre>\n<p>Then we can specify renderer by <a href=\"api.html#echarts.init\" target=\"_blank\">parameter</a>:</p>\n<pre><code class=\"lang-js\">// Use the Canvas renderer (default).\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n// which is equal to:\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n\n// Use the SVG renderer.\nvar chart = echarts.init(containerDom, null, {renderer: &#39;svg&#39;});\n</code></pre>\n"},"SVG Base Map in Geo Coords and Map Series":{"type":["*"],"description":"<p>Since <code class=\"codespan\">v5.1.0</code>, ECharts support to use SVG as the base map in <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> and <a href=\"option.html#series-map\" target=\"_blank\">map series</a>, where previously only <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a> is supported.</p>\n<p>This feature enables ECharts to display SVG in either of the render modes (<code class=\"codespan\">canvas</code> render mode and <code class=\"codespan\">svg</code> render mode), and enables features like <a href=\"option.html#geo.roam\" target=\"_blank\">zoom</a>, <a href=\"option.html#geo.roam\" target=\"_blank\">pan</a>, <a href=\"option.html#geo.select\" target=\"_blank\">select</a>, <a href=\"option.html#geo.emphasis\" target=\"_blank\">emphasis</a>, <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">focus-blur</a>, <a href=\"option.html#geo.label\" target=\"_blank\">label</a>, <a href=\"option.html#series-map.labelLayout\" target=\"_blank\">labelLayout</a>, <a href=\"option.html#geo.tooltip\" target=\"_blank\">tooltip</a> on SVG with only simple some ECharts options. Series like <a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>, <a href=\"option.html#series-effectScatter\" target=\"_blank\">effectScatter</a>, <a href=\"option.html#series-lines\" target=\"_blank\">lines</a>, <a href=\"option.html#series-custom\" target=\"_blank\">custom</a> that are available on <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> can also be positioned and displayed based on SVG base map.</p>\n<p>There are several examples where SVG base map is used:</p>\n<p><a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-beef-cuts\" target=\"_blank\">Beef Cuts</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-seatmap-flight\" target=\"_blank\">Flight Seatmap</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-map\" target=\"_blank\">SVG Map</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">SVG Scatter</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-lines\" target=\"_blank\">SVG Lines</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-traffic\" target=\"_blank\">SVG Traffic</a></p>\n<h2 id=\"basic-usage\">Basic Usage</h2>\n<p>The usage of SVG base map is the same as the usage of <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a>.</p>\n<p>If used in <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a>:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/organ.svg&#39;, function (svg) {\n    // Firstly we need to register SVG raw string or parsed SVG DOM\n    // to echarts with a name:\n    echarts.registerMap(&#39;organ_diagram&#39;, {svg: svg});\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;));\n    chart.setOption({\n        geo: {\n            // Reference it in echarts option.\n            map: &#39;organ_diagram&#39;,\n            ...\n        }\n    });\n});\n</code></pre>\n<p>If used in <a href=\"option.html#series-map\" target=\"_blank\">map series</a>:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/beef_cuts.svg&#39;, function (svg) {\n    // Firstly we need to register SVG raw string or parsed SVG DOM\n    // to echarts with a name:\n    echarts.registerMap(&#39;beef_cuts_diagram&#39;, {svg: svg});\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;));\n    chart.setOption({\n        series: {\n            type: &#39;map&#39;,\n            // Reference it in echarts option.\n            map: &#39;beef_cuts_diagram&#39;,\n            ...\n        }\n    });\n});\n</code></pre>\n<h2 id=\"zoom-and-pan\">Zoom and Pan</h2>\n<p>For <a href=\"option.html#geo\" target=\"_blank\">Geo coordinate system</a></p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        // Enable zoom and pan.\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p>For <a href=\"option.html#series-map\" target=\"_blank\">map series</a></p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;map&#39;,\n        // Enable zoom and pan.\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p>See <a href=\"option.html#geo.roam\" target=\"_blank\">roam</a>.\nAlso see example <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-map\" target=\"_blank\">SVG Map</a>.</p>\n<h2 id=\"named-element\">Named Element</h2>\n<p>If intending to interact with some elements of SVG, we need to mark those elements in SVG firstly. That can be done simply by adding names to the target elements. The interaction related feature like <a href=\"option.html#geo.select\" target=\"_blank\">select</a>, <a href=\"option.html#geo.emphasis\" target=\"_blank\">emphasis</a>, <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">focus-blur</a>, <a href=\"option.html#geo.label\" target=\"_blank\">label</a>, <a href=\"option.html#series-map.labelLayout\" target=\"_blank\">labelLayout</a>, <a href=\"option.html#geo.tooltip\" target=\"_blank\">tooltip</a> depend on those named elements.</p>\n<p>For example, we add name attribute <code class=\"codespan\">name=&quot;named_rect&quot;</code> only to the left SVG <code class=\"codespan\">path</code>.</p>\n<pre><code class=\"lang-xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;\n&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.2&quot; fill-rule=&quot;evenodd&quot; xml:space=&quot;preserve&quot;&gt;\n    &lt;path name=&quot;named_rect&quot; d=&quot;M 0,0 L 0,100 100,100 100,0 Z&quot; fill=&quot;#765&quot; /&gt;\n    &lt;path d=&quot;M 150,0 L 150,100 250,100 250,0 Z&quot; fill=&quot;#567&quot; /&gt;\n&lt;/svg&gt;\n</code></pre>\n<p>Then hover on the left rect, it can be highlighted, whereas the right one can not.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/geo-svg-named-basic&edit=1&reset=1\" width=\"500\" height=\"200\" ></iframe>\n\n\n<p>Option for some certain named elements can be specified in <a href=\"option.html#geo.regions\" target=\"_blank\">geo.regions</a>, like:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        regions: [{\n            name: &#39;element_name_1&#39;,\n            itemStyle: { ... }\n        }, {\n            name: &#39;element_name_2&#39;,\n            itemStyle: { ... }\n        }]\n    }\n};\n</code></pre>\n<p>Note:</p>\n<ul>\n<li>These SVG elements can be named and recognized by ECharts:\n<code class=\"codespan\">rect</code>, <code class=\"codespan\">circle</code>, <code class=\"codespan\">line</code>, <code class=\"codespan\">ellipse</code>, <code class=\"codespan\">polygon</code>, <code class=\"codespan\">polyline</code>, <code class=\"codespan\">path</code>, <code class=\"codespan\">text</code>, <code class=\"codespan\">tspan</code>, <code class=\"codespan\">g</code>.</li>\n<li>It is supported that multiple elements are named with the same name, will they will be highlighted/selected together.</li>\n</ul>\n<h2 id=\"style-customization\">Style Customization</h2>\n<p>Although the style (such as color, font, lineWidth, ...) of SVG Elements can be defined directly in SVG file, style of named elements can also be customized in ECharts option, which will be handy in some scenario.</p>\n<p>Styles can be specified in <a href=\"option.html#geo.itemStyle\" target=\"_blank\">geo.itemStyle</a> and <a href=\"option.html#series-map.itemStyle\" target=\"_blank\">series-map.itemStyle</a> (also includes <code class=\"codespan\">emphasis.itemStyle</code>, <code class=\"codespan\">select.itemStyle</code>, <code class=\"codespan\">blur.itemStyle</code>, <code class=\"codespan\">regions[i].itemStyle</code>, <code class=\"codespan\">regions[i].emphasis.itemStyle</code>, <code class=\"codespan\">regions[i].select.itemStyle</code>, <code class=\"codespan\">regions[i].blur.itemStyle</code>). Some default style of the named elements can also be removed here (e.g., set <code class=\"codespan\">emphasis.itemStyle.color: null</code> to prevent the fill color from changing when mouse hovering.)</p>\n<p>Moreover, named elements can also be styled by <a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a> if using <a href=\"option.html#series-map\" target=\"_blank\">series-map</a>. See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-beef-cuts\" target=\"_blank\">Beef Cuts</a>.</p>\n<p>Note:\nOnly these named elements can be styled in <code class=\"codespan\">itemStyle</code>:\n<code class=\"codespan\">rect</code>, <code class=\"codespan\">circle</code>, <code class=\"codespan\">line</code>, <code class=\"codespan\">ellipse</code>, <code class=\"codespan\">polygon</code>, <code class=\"codespan\">polyline</code>, <code class=\"codespan\">path</code>.</p>\n<h2 id=\"select\">Select</h2>\n<p>Named elements can adopt &quot;select&quot; feature by setting <a href=\"option.html#geo.selectedMode\" target=\"_blank\">geo.selectedMode</a> or <a href=\"option.html#series-map.selectedMode\" target=\"_blank\">series-map.selectedMode</a> as <code class=\"codespan\">&#39;single&#39;</code> or <code class=\"codespan\">&#39;multiple&#39;</code>. The style of element when selected can be specified in <a href=\"option.html#geo.select\" target=\"_blank\">geo.select</a> or <a href=\"option.html#series-map.select\" target=\"_blank\">series-map.select</a>.</p>\n<p>The selected names can be obtained by <a href=\"api.html#event.geoselectchanged\" target=\"_blank\">geoselectchanged</a> event, like:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;geoselectchanged&#39;, function (params) {\n    var selectedNames = params.allSelected[0].name;\n    console.log(&#39;selected&#39;, selectedNames);\n});\n</code></pre>\n<p>See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-seatmap-flight\" target=\"_blank\">Flight Seatmap</a> for more details.</p>\n<h2 id=\"emphasis-and-focus-blur\">Emphasis and Focus-Blur</h2>\n<p><code class=\"codespan\">emphasis</code> state (highlight when hovering) can be auto adopted to named elements.</p>\n<p>Especially, <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">geo.emphasis.focus</a> and be set as <code class=\"codespan\">&#39;self&#39;</code> to enable &quot;focus-blur&quot; feature, where all all of the other elements will be blurred when hovering on an named element.</p>\n<p>See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a> for more details.</p>\n<h2 id=\"tooltip\">Tooltip</h2>\n<p>Tooltip can be enabled or disabled on named elements.</p>\n<pre><code class=\"lang-js\">option = {\n    // Need to declare the root tooltip to\n    // enable tooltip feature on ECharts.\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            // Use `show` to enable/disable tooltip\n            // on geo coordinate system.\n            show: true\n        },\n        regions: [{\n            name: &#39;some_name1&#39;,\n            // Set named element specified tooltip option if needed.\n            tooltip: {\n                formatter: &#39;some special tooltip 1&#39;\n            }\n        }, {\n            name: &#39;some_name2&#39;,\n            tooltip: {\n                formatter: &#39;some special tooltip 2&#39;\n            }\n        }]\n    }\n};\n</code></pre>\n<p>If intending to disable the geo tooltip when hovering a on named elements, just:</p>\n<pre><code class=\"lang-js\">option = {\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            show: false\n        }\n    }\n};\n</code></pre>\n<p>See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-map\" target=\"_blank\">SVG Map</a> for more details.</p>\n<h2 id=\"label\">Label</h2>\n<p>Although text label can be declared in SVG file directly via <code class=\"codespan\">&lt;text&gt;</code>/<code class=\"codespan\">&lt;tspan&gt;</code>, we can also use ECharts built-in label feature on named elements by specifying <a href=\"option.html#geo.label\" target=\"_blank\">geo.label</a> or <a href=\"option.html#series-map.label\" target=\"_blank\">series-map.label</a>.</p>\n<p>By default the label feature is enabled when hovering on a named element. If intending to disable it, just:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        emphasis: {\n            label: {\n                show: false\n            }\n        }\n    }\n};\n</code></pre>\n<p>When multiple elements need to share one label text, we have two choices:</p>\n<ul>\n<li>Wrap those elements in a named <code class=\"codespan\">&lt;g&gt;</code> (e.g., <code class=\"codespan\">&lt;g name=&quot;name_a&quot;&gt;</code>), where a single label will be displayed and located based on the bounding rect of the <code class=\"codespan\">&lt;g&gt;</code>.</li>\n<li>Name those elements with the same name (e.g., <code class=\"codespan\">&lt;path name=&quot;name_b&quot;/&gt;&lt;path name=&quot;name_b&quot;/&gt;</code>), where multiple labels will be displayed and located based on each elements self.</li>\n</ul>\n<p>For example (hover to show the labels):</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/geo-svg-label-basic&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n<p>Note: Only these named elements can be labeled via <code class=\"codespan\">label</code> option:\n<code class=\"codespan\">rect</code>, <code class=\"codespan\">circle</code>, <code class=\"codespan\">line</code>, <code class=\"codespan\">ellipse</code>, <code class=\"codespan\">polygon</code>, <code class=\"codespan\">polyline</code>, <code class=\"codespan\">path</code>, <code class=\"codespan\">g</code>.</p>\n<p>Also see <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a> for the usage of label.</p>\n<h2 id=\"events\">Events</h2>\n<p>Mouse events or touch events of named elements can be listened simply by:</p>\n<pre><code class=\"lang-js\">// &#39;name1&#39; is a name of a SVG element.\nmyChart.on(&#39;click&#39;, { geoIndex: 0, name: &#39;name1&#39; }, function (params) {\n    console.log(params);\n});\n</code></pre>\n<h2 id=\"layout-of-svg-base-map\">Layout of SVG Base Map</h2>\n<p>By default ECharts will position the SVG base map in the center of the canvas. If need some adjust, we usually only adjust <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>/<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>, and occasionally <code class=\"codespan\">&lt;svg viewBox=&quot;...&quot;&gt;</code>/<a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a> (difference: clip or not). In most cases they are enough.</p>\n<p>If need some advanced precise control of the position and zoom, several concepts below can be noticed.</p>\n<p>The layout rule and options of <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> and <a href=\"option.html#series-map\" target=\"_blank\">map series</a> are the same. So we only demonstrate <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> below.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/geo-svg-layout-basic&edit=1&reset=1\" width=\"700\" height=\"550\" ></iframe>\n\n\n<p>The demo above shows six <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> with three SVG files in a single ECharts canvas. Each two <a href=\"option.html#geo\" target=\"_blank\">geo</a> that are in the same column use the same SVG file.</p>\n<p>Firstly, what shapes looks like is determined by SVG file itself. That is, in the demo above, determined by the <code class=\"codespan\">&lt;circle&gt;</code> and <code class=\"codespan\">viewBox</code> attribute (<code class=\"codespan\">viewBox</code> cut (clips) the circle). We can noticed that the final shape outlines in each column are the same (despite the difference in position, size and scratch), since they use the same SVG file.</p>\n<p>Secondly, users can use either of the two option groups below to determine the location and the size of the <code class=\"codespan\">geo view port</code> of <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> according to the entire chart canvas (all of these options are measured in echarts canvas pixel, or percentage value):</p>\n<ul>\n<li><a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>, <a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a> (recommended).</li>\n<li><a href=\"option.html#geo.top\" target=\"_blank\">top</a>, <a href=\"option.html#geo.right\" target=\"_blank\">right</a>, <a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>, <a href=\"option.html#geo.left\" target=\"_blank\">left</a> (which is used in the demo above).</li>\n</ul>\n<p>In the demo above, the six geo <code class=\"codespan\">geo view ports</code> are displayed as six black squares.</p>\n<p>Thirdly, a <code class=\"codespan\">bounding rect</code> of the SVG is determined, which is determined by methods below (all of them are measured in SVG local unit):</p>\n<ol>\n<li>If <a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a> is specified, use it as <code class=\"codespan\">bounding rect</code>.</li>\n<li>Else if <code class=\"codespan\">&lt;svg width=&quot;...&quot; height=&quot;...&quot;&gt;</code> is specified, use <code class=\"codespan\">[0, 0, width, height]</code> as <code class=\"codespan\">bounding rect</code>. (If only <code class=\"codespan\">width</code> or only <code class=\"codespan\">height</code> is specified, only use <code class=\"codespan\">[0, width]</code> or <code class=\"codespan\">[0, height]</code>).</li>\n<li>Else if <code class=\"codespan\">svg viewBox=&quot;...&quot;&gt;</code> is specified, use <code class=\"codespan\">viewBox</code> as <code class=\"codespan\">bounding rect</code>.</li>\n<li>Else use the union bounding rect of all of the SVG elements as the <code class=\"codespan\">bounding rect</code>.</li>\n<li>If <a href=\"option.html#geo.center\" target=\"_blank\">geo.center</a> or <a href=\"option.html#geo.zoom\" target=\"_blank\">geo.zoom</a> is specified, transform the <code class=\"codespan\">bounding rect</code> determined by <code class=\"codespan\">1~4</code> above.</li>\n</ol>\n<p>Having <code class=\"codespan\">bounding rect</code> determined, it will be placed into its corresponding <code class=\"codespan\">geo view port</code>:</p>\n<ul>\n<li>If <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>, <a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a> is used, the <code class=\"codespan\">bounding rect</code> will be placed at the center and as big as possible into the <code class=\"codespan\">geo view port</code> (keep aspect ratio).</li>\n<li>If <a href=\"option.html#geo.top\" target=\"_blank\">top</a>, <a href=\"option.html#geo.right\" target=\"_blank\">right</a>, <a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>, <a href=\"option.html#geo.left\" target=\"_blank\">left</a> is used, the view rect will be stretched to fill the <code class=\"codespan\">geo view port</code> entirely.</li>\n</ul>\n<h2 id=\"place-series-on-svg-base-map\">Place Series on SVG Base Map</h2>\n<p>Series like <a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>, <a href=\"option.html#series-effectScatter\" target=\"_blank\">effectScatter</a>, <a href=\"option.html#series-lines\" target=\"_blank\">lines</a>, <a href=\"option.html#series-custom\" target=\"_blank\">custom</a> that are available on <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> can also be positioned and displayed on SVG base map.</p>\n<p>Note that in this kind of usage the unit of series data value is the SVG file local coords. For example:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;\n    },\n    series: {\n        type: &#39;effectScatter&#39;,\n        coordinateSystem: &#39;geo&#39;,\n        geoIndex: 0,\n        data: [\n            // SVG local coords.\n            [488.2358421078053, 459.70913833075736],\n            [770.3415644319939, 757.9672194986475],\n            [1180.0329284196291, 743.6141808346214],\n        ]\n    }\n};\n</code></pre>\n<p>By the way, there is a simple approach to get SVG local coord:</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    geo: {\n        map: &#39;some_svg&#39;\n    }\n});\nmyChart.getZr().on(&#39;click&#39;, function (params) {\n    var pixelPoint = [params.offsetX, params.offsetY];\n    var dataPoint = myChart.convertFromPixel({ geoIndex: 0 }, pixelPoint);\n    // When click, the data in SVG local coords will be printed,\n    // which can be used in `series.data`.\n    console.log(dataPoint);\n});\n</code></pre>\n<p>See also <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">SVG Scatter</a>, <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-lines\" target=\"_blank\">SVG Lines</a>, <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-traffic\" target=\"_blank\">SVG Traffic</a>.</p>\n<h2 id=\"unsupported-svg-features\">Unsupported SVG features</h2>\n<p>Unfortunately it is difficult to implement a complete SVG parser. While the common SVG features are supported, at least these features listed below are not supported yet:</p>\n<ul>\n<li>Flip and skew (will be supported <code class=\"codespan\">v5.1.2</code>):<ul>\n<li>Not support <code class=\"codespan\">transform: skew(...)</code> (including <code class=\"codespan\">transform: matrix(...)</code> that includes skew).</li>\n<li>Not support <code class=\"codespan\">transform: scale(x, y)</code> that <code class=\"codespan\">x</code>, <code class=\"codespan\">y</code> has different sign while has <code class=\"codespan\">rotate</code> (e.g., <code class=\"codespan\">scale: (1, -1), rotate(90)</code>).</li>\n</ul>\n</li>\n<li>Standalone <code class=\"codespan\">&lt;style&gt;</code> tag is not supported.<ul>\n<li>But inline style is supported (e.g., <code class=\"codespan\">&lt;path style=&quot;color:red&quot; /&gt;</code>).</li>\n</ul>\n</li>\n<li>Unit:<ul>\n<li>Only <code class=\"codespan\">px</code> is supported. Other unit like <code class=\"codespan\">width=&quot;231.65mm&quot;</code> is not supported.</li>\n<li>Percentage value like <code class=\"codespan\">&lt;svg width=&quot;30%&quot; height=&quot;40%&quot;&gt;</code> is not supported.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;defs&gt;</code> tag:<ul>\n<li>Only <code class=\"codespan\">&lt;linearGradient&gt;</code>, <code class=\"codespan\">&lt;radialGradient&gt;</code> are supported.</li>\n<li>other elements (e.g., <code class=\"codespan\">&lt;pattern&gt;</code>, <code class=\"codespan\">&lt;path&gt;</code>, ...) defined in <code class=\"codespan\">&lt;defs&gt;</code> are not supported yet.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;linearGradient&gt;</code>, <code class=\"codespan\">&lt;radialGradient&gt;</code>:<ul>\n<li><code class=\"codespan\">fx</code>, <code class=\"codespan\">fy</code> is not supported.</li>\n<li><code class=\"codespan\">gradientTransform</code> attribute is not supported.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">fill:url(...)</code>, <code class=\"codespan\">stroke:utl(...)</code>:<ul>\n<li>Only <code class=\"codespan\">url(#someId)</code> is supported.</li>\n<li>Other URL patterns are not supported. e.g.,<ul>\n<li><code class=\"codespan\">url(https://example.com/images/myImg.jpg)</code>;</li>\n<li><code class=\"codespan\">url(data:image/png;base64,iRxVB0…)</code>;</li>\n<li><code class=\"codespan\">url(myFont.woff)</code>;</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;switch&gt;</code> tag:<ul>\n<li>All the content inside <code class=\"codespan\">&lt;switch&gt;</code> tag will be displayed. The &quot;switch&quot; feature is not supported.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;text&gt;</code>:<ul>\n<li><code class=\"codespan\">textPath</code> is not supported.</li>\n<li><a href=\"https://www.w3.org/TR/SVG/text.html#TermAddressableCharacter\" target=\"_blank\">Addressable character</a> is not supported. That is,<pre><code class=\"lang-xml\">&lt;!-- Not supported: --&gt;\n&lt;tspan x=&quot;0 4.94 9.89&quot;&gt;abc&lt;/tspan&gt;\n&lt;!-- Supported: --&gt;\n&lt;tspan x=&quot;0&quot;&gt;a&lt;/tspan&gt;\n&lt;tspan x=&quot;4.94&quot;&gt;b&lt;/tspan&gt;\n&lt;tspan x=&quot;9.89&quot;&gt;c&lt;/tspan&gt;\n</code></pre>\n</li>\n</ul>\n</li>\n</ul>\n"},"Supporting ARIA in Charts":{"type":["*"],"description":"<p>The W3C has developed the <a href=\"https://www.w3.org/WAI/intro/aria\" target=\"_blank\">WAI-ARIA</a>, the Accessible Rich Internet Applications Suite, which is dedicated to making web content and web applications accessible. Apache ECharts<sup>TM</sup> 4 complies with this specification by supporting the automatic generation of intelligent descriptions based on chart configuration items, allowing blind people to understand the chart content with the help of a reading device, making the chart accessible to a wider audience.</p>\n<p>By default, ARIA is disabled. To enable it, you should set <a href=\"#aria.enabled\">aria.enabled</a> to be <code class=\"codespan\">true</code>. After enabling, it will generate descriptions based on charts, series, data, and so on. Users may change the generated description.</p>\n<p><strong>For example:</strong></p>\n<p>For config:</p>\n<pre><code class=\"lang-js\">option = {\n    aria: {\n        show: true\n    },\n    title: {\n        text: &#39;Source of user access to a site&#39;,\n        x: &#39;center&#39;\n    },\n    series: [\n        {\n             Name: &#39;access source&#39;,\n            type: &#39;pie&#39;,\n            data: [\n                { value: 335, name: &#39;direct access&#39; },\n                { value: 310, name: &#39;mail marketing&#39; },\n                { value: 234, name: &#39;union ad&#39; },\n                { value: 135, name: &#39;video ad&#39; },\n                { value: 1548, name: &#39;search engine&#39; }\n            ]\n        }\n    ]\n};\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/aria-pie&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n<p>There should be an <code class=\"codespan\">aria-label</code> attribute on the chart DOM, which can help the disabled understand the content of charts with the help of certain devices. The value of the label is:</p>\n<pre><code>This is a chart of &quot;Source of user access to a site.&quot; The chart type is a pie chart that indicates the source of the visit. The data is - direct access data is 335, mail marketing data is 310, union ad data is 234, video ad data is 135, search engine data is 1548.\n</code></pre><p>The default language is in defined by the language package (Chinese by default), but you can configure it with templates.</p>\n<p>In addition, Apache ECharts 5 now supports applique textures as a secondary expression of color to further differentiate data. If <code class=\"codespan\">aria.enabled</code> is set to <code class=\"codespan\">true</code>, <code class=\"codespan\">aria.decal.show</code> is set to <code class=\"codespan\">true</code> to adopt the default applique style.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/aria-decal-simple&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n\n<p>Next, let&#39;s describe more specifically how these two accessible designs can be configured.</p>\n<h2 id=\"chart-labels\">Chart Labels</h2>\n<h3 id=\"apply-overall-modification-description\">Apply Overall Modification Description</h3>\n<p>For some charts, the default generated descriptions of the data points are not sufficient to represent the overall information. For example, in the scatter plot below, the default description can include the coordinates of the data points, but knowing the coordinates of hundreds or thousands of points does not help us to effectively understand the information presented in the chart.</p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/aria-example.png\"></p>\n<p>At this point, the user can specify the overall description of the chart via the <a href=\"option.html#aria.label.description\" target=\"_blank\">aria.label.description</a> configuration item.</p>\n<h3 id=\"customizing-the-template-description\">Customizing the Template Description</h3>\n<p>In addition to modifying descriptions holistically, we also provide templates for generating descriptions that can be easily modified at a fine-grained level.</p>\n<p>The basic flow for generating descriptions is that if <a href=\"option.html#aria.label.show\" target=\"_blank\">aria.label.description</a> is set to <code class=\"codespan\">true</code>, then the accessibility description is generated, otherwise it is not. If <a href=\"option.html#aria.label.description\" target=\"_blank\">aria.label.description</a> is defined, it is used as the full description of the chart, otherwise the description is generated according to the template stitching. We provide a default algorithm for generating descriptions, and only if the generated descriptions are not quite right, we need to modify these templates, or even override them completely with <code class=\"codespan\">aria.description</code>.</p>\n<p>When using the template, whether <a href=\"#title.text\">title.text</a> is used along with <a href=\"option.html#aria.label.general.withTitle\" target=\"_blank\">aria.label.general.withTitle</a> while <a href=\"option.html#aria.label.general.withoutTitle\" target=\"_blank\">aria.label.general.withoutTitle</a> is used if there is no title text. <code class=\"codespan\">aria.general.withTitle</code> supports a template <code class=\"codespan\">&#39;{title}&#39;</code>, which will be replaced with chart title. This means, if <code class=\"codespan\">aria.general.withTitle</code> is set to be <code class=\"codespan\">&#39;The chart title is {title}.&#39;</code> and the chart title is <code class=\"codespan\">Price Distribution</code>, it will be interpreted into <code class=\"codespan\">&#39;The chart title is Price Distribution.&#39;</code></p>\n<p>After generating the title, the description of the series (<a href=\"option.html#aria.label.series\" target=\"_blank\">aria.label.series</a>) and the description of the data for each series (<a href=\"option.html#aria.label.data\" target=\"_blank\">aria.label.data</a>) are generated in turn. The following is an example of a template. Likewise, each template may include template variables to replace actual values.</p>\n<h2 id=\"decal-pattern\">Decal Pattern</h2>\n<p>The way to use the default applique pattern was described above. If you need to customize the decal pattern, you can use <a href=\"option.html#aria.decal.decals\" target=\"_blank\">aria.decal.decals</a> to configure a flexible decal pattern.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/aria-decal&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n<p>Please refer to <a href=\"option.html#aria\" target=\"_blank\">ARIA option</a> for more detail.</p>\n"}}}}
\ No newline at end of file
+{"$schema":"https://echarts.apache.org/doc/json-schem","option":{"type":"Object","properties":{"Get Started with ECharts in 5 minutes":{"type":["*"],"description":"<h2 id=\"installing-echarts\">Installing ECharts</h2>\n<p>First, install Apache ECharts<sup>TM</sup> using one of the following methods:</p>\n<ul>\n<li><p>Download official source release from <a href=\"https://echarts.apache.org/en/download.html\" target=\"_blank\">Apache ECharts website</a>. Then <a href=\"https://github.com/apache/echarts#build\" target=\"_blank\">build</a> from the source release.</p>\n</li>\n<li><p>Download from <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">GitHub</a></p>\n</li>\n<li><p>Using npm: <code class=\"codespan\">npm install echarts --save</code>. <a href=\"tutorial.html#Use%20ECharts%20with%20webpack\" target=\"_blank\">Using ECharts with webpack</a></p>\n</li>\n<li><p>Use CDN like <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">jsDelivr</a>.</p>\n</li>\n</ul>\n<h2 id=\"including-echarts\">Including ECharts</h2>\n<p>Load <code class=\"codespan\">echarts.min.js</code> with a script tag.</p>\n<pre><code class=\"lang-html\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;!-- including ECharts file --&gt;\n    &lt;script src=&quot;echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;/head&gt;\n&lt;/html&gt;\n</code></pre>\n<h2 id=\"draw-a-simple-chart\">Draw a simple chart</h2>\n<p>Before drawing charts, we need to prepare a DOM container with width and height for ECharts.</p>\n<pre><code>&lt;body&gt;\n    &lt;!-- preparing a DOM with width and height for ECharts --&gt;\n    &lt;div id=&quot;main&quot; style=&quot;width:600px; height:400px;&quot;&gt;&lt;/div&gt;\n&lt;/body&gt;\n</code></pre><p>Then we can initialize an ECharts instance using <a href=\"api.html#echarts.init\" target=\"_blank\">echarts.init</a>, and create a simple bar chart with <a href=\"api.html#echartsInstance.setOption\" target=\"_blank\">setOption</a>. Below is the complete code.</p>\n<pre><code class=\"lang-html\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;title&gt;ECharts&lt;/title&gt;\n    &lt;!-- including ECharts file --&gt;\n    &lt;script src=&quot;echarts.js&quot;&gt;&lt;/script&gt;\n&lt;/head&gt;\n&lt;body&gt;\n    &lt;!-- prepare a DOM container with width and height --&gt;\n    &lt;div id=&quot;main&quot; style=&quot;width: 600px;height:400px;&quot;&gt;&lt;/div&gt;\n    &lt;script type=&quot;text/javascript&quot;&gt;\n        // based on prepared DOM, initialize echarts instance\n        var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n        // specify chart configuration item and data\n        var option = {\n            title: {\n                text: &#39;ECharts entry example&#39;\n            },\n            tooltip: {},\n            legend: {\n                data:[&#39;Sales&#39;]\n            },\n            xAxis: {\n                data: [&quot;shirt&quot;,&quot;cardign&quot;,&quot;chiffon shirt&quot;,&quot;pants&quot;,&quot;heels&quot;,&quot;socks&quot;]\n            },\n            yAxis: {},\n            series: [{\n                name: &#39;Sales&#39;,\n                type: &#39;bar&#39;,\n                data: [5, 20, 36, 10, 10, 20]\n            }]\n        };\n\n        // use configuration item and data specified to show chart\n        myChart.setOption(option);\n    &lt;/script&gt;\n&lt;/body&gt;\n&lt;/html&gt;\n</code></pre>\n<p>You&#39;ve made your first chart!</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/getting-started&reset=1&edit=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n<p>For more examples, go to the <a href=\"https://echarts.apache.org/examples/en/editor.html?c=doc-example/getting-started\" target=\"_blank\">ECharts Gallery</a></p>\n"},"New features in ECharts 5":{"type":["*"],"description":"<p>Data visualization has come a long way in the last few years. Developers no longer expect visualization products to be simple chart creation tools, but have more advanced needs in terms of interaction, performance, data processing, and more.</p>\n<p>Apache ECharts has always been committed to making it easier for developers to create flexible and rich visualizations. In the latest release of Apache ECharts 5, we have focused on enhancing the storytelling of charts, allowing developers to tell the story behind the data in a simpler way.</p>\n<p><img src=\"documents/asset/img/feature-v5/echarts-5-en.png\" width=\"800px\" /></p>\n<p>&quot;The core of Apache ECharts 5 is &quot;Show, do not tell&quot;, which is a comprehensive upgrade of five topics and 15 features around the stroy telling of visualizations, allowing charts to better tell the story behind the data. It helps developers to create visualizations that meet the needs of various scenarios more easily.</p>\n<h2 id=\"storytelling\">Storytelling</h2>\n<p>The importance of animation to human cognition cannot be overstated. In our previous work, we used initialization animations and transition animations to help users understand the connection between data transformations, making the appearance of charts and transformations seem less rigid. This time, we have even enhanced our animation capabilities, even more significantly. We hope to further exploit the role of animation to help users&#39; cognition, and help them understand the story behind the chart more easily with the dynamic stroy function of the chart.</p>\n<h4 id=\"bar-line-racing\">Bar/Line Racing</h4>\n<p>Apache ECharts 5 adds support for dynamically sorted bar-racing and dynamically sorted line-racing charts to help developers easily create time-series charts that show changes in data over time and tell the evolution of data.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=bar-race-country&edit=1&reset=1\" width=\"700\" height=\"400\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=line-race&edit=1&reset=1\" width=\"700\" height=\"400\" ></iframe>\n\n\n<p>The dynamic sorting chart shows the derivation of different categories in the ranking over time. The developer can enable this effect in ECharts with a few simple configuration code.</p>\n<h4 id=\"custom-series-animation\">Custom Series Animation</h4>\n<p>In addition to dynamic sorting charts, Apache ECharts 5 provides even richer and more powerful animations in the custom series, supporting interpolation animations for label value text, transition animations for morph, combine, separate, and other effects of graphics.</p>\n<p>Imagine what amazing visualizations you can create with these dynamic effects!</p>\n<h2 id=\"visual-design\">Visual Design</h2>\n<p>The role of visual design is not only to make the chart look better, but more importantly, a design that conforms to the principles of visualization can help users understand more quickly what the chart is trying to say and eliminate as much misunderstanding as possible from poor design.</p>\n<h4 id=\"overall-design\">Overall Design</h4>\n<p>We have found that a large percentage of developers use the default theme style for ECharts, so it is important to have an elegant default theme design. In Apache ECharts 5, we redesigned the default theme style, optimizing it for different charts and components. For example, we took into account factors such as differentiation between colors, contrast with background colors, and harmony with adjacent colors, and ensured that people with color blindness could clearly distinguish data.</p>\n<p><img src=\"documents/asset/img/feature-v5/theme-color.png\" width=\"400px\" /></p>\n<p>Let&#39;s look at the new version of the light and dark theme styles using the most commonly used bar chart as an example.</p>\n<p><img src=\"documents/asset/img/feature-v5/new-theme-light.png\" width=\"500px\" />\n<img src=\"documents/asset/img/feature-v5/new-theme-dark.png\" width=\"500px\" /></p>\n<p>For the data area zoom, timeline and other interactive components, we also designed a new style and provide a better interactive experience: &lt;img src=&quot;documents/asset/img/feature/v5/new-theme-dark.png</p>\n<p><img src=\"documents/asset/img/feature-v5/dataZoom.png\" width=\"500px\" /></p>\n<p><img src=\"documents/asset/img/feature-v5/timeline.png\" width=\"500px\" /></p>\n<h4 id=\"label\">Label</h4>\n<p>Labels are one of the core elements of a chart, and clear and unambiguous labels help users to have a more accurate understanding of the data. Apache ECharts 5 provides a variety of new labeling features that allow dense labels to be clearly displayed and accurately represented.</p>\n<p>Apache ECharts 5 can be enabled to automatically hide overlapping labels through a configuration item. For labels that exceed the display area, you can choose to automatically truncate or line break them. Dense pie chart labels now have a more aesthetically pleasing automatic layout.</p>\n<p>These features can help avoid text that is too dense and affects readability. And, no additional code needs to be written by the developer for them to take effect by default, greatly simplifying the development cost for developers.</p>\n<p>We also provide several configuration options to allow developers to actively control the layout strategy of tabs, such as tab dragging, overall display at the edge of the canvas, connecting with guide lines and graphical elements, and still linking to highlight the associated relationships.</p>\n<p>The new label feature allows you to have very clear label presentation even in a confined space mobile:</p>\n<p><img src=\"documents/asset/img/feature-v5/pie-label.png\" height=\"150px\" />\n<img src=\"documents/asset/img/feature-v5/pie-label-2.png\" height=\"150px\" /></p>\n<h4 id=\"time-axis\">Time Axis</h4>\n<p>Apache ECharts 5 brings a time axis suitable for expressing timestamp scales. The default design of the time axis highlights important information more prominently and provides more flexible customization capabilities, allowing developers to tailor the time axis&#39;s label content to different needs.</p>\n<p>First of all, the time axis is no longer split absolutely evenly as before, but instead selects more meaningful points like year, month, day, and whole point to display, and can show different levels of scales at the same time. The <code class=\"codespan\">formatter</code> of labels supports templates for time (e.g. <code class=\"codespan\">{yyyy}-{MM}-{dd}</code>), and different <code class=\"codespan\">formatter</code> can be specified for labels with different time granularity, which can be combined with rich text labels to create eye-catching and diverse time effects.</p>\n<p>The display of the time scale at different dataZoom granularities.</p>\n<p><img src=\"documents/asset/img/feature-v5/time-axis.png\" width=\"600px\" /></p>\n<p><img src=\"documents/asset/img/feature-v5/time-axis-2.png\" width=\"600px\" /></p>\n<h4 id=\"tooltip\">Tooltip</h4>\n<p>Tooltip is one of the most commonly used visualization components to help users interactively understand the details of data. In Apache ECharts 5, we have optimized the style of the tooltip, making the default display of the tooltip elegant and clear by adjusting the font style, color, arrow pointing to the graph, border color following the graph color, and other features. The rendering logic of rich text has been improved to ensure that the display is consistent with the HTML way, allowing users to choose different technical solutions to achieve the same effect in different scenarios.</p>\n<p><img src=\"documents/asset/img/feature-v5/new-tooltip.png\" height=\"200px\" />\n<img src=\"documents/asset/img/feature-v5/new-tooltip-2.png\" height=\"200px\" /></p>\n<p>In addition to this, we have also added the ability to sort the list in the tip box by value size or category order this time.</p>\n<h4 id=\"gauge\">Gauge</h4>\n<p>We have seen a lot of cool gauge charts created by community users, but the way they are configured is often complex and tricky. Therefore, we have upgraded the gauge to support image or vector path drawing pointers, anchor configurations, progress bars, rounded corner effects, and more.</p>\n<p>Different styles of gauge pointers.</p>\n<p><img src=\"documents/asset/img/feature-v5/gauge-pointer.png\" width=\"600px\" /></p>\n<p>These upgrades not only allow developers to achieve cool effects with simpler configuration items, but also bring richer customization capabilities.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=gauge-clock&edit=1&reset=1\" width=\"600\" height=\"600\" ></iframe>\n\n\n<h4 id=\"round-corner\">Round Corner</h4>\n<p>Apache ECharts 5 supports round corner for pie charts, sunburst charts, and treemap charts. Don&#39;t underestimate the simplicity of the rounded corners configuration, but combine them with other effects to create a more personalized visualization.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=sunburst-borderRadius&edit=1&reset=1\" width=\"400\" height=\"400\" ></iframe>\n\n\n\n<h2 id=\"interactivity\">Interactivity</h2>\n<p>The interactivity of the visualization helps users explore the work and deepen their understanding of the main idea of the diagram.</p>\n<h4 id=\"multi-state\">Multi-State</h4>\n<p>In ECharts 4, there were two interactive states, <code class=\"codespan\">emphasis</code> and <code class=\"codespan\">normal</code>, graph will enter the <code class=\"codespan\">emphasis</code> state when the mouse hovered to distinguish the data.</p>\n<p>This time in Apache ECharts 5, we have added a new effect of <strong>blur</strong> other non-related elements to the original mouse hover highlighting, so that the target data can be focused.</p>\n<p>For example, in this <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=bar-y-category-stack\" target=\"_blank\">bar chart</a> example, when the mouse hovers over a series, other non-related series will fade out, thus highlighting more clearly the comparison of data in the focused series. of data in the comparison. On diagrams with more complex data structures such as relationship, tree, sunburst, sankey, etc., it is also possible to see the connections between data by fading out non-related elements. Also, colors, shadows, and other styles that can be set in <code class=\"codespan\">emphasis</code> can now be set in <code class=\"codespan\">blur</code>.</p>\n<p>In addition, we&#39;ve added <strong>click to select</strong> to all series, an interaction that was previously only available in a few series such as pie charts and maps, allowing developers to set it to single or multiple selection mode, and to listen to the <code class=\"codespan\">selectchanged</code> event to get all the selected shapes for further processing. As with <code class=\"codespan\">emphasis</code> and <code class=\"codespan\">blur</code>, the selection style can also be configured in <code class=\"codespan\">select</code>.</p>\n<h4 id=\"performance-improvements\">Performance improvements</h4>\n<h5 id=\"dirty-rectangle-rendering\">Dirty Rectangle Rendering</h5>\n<p>Apache ECharts 5 has new support for dirty rectangle rendering to address performance bottlenecks in large scenes with only local changes. When using the Canvas renderer, the dirty rectangle rendering technique detects and updates only the parts of the view that have changed, rather than any changes causing a complete redraw of the canvas. This can help improve rendering frame rates in some special scenarios, such as scenes where the mouse frequently triggers some graphical highlighting many times. In the past for such scenes, additional Canvas layers were used to optimize performance, but this approach is not universal for all scenes and does not work well for complex styles. Dirty Rectangle rendering does a good job of satisfying both performance and display correctness.</p>\n<p>A visual demonstration of a dirty rectangle, with the red boxed area redrawn for the frame.</p>\n<p><img src=\"documents/asset/img/feature-v5/dirty-rect.gif\" width=\"500px\" /></p>\n<p>You can see the effect by enable dirty rectangle optimization on the new example page.</p>\n<h5 id=\"line-chart-performance-optimization-for-real-time-time-series-data\">Line Chart Performance Optimization for Real-Time Time-Series Data</h5>\n<p>In addition, the performance of line graphs with large amounts of data has also seen a significant performance improvement. We often encounter the need for high-performance plotting of large amounts of real-time time-series data, which will be updated every hundreds or tens of milliseconds.</p>\n<p>Apache ECharts 5 deeply optimizes CPU consumption, memory usage, and initialization time in these scenarios, enabling real-time updates (less than 30ms per update) for millions of data, and even rendering within 1s for ten millions of data, with low memory usage and smooth tooltip interactions.</p>\n<h2 id=\"development-experience\">Development Experience</h2>\n<p>We want such a powerful visualization tool to be used by more developers in a simpler way, so the developer experience is also a very important aspect for us.</p>\n<h4 id=\"datasets\">Datasets</h4>\n<p>ECharts 5 enhances the data transformation capabilities of datasets, allowing developers to implement common data processing such as filtering, sorting, aggregating, histogram, simple clustering, regression, etc. in a simple way. Developers can use these functions in a uniform and declarative way, and can easily implement common data operations.</p>\n<h4 id=\"internationalization\">Internationalization</h4>\n<p>The original internationalization implementation of ECharts takes the form of different distribution files packaged according to different language parameters. In this way, the dynamic language and main code are bound together, and the only way to switch languages when using ECharts is to reload different language versions of ECharts distributions.</p>\n<p>Therefore, starting with Apache ECharts 5, the dynamic language is separated from the main code. To switch languages, you only need to load the corresponding language, use the <code class=\"codespan\">registerLocale</code> function to mount the language object in a similar way to mount the theme, and then reinitialize it to complete the language switch.</p>\n<pre><code class=\"lang-js\">// import the lang object and set when init\necharts.registerLocale(&#39;DE&#39;, lang).\necharts.init(DomElement, null, {\n   locale: &#39;DE&#39;\n});\n</code></pre>\n<h4 id=\"typescript-refactoring\">TypeScript Refactoring</h4>\n<p>In order to continue to refactor and develop new features more safely and efficiently, we started the development of Apache ECharts 5 by rewriting the code using TypeScript. The strong typing brought by TypeScript gave us the confidence to refactor the code drastically to achieve more exciting features during the development of ECharts 5.</p>\n<p>For developers, we can also generate better and more code-compliant <code class=\"codespan\">DTS</code> type description files directly from TypeScript code. Until now, ECharts type description files have been maintained by community developers and published to <a href=\"https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/echarts\" target=\"_blank\">DefinityTyped</a>, which is a lot of work, so thanks for your contribution.</p>\n<p>In addition, if a developer&#39;s component is introduced on-demand, we provide a <code class=\"codespan\">ComposeOption</code> type method that can combine a configuration item type that contains only the introduced components, which can bring stricter type checking and help you detect unintroduced component types in advance.</p>\n<h2 id=\"accessibility\">Accessibility</h2>\n<p>Apache ECharts has always taken accessibility design seriously, and we want to make the information conveyed by charts equally to be accessed. We also want to make this possible for chart developers at a very low development cost, thus making developers more willing to support the accessibility.</p>\n<p>In the last major release, we supported automatic intelligent generation of chart descriptions based on different chart types and data, making it very easy for developers to support DOM description information for charts. In ECharts 5, we have also made more accessibility improvements to help people with visual impairments better understand the chart content.</p>\n<h4 id=\"theme-colors\">Theme Colors</h4>\n<p>We took accessibility into account when designing the new default theme, and we repeatedly tested the brightness and color values of the colors to help accessibility users clearly identify the chart data.</p>\n<p>Moreover, for developers with further accessibility needs, we also provide special high-contrast themes to further differentiate the data with higher contrast colors.</p>\n<h4 id=\"decal-patterns\">Decal Patterns</h4>\n<p>ECharts 5 also provides a new feature of decals to help users further differentiate data by using patterns to assist with color representation.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/aria-decal-simple&edit=1&reset=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n<p>In addition, decal patterns can also help in some other scenarios, such as: helping to better distinguish data in printed materials like newspapers and books that have only a single color or very few colors; using graphical elements to facilitate a more intuitive understanding of the data by the user.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/aria-decal-newspaper&edit=1&reset=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n\n<h2 id=\"summary\">Summary</h2>\n<p>In addition to the features described above, Apache ECharts has been improved in a very large number of details to help developers more easily create charts that good by default, are flexible in configuration, and tell the story behind the data with charts.</p>\n<p>Thank you to all the developers who have used ECharts, and even participated in community contributions, for making Apache ECharts 5 possible. We&#39;ll be working on future developments with even more enthusiasm, and we&#39;ll see you all in 6 with even more enthusiasm!</p>\n"},"ECharts 5 Upgrade Guide":{"type":["*"],"description":"<p>This guide is for those who want to upgrade from echarts 4.x (hereafter <code class=\"codespan\">v4</code>) to echarts 5.x (hereafter <code class=\"codespan\">v5</code>). You can find out what new features <code class=\"codespan\">v5</code> brings that are worth upgrading in <a href=\"tutorial.html#ECharts%205%20Upgrade%20Guide\" target=\"_blank\">New Features in ECharts 5</a>. In most cases, developers won&#39;t need to do anything extra for this upgrade, as echarts has always tried to keep the API as stable and backward-compatible as possible. However, <code class=\"codespan\">v5</code> still brings some breaking changes that require special attention. In addition, in some cases, <code class=\"codespan\">v5</code> provides a better API to replace the previous one, and these superseded APIs will no longer be recommended (though we have tried to be as compatible as possible with these changes). We&#39;ll try to explain these changes in detail in this document.</p>\n<p>Since we added the new <a href=\"tutorial.html#Use%20ECharts%20with%20bundler%20and%20NPM\" target=\"_blank\">tree-shaking API</a> in <code class=\"codespan\">v5.0.1</code>, this documentation is based on <code class=\"codespan\">v5.0.1</code> or higher.</p>\n<h2 id=\"breaking-changes\">Breaking Changes</h2>\n<h4 id=\"default-theme\">Default theme</h4>\n<p>First of all, the default theme has been changed. <code class=\"codespan\">v5</code> has made a lot of changes and optimizations on the theme design. If you still want to keep the colors of the old version, you can manually declare the colors as follows.</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    color: [\n        &#39;#c23531&#39;, &#39;#2f4554&#39;, &#39;#61a0a8&#39;, &#39;#d48265&#39;, &#39;#91c7ae&#39;, &#39;#749f83&#39;,\n        &#39;#ca8622&#39;, &#39;#bda29a&#39;, &#39;#6e7074&#39;, &#39;#546570&#39;, &#39;#c4ccd3&#39;\n    ],\n    // ...\n});\n</code></pre>\n<p>Or, to make a simple <code class=\"codespan\">v4</code> theme.</p>\n<pre><code class=\"lang-js\">var themeEC4 = {\n    color: [\n        &#39;#c23531&#39;, &#39;#2f4554&#39;, &#39;#61a0a8&#39;, &#39;#d48265&#39;, &#39;#91c7ae&#39;, &#39;#749f83&#39;,\n        &#39;#ca8622&#39;, &#39;#bda29a&#39;, &#39;#6e7074&#39;, &#39;#546570&#39;, &#39;#c4ccd3&#39;\n    ]\n};\nvar chart = echarts.init(dom, themeEC4);\nchart.setOption(/* ... */);\n</code></pre>\n<h4 id=\"importing-echarts\">Importing ECharts</h4>\n<h5 id=\"removing-support-for-default-exports\">Removing support for default exports</h5>\n<p>Since <code class=\"codespan\">v5</code>, echarts only provides <code class=\"codespan\">named exports</code>.</p>\n<p>So if you are importing <code class=\"codespan\">echarts</code> like this:</p>\n<pre><code class=\"lang-js\">import echarts from &#39;echarts&#39;;\n// Or import core module\nimport echarts from &#39;echarts/lib/echarts&#39;;\n</code></pre>\n<p>It will throw error in <code class=\"codespan\">v5</code>. You need to change the code as follows to import the entire module.</p>\n<pre><code class=\"lang-js\">import * as echarts from &#39;echarts&#39;;\n// Or\nimport * as echarts from &#39;echarts/lib/echarts&#39;;\n</code></pre>\n<h5 id=\"tree-shaking-api\">tree-shaking API</h5>\n<p>In 5.0.1, we introduced the new <a href=\"tutorial.html#Use%20ECharts%20with%20bundler%20and%20NPM\" target=\"_blank\">tree-shaking API</a></p>\n<pre><code class=\"lang-js\">import * as echarts from &#39;echarts/core&#39;;\nimport { BarChart } from &#39;echarts/charts&#39;;\nimport { GridComponent } from &#39;echarts/components&#39;;\n// Note that the Canvas renderer is no longer included by default and needs to be imported explictly, or import the SVGRenderer if you need to use the SVG rendering mode\nimport { CanvasRenderer } from &#39;echarts/renderers&#39;;\n\necharts.use([BarChart, GridComponent, CanvasRenderer]);\n</code></pre>\n<p>To make it easier for you to know which modules you need to import based on your option, our new example page adds a new feature to generate the three-shakable code, you can check the <code class=\"codespan\">Full Code</code> tab on the example page to see the modules you need to introduce and the related code.</p>\n<p>In most cases, we recommend using the new tree-shaking interface whenever possible, as it maximizes the power of the packaging tool tree-shaking and effectively resolves namespace conflicts and prevents the exposure of internal structures. If you are still using the CommonJS method of writing modules, the previous approach is still supported:</p>\n<pre><code class=\"lang-js\">const echarts = require(&#39;echarts/lib/echarts&#39;);\nrequire(&#39;echarts/lib/chart/bar&#39;);\nrequire(&#39;echarts/lib/component/grid&#39;);\n</code></pre>\n<p>Second, because our source code has been rewritten using TypeScript, <code class=\"codespan\">v5</code> will no longer support importing files from <code class=\"codespan\">echarts/src</code>. You need to change it to import from <code class=\"codespan\">echarts/lib</code>.</p>\n<h5 id=\"dependency-adjustment\">dependency adjustment</h5>\n<blockquote>\n<p>Note: This section is only for developers who use tree-shaking interfaces to ensure a minimal bundle size, not for those who imports the whole package.</p>\n</blockquote>\n<p>In order to keep the size of the bundle small enough, we remove some dependencies that would have been imported by default. For example, as mentioned above, when using the new on-demand interface, <code class=\"codespan\">CanvasRenderer</code> is no longer introduced by default, which ensures that unneeded Canvas rendering code is not imported when only SVG rendering mode is used, and in addition, the following dependencies are adjusted.</p>\n<ul>\n<li>The right-angle coordinate system component is no longer introduced by default when using line charts and bar charts, so the following introduction method was used before<pre><code class=\"lang-js\">const echarts = require(&#39;echarts/lib/echarts&#39;);\nrequire(&#39;echarts/lib/chart/bar&#39;);\nrequire(&#39;echarts/lib/chart/line&#39;);\n</code></pre>\nNeed to introduce the <code class=\"codespan\">grid</code> component separately again<pre><code class=\"lang-js\">require(&#39;echarts/lib/component/grid&#39;);\n</code></pre>\n</li>\n</ul>\n<p>Reference issues: <a href=\"https://github.com/apache/echarts/issues/14080\" target=\"_blank\">#14080</a>, <a href=\"https://github.com/apache/echarts/issues/13764\" target=\"_blank\">#13764</a></p>\n<ul>\n<li><code class=\"codespan\">aria</code> components are no longer imported by default. You need import it manually if necessary.<pre><code class=\"lang-js\">import { AriaComponent } from &#39;echarts/components&#39;;\necharts.use(AriaComponent);\n</code></pre>\nOr<pre><code class=\"lang-js\">require(&#39;echarts/lib/component/aria&#39;);\n</code></pre>\n</li>\n</ul>\n<h4 id=\"removes-built-in-geojson\">removes built-in geoJSON</h4>\n<p><code class=\"codespan\">v5</code> removes the built-in geoJSON (previously in the <code class=\"codespan\">echarts/map</code> folder). These geoJSON files were always sourced from third parties. If users still need them, they can go get them from the old version, or find more appropriate data and register it with ECharts via the registerMap interface.</p>\n<h4 id=\"browser-compatibility\">Browser Compatibility</h4>\n<p>IE8 is no longer supported by <code class=\"codespan\">v5</code>. We no longer maintain and upgrade the previous <a href=\"https://github.com/ecomfe/zrender/tree/4.3.2/src/vml\" target=\"_blank\">VML renderer</a> for IE8 compatibility. If developers have a strong need for a VML renderer, they are welcome to submit a pull request to upgrade the VML renderer or maintain a separate third-party VML renderer, as we support registration of standalone renderers starting with <code class=\"codespan\">v5.0.1</code>.</p>\n<h4 id=\"echarts-configuration-item-adjustment\">ECharts configuration item adjustment</h4>\n<h5 id=\"visual-style-settings-priority-change\">Visual style settings priority change</h5>\n<p>The priority of the visuals between <a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a> and <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a> are reversed since <code class=\"codespan\">v5</code>.</p>\n<p>That is, previously in <code class=\"codespan\">v4</code>, the visuals (i.e., color, symbol, symbolSize, ...) that generated by <a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a> has the highest priority, which will overwrite the same visuals settings in <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a>. That brought troubles when needing to specify specific style to some certain data items while using <a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a>. Since <code class=\"codespan\">v5</code>, the visuals specified in <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a> has the highest priority.</p>\n<p>In most cases, users will probably not notice this change when migrating from <code class=\"codespan\">v4</code> to <code class=\"codespan\">v5</code>. But users can still check that if <a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a> and <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a> are both specified.</p>\n<h5 id=\"padding-for-rich-text\"><code class=\"codespan\">padding</code> for rich text</h5>\n<p><code class=\"codespan\">v5</code> adjusts the <a href=\"option.html#series-scatter.label.rich.&lt;style_name&gt;.padding\" target=\"_blank\">rich.?.padding</a> to make it more compliant with CSS specifications. In <code class=\"codespan\">v4</code>, for example <code class=\"codespan\">rich. .padding: [11, 22, 33, 44]</code> means that <code class=\"codespan\">padding-top</code> is <code class=\"codespan\">33</code> and <code class=\"codespan\">padding-bottom</code> is <code class=\"codespan\">11</code>. The position of the top and bottom is adjusted in <code class=\"codespan\">v5</code>, <code class=\"codespan\">rich. .padding: [11, 22, 33, 44]</code> means that <code class=\"codespan\">padding-top</code> is <code class=\"codespan\">11</code> and <code class=\"codespan\">padding-bottom</code> is <code class=\"codespan\">33</code>.</p>\n<p>If the user is using <a href=\"option.html#series-scatter.label.rich.&lt;style_name&gt;.padding\" target=\"_blank\">rich.?.padding</a>, this order needs to be adjusted.</p>\n<h2 id=\"echarts-related-extensions\">ECharts Related Extensions</h2>\n<p>These extensions need to be upgraded to new version to support echarts <code class=\"codespan\">v5</code>:</p>\n<ul>\n<li><a href=\"https://github.com/ecomfe/echarts-gl\" target=\"_blank\">echarts-gl</a></li>\n<li><a href=\"https://github.com/ecomfe/echarts-wordcloud\" target=\"_blank\">echarts-wordcloud</a></li>\n<li><a href=\"https://github.com/ecomfe/echarts-liquidfill\" target=\"_blank\">echarts-liquidfill</a></li>\n</ul>\n<h2 id=\"deprecated-api\">Deprecated API</h2>\n<p>Some of the API and echarts options are deprecated since <code class=\"codespan\">v5</code>, but are still backward compatible. Users can <strong>keep using these deprecated API</strong>, with only some warning will be printed to console in dev mode. But if users have spare time, it is recommended to upgraded to new API for the consideration of long term maintenance.</p>\n<p>The deprecated API and their corresponding new API are listed as follows:</p>\n<ul>\n<li>Transform related props of a graphic element are changed:<ul>\n<li>Changes:<ul>\n<li><code class=\"codespan\">position: [number, number]</code> are changed to <code class=\"codespan\">x: number</code>/<code class=\"codespan\">y: number</code>.</li>\n<li><code class=\"codespan\">scale: [number, number]</code> are changed to <code class=\"codespan\">scaleX: number</code>/<code class=\"codespan\">scaleY: number</code>.</li>\n<li><code class=\"codespan\">origin: [number, number]</code> are changed to <code class=\"codespan\">originX: number</code>/<code class=\"codespan\">originY: number</code>.</li>\n</ul>\n</li>\n<li>The <code class=\"codespan\">position</code>, <code class=\"codespan\">scale</code> and <code class=\"codespan\">origin</code> are still supported but deprecated.</li>\n<li>It effects these places:<ul>\n<li>In the <code class=\"codespan\">graphic</code> components: the declarations of each element.</li>\n<li>In <code class=\"codespan\">custom series</code>: the declarations of each element in the return of <code class=\"codespan\">renderItem</code>.</li>\n<li>Directly use zrender graphic elements.</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>Text related props on graphic elements are changed:<ul>\n<li>Changes:<ul>\n<li>The declaration of attached text (or say, rect text) are changed.<ul>\n<li>Prop <code class=\"codespan\">style.text</code> are deprecated in elements except <code class=\"codespan\">Text</code>. Instead, Prop set <code class=\"codespan\">textContent</code> and <code class=\"codespan\">textConfig</code> are provided to support more powerful capabilities.</li>\n<li>These related props at the left part below are deprecated. Use the right part below instead.<ul>\n<li>textPosition =&gt; textConfig.position</li>\n<li>textOffset =&gt; textConfig.offset</li>\n<li>textRotation =&gt; textConfig.rotation</li>\n<li>textDistance =&gt; textConfig.distance</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>The props at the left part below are deprecated in <code class=\"codespan\">style</code> and <code class=\"codespan\">style.rich.?</code>. Use the props at the right part below instead.<ul>\n<li>textFill =&gt; fill</li>\n<li>textStroke =&gt; stroke</li>\n<li>textFont =&gt; font</li>\n<li>textStrokeWidth =&gt; lineWidth</li>\n<li>textAlign =&gt; align</li>\n<li>textVerticalAlign =&gt; verticalAlign);</li>\n<li>textLineHeight =&gt;</li>\n<li>textWidth =&gt; width</li>\n<li>textHeight =&gt; hight</li>\n<li>textBackgroundColor =&gt; backgroundColor</li>\n<li>textPadding =&gt; padding</li>\n<li>textBorderColor =&gt; borderColor</li>\n<li>textBorderWidth =&gt; borderWidth</li>\n<li>textBorderRadius =&gt; borderRadius</li>\n<li>textBoxShadowColor =&gt; shadowColor</li>\n<li>textBoxShadowBlur =&gt; shadowBlur</li>\n<li>textBoxShadowOffsetX =&gt; shadowOffsetX</li>\n<li>textBoxShadowOffsetY =&gt; shadowOffsetY</li>\n</ul>\n</li>\n<li>Note: these props are not changed:<ul>\n<li>textShadowColor</li>\n<li>textShadowBlur</li>\n<li>textShadowOffsetX</li>\n<li>textShadowOffsetY</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>It effects these places:<ul>\n<li>In the <code class=\"codespan\">graphic</code> components: the declarations of each element. [compat, but not accurately the same in some complicated cases.]</li>\n<li>In <code class=\"codespan\">custom series</code>: the declarations of each element in the return of <code class=\"codespan\">renderItem</code>. [compat, but not accurately the same in some complicated cases].</li>\n<li>Directly use zrender API to create graphic elements. [No compat, breaking change].</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>API on chart instance:<ul>\n<li><code class=\"codespan\">chart.one(...)</code> is deprecated.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">label</code>:<ul>\n<li>In props <code class=\"codespan\">color</code>, <code class=\"codespan\">textBorderColor</code>, <code class=\"codespan\">backgroundColor</code> and <code class=\"codespan\">borderColor</code>, the value <code class=\"codespan\">&#39;auto&#39;</code> is deprecated. Use the value <code class=\"codespan\">&#39;inherit&#39;</code> instead.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">hoverAnimation</code>:<ul>\n<li>option <code class=\"codespan\">series.hoverAnimation</code> is deprecated. Use <code class=\"codespan\">series.emphasis.scale</code> instead.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">line series</code>:<ul>\n<li>option <code class=\"codespan\">series.clipOverflow</code> is deprecated. Use <code class=\"codespan\">series.clip</code> instead.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">custom series</code>:<ul>\n<li>In <code class=\"codespan\">renderItem</code>, the <code class=\"codespan\">api.style(...)</code> and <code class=\"codespan\">api.styleEmphasis(...)</code> are deprecated. Because it is not really necessary and hard to ensure backward compatibility. Users can fetch system designated visual by <code class=\"codespan\">api.visual(...)</code>.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">sunburst series</code>:<ul>\n<li>Action type <code class=\"codespan\">highlight</code> is deprecated. Use <code class=\"codespan\">sunburstHighlight</code> instead.</li>\n<li>Action type <code class=\"codespan\">downplay</code> is deprecated. Use <code class=\"codespan\">sunburstUnhighlight</code> instead.</li>\n<li>option <code class=\"codespan\">series.downplay</code> is deprecated. Use <code class=\"codespan\">series.blur</code> instead.</li>\n<li>option <code class=\"codespan\">series.highlightPolicy</code> is deprecated. Use <code class=\"codespan\">series.emphasis.focus</code> instead.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">pie series</code>:<ul>\n<li>The action type at the left part below are deprecated. Use the right part instead:<ul>\n<li><code class=\"codespan\">pieToggleSelect</code> =&gt; <code class=\"codespan\">toggleSelect</code></li>\n<li><code class=\"codespan\">pieSelect</code> =&gt; <code class=\"codespan\">select</code></li>\n<li><code class=\"codespan\">pieUnSelect</code> =&gt; <code class=\"codespan\">unselect</code></li>\n</ul>\n</li>\n<li>The event type at the left part below are deprecated. Use the right part instead:<ul>\n<li><code class=\"codespan\">pieselectchanged</code> =&gt; <code class=\"codespan\">selectchanged</code></li>\n<li><code class=\"codespan\">pieselected</code> =&gt; <code class=\"codespan\">selected</code></li>\n<li><code class=\"codespan\">pieunselected</code> =&gt; <code class=\"codespan\">unselected</code></li>\n</ul>\n</li>\n<li>option <code class=\"codespan\">series.label.margin</code> is deprecated. Use <code class=\"codespan\">series.label.edgeDistance</code> instead.</li>\n<li>option <code class=\"codespan\">series.clockWise</code> is deprecated. Use <code class=\"codespan\">series.clockwise</code> instead.</li>\n<li>option <code class=\"codespan\">series.hoverOffset</code> is deprecated. Use <code class=\"codespan\">series.emphasis.scaleSize</code> instead.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">map series</code>:<ul>\n<li>The action type at the left part below are deprecated. Use the right part instead:<ul>\n<li><code class=\"codespan\">mapToggleSelect</code> =&gt; <code class=\"codespan\">toggleSelect</code></li>\n<li><code class=\"codespan\">mapSelect</code> =&gt; <code class=\"codespan\">select</code></li>\n<li><code class=\"codespan\">mapUnSelect</code> =&gt; <code class=\"codespan\">unselect</code></li>\n</ul>\n</li>\n<li>The event type at the left part below are deprecated. Use the right part instead:<ul>\n<li><code class=\"codespan\">mapselectchanged</code> =&gt; <code class=\"codespan\">selectchanged</code></li>\n<li><code class=\"codespan\">mapselected</code> =&gt; <code class=\"codespan\">selected</code></li>\n<li><code class=\"codespan\">mapunselected</code> =&gt; <code class=\"codespan\">unselected</code></li>\n</ul>\n</li>\n<li>option <code class=\"codespan\">series.mapType</code> is deprecated. Use <code class=\"codespan\">series.map</code> instead.</li>\n<li>option <code class=\"codespan\">series.mapLocation</code> is deprecated.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">graph series</code>:<ul>\n<li>option <code class=\"codespan\">series.focusNodeAdjacency</code> is deprecated. Use <code class=\"codespan\">series.emphasis: { focus: &#39;adjacency&#39;}</code> instead.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">gauge series</code>:<ul>\n<li>option <code class=\"codespan\">series.clockWise</code> is deprecated. Use <code class=\"codespan\">series.clockwise</code> instead.</li>\n<li>option <code class=\"codespan\">series.hoverOffset</code> is deprecated. Use <code class=\"codespan\">series.emphasis.scaleSize</code> instead.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">dataZoom component</code>:<ul>\n<li>option <code class=\"codespan\">dataZoom.handleIcon</code> need prefix <code class=\"codespan\">path://</code> if using SVGPath.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">radar</code>:<ul>\n<li>option <code class=\"codespan\">radar.name</code> is deprecated. Use <code class=\"codespan\">radar.axisName</code> instead.</li>\n<li>option <code class=\"codespan\">radar.nameGap</code> is deprecated. Use <code class=\"codespan\">radar.axisNameGap</code> instead.</li>\n</ul>\n</li>\n<li>Parse and format:<ul>\n<li><code class=\"codespan\">echarts.format.formatTime</code> is deprecated. Use <code class=\"codespan\">echarts.time.format</code> instead.</li>\n<li><code class=\"codespan\">echarts.number.parseDate</code> is deprecated. Use <code class=\"codespan\">echarts.time.parse</code> instead.</li>\n<li><code class=\"codespan\">echarts.format.getTextRect</code> is deprecated.</li>\n</ul>\n</li>\n</ul>\n"},"Use ECharts with bundler and NPM":{"type":["*"],"description":"<p>If your development environment uses a package management tool like <code class=\"codespan\">npm</code> or <code class=\"codespan\">yarn</code> and builds with a packaging tool like Webpack, this article will describe how to get a minimal bundle of Apache ECharts<sup>TM</sup> via treeshaking.</p>\n<h2 id=\"npm-installation-of-echarts\">NPM installation of ECharts</h2>\n<p>You can install ECharts via npm using the following command</p>\n<pre><code class=\"lang-shell\">npm install echarts --save\n</code></pre>\n<h2 id=\"introduce-echarts\">Introduce ECharts</h2>\n<pre><code class=\"lang-js\">import * as echarts from &#39;echarts&#39;;\n\n// initialize the echarts instance\nvar myChart = echarts.init(document.getElementById(&#39;main&#39;));\n// Draw the chart\nmyChart.setOption({\n    title: {\n        text: &#39;ECharts Getting Started Example&#39;\n    },\n    tooltip: {},\n    xAxis: {\n        data: [&#39;shirt&#39;, &#39;cardigan&#39;, &#39;chiffon&#39;, &#39;pants&#39;, &#39;heels&#39;, &#39;socks&#39;]\n    },\n    yAxis: {},\n    series: [{\n        name: &#39;sales&#39;,\n        type: &#39;bar&#39;,\n        data: [5, 20, 36, 10, 10, 20]\n    }]\n});\n</code></pre>\n<h2 id=\"importing-required-charts-and-components-to-have-minimal-bundle-\">Importing required charts and components to have minimal bundle.</h2>\n<p>The above code will import all the charts and components in ECharts, but if you don&#39;t want to bring in all the components, you can use the tree-shakeable interface provided by ECharts to bundle the required components and get a minimal bundle.</p>\n<pre><code class=\"lang-js\">// Import the echarts core module, which provides the necessary interfaces for using echarts.\nimport * as echarts from &#39;echarts/core&#39;;\n// Import bar charts, all with Chart suffix\nimport {\n    BarChart\n} from &#39;echarts/charts&#39;;\n// import the tooltip, title, and rectangular coordinate system components, all suffixed with Component\nimport {\n    TitleComponent,\n    TooltipComponent,\n    GridComponent\n} from &#39;echarts/components&#39;;\n// Import the Canvas renderer, note that introducing the CanvasRenderer or SVGRenderer is a required step\nimport {\n    CanvasRenderer\n} from &#39;echarts/renderers&#39;;\n\n// Register the required components\necharts.use(\n    [TitleComponent, TooltipComponent, GridComponent, BarChart, CanvasRenderer]\n);\n\n// The next step is the same as before, initialize the chart and set the configuration items\nvar myChart = echarts.init(document.getElementById(&#39;main&#39;));\nmyChart.setOption({\n    ...\n});\n</code></pre>\n<blockquote>\n<p>Note that in order to keep the size of the package to a minimum, ECharts does not provide any renderer in tree-shakeable interface, so you need to choose to import <code class=\"codespan\">CanvasRenderer</code> or <code class=\"codespan\">SVGRenderer</code> as the renderer. The advantage of this is that if you only need to use the svg rendering mode, the bundle will not include the <code class=\"codespan\">CanvasRenderer</code> module, which is not needed.</p>\n</blockquote>\n<p>The &quot;Full Code&quot; tab on our sample editor page provides a very convenient way to generate a tree-shakable code. It will generate tree-shakable code based on the current option dynamically. You can use it directly in your project.</p>\n<h2 id=\"minimal-option-type-in-typescript\">Minimal Option Type in TypeScript</h2>\n<p>For developers who are using TypeScript to develop ECharts, we provide a type interface to combine the minimal <code class=\"codespan\">EChartsOption</code> type. This stricter type can effectively help you check for missing components or charts.</p>\n<pre><code class=\"lang-ts\">import * as echarts from &#39;echarts/core&#39;;\nimport {\n    BarChart,\n    // The series types are defined with the SeriesOption suffix\n    BarSeriesOption,\n    LineChart,\n    LineSeriesOption\n} from &#39;echarts/charts&#39;;\nimport {\n    TitleComponent,\n    // The component types are defined with the suffix ComponentOption\n    TitleComponentOption,\n    GridComponent,\n    GridComponentOption\n} from &#39;echarts/components&#39;;\nimport {\n    CanvasRenderer\n} from &#39;echarts/renderers&#39;;\n\n// Combine an Option type with only required components and charts via ComposeOption\ntype ECOption = echarts.ComposeOption&lt;\n  BarSeriesOption | LineSeriesOption | TitleComponentOption | GridComponentOption\n&gt;;\n\n// Register the required components\necharts.use(\n    [TitleComponent, TooltipComponent, GridComponent, BarChart, CanvasRenderer]\n);\n\nvar option: ECOption = {\n    ...\n}\n</code></pre>\n"},"ECharts Basic Concepts Overview":{"type":["*"],"description":"<p>This chapter describes some of the common concepts and terms of Apache ECharts<sup>TM</sup>.</p>\n<h2 id=\"echarts-instance\">ECharts instance</h2>\n<p>We can create multiple <code class=\"codespan\">echarts instances</code> in a webpage. In each <code class=\"codespan\">echarts instance</code> we can create multiple diagrams, coordinate systems, etc. (described by <code class=\"codespan\">option</code>). With a DOM element prepared (as the container of an echarts instance), we can create a <code class=\"codespan\">echarts instance</code> based on that element. Each <code class=\"codespan\">echarts instance</code> takes its DOM element exclusively.</p>\n<p><br></p>\n<p><img width=\"500\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/multiple-ec-instance.jpg\"></p>\n<h2 id=\"series\">Series</h2>\n<p><a href=\"option.html#series\" target=\"_blank\">series</a> is a very common term. In echarts, <a href=\"option.html#series\" target=\"_blank\">series</a> represents a series of value and the diagram generated from them. So the concept <a href=\"option.html#series\" target=\"_blank\">series</a> includes these key points: a series of value, the type of the diagram (<code class=\"codespan\">series.type</code>) and other parameters specified for the mapping from the values to a diagram.</p>\n<p>In echarts, the <code class=\"codespan\">series.type</code> and the &quot;diagram type&quot; are the same concept. <code class=\"codespan\">series.type</code> includes: <a href=\"option.html#series-line\" target=\"_blank\">line</a> (line plot), <a href=\"option.html#series-bar\" target=\"_blank\">bar</a> (bar chart), <a href=\"option.html#series-pie\" target=\"_blank\">pie</a> (pie chart), <a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a> (scatter plot), <a href=\"option.html#series-graph\" target=\"_blank\">graph</a> (graph plot), <a href=\"option.html#series-tree\" target=\"_blank\">tree</a> (tree plot), etc.</p>\n<p>In the example below, there are three <a href=\"option.html#series\" target=\"_blank\">series</a> (<a href=\"option.html#series-pie\" target=\"_blank\">pie</a>, <a href=\"option.html#series-line\" target=\"_blank\">line</a>, <a href=\"option.html#series-bar\" target=\"_blank\">bar</a>) declared in the <code class=\"codespan\">option</code> on the right, where <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> are declared in each series:</p>\n<p><br></p>\n<p><img width=\"700\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/series-all-a.jpg\"></p>\n<p><br></p>\n<p>Similarly, the following example shows another style of <code class=\"codespan\">option</code>, where each series retrieves data from <a href=\"option.html#dataset\" target=\"_blank\">dataset</a>:</p>\n<p><br></p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/series-all-b.jpg\"></p>\n<h2 id=\"component\">Component</h2>\n<p>Over series, the entities in echarts are abstracted using the term &quot;component&quot;. For example, echarts includes these components: <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a> (the x axis of Cartesian coordinate system), <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a> (the y axis of Cartesian coordinate system), <a href=\"option.html#grid\" target=\"_blank\">grid</a> (the baseboard of Cartesian coordinate system), <a href=\"option.html#angleAxis\" target=\"_blank\">angleAxis</a> (the angle axis of polar coordinate system), <a href=\"option.html#radiusAxis\" target=\"_blank\">radiusAxis</a> (the radius axis of polar coordinate system), <a href=\"option.html#polar\" target=\"_blank\">polar</a> (the baseboard of polar coordinate system), <a href=\"option.html#geo\" target=\"_blank\">geo</a> (GEO coordinate system), <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a> (the component for changing the displayed range of data), <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> (the component for specifying the visual mapping), <a href=\"option.html#tooltip\" target=\"_blank\">tooltip</a> (the tooltip component), <a href=\"option.html#toolbox\" target=\"_blank\">toolbox</a> (the toolbox component), <a href=\"option.html#series\" target=\"_blank\">series</a>, etc.</p>\n<p>Notice that <a href=\"option.html#series\" target=\"_blank\">series</a> is a kind of component, a component for rendering diagram.</p>\n<p>Check the example below. Components (including series) are declared in <code class=\"codespan\">option</code> on the right, and the are finally rendered in the echarts instance.</p>\n<p><br></p>\n<p><img width=\"800\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/components.jpg\"></p>\n<p><br></p>\n<p>Notice: although <a href=\"option.html#series\" target=\"_blank\">series</a> is a kind of component, sometimes we can see phrases like &quot;series and components&quot;. The term &quot;component&quot; in this context actually means &quot;components except series&quot;.</p>\n<h2 id=\"define-charts-using-option\">Define charts using option</h2>\n<p>We have met the term <code class=\"codespan\">option</code> above. Users should use <code class=\"codespan\">option</code> to describe all of their requirements and input it to echarts. The requirements includes: &quot;what does the data like&quot;, &quot;what the diagram we need&quot;, &quot;what components we need&quot;, &quot;what the user interactions we need&quot;, etc. In short, <code class=\"codespan\">option</code> defines: <code class=\"codespan\">data</code>, <code class=\"codespan\">visual mapping</code>, <code class=\"codespan\">interaction</code>.</p>\n<pre><code class=\"lang-js\">// Create an echarts instance.\nvar dom = document.getElementById(&#39;dom-id&#39;);\nvar chart = echarts.init(dom);\n\n// Use option to describe `data`, `visual mapping`, `interaction`, ...\n// `option` is a big JavaScript object.\nvar option = {\n    // Each property represents a kind of components.\n    legend: {...},\n    grid: {...},\n    tooltip: {...},\n    toolbox: {...},\n    dataZoom: {...},\n    visualMap: {...},\n    // If there are more than one components in one kind, we use an array.\n    // For example, there are three x axes here.\n    xAxis: [\n        // Each item represents an instance of component.\n        // `type` is used to indicate the sub-type of the component.\n        {type: &#39;category&#39;, ...},\n        {type: &#39;category&#39;, ...},\n        {type: &#39;value&#39;, ...}\n    ],\n    yAxis: [{...}, {...}],\n    // There are multiple series, using an array.\n    series: [\n        // `type` is also used to indicate the sub-type\n        // (i.e., diagram type) of each series.\n        {type: &#39;line&#39;, data: [[&#39;AA&#39;, 332], [&#39;CC&#39;, 124], [&#39;FF&#39;, 412], ... ]},\n        {type: &#39;line&#39;, data: [2231, 1234, 552, ... ]},\n        {type: &#39;line&#39;, data: [[4, 51], [8, 12], ... ]}\n    }]\n};\n\n// Call `setOption` and input the `option`. And then the\n// echarts instance processes data and renders charts.\nchart.setOption(option);\n</code></pre>\n<p>Data is put in <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> in the above example. And we give another example showing another way, where each series retrieves data from <a href=\"option.html#dataset\" target=\"_blank\">dataset</a>:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: {\n        source: [\n            [121, &#39;XX&#39;, 442, 43.11],\n            [663, &#39;ZZ&#39;, 311, 91.14],\n            [913, &#39;ZZ&#39;, 312, 92.12],\n            ...\n        ]\n    },\n    xAxis: {},\n    yAxis: {},\n    series: [\n        // Each series retrieves data from `dataset`. The values in `encode`\n        // are the indices of the dimensions (i.e., column) of `dataset.source`.\n        {type: &#39;bar&#39;, encode: {x: 1, y: 0}},\n        {type: &#39;bar&#39;, encode: {x: 1, y: 2}},\n        {type: &#39;scatter&#39;, encode: {x: 1, y: 3}},\n        ...\n    ]\n};\n</code></pre>\n<h2 id=\"position-a-component\">Position a component</h2>\n<p>These approaches are used to Position a component.</p>\n<p><br></p>\n<p><strong>[Absolute positioning like CSS]</strong></p>\n<p><br></p>\n<p>Most components and series can be absolutely positioned according to <code class=\"codespan\">top</code> / <code class=\"codespan\">right</code> / <code class=\"codespan\">down</code> / <code class=\"codespan\">left</code> / <code class=\"codespan\">width</code> / <code class=\"codespan\">height</code>. This approach is like the absolute positioning in CSS. The absolute positioning is based on the container DOM element of the echarts.</p>\n<p>The value of each attribute can be:</p>\n<ul>\n<li>Absolute value (like <code class=\"codespan\">bottom: 54</code>, means: the distance from the boundary of the echarts container to bottom boundary of the component is <code class=\"codespan\">54</code> pixel).</li>\n<li>Or the percentage based on the width/height of the echarts container (like <code class=\"codespan\">right: &#39;20%&#39;</code>, means: the distance from the boundary of the echarts container to the right boundary of this component is <code class=\"codespan\">20%</code> of the width of the echarts container).</li>\n</ul>\n<p>Check the example below, where the <a href=\"option.html#grid\" target=\"_blank\">grid</a> component (that is the baseboard of a Cartesian coordinate system) are configured with <code class=\"codespan\">left</code>、<code class=\"codespan\">right</code>、<code class=\"codespan\">height</code>、<code class=\"codespan\">bottom</code>.</p>\n<p><br></p>\n<p><img width=\"800\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/locate.jpg\"></p>\n<p><br></p>\n<p>Note that <code class=\"codespan\">left</code> <code class=\"codespan\">right</code> <code class=\"codespan\">width</code> are one group of attributes for horizontal layout, while <code class=\"codespan\">top</code> <code class=\"codespan\">bottom</code> <code class=\"codespan\">height</code> are another group of attributes for vertical layout. The two groups have nothing to do with each other. In each group, it is enough to set only one or at most two attributes. For example, when <code class=\"codespan\">left</code> and <code class=\"codespan\">right</code> have been specified, <code class=\"codespan\">width</code> can be automatically calculated by them.</p>\n<p><br></p>\n<p><strong>[Center-radius positioning]</strong></p>\n<p><br></p>\n<p>A few circular components or series need to be positioned by &quot;center&quot; and &quot;radius&quot;. For example, <a href=\"option.html#series-pie\" target=\"_blank\">pie</a> (pie chart)、<a href=\"option.html#series-sunburst\" target=\"_blank\">sunburst</a> (sunburst chart)、<a href=\"option.html#polar\" target=\"_blank\">polar</a> (polar coordinate system).</p>\n<p>As the name implies, it position the component according to <a href=\"option.html#series-pie.center\" target=\"_blank\">center</a> and <a href=\"option.html#series-pie.radius\" target=\"_blank\">radius</a>.</p>\n<p><br></p>\n<p><strong>[Other positioning]</strong></p>\n<p><br></p>\n<p>A few other components may has their own specific positioning approach. Check their docs before using them.</p>\n<h2 id=\"coordinate-system\">Coordinate system</h2>\n<p>Many series, like <a href=\"option.html#series-line\" target=\"_blank\">line</a>, <a href=\"option.html#series-bar\" target=\"_blank\">bar</a>, <a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>, <a href=\"option.html#series-heatmap\" target=\"_blank\">heatmap</a>, etc., need to work on a coordinate system. Coordinate system is used to layout each graphic elements and display some ticks and labels. For example, echarts at least provides these coordinate systems: <a href=\"option.html#grid\" target=\"_blank\">Cartesian coordinate system</a>, <a href=\"option.html#polar\" target=\"_blank\">polar coordinate system</a>, <a href=\"option.html#geo\" target=\"_blank\">GEO coordinate system</a>, <a href=\"option.html#singleAxis\" target=\"_blank\">single axis coordinate system</a>, <a href=\"option.html#calendar\" target=\"_blank\">calendar coordinate system</a>, etc. Some other series like <a href=\"option.html#series-pie\" target=\"_blank\">pie</a>, <a href=\"option.html#series-tree\" target=\"_blank\">tree</a>, work independently without any coordinate systems. And still some other series like <a href=\"option.html#series-graph\" target=\"_blank\">graph</a> are available either independently or on some coordinate system, depending on user settings.</p>\n<p>A coordinate system may consist of several components. For example, Cartesian coordinate system consists of <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a>, <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a> and <a href=\"option.html#grid\" target=\"_blank\">grid</a> (the baseboard). <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a> and <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a> are referenced and assembled by <code class=\"codespan\">grid</code> and work together cooperatively.</p>\n<p>The following example demonstrates the most simple way to use a Cartesian coordinate system, where only <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a>, <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a> and a <a href=\"option.html#series-scatter\" target=\"_blank\">scatter series</a> are declared, and <code class=\"codespan\">echarts</code> create and a <code class=\"codespan\">grid</code> implicitly to link them.</p>\n<p><br></p>\n<p><img width=\"450\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/coord-sys-0.jpg\"></p>\n<p><br></p>\n<p>And the following example demonstrates a more complicated case, where two <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a> share one <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a>. And the two <code class=\"codespan\">series</code> are also share the <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a>, but use different <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a> respectively. The property <a href=\"option.html#series-line.yAxisIndex\" target=\"_blank\">yAxisIndex</a> is used to specify which <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a> is used.</p>\n<p><br></p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/coord-sys-1.jpg\"></p>\n<p><br></p>\n<p>The following echarts instance contain more than one <a href=\"option.html#grid\" target=\"_blank\">grid</a>. Each <a href=\"option.html#grid\" target=\"_blank\">grid</a> has its own <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a> and <a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a>. The properties <a href=\"option.html#series-line.xAxisIndex\" target=\"_blank\">xAxisIndex</a>, <a href=\"option.html#series-line.yAxisIndex\" target=\"_blank\">yAxisIndex</a> and <a href=\"option.html#yAxis.gridIndex\" target=\"_blank\">gridIndex</a> are used to specify the reference relationships.</p>\n<p><br></p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/coord-sys-2.jpg\"></p>\n<p><br></p>\n<p>Moreover, a type of series is usually available on various coordinate systems. For example, a <a href=\"option.html#series-scatter\" target=\"_blank\">scatter series</a> can work on <a href=\"option.html#grid\" target=\"_blank\">Cartesian coordinate system</a>, <a href=\"option.html#polar\" target=\"_blank\">polar coordinate system</a>, <a href=\"option.html#geo\" target=\"_blank\">GEO coordinate system</a> or other coordinate systems. Similarly, a coordinate system can serve different type of series. As the examples shown above, a <a href=\"option.html#grid\" target=\"_blank\">Cartesian coordinate system</a> serves several <a href=\"option.html#series-line\" target=\"_blank\">line series</a> and <a href=\"option.html#series-bar\" target=\"_blank\">bar series</a>.</p>\n"},"Customized Chart Styles":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> provides a rich amount of configurable items, which can be set in global, series, and data three different levels. Next, let&#39;s see an example of how to use ECharts to implement the following Nightingale rose chart:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-styling-step5&edit=1&reset=1\" width=\"500\" height=\"400\" ></iframe>\n\n\n<h2 id=\"drawing-nightingale-rose-chart\">Drawing Nightingale Rose Chart</h2>\n<p><a href=\"#Get%20Started%20with%20ECharts%20in%205%20minutes\">Getting started tutorial</a> introduced how to make a simple bar chart. This time, we are going to make a pie chart. Pie charts use arc length of fans to represent ratio of a certain series in total share. It&#39;s data format is simpler than bar chart, because it only contains one dimension without category. Besides, since it&#39;s not in rectangular system, it doesn&#39;t need <code class=\"codespan\">xAxis</code>、<code class=\"codespan\">yAxis</code> either.</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    series : [\n        {\n            name: &#39;Reference Page&#39;,\n            type: &#39;pie&#39;,\n            radius: &#39;55%&#39;,\n            data:[\n                {value:400, name:&#39;Searching Engine&#39;},\n                {value:335, name:&#39;Direct&#39;},\n                {value:310, name:&#39;Email&#39;},\n                {value:274, name:&#39;Alliance Advertisement&#39;},\n                {value:235, name:&#39;Video Advertisement&#39;}\n            ]\n        }\n    ]\n})\n</code></pre>\n<p>With the above code, we can create a simple pie chart:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-styling-step0&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>Here, the value of <code class=\"codespan\">data</code> is not a single value, as that of the example in get started. Instead, it&#39;s an object containing <code class=\"codespan\">name</code> and <code class=\"codespan\">value</code>. Data in ECharts can always be a single value, or a configurable object with name, style and label. You may refer to <a href=\"option.html#series-pie.data\" target=\"_blank\">data</a> for more information.</p>\n<p><a href=\"option.html#series-pie\" target=\"_blank\">Pie charts</a> of EChart can be made into Nightingale rose charts with <a href=\"option.html#series-pie.roseType\" target=\"_blank\">roseType</a> field.</p>\n<pre><code class=\"lang-js\">roseType: &#39;angle&#39;\n</code></pre>\n<p>Nightingale rose charts use radius to represent data value.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-styling-step1&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<h2 id=\"configuring-shadow\">Configuring Shadow</h2>\n<p>Commonly used styles of ECharts, like shadow, opacity, color, border-color, border-width, and etc., are set by <a href=\"#series-pie.itemStyle\">itemStyle</a> in series.</p>\n<pre><code class=\"lang-js\">itemStyle: {\n    // shadow size\n    shadowBlur: 200,\n    // horizontal offset of shadow\n    shadowOffsetX: 0,\n    // vertical offset of shadow\n    shadowOffsetY: 0,\n    // shadow color\n    shadowColor: &#39;rgba(0, 0, 0, 0.5)&#39;\n}\n</code></pre>\n<p>The effect after added shadow is:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-styling-step2&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>Each <code class=\"codespan\">itemStyle</code> has <code class=\"codespan\">emphasis</code> as the highlighted style when mouse hovered. The last example shows the effect of adding shadow by default. But in most situations, we may probably need to add shadow to emphasis when mouse is hovered.</p>\n<pre><code class=\"lang-js\">itemStyle: {\n    emphasis: {\n        shadowBlur: 200,\n        shadowColor: &#39;rgba(0, 0, 0, 0.5)&#39;\n    }\n}\n</code></pre>\n<h2 id=\"dark-background-and-light-text\">Dark Background and Light Text</h2>\n<p>Now, we need to change the whole theme as that shown in the example at the beginning of this tutorial. This can be achieved by changing background color and text color.</p>\n<p>Background is a global configurable object, so we can set it directly with <a href=\"option.html#backgroundColor\" target=\"_blank\">backgroundColor</a> of option.</p>\n<pre><code class=\"lang-js\">setOption({\n    backgroundColor: &#39;#2c343c&#39;\n})\n</code></pre>\n<p>Text style can also be set globally in <a href=\"option.html#textStyle\" target=\"_blank\">textStyle</a>.</p>\n<pre><code class=\"lang-js\">setOption({\n    textStyle: {\n        color: &#39;rgba(255, 255, 255, 0.3)&#39;\n    }\n})\n</code></pre>\n<p>On the other hand, we can also set them in <a href=\"option.html#series-pie.label.textStyle\" target=\"_blank\">label.textStyle</a> of each series.</p>\n<pre><code class=\"lang-js\">label: {\n    textStyle: {\n        color: &#39;rgba(255, 255, 255, 0.3)&#39;\n    }\n}\n</code></pre>\n<p>We also need to set line color of pie chart to be lighter.</p>\n<pre><code class=\"lang-js\">labelLine: {\n    lineStyle: {\n        color: &#39;rgba(255, 255, 255, 0.3)&#39;\n    }\n}\n</code></pre>\n<p>Thus, we can get the following effect.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-styling-step3&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>Similar to <code class=\"codespan\">itemStyle</code>, <code class=\"codespan\">label</code> and <code class=\"codespan\">labelLine</code> also have <code class=\"codespan\">emphasis</code> children.</p>\n<h2 id=\"setting-fan-colors\">Setting Fan Colors</h2>\n<p>Fan colors can be set in <code class=\"codespan\">itemStyle</code>:</p>\n<pre><code class=\"lang-js\">itemStyle: {\n    // 设置扇形的颜色\n    color: &#39;#c23531&#39;,\n    shadowBlur: 200,\n    shadowColor: &#39;rgba(0, 0, 0, 0.5)&#39;\n}\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-styling-step4&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>This is quite similar to our expect effect, except that fan colors should be made darker within shadow area, so as to make a sense of layering and space with blocked light.</p>\n<p>Each fan&#39;s color can be set under <code class=\"codespan\">data</code>:</p>\n<pre><code class=\"lang-js\">data: [{\n    value:400,\n    name:&#39;搜索引擎&#39;,\n    itemStyle: {\n        color: &#39;#c23531&#39;\n    }\n}, ...]\n</code></pre>\n<p>But since we only need the variation of color in this example, there&#39;s a simpler way to map data value to lightness through <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a>.</p>\n<pre><code class=\"lang-js\">visualMap: {\n    // hide visualMap component; use lightness mapping only\n    show: false,\n    // mapping with min value at 80\n    min: 80,\n    // mapping with max value at 600\n    max: 600,\n    inRange: {\n        // mapping lightness from 0 to 1\n        colorLightness: [0, 1]\n    }\n}\n</code></pre>\n<p>The final effect is:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-styling-step5&edit=1&reset=1\" width=\"500\" height=\"400\" ></iframe>\n\n\n\n\n\n"},"Overview of Style Customization":{"type":["*"],"description":"<p>This article provides an overview of the different approaches about Apache ECharts<sup>TM</sup> style customization. For example, how to config the color, size, shadow of the graphic elements and labels.</p>\n<blockquote>\n<p>The term &quot;style&quot; may not follow the convention of data visualization, but we use it in this article because it is popular and easy to understand.</p>\n</blockquote>\n<p>These approaches below will be introduced. The functionalities of them might be overlapped, but they are suitable for different scenarios.</p>\n<ul>\n<li>Theme</li>\n<li>Pallette</li>\n<li>Customize style explicitly (itemStyle, lineStyle, areaStyle, label, ...)</li>\n<li>Visual encoding (visualMap component)</li>\n</ul>\n<p>Other article about styling can be check in <a href=\"#Customized%20Chart%20Styles\">Customized Chart Styles</a> and <a href=\"#Visual%20Map%20of%20Data\">Visual Map of Data</a>.</p>\n<p><br></p>\n<hr>\n<p><br></p>\n<p><strong>Theme</strong></p>\n<p>Setting a theme is the simplest way to change the color style. For example, in <a href=\"https://echarts.apache.org/examples/en/index.html\" target=\"_blank\">Examples page</a>, &quot;Theme&quot; can be selected, and view the result directly.</p>\n<p>Since ECharts4, besides the original default theme, ECharts provide another two built-in themes, named &#39;<code class=\"codespan\">&#39;light&#39;</code> and <code class=\"codespan\">&#39;dark&#39;</code>. They can be used as follows:</p>\n<pre><code class=\"lang-js\">var chart = echarts.init(dom, &#39;light&#39;);\n</code></pre>\n<p>or</p>\n<pre><code class=\"lang-js\">var chart = echarts.init(dom, &#39;dark&#39;);\n</code></pre>\n<p>Other themes are not included in ECharts package by default, and need to load them ourselves if we want to use them. Themes can be visited and downloaded in <a href=\"https://echarts.apache.org/en/theme-builder.html\" target=\"_blank\">Theme Builder</a>. Theme can also be created or edited in it. The downloaded theme can be used as follows:</p>\n<p>If a theme is downloaded as a JSON file, we should register it by ourselves, for example:</p>\n<pre><code class=\"lang-js\">var xhr = new XMLHttpRequest();\n// Assume the theme name is &quot;vintage&quot;.\nxhr.open(&#39;GET&#39;, &#39;xxx/xxx/vintage.json&#39;, true);\nxhr.onload = function () {\n    var themeJSON = this.response;\n    echarts.registerTheme(&#39;vintage&#39;, JSON.parse(themeJSON))\n    var chart = echarts.init(dom, &#39;vintage&#39;);\n    // ...\n});\nxhr.send();\n</code></pre>\n<p>If a them is downloaded as a JS file, it will auto register itself:</p>\n<pre><code class=\"lang-js\">// Import the `vintage.js` file in HTML, then:\nvar chart = echarts.init(dom, &#39;vintage&#39;);\n// ...\n</code></pre>\n<p><br></p>\n<hr>\n<p><br></p>\n<p><strong>Palette</strong></p>\n<p>Pallettes can be given in option. They provide a group of colors, which will be auto picked by series and data. We can give a global palette, or exclusive pallette for certain series.</p>\n<pre><code class=\"lang-js\">option = {\n    // Global palette:\n    color: [&#39;#c23531&#39;,&#39;#2f4554&#39;, &#39;#61a0a8&#39;, &#39;#d48265&#39;, &#39;#91c7ae&#39;,&#39;#749f83&#39;,  &#39;#ca8622&#39;, &#39;#bda29a&#39;,&#39;#6e7074&#39;, &#39;#546570&#39;, &#39;#c4ccd3&#39;],\n\n    series: [{\n        type: &#39;bar&#39;,\n        // A palette only work for the series:\n        color: [&#39;#dd6b66&#39;,&#39;#759aa0&#39;,&#39;#e69d87&#39;,&#39;#8dc1a9&#39;,&#39;#ea7e53&#39;,&#39;#eedd78&#39;,&#39;#73a373&#39;,&#39;#73b9bc&#39;,&#39;#7289ab&#39;, &#39;#91ca8c&#39;,&#39;#f49f42&#39;],\n        ...\n    }, {\n        type: &#39;pie&#39;,\n        // A palette only work for the series:\n        color: [&#39;#37A2DA&#39;, &#39;#32C5E9&#39;, &#39;#67E0E3&#39;, &#39;#9FE6B8&#39;, &#39;#FFDB5C&#39;,&#39;#ff9f7f&#39;, &#39;#fb7293&#39;, &#39;#E062AE&#39;, &#39;#E690D1&#39;, &#39;#e7bcf3&#39;, &#39;#9d96f5&#39;, &#39;#8378EA&#39;, &#39;#96BFFF&#39;],\n        ...\n    }]\n}\n</code></pre>\n<p><br></p>\n<hr>\n<p><br></p>\n<p><strong>Customize style explicitly (itemStyle, lineStyle, areaStyle, label, ...)</strong></p>\n<p>It is a common way to set style explicitly. Throughout ECharts <a href=\"option.html\" target=\"_blank\">option</a>, style related options can be set in various place, including <a href=\"option.html#series.itemStyle\" target=\"_blank\">itemStyle</a>, <a href=\"option.html#series-line.lineStyle\" target=\"_blank\">lineStyle</a>, <a href=\"option.html#series-line.areaStyle\" target=\"_blank\">areaStyle</a>, <a href=\"option.html#series.label\" target=\"_blank\">label</a>, etc.</p>\n<p>Generally speaking, all of the built-in components and series follow the naming convention like <code class=\"codespan\">itemStyle</code>, <code class=\"codespan\">lineStyle</code>, <code class=\"codespan\">areaStyle</code>, <code class=\"codespan\">label</code> etc., although they may occur in different place according to different series or components.</p>\n<p>There is another article for style setting, <a href=\"#Customized%20Chart%20Styles\">Customized Chart Styles</a>.</p>\n<p><br></p>\n<hr>\n<p><br></p>\n<p><strong>Style of emphasis state</strong></p>\n<p>When mouse hovering a graphic elements, usually the emphasis style will be displayed. By default, the emphasis style is auto generated by the normal style. However they can be specified by <a href=\"option.html#series-scatter.emphasis\" target=\"_blank\">emphasis</a> property. The options in <a href=\"option.html#series-scatter.emphasis\" target=\"_blank\">emphasis</a> is the same as the ones for normal state, for example:</p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;scatter&#39;,\n\n        // Styles for normal state.\n        itemStyle: {\n            // Color of the point.\n            color: &#39;red&#39;\n        },\n        label: {\n            show: true,\n            // Text of labels.\n            formatter: &#39;This is a normal label.&#39;\n        },\n\n        // Styles for emphasis state.\n        emphasis: {\n            itemStyle: {\n                // Color in emphasis state.\n                color: &#39;blue&#39;\n            },\n            label: {\n                show: true,\n                // Text in emphasis.\n                formatter: &#39;This is a emphasis label.&#39;\n            }\n        }\n    }\n}\n</code></pre>\n<p>Notice: Before ECharts4, the emphasis style should be written like this:</p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;scatter&#39;,\n\n        itemStyle: {\n            // Styles for normal state.\n            normal: {\n                color: &#39;red&#39;\n            },\n            // Styles for emphasis state.\n            emphasis: {\n                color: &#39;blue&#39;\n            }\n        },\n\n        label: {\n            // Styles for normal state.\n            normal: {\n                show: true,\n                formatter: &#39;This is a normal label.&#39;\n            },\n            // Styles for emphasis state.\n            emphasis: {\n                show: true,\n                formatter: &#39;This is a emphasis label.&#39;\n            }\n        }\n    }\n}\n</code></pre>\n<p>The option format is still <strong>compatible</strong>, but not recommended. In fact, in most cases, users only set normal style, and use the default emphasis style. So since ECharts4, we support to write style without the &quot;normal&quot; term, which makes the option more simple and neat.</p>\n<p><br></p>\n<hr>\n<p><br></p>\n<p><strong>Visual encoding (visualMap component)</strong></p>\n<p><a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a> supports config the rule that mapping value to visual channel (color, size, ...). More details can be check in <a href=\"#Visual%20Map%20of%20Data\">Visual Map of Data</a>.</p>\n"},"Loading and Updating of Asynchronous Data":{"type":["*"],"description":"<h2 id=\"asynchronous-loading\">Asynchronous Loading</h2>\n<p>Data in <a href=\"#getting-started\">Get started</a> is directly filled in <code class=\"codespan\">setOption</code> after initialization, but in some cases, data may be filled after asynchronous loading. Data updating asynchronously in Apache ECharts<sup>TM</sup> is very easy. After initialization, you can pass in data and configuration item through <code class=\"codespan\">setOption</code> after data obtained through  jQuery and other tools at any time.</p>\n<pre><code class=\"lang-js\">var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n$.get(&#39;data.json&#39;).done(function (data) {\n    myChart.setOption({\n        title: {\n            text: &#39;asynchronous data loading example&#39;\n        },\n        tooltip: {},\n        legend: {\n            data:[&#39;Sales&#39;]\n        },\n        xAxis: {\n            data: data.categories\n        },\n        yAxis: {},\n        series: [{\n            name: &#39;Sales&#39;,\n            type: &#39;bar&#39;,\n            data: data.data\n        }]\n    });\n});\n</code></pre>\n<p>Or, you may set other styles, displaying an empty rectangular axis, and then fill in data when ready.</p>\n<pre><code class=\"lang-js\">var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n// show title. legend and empty axis\nmyChart.setOption({\n    title: {\n        text: &#39;asynchronous data loading example&#39;\n    },\n    tooltip: {},\n    legend: {\n        data:[&#39;Sales&#39;]\n    },\n    xAxis: {\n        data: []\n    },\n    yAxis: {},\n    series: [{\n        name: &#39;Sales&#39;,\n        type: &#39;bar&#39;,\n        data: []\n    }]\n});\n\n// Asynchronous data loading\n$.get(&#39;data.json&#39;).done(function (data) {\n    // fill in data\n    myChart.setOption({\n        xAxis: {\n            data: data.categories\n        },\n        series: [{\n            // find series by name\n            name: &#39;Sales&#39;,\n            data: data.data\n        }]\n    });\n});\n</code></pre>\n<p>For example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-async&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>In ECharts, updating data need to find the corresponding series through <code class=\"codespan\">name</code>. In the above example, updating can be performed correctly according to series order if <code class=\"codespan\">name</code> is not defined. But in most cases, it is recommended to update data with series <code class=\"codespan\">name</code> information.</p>\n<h2 id=\"loading-animation\">Loading Animation</h2>\n<p>If data loading time is too long, an empty axis on the canvas may confuse users. In this case, a loading animation is needed to tell the user that it&#39;s still loading.</p>\n<p>ECharts provides a simple loading animation by default. You only need <a href=\"api.html#echartsInstance.showLoading\" target=\"_blank\">showLoading</a> to show, and then use <a href=\"api.html#echartsInstance.hideLoading\" target=\"_blank\">hideLoading</a> to hide loading animation after data loading.</p>\n<pre><code class=\"lang-js\">myChart.showLoading();\n$.get(&#39;data.json&#39;).done(function (data) {\n    myChart.hideLoading();\n    myChart.setOption(...);\n});\n</code></pre>\n<p>Effects are as followed:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-loading&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<h2 id=\"dynamic-data-updating\">Dynamic Data Updating</h2>\n<p>ECharts is driven by data. Change of data changes the presentation of chart, therefore, implementing dynamic data updating is extremely easy.</p>\n<p>All data updating are through <a href=\"#api.html#echartsInstance.setOption\">setOption</a>. You only need to get data as you wish, fill in data to <a href=\"#api.html#echartsInstance.setOption\">setOption</a> without considering the changes brought by data, ECharts will find the difference between two group of data and present the difference through proper animation.</p>\n<blockquote>\n<p>In ECharts 3, addData in ECharts 2 is removed.If a single data needs to be added, you can first data.push(value) and then setOption.</p>\n</blockquote>\n<p>See details in the following example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/tutorial-dynamic-data&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n\n"},"Dataset":{"type":["*"],"description":"<p><code class=\"codespan\">dataset</code> component is published since Apache ECharts<sup>TM</sup> 4. <code class=\"codespan\">dataset</code> brings convenience in data management separated with styles and enables data reuse by different series. More importantly, it enables data encoding from data to visual, which brings convenience in some scenarios.</p>\n<p>Before ECharts 4, data was only able to declared in each series, for example:</p>\n<pre><code class=\"lang-js\">option = {\n    xAxis: {\n        type: &#39;category&#39;,\n        data: [&#39;Matcha Latte&#39;, &#39;Milk Tea&#39;, &#39;Cheese Cocoa&#39;, &#39;Walnut Brownie&#39;]\n    },\n    yAxis: {},\n    series: [\n        {\n            type: &#39;bar&#39;,\n            name: &#39;2015&#39;,\n            data: [89.3, 92.1, 94.4, 85.4]\n        },\n        {\n            type: &#39;bar&#39;,\n            name: &#39;2016&#39;,\n            data: [95.8, 89.4, 91.2, 76.9]\n        },\n        {\n            type: &#39;bar&#39;,\n            name: &#39;2017&#39;,\n            data: [97.7, 83.1, 92.5, 78.1]\n        }\n    ]\n}\n</code></pre>\n<p>This approach is easy to be understand and is flexible when some series needs special data definitions. But the shortcomings are also obvious: some data extra works are usually needed to split the original data to each series, and it not supports sharing data in different series, moreover, it is not good for encode.</p>\n<p>ECharts4 starts to provide <code class=\"codespan\">dataset</code> component, which brings benefits below:</p>\n<ul>\n<li>Benefit from <code class=\"codespan\">dataset</code>, we can follow the common methodology of data visualization: based on data, specify the mapping (via the option <a href=\"option.html#series.encode\" target=\"_blank\">encode</a>) from data to visual.</li>\n<li>Data can be managed and configured separately from other configurations.</li>\n<li>Data can be reused by different series and components.</li>\n<li>Support more common data format (like 2d-array, object-array), to avoid data transform works for users.</li>\n</ul>\n<h2 id=\"get-started\">Get started</h2>\n<p>This is a simplest example of <code class=\"codespan\">dataset</code>:</p>\n<pre><code class=\"lang-js\">option = {\n    legend: {},\n    tooltip: {},\n    dataset: {\n        // Provide data.\n        source: [\n            [&#39;product&#39;, &#39;2015&#39;, &#39;2016&#39;, &#39;2017&#39;],\n            [&#39;Matcha Latte&#39;, 43.3, 85.8, 93.7],\n            [&#39;Milk Tea&#39;, 83.1, 73.4, 55.1],\n            [&#39;Cheese Cocoa&#39;, 86.4, 65.2, 82.5],\n            [&#39;Walnut Brownie&#39;, 72.4, 53.9, 39.1]\n        ]\n    },\n    // Declare X axis, which is a category axis, mapping\n    // to the first column by default.\n    xAxis: {type: &#39;category&#39;},\n    // Declare Y axis, which is a value axis.\n    yAxis: {},\n    // Declare several series, each of them mapped to a\n    // column of the dataset by default.\n    series: [\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;}\n    ]\n}\n</code></pre>\n<p>This is the result:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=dataset-simple0&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n<p>Or the common format object-array is also supported:</p>\n<pre><code class=\"lang-js\">option = {\n    legend: {},\n    tooltip: {},\n    dataset: {\n        // Here the declared `dimensions` is mainly for providing the order of\n        // the dimensions, which enables ECharts to apply the default mapping\n        // from dimensions to axes.\n        // Alternatively, we can declare `series.encode` to specify the mapping,\n        // which will be introduced later.\n        dimensions: [&#39;product&#39;, &#39;2015&#39;, &#39;2016&#39;, &#39;2017&#39;],\n        source: [\n            {product: &#39;Matcha Latte&#39;, &#39;2015&#39;: 43.3, &#39;2016&#39;: 85.8, &#39;2017&#39;: 93.7},\n            {product: &#39;Milk Tea&#39;, &#39;2015&#39;: 83.1, &#39;2016&#39;: 73.4, &#39;2017&#39;: 55.1},\n            {product: &#39;Cheese Cocoa&#39;, &#39;2015&#39;: 86.4, &#39;2016&#39;: 65.2, &#39;2017&#39;: 82.5},\n            {product: &#39;Walnut Brownie&#39;, &#39;2015&#39;: 72.4, &#39;2016&#39;: 53.9, &#39;2017&#39;: 39.1}\n        ]\n    },\n    xAxis: {type: &#39;category&#39;},\n    yAxis: {},\n    series: [\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;}\n    ]\n};\n</code></pre>\n<h2 id=\"mapping-from-data-to-graphic\">Mapping from data to graphic</h2>\n<p>In this tutorial, we make charts following this methodology: base on data, config the rule to map data to graphic, namely, encode the data to graphic.</p>\n<p>Generally, this mapping can be performed:</p>\n<ul>\n<li>Configure whether columns or rows of a dataset will mapped to series, namely, the series layout on the columns or rows of a dataset. This can be specified by <a href=\"option.html#series.seriesLayoutBy\" target=\"_blank\">series.seriesLayoutBy</a>. <code class=\"codespan\">&#39;column&#39;</code> is the default value.</li>\n<li>Configure the mapping rule from dimensions (a dimension means a column/row) to axes in coordinate system, tooltip, labels, color, symbol size, etc. This can be specified by <a href=\"option.html#series.encode\" target=\"_blank\">series.encode</a> and <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> (if visual encoding is required). The example above does not give a mapping rule, so ECharts make default mapping by common sense: because x axis is a category axis, the first column is mapped to the x axis, and each series use each subsequent column in order.</li>\n</ul>\n<p>Let&#39;s illustrate them in detail below.</p>\n<h2 id=\"mapping-by-column-or-row\">Mapping by column or row</h2>\n<p>Giving dataset, users can configure whether columns or rows of a dataset will be mapped to series, namely, the series layout on the columns or rows of a dataset. This can be specified by <a href=\"option.html#series.seriesLayoutBy\" target=\"_blank\">series.seriesLayoutBy</a>. The optional values are:</p>\n<ul>\n<li>&#39;column&#39;: series are positioned on each columns of the dataset. Default value.</li>\n<li>&#39;row&#39;: series are positioned on each row of the dataset.</li>\n</ul>\n<p>See the example below:</p>\n<pre><code class=\"lang-js\">option = {\n    legend: {},\n    tooltip: {},\n    dataset: {\n        source: [\n            [&#39;product&#39;, &#39;2012&#39;, &#39;2013&#39;, &#39;2014&#39;, &#39;2015&#39;],\n            [&#39;Matcha Latte&#39;, 41.1, 30.4, 65.1, 53.3],\n            [&#39;Milk Tea&#39;, 86.5, 92.1, 85.7, 83.1],\n            [&#39;Cheese Cocoa&#39;, 24.1, 67.2, 79.5, 86.4]\n        ]\n    },\n    xAxis: [\n        {type: &#39;category&#39;, gridIndex: 0},\n        {type: &#39;category&#39;, gridIndex: 1}\n    ],\n    yAxis: [\n        {gridIndex: 0},\n        {gridIndex: 1}\n    ],\n    grid: [\n        {bottom: &#39;55%&#39;},\n        {top: &#39;55%&#39;}\n    ],\n    series: [\n        // These series is in the first cartesian (grid), and each\n        // is mapped to a row.\n        {type: &#39;bar&#39;, seriesLayoutBy: &#39;row&#39;},\n        {type: &#39;bar&#39;, seriesLayoutBy: &#39;row&#39;},\n        {type: &#39;bar&#39;, seriesLayoutBy: &#39;row&#39;},\n        // These series is in the second cartesian (grid), and each\n        // is mapped to a column.\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1},\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1},\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1},\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1}\n    ]\n}\n</code></pre>\n<p>This is the result:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=dataset-series-layout-by&edit=1&reset=1\" width=\"800\" height=\"600\" ></iframe>\n\n\n\n<h2 id=\"dimension\">Dimension</h2>\n<p>Before introducing <code class=\"codespan\">encode</code>, we should clarify the concept of <code class=\"codespan\">dimension</code>.</p>\n<p>Most of common charts describe data in the format of &quot;two-dimensions table&quot; (note that the meaning of the word &quot;dimension&quot; in &quot;two-dimension table&quot; is not the same as the dimensions in ECharts. \bIn order not to be confusing, we use &quot;2d-table&quot;, &quot;2d-array&quot; below). In the examples above, we use 2d-array to carry the 2d-table. When we set <code class=\"codespan\">seriesLayoutBy</code> as <code class=\"codespan\">&#39;column&#39;</code>, namely, mapping columns to series, each column is called a dimension, and each row is a data item. When we set <code class=\"codespan\">seriesLayoutBy</code> as <code class=\"codespan\">&#39;row&#39;</code>, namely, mapping rows to series, each row is called a dimension, and each column is a data item.</p>\n<p>Dimension can have its name to displayed on charts. Dimension name can be defined on the first row/column. Take the code above as an example, <code class=\"codespan\">&#39;score&#39;</code>、<code class=\"codespan\">&#39;amount&#39;</code>、<code class=\"codespan\">&#39;product&#39;</code> are dimension names, and data start from the second row. By default ECharts auto detect whether the first row/column of <code class=\"codespan\">dataset.source</code> is dimension name or data. Use can also set <code class=\"codespan\">dataset.sourceHeader</code> as <code class=\"codespan\">true</code> to mandatorily specify the first row/column is dimension name, or set as <code class=\"codespan\">false</code> to indicate the data start from the first row/column.</p>\n<p>The definitions of the dimensions can also be provided separately in <code class=\"codespan\">dataset.dimensions</code> or <code class=\"codespan\">series.dimensions</code>, where not only dimension name, but also dimension type can be specified:</p>\n<pre><code class=\"lang-js\">var option1 = {\n    dataset: {\n        dimensions: [\n            // Each item can be object or string.\n            {name: &#39;score&#39;},\n            // A string indicates the dimension name.\n            &#39;amount&#39;,\n            // Dimension type can be specified.\n            {name: &#39;product&#39;, type: &#39;ordinal&#39;}\n        ],\n        source: [...]\n    },\n    ...\n};\n\nvar option2 = {\n    dataset: {\n        source: [...]\n    },\n    series: {\n        type: &#39;line&#39;,\n        // Dimensions declared in series will be adapted with higher priority.\n        dimensions: [\n            null, // Set as null means we dont want to set dimension name.\n            &#39;amount&#39;,\n            {name: &#39;product&#39;, type: &#39;ordinal&#39;}\n        ]\n    },\n    ...\n};\n</code></pre>\n<p>Generally, we do not need to set dimensions types, because it can be auto detected based on data by ECharts. But in some cases, for example, the data is empty, the detection might not be accurate, where dimension type can be set manually.</p>\n<p>The optional values of dimension types can be:</p>\n<ul>\n<li><code class=\"codespan\">&#39;number&#39;</code>: Normal data, default value.</li>\n<li><code class=\"codespan\">&#39;ordinal&#39;</code>: Represents string data like category data or text data. ECharts will auto detect them by default. They can be set manually if the detection fail.</li>\n<li><code class=\"codespan\">&#39;time&#39;</code>: Represents time data, where it is supported that parse time string to timestamp. For example, if users need to parse &#39;2017-05-10&#39; to timestamp, it should be set as <code class=\"codespan\">time</code> type. If the dimension is used on a time axis (<a href=\"option.html#xAxis.type\" target=\"_blank\">axis.type</a> is <code class=\"codespan\">&#39;time&#39;</code>), it will be auto set to <code class=\"codespan\">time</code> type. The supported time string is listed in <a href=\"option.html#series.data\" target=\"_blank\">data</a>.</li>\n<li><code class=\"codespan\">&#39;float&#39;</code>: If set as <code class=\"codespan\">&#39;float&#39;</code>, it will be stored in <code class=\"codespan\">TypedArray</code>, which is good for performance optimization.</li>\n<li><code class=\"codespan\">&#39;int&#39;</code>: If set as <code class=\"codespan\">&#39;int&#39;</code>, it will be stored in <code class=\"codespan\">TypedArray</code>, which is good for performance optimization.</li>\n</ul>\n<h2 id=\"mapping-from-data-to-graphic-encode-\">Mapping from data to graphic (encode)</h2>\n<p>Having the concept of dimension clarified, we can use <a href=\"option.html#series.encode\" target=\"_blank\">encode</a> to map data to graphic:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: {\n        source: [\n            [&#39;score&#39;, &#39;amount&#39;, &#39;product&#39;],\n            [89.3, 58212, &#39;Matcha Latte&#39;],\n            [57.1, 78254, &#39;Milk Tea&#39;],\n            [74.4, 41032, &#39;Cheese Cocoa&#39;],\n            [50.1, 12755, &#39;Cheese Brownie&#39;],\n            [89.7, 20145, &#39;Matcha Cocoa&#39;],\n            [68.1, 79146, &#39;Tea&#39;],\n            [19.6, 91852, &#39;Orange Juice&#39;],\n            [10.6, 101852, &#39;Lemon Juice&#39;],\n            [32.7, 20112, &#39;Walnut Brownie&#39;]\n        ]\n    },\n    xAxis: {},\n    yAxis: {type: &#39;category&#39;},\n    series: [\n        {\n            type: &#39;bar&#39;,\n            encode: {\n                // Map dimension &quot;amount&quot; to the X axis.\n                x: &#39;amount&#39;,\n                // Map dimension &quot;product&quot; to the Y axis.\n                y: &#39;product&#39;\n            }\n        }\n    ]\n};\n</code></pre>\n<p>This is the result:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/dataset-encode-simple0&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n\n<p>The basic structure of <a href=\"option.html#series.encode\" target=\"_blank\">encode</a> is illustrated as follows, where the left part of colon is the name of axis like <code class=\"codespan\">&#39;x&#39;</code>, <code class=\"codespan\">&#39;y&#39;</code>, <code class=\"codespan\">&#39;radius&#39;</code>, <code class=\"codespan\">&#39;angle&#39;</code> or some special reserved names like &quot;tooltip&quot;, &quot;itemName&quot; etc., and the right part of the colon is the dimension names or dimension indices (based on 0). One or more dimensions can be specified. Usually not all of mappings need to be specified, only specify needed ones.</p>\n<p>The properties available in <code class=\"codespan\">encode</code> listed as follows:</p>\n<pre><code class=\"lang-js\">// In any of the series and coordinate systems,\n// these properties are available:\nencode: {\n    // Display dimension &quot;product&quot; and &quot;score&quot; in the tooltip.\n    tooltip: [&#39;product&#39;, &#39;score&#39;]\n    // Set the series name as the concat of the names of dimensions[1] and dimensions[3].\n    // (sometimes the dimension names are too long to type in series.name manually).\n    seriesName: [1, 3],\n    // Using dimensions[2] as the id of each data item. This is useful when dynamically\n    // update data by `chart.setOption()`, where the new and old data item can be\n    // corresponded by id, by which the appropriate animation can be performed when updating.\n    itemId: 2,\n    // Using dimensions[3] as the name of each data item. This is useful in charts like\n    // &#39;pie&#39;, &#39;funnel&#39;, where data item name can be displayed in legend.\n    itemName: 3\n}\n\n// These properties only work in cartesian(grid) coordinate system:\nencode: {\n    // Map dimensions[1], dimensions[5] and dimension &quot;score&quot; to the X axis.\n    x: [1, 5, &#39;score&#39;],\n    // Map dimensions[0] to the Y axis.\n    y: 0\n}\n\n// These properties only work in polar coordinate system:\nencode: {\n    radius: 3,\n    angle: 2,\n    ...\n}\n\n// These properties only work in geo coordinate system:\nencode: {\n    lng: 3,\n    lat: 2\n}\n\n// For some type of series that are not in any coordinate system,\n// like &#39;pie&#39;, &#39;funnel&#39; etc.:\nencode: {\n    value: 3\n}\n</code></pre>\n<p>There is an other example for <code class=\"codespan\">encode</code>:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=dataset-encode1&edit=1&reset=1\" width=\"800\" height=\"600\" ></iframe>\n\n\n\n\n\n<h2 id=\"visual-encoding-color-symbol-etc-\">Visual encoding (color, symbol, etc.)</h2>\n<p>We can use <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> component to map data to visual channel like color, symbol size, etc.. More info about it can be checked in its <a href=\"option.html#visualMap\" target=\"_blank\">doc</a>.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=dataset-encode0&edit=1&reset=1\" width=\"500\" height=\"400\" ></iframe>\n\n\n\n\n<h2 id=\"default-encoding\">Default encoding</h2>\n<p>For some common cases (line chart, bar chart, scatter plot, candlestick, pie, funnel, etc.), EChart provides default encoding settings, by which chart will be displayed even if no <code class=\"codespan\">encode</code> option is specified. (If <code class=\"codespan\">encode</code> option is specified, default encoding will not be applied.) The rule of default encoding should not be too complicated. Basically it is:</p>\n<ul>\n<li>In coordinate system (like cartesian(grid), polar):<ul>\n<li>If category axis (i.e., axis.type is <code class=\"codespan\">&#39;category&#39;</code>) exists, map the first column/row to the axis, and each series use a following column/row.</li>\n<li>If no category axis exists, and the coordinate system contains two axis (like X Y in cartesian), each series use two columns/rows, one for a axis.</li>\n</ul>\n</li>\n<li>If no coordinate system (like pie chart):<ul>\n<li>Use the first column/row as item name, and the second column/row as item value.</li>\n</ul>\n</li>\n</ul>\n<p>If the default rule does not meet the requirements, configure the <code class=\"codespan\">encode</code> yourself please.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=dataset-default&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n\n<h2 id=\"q-a\">Q &amp; A</h2>\n<p>Q: How to map the third column to X axis, and map the fifth column to Y axis?</p>\n<p>A:</p>\n<pre><code class=\"lang-js\">series: {\n    // Notice that the dimension index is based on 0,\n    // thus the third column is dimensions[2].\n    encode: {x: 2, y: 4},\n    ...\n}\n</code></pre>\n<p>Q: How to map the third row th X axis, and map the fifth row to Y axis?</p>\n<p>A:</p>\n<pre><code class=\"lang-js\">series: {\n    encode: {x: 2, y: 4},\n    seriesLayoutBy: &#39;row&#39;,\n    ...\n}\n</code></pre>\n<p>Q: How to use the values in the second column in label.</p>\n<p>A:\nThe <a href=\"option.html#series.label.formatter\" target=\"_blank\">label.formatter</a> supports refer value in a certain dimension. For example:</p>\n<pre><code class=\"lang-js\">series: {\n    label: {\n        // `&#39;{@score}&#39;` means use the value in the &quot;score&quot; dimension.\n        // `&#39;{@[4]}&#39;` means use the value in dimensions[4].\n        formatter: &#39;aaa{@product}bbb{@score}ccc{@[4]}ddd&#39;\n    }\n}\n</code></pre>\n<p>Q: How to display the second column and the third column in tooltip?</p>\n<p>A:</p>\n<pre><code class=\"lang-js\">series: {\n    encode: {\n        tooltip: [1, 2]\n        ...\n    },\n    ...\n}\n</code></pre>\n<p>Q: If there is no dimension name in dataset.source, how to give dimension name?</p>\n<p>A:</p>\n<pre><code class=\"lang-js\">dataset: {\n    dimensions: [&#39;score&#39;, &#39;amount&#39;],\n    source: [\n        [89.3, 3371],\n        [92.1, 8123],\n        [94.4, 1954],\n        [85.4, 829]\n    ]\n}\n</code></pre>\n<p>Q: How to encode the third column in bubble size in bubble plot?</p>\n<p>A:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: {\n        source: [\n            [12, 323, 11.2],\n            [23, 167, 8.3],\n            [81, 284, 12],\n            [91, 413, 4.1],\n            [13, 287, 13.5]\n        ]\n    },\n    // Use visualMap to perform visual encoding.\n    visualMap: {\n        show: false,\n        dimension: 2, // Encode the third column.\n        min: 2, // Min value is required in visualMap component.\n        max: 15, // Max value is required in visualMap component.\n        inRange: {\n            // The range of bubble size, from 5 pixel to 60 pixel.\n            symbolSize: [5, 60]\n        }\n    },\n    xAxis: {},\n    yAxis: {},\n    series: {\n        type: &#39;scatter&#39;\n    }\n};\n</code></pre>\n<p>Q: We have specified <code class=\"codespan\">encode</code>, but why it does not work?</p>\n<p>A: Maybe we can try to check typo, for example, the dimension name is <code class=\"codespan\">&#39;Life Expectancy&#39;</code>, be we typed <code class=\"codespan\">&#39;Life Expectency&#39;</code> in <code class=\"codespan\">encode</code> option.</p>\n<h2 id=\"various-formats-in-dataset\">Various formats in dataset</h2>\n<p>In lots of cases, data is described in 2d-table. For example, some data processing software like MS Excel, Numbers are based on 2d-table. The data can be exported as JSON format and input to <code class=\"codespan\">dataset.source</code>.</p>\n<blockquote>\n<p>Some csv tools can be used to export the table data to JSON, for example, <a href=\"https://github.com/d3/d3-dsv\" target=\"_blank\">dsv</a> or <a href=\"https://github.com/mholt/PapaParse\" target=\"_blank\">PapaParse</a>.</p>\n</blockquote>\n<p>In common used data transfer formats in JavaScript, 2d-array is a good choice to carry table data, which has been illustrated in the examples above.</p>\n<p>Besides, 2d-array, <code class=\"codespan\">dataset</code> also support key-value format as follows, which is also commonly used. But notice, the option <a href=\"option.html#series.seriesLayoutBy\" target=\"_blank\">seriesLayoutBy</a> is not supported in this format.</p>\n<pre><code class=\"lang-js\">dataset: [{\n    // Row based key-value format, namely, object array, is a commonly used format.\n    source: [\n        {product: &#39;Matcha Latte&#39;, count: 823, score: 95.8},\n        {product: &#39;Milk Tea&#39;, count: 235, score: 81.4},\n        {product: &#39;Cheese Cocoa&#39;, count: 1042, score: 91.2},\n        {product: &#39;Walnut Brownie&#39;, count: 988, score: 76.9}\n    ]\n}, {\n    // Column based key-value format is also supported.\n    source: {\n        &#39;product&#39;: [&#39;Matcha Latte&#39;, &#39;Milk Tea&#39;, &#39;Cheese Cocoa&#39;, &#39;Walnut Brownie&#39;],\n        &#39;count&#39;: [823, 235, 1042, 988],\n        &#39;score&#39;: [95.8, 81.4, 91.2, 76.9]\n    }\n}]\n</code></pre>\n<h2 id=\"multiple-datasets-and-references\">Multiple datasets and references</h2>\n<p>Multiple datasets can be defined, and series can refer them by <a href=\"option.html#series.datasetIndex\" target=\"_blank\">series.datasetIndex</a>.</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: [{\n        source: [...],\n    }, {\n        source: [...]\n    }, {\n        source: [...]\n    }],\n    series: [{\n        // Use the third dataset.\n        datasetIndex: 2\n    }, {\n        // Use the second dataset.\n        datasetIndex: 1\n    }]\n}\n</code></pre>\n<h2 id=\"data-transform\">Data transform</h2>\n<p><code class=\"codespan\">Data transform</code> has been supported since Apache ECharts<sup>TM</sup> 5. In echarts, the term <code class=\"codespan\">data transform</code> means that generate new data from user provided source data and transform functions. This feature is enable users to process data in declarative way, and provides users some common &quot;transform functions&quot; to make that kind of tasks &quot;out-of-the-box&quot;.</p>\n<p>See the details of data transform in this <a href=\"#data-transform\">doc</a>.</p>\n<h2 id=\"echarts3-data-setting-approach-series-data-can-be-used-normally\">ECharts3 data setting approach (series.data) can be used normally</h2>\n<p>The data setting approach before ECharts4 can still be used normally. If a series has declared <a href=\"option.html#series.data\" target=\"_blank\">series.data</a>, it will be used but not <code class=\"codespan\">dataset</code>.</p>\n<pre><code class=\"lang-js\">{\n    xAxis: {\n        type: &#39;category&#39;\n        data: [&#39;Matcha Latte&#39;, &#39;Milk Tea&#39;, &#39;Cheese Cocoa&#39;, &#39;Walnut Brownie&#39;]\n    },\n    yAxis: {},\n    series: [{\n        type: &#39;bar&#39;,\n        name: &#39;2015&#39;,\n        data: [89.3, 92.1, 94.4, 85.4]\n    }, {\n        type: &#39;bar&#39;,\n        name: &#39;2016&#39;,\n        data: [95.8, 89.4, 91.2, 76.9]\n    }, {\n        type: &#39;bar&#39;,\n        name: &#39;2017&#39;,\n        data: [97.7, 83.1, 92.5, 78.1]\n    }]\n}\n</code></pre>\n<p>In fact, setting data via <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> is not deprecated and useful in some cases. For example, for some charts, like <a href=\"option.html#series-treemap\" target=\"_blank\">treemap</a>, <a href=\"option.html#series-graph\" target=\"_blank\">graph</a>, <a href=\"option.html#series-lines\" target=\"_blank\">lines</a>, that do not apply table data, <code class=\"codespan\">dataset</code> is not supported for yet. Moreover, for the case of large data rendering (for example, millions of data), <a href=\"api.html#echartsInstance.appendData\" target=\"_blank\">appendData</a> is probably needed to load data incrementally. <code class=\"codespan\">dataset</code> is not supported in the case.</p>\n<h2 id=\"data-transform\">Data transform</h2>\n<p>See <a href=\"#Data%20Transform\">data transform</a>.</p>\n<h2 id=\"others\">Others</h2>\n<p>Currently, not all types of series support dataset. Series that support dataset includes:</p>\n<p><code class=\"codespan\">line</code>, <code class=\"codespan\">bar</code>, <code class=\"codespan\">pie</code>, <code class=\"codespan\">scatter</code>, <code class=\"codespan\">effectScatter</code>, <code class=\"codespan\">parallel</code>, <code class=\"codespan\">candlestick</code>, <code class=\"codespan\">map</code>, <code class=\"codespan\">funnel</code>, <code class=\"codespan\">custom</code>.</p>\n<p>More types of series will support dataset in our further work.</p>\n<p>Finally, this is an example, multiple series sharing one <code class=\"codespan\">dataset</code> and having interactions:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=dataset-link&edit=1&reset=1\" width=\"800\" height=\"500\" ></iframe>\n\n\n\n\n"},"Data Transform":{"type":["*"],"description":"<p><code class=\"codespan\">Data transform</code> has been supported since Apache ECharts<sup>TM</sup> 5. In echarts, the term <code class=\"codespan\">data transform</code> means that generate new data from user provided source data and transform functions. both This feature is enable users to process data in declarative way, and provides users some common &quot;transform functions&quot; to make that kind of tasks &quot;out-of-the-box&quot;. (For consistency in the context, the noun form of the word we keep using the &quot;transform&quot; rather than &quot;transformation&quot;).</p>\n<p>The abstract formula of data transform is: <code class=\"codespan\">outData = f(inputData)</code>, where the transform function <code class=\"codespan\">f</code> can be like <code class=\"codespan\">filter</code>, <code class=\"codespan\">sort</code>, <code class=\"codespan\">regression</code>, <code class=\"codespan\">boxplot</code>, <code class=\"codespan\">cluster</code>, <code class=\"codespan\">aggregate</code>(todo) ...\nWith the help of those transform methods, users can be implements the features like:</p>\n<ul>\n<li>Partition data into multiple series.</li>\n<li>Make some statistics and visualize the result.</li>\n<li>Adapt some visualization algorithms to data and display the result.</li>\n<li>Sort data.</li>\n<li>Remove or choose some kind of empty or special datums.</li>\n<li>...</li>\n</ul>\n<h2 id=\"get-started-to-data-transform\">Get started to data transform</h2>\n<p>In echarts, data transform is implemented based on the concept of <a href=\"#dataset\">dataset</a>. A <a href=\"option.html#dataset.transform\" target=\"_blank\">dataset.transform</a> can be configured in a dataset instance to indicate that this dataset is to be generated from this <code class=\"codespan\">transform</code>. For example:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: [{\n        // This dataset is on `datasetIndex: 0`.\n        source: [\n            [&#39;Product&#39;, &#39;Sales&#39;, &#39;Price&#39;, &#39;Year&#39;],\n            [&#39;Cake&#39;, 123, 32, 2011],\n            [&#39;Cereal&#39;, 231, 14, 2011],\n            [&#39;Tofu&#39;, 235, 5, 2011],\n            [&#39;Dumpling&#39;, 341, 25, 2011],\n            [&#39;Biscuit&#39;, 122, 29, 2011],\n            [&#39;Cake&#39;, 143, 30, 2012],\n            [&#39;Cereal&#39;, 201, 19, 2012],\n            [&#39;Tofu&#39;, 255, 7, 2012],\n            [&#39;Dumpling&#39;, 241, 27, 2012],\n            [&#39;Biscuit&#39;, 102, 34, 2012],\n            [&#39;Cake&#39;, 153, 28, 2013],\n            [&#39;Cereal&#39;, 181, 21, 2013],\n            [&#39;Tofu&#39;, 395, 4, 2013],\n            [&#39;Dumpling&#39;, 281, 31, 2013],\n            [&#39;Biscuit&#39;, 92, 39, 2013],\n            [&#39;Cake&#39;, 223, 29, 2014],\n            [&#39;Cereal&#39;, 211, 17, 2014],\n            [&#39;Tofu&#39;, 345, 3, 2014],\n            [&#39;Dumpling&#39;, 211, 35, 2014],\n            [&#39;Biscuit&#39;, 72, 24, 2014],\n        ],\n        // id: &#39;a&#39;\n    }, {\n        // This dataset is on `datasetIndex: 1`.\n        // A `transform` is configured to indicate that the\n        // final data of this dataset is transformed via this\n        // transform function.\n        transform: {\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Year&#39;, value: 2011 }\n        },\n        // There can be optional properties `fromDatasetIndex` or `fromDatasetId`\n        // to indicate that where is the input data of the transform from.\n        // For example, `fromDatasetIndex: 0` specify the input data is from\n        // the dataset on `datasetIndex: 0`, or `fromDatasetId: &#39;a&#39;` specify the\n        // input data is from the dataset having `id: &#39;a&#39;`.\n        // [DEFAULT_RULE]\n        // If both `fromDatasetIndex` and `fromDatasetId` are omitted,\n        // `fromDatasetIndex: 0` are used by default.\n    }, {\n        // This dataset is on `datasetIndex: 2`.\n        // Similarly, if neither `fromDatasetIndex` nor `fromDatasetId` is\n        // specified, `fromDatasetIndex: 0` is used by default\n        transform: {\n            // The &quot;filter&quot; transform filters and gets data items only match\n            // the given condition in property `config`.\n            type: &#39;filter&#39;,\n            // Transforms has a property `config`. In this &quot;filter&quot; transform,\n            // the `config` specify the condition that each result data item\n            // should be satisfied. In this case, this transform get all of\n            // the data items that the value on dimension &quot;Year&quot; equals to 2012.\n            config: { dimension: &#39;Year&#39;, value: 2012 }\n        }\n    }, {\n        // This dataset is on `datasetIndex: 3`\n        transform: {\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Year&#39;, value: 2013 }\n        }\n    }],\n    series: [{\n        type: &#39;pie&#39;, radius: 50, center: [&#39;25%&#39;, &#39;50%&#39;],\n        // In this case, each &quot;pie&quot; series reference to a dataset that has\n        // the result of its &quot;filter&quot; transform.\n        datasetIndex: 1\n    }, {\n        type: &#39;pie&#39;, radius: 50, center: [&#39;50%&#39;, &#39;50%&#39;],\n        datasetIndex: 2\n    }, {\n        type: &#39;pie&#39;, radius: 50, center: [&#39;75%&#39;, &#39;50%&#39;],\n        datasetIndex: 3\n    }]\n};\n</code></pre>\n<p>The case shows how we get three pies, representing the data from 2011, 2012, 2013.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=data-transform-multiple-pie&reset=1&edit=1\" width=\"800\" height=\"300\" ></iframe>\n\n\n\n<p>Let&#39;s summarize the key points of using data transform:</p>\n<ul>\n<li>Generate new data from existing declared data via the declaration of <code class=\"codespan\">transform</code>, <code class=\"codespan\">fromDatasetIndex</code>/<code class=\"codespan\">fromDatasetId</code> in some blank dataset.</li>\n<li>Series references these datasets to show the result.</li>\n</ul>\n<h2 id=\"advanced-usage\">Advanced usage</h2>\n<h4 id=\"piped-transform\">Piped transform</h4>\n<p>There is a syntactic sugar that pipe transforms like:</p>\n<pre><code class=\"lang-js\">option: {\n    dataset: [{\n        source: [ ... ] // The original data\n    }, {\n        // Declare transforms in an array to pipe multiple transforms,\n        // which makes them execute one by one and take the output of\n        // the previous transform as the input of the next transform.\n        transform: [{\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Product&#39;, value: &#39;Tofu&#39; }\n        }, {\n            type: &#39;sort&#39;,\n            config: { dimension: &#39;Year&#39;, order: &#39;desc&#39; }\n        }]\n    }],\n    series: {\n        type: &#39;pie&#39;,\n        // Display the result of the piped transform.\n        datasetIndex: 1\n    }\n}\n</code></pre>\n<blockquote>\n<p>Note: theoretically any type of transform is able to have multiple input data and multiple output data. But when a transform is piped, it is only able to take one input (except it is the first transform of the pipe) and product one output (except it is the last transform of the pipe).</p>\n</blockquote>\n<h4 id=\"output-multiple-data\">Output multiple data</h4>\n<p>In most cases, transform functions only need to produce one data. But there is indeed scenarios that a transform function needs to produce multiple data, each of whom might be used by different series.</p>\n<p>For example, in the built-in boxplot transform, besides boxplot data produced, the outlier data are also produced, which can be used in a scatter series. See the <a href=\"https://echarts.apache.org/examples/en/editor.html?c=boxplot-light-velocity&amp;edit=1&amp;reset=1\" target=\"_blank\">example</a>.</p>\n<p>We use prop <a href=\"option.html#dataset.fromTransformResult\" target=\"_blank\">dataset.fromTransformResult</a> to satisfy this requirement. For example:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        // Original source data.\n        source: [...]\n    }, {\n        transform: {\n            type: &#39;boxplot&#39;\n        }\n        // After this &quot;boxplot transform&quot; two result data generated:\n        // result[0]: The boxplot data\n        // result[1]: The outlier data\n        // By default, when series or other dataset reference this dataset,\n        // only result[0] can be visited.\n        // If we need to visit result[1], we have to use another dataset\n        // as follows:\n    }, {\n        // This extra dataset references the dataset above, and retrieves\n        // the result[1] as its own data. Thus series or other dataset can\n        // reference this dataset to get the data from result[1].\n        fromDatasetIndex: 1,\n        fromTransformResult: 1\n    }],\n    xAxis: {\n        type: &#39;category&#39;\n    },\n    yAxis: {\n    },\n    series: [{\n        name: &#39;boxplot&#39;,\n        type: &#39;boxplot&#39;,\n        // Reference the data from result[0].\n        datasetIndex: 1\n    }, {\n        name: &#39;outlier&#39;,\n        type: &#39;scatter&#39;,\n        // Reference the data from result[1].\n        datasetIndex: 2\n    }]\n};\n</code></pre>\n<p>What more, <a href=\"option.html#dataset.fromTransformResult\" target=\"_blank\">dataset.fromTransformResult</a> and <a href=\"option.html#dataset.transform\" target=\"_blank\">dataset.transform</a> can both appear in one dataset, which means that the input of the transform is from retrieved from the upstream result specified by <code class=\"codespan\">fromTransformResult</code>. For example:</p>\n<pre><code class=\"lang-js\">{\n    fromDatasetIndex: 1,\n    fromTransformResult: 1,\n    transform: {\n        type: &#39;sort&#39;,\n        config: { dimension: 2, order: &#39;desc&#39; }\n    }\n}\n</code></pre>\n<h4 id=\"debug-in-develop-environment\">Debug in develop environment</h4>\n<p>When using data transform, we might run into the trouble that the final chart do not display correctly but we do not know where the config is wrong. There is a property <code class=\"codespan\">transform.print</code> might help in such case. (<code class=\"codespan\">transform.print</code> is only available in dev environment).</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [ ... ]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: { ... }\n            // The result of this transform will be printed\n            // in dev tool via `console.log`.\n            print: true\n        }\n    }],\n    ...\n}\n</code></pre>\n<h2 id=\"the-transform-filter\">The transform &quot;filter&quot;</h2>\n<p>Transform type &quot;filter&quot; is a built-in transform that provide data filter according to specified conditions. The basic option is like:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [\n            [&#39;Product&#39;, &#39;Sales&#39;, &#39;Price&#39;, &#39;Year&#39;],\n            [&#39;Cake&#39;, 123, 32, 2011],\n            [&#39;Latte&#39;, 231, 14, 2011],\n            [&#39;Tofu&#39;, 235, 5, 2011],\n            [&#39;Milk Tee&#39;, 341, 25, 2011],\n            [&#39;Porridge&#39;, 122, 29, 2011],\n            [&#39;Cake&#39;, 143, 30, 2012],\n            [&#39;Latte&#39;, 201, 19, 2012],\n            [&#39;Tofu&#39;, 255, 7, 2012],\n            [&#39;Milk Tee&#39;, 241, 27, 2012],\n            [&#39;Porridge&#39;, 102, 34, 2012],\n            [&#39;Cake&#39;, 153, 28, 2013],\n            [&#39;Latte&#39;, 181, 21, 2013],\n            [&#39;Tofu&#39;, 395, 4, 2013],\n            [&#39;Milk Tee&#39;, 281, 31, 2013],\n            [&#39;Porridge&#39;, 92, 39, 2013],\n            [&#39;Cake&#39;, 223, 29, 2014],\n            [&#39;Latte&#39;, 211, 17, 2014],\n            [&#39;Tofu&#39;, 345, 3, 2014],\n            [&#39;Milk Tee&#39;, 211, 35, 2014],\n            [&#39;Porridge&#39;, 72, 24, 2014]\n        ]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Year&#39;, &#39;=&#39;: 2011 }\n            // The config is the &quot;condition&quot; of this filter.\n            // This transform traverse the source data and\n            // and retrieve all the items that the &quot;Year&quot;\n            // is `2011`.\n        }\n    }],\n    series: {\n        type: &#39;pie&#39;,\n        datasetIndex: 1\n    }\n};\n</code></pre>\n<p><br>\n<br>\nThis is another example of filter transform:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=data-transform-filter&reset=1&edit=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n<p><strong>About dimension:</strong></p>\n<p>The <code class=\"codespan\">config.dimension</code> can be:</p>\n<ul>\n<li>Dimension name declared in dataset, like <code class=\"codespan\">config: { dimension: &#39;Year&#39;, &#39;=&#39;: 2011 }</code>. Dimension name declaration is not mandatory.</li>\n<li>Dimension index (start from 0), like <code class=\"codespan\">config: { dimension: 3, &#39;=&#39;: 2011 }</code>.</li>\n</ul>\n<p><strong>About relational operator:</strong></p>\n<p>The relational operator can be:\n<code class=\"codespan\">&gt;</code>(<code class=\"codespan\">gt</code>), <code class=\"codespan\">&gt;=</code>(<code class=\"codespan\">gte</code>), <code class=\"codespan\">&lt;</code>(<code class=\"codespan\">lt</code>), <code class=\"codespan\">&lt;=</code>(<code class=\"codespan\">lte</code>), <code class=\"codespan\">=</code>(<code class=\"codespan\">eq</code>), <code class=\"codespan\">!=</code>(<code class=\"codespan\">ne</code>, <code class=\"codespan\">&lt;&gt;</code>), <code class=\"codespan\">reg</code>. (The name in the parentheses are aliases). They follows the common semantics.\nBesides the common number comparison, there is some extra features:</p>\n<ul>\n<li>Multiple operators are able to appear in one {} item like <code class=\"codespan\">{ dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 20, &#39;&lt;&#39;: 30 }</code>, which means logical &quot;and&quot; (Price &gt;= 20 and Price &lt; 30).</li>\n<li>The data value can be &quot;numeric string&quot;. Numeric string is a string that can be converted to number. Like &#39; 123 &#39;. White spaces and line breaks will be auto trimmed in the conversion.</li>\n<li>If we need to compare &quot;JS <code class=\"codespan\">Date</code> instance&quot; or date string (like &#39;2012-05-12&#39;), we need to specify <code class=\"codespan\">parser: &#39;time&#39;</code> manually, like <code class=\"codespan\">config: { dimension: 3, lt: &#39;2012-05-12&#39;, parser: &#39;time&#39; }</code>.</li>\n<li>Pure string comparison is supported but can only be used in <code class=\"codespan\">=</code>, <code class=\"codespan\">!=</code>. <code class=\"codespan\">&gt;</code>, <code class=\"codespan\">&gt;=</code>, <code class=\"codespan\">&lt;</code>, <code class=\"codespan\">&lt;=</code> do not support pure string comparison (the &quot;right value&quot; of the four operators can not be a &quot;string&quot;).</li>\n<li>The operator <code class=\"codespan\">reg</code> can be used to make regular expression test. Like using <code class=\"codespan\">{ dimension: &#39;Name&#39;, reg: /\\s+Müller\\s*$/ }</code> to select all data items that the &quot;Name&quot; dimension contains family name Müller.</li>\n</ul>\n<p><strong>About logical relationship:</strong></p>\n<p>Sometimes we also need to express logical relationship ( <code class=\"codespan\">and</code> / <code class=\"codespan\">or</code> / <code class=\"codespan\">not</code> ):</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [...]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: {\n                // Use operator &quot;and&quot;.\n                // Similarly, we can also use &quot;or&quot;, &quot;not&quot; in the same place.\n                // But &quot;not&quot; should be followed with a {...} rather than `[...]`.\n                and: [\n                    { dimension: &#39;Year&#39;, &#39;=&#39;: 2011 },\n                    { dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 20, &#39;&lt;&#39;: 30 }\n                ]\n            }\n            // The condition is &quot;Year&quot; is 2011 and &quot;Price&quot; is greater\n            // or equal to 20 but less than 30.\n        }\n    }],\n    series: {\n        type: &#39;pie&#39;,\n        datasetIndex: 1\n    }\n};\n</code></pre>\n<p><code class=\"codespan\">and</code>/<code class=\"codespan\">or</code>/<code class=\"codespan\">not</code> can be nested like:</p>\n<pre><code class=\"lang-js\">transform: {\n    type: &#39;filter&#39;,\n    config: {\n        or: [{\n            and: [{\n                dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 10, &#39;&lt;&#39;: 20\n            }, {\n                dimension: &#39;Sales&#39;, &#39;&lt;&#39;: 100\n            }, {\n                not: { dimension: &#39;Product&#39;, &#39;=&#39;: &#39;Tofu&#39; }\n            }]\n        }, {\n            and: [{\n                dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 10, &#39;&lt;&#39;: 20\n            }, {\n                dimension: &#39;Sales&#39;, &#39;&lt;&#39;: 100\n            }, {\n                not: { dimension: &#39;Product&#39;, &#39;=&#39;: &#39;Cake&#39; }\n            }]\n        }]\n    }\n}\n</code></pre>\n<p><strong>About parser:</strong></p>\n<p>Some &quot;parser&quot; can be specified when make value comparison. At present only supported:</p>\n<ul>\n<li><code class=\"codespan\">parser: &#39;time&#39;</code>: Parse the value to date time before comparing. The parser rule is the same as <code class=\"codespan\">echarts.time.parse</code>, where JS <code class=\"codespan\">Date</code> instance, timestamp number (in millisecond) and time string (like <code class=\"codespan\">&#39;2012-05-12 03:11:22&#39;</code>) are supported to be parse to timestamp number, while other value will be parsed to <code class=\"codespan\">NaN</code>.</li>\n<li><code class=\"codespan\">parser: &#39;trim&#39;</code>: Trim the string before making comparison. For non-string, return the original value.</li>\n<li><code class=\"codespan\">parser: &#39;number&#39;</code>: Force to convert the value to number before making comparison. If not possible to be converted to a meaningful number, converted to <code class=\"codespan\">NaN</code>. In most cases it is not necessary, because by default the value will be auto converted to number if possible before making comparison. But the default conversion is strict while this parser provide a loose strategy. If we meet the case that number string with unit suffix (like <code class=\"codespan\">&#39;33%&#39;</code>, <code class=\"codespan\">12px</code>), we should use <code class=\"codespan\">parser: &#39;number&#39;</code> to convert them to number before making comparison.</li>\n</ul>\n<p>This is an example to show the <code class=\"codespan\">parser: &#39;time&#39;</code>:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [\n            [&#39;Product&#39;, &#39;Sales&#39;, &#39;Price&#39;, &#39;Date&#39;],\n            [&#39;Milk Tee&#39;, 311, 21, &#39;2012-05-12&#39;],\n            [&#39;Cake&#39;, 135, 28, &#39;2012-05-22&#39;],\n            [&#39;Latte&#39;, 262, 36, &#39;2012-06-02&#39;],\n            [&#39;Milk Tee&#39;, 359, 21, &#39;2012-06-22&#39;],\n            [&#39;Cake&#39;, 121, 28, &#39;2012-07-02&#39;],\n            [&#39;Latte&#39;, 271, 36, &#39;2012-06-22&#39;],\n            ...\n        ]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: {\n                { dimension: &#39;Date&#39;, &#39;&gt;=&#39;: &#39;2012-05&#39;, &#39;&lt;&#39;: &#39;2012-06&#39;, parser: &#39;time&#39; }\n            }\n        }\n    }]\n}\n</code></pre>\n<p><strong>Formally definition:</strong></p>\n<p>Finally, we give the formally definition of the filter transform config here:</p>\n<pre><code class=\"lang-ts\">type FilterTransform = {\n    type: &#39;filter&#39;;\n    config: ConditionalExpressionOption;\n};\ntype ConditionalExpressionOption =\n    true | false | RelationalExpressionOption | LogicalExpressionOption;\ntype RelationalExpressionOption = {\n    dimension: DimensionName | DimensionIndex;\n    parser?: &#39;time&#39; | &#39;trim&#39; | &#39;number&#39;;\n    lt?: DataValue; // less than\n    lte?: DataValue; // less than or equal\n    gt?: DataValue; // greater than\n    gte?: DataValue; // greater than or equal\n    eq?: DataValue; // equal\n    ne?: DataValue; // not equal\n    &#39;&lt;&#39;?: DataValue; // lt\n    &#39;&lt;=&#39;?: DataValue; // lte\n    &#39;&gt;&#39;?: DataValue; // gt\n    &#39;&gt;=&#39;?: DataValue; // gte\n    &#39;=&#39;?: DataValue; // eq\n    &#39;!=&#39;?: DataValue; // ne\n    &#39;&lt;&gt;&#39;?: DataValue; // ne (SQL style)\n    reg?: RegExp | string; // RegExp\n};\ntype LogicalExpressionOption = {\n    and?: ConditionalExpressionOption[];\n    or?: ConditionalExpressionOption[];\n    not?: ConditionalExpressionOption;\n};\ntype DataValue = string | number | Date;\ntype DimensionName = string;\ntype DimensionIndex = number;\n</code></pre>\n<h2 id=\"the-transform-sort\">The transform &quot;sort&quot;</h2>\n<p>Another built-in transform is &quot;sort&quot;.</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        dimensions: [&#39;name&#39;, &#39;age&#39;, &#39;profession&#39;, &#39;score&#39;, &#39;date&#39;],\n        source: [\n            [&#39; Hannah Krause &#39;, 41, &#39;Engineer&#39;, 314, &#39;2011-02-12&#39;],\n            [&#39;Zhao Qian &#39;, 20, &#39;Teacher&#39;, 351, &#39;2011-03-01&#39;],\n            [&#39; Jasmin Krause &#39;, 52, &#39;Musician&#39;, 287, &#39;2011-02-14&#39;],\n            [&#39;Li Lei&#39;, 37, &#39;Teacher&#39;, 219, &#39;2011-02-18&#39;],\n            [&#39; Karle Neumann &#39;, 25, &#39;Engineer&#39;, 253, &#39;2011-04-02&#39;],\n            [&#39; Adrian Groß&#39;, 19, &#39;Teacher&#39;, null, &#39;2011-01-16&#39;],\n            [&#39;Mia Neumann&#39;, 71, &#39;Engineer&#39;, 165, &#39;2011-03-19&#39;],\n            [&#39; Böhm Fuchs&#39;, 36, &#39;Musician&#39;, 318, &#39;2011-02-24&#39;],\n            [&#39;Han Meimei &#39;, 67, &#39;Engineer&#39;, 366, &#39;2011-03-12&#39;],\n        ]\n    }, {\n        transform: {\n            type: &#39;sort&#39;,\n            // Sort by score.\n            config: { dimension: &#39;score&#39;, order: &#39;asc&#39; }\n        }\n    }],\n    series: {\n        type: &#39;bar&#39;,\n        datasetIndex: 1\n    },\n    ...\n};\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=data-transform-sort-bar&reset=1&edit=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n\n<p>Some extra features about &quot;sort transform&quot;:</p>\n<ul>\n<li>Order by multiple dimensions is supported. See examples below.</li>\n<li>The sort rule:<ul>\n<li>By default &quot;numeric&quot; (that is, number and numeric-string like <code class=\"codespan\">&#39; 123 &#39;</code>) are able to sorted by numeric order.</li>\n<li>Otherwise &quot;non-numeric-string&quot; are also able to be ordered among themselves. This might help to the case like grouping data items with the same tag, especially when multiple dimensions participated in the sort (See example below).</li>\n<li>When &quot;numeric&quot; is compared with &quot;non-numeric-string&quot;, or either of them is compared with other types of value, they are not comparable. So we call the latter one as &quot;incomparable&quot; and treat it as &quot;min value&quot; or &quot;max value&quot; according to the prop <code class=\"codespan\">incomparable: &#39;min&#39; | &#39;max&#39;</code>. This feature usually helps to decide whether to put the empty values (like <code class=\"codespan\">null</code>, <code class=\"codespan\">undefined</code>, <code class=\"codespan\">NaN</code>, <code class=\"codespan\">&#39;&#39;</code>, <code class=\"codespan\">&#39;-&#39;</code>) or other illegal values to the head or tail.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">filter: &#39;time&#39; | &#39;trim&#39; | &#39;number&#39;</code> can be used, the same as &quot;filter transform&quot;.<ul>\n<li>If intending to sort time values (JS <code class=\"codespan\">Date</code> instance or time string like <code class=\"codespan\">&#39;2012-03-12 11:13:54&#39;</code>), <code class=\"codespan\">parser: &#39;time&#39;</code> should be specified. Like <code class=\"codespan\">config: { dimension: &#39;date&#39;, order: &#39;desc&#39;, parser: &#39;time&#39; }</code></li>\n<li>If intending to sort values with unit suffix (like <code class=\"codespan\">&#39;33%&#39;</code>, <code class=\"codespan\">&#39;16px&#39;</code>), need to use <code class=\"codespan\">parser: &#39;number&#39;</code>.</li>\n</ul>\n</li>\n</ul>\n<p>See an example of multiple order:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        dimensions: [&#39;name&#39;, &#39;age&#39;, &#39;profession&#39;, &#39;score&#39;, &#39;date&#39;],\n        source: [\n            [&#39; Hannah Krause &#39;, 41, &#39;Engineer&#39;, 314, &#39;2011-02-12&#39;],\n            [&#39;Zhao Qian &#39;, 20, &#39;Teacher&#39;, 351, &#39;2011-03-01&#39;],\n            [&#39; Jasmin Krause &#39;, 52, &#39;Musician&#39;, 287, &#39;2011-02-14&#39;],\n            [&#39;Li Lei&#39;, 37, &#39;Teacher&#39;, 219, &#39;2011-02-18&#39;],\n            [&#39; Karle Neumann &#39;, 25, &#39;Engineer&#39;, 253, &#39;2011-04-02&#39;],\n            [&#39; Adrian Groß&#39;, 19, &#39;Teacher&#39;, null, &#39;2011-01-16&#39;],\n            [&#39;Mia Neumann&#39;, 71, &#39;Engineer&#39;, 165, &#39;2011-03-19&#39;],\n            [&#39; Böhm Fuchs&#39;, 36, &#39;Musician&#39;, 318, &#39;2011-02-24&#39;],\n            [&#39;Han Meimei &#39;, 67, &#39;Engineer&#39;, 366, &#39;2011-03-12&#39;],\n        ]\n    }, {\n        transform: {\n            type: &#39;sort&#39;,\n            config: [\n                // Sort by the two dimensions.\n                { dimension: &#39;profession&#39;, order: &#39;desc&#39; },\n                { dimension: &#39;score&#39;, order: &#39;desc&#39; }\n            ]\n        }\n    }],\n    series: {\n        type: &#39;bar&#39;,\n        datasetIndex: 1\n    },\n    ...\n};\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/data-transform-multiple-sort-bar&reset=1&edit=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n<p>Finally, we give the formally definition of the sort transform config here:</p>\n<pre><code class=\"lang-ts\">type SortTransform = {\n    type: &#39;filter&#39;;\n    config: OrderExpression | OrderExpression[];\n};\ntype OrderExpression = {\n    dimension: DimensionName | DimensionIndex;\n    order: &#39;asc&#39; | &#39;desc&#39;;\n    incomparable?: &#39;min&#39; | &#39;max&#39;;\n    parser?: &#39;time&#39; | &#39;trim&#39; | &#39;number&#39;;\n};\ntype DimensionName = string;\ntype DimensionIndex = number;\n</code></pre>\n<h2 id=\"use-external-transforms\">Use external transforms</h2>\n<p>Besides built-in transforms (like &#39;filter&#39;, &#39;sort&#39;), we can also use external transforms to provide more powerful functionalities. Here we use a third-party library <a href=\"https://github.com/ecomfe/echarts-stat\" target=\"_blank\">ecStat</a> as an example:</p>\n<p>This case show how to make a regression line via ecStat:</p>\n<pre><code class=\"lang-js\">// Register the external transform at first.\necharts.registerTransform(ecStatTransform(ecStat).regression);\n</code></pre>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: rawData\n    }, {\n        transform: {\n            // Reference the registered external transform.\n            // Note that external transform has a namespace (like &#39;ecStat:xxx&#39;\n            // has namespace &#39;ecStat&#39;).\n            // built-in transform (like &#39;filter&#39;, &#39;sort&#39;) does not have a namespace.\n            type: &#39;ecStat:regression&#39;,\n            config: {\n                // Parameters needed by the external transform.\n                method: &#39;exponential&#39;\n            }\n        }\n    }],\n    xAxis: { type: &#39;category&#39; },\n    yAxis: {},\n    series: [{\n        name: &#39;scatter&#39;,\n        type: &#39;scatter&#39;,\n        datasetIndex: 0\n    }, {\n        name: &#39;regression&#39;,\n        type: &#39;line&#39;,\n        symbol: &#39;none&#39;,\n        datasetIndex: 1\n    }]\n};\n</code></pre>\n<p>Examples with echarts-stat:</p>\n<ul>\n<li><a href=\"https://echarts.apache.org/examples/en/editor.html?c=bar-histogram&amp;edit=1&amp;reset=1\" target=\"_blank\">Bar histogram</a></li>\n<li><a href=\"https://echarts.apache.org/examples/en/editor.html?c=scatter-clustering&amp;edit=1&amp;reset=1\" target=\"_blank\">Scatter clustering</a></li>\n<li><a href=\"https://echarts.apache.org/examples/en/editor.html?c=scatter-linear-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">Scatter linear regression</a></li>\n<li><a href=\"https://echarts.apache.org/examples/en/editor.html?c=scatter-exponential-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">Scatter exponential regression</a></li>\n<li><a href=\"https://echarts.apache.org/examples/en/editor.html?c=scatter-logarithmic-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">Scatter logarithmic regression</a></li>\n<li><a href=\"https://echarts.apache.org/examples/en/editor.html?c=scatter-polynomial-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">Scatter polynomial regression</a></li>\n</ul>\n"},"Add interaction to the chart component":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> provides many interaction components besides chart. For example:</p>\n<p><code class=\"codespan\">legend component</code> <a href=\"option.html#legend\" target=\"_blank\">legend</a>、<code class=\"codespan\">title component</code> <a href=\"option.html#title\" target=\"_blank\">title</a>、<code class=\"codespan\">visualmap component</code> <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a>、<code class=\"codespan\">datazoom component</code> <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a>、<code class=\"codespan\">dataline component</code> <a href=\"option.html#timeline\" target=\"_blank\">timeline</a></p>\n<p>Following is an example of <code class=\"codespan\">datazoom component</code> <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a> as an introduction of how to add this kind of component.</p>\n<h2 id=\"introduction-of-data-zoom-component-datazoom-\">Introduction of data zoom component (dataZoom)</h2>\n<p>Data overview by default, and detail by requirement is a basic interaction need of data visualization. <code class=\"codespan\">dataZoom</code> component can implement this function in rectangular coordinate (<a href=\"option.html#grid\" target=\"_blank\">grid</a>) and polar coordinate (<a href=\"option.html#polar\" target=\"_blank\">polar</a>.</p>\n<p><strong>For example: </strong></p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/scatter-dataZoom-all&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n<p><br></p>\n<ul>\n<li><code class=\"codespan\">dataZoom</code> component operates <em>data window zoom</em> and <em>data window translation</em> on <code class=\"codespan\">axis</code>.</li>\n</ul>\n<blockquote>\n<p>Use <a href=\"option.html#dataZoom.xAxisIndex\" target=\"_blank\">dataZoom.xAxisIndex</a>, <a href=\"option.html#dataZoom.yAxisIndex\" target=\"_blank\">dataZoom.yAxisIndex</a> to specify which axis <code class=\"codespan\">dataZoom</code> controls.</p>\n</blockquote>\n<ul>\n<li><p>Multiple <code class=\"codespan\">dataZoom</code> components can exist at the same time to control function together. Components controling the same axis will be connected automatically. The example below explains in detail.</p>\n</li>\n<li><p>Operation principle of <code class=\"codespan\">dataZoom</code> achieves <em>data window zooming</em> through <em>data filtering</em>.</p>\n<p>  Different settings of data filtering modes lead to different data window zooming effects, please see: <a href=\"option.html#dataZoom.filterMode\" target=\"_blank\">dataZoom.filterMode</a>.</p>\n</li>\n<li><p>Setting of <code class=\"codespan\">dataZoom</code> data window range supports two formats currently:</p>\n<ul>\n<li><p>Percentage: see <a href=\"option.html#dataZoom.start\" target=\"_blank\">dataZoom.start</a> and <a href=\"option.html#dataZoom.end\" target=\"_blank\">dataZoom.end</a>.</p>\n</li>\n<li><p>Absolute value: see <a href=\"option.html#dataZoom.startValue\" target=\"_blank\">dataZoom.startValue</a> and <a href=\"option.html#dataZoom.endValue\" target=\"_blank\">dataZoom.endValue</a>.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>dataZoom component supports several child components: </strong></p>\n<ul>\n<li><p><a href=\"option.html#dataZoom-inside\" target=\"_blank\">Inside data zoom component (dataZoomInside)</a>: inside coordinates.</p>\n</li>\n<li><p><a href=\"option.html#dataZoom-slider\" target=\"_blank\">Slider data zoom component (dataZoomSlider)</a>: has seperate slide option.</p>\n</li>\n<li><p><a href=\"option.html#toolbox.feature.dataZoom\" target=\"_blank\">Select data zoom component (dataZoomSelect)</a>: full-screen box for zoom data area. Entrance and configuration item are both in <code class=\"codespan\">toolbox</code>.</p>\n</li>\n</ul>\n<h2 id=\"adding-datazoom-component\">Adding dataZoom component</h2>\n<p>First, only add dataZoom component to x-axis. Following examples shows the code.</p>\n<pre><code class=\"lang-javascript\">\noption = {\n    xAxis: {\n        type: &#39;value&#39;\n    },\n    yAxis: {\n        type: &#39;value&#39;\n    },\n    dataZoom: [\n        {   // This dataZoom component controls x-axis by dafault\n            type: &#39;slider&#39;, // this dataZoom component is dataZoom component of slider\n            start: 10,      // the left is located at 10%\n            end: 60         // the right is located at 60%\n        }\n    ],\n    series: [\n        {\n            type: &#39;scatter&#39;, // this is scatter chart\n            itemStyle: {\n                opacity: 0.8\n            },\n            symbolSize: function (val) {\n                return val[2] * 40;\n            },\n            data: [[&quot;14.616&quot;,&quot;7.241&quot;,&quot;0.896&quot;],[&quot;3.958&quot;,&quot;5.701&quot;,&quot;0.955&quot;],[&quot;2.768&quot;,&quot;8.971&quot;,&quot;0.669&quot;],[&quot;9.051&quot;,&quot;9.710&quot;,&quot;0.171&quot;],[&quot;14.046&quot;,&quot;4.182&quot;,&quot;0.536&quot;],[&quot;12.295&quot;,&quot;1.429&quot;,&quot;0.962&quot;],[&quot;4.417&quot;,&quot;8.167&quot;,&quot;0.113&quot;],[&quot;0.492&quot;,&quot;4.771&quot;,&quot;0.785&quot;],[&quot;7.632&quot;,&quot;2.605&quot;,&quot;0.645&quot;],[&quot;14.242&quot;,&quot;5.042&quot;,&quot;0.368&quot;]]\n        }\n    ]\n}\n</code></pre>\n<p>which will show the following result:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/scatter-tutorial-dataZoom-1&edit=1&reset=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n<p><br></p>\n<p>The chart above can only change window by dragging dataZoom component. If you want to drag in coordinate, or use mouse wheel (or slides with two fingers on mobile) to zoom, then another inside dataZoom component needs to be added. You can just add in the <code class=\"codespan\">option.dataZoom</code> above:</p>\n<pre><code class=\"lang-javascript\">option = {\n    ...,\n    dataZoom: [\n        {   // this dataZoom component controls x-axis by dafault\n            type: &#39;slider&#39;, // this dataZoom component is dataZoom component of slider\n            start: 10,      // the left is located at 10%\n            end: 60         // the right is located at 60%\n        },\n        {   // This dataZoom component controls x-axis by dafault\n            type: &#39;inside&#39;, // this dataZoom component is dataZoom component of inside\n            start: 10,      // the left is located at 10%\n            end: 60         // the right is located at 60%\n        }\n    ],\n    ...\n}\n</code></pre>\n<p>Following results can be seen (you can now slide or use mouse wheel to zoom in coordinate) :</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/scatter-tutorial-dataZoom-2&edit=1&reset=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n\n<p><br></p>\n<p>If you want to enable zooming on y-axis, then you need to add dataZoom componet on y-axis:</p>\n<pre><code class=\"lang-javascript\">option = {\n    ...,\n    dataZoom: [\n        {\n            type: &#39;slider&#39;,\n            xAxisIndex: 0,\n            start: 10,\n            end: 60\n        },\n        {\n            type: &#39;inside&#39;,\n            xAxisIndex: 0,\n            start: 10,\n            end: 60\n        },\n        {\n            type: &#39;slider&#39;,\n            yAxisIndex: 0,\n            start: 30,\n            end: 80\n        },\n        {\n            type: &#39;inside&#39;,\n            yAxisIndex: 0,\n            start: 30,\n            end: 80\n        }\n    ],\n    ...\n}\n</code></pre>\n<p>Following result can be seen:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/scatter-tutorial-dataZoom-3&edit=1&reset=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n\n\n\n\n\n\n"},"Responsive Mobile-End":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> works in DOM nodes with user defined width and height. ECharts <em>component</em> and <em>series</em> are both in this DOM node, whose location can be assigned by user seperately. Inner components of charts are not suitable for implementing DOM flow layout. Instead, we use a simpler and more understandable layout similar to absolute layout. But sometimes when container is of extreme size, this method cannot avoid component overlapping automatically, especially on small screens on mobile-end.</p>\n<p>Besides, sometimes one chart may need to be displayed on both PC and mobile-end, which involves the ability of ECharts inner components to be responsive with different container sizes.</p>\n<p>To solve this problem, ECharts improved component location algorithm, and implemented responsive ability similar to <a href=\"https://www.w3.org/TR/css3-mediaqueries/\" target=\"_blank\">CSS Media Query</a>.</p>\n<h2 id=\"location-and-layout-of-echarts-components\">Location and layout of ECharts components</h2>\n<p>Most <em>component</em> and <em>series</em> follow two locating methods:</p>\n<p><br>\n<strong>left/right/top/bottom/width/height locating method:</strong></p>\n<p>Each of those six parameters can be <em>absolute value</em> or <em>percentage</em> or <em>location description</em>.</p>\n<ul>\n<li><p>Absolute value</p>\n<p>  in browser pixels (px); in form of <code class=\"codespan\">number</code> (no unit); e.g.: <code class=\"codespan\">{left: 23, height: 400}</code>.</p>\n</li>\n<li><p>Percentage</p>\n<p>  to the width and height of DOM container; in form of <code class=\"codespan\">string</code>; e.g.: <code class=\"codespan\">{right: &#39;30%&#39;, bottom: &#39;40%&#39;}</code>.</p>\n</li>\n<li><p>Location Description</p>\n<ul>\n<li>can be set to <code class=\"codespan\">left: &#39;center&#39;</code>, for horizontally centering.</li>\n<li>can be set to <code class=\"codespan\">top: &#39;middle&#39;</code>, for vertically centering.</li>\n</ul>\n</li>\n</ul>\n<p>The concept of these six parameters is similar to that in CSS:</p>\n<ul>\n<li>left: distance to left border of DOM container.</li>\n<li>right: distance to right border of DOM container.</li>\n<li>top: distance to top border of DOM container.</li>\n<li>bottom: distance to bottom border of DOM container.</li>\n<li>width: width.</li>\n<li>height: height.</li>\n</ul>\n<p>Two out of the three horizontal parameters, <code class=\"codespan\">left</code>, <code class=\"codespan\">right</code>, <code class=\"codespan\">width</code>, are enough to determine the component location. For example, <code class=\"codespan\">left</code> and <code class=\"codespan\">right</code>, or <code class=\"codespan\">right</code> and <code class=\"codespan\">width</code> can both determine component location and size.\nThe same goes for vertical paramters <code class=\"codespan\">top</code>, <code class=\"codespan\">bottom</code> and <code class=\"codespan\">height</code>.</p>\n<p><br>\n<strong>Locating method of <code class=\"codespan\">center</code> / <code class=\"codespan\">radius</code>: </strong></p>\n<ul>\n<li><p><code class=\"codespan\">center</code></p>\n<p>  an array in form of <code class=\"codespan\">[x, y]</code>, in which <code class=\"codespan\">x</code> and <code class=\"codespan\">y</code> can either be <em>absolute value</em> or <em>percentage</em>, as described above.</p>\n</li>\n<li><p><code class=\"codespan\">radius</code></p>\n<p>  an array in form of <code class=\"codespan\">[innerRadius, outerRadius]</code>, in which <code class=\"codespan\">innerRadius</code> and <code class=\"codespan\">outerRadius</code> can either be <em>absolute value</em> or <em>percentage</em>, as described above.</p>\n<p>  Percentage location turns out to be very useful for responsive positioning.</p>\n</li>\n</ul>\n<p><br>\n<strong>Horizontal and vertical</strong></p>\n<p>Most of ECharts&#39;s long and narrow components (such as <code class=\"codespan\">legend</code>,<code class=\"codespan\">visualMap</code>,<code class=\"codespan\">dataZoom</code>,<code class=\"codespan\">timeline</code> and so on), provide option to set them to be horizontal or vertical. For example, long and narrow screen of mobile-end, vertical layout may be a more suitable choice, while horizontal may more suit for PC&#39;s wide screen.</p>\n<p>Setting of horizontal or vertical layout is usually with component or series&#39;s <code class=\"codespan\">orient</code> or <code class=\"codespan\">layout</code> option, which can be set to <code class=\"codespan\">&#39;horizontal&#39;</code> or <code class=\"codespan\">&#39;vertical&#39;</code>.</p>\n<p><br>\n<strong>Compatibility with ECharts2: </strong></p>\n<p>Naming of <code class=\"codespan\">x/x2/y/y2</code> in ECharts2 is still compatible, as well as the newly added <code class=\"codespan\">left/right/top/bottom</code>. But <code class=\"codespan\">left/right/top/bottom</code> is recommended.</p>\n<p>To be compatible with ECharts2, there may be settings that seems to be odd, e.g.: <code class=\"codespan\">left: &#39;right&#39;</code>, <code class=\"codespan\">left: &#39;left&#39;</code>, <code class=\"codespan\">top: &#39;bottom&#39;</code>, <code class=\"codespan\">top: &#39;top&#39;</code>, which are equal to: <code class=\"codespan\">right: 0</code>, <code class=\"codespan\">left: 0</code>, <code class=\"codespan\">bottom: 0</code>, <code class=\"codespan\">top: 0</code>, in a more normal expression.</p>\n<h2 id=\"media-query\">Media Query</h2>\n<p><a href=\"https://www.w3.org/TR/css3-mediaqueries/#media1\" target=\"_blank\">Media Query</a> provides the ability to be responsive with container size.</p>\n<p>As shown in the following example, you may drag <strong>the circle in bottom-right corner</strong> to see the legend and series change layout position and method with container size.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/pie-media&edit=1&reset=1\" width=\"750\" height=\"600\" ></iframe>\n\n\n<p>The following format should be followed if you need to set Media Query in option:</p>\n<pre><code class=\"lang-javascript\">option = {\n    // here defines baseOption\n    title: {...},\n    legend: {...},\n    series: [{...}, {...}, ...],\n    ...,\n    media: [ // each rule of media query is defined here\n        {\n            query: {...},   // write rule here\n            option: {       // write options accordingly\n                legend: {...},\n                ...\n            }\n        },\n        {\n            query: {...},   // the second rule\n            option: {       // the second option\n                legend: {...},\n                ...\n            }\n        },\n        {                   // default with no rules,\n            option: {       // when all rules fail, use this option\n                legend: {...},\n                ...\n            }\n        }\n    ]\n};\n</code></pre>\n<p>In the above example, <code class=\"codespan\">baseOption</code> and every option in <code class=\"codespan\">media</code> are all <em>simple options</em>, which are regular options containing components and series. <code class=\"codespan\">baseOption</code> is always be used, while options of every will be merged with <code class=\"codespan\">chart.mergeOption()</code> when given <code class=\"codespan\">query</code> condition is satisfied with.</p>\n<p><strong>query: </strong></p>\n<p>A <code class=\"codespan\">query</code> is in the following format:</p>\n<pre><code class=\"lang-javascript\">{\n    minWidth: 200,\n    maxHeight: 300,\n    minAspectRatio: 1.3\n}\n</code></pre>\n<p>Currently there are three supported attributes:<code class=\"codespan\">width</code>, <code class=\"codespan\">height</code>, <code class=\"codespan\">aspectRatio</code> (height / width), each of which can add <code class=\"codespan\">min</code> or <code class=\"codespan\">max</code> as prefix. E.g., <code class=\"codespan\">minWidth: 200</code> stands for when width is greater than or equal to 200px. When two attributes are written together, it means <em>and</em> in Bool logic. For example, <code class=\"codespan\">{minWidth: 200, maxHeight: 300}</code> stands for when width is greater than or equal to 200px and height is smaller than or equal to 300px.</p>\n<p><strong>option: </strong></p>\n<p>Since option in <code class=\"codespan\">media</code> is <em>simple option</em>, technically speaking, you can write every option configuration item. But usually we only write those related to layout. Take part of the above query option as example:</p>\n<pre><code class=\"lang-javascript\">media: [\n    ...,\n    {\n        query: {\n            maxAspectRatio: 1           // when length-to-width ratio is less than 1\n        },\n        option: {\n            legend: {                   // legend is placed in middle-bottom\n                right: &#39;center&#39;,\n                bottom: 0,\n                orient: &#39;horizontal&#39;    // horizontal layout of legend\n            },\n            series: [                   // left and right layout of two pie charts\n                {\n                    radius: [20, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;30%&#39;]\n                },\n                {\n                    radius: [30, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;70%&#39;]\n                }\n            ]\n        }\n    },\n    {\n        query: {\n            maxWidth: 500               // when container width is smaller than 500\n        },\n        option: {\n            legend: {\n                right: 10,              // legend is placed in middle-right\n                top: &#39;15%&#39;,\n                orient: &#39;vertical&#39;      // vertical layout\n            },\n            series: [                   // top and bottom layout of two pie charts\n                {\n                    radius: [20, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;30%&#39;]\n                },\n                {\n                    radius: [30, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;75%&#39;]\n                }\n            ]\n        }\n    },\n    ...\n]\n</code></pre>\n<p><strong>Priority when multiple queries are satisfied: </strong></p>\n<p>Attention: When multiple <code class=\"codespan\">query</code> are satisfied at the same time, all of them will be merged with <code class=\"codespan\">mergeOption</code> and those are defined later will be merged later, thus provides them with higher priority.</p>\n<p><strong>Query by default: </strong></p>\n<p>If an item in <code class=\"codespan\">media</code> has no not <code class=\"codespan\">query</code>, then it means <em>default value</em>, which will be used when all other rules fail.</p>\n<p><strong>Pay attention when container size changes:</strong></p>\n<p>In many cases, container DOM node doesn&#39;t need to change size with user dragging. Instead, it may set to several sizes on varied ends.</p>\n<p>But if the container DOM node needs to change size with dragging, you need to pay attention to this: if certain configuration item appears in one <code class=\"codespan\">query option</code>, then it should also appeared in other <code class=\"codespan\">query option</code>, or it will not be able to return to the original state. (<code class=\"codespan\">left/right/top/bottom/width/height</code> are not restricted to this rule.)</p>\n<p><strong><code class=\"codespan\">media</code> in <em>composite option</em> does not support merge</strong></p>\n<p>When <code class=\"codespan\">chart.setOption(rawOption)</code> for the second, third, fourth, fifth, and etc. times, if <code class=\"codespan\">rawOption</code> is <code class=\"codespan\">composite option</code> (which means it contains <code class=\"codespan\">media</code> list), then, the new <code class=\"codespan\">rawOption.media</code> list will not merge with the old <code class=\"codespan\">media</code>. instead, it will simply replace the option. Of course, <code class=\"codespan\">baseOption</code> will still merge with the old option normally.</p>\n<p><br>\nFinally, let&#39;s see an example combining with timeline:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/bar-media-timeline&edit=1&reset=1\" width=\"750\" height=\"700\" ></iframe>\n\n\n\n\n\n"},"Visual Map of Data":{"type":["*"],"description":"<p>Data visualization is a procedure of mapping data into visual elements. This procedure can also be called visual coding, and visual elements can also be called visual tunnels.</p>\n<p>Every type of charts in Apache ECharts<sup>TM</sup> has this built-in mapping procedure. For example, line charts map data into <em>lines</em>, bar charts map data into <em>length</em>. Some more complicated charts, like <code class=\"codespan\">graph</code>, <code class=\"codespan\">themeRiver</code>, and <code class=\"codespan\">treemap</code> have their own built-in mapping.</p>\n<p>Besides, ECharts provides <a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a> for general visual mapping. Visual elements allowed in <code class=\"codespan\">visualMap</code> component are:<br>\n<code class=\"codespan\">symbol</code>, <code class=\"codespan\">symbolSize</code><br>\n<code class=\"codespan\">color</code>, <code class=\"codespan\">opacity</code>, <code class=\"codespan\">colorAlpha</code>, <br>\n<code class=\"codespan\">colorLightness</code>, <code class=\"codespan\">colorSaturation</code>, <code class=\"codespan\">colorHue</code></p>\n<p>Next, we are going to introduce how to use <code class=\"codespan\">visualMap</code> component.</p>\n<h2 id=\"data-and-dimension\">Data and Dimension</h2>\n<p>Data are usually stored in <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> in ECharts. Depending on chart types, like list, tree, graph, and so on, the form of data may vary somehow. But they have one common feature, that they are a collection of <code class=\"codespan\">dataItem</code>s. Every data item contains data value, and other information if needed. Every data value can be a single value (one dimension) or an array (multiple dimensions).</p>\n<p>For example, <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> is the most common form, which is a <code class=\"codespan\">list</code>, a common array:</p>\n<pre><code class=\"lang-javascript\">series: {\n    data: [\n        {       // every item here is a dataItem\n            value: 2323, // this is data value\n            itemStyle: {...}\n        },\n        1212,   // it can also be a value of dataItem, which is a more common case\n        2323,   // every data value here is one dimension\n        4343,\n        3434\n    ]\n}\n</code></pre>\n<pre><code class=\"lang-javascript\">series: {\n    data: [\n        {                        // every item here is a dataItem\n            value: [3434, 129,  &#39;San Marino&#39;], // this is data value\n            itemStyle: {...}\n        },\n        [1212, 5454, &#39;Vatican&#39;],   // it can also be a value of dataItem, which is a more common case\n        [2323, 3223, &#39;Nauru&#39;],     // every data value here is three dimension\n        [4343, 23,   &#39;Tuvalu&#39;]    // If is scatter chart, usually map the first dimension to x axis,\n                                 // the second dimension to y axis,\n                                 // and the third dimension to symbolSize\n    ]\n}\n</code></pre>\n<p>Usually the first one or two dimensions are used for mapping. For example, map the first dimension to x axis, and the second dimension to y axis. If you want to represent more dimensions, <code class=\"codespan\">visualMap</code> is what you need. Most likely, <a href=\"option.html#series-scatter\" target=\"_blank\">scatter charts</a> use radius to represent the third dimension.</p>\n<h2 id=\"visualmap-component\">visualMap Component</h2>\n<p>visualMap component defines the mapping from <em>which dimension of data</em> to <em>what visual elements</em>.</p>\n<p>The following two types of visualMap components are supported, identified with <a href=\"option.html#visualMap.type\" target=\"_blank\">visualMap.type</a>.</p>\n<p>Its structure is defined as:</p>\n<pre><code class=\"lang-javascript\">option = {\n    visualMap: [ // can define multiple visualMap components at the same time\n        { // the first visualMap component\n            type: &#39;continuous&#39;, // defined as continuous visualMap\n            ...\n        },\n        { // the second visualMap component\n            type: &#39;piecewise&#39;, // defined as discrete visualMap\n            ...\n        }\n    ],\n    ...\n};\n</code></pre>\n<p><a href=\"option.html#visualMap-continuous\" target=\"_blank\">visualMapContinuous</a>:</p>\n<p><a href=\"option.html#visualMap-piecewise\" target=\"_blank\">visualMapPiecewise</a>:</p>\n<p>Piecewise visual map component(visualMapPiecewise)has three types:</p>\n<ul>\n<li>Equal division of continuous data: divide equally based on <a href=\"option.html#visualMap-piecewise.splitNumber\" target=\"_blank\">visualMap-piecewise.splitNumber</a>;</li>\n<li>User-defined division of continuous data: divide with range in <a href=\"option.html#visualMap-piecewise.pieces\" target=\"_blank\">visualMap-piecewise.pieces</a>;</li>\n<li>Discrete data (data in category type): divide with <a href=\"option.html#visualMap-piecewise.categories\" target=\"_blank\">visualMap-piecewise.categories</a>.</li>\n</ul>\n<p><br>\n<strong>Configuration of visualMap mapping method</strong></p>\n<p>As we have introduced above, <code class=\"codespan\">visualMap</code> maps a certain dimension to a certain visual element, we can configure which dimension of the data (see in <a href=\"#visualMap.dimension\">visualMap.dimension</a>) to be mapped to which visual elements (see in <a href=\"option.html#visualMap.inRange\" target=\"_blank\">visualMap.inRange</a> and <a href=\"option.html#visualMap.outOfRange\" target=\"_blank\">visualMap.outOfRange</a>).</p>\n<p>Example A:</p>\n<pre><code class=\"lang-javascript\">option = {\n    visualMap: [\n        {\n            type: &#39;piecewise&#39;,\n            min: 0,\n            max: 5000,\n            dimension: 3,       // the fourth dimension of series.data, or value[3], is mapped\n            seriesIndex: 4,     // map with the fourth series\n            inRange: {          // visual configuration items in selected range\n                color: [&#39;blue&#39;, &#39;#121122&#39;, &#39;red&#39;], // defines color list of mapping\n                                                   // The largest value will be mapped to &#39;red&#39;,\n                                                   // and others will be interpolated\n                symbolSize: [30, 100]              // the smallest value will be mapped to size of 30,\n                                                   // the largest to 100,\n                                                   // and others will be interpolated\n            },\n            outOfRange: {       // visual configuration items out of selected range\n                symbolSize: [30, 100]\n            }\n        },\n        ...\n    ]\n};\n</code></pre>\n<p>Example B:</p>\n<pre><code class=\"lang-javascript\">option = {\n    visualMap: [\n        {\n            ...,\n            inRange: {          // visual configuration items in selected range\n                colorLightness: [0.2, 1], // map to lightness, which will process lightness based on original color\n                                          // original color may be selected from global color palette,\n                                          // which is not concerned by visualMap component\n                symbolSize: [30, 100]\n            },\n            ...\n        },\n        ...\n    ]\n};\n</code></pre>\n<p>For more information, please refer to <a href=\"option.html#visualMap.inRange\" target=\"_blank\">visualMap.inRange</a> and <a href=\"option.html#visualMap.outOfRange\" target=\"_blank\">visualMap.outOfRange</a>.</p>\n"},"Events and Actions in ECharts":{"type":["*"],"description":"<p>User interactions trigger corresponding events in Apache ECharts<sup>TM</sup>. Developers can listen to these events and handle accordingly through callback functions, e.g., redirecting to an address, popping out a dialog box, or drilling down data and so on.</p>\n<p>Binding events in ECharts 3 is though <a href=\"api.html#EChartsInstance.on\" target=\"_blank\">on</a> method, same as in ECharts 2. But event names are much simpler than it is in 2. Event names in ECharts 3 are the same as DOM event names, in lowercases. Below is an example of binding clicking operation.</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;click&#39;, function (params) {\n    // printing data name in console\n    console.log(params.name);\n});\n</code></pre>\n<p>Event in ECharts can be divided in two kinds. One is mouse event, which is triggered when mouse clicks on certain component, the other is triggered with interaction components, such as triggering <a href=\"api.html#events.legendselectchanged\" target=\"_blank\">&#39;legendselectchanged&#39;</a> event when toggling legend (Notice here, that <code class=\"codespan\">&#39;legendselected&#39;</code> event will not be triggered when toggling legend), triggering <a href=\"api.html#events.legendselectchanged\" target=\"_blank\">&#39;datazoom&#39;</a> event when data zooming in some area.</p>\n<h2 id=\"mouse-events-handling\">Mouse Events Handling</h2>\n<p>ECharts support regular mouse events, which includes <code class=\"codespan\">&#39;click&#39;</code>, <code class=\"codespan\">&#39;dblclick&#39;</code>, <code class=\"codespan\">&#39;mousedown&#39;</code>, <code class=\"codespan\">&#39;mousemove&#39;</code>, <code class=\"codespan\">&#39;mouseup&#39;</code>, <code class=\"codespan\">&#39;mouseover&#39;</code>, <code class=\"codespan\">&#39;mouseout&#39;</code>, <code class=\"codespan\">&#39;globalout&#39;</code>, <code class=\"codespan\">&#39;contextmenu&#39;</code>. Next let&#39;s see an example of opening Baidu search page when clicks a bar chart.</p>\n<pre><code class=\"lang-js\">// initialize ECharts instance based on prepared dom\nvar myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n// data and configuration item of specific chart\nvar option = {\n    xAxis: {\n        data: [&quot;shirt&quot;,&quot;cardign&quot;,&quot;chiffon shirt&quot;,&quot;pants&quot;,&quot;heels&quot;,&quot;socks&quot;]\n    },\n    yAxis: {},\n    series: [{\n        name: &#39;sales&#39;,\n        type: &#39;bar&#39;,\n        data: [5, 20, 36, 10, 10, 20]\n    }]\n};\n// use specified configuration item and data to show chart\nmyChart.setOption(option);\n// handle click event and redirect to corresponding Baidu search page\nmyChart.on(&#39;click&#39;, function (params) {\n    window.open(&#39;https://www.baidu.com/s?wd=&#39; + encodeURIComponent(params.name));\n});\n</code></pre>\n<p>All types of mouse events have a common parameter called <code class=\"codespan\">params</code>, which is an object that contains data information of the clicked chart, whose format is as followed:</p>\n<pre><code class=\"lang-js\">{\n    // component name of clicked component\n    // e.g., &#39;series&#39;, &#39;markLine&#39;, &#39;markPoint&#39;, &#39;timeLine&#39;\n    componentType: string,\n    // series type (useful when componentType is &#39;series&#39;)\n    // e.g., &#39;line&#39;, &#39;bar&#39;, &#39;pie&#39;\n    seriesType: string,\n    // series index in option.series (useful when componentType is &#39;series&#39;)\n    seriesIndex: number,\n    // series name (useful when componentType is &#39;series&#39;)\n    seriesName: string,\n    // data name, or category name\n    name: string,\n    // data index in input data array\n    dataIndex: number,\n    // raw input data item\n    data: Object,\n    // Some series, such as sankey or graph, maintains both nodeData and edgeData,\n    // in which case, dataType is set to be &#39;node&#39; or &#39;edge&#39; to identify.\n    // On the other hand, most other series have only one type of data,\n    // where dataType is not needed.\n    dataType: string,\n    // input data value\n    value: number|Array\n    // color of component (useful when componentType is &#39;series&#39;)\n    color: string\n}\n</code></pre>\n<p>How to know where the mouse clicked:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;click&#39;, function (params) {\n    if (params.componentType === &#39;markPoint&#39;) {\n        // clicked on markPoint\n        if (params.seriesIndex === 5) {\n            // clicked on a markPoint which belongs to a series indexed with 5\n        }\n    }\n    else if (params.componentType === &#39;series&#39;) {\n        if (params.seriesType === &#39;graph&#39;) {\n            if (params.dataType === &#39;edge&#39;) {\n                // clicked on an edge of the graph\n            }\n            else {\n                // clicked on a node of the graph\n            }\n        }\n    }\n});\n</code></pre>\n<p>Use <code class=\"codespan\">query</code> to call handler only on the graphic elements of the specified components:</p>\n<pre><code class=\"lang-js\">chart.on(eventName, query, handler);\n</code></pre>\n<p><code class=\"codespan\">query</code> can be <code class=\"codespan\">string</code> or <code class=\"codespan\">Object</code>.</p>\n<p>If <code class=\"codespan\">string</code>, the formatter can be &#39;mainType&#39; or &#39;mainType.subType&#39;. For example:</p>\n<pre><code class=\"lang-js\">chart.on(&#39;click&#39;, &#39;series&#39;, function () {...});\nchart.on(&#39;click&#39;, &#39;series.line&#39;, function () {...});\nchart.on(&#39;click&#39;, &#39;dataZoom&#39;, function () {...});\nchart.on(&#39;click&#39;, &#39;xAxis.category&#39;, function () {...});\n</code></pre>\n<p>If <code class=\"codespan\">Object</code>, one or more properties below can be included, and any of them is optional.</p>\n<pre><code class=\"lang-js\">{\n    &lt;mainType&gt;Index: number // component index\n    &lt;mainType&gt;Name: string // component name\n    &lt;mainType&gt;Id: string // component id\n    dataIndex: number // data item index\n    name: string // data item name\n    dataType: string // data item type, e.g.,\n                     // &#39;node&#39; and &#39;edge&#39; in graph.\n    element: string // element name in custom series\n}\n</code></pre>\n<p>For example:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: [{\n        name: &#39;uuu&#39;\n        // ...\n    }]\n});\nchart.on(&#39;mouseover&#39;, {seriesName: &#39;uuu&#39;}, function () {\n    // When the graphic elements in the series with name &#39;uuu&#39; mouse overed, this method called.\n});\n</code></pre>\n<p>For example:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: [{\n        // ...\n    }, {\n        // ...\n        data: [\n            {name: &#39;xx&#39;, value: 121},\n            {name: &#39;yy&#39;, value: 33}\n        ]\n    }]\n});\nchart.on(&#39;mouseover&#39;, {seriesIndex: 1, name: &#39;xx&#39;}, function () {\n    // When the graphic elements of the data item with name &#39;xx&#39; in the series with index 1 mouse overed, this method called.\n});\n</code></pre>\n<p>For example:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: [{\n        type: &#39;graph&#39;,\n        nodes: [{name: &#39;a&#39;, value: 10}, {name: &#39;b&#39;, value: 20}],\n        edges: [{source: 0, target: 1}]\n    }]\n});\nchart.on(&#39;click&#39;, {dataType: &#39;node&#39;}, function () {\n    // When the nodes of the graph clicked, this method is called.\n});\nchart.on(&#39;click&#39;, {dataType: &#39;edge&#39;}, function () {\n    // When the edges of the graph clicked, this method is called.\n});\n</code></pre>\n<p>For example:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: {\n        // ...\n        type: &#39;custom&#39;,\n        renderItem: function (params, api) {\n            return {\n                type: &#39;group&#39;,\n                children: [{\n                    type: &#39;circle&#39;,\n                    name: &#39;my_el&#39;,\n                    // ...\n                }, {\n                    // ...\n                }]\n            }\n        },\n        data: [[12, 33]]\n    }\n})\nchart.on(&#39;click&#39;, {element: &#39;my_el&#39;}, function () {\n    // When the element with name &#39;my_el&#39; clicked, this method called.\n});\n</code></pre>\n<p>You may update chart or show customized layer with information got from your own data warehouse, indexed from data name or series name of an object received from a callback function. Sample code is shown as followed:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;click&#39;, function (parmas) {\n    $.get(&#39;detail?q=&#39; + params.name, function (detail) {\n        myChart.setOption({\n            series: [{\n                name: &#39;pie&#39;,\n                // present data distribution  of a single bar through pie chart\n                data: [detail.data]\n            }]\n        });\n    });\n});\n</code></pre>\n<h2 id=\"interaction-events-with-components\">Interaction Events with Components</h2>\n<p>Basically all component interactions in ECharts trigger corresponding events. Frequently used events and corresponding parameters are listed in <a href=\"api.html#events\" target=\"_blank\">events</a>.</p>\n<p>Below is example that listens to a legend toggling:</p>\n<pre><code class=\"lang-js\">// legend toggling triggers legendselectchanged event only\nmyChart.on(&#39;legendselectchanged&#39;, function (params) {\n    // obtain selecting status of clicked legend\n    var isSelected = params.selected[params.name];\n    // print in console\n    console.log((isSelected ? &#39;select&#39; : &#39;unselect&#39;) + &#39;legend&#39; + params.name);\n    // print all legend status\n    console.log(params.selected);\n});\n</code></pre>\n<h2 id=\"triggering-component-actions-through-code-in-echarts\">Triggering Component Actions through Code in ECharts</h2>\n<p>Actions like <code class=\"codespan\">&#39;legendselectchanged&#39;</code> mentioned above will be triggered by component interaction. Besides that, sometimes we need to trigger certain actions in our program, such as showing tooltip, or selecting legend.</p>\n<p>ECharts 2.x triggers actions through <code class=\"codespan\">myChart.component.tooltip.showTip</code>, whose entrance is deep and involves organization of inner components. On the other hand, ECharts 3 triggers actions through <code class=\"codespan\">myChart.dispatchAction({ type: &#39;&#39; })</code>, which manages all actions in a uniformed way, and may record user&#39;s event path when need.</p>\n<p>Frequently used actions and the parameters are listed in <a href=\"api.html#action\" target=\"_blank\">action</a>.</p>\n<p>Below displays how to highlight each sector of pie chart in turn through <code class=\"codespan\">dispatchAction</code>.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/pie-highlight&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n\n<h2 id=\"listen-to-events-from-the-blank\">Listen to events from the blank</h2>\n<p>Sometimes developers need to listen to the events that are triggered from the blank of the canvas. For example, need to reset the chart when users click on the blank.</p>\n<p>Before we talk about this feature, we need to clarify two kinds of events: <code class=\"codespan\">zrender events</code> and <code class=\"codespan\">echarts events</code>.</p>\n<pre><code class=\"lang-js\">myChart.getZr().on(&#39;click&#39;, function (event) {\n    // This listener is listening to a `zrender event`.\n});\nmyChart.on(&#39;click&#39;, function (event) {\n    // This listener is listening to a `echarts event`.\n});\n</code></pre>\n<p><code class=\"codespan\">zrender events</code> are different from <code class=\"codespan\">echarts events</code>. The former one are triggered when mouse/pointer is at everywhere, while the latter one can only be triggered when mouse/pointer is at the graphic elements. In fact, <code class=\"codespan\">echarts events</code> are implemented based on <code class=\"codespan\">zrender events</code>, that is, when a <code class=\"codespan\">zrender events</code> is triggered at a graphic element, <code class=\"codespan\">echarts</code> will trigger a <code class=\"codespan\">echarts event</code>.</p>\n<p>Having <code class=\"codespan\">zrender events</code>, we can implement &quot;listen to events from the blank&quot; as follows:</p>\n<pre><code class=\"lang-js\">myChart.getZr().on(&#39;click&#39;, function (event) {\n    // No &quot;target&quot; means that mouse/pointer is not on\n    // any of the graphic elements, which is &quot;blank&quot;.\n    if (!event.target) {\n        // Click on blank. Do something.\n    }\n});\n</code></pre>\n"},"Bar Race":{"type":["*"],"description":"<p>Bar race is a chart that shows changes in the ranking of data over time and it is supported by default sinde ECharts 5.</p>\n<blockquote>\n<p>Bar race charts usually use horizontal bars. If you want to use vertical bars, just take the X axis and Y axis in this tutorial to the opposite.</p>\n</blockquote>\n<ol>\n<li>Set <code class=\"codespan\">yAxis.realtimeSort</code> to be <code class=\"codespan\">true</code> to enable bar race</li>\n<li>Set <code class=\"codespan\">yAxis.inverse</code> to be <code class=\"codespan\">true</code> to display longer bars at top</li>\n<li><code class=\"codespan\">yAxis.animationDuration</code> is suggested to be set to be <code class=\"codespan\">300</code> for bar reordering animation for the first time</li>\n<li><code class=\"codespan\">yAxis.animationDurationUpdate</code> is suggested to be set to be <code class=\"codespan\">300</code> for bar reordering animation for later times</li>\n<li>Set <code class=\"codespan\">yAxis.max</code> to be <em>n - 1</em> where <em>n</em> is the number of bars to be displayed; otherwise, all bars are displayed</li>\n<li><code class=\"codespan\">xAxis.max</code> is suggested to be set to be <code class=\"codespan\">&#39;dataMax&#39;</code> so that the maximum of data is used as X maximum.</li>\n<li>If realtime label changing is required, set <code class=\"codespan\">series.label.valueAnimation</code> to be <code class=\"codespan\">true</code></li>\n<li>Set <code class=\"codespan\">animationDuration</code> to be <code class=\"codespan\">0</code> so that the first animation doesn&#39;t start from 0; if you wish otherwise, set it to be the same value as <code class=\"codespan\">animationDurationUpdate</code></li>\n<li><code class=\"codespan\">animationDurationUpdate</code> is suggested to be set to be <code class=\"codespan\">3000</code> for animation update duration, which should be the same as the frequency of calling <code class=\"codespan\">setOption</code></li>\n<li>Call <code class=\"codespan\">setOption</code> to update data to be of next time with <code class=\"codespan\">setInterval</code> at the frequency of <code class=\"codespan\">animationDurationUpdate</code></li>\n</ol>\n<p>A full example is:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=bar-race&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n<p>As you see, there are many options to be set to enable bar race effect. We are going to provide a tool that doesn&#39;t require any coding to help you make bar race charts more easily.</p>\n"},"An Example: Implement Dragging":{"type":["*"],"description":"<p>This is a tiny example, introducing how to implement dragging of graphic elements in Apache ECharts<sup>TM</sup>. From this example, we will see how to make an application with rich intractivity based on echarts API.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=line-draggable&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n<p>This example mainly implements that dragging points of a curve and by which the curve is modified. Although it is simple example, but we can do more based on that, like edit charts viually. So let&#39;s get started from this simple example.</p>\n<h2 id=\"-part-1-implement-basic-dragging\">[ Part 1 ] Implement basic dragging</h2>\n<p>First of all, we create a basic <a href=\"option.html#series-line\" target=\"_blank\">line chart (line series)</a>:</p>\n<pre><code class=\"lang-js\">var symbolSize = 20;\nvar data = [[15, 0], [-50, 10], [-56.5, 20], [-46.5, 30], [-22.1, 40]];\n\nmyChart.setOption({\n    xAxis: {\n        min: -100,\n        max: 80,\n        type: &#39;value&#39;,\n        axisLine: {onZero: false}\n    },\n    yAxis: {\n        min: -30,\n        max: 60,\n        type: &#39;value&#39;,\n        axisLine: {onZero: false}\n    },\n    series: [\n        {\n            id: &#39;a&#39;,\n            type: &#39;line&#39;,\n            smooth: true,\n            // Set a big symbolSize for dragging convenience.\n            symbolSize: symbolSize,\n            data: data\n        }\n    ]\n});\n</code></pre>\n<p>Since the symbols in line is not draggable, we make them draggable by using <a href=\"option.html#graphic\" target=\"_blank\">graphic component</a> to add draggable circular elements to symbols respectively.</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    // Declare a graphic component, which contains some graphic elements\n    // with the type of &#39;circle&#39;.\n    // Here we have used the method `echarts.util.map`, which has the same\n    // behavior as Array.prototype.map, and is compatible with ES5-.\n    graphic: echarts.util.map(data, function (dataItem, dataIndex) {\n        return {\n            // &#39;circle&#39; means this graphic element is a shape of circle.\n            type: &#39;circle&#39;,\n\n            shape: {\n                // The radius of the circle.\n                r: symbolSize / 2\n            },\n            // Transform is used to located the circle. position:\n            // [x, y] means translate the circle to the position [x, y].\n            // The API `convertToPixel` is used to get the position of\n            // the circle, which will introduced later.\n            position: myChart.convertToPixel(&#39;grid&#39;, dataItem),\n\n            // Make the circle invisible (but mouse event works as normal).\n            invisible: true,\n            // Make the circle draggable.\n            draggable: true,\n            // Give a big z value, which makes the circle cover the symbol\n            // in line series.\n            z: 100,\n            // This is the event handler of dragging, which will be triggered\n            // repeatly while dragging. See more details below.\n            // A util method `echarts.util.curry` is used here to generate a\n            // new function the same as `onPointDragging`, except that the\n            // first parameter is fixed to be the `dataIndex` here.\n            ondrag: echarts.util.curry(onPointDragging, dataIndex)\n        };\n    })\n});\n</code></pre>\n<p>In the code above, API <a href=\"api.html#echartsInstance.convertToPixel\" target=\"_blank\">convertToPixel</a> is used to convert data to its &quot;pixel coodinate&quot;, based on which each graphic elements can be rendered on canvas. The term &quot;pixel coodinate&quot; means the coordinate is in canvas pixel, whose origin is the top-left of the canvas. In the sentence <code class=\"codespan\">myChart.convertToPixel(&#39;grid&#39;, dataItem)</code>, the first parameter <code class=\"codespan\">&#39;grid&#39;</code> indicates that <code class=\"codespan\">dataItem</code> should be converted in the first <a href=\"option.html#grid\" target=\"_blank\">grid component (cartesian)</a>.</p>\n<p><strong>Notice:</strong> <code class=\"codespan\">convertToPixel</code> should not be called before the first time that <code class=\"codespan\">setOption</code> called. Namely, it can only be used after coordinate systems (grid/polar/...) initialized.</p>\n<p>Now points have been made draggable. Then we will bind event listeners on dragging to those points.</p>\n<pre><code class=\"lang-js\">// This function will be called repeatly while dragging.\n// The mission of this function is to update `series.data` based on\n// the new points updated by dragging, and to re-render the line\n// series based on the new data, by which the graphic elements of the\n// line series can be synchronized with dragging.\nfunction onPointDragging(dataIndex) {\n    // Here the `data` is declared in the code block in the beginning\n    // of this article. The `this` refers to the dragged circle.\n    // `this.position` is the current position of the circle.\n    data[dataIndex] = myChart.convertFromPixel(&#39;grid&#39;, this.position);\n    // Re-render the chart based on the updated `data`.\n    myChart.setOption({\n        series: [{\n            id: &#39;a&#39;,\n            data: data\n        }]\n    });\n}\n</code></pre>\n<p>In the code above, API <a href=\"api.html#echartsInstance.convertFromPixel\" target=\"_blank\">convertFromPixel</a> is used, which is the reversed process of <a href=\"api.html#echartsInstance.convertToPixel\" target=\"_blank\">convertToPixel</a>. <code class=\"codespan\">myChart.convertFromPixel(&#39;grid&#39;, this.position)</code> converts a pixel coordinate to data item in <a href=\"option.html#grid\" target=\"_blank\">grid (cartesian)</a>.</p>\n<p>Finally, add those code to make graphic elements responsive to change of canvas size.</p>\n<pre><code class=\"lang-js\">window.addEventListener(&#39;resize&#39;, function () {\n    // Re-calculate the position of each circle and update chart using `setOption`.\n    myChart.setOption({\n        graphic: echarts.util.map(data, function (item, dataIndex) {\n            return {\n                position: myChart.convertToPixel(&#39;grid&#39;, item)\n            };\n        })\n    });\n});\n\n</code></pre>\n<h2 id=\"-part-2-add-tooltip-component\">[ Part 2 ] Add tooltip component</h2>\n<p>Now basic functionality have been implemented by parte 1. If we need the data can be displayed realtime when dragging, we can use <a href=\"option.html#tooltip\" target=\"_blank\">tooltip component</a> to do that. Nevertheless, tooltip component has its default &quot;show/hide rule&quot;, which is not applicable in this case. So we need to customize the &quot;show/hide rule&quot; for our case.</p>\n<p>Add these snippets to the code block above:</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    ...,\n    tooltip: {\n        // Means disable default &quot;show/hide rule&quot;.\n        triggerOn: &#39;none&#39;,\n        formatter: function (params) {\n            return &#39;X: &#39; + params.data[0].toFixed(2) + &#39;&lt;br&gt;Y: &#39; + params.data[1].toFixed(2);\n        }\n    }\n});\n</code></pre>\n<pre><code class=\"lang-js\">myChart.setOption({\n    graphic: echarts.util.map(data, function (item, dataIndex) {\n        return {\n            type: &#39;circle&#39;,\n            ...,\n            // Customize &quot;show/hide rule&quot;, show when mouse over, hide when mouse out.\n            onmousemove: echarts.util.curry(showTooltip, dataIndex),\n            onmouseout: echarts.util.curry(hideTooltip, dataIndex),\n        };\n    })\n});\n\nfunction showTooltip(dataIndex) {\n    myChart.dispatchAction({\n        type: &#39;showTip&#39;,\n        seriesIndex: 0,\n        dataIndex: dataIndex\n    });\n}\n\nfunction hideTooltip(dataIndex) {\n    myChart.dispatchAction({\n        type: &#39;hideTip&#39;\n    });\n}\n</code></pre>\n<p>The API <a href=\"api.html#echartsInstance.dispatchAction\" target=\"_blank\">dispatchAction</a> is used to show/hide tooltip content, where actions <a href=\"api.html#action.tooltip.showTip\" target=\"_blank\">showTip</a> and <a href=\"api.html#action.tooltip.hideTip\" target=\"_blank\">hideTip</a> is dispatched.</p>\n<h2 id=\"-part-3-full-code\">[ Part 3 ] Full code</h2>\n<p>Full code is shown as follow:</p>\n<pre><code>&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;script src=&quot;dist/echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;/head&gt;\n&lt;body&gt;\n    &lt;div id=&quot;main&quot; style=&quot;width: 600px;height:400px;&quot;&gt;&lt;/div&gt;\n    &lt;script type=&quot;text/javascript&quot;&gt;\n\n    var symbolSize = 20;\n    var data = [[15, 0], [-50, 10], [-56.5, 20], [-46.5, 30], [-22.1, 40]];\n\n    var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n    myChart.setOption({\n        tooltip: {\n            triggerOn: &#39;none&#39;,\n            formatter: function (params) {\n                return &#39;X: &#39; + params.data[0].toFixed(2) + &#39;&lt;br&gt;Y: &#39; + params.data[1].toFixed(2);\n            }\n        },\n        xAxis: {\n            min: -100,\n            max: 80,\n            type: &#39;value&#39;,\n            axisLine: {onZero: false}\n        },\n        yAxis: {\n            min: -30,\n            max: 60,\n            type: &#39;value&#39;,\n            axisLine: {onZero: false}\n        },\n        series: [\n            {\n                id: &#39;a&#39;,\n                type: &#39;line&#39;,\n                smooth: true,\n                symbolSize: symbolSize,\n                data: data\n            }\n        ],\n    });\n\n    myChart.setOption({\n        graphic: echarts.util.map(data, function (item, dataIndex) {\n            return {\n                type: &#39;circle&#39;,\n                position: myChart.convertToPixel(&#39;grid&#39;, item),\n                shape: {\n                    r: symbolSize / 2\n                },\n                invisible: true,\n                draggable: true,\n                ondrag: echarts.util.curry(onPointDragging, dataIndex),\n                onmousemove: echarts.util.curry(showTooltip, dataIndex),\n                onmouseout: echarts.util.curry(hideTooltip, dataIndex),\n                z: 100\n            };\n        })\n    });\n\n    window.addEventListener(&#39;resize&#39;, function () {\n        myChart.setOption({\n            graphic: echarts.util.map(data, function (item, dataIndex) {\n                return {\n                    position: myChart.convertToPixel(&#39;grid&#39;, item)\n                };\n            })\n        });\n    });\n\n    function showTooltip(dataIndex) {\n        myChart.dispatchAction({\n            type: &#39;showTip&#39;,\n            seriesIndex: 0,\n            dataIndex: dataIndex\n        });\n    }\n\n    function hideTooltip(dataIndex) {\n        myChart.dispatchAction({\n            type: &#39;hideTip&#39;\n        });\n    }\n\n    function onPointDragging(dataIndex, dx, dy) {\n        data[dataIndex] = myChart.convertFromPixel(&#39;grid&#39;, this.position);\n        myChart.setOption({\n            series: [{\n                id: &#39;a&#39;,\n                data: data\n            }]\n        });\n    }\n\n&lt;/script&gt;\n&lt;/body&gt;\n&lt;/html&gt;\n</code></pre><p><br></p>\n<p>With knowledge introduced above, more feature can be implemented. For example, <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom component</a> can be added to cooperate with the cartesian, or we can make a plotting board on coordinate systems. Use your imagination ~</p>\n"},"Custom Series":{"type":["*"],"description":"<p><a href=\"option.html#series-custom\" target=\"_blank\">custom series</a> is a type of series, which enable develpers to customize graphic elements rendering and generate new types of chart.</p>\n<p>Why does Apache ECharts<sup>TM</sup> supports <code class=\"codespan\">custom series</code>?</p>\n<p>There are endless chart types in the world of data visualization, which are not enumerable. Thus only most common used chart types are built-in supported in echarts. For other chart types, it is necessary to provide an approach to make new types of chart for developers. This approach should be as simple as possible, which had better not to bothered developers with some details of implementation, such as creating and deleting graphic elements, transition animation, tooltip supporting, working with <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a> or <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a>. Having considered the factors above, a solution <a href=\"option.html#series-custom\" target=\"_blank\">custom series</a> is published.</p>\n<p><strong>For example, a &quot;x-range&quot; chart is made by custom sereis:</strong></p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=custom-profile&reset=1&edit=1\" width=\"800\" height=\"500\" ></iframe>\n\n\n<p><strong><a href=\"https://echarts.apache.org/examples/en/index.html#chart-type-custom\" target=\"_blank\">More samples of custom series</a></strong></p>\n<p>Let&#39;s begin the tutorial.</p>\n<h2 id=\"-i-the-method-renderitem\">(I) The method <code class=\"codespan\">renderItem</code></h2>\n<p>The snippet of graphic elements rendering should be written in <code class=\"codespan\">renderItem</code> method my developers. For example:</p>\n<pre><code class=\"lang-js\">var option = {\n    ...,\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function (params, api) {\n            // ...\n        },\n        data: data\n    }]\n}\n</code></pre>\n<p>In the rendering phase of echarts workflow, <a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> is called respectively for each <code class=\"codespan\">dataItem</code> in <a href=\"option.html#series-custom.data\" target=\"_blank\">series.data</a>. <code class=\"codespan\">renderItem</code> is responsible for build a group of definitions of graphic elements, including graphic type, size, location, style, etc. echarts will then build graphic elements according to those definitions. For example:</p>\n<pre><code class=\"lang-js\">var option = {\n    ...,\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function (params, api) {\n            // This method will be called for each dataItem repectively.\n            // Notice: it does not ensure that called according to the order\n            // of `dataItem`.\n\n            // Some processes, such as coordinate conversion.\n            // `api.value(0)` is used to retrieve the value on the first\n            // dimension in the current `dataItem`.\n            var categoryIndex = api.value(0);\n            // `api.coord(...)` is used to convert data values to pixel values,\n            // will are necessary for graphic elements rendering.\n            var startPoint = api.coord([api.value(1), categoryIndex]);\n            var endPoint = api.coord([api.value(2), categoryIndex]);\n            // `api.size(...)` is used to calculate the pixel size corresponding to\n            // the a value range that the length is 1 on Y axis.\n            var height = api.size([0, 1])[1] * 0.6;\n\n            // The property `shape` incicates the location and size of thsi\n            // element.\n            // `echarts.graphic.clipRectByRect` is used for clipping the\n            // rectangular when it overflow the bounding box of the current\n            // coordinate system (cartesian).\n            // If the rect is totally clipped, returns undefined.\n            var rectShape = echarts.graphic.clipRectByRect({\n                // position and location of the rectangular.\n                x: startPoint[0],\n                y: startPoint[1] - height / 2,\n                width: endPoint[0] - startPoint[0],\n                height: height\n            }, {\n                // Bounding box of the current cooridinate system (cartesian).\n                x: params.coordSys.x,\n                y: params.coordSys.y,\n                width: params.coordSys.width,\n                height: params.coordSys.height\n            })\n\n            // Returns definitions for the current `dataItem`.\n            return rectShape &amp;&amp; {\n                // &#39;rect&#39; indicates that the graphic element is rectangular.\n                // Can also be &#39;circle&#39;, &#39;sector&#39;, &#39;polygon&#39;, ...\n                type: &#39;rect&#39;,\n                shape: rectShape,\n                // `api.style(...)` is used to obtain style settings, which\n                // includes itemStyle settings in optino and the result of\n                // visual mapping.\n                style: api.style()\n            };\n        },\n        data: [\n            [12, 44, 55, 60], // The first dataItem.\n            [53, 31, 21, 56], // The second dataItem.\n            [71, 33, 10, 20], // The third dataItem.\n            ...\n        ]\n    }]\n}\n</code></pre>\n<p><a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> provides two parameters:</p>\n<ul>\n<li><a href=\"option.html#series-custom.renderItem.arguments.params\" target=\"_blank\">params</a>:provides info about the current series (such as <code class=\"codespan\">seriesIndex</code>、<code class=\"codespan\">dataIndex</code>, etc.) and data (such as <code class=\"codespan\">dataIndex</code>, <code class=\"codespan\">dataIndexInside</code>, etc.) and coordinate system (such as location and size of bounding box of the current coordinate system)</li>\n<li><a href=\"option.html#series-custom.renderItem.arguments.api\" target=\"_blank\">api</a> provides some methods to developers (such as <code class=\"codespan\">api.value()</code>, <code class=\"codespan\">api.coord()</code>).</li>\n</ul>\n<p><a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> method should return definitions of graphic elements for the current <code class=\"codespan\">dataItem</code>. See <a href=\"option.html#series-custom.renderItem.return\" target=\"_blank\">renderItem.return</a>.</p>\n<p>Generally, the main process of <a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> is that retrieve value from data and convert them to graphic elements on the current coordinate system. Two methods in <a href=\"option.html#series-custom.renderItem.arguments.api\" target=\"_blank\">renderItem.arguments.api</a> are always used in this procedure:</p>\n<ul>\n<li><a href=\"option.html#series-custom.renderItem.arguments.api.value\" target=\"_blank\">api.value(...)</a> is used to retrieve value from data. For example, <code class=\"codespan\">api.value(0)</code> retrieve the value of the first dimension in the current data item.</li>\n<li><a href=\"option.html#series-custom.renderItem.arguments.api.coord\" target=\"_blank\">api.coord(...)</a> is used to convert data to coordinate. For example, <code class=\"codespan\">var point = api.coord([api.value(0), api.value(1)])</code> converet the data to the point on the current coordinate system.</li>\n</ul>\n<p>Sometimes <a href=\"option.html#series-custom.renderItem.arguments.api.size\" target=\"_blank\">api.size(...)</a> method is needed, which calculates the size on the coordinate system by a given data range.</p>\n<p>Moreover, <a href=\"option.html#series-custom.renderItem.arguments.api.style\" target=\"_blank\">api.style(...)</a> method can be used to set style. It provides not only the style settings specified in <a href=\"option.html#series-custom.itemStyle\" target=\"_blank\">series.itemStyle</a>, but also the result of visual mapping. This method can also be called like <code class=\"codespan\">api.style({fill: &#39;green&#39;, stroke: &#39;yellow&#39;})</code> to override those style settings.</p>\n<p>Having <code class=\"codespan\">renderItem</code> provided, 90% of the work of creating custom series has been accomplished. The rest of this work is to refine and polish them.</p>\n<h2 id=\"-ii-make-the-extent-of-axes-fit-the-data\">(II) Make the extent of axes fit the data</h2>\n<p>There is axes in some coordinate systems, such as <a href=\"option.html#grid\" target=\"_blank\">cartesian2d (grid)</a>and <a href=\"option.html#polar\" target=\"_blank\">polar</a>. The extent of an axis should fit the data automatically, otherwise the graphic elements would be overflow the bounding box of the coordinate system. So, for example, in <a href=\"option.html#grid\" target=\"_blank\">cartesian2d (grid)</a>, developers should specify that which dimensions correspond to <code class=\"codespan\">x</code> axis and which to <code class=\"codespan\">y</code> axis use the property <a href=\"option.html#series-custom.encode\" target=\"_blank\">encode</a>:</p>\n<pre><code class=\"lang-js\">option = {\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            ...\n        },\n        encode: {\n            // `dim1` and `dim2` correspond to `x` axis.\n            x: [1, 2],\n            // `dim0` corresponds to `y` axis.\n            y: 0\n        },\n        data: [\n            // dim0  dim1  dim2  dim3\n            [   12,   44,   55,   60   ], // The first dataItem.\n            [   53,   31,   21,   56   ], // The second dataItem.\n            [   71,   33,   10,   20   ], // The third dataItem.\n            ...\n        ]\n    }]\n};\n</code></pre>\n<h2 id=\"-iii-set-tooltip-content\">(III) Set tooltip content</h2>\n<p>Of course <a href=\"option.html#tooltip.formatter\" target=\"_blank\">tooltip.formatter</a> can be used to define the content in tooltip. But it is easier to do that by setting <a href=\"option.html#series-custom.encode\" target=\"_blank\">encode</a> and <a href=\"option.html#series-custom.dimensions\" target=\"_blank\">dimensions</a>:</p>\n<pre><code class=\"lang-js\">option = {\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            ...\n        },\n        encode: {\n            x: [1, 2],\n            y: 0,\n            // `dim2` and `dim3` will displayed in tooltip.\n            tooltip: [2, 3]\n        },\n        // `dim2` is named as &quot;Age&quot; and `dim3` is named as &quot;Satisfaction&quot;.\n        dimensions: [null, null, &#39;Age&#39;, &#39;Satisfaction&#39;],\n        data: [\n            // dim0  dim1  dim2  dim3\n            [   12,   44,   55,   60   ],\n            [   53,   31,   21,   56   ],\n            [   71,   33,   10,   20   ],\n            ...\n        ]\n    }]\n};\n</code></pre>\n<p><br>\n<br>\n<br></p>\n<hr>\n<p>Several other issues about <code class=\"codespan\">custom series</code> are introduced below.</p>\n<h2 id=\"-iv-shape-clipping-when-overflow-the-coordinates-area\">(IV) Shape clipping when overflow the coordinates area</h2>\n<p>When use <code class=\"codespan\">custom series</code> with <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a>, <a href=\"option.html#dataZoom.filterMode\" target=\"_blank\">dataZoom.filterMode</a> usually be set as <code class=\"codespan\">&#39;weakFilter&#39;</code>, which prevent <code class=\"codespan\">dataItem</code> from being filtered when only part of its dimensions are out of the current data window. For example:</p>\n<pre><code class=\"lang-js\">option = {\n    dataZoom: {\n        xAxisIndex: 0,\n        filterMode: &#39;weakFilter&#39;\n    },\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            ...\n        },\n        encode: {\n            x: [1, 2],\n            y: 0\n        },\n        data: [\n            // dim0  dim1  dim2  dim3\n            [   12,   44,   55,   60   ], // The first dataItem.\n            [   53,   31,   21,   56   ], // The second dataItem.\n            [   71,   33,   10,   20   ], // The third dataItem.\n            ...\n        ]\n    }]\n};\n</code></pre>\n<p>In the example above, <code class=\"codespan\">dim</code> and <code class=\"codespan\">dim2</code> corresponds to <code class=\"codespan\">x</code> axis, and the <code class=\"codespan\">dataZoom</code> component constrols the data window of <code class=\"codespan\">x</code> axis. If part of a <code class=\"codespan\">dataItem</code> is overflow the extent of <code class=\"codespan\">x</code> axis (the value on <code class=\"codespan\">dim1</code> is overflow and the value on <code class=\"codespan\">dim2</code> is not) while zooming, the <code class=\"codespan\">dataItem</code> will not be filtered if <code class=\"codespan\">dataZoom.filterMode = &#39;weakFilter&#39;</code> set. Thus the <code class=\"codespan\">dataItem</code> can be still rendered (usually be partially rendered by using <code class=\"codespan\">echarts.graphic.clipRectByRect</code> to clip the exceeding part).\nSee the example mentioned above <a href=\"https://echarts.apache.org/examples/en/editor.html?c=custom-profile\" target=\"_blank\">Profile</a>.</p>\n<h2 id=\"-v-about-dataindex\">(V) About dataIndex</h2>\n<p>Developers had better notice that in <a href=\"option.html#series-custom.renderItem.arguments.params\" target=\"_blank\">renderItem.arguments.params</a> <code class=\"codespan\">dataIndexInside</code> and <code class=\"codespan\">dataIndex</code> is different:</p>\n<ul>\n<li><code class=\"codespan\">dataIndex</code> is the index of a <code class=\"codespan\">dataItem</code> in the original data.</li>\n<li><code class=\"codespan\">dataIndexInside</code> is the index of a <code class=\"codespan\">dataItem</code> in the current data window (see <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a>.</li>\n</ul>\n<p><a href=\"option.html#series-custom.renderItem.arguments.api\" target=\"_blank\">renderItem.arguments.api</a> uses <code class=\"codespan\">dataIndexInside</code> as the input parameter but not <code class=\"codespan\">dataIndex</code>, because conversion from <code class=\"codespan\">dataIndex</code> to <code class=\"codespan\">dataIndexInside</code> is time-consuming.</p>\n<h2 id=\"-vi-event-listener\">(VI) Event listener</h2>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: {\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            // ...\n            return {\n                type: &#39;group&#39;,\n                children: [{\n                    type: &#39;circle&#39;\n                    // ...\n                }, {\n                    type: &#39;circle&#39;,\n                    name: &#39;aaa&#39;,\n                    // User specified info, available\n                    // in event handler.\n                    info: 12345,\n                    // ...\n                }]\n            };\n        }\n    }\n});\nchart.on(&#39;click&#39;, {element: &#39;aaa&#39;}, function (params) {\n    // When the element with name &#39;aaa&#39; clicked,\n    // this method called.\n    console.log(params.info);\n});\n</code></pre>\n<h2 id=\"-vii-custom-vector-shapes\">(VII) Custom vector shapes</h2>\n<p><a href=\"http://www.w3.org/TR/SVG/paths.html#PathData\" target=\"_blank\">SVG PathData</a> is supported, which enables to use shapes that are created in vector tool. See <a href=\"option.html#series-custom.renderItem.return_path\" target=\"_blank\">path</a>, and examples: <a href=\"https://echarts.apache.org/examples/en/editor.html?c=custom-calendar-icon\" target=\"_blank\">icons</a>, <a href=\"https://echarts.apache.org/examples/en/editor.html?c=custom-gantt-flight\" target=\"_blank\">shapes</a>.</p>\n<p><br></p>\n<p><strong><a href=\"https://echarts.apache.org/examples/en/index.html#chart-type-custom\" target=\"_blank\">More examples about custom series</a></strong></p>\n"},"Rich Text":{"type":["*"],"description":"<p>Rich text can be used in Apache ECharts<sup>TM</sup> labels of series, axis or other components. For example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=pie-rich-text&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=treemap-obama&edit=1&reset=1\" width=\"800\" height=\"550\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=bar-rich-text&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n<p><br></p>\n<p>More examples:\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=map-labels&amp;edit=1&amp;reset=1\" target=\"_blank\">Map Labels</a>,\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=pie-nest&amp;edit=1&amp;reset=1\" target=\"_blank\">Pie Labels</a>,\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=gauge-car&amp;edit=1&amp;reset=1\" target=\"_blank\">Gauge</a>.</p>\n<p><br></p>\n<p>Before v3.7, the style options was only able to applied to the whole label text block, and only color and font can be configured, which restricted the expressability of text descriptions.</p>\n<p>Since v3.7, rich text has been supported:</p>\n<ul>\n<li>Box styles (background, border, shadow, etc.), rotation, position of a text block can be specified.</li>\n<li>Styles (color, font, width/height, background, shadow, etc.) and alignment can be customzied on fragments of text.</li>\n<li>Image can be used in text as icon or background.</li>\n<li>Combine these configurations, some special effects can be made, such as simple table, horizontal rule (hr).</li>\n</ul>\n<p>At the beginning, the meanings of two terms that will be used below should be clarified:</p>\n<ul>\n<li>Text Block: The whole block of label text.</li>\n<li>Text fragment: Some piece of text in a text block.</li>\n</ul>\n<p>For example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/text-block-fragment&edit=1&reset=1\" width=\"340\" height=\"240\" ></iframe>\n\n\n\n<h2 id=\"options-about-text\">Options about Text</h2>\n<p>echarts provides plenty of text options, including:</p>\n<ul>\n<li>Basic font style: <code class=\"codespan\">fontStyle</code>, <code class=\"codespan\">fontWeight</code>, <code class=\"codespan\">fontSize</code>, <code class=\"codespan\">fontFamily</code>.</li>\n<li>Fill of text: <code class=\"codespan\">color</code>.</li>\n<li>Stroke of text: <code class=\"codespan\">textBorderColor</code>, <code class=\"codespan\">textBorderWidth</code>.</li>\n<li>Shadow of text: <code class=\"codespan\">textShadowColor</code>, <code class=\"codespan\">textShadowBlur</code>, <code class=\"codespan\">textShadowOffsetX</code>, <code class=\"codespan\">textShadowOffsetY</code>.</li>\n<li>Box size of text block or text fragment: <code class=\"codespan\">lineHeight</code>, <code class=\"codespan\">width</code>, <code class=\"codespan\">height</code>, <code class=\"codespan\">padding</code>.</li>\n<li>Alignment of text block or text fragment: <code class=\"codespan\">align</code>, <code class=\"codespan\">verticalAlign</code>.</li>\n<li>Border, background (color or image) of text block or text fragment: <code class=\"codespan\">backgroundColor</code>, <code class=\"codespan\">borderColor</code>, <code class=\"codespan\">borderWidth</code>, <code class=\"codespan\">borderRadius</code>.</li>\n<li>Shadow of text block or text fragment: <code class=\"codespan\">shadowColor</code>, <code class=\"codespan\">shadowBlur</code>, <code class=\"codespan\">shadowOffsetX</code>, <code class=\"codespan\">shadowOffsetY</code>.</li>\n<li>Position and rotation of text block: <code class=\"codespan\">position</code>, <code class=\"codespan\">distance</code>, <code class=\"codespan\">rotate</code>.</li>\n</ul>\n<p>User can defined styles for text fragment in <code class=\"codespan\">rich</code> property. For example, <a href=\"option.html#series-bar.label.rich\" target=\"_blank\">series-bar.label.rich</a></p>\n<p>For example:</p>\n<pre><code class=\"lang-js\">label: {\n    // Styles defined in &#39;rich&#39; can be applied to some fragments\n    // of text by adding some markers to those fragment, like\n    // `{styleName|text content text content}`.\n    // `&#39;\\n&#39;` is the newline character.\n    formatter: [\n        &#39;{a|Style &quot;a&quot; is applied to this fragment}&#39;\n        &#39;{b|Style &quot;b&quot; is applied to this fragment}This fragment use default style{x|use style &quot;x&quot;}&#39;\n    ].join(&#39;\\n&#39;),\n\n    // Styles for the whole text block are defined here:\n    color: &#39;#333&#39;,\n    fontSize: 5,\n    fontFamily: &#39;Arial&#39;,\n    borderWidth: 3,\n    backgroundColor: &#39;#984455&#39;,\n    padding: [3, 10, 10, 5],\n    lineHeight: 20,\n\n    // Styles for text fragments are defined here:\n    rich: {\n        a: {\n            color: &#39;red&#39;,\n            lineHeight: 10\n        },\n        b: {\n            backgroundColor: {\n                image: &#39;xxx/xxx.jpg&#39;\n            },\n            height: 40\n        },\n        x: {\n            fontSize: 18,\n            fontFamily: &#39;Microsoft YaHei&#39;,\n            borderColor: &#39;#449933&#39;,\n            borderRadius: 4\n        },\n        ...\n    }\n}\n</code></pre>\n<blockquote>\n<p>Notice: <code class=\"codespan\">width</code> 和 <code class=\"codespan\">height</code> only work when <code class=\"codespan\">rich</code> specified.</p>\n</blockquote>\n<h2 id=\"basic-styles-of-text-text-block-and-text-fragment\">Basic Styles of Text, Text Block and Text Fragment</h2>\n<p>Basic font style can be set to text: <code class=\"codespan\">fontStyle</code>, <code class=\"codespan\">fontWeight</code>, <code class=\"codespan\">fontSize</code>, <code class=\"codespan\">fontFamily</code>.</p>\n<p>Fill color and stroke color can be set to text: <code class=\"codespan\">color</code>, <code class=\"codespan\">textBorderColor</code>, <code class=\"codespan\">textBorderWidth</code>.</p>\n<p>Border style and background style can be set to text block: <code class=\"codespan\">borderColor</code>, <code class=\"codespan\">borderWidth</code>, <code class=\"codespan\">backgroundColor</code>, <code class=\"codespan\">padding</code>.</p>\n<p>Border style and background style can be set to text fragment too: <code class=\"codespan\">borderColor</code>, <code class=\"codespan\">borderWidth</code>, <code class=\"codespan\">backgroundColor</code>, <code class=\"codespan\">padding</code>.</p>\n<p>For example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/text-options&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n\n<h2 id=\"label-position\">Label Position</h2>\n<p><code class=\"codespan\">label</code> option can be use in charts like <code class=\"codespan\">bar</code>, <code class=\"codespan\">line</code>, <code class=\"codespan\">scatter</code>, etc. The position of a label, can be specified by <a href=\"option.html#series-scatter.label.position\" target=\"_blank\">label.position</a>、<a href=\"option.html#series-scatter.label.distance\" target=\"_blank\">label.distance</a>.</p>\n<p>For example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/label-position&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n<blockquote>\n<p>Notice, there are different optional values of <code class=\"codespan\">position</code> by different chart types. And <code class=\"codespan\">distance</code> is not supported in every chart. More detailed info can be checked in <a href=\"option.html\" target=\"_blank\">option doc</a>.</p>\n</blockquote>\n<h2 id=\"label-rotation\">Label Rotation</h2>\n<p>Sometimes label is needed to be rotated. For example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=bar-label-rotation&edit=1&reset=1\" width=\"900\" height=\"500\" ></iframe>\n\n\n<p><a href=\"option.html#series-bar.label.align\" target=\"_blank\">align</a> and<a href=\"option.html#series-bar.label.verticalAlign\" target=\"_blank\">verticalAlign</a> can be used to adjust location of label in this scenario.</p>\n<p>Notice, <code class=\"codespan\">align</code> and <code class=\"codespan\">verticalAlign</code> are applied firstly, then rotate.</p>\n<h2 id=\"layout-and-alignment-of-text-fragment\">Layout and Alignment of Text fragment</h2>\n<p>To understand the layout rule, every text fragment can be imagined as a <code class=\"codespan\">inline-block</code> dom element in CSS.</p>\n<p><code class=\"codespan\">content box size</code> of a text fragment is determined by its font size by default. It can also be specified directly by <code class=\"codespan\">width</code> and <code class=\"codespan\">height</code>, although they are rarely set. <code class=\"codespan\">border box size</code> of a text fragment is calculated by adding the <code class=\"codespan\">border box size</code> and <code class=\"codespan\">padding</code>.</p>\n<p>Only <code class=\"codespan\">&#39;\\n&#39;</code> is the newline character, which breaks a line.</p>\n<p>Multiple text fragment exist in a single line. The height of a line is determined by the biggest <code class=\"codespan\">lineHeight</code> of text fragments. <code class=\"codespan\">lineHeight</code> of a text fragment can be specified in <code class=\"codespan\">rich</code>, or in the parent level of <code class=\"codespan\">rich</code>, otherwise using <code class=\"codespan\">box size</code> of the text fragment.</p>\n<p>Having <code class=\"codespan\">lineHeight</code> determined, the vertical position of text fragments can be determined by <code class=\"codespan\">verticalAlign</code> (there is a little different from the rule in CSS):</p>\n<ul>\n<li><code class=\"codespan\">&#39;bottom&#39;</code>: The bottom edge of the text fragment sticks to the bottom edge of the line.</li>\n<li><code class=\"codespan\">&#39;top&#39;</code>: The top edge of the text fragment sticks to the top edge of the line.</li>\n<li><code class=\"codespan\">&#39;middle&#39;</code>: In the middle of the line.</li>\n</ul>\n<p>The width of a text block can be specified by <code class=\"codespan\">width</code>, otherwise, by the longest line. Having the width determined, text fragment can be placed in each line, where the horizontal position of text fragments can be determined by its <code class=\"codespan\">align</code>.</p>\n<ul>\n<li>Firstly, place text fragments whose <code class=\"codespan\">align</code> is <code class=\"codespan\">&#39;left&#39;</code> from left to right continuously.</li>\n<li>Secondly, place text fragments whose <code class=\"codespan\">align</code> is <code class=\"codespan\">&#39;right&#39;</code> from right to left continuously.</li>\n<li>Finally, the text fragments remained will be sticked and placed in the center of the rest of space.</li>\n</ul>\n<p>The position of text in a text fragment:</p>\n<ul>\n<li>If <code class=\"codespan\">align</code> is <code class=\"codespan\">&#39;center&#39;</code>, text aligns at the center of the text fragment box.</li>\n<li>If <code class=\"codespan\">align</code> is <code class=\"codespan\">&#39;left&#39;</code>, text aligns at the left of the text fragment box.</li>\n<li>If <code class=\"codespan\">align</code> is <code class=\"codespan\">&#39;right&#39;</code>, text aligns at the right of the text fragment box.</li>\n</ul>\n<p>For example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/text-fragment-align&edit=1&reset=1\" width=\"800\" height=\"220\" ></iframe>\n\n\n\n\n<h2 id=\"effects-icon-horizontal-rule-title-block-simple-table\">Effects: Icon, Horizontal Rule, Title Block, Simple Table</h2>\n<p>See example:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/title-block&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n<p>Icon is implemented by using image in <code class=\"codespan\">backgroundColor</code>.</p>\n<pre><code class=\"lang-js\">rich: {\n    Sunny: {\n        backgroundColor: {\n            image: &#39;./data/asset/img/weather/sunny_128.png&#39;\n        },\n        // Can only height specified, but leave width auto obtained\n        // from the image, where the aspect ratio kept.\n        height: 30\n    }\n}\n</code></pre>\n<p>Horizontal rule (like HTML &lt;hr&gt; tag) can be implemented by border:</p>\n<pre><code class=\"lang-js\">rich: {\n    hr: {\n        borderColor: &#39;#777&#39;,\n        // width is set as &#39;100%&#39; to fullfill the text block.\n        // Notice, the percentage is based on the content box, without\n        // padding. Although it is a little different from CSS rule,\n        // it is convinent in most cases.\n        width: &#39;100%&#39;,\n        borderWidth: 0.5,\n        height: 0\n    }\n}\n</code></pre>\n<p>Title block can be implemented by <code class=\"codespan\">backgroundColor</code>:</p>\n<pre><code class=\"lang-js\">// Title is at left.\nformatter: &#39;{titleBg|Left Title}&#39;,\nrich: {\n    titleBg: {\n        backgroundColor: &#39;#000&#39;,\n        height: 30,\n        borderRadius: [5, 5, 0, 0],\n        padding: [0, 10, 0, 10],\n        width: &#39;100%&#39;,\n        color: &#39;#eee&#39;\n    }\n}\n\n// Title is in the center of the line.\n// This implementation is a little tricky, but is works\n// without more complicated layout mechanism involved.\nformatter: &#39;{tc|Center Title}{titleBg|}&#39;,\nrich: {\n    titleBg: {\n        align: &#39;right&#39;,\n        backgroundColor: &#39;#000&#39;,\n        height: 30,\n        borderRadius: [5, 5, 0, 0],\n        padding: [0, 10, 0, 10],\n        width: &#39;100%&#39;,\n        color: &#39;#eee&#39;\n    }\n}\n</code></pre>\n<p>Simple table can be implemented by specify the same width to text fragments that are in the same column of different lines. See the <a href=\"https://echarts.apache.org/examples/en/view.html?c=pie-rich-text&amp;edit=1&amp;reset=1\" target=\"_blank\">example</a> at the mentioned above.</p>\n"},"Server-side Rendering":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> can be rendered at server-side. For example, the thumbnails in the <a href=\"https://echarts.apache.org/examples/en/index.html\" target=\"_blank\">official examples page</a> are generated at a server.</p>\n<p>Commonly used headless tool is required, for example, <a href=\"https://github.com/GoogleChrome/puppeteer\" target=\"_blank\">puppeteer</a>, <a href=\"https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md\" target=\"_blank\">headless chrome</a>, <a href=\"https://github.com/Automattic/node-canvas\" target=\"_blank\">node-canvas</a>, <a href=\"https://github.com/jsdom/jsdom\" target=\"_blank\">jsdom</a>, <a href=\"http://phantomjs.org/\" target=\"_blank\">PhantomJS</a>, etc.</p>\n<p>Some solutions contributed by the community are list as follows:</p>\n<ul>\n<li><a href=\"https://github.com/hellosean1025/node-echarts\" target=\"_blank\">https://github.com/hellosean1025/node-echarts</a></li>\n<li><a href=\"https://github.com/chfw/echarts-scrappeteer\" target=\"_blank\">https://github.com/chfw/echarts-scrappeteer</a></li>\n<li><a href=\"https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js\" target=\"_blank\">https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js</a></li>\n<li><a href=\"https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73\" target=\"_blank\">https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73</a></li>\n</ul>\n"},"Render by Canvas or SVG":{"type":["*"],"description":"<p>Most of browser-side charting libraries use SVG or Canvas as their underlying renderer. In the scope of Apache ECharts<sup>TM</sup>, they are usually alternative, without critical differences. But in some environment and scenarios, they show notable differences in performance or functionality.</p>\n<p>ECharts has been using Canvas as its renderer (use VML for IE8-) from the beginning. As of <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">ECharts v3.8</a> we provide an SVG renderer (beta version) as another option. Either of them can be used by specifing parameter <a href=\"api.html#echarts.init\" target=\"_blank\">renderer</a> as <code class=\"codespan\">&#39;canvas&#39;</code> or <code class=\"codespan\">&#39;svg&#39;</code> when initailizing a chart instance.</p>\n<blockquote>\n<p>Both SVG and Canvas, which are very different rendering implementations, are supported in ECharts by leveraging the Canvas and SVG renderers offered by the <a href=\"https://github.com/ecomfe/zrender\" target=\"_blank\">zrender</a> library.</p>\n</blockquote>\n<h2 id=\"how-to-make-a-choice-\">How to make a choice?</h2>\n<p>Generally speaking, Canvas is suitable for cases where there is a large amount of graphical elements (usually due to a large amount of data points), like heatmap and lines or scatter plot with large data in geo or parallel coordinates. In addition, it supports some <a href=\"https://echarts.apache.org/examples/en/editor.html?c=lines-bmap-effect\" target=\"_blank\">special visual effect</a> not supported by SVG. However, in some other scenarios SVG has some critical advantages: it consumes less memory than Canvas (especially in mobile devices), and gives better performance in rendering. Moreover, it never blurs when zooming the viewport of the browser whereas Canvas may blur.</p>\n<p>How to make a choice? These factors, hardware and software environment, data amount and functional requirements, should be considered.</p>\n<ul>\n<li>When not constrained by hardware/software, and the data amount is not large, both should provide equally satisfactory results.</li>\n<li>When encountering performance issues, we can attempt to get better result by choose appropriate renderer.<ul>\n<li>If lots of ECharts instances have to be created, and it causes the browser crash (probably caused by that the large memory consumption) we can try the SVG renderer. Or, generally, when running on some old Android devices, or if we are using some kind of charts like <a href=\"https://ecomfe.github.io/echarts-liquidfill/example/\" target=\"_blank\">liquidfill</a>, the SVG renderer probably gives a better performance.</li>\n<li>If visualizing a large amount of data, or complicated human interactions with data is required, the Canvas renderer works better currently.</li>\n</ul>\n</li>\n</ul>\n<p>Therefore <a href=\"https://github.com/apache/echarts/issues/new\" target=\"_blank\">feedback</a> of experiences and usage scenarios are strongly welcomed, which will help improve the these renderers.</p>\n<h2 id=\"how-to-use-specify-a-renderer-\">How to use specify a renderer?</h2>\n<p>ECharts uses Canvas by default. If a user intends to use the SVG renderer, the module of the SVG renderer should be included in ECharts bundle.</p>\n<ul>\n<li>In the <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">pre-build</a> of ECharts, the SVG renderer has been included in <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.common.min.js\" target=\"_blank\">common version</a> and <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js\" target=\"_blank\">complete version</a>. But not in <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.simple.min.js\" target=\"_blank\">simple version</a>.</li>\n<li>When <a href=\"https://echarts.apache.org/en/builder.html\" target=\"_blank\">building ECharts online</a>, the checkbox &quot;SVG Renderer&quot; should be checked.</li>\n<li>When <a href=\"tutorial.html#Use%20ECharts%20with%20bundler%20and%20NPM\" target=\"_blank\">building ECharts offline</a>, the SVG renderer module should be imported:</li>\n</ul>\n<pre><code class=\"lang-js\">import &#39;zrender/lib/svg/svg&#39;;\n</code></pre>\n<p>Then we can specify renderer by <a href=\"api.html#echarts.init\" target=\"_blank\">parameter</a>:</p>\n<pre><code class=\"lang-js\">// Use the Canvas renderer (default).\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n// which is equal to:\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n\n// Use the SVG renderer.\nvar chart = echarts.init(containerDom, null, {renderer: &#39;svg&#39;});\n</code></pre>\n"},"SVG Base Map in Geo Coords and Map Series":{"type":["*"],"description":"<p>Since <code class=\"codespan\">v5.1.0</code>, ECharts support to use SVG as the base map in <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> and <a href=\"option.html#series-map\" target=\"_blank\">map series</a>, where previously only <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a> is supported.</p>\n<p>This feature enables ECharts to display SVG in either of the render modes (<code class=\"codespan\">canvas</code> render mode and <code class=\"codespan\">svg</code> render mode), and enables features like <a href=\"option.html#geo.roam\" target=\"_blank\">zoom</a>, <a href=\"option.html#geo.roam\" target=\"_blank\">pan</a>, <a href=\"option.html#geo.select\" target=\"_blank\">select</a>, <a href=\"option.html#geo.emphasis\" target=\"_blank\">emphasis</a>, <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">focus-blur</a>, <a href=\"option.html#geo.label\" target=\"_blank\">label</a>, <a href=\"option.html#series-map.labelLayout\" target=\"_blank\">labelLayout</a>, <a href=\"option.html#geo.tooltip\" target=\"_blank\">tooltip</a> on SVG with only simple some ECharts options. Series like <a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>, <a href=\"option.html#series-effectScatter\" target=\"_blank\">effectScatter</a>, <a href=\"option.html#series-lines\" target=\"_blank\">lines</a>, <a href=\"option.html#series-custom\" target=\"_blank\">custom</a> that are available on <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> can also be positioned and displayed based on SVG base map.</p>\n<p>There are several examples where SVG base map is used:</p>\n<p><a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-beef-cuts\" target=\"_blank\">Beef Cuts</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-seatmap-flight\" target=\"_blank\">Flight Seatmap</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-map\" target=\"_blank\">SVG Map</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">SVG Scatter</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-lines\" target=\"_blank\">SVG Lines</a> |\n<a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-traffic\" target=\"_blank\">SVG Traffic</a></p>\n<h2 id=\"basic-usage\">Basic Usage</h2>\n<p>The usage of SVG base map is the same as the usage of <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a>.</p>\n<p>If used in <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a>:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/organ.svg&#39;, function (svg) {\n    // Firstly we need to register SVG raw string or parsed SVG DOM\n    // to echarts with a name:\n    echarts.registerMap(&#39;organ_diagram&#39;, {svg: svg});\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;));\n    chart.setOption({\n        geo: {\n            // Reference it in echarts option.\n            map: &#39;organ_diagram&#39;,\n            ...\n        }\n    });\n});\n</code></pre>\n<p>If used in <a href=\"option.html#series-map\" target=\"_blank\">map series</a>:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/beef_cuts.svg&#39;, function (svg) {\n    // Firstly we need to register SVG raw string or parsed SVG DOM\n    // to echarts with a name:\n    echarts.registerMap(&#39;beef_cuts_diagram&#39;, {svg: svg});\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;));\n    chart.setOption({\n        series: {\n            type: &#39;map&#39;,\n            // Reference it in echarts option.\n            map: &#39;beef_cuts_diagram&#39;,\n            ...\n        }\n    });\n});\n</code></pre>\n<h2 id=\"zoom-and-pan\">Zoom and Pan</h2>\n<p>For <a href=\"option.html#geo\" target=\"_blank\">Geo coordinate system</a></p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        // Enable zoom and pan.\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p>For <a href=\"option.html#series-map\" target=\"_blank\">map series</a></p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;map&#39;,\n        // Enable zoom and pan.\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p>See <a href=\"option.html#geo.roam\" target=\"_blank\">roam</a>.\nAlso see example <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-map\" target=\"_blank\">SVG Map</a>.</p>\n<h2 id=\"named-element\">Named Element</h2>\n<p>If intending to interact with some elements of SVG, we need to mark those elements in SVG firstly. That can be done simply by adding names to the target elements. The interaction related feature like <a href=\"option.html#geo.select\" target=\"_blank\">select</a>, <a href=\"option.html#geo.emphasis\" target=\"_blank\">emphasis</a>, <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">focus-blur</a>, <a href=\"option.html#geo.label\" target=\"_blank\">label</a>, <a href=\"option.html#series-map.labelLayout\" target=\"_blank\">labelLayout</a>, <a href=\"option.html#geo.tooltip\" target=\"_blank\">tooltip</a> depend on those named elements.</p>\n<p>For example, we add name attribute <code class=\"codespan\">name=&quot;named_rect&quot;</code> only to the left SVG <code class=\"codespan\">path</code>.</p>\n<pre><code class=\"lang-xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;\n&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.2&quot; fill-rule=&quot;evenodd&quot; xml:space=&quot;preserve&quot;&gt;\n    &lt;path name=&quot;named_rect&quot; d=&quot;M 0,0 L 0,100 100,100 100,0 Z&quot; fill=&quot;#765&quot; /&gt;\n    &lt;path d=&quot;M 150,0 L 150,100 250,100 250,0 Z&quot; fill=&quot;#567&quot; /&gt;\n&lt;/svg&gt;\n</code></pre>\n<p>Then hover on the left rect, it can be highlighted, whereas the right one can not.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/geo-svg-named-basic&edit=1&reset=1\" width=\"500\" height=\"200\" ></iframe>\n\n\n<p>Option for some certain named elements can be specified in <a href=\"option.html#geo.regions\" target=\"_blank\">geo.regions</a>, like:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        regions: [{\n            name: &#39;element_name_1&#39;,\n            itemStyle: { ... }\n        }, {\n            name: &#39;element_name_2&#39;,\n            itemStyle: { ... }\n        }]\n    }\n};\n</code></pre>\n<p>Note:</p>\n<ul>\n<li>These SVG elements can be named and recognized by ECharts:\n<code class=\"codespan\">rect</code>, <code class=\"codespan\">circle</code>, <code class=\"codespan\">line</code>, <code class=\"codespan\">ellipse</code>, <code class=\"codespan\">polygon</code>, <code class=\"codespan\">polyline</code>, <code class=\"codespan\">path</code>, <code class=\"codespan\">text</code>, <code class=\"codespan\">tspan</code>, <code class=\"codespan\">g</code>.</li>\n<li>It is supported that multiple elements are named with the same name, will they will be highlighted/selected together.</li>\n</ul>\n<h2 id=\"style-customization\">Style Customization</h2>\n<p>Although the style (such as color, font, lineWidth, ...) of SVG Elements can be defined directly in SVG file, style of named elements can also be customized in ECharts option, which will be handy in some scenario.</p>\n<p>Styles can be specified in <a href=\"option.html#geo.itemStyle\" target=\"_blank\">geo.itemStyle</a> and <a href=\"option.html#series-map.itemStyle\" target=\"_blank\">series-map.itemStyle</a> (also includes <code class=\"codespan\">emphasis.itemStyle</code>, <code class=\"codespan\">select.itemStyle</code>, <code class=\"codespan\">blur.itemStyle</code>, <code class=\"codespan\">regions[i].itemStyle</code>, <code class=\"codespan\">regions[i].emphasis.itemStyle</code>, <code class=\"codespan\">regions[i].select.itemStyle</code>, <code class=\"codespan\">regions[i].blur.itemStyle</code>). Some default style of the named elements can also be removed here (e.g., set <code class=\"codespan\">emphasis.itemStyle.color: null</code> to prevent the fill color from changing when mouse hovering.)</p>\n<p>Moreover, named elements can also be styled by <a href=\"option.html#visualMap\" target=\"_blank\">visualMap component</a> if using <a href=\"option.html#series-map\" target=\"_blank\">series-map</a>. See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-beef-cuts\" target=\"_blank\">Beef Cuts</a>.</p>\n<p>Note:\nOnly these named elements can be styled in <code class=\"codespan\">itemStyle</code>:\n<code class=\"codespan\">rect</code>, <code class=\"codespan\">circle</code>, <code class=\"codespan\">line</code>, <code class=\"codespan\">ellipse</code>, <code class=\"codespan\">polygon</code>, <code class=\"codespan\">polyline</code>, <code class=\"codespan\">path</code>.</p>\n<h2 id=\"select\">Select</h2>\n<p>Named elements can adopt &quot;select&quot; feature by setting <a href=\"option.html#geo.selectedMode\" target=\"_blank\">geo.selectedMode</a> or <a href=\"option.html#series-map.selectedMode\" target=\"_blank\">series-map.selectedMode</a> as <code class=\"codespan\">&#39;single&#39;</code> or <code class=\"codespan\">&#39;multiple&#39;</code>. The style of element when selected can be specified in <a href=\"option.html#geo.select\" target=\"_blank\">geo.select</a> or <a href=\"option.html#series-map.select\" target=\"_blank\">series-map.select</a>.</p>\n<p>The selected names can be obtained by <a href=\"api.html#event.geoselectchanged\" target=\"_blank\">geoselectchanged</a> event, like:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;geoselectchanged&#39;, function (params) {\n    var selectedNames = params.allSelected[0].name;\n    console.log(&#39;selected&#39;, selectedNames);\n});\n</code></pre>\n<p>See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-seatmap-flight\" target=\"_blank\">Flight Seatmap</a> for more details.</p>\n<h2 id=\"emphasis-and-focus-blur\">Emphasis and Focus-Blur</h2>\n<p><code class=\"codespan\">emphasis</code> state (highlight when hovering) can be auto adopted to named elements.</p>\n<p>Especially, <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">geo.emphasis.focus</a> and be set as <code class=\"codespan\">&#39;self&#39;</code> to enable &quot;focus-blur&quot; feature, where all all of the other elements will be blurred when hovering on an named element.</p>\n<p>See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a> for more details.</p>\n<h2 id=\"tooltip\">Tooltip</h2>\n<p>Tooltip can be enabled or disabled on named elements.</p>\n<pre><code class=\"lang-js\">option = {\n    // Need to declare the root tooltip to\n    // enable tooltip feature on ECharts.\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            // Use `show` to enable/disable tooltip\n            // on geo coordinate system.\n            show: true\n        },\n        regions: [{\n            name: &#39;some_name1&#39;,\n            // Set named element specified tooltip option if needed.\n            tooltip: {\n                formatter: &#39;some special tooltip 1&#39;\n            }\n        }, {\n            name: &#39;some_name2&#39;,\n            tooltip: {\n                formatter: &#39;some special tooltip 2&#39;\n            }\n        }]\n    }\n};\n</code></pre>\n<p>If intending to disable the geo tooltip when hovering a on named elements, just:</p>\n<pre><code class=\"lang-js\">option = {\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            show: false\n        }\n    }\n};\n</code></pre>\n<p>See <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-map\" target=\"_blank\">SVG Map</a> for more details.</p>\n<h2 id=\"label\">Label</h2>\n<p>Although text label can be declared in SVG file directly via <code class=\"codespan\">&lt;text&gt;</code>/<code class=\"codespan\">&lt;tspan&gt;</code>, we can also use ECharts built-in label feature on named elements by specifying <a href=\"option.html#geo.label\" target=\"_blank\">geo.label</a> or <a href=\"option.html#series-map.label\" target=\"_blank\">series-map.label</a>.</p>\n<p>By default the label feature is enabled when hovering on a named element. If intending to disable it, just:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        emphasis: {\n            label: {\n                show: false\n            }\n        }\n    }\n};\n</code></pre>\n<p>When multiple elements need to share one label text, we have two choices:</p>\n<ul>\n<li>Wrap those elements in a named <code class=\"codespan\">&lt;g&gt;</code> (e.g., <code class=\"codespan\">&lt;g name=&quot;name_a&quot;&gt;</code>), where a single label will be displayed and located based on the bounding rect of the <code class=\"codespan\">&lt;g&gt;</code>.</li>\n<li>Name those elements with the same name (e.g., <code class=\"codespan\">&lt;path name=&quot;name_b&quot;/&gt;&lt;path name=&quot;name_b&quot;/&gt;</code>), where multiple labels will be displayed and located based on each elements self.</li>\n</ul>\n<p>For example (hover to show the labels):</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/geo-svg-label-basic&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n<p>Note: Only these named elements can be labeled via <code class=\"codespan\">label</code> option:\n<code class=\"codespan\">rect</code>, <code class=\"codespan\">circle</code>, <code class=\"codespan\">line</code>, <code class=\"codespan\">ellipse</code>, <code class=\"codespan\">polygon</code>, <code class=\"codespan\">polyline</code>, <code class=\"codespan\">path</code>, <code class=\"codespan\">g</code>.</p>\n<p>Also see <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a> for the usage of label.</p>\n<h2 id=\"events\">Events</h2>\n<p>Mouse events or touch events of named elements can be listened simply by:</p>\n<pre><code class=\"lang-js\">// &#39;name1&#39; is a name of a SVG element.\nmyChart.on(&#39;click&#39;, { geoIndex: 0, name: &#39;name1&#39; }, function (params) {\n    console.log(params);\n});\n</code></pre>\n<h2 id=\"layout-of-svg-base-map\">Layout of SVG Base Map</h2>\n<p>By default ECharts will position the SVG base map in the center of the canvas. If need some adjust, we usually only adjust <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>/<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>, and occasionally <code class=\"codespan\">&lt;svg viewBox=&quot;...&quot;&gt;</code>/<a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a> (difference: clip or not). In most cases they are enough.</p>\n<p>If need some advanced precise control of the position and zoom, several concepts below can be noticed.</p>\n<p>The layout rule and options of <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> and <a href=\"option.html#series-map\" target=\"_blank\">map series</a> are the same. So we only demonstrate <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> below.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/geo-svg-layout-basic&edit=1&reset=1\" width=\"700\" height=\"550\" ></iframe>\n\n\n<p>The demo above shows six <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> with three SVG files in a single ECharts canvas. Each two <a href=\"option.html#geo\" target=\"_blank\">geo</a> that are in the same column use the same SVG file.</p>\n<p>Firstly, what shapes looks like is determined by SVG file itself. That is, in the demo above, determined by the <code class=\"codespan\">&lt;circle&gt;</code> and <code class=\"codespan\">viewBox</code> attribute (<code class=\"codespan\">viewBox</code> cut (clips) the circle). We can noticed that the final shape outlines in each column are the same (despite the difference in position, size and scratch), since they use the same SVG file.</p>\n<p>Secondly, users can use either of the two option groups below to determine the location and the size of the <code class=\"codespan\">geo view port</code> of <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> according to the entire chart canvas (all of these options are measured in echarts canvas pixel, or percentage value):</p>\n<ul>\n<li><a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>, <a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a> (recommended).</li>\n<li><a href=\"option.html#geo.top\" target=\"_blank\">top</a>, <a href=\"option.html#geo.right\" target=\"_blank\">right</a>, <a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>, <a href=\"option.html#geo.left\" target=\"_blank\">left</a> (which is used in the demo above).</li>\n</ul>\n<p>In the demo above, the six geo <code class=\"codespan\">geo view ports</code> are displayed as six black squares.</p>\n<p>Thirdly, a <code class=\"codespan\">bounding rect</code> of the SVG is determined, which is determined by methods below (all of them are measured in SVG local unit):</p>\n<ol>\n<li>If <a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a> is specified, use it as <code class=\"codespan\">bounding rect</code>.</li>\n<li>Else if <code class=\"codespan\">&lt;svg width=&quot;...&quot; height=&quot;...&quot;&gt;</code> is specified, use <code class=\"codespan\">[0, 0, width, height]</code> as <code class=\"codespan\">bounding rect</code>. (If only <code class=\"codespan\">width</code> or only <code class=\"codespan\">height</code> is specified, only use <code class=\"codespan\">[0, width]</code> or <code class=\"codespan\">[0, height]</code>).</li>\n<li>Else if <code class=\"codespan\">svg viewBox=&quot;...&quot;&gt;</code> is specified, use <code class=\"codespan\">viewBox</code> as <code class=\"codespan\">bounding rect</code>.</li>\n<li>Else use the union bounding rect of all of the SVG elements as the <code class=\"codespan\">bounding rect</code>.</li>\n<li>If <a href=\"option.html#geo.center\" target=\"_blank\">geo.center</a> or <a href=\"option.html#geo.zoom\" target=\"_blank\">geo.zoom</a> is specified, transform the <code class=\"codespan\">bounding rect</code> determined by <code class=\"codespan\">1~4</code> above.</li>\n</ol>\n<p>Having <code class=\"codespan\">bounding rect</code> determined, it will be placed into its corresponding <code class=\"codespan\">geo view port</code>:</p>\n<ul>\n<li>If <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>, <a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a> is used, the <code class=\"codespan\">bounding rect</code> will be placed at the center and as big as possible into the <code class=\"codespan\">geo view port</code> (keep aspect ratio).</li>\n<li>If <a href=\"option.html#geo.top\" target=\"_blank\">top</a>, <a href=\"option.html#geo.right\" target=\"_blank\">right</a>, <a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>, <a href=\"option.html#geo.left\" target=\"_blank\">left</a> is used, the view rect will be stretched to fill the <code class=\"codespan\">geo view port</code> entirely.</li>\n</ul>\n<h2 id=\"place-series-on-svg-base-map\">Place Series on SVG Base Map</h2>\n<p>Series like <a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>, <a href=\"option.html#series-effectScatter\" target=\"_blank\">effectScatter</a>, <a href=\"option.html#series-lines\" target=\"_blank\">lines</a>, <a href=\"option.html#series-custom\" target=\"_blank\">custom</a> that are available on <a href=\"option.html#geo\" target=\"_blank\">geo coordinate system</a> can also be positioned and displayed on SVG base map.</p>\n<p>Note that in this kind of usage the unit of series data value is the SVG file local coords. For example:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;\n    },\n    series: {\n        type: &#39;effectScatter&#39;,\n        coordinateSystem: &#39;geo&#39;,\n        geoIndex: 0,\n        data: [\n            // SVG local coords.\n            [488.2358421078053, 459.70913833075736],\n            [770.3415644319939, 757.9672194986475],\n            [1180.0329284196291, 743.6141808346214],\n        ]\n    }\n};\n</code></pre>\n<p>By the way, there is a simple approach to get SVG local coord:</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    geo: {\n        map: &#39;some_svg&#39;\n    }\n});\nmyChart.getZr().on(&#39;click&#39;, function (params) {\n    var pixelPoint = [params.offsetX, params.offsetY];\n    var dataPoint = myChart.convertFromPixel({ geoIndex: 0 }, pixelPoint);\n    // When click, the data in SVG local coords will be printed,\n    // which can be used in `series.data`.\n    console.log(dataPoint);\n});\n</code></pre>\n<p>See also <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">SVG Scatter</a>, <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-svg-lines\" target=\"_blank\">SVG Lines</a>, <a href=\"https://echarts.apache.org/examples/en/editor.html?c=geo-traffic\" target=\"_blank\">SVG Traffic</a>.</p>\n<h2 id=\"unsupported-svg-features\">Unsupported SVG features</h2>\n<p>Unfortunately it is difficult to implement a complete SVG parser. While the common SVG features are supported, at least these features listed below are not supported yet:</p>\n<ul>\n<li>Flip and skew (will be supported <code class=\"codespan\">v5.1.2</code>):<ul>\n<li>Not support <code class=\"codespan\">transform: skew(...)</code> (including <code class=\"codespan\">transform: matrix(...)</code> that includes skew).</li>\n<li>Not support <code class=\"codespan\">transform: scale(x, y)</code> that <code class=\"codespan\">x</code>, <code class=\"codespan\">y</code> has different sign while has <code class=\"codespan\">rotate</code> (e.g., <code class=\"codespan\">scale: (1, -1), rotate(90)</code>).</li>\n</ul>\n</li>\n<li>Standalone <code class=\"codespan\">&lt;style&gt;</code> tag is not supported.<ul>\n<li>But inline style is supported (e.g., <code class=\"codespan\">&lt;path style=&quot;color:red&quot; /&gt;</code>).</li>\n</ul>\n</li>\n<li>Unit:<ul>\n<li>Only <code class=\"codespan\">px</code> is supported. Other unit like <code class=\"codespan\">width=&quot;231.65mm&quot;</code> is not supported.</li>\n<li>Percentage value like <code class=\"codespan\">&lt;svg width=&quot;30%&quot; height=&quot;40%&quot;&gt;</code> is not supported.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;defs&gt;</code> tag:<ul>\n<li>Only <code class=\"codespan\">&lt;linearGradient&gt;</code>, <code class=\"codespan\">&lt;radialGradient&gt;</code> are supported.</li>\n<li>other elements (e.g., <code class=\"codespan\">&lt;pattern&gt;</code>, <code class=\"codespan\">&lt;path&gt;</code>, ...) defined in <code class=\"codespan\">&lt;defs&gt;</code> are not supported yet.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;linearGradient&gt;</code>, <code class=\"codespan\">&lt;radialGradient&gt;</code>:<ul>\n<li><code class=\"codespan\">fx</code>, <code class=\"codespan\">fy</code> is not supported.</li>\n<li><code class=\"codespan\">gradientTransform</code> attribute is not supported.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">fill:url(...)</code>, <code class=\"codespan\">stroke:utl(...)</code>:<ul>\n<li>Only <code class=\"codespan\">url(#someId)</code> is supported.</li>\n<li>Other URL patterns are not supported. e.g.,<ul>\n<li><code class=\"codespan\">url(https://example.com/images/myImg.jpg)</code>;</li>\n<li><code class=\"codespan\">url(data:image/png;base64,iRxVB0…)</code>;</li>\n<li><code class=\"codespan\">url(myFont.woff)</code>;</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;switch&gt;</code> tag:<ul>\n<li>All the content inside <code class=\"codespan\">&lt;switch&gt;</code> tag will be displayed. The &quot;switch&quot; feature is not supported.</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;text&gt;</code>:<ul>\n<li><code class=\"codespan\">textPath</code> is not supported.</li>\n<li><a href=\"https://www.w3.org/TR/SVG/text.html#TermAddressableCharacter\" target=\"_blank\">Addressable character</a> is not supported. That is,<pre><code class=\"lang-xml\">&lt;!-- Not supported: --&gt;\n&lt;tspan x=&quot;0 4.94 9.89&quot;&gt;abc&lt;/tspan&gt;\n&lt;!-- Supported: --&gt;\n&lt;tspan x=&quot;0&quot;&gt;a&lt;/tspan&gt;\n&lt;tspan x=&quot;4.94&quot;&gt;b&lt;/tspan&gt;\n&lt;tspan x=&quot;9.89&quot;&gt;c&lt;/tspan&gt;\n</code></pre>\n</li>\n</ul>\n</li>\n</ul>\n"},"Supporting ARIA in Charts":{"type":["*"],"description":"<p>The W3C has developed the <a href=\"https://www.w3.org/WAI/intro/aria\" target=\"_blank\">WAI-ARIA</a>, the Accessible Rich Internet Applications Suite, which is dedicated to making web content and web applications accessible. Apache ECharts<sup>TM</sup> 4 complies with this specification by supporting the automatic generation of intelligent descriptions based on chart configuration items, allowing blind people to understand the chart content with the help of a reading device, making the chart accessible to a wider audience.</p>\n<p>By default, ARIA is disabled. To enable it, you should set <a href=\"#aria.enabled\">aria.enabled</a> to be <code class=\"codespan\">true</code>. After enabling, it will generate descriptions based on charts, series, data, and so on. Users may change the generated description.</p>\n<p><strong>For example:</strong></p>\n<p>For config:</p>\n<pre><code class=\"lang-js\">option = {\n    aria: {\n        show: true\n    },\n    title: {\n        text: &#39;Source of user access to a site&#39;,\n        x: &#39;center&#39;\n    },\n    series: [\n        {\n             Name: &#39;access source&#39;,\n            type: &#39;pie&#39;,\n            data: [\n                { value: 335, name: &#39;direct access&#39; },\n                { value: 310, name: &#39;mail marketing&#39; },\n                { value: 234, name: &#39;union ad&#39; },\n                { value: 135, name: &#39;video ad&#39; },\n                { value: 1548, name: &#39;search engine&#39; }\n            ]\n        }\n    ]\n};\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/aria-pie&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n<p>There should be an <code class=\"codespan\">aria-label</code> attribute on the chart DOM, which can help the disabled understand the content of charts with the help of certain devices. The value of the label is:</p>\n<pre><code>This is a chart of &quot;Source of user access to a site.&quot; The chart type is a pie chart that indicates the source of the visit. The data is - direct access data is 335, mail marketing data is 310, union ad data is 234, video ad data is 135, search engine data is 1548.\n</code></pre><p>The default language is in defined by the language package (Chinese by default), but you can configure it with templates.</p>\n<p>In addition, Apache ECharts 5 now supports applique textures as a secondary expression of color to further differentiate data. If <code class=\"codespan\">aria.enabled</code> is set to <code class=\"codespan\">true</code>, <code class=\"codespan\">aria.decal.show</code> is set to <code class=\"codespan\">true</code> to adopt the default applique style.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/aria-decal-simple&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n\n<p>Next, let&#39;s describe more specifically how these two accessible designs can be configured.</p>\n<h2 id=\"chart-labels\">Chart Labels</h2>\n<h3 id=\"apply-overall-modification-description\">Apply Overall Modification Description</h3>\n<p>For some charts, the default generated descriptions of the data points are not sufficient to represent the overall information. For example, in the scatter plot below, the default description can include the coordinates of the data points, but knowing the coordinates of hundreds or thousands of points does not help us to effectively understand the information presented in the chart.</p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/aria-example.png\"></p>\n<p>At this point, the user can specify the overall description of the chart via the <a href=\"option.html#aria.label.description\" target=\"_blank\">aria.label.description</a> configuration item.</p>\n<h3 id=\"customizing-the-template-description\">Customizing the Template Description</h3>\n<p>In addition to modifying descriptions holistically, we also provide templates for generating descriptions that can be easily modified at a fine-grained level.</p>\n<p>The basic flow for generating descriptions is that if <a href=\"option.html#aria.label.show\" target=\"_blank\">aria.label.description</a> is set to <code class=\"codespan\">true</code>, then the accessibility description is generated, otherwise it is not. If <a href=\"option.html#aria.label.description\" target=\"_blank\">aria.label.description</a> is defined, it is used as the full description of the chart, otherwise the description is generated according to the template stitching. We provide a default algorithm for generating descriptions, and only if the generated descriptions are not quite right, we need to modify these templates, or even override them completely with <code class=\"codespan\">aria.description</code>.</p>\n<p>When using the template, whether <a href=\"#title.text\">title.text</a> is used along with <a href=\"option.html#aria.label.general.withTitle\" target=\"_blank\">aria.label.general.withTitle</a> while <a href=\"option.html#aria.label.general.withoutTitle\" target=\"_blank\">aria.label.general.withoutTitle</a> is used if there is no title text. <code class=\"codespan\">aria.general.withTitle</code> supports a template <code class=\"codespan\">&#39;{title}&#39;</code>, which will be replaced with chart title. This means, if <code class=\"codespan\">aria.general.withTitle</code> is set to be <code class=\"codespan\">&#39;The chart title is {title}.&#39;</code> and the chart title is <code class=\"codespan\">Price Distribution</code>, it will be interpreted into <code class=\"codespan\">&#39;The chart title is Price Distribution.&#39;</code></p>\n<p>After generating the title, the description of the series (<a href=\"option.html#aria.label.series\" target=\"_blank\">aria.label.series</a>) and the description of the data for each series (<a href=\"option.html#aria.label.data\" target=\"_blank\">aria.label.data</a>) are generated in turn. The following is an example of a template. Likewise, each template may include template variables to replace actual values.</p>\n<h2 id=\"decal-pattern\">Decal Pattern</h2>\n<p>The way to use the default applique pattern was described above. If you need to customize the decal pattern, you can use <a href=\"option.html#aria.decal.decals\" target=\"_blank\">aria.decal.decals</a> to configure a flexible decal pattern.</p>\n<iframe data-src=\"https://echarts.apache.org/examples/en/view.html?c=doc-example/aria-decal&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n<p>Please refer to <a href=\"option.html#aria\" target=\"_blank\">ARIA option</a> for more detail.</p>\n"}}}}
\ No newline at end of file
diff --git a/en/download-extension.html b/en/download-extension.html
index a93b0e5..2f6443f 100644
--- a/en/download-extension.html
+++ b/en/download-extension.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/download-map.html b/en/download-map.html
index 50f6023..bf2a7e5 100644
--- a/en/download-map.html
+++ b/en/download-map.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/download-theme.html b/en/download-theme.html
index 98eea85..bebb579 100644
--- a/en/download-theme.html
+++ b/en/download-theme.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/download.html b/en/download.html
index 1987676..6be5e1f 100644
--- a/en/download.html
+++ b/en/download.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -16,7 +16,7 @@
     font-weight: normal;
 }
 */
-</style><nav class="navbar navbar-default navbar-fixed-top"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/en/index.html" class="navbar-brand"><img src="https://echarts.apache.org/en/images/logo.png" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/en/index.html">Home</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Docs<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/feature.html">Features</a></li><li><a href="https://echarts.apache.org/en/tutorial.html">Tutorials</a></li><li><a href="https://echarts.apache.org/en/api.html">API</a></li><li><a href="https://echarts.apache.org/en/option.html">Chart Configuration</a></li><li><a href="https://echarts.apache.org/en/changelog.html">Changelog</a></li><li><a href="https://echarts.apache.org/en/faq.html">FAQ</a></li><li><a href="https://echarts.apache.org/en/tutorial.html#ECharts%205%20Upgrade%20Guide">V5 Upgrade Guide<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Download<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/download.html">Download</a></li><li><a href="https://echarts.apache.org/en/download-theme.html">Download Themes</a></li><li><a href="https://echarts.apache.org/en/download-extension.html">Download Extensions</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/en/index.html">Examples</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Resources<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/spreadsheet.html">Spread Sheet Tool</a></li><li><a href="https://echarts.apache.org/en/theme-builder.html">Theme Builder</a></li><li><a href="https://echarts.apache.org/en/cheat-sheet.html">Cheat Sheet</a></li><li><a href="https://echarts.apache.org/en/resources.html">More Resources</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/events.html">Events</a></li><li><a href="https://echarts.apache.org/en/committers.html">Committers</a></li><li><a href="https://echarts.apache.org/en/maillist.html">Mailing List</a></li><li><a href="https://echarts.apache.org/en/contributing.html">How to Contribute</a></li><li><a href="https://echarts.apache.org/en/dependencies.html">Dependencies</a></li><li><a href="https://echarts.apache.org/en/coding-standard.html">Code Standard</a></li><li><a href="https://github.com/apache/echarts" target="_blank">Source Code (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/en/security.html">Security</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">License<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">Events<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('zh')">中文</a></li></ul></div></div></nav></nav><div class="page-main"><div class="page-info"><h1>Download</h1><p>Free to choose to download different versions, different topics, the map data you need. You can be customized according to your needs.</p><p class="page-info-echarts">Apache ECharts<sup>TM</sup></p></div><div id="download-main" class="page-content container"><div class="d-section-version d-section"><h3 class="first">Option 1: Install from downloaded source code or binary</h3><table id="download-table" class="table"><tr><th>Version</th><th>Release Date</th><th>Download Source from a Mirror</th><th>Dist files on GitHub</th></tr></table><div class="checksum"><p><strong>Note:</strong> when downloading from a mirror please check the <a href="https://www.apache.org/dev/release-signing#sha-checksum">SHA-512</a> and verify the <a href="https://www.apache.org/dev/release-signing#openpgp">OpenPGP</a> compatible signature from the main <a href="https://www.apache.org">Apache site</a>. Links are provided above (next to the release download link). This <a href="https://www.apache.org/dist/echarts/KEYS">KEYS</a> file contains the public keys used for signing release. It is recommended that (when possible) a <a href="https://www.apache.org/dev/release-signing#web-of-trust">web of trust</a> is used to confirm the identity of these keys.</p><h4>To verify ECharts releases using GPG:</h4><ol><li>Download the release apache-echarts-X.Y.Z-src.zip from a mirror site.</li><li>Download the checksum apache-echarts-X.Y.Z-src.zip.asc from <a href="https://www.apache.org/dist/echarts/">Apache</a>.</li><li>Download the <a href="https://www.apache.org/dist/echarts/KEYS">ECharts KEYS</a> file.</li><li>gpg –import KEYS</li><li>gpg –verify apache-echarts-X.Y.Z-src.zip.asc</li></ol><h4>To perform a quick check using SHA-512:</h4><ol><li>Download the release apache-echarts-X.Y.Z-src.zip from a mirror site.</li><li>Download the checksum apache-echarts-X.Y.Z-src.zip.512 from <a href="https://www.apache.org/dist/echarts/">Apache</a>.</li><li>shasum -a 512 apache-echarts-X.Y.Z-src.zip</li></ol><h4>License</h4><p>Apache ECharts is licensed under <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p></div><h3>Option 2: Install from npm</h3><p><code>npm install echarts</code></p><h3>Option 3: Custom Build</h3><a href="builder.html" class="btn btn-main btn-thirdary more-btn">Customize</a><p>Choose the features you want and build the file online.</p><h3>After downloading...</h3><p><a href="./tutorial.html">Get Started</a></p></div></div><footer><div class="container"><div class="row"><div class="col-md-9"><p>Copyright © 2017-2021, The Apache Software Foundation Apache ECharts, ECharts, Apache, the Apache feather, and the Apache ECharts project logo are either registered trademarks or trademarks of the Apache Software Foundation.</p><div class="icon-panel"><a href="mailto:dev@echarts.apache.org?body=%28Thanks%20for%20using%20ECharts.%20Email%20us%20if%20you%20have%20non-technical%20problems%20using%20ECharts.%20For%20technical%20support%2C%20please%20go%20to%20https%3A//github.com/apache/echarts/issues%20.%29" class="footer-icon"><img src="https://echarts.apache.org/en/images/icon-email.png?_v_=20200710_1"></a><a href="https://twitter.com/ApacheECharts" class="footer-icon"><img src="https://echarts.apache.org/en/images/icon-twitter.png?_v_=20200710_1"></a><a href="https://weibo.com/echarts" class="footer-icon"><img src="https://echarts.apache.org/en/images/icon-weibo.png?_v_=20200710_1"></a><a href="https://github.com/apache/echarts" class="footer-icon"><img src="https://echarts.apache.org/en/images/icon-github.png?_v_=20200710_1"></a></div></div><div id="footer-icon-panel" class="col-md-3"><a href="https://www.apache.org"><img src="https://echarts.apache.org/en/images/asf_logo.svg?_v_=20200710_1" class="footer-apache-logo"></a></div></div></div></footer></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/en/js/common.js?_v_=b5b8944fb9"></script><script src="https://echarts.apache.org/en/js/download.js?_v_=9748b37d3f"></script><script type="text/javascript">document.getElementById('nav-download').className = 'active';
+</style><nav class="navbar navbar-default navbar-fixed-top"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/en/index.html" class="navbar-brand"><img src="https://echarts.apache.org/en/images/logo.png" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/en/index.html">Home</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Docs<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/feature.html">Features</a></li><li><a href="https://echarts.apache.org/en/tutorial.html">Tutorials</a></li><li><a href="https://echarts.apache.org/en/api.html">API</a></li><li><a href="https://echarts.apache.org/en/option.html">Chart Configuration</a></li><li><a href="https://echarts.apache.org/en/changelog.html">Changelog</a></li><li><a href="https://echarts.apache.org/en/faq.html">FAQ</a></li><li><a href="https://echarts.apache.org/en/tutorial.html#ECharts%205%20Upgrade%20Guide">V5 Upgrade Guide<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Download<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/download.html">Download</a></li><li><a href="https://echarts.apache.org/en/download-theme.html">Download Themes</a></li><li><a href="https://echarts.apache.org/en/download-extension.html">Download Extensions</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/en/index.html">Examples</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Resources<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/spreadsheet.html">Spread Sheet Tool</a></li><li><a href="https://echarts.apache.org/en/theme-builder.html">Theme Builder</a></li><li><a href="https://echarts.apache.org/en/cheat-sheet.html">Cheat Sheet</a></li><li><a href="https://echarts.apache.org/en/resources.html">More Resources</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/events.html">Events</a></li><li><a href="https://echarts.apache.org/en/committers.html">Committers</a></li><li><a href="https://echarts.apache.org/en/maillist.html">Mailing List</a></li><li><a href="https://echarts.apache.org/en/contributing.html">How to Contribute</a></li><li><a href="https://echarts.apache.org/en/dependencies.html">Dependencies</a></li><li><a href="https://echarts.apache.org/en/coding-standard.html">Code Standard</a></li><li><a href="https://github.com/apache/echarts" target="_blank">Source Code (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/en/security.html">Security</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">License<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">Events<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('zh')">中文</a></li></ul></div></div></nav></nav><div class="page-main"><div class="page-info"><h1>Download</h1><p>Free to choose to download different versions, different topics, the map data you need. You can be customized according to your needs.</p><p class="page-info-echarts">Apache ECharts<sup>TM</sup></p></div><div id="download-main" class="page-content container"><div class="d-section-version d-section"><h3 class="first">Option 1: Install from downloaded source code or binary</h3><table id="download-table" class="table"><tr><th>Version</th><th>Release Date</th><th>Download Source from a Mirror</th><th>Dist files on GitHub</th></tr></table><div class="checksum"><p><strong>Note:</strong> when downloading from a mirror please check the <a href="https://www.apache.org/dev/release-signing#sha-checksum">SHA-512</a> and verify the <a href="https://www.apache.org/dev/release-signing#openpgp">OpenPGP</a> compatible signature from the main <a href="https://www.apache.org">Apache site</a>. Links are provided above (next to the release download link). This <a href="https://www.apache.org/dist/echarts/KEYS">KEYS</a> file contains the public keys used for signing release. It is recommended that (when possible) a <a href="https://www.apache.org/dev/release-signing#web-of-trust">web of trust</a> is used to confirm the identity of these keys.</p><h4>To verify ECharts releases using GPG:</h4><ol><li>Download the release apache-echarts-X.Y.Z-src.zip from a mirror site.</li><li>Download the checksum apache-echarts-X.Y.Z-src.zip.asc from <a href="https://www.apache.org/dist/echarts/">Apache</a>.</li><li>Download the <a href="https://www.apache.org/dist/echarts/KEYS">ECharts KEYS</a> file.</li><li>gpg –import KEYS</li><li>gpg –verify apache-echarts-X.Y.Z-src.zip.asc</li></ol><h4>To perform a quick check using SHA-512:</h4><ol><li>Download the release apache-echarts-X.Y.Z-src.zip from a mirror site.</li><li>Download the checksum apache-echarts-X.Y.Z-src.zip.512 from <a href="https://www.apache.org/dist/echarts/">Apache</a>.</li><li>shasum -a 512 apache-echarts-X.Y.Z-src.zip</li></ol><h4>License</h4><p>Apache ECharts is licensed under <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p></div><h3>Option 2: Install from npm</h3><p><code>npm install echarts</code></p><h3>Option 3: Custom Build</h3><a href="builder.html" class="btn btn-main btn-thirdary more-btn">Customize</a><p>Choose the features you want and build the file online.</p><h3>After downloading...</h3><p><a href="./tutorial.html">Get Started</a></p></div></div><footer><div class="container"><div class="row"><div class="col-md-9"><p>Copyright © 2017-2021, The Apache Software Foundation Apache ECharts, ECharts, Apache, the Apache feather, and the Apache ECharts project logo are either registered trademarks or trademarks of the Apache Software Foundation.</p><div class="icon-panel"><a href="mailto:dev@echarts.apache.org?body=%28Thanks%20for%20using%20ECharts.%20Email%20us%20if%20you%20have%20non-technical%20problems%20using%20ECharts.%20For%20technical%20support%2C%20please%20go%20to%20https%3A//github.com/apache/echarts/issues%20.%29" class="footer-icon"><img src="https://echarts.apache.org/en/images/icon-email.png?_v_=20200710_1"></a><a href="https://twitter.com/ApacheECharts" class="footer-icon"><img src="https://echarts.apache.org/en/images/icon-twitter.png?_v_=20200710_1"></a><a href="https://weibo.com/echarts" class="footer-icon"><img src="https://echarts.apache.org/en/images/icon-weibo.png?_v_=20200710_1"></a><a href="https://github.com/apache/echarts" class="footer-icon"><img src="https://echarts.apache.org/en/images/icon-github.png?_v_=20200710_1"></a></div></div><div id="footer-icon-panel" class="col-md-3"><a href="https://www.apache.org"><img src="https://echarts.apache.org/en/images/asf_logo.svg?_v_=20200710_1" class="footer-apache-logo"></a></div></div></div></footer></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/en/js/common.js?_v_=b5b8944fb9"></script><script src="https://echarts.apache.org/en/js/download.js?_v_=49b697952f"></script><script type="text/javascript">document.getElementById('nav-download').className = 'active';
 
 //- var list = [
 //-         {
diff --git a/en/events.html b/en/events.html
index bbcbec4..6f77fec 100644
--- a/en/events.html
+++ b/en/events.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/events/2021-05-13-iscas.html b/en/events/2021-05-13-iscas.html
index 73964c3..905ff7b 100644
--- a/en/events/2021-05-13-iscas.html
+++ b/en/events/2021-05-13-iscas.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/faq.html b/en/faq.html
index c39fe47..66a2f55 100644
--- a/en/faq.html
+++ b/en/faq.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/feature.html b/en/feature.html
index 4651942..2d1230b 100644
--- a/en/feature.html
+++ b/en/feature.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -7,7 +7,7 @@
     document.head.insertBefore(el, document.getElementById('font-hack'));
 }
 </script><title>Features - Apache ECharts</title><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://echarts.apache.org/en/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
-<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>Please visit the official Apache ECharts Website at</p><a id="a2" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>Visit Official Website</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav class="navbar navbar-default navbar-fixed-top"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/en/index.html" class="navbar-brand"><img src="https://echarts.apache.org/en/images/logo.png" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/en/index.html">Home</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Docs<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/feature.html">Features</a></li><li><a href="https://echarts.apache.org/en/tutorial.html">Tutorials</a></li><li><a href="https://echarts.apache.org/en/api.html">API</a></li><li><a href="https://echarts.apache.org/en/option.html">Chart Configuration</a></li><li><a href="https://echarts.apache.org/en/changelog.html">Changelog</a></li><li><a href="https://echarts.apache.org/en/faq.html">FAQ</a></li><li><a href="https://echarts.apache.org/en/tutorial.html#ECharts%205%20Upgrade%20Guide">V5 Upgrade Guide<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Download<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/download.html">Download</a></li><li><a href="https://echarts.apache.org/en/download-theme.html">Download Themes</a></li><li><a href="https://echarts.apache.org/en/download-extension.html">Download Extensions</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/en/index.html">Examples</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Resources<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/spreadsheet.html">Spread Sheet Tool</a></li><li><a href="https://echarts.apache.org/en/theme-builder.html">Theme Builder</a></li><li><a href="https://echarts.apache.org/en/cheat-sheet.html">Cheat Sheet</a></li><li><a href="https://echarts.apache.org/en/resources.html">More Resources</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/events.html">Events</a></li><li><a href="https://echarts.apache.org/en/committers.html">Committers</a></li><li><a href="https://echarts.apache.org/en/maillist.html">Mailing List</a></li><li><a href="https://echarts.apache.org/en/contributing.html">How to Contribute</a></li><li><a href="https://echarts.apache.org/en/dependencies.html">Dependencies</a></li><li><a href="https://echarts.apache.org/en/coding-standard.html">Code Standard</a></li><li><a href="https://github.com/apache/echarts" target="_blank">Source Code (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/en/security.html">Security</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">License<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">Events<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('zh')">中文</a></li></ul></div></div></nav></nav><div class="page-main"><div class="page-info"><div class="container"><h1>Features</h1><p class="page-info-echarts">Apache ECharts<sup>TM</sup></p></div></div><div class="page-content single-page"><div class="page-nav"><h4>Features</h4><ul></ul></div><div class="page-detail"><p class="page-detail-desc">Apache ECharts<sup>TM</sup> is an open-sourced JavaScript visualization tool, which can run fluently on PC and mobile devices. It is compatible with most modern Web Browsers, e.g., IE8/9/10/11, Chrome, Firefox, Safari and so on. ECharts depends on <a href="https://github.com/ecomfe/zrender" target="_blank">ZRender</a>, a graphic rendering engine, to create intuitive, interactive, and highly-customizable charts.</p><h2 id="chart-types">Abundant Chart Types</h2><p>The basic chart types ECharts supports include <a href="option.html#series-line" target="_blank">line series</a>, <a href="option.html#series-line" target="_blank">bar series</a>, <a href="option.html#series-scatter" target="_blank">scatter series</a>, <a href="option.html#series-pie" target="_blank">pie charts</a>, <a href="option.html#series-candlestick" target="_blank">candle-stick series</a>, <a href="option.html#series-boxplot" target="_blank">boxplot series</a> for statistics, <a href="option.html#series-map" target="_blank">map series</a>, <a href="option.html#series-heatmap" target="_blank">heatmap series</a>, <a href="option.html#series-lines" target="_blank">lines series</a> for directional information, <a href="option.html#series-graph" target="_blank">graph series</a> for relationships, <a href="option.html#series-treemap" target="_blank">treemap series</a>, <a href="option.html#series-sunburst">sunburst series</a>, <a href="option.html#series-parallel" target="_blank">parallel series</a> for multi-dimensional data, <a href="option.html#series-funnel" target="_blank">funnel series</a>, <a href="option.html#series-gauge" target="_blank">gauge series</a>. And it's extremely easy to create a combinition of them with ECharts.</p><p>Besides the built-in chart types, ECharts also provide the <a href="option.html#series-custom">customed series</a> for users to create a specific chart types. To use it, you should only pass in a callback function named <em>renderItem</em>, and return any graphic elements you wish to draw to according to the data. What makes it even better is that it can interact with the existing ECharts components and you don't have to worry about the interaction with them.</p><p>If the default package size is too large for you, you can choose the chart types and components you need and download in <a href="builder.html">the online builder</a>.</p><h2 id="dataset">Multiple Data Format Ready-To-Use</h2><p>The built-in <code>dataset</code> attribute from ECharts v4.0 supports data formats including two-dimensional table, key-value object, and so on. The map from data to graphic can be easily set by the <code>encode</code> attribute. This is a more intuitive way to think when developing a chart, and it saves much time writing data-converting steps for developpers. Futhermore, it saves memory since different components can share on piece of data rather than copying.</p><p>ECharts supports TypedArray, which occupies less memory than array and is more gabbage-collection-friendly. For big data visualization, it is suggested to use TypedArray to improve performance.</p><h2 id="big-data">Data Visualization of Tens of Millions on Web</h2><p>With the help of imcremental rendering technique since v4.0 and optimization of all ascpects, ECharts can display the visualization of tens of millions of data. What's more, interactions like scaling and transforming are fluent all the same.</p><p>Tens of millions of data usually takes over hundreds of MB spaces. ECharts provide streaming data ability since v4.0 and makes it possible to render as much data as loaded from WebSocket. There is no need to wait for all data to be loaded to start rendering.</p><img src="https://echarts.apache.org/en/images/features/scatterGL.jpg?_v_=20200710_1" width="60%"><br /><img src="https://echarts.apache.org/en/images/features/scatterGL2.jpg?_v_=20200710_1" width="30%"><img src="https://echarts.apache.org/en/images/features/scatterGL3.jpg?_v_=20200710_1" width="30%"><h2 id="mobile">Mobile Optimization</h2><p>ECharts has been carefully optimized for mobile interaction, such zooming and panning the coordinate system with your fingers on small screens. The PC users can also use the mouse wheel to do the same interaction.</p><p>The fine-grained modularity and packaging mechanism allows ECharts to have a small package size on the mobile, and the optional SVG rendering engine makes the memory cost of the mobile much smaller.</p><iframe data-src="https://echarts.apache.org/examples/en/view.html?c=area-simple&amp;reset=1&amp;edit=1&amp;renderer=svg" width="60%" height="400"></iframe><h2 id="mult-platform">Multi-Rendering Solutions and Cross-Platform Support</h2><p>ECharts supports rendering charts in the form of Canvas, SVG (v4.0+), and VML. VML is compatible with lower versions of IE; SVG reduces the memory cost on mobiles; and Canvas can easily handle large data visualization and special rendering effects. Different rendering methods provide more choices, making ECharts performs better in different scenarios.</p><p>In addition to PC and mobile browsers, ECharts can also be used with node-canvas on Node for efficient server-side rendering (SSR). And ECharts support Wechat Applet rendering since v4.0.</p><p>Community contributors also provide us with a variety of different language extensions. For example, <a href="https://github.com/pyecharts/pyecharts" target="_blank">pyecharts</a> for Python, <a href="https://github.com/cosname/recharts" target="_blank">recharts</a> for R, <a href="https://github.com/randyzwitch/ECharts.jl">ECharts.jl</a> for Julia and so on.</p><p>We hope that the platform and language will not be the limit for everyone to use ECharts for visualization!</p><h2 id="interaction">Interactive Data Exploration In-Depth</h2><p>Interaction is an important means of mining information from data. Overview first, zoom filtering to view details as needed is a basic requirement for data visualization interaction.</p><p>ECharts has been on the road of <em>interaction</em>. We have provided <a href="option.html#legend" target="_blank">legend</a>, <a href="option.html#visualMap" target="_blank">visualMap</a>, <a href="option.html#dataZoom" target="_blank">dataZoom</a>, <a href="option.html#tooltip" target="_blank">tooltip</a>, <a href="option.html#brush">brushing</a> and other ready-to-use interactive components, which can perform interactive operations such as multi-dimensional data screening, view zooming, and display details on the data.</p><iframe data-src="https://echarts.apache.org/examples/en/view.html?c=scatter-matrix&amp;reset=1&amp;edit=1" width="60%" height="540"></iframe><h2 id="visual-mapping">Multi-Dimensional Data Support and Rich Visual Coding</h2><p>ECharts 3 began to strengthen support for multi-dimensional data. In addition to the common multi-dimensional data visualization tools such as parallel coordinates, for traditional scatter plots, etc., the input data can also be multiple dimensions. With the rich visual coding provided by the visual mapping component <a href="option.html#visualMap" target="_blank">visualMap</a>, it is possible to map data of different dimensions to color, size, transparency, shading, etc. Different visual channels.</p><iframe data-src="https://echarts.apache.org/examples/en/view.html?c=scatter-nutrients-matrix&amp;reset=1&amp;edit=1" width="60%" height="400"></iframe><h2 id="dynamic-data">Dynamic Data</h2><p>ECharts is driven by data, and changes in data drive changes in the chart. So the implementation of dynamic data has become extremely simple, just need to get the data, fill in the data, ECharts will find the difference between the two sets of data and then use the appropriate animation to represent the data changes. The <a href="option.html#timeline" target="_blank">timeline</a> component can present data information in a higher time dimension.</p><iframe data-src="https://echarts.apache.org/examples/en/view.html?c=scatter-life-expectancy-timeline&amp;reset=1&amp;edit=1" width="60%" height="400"></iframe><h2 id="fancy-effects">Special Effects</h2><p>ECharts provides eye-catching effects for the visualization of geographic data such as line data and point data.</p><iframe data-src="https://echarts.apache.org/examples/en/view.html?c=lines-bmap-effect&amp;reset=1&amp;edit=1" width="60%" height="400"></iframe><h2 id="gl">More Powerful and Beautiful 3D Visualization with GL</h2><p>Do you want to achieve 3D visualization in VR, large screen scenes? We provide WebGL-based ECharts GL. You can use ECharts GL to draw 3D Earth, buildings, and population distribution histograms as easily as ECharts common components. Furthermore, we also provide configuration items so that you can get artistic results with a few lines of configuration!</p><img src="https://echarts.apache.org/en/images/features/flowGL-line.jpg?_v_=20200710_1" width="40%"><img src="https://echarts.apache.org/en/images/features/buildings-ny.jpg?_v_=20200710_1" width="40%"><br /><img src="https://echarts.apache.org/en/images/features/capetown-taxi.jpg?_v_=20200710_1" width="40%"><img src="https://echarts.apache.org/en/images/features/population.jpg?_v_=20200710_1" width="40%"><h2 id="aria">Accessibility</h2><p>When we talk about visualization, we tend to naturally associate it with seeing, but it is one-sided. The W3C has developed the Accessible Rich Internet Applications Suite (WAI-ARIA), which aims to make web content and web applications accessible to more people with disabilities.</p><p>ECharts 4.0 complies with this specification and supports automatic generation of descriptions based on chart configuration items, enabling people with visual disabilities to understand the chart content with the help of reading devices, so that charts can be accessed by more people!</p><footer class="inner-footer"><div class="container"><div class="row"><div class="col-md-8"><p>Copyright © 2017-2021, The Apache Software Foundation Apache ECharts, ECharts, Apache, the Apache feather, and the Apache ECharts project logo are either registered trademarks or trademarks of the Apache Software Foundation.</p></div><div id="footer-icon-panel" class="col-md-4"><a href="https://www.apache.org"><img src="https://echarts.apache.org/en/images/asf_logo.svg?_v_=20200710_1" class="footer-apache-logo"></a></div></div></div></footer></div></div></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/en/js/common.js?_v_=b5b8944fb9"></script><script>window.lazyLoadOptions = {
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>Please visit the official Apache ECharts Website at</p><a id="a2" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>Visit Official Website</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav class="navbar navbar-default navbar-fixed-top"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/en/index.html" class="navbar-brand"><img src="https://echarts.apache.org/en/images/logo.png" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/en/index.html">Home</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Docs<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/feature.html">Features</a></li><li><a href="https://echarts.apache.org/en/tutorial.html">Tutorials</a></li><li><a href="https://echarts.apache.org/en/api.html">API</a></li><li><a href="https://echarts.apache.org/en/option.html">Chart Configuration</a></li><li><a href="https://echarts.apache.org/en/changelog.html">Changelog</a></li><li><a href="https://echarts.apache.org/en/faq.html">FAQ</a></li><li><a href="https://echarts.apache.org/en/tutorial.html#ECharts%205%20Upgrade%20Guide">V5 Upgrade Guide<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Download<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/download.html">Download</a></li><li><a href="https://echarts.apache.org/en/download-theme.html">Download Themes</a></li><li><a href="https://echarts.apache.org/en/download-extension.html">Download Extensions</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/en/index.html">Examples</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Resources<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/spreadsheet.html">Spread Sheet Tool</a></li><li><a href="https://echarts.apache.org/en/theme-builder.html">Theme Builder</a></li><li><a href="https://echarts.apache.org/en/cheat-sheet.html">Cheat Sheet</a></li><li><a href="https://echarts.apache.org/en/resources.html">More Resources</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/events.html">Events</a></li><li><a href="https://echarts.apache.org/en/committers.html">Committers</a></li><li><a href="https://echarts.apache.org/en/maillist.html">Mailing List</a></li><li><a href="https://echarts.apache.org/en/contributing.html">How to Contribute</a></li><li><a href="https://echarts.apache.org/en/dependencies.html">Dependencies</a></li><li><a href="https://echarts.apache.org/en/coding-standard.html">Code Standard</a></li><li><a href="https://github.com/apache/echarts" target="_blank">Source Code (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/en/security.html">Security</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">License<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">Events<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('zh')">中文</a></li></ul></div></div></nav></nav><div class="page-main"><div class="page-info"><div class="container"><h1>Features</h1><p class="page-info-echarts">Apache ECharts<sup>TM</sup></p></div></div><div class="page-content single-page"><div class="page-nav"><h4>Features</h4><ul></ul></div><div class="page-detail"><p class="page-detail-desc">Apache ECharts<sup>TM</sup> is an open-sourced JavaScript visualization tool, which can run fluently on PC and mobile devices. It is compatible with most modern Web Browsers, e.g., IE8/9/10/11, Chrome, Firefox, Safari and so on. ECharts depends on <a href="https://github.com/ecomfe/zrender" target="_blank">ZRender</a>, a graphic rendering engine, to create intuitive, interactive, and highly-customizable charts.</p><h2 id="chart-types">Abundant Chart Types</h2><p>The basic chart types ECharts supports include <a href="option.html#series-line" target="_blank">line series</a>, <a href="option.html#series-line" target="_blank">bar series</a>, <a href="option.html#series-scatter" target="_blank">scatter series</a>, <a href="option.html#series-pie" target="_blank">pie charts</a>, <a href="option.html#series-candlestick" target="_blank">candle-stick series</a>, <a href="option.html#series-boxplot" target="_blank">boxplot series</a> for statistics, <a href="option.html#series-map" target="_blank">map series</a>, <a href="option.html#series-heatmap" target="_blank">heatmap series</a>, <a href="option.html#series-lines" target="_blank">lines series</a> for directional information, <a href="option.html#series-graph" target="_blank">graph series</a> for relationships, <a href="option.html#series-treemap" target="_blank">treemap series</a>, <a href="option.html#series-sunburst">sunburst series</a>, <a href="option.html#series-parallel" target="_blank">parallel series</a> for multi-dimensional data, <a href="option.html#series-funnel" target="_blank">funnel series</a>, <a href="option.html#series-gauge" target="_blank">gauge series</a>. And it's extremely easy to create a combinition of them with ECharts.</p><p>Besides the built-in chart types, ECharts also provide the <a href="option.html#series-custom">customed series</a> for users to create a specific chart types. To use it, you should only pass in a callback function named <em>renderItem</em>, and return any graphic elements you wish to draw to according to the data. What makes it even better is that it can interact with the existing ECharts components and you don't have to worry about the interaction with them.</p><p>If the default package size is too large for you, you can choose the chart types and components you need and download in <a href="builder.html">the online builder</a>.</p><h2 id="dataset">Multiple Data Format Ready-To-Use</h2><p>The built-in <code>dataset</code> attribute from ECharts v4.0 supports data formats including two-dimensional table, key-value object, and so on. The map from data to graphic can be easily set by the <code>encode</code> attribute. This is a more intuitive way to think when developing a chart, and it saves much time writing data-converting steps for developers. Futhermore, it saves memory since different components can share on piece of data rather than copying.</p><p>ECharts supports TypedArray, which occupies less memory than array and is more garbage-collection-friendly. For big data visualization, it is suggested to use TypedArray to improve performance.</p><h2 id="big-data">Data Visualization of Tens of Millions on Web</h2><p>With the help of incremental rendering technique since v4.0 and optimization of all aspects, ECharts can display the visualization of tens of millions of data. What's more, interactions like scaling and transforming are fluent all the same.</p><p>Tens of millions of data usually takes over hundreds of MB in memory. ECharts provide streaming data ability since v4.0 and makes it possible to render as much data as loaded from WebSocket. There is no need to wait for all data to be loaded to start rendering.</p><img src="https://echarts.apache.org/en/images/features/scatterGL.jpg?_v_=20200710_1" width="60%"><br /><img src="https://echarts.apache.org/en/images/features/scatterGL2.jpg?_v_=20200710_1" width="30%"><img src="https://echarts.apache.org/en/images/features/scatterGL3.jpg?_v_=20200710_1" width="30%"><h2 id="mobile">Mobile Optimization</h2><p>ECharts has been carefully optimized for mobile interaction, such zooming and panning the coordinate system with your fingers on small screens. The PC users can also use the mouse wheel to do the same interaction.</p><p>The fine-grained modularity and packaging mechanism allows ECharts to have a small package size on mobile, and the optional SVG rendering engine makes the memory cost of mobile much smaller.</p><iframe data-src="https://echarts.apache.org/examples/en/view.html?c=area-simple&amp;reset=1&amp;edit=1&amp;renderer=svg" width="60%" height="400"></iframe><h2 id="mult-platform">Multi-Rendering Solutions and Cross-Platform Support</h2><p>ECharts supports rendering charts in the form of Canvas, SVG (v4.0+), and VML. VML is compatible with lower versions of IE; SVG reduces the memory cost on mobiles; and Canvas can easily handle large data visualization and special rendering effects. Different rendering methods provide more choices, making ECharts perform better in different scenarios.</p><p>In addition to PC and mobile browsers, ECharts can also be used with node-canvas on Node for efficient server-side rendering (SSR). And ECharts support Wechat Applet rendering since v4.0.</p><p>Community contributors also provide us with a variety of different language extensions. For example, <a href="https://github.com/pyecharts/pyecharts" target="_blank">pyecharts</a> for Python, <a href="https://github.com/cosname/recharts" target="_blank">recharts</a> for R, <a href="https://github.com/randyzwitch/ECharts.jl">ECharts.jl</a> for Julia and so on.</p><p>We hope that the platform and language will not be the limit for everyone to use ECharts for visualization!</p><h2 id="interaction">Interactive Data Exploration In-Depth</h2><p>Interaction is an important means of mining information from data. Overview first, zoom filtering to view details as needed is a basic requirement for data visualization interaction.</p><p>ECharts has been on the road of <em>interaction</em>. We have provided <a href="option.html#legend" target="_blank">legend</a>, <a href="option.html#visualMap" target="_blank">visualMap</a>, <a href="option.html#dataZoom" target="_blank">dataZoom</a>, <a href="option.html#tooltip" target="_blank">tooltip</a>, <a href="option.html#brush">brushing</a> and other ready-to-use interactive components, which can perform interactive operations such as multi-dimensional data screening, view zooming, and display details on the data.</p><iframe data-src="https://echarts.apache.org/examples/en/view.html?c=scatter-matrix&amp;reset=1&amp;edit=1" width="60%" height="540"></iframe><h2 id="visual-mapping">Multi-Dimensional Data Support and Rich Visual Coding</h2><p>ECharts 3 began to strengthen support for multi-dimensional data. In addition to the common multi-dimensional data visualization tools such as parallel coordinates, for traditional scatter plots, etc., the input data can also be multiple dimensions. With the rich visual coding provided by the visual mapping component <a href="option.html#visualMap" target="_blank">visualMap</a>, it is possible to map data of different dimensions to color, size, transparency, shading, etc. Different visual channels.</p><iframe data-src="https://echarts.apache.org/examples/en/view.html?c=scatter-nutrients-matrix&amp;reset=1&amp;edit=1" width="60%" height="400"></iframe><h2 id="dynamic-data">Dynamic Data</h2><p>ECharts is driven by data, and changes in data drive changes in the chart. So the implementation of dynamic data has become extremely simple, just need to get the data, fill in the data, ECharts will find the difference between the two sets of data and then use the appropriate animation to represent the data changes. The <a href="option.html#timeline" target="_blank">timeline</a> component can present data information in a higher time dimension.</p><iframe data-src="https://echarts.apache.org/examples/en/view.html?c=scatter-life-expectancy-timeline&amp;reset=1&amp;edit=1" width="60%" height="400"></iframe><h2 id="fancy-effects">Special Effects</h2><p>ECharts provides eye-catching effects for the visualization of geographic data such as line data and point data.</p><iframe data-src="https://echarts.apache.org/examples/en/view.html?c=lines-bmap-effect&amp;reset=1&amp;edit=1" width="60%" height="400"></iframe><h2 id="gl">More Powerful and Beautiful 3D Visualization with GL</h2><p>Do you want to achieve 3D visualization in VR, large screen scenes? We provide WebGL-based ECharts GL. You can use ECharts GL to draw 3D Earth, buildings, and population distribution histograms as easily as ECharts common components. Furthermore, we also provide configuration items so that you can get artistic results with a few lines of configuration!</p><img src="https://echarts.apache.org/en/images/features/flowGL-line.jpg?_v_=20200710_1" width="40%"><img src="https://echarts.apache.org/en/images/features/buildings-ny.jpg?_v_=20200710_1" width="40%"><br /><img src="https://echarts.apache.org/en/images/features/capetown-taxi.jpg?_v_=20200710_1" width="40%"><img src="https://echarts.apache.org/en/images/features/population.jpg?_v_=20200710_1" width="40%"><h2 id="aria">Accessibility</h2><p>When we talk about visualization, we tend to naturally associate it with seeing, but it is one-sided. The W3C has developed the Accessible Rich Internet Applications Suite (WAI-ARIA), which aims to make web content and web applications accessible to more people with disabilities.</p><p>ECharts 4.0 complies with this specification and supports automatic generation of descriptions based on chart configuration items, enabling people with visual disabilities to understand the chart content with the help of reading devices, so that charts can be accessed by more people!</p><footer class="inner-footer"><div class="container"><div class="row"><div class="col-md-8"><p>Copyright © 2017-2021, The Apache Software Foundation Apache ECharts, ECharts, Apache, the Apache feather, and the Apache ECharts project logo are either registered trademarks or trademarks of the Apache Software Foundation.</p></div><div id="footer-icon-panel" class="col-md-4"><a href="https://www.apache.org"><img src="https://echarts.apache.org/en/images/asf_logo.svg?_v_=20200710_1" class="footer-apache-logo"></a></div></div></div></footer></div></div></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/en/js/common.js?_v_=b5b8944fb9"></script><script>window.lazyLoadOptions = {
     elements_selector: 'iframe'
 };</script><script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload@12.0.0/dist/lazyload.min.js"></script><script type="text/javascript">document.getElementById('nav-doc').className = 'active';</script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
diff --git a/en/index.html b/en/index.html
index 10d3335..7682e0c 100644
--- a/en/index.html
+++ b/en/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -9,7 +9,7 @@
 </script><title>Apache ECharts</title><script src="https://cdn.jsdelivr.net/npm/scrollreveal@4.0.7/dist/scrollreveal.min.js"></script><script src="https://cdn.jsdelivr.net/npm/lottie-web@5.7.6/build/player/lottie.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://echarts.apache.org/en/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
 <!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>Please visit the official Apache ECharts Website at</p><a id="a2" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>Visit Official Website</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/en/index.html" class="navbar-brand"><img src="https://echarts.apache.org/en/images/logo.png" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/en/index.html">Home</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Docs<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/feature.html">Features</a></li><li><a href="https://echarts.apache.org/en/tutorial.html">Tutorials</a></li><li><a href="https://echarts.apache.org/en/api.html">API</a></li><li><a href="https://echarts.apache.org/en/option.html">Chart Configuration</a></li><li><a href="https://echarts.apache.org/en/changelog.html">Changelog</a></li><li><a href="https://echarts.apache.org/en/faq.html">FAQ</a></li><li><a href="https://echarts.apache.org/en/tutorial.html#ECharts%205%20Upgrade%20Guide">V5 Upgrade Guide<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Download<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/download.html">Download</a></li><li><a href="https://echarts.apache.org/en/download-theme.html">Download Themes</a></li><li><a href="https://echarts.apache.org/en/download-extension.html">Download Extensions</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/en/index.html">Examples</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Resources<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/spreadsheet.html">Spread Sheet Tool</a></li><li><a href="https://echarts.apache.org/en/theme-builder.html">Theme Builder</a></li><li><a href="https://echarts.apache.org/en/cheat-sheet.html">Cheat Sheet</a></li><li><a href="https://echarts.apache.org/en/resources.html">More Resources</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/events.html">Events</a></li><li><a href="https://echarts.apache.org/en/committers.html">Committers</a></li><li><a href="https://echarts.apache.org/en/maillist.html">Mailing List</a></li><li><a href="https://echarts.apache.org/en/contributing.html">How to Contribute</a></li><li><a href="https://echarts.apache.org/en/dependencies.html">Dependencies</a></li><li><a href="https://echarts.apache.org/en/coding-standard.html">Code Standard</a></li><li><a href="https://github.com/apache/echarts" target="_blank">Source Code (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/en/security.html">Security</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">License<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">Events<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('zh')">中文</a></li></ul></div></div></nav></nav><div id="page-index" class="page-main"><div id="main-content"><section id="home-section"><div class="home-brand-panel description container"><div class="home-info"><div class="home-brand">Apache ECharts</div><div class="home-subtitle">An Open Source JavaScript Visualization Library</div><div class="home-btn-panel"><a href="https://echarts.apache.org/en/tutorial.html#Get%20Started%20with%20ECharts%20in%205%20minutes" class="btn btn-main btn-index-home"><svg width="22px" height="19px" viewBox="0 0 17 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="index-home-svg"><path fill="#fff" d="M10.9,16.2 C10.9,16.8 10.5,17.2 9.9,17.2 L5.3,17.2 C4.7,17.2 4.3,16.8 4.3,16.2 C4.3,15.6 4.7,15.2 5.3,15.2 L9.9,15.2 C10.5,15.2 10.9,15.7 10.9,16.2 Z M13.6,7.5 L5.3,7.5 C4.7,7.5 4.3,7.9 4.3,8.5 C4.3,9.1 4.7,9.5 5.3,9.5 L13.6,9.5 C14.2,9.5 14.6,9.1 14.6,8.5 C14.6,7.9 14.2,7.5 13.6,7.5 Z M17.9,6 L17.9,19 C17.9,20.7 16.6,22 14.9,22 L3.9,22 C2.2,22 0.9,20.7 0.9,19 L0.9,7.5 L0.9,6 L0.9,5 L0.9,4 L0.9,2 C0.9,0.9 1.8,0 2.9,0 L12.9,0 C14,0 14.9,0.9 14.9,2 L14.9,3 C16.6,3 17.9,4.3 17.9,6 Z M2.9,3 L3.9,3 L12.9,3 L12.9,2 L2.9,2 L2.9,3 Z M15.9,6 C15.9,5.4 15.5,5 14.9,5 L3.9,5 C3.3,5 2.9,5.4 2.9,6 L2.9,19 C2.9,19.6 3.3,20 3.9,20 L14.9,20 C15.5,20 15.9,19.6 15.9,19 L15.9,6 Z M13.6,11.5 L5.3,11.5 C4.7,11.5 4.3,11.9 4.3,12.5 C4.3,13.1 4.7,13.5 5.3,13.5 L13.6,13.5 C14.2,13.5 14.6,13.1 14.6,12.5 C14.6,11.9 14.2,11.5 13.6,11.5 Z"></path></svg><span>Get Started</span></a><a href="https://echarts.apache.org/examples/en/index.html" class="btn btn-main btn-index-home"><svg width="25px" height="19px" viewBox="0 0 17 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="index-home-svg"><path fill="#F72C5B" d="M21,0 L6,0 C4.9,0 4,0.9 4,2 L4,4 L2,4 C0.9,4 0,4.9 0,6 L0,18 C0,19.1 0.9,20 2,20 L17,20 C18.1,20 19,19.1 19,18 L19,16 L21,16 C22.1,16 23,15.1 23,14 L23,2 C23,0.9 22.1,0 21,0 Z M17,18 L2,18 L2,6 L17,6 L17,18 Z M21,14 L19,14 L19,6 C19,4.9 18.1,4 17,4 L6,4 L6,2 L21,2 L21,14 Z M4,15 L4,12 C4,11.4 4.4,11 5,11 C5.6,11 6,11.4 6,12 L6,15 C6,15.6 5.6,16 5,16 C4.4,16 4,15.6 4,15 Z M13,15 L13,12 C13,11.4 13.4,11 14,11 C14.6,11 15,11.4 15,12 L15,15 C15,15.6 14.6,16 14,16 C13.4,16 13,15.6 13,15 Z M7,15 L7,9 C7,8.4 7.4,8 8,8 C8.6,8 9,8.4 9,9 L9,15 C9,15.6 8.6,16 8,16 C7.4,16 7,15.6 7,15 Z M10,15 L10,11 C10,10.4 10.4,10 11,10 C11.6,10 12,10.4 12,11 L12,15 C12,15.6 11.6,16 11,16 C10.4,16 10,15.6 10,15 Z"></path></svg><span>Demo</span></a><a href="https://github.com/apache/echarts" target="_blank" class="btn btn-main btn-index-home btn-index-github"><svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-262.000000, -2480.000000)" fill="#081642"><g transform="translate(252.000000, 2470.000000)"><path d="M29.9006449,27.904446 C28.5016932,29.8668872 26.6944882,31.2248797 24.4790301,31.9784237 C24.2211218,32.0272886 24.0325745,31.9931534 23.9133882,31.876018 C23.7942019,31.7588827 23.7346171,31.6119968 23.7346338,31.4353603 L23.7346338,28.3376019 C23.7346338,27.3880159 23.4865017,26.6930482 22.9902375,26.2526987 C23.5347812,26.1938141 24.024319,26.1058042 24.458851,25.9886688 C24.893383,25.8715335 25.3422785,25.680801 25.8055376,25.4164714 C26.2687966,25.1521418 26.6556591,24.8267354 26.9661251,24.4402521 C27.276591,24.0537688 27.5296112,23.5398222 27.7251857,22.8984123 C27.9207602,22.2570024 28.0185475,21.5203805 28.0185475,20.6885464 C28.0185475,19.504056 27.6414612,18.4959023 26.8872886,17.6640854 C27.240536,16.7733669 27.2023419,15.7752328 26.7727063,14.6696833 C26.5050218,14.5813565 26.1181593,14.6352226 25.6121189,14.8312818 C25.1060784,15.0273409 24.6669591,15.2428141 24.2947609,15.4777015 L23.7502256,15.8300324 C22.8622108,15.5757225 21.9454689,15.4485675 21,15.4485675 C20.0545311,15.4485675 19.1377892,15.5757225 18.2497744,15.8300324 C18.0969813,15.7223001 17.8940788,15.5901353 17.641067,15.433538 C17.3880551,15.2769408 16.9892689,15.0884007 16.4447085,14.8679176 C15.9001481,14.6474346 15.4894467,14.5813479 15.2126043,14.6696576 C14.7921266,15.7758408 14.7588206,16.7739749 15.1126863,17.6640597 C14.3585137,18.4958938 13.9814275,19.5040475 13.9814275,20.6885208 C13.9814275,21.5203548 14.0792147,22.2544676 14.2747892,22.8908591 C14.4703637,23.5272505 14.720944,24.0411971 15.0265302,24.4326988 C15.3321164,24.8242005 15.7165391,25.1521076 16.1797981,25.41642 C16.6430571,25.6807325 17.0919527,25.871465 17.5264847,25.9886174 C17.9610167,26.1057699 18.4505545,26.1937799 18.9950982,26.2526473 C18.6131238,26.60467 18.3790461,27.1085884 18.292865,27.7644025 C18.0924107,27.8621152 17.8775846,27.935404 17.6483866,27.984269 C17.4191886,28.0331339 17.1469167,28.0575663 16.831571,28.0575663 C16.5162253,28.0575663 16.203612,27.9523346 15.8937309,27.7418712 C15.5838499,27.5314078 15.3189144,27.225424 15.0989244,26.8239198 C14.9174043,26.5107253 14.6857747,26.2564154 14.4040358,26.0609899 C14.1222969,25.8655645 13.8860801,25.7481209 13.6953854,25.708659 L13.4084408,25.6644956 C13.2079866,25.6644956 13.069557,25.6864188 12.9931521,25.7302654 C12.9167472,25.7741119 12.8929083,25.8304873 12.9216353,25.8993914 C12.9503623,25.9682956 12.9934529,26.0368829 13.050907,26.1051533 C13.1083611,26.1734238 13.1703941,26.2319915 13.2370061,26.2808564 L13.336924,26.3541538 C13.5471712,26.4518665 13.7549701,26.6378974 13.9603209,26.9122466 C14.1656716,27.1865958 14.3160164,27.4362043 14.4113555,27.661072 L14.554364,27.9983735 C14.67843,28.3704354 14.8886689,28.6714094 15.1850804,28.9012955 C15.481492,29.1311815 15.8014334,29.2780674 16.1449045,29.3419532 C16.4883756,29.405839 16.8202406,29.4399742 17.1404995,29.4443589 C17.4607584,29.4487435 17.7256939,29.4315218 17.935306,29.3926936 L18.2644137,29.3335008 C18.2644137,29.7055627 18.2668619,30.1412107 18.2717584,30.6404447 C18.2766548,31.1396787 18.279103,31.4040083 18.279103,31.4334334 C18.279103,31.6094533 18.21707,31.7563392 18.093004,31.8740912 C17.9689379,31.9918431 17.7779507,32.0259784 17.5200424,31.9764969 C15.3045843,31.22297 13.4973793,29.8649774 12.0984276,27.9025191 C10.6994759,25.9400608 10,23.7305118 10,21.2738721 C10,19.2281225 10.4916769,17.3417791 11.4750308,15.6148418 C12.4583846,13.8879045 13.7928551,12.5202092 15.4784422,11.5117558 C17.1640293,10.5033024 19.0045486,9.99938397 21,10.0000006 C22.9954514,10.0006172 24.8359707,10.5045356 26.5215578,11.5117558 C28.2071449,12.518976 29.5416154,13.8866713 30.5249692,15.6148418 C31.5083231,17.3430123 32,19.2293557 32,21.2738721 C31.9990725,23.7324558 31.2995966,25.9420048 29.9006449,27.904446 Z"></path></g></g></g></svg></a></div></div><div class="home-chart"><img src="images/index-home-pie.png"></div></div></section><section id="events-section"><div class="container"><a href="./events/2021-05-13-iscas.html" class="event"><picture><source data-srcset="https://echarts.apache.org/en/images/event/20210513-iscas-en.webp?_v_=20200710_1" type="image/webp" class="lazy"><source data-srcset="https://echarts.apache.org/en/images/event/20210513-iscas-en.jpeg?_v_=20200710_1" type="image/jpeg" class="lazy"><img data-src="https://echarts.apache.org/en/images/event/20210513-iscas-en.jpeg?_v_=20200710_1" alt="Summer 2021 of Open Source Promotion Plan" class="lazy"></picture></a></div></section><section id="feature-section"><div class="container"><div class="index-features"><h2 class="reveal">Features</h2><hr class="reveal"><a href="https://echarts.apache.org/en/feature.html" class="more reveal">View More</a></div><div class="row"><div class="col-md-6"><div id="index-feature-1" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-1" class="index-feature-icon-bg"></div><div id="icon-1" class="index-feature-icon"></div></div><div class="index-feature-right reveal"><h3 class="reveal">Flexible Chart Types</h3><p class="reveal-later">Apache ECharts provides more than 20 chart types available out of the box, along with a dozen components, and each of them can be arbitrarily combined to use.</p></div></div></div><div class="col-md-6"><div id="index-feature-2" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-2" class="index-feature-icon-bg"></div><div id="icon-2" class="index-feature-icon"></div></div><div class="index-feature-right"><h3 class="reveal">Powerful Rendering Engine</h3><p class="reveal-later">Easily switch between Canvas and SVG rendering. Progressive rendering and stream loading make it possible to render 10 million data in realtime.</p></div></div></div><div class="col-md-6"><div id="index-feature-3" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-3" class="index-feature-icon-bg"></div><div id="icon-3" class="index-feature-icon"></div></div><div class="index-feature-right"><h3 class="reveal">Professional Data Analysis</h3><p class="reveal-later">Manage data through datasets, which support data transforms like filtering, clustering, and regression to help analyze multi-dimensional analysis of the same data.</p></div></div></div><div class="col-md-6"><div id="index-feature-4" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-4" class="index-feature-icon-bg"></div><div id="icon-4" class="index-feature-icon"></div></div><div class="index-feature-right"><h3 class="reveal">Elegant Visual Design</h3><p class="reveal-later">The default design follows visualization principles, supports responsive design. Flexible configurations make it easy to customize.</p></div></div></div><div class="col-md-6"><div id="index-feature-5" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-5" class="index-feature-icon-bg"></div><div id="icon-5" class="index-feature-icon"></div></div><div class="index-feature-right"><h3 class="reveal">A Healthy Community</h3><p class="reveal-later">The active open source community ensures the healthy development of the project and contributes a wealth of third-party extensions.</p></div></div></div><div class="col-md-6"><div id="index-feature-6" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-6" class="index-feature-icon-bg"></div><div id="icon-6" class="index-feature-icon"></div></div><div class="index-feature-right"><h3 class="reveal">Accessibility-Friendly</h3><p class="reveal-later">Automatically generated chart descriptions and decal patterns help users with disabilities understand the content and the stories behind the charts.</p></div></div></div></div></div></section><section id="publication"><div class="container"><div id="start-line"></div><div class="paper"><div class="content"><h2 class="reveal-latest">ECharts: A Declarative Framework for Rapid Construction of Web-based Visualization</h2><p class="note reveal-latest">You are welcomed to cite the following paper whenever you use ECharts in your R&D projects, products, research papers, technical reports, news reports, books, presentations, teaching, patents, and other related intelligence activities.</p><div class="single-btn-panel reveal-latest"><a href="http://www.cad.zju.edu.cn/home/vagblog/VAG_Work/echarts.pdf" class="pdf reveal-later">Visual Informatics, 2018 [PDF]</a></div></div><div class="icon"><div id="paper-icon"></div></div></div><div id="end-line"></div></div></section><section id="about-section" class="normal reveal-about"><div class="container"><h3>Follow</h3><hr><p>Follow us to get more updates in time.</p><div class="btn-panel row"><div class="col-lg-3 col-sm-6"><a id="btn-github" href="https://github.com/apache/echarts"><div class="btn-content"><div class="btn-logo"><svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-262.000000, -2480.000000)" fill="#081642"><g transform="translate(252.000000, 2470.000000)"><path d="M29.9006449,27.904446 C28.5016932,29.8668872 26.6944882,31.2248797 24.4790301,31.9784237 C24.2211218,32.0272886 24.0325745,31.9931534 23.9133882,31.876018 C23.7942019,31.7588827 23.7346171,31.6119968 23.7346338,31.4353603 L23.7346338,28.3376019 C23.7346338,27.3880159 23.4865017,26.6930482 22.9902375,26.2526987 C23.5347812,26.1938141 24.024319,26.1058042 24.458851,25.9886688 C24.893383,25.8715335 25.3422785,25.680801 25.8055376,25.4164714 C26.2687966,25.1521418 26.6556591,24.8267354 26.9661251,24.4402521 C27.276591,24.0537688 27.5296112,23.5398222 27.7251857,22.8984123 C27.9207602,22.2570024 28.0185475,21.5203805 28.0185475,20.6885464 C28.0185475,19.504056 27.6414612,18.4959023 26.8872886,17.6640854 C27.240536,16.7733669 27.2023419,15.7752328 26.7727063,14.6696833 C26.5050218,14.5813565 26.1181593,14.6352226 25.6121189,14.8312818 C25.1060784,15.0273409 24.6669591,15.2428141 24.2947609,15.4777015 L23.7502256,15.8300324 C22.8622108,15.5757225 21.9454689,15.4485675 21,15.4485675 C20.0545311,15.4485675 19.1377892,15.5757225 18.2497744,15.8300324 C18.0969813,15.7223001 17.8940788,15.5901353 17.641067,15.433538 C17.3880551,15.2769408 16.9892689,15.0884007 16.4447085,14.8679176 C15.9001481,14.6474346 15.4894467,14.5813479 15.2126043,14.6696576 C14.7921266,15.7758408 14.7588206,16.7739749 15.1126863,17.6640597 C14.3585137,18.4958938 13.9814275,19.5040475 13.9814275,20.6885208 C13.9814275,21.5203548 14.0792147,22.2544676 14.2747892,22.8908591 C14.4703637,23.5272505 14.720944,24.0411971 15.0265302,24.4326988 C15.3321164,24.8242005 15.7165391,25.1521076 16.1797981,25.41642 C16.6430571,25.6807325 17.0919527,25.871465 17.5264847,25.9886174 C17.9610167,26.1057699 18.4505545,26.1937799 18.9950982,26.2526473 C18.6131238,26.60467 18.3790461,27.1085884 18.292865,27.7644025 C18.0924107,27.8621152 17.8775846,27.935404 17.6483866,27.984269 C17.4191886,28.0331339 17.1469167,28.0575663 16.831571,28.0575663 C16.5162253,28.0575663 16.203612,27.9523346 15.8937309,27.7418712 C15.5838499,27.5314078 15.3189144,27.225424 15.0989244,26.8239198 C14.9174043,26.5107253 14.6857747,26.2564154 14.4040358,26.0609899 C14.1222969,25.8655645 13.8860801,25.7481209 13.6953854,25.708659 L13.4084408,25.6644956 C13.2079866,25.6644956 13.069557,25.6864188 12.9931521,25.7302654 C12.9167472,25.7741119 12.8929083,25.8304873 12.9216353,25.8993914 C12.9503623,25.9682956 12.9934529,26.0368829 13.050907,26.1051533 C13.1083611,26.1734238 13.1703941,26.2319915 13.2370061,26.2808564 L13.336924,26.3541538 C13.5471712,26.4518665 13.7549701,26.6378974 13.9603209,26.9122466 C14.1656716,27.1865958 14.3160164,27.4362043 14.4113555,27.661072 L14.554364,27.9983735 C14.67843,28.3704354 14.8886689,28.6714094 15.1850804,28.9012955 C15.481492,29.1311815 15.8014334,29.2780674 16.1449045,29.3419532 C16.4883756,29.405839 16.8202406,29.4399742 17.1404995,29.4443589 C17.4607584,29.4487435 17.7256939,29.4315218 17.935306,29.3926936 L18.2644137,29.3335008 C18.2644137,29.7055627 18.2668619,30.1412107 18.2717584,30.6404447 C18.2766548,31.1396787 18.279103,31.4040083 18.279103,31.4334334 C18.279103,31.6094533 18.21707,31.7563392 18.093004,31.8740912 C17.9689379,31.9918431 17.7779507,32.0259784 17.5200424,31.9764969 C15.3045843,31.22297 13.4973793,29.8649774 12.0984276,27.9025191 C10.6994759,25.9400608 10,23.7305118 10,21.2738721 C10,19.2281225 10.4916769,17.3417791 11.4750308,15.6148418 C12.4583846,13.8879045 13.7928551,12.5202092 15.4784422,11.5117558 C17.1640293,10.5033024 19.0045486,9.99938397 21,10.0000006 C22.9954514,10.0006172 24.8359707,10.5045356 26.5215578,11.5117558 C28.2071449,12.518976 29.5416154,13.8866713 30.5249692,15.6148418 C31.5083231,17.3430123 32,19.2293557 32,21.2738721 C31.9990725,23.7324558 31.2995966,25.9420048 29.9006449,27.904446 Z"></path></g></g></g></svg><span>GitHub</span></div><div class="icon-v-right"></div></div></a></div><div class="col-lg-3 col-sm-6"><a id="btn-weixin"><div class="btn-content zh"><div class="btn-logo"><svg width="25px" height="21px" viewBox="0 0 25 21" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-512.000000, -2480.000000)" fill="rgba(93, 201, 116)"><g transform="translate(512.000000, 2480.000000)"><path d="M17.6290595,6.47976119 C17.7534123,6.47976119 17.8770026,6.48260946 18,6.4873469 C17.2166965,2.79549199 13.5198007,0 9.07678865,0 C4.06379837,0 0,3.55853831 0,7.94816178 C0,10.5128275 1.38756065,12.7933344 3.54074891,14.2466508 L2.63388325,17 L5.63681512,15.3050455 C6.69779456,15.6858421 7.85912588,15.8963236 9.07676039,15.8963236 C9.31148885,15.8963236 9.54412784,15.8885344 9.77433851,15.8731886 C9.52032463,15.1807388 9.38270085,14.4428328 9.38270085,13.676822 C9.38275733,9.70202902 13.0747399,6.47976119 17.6290595,6.47976119 Z M12.5,4 C13.328411,4 14,4.67155738 14,5.5 C14,6.32841103 13.3284426,7 12.5,7 C11.6715574,7 11,6.32844262 11,5.5 C11.0000316,4.67155738 11.671589,4 12.5,4 Z M5.5,7 C4.67158897,7 4,6.32844262 4,5.5 C4,4.67158897 4.67155738,4 5.5,4 C6.32844262,4 7,4.67155738 7,5.5 C7,6.32841103 6.32844262,7 5.5,7 Z"></path><path d="M25,13.4664775 C25,9.89513318 21.6421433,7 17.4999862,7 C13.3578291,7 10,9.89513318 10,13.4664775 C10,17.0378217 13.3578567,19.9329549 17.5000138,19.9329549 C18.36973,19.9329549 19.2046277,19.804878 19.9813841,19.5701641 L22.5457108,21 L21.8004292,18.7646117 C23.7349834,17.5951163 25,15.6582837 25,13.4664775 Z M15,12 C14.447707,12 14,11.552293 14,11 C14,10.447707 14.447707,10 15,10 C15.552293,10 16,10.447707 16,11 C16,11.552293 15.552293,12 15,12 Z M20,12 C19.447707,12 19,11.552293 19,11 C19,10.447707 19.447707,10 20,10 C20.552293,10 21,10.447707 21,11 C21,11.552293 20.5522667,12 20,12 Z"></path></g></g></g></svg><span>Wechat</span></div><div class="weixin-code"><img src="images/ercode.jpg"></div></div></a></div><div class="col-lg-3 col-sm-6"><a id="btn-weibo" href="https://weibo.com/echarts"><div class="btn-content"><div class="btn-logo"><svg width="25px" height="20px" viewBox="0 0 25 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-774.000000, -2480.000000)" fill="rgba(174, 44, 53)"><g transform="translate(767.000000, 2470.000000)"><g transform="translate(7.000000, 10.000000)"><path d="M9.56107255,18.530208 C5.55942203,18.7083394 2.28534432,16.6598289 2.28534432,13.9878588 C2.28534432,11.3158886 5.55942203,9.08924686 9.56107255,8.91111551 C13.5627231,8.73298415 16.8368008,10.4252319 16.8368008,13.0972021 C16.8368008,15.7691722 13.5627231,18.3520767 9.56107255,18.530208 Z M18.1100532,9.71270657 C17.1096406,9.53457522 17.6553202,9.0001812 17.6553202,9.0001812 C17.6553202,9.0001812 18.5647862,7.48606478 17.473427,6.32821106 C16.1092279,4.90316031 12.7442036,6.50634241 12.7442036,6.50634241 C11.4709512,6.95167077 11.8347376,6.32821106 12.0166308,5.34848869 C12.0166308,4.19063497 11.6528444,2.14212451 8.19687348,3.3890439 C4.74090259,4.54689763 1.83061129,8.7329842 1.83061129,8.7329842 C-0.26116057,11.49402 0.0116792299,13.6315961 0.0116792299,13.6315961 C0.557358851,18.3520767 5.4684754,19.5989961 9.37917931,19.9552588 C13.4717764,20.3115215 18.9285726,18.5302081 20.5656115,14.9675812 C22.1117037,11.3158886 19.1104658,9.89083792 18.1100532,9.71270657 Z"></path><path d="M12.8641827,12.2517204 C12.2123929,10.4024172 10.0707976,9.57023078 7.92920237,10.2174869 C5.78760713,10.9572081 4.57714023,12.9914416 5.13581726,14.7482796 C5.78760713,16.5975828 7.92920237,17.4297692 10.0707976,16.7825131 C12.2123929,16.135257 13.4228598,14.1010235 12.8641827,12.2517204 Z M8.11542806,15.4880009 C7.37052537,15.6729312 6.53250982,15.3955358 6.34628415,14.7482797 C6.16005847,14.1010235 6.62562266,13.4537674 7.46363821,13.176372 C8.2085409,12.9914416 9.04655645,13.2688371 9.23278212,13.9160932 C9.32589493,14.5633493 8.86033075,15.3030706 8.11542806,15.4880009 Z M10.3501361,13.176372 C10.2570233,13.4537674 9.88457196,13.6386977 9.60523346,13.5462326 C9.32589496,13.4537674 9.23278212,13.0839068 9.32589496,12.8065113 C9.4190078,12.5291159 9.79145914,12.3441855 10.0707976,12.4366507 C10.3501361,12.621581 10.5363618,12.8989765 10.3501361,13.176372 Z"></path><path d="M24.5953609,9.4285714 C24.5953609,9.3333333 24.6913146,9.2380952 24.6913146,9.14285713 C25.2670362,7.5238095 24.9791754,5.9047619 24.3075001,4.38095238 C23.0601032,1.7142857 20.3734021,0 17.4947939,0 C16.9190722,0 16.3433505,0.0952380996 15.8635825,0.190476199 L15.8635825,0.190476199 L15.8635825,0.190476199 C15.8635825,0.190476199 15.7676289,0.190476199 15.6716753,0.285714299 L15.6716753,0.285714299 C15.2878608,0.476190498 15,0.857142874 15,1.33333335 C15,2.00000002 15.479768,2.4761905 16.1514433,2.4761905 C16.2473969,2.4761905 16.3433505,2.4761905 16.5352577,2.3809524 L16.5352577,2.3809524 C16.8231186,2.1904762 17.3988402,2.09523812 17.4947938,2.09523812 L17.5907475,2.09523812 C19.6057732,2.09523812 21.5248454,3.23809527 22.3884279,5.23809525 C22.8681959,6.2857143 22.9641496,7.42857143 22.6762887,8.57142857 C22.6762887,8.66666667 22.5803351,8.85714285 22.5803351,8.95238095 C22.5803351,9.52380952 23.0601031,10 23.6358248,10 L23.827732,10 L23.827732,10 L23.9236856,10 C24.2115465,9.9047619 24.4034537,9.8095238 24.5953609,9.61904762 C24.4994073,9.5238095 24.4994073,9.5238095 24.5953609,9.4285714 C24.5953609,9.5238095 24.5953609,9.4285714 24.5953609,9.4285714 Z"></path><path d="M17.6310803,4 C17.3252528,4 16.9174827,4.08510639 16.6116551,4.08510639 C16.3058276,4.17021275 16,4.42553192 16,4.76595745 C16,5.10638297 16.3058275,5.36170214 16.7135976,5.36170214 C16.8155402,5.36170214 16.9174827,5.36170214 17.0194252,5.27659575 C17.2233102,5.27659575 17.3252527,5.19148936 17.5291378,5.19148936 C18.548563,5.19148936 19.4660456,5.87234042 19.4660456,6.72340425 C19.4660456,6.89361703 19.4660456,6.97872339 19.3641031,7.14893617 L19.3641031,7.40425531 L19.3641031,7.40425531 L19.3641031,7.40425531 L19.3641031,7.40425531 L19.3641031,7.40425531 L19.3641031,7.4893617 L19.3641031,7.4893617 C19.4660456,7.82978723 19.7718732,8 20.0777008,8 C20.3835283,8 20.5874133,7.82978723 20.7912984,7.65957447 L20.7912984,7.65957447 C20.8932409,7.40425533 20.9951834,7.06382978 20.9951834,6.72340425 C21.0971259,5.27659575 19.5679882,4 17.6310803,4 Z"></path></g></g></g></g></svg><span>Weibo</span></div><div class="icon-v-right"></div></div></a></div><div class="col-lg-3 col-sm-6"><a id="btn-twitter" href="https://twitter.com/ApacheECharts"><div class="btn-content"><div class="btn-logo"><svg width="22px" height="19px" viewBox="0 0 22 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-1029.000000, -2481.000000)" fill="rgba(0, 172, 237)" fill-rule="nonzero"><g transform="translate(1019.000000, 2470.000000)"><path d="M31.9965682,13.2536272 C31.3736136,14.2239084 30.6196136,15.0506018 29.7346591,15.7332964 C29.7441818,15.8714453 29.7489318,16.0792366 29.7489318,16.3566705 C29.7489318,17.6436908 29.5720682,18.9275445 29.2183409,20.2082316 C28.8645909,21.4890636 28.3274091,22.7184796 27.6069091,23.8965522 C26.8862955,25.0746247 26.0280455,26.1166031 25.0323864,27.0222697 C24.0366364,27.9281298 22.8360682,28.6508066 21.4306364,29.1904211 C20.0251818,29.7300356 18.5226591,30 16.9230227,30 C14.4015909,30 12.0938636,29.2822545 10,27.8470776 C10.3251136,27.8862863 10.6878182,27.9059148 11.0880909,27.9059148 C13.1819545,27.9059148 15.0477727,27.2230992 16.6854545,25.8575407 C15.7087727,25.8372354 14.8339318,25.5180789 14.0609545,24.8998053 C13.288,24.281701 12.7573636,23.4924033 12.4690909,22.532299 C12.7763409,22.581612 13.0604091,22.606341 13.32125,22.606341 C13.7215227,22.606341 14.1168864,22.5518066 14.5076136,22.4428346 C13.4654545,22.214883 12.6024318,21.6632061 11.9187955,20.7878041 C11.2351591,19.9125471 10.8933409,18.8958295 10.8933409,17.7380623 L10.8933409,17.6790802 C11.5258182,18.0553092 12.2052955,18.2580242 12.9318409,18.287201 C12.3172955,17.851458 11.8288409,17.2826425 11.4667727,16.5808028 C11.1046818,15.8790598 10.923,15.1170776 10.9219318,14.2949288 C10.9219318,13.4233702 11.1267045,12.6170789 11.5365227,11.8760064 C12.6620909,13.3505127 14.0323182,14.5304949 15.6474545,15.4160496 C17.2624545,16.3015076 18.9907727,16.7936705 20.8321364,16.8924898 C20.7582955,16.5162366 20.7213636,16.1501361 20.7213636,15.7941883 C20.7213636,14.4678626 21.1608409,13.3372176 22.0398409,12.4023257 C22.9188409,11.4674338 23.9818864,11 25.2289318,11 C26.5319318,11 27.6300455,11.5048779 28.5233636,12.5144402 C29.5382045,12.306673 30.4922273,11.9209198 31.3854091,11.3572048 C31.0412273,12.4947875 30.3808409,13.3759186 29.4041364,14.0003804 C30.2700455,13.9015611 31.1353409,13.6539809 32,13.2574224 L31.9965682,13.2536272 Z"></path></g></g></g></svg><span>Twitter</span></div><div class="icon-v-right"></div></div></a></div></div></div></section></div><footer><div class="container"><div class="row"><div class="col-md-9"><p>Copyright © 2017-2021, The Apache Software Foundation Apache ECharts, ECharts, Apache, the Apache feather, and the Apache ECharts project logo are either registered trademarks or trademarks of the Apache Software Foundation.</p><div class="icon-panel"><a href="mailto:dev@echarts.apache.org?body=%28Thanks%20for%20using%20ECharts.%20Email%20us%20if%20you%20have%20non-technical%20problems%20using%20ECharts.%20For%20technical%20support%2C%20please%20go%20to%20https%3A//github.com/apache/echarts/issues%20.%29" class="footer-icon"><img src="https://echarts.apache.org/en/images/icon-email.png?_v_=20200710_1"></a><a href="https://twitter.com/ApacheECharts" class="footer-icon"><img src="https://echarts.apache.org/en/images/icon-twitter.png?_v_=20200710_1"></a><a href="https://weibo.com/echarts" class="footer-icon"><img src="https://echarts.apache.org/en/images/icon-weibo.png?_v_=20200710_1"></a><a href="https://github.com/apache/echarts" class="footer-icon"><img src="https://echarts.apache.org/en/images/icon-github.png?_v_=20200710_1"></a></div></div><div id="footer-icon-panel" class="col-md-3"><a href="https://www.apache.org"><img src="https://echarts.apache.org/en/images/asf_logo.svg?_v_=20200710_1" class="footer-apache-logo"></a></div></div></div></footer></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/en/js/common.js?_v_=b5b8944fb9"></script><script type="text/javascript">window.lazyLoadOptions = {
     elements_selector: ".lazy"
-};</script><script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload@12.0.0/dist/lazyload.min.js"></script><script src="https://echarts.apache.org/en/js/index.js?_v_=1620894510041"></script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
+};</script><script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload@12.0.0/dist/lazyload.min.js"></script><script src="https://echarts.apache.org/en/js/index.js?_v_=1623211036275"></script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
 var hm = document.createElement("script");
 
diff --git a/en/js/download.js b/en/js/download.js
index af18489..688d8b3 100644
--- a/en/js/download.js
+++ b/en/js/download.js
@@ -1 +1 @@
-var param=[{publishedAt:"2021-04-27T00:00:00Z",prerelease:!1,name:"5.1.1"},{publishedAt:"2021-04-15T00:00:00Z",prerelease:!1,name:"5.1.0"},{publishedAt:"2021-02-06T00:00:00Z",prerelease:!1,name:"5.0.2"},{publishedAt:"2021-01-16T00:00:00Z",prerelease:!1,name:"5.0.1"},{publishedAt:"2020-12-02T00:00:00Z",prerelease:!1,name:"5.0.0"},{publishedAt:"2020-09-01T00:00:00Z",prerelease:!1,name:"4.9.0"},{publishedAt:"2020-05-25T00:00:00Z",prerelease:!1,name:"4.8.0"},{publishedAt:"2020-03-19T00:00:00Z",prerelease:!1,name:"4.7.0"},{publishedAt:"2019-12-30T00:00:00Z",prerelease:!1,name:"4.6.0"},{publishedAt:"2019-11-18T16:00:00Z",prerelease:!1,name:"4.5.0"},{publishedAt:"2019-10-15T01:12:00Z",prerelease:!1,name:"4.4.0"},{publishedAt:"2019-09-16T15:57:00Z",prerelease:!1,name:"4.3.0"},{publishedAt:"2019-03-21T10:27:59Z",prerelease:!1,name:"4.2.1"},{publishedAt:"2018-08-04T12:55:30Z",prerelease:!1,name:"4.1.0"}],table=document.getElementById("download-table");function isIncubatingVersion(e){return e.split(".")[0]<5||"5.0.0"===e}for(var i=0;i<param.length;++i)if(!param[i].prerelease){var time=new Date(param[i].publishedAt);if(time.getTime()>new Date("2018-05-21")){var line=document.createElement("tr"),version=param[i].name,versionEl=document.createElement("td");versionEl.innerHTML=param[i].name,line.appendChild(versionEl);var date=document.createElement("td");date.innerHTML=time.getFullYear()+"/"+(time.getMonth()+1)+"/"+time.getDate(),line.appendChild(date);var isIncubating=isIncubatingVersion(version),main="https://www.apache.org/dist/echarts/"+version+"/apache-echarts-"+version+(isIncubating?"-incubating":""),mirror="https://www.apache.org/dyn/closer.cgi/echarts/"+version+"/apache-echarts-"+version+(isIncubating?"-incubating":""),source=document.createElement("td");source.innerHTML='<a target="_blank" href="'+mirror+'-src.zip">Source</a> (<a target="_blank" href="'+main+'-src.zip.asc">Signature</a> <a target="_blank" href="'+main+'-src.zip.sha512">SHA512</a>)',line.appendChild(source);var bin=document.createElement("td");bin.innerHTML='<a target="_blank" href="https://github.com/apache/echarts/tree/'+version+'/dist">Dist</a>',line.appendChild(bin),table.appendChild(line)}}
\ No newline at end of file
+var param=[{publishedAt:"2021-06-09T00:00:00Z",prerelease:!1,name:"5.1.2"},{publishedAt:"2021-04-27T00:00:00Z",prerelease:!1,name:"5.1.1"},{publishedAt:"2021-04-15T00:00:00Z",prerelease:!1,name:"5.1.0"},{publishedAt:"2021-02-06T00:00:00Z",prerelease:!1,name:"5.0.2"},{publishedAt:"2021-01-16T00:00:00Z",prerelease:!1,name:"5.0.1"},{publishedAt:"2020-12-02T00:00:00Z",prerelease:!1,name:"5.0.0"},{publishedAt:"2020-09-01T00:00:00Z",prerelease:!1,name:"4.9.0"},{publishedAt:"2020-05-25T00:00:00Z",prerelease:!1,name:"4.8.0"},{publishedAt:"2020-03-19T00:00:00Z",prerelease:!1,name:"4.7.0"},{publishedAt:"2019-12-30T00:00:00Z",prerelease:!1,name:"4.6.0"},{publishedAt:"2019-11-18T16:00:00Z",prerelease:!1,name:"4.5.0"},{publishedAt:"2019-10-15T01:12:00Z",prerelease:!1,name:"4.4.0"},{publishedAt:"2019-09-16T15:57:00Z",prerelease:!1,name:"4.3.0"},{publishedAt:"2019-03-21T10:27:59Z",prerelease:!1,name:"4.2.1"},{publishedAt:"2018-08-04T12:55:30Z",prerelease:!1,name:"4.1.0"}],table=document.getElementById("download-table");function isIncubatingVersion(e){return e.split(".")[0]<5||"5.0.0"===e}for(var i=0;i<param.length;++i)if(!param[i].prerelease){var time=new Date(param[i].publishedAt);if(time.getTime()>new Date("2018-05-21")){var line=document.createElement("tr"),version=param[i].name,versionEl=document.createElement("td");versionEl.innerHTML=param[i].name,line.appendChild(versionEl);var date=document.createElement("td");date.innerHTML=time.getFullYear()+"/"+(time.getMonth()+1)+"/"+time.getDate(),line.appendChild(date);var isIncubating=isIncubatingVersion(version),main="https://www.apache.org/dist/echarts/"+version+"/apache-echarts-"+version+(isIncubating?"-incubating":""),mirror="https://www.apache.org/dyn/closer.cgi/echarts/"+version+"/apache-echarts-"+version+(isIncubating?"-incubating":""),source=document.createElement("td");source.innerHTML='<a target="_blank" href="'+mirror+'-src.zip">Source</a> (<a target="_blank" href="'+main+'-src.zip.asc">Signature</a> <a target="_blank" href="'+main+'-src.zip.sha512">SHA512</a>)',line.appendChild(source);var bin=document.createElement("td");bin.innerHTML='<a target="_blank" href="https://github.com/apache/echarts/tree/'+version+'/dist">Dist</a>',line.appendChild(bin),table.appendChild(line)}}
\ No newline at end of file
diff --git a/en/maillist.html b/en/maillist.html
index fce67e8..b9285f9 100644
--- a/en/maillist.html
+++ b/en/maillist.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/option-gl.html b/en/option-gl.html
index 981c1a0..eb361cf 100644
--- a/en/option-gl.html
+++ b/en/option-gl.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -19,7 +19,7 @@
 };
 if (window.EC_WWW_CDN_PAY_ROOT) {
     window.globalArgsExtra.cdnRoot = window.EC_WWW_CDN_PAY_ROOT + '/en/' + window.globalArgsExtra.baseUrl
-}</script><script type="text/javascript">window.globalArgsExtra.version = '5572398971';
+}</script><script type="text/javascript">window.globalArgsExtra.version = '047e49b373';
 echartsDoc.init('#ec-doc-main', window.globalArgsExtra);</script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
 var hm = document.createElement("script");
diff --git a/en/option.html b/en/option.html
index 7c1960c..4480b22 100644
--- a/en/option.html
+++ b/en/option.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -19,7 +19,7 @@
 };
 if (window.EC_WWW_CDN_PAY_ROOT) {
     window.globalArgsExtra.cdnRoot = window.EC_WWW_CDN_PAY_ROOT + '/en/' + window.globalArgsExtra.baseUrl
-}</script><script type="text/javascript">window.globalArgsExtra.version = '5572398971';
+}</script><script type="text/javascript">window.globalArgsExtra.version = '047e49b373';
 echartsDoc.init('#ec-doc-main', window.globalArgsExtra);</script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
 var hm = document.createElement("script");
diff --git a/en/option3.html b/en/option3.html
index 6bdd851..a2100df 100644
--- a/en/option3.html
+++ b/en/option3.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/resources.html b/en/resources.html
index cc8e000..3b033eb 100644
--- a/en/resources.html
+++ b/en/resources.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/security.html b/en/security.html
index a96c407..a612c9f 100644
--- a/en/security.html
+++ b/en/security.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/spreadsheet.html b/en/spreadsheet.html
index 2706577..ab9ab98 100644
--- a/en/spreadsheet.html
+++ b/en/spreadsheet.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -12,7 +12,7 @@
 var vendorPath = '../vendors';
 
 define('globalArgs', extend({
-    version: '1620894510041',
+    version: '1623211036275',
     basePath: './'
 }, window.globalArgsExtra || {}));
 
@@ -31,7 +31,7 @@
         numeral: vendorPath + '/numeral/1.4.7/numeral.min',
         immutable: vendorPath + '/immutable/3.7.4/dist/immutable'
     },
-    urlArgs: '_v_=1620894510041'
+    urlArgs: '_v_=1623211036275'
 });
 
 require(['spreadsheet/spreadsheet'], function (spreadsheet) {
diff --git a/en/theme-builder.html b/en/theme-builder.html
index fe182b4..7ab0b3a 100644
--- a/en/theme-builder.html
+++ b/en/theme-builder.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/en/tutorial.html b/en/tutorial.html
index dea0ff6..bb62194 100644
--- a/en/tutorial.html
+++ b/en/tutorial.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -19,7 +19,7 @@
 };
 if (window.EC_WWW_CDN_PAY_ROOT) {
     window.globalArgsExtra.cdnRoot = window.EC_WWW_CDN_PAY_ROOT + '/en/' + window.globalArgsExtra.baseUrl
-}</script><script type="text/javascript">window.globalArgsExtra.version = '5572398971';
+}</script><script type="text/javascript">window.globalArgsExtra.version = '047e49b373';
 echartsDoc.init('#ec-doc-main', window.globalArgsExtra);</script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
 var hm = document.createElement("script");
diff --git a/events.html b/events.html
index 8928b39..ddf2211 100644
--- a/events.html
+++ b/events.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/events.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/events.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/examples/data/gauge-temperature.js b/examples/data/gauge-temperature.js
index 22c8edf..ac8f74c 100644
--- a/examples/data/gauge-temperature.js
+++ b/examples/data/gauge-temperature.js
@@ -61,7 +61,7 @@
                 valueAnimation: true,
                 width: '60%',
                 lineHeight: 40,
-                height: 15,
+                height: '15%',
                 borderRadius: 8,
                 offsetCenter: [0, '-15%'],
                 fontSize: 60,
diff --git a/examples/en/editor.html b/examples/en/editor.html
index f6f98c2..c070421 100644
--- a/examples/en/editor.html
+++ b/examples/en/editor.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -10,12 +10,12 @@
     /* position: sticky should not have overflow parents.*/
     overflow-x: hidden;
 }</style><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/theme-chalk/index.css"><link rel="stylesheet" href="https://echarts.apache.org/examples/css/example-bundle.css?_v_=4e03a5649f"><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://echarts.apache.org/en/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
-<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>Please visit the official Apache ECharts Website at</p><a id="a2" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>Visit Official Website</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav id="ec-example-nav" class="navbar navbar-default navbar-fixed-top"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/en/index.html" class="navbar-brand"><img src="https://echarts.apache.org/en/images/logo.png" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/en/index.html">Home</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Docs<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/feature.html">Features</a></li><li><a href="https://echarts.apache.org/en/tutorial.html">Tutorials</a></li><li><a href="https://echarts.apache.org/en/api.html">API</a></li><li><a href="https://echarts.apache.org/en/option.html">Chart Configuration</a></li><li><a href="https://echarts.apache.org/en/changelog.html">Changelog</a></li><li><a href="https://echarts.apache.org/en/faq.html">FAQ</a></li><li><a href="https://echarts.apache.org/en/tutorial.html#ECharts%205%20Upgrade%20Guide">V5 Upgrade Guide<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Download<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/download.html">Download</a></li><li><a href="https://echarts.apache.org/en/download-theme.html">Download Themes</a></li><li><a href="https://echarts.apache.org/en/download-extension.html">Download Extensions</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/en/index.html">Examples</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Resources<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/spreadsheet.html">Spread Sheet Tool</a></li><li><a href="https://echarts.apache.org/en/theme-builder.html">Theme Builder</a></li><li><a href="https://echarts.apache.org/en/cheat-sheet.html">Cheat Sheet</a></li><li><a href="https://echarts.apache.org/en/resources.html">More Resources</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/events.html">Events</a></li><li><a href="https://echarts.apache.org/en/committers.html">Committers</a></li><li><a href="https://echarts.apache.org/en/maillist.html">Mailing List</a></li><li><a href="https://echarts.apache.org/en/contributing.html">How to Contribute</a></li><li><a href="https://echarts.apache.org/en/dependencies.html">Dependencies</a></li><li><a href="https://echarts.apache.org/en/coding-standard.html">Code Standard</a></li><li><a href="https://github.com/apache/echarts" target="_blank">Source Code (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/en/security.html">Security</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">License<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">Events<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('zh')">中文</a></li></ul></div></div></nav></nav><div class="page-main"><div id="ec-example-main"></div><div id="v4-link" class="alert alert-info alert-dismissible"><a href="https://echarts.apache.org/v4/examples/">V4 Examples</a><button type="button" data-dismiss="alert" aria-label="Close" class="close"><span aria-hidden="true">&times;</span></button></div></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/en/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://echarts.apache.org/examples/js/example-bundle.js?_v_=5e71298117"></script><script type="text/javascript">document.getElementById('nav-examples').className = 'active';
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>Please visit the official Apache ECharts Website at</p><a id="a2" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>Visit Official Website</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav id="ec-example-nav" class="navbar navbar-default navbar-fixed-top"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/en/index.html" class="navbar-brand"><img src="https://echarts.apache.org/en/images/logo.png" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/en/index.html">Home</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Docs<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/feature.html">Features</a></li><li><a href="https://echarts.apache.org/en/tutorial.html">Tutorials</a></li><li><a href="https://echarts.apache.org/en/api.html">API</a></li><li><a href="https://echarts.apache.org/en/option.html">Chart Configuration</a></li><li><a href="https://echarts.apache.org/en/changelog.html">Changelog</a></li><li><a href="https://echarts.apache.org/en/faq.html">FAQ</a></li><li><a href="https://echarts.apache.org/en/tutorial.html#ECharts%205%20Upgrade%20Guide">V5 Upgrade Guide<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Download<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/download.html">Download</a></li><li><a href="https://echarts.apache.org/en/download-theme.html">Download Themes</a></li><li><a href="https://echarts.apache.org/en/download-extension.html">Download Extensions</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/en/index.html">Examples</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Resources<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/spreadsheet.html">Spread Sheet Tool</a></li><li><a href="https://echarts.apache.org/en/theme-builder.html">Theme Builder</a></li><li><a href="https://echarts.apache.org/en/cheat-sheet.html">Cheat Sheet</a></li><li><a href="https://echarts.apache.org/en/resources.html">More Resources</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/events.html">Events</a></li><li><a href="https://echarts.apache.org/en/committers.html">Committers</a></li><li><a href="https://echarts.apache.org/en/maillist.html">Mailing List</a></li><li><a href="https://echarts.apache.org/en/contributing.html">How to Contribute</a></li><li><a href="https://echarts.apache.org/en/dependencies.html">Dependencies</a></li><li><a href="https://echarts.apache.org/en/coding-standard.html">Code Standard</a></li><li><a href="https://github.com/apache/echarts" target="_blank">Source Code (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/en/security.html">Security</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">License<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">Events<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('zh')">中文</a></li></ul></div></div></nav></nav><div class="page-main"><div id="ec-example-main"></div><div id="v4-link" class="alert alert-info alert-dismissible"><a href="https://echarts.apache.org/v4/examples/">V4 Examples</a><button type="button" data-dismiss="alert" aria-label="Close" class="close"><span aria-hidden="true">&times;</span></button></div></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/en/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://echarts.apache.org/examples/js/example-bundle.js?_v_=3020d4307e"></script><script type="text/javascript">document.getElementById('nav-examples').className = 'active';
 window.EC_WWW_CDN_PAY_ROOT = 'https://echarts.apache.org';
 </script><script type="text/javascript">window.globalArgsExtra = {
     page: 'editor',
     locale: 'en'
-};</script><script type="text/javascript">window.globalArgsExtra.version = '1620894510041';
+};</script><script type="text/javascript">window.globalArgsExtra.version = '1623211036275';
 window.globalArgsExtra.cdnRoot = EC_WWW_CDN_PAY_ROOT + '/examples';
 echartsExample.init('#ec-example-main', window.globalArgsExtra);</script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
diff --git a/examples/en/index.html b/examples/en/index.html
index 96ec906..ea6250c 100644
--- a/examples/en/index.html
+++ b/examples/en/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -10,12 +10,12 @@
     /* position: sticky should not have overflow parents.*/
     overflow-x: hidden;
 }</style><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/theme-chalk/index.css"><link rel="stylesheet" href="https://echarts.apache.org/examples/css/example-bundle.css?_v_=4e03a5649f"><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://echarts.apache.org/en/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
-<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>Please visit the official Apache ECharts Website at</p><a id="a2" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>Visit Official Website</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav id="ec-example-nav" class="navbar navbar-default navbar-fixed-top"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/en/index.html" class="navbar-brand"><img src="https://echarts.apache.org/en/images/logo.png" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/en/index.html">Home</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Docs<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/feature.html">Features</a></li><li><a href="https://echarts.apache.org/en/tutorial.html">Tutorials</a></li><li><a href="https://echarts.apache.org/en/api.html">API</a></li><li><a href="https://echarts.apache.org/en/option.html">Chart Configuration</a></li><li><a href="https://echarts.apache.org/en/changelog.html">Changelog</a></li><li><a href="https://echarts.apache.org/en/faq.html">FAQ</a></li><li><a href="https://echarts.apache.org/en/tutorial.html#ECharts%205%20Upgrade%20Guide">V5 Upgrade Guide<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Download<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/download.html">Download</a></li><li><a href="https://echarts.apache.org/en/download-theme.html">Download Themes</a></li><li><a href="https://echarts.apache.org/en/download-extension.html">Download Extensions</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/en/index.html">Examples</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Resources<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/spreadsheet.html">Spread Sheet Tool</a></li><li><a href="https://echarts.apache.org/en/theme-builder.html">Theme Builder</a></li><li><a href="https://echarts.apache.org/en/cheat-sheet.html">Cheat Sheet</a></li><li><a href="https://echarts.apache.org/en/resources.html">More Resources</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/events.html">Events</a></li><li><a href="https://echarts.apache.org/en/committers.html">Committers</a></li><li><a href="https://echarts.apache.org/en/maillist.html">Mailing List</a></li><li><a href="https://echarts.apache.org/en/contributing.html">How to Contribute</a></li><li><a href="https://echarts.apache.org/en/dependencies.html">Dependencies</a></li><li><a href="https://echarts.apache.org/en/coding-standard.html">Code Standard</a></li><li><a href="https://github.com/apache/echarts" target="_blank">Source Code (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/en/security.html">Security</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">License<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">Events<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('zh')">中文</a></li></ul></div></div></nav></nav><div class="page-main"><div id="ec-example-main"></div><div id="v4-link" class="alert alert-info alert-dismissible"><a href="https://echarts.apache.org/v4/examples/">V4 Examples</a><button type="button" data-dismiss="alert" aria-label="Close" class="close"><span aria-hidden="true">&times;</span></button></div></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/en/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://echarts.apache.org/examples/js/example-bundle.js?_v_=5e71298117"></script><script type="text/javascript">document.getElementById('nav-examples').className = 'active';
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>Please visit the official Apache ECharts Website at</p><a id="a2" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>Visit Official Website</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav id="ec-example-nav" class="navbar navbar-default navbar-fixed-top"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/en/index.html" class="navbar-brand"><img src="https://echarts.apache.org/en/images/logo.png" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/en/index.html">Home</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Docs<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/feature.html">Features</a></li><li><a href="https://echarts.apache.org/en/tutorial.html">Tutorials</a></li><li><a href="https://echarts.apache.org/en/api.html">API</a></li><li><a href="https://echarts.apache.org/en/option.html">Chart Configuration</a></li><li><a href="https://echarts.apache.org/en/changelog.html">Changelog</a></li><li><a href="https://echarts.apache.org/en/faq.html">FAQ</a></li><li><a href="https://echarts.apache.org/en/tutorial.html#ECharts%205%20Upgrade%20Guide">V5 Upgrade Guide<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Download<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/download.html">Download</a></li><li><a href="https://echarts.apache.org/en/download-theme.html">Download Themes</a></li><li><a href="https://echarts.apache.org/en/download-extension.html">Download Extensions</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/en/index.html">Examples</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Resources<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/spreadsheet.html">Spread Sheet Tool</a></li><li><a href="https://echarts.apache.org/en/theme-builder.html">Theme Builder</a></li><li><a href="https://echarts.apache.org/en/cheat-sheet.html">Cheat Sheet</a></li><li><a href="https://echarts.apache.org/en/resources.html">More Resources</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Community<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/en/events.html">Events</a></li><li><a href="https://echarts.apache.org/en/committers.html">Committers</a></li><li><a href="https://echarts.apache.org/en/maillist.html">Mailing List</a></li><li><a href="https://echarts.apache.org/en/contributing.html">How to Contribute</a></li><li><a href="https://echarts.apache.org/en/dependencies.html">Dependencies</a></li><li><a href="https://echarts.apache.org/en/coding-standard.html">Code Standard</a></li><li><a href="https://github.com/apache/echarts" target="_blank">Source Code (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues (GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/en/security.html">Security</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">License<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">Events<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('zh')">中文</a></li></ul></div></div></nav></nav><div class="page-main"><div id="ec-example-main"></div><div id="v4-link" class="alert alert-info alert-dismissible"><a href="https://echarts.apache.org/v4/examples/">V4 Examples</a><button type="button" data-dismiss="alert" aria-label="Close" class="close"><span aria-hidden="true">&times;</span></button></div></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/en/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://echarts.apache.org/examples/js/example-bundle.js?_v_=3020d4307e"></script><script type="text/javascript">document.getElementById('nav-examples').className = 'active';
 window.EC_WWW_CDN_PAY_ROOT = 'https://echarts.apache.org';
 </script><script type="text/javascript">window.globalArgsExtra = {
     page: 'explore',
     locale: 'en'
-};</script><script type="text/javascript">window.globalArgsExtra.version = '1620894510041';
+};</script><script type="text/javascript">window.globalArgsExtra.version = '1623211036275';
 window.globalArgsExtra.cdnRoot = EC_WWW_CDN_PAY_ROOT + '/examples';
 echartsExample.init('#ec-example-main', window.globalArgsExtra);</script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
diff --git a/examples/en/view.html b/examples/en/view.html
index e91fb05..cde2cde 100644
--- a/examples/en/view.html
+++ b/examples/en/view.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'en';
+<!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/en/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/en/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'en';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -10,11 +10,11 @@
     /* position: sticky should not have overflow parents.*/
     overflow-x: hidden;
 }</style><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/theme-chalk/index.css"><link rel="stylesheet" href="https://echarts.apache.org/examples/css/example-bundle.css?_v_=4e03a5649f"><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://echarts.apache.org/en/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
-<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>Please visit the official Apache ECharts Website at</p><a id="a2" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>Visit Official Website</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><div id="ec-example-main"></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/en/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://echarts.apache.org/examples/js/example-bundle.js?_v_=5e71298117"></script><script type="text/javascript">window.EC_WWW_CDN_PAY_ROOT = 'https://echarts.apache.org';
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>Please visit the official Apache ECharts Website at</p><a id="a2" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>Visit Official Website</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><div id="ec-example-main"></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/en/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://echarts.apache.org/examples/js/example-bundle.js?_v_=3020d4307e"></script><script type="text/javascript">window.EC_WWW_CDN_PAY_ROOT = 'https://echarts.apache.org';
 </script><script type="text/javascript">window.globalArgsExtra = {
     page: 'view',
     locale: 'en'
-};</script><script type="text/javascript">window.globalArgsExtra.version = '1620894510041';
+};</script><script type="text/javascript">window.globalArgsExtra.version = '1623211036275';
 window.globalArgsExtra.cdnRoot = EC_WWW_CDN_PAY_ROOT + '/examples';
 echartsExample.init('#ec-example-main', window.globalArgsExtra);
 
diff --git a/examples/js/example-bundle.js b/examples/js/example-bundle.js
index 7e91c36..e05b0d4 100644
--- a/examples/js/example-bundle.js
+++ b/examples/js/example-bundle.js
@@ -1 +1 @@
-var echartsExample;echartsExample=(()=>{var t={913:(t,e,n)=>{t=n.nmd(t);var a={grid:"GridComponent",polar:"PolarComponent",geo:"GeoComponent",singleAxis:"SingleAxisComponent",parallel:"ParallelComponent",calendar:"CalendarComponent",graphic:"GraphicComponent",toolbox:"ToolboxComponent",tooltip:"TooltipComponent",axisPointer:"AxisPointerComponent",brush:"BrushComponent",title:"TitleComponent",timeline:"TimelineComponent",markPoint:"MarkPointComponent",markLine:"MarkLineComponent",markArea:"MarkAreaComponent",legend:"LegendComponent",dataZoom:"DataZoomComponent",visualMap:"VisualMapComponent",aria:"AriaComponent",dataset:"DatasetComponent",xAxis:"GridComponent",yAxis:"GridComponent",angleAxis:"PolarComponent",radiusAxis:"PolarComponent"},i={line:"LineChart",bar:"BarChart",pie:"PieChart",scatter:"ScatterChart",radar:"RadarChart",map:"MapChart",tree:"TreeChart",treemap:"TreemapChart",graph:"GraphChart",gauge:"GaugeChart",funnel:"FunnelChart",parallel:"ParallelChart",sankey:"SankeyChart",boxplot:"BoxplotChart",candlestick:"CandlestickChart",effectScatter:"EffectScatterChart",lines:"LinesChart",heatmap:"HeatmapChart",pictorialBar:"PictorialBarChart",themeRiver:"ThemeRiverChart",sunburst:"SunburstChart",custom:"CustomChart"},o={grid3D:"Grid3DComponent",geo3D:"Geo3DComponent",globe:"GlobeComponent",mapbox3D:"Mapbox3DComponent",maptalks3D:"Maptalks3DComponent",xAxis3D:"Grid3DComponent",yAxis3D:"Grid3DComponent",zAxis3D:"Grid3DComponent"},r={bar3D:"Bar3DChart",line3D:"Line3DChart",scatter3D:"Scatter3DChart",lines3D:"Lines3DChart",polygons3D:"Polygons3DChart",surface:"SurfaceChart",map3D:"Map3DChart",scatterGL:"ScatterGLChart",graphGL:"GraphGLChart",flowGL:"FlowGLChart",linesGL:"LinesGLChart"},l={},s={},c={},u={},d={SVGRenderer:"svg",CanvasRenderer:"canvas"},p=["markLine","markArea","markPoint"],f=[].concat(p,["grid","axisPointer","aria"]),g=["xAxis","yAxis","angleAxis","radiusAxis","xAxis3D","yAxis3D","zAxis3D"];function m(t,e){Object.keys(t).forEach((function(n){g.includes(n)||(e[t[n]]=n)}))}function h(t,e){var n=[],a=[],i=[],o=[],r=[];t.forEach((function(t){t.endsWith("Renderer")?r.push(t):s[t]?(n.push(t),e&&n.push(t.replace(/Chart$/,"SeriesOption"))):l[t]?(a.push(t),e&&a.push(t.replace(/Component$/,"ComponentOption"))):c[t]?i.push(t):u[t]&&o.push(t)}));var d=[].concat(a,n,o,i,r),p="\ntype ECOption = echarts.ComposeOption<\n    ".concat(d.filter((function(t){return t.endsWith("Option")})).join(" | "),"\n>"),f=[[a,"echarts/components"],[n,"echarts/charts"],[r,"echarts/renderers"],[i,"echarts-gl/charts"],[o,"echarts-gl/components"]].filter((function(t){return t[0].length>0})).map((function(t){return"\nimport {".concat((e=t[0],"".concat(e.map((function(t){return"\n    ".concat(t)})).join(","))),"\n} from '").concat(t[1],"';\n    ").trim();var e})).join("\n");return"import * as echarts from 'echarts/core';\n".concat(f,"\n\necharts.use(\n    [").concat(d.filter((function(t){return!t.endsWith("Option")})).join(", "),"]\n);\n")+(e?p:"")}function C(t,e){var n=[];return t.forEach((function(t){t.endsWith("Renderer")&&"CanvasRenderer"!==t?n.push("zrender/lib/".concat(d[t],"/").concat(d[t])):s[t]?n.push("echarts/lib/chart/".concat(s[t])):l[t]?n.push("echarts/lib/component/".concat(l[t])):c[t]?n.push("echarts-gl/lib/chart/".concat(c[t])):u[t]&&n.push("echarts-gl/lib/component/".concat(u[t]))})),e?"import * as echarts from 'echarts/lib/echarts';\n".concat(n.map((function(t){return"import '".concat(t,"';")})).join("\n"),"\n"):"const echarts = require('echarts/lib/echarts');\n".concat(n.map((function(t){return"require('".concat(t,"');")})).join("\n"),"\n")}function y(t){return!!t.find((function(t){return!(!c[t]&&!u[t])}))}m(a,l),m(i,s),m(o,u),m(r,c),t.exports.collectDeps=function t(e){var n=[];if(e.options)return e.options.forEach((function(e){n=n.concat(t(e))})),e.baseOption&&(n=n.concat(t(e.baseOption))),Array.from(new Set(n));Object.keys(e).forEach((function(t){if(!f.includes(t)){var i=e[t];Array.isArray(i)&&!i.length||(a[t]&&n.push(a[t]),o[t]&&n.push(o[t]))}}));var l=e.series;return Array.isArray(l)||(l=[l]),l.forEach((function(t){i[t.type]&&n.push(i[t.type]),r[t.type]&&n.push(r[t.type]),"map"===t.type&&n.push(a.geo),p.forEach((function(e){t[e]&&n.push(a[e])}))})),Array.from(new Set(n))},t.exports.buildMinimalBundleCode=h,t.buildLegacyMinimalBundleCode=C,t.exports.buildExampleCode=function(t,e,n){var a=n.minimal,i=n.esm,o=void 0===i||i,r=n.legacy,l=n.ts,s=n.theme,c=n.ROOT_PATH,u=n.extraImports;l&&(o=!0),a&&!o&&(r=!0);var d=t.indexOf("ecStat")>=0,p=t.indexOf("ROOT_PATH")>=0,f=t.indexOf("app")>=0,g="\n".concat(d?o?"import ecStat from 'echarts-stat';":"var ecStat = require('echarts-stat');":"","\n"),m=[a?r?C(e,o):h(e,l):o?"import * as echarts from 'echarts';".concat(y(e)?"\nimport 'echarts-gl';":""):"var echarts = require('echarts');".concat(y(e)?"\nrequire('echarts-gl');":""),s&&"dark"!==s?o?"import 'echarts/theme/".concat(s,"'"):"require('echarts/theme/".concat(s,"')"):"",u].filter((function(t){return!!t})).join("\n"),v=[p?"var ROOT_PATH = '".concat(c,"';"):"",f?"var app".concat(l?": any":""," = {};"):"",l&&!a?"type ECOption = echarts.EChartsOption":""].filter((function(t){return!!t})).join("\n"),b=[m.trim(),g.trim(),v.trim()].filter((function(t){return!!t})).join("\n\n");return"".concat(b,"\n\nvar chartDom = document.getElementById('main')").concat(l?"!":"",";\nvar myChart = echarts.init(chartDom").concat(s?", '".concat(s,"'"):"",");\nvar option").concat(l?": ECOption":"",";\n\n").concat(t.trim(),"\n\noption && myChart.setOption(option);\n")}},403:(t,e,n)=>{"use strict";n.r(e),n.d(e,{init:()=>Sl});const a=Vue;var i=n.n(a),o=["style","currency","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","localeMatcher","formatMatcher","unit"];function r(t,e){"undefined"!=typeof console&&(console.warn("[vue-i18n] "+t),e&&console.warn(e.stack))}var l=Array.isArray;function s(t){return null!==t&&"object"==typeof t}function c(t){return"string"==typeof t}var u=Object.prototype.toString;function d(t){return"[object Object]"===u.call(t)}function p(t){return null==t}function f(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=null,a=null;return 1===t.length?s(t[0])||Array.isArray(t[0])?a=t[0]:"string"==typeof t[0]&&(n=t[0]):2===t.length&&("string"==typeof t[0]&&(n=t[0]),(s(t[1])||Array.isArray(t[1]))&&(a=t[1])),{locale:n,params:a}}function g(t){return JSON.parse(JSON.stringify(t))}function m(t,e){return!!~t.indexOf(e)}var h=Object.prototype.hasOwnProperty;function C(t,e){return h.call(t,e)}function y(t){for(var e=arguments,n=Object(t),a=1;a<arguments.length;a++){var i=e[a];if(null!=i){var o=void 0;for(o in i)C(i,o)&&(s(i[o])?n[o]=y(n[o],i[o]):n[o]=i[o])}}return n}function v(t,e){if(t===e)return!0;var n=s(t),a=s(e);if(!n||!a)return!n&&!a&&String(t)===String(e);try{var i=Array.isArray(t),o=Array.isArray(e);if(i&&o)return t.length===e.length&&t.every((function(t,n){return v(t,e[n])}));if(i||o)return!1;var r=Object.keys(t),l=Object.keys(e);return r.length===l.length&&r.every((function(n){return v(t[n],e[n])}))}catch(t){return!1}}var b={beforeCreate:function(){var t=this.$options;if(t.i18n=t.i18n||(t.__i18n?{}:null),t.i18n){if(t.i18n instanceof K){if(t.__i18n)try{var e={};t.__i18n.forEach((function(t){e=y(e,JSON.parse(t))})),Object.keys(e).forEach((function(n){t.i18n.mergeLocaleMessage(n,e[n])}))}catch(t){}this._i18n=t.i18n,this._i18nWatcher=this._i18n.watchI18nData()}else if(d(t.i18n)){var n=this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof K?this.$root.$i18n:null;if(n&&(t.i18n.root=this.$root,t.i18n.formatter=n.formatter,t.i18n.fallbackLocale=n.fallbackLocale,t.i18n.formatFallbackMessages=n.formatFallbackMessages,t.i18n.silentTranslationWarn=n.silentTranslationWarn,t.i18n.silentFallbackWarn=n.silentFallbackWarn,t.i18n.pluralizationRules=n.pluralizationRules,t.i18n.preserveDirectiveContent=n.preserveDirectiveContent),t.__i18n)try{var a={};t.__i18n.forEach((function(t){a=y(a,JSON.parse(t))})),t.i18n.messages=a}catch(t){}var i=t.i18n.sharedMessages;i&&d(i)&&(t.i18n.messages=y(t.i18n.messages,i)),this._i18n=new K(t.i18n),this._i18nWatcher=this._i18n.watchI18nData(),(void 0===t.i18n.sync||t.i18n.sync)&&(this._localeWatcher=this.$i18n.watchLocale()),n&&n.onComponentInstanceCreated(this._i18n)}}else this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof K?this._i18n=this.$root.$i18n:t.parent&&t.parent.$i18n&&t.parent.$i18n instanceof K&&(this._i18n=t.parent.$i18n)},beforeMount:function(){var t=this.$options;t.i18n=t.i18n||(t.__i18n?{}:null),t.i18n?(t.i18n instanceof K||d(t.i18n))&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0):(this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof K||t.parent&&t.parent.$i18n&&t.parent.$i18n instanceof K)&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0)},beforeDestroy:function(){if(this._i18n){var t=this;this.$nextTick((function(){t._subscribing&&(t._i18n.unsubscribeDataChanging(t),delete t._subscribing),t._i18nWatcher&&(t._i18nWatcher(),t._i18n.destroyVM(),delete t._i18nWatcher),t._localeWatcher&&(t._localeWatcher(),delete t._localeWatcher)}))}}},_={name:"i18n",functional:!0,props:{tag:{type:[String,Boolean,Object],default:"span"},path:{type:String,required:!0},locale:{type:String},places:{type:[Array,Object]}},render:function(t,e){var n=e.data,a=e.parent,i=e.props,o=e.slots,r=a.$i18n;if(r){var l=i.path,s=i.locale,c=i.places,u=o(),d=r.i(l,s,function(t){var e;for(e in t)if("default"!==e)return!1;return Boolean(e)}(u)||c?function(t,e){var n=e?function(t){return Array.isArray(t)?t.reduce(w,{}):Object.assign({},t)}(e):{};if(!t)return n;var a=(t=t.filter((function(t){return t.tag||""!==t.text.trim()}))).every(x);return t.reduce(a?L:w,n)}(u.default,c):u),p=i.tag&&!0!==i.tag||!1===i.tag?i.tag:"span";return p?t(p,n,d):d}}};function L(t,e){return e.data&&e.data.attrs&&e.data.attrs.place&&(t[e.data.attrs.place]=e),t}function w(t,e,n){return t[n]=e,t}function x(t){return Boolean(t.data&&t.data.attrs&&t.data.attrs.place)}var k,S={name:"i18n-n",functional:!0,props:{tag:{type:[String,Boolean,Object],default:"span"},value:{type:Number,required:!0},format:{type:[String,Object]},locale:{type:String}},render:function(t,e){var n=e.props,a=e.parent,i=e.data,r=a.$i18n;if(!r)return null;var l=null,u=null;c(n.format)?l=n.format:s(n.format)&&(n.format.key&&(l=n.format.key),u=Object.keys(n.format).reduce((function(t,e){var a;return m(o,e)?Object.assign({},t,((a={})[e]=n.format[e],a)):t}),null));var d=n.locale||r.locale,p=r._ntp(n.value,d,l,u),f=p.map((function(t,e){var n,a=i.scopedSlots&&i.scopedSlots[t.type];return a?a(((n={})[t.type]=t.value,n.index=e,n.parts=p,n)):t.value})),g=n.tag&&!0!==n.tag||!1===n.tag?n.tag:"span";return g?t(g,{attrs:i.attrs,class:i.class,staticClass:i.staticClass},f):f}};function N(t,e,n){O(0,n)&&D(t,e,n)}function M(t,e,n,a){if(O(0,n)){var i=n.context.$i18n;(function(t,e){var n=e.context;return t._locale===n.$i18n.locale})(t,n)&&v(e.value,e.oldValue)&&v(t._localeMessage,i.getLocaleMessage(i.locale))||D(t,e,n)}}function T(t,e,n,a){if(n.context){var i=n.context.$i18n||{};e.modifiers.preserve||i.preserveDirectiveContent||(t.textContent=""),t._vt=void 0,delete t._vt,t._locale=void 0,delete t._locale,t._localeMessage=void 0,delete t._localeMessage}else r("Vue instance does not exists in VNode context")}function O(t,e){var n=e.context;return n?!!n.$i18n||(r("VueI18n instance does not exists in Vue instance"),!1):(r("Vue instance does not exists in VNode context"),!1)}function D(t,e,n){var a,i,o=function(t){var e,n,a,i;return c(t)?e=t:d(t)&&(e=t.path,n=t.locale,a=t.args,i=t.choice),{path:e,locale:n,args:a,choice:i}}(e.value),l=o.path,s=o.locale,u=o.args,p=o.choice;if(l||s||u)if(l){var f=n.context;t._vt=t.textContent=null!=p?(a=f.$i18n).tc.apply(a,[l,p].concat(A(s,u))):(i=f.$i18n).t.apply(i,[l].concat(A(s,u))),t._locale=f.$i18n.locale,t._localeMessage=f.$i18n.getLocaleMessage(f.$i18n.locale)}else r("`path` is required in v-t directive");else r("value type not supported")}function A(t,e){var n=[];return t&&n.push(t),e&&(Array.isArray(e)||d(e))&&n.push(e),n}function E(t){E.installed=!0,(k=t).version&&Number(k.version.split(".")[0]),function(t){t.prototype.hasOwnProperty("$i18n")||Object.defineProperty(t.prototype,"$i18n",{get:function(){return this._i18n}}),t.prototype.$t=function(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];var a=this.$i18n;return a._t.apply(a,[t,a.locale,a._getMessages(),this].concat(e))},t.prototype.$tc=function(t,e){for(var n=[],a=arguments.length-2;a-- >0;)n[a]=arguments[a+2];var i=this.$i18n;return i._tc.apply(i,[t,i.locale,i._getMessages(),this,e].concat(n))},t.prototype.$te=function(t,e){var n=this.$i18n;return n._te(t,n.locale,n._getMessages(),e)},t.prototype.$d=function(t){for(var e,n=[],a=arguments.length-1;a-- >0;)n[a]=arguments[a+1];return(e=this.$i18n).d.apply(e,[t].concat(n))},t.prototype.$n=function(t){for(var e,n=[],a=arguments.length-1;a-- >0;)n[a]=arguments[a+1];return(e=this.$i18n).n.apply(e,[t].concat(n))}}(k),k.mixin(b),k.directive("t",{bind:N,update:M,unbind:T}),k.component(_.name,_),k.component(S.name,S),k.config.optionMergeStrategies.i18n=function(t,e){return void 0===e?t:e}}var P=function(){this._caches=Object.create(null)};P.prototype.interpolate=function(t,e){if(!e)return[t];var n=this._caches[t];return n||(n=function(t){for(var e=[],n=0,a="";n<t.length;){var i=t[n++];if("{"===i){a&&e.push({type:"text",value:a}),a="";var o="";for(i=t[n++];void 0!==i&&"}"!==i;)o+=i,i=t[n++];var r="}"===i,l=F.test(o)?"list":r&&R.test(o)?"named":"unknown";e.push({value:o,type:l})}else"%"===i?"{"!==t[n]&&(a+=i):a+=i}return a&&e.push({type:"text",value:a}),e}(t),this._caches[t]=n),function(t,e){var n=[],a=0,i=Array.isArray(e)?"list":s(e)?"named":"unknown";if("unknown"===i)return n;for(;a<t.length;){var o=t[a];switch(o.type){case"text":n.push(o.value);break;case"list":n.push(e[parseInt(o.value,10)]);break;case"named":"named"===i&&n.push(e[o.value])}a++}return n}(n,e)};var F=/^(?:\d)+/,R=/^(?:\w)+/,I=[];I[0]={ws:[0],ident:[3,0],"[":[4],eof:[7]},I[1]={ws:[1],".":[2],"[":[4],eof:[7]},I[2]={ws:[2],ident:[3,0],0:[3,0],number:[3,0]},I[3]={ident:[3,0],0:[3,0],number:[3,0],ws:[1,1],".":[2,1],"[":[4,1],eof:[7,1]},I[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],eof:8,else:[4,0]},I[5]={"'":[4,0],eof:8,else:[5,0]},I[6]={'"':[4,0],eof:8,else:[6,0]};var B=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function j(t){if(null==t)return"eof";switch(t.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return t;case 95:case 36:case 45:return"ident";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"ws"}return"ident"}var G=function(){this._cache=Object.create(null)};G.prototype.parsePath=function(t){var e=this._cache[t];return e||(e=function(t){var e,n,a,i,o,r,l,s=[],c=-1,u=0,d=0,p=[];function f(){var e=t[c+1];if(5===u&&"'"===e||6===u&&'"'===e)return c++,a="\\"+e,p[0](),!0}for(p[1]=function(){void 0!==n&&(s.push(n),n=void 0)},p[0]=function(){void 0===n?n=a:n+=a},p[2]=function(){p[0](),d++},p[3]=function(){if(d>0)d--,u=4,p[0]();else{if(d=0,void 0===n)return!1;if(!1===(n=function(t){var e,n=t.trim();return("0"!==t.charAt(0)||!isNaN(t))&&(e=n,B.test(e)?function(t){var e=t.charCodeAt(0);return e!==t.charCodeAt(t.length-1)||34!==e&&39!==e?t:t.slice(1,-1)}(n):"*"+n)}(n)))return!1;p[1]()}};null!==u;)if(c++,"\\"!==(e=t[c])||!f()){if(i=j(e),8===(o=(l=I[u])[i]||l.else||8))return;if(u=o[0],(r=p[o[1]])&&(a=void 0===(a=o[2])?e:a,!1===r()))return;if(7===u)return s}}(t))&&(this._cache[t]=e),e||[]},G.prototype.getPathValue=function(t,e){if(!s(t))return null;var n=this.parsePath(e);if(0===n.length)return null;for(var a=n.length,i=t,o=0;o<a;){var r=i[n[o]];if(void 0===r)return null;i=r,o++}return i};var z,U=/<\/?[\w\s="/.':;#-\/]+>/,Z=/(?:@(?:\.[a-z]+)?:(?:[\w\-_|.]+|\([\w\-_|.]+\)))/g,V=/^@(?:\.([a-z]+))?:/,W=/[()]/g,H={upper:function(t){return t.toLocaleUpperCase()},lower:function(t){return t.toLocaleLowerCase()},capitalize:function(t){return""+t.charAt(0).toLocaleUpperCase()+t.substr(1)}},q=new P,K=function(t){var e=this;void 0===t&&(t={}),!k&&"undefined"!=typeof window&&window.Vue&&E(window.Vue);var n=t.locale||"en-US",a=!1!==t.fallbackLocale&&(t.fallbackLocale||"en-US"),i=t.messages||{},o=t.dateTimeFormats||{},r=t.numberFormats||{};this._vm=null,this._formatter=t.formatter||q,this._modifiers=t.modifiers||{},this._missing=t.missing||null,this._root=t.root||null,this._sync=void 0===t.sync||!!t.sync,this._fallbackRoot=void 0===t.fallbackRoot||!!t.fallbackRoot,this._formatFallbackMessages=void 0!==t.formatFallbackMessages&&!!t.formatFallbackMessages,this._silentTranslationWarn=void 0!==t.silentTranslationWarn&&t.silentTranslationWarn,this._silentFallbackWarn=void 0!==t.silentFallbackWarn&&!!t.silentFallbackWarn,this._dateTimeFormatters={},this._numberFormatters={},this._path=new G,this._dataListeners=[],this._componentInstanceCreatedListener=t.componentInstanceCreatedListener||null,this._preserveDirectiveContent=void 0!==t.preserveDirectiveContent&&!!t.preserveDirectiveContent,this.pluralizationRules=t.pluralizationRules||{},this._warnHtmlInMessage=t.warnHtmlInMessage||"off",this._postTranslation=t.postTranslation||null,this.getChoiceIndex=function(t,n){var a,i,o=Object.getPrototypeOf(e);return o&&o.getChoiceIndex?o.getChoiceIndex.call(e,t,n):e.locale in e.pluralizationRules?e.pluralizationRules[e.locale].apply(e,[t,n]):(a=t,i=n,a=Math.abs(a),2===i?a?a>1?1:0:1:a?Math.min(a,2):0)},this._exist=function(t,n){return!(!t||!n||p(e._path.getPathValue(t,n))&&!t[n])},"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||Object.keys(i).forEach((function(t){e._checkLocaleMessage(t,e._warnHtmlInMessage,i[t])})),this._initVM({locale:n,fallbackLocale:a,messages:i,dateTimeFormats:o,numberFormats:r})},J={vm:{configurable:!0},messages:{configurable:!0},dateTimeFormats:{configurable:!0},numberFormats:{configurable:!0},availableLocales:{configurable:!0},locale:{configurable:!0},fallbackLocale:{configurable:!0},formatFallbackMessages:{configurable:!0},missing:{configurable:!0},formatter:{configurable:!0},silentTranslationWarn:{configurable:!0},silentFallbackWarn:{configurable:!0},preserveDirectiveContent:{configurable:!0},warnHtmlInMessage:{configurable:!0},postTranslation:{configurable:!0}};K.prototype._checkLocaleMessage=function(t,e,n){var a=function(t,e,n,i){if(d(n))Object.keys(n).forEach((function(o){var r=n[o];d(r)?(i.push(o),i.push("."),a(t,e,r,i),i.pop(),i.pop()):(i.push(o),a(t,e,r,i),i.pop())}));else if(Array.isArray(n))n.forEach((function(n,o){d(n)?(i.push("["+o+"]"),i.push("."),a(t,e,n,i),i.pop(),i.pop()):(i.push("["+o+"]"),a(t,e,n,i),i.pop())}));else if(c(n)&&U.test(n)){var o="Detected HTML in message '"+n+"' of keypath '"+i.join("")+"' at '"+e+"'. Consider component interpolation with '<i18n>' to avoid XSS. See https://bit.ly/2ZqJzkp";"warn"===t?r(o):"error"===t&&function(t,e){"undefined"!=typeof console&&console.error("[vue-i18n] "+t)}(o)}};a(e,t,n,[])},K.prototype._initVM=function(t){var e=k.config.silent;k.config.silent=!0,this._vm=new k({data:t}),k.config.silent=e},K.prototype.destroyVM=function(){this._vm.$destroy()},K.prototype.subscribeDataChanging=function(t){this._dataListeners.push(t)},K.prototype.unsubscribeDataChanging=function(t){!function(t,e){if(t.length){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}(this._dataListeners,t)},K.prototype.watchI18nData=function(){var t=this;return this._vm.$watch("$data",(function(){for(var e=t._dataListeners.length;e--;)k.nextTick((function(){t._dataListeners[e]&&t._dataListeners[e].$forceUpdate()}))}),{deep:!0})},K.prototype.watchLocale=function(){if(!this._sync||!this._root)return null;var t=this._vm;return this._root.$i18n.vm.$watch("locale",(function(e){t.$set(t,"locale",e),t.$forceUpdate()}),{immediate:!0})},K.prototype.onComponentInstanceCreated=function(t){this._componentInstanceCreatedListener&&this._componentInstanceCreatedListener(t,this)},J.vm.get=function(){return this._vm},J.messages.get=function(){return g(this._getMessages())},J.dateTimeFormats.get=function(){return g(this._getDateTimeFormats())},J.numberFormats.get=function(){return g(this._getNumberFormats())},J.availableLocales.get=function(){return Object.keys(this.messages).sort()},J.locale.get=function(){return this._vm.locale},J.locale.set=function(t){this._vm.$set(this._vm,"locale",t)},J.fallbackLocale.get=function(){return this._vm.fallbackLocale},J.fallbackLocale.set=function(t){this._localeChainCache={},this._vm.$set(this._vm,"fallbackLocale",t)},J.formatFallbackMessages.get=function(){return this._formatFallbackMessages},J.formatFallbackMessages.set=function(t){this._formatFallbackMessages=t},J.missing.get=function(){return this._missing},J.missing.set=function(t){this._missing=t},J.formatter.get=function(){return this._formatter},J.formatter.set=function(t){this._formatter=t},J.silentTranslationWarn.get=function(){return this._silentTranslationWarn},J.silentTranslationWarn.set=function(t){this._silentTranslationWarn=t},J.silentFallbackWarn.get=function(){return this._silentFallbackWarn},J.silentFallbackWarn.set=function(t){this._silentFallbackWarn=t},J.preserveDirectiveContent.get=function(){return this._preserveDirectiveContent},J.preserveDirectiveContent.set=function(t){this._preserveDirectiveContent=t},J.warnHtmlInMessage.get=function(){return this._warnHtmlInMessage},J.warnHtmlInMessage.set=function(t){var e=this,n=this._warnHtmlInMessage;if(this._warnHtmlInMessage=t,n!==t&&("warn"===t||"error"===t)){var a=this._getMessages();Object.keys(a).forEach((function(t){e._checkLocaleMessage(t,e._warnHtmlInMessage,a[t])}))}},J.postTranslation.get=function(){return this._postTranslation},J.postTranslation.set=function(t){this._postTranslation=t},K.prototype._getMessages=function(){return this._vm.messages},K.prototype._getDateTimeFormats=function(){return this._vm.dateTimeFormats},K.prototype._getNumberFormats=function(){return this._vm.numberFormats},K.prototype._warnDefault=function(t,e,n,a,i,o){if(!p(n))return n;if(this._missing){var r=this._missing.apply(null,[t,e,a,i]);if(c(r))return r}if(this._formatFallbackMessages){var l=f.apply(void 0,i);return this._render(e,o,l.params,e)}return e},K.prototype._isFallbackRoot=function(t){return!t&&!p(this._root)&&this._fallbackRoot},K.prototype._isSilentFallbackWarn=function(t){return this._silentFallbackWarn instanceof RegExp?this._silentFallbackWarn.test(t):this._silentFallbackWarn},K.prototype._isSilentFallback=function(t,e){return this._isSilentFallbackWarn(e)&&(this._isFallbackRoot()||t!==this.fallbackLocale)},K.prototype._isSilentTranslationWarn=function(t){return this._silentTranslationWarn instanceof RegExp?this._silentTranslationWarn.test(t):this._silentTranslationWarn},K.prototype._interpolate=function(t,e,n,a,i,o,r){if(!e)return null;var l,s=this._path.getPathValue(e,n);if(Array.isArray(s)||d(s))return s;if(p(s)){if(!d(e))return null;if(!c(l=e[n]))return null}else{if(!c(s))return null;l=s}return(l.indexOf("@:")>=0||l.indexOf("@.")>=0)&&(l=this._link(t,e,l,a,"raw",o,r)),this._render(l,i,o,n)},K.prototype._link=function(t,e,n,a,i,o,r){var l=n,s=l.match(Z);for(var c in s)if(s.hasOwnProperty(c)){var u=s[c],d=u.match(V),p=d[0],f=d[1],g=u.replace(p,"").replace(W,"");if(m(r,g))return l;r.push(g);var h=this._interpolate(t,e,g,a,"raw"===i?"string":i,"raw"===i?void 0:o,r);if(this._isFallbackRoot(h)){if(!this._root)throw Error("unexpected error");var C=this._root.$i18n;h=C._translate(C._getMessages(),C.locale,C.fallbackLocale,g,a,i,o)}h=this._warnDefault(t,g,h,a,Array.isArray(o)?o:[o],i),this._modifiers.hasOwnProperty(f)?h=this._modifiers[f](h):H.hasOwnProperty(f)&&(h=H[f](h)),r.pop(),l=h?l.replace(u,h):l}return l},K.prototype._render=function(t,e,n,a){var i=this._formatter.interpolate(t,n,a);return i||(i=q.interpolate(t,n,a)),"string"!==e||c(i)?i:i.join("")},K.prototype._appendItemToChain=function(t,e,n){var a=!1;return m(t,e)||(a=!0,e&&(a="!"!==e[e.length-1],e=e.replace(/!/g,""),t.push(e),n&&n[e]&&(a=n[e]))),a},K.prototype._appendLocaleToChain=function(t,e,n){var a,i=e.split("-");do{var o=i.join("-");a=this._appendItemToChain(t,o,n),i.splice(-1,1)}while(i.length&&!0===a);return a},K.prototype._appendBlockToChain=function(t,e,n){for(var a=!0,i=0;i<e.length&&"boolean"==typeof a;i++){var o=e[i];c(o)&&(a=this._appendLocaleToChain(t,o,n))}return a},K.prototype._getLocaleChain=function(t,e){if(""===t)return[];this._localeChainCache||(this._localeChainCache={});var n=this._localeChainCache[t];if(!n){e||(e=this.fallbackLocale),n=[];for(var a,i=[t];l(i);)i=this._appendBlockToChain(n,i,e);(i=c(a=l(e)?e:s(e)?e.default?e.default:null:e)?[a]:a)&&this._appendBlockToChain(n,i,null),this._localeChainCache[t]=n}return n},K.prototype._translate=function(t,e,n,a,i,o,r){for(var l,s=this._getLocaleChain(e,n),c=0;c<s.length;c++){var u=s[c];if(!p(l=this._interpolate(u,t[u],a,i,o,r,[a])))return l}return null},K.prototype._t=function(t,e,n,a){for(var i,o=[],r=arguments.length-4;r-- >0;)o[r]=arguments[r+4];if(!t)return"";var l=f.apply(void 0,o),s=l.locale||e,c=this._translate(n,s,this.fallbackLocale,t,a,"string",l.params);if(this._isFallbackRoot(c)){if(!this._root)throw Error("unexpected error");return(i=this._root).$t.apply(i,[t].concat(o))}return c=this._warnDefault(s,t,c,a,o,"string"),this._postTranslation&&null!=c&&(c=this._postTranslation(c,t)),c},K.prototype.t=function(t){for(var e,n=[],a=arguments.length-1;a-- >0;)n[a]=arguments[a+1];return(e=this)._t.apply(e,[t,this.locale,this._getMessages(),null].concat(n))},K.prototype._i=function(t,e,n,a,i){var o=this._translate(n,e,this.fallbackLocale,t,a,"raw",i);if(this._isFallbackRoot(o)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.i(t,e,i)}return this._warnDefault(e,t,o,a,[i],"raw")},K.prototype.i=function(t,e,n){return t?(c(e)||(e=this.locale),this._i(t,e,this._getMessages(),null,n)):""},K.prototype._tc=function(t,e,n,a,i){for(var o,r=[],l=arguments.length-5;l-- >0;)r[l]=arguments[l+5];if(!t)return"";void 0===i&&(i=1);var s={count:i,n:i},c=f.apply(void 0,r);return c.params=Object.assign(s,c.params),r=null===c.locale?[c.params]:[c.locale,c.params],this.fetchChoice((o=this)._t.apply(o,[t,e,n,a].concat(r)),i)},K.prototype.fetchChoice=function(t,e){if(!t&&!c(t))return null;var n=t.split("|");return n[e=this.getChoiceIndex(e,n.length)]?n[e].trim():t},K.prototype.tc=function(t,e){for(var n,a=[],i=arguments.length-2;i-- >0;)a[i]=arguments[i+2];return(n=this)._tc.apply(n,[t,this.locale,this._getMessages(),null,e].concat(a))},K.prototype._te=function(t,e,n){for(var a=[],i=arguments.length-3;i-- >0;)a[i]=arguments[i+3];var o=f.apply(void 0,a).locale||e;return this._exist(n[o],t)},K.prototype.te=function(t,e){return this._te(t,this.locale,this._getMessages(),e)},K.prototype.getLocaleMessage=function(t){return g(this._vm.messages[t]||{})},K.prototype.setLocaleMessage=function(t,e){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(t,this._warnHtmlInMessage,e),this._vm.$set(this._vm.messages,t,e)},K.prototype.mergeLocaleMessage=function(t,e){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(t,this._warnHtmlInMessage,e),this._vm.$set(this._vm.messages,t,y({},this._vm.messages[t]||{},e))},K.prototype.getDateTimeFormat=function(t){return g(this._vm.dateTimeFormats[t]||{})},K.prototype.setDateTimeFormat=function(t,e){this._vm.$set(this._vm.dateTimeFormats,t,e),this._clearDateTimeFormat(t,e)},K.prototype.mergeDateTimeFormat=function(t,e){this._vm.$set(this._vm.dateTimeFormats,t,y(this._vm.dateTimeFormats[t]||{},e)),this._clearDateTimeFormat(t,e)},K.prototype._clearDateTimeFormat=function(t,e){for(var n in e){var a=t+"__"+n;this._dateTimeFormatters.hasOwnProperty(a)&&delete this._dateTimeFormatters[a]}},K.prototype._localizeDateTime=function(t,e,n,a,i){for(var o=e,r=a[o],l=this._getLocaleChain(e,n),s=0;s<l.length;s++){var c=l[s];if(o=c,!p(r=a[c])&&!p(r[i]))break}if(p(r)||p(r[i]))return null;var u=r[i],d=o+"__"+i,f=this._dateTimeFormatters[d];return f||(f=this._dateTimeFormatters[d]=new Intl.DateTimeFormat(o,u)),f.format(t)},K.prototype._d=function(t,e,n){if(!n)return new Intl.DateTimeFormat(e).format(t);var a=this._localizeDateTime(t,e,this.fallbackLocale,this._getDateTimeFormats(),n);if(this._isFallbackRoot(a)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.d(t,n,e)}return a||""},K.prototype.d=function(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];var a=this.locale,i=null;return 1===e.length?c(e[0])?i=e[0]:s(e[0])&&(e[0].locale&&(a=e[0].locale),e[0].key&&(i=e[0].key)):2===e.length&&(c(e[0])&&(i=e[0]),c(e[1])&&(a=e[1])),this._d(t,a,i)},K.prototype.getNumberFormat=function(t){return g(this._vm.numberFormats[t]||{})},K.prototype.setNumberFormat=function(t,e){this._vm.$set(this._vm.numberFormats,t,e),this._clearNumberFormat(t,e)},K.prototype.mergeNumberFormat=function(t,e){this._vm.$set(this._vm.numberFormats,t,y(this._vm.numberFormats[t]||{},e)),this._clearNumberFormat(t,e)},K.prototype._clearNumberFormat=function(t,e){for(var n in e){var a=t+"__"+n;this._numberFormatters.hasOwnProperty(a)&&delete this._numberFormatters[a]}},K.prototype._getNumberFormatter=function(t,e,n,a,i,o){for(var r=e,l=a[r],s=this._getLocaleChain(e,n),c=0;c<s.length;c++){var u=s[c];if(r=u,!p(l=a[u])&&!p(l[i]))break}if(p(l)||p(l[i]))return null;var d,f=l[i];if(o)d=new Intl.NumberFormat(r,Object.assign({},f,o));else{var g=r+"__"+i;(d=this._numberFormatters[g])||(d=this._numberFormatters[g]=new Intl.NumberFormat(r,f))}return d},K.prototype._n=function(t,e,n,a){if(!K.availabilities.numberFormat)return"";if(!n)return(a?new Intl.NumberFormat(e,a):new Intl.NumberFormat(e)).format(t);var i=this._getNumberFormatter(t,e,this.fallbackLocale,this._getNumberFormats(),n,a),o=i&&i.format(t);if(this._isFallbackRoot(o)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.n(t,Object.assign({},{key:n,locale:e},a))}return o||""},K.prototype.n=function(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];var a=this.locale,i=null,r=null;return 1===e.length?c(e[0])?i=e[0]:s(e[0])&&(e[0].locale&&(a=e[0].locale),e[0].key&&(i=e[0].key),r=Object.keys(e[0]).reduce((function(t,n){var a;return m(o,n)?Object.assign({},t,((a={})[n]=e[0][n],a)):t}),null)):2===e.length&&(c(e[0])&&(i=e[0]),c(e[1])&&(a=e[1])),this._n(t,a,i,r)},K.prototype._ntp=function(t,e,n,a){if(!K.availabilities.numberFormat)return[];if(!n)return(a?new Intl.NumberFormat(e,a):new Intl.NumberFormat(e)).formatToParts(t);var i=this._getNumberFormatter(t,e,this.fallbackLocale,this._getNumberFormats(),n,a),o=i&&i.formatToParts(t);if(this._isFallbackRoot(o)){if(!this._root)throw Error("unexpected error");return this._root.$i18n._ntp(t,e,n,a)}return o||[]},Object.defineProperties(K.prototype,J),Object.defineProperty(K,"availabilities",{get:function(){if(!z){var t="undefined"!=typeof Intl;z={dateTimeFormat:t&&void 0!==Intl.DateTimeFormat,numberFormat:t&&void 0!==Intl.NumberFormat}}return z}}),K.install=E,K.version="8.20.0";const X=K,Y={en:{editor:{run:"Run",errorInEditor:"Errors exist in code!",chartOK:"Chart has been generated successfully, ",darkMode:"Dark Mode",enableDecal:"Decal Pattern",renderCfgTitle:"Render",renderer:"Renderer",useDirtyRect:"Use Dirty Rect",download:"Download",edit:"Edit",monacoMode:"Enable Type Checking",tabEditor:"Edit Example",tabFullCodePreview:"Full Code",tabOptionPreview:"Option Preview",minimalBundle:"Minimal Bundle"},chartTypes:{line:"Line",bar:"Bar",pie:"Pie",scatter:"Scatter",map:"GEO/Map",candlestick:"Candlestick",radar:"Radar",boxplot:"Boxplot",heatmap:"Heatmap",graph:"Graph",lines:"Lines",tree:"Tree",treemap:"Treemap",sunburst:"Sunburst",parallel:"Parallel",sankey:"Sankey",funnel:"Funnel",gauge:"Gauge",pictorialBar:"PictorialBar",themeRiver:"ThemeRiver",calendar:"Calendar",custom:"Custom",dataset:"Dataset",dataZoom:"DataZoom",drag:"Drag",rich:"Rich Text",globe:"3D Globe",bar3D:"3D Bar",scatter3D:"3D Scatter",surface:"3D Surface",map3D:"3D Map",lines3D:"3D Lines",line3D:"3D Line",scatterGL:"Scatter GL",linesGL:"Lines GL",flowGL:"Flow GL",graphGL:"Graph GL"}},zh:{editor:{run:"运行",errorInEditor:"编辑器内容有误!",chartOK:"图表已生成, ",darkMode:"深色模式",enableDecal:"无障碍花纹",renderCfgTitle:"渲染设置",useDirtyRect:"开启脏矩形优化",renderer:"渲染模式",download:"下载示例",edit:"编辑",monacoMode:"开启类型检查",tabEditor:"示例编辑",tabFullCodePreview:"完整代码",tabOptionPreview:"配置项",minimalBundle:"按需引入"},chartTypes:{line:"折线图",bar:"柱状图",pie:"饼图",scatter:"散点图",map:"地理坐标/地图",candlestick:"K 线图",radar:"雷达图",boxplot:"盒须图",heatmap:"热力图",graph:"关系图",lines:"路径图",tree:"树图",treemap:"矩形树图",sunburst:"旭日图",parallel:"平行坐标系",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘",pictorialBar:"象形柱图",themeRiver:"主题河流图",calendar:"日历坐标系",custom:"自定义系列",dataset:"数据集",dataZoom:"数据区域缩放",drag:"拖拽",rich:"富文本",globe:"3D 地球",bar3D:"3D 柱状图",scatter3D:"3D 散点图",surface:"3D 曲面",map3D:"3D 地图",lines3D:"3D 路径图",line3D:"3D 折线图",scatterGL:"GL 散点图",linesGL:"GL 路径图",flowGL:"GL 矢量场图",graphGL:"GL 关系图"}}};var Q=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"main-container"}},[t.shared.isMobile?t._e():n("div",{style:{width:t.leftContainerSize+"%"},attrs:{id:"editor-left-container"}},[n("el-tabs",{attrs:{type:"border-card"},model:{value:t.currentTab,callback:function(e){t.currentTab=e},expression:"currentTab"}},[n("el-tab-pane",{attrs:{label:t.$t("editor.tabEditor"),name:"code-editor"}},[n("el-container",[n("el-header",{attrs:{id:"editor-control-panel"}},[n("div",{attrs:{id:"code-info"}},[t.shared.editorStatus.message?[n("span",{staticClass:"code-info-time"},[t._v(t._s(t.currentTime))]),t._v(" "),n("span",{class:"code-info-type-"+t.shared.editorStatus.type},[t._v(t._s(t.shared.editorStatus.message))])]:t._e()],2),t._v(" "),n("div",{staticClass:"editor-controls"},[n("a",{staticClass:"btn btn-default btn-sm",attrs:{href:"javascript:;"},on:{click:t.disposeAndRun}},[t._v(t._s(t.$t("editor.run")))])])]),t._v(" "),n("el-main",[t.shared.typeCheck?n("CodeMonaco",{attrs:{id:"code-panel",initialCode:t.initialCode}}):n("CodeAce",{attrs:{id:"code-panel",initialCode:t.initialCode}})],1)],1)],1),t._v(" "),n("el-tab-pane",{attrs:{label:t.$t("editor.tabFullCodePreview"),name:"full-code",lazy:!0}},[n("el-container",{staticStyle:{width:"100%",height:"100%"}},[n("el-header",{attrs:{id:"full-code-generate-config"}},[n("span",{staticClass:"full-code-generate-config-label"}),t._v(" "),n("el-switch",{staticClass:"enable-decal",attrs:{"active-text":t.$t("editor.minimalBundle"),"inactive-text":""},model:{value:t.fullCodeConfig.minimal,callback:function(e){t.$set(t.fullCodeConfig,"minimal",e)},expression:"fullCodeConfig.minimal"}}),t._v(" "),n("el-switch",{staticClass:"enable-decal",attrs:{"active-text":"ES Modules","inactive-text":""},model:{value:t.fullCodeConfig.esm,callback:function(e){t.$set(t.fullCodeConfig,"esm",e)},expression:"fullCodeConfig.esm"}})],1),t._v(" "),n("el-main",[n("FullCodePreview",{attrs:{code:t.fullCode}})],1)],1)],1),t._v(" "),n("el-tab-pane",{attrs:{label:t.$t("editor.tabOptionPreview"),name:"full-option"}},[n("div",{attrs:{id:"option-outline"}})])],1)],1),t._v(" "),t.shared.isMobile?t._e():n("div",{staticClass:"handler",style:{left:t.leftContainerSize+"%"},attrs:{id:"h-handler"},on:{mousedown:t.onSplitterDragStart}}),t._v(" "),n("Preview",{ref:"preview",staticClass:"right-container",style:{width:100-t.leftContainerSize+"%",left:t.leftContainerSize+"%"},attrs:{inEditor:!0}})],1)};Q._withStripped=!0;var tt=function(){var t=this,e=t.$createElement;return(t._self._c||e)("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"ace-editor-main"})};tt._withStripped=!0;var et=[{name:"color",count:1835},{name:"shadowColor",count:1770},{name:"shadowBlur",count:1770},{name:"shadowOffsetX",count:1770},{name:"shadowOffsetY",count:1770},{name:"borderColor",count:1451},{name:"borderWidth",count:1450},{name:"width",count:1411},{name:"borderType",count:1385},{name:"borderDashOffset",count:1373},{name:"height",count:1120},{name:"backgroundColor",count:1111},{name:"fontSize",count:1098},{name:"fontStyle",count:1081},{name:"fontWeight",count:1081},{name:"fontFamily",count:1081},{name:"lineHeight",count:1081},{name:"textBorderColor",count:1081},{name:"textBorderWidth",count:1081},{name:"textBorderType",count:1081},{name:"textBorderDashOffset",count:1081},{name:"textShadowColor",count:1081},{name:"textShadowBlur",count:1081},{name:"textShadowOffsetX",count:1081},{name:"textShadowOffsetY",count:1081},{name:"padding",count:1079},{name:"borderRadius",count:1051},{name:"align",count:916},{name:"verticalAlign",count:913},{name:"opacity",count:692},{name:"show",count:664},{name:"overflow",count:567},{name:"ellipsis",count:567},{name:"lineOverflow",count:567},{name:"position",count:528},{name:"rich",count:514},{name:"<style_name>",count:514},{name:"distance",count:472},{name:"label",count:468},{name:"type",count:389},{name:"rotate",count:365},{name:"offset",count:357},{name:"itemStyle",count:356},{name:"borderCap",count:347},{name:"borderJoin",count:347},{name:"borderMiterLimit",count:347},{name:"formatter",count:331},{name:"lineStyle",count:298},{name:"dashOffset",count:278},{name:"cap",count:278},{name:"join",count:278},{name:"miterLimit",count:278},{name:"emphasis",count:175},{name:"blur",count:143},{name:"name",count:133},{name:"curveness",count:124},{name:"symbol",count:119},{name:"symbolSize",count:119},{name:"x",count:115},{name:"y",count:115},{name:"value",count:101},{name:"symbolKeepAspect",count:94},{name:"silent",count:93},{name:"labelLine",count:81},{name:"rotation",count:78},{name:"symbolOffset",count:75},{name:"id",count:71},{name:"data",count:71},{name:"symbolRotate",count:67},{name:"animationDuration",count:66},{name:"animationEasing",count:66},{name:"animationDelay",count:65},{name:"z",count:64},{name:"animation",count:64},{name:"animationDurationUpdate",count:63},{name:"animationThreshold",count:62},{name:"animationEasingUpdate",count:62},{name:"animationDelayUpdate",count:62},{name:"style",count:60},{name:"select",count:56},{name:"textStyle",count:54},{name:"zlevel",count:52},{name:"transition",count:48},{name:"focus",count:41},{name:"blurScope",count:41},{name:"coord",count:41},{name:"tooltip",count:40},{name:"inside",count:40},{name:"valueIndex",count:40},{name:"valueDim",count:40},{name:"extraCssText",count:38},{name:"interval",count:34},{name:"left",count:33},{name:"top",count:33},{name:"right",count:33},{name:"bottom",count:33},{name:"draggable",count:31},{name:"decal",count:28},{name:"dashArrayX",count:28},{name:"dashArrayY",count:28},{name:"maxTileWidth",count:28},{name:"maxTileHeight",count:28},{name:"margin",count:27},{name:"xAxis",count:27},{name:"yAxis",count:27},{name:"origin",count:26},{name:"0",count:26},{name:"1",count:26},{name:"precision",count:25},{name:"scaleX",count:25},{name:"scaleY",count:25},{name:"originX",count:25},{name:"originY",count:25},{name:"info",count:25},{name:"invisible",count:25},{name:"ignore",count:25},{name:"textContent",count:25},{name:"textConfig",count:25},{name:"layoutRect",count:25},{name:"local",count:25},{name:"insideFill",count:25},{name:"insideStroke",count:25},{name:"outsideFill",count:25},{name:"outsideStroke",count:25},{name:"smooth",count:24},{name:"selectedMode",count:23},{name:"fill",count:23},{name:"stroke",count:23},{name:"lineWidth",count:23},{name:"length",count:21},{name:"areaStyle",count:20},{name:"shape",count:20},{name:"cursor",count:19},{name:"showAbove",count:19},{name:"splitNumber",count:18},{name:"progressive",count:18},{name:"length2",count:18},{name:"minTurnAngle",count:18},{name:"labelLayout",count:18},{name:"hideOverlap",count:17},{name:"moveOverlap",count:17},{name:"dx",count:17},{name:"dy",count:17},{name:"labelLinePoints",count:17},{name:"icon",count:16},{name:"xAxisIndex",count:15},{name:"yAxisIndex",count:15},{name:"min",count:14},{name:"max",count:14},{name:"scale",count:14},{name:"coordinateSystem",count:13},{name:"markPoint",count:13},{name:"markLine",count:13},{name:"markArea",count:13},{name:"z2",count:13},{name:"during",count:13},{name:"extra",count:13},{name:"orient",count:12},{name:"iconStyle",count:12},{name:"areaColor",count:12},{name:"$action",count:12},{name:"bounding",count:12},{name:"onclick",count:12},{name:"onmouseover",count:12},{name:"onmouseout",count:12},{name:"onmousemove",count:12},{name:"onmousewheel",count:12},{name:"onmousedown",count:12},{name:"onmouseup",count:12},{name:"ondrag",count:12},{name:"ondragstart",count:12},{name:"ondragend",count:12},{name:"ondragenter",count:12},{name:"ondragleave",count:12},{name:"ondragover",count:12},{name:"ondrop",count:12},{name:"legendHoverLink",count:12},{name:"upperLabel",count:12},{name:"dimensions",count:11},{name:"axisPointer",count:10},{name:"snap",count:10},{name:"shadowStyle",count:10},{name:"r",count:10},{name:"encode",count:10},{name:"minAngle",count:10},{name:"morph",count:10},{name:"title",count:9},{name:"textAlign",count:9},{name:"triggerEvent",count:9},{name:"inverse",count:9},{name:"axisLine",count:9},{name:"axisTick",count:9},{name:"axisLabel",count:9},{name:"boundaryGap",count:8},{name:"showMinLabel",count:8},{name:"showMaxLabel",count:8},{name:"splitLine",count:8},{name:"size",count:8},{name:"throttle",count:8},{name:"center",count:8},{name:"startAngle",count:8},{name:"geoIndex",count:8},{name:"cx",count:8},{name:"cy",count:8},{name:"seriesLayoutBy",count:8},{name:"datasetIndex",count:8},{name:"color0",count:8},{name:"borderColor0",count:8},{name:"nameGap",count:7},{name:"minInterval",count:7},{name:"maxInterval",count:7},{name:"logBase",count:7},{name:"alignWithLabel",count:7},{name:"minorTick",count:7},{name:"polarIndex",count:7},{name:"clockwise",count:7},{name:"clip",count:7},{name:"text",count:6},{name:"nameLocation",count:6},{name:"nameTextStyle",count:6},{name:"nameRotate",count:6},{name:"splitArea",count:6},{name:"triggerTooltip",count:6},{name:"status",count:6},{name:"handle",count:6},{name:"textPosition",count:6},{name:"textFill",count:6},{name:"textBackgroundColor",count:6},{name:"textBorderRadius",count:6},{name:"textPadding",count:6},{name:"line",count:6},{name:"layout",count:6},{name:"r0",count:6},{name:"progressiveThreshold",count:6},{name:"colorAlpha",count:6},{name:"colorSaturation",count:6},{name:"offsetCenter",count:6},{name:"target",count:5},{name:"itemGap",count:5},{name:"minorSplitLine",count:5},{name:"radius",count:5},{name:"realtime",count:5},{name:"zoom",count:5},{name:"bar",count:5},{name:"stack",count:5},{name:"roam",count:5},{name:"endAngle",count:5},{name:"valueAnimation",count:5},{name:"calendarIndex",count:5},{name:"link",count:4},{name:"selected",count:4},{name:"trigger",count:4},{name:"axis",count:4},{name:"crossStyle",count:4},{name:"end",count:4},{name:"seriesIndex",count:4},{name:"inRange",count:4},{name:"outOfRange",count:4},{name:"nameMap",count:4},{name:"points",count:4},{name:"smoothConstraint",count:4},{name:"x1",count:4},{name:"y1",count:4},{name:"x2",count:4},{name:"y2",count:4},{name:"percent",count:4},{name:"endLabel",count:4},{name:"large",count:4},{name:"largeThreshold",count:4},{name:"hoverAnimation",count:4},{name:"edgeLabel",count:4},{name:"textVerticalAlign",count:3},{name:"itemWidth",count:3},{name:"itemHeight",count:3},{name:"filterMode",count:3},{name:"handleStyle",count:3},{name:"brushStyle",count:3},{name:"rect",count:3},{name:"polygon",count:3},{name:"map",count:3},{name:"children",count:3},{name:"image",count:3},{name:"font",count:3},{name:"source",count:3},{name:"config",count:3},{name:"print",count:3},{name:"sort",count:3},{name:"withName",count:3},{name:"withoutName",count:3},{name:"roundCap",count:3},{name:"barWidth",count:3},{name:"barMaxWidth",count:3},{name:"barMinWidth",count:3},{name:"progressiveChunkMode",count:3},{name:"visualDimension",count:3},{name:"visualMin",count:3},{name:"visualMax",count:3},{name:"colorMappingBy",count:3},{name:"visibleMin",count:3},{name:"childrenVisibleMin",count:3},{name:"gapWidth",count:3},{name:"borderColorSaturation",count:3},{name:"levels",count:3},{name:"selectorLabel",count:2},{name:"gridIndex",count:2},{name:"realtimeSort",count:2},{name:"sortSeriesIndex",count:2},{name:"onZero",count:2},{name:"onZeroAxisIndex",count:2},{name:"radar",count:2},{name:"dataZoom",count:2},{name:"radiusAxisIndex",count:2},{name:"angleAxisIndex",count:2},{name:"start",count:2},{name:"startValue",count:2},{name:"endValue",count:2},{name:"minSpan",count:2},{name:"maxSpan",count:2},{name:"minValueSpan",count:2},{name:"maxValueSpan",count:2},{name:"zoomLock",count:2},{name:"rangeMode",count:2},{name:"handleIcon",count:2},{name:"handleSize",count:2},{name:"moveHandleStyle",count:2},{name:"range",count:2},{name:"textGap",count:2},{name:"dimension",count:2},{name:"hoverLink",count:2},{name:"controller",count:2},{name:"categories",count:2},{name:"triggerOn",count:2},{name:"toolbox",count:2},{name:"itemSize",count:2},{name:"back",count:2},{name:"option",count:2},{name:"brush",count:2},{name:"lineX",count:2},{name:"lineY",count:2},{name:"keep",count:2},{name:"clear",count:2},{name:"brushType",count:2},{name:"aspectScale",count:2},{name:"boundingCoords",count:2},{name:"scaleLimit",count:2},{name:"nameProperty",count:2},{name:"layoutCenter",count:2},{name:"layoutSize",count:2},{name:"parallel",count:2},{name:"parallelIndex",count:2},{name:"loop",count:2},{name:"checkpointStyle",count:2},{name:"controlStyle",count:2},{name:"progress",count:2},{name:"diffChildrenByName",count:2},{name:"polyline",count:2},{name:"cpx1",count:2},{name:"cpy1",count:2},{name:"cpx2",count:2},{name:"cpy2",count:2},{name:"enabled",count:2},{name:"series",count:2},{name:"maxCount",count:2},{name:"prefix",count:2},{name:"separator",count:2},{name:"middle",count:2},{name:"sampling",count:2},{name:"barMinHeight",count:2},{name:"barMinAngle",count:2},{name:"barGap",count:2},{name:"barCategoryGap",count:2},{name:"period",count:2},{name:"nodeClick",count:2},{name:"nodes",count:2},{name:"links",count:2},{name:"edges",count:2},{name:"depth",count:2},{name:"detail",count:2},{name:"keepAspect",count:2},{name:"symbolPosition",count:2},{name:"symbolRepeat",count:2},{name:"symbolRepeatDirection",count:2},{name:"symbolMargin",count:2},{name:"symbolClip",count:2},{name:"symbolBoundingData",count:2},{name:"symbolPatternSize",count:2},{name:"subtext",count:1},{name:"sublink",count:1},{name:"subtarget",count:1},{name:"subtextStyle",count:1},{name:"legend",count:1},{name:"inactiveColor",count:1},{name:"scrollDataIndex",count:1},{name:"pageButtonItemGap",count:1},{name:"pageButtonGap",count:1},{name:"pageButtonPosition",count:1},{name:"pageFormatter",count:1},{name:"pageIcons",count:1},{name:"horizontal",count:1},{name:"vertical",count:1},{name:"pageIconColor",count:1},{name:"pageIconInactiveColor",count:1},{name:"pageIconSize",count:1},{name:"pageTextStyle",count:1},{name:"selector",count:1},{name:"selectorPosition",count:1},{name:"selectorItemGap",count:1},{name:"selectorButtonGap",count:1},{name:"grid",count:1},{name:"containLabel",count:1},{name:"polar",count:1},{name:"radiusAxis",count:1},{name:"angleAxis",count:1},{name:"indicator",count:1},{name:"disabled",count:1},{name:"zoomOnMouseWheel",count:1},{name:"moveOnMouseMove",count:1},{name:"moveOnMouseWheel",count:1},{name:"preventDefaultMouseMove",count:1},{name:"slider",count:1},{name:"dataBackground",count:1},{name:"selectedDataBackground",count:1},{name:"fillerColor",count:1},{name:"moveHandleIcon",count:1},{name:"moveHandleSize",count:1},{name:"labelPrecision",count:1},{name:"labelFormatter",count:1},{name:"showDetail",count:1},{name:"showDataShadow",count:1},{name:"brushSelect",count:1},{name:"visualMap",count:1},{name:"continuous",count:1},{name:"calculable",count:1},{name:"indicatorIcon",count:1},{name:"indicatorSize",count:1},{name:"indicatorStyle",count:1},{name:"piecewise",count:1},{name:"pieces",count:1},{name:"minOpen",count:1},{name:"maxOpen",count:1},{name:"showLabel",count:1},{name:"itemSymbol",count:1},{name:"showContent",count:1},{name:"alwaysShowContent",count:1},{name:"showDelay",count:1},{name:"hideDelay",count:1},{name:"enterable",count:1},{name:"renderMode",count:1},{name:"confine",count:1},{name:"appendToBody",count:1},{name:"className",count:1},{name:"transitionDuration",count:1},{name:"order",count:1},{name:"showTitle",count:1},{name:"feature",count:1},{name:"saveAsImage",count:1},{name:"connectedBackgroundColor",count:1},{name:"excludeComponents",count:1},{name:"pixelRatio",count:1},{name:"restore",count:1},{name:"dataView",count:1},{name:"readOnly",count:1},{name:"optionToContent",count:1},{name:"contentToOption",count:1},{name:"lang",count:1},{name:"textareaColor",count:1},{name:"textareaBorderColor",count:1},{name:"textColor",count:1},{name:"buttonColor",count:1},{name:"buttonTextColor",count:1},{name:"magicType",count:1},{name:"tiled",count:1},{name:"brushLink",count:1},{name:"brushMode",count:1},{name:"transformable",count:1},{name:"throttleType",count:1},{name:"throttleDelay",count:1},{name:"removeOnClick",count:1},{name:"inBrush",count:1},{name:"outOfBrush",count:1},{name:"geo",count:1},{name:"regions",count:1},{name:"axisExpandable",count:1},{name:"axisExpandCenter",count:1},{name:"axisExpandCount",count:1},{name:"axisExpandWidth",count:1},{name:"axisExpandTriggerOn",count:1},{name:"parallelAxisDefault",count:1},{name:"parallelAxis",count:1},{name:"dim",count:1},{name:"areaSelectStyle",count:1},{name:"singleAxis",count:1},{name:"timeline",count:1},{name:"axisType",count:1},{name:"currentIndex",count:1},{name:"autoPlay",count:1},{name:"rewind",count:1},{name:"playInterval",count:1},{name:"replaceMerge",count:1},{name:"controlPosition",count:1},{name:"showPlayBtn",count:1},{name:"showPrevBtn",count:1},{name:"showNextBtn",count:1},{name:"playIcon",count:1},{name:"stopIcon",count:1},{name:"prevIcon",count:1},{name:"nextIcon",count:1},{name:"graphic",count:1},{name:"elements",count:1},{name:"group",count:1},{name:"circle",count:1},{name:"ring",count:1},{name:"sector",count:1},{name:"arc",count:1},{name:"bezierCurve",count:1},{name:"calendar",count:1},{name:"cellSize",count:1},{name:"dayLabel",count:1},{name:"firstDay",count:1},{name:"monthLabel",count:1},{name:"yearLabel",count:1},{name:"dataset",count:1},{name:"sourceHeader",count:1},{name:"transform",count:1},{name:"filter",count:1},{name:"xxx:xxx",count:1},{name:"fromDatasetIndex",count:1},{name:"fromDatasetId",count:1},{name:"fromTransformResult",count:1},{name:"aria",count:1},{name:"description",count:1},{name:"general",count:1},{name:"withTitle",count:1},{name:"withoutTitle",count:1},{name:"single",count:1},{name:"multiple",count:1},{name:"allData",count:1},{name:"partialData",count:1},{name:"decals",count:1},{name:"showSymbol",count:1},{name:"showAllSymbol",count:1},{name:"connectNulls",count:1},{name:"step",count:1},{name:"smoothMonotone",count:1},{name:"showBackground",count:1},{name:"backgroundStyle",count:1},{name:"pie",count:1},{name:"selectedOffset",count:1},{name:"minShowLabelAngle",count:1},{name:"roseType",count:1},{name:"avoidLabelOverlap",count:1},{name:"stillShowZeroSum",count:1},{name:"alignTo",count:1},{name:"edgeDistance",count:1},{name:"bleedMargin",count:1},{name:"distanceToLabelLine",count:1},{name:"maxSurfaceAngle",count:1},{name:"scaleSize",count:1},{name:"animationType",count:1},{name:"animationTypeUpdate",count:1},{name:"scatter",count:1},{name:"effectScatter",count:1},{name:"effectType",count:1},{name:"showEffectOn",count:1},{name:"rippleEffect",count:1},{name:"radarIndex",count:1},{name:"tree",count:1},{name:"edgeShape",count:1},{name:"edgeForkPosition",count:1},{name:"expandAndCollapse",count:1},{name:"initialTreeDepth",count:1},{name:"leaves",count:1},{name:"treemap",count:1},{name:"squareRatio",count:1},{name:"leafDepth",count:1},{name:"drillDownIcon",count:1},{name:"zoomToNodeRatio",count:1},{name:"breadcrumb",count:1},{name:"emptyItemWidth",count:1},{name:"sunburst",count:1},{name:"renderLabelForZeroData",count:1},{name:"boxplot",count:1},{name:"boxWidth",count:1},{name:"candlestick",count:1},{name:"heatmap",count:1},{name:"pointSize",count:1},{name:"blurSize",count:1},{name:"minOpacity",count:1},{name:"maxOpacity",count:1},{name:"mapValueCalculation",count:1},{name:"showLegendSymbol",count:1},{name:"inactiveOpacity",count:1},{name:"activeOpacity",count:1},{name:"lines",count:1},{name:"effect",count:1},{name:"delay",count:1},{name:"constantSpeed",count:1},{name:"trailLength",count:1},{name:"coords",count:1},{name:"graph",count:1},{name:"circular",count:1},{name:"rotateLabel",count:1},{name:"force",count:1},{name:"initLayout",count:1},{name:"repulsion",count:1},{name:"gravity",count:1},{name:"edgeLength",count:1},{name:"layoutAnimation",count:1},{name:"friction",count:1},{name:"nodeScaleRatio",count:1},{name:"edgeSymbol",count:1},{name:"edgeSymbolSize",count:1},{name:"autoCurveness",count:1},{name:"fixed",count:1},{name:"category",count:1},{name:"ignoreForceLayout",count:1},{name:"sankey",count:1},{name:"nodeWidth",count:1},{name:"nodeGap",count:1},{name:"nodeAlign",count:1},{name:"layoutIterations",count:1},{name:"funnel",count:1},{name:"minSize",count:1},{name:"maxSize",count:1},{name:"gap",count:1},{name:"funnelAlign",count:1},{name:"gauge",count:1},{name:"overlap",count:1},{name:"pointer",count:1},{name:"anchor",count:1},{name:"pictorialBar",count:1},{name:"themeRiver",count:1},{name:"singleAxisIndex",count:1},{name:"date",count:1},{name:"custom",count:1},{name:"renderItem",count:1},{name:"arguments",count:1},{name:"params",count:1},{name:"api",count:1},{name:"styleEmphasis",count:1},{name:"visual",count:1},{name:"barLayout",count:1},{name:"currentSeriesIndices",count:1},{name:"getWidth",count:1},{name:"getHeight",count:1},{name:"getZr",count:1},{name:"getDevicePixelRatio",count:1},{name:"return",count:1},{name:"return_group",count:1},{name:"return_path",count:1},{name:"pathData",count:1},{name:"d",count:1},{name:"return_image",count:1},{name:"return_text",count:1},{name:"return_rect",count:1},{name:"return_circle",count:1},{name:"return_ring",count:1},{name:"return_sector",count:1},{name:"return_arc",count:1},{name:"return_polygon",count:1},{name:"return_polyline",count:1},{name:"return_line",count:1},{name:"return_bezierCurve",count:1},{name:"darkMode",count:1},{name:"stateAnimation",count:1},{name:"duration",count:1},{name:"easing",count:1},{name:"blendMode",count:1},{name:"hoverLayerThreshold",count:1},{name:"useUTC",count:1},{name:"options",count:1},{name:"media",count:1},{name:"query",count:1},{name:"minWidth",count:1},{name:"maxHeight",count:1},{name:"minAspectRatio",count:1}],nt={};function at(t){return Promise.all(t.map((function(t){if("string"==typeof t&&(t={url:t,type:t.match(/\.css$/)?"css":"js"}),nt[t.url])return nt[t.url];var e=new Promise((function(e,n){if("js"===t.type){var a=document.createElement("script");a.src=t.url,a.async=!1,a.onload=function(){e()},a.onerror=function(){n()},document.body.appendChild(a)}else if("css"===t.type){var i=document.createElement("link");i.rel="stylesheet",i.href=t.url,i.onload=function(){e()},i.onerror=function(){n()},document.body.appendChild(i)}}));return nt[t.url]=e,e})))}var it=["line","bar","pie","scatter","map","candlestick","radar","boxplot","heatmap","graph","lines","tree","treemap","sunburst","parallel","sankey","funnel","gauge","pictorialBar","themeRiver","calendar","custom","dataset","dataZoom","drag","rich","globe","bar3D","scatter3D","surface","map3D","lines3D","line3D","scatterGL","linesGL","flowGL","graphGL"],ot=function(t){for(var e={},n=0;n<t.length;n++)e[t[n]]=1;return location.href.indexOf("github.io")>=0?{}:e}(["effectScatter-map","geo-lines","geo-map-scatter","heatmap-map","lines-airline","map-china","map-china-dataRange","map-labels","map-locate","map-province","map-world","map-world-dataRange","scatter-map","scatter-map-brush","scatter-weibo","scatter-world-population","geo3d","geo3d-with-different-height","globe-country-carousel","globe-with-echarts-surface","map3d-alcohol-consumption","map3d-wood-map","scattergl-weibo"]),rt={};(location.search||"").substr(1).split("&").forEach((function(t){var e=t.split("=");rt[e[0]]=e[1]}));var lt,st=((lt=document.createElement("canvas")).width=lt.height=1,!(!lt.getContext||!lt.getContext("2d"))&&0===lt.toDataURL("image/webp").indexOf("data:image/webp")),ct={localEChartsMinJS:"http://localhost/echarts/dist/echarts.js",echartsMinJS:"https://cdn.jsdelivr.net/npm/echarts-nightly@5.1.2-dev.20210512/dist/echarts.min.js",echartsDir:"https://cdn.jsdelivr.net/npm/echarts-nightly@5.1.2-dev.20210512",echartsStatMinJS:"https://cdn.jsdelivr.net/npm/echarts-stat@latest/dist/ecStat.min.js",echartsGLMinJS:"https://cdn.jsdelivr.net/npm/echarts-gl@2/dist/echarts-gl.min.js",datGUIMinJS:"https://cdn.jsdelivr.net/npm/dat.gui@0.6.5/build/dat.gui.min.js",monacoDir:"https://cdn.jsdelivr.net/npm/monaco-editor@0.21.2/min/vs",aceDir:"https://cdn.jsdelivr.net/npm/ace-builds@1.4.12/src-min-noconflict"},ut={cdnRoot:"",version:"",locale:"",darkMode:"dark"===rt.theme,enableDecal:"decal"in rt,renderer:rt.renderer||"canvas",typeCheck:"monaco"===rt.editor,useDirtyRect:"useDirtyRect"in rt,runCode:"",sourceCode:"",runHash:"",isMobile:window.innerWidth<600,editorStatus:{type:"",message:""}};function dt(){return new Promise((function(t){var e=rt.gl?"data-gl":"data";$.ajax("".concat(ut.cdnRoot,"/").concat(e,"/").concat(rt.c,".js?_v_").concat(ut.version),{dataType:"text",success:function(e){t(e)}})}))}function pt(t){return t.replace(/\/\*[\w\W]*?\*\//,"").trim()}var ft=123;function gt(t,e,n,a,i,o,r,l){var s,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),a&&(c.functional=!0),o&&(c._scopeId="data-v-"+o),r?(s=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},c._ssrRegister=s):i&&(s=l?function(){i.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:i),s)if(c.functional){c._injectStyles=s;var u=c.render;c.render=function(t,e){return s.call(e),u(t,e)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,s):[s]}return{exports:t,options:c}}var mt=gt({props:["initialCode"],data:function(){return{shared:ut,loading:!1}},mounted:function(){var t=this;this.loading=!0,("undefined"==typeof ace?at([ct.aceDir+"/ace.js",ct.aceDir+"/ext-language_tools.js"]).then((function(){var t=ace.require("ace/ext/language_tools"),e=[];et.forEach((function(t){e.push({caption:t.name,value:t.name,score:t.count,metal:"local"})})),t.addCompleter({getCompletions:function(t,n,a,i,o){o(null,e)}})})):Promise.resolve()).then((function(){t.loading=!1;var e=ace.edit(t.$el);e.getSession().setMode("ace/mode/javascript"),e.setOptions({enableBasicAutocompletion:!0,enableSnippets:!0,enableLiveAutocompletion:!0}),t._editor=e,e.on("change",(function(){ut.sourceCode=ut.runCode=e.getValue()})),t.initialCode&&t.setInitialCode(t.initialCode)}))},methods:{setInitialCode:function(t){this._editor&&t&&(this._editor.setValue(t||""),this._editor.selection.setSelectionRange({start:{row:1,column:4},end:{row:1,column:4}}))}},watch:{initialCode:function(t){this.setInitialCode(t)}}},tt,[],!1,null,null,null);mt.options.__file="src/editor/CodeAce.vue";const ht=mt.exports;var Ct=function(){var t=this,e=t.$createElement;return(t._self._c||e)("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"monaco-editor-main"})};Ct._withStripped=!0;var yt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{class:[t.inEditor&&!t.shared.isMobile?"":"full"]},[n("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"right-panel",style:{background:t.backgroundColor},attrs:{id:"chart-panel"}},[n("div",{staticClass:"chart-container"})]),t._v(" "),n("div",{attrs:{id:"tool-panel"}},[n("div",{staticClass:"left-panel"},[n("el-switch",{staticClass:"dark-mode",attrs:{"active-color":"#181432","active-text":t.$t("editor.darkMode"),"inactive-text":""},model:{value:t.shared.darkMode,callback:function(e){t.$set(t.shared,"darkMode",e)},expression:"shared.darkMode"}}),t._v(" "),t.isGL?t._e():n("el-switch",{staticClass:"enable-decal",attrs:{"active-text":t.$t("editor.enableDecal"),"inactive-text":""},model:{value:t.shared.enableDecal,callback:function(e){t.$set(t.shared,"enableDecal",e)},expression:"shared.enableDecal"}}),t._v(" "),t.isGL?t._e():n("el-popover",{staticStyle:{"margin-top":"3px"},attrs:{placement:"bottom",width:"450",trigger:"click"}},[n("div",{staticClass:"render-config-container"},[n("el-row",{attrs:{gutter:2,type:"flex",align:"middle"}},[n("el-col",{attrs:{span:12}},[n("label",{staticClass:"tool-label"},[t._v(t._s(t.$t("editor.renderer")))]),t._v(" "),n("el-radio-group",{staticStyle:{"text-transform":"uppercase"},attrs:{size:"mini"},model:{value:t.shared.renderer,callback:function(e){t.$set(t.shared,"renderer",e)},expression:"shared.renderer"}},[n("el-radio-button",{attrs:{label:"svg"}}),t._v(" "),n("el-radio-button",{attrs:{label:"canvas"}})],1)],1),t._v(" "),n("el-col",{attrs:{span:12}},["canvas"===t.shared.renderer?n("el-switch",{attrs:{"active-text":t.$t("editor.useDirtyRect"),"inactive-text":""},model:{value:t.shared.useDirtyRect,callback:function(e){t.$set(t.shared,"useDirtyRect",e)},expression:"shared.useDirtyRect"}}):t._e()],1)],1)],1),t._v(" "),n("span",{staticClass:"render-config-trigger",attrs:{slot:"reference"},slot:"reference"},[n("i",{staticClass:"el-icon-setting el-icon--left"}),t._v(t._s(t.$t("editor.renderCfgTitle")))])])],1),t._v(" "),t.inEditor?[t.shared.isMobile?t._e():n("button",{staticClass:"download btn btn-sm",on:{click:t.downloadExample}},[t._v(t._s(t.$t("editor.download")))]),t._v(" "),n("a",{staticClass:"screenshot",attrs:{target:"_blank"},on:{click:t.screenshot}},[n("i",{staticClass:"el-icon-camera-solid"})])]:n("a",{staticClass:"edit btn btn-sm",attrs:{href:t.editLink,target:"_blank"}},[t._v(t._s(t.$t("editor.edit")))])],2)])};yt._withStripped=!0;var vt=function(){function t(t){var e=this.dom=document.createElement("div");for(var n in e.className="ec-debug-dirty-rect",t=Object.assign({},t),Object.assign(t,{backgroundColor:"rgba(0, 0, 255, 0.2)",border:"1px solid #00f"}),e.style.cssText="\nposition: absolute;\nopacity: 0;\ntransition: opacity 0.5s linear;\npointer-events: none;\n",t)t.hasOwnProperty(n)&&(e.style[n]=t[n])}return t.prototype.update=function(t){var e=this.dom.style;e.width=t.width+"px",e.height=t.height+"px",e.left=t.x+"px",e.top=t.y+"px"},t.prototype.hide=function(){this.dom.style.opacity="0"},t.prototype.show=function(){var t=this;clearTimeout(this._hideTimeout),this.dom.style.opacity="1",this._hideTimeout=setTimeout((function(){t.hide()}),500)},t}();function bt(t){return(bt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var _t=n(279),Lt=n.n(_t);let wt=null,xt=null;function kt(t,e={}){let n=document.createElement(t);return Object.keys(e).forEach((t=>{n[t]=e[t]})),n}function St(t,e,n){return(window.getComputedStyle(t,n||null)||{display:"none"})[e]}function Nt(t){if(!document.documentElement.contains(t))return{detached:!0,rendered:!1};let e=t;for(;e!==document;){if("none"===St(e,"display"))return{detached:!1,rendered:!1};e=e.parentNode}return{detached:!1,rendered:!0}}let Mt=0,Tt=null;function Ot(t,e){if(t.__resize_mutation_handler__||(t.__resize_mutation_handler__=Dt.bind(t)),!t.__resize_listeners__)if(t.__resize_listeners__=[],window.ResizeObserver){let{offsetWidth:e,offsetHeight:n}=t,a=new ResizeObserver((()=>{(t.__resize_observer_triggered__||(t.__resize_observer_triggered__=!0,t.offsetWidth!==e||t.offsetHeight!==n))&&Et(t)})),{detached:i,rendered:o}=Nt(t);t.__resize_observer_triggered__=!1===i&&!1===o,t.__resize_observer__=a,a.observe(t)}else if(t.attachEvent&&t.addEventListener)t.__resize_legacy_resize_handler__=function(){Et(t)},t.attachEvent("onresize",t.__resize_legacy_resize_handler__),document.addEventListener("DOMSubtreeModified",t.__resize_mutation_handler__);else if(Mt||(Tt=function(t){var e=document.createElement("style");return e.type="text/css",e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t)),(document.querySelector("head")||document.body).appendChild(e),e}('.resize-triggers{visibility:hidden;opacity:0;pointer-events:none}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:"";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}')),function(t){let e=St(t,"position");e&&"static"!==e||(t.style.position="relative"),t.__resize_old_position__=e,t.__resize_last__={};let n=kt("div",{className:"resize-triggers"}),a=kt("div",{className:"resize-expand-trigger"}),i=kt("div"),o=kt("div",{className:"resize-contract-trigger"});a.appendChild(i),n.appendChild(a),n.appendChild(o),t.appendChild(n),t.__resize_triggers__={triggers:n,expand:a,expandChild:i,contract:o},Pt(t),t.addEventListener("scroll",At,!0),t.__resize_last__={width:t.offsetWidth,height:t.offsetHeight}}(t),t.__resize_rendered__=Nt(t).rendered,window.MutationObserver){let e=new MutationObserver(t.__resize_mutation_handler__);e.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),t.__resize_mutation_observer__=e}t.__resize_listeners__.push(e),Mt++}function Dt(){let{rendered:t,detached:e}=Nt(this);t!==this.__resize_rendered__&&(!e&&this.__resize_triggers__&&(Pt(this),this.addEventListener("scroll",At,!0)),this.__resize_rendered__=t,Et(this))}function At(){var t,e;Pt(this),this.__resize_raf__&&(t=this.__resize_raf__,xt||(xt=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(t){clearTimeout(t)}).bind(window)),xt(t)),this.__resize_raf__=(e=()=>{let t=function(t){let{width:e,height:n}=t.__resize_last__,{offsetWidth:a,offsetHeight:i}=t;return a!==e||i!==n?{width:a,height:i}:null}(this);t&&(this.__resize_last__=t,Et(this))},wt||(wt=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){return setTimeout(t,16)}).bind(window)),wt(e))}function Et(t){t&&t.__resize_listeners__&&t.__resize_listeners__.forEach((e=>{e.call(t,t)}))}function Pt(t){let{expand:e,expandChild:n,contract:a}=t.__resize_triggers__,{scrollWidth:i,scrollHeight:o}=a,{offsetWidth:r,offsetHeight:l,scrollWidth:s,scrollHeight:c}=e;a.scrollLeft=i,a.scrollTop=o,n.style.width=r+1+"px",n.style.height=l+1+"px",e.scrollLeft=s,e.scrollTop=c}const Ft=[{category:["bar"],id:"bar-background",tags:[],title:"Bar with Background",titleCN:"带背景色的柱状图",difficulty:0},{category:["custom"],id:"bar-histogram",tags:[],title:"Histogram with Custom Series",titleCN:"直方图(自定义系列)",difficulty:0},{category:["bar"],id:"bar-simple",tags:[],title:"Basic Bar",titleCN:"基础柱状图",difficulty:0},{category:["bar"],id:"bar-tick-align",tags:[],title:"Axis Align with Tick",titleCN:"坐标轴刻度与标签对齐",difficulty:0},{category:["calendar"],id:"calendar-simple",tags:[],title:"Simple Calendar",titleCN:"基础日历图",difficulty:0},{category:["candlestick"],id:"candlestick-simple",tags:[],title:"Basic Candlestick",titleCN:"基础 K 线图",difficulty:0},{category:["dataset","bar","transform"],id:"data-transform-sort-bar",tags:[],title:"Sort Data in Bar Chart",titleCN:"柱状图排序",difficulty:0},{category:["heatmap"],id:"heatmap-cartesian",tags:[],title:"Heatmap on Cartesian",titleCN:"笛卡尔坐标系上的热力图",difficulty:0},{category:["line"],id:"line-simple",tags:[],title:"Basic Line Chart",titleCN:"基础折线图",difficulty:0},{category:["line"],id:"line-smooth",tags:[],title:"Smoothed Line Chart",titleCN:"基础平滑折线图",difficulty:0},{category:["pie"],id:"pie-simple",tags:[],title:"Referer of a website",titleCN:"某站点用户访问来源",difficulty:0},{category:["radar"],id:"radar",tags:[],title:"Basic Radar Chart",titleCN:"基础雷达图",difficulty:0},{category:["sankey"],id:"sankey-simple",tags:[],title:"Basic Sankey",titleCN:"基础桑基图",difficulty:0},{category:["scatter"],id:"scatter-simple",tags:[],title:"Basic Scatter Chart",titleCN:"基础散点图",difficulty:0},{category:["line"],id:"area-basic",tags:[],title:"Basic area chart",titleCN:"基础面积图",difficulty:1},{category:["bar"],id:"bar-data-color",tags:[],title:"Set Style of Single Bar.",titleCN:"自定义单个柱子颜色",difficulty:1},{category:["bar"],id:"bar-waterfall",tags:[],title:"Waterfall Chart",titleCN:"瀑布图(柱状图模拟)",difficulty:1},{category:["calendar","heatmap"],id:"calendar-heatmap",tags:[],title:"Calendar Heatmap",titleCN:"日历热力图",difficulty:1},{category:["calendar","heatmap"],id:"calendar-vertical",tags:[],title:"Calendar Heatmap Vertical",titleCN:"纵向日历图",difficulty:1},{category:["candlestick"],id:"custom-ohlc",tags:[],title:"OHLC Chart",titleCN:"OHLC 图(使用自定义系列)",difficulty:1},{category:["custom"],id:"custom-profit",tags:[],title:"Profit",titleCN:"利润分布直方图",difficulty:1},{category:["dataset","bar"],id:"dataset-encode0",tags:[],title:"Simple Encode",titleCN:"指定数据到坐标轴的映射",difficulty:1},{category:["gauge"],id:"gauge",tags:[],title:"Gauge Basic chart",titleCN:"基础仪表盘",difficulty:1},{category:["gauge"],id:"gauge-simple",tags:[],title:"Simple Gauge",titleCN:"带标签数字动画的基础仪表盘",difficulty:1},{category:["graph"],id:"graph-force2",tags:[],title:"Force Layout",titleCN:"力引导布局",difficulty:1},{category:["line"],id:"line-stack",tags:[],title:"Stacked Line Chart",titleCN:"折线图堆叠",difficulty:1},{category:["parallel"],id:"parallel-simple",tags:[],title:"Basic Parallel",titleCN:"基础平行坐标",difficulty:1},{category:["pie"],id:"pie-borderRadius",tags:[],title:"Doughnut Chart with Rounded Corner",titleCN:"圆角环形图",difficulty:1},{category:["pie"],id:"pie-doughnut",tags:[],title:"Doughnut Chart",titleCN:"环形图",difficulty:1},{category:["radar"],id:"radar-aqi",tags:[],title:"AQI - Radar Chart",titleCN:"AQI - 雷达图",difficulty:1},{category:["sankey"],id:"sankey-vertical",tags:[],title:"Sankey Orient Vertical",titleCN:"垂直方向的桑基图",difficulty:1},{category:["scatter"],id:"scatter-anscombe-quartet",tags:[],title:"Anscomb's quartet",titleCN:"Anscomb's quartet",difficulty:1},{category:["scatter"],id:"scatter-clustering",tags:[],title:"Clustering Process",titleCN:"数据聚合",difficulty:1},{category:["scatter"],id:"scatter-clustering-process",tags:[],title:"Clustering Process",titleCN:"聚合过程可视化",difficulty:1},{category:["scatter"],id:"scatter-exponential-regression",tags:[],title:"Exponential Regression",titleCN:"指数回归(使用统计插件)",difficulty:1},{category:["sunburst"],id:"sunburst-simple",tags:[],title:"Basic Sunburst",titleCN:"基础旭日图",difficulty:1},{category:["line"],id:"area-stack",tags:[],title:"Stacked area chart",titleCN:"堆叠面积图",difficulty:2},{category:["line"],id:"area-stack-gradient",tags:[],title:"Gradient Stacked area chart",titleCN:"渐变堆叠面积图",difficulty:2},{category:["bar"],id:"bar-negative2",tags:[],title:"Bar Chart with Negative Value",titleCN:"交错正负轴标签",difficulty:2},{category:["bar"],id:"bar-y-category",tags:[],title:"World Total Population",titleCN:"世界人口总量 - 条形图",difficulty:2},{category:["calendar"],id:"calendar-horizontal",tags:[],title:"Calendar Heatmap Horizontal",titleCN:"横向日力图",difficulty:2},{category:["candlestick"],id:"candlestick-sh",tags:[],title:"ShangHai Index",titleCN:"上证指数",difficulty:2},{category:["custom","dataZoom"],id:"custom-error-scatter",tags:[],title:"Error Scatter on Catesian",titleCN:"使用自定系列给散点图添加误差范围",difficulty:2},{category:["scatter"],id:"effectScatter-map",tags:[],title:"Air Quality",titleCN:"全国主要城市空气质量",difficulty:2},{category:["gauge"],id:"gauge-speed",tags:[],title:"Speed Gauge",titleCN:"速度仪表盘",difficulty:2},{category:["graph"],id:"graph-grid",tags:[],title:"Graph on Cartesian",titleCN:"笛卡尔坐标系上的 Graph",difficulty:2},{category:["graph"],id:"graph-simple",tags:[],title:"Simple Graph",titleCN:"Graph 简单示例",difficulty:2},{category:["heatmap"],id:"heatmap-large",tags:[],title:"Heatmap - 2w data",titleCN:"热力图 - 2w 数据",difficulty:2},{category:["heatmap"],id:"heatmap-large-piecewise",tags:[],title:"Heatmap - Discrete Mapping of Color",titleCN:"热力图 - 颜色的离散映射",difficulty:2},{category:["line"],id:"line-marker",tags:[],title:"Temperature Change in the coming week",titleCN:"未来一周气温变化",difficulty:2},{category:["parallel"],id:"parallel-aqi",tags:[],title:"Parallel Aqi",titleCN:"AQI 分布(平行坐标)",difficulty:2},{category:["pie"],id:"pie-custom",tags:[],title:"Customized Pie",titleCN:"饼图自定义样式",difficulty:2},{category:["pie"],id:"pie-pattern",tags:[],title:"Texture on Pie Chart",titleCN:"饼图纹理",difficulty:2},{category:["pie"],id:"pie-roseType",tags:[],title:"Nightingale's Rose Diagram",titleCN:"南丁格尔玫瑰图",difficulty:2},{category:["pie"],id:"pie-roseType-simple",tags:[],title:"Nightingale's Rose Diagram",titleCN:"基础南丁格尔玫瑰图",difficulty:2},{category:["radar"],id:"radar-custom",tags:[],title:"Customized Radar Chart",titleCN:"自定义雷达图",difficulty:2},{category:["sankey"],id:"sankey-itemstyle",tags:[],title:"Specify ItemStyle for Each Node in Sankey",titleCN:"桑基图节点自定义样式",difficulty:2},{category:["sankey"],id:"sankey-levels",tags:[],title:"Sankey with Levels Setting",titleCN:"桑基图层级自定义样式",difficulty:2},{category:["scatter"],id:"scatter-effect",tags:[],title:"Effect Scatter Chart",titleCN:"涟漪特效散点图",difficulty:2},{category:["scatter"],id:"scatter-linear-regression",tags:[],title:"Linear Regression",titleCN:"线性回归(使用统计插件)",difficulty:2},{category:["scatter"],id:"scatter-polynomial-regression",tags:[],title:"Polynomial Regression",titleCN:"多项式回归(使用统计插件)",difficulty:2},{category:["sunburst"],id:"sunburst-borderRadius",tags:[],title:"Sunburst with Rounded Corner",titleCN:"圆角旭日图",difficulty:2},{category:["sunburst"],id:"sunburst-label-rotate",tags:[],title:"Sunburst Label Rotate",titleCN:"旭日图标签旋转",difficulty:2},{category:["line","visualMap"],id:"area-pieces",tags:[],title:"Area Pieces",titleCN:"折线图区域高亮",difficulty:3},{category:["bar"],id:"bar-gradient",tags:[],title:"Clickable Column Chart with Gradient",titleCN:"特性示例:渐变色 阴影 点击缩放",difficulty:3},{category:["bar"],id:"bar-label-rotation",tags:[],title:"Bar Label Rotation",titleCN:"柱状图标签旋转",difficulty:3},{category:["bar"],id:"bar-stack",tags:[],title:"Stacked Column Chart",titleCN:"堆叠柱状图",difficulty:3},{category:["bar"],id:"bar-waterfall2",tags:[],title:"Waterfall Chart",titleCN:"阶梯瀑布图(柱状图模拟)",difficulty:3},{category:["bar"],id:"bar-y-category-stack",tags:[],title:"Stacked Horizontal Bar",titleCN:"堆叠条形图",difficulty:3},{category:["candlestick"],id:"candlestick-large",tags:[],title:"Large Scale Candlestick",titleCN:"大数据量K线图",difficulty:3},{category:["custom"],id:"custom-bar-trend",tags:[],title:"Custom Bar Trend",titleCN:"使用自定义系列添加柱状图趋势",difficulty:3},{category:["custom"],id:"custom-cartesian-polygon",tags:[],title:"Custom Cartesian Polygon",titleCN:"自定义多边形图",difficulty:3},{category:["custom"],id:"custom-error-bar",tags:[],title:"Error Bar on Catesian",titleCN:"使用自定系列给柱状图添加误差范围",difficulty:3},{category:["custom"],id:"custom-profile",tags:[],title:"Profile",titleCN:"性能分析图",difficulty:3},{category:["custom"],id:"cycle-plot",tags:[],title:"Cycle Plot",titleCN:"Cycle Plot",difficulty:3},{category:["line"],id:"data-transform-filter",tags:[],title:"Data Transform Fitler",titleCN:"数据过滤",difficulty:3},{category:["dataset","pie","transform"],id:"data-transform-multiple-pie",tags:[],title:"Partition Data to Pies",titleCN:"分割数据到数个饼图",difficulty:3},{category:["dataset","pie"],id:"dataset-default",tags:[],title:"Default arrangement",titleCN:"默认 encode 设置",difficulty:3},{category:["dataset"],id:"dataset-encode1",tags:[],title:"Encode and Matrix",titleCN:"指定数据到坐标轴的映射",difficulty:3},{category:["gauge"],id:"gauge-progress",tags:[],title:"Grogress Gauge",titleCN:"进度仪表盘",difficulty:3},{category:["gauge"],id:"gauge-stage",tags:[],title:"Stage Speed Gauge",titleCN:"阶段速度仪表盘",difficulty:3},{category:["graph"],id:"graph-force",tags:[],title:"Force Layout",titleCN:"力引导布局",difficulty:3},{category:["graph"],id:"graph-label-overlap",tags:[],title:"Hide Overlapped Label",titleCN:"关系图自动隐藏重叠标签",difficulty:3},{category:["heatmap"],id:"heatmap-bmap",tags:["bmap"],title:"Heatmap on Baidu Map Extension",titleCN:"热力图与百度地图扩展",difficulty:3},{category:["heatmap"],id:"heatmap-map",tags:[],title:"Air Qulity",titleCN:"全国主要城市空气质量",difficulty:3},{category:["line"],id:"line-gradient",tags:[],title:"Line Gradient",titleCN:"折线图的渐变",difficulty:3},{category:["line"],id:"line-sections",tags:[],title:"Distribution of Electricity",titleCN:"一天用电量分布",difficulty:3},{category:["pie"],id:"pie-alignTo",tags:[],title:"Pie Label Align",titleCN:"饼图标签对齐",difficulty:3},{category:["pie"],id:"pie-labelLine-adjust",tags:[],title:"Label Line Adjust",titleCN:"饼图引导线调整",difficulty:3},{category:["radar"],id:"radar2",tags:[],title:"Proportion of Browsers",titleCN:"浏览器占比变化",difficulty:3},{category:["sankey"],id:"sankey-energy",tags:[],title:"Gradient Edge",titleCN:"桑基图渐变色边",difficulty:3},{category:["sankey"],id:"sankey-nodeAlign-left",tags:[],title:"Node Align Left in Sankey",titleCN:"桑基图左对齐布局",difficulty:3},{category:["sankey"],id:"sankey-nodeAlign-right",tags:[],title:"Node Align Right in Sankey",titleCN:"桑基图右对齐布局",difficulty:3},{category:["scatter"],id:"scatter-punchCard",tags:[],title:"Punch Card of Github",titleCN:"GitHub 打卡气泡图",difficulty:3},{category:["scatter"],id:"scatter-single-axis",tags:[],title:"Scatter on Single Axis",titleCN:"单轴散点图",difficulty:3},{category:["scatter"],id:"scatter-weight",tags:[],title:"Distribution of Height and Weight",titleCN:"男性女性身高体重分布",difficulty:3},{category:["sunburst"],id:"sunburst-monochrome",tags:[],title:"Monochrome Sunburst",titleCN:"Monochrome Sunburst",difficulty:3},{category:["line","dataZoom"],id:"area-simple",tags:[],title:"Large scale area chart",titleCN:"大数据量面积图",difficulty:4},{category:["bar"],id:"bar-brush",tags:[],title:"Brush Select on Column Chart",titleCN:"柱状图框选",difficulty:4},{category:["bar"],id:"bar-negative",tags:[],title:"Bar Chart with Negative Value",titleCN:"正负条形图",difficulty:4},{category:["bar"],id:"bar1",tags:[],title:"Rainfall and Evaporation",titleCN:"某地区蒸发量和降水量",difficulty:4},{category:["calendar","graph"],id:"calendar-graph",tags:[],title:"Calendar Graph",titleCN:"日历关系图",difficulty:4},{category:["calendar"],id:"calendar-lunar",tags:[],title:"Calendar Lunar",titleCN:"农历日历图",difficulty:4},{category:["candlestick"],id:"candlestick-touch",tags:[],title:"Axis Pointer Link and Touch",titleCN:"触屏上的坐标轴指示器",difficulty:4},{category:["line"],id:"confidence-band",tags:[],title:"Confidence Band",titleCN:"Confidence Band",difficulty:4},{category:["custom","dataZoom","drag"],id:"custom-gantt-flight",tags:[],title:"Gantt Chart of Airport Flights",titleCN:"机场航班甘特图",difficulty:4},{category:["custom"],id:"custom-polar-heatmap",tags:[],title:"Polar Heatmap",titleCN:"极坐标热力图(自定义系列)",difficulty:4},{category:["boxplot"],id:"data-transform-aggregate",tags:[],title:"Data Transform Simple Aggregate",titleCN:"简单的数据聚合",difficulty:4},{category:["gauge"],id:"gauge-grade",tags:[],title:"Grade Gauge",titleCN:"等级仪表盘",difficulty:4},{category:["gauge"],id:"gauge-multi-title",tags:[],title:"Multi Title Gauge",titleCN:"多标题仪表盘",difficulty:4},{category:["gauge"],id:"gauge-temperature",tags:[],title:"Temperature Gauge chart",titleCN:"气温仪表盘",difficulty:4},{category:["graph"],id:"graph",tags:[],title:"Les Miserables",titleCN:"悲惨世界人物关系图",difficulty:4},{category:["line"],id:"grid-multiple",tags:[],title:"Rainfall and Water Flow",titleCN:"雨量流量关系图",difficulty:4},{category:["line"],id:"line-aqi",tags:[],title:"Beijing AQI",titleCN:"北京 AQI 可视化",difficulty:4},{category:["bar"],id:"mix-line-bar",tags:[],title:"Mixed Line and Bar",titleCN:"折柱混合",difficulty:4},{category:["bar"],id:"mix-zoom-on-value",tags:[],title:"Mix Zoom On Value",titleCN:"多数值轴轴缩放",difficulty:4},{category:["line"],id:"multiple-x-axis",tags:[],title:"Multiple X Axes",titleCN:"多 X 轴",difficulty:4},{category:["bar"],id:"multiple-y-axis",tags:[],title:"Multiple Y Axes",titleCN:"多 Y 轴示例",difficulty:4},{category:["parallel"],id:"parallel-nutrients",tags:[],title:"Parallel Nutrients",titleCN:"营养结构(平行坐标)",difficulty:4},{category:["pie"],id:"pie-legend",tags:[],title:"Pie with Scrollable Legend",titleCN:"可滚动的图例",difficulty:4},{category:["pie","rich"],id:"pie-rich-text",tags:[],title:"Pie Special Label",titleCN:"富文本标签",difficulty:4},{category:["scatter"],id:"scatter-label-align-right",tags:[],title:"Align Label on the Top",titleCN:"散点图标签顶部对齐",difficulty:4},{category:["scatter"],id:"scatter-label-align-top",tags:[],title:"Align Label on the Top",titleCN:"散点图标签顶部对齐",difficulty:4},{category:["sunburst"],id:"sunburst-visualMap",tags:[],title:"Sunburst VisualMap",titleCN:"旭日图使用视觉编码",difficulty:4},{category:["line"],id:"area-rainfall",tags:[],title:"Rainfall",titleCN:"雨量流量关系图",difficulty:5},{category:["line"],id:"area-time-axis",tags:[],title:"Area Chart with Time Axis",titleCN:"时间轴折线图",difficulty:5},{category:["bar"],id:"bar-animation-delay",tags:[],title:"Animation Delay",titleCN:"柱状图动画延迟",difficulty:5},{category:["bar"],id:"bar-large",tags:[],title:"Large Scale Bar Chart",titleCN:"大数据量柱图",difficulty:5},{category:["bar"],id:"bar-race",tags:[],title:"Bar Race",titleCN:"动态排序柱状图",difficulty:5},{category:["dataset","line","pie"],id:"dataset-link",tags:[],title:"Share Dataset",titleCN:"联动和共享数据集",difficulty:5},{category:["dataset","bar"],id:"dataset-series-layout-by",tags:[],title:"Series Layout By Column or Row",titleCN:"系列按行和按列排布",difficulty:5},{category:["dataset","bar"],id:"dataset-simple0",tags:[],title:"Simple Example of Dataset",titleCN:"最简单的数据集(dataset)",difficulty:5},{category:["dataset","bar"],id:"dataset-simple1",tags:[],title:"Dataset in Object Array",titleCN:"对象数组的输入格式",difficulty:5},{category:["line"],id:"dynamic-data2",tags:[],title:"Dynamic Data + Time Axis",titleCN:"动态数据 + 时间坐标轴",difficulty:5},{category:["gauge"],id:"gauge-ring",tags:[],title:"Ring Gauge",titleCN:"得分环",difficulty:5},{category:["graph"],id:"graph-circular-layout",tags:[],title:"Les Miserables",titleCN:"悲惨世界人物关系图(环形布局)",difficulty:5},{category:["line"],id:"line-function",tags:[],title:"Function Plot",titleCN:"函数绘图",difficulty:5},{category:["line"],id:"line-race",tags:[],title:"Line Race",titleCN:"动态排序折线图",difficulty:5},{category:["pie","rich"],id:"pie-nest",tags:[],title:"Nested Pies",titleCN:"嵌套环形图",difficulty:5},{category:["scatter"],id:"scatter-large",tags:[],title:"Large Scatter",titleCN:"大规模散点图",difficulty:5},{category:["scatter"],id:"scatter-nebula",tags:[],title:"Scatter Nebula",titleCN:"大规模星云散点图",difficulty:5},{category:["scatter"],id:"scatter-stream-visual",tags:[],title:"Visual interaction with stream",titleCN:"流式渲染和视觉映射操作",difficulty:5},{category:["sunburst"],id:"sunburst-drink",tags:[],title:"Drink Flavors",titleCN:"Drink Flavors",difficulty:5},{category:["custom","dataZoom"],id:"wind-barb",tags:[],title:"Wind Barb",titleCN:"风向图",difficulty:5},{category:["bar"],id:"bar-race-country",tags:[],title:"Bar Race",titleCN:"动态排序柱状图 - 人均收入",difficulty:6},{category:["bar","rich"],id:"bar-rich-text",tags:[],title:"Wheater Statistics",titleCN:"天气统计(富文本)",difficulty:6},{category:["scatter"],id:"bubble-gradient",tags:[],title:"Bubble Chart",titleCN:"气泡图",difficulty:6},{category:["calendar","pie"],id:"calendar-pie",tags:[],title:"Calendar Pie",titleCN:"日历饼图",difficulty:6},{category:["custom","map"],id:"custom-hexbin",tags:[],title:"Hexagonal Binning",titleCN:"六边形分箱图(自定义系列)",difficulty:6},{category:["bar"],id:"dynamic-data",tags:[],title:"Dynamic Data",titleCN:"动态数据",difficulty:6},{category:["gauge"],id:"gauge-barometer",tags:[],title:"Gauge Barometer chart",titleCN:"气压表",difficulty:6},{category:["graph"],id:"graph-force-dynamic",tags:[],title:"Graph Dynamic",titleCN:"动态增加图节点",difficulty:6},{category:["line"],id:"line-markline",tags:[],title:"Line with Marklines",titleCN:"折线图的标记线",difficulty:6},{category:["line"],id:"line-style",tags:[],title:"Line Style and Item Style",titleCN:"自定义折线图样式",difficulty:6},{category:["bar"],id:"mix-timeline-finance",tags:[],title:"Finance Indices 2002",titleCN:"2002全国宏观经济指标",difficulty:6},{category:["sunburst"],id:"sunburst-book",tags:[],title:"Book Records",titleCN:"书籍分布",difficulty:6},{category:["bar"],id:"watermark",tags:[],title:"Watermark - ECharts Download",titleCN:"水印 - ECharts 下载统计",difficulty:6},{category:["bar"],id:"bar-polar-real-estate",tags:[],title:"Bar Chart on Polar",difficulty:7},{category:["bar"],id:"bar-polar-stack",tags:[],title:"Stacked Bar Chart on Polar",titleCN:"极坐标系下的堆叠柱状图",difficulty:7},{category:["bar"],id:"bar-polar-stack-radial",tags:[],title:"Stacked Bar Chart on Polar(Radial)",titleCN:"极坐标系下的堆叠柱状图",difficulty:7},{category:["custom","calendar"],id:"custom-calendar-icon",tags:[],title:"Custom Calendar Icon",titleCN:"日历图自定义图标",difficulty:7},{category:["custom"],id:"custom-wind",tags:[],title:"Use custom series to draw wind vectors",titleCN:"使用自定义系列绘制风场",difficulty:7},{category:["gauge"],id:"gauge-clock",tags:[],title:"Clock Gauge",titleCN:"时钟仪表盘",difficulty:7},{category:["graph"],id:"graph-life-expectancy",tags:[],title:"Graph Life Expectancy",titleCN:"Graph Life Expectancy",difficulty:7},{category:["line"],id:"line-in-cartesian-coordinate-system",tags:[],title:"Line Chart in Cartesian Coordinate System",titleCN:"双数值轴折线图",difficulty:7},{category:["line"],id:"line-log",tags:[],title:"Log Axis",titleCN:"对数轴示例",difficulty:7},{category:["line"],id:"line-step",tags:[],title:"Step Line",titleCN:"阶梯折线图",difficulty:7},{category:["bar"],id:"polar-roundCap",tags:[],title:"Rounded Bar on Polar",titleCN:"圆角环形图",difficulty:7},{category:["scatter"],id:"scatter-aqi-color",tags:[],title:"Scatter Aqi Color",titleCN:"AQI 气泡图",difficulty:7},{category:["scatter"],id:"scatter-nutrients",tags:[],title:"Scatter Nutrients",titleCN:"营养分布散点图",difficulty:7},{category:["scatter"],id:"scatter-nutrients-matrix",tags:[],title:"Scatter Nutrients Matrix",titleCN:"营养分布散点矩阵",difficulty:7},{category:["gauge"],id:"gauge-car",tags:[],title:"Gauge Car",titleCN:"Gauge Car",difficulty:8},{category:["graph"],id:"graph-webkit-dep",tags:[],title:"Graph Webkit Dep",titleCN:"WebKit 模块关系依赖图",difficulty:8},{category:["line"],id:"line-easing",tags:[],title:"Line Easing Visualizing",titleCN:"缓动函数可视化",difficulty:8},{category:["line"],id:"line-y-category",tags:[],title:"Line Y Category",titleCN:"垂直折线图(Y轴为类目轴)",difficulty:8},{category:["scatter"],id:"scatter-polar-punchCard",tags:[],title:"Punch Card of Github",titleCN:"GitHub 打卡气泡图(极坐标)",difficulty:8},{category:["custom"],id:"custom-aggregate-scatter-bar",tags:[],title:"Aggregate Morphing Between Scatter and Bar",titleCN:"聚合分割形变(散点图 - 柱状图)",difficulty:9},{category:["custom"],id:"custom-aggregate-scatter-pie",tags:[],title:"Aggregate Morphing Between Scatter and Pie",titleCN:"聚合分割形变(散点图 - 饼图)",difficulty:9},{category:["custom"],id:"custom-gauge",tags:[],title:"Custom Gauge",titleCN:"自定义仪表",difficulty:9},{category:["graph"],id:"graph-npm",tags:[],title:"NPM Dependencies",titleCN:"NPM 依赖关系图",difficulty:9},{category:["line"],id:"line-graphic",tags:[],title:"Custom Graphic Component",titleCN:"自定义图形组件",difficulty:9},{category:["line"],id:"line-pen",tags:[],title:"Click to Add Points",titleCN:"点击添加折线图拐点",difficulty:9},{category:["scatter"],id:"scatter-life-expectancy-timeline",tags:[],title:"Life Expectancy and GDP",titleCN:"各国人均寿命与GDP关系演变",difficulty:9},{category:["scatter"],id:"scatter-painter-choice",tags:[],title:"Master Painter Color Choices Throughout History",titleCN:"Master Painter Color Choices Throughout History",difficulty:9},{category:["boxplot"],id:"boxplot-light-velocity",tags:[],title:"Boxplot Light Velocity",titleCN:"基础盒须图",difficulty:10},{category:["boxplot"],id:"boxplot-light-velocity2",tags:[],title:"Boxplot Light Velocity2",titleCN:"垂直方向盒须图",difficulty:10},{category:["boxplot"],id:"boxplot-multi",tags:[],title:"Multiple Categories",titleCN:"多系列盒须图",difficulty:10},{category:[],id:"calendar-effectscatter",tags:[],difficulty:10},{category:["candlestick"],id:"candlestick-brush",tags:[],title:"Candlestick Brush",titleCN:"日力图刷选",difficulty:10},{category:["candlestick"],id:"candlestick-sh-2015",tags:[],title:"ShangHai Index, 2015",titleCN:"2015 年上证指数",difficulty:10},{category:[],id:"covid-america",tags:[],difficulty:10},{category:["custom"],id:"custom-aggregate-scatter-cluster",tags:[],title:"Aggregate Morphing Between Scatter Clustering",titleCN:"聚合分割形变(散点图聚类)",difficulty:10},{category:["scatter","map"],id:"effectScatter-bmap",tags:["bmap"],title:"Air Quality - Baidu Map",titleCN:"全国主要城市空气质量 - 百度地图",difficulty:10},{category:["funnel"],id:"funnel",tags:[],title:"Funnel Chart",titleCN:"漏斗图",difficulty:10},{category:["funnel"],id:"funnel-align",tags:[],title:"Funnel (align)",titleCN:"漏斗图(对比)",difficulty:10},{category:["funnel"],id:"funnel-customize",tags:[],title:"Customized Funnel",titleCN:"漏斗图",difficulty:10},{category:["funnel"],id:"funnel-mutiple",tags:[],title:"Multiple Funnels",titleCN:"漏斗图",difficulty:10},{category:["map"],id:"geo-beef-cuts",tags:[],title:"GEO Beef Cuts",titleCN:"庖丁解牛",difficulty:10},{category:["map"],id:"geo-lines",tags:[],title:"Migration",titleCN:"模拟迁徙",difficulty:10},{category:["map"],id:"geo-map-scatter",tags:[],title:"map and scatter share a geo",titleCN:"map and scatter share a geo",difficulty:10},{category:["map"],id:"geo-organ",tags:[],title:"Organ Data with SVG",titleCN:"内脏数据(SVG)",difficulty:10},{category:["map"],id:"geo-seatmap-flight",tags:[],title:"Flight Seatmap with SVG",titleCN:"航班选座(SVG)",difficulty:10},{category:["map"],id:"geo-svg-lines",tags:[],title:"GEO SVG Lines",titleCN:"GEO 路径图(SVG)",difficulty:10},{category:["map"],id:"geo-svg-map",tags:[],title:"GEO SVG Map",titleCN:"地图(SVG)",difficulty:10},{category:["map"],id:"geo-svg-traffic",tags:[],title:"GEO SVG Traffic",titleCN:"交通(SVG)",difficulty:10},{category:["line","drag"],id:"line-draggable",tags:[],title:"Try Dragging these Points",titleCN:"可拖拽点",difficulty:10},{category:["line"],id:"line-polar",tags:[],title:"Two Value-Axes in Polar",titleCN:"极坐标双数值轴",difficulty:10},{category:["line"],id:"line-polar2",tags:[],title:"Two Value-Axes in Polar",titleCN:"极坐标双数值轴",difficulty:10},{category:["line","dataZoom"],id:"line-tooltip-touch",tags:[],title:"Tooltip and DataZoom on Mobile",titleCN:"移动端上的 dataZoom 和 tooltip",difficulty:10},{category:["map","lines"],id:"lines-airline",tags:[],title:"65k+ Airline",titleCN:"65k+ 飞机航线",difficulty:10},{category:["map","lines"],id:"lines-bmap",tags:["bmap"],title:"A Hiking Trail in Hangzhou - Baidu Map",titleCN:"杭州热门步行路线 - 百度地图",difficulty:10},{category:["map","lines"],id:"lines-bmap-bus",tags:["bmap"],title:"Bus Lines of Beijing - Baidu Map",titleCN:"北京公交路线 - 百度地图",difficulty:10},{category:["map","lines"],id:"lines-bmap-effect",tags:["bmap"],title:"Bus Lines of Beijing - Line Effect",titleCN:"北京公交路线 - 线特效",difficulty:10},{category:["map","lines"],id:"lines-ny",tags:[],title:"Use lines to draw 1 million ny streets.",titleCN:"使用线图绘制近 100 万的纽约街道数据",difficulty:10},{category:["map"],id:"map-bin",tags:["bmap"],title:"Binning on Map",titleCN:"Binning on Map",difficulty:10},{category:["map"],id:"map-china",tags:[],title:"Map China",titleCN:"Map China",difficulty:10},{category:["map"],id:"map-china-dataRange",tags:[],title:"Sales of iphone",titleCN:"iphone销量",difficulty:10},{category:["map"],id:"map-HK",tags:[],title:"Population Density of HongKong (2011)",titleCN:"香港18区人口密度 (2011)",difficulty:10},{category:["map"],id:"map-labels",tags:[],title:"Rich Text Labels on Map",titleCN:"地图上的富文本标签",difficulty:10},{category:["map"],id:"map-locate",tags:[],title:"Map Locate",titleCN:"Map Locate",difficulty:10},{category:["map"],id:"map-polygon",tags:["bmap"],title:"Draw Polygon on Map",titleCN:"在地图上绘制多边形",difficulty:10},{category:["map"],id:"map-province",tags:[],title:"Switch among 34 Provinces",titleCN:"34 省切换查看",difficulty:10},{category:["map"],id:"map-usa",tags:[],title:"USA Population Estimates (2012)",titleCN:"USA Population Estimates (2012)",difficulty:10},{category:["map"],id:"map-world",tags:[],title:"Map World",titleCN:"Map World",difficulty:10},{category:["map"],id:"map-world-dataRange",tags:[],title:"World Population (2010)",titleCN:"World Population (2010)",difficulty:10},{category:["pictorialBar"],id:"pictorialBar-body-fill",tags:[],title:"Water Content",titleCN:"人体含水量",difficulty:10},{category:["pictorialBar"],id:"pictorialBar-dotted",tags:[],title:"Dotted bar",titleCN:"虚线柱状图效果",difficulty:10},{category:["pictorialBar"],id:"pictorialBar-forest",tags:[],title:"Expansion of forest",titleCN:"森林的增长",difficulty:10},{category:["pictorialBar"],id:"pictorialBar-hill",tags:[],title:"Wish List and Mountain Height",titleCN:"圣诞愿望清单和山峰高度",difficulty:10},{category:["pictorialBar"],id:"pictorialBar-spirit",tags:[],title:"Spirits",titleCN:"精灵",difficulty:10},{category:["pictorialBar"],id:"pictorialBar-vehicle",tags:[],title:"Vehicles",titleCN:"交通工具",difficulty:10},{category:["pictorialBar"],id:"pictorialBar-velocity",tags:[],title:"Velocity of Christmas Reindeers",titleCN:"驯鹿的速度",difficulty:10},{category:["radar"],id:"radar-multiple",tags:[],title:"Multiple Radar",titleCN:"多雷达图",difficulty:10},{category:["scatter"],id:"scatter-map",tags:[],title:"Air Quality",titleCN:"全国主要城市空气质量",difficulty:10},{category:["scatter"],id:"scatter-map-brush",tags:[],title:"Scatter Map Brush",titleCN:"Scatter Map Brush",difficulty:10},{category:["parallel","scatter"],id:"scatter-matrix",tags:[],title:"Scatter Matrix",titleCN:"散点矩阵和平行坐标",difficulty:10},{category:["scatter"],id:"scatter-weibo",tags:[],title:"Sign in of weibo",titleCN:"微博签到数据点亮中国",difficulty:10},{category:["scatter"],id:"scatter-world-population",tags:[],title:"World Population (2011)",titleCN:"World Population (2011)",difficulty:10},{category:["themeRiver"],id:"themeRiver-basic",tags:[],title:"ThemeRiver",titleCN:"主题河流图",difficulty:10},{category:["themeRiver"],id:"themeRiver-lastfm",tags:[],title:"ThemeRiver Lastfm",titleCN:"ThemeRiver Lastfm",difficulty:10},{category:["tree"],id:"tree-basic",tags:[],title:"From Left to Right Tree",titleCN:"从左到右树状图",difficulty:10},{category:["tree"],id:"tree-legend",tags:[],title:"Multiple Trees",titleCN:"多棵树",difficulty:10},{category:["tree"],id:"tree-orient-bottom-top",tags:[],title:"From Bottom to Top Tree",titleCN:"从下到上树状图",difficulty:10},{category:["tree"],id:"tree-orient-right-left",tags:[],title:"From Right to Left Tree",titleCN:"从右到左树状图",difficulty:10},{category:["tree"],id:"tree-polyline",tags:[],title:"Tree with Polyline Edge",titleCN:"折线树图",difficulty:10},{category:["tree"],id:"tree-radial",tags:[],title:"Radial Tree",titleCN:"径向树状图",difficulty:10},{category:["tree"],id:"tree-vertical",tags:[],title:"From Top to Bottom Tree",titleCN:"从上到下树状图",difficulty:10},{category:["treemap"],id:"treemap-disk",tags:[],title:"Disk Usage",titleCN:"磁盘占用",difficulty:10},{category:["treemap"],id:"treemap-drill-down",tags:[],title:"ECharts Option Query",titleCN:"ECharts 配置项查询分布",difficulty:10},{category:["treemap"],id:"treemap-obama",tags:[],title:"How $3.7 Trillion is Spent",titleCN:"How $3.7 Trillion is Spent",difficulty:10},{category:["treemap"],id:"treemap-show-parent",tags:[],title:"Show Parent Labels",titleCN:"显示父层级标签",difficulty:10},{category:["treemap"],id:"treemap-simple",tags:[],title:"Basic Treemap",titleCN:"基础矩形树图",difficulty:10},{category:["treemap"],id:"treemap-visual",tags:[],title:"Gradient Mapping",titleCN:"映射为渐变色",difficulty:10},{category:["calendar","scatter"],id:"calendar-charts",tags:[],title:"Calendar Charts",titleCN:"日力图",difficulty:11},{category:["custom"],id:"circle-packing-with-d3",tags:[],title:"Circle Packing with d3",titleCN:"Circle Packing with d3",difficulty:11},{category:["custom"],id:"custom-one-to-one-morph",tags:[],title:"One-to-one Morphing",titleCN:"一对一映射形变",difficulty:11},{category:["custom"],id:"custom-spiral-race",tags:[],title:"Custom Spiral Race",titleCN:"自定义螺旋线竞速",difficulty:11},{category:["custom"],id:"custom-story-transition",tags:[],title:"Simple Story Transition",titleCN:"极简场景变换示例",difficulty:11},{category:["scatter"],id:"scatter-logarithmic-regression",tags:[],title:"Logarithmic Regression",titleCN:"对数回归(使用统计插件)",difficulty:16}],Rt=[{category:["globe"],id:"animating-contour-on-globe",tags:[],title:"Animating Contour on Globe",titleCN:"Animating Contour on Globe",difficulty:10},{category:["bar3D"],id:"bar3d-dataset",tags:[],title:"3D Bar with Dataset",titleCN:"使用 dataset 为三维柱状图设置数据",difficulty:10},{category:["bar3D"],id:"bar3d-global-population",tags:[],title:"Bar3D - Global Population",titleCN:"Bar3D - Global Population",difficulty:10},{category:["bar3D"],id:"bar3d-myth",tags:[],title:"星云",titleCN:"星云",difficulty:10},{category:["bar3D"],id:"bar3d-noise-modified-from-marpi-demo",tags:[],title:"Noise modified from marpi's demo",titleCN:"Noise modified from marpi's demo",difficulty:10},{category:["bar3D"],id:"bar3d-punch-card",tags:[],title:"Bar3D - Punch Card",titleCN:"Bar3D - Punch Card",difficulty:10},{category:["bar3D"],id:"bar3d-simplex-noise",tags:[],theme:"dark",title:"Bar3D - Simplex Noise",titleCN:"Bar3D - Simplex Noise",difficulty:10},{category:["bar3D"],id:"bar3d-voxelize-image",tags:[],title:"Voxelize image",titleCN:"Voxelize image",difficulty:10},{category:["flowGL"],id:"flowGL-noise",tags:[],theme:"dark",title:"Flow on the cartesian",titleCN:"直角坐标系上的向量场",difficulty:10},{category:["geo3D"],id:"geo3d",tags:[],title:"Geo3D",titleCN:"Geo3D",difficulty:10},{category:["geo3D"],id:"geo3d-with-different-height",tags:[],title:"Geo3D with Different Height",titleCN:"Geo3D with Different Height",difficulty:10},{category:["bar3D"],id:"global-population-bar3d-on-globe",tags:[],title:"Global Population - Bar3D on Globe",titleCN:"Global Population - Bar3D on Globe",difficulty:10},{category:["flowGL"],id:"global-wind-visualization",tags:["bmap"],title:"Global wind visualization",titleCN:"Global wind visualization",difficulty:10},{category:["flowGL"],id:"global-wind-visualization-2",tags:["bmap"],title:"Global Wind Visualization 2",titleCN:"Global Wind Visualization 2",difficulty:10},{category:["globe"],id:"globe-atmosphere",tags:[],title:"Globe with Atmosphere",titleCN:"大气层显示",difficulty:10},{category:["globe"],id:"globe-contour-paint",tags:[],title:"Contour Paint",titleCN:"Contour Paint",difficulty:10},{category:["globe"],id:"globe-country-carousel",tags:[],title:"Country Carousel",titleCN:"Country Carousel",difficulty:10},{category:["globe"],id:"globe-displacement",tags:[],title:"Globe Displacement",titleCN:"Globe Displacement",difficulty:10},{category:["globe"],id:"globe-echarts-gl-hello-world",tags:[],title:"ECharts-GL Hello World",titleCN:"ECharts-GL Hello World",difficulty:10},{category:["globe"],id:"globe-layers",tags:[],title:"Globe Layers",titleCN:"Globe Layers",difficulty:10},{category:["globe"],id:"globe-moon",tags:[],title:"Moon",titleCN:"Moon",difficulty:10},{category:["globe"],id:"globe-with-echarts-surface",tags:[],title:"Globe with ECharts Surface",titleCN:"Globe with ECharts Surface",difficulty:10},{category:["graphGL"],id:"graphgl-gpu-layout",tags:[],theme:"dark",title:"GraphGL GPU Layout",titleCN:"GraphGL GPU Layout",difficulty:10},{category:["graphGL"],id:"graphgl-large-internet",tags:[],theme:"dark",title:"GraphGL - Large Internet",titleCN:"GraphGL - Large Internet",difficulty:10},{category:["graphGL"],id:"graphgl-npm-dep",tags:[],theme:"dark",title:"NPM Dependencies with graphGL",titleCN:"1w 节点 2w7 边的NPM 依赖图",difficulty:10},{category:["surface"],id:"image-surface-sushuang",tags:[],title:"Image Surface Sushuang",titleCN:"Image Surface Sushuang",difficulty:10},{category:["bar3D"],id:"image-to-bar3d",tags:[],title:"Image to Bar3D",titleCN:"Image to Bar3D",difficulty:10},{category:["globe"],id:"iron-globe",tags:[],title:"Iron globe",titleCN:"Iron globe",difficulty:10},{category:["line3D"],id:"line3d-orthographic",tags:[],title:"三维折线图正交投影",titleCN:"三维折线图正交投影",difficulty:10},{category:["lines3D"],id:"lines3d-airline-on-globe",tags:[],title:"Airline on Globe",titleCN:"Airline on Globe",difficulty:10},{category:["lines3D"],id:"lines3d-flights",tags:[],title:"Flights",titleCN:"Flights",difficulty:10},{category:["lines3D"],id:"lines3d-flights-gl",tags:[],title:"Flights GL",titleCN:"Flights GL",difficulty:10},{category:["lines3D"],id:"lines3d-flights-on-geo3d",tags:[],title:"Flights on Geo3D",titleCN:"Flights on Geo3D",difficulty:10},{category:["linesGL"],id:"linesGL-ny",tags:[],title:"Use linesGL to draw 1 million ny streets.",titleCN:"实时交互的纽约街道可视化",difficulty:10},{category:["map3D"],id:"map3d-alcohol-consumption",tags:[],title:"Map3D - Alcohol Consumption",titleCN:"Map3D - Alcohol Consumption",difficulty:10},{category:["map3D"],id:"map3d-buildings",tags:[],title:"Buildings",titleCN:"Buildings",difficulty:10},{category:["map3D"],id:"map3d-wood-city",tags:[],title:"Wood City",titleCN:"Wood City",difficulty:10},{category:["map3D"],id:"map3d-wood-map",tags:[],title:"木质世界地图",titleCN:"木质世界地图",difficulty:10},{category:["bar3D"],id:"metal-bar3d",tags:[],title:"Metal Bar3D",titleCN:"Metal Bar3D",difficulty:10},{category:["surface"],id:"metal-surface",tags:[],title:"Metal Surface",titleCN:"Metal Surface",difficulty:10},{category:["surface"],id:"parametric-surface-rose",tags:[],title:"Parametric Surface Rose",titleCN:"Parametric Surface Rose",difficulty:10},{category:["scatter3D"],id:"scatter3d",tags:[],theme:"dark",title:"Scatter3D",titleCN:"Scatter3D",difficulty:10},{category:["scatter3D"],id:"scatter3D-dataset",tags:[],title:"3D Scatter with Dataset",titleCN:"使用 dataset 为三维散点图设置数据",difficulty:10},{category:["scatter3D"],id:"scatter3d-globe-population",tags:[],title:"Scatter3D - Globe Population",titleCN:"Scatter3D - Globe Population",difficulty:10},{category:["scatter3D"],id:"scatter3d-orthographic",tags:[],theme:"dark",title:"三维散点图正交投影",titleCN:"三维散点图正交投影",difficulty:10},{category:["scatter3D"],id:"scatter3d-scatter",tags:[],title:"3D Scatter with Scatter Matrix",titleCN:"三维散点图和散点矩阵结合使用",difficulty:10},{category:["scatter3D"],id:"scatter3d-simplex-noise",tags:[],theme:"dark",title:"Scatter3D - Simplex Noise",titleCN:"Scatter3D - Simplex Noise",difficulty:10},{category:["scatterGL"],id:"scatterGL-gps",tags:[],title:"10 million Bulk GPS points",titleCN:"1 千万 GPS 点可视化",difficulty:10},{category:["scatterGL"],id:"scattergl-weibo",tags:[],theme:"dark",title:"微博签到数据点亮中国",titleCN:"微博签到数据点亮中国",difficulty:10},{category:["surface"],id:"simple-surface",tags:[],title:"Simple Surface",titleCN:"Simple Surface",difficulty:10},{category:["surface"],id:"sphere-parametric-surface",tags:[],title:"Sphere Parametric Surface",titleCN:"Sphere Parametric Surface",difficulty:10},{category:["bar3D"],id:"stacked-bar3d",tags:[],title:"Stacked Bar3D",titleCN:"Stacked Bar3D",difficulty:10},{category:["surface"],id:"surface-breather",tags:[],title:"Breather",titleCN:"Breather",difficulty:10},{category:["surface"],id:"surface-golden-rose",tags:[],title:"Golden Rose",titleCN:"Golden Rose",difficulty:10},{category:["surface"],id:"surface-leather",tags:[],title:"皮革材质",titleCN:"皮革材质",difficulty:10},{category:["surface"],id:"surface-mollusc-shell",tags:[],title:"Mollusc Shell",titleCN:"Mollusc Shell",difficulty:10},{category:["surface"],id:"surface-theme-roses",tags:[],title:"Theme Roses",titleCN:"Theme Roses",difficulty:10},{category:["surface"],id:"surface-wave",tags:[],title:"Surface Wave",titleCN:"Surface Wave",difficulty:10},{category:["bar3D"],id:"transparent-bar3d",tags:[],title:"Transparent Bar3D",titleCN:"Transparent Bar3D",difficulty:10}];var It=ut.sourceCode.indexOf("ROOT_PATH")>=0?"var ROOT_PATH = '".concat(ut.cdnRoot,"'"):"";function Bt(t){return function(t){if(Array.isArray(t))return jt(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return jt(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?jt(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function jt(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}function Gt(t){return rt.c===t.id}var zt=Ft.concat(Rt).find(Gt),$t=Rt.find(Gt);function Ut(t){ut.enableDecal&&(t.aria=t.aria||{},t.aria.decal=t.aria.decal||{},t.aria.decal.show=!0,t.aria.show=t.aria.enabled=!0)}function Zt(){if("undefined"==typeof echarts){var t=zt&&zt.tags.indexOf("bmap")>=0;return t&&(window.HOST_TYPE="2",window.BMap_loadScriptTime=(new Date).getTime()),at([ct.datGUIMinJS,"local"in rt?ct.localEChartsMinJS:ct.echartsMinJS,ct.echartsDir+"/dist/extension/dataTool.js","https://cdn.jsdelivr.net/npm/echarts@4.9.0/map/js/world.js",ct.echartsStatMinJS].concat(Bt(rt.gl?[ct.echartsGLMinJS]:[]),Bt(t?["https://api.map.baidu.com/getscript?v=3.0&ak=KOmVjPVUAey1G2E8zNhPiuQ6QiEmAwZu&services=&t=20200327103013",ct.echartsDir+"/dist/extension/bmap.js"]:[]))).then((function(){echarts.registerPreprocessor(Ut)}))}return Promise.resolve()}function Vt(t,e){"warn"!==e&&"error"!==e&&(e="info"),ut.editorStatus.message=t,ut.editorStatus.type=e}var Wt=gt({props:["inEditor"],data:function(){return{shared:ut,debouncedTime:void 0,backgroundColor:"",autoRun:!0,loading:!1,isGL:$t}},mounted:function(){var t=this;this.loading=!0,Zt().then((function(){t.loading=!1,ut.runCode&&t.run()})),Ot(this.$el,(function(){t.sandbox&&t.sandbox.resize()}))},computed:{editLink:function(){var t=["c="+rt.c];return rt.theme&&t.push(["theme="+rt.theme]),rt.gl&&t.push(["gl="+rt.gl]),"./editor.html?"+t.join("&")}},watch:{"shared.runCode":function(t){!this.autoRun&&this.sandbox||(this.debouncedRun?this.debouncedRun():this.run())},"shared.renderer":function(){this.refreshAll()},"shared.darkMode":function(){this.refreshAll()},"shared.enableDecal":function(){this.refreshAll()},"shared.useDirtyRect":function(){this.refreshAll()}},methods:{run:function t(){var e=this;if("undefined"!=typeof echarts){this.sandbox||(this.sandbox=function(t){var e,n={},a=[],i=[],o=window.setTimeout,r=window.setInterval;function l(t,e){var n=o(t,e);return i.push(n),n}function s(t,e){var n=r(t,e);return a.push(n),n}var c,u=[];return{resize:function(){c&&c.resize()},dispose:function(){c&&(c.dispose(),c=null)},getDataURL:function(){return c.getDataURL({pixelRatio:2,excludeComponents:["toolbox"]})},getOption:function(){return c.getOption()},run:function(o,r){if(!c){if(c=echarts.init(o,r.darkMode?"dark":"",{renderer:r.renderer,useDirtyRect:r.useDirtyRect}),r.useDirtyRect&&"canvas"===r.renderer)try{!function(t,e){e=e||{};var n=t.painter;if(!n.getLayers)throw new Error("Debug dirty rect can only been used on canvas renderer.");if(n.isSingleCanvas())throw new Error("Debug dirty rect can only been used on zrender inited with container.");var a=document.createElement("div");a.style.cssText="\nposition:absolute;\nleft:0;\ntop:0;\nright:0;\nbottom:0;\npointer-events:none;\n",a.className="ec-debug-dirty-rect-container";var i=[],o=t.dom;o.appendChild(a),"static"===getComputedStyle(o).position&&(o.style.position="relative"),t.on("rendered",(function(){if(n.getLayers){var t=0;n.eachBuiltinLayer((function(n){if(n.debugGetPaintRects)for(var o=n.debugGetPaintRects(),r=0;r<o.length;r++)i[t]||(i[t]=new vt(e.style),a.appendChild(i[t].dom)),i[t].show(),i[t].update(o[r]),t++}));for(var o=t;o<i.length;o++)i[o].hide()}}))}(c.getZr(),{autoHideDelay:500})}catch(t){console.error(t)}p=(d=c).on,f=d.setOption,d.on=function(t){var e=p.apply(d,arguments);return u.push(t),e},d.setOption=function(){var e=f.apply(this,arguments);return t&&t(d),e}}var d,p,f;!function(){for(var t=0;t<a.length;t++)clearInterval(a[t]);for(t=0;t<i.length;t++)clearTimeout(i[t]);a=[],i=[]}(),function(t){u.forEach((function(e){t&&t.off(e)})),u.length=0}(c),n.config=null;var g=r.runCode,m=new Function("myChart","app","setTimeout","setInterval","ROOT_PATH","var option;\n"+g+"\nreturn option;")(c,n,l,s,r.cdnRoot),h=0;if(m&&"object"===bt(m)){var C=+new Date;c.setOption(m,!0),h=+new Date-C}if(e&&($(e.domElement).remove(),e.destroy(),e=null),n.config){e=new dat.GUI({autoPlace:!1}),$(e.domElement).css({position:"absolute",right:5,top:0,zIndex:1e3}),$(".right-container").append(e.domElement);var y=n.configParameters||{};for(var v in n.config){var b=n.config[v];if("onChange"!==v&&"onFinishChange"!==v){var _=!1,L=null;if(y[v]&&(y[v].options?L=e.add(n.config,v,y[v].options):null!=y[v].min&&(L=e.add(n.config,v,y[v].min,y[v].max))),"string"==typeof obj)try{var w=echarts.color.parse(b);(_=!!w)&&(b=echarts.color.stringify(w,"rgba"))}catch(t){}L||(L=e[_?"addColor":"add"](n.config,v)),n.config.onChange&&L.onChange(n.config.onChange),n.config.onFinishChange&&L.onFinishChange(n.config.onFinishChange)}}}return h}}}((function(t){var n=t.getOption();"string"==typeof n.backgroundColor&&"transparent"!==n.backgroundColor?e.backgroundColor=n.backgroundColor:e.backgroundColor="#fff"})));try{var n=this.sandbox.run(this.$el.querySelector(".chart-container"),ut);Vt(this.$t("editor.chartOK")+n+"ms");for(var a=[0,500,2e3,5e3,1e4],i=a.length-1;i>=0;i--){var o=a[i+1]||1e6;if(n>=a[i]&&this.debouncedTime!==o){this.debouncedRun=Lt()(t,o,{trailing:!0}),this.debouncedTime=o;break}}ut.runHash=ft++}catch(t){Vt(this.$t("editor.errorInEditor"),"error"),console.error(t)}}},refreshAll:function(){this.dispose(),this.run()},dispose:function(){this.sandbox&&this.sandbox.dispose()},downloadExample:function(){var t;t="\x3c!--\n    THIS EXAMPLE WAS DOWNLOADED FROM ".concat(window.location.href,'\n--\x3e\n<!DOCTYPE html>\n<html style="height: 100%">\n    <head>\n        <meta charset="utf-8">\n    </head>\n    <body style="height: 100%; margin: 0">\n        <div id="container" style="height: 100%"></div>\n\n        <script type="text/javascript" src="').concat(ct.echartsMinJS,'"><\/script>\n        \x3c!-- Uncomment this line if you want to dataTool extension\n        <script type="text/javascript" src="').concat(ct.echartsDir,'/dist/extension/dataTool.min.js"><\/script>\n        --\x3e\n        \x3c!-- Uncomment this line if you want to use gl extension\n        <script type="text/javascript" src="').concat(ct.echartsGLMinJS,'"><\/script>\n        --\x3e\n        \x3c!-- Uncomment this line if you want to echarts-stat extension\n        <script type="text/javascript" src="').concat(ct.echartsStatMinJS,'"><\/script>\n        --\x3e\n        \x3c!-- Uncomment this line if you want to use map\n        <script type="text/javascript" src="').concat(ct.echartsDir,'/map/js/china.js"><\/script>\n        <script type="text/javascript" src="').concat(ct.echartsDir,'/map/js/world.js"><\/script>\n        --\x3e\n        \x3c!-- Uncomment these two lines if you want to use bmap extension\n        <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=<Your Key Here>"><\/script>\n        <script type="text/javascript" src="').concat(ct.echartsDir,'/dist/extension/bmap.min.js"><\/script>\n        --\x3e\n\n        <script type="text/javascript">\nvar dom = document.getElementById("container");\nvar myChart = echarts.init(dom);\nvar app = {};\n\nvar option;\n\n').concat(It,"\n\n").concat(ut.sourceCode,"\n\nif (option && typeof option === 'object') {\n    myChart.setOption(option);\n}\n\n        <\/script>\n    </body>\n</html>\n    "),function(t,e){if("function"==typeof window.navigator.msSaveBlob)window.navigator.msSaveOrOpenBlob(t,e);else{var n=document.createElement("a");n.href=URL.createObjectURL(t),n.download=e,n.click(),URL.revokeObjectURL(n.href)}}(new Blob([t],{type:"text/html;charset=UTF-8",encoding:"UTF-8"}),rt.c+".html")},screenshot:function(){if(this.sandbox){var t=this.sandbox.getDataURL(),e=document.createElement("a");e.download=rt.c+"."+("svg"===ut.renderer?"svg":"png"),e.target="_blank",e.href=t;var n=new MouseEvent("click",{bubbles:!0,cancelable:!1});e.dispatchEvent(n)}},getOption:function(){return this.sandbox&&this.sandbox.getOption()}}},yt,[],!1,null,null,null);Wt.options.__file="src/editor/Preview.vue";const Ht=Wt.exports;var qt=gt({props:["initialCode"],data:function(){return{shared:ut,loading:!1}},mounted:function(){var t=this;this.loading=!0,Zt().then((function(){return"undefined"==typeof monaco?at([ct.monacoDir+"/loader.js",ut.cdnRoot+"/js/example-transform-ts-bundle.js"]).then((function(){return window.require.config({paths:{vs:ct.monacoDir}}),new Promise((function(t){window.require(["vs/editor/editor.main"],(function(){fetch(ut.cdnRoot+"/types/echarts.d.ts",{mode:"cors"}).then((function(t){return t.text()})).then((function(t){monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({noSemanticValidation:!1,noSyntaxValidation:!1}),monaco.languages.typescript.typescriptDefaults.setCompilerOptions({target:monaco.languages.typescript.ScriptTarget.ES6,allowNonTsExtensions:!0,noResolve:!1}),monaco.languages.typescript.typescriptDefaults.addExtraLib(t,"file:///node_modules/@types/echarts/index.d.ts"),monaco.languages.typescript.typescriptDefaults.addExtraLib("import {init, EChartsOption} from 'echarts';\n// Declare to global namespace.\ndeclare global {\ndeclare const $: any;\ndeclare const ROOT_PATH: string;\ndeclare const app: {\n    configParameters: {\n        [key: string]: ({\n            options: { [key: string]: string\n        }) | ({\n            min?: number\n            max?: number\n        })\n    }\n    config: {\n        onChange: () => void\n        [key: string]: string | number | function\n    }\n    [key: string]: any\n};\ndeclare const myChart: ReturnType<typeof init>;\ndeclare var option: EChartsOption;\n}\n","file:///example.d.ts")})).then((function(){t()}))}))}))})):Promise.resolve()})).then((function(){t.loading=!1;var e=monaco.editor.createModel(t.initialCode||"","typescript",monaco.Uri.parse("file:///main.ts")),n=monaco.editor.create(t.$el,{model:e,fontFamily:"'Source Code Pro', 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace",minimap:{enabled:!1},automaticLayout:!0});t._editor=n,t.initialCode&&(ut.sourceCode=t.initialCode,ut.runCode=echartsExampleTransformTs(ut.sourceCode)),n.onDidChangeModelContent((function(){ut.sourceCode=n.getValue(),ut.runCode=echartsExampleTransformTs(ut.sourceCode)}))}))},destroyed:function(){this._editor&&(this._editor.getModel().dispose(),this._editor.dispose())},methods:{setInitialCode:function(t){this._editor&&t&&this._editor.setValue(t||"")}},watch:{initialCode:function(t){this.setInitialCode(t)}}},Ct,[],!1,null,null,null);qt.options.__file="src/editor/CodeMonaco.vue";const Kt=qt.exports;var Jt=function(){var t=this,e=t.$createElement;return(t._self._c||e)("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"full-code-preview"})};Jt._withStripped=!0;var Xt=gt({props:["code"],data:function(){return{shared:ut,loading:!1}},mounted:function(){var t=this;this.loading=!0,("undefined"==typeof ace?at([ct.aceDir+"/ace.js"]):Promise.resolve()).then((function(){t.loading=!1;var e=ace.edit(t.$el);e.getSession().setMode("ace/mode/javascript"),e.setOptions({readOnly:!0,showLineNumbers:!1,showFoldWidgets:!1,highlightActiveLine:!1,highlightGutterLine:!1}),e.renderer.$cursorLayer.element.style.display="none",t._editor=e,t.setCode(t.code)}))},methods:{setCode:function(t){this._editor&&(this._editor.setValue(t),this._editor.selection.setSelectionRange({start:{row:1,column:4},end:{row:1,column:4}}))}},watch:{code:function(t){this.setCode(t)}}},Jt,[],!1,null,null,null);Xt.options.__file="src/editor/FullCodePreview.vue";const Yt=Xt.exports;var Qt=n(913);function te(t,e){const n=Object.create(null),a=t.split(",");for(let t=0;t<a.length;t++)n[a[t]]=!0;return e?t=>!!n[t.toLowerCase()]:t=>!!n[t]}const ee=te("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl"),ne=te("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function ae(t){if(_e(t)){const e={};for(let n=0;n<t.length;n++){const a=t[n],i=ae(ke(a)?re(a):a);if(i)for(const t in i)e[t]=i[t]}return e}if(Ne(t))return t}const ie=/;(?![^(]*\))/g,oe=/:(.+)/;function re(t){const e={};return t.split(ie).forEach((t=>{if(t){const n=t.split(oe);n.length>1&&(e[n[0].trim()]=n[1].trim())}})),e}function le(t){let e="";if(ke(t))e=t;else if(_e(t))for(let n=0;n<t.length;n++)e+=le(t[n])+" ";else if(Ne(t))for(const n in t)t[n]&&(e+=n+" ");return e.trim()}const se=t=>null==t?"":Ne(t)?JSON.stringify(t,ce,2):String(t),ce=(t,e)=>Le(e)?{[`Map(${e.size})`]:[...e.entries()].reduce(((t,[e,n])=>(t[`${e} =>`]=n,t)),{})}:we(e)?{[`Set(${e.size})`]:[...e.values()]}:!Ne(e)||_e(e)||De(e)?e:String(e),ue={},de=[],pe=()=>{},fe=()=>!1,ge=/^on[^a-z]/,me=t=>ge.test(t),he=t=>t.startsWith("onUpdate:"),Ce=Object.assign,ye=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},ve=Object.prototype.hasOwnProperty,be=(t,e)=>ve.call(t,e),_e=Array.isArray,Le=t=>"[object Map]"===Oe(t),we=t=>"[object Set]"===Oe(t),xe=t=>"function"==typeof t,ke=t=>"string"==typeof t,Se=t=>"symbol"==typeof t,Ne=t=>null!==t&&"object"==typeof t,Me=t=>Ne(t)&&xe(t.then)&&xe(t.catch),Te=Object.prototype.toString,Oe=t=>Te.call(t),De=t=>"[object Object]"===Oe(t),Ae=t=>ke(t)&&"NaN"!==t&&"-"!==t[0]&&""+parseInt(t,10)===t,Ee=te(",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Pe=t=>{const e=Object.create(null);return n=>e[n]||(e[n]=t(n))},Fe=/-(\w)/g,Re=Pe((t=>t.replace(Fe,((t,e)=>e?e.toUpperCase():"")))),Ie=/\B([A-Z])/g,Be=Pe((t=>t.replace(Ie,"-$1").toLowerCase())),je=Pe((t=>t.charAt(0).toUpperCase()+t.slice(1))),Ge=Pe((t=>t?`on${je(t)}`:"")),ze=(t,e)=>t!==e&&(t==t||e==e),$e=(t,e)=>{for(let n=0;n<t.length;n++)t[n](e)},Ue=(t,e,n)=>{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:n})},Ze=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let Ve;const We=()=>Ve||(Ve="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:{}),He=new WeakMap,qe=[];let Ke;const Je=Symbol(""),Xe=Symbol("");function Ye(t,e=ue){(function(t){return t&&!0===t._isEffect})(t)&&(t=t.raw);const n=function(t,e){const n=function(){if(!n.active)return e.scheduler?void 0:t();if(!qe.includes(n)){en(n);try{return an.push(nn),nn=!0,qe.push(n),Ke=n,t()}finally{qe.pop(),rn(),Ke=qe[qe.length-1]}}};return n.id=tn++,n.allowRecurse=!!e.allowRecurse,n._isEffect=!0,n.active=!0,n.raw=t,n.deps=[],n.options=e,n}(t,e);return e.lazy||n(),n}function Qe(t){t.active&&(en(t),t.options.onStop&&t.options.onStop(),t.active=!1)}let tn=0;function en(t){const{deps:e}=t;if(e.length){for(let n=0;n<e.length;n++)e[n].delete(t);e.length=0}}let nn=!0;const an=[];function on(){an.push(nn),nn=!1}function rn(){const t=an.pop();nn=void 0===t||t}function ln(t,e,n){if(!nn||void 0===Ke)return;let a=He.get(t);a||He.set(t,a=new Map);let i=a.get(n);i||a.set(n,i=new Set),i.has(Ke)||(i.add(Ke),Ke.deps.push(i))}function sn(t,e,n,a,i,o){const r=He.get(t);if(!r)return;const l=new Set,s=t=>{t&&t.forEach((t=>{(t!==Ke||t.allowRecurse)&&l.add(t)}))};if("clear"===e)r.forEach(s);else if("length"===n&&_e(t))r.forEach(((t,e)=>{("length"===e||e>=a)&&s(t)}));else switch(void 0!==n&&s(r.get(n)),e){case"add":_e(t)?Ae(n)&&s(r.get("length")):(s(r.get(Je)),Le(t)&&s(r.get(Xe)));break;case"delete":_e(t)||(s(r.get(Je)),Le(t)&&s(r.get(Xe)));break;case"set":Le(t)&&s(r.get(Je))}l.forEach((t=>{t.options.scheduler?t.options.scheduler(t):t()}))}const cn=new Set(Object.getOwnPropertyNames(Symbol).map((t=>Symbol[t])).filter(Se)),un=mn(),dn=mn(!1,!0),pn=mn(!0),fn=mn(!0,!0),gn={};function mn(t=!1,e=!1){return function(n,a,i){if("__v_isReactive"===a)return!t;if("__v_isReadonly"===a)return t;if("__v_raw"===a&&i===(t?$n:zn).get(n))return n;const o=_e(n);if(!t&&o&&be(gn,a))return Reflect.get(gn,a,i);const r=Reflect.get(n,a,i);return(Se(a)?cn.has(a):"__proto__"===a||"__v_isRef"===a)?r:(t||ln(n,0,a),e?r:Xn(r)?o&&Ae(a)?r:r.value:Ne(r)?t?Zn(r):Un(r):r)}}function hn(t=!1){return function(e,n,a,i){const o=e[n];if(!t&&(a=Kn(a),!_e(e)&&Xn(o)&&!Xn(a)))return o.value=a,!0;const r=_e(e)&&Ae(n)?Number(n)<e.length:be(e,n),l=Reflect.set(e,n,a,i);return e===Kn(i)&&(r?ze(a,o)&&sn(e,"set",n,a):sn(e,"add",n,a)),l}}["includes","indexOf","lastIndexOf"].forEach((t=>{const e=Array.prototype[t];gn[t]=function(...t){const n=Kn(this);for(let t=0,e=this.length;t<e;t++)ln(n,0,t+"");const a=e.apply(n,t);return-1===a||!1===a?e.apply(n,t.map(Kn)):a}})),["push","pop","shift","unshift","splice"].forEach((t=>{const e=Array.prototype[t];gn[t]=function(...t){on();const n=e.apply(this,t);return rn(),n}}));const Cn={get:un,set:hn(),deleteProperty:function(t,e){const n=be(t,e),a=(t[e],Reflect.deleteProperty(t,e));return a&&n&&sn(t,"delete",e,void 0),a},has:function(t,e){const n=Reflect.has(t,e);return Se(e)&&cn.has(e)||ln(t,0,e),n},ownKeys:function(t){return ln(t,0,_e(t)?"length":Je),Reflect.ownKeys(t)}},yn={get:pn,set:(t,e)=>!0,deleteProperty:(t,e)=>!0},vn=Ce({},Cn,{get:dn,set:hn(!0)}),bn=(Ce({},yn,{get:fn}),t=>Ne(t)?Un(t):t),_n=t=>Ne(t)?Zn(t):t,Ln=t=>t,wn=t=>Reflect.getPrototypeOf(t);function xn(t,e,n=!1,a=!1){const i=Kn(t=t.__v_raw),o=Kn(e);e!==o&&!n&&ln(i,0,e),!n&&ln(i,0,o);const{has:r}=wn(i),l=n?_n:a?Ln:bn;return r.call(i,e)?l(t.get(e)):r.call(i,o)?l(t.get(o)):void 0}function kn(t,e=!1){const n=this.__v_raw,a=Kn(n),i=Kn(t);return t!==i&&!e&&ln(a,0,t),!e&&ln(a,0,i),t===i?n.has(t):n.has(t)||n.has(i)}function Sn(t,e=!1){return t=t.__v_raw,!e&&ln(Kn(t),0,Je),Reflect.get(t,"size",t)}function Nn(t){t=Kn(t);const e=Kn(this),n=wn(e).has.call(e,t);return e.add(t),n||sn(e,"add",t,t),this}function Mn(t,e){e=Kn(e);const n=Kn(this),{has:a,get:i}=wn(n);let o=a.call(n,t);o||(t=Kn(t),o=a.call(n,t));const r=i.call(n,t);return n.set(t,e),o?ze(e,r)&&sn(n,"set",t,e):sn(n,"add",t,e),this}function Tn(t){const e=Kn(this),{has:n,get:a}=wn(e);let i=n.call(e,t);i||(t=Kn(t),i=n.call(e,t)),a&&a.call(e,t);const o=e.delete(t);return i&&sn(e,"delete",t,void 0),o}function On(){const t=Kn(this),e=0!==t.size,n=t.clear();return e&&sn(t,"clear",void 0,void 0),n}function Dn(t,e){return function(n,a){const i=this,o=i.__v_raw,r=Kn(o),l=t?_n:e?Ln:bn;return!t&&ln(r,0,Je),o.forEach(((t,e)=>n.call(a,l(t),l(e),i)))}}function An(t,e,n){return function(...a){const i=this.__v_raw,o=Kn(i),r=Le(o),l="entries"===t||t===Symbol.iterator&&r,s="keys"===t&&r,c=i[t](...a),u=e?_n:n?Ln:bn;return!e&&ln(o,0,s?Xe:Je),{next(){const{value:t,done:e}=c.next();return e?{value:t,done:e}:{value:l?[u(t[0]),u(t[1])]:u(t),done:e}},[Symbol.iterator](){return this}}}}function En(t){return function(...e){return"delete"!==t&&this}}const Pn={get(t){return xn(this,t)},get size(){return Sn(this)},has:kn,add:Nn,set:Mn,delete:Tn,clear:On,forEach:Dn(!1,!1)},Fn={get(t){return xn(this,t,!1,!0)},get size(){return Sn(this)},has:kn,add:Nn,set:Mn,delete:Tn,clear:On,forEach:Dn(!1,!0)},Rn={get(t){return xn(this,t,!0)},get size(){return Sn(this,!0)},has(t){return kn.call(this,t,!0)},add:En("add"),set:En("set"),delete:En("delete"),clear:En("clear"),forEach:Dn(!0,!1)};function In(t,e){const n=e?Fn:t?Rn:Pn;return(e,a,i)=>"__v_isReactive"===a?!t:"__v_isReadonly"===a?t:"__v_raw"===a?e:Reflect.get(be(n,a)&&a in e?n:e,a,i)}["keys","values","entries",Symbol.iterator].forEach((t=>{Pn[t]=An(t,!1,!1),Rn[t]=An(t,!0,!1),Fn[t]=An(t,!1,!0)}));const Bn={get:In(!1,!1)},jn={get:In(!1,!0)},Gn={get:In(!0,!1)},zn=new WeakMap,$n=new WeakMap;function Un(t){return t&&t.__v_isReadonly?t:Vn(t,!1,Cn,Bn)}function Zn(t){return Vn(t,!0,yn,Gn)}function Vn(t,e,n,a){if(!Ne(t))return t;if(t.__v_raw&&(!e||!t.__v_isReactive))return t;const i=e?$n:zn,o=i.get(t);if(o)return o;const r=function(t){return t.__v_skip||!Object.isExtensible(t)?0:function(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((t=>Oe(t).slice(8,-1))(t))}(t);if(0===r)return t;const l=new Proxy(t,2===r?a:n);return i.set(t,l),l}function Wn(t){return Hn(t)?Wn(t.__v_raw):!(!t||!t.__v_isReactive)}function Hn(t){return!(!t||!t.__v_isReadonly)}function qn(t){return Wn(t)||Hn(t)}function Kn(t){return t&&Kn(t.__v_raw)||t}const Jn=t=>Ne(t)?Un(t):t;function Xn(t){return Boolean(t&&!0===t.__v_isRef)}function Yn(t){return function(t,e=!1){return Xn(t)?t:new Qn(t,e)}(t)}class Qn{constructor(t,e=!1){this._rawValue=t,this._shallow=e,this.__v_isRef=!0,this._value=e?t:Jn(t)}get value(){return ln(Kn(this),0,"value"),this._value}set value(t){ze(Kn(t),this._rawValue)&&(this._rawValue=t,this._value=this._shallow?t:Jn(t),sn(Kn(this),"set","value",t))}}const ta={get:(t,e,n)=>function(t){return Xn(t)?t.value:t}(Reflect.get(t,e,n)),set:(t,e,n,a)=>{const i=t[e];return Xn(i)&&!Xn(n)?(i.value=n,!0):Reflect.set(t,e,n,a)}};function ea(t){return Wn(t)?t:new Proxy(t,ta)}class na{constructor(t,e){this._object=t,this._key=e,this.__v_isRef=!0}get value(){return this._object[this._key]}set value(t){this._object[this._key]=t}}class aa{constructor(t,e,n){this._setter=e,this._dirty=!0,this.__v_isRef=!0,this.effect=Ye(t,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,sn(Kn(this),"set","value"))}}),this.__v_isReadonly=n}get value(){return this._dirty&&(this._value=this.effect(),this._dirty=!1),ln(Kn(this),0,"value"),this._value}set value(t){this._setter(t)}}function ia(t,e,n,a){let i;try{i=a?t(...a):t()}catch(t){ra(t,e,n)}return i}function oa(t,e,n,a){if(xe(t)){const i=ia(t,e,n,a);return i&&Me(i)&&i.catch((t=>{ra(t,e,n)})),i}const i=[];for(let o=0;o<t.length;o++)i.push(oa(t[o],e,n,a));return i}function ra(t,e,n,a=!0){if(e&&e.vnode,e){let a=e.parent;const i=e.proxy,o=n;for(;a;){const e=a.ec;if(e)for(let n=0;n<e.length;n++)if(!1===e[n](t,i,o))return;a=a.parent}const r=e.appContext.config.errorHandler;if(r)return void ia(r,null,10,[t,i,o])}!function(t,e,n,a=!0){console.error(t)}(t,0,0,a)}let la=!1,sa=!1;const ca=[];let ua=0;const da=[];let pa=null,fa=0;const ga=[];let ma=null,ha=0;const Ca=Promise.resolve();let ya=null,va=null;function ba(t){const e=ya||Ca;return t?e.then(this?t.bind(this):t):e}function _a(t){ca.length&&ca.includes(t,la&&t.allowRecurse?ua+1:ua)||t===va||(ca.push(t),La())}function La(){la||sa||(sa=!0,ya=Ca.then(Na))}function wa(t,e,n,a){_e(t)?n.push(...t):e&&e.includes(t,t.allowRecurse?a+1:a)||n.push(t),La()}function xa(t,e=null){if(da.length){for(va=e,pa=[...new Set(da)],da.length=0,fa=0;fa<pa.length;fa++)pa[fa]();pa=null,fa=0,va=null,xa(t,e)}}function ka(t){if(ga.length){const t=[...new Set(ga)];if(ga.length=0,ma)return void ma.push(...t);for(ma=t,ma.sort(((t,e)=>Sa(t)-Sa(e))),ha=0;ha<ma.length;ha++)ma[ha]();ma=null,ha=0}}const Sa=t=>null==t.id?1/0:t.id;function Na(t){sa=!1,la=!0,xa(t),ca.sort(((t,e)=>Sa(t)-Sa(e)));try{for(ua=0;ua<ca.length;ua++){const t=ca[ua];t&&ia(t,null,14)}}finally{ua=0,ca.length=0,ka(),la=!1,ya=null,(ca.length||ga.length)&&Na(t)}}function Ma(t,e,...n){const a=t.vnode.props||ue;let i=n;const o=e.startsWith("update:"),r=o&&e.slice(7);if(r&&r in a){const t=`${"modelValue"===r?"model":r}Modifiers`,{number:e,trim:o}=a[t]||ue;o?i=n.map((t=>t.trim())):e&&(i=n.map(Ze))}__VUE_PROD_DEVTOOLS__;let l=Ge(Re(e)),s=a[l];!s&&o&&(l=Ge(Be(e)),s=a[l]),s&&oa(s,t,6,i);const c=a[l+"Once"];if(c){if(t.emitted){if(t.emitted[l])return}else(t.emitted={})[l]=!0;oa(c,t,6,i)}}function Ta(t,e,n=!1){if(!e.deopt&&void 0!==t.__emits)return t.__emits;const a=t.emits;let i={},o=!1;if(__VUE_OPTIONS_API__&&!xe(t)){const a=t=>{o=!0,Ce(i,Ta(t,e,!0))};!n&&e.mixins.length&&e.mixins.forEach(a),t.extends&&a(t.extends),t.mixins&&t.mixins.forEach(a)}return a||o?(_e(a)?a.forEach((t=>i[t]=null)):Ce(i,a),t.__emits=i):t.__emits=null}function Oa(t,e){return!(!t||!me(e))&&(e=e.slice(2).replace(/Once$/,""),be(t,e[0].toLowerCase()+e.slice(1))||be(t,Be(e))||be(t,e))}let Da=null;function Aa(t){Da=t}function Ea(t){const{type:e,vnode:n,proxy:a,withProxy:i,props:o,propsOptions:[r],slots:l,attrs:s,emit:c,render:u,renderCache:d,data:p,setupState:f,ctx:g}=t;let m;Da=t;try{let t;if(4&n.shapeFlag){const e=i||a;m=qi(u.call(e,e,d,o,f,p,g)),t=s}else{const n=e;m=qi(n.length>1?n(o,{attrs:s,slots:l,emit:c}):n(o,null)),t=e.props?s:Pa(s)}let h=m;if(!1!==e.inheritAttrs&&t){const e=Object.keys(t),{shapeFlag:n}=h;e.length&&(1&n||6&n)&&(r&&e.some(he)&&(t=Fa(t,r)),h=Vi(h,t))}n.dirs&&(h.dirs=h.dirs?h.dirs.concat(n.dirs):n.dirs),n.transition&&(h.transition=n.transition),m=h}catch(e){ra(e,t,1),m=Zi(Ai)}return Da=null,m}const Pa=t=>{let e;for(const n in t)("class"===n||"style"===n||me(n))&&((e||(e={}))[n]=t[n]);return e},Fa=(t,e)=>{const n={};for(const a in t)he(a)&&a.slice(9)in e||(n[a]=t[a]);return n};function Ra(t,e,n){const a=Object.keys(e);if(a.length!==Object.keys(t).length)return!0;for(let i=0;i<a.length;i++){const o=a[i];if(e[o]!==t[o]&&!Oa(n,o))return!0}return!1}function Ia(t){return xe(t)&&(t=t()),_e(t)&&(t=function(t){let e;for(let n=0;n<t.length;n++){const a=t[n];if(!ji(a))return;if(a.type!==Ai||"v-if"===a.children){if(e)return;e=a}}return e}(t)),qi(t)}let Ba=0;const ja=t=>Ba+=t;function Ga(t,e,n,a){const[i,o]=t.propsOptions;if(e)for(const o in e){const r=e[o];if(Ee(o))continue;let l;i&&be(i,l=Re(o))?n[l]=r:Oa(t.emitsOptions,o)||(a[o]=r)}if(o){const e=Kn(n);for(let a=0;a<o.length;a++){const r=o[a];n[r]=za(i,e,r,e[r],t)}}}function za(t,e,n,a,i){const o=t[n];if(null!=o){const t=be(o,"default");if(t&&void 0===a){const t=o.default;o.type!==Function&&xe(t)?(mo(i),a=t(e),mo(null)):a=t}o[0]&&(be(e,n)||t?!o[1]||""!==a&&a!==Be(n)||(a=!0):a=!1)}return a}function $a(t,e,n=!1){if(!e.deopt&&t.__props)return t.__props;const a=t.props,i={},o=[];let r=!1;if(__VUE_OPTIONS_API__&&!xe(t)){const a=t=>{r=!0;const[n,a]=$a(t,e,!0);Ce(i,n),a&&o.push(...a)};!n&&e.mixins.length&&e.mixins.forEach(a),t.extends&&a(t.extends),t.mixins&&t.mixins.forEach(a)}if(!a&&!r)return t.__props=de;if(_e(a))for(let t=0;t<a.length;t++){const e=Re(a[t]);Ua(e)&&(i[e]=ue)}else if(a)for(const t in a){const e=Re(t);if(Ua(e)){const n=a[t],r=i[e]=_e(n)||xe(n)?{type:n}:n;if(r){const t=Wa(Boolean,r.type),n=Wa(String,r.type);r[0]=t>-1,r[1]=n<0||t<n,(t>-1||be(r,"default"))&&o.push(e)}}}return t.__props=[i,o]}function Ua(t){return"$"!==t[0]}function Za(t){const e=t&&t.toString().match(/^\s*function (\w+)/);return e?e[1]:""}function Va(t,e){return Za(t)===Za(e)}function Wa(t,e){if(_e(e)){for(let n=0,a=e.length;n<a;n++)if(Va(e[n],t))return n}else if(xe(e))return Va(e,t)?0:-1;return-1}function Ha(t,e,n=go,a=!1){if(n){const i=n[t]||(n[t]=[]),o=e.__weh||(e.__weh=(...a)=>{if(n.isUnmounted)return;on(),mo(n);const i=oa(e,n,t,a);return mo(null),rn(),i});return a?i.unshift(o):i.push(o),o}}const qa=t=>(e,n=go)=>!ho&&Ha(t,e,n),Ka=qa("bm"),Ja=qa("m"),Xa=qa("bu"),Ya=qa("u"),Qa=qa("bum"),ti=qa("um"),ei=qa("rtg"),ni=qa("rtc"),ai={};function ii(t,e,n){return oi(t,e,n)}function oi(t,e,{immediate:n,deep:a,flush:i,onTrack:o,onTrigger:r}=ue,l=go){let s,c,u=!1;if(Xn(t)?(s=()=>t.value,u=!!t._shallow):Wn(t)?(s=()=>t,a=!0):s=_e(t)?()=>t.map((t=>Xn(t)?t.value:Wn(t)?li(t):xe(t)?ia(t,l,2):void 0)):xe(t)?e?()=>ia(t,l,2):()=>{if(!l||!l.isUnmounted)return c&&c(),ia(t,l,3,[d])}:pe,e&&a){const t=s;s=()=>li(t())}const d=t=>{c=m.options.onStop=()=>{ia(t,l,4)}};let p=_e(t)?[]:ai;const f=()=>{if(m.active)if(e){const t=m();(a||u||ze(t,p))&&(c&&c(),oa(e,l,3,[t,p===ai?void 0:p,d]),p=t)}else m()};let g;f.allowRecurse=!!e,g="sync"===i?f:"post"===i?()=>Li(f,l&&l.suspense):()=>{!l||l.isMounted?function(t){wa(t,pa,da,fa)}(f):f()};const m=Ye(s,{lazy:!0,onTrack:o,onTrigger:r,scheduler:g});return vo(m,l),e?n?f():p=m():"post"===i?Li(m,l&&l.suspense):m(),()=>{Qe(m),l&&ye(l.effects,m)}}function ri(t,e,n){const a=this.proxy;return oi(ke(t)?()=>a[t]:t.bind(a),e.bind(a),n,this)}function li(t,e=new Set){if(!Ne(t)||e.has(t))return t;if(e.add(t),Xn(t))li(t.value,e);else if(_e(t))for(let n=0;n<t.length;n++)li(t[n],e);else if(we(t)||Le(t))t.forEach((t=>{li(t,e)}));else for(const n in t)li(t[n],e);return t}const si=t=>t.type.__isKeepAlive;function ci(t,e,n=go){const a=t.__wdc||(t.__wdc=()=>{let e=n;for(;e;){if(e.isDeactivated)return;e=e.parent}t()});if(Ha(e,a,n),n){let t=n.parent;for(;t&&t.parent;)si(t.parent.vnode)&&ui(a,e,n,t),t=t.parent}}function ui(t,e,n,a){const i=Ha(e,t,a,!0);ti((()=>{ye(a[e],i)}),n)}const di=t=>"_"===t[0]||"$stable"===t,pi=t=>_e(t)?t.map(qi):[qi(t)],fi=(t,e,n)=>function(t,e=Da){if(!e)return t;const n=(...n)=>{Ba||Ri(!0);const a=Da;Aa(e);const i=t(...n);return Aa(a),Ba||Ii(),i};return n._c=!0,n}((t=>pi(e(t))),n),gi=(t,e)=>{const n=t._ctx;for(const a in t){if(di(a))continue;const i=t[a];if(xe(i))e[a]=fi(0,i,n);else if(null!=i){const t=pi(i);e[a]=()=>t}}},mi=(t,e)=>{const n=pi(e);t.slots.default=()=>n};function hi(t,e){if(null===Da)return t;const n=Da.proxy,a=t.dirs||(t.dirs=[]);for(let t=0;t<e.length;t++){let[i,o,r,l=ue]=e[t];xe(i)&&(i={mounted:i,updated:i}),a.push({dir:i,instance:n,value:o,oldValue:void 0,arg:r,modifiers:l})}return t}function Ci(t,e,n,a){const i=t.dirs,o=e&&e.dirs;for(let r=0;r<i.length;r++){const l=i[r];o&&(l.oldValue=o[r].value);const s=l.dir[a];s&&oa(s,n,8,[t.el,l,t,e])}}function yi(){return{app:null,config:{isNativeTag:fe,performance:!1,globalProperties:{},optionMergeStrategies:{},isCustomElement:fe,errorHandler:void 0,warnHandler:void 0},mixins:[],components:{},directives:{},provides:Object.create(null)}}let vi=0;function bi(t,e){return function(n,a=null){null==a||Ne(a)||(a=null);const i=yi(),o=new Set;let r=!1;const l=i.app={_uid:vi++,_component:n,_props:a,_container:null,_context:i,version:Lo,get config(){return i.config},set config(t){},use:(t,...e)=>(o.has(t)||(t&&xe(t.install)?(o.add(t),t.install(l,...e)):xe(t)&&(o.add(t),t(l,...e))),l),mixin:t=>(__VUE_OPTIONS_API__&&(i.mixins.includes(t)||(i.mixins.push(t),(t.props||t.emits)&&(i.deopt=!0))),l),component:(t,e)=>e?(i.components[t]=e,l):i.components[t],directive:(t,e)=>e?(i.directives[t]=e,l):i.directives[t],mount(o,s){if(!r){const c=Zi(n,a);return c.appContext=i,s&&e?e(c,o):t(c,o),r=!0,l._container=o,o.__vue_app__=l,__VUE_PROD_DEVTOOLS__,c.component.proxy}},unmount(){r&&(t(null,l._container),__VUE_PROD_DEVTOOLS__)},provide:(t,e)=>(i.provides[t]=e,l)};return l}}const _i={scheduler:_a,allowRecurse:!0},Li=function(t,e){e&&e.pendingBranch?_e(t)?e.effects.push(...t):e.effects.push(t):wa(t,ma,ga,ha)},wi=(t,e,n,a)=>{if(_e(t))return void t.forEach(((t,i)=>wi(t,e&&(_e(e)?e[i]:e),n,a)));let i;i=!a||a.type.__asyncLoader?null:4&a.shapeFlag?a.component.exposed||a.component.proxy:a.el;const{i:o,r}=t,l=e&&e.r,s=o.refs===ue?o.refs={}:o.refs,c=o.setupState;if(null!=l&&l!==r&&(ke(l)?(s[l]=null,be(c,l)&&(c[l]=null)):Xn(l)&&(l.value=null)),ke(r)){const t=()=>{s[r]=i,be(c,r)&&(c[r]=i)};i?(t.id=-1,Li(t,n)):t()}else if(Xn(r)){const t=()=>{r.value=i};i?(t.id=-1,Li(t,n)):t()}else xe(r)&&ia(r,o,12,[i,s])};function xi(t,e,n,a=null){oa(t,e,7,[n,a])}function ki(t,e,n=!1){const a=t.children,i=e.children;if(_e(a)&&_e(i))for(let t=0;t<a.length;t++){const e=a[t];let o=i[t];1&o.shapeFlag&&!o.dynamicChildren&&((o.patchFlag<=0||32===o.patchFlag)&&(o=i[t]=Ki(i[t]),o.el=e.el),n||ki(e,o))}}const Si=t=>t&&(t.disabled||""===t.disabled);function Ni(t){return function(t,e,n=!0){const a=Da||go;if(a){const n=a.type;if("components"===t){if("_self"===e)return n;const t=n.displayName||n.name;if(t&&(t===e||t===Re(e)||t===je(Re(e))))return n}return Ti(a[t]||n[t],e)||Ti(a.appContext[t],e)}}("components",t)||t}const Mi=Symbol();function Ti(t,e){return t&&(t[e]||t[Re(e)]||t[je(Re(e))])}const Oi=Symbol(void 0),Di=Symbol(void 0),Ai=Symbol(void 0),Ei=Symbol(void 0),Pi=[];let Fi=null;function Ri(t=!1){Pi.push(Fi=t?null:[])}function Ii(){Pi.pop(),Fi=Pi[Pi.length-1]||null}function Bi(t,e,n,a,i){const o=Zi(t,e,n,a,i,!0);return o.dynamicChildren=Fi||de,Ii(),Fi&&Fi.push(o),o}function ji(t){return!!t&&!0===t.__v_isVNode}function Gi(t,e){return t.type===e.type&&t.key===e.key}const zi="__vInternal",$i=({key:t})=>null!=t?t:null,Ui=({ref:t})=>null!=t?ke(t)||Xn(t)||xe(t)?{i:Da,r:t}:t:null,Zi=function(t,e=null,n=null,a=0,i=null,o=!1){if(t&&t!==Mi||(t=Ai),ji(t)){const a=Vi(t,e,!0);return n&&Ji(a,n),a}var r;if(xe(r=t)&&"__vccOpts"in r&&(t=t.__vccOpts),e){(qn(e)||zi in e)&&(e=Ce({},e));let{class:t,style:n}=e;t&&!ke(t)&&(e.class=le(t)),Ne(n)&&(qn(n)&&!_e(n)&&(n=Ce({},n)),e.style=ae(n))}const l=ke(t)?1:(t=>t.__isSuspense)(t)?128:(t=>t.__isTeleport)(t)?64:Ne(t)?4:xe(t)?2:0,s={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&$i(e),ref:e&&Ui(e),scopeId:null,children:null,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:a,dynamicProps:i,dynamicChildren:null,appContext:null};if(Ji(s,n),128&l){const{content:t,fallback:e}=function(t){const{shapeFlag:e,children:n}=t;let a,i;return 32&e?(a=Ia(n.default),i=Ia(n.fallback)):(a=Ia(n),i=qi(null)),{content:a,fallback:i}}(s);s.ssContent=t,s.ssFallback=e}return!o&&Fi&&(a>0||6&l)&&32!==a&&Fi.push(s),s};function Vi(t,e,n=!1){const{props:a,ref:i,patchFlag:o}=t,r=e?function(...t){const e=Ce({},t[0]);for(let n=1;n<t.length;n++){const a=t[n];for(const t in a)if("class"===t)e.class!==a.class&&(e.class=le([e.class,a.class]));else if("style"===t)e.style=ae([e.style,a.style]);else if(me(t)){const n=e[t],i=a[t];n!==i&&(e[t]=n?[].concat(n,a[t]):i)}else""!==t&&(e[t]=a[t])}return e}(a||{},e):a;return{__v_isVNode:!0,__v_skip:!0,type:t.type,props:r,key:r&&$i(r),ref:e&&e.ref?n&&i?_e(i)?i.concat(Ui(e)):[i,Ui(e)]:Ui(e):i,scopeId:t.scopeId,children:t.children,target:t.target,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==Oi?-1===o?16:16|o:o,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:t.transition,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Vi(t.ssContent),ssFallback:t.ssFallback&&Vi(t.ssFallback),el:t.el,anchor:t.anchor}}function Wi(t=" ",e=0){return Zi(Di,null,t,e)}function Hi(t="",e=!1){return e?(Ri(),Bi(Ai,null,t)):Zi(Ai,null,t)}function qi(t){return null==t||"boolean"==typeof t?Zi(Ai):_e(t)?Zi(Oi,null,t):"object"==typeof t?null===t.el?t:Vi(t):Zi(Di,null,String(t))}function Ki(t){return null===t.el?t:Vi(t)}function Ji(t,e){let n=0;const{shapeFlag:a}=t;if(null==e)e=null;else if(_e(e))n=16;else if("object"==typeof e){if(1&a||64&a){const n=e.default;return void(n&&(n._c&&ja(1),Ji(t,n()),n._c&&ja(-1)))}{n=32;const a=e._;a||zi in e?3===a&&Da&&(1024&Da.vnode.patchFlag?(e._=2,t.patchFlag|=1024):e._=1):e._ctx=Da}}else xe(e)?(e={default:e,_ctx:Da},n=32):(e=String(e),64&a?(n=16,e=[Wi(e)]):n=8);t.children=e,t.shapeFlag|=n}function Xi(t,e,n=!1){const a=go||Da;if(a){const i=null==a.parent?a.vnode.appContext&&a.vnode.appContext.provides:a.parent.provides;if(i&&t in i)return i[t];if(arguments.length>1)return n&&xe(e)?e():e}}let Yi=!1;function Qi(t,e,n=[],a=[],i=[],o=!1){const{mixins:r,extends:l,data:s,computed:c,methods:u,watch:d,provide:p,inject:f,components:g,directives:m,beforeMount:h,mounted:C,beforeUpdate:y,updated:v,activated:b,deactivated:_,beforeDestroy:L,beforeUnmount:w,destroyed:x,unmounted:k,render:S,renderTracked:N,renderTriggered:M,errorCaptured:T,expose:O}=e,D=t.proxy,A=t.ctx,E=t.appContext.mixins;if(o&&S&&t.render===pe&&(t.render=S),o||(Yi=!0,to("beforeCreate","bc",e,t,E),Yi=!1,ao(t,E,n,a,i)),l&&Qi(t,l,n,a,i,!0),r&&ao(t,r,n,a,i),f)if(_e(f))for(let t=0;t<f.length;t++){const e=f[t];A[e]=Xi(e)}else for(const t in f){const e=f[t];Ne(e)?A[t]=Xi(e.from||t,e.default,!0):A[t]=Xi(e)}if(u)for(const t in u){const e=u[t];xe(e)&&(A[t]=e.bind(D))}if(o?s&&n.push(s):(n.length&&n.forEach((e=>io(t,e,D))),s&&io(t,s,D)),c)for(const t in c){const e=c[t],n=bo({get:xe(e)?e.bind(D,D):xe(e.get)?e.get.bind(D,D):pe,set:!xe(e)&&xe(e.set)?e.set.bind(D):pe});Object.defineProperty(A,t,{enumerable:!0,configurable:!0,get:()=>n.value,set:t=>n.value=t})}if(d&&a.push(d),!o&&a.length&&a.forEach((t=>{for(const e in t)oo(t[e],A,D,e)})),p&&i.push(p),!o&&i.length&&i.forEach((t=>{const e=xe(t)?t.call(D):t;Reflect.ownKeys(e).forEach((t=>{!function(t,e){if(go){let n=go.provides;const a=go.parent&&go.parent.provides;a===n&&(n=go.provides=Object.create(a)),n[t]=e}}(t,e[t])}))})),o&&(g&&Ce(t.components||(t.components=Ce({},t.type.components)),g),m&&Ce(t.directives||(t.directives=Ce({},t.type.directives)),m)),o||to("created","c",e,t,E),h&&Ka(h.bind(D)),C&&Ja(C.bind(D)),y&&Xa(y.bind(D)),v&&Ya(v.bind(D)),b&&ci(b.bind(D),"a",void 0),_&&function(t,e){ci(t,"da",void 0)}(_.bind(D)),T&&((t,e=go)=>{Ha("ec",t,e)})(T.bind(D)),N&&ni(N.bind(D)),M&&ei(M.bind(D)),w&&Qa(w.bind(D)),k&&ti(k.bind(D)),_e(O)&&!o)if(O.length){const e=t.exposed||(t.exposed=ea({}));O.forEach((t=>{e[t]=function(t,e){return Xn(t[e])?t[e]:new na(t,e)}(D,t)}))}else t.exposed||(t.exposed=ue)}function to(t,e,n,a,i){no(t,e,i,a);const{extends:o,mixins:r}=n;o&&eo(t,e,o,a),r&&no(t,e,r,a);const l=n[t];l&&oa(l.bind(a.proxy),a,e)}function eo(t,e,n,a){n.extends&&eo(t,e,n.extends,a);const i=n[t];i&&oa(i.bind(a.proxy),a,e)}function no(t,e,n,a){for(let i=0;i<n.length;i++){const o=n[i].mixins;o&&no(t,e,o,a);const r=n[i][t];r&&oa(r.bind(a.proxy),a,e)}}function ao(t,e,n,a,i){for(let o=0;o<e.length;o++)Qi(t,e[o],n,a,i,!0)}function io(t,e,n){const a=e.call(n,n);Ne(a)&&(t.data===ue?t.data=Un(a):Ce(t.data,a))}function oo(t,e,n,a){const i=a.includes(".")?function(t,e){const n=e.split(".");return()=>{let e=t;for(let t=0;t<n.length&&e;t++)e=e[n[t]];return e}}(n,a):()=>n[a];if(ke(t)){const n=e[t];xe(n)&&ii(i,n)}else if(xe(t))ii(i,t.bind(n));else if(Ne(t))if(_e(t))t.forEach((t=>oo(t,e,n,a)));else{const a=xe(t.handler)?t.handler.bind(n):e[t.handler];xe(a)&&ii(i,a,t)}}function ro(t,e,n){const a=n.appContext.config.optionMergeStrategies,{mixins:i,extends:o}=e;o&&ro(t,o,n),i&&i.forEach((e=>ro(t,e,n)));for(const i in e)a&&be(a,i)?t[i]=a[i](t[i],e[i],n.proxy,i):t[i]=e[i]}const lo=t=>t&&(t.proxy?t.proxy:lo(t.parent)),so=Ce(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>lo(t.parent),$root:t=>t.root&&t.root.proxy,$emit:t=>t.emit,$options:t=>__VUE_OPTIONS_API__?function(t){const e=t.type,{__merged:n,mixins:a,extends:i}=e;if(n)return n;const o=t.appContext.mixins;if(!o.length&&!a&&!i)return e;const r={};return o.forEach((e=>ro(r,e,t))),ro(r,e,t),e.__merged=r}(t):t.type,$forceUpdate:t=>()=>_a(t.update),$nextTick:t=>ba.bind(t.proxy),$watch:t=>__VUE_OPTIONS_API__?ri.bind(t):pe}),co={get({_:t},e){const{ctx:n,setupState:a,data:i,props:o,accessCache:r,type:l,appContext:s}=t;if("__v_skip"===e)return!0;let c;if("$"!==e[0]){const l=r[e];if(void 0!==l)switch(l){case 0:return a[e];case 1:return i[e];case 3:return n[e];case 2:return o[e]}else{if(a!==ue&&be(a,e))return r[e]=0,a[e];if(i!==ue&&be(i,e))return r[e]=1,i[e];if((c=t.propsOptions[0])&&be(c,e))return r[e]=2,o[e];if(n!==ue&&be(n,e))return r[e]=3,n[e];__VUE_OPTIONS_API__&&Yi||(r[e]=4)}}const u=so[e];let d,p;return u?("$attrs"===e&&ln(t,0,e),u(t)):(d=l.__cssModules)&&(d=d[e])?d:n!==ue&&be(n,e)?(r[e]=3,n[e]):(p=s.config.globalProperties,be(p,e)?p[e]:void 0)},set({_:t},e,n){const{data:a,setupState:i,ctx:o}=t;if(i!==ue&&be(i,e))i[e]=n;else if(a!==ue&&be(a,e))a[e]=n;else if(e in t.props)return!1;return!("$"===e[0]&&e.slice(1)in t||(o[e]=n,0))},has({_:{data:t,setupState:e,accessCache:n,ctx:a,appContext:i,propsOptions:o}},r){let l;return void 0!==n[r]||t!==ue&&be(t,r)||e!==ue&&be(e,r)||(l=o[0])&&be(l,r)||be(a,r)||be(so,r)||be(i.config.globalProperties,r)}},uo=Ce({},co,{get(t,e){if(e!==Symbol.unscopables)return co.get(t,e,t)},has:(t,e)=>"_"!==e[0]&&!ee(e)}),po=yi();let fo=0,go=null;const mo=t=>{go=t};let ho=!1;function Co(t,e,n){xe(e)?t.render=e:Ne(e)&&(__VUE_PROD_DEVTOOLS__&&(t.devtoolsRawSetupState=e),t.setupState=ea(e)),yo(t)}function yo(t,e){const n=t.type;t.render||(t.render=n.render||pe,t.render._rc&&(t.withProxy=new Proxy(t.ctx,uo))),__VUE_OPTIONS_API__&&(go=t,on(),Qi(t,n),rn(),go=null)}function vo(t,e=go){e&&(e.effects||(e.effects=[])).push(t)}function bo(t){const e=function(t){let e,n;return xe(t)?(e=t,n=pe):(e=t.get,n=t.set),new aa(e,n,xe(t)||!t.set)}(t);return vo(e.effect),e}function _o(t,e){let n;if(_e(t)||ke(t)){n=new Array(t.length);for(let a=0,i=t.length;a<i;a++)n[a]=e(t[a],a)}else if("number"==typeof t){n=new Array(t);for(let a=0;a<t;a++)n[a]=e(a+1,a)}else if(Ne(t))if(t[Symbol.iterator])n=Array.from(t,e);else{const a=Object.keys(t);n=new Array(a.length);for(let i=0,o=a.length;i<o;i++){const o=a[i];n[i]=e(t[o],o,i)}}else n=[];return n}const Lo="3.0.4",wo="http://www.w3.org/2000/svg",xo="undefined"!=typeof document?document:null;let ko,So;const No={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n)=>e?xo.createElementNS(wo,t):xo.createElement(t,n?{is:n}:void 0),createText:t=>xo.createTextNode(t),createComment:t=>xo.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>xo.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},cloneNode:t=>t.cloneNode(!0),insertStaticContent(t,e,n,a){const i=a?So||(So=xo.createElementNS(wo,"svg")):ko||(ko=xo.createElement("div"));i.innerHTML=t;const o=i.firstChild;let r=o,l=r;for(;r;)l=r,No.insert(r,e,n),r=i.firstChild;return[o,l]}},Mo=/\s*!important$/;function To(t,e,n){if(_e(n))n.forEach((n=>To(t,e,n)));else if(e.startsWith("--"))t.setProperty(e,n);else{const a=function(t,e){const n=Do[e];if(n)return n;let a=Re(e);if("filter"!==a&&a in t)return Do[e]=a;a=je(a);for(let n=0;n<Oo.length;n++){const i=Oo[n]+a;if(i in t)return Do[e]=i}return e}(t,e);Mo.test(n)?t.setProperty(Be(a),n.replace(Mo,""),"important"):t[a]=n}}const Oo=["Webkit","Moz","ms"],Do={},Ao="http://www.w3.org/1999/xlink";let Eo=Date.now;"undefined"!=typeof document&&Eo()>document.createEvent("Event").timeStamp&&(Eo=()=>performance.now());let Po=0;const Fo=Promise.resolve(),Ro=()=>{Po=0},Io=/(?:Once|Passive|Capture)$/,Bo=/^on[a-z]/,jo={beforeMount(t,{value:e},{transition:n}){t._vod="none"===t.style.display?"":t.style.display,n&&e?n.beforeEnter(t):Go(t,e)},mounted(t,{value:e},{transition:n}){n&&e&&n.enter(t)},updated(t,{value:e,oldValue:n},{transition:a}){a&&e!==n?e?(a.beforeEnter(t),Go(t,!0),a.enter(t)):a.leave(t,(()=>{Go(t,!1)})):Go(t,e)},beforeUnmount(t,{value:e}){Go(t,e)}};function Go(t,e){t.style.display=e?t._vod:"none"}const zo=Ce({patchProp:(t,e,n,a,i=!1,o,r,l,s)=>{switch(e){case"class":!function(t,e,n){if(null==e&&(e=""),n)t.setAttribute("class",e);else{const n=t._vtc;n&&(e=(e?[e,...n]:[...n]).join(" ")),t.className=e}}(t,a,i);break;case"style":!function(t,e,n){const a=t.style;if(n)if(ke(n))e!==n&&(a.cssText=n);else{for(const t in n)To(a,t,n[t]);if(e&&!ke(e))for(const t in e)null==n[t]&&To(a,t,"")}else t.removeAttribute("style")}(t,n,a);break;default:me(e)?he(e)||function(t,e,n,a,i=null){const o=t._vei||(t._vei={}),r=o[e];if(a&&r)r.value=a;else{const[n,l]=function(t){let e;if(Io.test(t)){let n;for(e={};n=t.match(Io);)t=t.slice(0,t.length-n[0].length),e[n[0].toLowerCase()]=!0}return[t.slice(2).toLowerCase(),e]}(e);a?function(t,e,n,a){t.addEventListener(e,n,a)}(t,n,o[e]=function(t,e){const n=t=>{(t.timeStamp||Eo())>=n.attached-1&&oa(function(t,e){if(_e(e)){const n=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{n.call(t),t._stopped=!0},e.map((t=>e=>!e._stopped&&t(e)))}return e}(t,n.value),e,5,[t])};return n.value=t,n.attached=Po||(Fo.then(Ro),Po=Eo()),n}(a,i),l):r&&(function(t,e,n,a){t.removeEventListener(e,n,a)}(t,n,r,l),o[e]=void 0)}}(t,e,0,a,r):function(t,e,n,a){return a?"innerHTML"===e||!!(e in t&&Bo.test(e)&&xe(n)):!("spellcheck"===e||"draggable"===e||"form"===e&&"string"==typeof n||"list"===e&&"INPUT"===t.tagName||Bo.test(e)&&ke(n)||!(e in t))}(t,e,a,i)?function(t,e,n,a,i,o,r){if("innerHTML"===e||"textContent"===e)return a&&r(a,i,o),void(t[e]=null==n?"":n);if("value"!==e||"PROGRESS"===t.tagName){if(""===n||null==n){const a=typeof t[e];if(""===n&&"boolean"===a)return void(t[e]=!0);if(null==n&&"string"===a)return t[e]="",void t.removeAttribute(e);if("number"===a)return t[e]=0,void t.removeAttribute(e)}try{t[e]=n}catch(t){}}else{t._value=n;const e=null==n?"":n;t.value!==e&&(t.value=e)}}(t,e,a,o,r,l,s):("true-value"===e?t._trueValue=a:"false-value"===e&&(t._falseValue=a),function(t,e,n,a){if(a&&e.startsWith("xlink:"))null==n?t.removeAttributeNS(Ao,e.slice(6,e.length)):t.setAttributeNS(Ao,e,n);else{const a=ne(e);null==n||a&&!1===n?t.removeAttribute(e):t.setAttribute(e,a?"":n)}}(t,e,a,i))}},forcePatchProp:(t,e)=>"value"===e},No);let $o;function Uo(){return $o||($o=function(t){return function(t,e){"boolean"!=typeof __VUE_OPTIONS_API__&&(We().__VUE_OPTIONS_API__=!0),"boolean"!=typeof __VUE_PROD_DEVTOOLS__&&(We().__VUE_PROD_DEVTOOLS__=!1);const{insert:n,remove:a,patchProp:i,forcePatchProp:o,createElement:r,createText:l,createComment:s,setText:c,setElementText:u,parentNode:d,nextSibling:p,setScopeId:f=pe,cloneNode:g,insertStaticContent:m}=t,h=(t,e,n,a=null,i=null,o=null,r=!1,l=!1)=>{t&&!Gi(t,e)&&(a=$(t),I(t,i,o,!0),t=null),-2===e.patchFlag&&(l=!1,e.dynamicChildren=null);const{type:s,ref:c,shapeFlag:u}=e;switch(s){case Di:C(t,e,n,a);break;case Ai:y(t,e,n,a);break;case Ei:null==t&&v(e,n,a,r);break;case Oi:N(t,e,n,a,i,o,r,l);break;default:1&u?b(t,e,n,a,i,o,r,l):6&u?M(t,e,n,a,i,o,r,l):(64&u||128&u)&&s.process(t,e,n,a,i,o,r,l,Z)}null!=c&&i&&wi(c,t&&t.ref,o,e)},C=(t,e,a,i)=>{if(null==t)n(e.el=l(e.children),a,i);else{const n=e.el=t.el;e.children!==t.children&&c(n,e.children)}},y=(t,e,a,i)=>{null==t?n(e.el=s(e.children||""),a,i):e.el=t.el},v=(t,e,n,a)=>{[t.el,t.anchor]=m(t.children,e,n,a)},b=(t,e,n,a,i,o,r,l)=>{r=r||"svg"===e.type,null==t?_(e,n,a,i,o,r,l):x(t,e,i,o,r,l)},_=(t,e,a,o,l,s,c)=>{let d,p;const{type:f,props:m,shapeFlag:h,transition:C,scopeId:y,patchFlag:v,dirs:b}=t;if(t.el&&void 0!==g&&-1===v)d=t.el=g(t.el);else{if(d=t.el=r(t.type,s,m&&m.is),8&h?u(d,t.children):16&h&&w(t.children,d,null,o,l,s&&"foreignObject"!==f,c||!!t.dynamicChildren),b&&Ci(t,null,o,"created"),m){for(const e in m)Ee(e)||i(d,e,null,m[e],s,t.children,o,l,z);(p=m.onVnodeBeforeMount)&&xi(p,o,t)}L(d,y,t,o)}__VUE_PROD_DEVTOOLS__&&(Object.defineProperty(d,"__vnode",{value:t,enumerable:!1}),Object.defineProperty(d,"__vueParentComponent",{value:o,enumerable:!1})),b&&Ci(t,null,o,"beforeMount");const _=(!l||l&&!l.pendingBranch)&&C&&!C.persisted;_&&C.beforeEnter(d),n(d,e,a),((p=m&&m.onVnodeMounted)||_||b)&&Li((()=>{p&&xi(p,o,t),_&&C.enter(d),b&&Ci(t,null,o,"mounted")}),l)},L=(t,e,n,a)=>{if(e&&f(t,e),a){const i=a.type.__scopeId;i&&i!==e&&f(t,i+"-s"),n===a.subTree&&L(t,a.vnode.scopeId,a.vnode,a.parent)}},w=(t,e,n,a,i,o,r,l=0)=>{for(let s=l;s<t.length;s++){const l=t[s]=r?Ki(t[s]):qi(t[s]);h(null,l,e,n,a,i,o,r)}},x=(t,e,n,a,r,l)=>{const s=e.el=t.el;let{patchFlag:c,dynamicChildren:d,dirs:p}=e;c|=16&t.patchFlag;const f=t.props||ue,g=e.props||ue;let m;if((m=g.onVnodeBeforeUpdate)&&xi(m,n,e,t),p&&Ci(e,t,n,"beforeUpdate"),c>0){if(16&c)S(s,e,f,g,n,a,r);else if(2&c&&f.class!==g.class&&i(s,"class",null,g.class,r),4&c&&i(s,"style",f.style,g.style,r),8&c){const l=e.dynamicProps;for(let e=0;e<l.length;e++){const c=l[e],u=f[c],d=g[c];(d!==u||o&&o(s,c))&&i(s,c,u,d,r,t.children,n,a,z)}}1&c&&t.children!==e.children&&u(s,e.children)}else l||null!=d||S(s,e,f,g,n,a,r);const h=r&&"foreignObject"!==e.type;d?k(t.dynamicChildren,d,s,n,a,h):l||E(t,e,s,null,n,a,h),((m=g.onVnodeUpdated)||p)&&Li((()=>{m&&xi(m,n,e,t),p&&Ci(e,t,n,"updated")}),a)},k=(t,e,n,a,i,o)=>{for(let r=0;r<e.length;r++){const l=t[r],s=e[r],c=l.type===Oi||!Gi(l,s)||6&l.shapeFlag||64&l.shapeFlag?d(l.el):n;h(l,s,c,null,a,i,o,!0)}},S=(t,e,n,a,r,l,s)=>{if(n!==a){for(const c in a){if(Ee(c))continue;const u=a[c],d=n[c];(u!==d||o&&o(t,c))&&i(t,c,d,u,s,e.children,r,l,z)}if(n!==ue)for(const o in n)Ee(o)||o in a||i(t,o,n[o],null,s,e.children,r,l,z)}},N=(t,e,a,i,o,r,s,c)=>{const u=e.el=t?t.el:l(""),d=e.anchor=t?t.anchor:l("");let{patchFlag:p,dynamicChildren:f}=e;p>0&&(c=!0),null==t?(n(u,a,i),n(d,a,i),w(e.children,a,d,o,r,s,c)):p>0&&64&p&&f?(k(t.dynamicChildren,f,a,o,r,s),(null!=e.key||o&&e===o.subTree)&&ki(t,e,!0)):E(t,e,a,d,o,r,s,c)},M=(t,e,n,a,i,o,r,l)=>{null==t?512&e.shapeFlag?i.ctx.activate(e,n,a,r,l):T(e,n,a,i,o,r,l):O(t,e,l)},T=(t,e,n,a,i,o,r)=>{const l=t.component=function(t,e,n){const a=t.type,i=(e?e.appContext:t.appContext)||po,o={uid:fo++,vnode:t,type:a,parent:e,appContext:i,root:null,next:null,subTree:null,update:null,render:null,proxy:null,exposed:null,withProxy:null,effects:null,provides:e?e.provides:Object.create(i.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:$a(a,i),emitsOptions:Ta(a,i),emit:null,emitted:null,ctx:ue,data:ue,props:ue,attrs:ue,slots:ue,refs:ue,setupState:ue,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null};return o.ctx={_:o},o.root=e?e.root:o,o.emit=Ma.bind(null,o),__VUE_PROD_DEVTOOLS__,o}(t,a,i);if(si(t)&&(l.ctx.renderer=Z),function(t,e=!1){ho=e;const{props:n,children:a,shapeFlag:i}=t.vnode,o=4&i;(function(t,e,n,a=!1){const i={},o={};Ue(o,zi,1),Ga(t,e,i,o),n?t.props=a?i:Vn(i,!1,vn,jn):t.type.props?t.props=i:t.props=o,t.attrs=o})(t,n,o,e),((t,e)=>{if(32&t.vnode.shapeFlag){const n=e._;n?(t.slots=e,Ue(e,"_",n)):gi(e,t.slots={})}else t.slots={},e&&mi(t,e);Ue(t.slots,zi,1)})(t,a),o&&function(t,e){const n=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,co);const{setup:a}=n;if(a){const n=t.setupContext=a.length>1?function(t){return{attrs:t.attrs,slots:t.slots,emit:t.emit,expose:e=>{t.exposed=ea(e)}}}(t):null;go=t,on();const i=ia(a,t,0,[t.props,n]);if(rn(),go=null,Me(i)){if(e)return i.then((e=>{Co(t,e)}));t.asyncDep=i}else Co(t,i)}else yo(t)}(t,e),ho=!1}(l),l.asyncDep){if(i&&i.registerDep(l,D),!t.el){const t=l.subTree=Zi(Ai);y(null,t,e,n)}}else D(l,t,e,n,i,o,r)},O=(t,e,n)=>{const a=e.component=t.component;if(function(t,e,n){const{props:a,children:i,component:o}=t,{props:r,children:l,patchFlag:s}=e,c=o.emitsOptions;if(e.dirs||e.transition)return!0;if(!(n&&s>=0))return!(!i&&!l||l&&l.$stable)||a!==r&&(a?!r||Ra(a,r,c):!!r);if(1024&s)return!0;if(16&s)return a?Ra(a,r,c):!!r;if(8&s){const t=e.dynamicProps;for(let e=0;e<t.length;e++){const n=t[e];if(r[n]!==a[n]&&!Oa(c,n))return!0}}return!1}(t,e,n)){if(a.asyncDep&&!a.asyncResolved)return void A(a,e,n);a.next=e,function(t){const e=ca.indexOf(t);e>-1&&ca.splice(e,1)}(a.update),a.update()}else e.component=t.component,e.el=t.el,a.vnode=e},D=(t,e,n,a,i,o,r)=>{t.update=Ye((function(){if(t.isMounted){let e,{next:n,bu:a,u:l,parent:s,vnode:c}=t,u=n;n?(n.el=c.el,A(t,n,r)):n=c,a&&$e(a),(e=n.props&&n.props.onVnodeBeforeUpdate)&&xi(e,s,n,c);const p=Ea(t),f=t.subTree;t.subTree=p,h(f,p,d(f.el),$(f),t,i,o),n.el=p.el,null===u&&function({vnode:t,parent:e},n){for(;e&&e.subTree===t;)(t=e.vnode).el=n,e=e.parent}(t,p.el),l&&Li(l,i),(e=n.props&&n.props.onVnodeUpdated)&&Li((()=>{xi(e,s,n,c)}),i),__VUE_PROD_DEVTOOLS__}else{let r;const{el:l,props:s}=e,{bm:c,m:u,parent:d}=t;c&&$e(c),(r=s&&s.onVnodeBeforeMount)&&xi(r,d,e);const p=t.subTree=Ea(t);h(null,p,n,a,t,i,o),e.el=p.el,u&&Li(u,i),(r=s&&s.onVnodeMounted)&&Li((()=>{xi(r,d,e)}),i);const{a:f}=t;f&&256&e.shapeFlag&&Li(f,i),t.isMounted=!0}}),_i)},A=(t,e,n)=>{e.component=t;const a=t.vnode.props;t.vnode=e,t.next=null,function(t,e,n,a){const{props:i,attrs:o,vnode:{patchFlag:r}}=t,l=Kn(i),[s]=t.propsOptions;if(!(a||r>0)||16&r){let a;Ga(t,e,i,o);for(const o in l)e&&(be(e,o)||(a=Be(o))!==o&&be(e,a))||(s?!n||void 0===n[o]&&void 0===n[a]||(i[o]=za(s,e||ue,o,void 0,t)):delete i[o]);if(o!==l)for(const t in o)e&&be(e,t)||delete o[t]}else if(8&r){const n=t.vnode.dynamicProps;for(let a=0;a<n.length;a++){const r=n[a],c=e[r];if(s)if(be(o,r))o[r]=c;else{const e=Re(r);i[e]=za(s,l,e,c,t)}else o[r]=c}}sn(t,"set","$attrs")}(t,e.props,a,n),((t,e)=>{const{vnode:n,slots:a}=t;let i=!0,o=ue;if(32&n.shapeFlag){const t=e._;t?1===t?i=!1:Ce(a,e):(i=!e.$stable,gi(e,a)),o=e}else e&&(mi(t,e),o={default:1});if(i)for(const t in a)di(t)||t in o||delete a[t]})(t,e.children),xa(void 0,t.update)},E=(t,e,n,a,i,o,r,l=!1)=>{const s=t&&t.children,c=t?t.shapeFlag:0,d=e.children,{patchFlag:p,shapeFlag:f}=e;if(p>0){if(128&p)return void F(s,d,n,a,i,o,r,l);if(256&p)return void P(s,d,n,a,i,o,r,l)}8&f?(16&c&&z(s,i,o),d!==s&&u(n,d)):16&c?16&f?F(s,d,n,a,i,o,r,l):z(s,i,o,!0):(8&c&&u(n,""),16&f&&w(d,n,a,i,o,r,l))},P=(t,e,n,a,i,o,r,l)=>{e=e||de;const s=(t=t||de).length,c=e.length,u=Math.min(s,c);let d;for(d=0;d<u;d++){const a=e[d]=l?Ki(e[d]):qi(e[d]);h(t[d],a,n,null,i,o,r,l)}s>c?z(t,i,o,!0,!1,u):w(e,n,a,i,o,r,l,u)},F=(t,e,n,a,i,o,r,l)=>{let s=0;const c=e.length;let u=t.length-1,d=c-1;for(;s<=u&&s<=d;){const a=t[s],c=e[s]=l?Ki(e[s]):qi(e[s]);if(!Gi(a,c))break;h(a,c,n,null,i,o,r,l),s++}for(;s<=u&&s<=d;){const a=t[u],s=e[d]=l?Ki(e[d]):qi(e[d]);if(!Gi(a,s))break;h(a,s,n,null,i,o,r,l),u--,d--}if(s>u){if(s<=d){const t=d+1,u=t<c?e[t].el:a;for(;s<=d;)h(null,e[s]=l?Ki(e[s]):qi(e[s]),n,u,i,o,r),s++}}else if(s>d)for(;s<=u;)I(t[s],i,o,!0),s++;else{const p=s,f=s,g=new Map;for(s=f;s<=d;s++){const t=e[s]=l?Ki(e[s]):qi(e[s]);null!=t.key&&g.set(t.key,s)}let m,C=0;const y=d-f+1;let v=!1,b=0;const _=new Array(y);for(s=0;s<y;s++)_[s]=0;for(s=p;s<=u;s++){const a=t[s];if(C>=y){I(a,i,o,!0);continue}let c;if(null!=a.key)c=g.get(a.key);else for(m=f;m<=d;m++)if(0===_[m-f]&&Gi(a,e[m])){c=m;break}void 0===c?I(a,i,o,!0):(_[c-f]=s+1,c>=b?b=c:v=!0,h(a,e[c],n,null,i,o,r,l),C++)}const L=v?function(t){const e=t.slice(),n=[0];let a,i,o,r,l;const s=t.length;for(a=0;a<s;a++){const s=t[a];if(0!==s){if(i=n[n.length-1],t[i]<s){e[a]=i,n.push(a);continue}for(o=0,r=n.length-1;o<r;)l=(o+r)/2|0,t[n[l]]<s?o=l+1:r=l;s<t[n[o]]&&(o>0&&(e[a]=n[o-1]),n[o]=a)}}for(o=n.length,r=n[o-1];o-- >0;)n[o]=r,r=e[r];return n}(_):de;for(m=L.length-1,s=y-1;s>=0;s--){const t=f+s,l=e[t],u=t+1<c?e[t+1].el:a;0===_[s]?h(null,l,n,u,i,o,r):v&&(m<0||s!==L[m]?R(l,n,u,2):m--)}}},R=(t,e,a,i,o=null)=>{const{el:r,type:l,transition:s,children:c,shapeFlag:u}=t;if(6&u)R(t.component.subTree,e,a,i);else if(128&u)t.suspense.move(e,a,i);else if(64&u)l.move(t,e,a,Z);else if(l!==Oi)if(l!==Ei)if(2!==i&&1&u&&s)if(0===i)s.beforeEnter(r),n(r,e,a),Li((()=>s.enter(r)),o);else{const{leave:t,delayLeave:i,afterLeave:o}=s,l=()=>n(r,e,a),c=()=>{t(r,(()=>{l(),o&&o()}))};i?i(r,l,c):c()}else n(r,e,a);else(({el:t,anchor:e},a,i)=>{let o;for(;t&&t!==e;)o=p(t),n(t,a,i),t=o;n(e,a,i)})(t,e,a);else{n(r,e,a);for(let t=0;t<c.length;t++)R(c[t],e,a,i);n(t.anchor,e,a)}},I=(t,e,n,a=!1,i=!1)=>{const{type:o,props:r,ref:l,children:s,dynamicChildren:c,shapeFlag:u,patchFlag:d,dirs:p}=t;if(null!=l&&wi(l,null,n,null),256&u)return void e.ctx.deactivate(t);const f=1&u&&p;let g;if((g=r&&r.onVnodeBeforeUnmount)&&xi(g,e,t),6&u)G(t.component,n,a);else{if(128&u)return void t.suspense.unmount(n,a);f&&Ci(t,null,e,"beforeUnmount"),c&&(o!==Oi||d>0&&64&d)?z(c,e,n,!1,!0):(o===Oi&&(128&d||256&d)||!i&&16&u)&&z(s,e,n),64&u&&(a||!Si(t.props))&&t.type.remove(t,Z),a&&B(t)}((g=r&&r.onVnodeUnmounted)||f)&&Li((()=>{g&&xi(g,e,t),f&&Ci(t,null,e,"unmounted")}),n)},B=t=>{const{type:e,el:n,anchor:i,transition:o}=t;if(e===Oi)return void j(n,i);if(e===Ei)return void(({el:t,anchor:e})=>{let n;for(;t&&t!==e;)n=p(t),a(t),t=n;a(e)})(t);const r=()=>{a(n),o&&!o.persisted&&o.afterLeave&&o.afterLeave()};if(1&t.shapeFlag&&o&&!o.persisted){const{leave:e,delayLeave:a}=o,i=()=>e(n,r);a?a(t.el,r,i):i()}else r()},j=(t,e)=>{let n;for(;t!==e;)n=p(t),a(t),t=n;a(e)},G=(t,e,n)=>{const{bum:a,effects:i,update:o,subTree:r,um:l}=t;if(a&&$e(a),i)for(let t=0;t<i.length;t++)Qe(i[t]);o&&(Qe(o),I(r,t,e,n)),l&&Li(l,e),Li((()=>{t.isUnmounted=!0}),e),e&&e.pendingBranch&&!e.isUnmounted&&t.asyncDep&&!t.asyncResolved&&t.suspenseId===e.pendingId&&(e.deps--,0===e.deps&&e.resolve()),__VUE_PROD_DEVTOOLS__},z=(t,e,n,a=!1,i=!1,o=0)=>{for(let r=o;r<t.length;r++)I(t[r],e,n,a,i)},$=t=>6&t.shapeFlag?$(t.component.subTree):128&t.shapeFlag?t.suspense.next():p(t.anchor||t.el),U=(t,e)=>{null==t?e._vnode&&I(e._vnode,null,null,!0):h(e._vnode||null,t,e),ka(),e._vnode=t},Z={p:h,um:I,m:R,r:B,mt:T,mc:w,pc:E,pbc:k,n:$,o:t};let V;return{render:U,hydrate:V,createApp:bi(U,V)}}(t)}(zo))}const Zo=(...t)=>Object.prototype.toString.call(...t).slice(8,-1);var Vo={props:{data:{required:!0,validator:t=>"Null"===Zo(t)},name:{required:!0,type:String}}};const Wo={class:"null"},Ho={class:"key"},qo={key:0,class:"separator"},Ko=Zi("span",{class:"value"},"null",-1);Vo.render=function(t,e,n,a,i,o){return Ri(),Bi("span",Wo,[Zi("span",Ho,se(n.name),1),""!==n.name?(Ri(),Bi("span",qo,": ")):Hi("v-if",!0),Ko])},Vo.__file="src/components/NullWrapper.vue";var Jo={props:{data:{required:!0,validator:t=>"Boolean"===Zo(t)},name:{required:!0,type:String}}};const Xo={class:"boolean"},Yo={class:"key"},Qo={key:0,class:"separator"},tr={class:"value"};Jo.render=function(t,e,n,a,i,o){return Ri(),Bi("span",Xo,[Zi("span",Yo,se(n.name),1),""!==n.name?(Ri(),Bi("span",Qo,": ")):Hi("v-if",!0),Zi("span",tr,se(n.data),1)])},Jo.__file="src/components/BooleanWrapper.vue";var er={props:{data:{required:!0,validator:t=>"Number"===Zo(t)},name:{required:!0,type:String}}};const nr={class:"number"},ar={class:"key"},ir={key:0,class:"separator"},or={class:"value"};er.render=function(t,e,n,a,i,o){return Ri(),Bi("span",nr,[Zi("span",ar,se(n.name),1),""!==n.name?(Ri(),Bi("span",ir,": ")):Hi("v-if",!0),Zi("span",or,se(n.data),1)])},er.__file="src/components/NumberWrapper.vue";var rr={props:{data:{required:!0,validator:t=>"String"===Zo(t)},name:{required:!0,type:String}}};const lr={class:"string"},sr={class:"key"},cr={key:0,class:"separator"},ur=Zi("span",{class:"quotes"},'"',-1),dr={class:"value"},pr=Zi("span",{class:"quotes"},'"',-1);rr.render=function(t,e,n,a,i,o){return Ri(),Bi("span",lr,[Zi("span",sr,se(n.name),1),""!==n.name?(Ri(),Bi("span",cr,": ")):Hi("v-if",!0),ur,Zi("span",dr,se(n.data),1),pr])},rr.__file="src/components/StringWrapper.vue";const fr=new Set;function gr(t={collapseSignal,expandSignal}){const e=Yn(!1),n=Yn(!1),a=()=>{e.value=!1,n.value=!n.value};ii((()=>t.collapseSignal),a);const i=Yn(!1),o=()=>{e.value=!0,i.value=!i.value};return ii((()=>t.expandSignal),o),ii((()=>t.data),(()=>{t.expandOnCreatedAndUpdated(t.path)?o():a()}),{immediate:!0}),{isExpanding:e,innerCollapseSignal:n,innerExpandSignal:i,handleClick:t=>{fr.clear(),!0===t.metaKey&&!0===t.shiftKey?a():!0===t.metaKey?o():e.value=!e.value}}}var mr={name:"array-wrapper",props:{path:{required:!0,validator:t=>"Array"===Zo(t)&&t.every((t=>"String"===Zo(t)||"Number"===Zo(t)))},data:{required:!0,validator:t=>"Array"===Zo(t)},name:{required:!0,type:String},collapseSignal:{default:!1,type:Boolean},expandSignal:{default:!1,type:Boolean},expandOnCreatedAndUpdated:{required:!0,type:Function},getKeys:{required:!0,type:Function}},setup(t){const{isExpanding:e,innerExpandSignal:n,innerCollapseSignal:a,handleClick:i}=gr(t),o=bo((()=>t.getKeys(t.data,t.path))),r=fr.has(t.data);return fr.add(t.data),{keys:o,isExpanding:e,innerExpandSignal:n,innerCollapseSignal:a,handleClick:i,isCircular:r}},components:{}};const hr={class:"array"},Cr={key:0,class:"value"},yr={key:0,class:"value"};mr.render=function(t,e,n,a,i,o){const r=Ni("wrapper");return Ri(),Bi("span",hr,[Zi("span",{class:"indicator",onClick:e[1]||(e[1]=(...t)=>a.handleClick&&a.handleClick(...t))},se(a.isExpanding?"▼":"▶"),1),Zi("span",{class:"key",onClick:e[2]||(e[2]=(...t)=>a.handleClick&&a.handleClick(...t))},se(""===n.name?"":n.name),1),Zi("span",{class:"separator",onClick:e[3]||(e[3]=(...t)=>a.handleClick&&a.handleClick(...t))},se(""===n.name?"":": "),1),Zi("span",{class:"count",onClick:e[4]||(e[4]=(...t)=>a.handleClick&&a.handleClick(...t))},se(!1===a.isExpanding&&n.data.length>=2?"("+n.data.length+")":""),1),Zi("span",{class:"preview",onClick:e[5]||(e[5]=(...t)=>a.handleClick&&a.handleClick(...t))},se(a.isExpanding?"Array("+n.data.length+")":"[...]"),1),a.isCircular?(Ri(),Bi(Oi,{key:0},[a.isExpanding?(Ri(),Bi("span",Cr,[(Ri(!0),Bi(Oi,null,_o(a.keys,(t=>(Ri(),Bi(r,{key:t,name:t,path:n.path.concat(t),data:n.data[t],"expand-signal":a.innerExpandSignal,"collapse-signal":a.innerCollapseSignal,expandOnCreatedAndUpdated:()=>!1,getKeys:n.getKeys},null,8,["name","path","data","expand-signal","collapse-signal","expandOnCreatedAndUpdated","getKeys"])))),128))])):Hi("v-if",!0)],64)):(Ri(),Bi(Oi,{key:1},[a.isExpanding?(Ri(),Bi("span",yr,[(Ri(!0),Bi(Oi,null,_o(a.keys,(t=>(Ri(),Bi(r,{key:t,name:t,path:n.path.concat(t),data:n.data[t],"expand-signal":a.innerExpandSignal,"collapse-signal":a.innerCollapseSignal,expandOnCreatedAndUpdated:n.expandOnCreatedAndUpdated,getKeys:n.getKeys},null,8,["name","path","data","expand-signal","collapse-signal","expandOnCreatedAndUpdated","getKeys"])))),128))])):Hi("v-if",!0)],64))])},mr.__file="src/components/ArrayWrapper.vue";var vr={name:"object-wrapper",props:{path:{required:!0,validator:t=>"Array"===Zo(t)&&t.every((t=>"String"===Zo(t)||"Number"===Zo(t)))},data:{required:!0,validator:t=>"Object"===Zo(t)},name:{required:!0,type:String},collapseSignal:{default:!1,type:Boolean},expandSignal:{default:!1,type:Boolean},expandOnCreatedAndUpdated:{required:!0,type:Function},getKeys:{required:!0,type:Function}},setup(t){const{isExpanding:e,innerExpandSignal:n,innerCollapseSignal:a,handleClick:i}=gr(t),o=bo((()=>t.getKeys(t.data,t.path))),r=fr.has(t.data);return fr.add(t.data),{keys:o,isExpanding:e,innerExpandSignal:n,innerCollapseSignal:a,handleClick:i,isCircular:r}},components:{}};const br={class:"object"},_r={key:0,class:"value"},Lr={key:1,class:"value"};vr.render=function(t,e,n,a,i,o){const r=Ni("wrapper");return Ri(),Bi("span",br,[Zi("span",{class:"indicator",onClick:e[1]||(e[1]=(...t)=>a.handleClick&&a.handleClick(...t))},se(a.isExpanding?"▼":"▶"),1),Zi("span",{class:"key",onClick:e[2]||(e[2]=(...t)=>a.handleClick&&a.handleClick(...t))},se(""===n.name?"":n.name),1),Zi("span",{class:"separator",onClick:e[3]||(e[3]=(...t)=>a.handleClick&&a.handleClick(...t))},se(""===n.name?"":": "),1),Zi("span",{class:"preview",onClick:e[4]||(e[4]=(...t)=>a.handleClick&&a.handleClick(...t))},se(a.isExpanding?"":"{...}"),1),a.isCircular?(Ri(),Bi(Oi,{key:0},[a.isExpanding?(Ri(),Bi("span",_r,[(Ri(!0),Bi(Oi,null,_o(a.keys,(t=>(Ri(),Bi(r,{key:t,class:"value",name:t,path:n.path.concat(t),data:n.data[t],"expand-signal":a.innerExpandSignal,"collapse-signal":a.innerCollapseSignal,expandOnCreatedAndUpdated:()=>!1,getKeys:n.getKeys},null,8,["name","path","data","expand-signal","collapse-signal","expandOnCreatedAndUpdated","getKeys"])))),128))])):Hi("v-if",!0)],64)):hi((Ri(),Bi("span",Lr,[(Ri(!0),Bi(Oi,null,_o(a.keys,(t=>(Ri(),Bi(r,{key:t,class:"value",name:t,path:n.path.concat(t),data:n.data[t],"expand-signal":a.innerExpandSignal,"collapse-signal":a.innerCollapseSignal,expandOnCreatedAndUpdated:n.expandOnCreatedAndUpdated,getKeys:n.getKeys},null,8,["name","path","data","expand-signal","collapse-signal","expandOnCreatedAndUpdated","getKeys"])))),128))],512)),[[jo,a.isExpanding]])])},vr.__file="src/components/ObjectWrapper.vue";const wr={name:"wrapper",props:{path:{required:!0,validator:t=>"Array"===Zo(t)&&t.every((t=>"String"===Zo(t)||"Number"===Zo(t)))},data:{required:!0,validator:t=>"Null"===Zo(t)||"Boolean"===Zo(t)||"Number"===Zo(t)||"String"===Zo(t)||"Array"===Zo(t)||"Object"===Zo(t)},name:{required:!0,type:String},collapseSignal:{default:!1,type:Boolean},expandSignal:{default:!1,type:Boolean},expandOnCreatedAndUpdated:{required:!0,type:Function},getKeys:{required:!0,type:Function}},setup:()=>({objectToString:Zo}),components:{NullWrapper:Vo,BooleanWrapper:Jo,NumberWrapper:er,StringWrapper:rr,ArrayWrapper:mr,ObjectWrapper:vr}};mr.components.Wrapper=wr,vr.components.Wrapper=wr,wr.render=function(t,e,n,a,i,o){const r=Ni("null-wrapper"),l=Ni("boolean-wrapper"),s=Ni("number-wrapper"),c=Ni("string-wrapper"),u=Ni("array-wrapper"),d=Ni("object-wrapper");return"Null"===t.objectToString(t.data)?(Ri(),Bi(r,{key:0,name:t.name,data:t.data},null,8,["name","data"])):"Boolean"===t.objectToString(t.data)?(Ri(),Bi(l,{key:1,name:t.name,data:t.data},null,8,["name","data"])):"Number"===t.objectToString(t.data)?(Ri(),Bi(s,{key:2,name:t.name,data:t.data},null,8,["name","data"])):"String"===t.objectToString(t.data)?(Ri(),Bi(c,{key:3,name:t.name,data:t.data},null,8,["name","data"])):"Array"===t.objectToString(t.data)?(Ri(),Bi(u,{key:4,name:t.name,path:t.path,data:t.data,"collapse-signal":t.collapseSignal,"expand-signal":t.expandSignal,expandOnCreatedAndUpdated:t.expandOnCreatedAndUpdated,getKeys:t.getKeys},null,8,["name","path","data","collapse-signal","expand-signal","expandOnCreatedAndUpdated","getKeys"])):"Object"===t.objectToString(t.data)?(Ri(),Bi(d,{key:5,name:t.name,path:t.path,data:t.data,"collapse-signal":t.collapseSignal,"expand-signal":t.expandSignal,expandOnCreatedAndUpdated:t.expandOnCreatedAndUpdated,getKeys:t.getKeys},null,8,["name","path","data","collapse-signal","expand-signal","expandOnCreatedAndUpdated","getKeys"])):Hi("v-if",!0)},wr.__file="src/components/Wrapper.vue";const xr=Object.freeze({expandOnCreatedAndUpdated:t=>!1,getKeys:(t,e)=>Object.keys(t)});var kr=gt({components:{CodeAce:ht,CodeMonaco:Kt,FullCodePreview:Yt,Preview:Ht},data:function(){return{mousedown:!1,leftContainerSize:40,mobileMode:!1,shared:ut,initialCode:"",currentTab:"code-editor",fullCode:"",fullCodeConfig:{mimimal:!1,esm:!0,node:!1}}},computed:{currentTime:function(){this.shared.message;for(var t=new Date,e=[t.getHours(),t.getMinutes(),t.getSeconds()],n="",a=0,i=e.length;a<i;++a)n+=(e[a]<10?"0":"")+e[a],a<i-1&&(n+=":");return n}},mounted:function(){var t=this;ut.isMobile?(this.leftContainerSize=0,dt().then((function(t){ut.runCode=pt(t)}))):(dt().then((function(e){t.initialCode=pt(e)})),window.addEventListener("mousemove",(function(e){if(t.mousedown){var n=e.clientX/window.innerWidth;n=Math.min(.9,Math.max(.1,n)),t.leftContainerSize=100*n}})),window.addEventListener("mouseup",(function(e){t.mousedown=!1})))},methods:{onSplitterDragStart:function(){this.mousedown=!0},disposeAndRun:function(){this.$refs.preview.refreshAll()},updateFullCode:function(){var t=this.$refs.preview.getOption();if(t){var e=(0,Qt.collectDeps)(t);e.push("svg"===ut.renderer?"SVGRenderer":"CanvasRenderer"),this.fullCode=(0,Qt.buildExampleCode)(ut.sourceCode,e,{minimal:this.fullCodeConfig.minimal,ts:!1,esm:this.fullCodeConfig.esm,theme:ut.darkMode?"dark":"",ROOT_PATH:ut.cdnRoot})}},updateOptionOutline:function(){var t=Object.freeze(this.$refs.preview.getOption());t&&((t,e,n={})=>{void 0===n.rootName&&(n.rootName=""),void 0===n.getKeys&&(n.getKeys=xr.getKeys),void 0===n.expandOnCreatedAndUpdated&&(n.expandOnCreatedAndUpdated=xr.expandOnCreatedAndUpdated),e.classList.add("object-visualizer"),((...t)=>{Uo().render(...t)})(null,e),((...t)=>{const e=Uo().createApp(...t),{mount:n}=e;return e.mount=t=>{const a=function(t){return ke(t)?document.querySelector(t):t}(t);if(!a)return;const i=e._component;xe(i)||i.render||i.template||(i.template=a.innerHTML),a.innerHTML="";const o=n(a);return a.removeAttribute("v-cloak"),a.setAttribute("data-v-app",""),o},e})(wr,{data:t,name:n.rootName,path:[],expandOnCreatedAndUpdated:n.expandOnCreatedAndUpdated,getKeys:n.getKeys}).mount(e)})(t,this.$el.querySelector("#option-outline"),{getKeys:function(t,e){return Object.keys(t).filter((function(e){return!(Array.isArray(t[e])&&!t[e].length)}))},expandOnCreatedAndUpdated:function(t){return 0===t.length||"series"===t[0]&&t.length<=1}})},updateTabContent:function(t){"full-code"===t?this.updateFullCode():"full-option"===t&&this.updateOptionOutline()}},watch:{"shared.typeCheck":function(t){this.initialCode=ut.sourceCode,this.updateFullCode()},currentTab:function(t){this.updateTabContent(t)},"shared.runHash":function(){this.updateTabContent(this.currentTab)},fullCodeConfig:{deep:!0,handler:function(){this.updateFullCode()}}}},Q,[],!1,null,null,null);kr.options.__file="src/editor/Editor.vue";const Sr=kr.exports;var Nr=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"example-explore"}},[n("div",{attrs:{id:"left-container"}},[n("div",{attrs:{id:"left-chart-nav"}},[n("scrollactive",{attrs:{"active-class":"active",offset:80,duration:500,"scroll-container-selector":"#example-explore","bezier-easing-value":".5,0,.35,1"},on:{itemchanged:t.onActiveNavChanged}},[n("ul",t._l(t.EXAMPLE_CATEGORIES,(function(e){return n("li",{key:e},[n("a",{staticClass:"left-chart-nav-link scrollactive-item",attrs:{id:"left-chart-nav-"+e,href:"#chart-type-"+e}},[n("span",{staticClass:"chart-icon",domProps:{innerHTML:t._s(t.icons[e])}}),t._v(" "),n("span",{staticClass:"chart-name"},[t._v(t._s(t.$t("chartTypes."+e)))])])])})),0)])],1)]),t._v(" "),n("div",{attrs:{id:"explore-container"}},[n("div",{staticClass:"example-list-panel"},t._l(t.exampleList,(function(e){return n("div",{key:e.category},[n("h3",{staticClass:"chart-type-head",attrs:{id:"chart-type-"+e.category}},[t._v("\n                    "+t._s(t.$t("chartTypes."+e.category))+"\n                    "),n("span",[t._v(t._s(e.category))])]),t._v(" "),n("div",{staticClass:"row",attrs:{id:"chart-row-"+e.category}},t._l(e.examples,(function(t){return n("div",{key:t.id,staticClass:"col-xl-2 col-lg-3 col-md-4 col-sm-6"},[n("ExampleCard",{attrs:{example:t}})],1)})),0)])})),0)]),t._v(" "),n("div",{attrs:{id:"toolbar"}},[n("el-switch",{attrs:{"active-color":"#181432","active-text":t.$t("editor.darkMode"),"inactive-text":""},model:{value:t.shared.darkMode,callback:function(e){t.$set(t.shared,"darkMode",e)},expression:"shared.darkMode"}})],1)])};Nr._withStripped=!0;var Mr=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"example-list-item"},[a("a",{staticClass:"example-link",attrs:{target:"_blank",href:t.exampleLink}},[a("img",{staticClass:"chart-area",attrs:{src:n(555),"data-src":t.screenshotURL}}),t._v(" "),a("h4",{staticClass:"example-title"},[t._v(t._s(t.title))]),t._v(" "),t.showSubtitle?a("h5",{staticClass:"example-subtitle"},[t._v(t._s(t.subtitle))]):t._e()])])};Mr._withStripped=!0;var Tr=gt({props:["example"],computed:{title:function(){return("zh"===ut.locale?this.example.titleCN:this.example.title)||this.example.title||""},showSubtitle:function(){return"zh"===ut.locale},subtitle:function(){return this.example.title||""},exampleTheme:function(){return this.example.theme||(ut.darkMode?"dark":"")},exampleLink:function(){var t=this.example,e=["c="+t.id],n=this.exampleTheme;return t.isGL&&e.push("gl=1"),n&&e.push("theme="+n),"local"in rt&&e.push("local"),"useDirtyRect"in rt&&e.push("useDirtyRect"),"./editor.html?"+e.join("&")},screenshotURL:function(){var t=this.example,e=this.exampleTheme?"-"+this.exampleTheme:"",n=st?"webp":"png",a=t.isGL?"data-gl":"data";return"".concat(ut.cdnRoot,"/").concat(a,"/thumb").concat(e,"/").concat(t.id,".").concat(n,"?_v_=").concat(ut.version)}}},Mr,[],!1,null,null,null);Tr.options.__file="src/explore/ExampleCard.vue";const Or=Tr.exports,Dr="undefined"!=typeof window,Ar=Dr&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),Er=Dr&&"IntersectionObserver"in window,Pr=Dr&&"classList"in document.createElement("p"),Fr={elements_selector:"img",container:Ar||Dr?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_poster:"poster",class_loading:"loading",class_loaded:"loaded",class_error:"error",load_delay:0,auto_unobserve:!0,callback_enter:null,callback_exit:null,callback_reveal:null,callback_loaded:null,callback_error:null,callback_finish:null,use_native:!1},Rr=function(t,e){var n;let a="LazyLoad::Initialized",i=new t(e);try{n=new CustomEvent(a,{detail:{instance:i}})}catch(t){(n=document.createEvent("CustomEvent")).initCustomEvent(a,!1,!1,{instance:i})}window.dispatchEvent(n)},Ir="data-",Br="was-processed",jr="ll-timeout",Gr="true",zr=(t,e)=>t.getAttribute(Ir+e),$r=(t,e,n)=>{var a=Ir+e;null!==n?t.setAttribute(a,n):t.removeAttribute(a)},Ur=t=>zr(t,Br)===Gr,Zr=(t,e)=>$r(t,jr,e),Vr=t=>zr(t,jr),Wr=(t,e,n,a)=>{t&&(void 0===a?void 0===n?t(e):t(e,n):t(e,n,a))},Hr=(t,e)=>{t.loadingCount+=e,0===t._elements.length&&0===t.loadingCount&&Wr(t._settings.callback_finish,t)},qr=t=>{let e=[];for(let n,a=0;n=t.children[a];a+=1)"SOURCE"===n.tagName&&e.push(n);return e},Kr=(t,e,n)=>{n&&t.setAttribute(e,n)},Jr=(t,e)=>{Kr(t,"sizes",zr(t,e.data_sizes)),Kr(t,"srcset",zr(t,e.data_srcset)),Kr(t,"src",zr(t,e.data_src))},Xr={IMG:(t,e)=>{const n=t.parentNode;n&&"PICTURE"===n.tagName&&qr(n).forEach((t=>{Jr(t,e)})),Jr(t,e)},IFRAME:(t,e)=>{Kr(t,"src",zr(t,e.data_src))},VIDEO:(t,e)=>{qr(t).forEach((t=>{Kr(t,"src",zr(t,e.data_src))})),Kr(t,"poster",zr(t,e.data_poster)),Kr(t,"src",zr(t,e.data_src)),t.load()}},Yr=(t,e)=>{Pr?t.classList.add(e):t.className+=(t.className?" ":"")+e},Qr=(t,e)=>{Pr?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\s+)"+e+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},tl="load",el="loadeddata",nl="error",al=(t,e,n)=>{t.addEventListener(e,n)},il=(t,e,n)=>{t.removeEventListener(e,n)},ol=(t,e,n)=>{il(t,tl,e),il(t,el,e),il(t,nl,n)},rl=function(t,e,n){var a=n._settings;const i=e?a.class_loaded:a.class_error,o=e?a.callback_loaded:a.callback_error,r=t.target;Qr(r,a.class_loading),Yr(r,i),Wr(o,r,n),Hr(n,-1)},ll=["IMG","IFRAME","VIDEO"],sl=(t,e)=>{var n=e._observer;ul(t,e),n&&e._settings.auto_unobserve&&n.unobserve(t)},cl=t=>{var e=Vr(t);e&&(clearTimeout(e),Zr(t,null))},ul=(t,e,n)=>{var a=e._settings;!n&&Ur(t)||(ll.indexOf(t.tagName)>-1&&(((t,e)=>{const n=i=>{rl(i,!0,e),ol(t,n,a)},a=i=>{rl(i,!1,e),ol(t,n,a)};((t,e,n)=>{al(t,tl,e),al(t,el,e),al(t,nl,n)})(t,n,a)})(t,e),Yr(t,a.class_loading)),((t,e)=>{const n=e._settings,a=t.tagName,i=Xr[a];if(i)return i(t,n),Hr(e,1),void(e._elements=(o=e._elements,r=t,o.filter((t=>t!==r))));var o,r;((t,e)=>{const n=zr(t,e.data_src),a=zr(t,e.data_bg);n&&(t.style.backgroundImage=`url("${n}")`),a&&(t.style.backgroundImage=a)})(t,n)})(t,e),(t=>{$r(t,Br,Gr)})(t),Wr(a.callback_reveal,t,e),Wr(a.callback_set,t,e))},dl=t=>{return!!Er&&(t._observer=new IntersectionObserver((e=>{e.forEach((e=>(t=>t.isIntersecting||t.intersectionRatio>0)(e)?((t,e,n)=>{const a=n._settings;Wr(a.callback_enter,t,e,n),a.load_delay?((t,e)=>{var n=e._settings.load_delay,a=Vr(t);a||(a=setTimeout((function(){sl(t,e),cl(t)}),n),Zr(t,a))})(t,n):sl(t,n)})(e.target,e,t):((t,e,n)=>{const a=n._settings;Wr(a.callback_exit,t,e,n),a.load_delay&&cl(t)})(e.target,e,t)))}),{root:(e=t._settings).container===document?null:e.container,rootMargin:e.thresholds||e.threshold+"px"}),!0);var e},pl=["IMG","IFRAME"],fl=(t,e)=>{return(t=>t.filter((t=>!Ur(t))))((n=t||(t=>t.container.querySelectorAll(t.elements_selector))(e),Array.prototype.slice.call(n)));var n},gl=function(t,e){var n;this._settings=(t=>Object.assign({},Fr,t))(t),this.loadingCount=0,dl(this),this.update(e),n=this,Dr&&window.addEventListener("online",(t=>{(t=>{var e=t._settings;e.container.querySelectorAll("."+e.class_error).forEach((t=>{Qr(t,e.class_error),(t=>{$r(t,Br,null)})(t)})),t.update()})(n)}))};gl.prototype={update:function(t){var e,n=this._settings;this._elements=fl(t,n),!Ar&&this._observer?((t=>t.use_native&&"loading"in HTMLImageElement.prototype)(n)&&((e=this)._elements.forEach((t=>{-1!==pl.indexOf(t.tagName)&&(t.setAttribute("loading","lazy"),ul(t,e))})),this._elements=fl(t,n)),this._elements.forEach((t=>{this._observer.observe(t)}))):this.loadAll()},destroy:function(){this._observer&&(this._elements.forEach((t=>{this._observer.unobserve(t)})),this._observer=null),this._elements=null,this._settings=null},load:function(t,e){ul(t,this,e)},loadAll:function(){this._elements.forEach((t=>{sl(t,this)}))}},Dr&&function(t,e){if(e)if(e.length)for(let n,a=0;n=e[a];a+=1)Rr(t,n);else Rr(t,e)}(gl,window.lazyLoadOptions);const ml=gl;var hl={};["line","bar","scatter","pie","radar","funnel","gauge","map","graph","treemap","parallel","sankey","candlestick","boxplot","heatmap","pictorialBar","themeRiver","calendar","custom","sunburst","tree","dataset","geo","lines","dataZoom","rich","drag"].forEach((function(t){hl[t]=n(472)("./"+t+".svg")}));var Cl=n(926);["globe","bar3D","scatter3D","surface","map3D","lines3D","line3D","scatterGL","linesGL","flowGL","graphGL","geo3D"].forEach((function(t){hl[t]=Cl}));var yl="ec-shot-loaded",vl=gt({components:{ExampleCard:Or},data:function(){var t={};function e(e,n){var a=0;do{for(var i=!1,o=0;o<e.length;o++){var r=e[o];if(!ot.hasOwnProperty(r.id)){"string"==typeof r.category&&(r.category=[r.category]);var l=(r.category||[])[a];if(l){i=!0;var s=t[l];s||(s={category:l,examples:[]},t[l]=s),r.isGL=n,s.examples.push(r)}}}if(!i)break}while(++a&&a<4)}return e(Ft,!1),e(Rt,!0),{shared:ut,icons:hl,EXAMPLE_CATEGORIES:it,exampleListByCategory:t}},watch:{"shared.darkMode":function(){for(var t=this.$el.querySelectorAll("img.chart-area"),e=0;e<t.length;e++)t[e].classList.remove(yl),t[e].setAttribute("data-was-processed","false");this._lazyload.update()}},computed:{exampleList:function(){for(var t=[],e=0;e<it.length;e++){var n=it[e],a=this.exampleListByCategory[n];a&&a.examples.length>0&&t.push({category:n,examples:a.examples})}return t}},mounted:function(){this._lazyload=new ml({elements_selector:"img.chart-area",load_delay:400,class_loaded:yl})},methods:{onActiveNavChanged:function(t,e,n){}}},Nr,[],!1,null,null,null);vl.options.__file="src/explore/Explore.vue";const bl=vl.exports;var _l=function(){var t=this.$createElement;return(this._self._c||t)("preview")};_l._withStripped=!0;var Ll=gt({components:{Preview:Ht},mounted:function(){dt().then((function(t){ut.runCode=pt(t)}))}},_l,[],!1,null,null,null);Ll.options.__file="src/editor/View.vue";const wl=Ll.exports;var xl=n(463),kl=n.n(xl);function Sl(t,e){var n=new X({locale:e.locale,fallbackLocale:"en",messages:Y});if(ut.cdnRoot=e.cdnRoot,ut.version=e.version,ut.locale=e.locale||"en","string"==typeof t&&(t=document.querySelector(t)),!t)throw new Error("Can't find el.");var a=document.createElement("div");t.appendChild(a),new(i())({i18n:n,el:a,render:function(t){return t({editor:Sr,explore:bl,view:wl}[e.page]||bl)}})}i().use(kl())},555:(t,e,n)=>{t.exports=n.p+"../asset/placeholder.jpg"},38:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="138px" viewBox="0 0 175 138" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>bar</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="bar" fill="#5067A2" fill-rule="nonzero"> <path d="M121.488231,0 L102.050114,0 C99.36627,-1.1969592e-16 97.1905846,2.17568537 97.1905846,4.85952929 L97.1905846,133.140471 C97.1905846,135.824315 99.36627,138 102.050114,138 L121.488231,138 C124.172075,138 126.34776,135.824315 126.34776,133.140471 L126.34776,4.85952929 C126.34776,2.17568537 124.172075,1.1969592e-16 121.488231,0 Z M170.083523,30.1571753 L150.645406,30.1571753 C147.961562,30.1571753 145.785877,32.3328607 145.785877,35.0167046 L145.785877,132.207289 C145.785877,134.891133 147.961562,137.066819 150.645406,137.066819 L170.083523,137.066819 C172.767367,137.066819 174.943052,134.891133 174.943052,132.207289 L174.943052,35.0167046 C174.943052,32.3328607 172.767367,30.1571753 170.083523,30.1571753 Z M53.4548215,39.8762339 C50.7709777,39.876234 48.5952924,42.0519193 48.5952924,44.7357631 L48.5952924,132.207289 C48.5952924,134.891133 50.7709777,137.066818 53.4548215,137.066819 L72.8929386,137.066819 C75.5767824,137.066818 77.7524677,134.891133 77.7524677,132.207289 L77.7524677,44.7357631 C77.7524676,42.0519193 75.5767824,39.876234 72.8929386,39.8762339 L53.4548215,39.8762339 Z M29.1571753,67.17388 L29.1571753,132.207289 C29.1571753,134.891133 26.9814901,137.066818 24.2976462,137.066819 L4.85952929,137.066819 C2.17568537,137.066819 3.28676086e-16,134.891133 0,132.207289 L0,67.17388 C7.33863613e-08,64.4900361 2.17568542,62.3143508 4.85952929,62.3143508 L24.2976462,62.3143508 C26.98149,62.3143509 29.1571753,64.4900362 29.1571753,67.17388 Z" id="Shape"></path> </g> </g> </svg>'},851:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="98px" viewBox="0 0 175 98" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>boxplot</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="boxplot" fill="#5067A2" fill-rule="nonzero"> <path d="M165.206074,4.85900217 L165.206074,43.7310195 L145.770065,43.7310195 L145.770065,14.5770065 C145.770065,11.8934537 143.594616,9.71800434 140.911063,9.71800434 L72.8850325,9.71800434 C70.2014797,9.71800434 68.0260304,11.8934537 68.0260304,14.5770065 L68.0260304,82.6030369 C68.0260304,85.2865897 70.2014797,87.462039 72.8850325,87.462039 L140.911063,87.462039 C143.594616,87.462039 145.770065,85.2865897 145.770065,82.6030369 L145.770065,53.4490239 L165.206074,53.4490239 L165.206074,92.3210412 C165.206074,95.004594 167.381523,97.1800434 170.065076,97.1800434 C172.748629,97.1800434 174.924078,95.004594 174.924078,92.3210412 L174.924078,4.85900217 C174.924078,2.17544937 172.748629,1.43751749e-14 170.065076,1.42108547e-14 C167.381523,-1.05827854e-15 165.206074,2.17544937 165.206074,4.85900217 Z M58.308026,14.5770065 L58.308026,82.6030369 C58.308026,83.8917244 57.7960969,85.1276306 56.8848572,86.0388703 C55.9736176,86.9501099 54.7377114,87.462039 53.4490239,87.462039 L34.0130152,87.462039 C31.3294624,87.462039 29.154013,85.2865897 29.154013,82.6030369 L29.154013,53.4490239 L9.71800434,53.4490239 L9.71800434,92.3210412 C9.71800434,95.004594 7.54255497,97.1800434 4.85900217,97.1800434 C2.17544937,97.1800434 3.28640434e-16,95.004594 0,92.3210412 L0,4.85900217 C-3.28640434e-16,2.17544937 2.17544937,4.31255248e-14 4.85900217,4.26325641e-14 C7.54255497,4.21396035e-14 9.71800434,2.17544937 9.71800434,4.85900217 L9.71800434,43.7310195 L29.154013,43.7310195 L29.154013,14.5770065 C29.154013,11.8934537 31.3294624,9.71800434 34.0130152,9.71800434 L53.4490239,9.71800434 C56.1325767,9.71800434 58.308026,11.8934537 58.308026,14.5770065 L58.308026,14.5770065 Z" id="Shape"></path> </g> </g> </svg>'},496:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="164px" height="138px" viewBox="0 0 164 138" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>calendar </title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="calendar-" transform="translate(-0.500000, -0.315789)" fill="#5067A2" fill-rule="nonzero"> <path d="M147.236842,56.3782895 C147.236842,53.9965615 145.304597,52.0657895 142.921053,52.0657895 L125.657895,52.0657895 C123.27435,52.0657895 121.342105,53.9965615 121.342105,56.3782895 L121.342105,65.0032895 C121.342105,67.3850175 123.27435,69.3157895 125.657895,69.3157895 L142.921053,69.3157895 C145.304597,69.3157895 147.236842,67.3850175 147.236842,65.0032895 L147.236842,56.3782895 Z M147.236842,82.2532895 C147.236842,79.8715615 145.304597,77.9407895 142.921053,77.9407895 L125.657895,77.9407895 C123.27435,77.9407895 121.342105,79.8715615 121.342105,82.2532895 L121.342105,90.8782895 C121.342105,93.2600175 123.27435,95.1907895 125.657895,95.1907895 L142.921053,95.1907895 C145.304597,95.1907895 147.236842,93.2600175 147.236842,90.8782895 L147.236842,82.2532895 Z M112.710526,56.3782895 C112.710526,53.9965615 110.778282,52.0657895 108.394737,52.0657895 L91.1315789,52.0657895 C88.7480342,52.0657895 86.8157895,53.9965615 86.8157895,56.3782895 L86.8157895,65.0032895 C86.8157895,67.3850175 88.7480342,69.3157895 91.1315789,69.3157895 L108.394737,69.3157895 C110.778282,69.3157895 112.710526,67.3850175 112.710526,65.0032895 L112.710526,56.3782895 Z M112.710526,82.2532895 C112.710526,79.8715615 110.778282,77.9407895 108.394737,77.9407895 L91.1315789,77.9407895 C88.7480342,77.9407895 86.8157895,79.8715615 86.8157895,82.2532895 L86.8157895,90.8782895 C86.8157895,93.2600175 88.7480342,95.1907895 91.1315789,95.1907895 L108.394737,95.1907895 C110.778282,95.1907895 112.710526,93.2600175 112.710526,90.8782895 L112.710526,82.2532895 Z M112.710526,108.128289 C112.710526,105.746561 110.778282,103.815789 108.394737,103.815789 L91.1315789,103.815789 C88.7480342,103.815789 86.8157895,105.746561 86.8157895,108.128289 L86.8157895,116.753289 C86.8157895,119.135017 88.7480342,121.065789 91.1315789,121.065789 L108.394737,121.065789 C110.778282,121.065789 112.710526,119.135017 112.710526,116.753289 L112.710526,108.128289 Z M78.1842105,56.3782895 C78.1842105,53.9965615 76.2519658,52.0657895 73.8684211,52.0657895 L56.6052632,52.0657895 C54.2217184,52.0657895 52.2894737,53.9965615 52.2894737,56.3782895 L52.2894737,65.0032895 C52.2894737,67.3850175 54.2217184,69.3157895 56.6052632,69.3157895 L73.8684211,69.3157895 C76.2519658,69.3157895 78.1842105,67.3850175 78.1842105,65.0032895 L78.1842105,56.3782895 Z M78.1842105,82.2532895 C78.1842105,79.8715615 76.2519658,77.9407895 73.8684211,77.9407895 L56.6052632,77.9407895 C54.2217184,77.9407895 52.2894737,79.8715615 52.2894737,82.2532895 L52.2894737,90.8782895 C52.2894737,93.2600175 54.2217184,95.1907895 56.6052632,95.1907895 L73.8684211,95.1907895 C76.2519658,95.1907895 78.1842105,93.2600175 78.1842105,90.8782895 L78.1842105,82.2532895 Z M78.1842105,108.128289 C78.1842105,105.746561 76.2519658,103.815789 73.8684211,103.815789 L56.6052632,103.815789 C54.2217184,103.815789 52.2894737,105.746561 52.2894737,108.128289 L52.2894737,116.753289 C52.2894737,119.135017 54.2217184,121.065789 56.6052632,121.065789 L73.8684211,121.065789 C76.2519658,121.065789 78.1842105,119.135017 78.1842105,116.753289 L78.1842105,108.128289 Z M43.6578947,82.2532895 C43.6578947,79.8715615 41.72565,77.9407895 39.3421053,77.9407895 L22.0789474,77.9407895 C19.6954027,77.9407895 17.7631579,79.8715615 17.7631579,82.2532895 L17.7631579,90.8782895 C17.7631579,93.2600175 19.6954027,95.1907895 22.0789474,95.1907895 L39.3421053,95.1907895 C41.72565,95.1907895 43.6578947,93.2600175 43.6578947,90.8782895 L43.6578947,82.2532895 Z M43.6578947,108.128289 C43.6578947,105.746561 41.72565,103.815789 39.3421053,103.815789 L22.0789474,103.815789 C19.6954027,103.815789 17.7631579,105.746561 17.7631579,108.128289 L17.7631579,116.753289 C17.7631579,119.135017 19.6954027,121.065789 22.0789474,121.065789 L39.3421053,121.065789 C41.72565,121.065789 43.6578947,119.135017 43.6578947,116.753289 L43.6578947,108.128289 Z M164.5,39.1282895 L164.5,134.003289 C164.5,136.385017 162.567755,138.315789 160.184211,138.315789 L4.81578947,138.315789 C2.43224476,138.315789 0.5,136.385017 0.5,134.003289 L0.5,39.1282895 C0.5,36.7465615 2.43224476,34.8157895 4.81578947,34.8157895 L160.184211,34.8157895 C162.567755,34.8157895 164.5,36.7465615 164.5,39.1282895 Z M164.5,4.62828947 L164.5,21.8782895 C164.5,24.2600175 162.567755,26.1907895 160.184211,26.1907895 L4.81578947,26.1907895 C2.43224476,26.1907895 0.5,24.2600175 0.5,21.8782895 L0.5,4.62828947 C0.5,2.24656149 2.43224476,0.315789474 4.81578947,0.315789474 L160.184211,0.315789474 C162.567755,0.315789474 164.5,2.24656149 164.5,4.62828947 Z" id="Shape"></path> </g> </g> </svg>'},173:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="138px" viewBox="0 0 175 138" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>Candlestick (1)</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="Candlestick-(1)" fill="#5067A2" fill-rule="nonzero"> <path d="M121.508001,34.0222403 L116.647681,33.0222403 L116.647681,4.86032 C116.647681,2.17603934 114.471642,-7.11961547e-08 111.787361,-7.11961549e-08 C109.10308,-7.1196155e-08 106.927041,2.17603934 106.927041,4.86032 L106.927041,33.0222403 L102.066721,33.0222403 C100.777684,33.0222403 99.5414424,33.5343082 98.6299556,34.4457951 C97.7184688,35.3572819 97.2064009,36.5935234 97.2064009,37.8825604 L97.2064009,105.927041 C97.2064009,107.216078 97.7184688,108.452319 98.6299556,109.363806 C99.5414424,110.275293 100.777684,110.787361 102.066721,110.787361 L106.927041,110.787361 L106.927041,125.572455 C106.927041,128.256735 109.10308,130.432775 111.787361,130.432775 C114.471642,130.432775 116.647681,128.256735 116.647681,125.572455 L116.647681,110.787361 L121.508001,110.787361 C122.797038,110.787361 124.03328,110.275293 124.944766,109.363806 C125.856253,108.452319 126.368321,107.216078 126.368321,105.927041 L126.368321,37.8825604 C126.368321,36.5935233 125.856253,35.3572819 124.944766,34.445795 C124.03328,33.5343082 122.797038,33.0222402 121.508001,33.0222403 L121.508001,34.0222403 Z M170.111202,41.6032004 L165.250881,41.6032004 L165.250881,27.0222403 C165.250881,24.3379598 163.074842,22.1619207 160.390561,22.1619207 C157.706281,22.1619207 155.530242,24.3379598 155.530241,27.0222403 L155.530241,41.6032004 L150.669921,41.6032004 C149.380884,41.6032004 148.144643,42.1152684 147.233156,43.0267552 C146.321669,43.938242 145.809601,45.1744835 145.809601,46.4635205 L145.809601,75.6254408 C145.809601,78.3097214 147.985641,80.4857608 150.669921,80.4857608 L155.530241,80.4857608 L155.530241,104.729037 C155.530241,107.413318 157.706281,109.589357 160.390561,109.589357 C163.074842,109.589357 165.250881,107.413318 165.250881,104.729037 L165.250881,80.4857608 L170.111202,80.4857608 C172.795482,80.4857608 174.971522,78.3097214 174.971522,75.6254408 L174.971522,46.4635205 C174.971522,45.1744835 174.459454,43.938242 173.547967,43.0267552 C172.63648,42.1152684 171.400239,41.6032004 170.111202,41.6032004 L170.111202,41.6032004 Z M72.9048007,84.3460808 L68.0444807,84.3460808 L68.0444807,55.1841605 C68.0444805,52.4998799 65.8684412,50.3238407 63.1841606,50.3238407 C60.49988,50.3238407 58.3238406,52.4998799 58.3238405,55.1841605 L58.3238405,84.3460808 L53.4635205,84.3460808 C52.1744835,84.3460807 50.938242,84.8581487 50.0267552,85.7696355 C49.1152683,86.6811224 48.6032003,87.9173639 48.6032004,89.2064009 L48.6032004,118.368321 C48.6032004,119.657358 49.1152684,120.8936 50.0267552,121.805086 C50.938242,122.716573 52.1744835,123.228641 53.4635205,123.228641 L58.3238405,123.228641 L58.3238405,132.949281 C58.3238406,135.633562 60.49988,137.809601 63.1841606,137.809601 C65.8684412,137.809601 68.0444805,135.633562 68.0444807,132.949281 L68.0444807,123.228641 L72.9048007,123.228641 C75.5890813,123.228641 77.7651206,121.052602 77.7651206,118.368321 L77.7651206,89.2064009 C77.7651207,87.9173639 77.2530527,86.6811224 76.3415659,85.7696356 C75.4300791,84.8581488 74.1938377,84.3460808 72.9048007,84.3460808 Z M29.1619203,41.6032004 L29.1619203,90.2064009 C29.1619203,92.8906815 26.9858809,95.0667209 24.3016003,95.0667209 L19.4412801,95.0667209 L19.4412801,119.572455 C19.4412801,122.256735 17.2652407,124.432775 14.5809601,124.432775 C11.8966795,124.432775 9.72064013,122.256735 9.72064013,119.572455 L9.72064013,95.0667209 L4.86032,95.0667209 C2.17603938,95.0667209 3.28729566e-16,92.8906815 0,90.2064009 L0,41.6032004 C-3.28729566e-16,38.9189198 2.17603938,36.7428804 4.86032,36.7428804 L9.72064013,36.7428804 L9.72064013,12.4412801 C9.72064013,9.75699951 11.8966795,7.58096013 14.5809601,7.58096013 C17.2652407,7.58096013 19.4412801,9.75699951 19.4412801,12.4412801 L19.4412801,36.7428804 L24.3016003,36.7428804 C26.9858809,36.7428804 29.1619203,38.9189198 29.1619203,41.6032004 Z" id="Shape"></path> </g> </g> </svg>'},353:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="159px" height="142px" viewBox="0 0 159 142" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>custom</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="custom" transform="translate(0.000000, -0.825151)" fill="#5067A2" fill-rule="nonzero"> <path d="M74.8235294,81.2918174 L74.8235294,138.091817 C74.8235294,140.705965 72.7298022,142.825151 70.1470588,142.825151 L4.67647054,142.825151 C2.09372718,142.825151 3.16294839e-16,140.705965 0,138.091817 L0,81.2918174 C-3.63362476e-08,80.0364594 0.492698108,78.8325175 1.36970646,77.9448453 C2.24671482,77.0571731 3.43619342,76.558484 4.67647054,76.558484 L70.1470588,76.558484 C71.387336,76.558484 72.5768146,77.0571731 73.4538229,77.9448453 C74.3308313,78.8325175 74.8235294,80.0364594 74.8235294,81.2918174 Z M74.8235294,5.55848402 L74.8235294,62.358484 C74.8235294,63.6138421 74.3308313,64.817784 73.4538229,65.7054562 C72.5768146,66.5931284 71.387336,67.0918174 70.1470588,67.0918174 L4.67647054,67.0918174 C3.43619342,67.0918174 2.24671482,66.5931284 1.36970646,65.7054562 C0.492698108,64.817784 -3.63362423e-08,63.6138421 0,62.358484 L0,5.55848402 C-2.35506485e-15,4.30312598 0.492698161,3.09918414 1.36970651,2.21151195 C2.24671486,1.32383977 3.43619344,0.825150732 4.67647054,0.825150732 L70.1470588,0.825150732 C72.7298022,0.825150732 74.8235294,2.94433623 74.8235294,5.55848402 Z M159,10.2918174 L159,57.6251507 C159,62.8534463 154.812546,67.0918174 149.647059,67.0918174 L93.5294118,67.0918174 C88.363925,67.0918174 84.1764706,62.8534464 84.1764706,57.6251507 L84.1764706,10.2918174 C84.1764706,5.06352179 88.363925,0.825150732 93.5294118,0.825150732 L149.647059,0.825150732 C154.812546,0.825150809 159,5.06352184 159,10.2918174 Z M154.323529,76.558484 C155.563807,76.558484 156.753285,77.0571731 157.630294,77.9448453 C158.507302,78.8325175 159,80.0364594 159,81.2918174 L159,138.091817 C159,140.705965 156.906273,142.825151 154.323529,142.825151 L88.8529412,142.825151 C86.2701978,142.825151 84.1764706,140.705965 84.1764706,138.091817 L84.1764706,81.2918174 C84.1764706,80.0364594 84.6691687,78.8325175 85.5461771,77.9448453 C86.4231854,77.0571731 87.612664,76.558484 88.8529412,76.558484 L154.323529,76.558484 L154.323529,76.558484 Z M93.5294118,133.358484 L149.647059,133.358484 L149.647059,86.0251507 L93.5294118,86.0251507 L93.5294118,133.358484 L93.5294118,133.358484 Z" id="Shape"></path> </g> </g> </svg>'},6:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="83px" viewBox="0 0 175 83" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>dataZoom</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="dataZoom" fill="#5067A2" fill-rule="nonzero"> <path d="M9.20037003,18.4191593 L9.20957963,13.8143694 L9.20957963,18.4191593 L41.4431082,18.4191593 L41.4431082,64.4670572 L9.20957963,64.4670572 L9.20957963,18.4191593 L9.20037003,18.4191593 Z M133.538904,64.4670572 L133.538904,18.4191593 L165.772433,18.4191593 L165.772433,64.4670572 L133.538904,64.4670572 L133.538904,64.4670572 Z M165.772433,9.20957963 L133.538904,9.20957963 L133.538904,4.60478981 C133.538904,2.06163473 131.47727,2.74466854e-07 128.934115,2.74466854e-07 C126.390959,2.74466855e-07 124.329325,2.06163473 124.329325,4.60478981 L124.329325,9.20957963 L50.6526879,9.20957963 L50.6526879,4.60478981 C50.6526879,2.06163462 48.5910532,-6.1602121e-15 46.047898,-6.31593544e-15 C43.5047429,-6.47165878e-15 41.4431082,2.06163462 41.4431082,4.60478981 L41.4431082,9.20957963 L9.20957963,9.20957963 C4.13510123,9.20957963 0,13.3446809 0,18.4191593 L0,64.4670572 C0,69.5507451 4.13510123,73.6766368 9.20957963,73.6766368 L41.4431082,73.6766368 L41.4431082,78.2814267 C41.4431082,80.8245818 43.5047429,82.8862165 46.047898,82.8862165 C48.5910532,82.8862165 50.6526879,80.8245818 50.6526879,78.2814267 L50.6526879,73.6766368 L124.329325,73.6766368 L124.329325,78.2814267 C124.329325,80.8245818 126.390959,82.8862165 128.934115,82.8862165 C131.47727,82.8862165 133.538904,80.8245818 133.538904,78.2814267 L133.538904,73.6766368 L165.772433,73.6766368 C170.858743,73.6766368 174.982013,69.5533676 174.982013,64.4670572 L174.982013,18.4191593 C174.982013,13.3446809 170.856121,9.20957963 165.772433,9.20957963 Z" id="Shape"></path> </g> </g> </svg>'},238:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="145px" height="157px" viewBox="0 0 145 157" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>dataset</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="dataset" fill="#5067A2" fill-rule="nonzero"> <path d="M77,133.051622 C77,135.720999 74.7614237,137.884956 72,137.884956 C69.2385763,137.884956 67,135.720999 67,133.051622 L67,92.7182891 C67,90.0489128 69.2385763,87.8849558 72,87.8849558 C74.7614237,87.8849558 77,90.0489128 77,92.7182891 L77,133.051622 Z M87,92.7182888 C87.0000002,90.0489126 89.2385764,87.8849558 92,87.8849558 C94.7614236,87.8849558 96.9999998,90.0489126 97,92.7182888 L97,133.051623 C96.9999998,135.720999 94.7614236,137.884956 92,137.884956 C89.2385764,137.884956 87.0000002,135.720999 87,133.051623 L87,92.7182888 Z M58,133.072456 C58,135.730326 55.7614237,137.884956 53,137.884956 C50.2385763,137.884956 48,135.730326 48,133.072456 L48,73.6974557 C48,71.0395854 50.2385763,68.8849558 53,68.8849558 C55.7614237,68.8849558 58,71.0395854 58,73.6974557 L58,133.072456 Z M39,133.066774 C38.9999999,135.727782 36.7614237,137.884956 34,137.884956 C31.2385763,137.884956 29.0000001,135.727782 29,133.066774 L29,44.7031376 C29,42.0421293 31.2385763,39.8849558 34,39.8849558 C36.7614237,39.8849558 39,42.0421293 39,44.7031376 L39,133.066774 Z M126.3,132.884956 L126.3,63.9913737 C126.403893,62.6917747 125.897136,61.4145164 124.9129,60.4952543 L83.0962,21.7192841 C82.9895,21.6282393 82.8537001,21.5918214 82.7469999,21.5098811 C81.8447692,20.5509026 80.5501183,19.997952 79.1870999,19.9894333 L39,19.9894333 L39,10.8849558 L135.9903,10.8849558 L136,132.884956 L126.3,132.884956 Z M116,146.884956 L10,146.884956 L10,28.8849558 L74.0143636,28.8849558 L74.0143636,58.8841865 C74.0143636,63.8855711 78.3314545,67.9611095 83.6507272,67.9611097 L116,67.9611097 L116,146.884956 Z M144.990333,10.0614263 C144.990333,5.00519104 140.659667,0.884955752 135.323667,0.884955752 L38.6666667,0.884955752 C33.3403334,0.884955752 29.0000001,5.00519104 28.9999999,10.0614263 L28.9999999,19.2378969 L9.66666665,19.2378969 C4.34033332,19.2378969 0,23.3581322 0,28.4143675 L0,147.708485 C0,152.773897 4.34033332,156.884956 9.66666665,156.884956 L116,156.884956 C121.338753,156.884956 125.666667,152.77651 125.666667,147.708485 L125.666667,142.202603 L135.333333,142.202603 C140.672086,142.202603 145,138.094157 145,133.026132 L144.990333,10.0614263 Z" id="Shape"></path> </g> </g> </svg>'},642:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="159px" viewBox="0 0 175 159" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>drag</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="drag" transform="translate(0.000000, 0.000000)" fill="#5067A2" fill-rule="nonzero"> <path d="M174.799112,77.2243509 C175.141784,80.4933122 173.860538,83.7226514 171.369927,85.8675022 L145.821493,107.665891 C143.704571,109.29545 140.681703,108.978807 138.948417,106.945941 C137.215132,104.913075 137.380357,101.878162 139.32409,100.045479 L158.345038,83.8019696 L92.4385031,83.8019696 L92.4385031,144.173679 L109.273597,130.085944 C111.397298,128.30558 114.562167,128.583909 116.342532,130.70761 C118.122896,132.83131 117.844567,135.99618 115.720867,137.776544 L93.3308935,156.516741 C89.5429956,159.697467 83.9995074,159.633553 80.2859517,156.366338 L59.0490671,137.706356 C57.140269,135.840194 57.0244102,132.80703 58.7852891,130.800695 C60.546168,128.79436 63.5687212,128.515654 65.6667932,130.166159 L82.4116455,144.885586 L82.4116455,83.8019696 L16.5051101,83.8019696 L35.5360859,100.045479 C36.9700273,101.186546 37.6671397,103.019075 37.3541473,104.824694 C37.041155,106.630312 35.7679333,108.121296 34.0335988,108.713163 C32.2992644,109.305031 30.380183,108.903467 29.0286553,107.665891 L3.52032945,85.8975828 C1.25557692,83.9644222 -0.0328273042,81.1246883 0.00397844461,78.147297 C0.0407841935,75.1699056 1.39899211,72.3628885 3.71083975,70.4863026 L29.118897,49.820949 C31.2816477,48.328475 34.2285594,48.7508003 35.8850928,50.7906204 C37.5416262,52.8304405 37.3503183,55.8013071 35.4458442,57.6118174 L15.5625855,73.7751119 L82.4116455,73.7751119 L82.4116455,14.1153089 L65.6667932,28.8347359 C64.3276607,30.0598688 62.43094,30.4655542 60.7078175,29.8954003 C58.9846951,29.3252464 57.7042897,27.8683002 57.360198,26.0862151 C57.0161064,24.30413 57.662069,22.4752334 59.0490671,21.3045658 L80.2759248,2.65461056 C83.9853287,-0.629787191 89.5418994,-0.698070701 93.3308935,2.49418084 L115.720867,21.2243509 C117.320514,22.5881211 117.904229,24.8023516 117.184781,26.777481 C116.465334,28.7526104 114.594242,30.0726692 112.492218,30.0880931 C111.314421,30.0896881 110.174126,29.6740664 109.273597,28.9149508 L92.4385031,14.8272158 L92.4385031,73.7751119 L159.29759,73.7751119 L139.414331,57.6118174 C138.022627,56.4816171 137.339593,54.6948034 137.622523,52.9244518 C137.905453,51.1541001 139.111362,49.669169 140.785997,49.0290176 C142.460631,48.3888662 144.349574,48.6907487 145.741278,49.820949 L171.149336,70.4863026 C173.218763,72.1532673 174.533435,74.5803549 174.799112,77.2243509" id="Path"></path> </g> </g> </svg>'},797:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="137px" viewBox="0 0 175 137" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>funnel </title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="funnel-" fill="#5067A2" fill-rule="nonzero"> <path d="M116.331467,108.325366 L60.5285591,108.325366 C58.9291301,108.325102 57.4459378,109.160985 56.6178211,110.52934 C55.7897045,111.897695 55.7371711,113.5994 56.4793063,115.016231 L66.3876358,133.863994 C67.1750739,135.367321 68.7306799,136.310539 70.4277481,136.313655 L106.432278,136.313655 C108.129346,136.310539 109.684952,135.367321 110.47239,133.863994 L120.380719,115.016231 C121.122854,113.5994 121.070321,111.897695 120.242204,110.52934 C119.414088,109.160985 117.930896,108.325102 116.331467,108.325366 L116.331467,108.325366 Z M134.968998,71.0137414 L41.9001683,71.0137414 C40.2925309,71.0025161 38.7981975,71.8401445 37.9688482,73.2173896 C37.139499,74.5946346 37.098146,76.3072185 37.8600561,77.722887 L47.8415098,96.5706503 C48.6348072,98.0648166 50.1899261,98.9971843 51.881622,98.9928896 L125.024106,98.9928896 C126.716211,98.9981743 128.270437,98.0607046 129.055078,96.5615098 L139.00911,77.7137465 C139.754942,76.2976526 139.705659,74.5945859 138.879188,73.2239903 C138.052717,71.8533948 136.569493,71.014997 134.968998,71.0137414 L134.968998,71.0137414 Z M153.63395,35.5759245 L23.2352156,35.5759245 C21.6347203,35.5771801 20.151496,36.4155778 19.325025,37.7861734 C18.498554,39.156769 18.4492717,40.8598357 19.1951033,42.2759296 L29.1491354,61.1145524 C29.9359394,62.6172637 31.4930184,63.5578521 33.1892477,63.5550727 L143.70734,63.5550727 C145.402425,63.5537423 146.957543,62.6143387 147.747452,61.1145524 L157.674063,42.266789 C158.415446,40.8514003 158.363824,39.1515952 157.537917,37.7838041 C156.712011,36.4160129 155.231751,35.5788553 153.63395,35.5759245 L153.63395,35.5759245 Z M174.995358,4.69922974 C174.994253,5.44166711 174.81229,6.17265769 174.465208,6.82897225 L164.538597,25.6767355 C163.746223,27.1729824 162.191592,28.108575 160.498485,28.1081153 L14.4968732,28.1081153 C12.8031994,28.1106197 11.2475937,27.1744407 10.4567611,25.6767355 L0.530150516,6.82897225 C-0.215681017,5.41287837 -0.166398756,3.70981169 0.660072225,2.33921611 C1.48654321,0.96862053 2.96976742,0.130222778 4.57026264,0.1289671 L170.425096,0.1289671 C172.949182,0.1289671 174.995358,2.17514338 174.995358,4.69922974 L174.995358,4.69922974 Z" id="Shape"></path> </g> </g> </svg>'},822:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="100px" viewBox="0 0 175 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>gange</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="gange" fill="#5067A2" fill-rule="nonzero"> <path d="M143.698895,82.9089367 C142.437361,67.6655629 135.026556,53.5920156 123.171797,43.9267897 L135.7146,25.9137777 C153.409366,39.7333892 164.305583,60.4959162 165.625777,82.9089367 L143.698895,82.9089367 L143.698895,82.9089367 Z M115.601912,38.6960173 C112.342946,36.8541942 108.909619,35.339582 105.352176,34.174346 L107.654453,22.8655635 C107.981818,21.2534161 107.424245,19.5890834 106.191766,18.4995036 C104.959288,17.4099237 103.239147,17.0606298 101.679304,17.5831975 C100.119461,18.1057651 98.9568933,19.4208039 98.6295287,21.0329513 L96.4193432,31.8996968 C93.4676767,31.3974455 90.4804994,31.132603 87.4865101,31.1077136 C77.1817177,31.1042083 67.0761605,33.9468942 58.284434,39.3222365 L45.5021944,21.4934066 C70.6181595,5.43266895 102.701308,5.12868193 128.117087,20.7106326 L115.601912,38.6960173 L115.601912,38.6960173 Z M31.2649159,82.9089367 L9.34724295,82.9089367 C10.6455448,61.0475255 21.0636813,40.7358347 38.0612364,26.9267794 L50.843476,44.7464001 C39.5322634,54.3814577 32.493597,68.101229 31.2649159,82.9089367 L31.2649159,82.9089367 Z M87.4865101,0.0269797767 C39.2492112,0.0269797767 0,39.276191 0,87.5134899 C5.46353103e-08,90.0565144 2.06152873,92.118043 4.60455321,92.118043 L35.685287,92.118043 C38.2283115,92.118043 40.2898401,90.0565144 40.2898401,87.5134899 C40.315223,61.4580101 61.4310302,40.3422029 87.4865101,40.31682 C89.908505,40.31682 92.2384089,40.6759751 94.5683128,41.0351302 L86.9247546,78.6451205 C82.0531374,79.4923583 78.2774037,83.5443651 78.2774037,88.6646282 C78.2774037,94.3864333 82.9158433,99.0248728 88.6376484,99.0248728 C94.3594535,99.0248728 98.997893,94.3864333 98.997893,88.6646282 C98.997893,85.7361324 97.7546637,83.102328 95.793124,81.2236703 L103.501146,43.3005704 C121.633876,49.8942906 134.68318,67.1337376 134.68318,87.5134899 C134.68318,90.0565144 136.744709,92.118043 139.287733,92.118043 L170.368467,92.118043 C172.911491,92.118043 174.97302,90.0565144 174.97302,87.5134899 C174.97302,39.276191 135.723809,0.0269798756 87.4865101,0.0269797767 L87.4865101,0.0269797767 Z" id="Shape"></path> </g> </g> </svg>'},317:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="142px" viewBox="0 0 175 142" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>geo</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="geo" fill="#5067A2" fill-rule="nonzero"> <path d="M9.20332621,34.019885 L55.2181167,56.861627 L55.2181167,128.571076 L9.20332621,103.207724 L9.20332621,34.019885 Z M171.819596,50.2815119 L151.996424,43.1124076 C149.63126,42.3318353 147.074346,43.5747977 146.227189,45.9169373 C145.380032,48.2590769 146.550177,50.8501245 148.867418,51.7631882 L165.653614,57.8371405 L165.653614,131.138702 L119.638823,119.625801 L119.638823,87.4706656 C119.638823,84.9293389 117.578671,82.8691865 115.037344,82.8691865 C112.496018,82.8691865 110.435865,84.9293389 110.435865,87.4706656 L110.435865,119.644207 L64.4210748,131.41479 L64.4210748,58.2236647 L81.060023,51.7263763 C83.2914479,50.7138845 84.3410975,48.1328302 83.4496557,45.8503474 C82.5582139,43.5678645 80.037126,42.3813901 77.7101463,43.1492194 L61.2460542,49.5820871 L6.64490386,22.4793755 C5.21943693,21.7614379 3.52312776,21.8367966 2.16693957,22.6783095 C0.810751382,23.5198224 -0.00997312356,25.0062796 0.000368118324,26.6023007 L0.000368118324,105.913394 C0.000368118324,107.597535 0.91146097,109.134429 2.38393426,109.944289 L58.8072703,141.059491 C59.8287987,141.620871 61.0435892,141.795727 62.16635,141.49203 L115.046547,127.963681 L169.141535,141.501233 C170.516378,141.840666 171.970958,141.532118 173.089604,140.663763 C174.206625,139.788526 174.858383,138.44767 174.856572,137.028595 L174.856572,54.6069022 C174.855748,52.6695411 173.64154,50.9402146 171.819596,50.2815119 Z M115.037344,16.5986853 C121.13907,16.6012266 126.083435,21.5497125 126.080894,27.651438 C126.078353,33.7531634 121.129867,38.697529 115.028141,38.6949877 C108.926416,38.6924463 103.98205,33.7439604 103.984592,27.642235 C103.987133,21.5405096 108.935619,16.596144 115.037344,16.5986853 L115.037344,16.5986853 Z M99.5763747,54.7173377 C102.208421,58.3341002 105.00612,61.9140509 107.813022,65.199507 C108.806942,66.3866886 109.718035,67.4358258 110.491083,68.3285127 C111.04326,68.8806902 111.402176,69.2856204 111.558626,69.4512736 C112.438859,70.4713636 113.723372,71.0524431 115.07068,71.0400337 C116.417988,71.0276243 117.69158,70.4229833 118.552874,69.3868529 C118.72773,69.2211997 119.06824,68.8254725 119.555997,68.264092 C120.506081,67.2663872 121.406012,66.2220982 122.252463,65.1350863 C125.059366,61.8496302 127.866268,58.2788825 130.498314,54.6437141 C133.121157,51.0177486 135.412694,47.4470008 137.262488,44.0879211 C140.741206,37.8851274 142.646219,32.5382087 142.646219,28.1207888 C142.701436,12.5861956 130.314255,0.0425636812 115.028141,0.0425636812 C99.7604339,0.0425636812 87.42847,12.5861956 87.42847,28.1207888 C87.42847,32.5382087 89.3334823,37.9403451 92.8029975,44.1523418 C94.7172128,47.5114215 97.0087494,51.0729663 99.5763747,54.7173377 Z" id="Shape"></path> </g> </g> </svg>'},926:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="120px" viewBox="0 0 175 120" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>gl</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="gl" fill="#5067A2"> <path d="M170.394737,101.315789 L119.736842,101.315789 L119.736842,4.60526316 C119.736842,2.06315789 117.673684,0 115.131579,0 L105.921053,0 C103.378947,0 101.315789,2.06315789 101.315789,4.60526316 L101.315789,115.131579 C101.315789,117.673684 103.378947,119.736842 105.921053,119.736842 L170.394737,119.736842 C172.936842,119.736842 175,117.673684 175,115.131579 L175,105.921053 C175,103.378947 172.936842,101.315789 170.394737,101.315789" id="Fill-1"></path> <path d="M78.2894737,0 L4.60526316,0 C2.06315789,0 0,2.06315789 0,4.60526316 L0,115.131579 C0,117.673684 2.06315789,119.736842 4.60526316,119.736842 L78.2894737,119.736842 C80.8315789,119.736842 82.8947368,117.673684 82.8947368,115.131579 L82.8947368,59.8684211 C82.8947368,57.3263158 80.8315789,55.2631579 78.2894737,55.2631579 L41.4473684,55.2631579 C38.9052632,55.2631579 36.8421053,57.3263158 36.8421053,59.8684211 L36.8421053,69.0789474 C36.8421053,71.6210526 38.9052632,73.6842105 41.4473684,73.6842105 L64.4736842,73.6842105 L64.4736842,101.315789 L18.4210526,101.315789 L18.4210526,18.4210526 L64.4736842,18.4210526 L64.4736842,32.2368421 C64.4736842,34.7789474 66.5368421,36.8421053 69.0789474,36.8421053 L78.2894737,36.8421053 C80.8315789,36.8421053 82.8947368,34.7789474 82.8947368,32.2368421 L82.8947368,4.60526316 C82.8947368,2.06315789 80.8315789,0 78.2894737,0" id="Fill-3"></path> </g> </g> </svg>'},769:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="171px" height="146px" viewBox="0 0 171 146" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>graph</title> <desc>Created with Sketch.</desc> <defs> <polygon id="path-1" points="0.06 0 171 0 171 146 0.06 146"></polygon> </defs> <g id="graph" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <mask id="mask-2" fill="white"> <use xlink:href="#path-1"></use> </mask> <g id="Clip-2"></g> <path d="M171,100 C171,106.075 166.075,111 160,111 C154.016,111 149.158,106.219 149.014,100.27 L114.105,83.503 C111.564,86.693 108.179,89.18 104.282,90.616 L108.698,124.651 C112.951,126.172 116,130.225 116,135 C116,141.075 111.075,146 105,146 C98.925,146 94,141.075 94,135 C94,131.233 95.896,127.912 98.781,125.93 L94.364,91.896 C82.94,90.82 74,81.206 74,69.5 C74,69.479 74.001,69.46 74.001,69.439 L53.719,64.759 C50.642,70.269 44.76,74 38,74 C36.07,74 34.215,73.689 32.472,73.127 L20.624,90.679 C21.499,92.256 22,94.068 22,96 C22,102.075 17.075,107 11,107 C4.925,107 0,102.075 0,96 C0,89.925 4.925,85 11,85 C11.452,85 11.895,85.035 12.332,85.089 L24.184,67.531 C21.574,64.407 20,60.389 20,56 C20,48.496 24.594,42.07 31.121,39.368 L29.111,21.279 C24.958,19.707 22,15.704 22,11 C22,4.925 26.925,0 33,0 C39.075,0 44,4.925 44,11 C44,14.838 42.031,18.214 39.051,20.182 L41.061,38.279 C49.223,39.681 55.49,46.564 55.95,55.011 L76.245,59.694 C79.889,52.181 87.589,47 96.5,47 C100.902,47 105.006,48.269 108.475,50.455 L131.538,27.391 C131.192,26.322 131,25.184 131,24 C131,17.925 135.925,13 142,13 C148.075,13 153,17.925 153,24 C153,30.075 148.075,35 142,35 C140.816,35 139.678,34.808 138.609,34.461 L115.546,57.525 C117.73,60.994 119,65.098 119,69.5 C119,71.216 118.802,72.884 118.438,74.49 L153.345,91.257 C155.193,89.847 157.495,89 160,89 C166.075,89 171,93.925 171,100" id="Fill-1" fill="#4F608A" mask="url(#mask-2)"></path> </g> </svg>'},781:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="165px" height="137px" viewBox="0 0 165 137" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>heatmap</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="heatmap" transform="translate(-0.500000, -0.474277)" fill-rule="nonzero"> <path d="M44.5999999,89.4742765 L5.40000005,89.4742765 C2.6938048,89.4742765 0.500000074,87.2916647 0.5,84.5992766 L0.5,55.3492765 C0.500000074,52.6568883 2.6938048,50.4742765 5.40000005,50.4742765 L44.5999999,50.4742765 C47.3061952,50.4742765 49.4999999,52.6568883 49.5,55.3492765 L49.5,84.5992766 C49.4999999,87.2916647 47.3061952,89.4742765 44.5999999,89.4742765" id="Path" fill="#687DB0"></path> <path d="M102.6,89.4742765 L63.3999999,89.4742765 C60.6938047,89.4742765 58.5000001,87.2916647 58.5,84.5992766 L58.5,55.3492765 C58.5000001,52.6568884 60.6938047,50.4742766 63.3999999,50.4742765 L102.6,50.4742765 C105.306195,50.4742765 107.5,52.6568883 107.5,55.3492765 L107.5,84.5992766 C107.5,87.2916647 105.306195,89.4742765 102.6,89.4742765" id="Path" fill="#8497C0"></path> <path d="M160.6,89.4742765 L121.4,89.4742765 C118.693805,89.4742765 116.5,87.2916647 116.5,84.5992766 L116.5,55.3492765 C116.5,52.6568884 118.693805,50.4742766 121.4,50.4742765 L160.6,50.4742765 C163.306195,50.4742766 165.5,52.6568884 165.5,55.3492765 L165.5,84.5992766 C165.5,87.2916647 163.306195,89.4742765 160.6,89.4742765" id="Path" fill="#A7B4D1"></path> <path d="M44.5999999,137.474277 L5.40000005,137.474277 C2.69380475,137.474277 0.5,135.291665 0.5,132.599276 L0.5,103.349277 C0.5,100.656888 2.69380475,98.4742765 5.40000005,98.4742765 L44.5999999,98.4742765 C45.8995608,98.4742765 47.1458949,98.9878911 48.0648232,99.902131 C48.9837515,100.816371 49.5,102.056346 49.5,103.349277 L49.5,132.599276 C49.5,135.291665 47.3061953,137.474277 44.5999999,137.474277" id="Path" fill="#8497C0"></path> <path d="M102.6,137.474277 L63.3999999,137.474277 C60.6938047,137.474276 58.5,135.291665 58.5,132.599276 L58.5,103.349277 C58.5,100.656888 60.6938047,98.4742766 63.3999999,98.4742765 L102.6,98.4742765 C105.306195,98.4742765 107.5,100.656888 107.5,103.349277 L107.5,132.599276 C107.5,135.291665 105.306195,137.474277 102.6,137.474277" id="Path" fill="#A7B4D1"></path> <path d="M160.6,137.474277 L121.4,137.474277 C118.693805,137.474276 116.5,135.291665 116.5,132.599276 L116.5,103.349277 C116.5,100.656888 118.693805,98.4742766 121.4,98.4742765 L160.6,98.4742765 C163.306195,98.4742766 165.5,100.656888 165.5,103.349277 L165.5,132.599276 C165.5,135.291665 163.306195,137.474276 160.6,137.474277" id="Path" fill="#CDD5E3"></path> <path d="M5.40000005,0.474276527 L44.5999999,0.474276527 C47.3061953,0.474276527 49.5,2.65688839 49.5,5.34927658 L49.5,34.5992765 C49.5,37.2916647 47.3061953,39.4742765 44.5999999,39.4742765 L5.40000005,39.4742765 C2.69380475,39.4742765 0.5,37.2916647 0.5,34.5992765 L0.5,5.34927658 C0.5,2.65688839 2.69380475,0.474276527 5.40000005,0.474276527" id="Path" fill="#5067A2"></path> <path d="M102.6,39.4742765 L63.3999999,39.4742765 C60.6938047,39.4742765 58.5,37.2916646 58.5,34.5992765 L58.5,5.34927658 C58.5,2.65688845 60.6938047,0.474276601 63.3999999,0.474276527 L102.6,0.474276527 C105.306195,0.474276527 107.5,2.65688839 107.5,5.34927658 L107.5,34.5992765 C107.5,37.2916647 105.306195,39.4742765 102.6,39.4742765" id="Path" fill="#687DB0"></path> <path d="M160.6,39.4742765 L121.4,39.4742765 C118.693805,39.4742765 116.5,37.2916646 116.5,34.5992765 L116.5,5.34927658 C116.5,2.65688845 118.693805,0.474276601 121.4,0.474276527 L160.6,0.474276527 C163.306195,0.474276601 165.5,2.65688845 165.5,5.34927658 L165.5,34.5992765 C165.5,37.2916646 163.306195,39.4742765 160.6,39.4742765" id="Path" fill="#8497C0"></path> </g> </g> </svg>'},69:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="138px" viewBox="0 0 175 138" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>line</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="line" fill="#5067A2" fill-rule="nonzero"> <path d="M25.2739189,111.655778 C26.7855309,111.657407 28.2007506,110.913642 29.0567232,109.667735 L69.3606163,51.4346379 L108.642876,94.5825372 C109.596174,95.6275458 110.977093,96.1760957 112.387618,96.0700817 C113.798143,95.9640677 115.081554,95.2152689 115.86794,94.0395069 L167.15209,17.582681 C168.126301,16.2187314 168.281888,14.4329668 167.558237,12.9210891 C166.834585,11.4092114 165.346152,10.4103472 163.672804,10.3136363 C161.999456,10.2169253 160.40586,11.0376639 159.512851,12.4561069 L111.496086,84.0348638 L72.2782537,40.9605957 C71.3313898,39.926718 69.968454,39.3754562 68.5690807,39.4603596 C67.1694417,39.5586882 65.8899144,40.2864616 65.0900052,41.4391988 L21.4911146,104.439918 C20.5200574,105.846972 20.4090348,107.676368 21.202809,109.190526 C21.9965833,110.704685 23.5643138,111.65402 25.2739189,111.655778" id="Path"></path> <path d="M170.272214,127.854648 L9.20390349,127.854648 L9.20390349,5.00465881 C9.20390349,2.46307104 7.14353951,0.402707066 4.60195174,0.402707066 C2.06036398,0.402707066 3.11254732e-16,2.46307104 0,5.00465881 L0,132.4566 C3.11254728e-16,134.998188 2.06036395,137.058552 4.60195168,137.058552 L170.272214,137.058552 C172.813801,137.058552 174.874165,134.998188 174.874165,132.4566 C174.874165,129.915012 172.813801,129.257355 170.272214,129.257355" id="Path"></path> </g> </g> </svg>'},276:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="163px" height="137px" viewBox="0 0 163 137" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>lines</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="lines" fill="#5067A2" fill-rule="nonzero"> <path d="M118.024118,118.8 C120.522388,118.8 122.566427,120.8475 122.566427,123.35 C122.566427,125.8525 120.522388,127.9 118.024118,127.9 C115.517543,127.894993 113.486807,125.860819 113.481809,123.35 C113.481809,120.8475 115.525848,118.8 118.024118,118.8 Z M142.434485,46 L64.9673569,46 C62.4587091,46 60.4250482,48.0371044 60.4250482,50.55 C60.4250482,53.0628956 62.4587091,55.1 64.9673569,55.1 L142.034762,55.0909 C149.519307,56.1087027 154.7743,62.9956941 153.790257,70.4972 C152.963556,76.6852 148.066948,81.5264 142.434485,82.2544 L20.6642736,82.2726 C14.6272756,82.8301001 9.06337697,85.7822231 5.21133949,90.4717 C0.0521031846,96.7506172 -1.39663076,105.298969 1.40493936,112.931618 C4.20650947,120.564268 10.8382585,126.136619 18.8291809,127.5724 L105.232977,127.8909 C107.143393,133.33221 112.265894,136.980155 118.024118,137 C125.537097,137 131.651044,130.8757 131.651044,123.35 C131.651044,115.8243 125.537097,109.7 118.024118,109.7 C112.110032,109.7 107.113492,113.5129 105.232977,118.8 L21.8634431,118.8728 L20.4099043,118.618 C14.3307333,117.521702 9.72082575,112.509885 9.12680957,106.3512 C8.77445503,102.712306 9.88625731,99.0830035 12.2155795,96.2684 C14.5594108,93.4383 17.8571269,91.6911 21.0912506,91.3544 L142.988646,91.3271 C153.280464,90.058092 161.421536,81.9929721 162.802197,71.6984 C164.446513,59.2314 155.679857,47.729 142.434485,46 Z" id="Shape"></path> <path d="M31.9999101,18.2496933 C36.9704563,18.2496933 40.9998801,22.3350263 40.9998801,27.37454 C40.9998801,32.4140537 36.9704563,36.4993867 31.9999101,36.4993867 C27.0293639,36.4993867 22.9999401,32.4140537 22.9999401,27.37454 C22.9999401,22.3350263 27.0293639,18.2496933 31.9999101,18.2496933 Z M16.8799604,56.2181803 C19.4539519,59.9411177 22.1809428,63.6184309 24.9259336,66.9946242 C25.9069304,68.2173537 26.7979274,69.3032104 27.5539249,70.2156951 C28.1029231,70.7814356 28.435922,71.1920537 28.5979214,71.3654258 C30.4699152,73.555389 33.5839048,73.555389 35.4378986,71.3015518 C35.617898,71.1373046 35.932897,70.7266865 36.4188954,70.1518212 C37.2648925,69.2393365 38.1288897,68.1443549 39.0558866,66.9307503 C41.8008774,63.554557 44.5368683,59.8863687 47.1108598,56.1451815 C49.6758512,52.4131192 51.9258437,48.7449309 53.7348377,45.2957388 C57.1368264,38.917471 58.9998202,33.4243133 58.9998202,28.8710148 C59.05382,12.911658 46.9398603,0 31.9909101,0 C17.0509599,0 5,12.911658 5,28.8710148 C5,33.4243133 6.8629938,38.9722201 10.2559825,45.3596128 C12.1279763,48.8088048 14.3689688,52.4678683 16.8799604,56.2181803 Z" id="Shape"></path> </g> </g> </svg>'},831:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="142px" viewBox="0 0 175 142" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>geo</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="geo" fill="#5067A2" fill-rule="nonzero"> <path d="M9.20332621,34.019885 L55.2181167,56.861627 L55.2181167,128.571076 L9.20332621,103.207724 L9.20332621,34.019885 Z M171.819596,50.2815119 L151.996424,43.1124076 C149.63126,42.3318353 147.074346,43.5747977 146.227189,45.9169373 C145.380032,48.2590769 146.550177,50.8501245 148.867418,51.7631882 L165.653614,57.8371405 L165.653614,131.138702 L119.638823,119.625801 L119.638823,87.4706656 C119.638823,84.9293389 117.578671,82.8691865 115.037344,82.8691865 C112.496018,82.8691865 110.435865,84.9293389 110.435865,87.4706656 L110.435865,119.644207 L64.4210748,131.41479 L64.4210748,58.2236647 L81.060023,51.7263763 C83.2914479,50.7138845 84.3410975,48.1328302 83.4496557,45.8503474 C82.5582139,43.5678645 80.037126,42.3813901 77.7101463,43.1492194 L61.2460542,49.5820871 L6.64490386,22.4793755 C5.21943693,21.7614379 3.52312776,21.8367966 2.16693957,22.6783095 C0.810751382,23.5198224 -0.00997312356,25.0062796 0.000368118324,26.6023007 L0.000368118324,105.913394 C0.000368118324,107.597535 0.91146097,109.134429 2.38393426,109.944289 L58.8072703,141.059491 C59.8287987,141.620871 61.0435892,141.795727 62.16635,141.49203 L115.046547,127.963681 L169.141535,141.501233 C170.516378,141.840666 171.970958,141.532118 173.089604,140.663763 C174.206625,139.788526 174.858383,138.44767 174.856572,137.028595 L174.856572,54.6069022 C174.855748,52.6695411 173.64154,50.9402146 171.819596,50.2815119 Z M115.037344,16.5986853 C121.13907,16.6012266 126.083435,21.5497125 126.080894,27.651438 C126.078353,33.7531634 121.129867,38.697529 115.028141,38.6949877 C108.926416,38.6924463 103.98205,33.7439604 103.984592,27.642235 C103.987133,21.5405096 108.935619,16.596144 115.037344,16.5986853 L115.037344,16.5986853 Z M99.5763747,54.7173377 C102.208421,58.3341002 105.00612,61.9140509 107.813022,65.199507 C108.806942,66.3866886 109.718035,67.4358258 110.491083,68.3285127 C111.04326,68.8806902 111.402176,69.2856204 111.558626,69.4512736 C112.438859,70.4713636 113.723372,71.0524431 115.07068,71.0400337 C116.417988,71.0276243 117.69158,70.4229833 118.552874,69.3868529 C118.72773,69.2211997 119.06824,68.8254725 119.555997,68.264092 C120.506081,67.2663872 121.406012,66.2220982 122.252463,65.1350863 C125.059366,61.8496302 127.866268,58.2788825 130.498314,54.6437141 C133.121157,51.0177486 135.412694,47.4470008 137.262488,44.0879211 C140.741206,37.8851274 142.646219,32.5382087 142.646219,28.1207888 C142.701436,12.5861956 130.314255,0.0425636812 115.028141,0.0425636812 C99.7604339,0.0425636812 87.42847,12.5861956 87.42847,28.1207888 C87.42847,32.5382087 89.3334823,37.9403451 92.8029975,44.1523418 C94.7172128,47.5114215 97.0087494,51.0729663 99.5763747,54.7173377 Z" id="Shape"></path> </g> </g> </svg>'},582:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="148px" viewBox="0 0 175 148" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>parallel</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="parallel" fill="#5067A2" fill-rule="nonzero"> <path d="M119.966527,90.2642567 L119.966527,71.4595035 L164.953975,91.1040224 L164.953975,117.16675 L119.966527,90.2642567 Z M99.5422259,68.8202399 L109.969317,68.8202399 L109.969317,80.2370544 L99.5422259,68.8202399 Z M64.9818688,58.8230293 L64.9818688,45.8666444 L76.8485579,58.8230293 L64.9818688,58.8230293 L64.9818688,58.8230293 Z M9.99721065,95.6627504 L9.99721065,37.9888424 L54.9846583,37.9888424 L54.9846583,61.3523236 L9.99721065,95.6627504 Z M170,2.04051565e-11 C167.238576,2.04245402e-11 165,2.23857623 165,4.99999995 L165,80.2194419 L120,60.5694419 L120,5.00139509 C120,2.23997133 117.761424,0.00139506489 115,0.00139506489 C112.238576,0.00139506489 110,2.23997133 110,5.00139509 L110,58.8394419 L90.42,58.8394419 L64.9999999,31.059442 L64.9999999,5.00139509 C64.9999999,2.23997137 62.7614237,0.00139513813 60,0.00139513813 C57.2385763,0.00139513813 55,2.23997137 55,5.00139509 L55,27.999442 L10,27.999442 L10,4.99999995 C10,2.23857619 7.76142378,-7.3221713e-08 5.00000002,-7.32217131e-08 C2.23857626,-7.32217133e-08 3.38176877e-16,2.23857619 0,4.99999995 L0,142.999442 C3.38176877e-16,145.760866 2.23857626,147.999442 5.00000002,147.999442 C7.76142378,147.999442 10,145.760866 10,142.999442 L10,108.249442 L55,73.9494419 L55,142.999442 C55,145.760866 57.2385763,147.999442 60,147.999442 C62.7614237,147.999442 64.9999999,145.760866 64.9999999,142.999442 L64.9999999,68.839442 L86.01,68.839442 L110,95.0694419 L110,142.999442 C110,145.760866 112.238576,147.999442 115,147.999442 C117.761424,147.999442 120,145.760866 120,142.999442 L120,101.939442 L165,128.839442 L165,142.999442 C165,145.760866 167.238576,147.999442 170,147.999442 C172.761424,147.999442 175,145.760866 175,142.999442 L175,4.99999995 C175,3.67391749 174.473216,2.40214791 173.535534,1.46446603 C172.597852,0.526784141 171.326082,-3.88296707e-08 170,2.04051565e-11 Z" id="Shape"></path> </g> </g> </svg>'},689:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="141px" viewBox="0 0 175 141" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>pictorialBar</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="pictorialBar" fill="#5067A2" fill-rule="nonzero"> <path d="M165.182447,113.123194 C161.75364,113.169204 158.605604,115.027549 156.908673,118.007359 L62.4782339,118.007359 C59.7807842,118.007359 57.5940692,120.194074 57.5940692,122.891524 C57.5940692,125.588973 59.7807842,127.775688 62.4782339,127.775688 L156.908673,127.775688 C158.605604,130.755498 161.75364,132.613843 165.182447,132.659853 C170.576885,132.6592 174.949595,128.285961 174.949595,122.891524 C174.949595,117.497086 170.576885,113.123847 165.182447,113.123194 L165.182447,113.123194 Z M165.182447,78.9340419 C161.75364,78.980052 158.605603,80.8383969 156.908673,83.8182066 L77.2674843,83.8182066 C74.5700347,83.8182066 72.3833197,86.0049216 72.3833197,88.7023712 C72.3833197,91.3998208 74.5700347,93.5865358 77.2674843,93.5865358 L156.908673,93.5865358 C158.605603,96.5663455 161.75364,98.4246904 165.182447,98.4707005 C170.577347,98.4707005 174.950777,94.0972705 174.950777,88.7023712 C174.950777,83.3074719 170.577347,78.9340419 165.182447,78.9340419 L165.182447,78.9340419 Z M165.182447,44.7448896 C170.407595,44.9786234 174.523583,49.2828462 174.523583,54.5132188 C174.523583,59.7435915 170.407595,64.0478142 165.182447,64.2815481 C161.75364,64.235538 158.605604,62.3771932 156.908673,59.3973835 L77.2674843,59.3973835 C74.5700346,59.3973835 72.3833196,57.2106685 72.3833196,54.5132188 C72.3833196,51.8157692 74.5700346,49.6290542 77.2674843,49.6290542 L156.908673,49.6290542 C158.605604,46.6492445 161.75364,44.7908997 165.182447,44.7448896 Z M62.6149904,20.3240665 C62.6149904,19.0287054 63.1295706,17.7863991 64.0455291,16.8704405 C64.9614877,15.954482 66.2037941,15.4399018 67.4991551,15.4399019 L156.908673,15.4399019 C158.605604,12.4600922 161.75364,10.6017474 165.182447,10.5557373 C170.407595,10.7894711 174.523583,15.0936938 174.523583,20.3240665 C174.523583,25.5544392 170.407595,29.8586619 165.182447,30.0923957 C161.75364,30.0463857 158.605604,28.1880408 156.908673,25.2082312 L67.4991551,25.2082312 C66.2037941,25.2082312 64.9614877,24.6936511 64.0455291,23.7776925 C63.1295705,22.8617339 62.6149904,21.6194275 62.6149904,20.3240665 Z M23.5416735,29.3240665 C31.6340224,29.3240665 38.1941674,22.7639215 38.1941674,14.6715726 C38.1941674,6.57922368 31.6340224,0.0190787204 23.5416735,0.0190787204 C15.4493246,0.0190787204 8.88917966,6.57922368 8.88917966,14.6715726 C8.88917966,22.7639215 15.4493246,29.3240665 23.5416735,29.3240665 Z M34.0523957,34.2082312 L13.0211829,34.2082312 C10.6337153,34.2093302 8.59694107,35.9362503 8.20539657,38.2913927 L0.0683783524,87.133039 C-0.166957522,88.5485838 0.232108973,89.996 1.15960938,91.0909397 C2.08710979,92.1858793 3.44919091,92.8175461 4.88416457,92.8182066 L8.88917966,92.8182066 L9.0426883,136.115835 C9.0426883,138.813285 11.2294033,141 13.9268529,141 L33.4635113,141 C34.7588723,141 36.0011787,140.48542 36.9171373,139.569461 C37.8330959,138.653503 38.347676,137.411196 38.347676,136.115835 L38.1941674,92.8182066 L42.189414,92.8182066 C43.6255482,92.8209447 44.9898051,92.1902296 45.9180572,91.0944026 C46.8463094,89.9985755 47.2440794,88.5491696 47.0052003,87.133039 L38.8681821,38.2913927 C38.4766376,35.9362503 36.4398634,34.2093302 34.0523957,34.2082312 Z" id="Shape"></path> </g> </g> </svg>'},931:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="144px" height="152px" viewBox="0 0 144 152" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>pie (2)</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="pie-(2)" transform="translate(0.000000, -0.612903)" fill="#5067A2" fill-rule="nonzero"> <path d="M72.1778824,12.9606446 L72.1778824,73.6462877 C72.1779317,75.129331 72.9386663,76.5065116 74.1881954,77.2856176 C75.4377246,78.0647237 76.9977039,78.1345538 78.3105882,77.4701504 L128.354824,52.1402676 L132.666353,49.9503148 C134.757503,48.8920984 137.302156,49.7461658 138.350118,51.857969 L138.468706,52.1060495 L138.782118,52.8930638 C140.942118,58.6416896 144,65.8873535 144,83.8518095 C144,116.316148 115.123765,152.612903 73.2282353,152.612903 C31.3242354,152.612903 0,119.994584 0,80.8406245 C0,44.5353146 27.216,13.7391044 62.2588236,9.22232682 C64.122353,8.98280072 65.9265883,8.80315611 67.6715294,8.69194766 C68.8395088,8.61630135 69.986418,9.03213213 70.8400527,9.84074781 C71.6936873,10.6493635 72.1779411,11.7786714 72.1778824,12.9606446 Z M90.0254118,0.659269609 C88.9814749,0.488081123 87.9163292,0.795987208 87.1201941,1.49909291 C86.324059,2.20219861 85.8798887,3.22724309 85.9087059,4.29493319 L85.9087059,54.6039644 C85.9087059,56.9393437 87.6028236,57.8717845 89.5680001,56.7511446 L133.149176,31.9088684 C134.092985,31.4117209 134.762111,30.50855 134.968019,29.4538349 C135.173928,28.3991197 134.894328,27.3070442 134.208,26.4853136 C134.208,26.4853136 133.538824,25.5357637 132.446118,24.3381334 C127.296,18.6921614 122.832,14.7399812 116.860235,10.9417819 C109.345997,6.07770841 100.978781,2.71218494 92.2108235,1.0271132 C89.9745882,0.599388123 90.0254118,0.659269609 90.0254118,0.659269609 L90.0254118,0.659269609 Z" id="Shape"></path> </g> </g> </svg>'},702:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="151px" height="170px" viewBox="0 0 151 170" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>radar</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="radar" transform="translate(0.500000, 0.000000)" fill="#5067A2" fill-rule="nonzero"> <path d="M79.573911,32.0195055 C79.7511468,32.0807796 79.9252225,32.1507623 80.0954971,32.2291958 L126.376239,53.5077701 C128.225278,54.3572545 129.374745,56.2354539 129.285085,58.2607506 L126.927916,110.733256 C126.832633,112.851954 125.405699,114.680595 123.367088,115.296516 L76.444394,129.315811 C75.5054275,129.595861 74.5046062,129.595861 73.5656397,129.315811 L32.4706683,117.053921 C30.8367372,116.566659 29.5635821,115.286115 29.0909814,113.654618 C28.6183807,112.023122 29.0111288,110.264354 30.133561,108.985836 L59.2822032,75.635091 C59.7218624,75.142978 60.0532763,74.5647698 60.2551619,73.937598 L73.2246026,35.1848307 C74.1062345,32.570839 76.9431645,31.1565423 79.573911,32.0195055 L79.573911,32.0195055 Z M139.476076,121.926724 L75.0000016,158.991984 L10.5239274,121.926724 L10.5239274,47.816176 L75.0000016,10.7509165 L139.476076,47.816176 L139.476076,121.926724 Z M146.998953,40.6068232 L77.5076273,0.665810956 C75.9548023,-0.221936985 74.0452007,-0.221936985 72.4923757,0.665810956 L3.00105014,40.6068232 C1.44784731,41.4971353 0.491395456,43.1462367 0.493424274,44.9304378 L0.493424274,124.812462 C0.493424274,126.599823 1.44632208,128.247389 3.00105014,129.136077 L72.4923757,169.077089 C74.047355,169.95676 75.9526481,169.95676 77.5076273,169.077089 L146.998953,129.136077 C148.550638,128.244253 149.506533,126.596111 149.506579,124.812462 L149.506579,44.9304378 C149.506533,43.1467894 148.550638,41.4986473 146.998953,40.6068232 L146.998953,40.6068232 Z" id="Shape"></path> </g> </g> </svg>'},989:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="167px" height="162px" viewBox="0 0 167 162" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>rich</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="rich" fill="#5067A2" fill-rule="nonzero"> <path d="M5.52634288,101.24857 L96.0005147,101.24857 C98.7764873,101.24857 101.026858,98.9820436 101.026858,96.1861415 C101.026858,93.3902395 98.7764873,91.123713 96.0005147,91.123713 L5.52634288,91.123713 C2.75037036,91.123713 0.5,93.3902395 0.5,96.1861415 C0.5,98.9820436 2.75037036,101.24857 5.52634288,101.24857 Z M75.8951432,121.498284 L5.52634288,121.498284 C2.75037036,121.498284 0.5,123.76481 0.5,126.560713 C0.5,129.356615 2.75037036,131.623141 5.52634288,131.623141 L75.8951432,131.623141 C78.6711157,131.623141 80.9214861,129.356615 80.9214861,126.560713 C80.9214861,123.76481 78.6711157,121.498284 75.8951432,121.498284 Z M146.394628,92.0653247 L128.923061,116.435856 L146.394628,116.435856 L146.394628,92.0653247 Z M166.5,60.749142 L166.5,151.872855 C166.5,157.464659 161.999259,161.997712 156.447314,161.997712 C150.895369,161.997712 146.394628,157.464659 146.394628,151.872855 L146.394628,136.68557 L114.406982,136.68557 L99.2575849,157.806021 C96.0041451,162.338178 89.7188607,163.355849 85.2190093,160.079052 C80.7191578,156.802254 79.7087415,150.471846 82.9621813,145.939689 L148.304639,54.8261007 C148.455429,54.6033538 148.706746,54.4919804 148.867589,54.2894832 C149.318111,53.7697312 149.823755,53.3011987 150.375492,52.892253 C150.857637,52.4854402 151.379728,52.1292264 151.933658,51.829143 C152.481136,51.5631055 153.053631,51.3528145 153.642615,51.2014019 C154.31205,50.9842108 155.003114,50.8416105 155.703415,50.7761579 C155.954733,50.7559082 156.185944,50.624285 156.447314,50.624285 C156.819264,50.624285 157.130897,50.7964076 157.492794,50.836907 C158.850886,50.9717079 160.164137,51.3999382 161.342972,52.0923893 C161.674711,52.2746367 162.036608,52.3151361 162.338188,52.537883 C162.559347,52.7100056 162.659874,52.9428773 162.87098,53.1251247 C163.403773,53.5807433 163.836038,54.0869861 164.268304,54.6337284 C164.650306,55.1399712 165.022255,55.6259644 165.30373,56.1929564 C165.585206,56.7498235 165.766154,57.3370652 165.947102,57.9546815 C166.138103,58.6330469 166.298946,59.2709129 166.34921,59.969528 C166.369315,60.2428992 166.5,60.4757709 166.5,60.749142 L166.5,60.749142 Z M55.7897717,151.872855 L5.52634288,151.872855 C2.75037036,151.872855 0.5,154.139381 0.5,156.935284 C0.5,159.731186 2.75037036,161.997712 5.52634288,161.997712 L55.7897717,161.997712 C58.5657442,161.997712 60.8161146,159.731186 60.8161146,156.935284 C60.8161146,154.139381 58.5657442,151.872855 55.7897717,151.872855 Z M86.3887335,40.499428 L161.100608,40.499428 C164.04791,40.499428 166.437171,38.2329016 166.437171,35.4369995 C166.437171,32.6410974 164.04791,30.374571 161.100608,30.374571 L86.3887335,30.374571 C83.4414314,30.374571 81.052171,32.6410974 81.052171,35.4369995 C81.052171,38.2329016 83.4414314,40.499428 86.3887335,40.499428 Z M86.3887335,10.124857 L161.100608,10.124857 C164.04791,10.124857 166.437171,7.85833056 166.437171,5.0624285 C166.437171,2.26652644 164.04791,1.71199625e-16 161.100608,0 L86.3887335,0 C83.4414314,-1.71199625e-16 81.052171,2.26652644 81.052171,5.0624285 C81.052171,7.85833056 83.4414314,10.124857 86.3887335,10.124857 Z M5.6570278,70.873999 L60.9467995,70.873999 C63.722772,70.873999 65.9731424,68.6074726 65.9731424,65.8115705 L65.9731424,5.0624285 C65.9731424,2.26652644 63.722772,1.71199625e-16 60.9467995,0 L5.6570278,0 C2.88105528,-1.71199625e-16 0.630684915,2.26652644 0.630684915,5.0624285 L0.630684915,65.8115705 C0.630684915,68.6074726 2.88105528,70.873999 5.6570278,70.873999 Z M81.052171,65.8115705 C81.052171,63.0156685 83.3025414,60.749142 86.0785139,60.749142 L116.236571,60.749142 C119.012544,60.749142 121.262914,63.0156685 121.262914,65.8115705 C121.262914,68.6074726 119.012544,70.873999 116.236571,70.873999 L86.0785139,70.873999 C83.3025414,70.873999 81.052171,68.6074726 81.052171,65.8115705 Z" id="Shape"></path> </g> </g> </svg>'},827:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="139px" viewBox="0 0 175 139" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>sankey</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="sankey" fill-rule="nonzero"> <path d="M4.60195168,138.058552 C2.06036395,138.058552 3.11254728e-16,135.998188 0,133.4566 L0,115.048793 C-3.11254732e-16,112.507205 2.06036398,110.446841 4.60195174,110.446841 C7.14353951,110.446841 9.20390349,112.507205 9.20390349,115.048793 L9.20390349,133.4566 C9.20390349,134.677113 8.71905638,135.847638 7.856023,136.710671 C6.99298962,137.573705 5.82246517,138.058552 4.60195168,138.058552 M4.60195168,106.820503 C2.06036395,106.820503 3.11254728e-16,104.760139 0,102.218552 L0,4.60195168 C-3.11254732e-16,2.06036391 2.06036398,-6.74114049e-08 4.60195174,-6.74114054e-08 C7.14353951,-6.74114058e-08 9.20390349,2.06036391 9.20390349,4.60195168 L9.20390349,102.218552 C9.20390349,103.439065 8.71905638,104.60959 7.856023,105.472623 C6.99298962,106.335656 5.82246517,106.820503 4.60195168,106.820503" id="Shape" fill="#5067A2"></path> <path d="M4.60195168,106.820503 C2.06036395,106.820503 3.11254728e-16,104.760139 0,102.218552 L0,4.60195168 C-3.11254732e-16,2.06036391 2.06036398,-6.74114049e-08 4.60195174,-6.74114054e-08 C7.14353951,-6.74114058e-08 9.20390349,2.06036391 9.20390349,4.60195168 L9.20390349,102.218552 C9.20390349,103.439065 8.71905638,104.60959 7.856023,105.472623 C6.99298962,106.335656 5.82246517,106.820503 4.60195168,106.820503" id="Path" fill="#5067A2"></path> <path d="M87.4370826,64.4273241 C86.2165692,64.4273241 85.0460447,63.942477 84.1830114,63.0794436 C83.319978,62.2164103 82.8351309,61.0458858 82.835131,59.8253723 L82.835131,4.60195168 C82.835131,2.06036391 84.8954949,-6.74113054e-08 87.4370827,-6.74113059e-08 C89.9786705,-6.74113063e-08 92.0390345,2.06036391 92.0390345,4.60195168 L92.0390345,59.8253723 C92.0390345,61.0458858 91.5541874,62.2164103 90.691154,63.0794437 C89.8281206,63.9424771 88.6575962,64.4273242 87.4370826,64.4273241 M170.272214,38.2054031 C167.730626,38.2054031 165.670262,36.1450392 165.670262,33.6034515 L165.670262,4.60195168 C165.670262,2.06036391 167.730626,-6.74114049e-08 170.272214,-6.74114054e-08 C172.813801,-6.74114058e-08 174.874165,2.06036391 174.874165,4.60195168 L174.874165,33.6034515 C174.874165,34.823965 174.389318,35.9944894 173.526285,36.8575227 C172.663252,37.7205561 171.492727,38.2054032 170.272214,38.2054031 M105.84489,138.058552 C104.624376,138.058552 103.453852,137.573705 102.590818,136.710671 C101.727785,135.847638 101.242938,134.677113 101.242938,133.4566 L101.242938,78.2331793 C101.242938,75.6915915 103.303302,73.6312276 105.84489,73.6312276 C108.386477,73.6312276 110.446841,75.6915915 110.446841,78.2331793 L110.446841,133.4566 C110.446841,135.998188 108.386477,138.058552 105.84489,138.058552 M170.272214,138.058552 C167.730626,138.058552 165.670262,135.998188 165.670262,133.4566 L165.670262,48.3020853 C165.670262,45.7604975 167.730626,43.7001336 170.272214,43.7001336 C172.813801,43.7001336 174.874165,45.7604975 174.874165,48.3020853 L174.874165,133.4566 C174.874165,134.677113 174.389318,135.847638 173.526285,136.710671 C172.663252,137.573705 171.492727,138.058552 170.272214,138.058552" id="Shape" fill="#5067A2"></path> <polygon id="Path" fill="#95A5C8" points="110.446841 133.4566 165.670262 133.4566 165.670262 78.2331793 110.446841 78.2331793"></polygon> <polygon id="Path" fill="#5067A2" points="165.670262 133.4566 174.874165 133.4566 174.874165 78.2331793 165.670262 78.2331793"></polygon> <path d="M165.670262,77.9478582 C124.491998,75.6100668 130.198418,59.8345763 92.0390345,59.8253723 L92.0390345,32.213662 C124.832542,32.2228659 136.825229,48.0167643 165.670262,48.6242219 L165.670262,77.9478582" id="Path" fill="#95A5C8"></path> <path d="M92.0390345,59.8253723 L92.0022188,59.8253723 L92.0022188,32.213662 L92.0390345,32.213662 L92.0390345,59.8253723 M174.874165,78.2331793 C171.56076,78.2055676 168.505064,78.1135285 165.670262,77.9478582 L165.670262,48.6242219 L167.400596,48.6426296 C169.765999,48.6426296 172.260257,48.5413867 174.874165,48.3204931 L174.874165,78.2331793" id="Shape" fill="#5067A2"></path> <polygon id="Path" fill="#95A5C8" points="92.0390345 32.213662 165.670262 32.213662 165.670262 4.60195168 92.0390345 4.60195168"></polygon> <path d="M82.835131,32.213662 L92.0390345,32.213662 L92.0390345,4.60195168 L82.835131,4.60195168 L82.835131,32.213662 Z M165.670262,32.213662 L174.506009,32.213662 L174.506009,4.60195168 L165.670262,4.60195168 L165.670262,32.213662 Z" id="Shape" fill="#5067A2"></path> <polygon id="Path" fill="#95A5C8" points="9.20390349 59.8253723 82.835131 59.8253723 82.835131 4.60195168 9.20390349 4.60195168"></polygon> <polyline id="Path" fill="#5067A2" points="82.835131 59.8253723 82.835131 4.60195168 82.835131 59.8253723"></polyline> <polygon id="Path" fill="#95A5C8" points="9.20390349 133.4566 101.242938 133.4566 101.242938 115.048793 9.20390349 115.048793"></polygon> <polygon id="Path" fill="#5067A2" points="101.242938 133.4566 110.446841 133.4566 110.446841 115.048793 101.242938 115.048793"></polygon> <path d="M101.242938,115.048793 C43.4792398,114.699045 52.1585208,101.445424 9.20390349,101.445424 L9.20390349,59.8253723 C56.5579867,59.8253723 47.7682589,78.1319363 101.242938,78.2331793 L101.242938,115.048793" id="Path" fill="#95A5C8"></path> <path d="M101.675521,115.048793 L101.242938,115.048793 L101.242938,78.2331793 L101.675521,78.2331793 C104.335449,78.2331793 100.46981,113.723431 101.675521,115.048793" id="Path" fill="#5067A2"></path> </g> </g> </svg>'},687:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="138px" viewBox="0 0 175 138" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>scatter</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="scatter" fill="#5067A2" fill-rule="nonzero"> <path d="M173.526285,129.202529 C172.663252,128.339495 171.492727,127.854648 170.272214,127.854648 L9.20390349,127.854648 L9.20390349,4.60195168 C9.20390349,2.06036391 7.14353951,-6.74112924e-08 4.60195174,-6.74112925e-08 C2.06036398,-6.74112927e-08 3.11254732e-16,2.06036391 0,4.60195168 L0,132.4566 C3.11254728e-16,134.998188 2.06036395,137.058552 4.60195168,137.058552 L170.272214,137.058552 C171.492727,137.058552 172.663252,136.573705 173.526285,135.710671 C174.389318,134.847638 174.874165,133.677113 174.874165,132.4566 C174.874165,131.236086 174.389318,130.065562 173.526285,129.202529 Z M151.864407,12.8058552 C155.15291,12.8054572 158.191783,14.5596242 159.836149,17.4074853 C161.480516,20.2553464 161.480516,23.7641708 159.836149,26.6120319 C158.191783,29.459893 155.15291,31.21406 151.864407,31.213662 C146.781666,31.2130468 142.661617,27.0924991 142.661617,22.0097586 C142.661617,16.9270181 146.781666,12.8064703 151.864407,12.8058552 Z M142.660503,58.8253723 C147.743679,58.8253723 151.864407,62.9461003 151.864407,68.0292758 C151.864407,73.1124513 147.743679,77.2331793 142.660503,77.2331793 C137.577328,77.2331793 133.4566,73.1124513 133.4566,68.0292758 C133.4566,62.9461003 137.577328,58.8253723 142.660503,58.8253723 Z M124.252696,40.4175655 C127.5412,40.4171675 130.580072,42.1713345 132.224439,45.0191956 C133.868806,47.8670567 133.868806,51.3758811 132.224439,54.2237422 C130.580072,57.0716033 127.5412,58.8257703 124.252696,58.8253723 C119.169956,58.8247572 115.049907,54.7042094 115.049907,49.6214689 C115.049907,44.5387284 119.169956,40.4181807 124.252696,40.4175655 L124.252696,40.4175655 Z M105.84489,22.0097586 C109.133393,22.0093606 112.172266,23.7635277 113.816632,26.6113888 C115.460999,29.4592498 115.460999,32.9680743 113.816632,35.8159354 C112.172266,38.6637965 109.133393,40.4179635 105.84489,40.4175655 C100.762149,40.4169503 96.6421001,36.2964026 96.6421001,31.2136621 C96.6421001,26.1309216 100.762149,22.0103738 105.84489,22.0097586 L105.84489,22.0097586 Z M105.84489,58.8253723 C110.928065,58.8253723 115.048793,62.9461003 115.048793,68.0292758 C115.048793,73.1124513 110.928065,77.2331793 105.84489,77.2331793 C100.761714,77.2331793 96.6409861,73.1124513 96.6409861,68.0292758 C96.6409861,62.9461003 100.761714,58.8253723 105.84489,58.8253723 L105.84489,58.8253723 Z M87.4370826,77.2331793 C90.8200008,77.0784213 94.0146452,78.7938663 95.7543045,81.6993216 C97.4939639,84.6047768 97.4975937,88.2308616 95.7637545,91.1397939 C94.0299154,94.0487262 90.8387117,95.7705634 87.4554905,95.6225784 C82.5370015,95.4074394 78.6587219,91.3598697 78.6537937,86.4366802 C78.6488656,81.5134907 82.5190342,77.4581647 87.4370826,77.2331793 L87.4370826,77.2331793 Z M59.8253723,68.0292758 C63.1138756,68.0288778 66.1527483,69.7830448 67.7971148,72.6309059 C69.4414814,75.478767 69.4414814,78.9875915 67.7971148,81.8354525 C66.1527483,84.6833136 63.1138756,86.4374807 59.8253723,86.4370826 C54.7426318,86.4364675 50.6225828,82.3159197 50.6225828,77.2331792 C50.6225828,72.1504387 54.7426318,68.029891 59.8253723,68.0292758 L59.8253723,68.0292758 Z M32.213662,95.6409861 C35.5021653,95.6405881 38.541038,97.3947552 40.1854045,100.242616 C41.8297711,103.090477 41.8297711,106.599302 40.1854045,109.447163 C38.541038,112.295024 35.5021653,114.049191 32.213662,114.048793 C27.1309215,114.048178 23.0108725,109.92763 23.0108725,104.84489 C23.0108725,99.762149 27.1309215,95.6416013 32.213662,95.6409861 L32.213662,95.6409861 Z" id="Shape"></path> </g> </g> </svg>'},31:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="176px" height="154px" viewBox="0 0 176 154" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>sunburst</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="sunburst" transform="translate(-0.500000, -0.495167)" fill="#5067A2" fill-rule="nonzero"> <path d="M119.233629,98.0044542 L110.718691,87.8510962 C116.698944,81.6134116 119.776927,73.1460671 119.198407,64.5239101 L132.221771,61.7588152 C132.389075,63.3350954 132.468325,64.9289877 132.468325,66.5404921 C132.486789,78.3855449 127.713147,89.7343283 119.233629,98.0044542 L119.233629,98.0044542 Z M63.3185781,30.3829135 C74.7931609,22.4121709 89.3686325,20.3583561 102.598787,24.8479794 C115.828942,29.3376027 126.144611,39.8381699 130.399028,53.1465133 L117.38447,55.9116082 C114.163414,47.1482037 107.14477,40.3166874 98.2978797,37.3338959 C89.4509892,34.3511045 79.7290566,35.5384174 71.8599325,40.5626897 L63.3185781,30.3829135 L63.3185781,30.3829135 Z M57.4981296,97.8547516 L67.6773104,89.3128978 C73.1543438,94.3147256 80.4453141,97.3616135 88.4495316,97.3616137 C93.8284022,97.3676833 99.1146581,95.9617789 103.779942,93.2844195 L112.365323,103.508226 C105.247152,108.132446 96.9377023,110.586264 88.4495316,110.570666 C76.8578752,110.587037 65.7306915,106.015602 57.4981296,97.8547516 L57.4981296,97.8547516 Z M51.880208,91.0741048 C47.0035405,83.8229191 44.4062144,75.2791485 44.4219328,66.5404921 C44.4219328,54.7315996 49.0624416,44.0146553 56.6263832,36.1068361 L65.194154,46.3130303 C60.3076881,51.9176198 57.6201378,59.1046557 57.6302124,66.5404921 C57.6302124,72.3876992 59.2592335,77.8562467 62.0858054,82.5146391 L51.880208,91.0741048 L51.880208,91.0741048 Z M40.5915316,112.05008 L50.7354904,103.534644 C60.658337,113.682313 74.2570793,119.394563 88.4495316,119.3767 C99.4212094,119.3767 109.618001,116.030407 118.062495,110.306485 L126.586238,120.468649 C115.441046,128.370969 102.111678,132.606084 88.4495316,132.585752 C70.3533434,132.605952 53.0459635,125.179425 40.5915316,112.05008 L40.5915316,112.05008 Z M0.5,62.1374747 C1.61718015,39.3368661 11.5653323,17.8665508 28.2373873,2.27405071 L36.7435195,12.4097967 C23.0478109,25.4703646 14.8209875,43.2437342 13.7258907,62.1374747 L0.5,62.1374747 Z M0.5,70.9435094 L13.7258907,70.9435094 C14.5580363,85.4042184 19.5854188,99.3091254 28.1933598,110.958131 L18.0582064,119.464761 C7.47186066,105.41813 1.35420505,88.5122858 0.5,70.9435094 L0.5,70.9435094 Z M22.5490216,62.1374747 C23.6176776,45.8469855 30.7006658,30.5346593 42.4230797,19.1728312 L50.9380174,29.3261893 C42.1806215,38.1364527 36.8165849,49.7571326 35.7925234,62.1374747 L22.5490216,62.1374747 L22.5490216,62.1374747 Z M22.5490216,70.9435094 L35.7925234,70.9435094 C36.5571371,80.2216635 39.7688087,89.1310032 45.0999577,96.7628032 L34.9559989,105.278239 C27.6604148,95.2350677 23.3587128,83.3306553 22.5490216,70.9435094 Z M160.064824,88.3354281 C162.208458,81.2692542 163.294499,73.9246962 163.287644,66.5404921 C163.287927,62.7888436 163.014228,59.0421838 162.468731,55.3304099 L175.40404,52.5829271 C177.539642,66.0542744 176.545357,79.8364744 172.498218,92.86173 L160.064824,88.3354281 Z M157.009309,96.5954887 L169.451508,101.130596 C164.453629,112.804913 156.992417,123.261434 147.578597,131.784403 L139.08127,121.666269 C146.731696,114.64362 152.837128,106.105711 157.009309,96.5954887 L157.009309,96.5954887 Z M139.336631,80.7886563 C141.234304,74.0037443 141.75525,66.9076826 140.868791,59.9183539 L153.830516,57.1620651 C155.148964,66.5886629 154.449628,76.187832 151.77883,85.3237642 L139.336631,80.7886563 Z M136.263504,89.0487169 L148.714509,93.5750188 C145.090489,101.633987 139.889912,108.885878 133.419321,114.903235 L124.913189,104.776295 C129.629614,100.274719 133.477161,94.943361 136.263504,89.0487169 L136.263504,89.0487169 Z M84.1260215,141.268503 L84.1260215,154.495167 C61.049526,153.386197 39.3397973,143.226766 23.7025446,126.218989 L33.8288923,117.71236 C46.9380429,131.745712 64.9535467,140.183088 84.1260215,141.268503 L84.1260215,141.268503 Z M104.94227,2.57345585 C127.679056,8.4576749 145.591926,25.956003 152.007773,48.5497632 L139.046048,51.306052 C133.813709,33.9700374 120.081572,20.5128194 102.64403,15.6328053 L104.933465,2.64390412 L104.94227,2.57345585 L104.94227,2.57345585 Z M96.2952498,0.953145396 L96.2600278,1.12046007 L93.9970091,13.9948829 C81.1068487,12.6102912 68.1594065,16.034712 57.6390179,23.6110727 L49.1240802,13.4665207 C60.4957814,5.02434618 74.2870046,0.475385223 88.4495316,0.495231624 C91.0999932,0.495231624 93.7152325,0.644934198 96.2952498,0.953145396 L96.2952498,0.953145396 Z" id="Shape"></path> <path d="M88.5,75.295167 C93.3601058,75.295167 97.3,71.3552728 97.3,66.495167 C97.3,61.6350611 93.3601058,57.6951669 88.5,57.6951669 C83.6398942,57.6951669 79.7,61.6350611 79.7,66.495167 C79.7,71.3552728 83.6398942,75.295167 88.5,75.295167 Z M88.5,88.495167 C76.3497355,88.495167 66.5,78.6454315 66.5,66.495167 C66.5,54.3449025 76.3497355,44.495167 88.5,44.495167 C100.650264,44.495167 110.5,54.3449025 110.5,66.495167 C110.5,78.6454315 100.650264,88.495167 88.5,88.495167 Z" id="Shape"></path> </g> </g> </svg>'},951:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="130px" viewBox="0 0 175 130" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>themeriver</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="themeriver" fill="#5067A2" fill-rule="nonzero"> <path d="M4.9275627,42.5798026 C5.20117275,42.5813119 5.47437729,42.5585448 5.74396361,42.5117692 C10.5811329,41.6686599 15.2612908,40.0922201 19.6227791,37.836902 C26.4649962,34.328322 32.1798026,30.0130599 43.8718299,30.0130599 C55.5638572,30.0130599 63.7861807,41.3940774 79.5602127,41.4912681 C95.3342445,41.5787397 96.9864845,31.7333333 115.384662,31.7333333 C132.976158,31.7333333 137.621868,44.6208049 153.6,45.4566438 C160.490812,45.8162491 166.6041,44.9318147 171.930144,42.7936218 C173.778744,42.0602993 174.992296,40.2727177 174.991648,38.2839788 L174.991648,26.7960517 C174.987486,25.3270305 174.319017,23.9387356 173.173189,23.0194311 C172.027362,22.1001266 170.527173,21.7484925 169.092179,22.0628701 C165.933485,22.7529233 162.084738,22.8403949 157.5265,22.3155656 C145.533181,20.9160213 134.676993,5.82232335 119.476386,5.82232348 C102.788762,5.82232348 99.3093394,11.1678056 81.9899772,11.1678056 C64.6803341,11.1678056 59.6069856,0.126955258 43.8718299,0.126955258 C37.3211845,0.126955258 27.9422931,3.46059231 17.9025057,7.6009112 C12.9652241,9.65163256 8.49445708,10.8373576 4.50964317,11.1678056 C1.98627058,11.3754189 0.0451326562,13.4857192 0.0485952544,16.0176158 L0.0583143318,37.7202733 C0.0583143318,40.4027335 2.24510251,42.5798026 4.9275627,42.5798026 M170.132118,85.5283219 C169.634444,85.5282959 169.139638,85.6036638 168.664541,85.7518603 C162.658162,87.6665148 157.633409,88.7064541 153.551405,88.9008353 C139.342141,89.522855 131.343356,82.7583903 118.543356,82.7583903 C104.227183,82.7583903 97.8611998,94.1491269 80.444647,94.1491269 C61.0356872,94.1491269 52.3274108,84.1287775 42.4917236,84.1287775 C35.416249,84.1287775 28.7392558,88.7453303 19.9337889,92.9828398 C15.5893698,95.0627183 10.3507973,96.5594533 4.2083523,97.4438876 C1.81553905,97.7920745 0.0427391378,99.8465342 0.0485952544,102.264541 L0.0485952544,124.297646 C0.0496707163,125.687409 0.645723287,127.010209 1.68608385,127.931672 C2.72644442,128.853134 4.11154706,129.285071 5.491268,129.118299 C10.3313591,128.544875 15.142293,127.670159 19.9337889,126.513592 C29.8083523,124.132422 34.2305239,119.068793 42.4917236,118.388459 C54.5822323,117.397115 66.5658314,123.267426 82.4759302,121.323614 C98.386029,119.379803 106.3265,110.156416 120.273349,108.543052 C132.577676,107.12407 140.586181,111.293546 152.083827,110.030068 C159.995141,109.174791 166.81792,107.085194 172.552164,103.780714 C174.06095,102.911932 174.991067,101.303681 174.991648,99.5626424 L174.991648,90.3878512 C174.991648,87.7040073 172.815962,85.5283219 170.132118,85.5283219" id="Shape"></path> <path d="M170.132118,55.1659834 C169.755896,55.1642513 169.380769,55.206657 169.014427,55.2923311 C163.386911,56.5597226 157.597804,56.9530934 151.850569,56.4586181 C133.889749,55.0007593 128.388762,42.7839029 114.655733,42.7839029 C103.264996,42.7839029 93.9249811,52.940319 79.7157175,52.5807138 C59.2668185,52.0656038 52.6578588,41.0733486 42.0738042,41.0733486 C35.5231587,41.0733486 26.5330296,47.0991647 20.6724373,49.7524677 C15.5296251,52.0293301 10.0450596,53.4382394 4.44160976,53.9219438 C1.94888222,54.1623556 0.0470459996,56.2577415 0.0485952544,58.762035 L0.0485952544,80.8242976 C0.0491745866,82.2971429 0.717699925,83.69025 1.86632297,84.6121711 C3.01494602,85.5340923 4.51970635,85.8853329 5.95778278,85.5671982 C11.10094,84.3721963 16.0531556,82.4685044 20.6724373,79.9107062 C28.3018983,75.7703873 34.249962,72.7866364 41.8016705,72.7866364 C56.6037965,72.7866364 63.1252849,82.7778284 79.3755505,82.7778284 C94.6441914,82.7778284 103.070615,71.5231587 117.639484,71.5231587 C132.208352,71.5231587 139.964161,77.2185269 150.314958,77.5295368 C156.48656,77.7044798 163.707821,76.0813971 171.988459,72.6408505 C173.80584,71.8896408 174.991328,70.1171628 174.991648,68.1506454 L174.991648,60.0255125 C174.991648,57.3416686 172.815962,55.1659834 170.132118,55.1659834" id="Path"></path> </g> </g> </svg>'},929:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="174px" height="147px" viewBox="0 0 174 147" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>tree (1)</title> <desc>Created with Sketch.</desc> <defs> <polygon id="path-1" points="2 4.69629167 172 4.69629167 172 146.375 2 146.375"></polygon> </defs> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="tree-(1)"> <mask id="mask-2" fill="white"> <use xlink:href="#path-1"></use> </mask> <g id="path-1"></g> <path d="M174,127.4965 C173.994333,137.928125 165.534,146.380667 155.101667,146.375708 C144.670042,146.370042 136.216792,137.909 136.222458,127.476667 C136.222458,127.470292 136.222458,127.464625 136.222458,127.45825 C136.226708,118.755667 142.117917,111.435042 150.127042,109.248417 L150.127042,80.2563333 L91.4625,80.2563333 L91.4625,109.120208 C99.7407917,111.126208 105.890542,118.582125 105.889125,127.476667 C105.889125,127.483042 105.889125,127.490125 105.889125,127.4965 C105.883458,137.928125 97.4224167,146.380667 86.9907917,146.375708 C76.5584583,146.370042 68.1059167,137.909 68.1115833,127.476667 C68.1122917,118.764875 74.0049167,111.440708 82.0182917,109.254083 L82.0182917,80.2563333 L23.3530417,80.2563333 L23.3530417,109.120917 C31.630625,111.127625 37.7789583,118.582833 37.77825,127.476667 C37.77825,127.478792 37.77825,127.480917 37.77825,127.483042 C37.776125,137.915375 29.3179167,146.37075 18.8862917,146.368625 C8.45395833,146.367208 -0.00141666667,137.909 0,127.476667 C0.00141666667,118.764167 5.89545833,111.439292 13.9088333,109.254083 L13.9088333,80.2563333 C13.9088333,75.0500833 18.1425417,70.812125 23.3530417,70.812125 L82.0182917,70.812125 L82.0182917,37.8179167 C74.0006667,35.6305833 68.106625,28.298625 68.1115833,19.58825 C68.1122917,9.15025 76.5705,0.694875 87.0028333,0.696291667 C97.4344583,0.697708333 105.890542,9.15591667 105.889125,19.58825 C105.889125,19.594625 105.889125,19.601 105.889125,19.607375 C105.884167,28.4976667 99.7358333,35.9465 91.4625,37.9517917 L91.4625,70.812125 L150.127042,70.812125 C155.337542,70.812125 159.57125,75.0500833 159.57125,80.2563333 L159.57125,109.113125 C167.853083,111.119125 174.00425,118.579292 174,127.476667 C174,127.483042 174,127.490125 174,127.4965 Z" id="Fill-1" fill="#5067A2" fill-rule="nonzero"></path> </g> </g> </svg>'},101:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="160px" height="132px" viewBox="0 0 160 132" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>treemap</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="treemap" transform="translate(-0.500000, -0.095199)" fill="#5067A2" fill-rule="nonzero"> <path d="M84.9444444,79.2951993 L4.9444444,79.2951993 C2.48984554,79.2951993 0.5,81.2651464 0.5,83.6951993 L0.5,127.695199 C0.5,130.125252 2.48984554,132.095199 4.9444444,132.095199 L84.9444444,132.095199 C86.1231844,132.095199 87.2536462,131.631629 88.0871413,130.806469 C88.9206363,129.981309 89.3888889,128.862152 89.3888889,127.695199 L89.3888889,83.6951993 C89.3888889,82.5282467 88.9206363,81.4090895 88.0871413,80.5839295 C87.2536462,79.7587694 86.1231844,79.2951993 84.9444444,79.2951993 L84.9444444,79.2951993 Z M156.055556,105.695199 L102.722222,105.695199 C101.543482,105.695199 100.41302,106.158769 99.5795254,106.983929 C98.7460304,107.80909 98.2777777,108.928247 98.2777777,110.095199 L98.2777777,127.695199 C98.2777777,128.862152 98.7460304,129.981309 99.5795254,130.806469 C100.41302,131.631629 101.543482,132.095199 102.722222,132.095199 L156.055556,132.095199 C158.510154,132.095199 160.5,130.125252 160.5,127.695199 L160.5,110.095199 C160.5,107.665146 158.510154,105.695199 156.055556,105.695199 L156.055556,105.695199 Z M156.055556,61.6951994 L102.722222,61.6951994 C101.543482,61.6951994 100.41302,62.1587694 99.5795254,62.9839295 C98.7460304,63.8090896 98.2777777,64.9282468 98.2777777,66.0951993 L98.2777777,92.4951993 C98.2777777,93.6621519 98.7460304,94.7813091 99.5795254,95.6064692 C100.41302,96.4316293 101.543482,96.8951993 102.722222,96.8951993 L156.055556,96.8951993 C158.510154,96.8951993 160.5,94.9252522 160.5,92.4951993 L160.5,66.0951993 C160.5,63.6651465 158.510154,61.6951994 156.055556,61.6951994 L156.055556,61.6951994 Z M156.055556,0.0951993491 L102.722222,0.0951993491 C101.543482,0.0951993149 100.41302,0.558769393 99.5795254,1.38392945 C98.7460304,2.20908951 98.2777777,3.32824674 98.2777777,4.49519931 L98.2777777,48.4951994 C98.2777777,49.662152 98.7460304,50.7813092 99.5795254,51.6064692 C100.41302,52.4316293 101.543482,52.8951994 102.722222,52.8951993 L156.055556,52.8951993 C158.510154,52.8951993 160.5,50.9252523 160.5,48.4951994 L160.5,4.49519931 C160.5,2.06514643 158.510154,0.0951993491 156.055556,0.0951993491 L156.055556,0.0951993491 Z M89.3888889,4.49519931 L89.3888889,66.0951993 C89.3888889,67.2621519 88.9206363,68.3813091 88.0871413,69.2064692 C87.2536462,70.0316293 86.1231844,70.4951993 84.9444444,70.4951993 L4.9444444,70.4951993 C2.48984554,70.4951993 0.5,68.5252522 0.5,66.0951993 L0.5,4.49519931 C0.5,2.06514643 2.48984554,0.0951993491 4.9444444,0.0951993491 L84.9444444,0.0951993491 C86.1231844,0.0951993149 87.2536462,0.558769393 88.0871413,1.38392945 C88.9206363,2.20908951 89.3888889,3.32824674 89.3888889,4.49519931 Z" id="Shape"></path> </g> </g> </svg>'},705:(t,e,n)=>{var a=n(639).Symbol;t.exports=a},239:(t,e,n)=>{var a=n(705),i=n(607),o=n(333),r=a?a.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":r&&r in Object(t)?i(t):o(t)}},957:(t,e,n)=>{var a="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;t.exports=a},607:(t,e,n)=>{var a=n(705),i=Object.prototype,o=i.hasOwnProperty,r=i.toString,l=a?a.toStringTag:void 0;t.exports=function(t){var e=o.call(t,l),n=t[l];try{t[l]=void 0;var a=!0}catch(t){}var i=r.call(t);return a&&(e?t[l]=n:delete t[l]),i}},333:t=>{var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},639:(t,e,n)=>{var a=n(957),i="object"==typeof self&&self&&self.Object===Object&&self,o=a||i||Function("return this")();t.exports=o},279:(t,e,n)=>{var a=n(218),i=n(771),o=n(841),r=Math.max,l=Math.min;t.exports=function(t,e,n){var s,c,u,d,p,f,g=0,m=!1,h=!1,C=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function y(e){var n=s,a=c;return s=c=void 0,g=e,d=t.apply(a,n)}function v(t){return g=t,p=setTimeout(_,e),m?y(t):d}function b(t){var n=t-f;return void 0===f||n>=e||n<0||h&&t-g>=u}function _(){var t=i();if(b(t))return L(t);p=setTimeout(_,function(t){var n=e-(t-f);return h?l(n,u-(t-g)):n}(t))}function L(t){return p=void 0,C&&s?y(t):(s=c=void 0,d)}function w(){var t=i(),n=b(t);if(s=arguments,c=this,f=t,n){if(void 0===p)return v(f);if(h)return clearTimeout(p),p=setTimeout(_,e),y(f)}return void 0===p&&(p=setTimeout(_,e)),d}return e=o(e)||0,a(n)&&(m=!!n.leading,u=(h="maxWait"in n)?r(o(n.maxWait)||0,e):u,C="trailing"in n?!!n.trailing:C),w.cancel=function(){void 0!==p&&clearTimeout(p),g=0,s=f=c=p=void 0},w.flush=function(){return void 0===p?d:L(i())},w}},218:t=>{t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},5:t=>{t.exports=function(t){return null!=t&&"object"==typeof t}},448:(t,e,n)=>{var a=n(239),i=n(5);t.exports=function(t){return"symbol"==typeof t||i(t)&&"[object Symbol]"==a(t)}},771:(t,e,n)=>{var a=n(639);t.exports=function(){return a.Date.now()}},841:(t,e,n)=>{var a=n(218),i=n(448),o=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,s=/^0o[0-7]+$/i,c=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return NaN;if(a(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=a(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(o,"");var n=l.test(t);return n||s.test(t)?c(t.slice(2),n?2:8):r.test(t)?NaN:+t}},463:function(t){"undefined"!=typeof self&&self,t.exports=function(t){var e={};function n(a){if(e[a])return e[a].exports;var i=e[a]={i:a,l:!1,exports:{}};return t[a].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,a){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(a,i,function(e){return t[e]}.bind(null,i));return a},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/dist/",n(n.s=1)}([function(t,e){var n="function"==typeof Float32Array;function a(t,e){return 1-3*e+3*t}function i(t,e){return 3*e-6*t}function o(t){return 3*t}function r(t,e,n){return((a(e,n)*t+i(e,n))*t+o(e))*t}function l(t,e,n){return 3*a(e,n)*t*t+2*i(e,n)*t+o(e)}function s(t){return t}t.exports=function(t,e,a,i){if(!(0<=t&&t<=1&&0<=a&&a<=1))throw new Error("bezier x values must be in [0, 1] range");if(t===e&&a===i)return s;for(var o=n?new Float32Array(11):new Array(11),c=0;c<11;++c)o[c]=r(.1*c,t,a);function u(e){for(var n=0,i=1;10!==i&&o[i]<=e;++i)n+=.1;--i;var s=n+(e-o[i])/(o[i+1]-o[i])*.1,c=l(s,t,a);return c>=.001?function(t,e,n,a){for(var i=0;i<4;++i){var o=l(e,n,a);if(0===o)return e;e-=(r(e,n,a)-t)/o}return e}(e,s,t,a):0===c?s:function(t,e,n,a,i){var o,l,s=0;do{(o=r(l=e+(n-e)/2,a,i)-t)>0?n=l:e=l}while(Math.abs(o)>1e-7&&++s<10);return l}(e,n,n+.1,t,a)}return function(t){return 0===t?0:1===t?1:r(u(t),e,i)}}},function(t,e,n){"use strict";n.r(e);var a=function(){var t=this.$createElement;return(this._self._c||t)(this.tag,{ref:"scrollactive-nav-wrapper",tag:"component",staticClass:"scrollactive-nav"},[this._t("default")],2)};a._withStripped=!0;var i=n(0),o=n.n(i);function r(t){return function(t){if(Array.isArray(t))return l(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return l(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}var s=function(t,e,n,a,i,o,r,l){var s,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=[],c._compiled=!0),s)if(c.functional){c._injectStyles=s;var u=c.render;c.render=function(t,e){return s.call(e),u(t,e)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,s):[s]}return{exports:t,options:c}}({props:{activeClass:{type:String,default:"is-active"},offset:{type:Number,default:20},scrollOffset:{type:Number,default:null},scrollContainerSelector:{type:String,default:""},clickToScroll:{type:Boolean,default:!0},duration:{type:Number,default:600},alwaysTrack:{type:Boolean,default:!1},bezierEasingValue:{type:String,default:".5,0,.35,1"},modifyUrl:{type:Boolean,default:!0},exact:{type:Boolean,default:!1},highlightFirstItem:{type:Boolean,default:!1},tag:{type:String,default:"nav"},scrollOnStart:{type:Boolean,default:!0}},data:function(){return{observer:null,items:[],currentItem:null,lastActiveItem:null,scrollAnimationFrame:null,bezierEasing:o.a}},computed:{cubicBezierArray:function(){return this.bezierEasingValue.split(",")},scrollContainer:function(){var t=window;return this.scrollContainerSelector&&(t=document.querySelector(this.scrollContainerSelector)||window),t}},mounted:function(){var t=window.MutationObserver||window.WebKitMutationObserver;this.observer||(this.observer=new t(this.initScrollactiveItems),this.observer.observe(this.$refs["scrollactive-nav-wrapper"],{childList:!0,subtree:!0})),this.initScrollactiveItems(),this.removeActiveClass(),this.currentItem=this.getItemInsideWindow(),this.currentItem&&this.currentItem.classList.add(this.activeClass),this.scrollOnStart&&this.scrollToHashElement(),this.scrollContainer.addEventListener("scroll",this.onScroll)},updated:function(){this.initScrollactiveItems()},beforeDestroy:function(){this.scrollContainer.removeEventListener("scroll",this.onScroll),window.cancelAnimationFrame(this.scrollAnimationFrame)},methods:{onScroll:function(t){this.currentItem=this.getItemInsideWindow(),this.currentItem!==this.lastActiveItem&&(this.removeActiveClass(),this.$emit("itemchanged",t,this.currentItem,this.lastActiveItem),this.lastActiveItem=this.currentItem),this.currentItem&&this.currentItem.classList.add(this.activeClass)},getItemInsideWindow:function(){var t,e=this;return[].forEach.call(this.items,(function(n){var a=n===e.items[0],i=document.getElementById(decodeURI(n.hash.substr(1)));if(i){var o=e.scrollContainer.scrollTop||window.pageYOffset,r=o>=e.getOffsetTop(i)-e.offset,l=o<e.getOffsetTop(i)-e.offset+i.offsetHeight;a&&e.highlightFirstItem&&l&&(t=n),e.exact&&r&&l&&(t=n),!e.exact&&r&&(t=n)}})),t},initScrollactiveItems:function(){var t=this;this.items=this.$el.querySelectorAll(".scrollactive-item"),this.clickToScroll?[].forEach.call(this.items,(function(e){e.addEventListener("click",t.handleClick)})):[].forEach.call(this.items,(function(e){e.removeEventListener("click",t.handleClick)}))},setScrollactiveItems:function(){this.initScrollactiveItems()},handleClick:function(t){var e=this;t.preventDefault();var n=t.currentTarget.hash,a=document.getElementById(decodeURI(n.substr(1)));a?(this.alwaysTrack||(this.scrollContainer.removeEventListener("scroll",this.onScroll),window.cancelAnimationFrame(this.scrollAnimationFrame),this.removeActiveClass(),t.currentTarget.classList.add(this.activeClass)),this.scrollTo(a).then((function(){e.alwaysTrack||(e.scrollContainer.addEventListener("scroll",e.onScroll),e.currentItem=[].find.call(e.items,(function(t){return decodeURI(t.hash.substr(1))===a.id})),e.currentItem!==e.lastActiveItem&&(e.$emit("itemchanged",null,e.currentItem,e.lastActiveItem),e.lastActiveItem=e.currentItem)),e.modifyUrl&&e.pushHashToUrl(n)}))):console.warn("[vue-scrollactive] Element '".concat(n,"' was not found. Make sure it is set in the DOM."))},scrollTo:function(t){var e=this;return new Promise((function(n){var a=e.getOffsetTop(t),i=e.scrollContainer.scrollTop||window.pageYOffset,o=a-i,l=e.bezierEasing.apply(e,r(e.cubicBezierArray)),s=null;window.requestAnimationFrame((function t(a){s||(s=a);var r=a-s,c=r/e.duration;r>=e.duration&&(r=e.duration),c>=1&&(c=1);var u=e.scrollOffset||e.offset,d=i+l(c)*(o-u);e.scrollContainer.scrollTo(0,d),r<e.duration?e.scrollAnimationFrame=window.requestAnimationFrame(t):n()}))}))},getOffsetTop:function(t){for(var e=0,n=t;n;)e+=n.offsetTop,n=n.offsetParent;return this.scrollContainer.offsetTop&&(e-=this.scrollContainer.offsetTop),e},removeActiveClass:function(){var t=this;[].forEach.call(this.items,(function(e){e.classList.remove(t.activeClass)}))},scrollToHashElement:function(){var t=this,e=window.location.hash;if(e){var n=document.querySelector(decodeURI(e));n&&(window.location.hash="",setTimeout((function(){var a=n.offsetTop-t.offset;t.scrollContainer.scrollTo(0,a),t.pushHashToUrl(e)}),0))}},pushHashToUrl:function(t){window.history.pushState?window.history.pushState(null,null,t):window.location.hash=t}}},a);s.options.__file="src/scrollactive.vue";var c=s.exports,u={install:function(t){u.install.installed||t.component("scrollactive",c)}};"undefined"!=typeof window&&window.Vue&&u.install(window.Vue),e.default=u}])},472:(t,e,n)=>{var a={"./bar.svg":38,"./boxplot.svg":851,"./calendar.svg":496,"./candlestick.svg":173,"./custom.svg":353,"./dataZoom.svg":6,"./dataset.svg":238,"./drag.svg":642,"./funnel.svg":797,"./gauge.svg":822,"./geo.svg":317,"./gl.svg":926,"./graph.svg":769,"./heatmap.svg":781,"./line.svg":69,"./lines.svg":276,"./map.svg":831,"./parallel.svg":582,"./pictorialBar.svg":689,"./pie.svg":931,"./radar.svg":702,"./rich.svg":989,"./sankey.svg":827,"./scatter.svg":687,"./sunburst.svg":31,"./themeRiver.svg":951,"./tree.svg":929,"./treemap.svg":101};function i(t){var e=o(t);return n(e)}function o(t){if(!n.o(a,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return a[t]}i.keys=function(){return Object.keys(a)},i.resolve=o,t.exports=i,i.id=472}},e={};function n(a){if(e[a])return e[a].exports;var i=e[a]={id:a,loaded:!1,exports:{}};return t[a].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}return n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var a in e)n.o(e,a)&&!n.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),n.p="./",n(403)})();
\ No newline at end of file
+var echartsExample;echartsExample=(()=>{var t={913:(t,e,n)=>{t=n.nmd(t);var a={grid:"GridComponent",polar:"PolarComponent",geo:"GeoComponent",singleAxis:"SingleAxisComponent",parallel:"ParallelComponent",calendar:"CalendarComponent",graphic:"GraphicComponent",toolbox:"ToolboxComponent",tooltip:"TooltipComponent",axisPointer:"AxisPointerComponent",brush:"BrushComponent",title:"TitleComponent",timeline:"TimelineComponent",markPoint:"MarkPointComponent",markLine:"MarkLineComponent",markArea:"MarkAreaComponent",legend:"LegendComponent",dataZoom:"DataZoomComponent",visualMap:"VisualMapComponent",aria:"AriaComponent",dataset:"DatasetComponent",xAxis:"GridComponent",yAxis:"GridComponent",angleAxis:"PolarComponent",radiusAxis:"PolarComponent"},i={line:"LineChart",bar:"BarChart",pie:"PieChart",scatter:"ScatterChart",radar:"RadarChart",map:"MapChart",tree:"TreeChart",treemap:"TreemapChart",graph:"GraphChart",gauge:"GaugeChart",funnel:"FunnelChart",parallel:"ParallelChart",sankey:"SankeyChart",boxplot:"BoxplotChart",candlestick:"CandlestickChart",effectScatter:"EffectScatterChart",lines:"LinesChart",heatmap:"HeatmapChart",pictorialBar:"PictorialBarChart",themeRiver:"ThemeRiverChart",sunburst:"SunburstChart",custom:"CustomChart"},o={grid3D:"Grid3DComponent",geo3D:"Geo3DComponent",globe:"GlobeComponent",mapbox3D:"Mapbox3DComponent",maptalks3D:"Maptalks3DComponent",xAxis3D:"Grid3DComponent",yAxis3D:"Grid3DComponent",zAxis3D:"Grid3DComponent"},r={bar3D:"Bar3DChart",line3D:"Line3DChart",scatter3D:"Scatter3DChart",lines3D:"Lines3DChart",polygons3D:"Polygons3DChart",surface:"SurfaceChart",map3D:"Map3DChart",scatterGL:"ScatterGLChart",graphGL:"GraphGLChart",flowGL:"FlowGLChart",linesGL:"LinesGLChart"},l={},s={},c={},u={},d={SVGRenderer:"svg",CanvasRenderer:"canvas"},p=["markLine","markArea","markPoint"],f=[].concat(p,["grid","axisPointer","aria"]),g=["xAxis","yAxis","angleAxis","radiusAxis","xAxis3D","yAxis3D","zAxis3D"];function m(t,e){Object.keys(t).forEach((function(n){g.includes(n)||(e[t[n]]=n)}))}function h(t,e){var n=[],a=[],i=[],o=[],r=[];t.forEach((function(t){t.endsWith("Renderer")?r.push(t):s[t]?(n.push(t),e&&n.push(t.replace(/Chart$/,"SeriesOption"))):l[t]?(a.push(t),e&&a.push(t.replace(/Component$/,"ComponentOption"))):c[t]?i.push(t):u[t]&&o.push(t)}));var d=[].concat(a,n,o,i,r),p="\ntype ECOption = echarts.ComposeOption<\n    ".concat(d.filter((function(t){return t.endsWith("Option")})).join(" | "),"\n>"),f=[[a,"echarts/components"],[n,"echarts/charts"],[r,"echarts/renderers"],[i,"echarts-gl/charts"],[o,"echarts-gl/components"]].filter((function(t){return t[0].length>0})).map((function(t){return"\nimport {".concat((e=t[0],"".concat(e.map((function(t){return"\n    ".concat(t)})).join(","))),"\n} from '").concat(t[1],"';\n    ").trim();var e})).join("\n");return"import * as echarts from 'echarts/core';\n".concat(f,"\n\necharts.use(\n    [").concat(d.filter((function(t){return!t.endsWith("Option")})).join(", "),"]\n);\n")+(e?p:"")}function C(t,e){var n=[];return t.forEach((function(t){t.endsWith("Renderer")&&"CanvasRenderer"!==t?n.push("zrender/lib/".concat(d[t],"/").concat(d[t])):s[t]?n.push("echarts/lib/chart/".concat(s[t])):l[t]?n.push("echarts/lib/component/".concat(l[t])):c[t]?n.push("echarts-gl/lib/chart/".concat(c[t])):u[t]&&n.push("echarts-gl/lib/component/".concat(u[t]))})),e?"import * as echarts from 'echarts/lib/echarts';\n".concat(n.map((function(t){return"import '".concat(t,"';")})).join("\n"),"\n"):"const echarts = require('echarts/lib/echarts');\n".concat(n.map((function(t){return"require('".concat(t,"');")})).join("\n"),"\n")}function y(t){return!!t.find((function(t){return!(!c[t]&&!u[t])}))}m(a,l),m(i,s),m(o,u),m(r,c),t.exports.collectDeps=function t(e){var n=[];if(e.options)return e.options.forEach((function(e){n=n.concat(t(e))})),e.baseOption&&(n=n.concat(t(e.baseOption))),Array.from(new Set(n));Object.keys(e).forEach((function(t){if(!f.includes(t)){var i=e[t];Array.isArray(i)&&!i.length||(a[t]&&n.push(a[t]),o[t]&&n.push(o[t]))}}));var l=e.series;return Array.isArray(l)||(l=[l]),l.forEach((function(t){i[t.type]&&n.push(i[t.type]),r[t.type]&&n.push(r[t.type]),"map"===t.type&&n.push(a.geo),p.forEach((function(e){t[e]&&n.push(a[e])}))})),Array.from(new Set(n))},t.exports.buildMinimalBundleCode=h,t.buildLegacyMinimalBundleCode=C,t.exports.buildExampleCode=function(t,e,n){var a=n.minimal,i=n.esm,o=void 0===i||i,r=n.legacy,l=n.ts,s=n.theme,c=n.ROOT_PATH,u=n.extraImports;l&&(o=!0),a&&!o&&(r=!0);var d=t.indexOf("ecStat")>=0,p=t.indexOf("ROOT_PATH")>=0,f=t.indexOf("app")>=0,g="\n".concat(d?o?"import ecStat from 'echarts-stat';":"var ecStat = require('echarts-stat');":"","\n"),m=[a?r?C(e,o):h(e,l):o?"import * as echarts from 'echarts';".concat(y(e)?"\nimport 'echarts-gl';":""):"var echarts = require('echarts');".concat(y(e)?"\nrequire('echarts-gl');":""),s&&"dark"!==s?o?"import 'echarts/theme/".concat(s,"'"):"require('echarts/theme/".concat(s,"')"):"",u].filter((function(t){return!!t})).join("\n"),v=[p?"var ROOT_PATH = '".concat(c,"';"):"",f?"var app".concat(l?": any":""," = {};"):"",l&&!a?"type ECOption = echarts.EChartsOption":""].filter((function(t){return!!t})).join("\n"),b=[m.trim(),g.trim(),v.trim()].filter((function(t){return!!t})).join("\n\n");return"".concat(b,"\n\nvar chartDom = document.getElementById('main')").concat(l?"!":"",";\nvar myChart = echarts.init(chartDom").concat(s?", '".concat(s,"'"):"",");\nvar option").concat(l?": ECOption":"",";\n\n").concat(t.trim(),"\n\noption && myChart.setOption(option);\n")}},403:(t,e,n)=>{"use strict";n.r(e),n.d(e,{init:()=>Sl});const a=Vue;var i=n.n(a),o=["style","currency","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","localeMatcher","formatMatcher","unit"];function r(t,e){"undefined"!=typeof console&&(console.warn("[vue-i18n] "+t),e&&console.warn(e.stack))}var l=Array.isArray;function s(t){return null!==t&&"object"==typeof t}function c(t){return"string"==typeof t}var u=Object.prototype.toString;function d(t){return"[object Object]"===u.call(t)}function p(t){return null==t}function f(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=null,a=null;return 1===t.length?s(t[0])||Array.isArray(t[0])?a=t[0]:"string"==typeof t[0]&&(n=t[0]):2===t.length&&("string"==typeof t[0]&&(n=t[0]),(s(t[1])||Array.isArray(t[1]))&&(a=t[1])),{locale:n,params:a}}function g(t){return JSON.parse(JSON.stringify(t))}function m(t,e){return!!~t.indexOf(e)}var h=Object.prototype.hasOwnProperty;function C(t,e){return h.call(t,e)}function y(t){for(var e=arguments,n=Object(t),a=1;a<arguments.length;a++){var i=e[a];if(null!=i){var o=void 0;for(o in i)C(i,o)&&(s(i[o])?n[o]=y(n[o],i[o]):n[o]=i[o])}}return n}function v(t,e){if(t===e)return!0;var n=s(t),a=s(e);if(!n||!a)return!n&&!a&&String(t)===String(e);try{var i=Array.isArray(t),o=Array.isArray(e);if(i&&o)return t.length===e.length&&t.every((function(t,n){return v(t,e[n])}));if(i||o)return!1;var r=Object.keys(t),l=Object.keys(e);return r.length===l.length&&r.every((function(n){return v(t[n],e[n])}))}catch(t){return!1}}var b={beforeCreate:function(){var t=this.$options;if(t.i18n=t.i18n||(t.__i18n?{}:null),t.i18n){if(t.i18n instanceof K){if(t.__i18n)try{var e={};t.__i18n.forEach((function(t){e=y(e,JSON.parse(t))})),Object.keys(e).forEach((function(n){t.i18n.mergeLocaleMessage(n,e[n])}))}catch(t){}this._i18n=t.i18n,this._i18nWatcher=this._i18n.watchI18nData()}else if(d(t.i18n)){var n=this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof K?this.$root.$i18n:null;if(n&&(t.i18n.root=this.$root,t.i18n.formatter=n.formatter,t.i18n.fallbackLocale=n.fallbackLocale,t.i18n.formatFallbackMessages=n.formatFallbackMessages,t.i18n.silentTranslationWarn=n.silentTranslationWarn,t.i18n.silentFallbackWarn=n.silentFallbackWarn,t.i18n.pluralizationRules=n.pluralizationRules,t.i18n.preserveDirectiveContent=n.preserveDirectiveContent),t.__i18n)try{var a={};t.__i18n.forEach((function(t){a=y(a,JSON.parse(t))})),t.i18n.messages=a}catch(t){}var i=t.i18n.sharedMessages;i&&d(i)&&(t.i18n.messages=y(t.i18n.messages,i)),this._i18n=new K(t.i18n),this._i18nWatcher=this._i18n.watchI18nData(),(void 0===t.i18n.sync||t.i18n.sync)&&(this._localeWatcher=this.$i18n.watchLocale()),n&&n.onComponentInstanceCreated(this._i18n)}}else this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof K?this._i18n=this.$root.$i18n:t.parent&&t.parent.$i18n&&t.parent.$i18n instanceof K&&(this._i18n=t.parent.$i18n)},beforeMount:function(){var t=this.$options;t.i18n=t.i18n||(t.__i18n?{}:null),t.i18n?(t.i18n instanceof K||d(t.i18n))&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0):(this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof K||t.parent&&t.parent.$i18n&&t.parent.$i18n instanceof K)&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0)},beforeDestroy:function(){if(this._i18n){var t=this;this.$nextTick((function(){t._subscribing&&(t._i18n.unsubscribeDataChanging(t),delete t._subscribing),t._i18nWatcher&&(t._i18nWatcher(),t._i18n.destroyVM(),delete t._i18nWatcher),t._localeWatcher&&(t._localeWatcher(),delete t._localeWatcher)}))}}},_={name:"i18n",functional:!0,props:{tag:{type:[String,Boolean,Object],default:"span"},path:{type:String,required:!0},locale:{type:String},places:{type:[Array,Object]}},render:function(t,e){var n=e.data,a=e.parent,i=e.props,o=e.slots,r=a.$i18n;if(r){var l=i.path,s=i.locale,c=i.places,u=o(),d=r.i(l,s,function(t){var e;for(e in t)if("default"!==e)return!1;return Boolean(e)}(u)||c?function(t,e){var n=e?function(t){return Array.isArray(t)?t.reduce(w,{}):Object.assign({},t)}(e):{};if(!t)return n;var a=(t=t.filter((function(t){return t.tag||""!==t.text.trim()}))).every(x);return t.reduce(a?L:w,n)}(u.default,c):u),p=i.tag&&!0!==i.tag||!1===i.tag?i.tag:"span";return p?t(p,n,d):d}}};function L(t,e){return e.data&&e.data.attrs&&e.data.attrs.place&&(t[e.data.attrs.place]=e),t}function w(t,e,n){return t[n]=e,t}function x(t){return Boolean(t.data&&t.data.attrs&&t.data.attrs.place)}var k,S={name:"i18n-n",functional:!0,props:{tag:{type:[String,Boolean,Object],default:"span"},value:{type:Number,required:!0},format:{type:[String,Object]},locale:{type:String}},render:function(t,e){var n=e.props,a=e.parent,i=e.data,r=a.$i18n;if(!r)return null;var l=null,u=null;c(n.format)?l=n.format:s(n.format)&&(n.format.key&&(l=n.format.key),u=Object.keys(n.format).reduce((function(t,e){var a;return m(o,e)?Object.assign({},t,((a={})[e]=n.format[e],a)):t}),null));var d=n.locale||r.locale,p=r._ntp(n.value,d,l,u),f=p.map((function(t,e){var n,a=i.scopedSlots&&i.scopedSlots[t.type];return a?a(((n={})[t.type]=t.value,n.index=e,n.parts=p,n)):t.value})),g=n.tag&&!0!==n.tag||!1===n.tag?n.tag:"span";return g?t(g,{attrs:i.attrs,class:i.class,staticClass:i.staticClass},f):f}};function N(t,e,n){O(0,n)&&D(t,e,n)}function M(t,e,n,a){if(O(0,n)){var i=n.context.$i18n;(function(t,e){var n=e.context;return t._locale===n.$i18n.locale})(t,n)&&v(e.value,e.oldValue)&&v(t._localeMessage,i.getLocaleMessage(i.locale))||D(t,e,n)}}function T(t,e,n,a){if(n.context){var i=n.context.$i18n||{};e.modifiers.preserve||i.preserveDirectiveContent||(t.textContent=""),t._vt=void 0,delete t._vt,t._locale=void 0,delete t._locale,t._localeMessage=void 0,delete t._localeMessage}else r("Vue instance does not exists in VNode context")}function O(t,e){var n=e.context;return n?!!n.$i18n||(r("VueI18n instance does not exists in Vue instance"),!1):(r("Vue instance does not exists in VNode context"),!1)}function D(t,e,n){var a,i,o=function(t){var e,n,a,i;return c(t)?e=t:d(t)&&(e=t.path,n=t.locale,a=t.args,i=t.choice),{path:e,locale:n,args:a,choice:i}}(e.value),l=o.path,s=o.locale,u=o.args,p=o.choice;if(l||s||u)if(l){var f=n.context;t._vt=t.textContent=null!=p?(a=f.$i18n).tc.apply(a,[l,p].concat(A(s,u))):(i=f.$i18n).t.apply(i,[l].concat(A(s,u))),t._locale=f.$i18n.locale,t._localeMessage=f.$i18n.getLocaleMessage(f.$i18n.locale)}else r("`path` is required in v-t directive");else r("value type not supported")}function A(t,e){var n=[];return t&&n.push(t),e&&(Array.isArray(e)||d(e))&&n.push(e),n}function E(t){E.installed=!0,(k=t).version&&Number(k.version.split(".")[0]),function(t){t.prototype.hasOwnProperty("$i18n")||Object.defineProperty(t.prototype,"$i18n",{get:function(){return this._i18n}}),t.prototype.$t=function(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];var a=this.$i18n;return a._t.apply(a,[t,a.locale,a._getMessages(),this].concat(e))},t.prototype.$tc=function(t,e){for(var n=[],a=arguments.length-2;a-- >0;)n[a]=arguments[a+2];var i=this.$i18n;return i._tc.apply(i,[t,i.locale,i._getMessages(),this,e].concat(n))},t.prototype.$te=function(t,e){var n=this.$i18n;return n._te(t,n.locale,n._getMessages(),e)},t.prototype.$d=function(t){for(var e,n=[],a=arguments.length-1;a-- >0;)n[a]=arguments[a+1];return(e=this.$i18n).d.apply(e,[t].concat(n))},t.prototype.$n=function(t){for(var e,n=[],a=arguments.length-1;a-- >0;)n[a]=arguments[a+1];return(e=this.$i18n).n.apply(e,[t].concat(n))}}(k),k.mixin(b),k.directive("t",{bind:N,update:M,unbind:T}),k.component(_.name,_),k.component(S.name,S),k.config.optionMergeStrategies.i18n=function(t,e){return void 0===e?t:e}}var P=function(){this._caches=Object.create(null)};P.prototype.interpolate=function(t,e){if(!e)return[t];var n=this._caches[t];return n||(n=function(t){for(var e=[],n=0,a="";n<t.length;){var i=t[n++];if("{"===i){a&&e.push({type:"text",value:a}),a="";var o="";for(i=t[n++];void 0!==i&&"}"!==i;)o+=i,i=t[n++];var r="}"===i,l=F.test(o)?"list":r&&R.test(o)?"named":"unknown";e.push({value:o,type:l})}else"%"===i?"{"!==t[n]&&(a+=i):a+=i}return a&&e.push({type:"text",value:a}),e}(t),this._caches[t]=n),function(t,e){var n=[],a=0,i=Array.isArray(e)?"list":s(e)?"named":"unknown";if("unknown"===i)return n;for(;a<t.length;){var o=t[a];switch(o.type){case"text":n.push(o.value);break;case"list":n.push(e[parseInt(o.value,10)]);break;case"named":"named"===i&&n.push(e[o.value])}a++}return n}(n,e)};var F=/^(?:\d)+/,R=/^(?:\w)+/,I=[];I[0]={ws:[0],ident:[3,0],"[":[4],eof:[7]},I[1]={ws:[1],".":[2],"[":[4],eof:[7]},I[2]={ws:[2],ident:[3,0],0:[3,0],number:[3,0]},I[3]={ident:[3,0],0:[3,0],number:[3,0],ws:[1,1],".":[2,1],"[":[4,1],eof:[7,1]},I[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],eof:8,else:[4,0]},I[5]={"'":[4,0],eof:8,else:[5,0]},I[6]={'"':[4,0],eof:8,else:[6,0]};var B=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function j(t){if(null==t)return"eof";switch(t.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return t;case 95:case 36:case 45:return"ident";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"ws"}return"ident"}var G=function(){this._cache=Object.create(null)};G.prototype.parsePath=function(t){var e=this._cache[t];return e||(e=function(t){var e,n,a,i,o,r,l,s=[],c=-1,u=0,d=0,p=[];function f(){var e=t[c+1];if(5===u&&"'"===e||6===u&&'"'===e)return c++,a="\\"+e,p[0](),!0}for(p[1]=function(){void 0!==n&&(s.push(n),n=void 0)},p[0]=function(){void 0===n?n=a:n+=a},p[2]=function(){p[0](),d++},p[3]=function(){if(d>0)d--,u=4,p[0]();else{if(d=0,void 0===n)return!1;if(!1===(n=function(t){var e,n=t.trim();return("0"!==t.charAt(0)||!isNaN(t))&&(e=n,B.test(e)?function(t){var e=t.charCodeAt(0);return e!==t.charCodeAt(t.length-1)||34!==e&&39!==e?t:t.slice(1,-1)}(n):"*"+n)}(n)))return!1;p[1]()}};null!==u;)if(c++,"\\"!==(e=t[c])||!f()){if(i=j(e),8===(o=(l=I[u])[i]||l.else||8))return;if(u=o[0],(r=p[o[1]])&&(a=void 0===(a=o[2])?e:a,!1===r()))return;if(7===u)return s}}(t))&&(this._cache[t]=e),e||[]},G.prototype.getPathValue=function(t,e){if(!s(t))return null;var n=this.parsePath(e);if(0===n.length)return null;for(var a=n.length,i=t,o=0;o<a;){var r=i[n[o]];if(void 0===r)return null;i=r,o++}return i};var z,U=/<\/?[\w\s="/.':;#-\/]+>/,Z=/(?:@(?:\.[a-z]+)?:(?:[\w\-_|.]+|\([\w\-_|.]+\)))/g,V=/^@(?:\.([a-z]+))?:/,W=/[()]/g,H={upper:function(t){return t.toLocaleUpperCase()},lower:function(t){return t.toLocaleLowerCase()},capitalize:function(t){return""+t.charAt(0).toLocaleUpperCase()+t.substr(1)}},q=new P,K=function(t){var e=this;void 0===t&&(t={}),!k&&"undefined"!=typeof window&&window.Vue&&E(window.Vue);var n=t.locale||"en-US",a=!1!==t.fallbackLocale&&(t.fallbackLocale||"en-US"),i=t.messages||{},o=t.dateTimeFormats||{},r=t.numberFormats||{};this._vm=null,this._formatter=t.formatter||q,this._modifiers=t.modifiers||{},this._missing=t.missing||null,this._root=t.root||null,this._sync=void 0===t.sync||!!t.sync,this._fallbackRoot=void 0===t.fallbackRoot||!!t.fallbackRoot,this._formatFallbackMessages=void 0!==t.formatFallbackMessages&&!!t.formatFallbackMessages,this._silentTranslationWarn=void 0!==t.silentTranslationWarn&&t.silentTranslationWarn,this._silentFallbackWarn=void 0!==t.silentFallbackWarn&&!!t.silentFallbackWarn,this._dateTimeFormatters={},this._numberFormatters={},this._path=new G,this._dataListeners=[],this._componentInstanceCreatedListener=t.componentInstanceCreatedListener||null,this._preserveDirectiveContent=void 0!==t.preserveDirectiveContent&&!!t.preserveDirectiveContent,this.pluralizationRules=t.pluralizationRules||{},this._warnHtmlInMessage=t.warnHtmlInMessage||"off",this._postTranslation=t.postTranslation||null,this.getChoiceIndex=function(t,n){var a,i,o=Object.getPrototypeOf(e);return o&&o.getChoiceIndex?o.getChoiceIndex.call(e,t,n):e.locale in e.pluralizationRules?e.pluralizationRules[e.locale].apply(e,[t,n]):(a=t,i=n,a=Math.abs(a),2===i?a?a>1?1:0:1:a?Math.min(a,2):0)},this._exist=function(t,n){return!(!t||!n||p(e._path.getPathValue(t,n))&&!t[n])},"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||Object.keys(i).forEach((function(t){e._checkLocaleMessage(t,e._warnHtmlInMessage,i[t])})),this._initVM({locale:n,fallbackLocale:a,messages:i,dateTimeFormats:o,numberFormats:r})},J={vm:{configurable:!0},messages:{configurable:!0},dateTimeFormats:{configurable:!0},numberFormats:{configurable:!0},availableLocales:{configurable:!0},locale:{configurable:!0},fallbackLocale:{configurable:!0},formatFallbackMessages:{configurable:!0},missing:{configurable:!0},formatter:{configurable:!0},silentTranslationWarn:{configurable:!0},silentFallbackWarn:{configurable:!0},preserveDirectiveContent:{configurable:!0},warnHtmlInMessage:{configurable:!0},postTranslation:{configurable:!0}};K.prototype._checkLocaleMessage=function(t,e,n){var a=function(t,e,n,i){if(d(n))Object.keys(n).forEach((function(o){var r=n[o];d(r)?(i.push(o),i.push("."),a(t,e,r,i),i.pop(),i.pop()):(i.push(o),a(t,e,r,i),i.pop())}));else if(Array.isArray(n))n.forEach((function(n,o){d(n)?(i.push("["+o+"]"),i.push("."),a(t,e,n,i),i.pop(),i.pop()):(i.push("["+o+"]"),a(t,e,n,i),i.pop())}));else if(c(n)&&U.test(n)){var o="Detected HTML in message '"+n+"' of keypath '"+i.join("")+"' at '"+e+"'. Consider component interpolation with '<i18n>' to avoid XSS. See https://bit.ly/2ZqJzkp";"warn"===t?r(o):"error"===t&&function(t,e){"undefined"!=typeof console&&console.error("[vue-i18n] "+t)}(o)}};a(e,t,n,[])},K.prototype._initVM=function(t){var e=k.config.silent;k.config.silent=!0,this._vm=new k({data:t}),k.config.silent=e},K.prototype.destroyVM=function(){this._vm.$destroy()},K.prototype.subscribeDataChanging=function(t){this._dataListeners.push(t)},K.prototype.unsubscribeDataChanging=function(t){!function(t,e){if(t.length){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}(this._dataListeners,t)},K.prototype.watchI18nData=function(){var t=this;return this._vm.$watch("$data",(function(){for(var e=t._dataListeners.length;e--;)k.nextTick((function(){t._dataListeners[e]&&t._dataListeners[e].$forceUpdate()}))}),{deep:!0})},K.prototype.watchLocale=function(){if(!this._sync||!this._root)return null;var t=this._vm;return this._root.$i18n.vm.$watch("locale",(function(e){t.$set(t,"locale",e),t.$forceUpdate()}),{immediate:!0})},K.prototype.onComponentInstanceCreated=function(t){this._componentInstanceCreatedListener&&this._componentInstanceCreatedListener(t,this)},J.vm.get=function(){return this._vm},J.messages.get=function(){return g(this._getMessages())},J.dateTimeFormats.get=function(){return g(this._getDateTimeFormats())},J.numberFormats.get=function(){return g(this._getNumberFormats())},J.availableLocales.get=function(){return Object.keys(this.messages).sort()},J.locale.get=function(){return this._vm.locale},J.locale.set=function(t){this._vm.$set(this._vm,"locale",t)},J.fallbackLocale.get=function(){return this._vm.fallbackLocale},J.fallbackLocale.set=function(t){this._localeChainCache={},this._vm.$set(this._vm,"fallbackLocale",t)},J.formatFallbackMessages.get=function(){return this._formatFallbackMessages},J.formatFallbackMessages.set=function(t){this._formatFallbackMessages=t},J.missing.get=function(){return this._missing},J.missing.set=function(t){this._missing=t},J.formatter.get=function(){return this._formatter},J.formatter.set=function(t){this._formatter=t},J.silentTranslationWarn.get=function(){return this._silentTranslationWarn},J.silentTranslationWarn.set=function(t){this._silentTranslationWarn=t},J.silentFallbackWarn.get=function(){return this._silentFallbackWarn},J.silentFallbackWarn.set=function(t){this._silentFallbackWarn=t},J.preserveDirectiveContent.get=function(){return this._preserveDirectiveContent},J.preserveDirectiveContent.set=function(t){this._preserveDirectiveContent=t},J.warnHtmlInMessage.get=function(){return this._warnHtmlInMessage},J.warnHtmlInMessage.set=function(t){var e=this,n=this._warnHtmlInMessage;if(this._warnHtmlInMessage=t,n!==t&&("warn"===t||"error"===t)){var a=this._getMessages();Object.keys(a).forEach((function(t){e._checkLocaleMessage(t,e._warnHtmlInMessage,a[t])}))}},J.postTranslation.get=function(){return this._postTranslation},J.postTranslation.set=function(t){this._postTranslation=t},K.prototype._getMessages=function(){return this._vm.messages},K.prototype._getDateTimeFormats=function(){return this._vm.dateTimeFormats},K.prototype._getNumberFormats=function(){return this._vm.numberFormats},K.prototype._warnDefault=function(t,e,n,a,i,o){if(!p(n))return n;if(this._missing){var r=this._missing.apply(null,[t,e,a,i]);if(c(r))return r}if(this._formatFallbackMessages){var l=f.apply(void 0,i);return this._render(e,o,l.params,e)}return e},K.prototype._isFallbackRoot=function(t){return!t&&!p(this._root)&&this._fallbackRoot},K.prototype._isSilentFallbackWarn=function(t){return this._silentFallbackWarn instanceof RegExp?this._silentFallbackWarn.test(t):this._silentFallbackWarn},K.prototype._isSilentFallback=function(t,e){return this._isSilentFallbackWarn(e)&&(this._isFallbackRoot()||t!==this.fallbackLocale)},K.prototype._isSilentTranslationWarn=function(t){return this._silentTranslationWarn instanceof RegExp?this._silentTranslationWarn.test(t):this._silentTranslationWarn},K.prototype._interpolate=function(t,e,n,a,i,o,r){if(!e)return null;var l,s=this._path.getPathValue(e,n);if(Array.isArray(s)||d(s))return s;if(p(s)){if(!d(e))return null;if(!c(l=e[n]))return null}else{if(!c(s))return null;l=s}return(l.indexOf("@:")>=0||l.indexOf("@.")>=0)&&(l=this._link(t,e,l,a,"raw",o,r)),this._render(l,i,o,n)},K.prototype._link=function(t,e,n,a,i,o,r){var l=n,s=l.match(Z);for(var c in s)if(s.hasOwnProperty(c)){var u=s[c],d=u.match(V),p=d[0],f=d[1],g=u.replace(p,"").replace(W,"");if(m(r,g))return l;r.push(g);var h=this._interpolate(t,e,g,a,"raw"===i?"string":i,"raw"===i?void 0:o,r);if(this._isFallbackRoot(h)){if(!this._root)throw Error("unexpected error");var C=this._root.$i18n;h=C._translate(C._getMessages(),C.locale,C.fallbackLocale,g,a,i,o)}h=this._warnDefault(t,g,h,a,Array.isArray(o)?o:[o],i),this._modifiers.hasOwnProperty(f)?h=this._modifiers[f](h):H.hasOwnProperty(f)&&(h=H[f](h)),r.pop(),l=h?l.replace(u,h):l}return l},K.prototype._render=function(t,e,n,a){var i=this._formatter.interpolate(t,n,a);return i||(i=q.interpolate(t,n,a)),"string"!==e||c(i)?i:i.join("")},K.prototype._appendItemToChain=function(t,e,n){var a=!1;return m(t,e)||(a=!0,e&&(a="!"!==e[e.length-1],e=e.replace(/!/g,""),t.push(e),n&&n[e]&&(a=n[e]))),a},K.prototype._appendLocaleToChain=function(t,e,n){var a,i=e.split("-");do{var o=i.join("-");a=this._appendItemToChain(t,o,n),i.splice(-1,1)}while(i.length&&!0===a);return a},K.prototype._appendBlockToChain=function(t,e,n){for(var a=!0,i=0;i<e.length&&"boolean"==typeof a;i++){var o=e[i];c(o)&&(a=this._appendLocaleToChain(t,o,n))}return a},K.prototype._getLocaleChain=function(t,e){if(""===t)return[];this._localeChainCache||(this._localeChainCache={});var n=this._localeChainCache[t];if(!n){e||(e=this.fallbackLocale),n=[];for(var a,i=[t];l(i);)i=this._appendBlockToChain(n,i,e);(i=c(a=l(e)?e:s(e)?e.default?e.default:null:e)?[a]:a)&&this._appendBlockToChain(n,i,null),this._localeChainCache[t]=n}return n},K.prototype._translate=function(t,e,n,a,i,o,r){for(var l,s=this._getLocaleChain(e,n),c=0;c<s.length;c++){var u=s[c];if(!p(l=this._interpolate(u,t[u],a,i,o,r,[a])))return l}return null},K.prototype._t=function(t,e,n,a){for(var i,o=[],r=arguments.length-4;r-- >0;)o[r]=arguments[r+4];if(!t)return"";var l=f.apply(void 0,o),s=l.locale||e,c=this._translate(n,s,this.fallbackLocale,t,a,"string",l.params);if(this._isFallbackRoot(c)){if(!this._root)throw Error("unexpected error");return(i=this._root).$t.apply(i,[t].concat(o))}return c=this._warnDefault(s,t,c,a,o,"string"),this._postTranslation&&null!=c&&(c=this._postTranslation(c,t)),c},K.prototype.t=function(t){for(var e,n=[],a=arguments.length-1;a-- >0;)n[a]=arguments[a+1];return(e=this)._t.apply(e,[t,this.locale,this._getMessages(),null].concat(n))},K.prototype._i=function(t,e,n,a,i){var o=this._translate(n,e,this.fallbackLocale,t,a,"raw",i);if(this._isFallbackRoot(o)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.i(t,e,i)}return this._warnDefault(e,t,o,a,[i],"raw")},K.prototype.i=function(t,e,n){return t?(c(e)||(e=this.locale),this._i(t,e,this._getMessages(),null,n)):""},K.prototype._tc=function(t,e,n,a,i){for(var o,r=[],l=arguments.length-5;l-- >0;)r[l]=arguments[l+5];if(!t)return"";void 0===i&&(i=1);var s={count:i,n:i},c=f.apply(void 0,r);return c.params=Object.assign(s,c.params),r=null===c.locale?[c.params]:[c.locale,c.params],this.fetchChoice((o=this)._t.apply(o,[t,e,n,a].concat(r)),i)},K.prototype.fetchChoice=function(t,e){if(!t&&!c(t))return null;var n=t.split("|");return n[e=this.getChoiceIndex(e,n.length)]?n[e].trim():t},K.prototype.tc=function(t,e){for(var n,a=[],i=arguments.length-2;i-- >0;)a[i]=arguments[i+2];return(n=this)._tc.apply(n,[t,this.locale,this._getMessages(),null,e].concat(a))},K.prototype._te=function(t,e,n){for(var a=[],i=arguments.length-3;i-- >0;)a[i]=arguments[i+3];var o=f.apply(void 0,a).locale||e;return this._exist(n[o],t)},K.prototype.te=function(t,e){return this._te(t,this.locale,this._getMessages(),e)},K.prototype.getLocaleMessage=function(t){return g(this._vm.messages[t]||{})},K.prototype.setLocaleMessage=function(t,e){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(t,this._warnHtmlInMessage,e),this._vm.$set(this._vm.messages,t,e)},K.prototype.mergeLocaleMessage=function(t,e){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(t,this._warnHtmlInMessage,e),this._vm.$set(this._vm.messages,t,y({},this._vm.messages[t]||{},e))},K.prototype.getDateTimeFormat=function(t){return g(this._vm.dateTimeFormats[t]||{})},K.prototype.setDateTimeFormat=function(t,e){this._vm.$set(this._vm.dateTimeFormats,t,e),this._clearDateTimeFormat(t,e)},K.prototype.mergeDateTimeFormat=function(t,e){this._vm.$set(this._vm.dateTimeFormats,t,y(this._vm.dateTimeFormats[t]||{},e)),this._clearDateTimeFormat(t,e)},K.prototype._clearDateTimeFormat=function(t,e){for(var n in e){var a=t+"__"+n;this._dateTimeFormatters.hasOwnProperty(a)&&delete this._dateTimeFormatters[a]}},K.prototype._localizeDateTime=function(t,e,n,a,i){for(var o=e,r=a[o],l=this._getLocaleChain(e,n),s=0;s<l.length;s++){var c=l[s];if(o=c,!p(r=a[c])&&!p(r[i]))break}if(p(r)||p(r[i]))return null;var u=r[i],d=o+"__"+i,f=this._dateTimeFormatters[d];return f||(f=this._dateTimeFormatters[d]=new Intl.DateTimeFormat(o,u)),f.format(t)},K.prototype._d=function(t,e,n){if(!n)return new Intl.DateTimeFormat(e).format(t);var a=this._localizeDateTime(t,e,this.fallbackLocale,this._getDateTimeFormats(),n);if(this._isFallbackRoot(a)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.d(t,n,e)}return a||""},K.prototype.d=function(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];var a=this.locale,i=null;return 1===e.length?c(e[0])?i=e[0]:s(e[0])&&(e[0].locale&&(a=e[0].locale),e[0].key&&(i=e[0].key)):2===e.length&&(c(e[0])&&(i=e[0]),c(e[1])&&(a=e[1])),this._d(t,a,i)},K.prototype.getNumberFormat=function(t){return g(this._vm.numberFormats[t]||{})},K.prototype.setNumberFormat=function(t,e){this._vm.$set(this._vm.numberFormats,t,e),this._clearNumberFormat(t,e)},K.prototype.mergeNumberFormat=function(t,e){this._vm.$set(this._vm.numberFormats,t,y(this._vm.numberFormats[t]||{},e)),this._clearNumberFormat(t,e)},K.prototype._clearNumberFormat=function(t,e){for(var n in e){var a=t+"__"+n;this._numberFormatters.hasOwnProperty(a)&&delete this._numberFormatters[a]}},K.prototype._getNumberFormatter=function(t,e,n,a,i,o){for(var r=e,l=a[r],s=this._getLocaleChain(e,n),c=0;c<s.length;c++){var u=s[c];if(r=u,!p(l=a[u])&&!p(l[i]))break}if(p(l)||p(l[i]))return null;var d,f=l[i];if(o)d=new Intl.NumberFormat(r,Object.assign({},f,o));else{var g=r+"__"+i;(d=this._numberFormatters[g])||(d=this._numberFormatters[g]=new Intl.NumberFormat(r,f))}return d},K.prototype._n=function(t,e,n,a){if(!K.availabilities.numberFormat)return"";if(!n)return(a?new Intl.NumberFormat(e,a):new Intl.NumberFormat(e)).format(t);var i=this._getNumberFormatter(t,e,this.fallbackLocale,this._getNumberFormats(),n,a),o=i&&i.format(t);if(this._isFallbackRoot(o)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.n(t,Object.assign({},{key:n,locale:e},a))}return o||""},K.prototype.n=function(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];var a=this.locale,i=null,r=null;return 1===e.length?c(e[0])?i=e[0]:s(e[0])&&(e[0].locale&&(a=e[0].locale),e[0].key&&(i=e[0].key),r=Object.keys(e[0]).reduce((function(t,n){var a;return m(o,n)?Object.assign({},t,((a={})[n]=e[0][n],a)):t}),null)):2===e.length&&(c(e[0])&&(i=e[0]),c(e[1])&&(a=e[1])),this._n(t,a,i,r)},K.prototype._ntp=function(t,e,n,a){if(!K.availabilities.numberFormat)return[];if(!n)return(a?new Intl.NumberFormat(e,a):new Intl.NumberFormat(e)).formatToParts(t);var i=this._getNumberFormatter(t,e,this.fallbackLocale,this._getNumberFormats(),n,a),o=i&&i.formatToParts(t);if(this._isFallbackRoot(o)){if(!this._root)throw Error("unexpected error");return this._root.$i18n._ntp(t,e,n,a)}return o||[]},Object.defineProperties(K.prototype,J),Object.defineProperty(K,"availabilities",{get:function(){if(!z){var t="undefined"!=typeof Intl;z={dateTimeFormat:t&&void 0!==Intl.DateTimeFormat,numberFormat:t&&void 0!==Intl.NumberFormat}}return z}}),K.install=E,K.version="8.20.0";const X=K,Y={en:{editor:{run:"Run",errorInEditor:"Errors exist in code!",chartOK:"Chart has been generated successfully, ",darkMode:"Dark Mode",enableDecal:"Decal Pattern",renderCfgTitle:"Render",renderer:"Renderer",useDirtyRect:"Use Dirty Rect",download:"Download",edit:"Edit",monacoMode:"Enable Type Checking",tabEditor:"Edit Example",tabFullCodePreview:"Full Code",tabOptionPreview:"Option Preview",minimalBundle:"Minimal Bundle"},chartTypes:{line:"Line",bar:"Bar",pie:"Pie",scatter:"Scatter",map:"GEO/Map",candlestick:"Candlestick",radar:"Radar",boxplot:"Boxplot",heatmap:"Heatmap",graph:"Graph",lines:"Lines",tree:"Tree",treemap:"Treemap",sunburst:"Sunburst",parallel:"Parallel",sankey:"Sankey",funnel:"Funnel",gauge:"Gauge",pictorialBar:"PictorialBar",themeRiver:"ThemeRiver",calendar:"Calendar",custom:"Custom",dataset:"Dataset",dataZoom:"DataZoom",drag:"Drag",rich:"Rich Text",globe:"3D Globe",bar3D:"3D Bar",scatter3D:"3D Scatter",surface:"3D Surface",map3D:"3D Map",lines3D:"3D Lines",line3D:"3D Line",scatterGL:"Scatter GL",linesGL:"Lines GL",flowGL:"Flow GL",graphGL:"Graph GL"}},zh:{editor:{run:"运行",errorInEditor:"编辑器内容有误!",chartOK:"图表已生成, ",darkMode:"深色模式",enableDecal:"无障碍花纹",renderCfgTitle:"渲染设置",useDirtyRect:"开启脏矩形优化",renderer:"渲染模式",download:"下载示例",edit:"编辑",monacoMode:"开启类型检查",tabEditor:"示例编辑",tabFullCodePreview:"完整代码",tabOptionPreview:"配置项",minimalBundle:"按需引入"},chartTypes:{line:"折线图",bar:"柱状图",pie:"饼图",scatter:"散点图",map:"地理坐标/地图",candlestick:"K 线图",radar:"雷达图",boxplot:"盒须图",heatmap:"热力图",graph:"关系图",lines:"路径图",tree:"树图",treemap:"矩形树图",sunburst:"旭日图",parallel:"平行坐标系",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘",pictorialBar:"象形柱图",themeRiver:"主题河流图",calendar:"日历坐标系",custom:"自定义系列",dataset:"数据集",dataZoom:"数据区域缩放",drag:"拖拽",rich:"富文本",globe:"3D 地球",bar3D:"3D 柱状图",scatter3D:"3D 散点图",surface:"3D 曲面",map3D:"3D 地图",lines3D:"3D 路径图",line3D:"3D 折线图",scatterGL:"GL 散点图",linesGL:"GL 路径图",flowGL:"GL 矢量场图",graphGL:"GL 关系图"}}};var Q=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"main-container"}},[t.shared.isMobile?t._e():n("div",{style:{width:t.leftContainerSize+"%"},attrs:{id:"editor-left-container"}},[n("el-tabs",{attrs:{type:"border-card"},model:{value:t.currentTab,callback:function(e){t.currentTab=e},expression:"currentTab"}},[n("el-tab-pane",{attrs:{label:t.$t("editor.tabEditor"),name:"code-editor"}},[n("el-container",[n("el-header",{attrs:{id:"editor-control-panel"}},[n("div",{attrs:{id:"code-info"}},[t.shared.editorStatus.message?[n("span",{staticClass:"code-info-time"},[t._v(t._s(t.currentTime))]),t._v(" "),n("span",{class:"code-info-type-"+t.shared.editorStatus.type},[t._v(t._s(t.shared.editorStatus.message))])]:t._e()],2),t._v(" "),n("div",{staticClass:"editor-controls"},[n("a",{staticClass:"btn btn-default btn-sm",attrs:{href:"javascript:;"},on:{click:t.disposeAndRun}},[t._v(t._s(t.$t("editor.run")))])])]),t._v(" "),n("el-main",[t.shared.typeCheck?n("CodeMonaco",{attrs:{id:"code-panel",initialCode:t.initialCode}}):n("CodeAce",{attrs:{id:"code-panel",initialCode:t.initialCode}})],1)],1)],1),t._v(" "),n("el-tab-pane",{attrs:{label:t.$t("editor.tabFullCodePreview"),name:"full-code",lazy:!0}},[n("el-container",{staticStyle:{width:"100%",height:"100%"}},[n("el-header",{attrs:{id:"full-code-generate-config"}},[n("span",{staticClass:"full-code-generate-config-label"}),t._v(" "),n("el-switch",{staticClass:"enable-decal",attrs:{"active-text":t.$t("editor.minimalBundle"),"inactive-text":""},model:{value:t.fullCodeConfig.minimal,callback:function(e){t.$set(t.fullCodeConfig,"minimal",e)},expression:"fullCodeConfig.minimal"}}),t._v(" "),n("el-switch",{staticClass:"enable-decal",attrs:{"active-text":"ES Modules","inactive-text":""},model:{value:t.fullCodeConfig.esm,callback:function(e){t.$set(t.fullCodeConfig,"esm",e)},expression:"fullCodeConfig.esm"}})],1),t._v(" "),n("el-main",[n("FullCodePreview",{attrs:{code:t.fullCode}})],1)],1)],1),t._v(" "),n("el-tab-pane",{attrs:{label:t.$t("editor.tabOptionPreview"),name:"full-option"}},[n("div",{attrs:{id:"option-outline"}})])],1)],1),t._v(" "),t.shared.isMobile?t._e():n("div",{staticClass:"handler",style:{left:t.leftContainerSize+"%"},attrs:{id:"h-handler"},on:{mousedown:t.onSplitterDragStart}}),t._v(" "),n("Preview",{ref:"preview",staticClass:"right-container",style:{width:100-t.leftContainerSize+"%",left:t.leftContainerSize+"%"},attrs:{inEditor:!0}})],1)};Q._withStripped=!0;var tt=function(){var t=this,e=t.$createElement;return(t._self._c||e)("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"ace-editor-main"})};tt._withStripped=!0;var et=[{name:"color",count:1835},{name:"shadowColor",count:1770},{name:"shadowBlur",count:1770},{name:"shadowOffsetX",count:1770},{name:"shadowOffsetY",count:1770},{name:"borderColor",count:1451},{name:"borderWidth",count:1450},{name:"width",count:1411},{name:"borderType",count:1385},{name:"borderDashOffset",count:1373},{name:"height",count:1120},{name:"backgroundColor",count:1111},{name:"fontSize",count:1098},{name:"fontStyle",count:1081},{name:"fontWeight",count:1081},{name:"fontFamily",count:1081},{name:"lineHeight",count:1081},{name:"textBorderColor",count:1081},{name:"textBorderWidth",count:1081},{name:"textBorderType",count:1081},{name:"textBorderDashOffset",count:1081},{name:"textShadowColor",count:1081},{name:"textShadowBlur",count:1081},{name:"textShadowOffsetX",count:1081},{name:"textShadowOffsetY",count:1081},{name:"padding",count:1079},{name:"borderRadius",count:1051},{name:"align",count:916},{name:"verticalAlign",count:913},{name:"opacity",count:692},{name:"show",count:664},{name:"overflow",count:567},{name:"ellipsis",count:567},{name:"lineOverflow",count:567},{name:"position",count:528},{name:"rich",count:514},{name:"<style_name>",count:514},{name:"distance",count:472},{name:"label",count:468},{name:"type",count:389},{name:"rotate",count:365},{name:"offset",count:357},{name:"itemStyle",count:356},{name:"borderCap",count:347},{name:"borderJoin",count:347},{name:"borderMiterLimit",count:347},{name:"formatter",count:331},{name:"lineStyle",count:298},{name:"dashOffset",count:278},{name:"cap",count:278},{name:"join",count:278},{name:"miterLimit",count:278},{name:"emphasis",count:175},{name:"blur",count:143},{name:"name",count:133},{name:"curveness",count:124},{name:"symbol",count:119},{name:"symbolSize",count:119},{name:"x",count:115},{name:"y",count:115},{name:"value",count:101},{name:"symbolKeepAspect",count:94},{name:"silent",count:93},{name:"labelLine",count:81},{name:"rotation",count:78},{name:"symbolOffset",count:75},{name:"id",count:71},{name:"data",count:71},{name:"symbolRotate",count:67},{name:"animationDuration",count:66},{name:"animationEasing",count:66},{name:"animationDelay",count:65},{name:"z",count:64},{name:"animation",count:64},{name:"animationDurationUpdate",count:63},{name:"animationThreshold",count:62},{name:"animationEasingUpdate",count:62},{name:"animationDelayUpdate",count:62},{name:"style",count:60},{name:"select",count:56},{name:"textStyle",count:54},{name:"zlevel",count:52},{name:"transition",count:48},{name:"focus",count:41},{name:"blurScope",count:41},{name:"coord",count:41},{name:"tooltip",count:40},{name:"inside",count:40},{name:"valueIndex",count:40},{name:"valueDim",count:40},{name:"extraCssText",count:38},{name:"interval",count:34},{name:"left",count:33},{name:"top",count:33},{name:"right",count:33},{name:"bottom",count:33},{name:"draggable",count:31},{name:"decal",count:28},{name:"dashArrayX",count:28},{name:"dashArrayY",count:28},{name:"maxTileWidth",count:28},{name:"maxTileHeight",count:28},{name:"margin",count:27},{name:"xAxis",count:27},{name:"yAxis",count:27},{name:"origin",count:26},{name:"0",count:26},{name:"1",count:26},{name:"precision",count:25},{name:"scaleX",count:25},{name:"scaleY",count:25},{name:"originX",count:25},{name:"originY",count:25},{name:"info",count:25},{name:"invisible",count:25},{name:"ignore",count:25},{name:"textContent",count:25},{name:"textConfig",count:25},{name:"layoutRect",count:25},{name:"local",count:25},{name:"insideFill",count:25},{name:"insideStroke",count:25},{name:"outsideFill",count:25},{name:"outsideStroke",count:25},{name:"smooth",count:24},{name:"selectedMode",count:23},{name:"fill",count:23},{name:"stroke",count:23},{name:"lineWidth",count:23},{name:"length",count:21},{name:"areaStyle",count:20},{name:"shape",count:20},{name:"cursor",count:19},{name:"showAbove",count:19},{name:"splitNumber",count:18},{name:"progressive",count:18},{name:"length2",count:18},{name:"minTurnAngle",count:18},{name:"labelLayout",count:18},{name:"hideOverlap",count:17},{name:"moveOverlap",count:17},{name:"dx",count:17},{name:"dy",count:17},{name:"labelLinePoints",count:17},{name:"icon",count:16},{name:"xAxisIndex",count:15},{name:"yAxisIndex",count:15},{name:"min",count:14},{name:"max",count:14},{name:"scale",count:14},{name:"coordinateSystem",count:13},{name:"markPoint",count:13},{name:"markLine",count:13},{name:"markArea",count:13},{name:"z2",count:13},{name:"during",count:13},{name:"extra",count:13},{name:"orient",count:12},{name:"iconStyle",count:12},{name:"areaColor",count:12},{name:"$action",count:12},{name:"bounding",count:12},{name:"onclick",count:12},{name:"onmouseover",count:12},{name:"onmouseout",count:12},{name:"onmousemove",count:12},{name:"onmousewheel",count:12},{name:"onmousedown",count:12},{name:"onmouseup",count:12},{name:"ondrag",count:12},{name:"ondragstart",count:12},{name:"ondragend",count:12},{name:"ondragenter",count:12},{name:"ondragleave",count:12},{name:"ondragover",count:12},{name:"ondrop",count:12},{name:"legendHoverLink",count:12},{name:"upperLabel",count:12},{name:"dimensions",count:11},{name:"axisPointer",count:10},{name:"snap",count:10},{name:"shadowStyle",count:10},{name:"r",count:10},{name:"encode",count:10},{name:"minAngle",count:10},{name:"morph",count:10},{name:"title",count:9},{name:"textAlign",count:9},{name:"triggerEvent",count:9},{name:"inverse",count:9},{name:"axisLine",count:9},{name:"axisTick",count:9},{name:"axisLabel",count:9},{name:"boundaryGap",count:8},{name:"showMinLabel",count:8},{name:"showMaxLabel",count:8},{name:"splitLine",count:8},{name:"size",count:8},{name:"throttle",count:8},{name:"center",count:8},{name:"startAngle",count:8},{name:"geoIndex",count:8},{name:"cx",count:8},{name:"cy",count:8},{name:"seriesLayoutBy",count:8},{name:"datasetIndex",count:8},{name:"color0",count:8},{name:"borderColor0",count:8},{name:"nameGap",count:7},{name:"minInterval",count:7},{name:"maxInterval",count:7},{name:"logBase",count:7},{name:"alignWithLabel",count:7},{name:"minorTick",count:7},{name:"polarIndex",count:7},{name:"clockwise",count:7},{name:"clip",count:7},{name:"text",count:6},{name:"nameLocation",count:6},{name:"nameTextStyle",count:6},{name:"nameRotate",count:6},{name:"splitArea",count:6},{name:"triggerTooltip",count:6},{name:"status",count:6},{name:"handle",count:6},{name:"textPosition",count:6},{name:"textFill",count:6},{name:"textBackgroundColor",count:6},{name:"textBorderRadius",count:6},{name:"textPadding",count:6},{name:"line",count:6},{name:"layout",count:6},{name:"r0",count:6},{name:"progressiveThreshold",count:6},{name:"colorAlpha",count:6},{name:"colorSaturation",count:6},{name:"offsetCenter",count:6},{name:"target",count:5},{name:"itemGap",count:5},{name:"minorSplitLine",count:5},{name:"radius",count:5},{name:"realtime",count:5},{name:"zoom",count:5},{name:"bar",count:5},{name:"stack",count:5},{name:"roam",count:5},{name:"endAngle",count:5},{name:"valueAnimation",count:5},{name:"calendarIndex",count:5},{name:"link",count:4},{name:"selected",count:4},{name:"trigger",count:4},{name:"axis",count:4},{name:"crossStyle",count:4},{name:"end",count:4},{name:"seriesIndex",count:4},{name:"inRange",count:4},{name:"outOfRange",count:4},{name:"nameMap",count:4},{name:"points",count:4},{name:"smoothConstraint",count:4},{name:"x1",count:4},{name:"y1",count:4},{name:"x2",count:4},{name:"y2",count:4},{name:"percent",count:4},{name:"endLabel",count:4},{name:"large",count:4},{name:"largeThreshold",count:4},{name:"hoverAnimation",count:4},{name:"edgeLabel",count:4},{name:"textVerticalAlign",count:3},{name:"itemWidth",count:3},{name:"itemHeight",count:3},{name:"filterMode",count:3},{name:"handleStyle",count:3},{name:"brushStyle",count:3},{name:"rect",count:3},{name:"polygon",count:3},{name:"map",count:3},{name:"children",count:3},{name:"image",count:3},{name:"font",count:3},{name:"source",count:3},{name:"config",count:3},{name:"print",count:3},{name:"sort",count:3},{name:"withName",count:3},{name:"withoutName",count:3},{name:"roundCap",count:3},{name:"barWidth",count:3},{name:"barMaxWidth",count:3},{name:"barMinWidth",count:3},{name:"progressiveChunkMode",count:3},{name:"visualDimension",count:3},{name:"visualMin",count:3},{name:"visualMax",count:3},{name:"colorMappingBy",count:3},{name:"visibleMin",count:3},{name:"childrenVisibleMin",count:3},{name:"gapWidth",count:3},{name:"borderColorSaturation",count:3},{name:"levels",count:3},{name:"selectorLabel",count:2},{name:"gridIndex",count:2},{name:"realtimeSort",count:2},{name:"sortSeriesIndex",count:2},{name:"onZero",count:2},{name:"onZeroAxisIndex",count:2},{name:"radar",count:2},{name:"dataZoom",count:2},{name:"radiusAxisIndex",count:2},{name:"angleAxisIndex",count:2},{name:"start",count:2},{name:"startValue",count:2},{name:"endValue",count:2},{name:"minSpan",count:2},{name:"maxSpan",count:2},{name:"minValueSpan",count:2},{name:"maxValueSpan",count:2},{name:"zoomLock",count:2},{name:"rangeMode",count:2},{name:"handleIcon",count:2},{name:"handleSize",count:2},{name:"moveHandleStyle",count:2},{name:"range",count:2},{name:"textGap",count:2},{name:"dimension",count:2},{name:"hoverLink",count:2},{name:"controller",count:2},{name:"categories",count:2},{name:"triggerOn",count:2},{name:"toolbox",count:2},{name:"itemSize",count:2},{name:"back",count:2},{name:"option",count:2},{name:"brush",count:2},{name:"lineX",count:2},{name:"lineY",count:2},{name:"keep",count:2},{name:"clear",count:2},{name:"brushType",count:2},{name:"aspectScale",count:2},{name:"boundingCoords",count:2},{name:"scaleLimit",count:2},{name:"nameProperty",count:2},{name:"layoutCenter",count:2},{name:"layoutSize",count:2},{name:"parallel",count:2},{name:"parallelIndex",count:2},{name:"loop",count:2},{name:"checkpointStyle",count:2},{name:"controlStyle",count:2},{name:"progress",count:2},{name:"diffChildrenByName",count:2},{name:"polyline",count:2},{name:"cpx1",count:2},{name:"cpy1",count:2},{name:"cpx2",count:2},{name:"cpy2",count:2},{name:"enabled",count:2},{name:"series",count:2},{name:"maxCount",count:2},{name:"prefix",count:2},{name:"separator",count:2},{name:"middle",count:2},{name:"sampling",count:2},{name:"barMinHeight",count:2},{name:"barMinAngle",count:2},{name:"barGap",count:2},{name:"barCategoryGap",count:2},{name:"period",count:2},{name:"nodeClick",count:2},{name:"nodes",count:2},{name:"links",count:2},{name:"edges",count:2},{name:"depth",count:2},{name:"detail",count:2},{name:"keepAspect",count:2},{name:"symbolPosition",count:2},{name:"symbolRepeat",count:2},{name:"symbolRepeatDirection",count:2},{name:"symbolMargin",count:2},{name:"symbolClip",count:2},{name:"symbolBoundingData",count:2},{name:"symbolPatternSize",count:2},{name:"subtext",count:1},{name:"sublink",count:1},{name:"subtarget",count:1},{name:"subtextStyle",count:1},{name:"legend",count:1},{name:"inactiveColor",count:1},{name:"scrollDataIndex",count:1},{name:"pageButtonItemGap",count:1},{name:"pageButtonGap",count:1},{name:"pageButtonPosition",count:1},{name:"pageFormatter",count:1},{name:"pageIcons",count:1},{name:"horizontal",count:1},{name:"vertical",count:1},{name:"pageIconColor",count:1},{name:"pageIconInactiveColor",count:1},{name:"pageIconSize",count:1},{name:"pageTextStyle",count:1},{name:"selector",count:1},{name:"selectorPosition",count:1},{name:"selectorItemGap",count:1},{name:"selectorButtonGap",count:1},{name:"grid",count:1},{name:"containLabel",count:1},{name:"polar",count:1},{name:"radiusAxis",count:1},{name:"angleAxis",count:1},{name:"indicator",count:1},{name:"disabled",count:1},{name:"zoomOnMouseWheel",count:1},{name:"moveOnMouseMove",count:1},{name:"moveOnMouseWheel",count:1},{name:"preventDefaultMouseMove",count:1},{name:"slider",count:1},{name:"dataBackground",count:1},{name:"selectedDataBackground",count:1},{name:"fillerColor",count:1},{name:"moveHandleIcon",count:1},{name:"moveHandleSize",count:1},{name:"labelPrecision",count:1},{name:"labelFormatter",count:1},{name:"showDetail",count:1},{name:"showDataShadow",count:1},{name:"brushSelect",count:1},{name:"visualMap",count:1},{name:"continuous",count:1},{name:"calculable",count:1},{name:"indicatorIcon",count:1},{name:"indicatorSize",count:1},{name:"indicatorStyle",count:1},{name:"piecewise",count:1},{name:"pieces",count:1},{name:"minOpen",count:1},{name:"maxOpen",count:1},{name:"showLabel",count:1},{name:"itemSymbol",count:1},{name:"showContent",count:1},{name:"alwaysShowContent",count:1},{name:"showDelay",count:1},{name:"hideDelay",count:1},{name:"enterable",count:1},{name:"renderMode",count:1},{name:"confine",count:1},{name:"appendToBody",count:1},{name:"className",count:1},{name:"transitionDuration",count:1},{name:"order",count:1},{name:"showTitle",count:1},{name:"feature",count:1},{name:"saveAsImage",count:1},{name:"connectedBackgroundColor",count:1},{name:"excludeComponents",count:1},{name:"pixelRatio",count:1},{name:"restore",count:1},{name:"dataView",count:1},{name:"readOnly",count:1},{name:"optionToContent",count:1},{name:"contentToOption",count:1},{name:"lang",count:1},{name:"textareaColor",count:1},{name:"textareaBorderColor",count:1},{name:"textColor",count:1},{name:"buttonColor",count:1},{name:"buttonTextColor",count:1},{name:"magicType",count:1},{name:"tiled",count:1},{name:"brushLink",count:1},{name:"brushMode",count:1},{name:"transformable",count:1},{name:"throttleType",count:1},{name:"throttleDelay",count:1},{name:"removeOnClick",count:1},{name:"inBrush",count:1},{name:"outOfBrush",count:1},{name:"geo",count:1},{name:"regions",count:1},{name:"axisExpandable",count:1},{name:"axisExpandCenter",count:1},{name:"axisExpandCount",count:1},{name:"axisExpandWidth",count:1},{name:"axisExpandTriggerOn",count:1},{name:"parallelAxisDefault",count:1},{name:"parallelAxis",count:1},{name:"dim",count:1},{name:"areaSelectStyle",count:1},{name:"singleAxis",count:1},{name:"timeline",count:1},{name:"axisType",count:1},{name:"currentIndex",count:1},{name:"autoPlay",count:1},{name:"rewind",count:1},{name:"playInterval",count:1},{name:"replaceMerge",count:1},{name:"controlPosition",count:1},{name:"showPlayBtn",count:1},{name:"showPrevBtn",count:1},{name:"showNextBtn",count:1},{name:"playIcon",count:1},{name:"stopIcon",count:1},{name:"prevIcon",count:1},{name:"nextIcon",count:1},{name:"graphic",count:1},{name:"elements",count:1},{name:"group",count:1},{name:"circle",count:1},{name:"ring",count:1},{name:"sector",count:1},{name:"arc",count:1},{name:"bezierCurve",count:1},{name:"calendar",count:1},{name:"cellSize",count:1},{name:"dayLabel",count:1},{name:"firstDay",count:1},{name:"monthLabel",count:1},{name:"yearLabel",count:1},{name:"dataset",count:1},{name:"sourceHeader",count:1},{name:"transform",count:1},{name:"filter",count:1},{name:"xxx:xxx",count:1},{name:"fromDatasetIndex",count:1},{name:"fromDatasetId",count:1},{name:"fromTransformResult",count:1},{name:"aria",count:1},{name:"description",count:1},{name:"general",count:1},{name:"withTitle",count:1},{name:"withoutTitle",count:1},{name:"single",count:1},{name:"multiple",count:1},{name:"allData",count:1},{name:"partialData",count:1},{name:"decals",count:1},{name:"showSymbol",count:1},{name:"showAllSymbol",count:1},{name:"connectNulls",count:1},{name:"step",count:1},{name:"smoothMonotone",count:1},{name:"showBackground",count:1},{name:"backgroundStyle",count:1},{name:"pie",count:1},{name:"selectedOffset",count:1},{name:"minShowLabelAngle",count:1},{name:"roseType",count:1},{name:"avoidLabelOverlap",count:1},{name:"stillShowZeroSum",count:1},{name:"alignTo",count:1},{name:"edgeDistance",count:1},{name:"bleedMargin",count:1},{name:"distanceToLabelLine",count:1},{name:"maxSurfaceAngle",count:1},{name:"scaleSize",count:1},{name:"animationType",count:1},{name:"animationTypeUpdate",count:1},{name:"scatter",count:1},{name:"effectScatter",count:1},{name:"effectType",count:1},{name:"showEffectOn",count:1},{name:"rippleEffect",count:1},{name:"radarIndex",count:1},{name:"tree",count:1},{name:"edgeShape",count:1},{name:"edgeForkPosition",count:1},{name:"expandAndCollapse",count:1},{name:"initialTreeDepth",count:1},{name:"leaves",count:1},{name:"treemap",count:1},{name:"squareRatio",count:1},{name:"leafDepth",count:1},{name:"drillDownIcon",count:1},{name:"zoomToNodeRatio",count:1},{name:"breadcrumb",count:1},{name:"emptyItemWidth",count:1},{name:"sunburst",count:1},{name:"renderLabelForZeroData",count:1},{name:"boxplot",count:1},{name:"boxWidth",count:1},{name:"candlestick",count:1},{name:"heatmap",count:1},{name:"pointSize",count:1},{name:"blurSize",count:1},{name:"minOpacity",count:1},{name:"maxOpacity",count:1},{name:"mapValueCalculation",count:1},{name:"showLegendSymbol",count:1},{name:"inactiveOpacity",count:1},{name:"activeOpacity",count:1},{name:"lines",count:1},{name:"effect",count:1},{name:"delay",count:1},{name:"constantSpeed",count:1},{name:"trailLength",count:1},{name:"coords",count:1},{name:"graph",count:1},{name:"circular",count:1},{name:"rotateLabel",count:1},{name:"force",count:1},{name:"initLayout",count:1},{name:"repulsion",count:1},{name:"gravity",count:1},{name:"edgeLength",count:1},{name:"layoutAnimation",count:1},{name:"friction",count:1},{name:"nodeScaleRatio",count:1},{name:"edgeSymbol",count:1},{name:"edgeSymbolSize",count:1},{name:"autoCurveness",count:1},{name:"fixed",count:1},{name:"category",count:1},{name:"ignoreForceLayout",count:1},{name:"sankey",count:1},{name:"nodeWidth",count:1},{name:"nodeGap",count:1},{name:"nodeAlign",count:1},{name:"layoutIterations",count:1},{name:"funnel",count:1},{name:"minSize",count:1},{name:"maxSize",count:1},{name:"gap",count:1},{name:"funnelAlign",count:1},{name:"gauge",count:1},{name:"overlap",count:1},{name:"pointer",count:1},{name:"anchor",count:1},{name:"pictorialBar",count:1},{name:"themeRiver",count:1},{name:"singleAxisIndex",count:1},{name:"date",count:1},{name:"custom",count:1},{name:"renderItem",count:1},{name:"arguments",count:1},{name:"params",count:1},{name:"api",count:1},{name:"styleEmphasis",count:1},{name:"visual",count:1},{name:"barLayout",count:1},{name:"currentSeriesIndices",count:1},{name:"getWidth",count:1},{name:"getHeight",count:1},{name:"getZr",count:1},{name:"getDevicePixelRatio",count:1},{name:"return",count:1},{name:"return_group",count:1},{name:"return_path",count:1},{name:"pathData",count:1},{name:"d",count:1},{name:"return_image",count:1},{name:"return_text",count:1},{name:"return_rect",count:1},{name:"return_circle",count:1},{name:"return_ring",count:1},{name:"return_sector",count:1},{name:"return_arc",count:1},{name:"return_polygon",count:1},{name:"return_polyline",count:1},{name:"return_line",count:1},{name:"return_bezierCurve",count:1},{name:"darkMode",count:1},{name:"stateAnimation",count:1},{name:"duration",count:1},{name:"easing",count:1},{name:"blendMode",count:1},{name:"hoverLayerThreshold",count:1},{name:"useUTC",count:1},{name:"options",count:1},{name:"media",count:1},{name:"query",count:1},{name:"minWidth",count:1},{name:"maxHeight",count:1},{name:"minAspectRatio",count:1}],nt={};function at(t){return Promise.all(t.map((function(t){if("string"==typeof t&&(t={url:t,type:t.match(/\.css$/)?"css":"js"}),nt[t.url])return nt[t.url];var e=new Promise((function(e,n){if("js"===t.type){var a=document.createElement("script");a.src=t.url,a.async=!1,a.onload=function(){e()},a.onerror=function(){n()},document.body.appendChild(a)}else if("css"===t.type){var i=document.createElement("link");i.rel="stylesheet",i.href=t.url,i.onload=function(){e()},i.onerror=function(){n()},document.body.appendChild(i)}}));return nt[t.url]=e,e})))}var it=["line","bar","pie","scatter","map","candlestick","radar","boxplot","heatmap","graph","lines","tree","treemap","sunburst","parallel","sankey","funnel","gauge","pictorialBar","themeRiver","calendar","custom","dataset","dataZoom","drag","rich","globe","bar3D","scatter3D","surface","map3D","lines3D","line3D","scatterGL","linesGL","flowGL","graphGL"],ot=function(t){for(var e={},n=0;n<t.length;n++)e[t[n]]=1;return location.href.indexOf("github.io")>=0?{}:e}(["effectScatter-map","geo-lines","geo-map-scatter","heatmap-map","lines-airline","map-china","map-china-dataRange","map-labels","map-locate","map-province","map-world","map-world-dataRange","scatter-map","scatter-map-brush","scatter-weibo","scatter-world-population","geo3d","geo3d-with-different-height","globe-country-carousel","globe-with-echarts-surface","map3d-alcohol-consumption","map3d-wood-map","scattergl-weibo"]),rt={};(location.search||"").substr(1).split("&").forEach((function(t){var e=t.split("=");rt[e[0]]=e[1]}));var lt,st=((lt=document.createElement("canvas")).width=lt.height=1,!(!lt.getContext||!lt.getContext("2d"))&&0===lt.toDataURL("image/webp").indexOf("data:image/webp")),ct={localEChartsMinJS:"http://localhost/echarts/dist/echarts.js",echartsMinJS:"https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js",echartsDir:"https://cdn.jsdelivr.net/npm/echarts@5",echartsStatMinJS:"https://cdn.jsdelivr.net/npm/echarts-stat@latest/dist/ecStat.min.js",echartsGLMinJS:"https://cdn.jsdelivr.net/npm/echarts-gl@2/dist/echarts-gl.min.js",datGUIMinJS:"https://cdn.jsdelivr.net/npm/dat.gui@0.6.5/build/dat.gui.min.js",monacoDir:"https://cdn.jsdelivr.net/npm/monaco-editor@0.21.2/min/vs",aceDir:"https://cdn.jsdelivr.net/npm/ace-builds@1.4.12/src-min-noconflict"},ut={cdnRoot:"",version:"",locale:"",darkMode:"dark"===rt.theme,enableDecal:"decal"in rt,renderer:rt.renderer||"canvas",typeCheck:"monaco"===rt.editor,useDirtyRect:"useDirtyRect"in rt,runCode:"",sourceCode:"",runHash:"",isMobile:window.innerWidth<600,editorStatus:{type:"",message:""}};function dt(){return new Promise((function(t){var e=rt.gl?"data-gl":"data";$.ajax("".concat(ut.cdnRoot,"/").concat(e,"/").concat(rt.c,".js?_v_").concat(ut.version),{dataType:"text",success:function(e){t(e)}})}))}function pt(t){return t.replace(/\/\*[\w\W]*?\*\//,"").trim()}var ft=123;function gt(t,e,n,a,i,o,r,l){var s,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),a&&(c.functional=!0),o&&(c._scopeId="data-v-"+o),r?(s=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},c._ssrRegister=s):i&&(s=l?function(){i.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:i),s)if(c.functional){c._injectStyles=s;var u=c.render;c.render=function(t,e){return s.call(e),u(t,e)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,s):[s]}return{exports:t,options:c}}var mt=gt({props:["initialCode"],data:function(){return{shared:ut,loading:!1}},mounted:function(){var t=this;this.loading=!0,("undefined"==typeof ace?at([ct.aceDir+"/ace.js",ct.aceDir+"/ext-language_tools.js"]).then((function(){var t=ace.require("ace/ext/language_tools"),e=[];et.forEach((function(t){e.push({caption:t.name,value:t.name,score:t.count,metal:"local"})})),t.addCompleter({getCompletions:function(t,n,a,i,o){o(null,e)}})})):Promise.resolve()).then((function(){t.loading=!1;var e=ace.edit(t.$el);e.getSession().setMode("ace/mode/javascript"),e.setOptions({enableBasicAutocompletion:!0,enableSnippets:!0,enableLiveAutocompletion:!0}),t._editor=e,e.on("change",(function(){ut.sourceCode=ut.runCode=e.getValue()})),t.initialCode&&t.setInitialCode(t.initialCode)}))},methods:{setInitialCode:function(t){this._editor&&t&&(this._editor.setValue(t||""),this._editor.selection.setSelectionRange({start:{row:1,column:4},end:{row:1,column:4}}))}},watch:{initialCode:function(t){this.setInitialCode(t)}}},tt,[],!1,null,null,null);mt.options.__file="src/editor/CodeAce.vue";const ht=mt.exports;var Ct=function(){var t=this,e=t.$createElement;return(t._self._c||e)("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"monaco-editor-main"})};Ct._withStripped=!0;var yt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{class:[t.inEditor&&!t.shared.isMobile?"":"full"]},[n("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"right-panel",style:{background:t.backgroundColor},attrs:{id:"chart-panel"}},[n("div",{staticClass:"chart-container"})]),t._v(" "),n("div",{attrs:{id:"tool-panel"}},[n("div",{staticClass:"left-panel"},[n("el-switch",{staticClass:"dark-mode",attrs:{"active-color":"#181432","active-text":t.$t("editor.darkMode"),"inactive-text":""},model:{value:t.shared.darkMode,callback:function(e){t.$set(t.shared,"darkMode",e)},expression:"shared.darkMode"}}),t._v(" "),t.isGL?t._e():n("el-switch",{staticClass:"enable-decal",attrs:{"active-text":t.$t("editor.enableDecal"),"inactive-text":""},model:{value:t.shared.enableDecal,callback:function(e){t.$set(t.shared,"enableDecal",e)},expression:"shared.enableDecal"}}),t._v(" "),t.isGL?t._e():n("el-popover",{staticStyle:{"margin-top":"3px"},attrs:{placement:"bottom",width:"450",trigger:"click"}},[n("div",{staticClass:"render-config-container"},[n("el-row",{attrs:{gutter:2,type:"flex",align:"middle"}},[n("el-col",{attrs:{span:12}},[n("label",{staticClass:"tool-label"},[t._v(t._s(t.$t("editor.renderer")))]),t._v(" "),n("el-radio-group",{staticStyle:{"text-transform":"uppercase"},attrs:{size:"mini"},model:{value:t.shared.renderer,callback:function(e){t.$set(t.shared,"renderer",e)},expression:"shared.renderer"}},[n("el-radio-button",{attrs:{label:"svg"}}),t._v(" "),n("el-radio-button",{attrs:{label:"canvas"}})],1)],1),t._v(" "),n("el-col",{attrs:{span:12}},["canvas"===t.shared.renderer?n("el-switch",{attrs:{"active-text":t.$t("editor.useDirtyRect"),"inactive-text":""},model:{value:t.shared.useDirtyRect,callback:function(e){t.$set(t.shared,"useDirtyRect",e)},expression:"shared.useDirtyRect"}}):t._e()],1)],1)],1),t._v(" "),n("span",{staticClass:"render-config-trigger",attrs:{slot:"reference"},slot:"reference"},[n("i",{staticClass:"el-icon-setting el-icon--left"}),t._v(t._s(t.$t("editor.renderCfgTitle")))])])],1),t._v(" "),t.inEditor?[t.shared.isMobile?t._e():n("button",{staticClass:"download btn btn-sm",on:{click:t.downloadExample}},[t._v(t._s(t.$t("editor.download")))]),t._v(" "),n("a",{staticClass:"screenshot",attrs:{target:"_blank"},on:{click:t.screenshot}},[n("i",{staticClass:"el-icon-camera-solid"})])]:n("a",{staticClass:"edit btn btn-sm",attrs:{href:t.editLink,target:"_blank"}},[t._v(t._s(t.$t("editor.edit")))])],2)])};yt._withStripped=!0;var vt=function(){function t(t){var e=this.dom=document.createElement("div");for(var n in e.className="ec-debug-dirty-rect",t=Object.assign({},t),Object.assign(t,{backgroundColor:"rgba(0, 0, 255, 0.2)",border:"1px solid #00f"}),e.style.cssText="\nposition: absolute;\nopacity: 0;\ntransition: opacity 0.5s linear;\npointer-events: none;\n",t)t.hasOwnProperty(n)&&(e.style[n]=t[n])}return t.prototype.update=function(t){var e=this.dom.style;e.width=t.width+"px",e.height=t.height+"px",e.left=t.x+"px",e.top=t.y+"px"},t.prototype.hide=function(){this.dom.style.opacity="0"},t.prototype.show=function(){var t=this;clearTimeout(this._hideTimeout),this.dom.style.opacity="1",this._hideTimeout=setTimeout((function(){t.hide()}),500)},t}();function bt(t){return(bt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var _t=n(279),Lt=n.n(_t);let wt=null,xt=null;function kt(t,e={}){let n=document.createElement(t);return Object.keys(e).forEach((t=>{n[t]=e[t]})),n}function St(t,e,n){return(window.getComputedStyle(t,n||null)||{display:"none"})[e]}function Nt(t){if(!document.documentElement.contains(t))return{detached:!0,rendered:!1};let e=t;for(;e!==document;){if("none"===St(e,"display"))return{detached:!1,rendered:!1};e=e.parentNode}return{detached:!1,rendered:!0}}let Mt=0,Tt=null;function Ot(t,e){if(t.__resize_mutation_handler__||(t.__resize_mutation_handler__=Dt.bind(t)),!t.__resize_listeners__)if(t.__resize_listeners__=[],window.ResizeObserver){let{offsetWidth:e,offsetHeight:n}=t,a=new ResizeObserver((()=>{(t.__resize_observer_triggered__||(t.__resize_observer_triggered__=!0,t.offsetWidth!==e||t.offsetHeight!==n))&&Et(t)})),{detached:i,rendered:o}=Nt(t);t.__resize_observer_triggered__=!1===i&&!1===o,t.__resize_observer__=a,a.observe(t)}else if(t.attachEvent&&t.addEventListener)t.__resize_legacy_resize_handler__=function(){Et(t)},t.attachEvent("onresize",t.__resize_legacy_resize_handler__),document.addEventListener("DOMSubtreeModified",t.__resize_mutation_handler__);else if(Mt||(Tt=function(t){var e=document.createElement("style");return e.type="text/css",e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t)),(document.querySelector("head")||document.body).appendChild(e),e}('.resize-triggers{visibility:hidden;opacity:0;pointer-events:none}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:"";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}')),function(t){let e=St(t,"position");e&&"static"!==e||(t.style.position="relative"),t.__resize_old_position__=e,t.__resize_last__={};let n=kt("div",{className:"resize-triggers"}),a=kt("div",{className:"resize-expand-trigger"}),i=kt("div"),o=kt("div",{className:"resize-contract-trigger"});a.appendChild(i),n.appendChild(a),n.appendChild(o),t.appendChild(n),t.__resize_triggers__={triggers:n,expand:a,expandChild:i,contract:o},Pt(t),t.addEventListener("scroll",At,!0),t.__resize_last__={width:t.offsetWidth,height:t.offsetHeight}}(t),t.__resize_rendered__=Nt(t).rendered,window.MutationObserver){let e=new MutationObserver(t.__resize_mutation_handler__);e.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),t.__resize_mutation_observer__=e}t.__resize_listeners__.push(e),Mt++}function Dt(){let{rendered:t,detached:e}=Nt(this);t!==this.__resize_rendered__&&(!e&&this.__resize_triggers__&&(Pt(this),this.addEventListener("scroll",At,!0)),this.__resize_rendered__=t,Et(this))}function At(){var t,e;Pt(this),this.__resize_raf__&&(t=this.__resize_raf__,xt||(xt=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(t){clearTimeout(t)}).bind(window)),xt(t)),this.__resize_raf__=(e=()=>{let t=function(t){let{width:e,height:n}=t.__resize_last__,{offsetWidth:a,offsetHeight:i}=t;return a!==e||i!==n?{width:a,height:i}:null}(this);t&&(this.__resize_last__=t,Et(this))},wt||(wt=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){return setTimeout(t,16)}).bind(window)),wt(e))}function Et(t){t&&t.__resize_listeners__&&t.__resize_listeners__.forEach((e=>{e.call(t,t)}))}function Pt(t){let{expand:e,expandChild:n,contract:a}=t.__resize_triggers__,{scrollWidth:i,scrollHeight:o}=a,{offsetWidth:r,offsetHeight:l,scrollWidth:s,scrollHeight:c}=e;a.scrollLeft=i,a.scrollTop=o,n.style.width=r+1+"px",n.style.height=l+1+"px",e.scrollLeft=s,e.scrollTop=c}const Ft=[{category:["bar"],id:"bar-background",tags:[],title:"Bar with Background",titleCN:"带背景色的柱状图",difficulty:0},{category:["custom"],id:"bar-histogram",tags:[],title:"Histogram with Custom Series",titleCN:"直方图(自定义系列)",difficulty:0},{category:["bar"],id:"bar-simple",tags:[],title:"Basic Bar",titleCN:"基础柱状图",difficulty:0},{category:["bar"],id:"bar-tick-align",tags:[],title:"Axis Align with Tick",titleCN:"坐标轴刻度与标签对齐",difficulty:0},{category:["calendar"],id:"calendar-simple",tags:[],title:"Simple Calendar",titleCN:"基础日历图",difficulty:0},{category:["candlestick"],id:"candlestick-simple",tags:[],title:"Basic Candlestick",titleCN:"基础 K 线图",difficulty:0},{category:["dataset","bar","transform"],id:"data-transform-sort-bar",tags:[],title:"Sort Data in Bar Chart",titleCN:"柱状图排序",difficulty:0},{category:["heatmap"],id:"heatmap-cartesian",tags:[],title:"Heatmap on Cartesian",titleCN:"笛卡尔坐标系上的热力图",difficulty:0},{category:["line"],id:"line-simple",tags:[],title:"Basic Line Chart",titleCN:"基础折线图",difficulty:0},{category:["line"],id:"line-smooth",tags:[],title:"Smoothed Line Chart",titleCN:"基础平滑折线图",difficulty:0},{category:["pie"],id:"pie-simple",tags:[],title:"Referer of a website",titleCN:"某站点用户访问来源",difficulty:0},{category:["radar"],id:"radar",tags:[],title:"Basic Radar Chart",titleCN:"基础雷达图",difficulty:0},{category:["sankey"],id:"sankey-simple",tags:[],title:"Basic Sankey",titleCN:"基础桑基图",difficulty:0},{category:["scatter"],id:"scatter-simple",tags:[],title:"Basic Scatter Chart",titleCN:"基础散点图",difficulty:0},{category:["line"],id:"area-basic",tags:[],title:"Basic area chart",titleCN:"基础面积图",difficulty:1},{category:["bar"],id:"bar-data-color",tags:[],title:"Set Style of Single Bar.",titleCN:"自定义单个柱子颜色",difficulty:1},{category:["bar"],id:"bar-waterfall",tags:[],title:"Waterfall Chart",titleCN:"瀑布图(柱状图模拟)",difficulty:1},{category:["calendar","heatmap"],id:"calendar-heatmap",tags:[],title:"Calendar Heatmap",titleCN:"日历热力图",difficulty:1},{category:["calendar","heatmap"],id:"calendar-vertical",tags:[],title:"Calendar Heatmap Vertical",titleCN:"纵向日历图",difficulty:1},{category:["candlestick"],id:"custom-ohlc",tags:[],title:"OHLC Chart",titleCN:"OHLC 图(使用自定义系列)",difficulty:1},{category:["custom"],id:"custom-profit",tags:[],title:"Profit",titleCN:"利润分布直方图",difficulty:1},{category:["dataset","bar"],id:"dataset-encode0",tags:[],title:"Simple Encode",titleCN:"指定数据到坐标轴的映射",difficulty:1},{category:["gauge"],id:"gauge",tags:[],title:"Gauge Basic chart",titleCN:"基础仪表盘",difficulty:1},{category:["gauge"],id:"gauge-simple",tags:[],title:"Simple Gauge",titleCN:"带标签数字动画的基础仪表盘",difficulty:1},{category:["graph"],id:"graph-force2",tags:[],title:"Force Layout",titleCN:"力引导布局",difficulty:1},{category:["line"],id:"line-stack",tags:[],title:"Stacked Line Chart",titleCN:"折线图堆叠",difficulty:1},{category:["parallel"],id:"parallel-simple",tags:[],title:"Basic Parallel",titleCN:"基础平行坐标",difficulty:1},{category:["pie"],id:"pie-borderRadius",tags:[],title:"Doughnut Chart with Rounded Corner",titleCN:"圆角环形图",difficulty:1},{category:["pie"],id:"pie-doughnut",tags:[],title:"Doughnut Chart",titleCN:"环形图",difficulty:1},{category:["radar"],id:"radar-aqi",tags:[],title:"AQI - Radar Chart",titleCN:"AQI - 雷达图",difficulty:1},{category:["sankey"],id:"sankey-vertical",tags:[],title:"Sankey Orient Vertical",titleCN:"垂直方向的桑基图",difficulty:1},{category:["scatter"],id:"scatter-anscombe-quartet",tags:[],title:"Anscomb's quartet",titleCN:"Anscomb's quartet",difficulty:1},{category:["scatter"],id:"scatter-clustering",tags:[],title:"Clustering Process",titleCN:"数据聚合",difficulty:1},{category:["scatter"],id:"scatter-clustering-process",tags:[],title:"Clustering Process",titleCN:"聚合过程可视化",difficulty:1},{category:["scatter"],id:"scatter-exponential-regression",tags:[],title:"Exponential Regression",titleCN:"指数回归(使用统计插件)",difficulty:1},{category:["sunburst"],id:"sunburst-simple",tags:[],title:"Basic Sunburst",titleCN:"基础旭日图",difficulty:1},{category:["line"],id:"area-stack",tags:[],title:"Stacked area chart",titleCN:"堆叠面积图",difficulty:2},{category:["line"],id:"area-stack-gradient",tags:[],title:"Gradient Stacked area chart",titleCN:"渐变堆叠面积图",difficulty:2},{category:["bar"],id:"bar-negative2",tags:[],title:"Bar Chart with Negative Value",titleCN:"交错正负轴标签",difficulty:2},{category:["bar"],id:"bar-y-category",tags:[],title:"World Total Population",titleCN:"世界人口总量 - 条形图",difficulty:2},{category:["calendar"],id:"calendar-horizontal",tags:[],title:"Calendar Heatmap Horizontal",titleCN:"横向日力图",difficulty:2},{category:["candlestick"],id:"candlestick-sh",tags:[],title:"ShangHai Index",titleCN:"上证指数",difficulty:2},{category:["custom","dataZoom"],id:"custom-error-scatter",tags:[],title:"Error Scatter on Catesian",titleCN:"使用自定系列给散点图添加误差范围",difficulty:2},{category:["scatter"],id:"effectScatter-map",tags:[],title:"Air Quality",titleCN:"全国主要城市空气质量",difficulty:2},{category:["gauge"],id:"gauge-speed",tags:[],title:"Speed Gauge",titleCN:"速度仪表盘",difficulty:2},{category:["graph"],id:"graph-grid",tags:[],title:"Graph on Cartesian",titleCN:"笛卡尔坐标系上的 Graph",difficulty:2},{category:["graph"],id:"graph-simple",tags:[],title:"Simple Graph",titleCN:"Graph 简单示例",difficulty:2},{category:["heatmap"],id:"heatmap-large",tags:[],title:"Heatmap - 2w data",titleCN:"热力图 - 2w 数据",difficulty:2},{category:["heatmap"],id:"heatmap-large-piecewise",tags:[],title:"Heatmap - Discrete Mapping of Color",titleCN:"热力图 - 颜色的离散映射",difficulty:2},{category:["line"],id:"line-marker",tags:[],title:"Temperature Change in the coming week",titleCN:"未来一周气温变化",difficulty:2},{category:["parallel"],id:"parallel-aqi",tags:[],title:"Parallel Aqi",titleCN:"AQI 分布(平行坐标)",difficulty:2},{category:["pie"],id:"pie-custom",tags:[],title:"Customized Pie",titleCN:"饼图自定义样式",difficulty:2},{category:["pie"],id:"pie-pattern",tags:[],title:"Texture on Pie Chart",titleCN:"饼图纹理",difficulty:2},{category:["pie"],id:"pie-roseType",tags:[],title:"Nightingale's Rose Diagram",titleCN:"南丁格尔玫瑰图",difficulty:2},{category:["pie"],id:"pie-roseType-simple",tags:[],title:"Nightingale's Rose Diagram",titleCN:"基础南丁格尔玫瑰图",difficulty:2},{category:["radar"],id:"radar-custom",tags:[],title:"Customized Radar Chart",titleCN:"自定义雷达图",difficulty:2},{category:["sankey"],id:"sankey-itemstyle",tags:[],title:"Specify ItemStyle for Each Node in Sankey",titleCN:"桑基图节点自定义样式",difficulty:2},{category:["sankey"],id:"sankey-levels",tags:[],title:"Sankey with Levels Setting",titleCN:"桑基图层级自定义样式",difficulty:2},{category:["scatter"],id:"scatter-effect",tags:[],title:"Effect Scatter Chart",titleCN:"涟漪特效散点图",difficulty:2},{category:["scatter"],id:"scatter-linear-regression",tags:[],title:"Linear Regression",titleCN:"线性回归(使用统计插件)",difficulty:2},{category:["scatter"],id:"scatter-polynomial-regression",tags:[],title:"Polynomial Regression",titleCN:"多项式回归(使用统计插件)",difficulty:2},{category:["sunburst"],id:"sunburst-borderRadius",tags:[],title:"Sunburst with Rounded Corner",titleCN:"圆角旭日图",difficulty:2},{category:["sunburst"],id:"sunburst-label-rotate",tags:[],title:"Sunburst Label Rotate",titleCN:"旭日图标签旋转",difficulty:2},{category:["line","visualMap"],id:"area-pieces",tags:[],title:"Area Pieces",titleCN:"折线图区域高亮",difficulty:3},{category:["bar"],id:"bar-gradient",tags:[],title:"Clickable Column Chart with Gradient",titleCN:"特性示例:渐变色 阴影 点击缩放",difficulty:3},{category:["bar"],id:"bar-label-rotation",tags:[],title:"Bar Label Rotation",titleCN:"柱状图标签旋转",difficulty:3},{category:["bar"],id:"bar-stack",tags:[],title:"Stacked Column Chart",titleCN:"堆叠柱状图",difficulty:3},{category:["bar"],id:"bar-waterfall2",tags:[],title:"Waterfall Chart",titleCN:"阶梯瀑布图(柱状图模拟)",difficulty:3},{category:["bar"],id:"bar-y-category-stack",tags:[],title:"Stacked Horizontal Bar",titleCN:"堆叠条形图",difficulty:3},{category:["candlestick"],id:"candlestick-large",tags:[],title:"Large Scale Candlestick",titleCN:"大数据量K线图",difficulty:3},{category:["custom"],id:"custom-bar-trend",tags:[],title:"Custom Bar Trend",titleCN:"使用自定义系列添加柱状图趋势",difficulty:3},{category:["custom"],id:"custom-cartesian-polygon",tags:[],title:"Custom Cartesian Polygon",titleCN:"自定义多边形图",difficulty:3},{category:["custom"],id:"custom-error-bar",tags:[],title:"Error Bar on Catesian",titleCN:"使用自定系列给柱状图添加误差范围",difficulty:3},{category:["custom"],id:"custom-profile",tags:[],title:"Profile",titleCN:"性能分析图",difficulty:3},{category:["custom"],id:"cycle-plot",tags:[],title:"Cycle Plot",titleCN:"Cycle Plot",difficulty:3},{category:["line"],id:"data-transform-filter",tags:[],title:"Data Transform Fitler",titleCN:"数据过滤",difficulty:3},{category:["dataset","pie","transform"],id:"data-transform-multiple-pie",tags:[],title:"Partition Data to Pies",titleCN:"分割数据到数个饼图",difficulty:3},{category:["dataset","pie"],id:"dataset-default",tags:[],title:"Default arrangement",titleCN:"默认 encode 设置",difficulty:3},{category:["dataset"],id:"dataset-encode1",tags:[],title:"Encode and Matrix",titleCN:"指定数据到坐标轴的映射",difficulty:3},{category:["gauge"],id:"gauge-progress",tags:[],title:"Grogress Gauge",titleCN:"进度仪表盘",difficulty:3},{category:["gauge"],id:"gauge-stage",tags:[],title:"Stage Speed Gauge",titleCN:"阶段速度仪表盘",difficulty:3},{category:["graph"],id:"graph-force",tags:[],title:"Force Layout",titleCN:"力引导布局",difficulty:3},{category:["graph"],id:"graph-label-overlap",tags:[],title:"Hide Overlapped Label",titleCN:"关系图自动隐藏重叠标签",difficulty:3},{category:["heatmap"],id:"heatmap-bmap",tags:["bmap"],title:"Heatmap on Baidu Map Extension",titleCN:"热力图与百度地图扩展",difficulty:3},{category:["heatmap"],id:"heatmap-map",tags:[],title:"Air Qulity",titleCN:"全国主要城市空气质量",difficulty:3},{category:["line"],id:"line-gradient",tags:[],title:"Line Gradient",titleCN:"折线图的渐变",difficulty:3},{category:["line"],id:"line-sections",tags:[],title:"Distribution of Electricity",titleCN:"一天用电量分布",difficulty:3},{category:["pie"],id:"pie-alignTo",tags:[],title:"Pie Label Align",titleCN:"饼图标签对齐",difficulty:3},{category:["pie"],id:"pie-labelLine-adjust",tags:[],title:"Label Line Adjust",titleCN:"饼图引导线调整",difficulty:3},{category:["radar"],id:"radar2",tags:[],title:"Proportion of Browsers",titleCN:"浏览器占比变化",difficulty:3},{category:["sankey"],id:"sankey-energy",tags:[],title:"Gradient Edge",titleCN:"桑基图渐变色边",difficulty:3},{category:["sankey"],id:"sankey-nodeAlign-left",tags:[],title:"Node Align Left in Sankey",titleCN:"桑基图左对齐布局",difficulty:3},{category:["sankey"],id:"sankey-nodeAlign-right",tags:[],title:"Node Align Right in Sankey",titleCN:"桑基图右对齐布局",difficulty:3},{category:["scatter"],id:"scatter-punchCard",tags:[],title:"Punch Card of Github",titleCN:"GitHub 打卡气泡图",difficulty:3},{category:["scatter"],id:"scatter-single-axis",tags:[],title:"Scatter on Single Axis",titleCN:"单轴散点图",difficulty:3},{category:["scatter"],id:"scatter-weight",tags:[],title:"Distribution of Height and Weight",titleCN:"男性女性身高体重分布",difficulty:3},{category:["sunburst"],id:"sunburst-monochrome",tags:[],title:"Monochrome Sunburst",titleCN:"Monochrome Sunburst",difficulty:3},{category:["line","dataZoom"],id:"area-simple",tags:[],title:"Large scale area chart",titleCN:"大数据量面积图",difficulty:4},{category:["bar"],id:"bar-brush",tags:[],title:"Brush Select on Column Chart",titleCN:"柱状图框选",difficulty:4},{category:["bar"],id:"bar-negative",tags:[],title:"Bar Chart with Negative Value",titleCN:"正负条形图",difficulty:4},{category:["bar"],id:"bar1",tags:[],title:"Rainfall and Evaporation",titleCN:"某地区蒸发量和降水量",difficulty:4},{category:["calendar","graph"],id:"calendar-graph",tags:[],title:"Calendar Graph",titleCN:"日历关系图",difficulty:4},{category:["calendar"],id:"calendar-lunar",tags:[],title:"Calendar Lunar",titleCN:"农历日历图",difficulty:4},{category:["candlestick"],id:"candlestick-touch",tags:[],title:"Axis Pointer Link and Touch",titleCN:"触屏上的坐标轴指示器",difficulty:4},{category:["line"],id:"confidence-band",tags:[],title:"Confidence Band",titleCN:"Confidence Band",difficulty:4},{category:["custom","dataZoom","drag"],id:"custom-gantt-flight",tags:[],title:"Gantt Chart of Airport Flights",titleCN:"机场航班甘特图",difficulty:4},{category:["custom"],id:"custom-polar-heatmap",tags:[],title:"Polar Heatmap",titleCN:"极坐标热力图(自定义系列)",difficulty:4},{category:["boxplot"],id:"data-transform-aggregate",tags:[],title:"Data Transform Simple Aggregate",titleCN:"简单的数据聚合",difficulty:4},{category:["gauge"],id:"gauge-grade",tags:[],title:"Grade Gauge",titleCN:"等级仪表盘",difficulty:4},{category:["gauge"],id:"gauge-multi-title",tags:[],title:"Multi Title Gauge",titleCN:"多标题仪表盘",difficulty:4},{category:["gauge"],id:"gauge-temperature",tags:[],title:"Temperature Gauge chart",titleCN:"气温仪表盘",difficulty:4},{category:["graph"],id:"graph",tags:[],title:"Les Miserables",titleCN:"悲惨世界人物关系图",difficulty:4},{category:["line"],id:"grid-multiple",tags:[],title:"Rainfall and Water Flow",titleCN:"雨量流量关系图",difficulty:4},{category:["line"],id:"line-aqi",tags:[],title:"Beijing AQI",titleCN:"北京 AQI 可视化",difficulty:4},{category:["bar"],id:"mix-line-bar",tags:[],title:"Mixed Line and Bar",titleCN:"折柱混合",difficulty:4},{category:["bar"],id:"mix-zoom-on-value",tags:[],title:"Mix Zoom On Value",titleCN:"多数值轴轴缩放",difficulty:4},{category:["line"],id:"multiple-x-axis",tags:[],title:"Multiple X Axes",titleCN:"多 X 轴",difficulty:4},{category:["bar"],id:"multiple-y-axis",tags:[],title:"Multiple Y Axes",titleCN:"多 Y 轴示例",difficulty:4},{category:["parallel"],id:"parallel-nutrients",tags:[],title:"Parallel Nutrients",titleCN:"营养结构(平行坐标)",difficulty:4},{category:["pie"],id:"pie-legend",tags:[],title:"Pie with Scrollable Legend",titleCN:"可滚动的图例",difficulty:4},{category:["pie","rich"],id:"pie-rich-text",tags:[],title:"Pie Special Label",titleCN:"富文本标签",difficulty:4},{category:["scatter"],id:"scatter-label-align-right",tags:[],title:"Align Label on the Top",titleCN:"散点图标签顶部对齐",difficulty:4},{category:["scatter"],id:"scatter-label-align-top",tags:[],title:"Align Label on the Top",titleCN:"散点图标签顶部对齐",difficulty:4},{category:["sunburst"],id:"sunburst-visualMap",tags:[],title:"Sunburst VisualMap",titleCN:"旭日图使用视觉编码",difficulty:4},{category:["line"],id:"area-rainfall",tags:[],title:"Rainfall",titleCN:"雨量流量关系图",difficulty:5},{category:["line"],id:"area-time-axis",tags:[],title:"Area Chart with Time Axis",titleCN:"时间轴折线图",difficulty:5},{category:["bar"],id:"bar-animation-delay",tags:[],title:"Animation Delay",titleCN:"柱状图动画延迟",difficulty:5},{category:["bar"],id:"bar-large",tags:[],title:"Large Scale Bar Chart",titleCN:"大数据量柱图",difficulty:5},{category:["bar"],id:"bar-race",tags:[],title:"Bar Race",titleCN:"动态排序柱状图",difficulty:5},{category:["dataset","line","pie"],id:"dataset-link",tags:[],title:"Share Dataset",titleCN:"联动和共享数据集",difficulty:5},{category:["dataset","bar"],id:"dataset-series-layout-by",tags:[],title:"Series Layout By Column or Row",titleCN:"系列按行和按列排布",difficulty:5},{category:["dataset","bar"],id:"dataset-simple0",tags:[],title:"Simple Example of Dataset",titleCN:"最简单的数据集(dataset)",difficulty:5},{category:["dataset","bar"],id:"dataset-simple1",tags:[],title:"Dataset in Object Array",titleCN:"对象数组的输入格式",difficulty:5},{category:["line"],id:"dynamic-data2",tags:[],title:"Dynamic Data + Time Axis",titleCN:"动态数据 + 时间坐标轴",difficulty:5},{category:["gauge"],id:"gauge-ring",tags:[],title:"Ring Gauge",titleCN:"得分环",difficulty:5},{category:["graph"],id:"graph-circular-layout",tags:[],title:"Les Miserables",titleCN:"悲惨世界人物关系图(环形布局)",difficulty:5},{category:["line"],id:"line-function",tags:[],title:"Function Plot",titleCN:"函数绘图",difficulty:5},{category:["line"],id:"line-race",tags:[],title:"Line Race",titleCN:"动态排序折线图",difficulty:5},{category:["pie","rich"],id:"pie-nest",tags:[],title:"Nested Pies",titleCN:"嵌套环形图",difficulty:5},{category:["scatter"],id:"scatter-large",tags:[],title:"Large Scatter",titleCN:"大规模散点图",difficulty:5},{category:["scatter"],id:"scatter-nebula",tags:[],title:"Scatter Nebula",titleCN:"大规模星云散点图",difficulty:5},{category:["scatter"],id:"scatter-stream-visual",tags:[],title:"Visual interaction with stream",titleCN:"流式渲染和视觉映射操作",difficulty:5},{category:["sunburst"],id:"sunburst-drink",tags:[],title:"Drink Flavors",titleCN:"Drink Flavors",difficulty:5},{category:["custom","dataZoom"],id:"wind-barb",tags:[],title:"Wind Barb",titleCN:"风向图",difficulty:5},{category:["bar"],id:"bar-race-country",tags:[],title:"Bar Race",titleCN:"动态排序柱状图 - 人均收入",difficulty:6},{category:["bar","rich"],id:"bar-rich-text",tags:[],title:"Wheater Statistics",titleCN:"天气统计(富文本)",difficulty:6},{category:["scatter"],id:"bubble-gradient",tags:[],title:"Bubble Chart",titleCN:"气泡图",difficulty:6},{category:["calendar","pie"],id:"calendar-pie",tags:[],title:"Calendar Pie",titleCN:"日历饼图",difficulty:6},{category:["custom","map"],id:"custom-hexbin",tags:[],title:"Hexagonal Binning",titleCN:"六边形分箱图(自定义系列)",difficulty:6},{category:["bar"],id:"dynamic-data",tags:[],title:"Dynamic Data",titleCN:"动态数据",difficulty:6},{category:["gauge"],id:"gauge-barometer",tags:[],title:"Gauge Barometer chart",titleCN:"气压表",difficulty:6},{category:["graph"],id:"graph-force-dynamic",tags:[],title:"Graph Dynamic",titleCN:"动态增加图节点",difficulty:6},{category:["line"],id:"line-markline",tags:[],title:"Line with Marklines",titleCN:"折线图的标记线",difficulty:6},{category:["line"],id:"line-style",tags:[],title:"Line Style and Item Style",titleCN:"自定义折线图样式",difficulty:6},{category:["bar"],id:"mix-timeline-finance",tags:[],title:"Finance Indices 2002",titleCN:"2002全国宏观经济指标",difficulty:6},{category:["sunburst"],id:"sunburst-book",tags:[],title:"Book Records",titleCN:"书籍分布",difficulty:6},{category:["bar"],id:"watermark",tags:[],title:"Watermark - ECharts Download",titleCN:"水印 - ECharts 下载统计",difficulty:6},{category:["bar"],id:"bar-polar-real-estate",tags:[],title:"Bar Chart on Polar",difficulty:7},{category:["bar"],id:"bar-polar-stack",tags:[],title:"Stacked Bar Chart on Polar",titleCN:"极坐标系下的堆叠柱状图",difficulty:7},{category:["bar"],id:"bar-polar-stack-radial",tags:[],title:"Stacked Bar Chart on Polar(Radial)",titleCN:"极坐标系下的堆叠柱状图",difficulty:7},{category:["custom","calendar"],id:"custom-calendar-icon",tags:[],title:"Custom Calendar Icon",titleCN:"日历图自定义图标",difficulty:7},{category:["custom"],id:"custom-wind",tags:[],title:"Use custom series to draw wind vectors",titleCN:"使用自定义系列绘制风场",difficulty:7},{category:["gauge"],id:"gauge-clock",tags:[],title:"Clock Gauge",titleCN:"时钟仪表盘",difficulty:7},{category:["graph"],id:"graph-life-expectancy",tags:[],title:"Graph Life Expectancy",titleCN:"Graph Life Expectancy",difficulty:7},{category:["line"],id:"line-in-cartesian-coordinate-system",tags:[],title:"Line Chart in Cartesian Coordinate System",titleCN:"双数值轴折线图",difficulty:7},{category:["line"],id:"line-log",tags:[],title:"Log Axis",titleCN:"对数轴示例",difficulty:7},{category:["line"],id:"line-step",tags:[],title:"Step Line",titleCN:"阶梯折线图",difficulty:7},{category:["bar"],id:"polar-roundCap",tags:[],title:"Rounded Bar on Polar",titleCN:"圆角环形图",difficulty:7},{category:["scatter"],id:"scatter-aqi-color",tags:[],title:"Scatter Aqi Color",titleCN:"AQI 气泡图",difficulty:7},{category:["scatter"],id:"scatter-nutrients",tags:[],title:"Scatter Nutrients",titleCN:"营养分布散点图",difficulty:7},{category:["scatter"],id:"scatter-nutrients-matrix",tags:[],title:"Scatter Nutrients Matrix",titleCN:"营养分布散点矩阵",difficulty:7},{category:["gauge"],id:"gauge-car",tags:[],title:"Gauge Car",titleCN:"Gauge Car",difficulty:8},{category:["graph"],id:"graph-webkit-dep",tags:[],title:"Graph Webkit Dep",titleCN:"WebKit 模块关系依赖图",difficulty:8},{category:["line"],id:"line-easing",tags:[],title:"Line Easing Visualizing",titleCN:"缓动函数可视化",difficulty:8},{category:["line"],id:"line-y-category",tags:[],title:"Line Y Category",titleCN:"垂直折线图(Y轴为类目轴)",difficulty:8},{category:["scatter"],id:"scatter-polar-punchCard",tags:[],title:"Punch Card of Github",titleCN:"GitHub 打卡气泡图(极坐标)",difficulty:8},{category:["custom"],id:"custom-aggregate-scatter-bar",tags:[],title:"Aggregate Morphing Between Scatter and Bar",titleCN:"聚合分割形变(散点图 - 柱状图)",difficulty:9},{category:["custom"],id:"custom-aggregate-scatter-pie",tags:[],title:"Aggregate Morphing Between Scatter and Pie",titleCN:"聚合分割形变(散点图 - 饼图)",difficulty:9},{category:["custom"],id:"custom-gauge",tags:[],title:"Custom Gauge",titleCN:"自定义仪表",difficulty:9},{category:["graph"],id:"graph-npm",tags:[],title:"NPM Dependencies",titleCN:"NPM 依赖关系图",difficulty:9},{category:["line"],id:"line-graphic",tags:[],title:"Custom Graphic Component",titleCN:"自定义图形组件",difficulty:9},{category:["line"],id:"line-pen",tags:[],title:"Click to Add Points",titleCN:"点击添加折线图拐点",difficulty:9},{category:["scatter"],id:"scatter-life-expectancy-timeline",tags:[],title:"Life Expectancy and GDP",titleCN:"各国人均寿命与GDP关系演变",difficulty:9},{category:["scatter"],id:"scatter-painter-choice",tags:[],title:"Master Painter Color Choices Throughout History",titleCN:"Master Painter Color Choices Throughout History",difficulty:9},{category:["boxplot"],id:"boxplot-light-velocity",tags:[],title:"Boxplot Light Velocity",titleCN:"基础盒须图",difficulty:10},{category:["boxplot"],id:"boxplot-light-velocity2",tags:[],title:"Boxplot Light Velocity2",titleCN:"垂直方向盒须图",difficulty:10},{category:["boxplot"],id:"boxplot-multi",tags:[],title:"Multiple Categories",titleCN:"多系列盒须图",difficulty:10},{category:[],id:"calendar-effectscatter",tags:[],difficulty:10},{category:["candlestick"],id:"candlestick-brush",tags:[],title:"Candlestick Brush",titleCN:"日力图刷选",difficulty:10},{category:["candlestick"],id:"candlestick-sh-2015",tags:[],title:"ShangHai Index, 2015",titleCN:"2015 年上证指数",difficulty:10},{category:[],id:"covid-america",tags:[],difficulty:10},{category:["custom"],id:"custom-aggregate-scatter-cluster",tags:[],title:"Aggregate Morphing Between Scatter Clustering",titleCN:"聚合分割形变(散点图聚类)",difficulty:10},{category:["scatter","map"],id:"effectScatter-bmap",tags:["bmap"],title:"Air Quality - Baidu Map",titleCN:"全国主要城市空气质量 - 百度地图",difficulty:10},{category:["funnel"],id:"funnel",tags:[],title:"Funnel Chart",titleCN:"漏斗图",difficulty:10},{category:["funnel"],id:"funnel-align",tags:[],title:"Funnel (align)",titleCN:"漏斗图(对比)",difficulty:10},{category:["funnel"],id:"funnel-customize",tags:[],title:"Customized Funnel",titleCN:"漏斗图",difficulty:10},{category:["funnel"],id:"funnel-mutiple",tags:[],title:"Multiple Funnels",titleCN:"漏斗图",difficulty:10},{category:["map"],id:"geo-beef-cuts",tags:[],title:"GEO Beef Cuts",titleCN:"庖丁解牛",difficulty:10},{category:["map"],id:"geo-lines",tags:[],title:"Migration",titleCN:"模拟迁徙",difficulty:10},{category:["map"],id:"geo-map-scatter",tags:[],title:"map and scatter share a geo",titleCN:"map and scatter share a geo",difficulty:10},{category:["map"],id:"geo-organ",tags:[],title:"Organ Data with SVG",titleCN:"内脏数据(SVG)",difficulty:10},{category:["map"],id:"geo-seatmap-flight",tags:[],title:"Flight Seatmap with SVG",titleCN:"航班选座(SVG)",difficulty:10},{category:["map"],id:"geo-svg-lines",tags:[],title:"GEO SVG Lines",titleCN:"GEO 路径图(SVG)",difficulty:10},{category:["map"],id:"geo-svg-map",tags:[],title:"GEO SVG Map",titleCN:"地图(SVG)",difficulty:10},{category:["map"],id:"geo-svg-traffic",tags:[],title:"GEO SVG Traffic",titleCN:"交通(SVG)",difficulty:10},{category:["line","drag"],id:"line-draggable",tags:[],title:"Try Dragging these Points",titleCN:"可拖拽点",difficulty:10},{category:["line"],id:"line-polar",tags:[],title:"Two Value-Axes in Polar",titleCN:"极坐标双数值轴",difficulty:10},{category:["line"],id:"line-polar2",tags:[],title:"Two Value-Axes in Polar",titleCN:"极坐标双数值轴",difficulty:10},{category:["line","dataZoom"],id:"line-tooltip-touch",tags:[],title:"Tooltip and DataZoom on Mobile",titleCN:"移动端上的 dataZoom 和 tooltip",difficulty:10},{category:["map","lines"],id:"lines-airline",tags:[],title:"65k+ Airline",titleCN:"65k+ 飞机航线",difficulty:10},{category:["map","lines"],id:"lines-bmap",tags:["bmap"],title:"A Hiking Trail in Hangzhou - Baidu Map",titleCN:"杭州热门步行路线 - 百度地图",difficulty:10},{category:["map","lines"],id:"lines-bmap-bus",tags:["bmap"],title:"Bus Lines of Beijing - Baidu Map",titleCN:"北京公交路线 - 百度地图",difficulty:10},{category:["map","lines"],id:"lines-bmap-effect",tags:["bmap"],title:"Bus Lines of Beijing - Line Effect",titleCN:"北京公交路线 - 线特效",difficulty:10},{category:["map","lines"],id:"lines-ny",tags:[],title:"Use lines to draw 1 million ny streets.",titleCN:"使用线图绘制近 100 万的纽约街道数据",difficulty:10},{category:["map"],id:"map-bin",tags:["bmap"],title:"Binning on Map",titleCN:"Binning on Map",difficulty:10},{category:["map"],id:"map-china",tags:[],title:"Map China",titleCN:"Map China",difficulty:10},{category:["map"],id:"map-china-dataRange",tags:[],title:"Sales of iphone",titleCN:"iphone销量",difficulty:10},{category:["map"],id:"map-HK",tags:[],title:"Population Density of HongKong (2011)",titleCN:"香港18区人口密度 (2011)",difficulty:10},{category:["map"],id:"map-labels",tags:[],title:"Rich Text Labels on Map",titleCN:"地图上的富文本标签",difficulty:10},{category:["map"],id:"map-locate",tags:[],title:"Map Locate",titleCN:"Map Locate",difficulty:10},{category:["map"],id:"map-polygon",tags:["bmap"],title:"Draw Polygon on Map",titleCN:"在地图上绘制多边形",difficulty:10},{category:["map"],id:"map-province",tags:[],title:"Switch among 34 Provinces",titleCN:"34 省切换查看",difficulty:10},{category:["map"],id:"map-usa",tags:[],title:"USA Population Estimates (2012)",titleCN:"USA Population Estimates (2012)",difficulty:10},{category:["map"],id:"map-world",tags:[],title:"Map World",titleCN:"Map World",difficulty:10},{category:["map"],id:"map-world-dataRange",tags:[],title:"World Population (2010)",titleCN:"World Population (2010)",difficulty:10},{category:["pictorialBar"],id:"pictorialBar-body-fill",tags:[],title:"Water Content",titleCN:"人体含水量",difficulty:10},{category:["pictorialBar"],id:"pictorialBar-dotted",tags:[],title:"Dotted bar",titleCN:"虚线柱状图效果",difficulty:10},{category:["pictorialBar"],id:"pictorialBar-forest",tags:[],title:"Expansion of forest",titleCN:"森林的增长",difficulty:10},{category:["pictorialBar"],id:"pictorialBar-hill",tags:[],title:"Wish List and Mountain Height",titleCN:"圣诞愿望清单和山峰高度",difficulty:10},{category:["pictorialBar"],id:"pictorialBar-spirit",tags:[],title:"Spirits",titleCN:"精灵",difficulty:10},{category:["pictorialBar"],id:"pictorialBar-vehicle",tags:[],title:"Vehicles",titleCN:"交通工具",difficulty:10},{category:["pictorialBar"],id:"pictorialBar-velocity",tags:[],title:"Velocity of Christmas Reindeers",titleCN:"驯鹿的速度",difficulty:10},{category:["radar"],id:"radar-multiple",tags:[],title:"Multiple Radar",titleCN:"多雷达图",difficulty:10},{category:["scatter"],id:"scatter-map",tags:[],title:"Air Quality",titleCN:"全国主要城市空气质量",difficulty:10},{category:["scatter"],id:"scatter-map-brush",tags:[],title:"Scatter Map Brush",titleCN:"Scatter Map Brush",difficulty:10},{category:["parallel","scatter"],id:"scatter-matrix",tags:[],title:"Scatter Matrix",titleCN:"散点矩阵和平行坐标",difficulty:10},{category:["scatter"],id:"scatter-weibo",tags:[],title:"Sign in of weibo",titleCN:"微博签到数据点亮中国",difficulty:10},{category:["scatter"],id:"scatter-world-population",tags:[],title:"World Population (2011)",titleCN:"World Population (2011)",difficulty:10},{category:["themeRiver"],id:"themeRiver-basic",tags:[],title:"ThemeRiver",titleCN:"主题河流图",difficulty:10},{category:["themeRiver"],id:"themeRiver-lastfm",tags:[],title:"ThemeRiver Lastfm",titleCN:"ThemeRiver Lastfm",difficulty:10},{category:["tree"],id:"tree-basic",tags:[],title:"From Left to Right Tree",titleCN:"从左到右树状图",difficulty:10},{category:["tree"],id:"tree-legend",tags:[],title:"Multiple Trees",titleCN:"多棵树",difficulty:10},{category:["tree"],id:"tree-orient-bottom-top",tags:[],title:"From Bottom to Top Tree",titleCN:"从下到上树状图",difficulty:10},{category:["tree"],id:"tree-orient-right-left",tags:[],title:"From Right to Left Tree",titleCN:"从右到左树状图",difficulty:10},{category:["tree"],id:"tree-polyline",tags:[],title:"Tree with Polyline Edge",titleCN:"折线树图",difficulty:10},{category:["tree"],id:"tree-radial",tags:[],title:"Radial Tree",titleCN:"径向树状图",difficulty:10},{category:["tree"],id:"tree-vertical",tags:[],title:"From Top to Bottom Tree",titleCN:"从上到下树状图",difficulty:10},{category:["treemap"],id:"treemap-disk",tags:[],title:"Disk Usage",titleCN:"磁盘占用",difficulty:10},{category:["treemap"],id:"treemap-drill-down",tags:[],title:"ECharts Option Query",titleCN:"ECharts 配置项查询分布",difficulty:10},{category:["treemap"],id:"treemap-obama",tags:[],title:"How $3.7 Trillion is Spent",titleCN:"How $3.7 Trillion is Spent",difficulty:10},{category:["treemap"],id:"treemap-show-parent",tags:[],title:"Show Parent Labels",titleCN:"显示父层级标签",difficulty:10},{category:["treemap"],id:"treemap-simple",tags:[],title:"Basic Treemap",titleCN:"基础矩形树图",difficulty:10},{category:["treemap"],id:"treemap-visual",tags:[],title:"Gradient Mapping",titleCN:"映射为渐变色",difficulty:10},{category:["calendar","scatter"],id:"calendar-charts",tags:[],title:"Calendar Charts",titleCN:"日力图",difficulty:11},{category:["custom"],id:"circle-packing-with-d3",tags:[],title:"Circle Packing with d3",titleCN:"Circle Packing with d3",difficulty:11},{category:["custom"],id:"custom-one-to-one-morph",tags:[],title:"One-to-one Morphing",titleCN:"一对一映射形变",difficulty:11},{category:["custom"],id:"custom-spiral-race",tags:[],title:"Custom Spiral Race",titleCN:"自定义螺旋线竞速",difficulty:11},{category:["custom"],id:"custom-story-transition",tags:[],title:"Simple Story Transition",titleCN:"极简场景变换示例",difficulty:11},{category:["scatter"],id:"scatter-logarithmic-regression",tags:[],title:"Logarithmic Regression",titleCN:"对数回归(使用统计插件)",difficulty:16}],Rt=[{category:["globe"],id:"animating-contour-on-globe",tags:[],title:"Animating Contour on Globe",titleCN:"Animating Contour on Globe",difficulty:10},{category:["bar3D"],id:"bar3d-dataset",tags:[],title:"3D Bar with Dataset",titleCN:"使用 dataset 为三维柱状图设置数据",difficulty:10},{category:["bar3D"],id:"bar3d-global-population",tags:[],title:"Bar3D - Global Population",titleCN:"Bar3D - Global Population",difficulty:10},{category:["bar3D"],id:"bar3d-myth",tags:[],title:"星云",titleCN:"星云",difficulty:10},{category:["bar3D"],id:"bar3d-noise-modified-from-marpi-demo",tags:[],title:"Noise modified from marpi's demo",titleCN:"Noise modified from marpi's demo",difficulty:10},{category:["bar3D"],id:"bar3d-punch-card",tags:[],title:"Bar3D - Punch Card",titleCN:"Bar3D - Punch Card",difficulty:10},{category:["bar3D"],id:"bar3d-simplex-noise",tags:[],theme:"dark",title:"Bar3D - Simplex Noise",titleCN:"Bar3D - Simplex Noise",difficulty:10},{category:["bar3D"],id:"bar3d-voxelize-image",tags:[],title:"Voxelize image",titleCN:"Voxelize image",difficulty:10},{category:["flowGL"],id:"flowGL-noise",tags:[],theme:"dark",title:"Flow on the cartesian",titleCN:"直角坐标系上的向量场",difficulty:10},{category:["geo3D"],id:"geo3d",tags:[],title:"Geo3D",titleCN:"Geo3D",difficulty:10},{category:["geo3D"],id:"geo3d-with-different-height",tags:[],title:"Geo3D with Different Height",titleCN:"Geo3D with Different Height",difficulty:10},{category:["bar3D"],id:"global-population-bar3d-on-globe",tags:[],title:"Global Population - Bar3D on Globe",titleCN:"Global Population - Bar3D on Globe",difficulty:10},{category:["flowGL"],id:"global-wind-visualization",tags:["bmap"],title:"Global wind visualization",titleCN:"Global wind visualization",difficulty:10},{category:["flowGL"],id:"global-wind-visualization-2",tags:["bmap"],title:"Global Wind Visualization 2",titleCN:"Global Wind Visualization 2",difficulty:10},{category:["globe"],id:"globe-atmosphere",tags:[],title:"Globe with Atmosphere",titleCN:"大气层显示",difficulty:10},{category:["globe"],id:"globe-contour-paint",tags:[],title:"Contour Paint",titleCN:"Contour Paint",difficulty:10},{category:["globe"],id:"globe-country-carousel",tags:[],title:"Country Carousel",titleCN:"Country Carousel",difficulty:10},{category:["globe"],id:"globe-displacement",tags:[],title:"Globe Displacement",titleCN:"Globe Displacement",difficulty:10},{category:["globe"],id:"globe-echarts-gl-hello-world",tags:[],title:"ECharts-GL Hello World",titleCN:"ECharts-GL Hello World",difficulty:10},{category:["globe"],id:"globe-layers",tags:[],title:"Globe Layers",titleCN:"Globe Layers",difficulty:10},{category:["globe"],id:"globe-moon",tags:[],title:"Moon",titleCN:"Moon",difficulty:10},{category:["globe"],id:"globe-with-echarts-surface",tags:[],title:"Globe with ECharts Surface",titleCN:"Globe with ECharts Surface",difficulty:10},{category:["graphGL"],id:"graphgl-gpu-layout",tags:[],theme:"dark",title:"GraphGL GPU Layout",titleCN:"GraphGL GPU Layout",difficulty:10},{category:["graphGL"],id:"graphgl-large-internet",tags:[],theme:"dark",title:"GraphGL - Large Internet",titleCN:"GraphGL - Large Internet",difficulty:10},{category:["graphGL"],id:"graphgl-npm-dep",tags:[],theme:"dark",title:"NPM Dependencies with graphGL",titleCN:"1w 节点 2w7 边的NPM 依赖图",difficulty:10},{category:["surface"],id:"image-surface-sushuang",tags:[],title:"Image Surface Sushuang",titleCN:"Image Surface Sushuang",difficulty:10},{category:["bar3D"],id:"image-to-bar3d",tags:[],title:"Image to Bar3D",titleCN:"Image to Bar3D",difficulty:10},{category:["globe"],id:"iron-globe",tags:[],title:"Iron globe",titleCN:"Iron globe",difficulty:10},{category:["line3D"],id:"line3d-orthographic",tags:[],title:"三维折线图正交投影",titleCN:"三维折线图正交投影",difficulty:10},{category:["lines3D"],id:"lines3d-airline-on-globe",tags:[],title:"Airline on Globe",titleCN:"Airline on Globe",difficulty:10},{category:["lines3D"],id:"lines3d-flights",tags:[],title:"Flights",titleCN:"Flights",difficulty:10},{category:["lines3D"],id:"lines3d-flights-gl",tags:[],title:"Flights GL",titleCN:"Flights GL",difficulty:10},{category:["lines3D"],id:"lines3d-flights-on-geo3d",tags:[],title:"Flights on Geo3D",titleCN:"Flights on Geo3D",difficulty:10},{category:["linesGL"],id:"linesGL-ny",tags:[],title:"Use linesGL to draw 1 million ny streets.",titleCN:"实时交互的纽约街道可视化",difficulty:10},{category:["map3D"],id:"map3d-alcohol-consumption",tags:[],title:"Map3D - Alcohol Consumption",titleCN:"Map3D - Alcohol Consumption",difficulty:10},{category:["map3D"],id:"map3d-buildings",tags:[],title:"Buildings",titleCN:"Buildings",difficulty:10},{category:["map3D"],id:"map3d-wood-city",tags:[],title:"Wood City",titleCN:"Wood City",difficulty:10},{category:["map3D"],id:"map3d-wood-map",tags:[],title:"木质世界地图",titleCN:"木质世界地图",difficulty:10},{category:["bar3D"],id:"metal-bar3d",tags:[],title:"Metal Bar3D",titleCN:"Metal Bar3D",difficulty:10},{category:["surface"],id:"metal-surface",tags:[],title:"Metal Surface",titleCN:"Metal Surface",difficulty:10},{category:["surface"],id:"parametric-surface-rose",tags:[],title:"Parametric Surface Rose",titleCN:"Parametric Surface Rose",difficulty:10},{category:["scatter3D"],id:"scatter3d",tags:[],theme:"dark",title:"Scatter3D",titleCN:"Scatter3D",difficulty:10},{category:["scatter3D"],id:"scatter3D-dataset",tags:[],title:"3D Scatter with Dataset",titleCN:"使用 dataset 为三维散点图设置数据",difficulty:10},{category:["scatter3D"],id:"scatter3d-globe-population",tags:[],title:"Scatter3D - Globe Population",titleCN:"Scatter3D - Globe Population",difficulty:10},{category:["scatter3D"],id:"scatter3d-orthographic",tags:[],theme:"dark",title:"三维散点图正交投影",titleCN:"三维散点图正交投影",difficulty:10},{category:["scatter3D"],id:"scatter3d-scatter",tags:[],title:"3D Scatter with Scatter Matrix",titleCN:"三维散点图和散点矩阵结合使用",difficulty:10},{category:["scatter3D"],id:"scatter3d-simplex-noise",tags:[],theme:"dark",title:"Scatter3D - Simplex Noise",titleCN:"Scatter3D - Simplex Noise",difficulty:10},{category:["scatterGL"],id:"scatterGL-gps",tags:[],title:"10 million Bulk GPS points",titleCN:"1 千万 GPS 点可视化",difficulty:10},{category:["scatterGL"],id:"scattergl-weibo",tags:[],theme:"dark",title:"微博签到数据点亮中国",titleCN:"微博签到数据点亮中国",difficulty:10},{category:["surface"],id:"simple-surface",tags:[],title:"Simple Surface",titleCN:"Simple Surface",difficulty:10},{category:["surface"],id:"sphere-parametric-surface",tags:[],title:"Sphere Parametric Surface",titleCN:"Sphere Parametric Surface",difficulty:10},{category:["bar3D"],id:"stacked-bar3d",tags:[],title:"Stacked Bar3D",titleCN:"Stacked Bar3D",difficulty:10},{category:["surface"],id:"surface-breather",tags:[],title:"Breather",titleCN:"Breather",difficulty:10},{category:["surface"],id:"surface-golden-rose",tags:[],title:"Golden Rose",titleCN:"Golden Rose",difficulty:10},{category:["surface"],id:"surface-leather",tags:[],title:"皮革材质",titleCN:"皮革材质",difficulty:10},{category:["surface"],id:"surface-mollusc-shell",tags:[],title:"Mollusc Shell",titleCN:"Mollusc Shell",difficulty:10},{category:["surface"],id:"surface-theme-roses",tags:[],title:"Theme Roses",titleCN:"Theme Roses",difficulty:10},{category:["surface"],id:"surface-wave",tags:[],title:"Surface Wave",titleCN:"Surface Wave",difficulty:10},{category:["bar3D"],id:"transparent-bar3d",tags:[],title:"Transparent Bar3D",titleCN:"Transparent Bar3D",difficulty:10}];var It=ut.sourceCode.indexOf("ROOT_PATH")>=0?"var ROOT_PATH = '".concat(ut.cdnRoot,"'"):"";function Bt(t){return function(t){if(Array.isArray(t))return jt(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return jt(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?jt(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function jt(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}function Gt(t){return rt.c===t.id}var zt=Ft.concat(Rt).find(Gt),$t=Rt.find(Gt);function Ut(t){ut.enableDecal&&(t.aria=t.aria||{},t.aria.decal=t.aria.decal||{},t.aria.decal.show=!0,t.aria.show=t.aria.enabled=!0)}function Zt(){if("undefined"==typeof echarts){var t=zt&&zt.tags.indexOf("bmap")>=0;return t&&(window.HOST_TYPE="2",window.BMap_loadScriptTime=(new Date).getTime()),at([ct.datGUIMinJS,"local"in rt?ct.localEChartsMinJS:ct.echartsMinJS,ct.echartsDir+"/dist/extension/dataTool.js","https://cdn.jsdelivr.net/npm/echarts@4.9.0/map/js/world.js",ct.echartsStatMinJS].concat(Bt(rt.gl?[ct.echartsGLMinJS]:[]),Bt(t?["https://api.map.baidu.com/getscript?v=3.0&ak=KOmVjPVUAey1G2E8zNhPiuQ6QiEmAwZu&services=&t=20200327103013",ct.echartsDir+"/dist/extension/bmap.js"]:[]))).then((function(){echarts.registerPreprocessor(Ut)}))}return Promise.resolve()}function Vt(t,e){"warn"!==e&&"error"!==e&&(e="info"),ut.editorStatus.message=t,ut.editorStatus.type=e}var Wt=gt({props:["inEditor"],data:function(){return{shared:ut,debouncedTime:void 0,backgroundColor:"",autoRun:!0,loading:!1,isGL:$t}},mounted:function(){var t=this;this.loading=!0,Zt().then((function(){t.loading=!1,ut.runCode&&t.run()})),Ot(this.$el,(function(){t.sandbox&&t.sandbox.resize()}))},computed:{editLink:function(){var t=["c="+rt.c];return rt.theme&&t.push(["theme="+rt.theme]),rt.gl&&t.push(["gl="+rt.gl]),"./editor.html?"+t.join("&")}},watch:{"shared.runCode":function(t){!this.autoRun&&this.sandbox||(this.debouncedRun?this.debouncedRun():this.run())},"shared.renderer":function(){this.refreshAll()},"shared.darkMode":function(){this.refreshAll()},"shared.enableDecal":function(){this.refreshAll()},"shared.useDirtyRect":function(){this.refreshAll()}},methods:{run:function t(){var e=this;if("undefined"!=typeof echarts){this.sandbox||(this.sandbox=function(t){var e,n={},a=[],i=[],o=window.setTimeout,r=window.setInterval;function l(t,e){var n=o(t,e);return i.push(n),n}function s(t,e){var n=r(t,e);return a.push(n),n}var c,u=[];return{resize:function(){c&&c.resize()},dispose:function(){c&&(c.dispose(),c=null)},getDataURL:function(){return c.getDataURL({pixelRatio:2,excludeComponents:["toolbox"]})},getOption:function(){return c.getOption()},run:function(o,r){if(!c){if(c=echarts.init(o,r.darkMode?"dark":"",{renderer:r.renderer,useDirtyRect:r.useDirtyRect}),r.useDirtyRect&&"canvas"===r.renderer)try{!function(t,e){e=e||{};var n=t.painter;if(!n.getLayers)throw new Error("Debug dirty rect can only been used on canvas renderer.");if(n.isSingleCanvas())throw new Error("Debug dirty rect can only been used on zrender inited with container.");var a=document.createElement("div");a.style.cssText="\nposition:absolute;\nleft:0;\ntop:0;\nright:0;\nbottom:0;\npointer-events:none;\n",a.className="ec-debug-dirty-rect-container";var i=[],o=t.dom;o.appendChild(a),"static"===getComputedStyle(o).position&&(o.style.position="relative"),t.on("rendered",(function(){if(n.getLayers){var t=0;n.eachBuiltinLayer((function(n){if(n.debugGetPaintRects)for(var o=n.debugGetPaintRects(),r=0;r<o.length;r++)i[t]||(i[t]=new vt(e.style),a.appendChild(i[t].dom)),i[t].show(),i[t].update(o[r]),t++}));for(var o=t;o<i.length;o++)i[o].hide()}}))}(c.getZr(),{autoHideDelay:500})}catch(t){console.error(t)}p=(d=c).on,f=d.setOption,d.on=function(t){var e=p.apply(d,arguments);return u.push(t),e},d.setOption=function(){var e=f.apply(this,arguments);return t&&t(d),e}}var d,p,f;!function(){for(var t=0;t<a.length;t++)clearInterval(a[t]);for(t=0;t<i.length;t++)clearTimeout(i[t]);a=[],i=[]}(),function(t){u.forEach((function(e){t&&t.off(e)})),u.length=0}(c),n.config=null;var g=r.runCode,m=new Function("myChart","app","setTimeout","setInterval","ROOT_PATH","var option;\n"+g+"\nreturn option;")(c,n,l,s,r.cdnRoot),h=0;if(m&&"object"===bt(m)){var C=+new Date;c.setOption(m,!0),h=+new Date-C}if(e&&($(e.domElement).remove(),e.destroy(),e=null),n.config){e=new dat.GUI({autoPlace:!1}),$(e.domElement).css({position:"absolute",right:5,top:0,zIndex:1e3}),$(".right-container").append(e.domElement);var y=n.configParameters||{};for(var v in n.config){var b=n.config[v];if("onChange"!==v&&"onFinishChange"!==v){var _=!1,L=null;if(y[v]&&(y[v].options?L=e.add(n.config,v,y[v].options):null!=y[v].min&&(L=e.add(n.config,v,y[v].min,y[v].max))),"string"==typeof obj)try{var w=echarts.color.parse(b);(_=!!w)&&(b=echarts.color.stringify(w,"rgba"))}catch(t){}L||(L=e[_?"addColor":"add"](n.config,v)),n.config.onChange&&L.onChange(n.config.onChange),n.config.onFinishChange&&L.onFinishChange(n.config.onFinishChange)}}}return h}}}((function(t){var n=t.getOption();"string"==typeof n.backgroundColor&&"transparent"!==n.backgroundColor?e.backgroundColor=n.backgroundColor:e.backgroundColor="#fff"})));try{var n=this.sandbox.run(this.$el.querySelector(".chart-container"),ut);Vt(this.$t("editor.chartOK")+n+"ms");for(var a=[0,500,2e3,5e3,1e4],i=a.length-1;i>=0;i--){var o=a[i+1]||1e6;if(n>=a[i]&&this.debouncedTime!==o){this.debouncedRun=Lt()(t,o,{trailing:!0}),this.debouncedTime=o;break}}ut.runHash=ft++}catch(t){Vt(this.$t("editor.errorInEditor"),"error"),console.error(t)}}},refreshAll:function(){this.dispose(),this.run()},dispose:function(){this.sandbox&&this.sandbox.dispose()},downloadExample:function(){var t;t="\x3c!--\n    THIS EXAMPLE WAS DOWNLOADED FROM ".concat(window.location.href,'\n--\x3e\n<!DOCTYPE html>\n<html style="height: 100%">\n    <head>\n        <meta charset="utf-8">\n    </head>\n    <body style="height: 100%; margin: 0">\n        <div id="container" style="height: 100%"></div>\n\n        <script type="text/javascript" src="').concat(ct.echartsMinJS,'"><\/script>\n        \x3c!-- Uncomment this line if you want to dataTool extension\n        <script type="text/javascript" src="').concat(ct.echartsDir,'/dist/extension/dataTool.min.js"><\/script>\n        --\x3e\n        \x3c!-- Uncomment this line if you want to use gl extension\n        <script type="text/javascript" src="').concat(ct.echartsGLMinJS,'"><\/script>\n        --\x3e\n        \x3c!-- Uncomment this line if you want to echarts-stat extension\n        <script type="text/javascript" src="').concat(ct.echartsStatMinJS,'"><\/script>\n        --\x3e\n        \x3c!-- Uncomment this line if you want to use map\n        <script type="text/javascript" src="').concat(ct.echartsDir,'/map/js/china.js"><\/script>\n        <script type="text/javascript" src="').concat(ct.echartsDir,'/map/js/world.js"><\/script>\n        --\x3e\n        \x3c!-- Uncomment these two lines if you want to use bmap extension\n        <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=<Your Key Here>"><\/script>\n        <script type="text/javascript" src="').concat(ct.echartsDir,'/dist/extension/bmap.min.js"><\/script>\n        --\x3e\n\n        <script type="text/javascript">\nvar dom = document.getElementById("container");\nvar myChart = echarts.init(dom);\nvar app = {};\n\nvar option;\n\n').concat(It,"\n\n").concat(ut.sourceCode,"\n\nif (option && typeof option === 'object') {\n    myChart.setOption(option);\n}\n\n        <\/script>\n    </body>\n</html>\n    "),function(t,e){if("function"==typeof window.navigator.msSaveBlob)window.navigator.msSaveOrOpenBlob(t,e);else{var n=document.createElement("a");n.href=URL.createObjectURL(t),n.download=e,n.click(),URL.revokeObjectURL(n.href)}}(new Blob([t],{type:"text/html;charset=UTF-8",encoding:"UTF-8"}),rt.c+".html")},screenshot:function(){if(this.sandbox){var t=this.sandbox.getDataURL(),e=document.createElement("a");e.download=rt.c+"."+("svg"===ut.renderer?"svg":"png"),e.target="_blank",e.href=t;var n=new MouseEvent("click",{bubbles:!0,cancelable:!1});e.dispatchEvent(n)}},getOption:function(){return this.sandbox&&this.sandbox.getOption()}}},yt,[],!1,null,null,null);Wt.options.__file="src/editor/Preview.vue";const Ht=Wt.exports;var qt=gt({props:["initialCode"],data:function(){return{shared:ut,loading:!1}},mounted:function(){var t=this;this.loading=!0,Zt().then((function(){return"undefined"==typeof monaco?at([ct.monacoDir+"/loader.js",ut.cdnRoot+"/js/example-transform-ts-bundle.js"]).then((function(){return window.require.config({paths:{vs:ct.monacoDir}}),new Promise((function(t){window.require(["vs/editor/editor.main"],(function(){fetch(ut.cdnRoot+"/types/echarts.d.ts",{mode:"cors"}).then((function(t){return t.text()})).then((function(t){monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({noSemanticValidation:!1,noSyntaxValidation:!1}),monaco.languages.typescript.typescriptDefaults.setCompilerOptions({target:monaco.languages.typescript.ScriptTarget.ES6,allowNonTsExtensions:!0,noResolve:!1}),monaco.languages.typescript.typescriptDefaults.addExtraLib(t,"file:///node_modules/@types/echarts/index.d.ts"),monaco.languages.typescript.typescriptDefaults.addExtraLib("import {init, EChartsOption} from 'echarts';\n// Declare to global namespace.\ndeclare global {\ndeclare const $: any;\ndeclare const ROOT_PATH: string;\ndeclare const app: {\n    configParameters: {\n        [key: string]: ({\n            options: { [key: string]: string\n        }) | ({\n            min?: number\n            max?: number\n        })\n    }\n    config: {\n        onChange: () => void\n        [key: string]: string | number | function\n    }\n    [key: string]: any\n};\ndeclare const myChart: ReturnType<typeof init>;\ndeclare var option: EChartsOption;\n}\n","file:///example.d.ts")})).then((function(){t()}))}))}))})):Promise.resolve()})).then((function(){t.loading=!1;var e=monaco.editor.createModel(t.initialCode||"","typescript",monaco.Uri.parse("file:///main.ts")),n=monaco.editor.create(t.$el,{model:e,fontFamily:"'Source Code Pro', 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace",minimap:{enabled:!1},automaticLayout:!0});t._editor=n,t.initialCode&&(ut.sourceCode=t.initialCode,ut.runCode=echartsExampleTransformTs(ut.sourceCode)),n.onDidChangeModelContent((function(){ut.sourceCode=n.getValue(),ut.runCode=echartsExampleTransformTs(ut.sourceCode)}))}))},destroyed:function(){this._editor&&(this._editor.getModel().dispose(),this._editor.dispose())},methods:{setInitialCode:function(t){this._editor&&t&&this._editor.setValue(t||"")}},watch:{initialCode:function(t){this.setInitialCode(t)}}},Ct,[],!1,null,null,null);qt.options.__file="src/editor/CodeMonaco.vue";const Kt=qt.exports;var Jt=function(){var t=this,e=t.$createElement;return(t._self._c||e)("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"full-code-preview"})};Jt._withStripped=!0;var Xt=gt({props:["code"],data:function(){return{shared:ut,loading:!1}},mounted:function(){var t=this;this.loading=!0,("undefined"==typeof ace?at([ct.aceDir+"/ace.js"]):Promise.resolve()).then((function(){t.loading=!1;var e=ace.edit(t.$el);e.getSession().setMode("ace/mode/javascript"),e.setOptions({readOnly:!0,showLineNumbers:!1,showFoldWidgets:!1,highlightActiveLine:!1,highlightGutterLine:!1}),e.renderer.$cursorLayer.element.style.display="none",t._editor=e,t.setCode(t.code)}))},methods:{setCode:function(t){this._editor&&(this._editor.setValue(t),this._editor.selection.setSelectionRange({start:{row:1,column:4},end:{row:1,column:4}}))}},watch:{code:function(t){this.setCode(t)}}},Jt,[],!1,null,null,null);Xt.options.__file="src/editor/FullCodePreview.vue";const Yt=Xt.exports;var Qt=n(913);function te(t,e){const n=Object.create(null),a=t.split(",");for(let t=0;t<a.length;t++)n[a[t]]=!0;return e?t=>!!n[t.toLowerCase()]:t=>!!n[t]}const ee=te("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl"),ne=te("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function ae(t){if(_e(t)){const e={};for(let n=0;n<t.length;n++){const a=t[n],i=ae(ke(a)?re(a):a);if(i)for(const t in i)e[t]=i[t]}return e}if(Ne(t))return t}const ie=/;(?![^(]*\))/g,oe=/:(.+)/;function re(t){const e={};return t.split(ie).forEach((t=>{if(t){const n=t.split(oe);n.length>1&&(e[n[0].trim()]=n[1].trim())}})),e}function le(t){let e="";if(ke(t))e=t;else if(_e(t))for(let n=0;n<t.length;n++)e+=le(t[n])+" ";else if(Ne(t))for(const n in t)t[n]&&(e+=n+" ");return e.trim()}const se=t=>null==t?"":Ne(t)?JSON.stringify(t,ce,2):String(t),ce=(t,e)=>Le(e)?{[`Map(${e.size})`]:[...e.entries()].reduce(((t,[e,n])=>(t[`${e} =>`]=n,t)),{})}:we(e)?{[`Set(${e.size})`]:[...e.values()]}:!Ne(e)||_e(e)||De(e)?e:String(e),ue={},de=[],pe=()=>{},fe=()=>!1,ge=/^on[^a-z]/,me=t=>ge.test(t),he=t=>t.startsWith("onUpdate:"),Ce=Object.assign,ye=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},ve=Object.prototype.hasOwnProperty,be=(t,e)=>ve.call(t,e),_e=Array.isArray,Le=t=>"[object Map]"===Oe(t),we=t=>"[object Set]"===Oe(t),xe=t=>"function"==typeof t,ke=t=>"string"==typeof t,Se=t=>"symbol"==typeof t,Ne=t=>null!==t&&"object"==typeof t,Me=t=>Ne(t)&&xe(t.then)&&xe(t.catch),Te=Object.prototype.toString,Oe=t=>Te.call(t),De=t=>"[object Object]"===Oe(t),Ae=t=>ke(t)&&"NaN"!==t&&"-"!==t[0]&&""+parseInt(t,10)===t,Ee=te(",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Pe=t=>{const e=Object.create(null);return n=>e[n]||(e[n]=t(n))},Fe=/-(\w)/g,Re=Pe((t=>t.replace(Fe,((t,e)=>e?e.toUpperCase():"")))),Ie=/\B([A-Z])/g,Be=Pe((t=>t.replace(Ie,"-$1").toLowerCase())),je=Pe((t=>t.charAt(0).toUpperCase()+t.slice(1))),Ge=Pe((t=>t?`on${je(t)}`:"")),ze=(t,e)=>t!==e&&(t==t||e==e),$e=(t,e)=>{for(let n=0;n<t.length;n++)t[n](e)},Ue=(t,e,n)=>{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:n})},Ze=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let Ve;const We=()=>Ve||(Ve="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:{}),He=new WeakMap,qe=[];let Ke;const Je=Symbol(""),Xe=Symbol("");function Ye(t,e=ue){(function(t){return t&&!0===t._isEffect})(t)&&(t=t.raw);const n=function(t,e){const n=function(){if(!n.active)return e.scheduler?void 0:t();if(!qe.includes(n)){en(n);try{return an.push(nn),nn=!0,qe.push(n),Ke=n,t()}finally{qe.pop(),rn(),Ke=qe[qe.length-1]}}};return n.id=tn++,n.allowRecurse=!!e.allowRecurse,n._isEffect=!0,n.active=!0,n.raw=t,n.deps=[],n.options=e,n}(t,e);return e.lazy||n(),n}function Qe(t){t.active&&(en(t),t.options.onStop&&t.options.onStop(),t.active=!1)}let tn=0;function en(t){const{deps:e}=t;if(e.length){for(let n=0;n<e.length;n++)e[n].delete(t);e.length=0}}let nn=!0;const an=[];function on(){an.push(nn),nn=!1}function rn(){const t=an.pop();nn=void 0===t||t}function ln(t,e,n){if(!nn||void 0===Ke)return;let a=He.get(t);a||He.set(t,a=new Map);let i=a.get(n);i||a.set(n,i=new Set),i.has(Ke)||(i.add(Ke),Ke.deps.push(i))}function sn(t,e,n,a,i,o){const r=He.get(t);if(!r)return;const l=new Set,s=t=>{t&&t.forEach((t=>{(t!==Ke||t.allowRecurse)&&l.add(t)}))};if("clear"===e)r.forEach(s);else if("length"===n&&_e(t))r.forEach(((t,e)=>{("length"===e||e>=a)&&s(t)}));else switch(void 0!==n&&s(r.get(n)),e){case"add":_e(t)?Ae(n)&&s(r.get("length")):(s(r.get(Je)),Le(t)&&s(r.get(Xe)));break;case"delete":_e(t)||(s(r.get(Je)),Le(t)&&s(r.get(Xe)));break;case"set":Le(t)&&s(r.get(Je))}l.forEach((t=>{t.options.scheduler?t.options.scheduler(t):t()}))}const cn=new Set(Object.getOwnPropertyNames(Symbol).map((t=>Symbol[t])).filter(Se)),un=mn(),dn=mn(!1,!0),pn=mn(!0),fn=mn(!0,!0),gn={};function mn(t=!1,e=!1){return function(n,a,i){if("__v_isReactive"===a)return!t;if("__v_isReadonly"===a)return t;if("__v_raw"===a&&i===(t?$n:zn).get(n))return n;const o=_e(n);if(!t&&o&&be(gn,a))return Reflect.get(gn,a,i);const r=Reflect.get(n,a,i);return(Se(a)?cn.has(a):"__proto__"===a||"__v_isRef"===a)?r:(t||ln(n,0,a),e?r:Xn(r)?o&&Ae(a)?r:r.value:Ne(r)?t?Zn(r):Un(r):r)}}function hn(t=!1){return function(e,n,a,i){const o=e[n];if(!t&&(a=Kn(a),!_e(e)&&Xn(o)&&!Xn(a)))return o.value=a,!0;const r=_e(e)&&Ae(n)?Number(n)<e.length:be(e,n),l=Reflect.set(e,n,a,i);return e===Kn(i)&&(r?ze(a,o)&&sn(e,"set",n,a):sn(e,"add",n,a)),l}}["includes","indexOf","lastIndexOf"].forEach((t=>{const e=Array.prototype[t];gn[t]=function(...t){const n=Kn(this);for(let t=0,e=this.length;t<e;t++)ln(n,0,t+"");const a=e.apply(n,t);return-1===a||!1===a?e.apply(n,t.map(Kn)):a}})),["push","pop","shift","unshift","splice"].forEach((t=>{const e=Array.prototype[t];gn[t]=function(...t){on();const n=e.apply(this,t);return rn(),n}}));const Cn={get:un,set:hn(),deleteProperty:function(t,e){const n=be(t,e),a=(t[e],Reflect.deleteProperty(t,e));return a&&n&&sn(t,"delete",e,void 0),a},has:function(t,e){const n=Reflect.has(t,e);return Se(e)&&cn.has(e)||ln(t,0,e),n},ownKeys:function(t){return ln(t,0,_e(t)?"length":Je),Reflect.ownKeys(t)}},yn={get:pn,set:(t,e)=>!0,deleteProperty:(t,e)=>!0},vn=Ce({},Cn,{get:dn,set:hn(!0)}),bn=(Ce({},yn,{get:fn}),t=>Ne(t)?Un(t):t),_n=t=>Ne(t)?Zn(t):t,Ln=t=>t,wn=t=>Reflect.getPrototypeOf(t);function xn(t,e,n=!1,a=!1){const i=Kn(t=t.__v_raw),o=Kn(e);e!==o&&!n&&ln(i,0,e),!n&&ln(i,0,o);const{has:r}=wn(i),l=n?_n:a?Ln:bn;return r.call(i,e)?l(t.get(e)):r.call(i,o)?l(t.get(o)):void 0}function kn(t,e=!1){const n=this.__v_raw,a=Kn(n),i=Kn(t);return t!==i&&!e&&ln(a,0,t),!e&&ln(a,0,i),t===i?n.has(t):n.has(t)||n.has(i)}function Sn(t,e=!1){return t=t.__v_raw,!e&&ln(Kn(t),0,Je),Reflect.get(t,"size",t)}function Nn(t){t=Kn(t);const e=Kn(this),n=wn(e).has.call(e,t);return e.add(t),n||sn(e,"add",t,t),this}function Mn(t,e){e=Kn(e);const n=Kn(this),{has:a,get:i}=wn(n);let o=a.call(n,t);o||(t=Kn(t),o=a.call(n,t));const r=i.call(n,t);return n.set(t,e),o?ze(e,r)&&sn(n,"set",t,e):sn(n,"add",t,e),this}function Tn(t){const e=Kn(this),{has:n,get:a}=wn(e);let i=n.call(e,t);i||(t=Kn(t),i=n.call(e,t)),a&&a.call(e,t);const o=e.delete(t);return i&&sn(e,"delete",t,void 0),o}function On(){const t=Kn(this),e=0!==t.size,n=t.clear();return e&&sn(t,"clear",void 0,void 0),n}function Dn(t,e){return function(n,a){const i=this,o=i.__v_raw,r=Kn(o),l=t?_n:e?Ln:bn;return!t&&ln(r,0,Je),o.forEach(((t,e)=>n.call(a,l(t),l(e),i)))}}function An(t,e,n){return function(...a){const i=this.__v_raw,o=Kn(i),r=Le(o),l="entries"===t||t===Symbol.iterator&&r,s="keys"===t&&r,c=i[t](...a),u=e?_n:n?Ln:bn;return!e&&ln(o,0,s?Xe:Je),{next(){const{value:t,done:e}=c.next();return e?{value:t,done:e}:{value:l?[u(t[0]),u(t[1])]:u(t),done:e}},[Symbol.iterator](){return this}}}}function En(t){return function(...e){return"delete"!==t&&this}}const Pn={get(t){return xn(this,t)},get size(){return Sn(this)},has:kn,add:Nn,set:Mn,delete:Tn,clear:On,forEach:Dn(!1,!1)},Fn={get(t){return xn(this,t,!1,!0)},get size(){return Sn(this)},has:kn,add:Nn,set:Mn,delete:Tn,clear:On,forEach:Dn(!1,!0)},Rn={get(t){return xn(this,t,!0)},get size(){return Sn(this,!0)},has(t){return kn.call(this,t,!0)},add:En("add"),set:En("set"),delete:En("delete"),clear:En("clear"),forEach:Dn(!0,!1)};function In(t,e){const n=e?Fn:t?Rn:Pn;return(e,a,i)=>"__v_isReactive"===a?!t:"__v_isReadonly"===a?t:"__v_raw"===a?e:Reflect.get(be(n,a)&&a in e?n:e,a,i)}["keys","values","entries",Symbol.iterator].forEach((t=>{Pn[t]=An(t,!1,!1),Rn[t]=An(t,!0,!1),Fn[t]=An(t,!1,!0)}));const Bn={get:In(!1,!1)},jn={get:In(!1,!0)},Gn={get:In(!0,!1)},zn=new WeakMap,$n=new WeakMap;function Un(t){return t&&t.__v_isReadonly?t:Vn(t,!1,Cn,Bn)}function Zn(t){return Vn(t,!0,yn,Gn)}function Vn(t,e,n,a){if(!Ne(t))return t;if(t.__v_raw&&(!e||!t.__v_isReactive))return t;const i=e?$n:zn,o=i.get(t);if(o)return o;const r=function(t){return t.__v_skip||!Object.isExtensible(t)?0:function(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((t=>Oe(t).slice(8,-1))(t))}(t);if(0===r)return t;const l=new Proxy(t,2===r?a:n);return i.set(t,l),l}function Wn(t){return Hn(t)?Wn(t.__v_raw):!(!t||!t.__v_isReactive)}function Hn(t){return!(!t||!t.__v_isReadonly)}function qn(t){return Wn(t)||Hn(t)}function Kn(t){return t&&Kn(t.__v_raw)||t}const Jn=t=>Ne(t)?Un(t):t;function Xn(t){return Boolean(t&&!0===t.__v_isRef)}function Yn(t){return function(t,e=!1){return Xn(t)?t:new Qn(t,e)}(t)}class Qn{constructor(t,e=!1){this._rawValue=t,this._shallow=e,this.__v_isRef=!0,this._value=e?t:Jn(t)}get value(){return ln(Kn(this),0,"value"),this._value}set value(t){ze(Kn(t),this._rawValue)&&(this._rawValue=t,this._value=this._shallow?t:Jn(t),sn(Kn(this),"set","value",t))}}const ta={get:(t,e,n)=>function(t){return Xn(t)?t.value:t}(Reflect.get(t,e,n)),set:(t,e,n,a)=>{const i=t[e];return Xn(i)&&!Xn(n)?(i.value=n,!0):Reflect.set(t,e,n,a)}};function ea(t){return Wn(t)?t:new Proxy(t,ta)}class na{constructor(t,e){this._object=t,this._key=e,this.__v_isRef=!0}get value(){return this._object[this._key]}set value(t){this._object[this._key]=t}}class aa{constructor(t,e,n){this._setter=e,this._dirty=!0,this.__v_isRef=!0,this.effect=Ye(t,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,sn(Kn(this),"set","value"))}}),this.__v_isReadonly=n}get value(){return this._dirty&&(this._value=this.effect(),this._dirty=!1),ln(Kn(this),0,"value"),this._value}set value(t){this._setter(t)}}function ia(t,e,n,a){let i;try{i=a?t(...a):t()}catch(t){ra(t,e,n)}return i}function oa(t,e,n,a){if(xe(t)){const i=ia(t,e,n,a);return i&&Me(i)&&i.catch((t=>{ra(t,e,n)})),i}const i=[];for(let o=0;o<t.length;o++)i.push(oa(t[o],e,n,a));return i}function ra(t,e,n,a=!0){if(e&&e.vnode,e){let a=e.parent;const i=e.proxy,o=n;for(;a;){const e=a.ec;if(e)for(let n=0;n<e.length;n++)if(!1===e[n](t,i,o))return;a=a.parent}const r=e.appContext.config.errorHandler;if(r)return void ia(r,null,10,[t,i,o])}!function(t,e,n,a=!0){console.error(t)}(t,0,0,a)}let la=!1,sa=!1;const ca=[];let ua=0;const da=[];let pa=null,fa=0;const ga=[];let ma=null,ha=0;const Ca=Promise.resolve();let ya=null,va=null;function ba(t){const e=ya||Ca;return t?e.then(this?t.bind(this):t):e}function _a(t){ca.length&&ca.includes(t,la&&t.allowRecurse?ua+1:ua)||t===va||(ca.push(t),La())}function La(){la||sa||(sa=!0,ya=Ca.then(Na))}function wa(t,e,n,a){_e(t)?n.push(...t):e&&e.includes(t,t.allowRecurse?a+1:a)||n.push(t),La()}function xa(t,e=null){if(da.length){for(va=e,pa=[...new Set(da)],da.length=0,fa=0;fa<pa.length;fa++)pa[fa]();pa=null,fa=0,va=null,xa(t,e)}}function ka(t){if(ga.length){const t=[...new Set(ga)];if(ga.length=0,ma)return void ma.push(...t);for(ma=t,ma.sort(((t,e)=>Sa(t)-Sa(e))),ha=0;ha<ma.length;ha++)ma[ha]();ma=null,ha=0}}const Sa=t=>null==t.id?1/0:t.id;function Na(t){sa=!1,la=!0,xa(t),ca.sort(((t,e)=>Sa(t)-Sa(e)));try{for(ua=0;ua<ca.length;ua++){const t=ca[ua];t&&ia(t,null,14)}}finally{ua=0,ca.length=0,ka(),la=!1,ya=null,(ca.length||ga.length)&&Na(t)}}function Ma(t,e,...n){const a=t.vnode.props||ue;let i=n;const o=e.startsWith("update:"),r=o&&e.slice(7);if(r&&r in a){const t=`${"modelValue"===r?"model":r}Modifiers`,{number:e,trim:o}=a[t]||ue;o?i=n.map((t=>t.trim())):e&&(i=n.map(Ze))}__VUE_PROD_DEVTOOLS__;let l=Ge(Re(e)),s=a[l];!s&&o&&(l=Ge(Be(e)),s=a[l]),s&&oa(s,t,6,i);const c=a[l+"Once"];if(c){if(t.emitted){if(t.emitted[l])return}else(t.emitted={})[l]=!0;oa(c,t,6,i)}}function Ta(t,e,n=!1){if(!e.deopt&&void 0!==t.__emits)return t.__emits;const a=t.emits;let i={},o=!1;if(__VUE_OPTIONS_API__&&!xe(t)){const a=t=>{o=!0,Ce(i,Ta(t,e,!0))};!n&&e.mixins.length&&e.mixins.forEach(a),t.extends&&a(t.extends),t.mixins&&t.mixins.forEach(a)}return a||o?(_e(a)?a.forEach((t=>i[t]=null)):Ce(i,a),t.__emits=i):t.__emits=null}function Oa(t,e){return!(!t||!me(e))&&(e=e.slice(2).replace(/Once$/,""),be(t,e[0].toLowerCase()+e.slice(1))||be(t,Be(e))||be(t,e))}let Da=null;function Aa(t){Da=t}function Ea(t){const{type:e,vnode:n,proxy:a,withProxy:i,props:o,propsOptions:[r],slots:l,attrs:s,emit:c,render:u,renderCache:d,data:p,setupState:f,ctx:g}=t;let m;Da=t;try{let t;if(4&n.shapeFlag){const e=i||a;m=qi(u.call(e,e,d,o,f,p,g)),t=s}else{const n=e;m=qi(n.length>1?n(o,{attrs:s,slots:l,emit:c}):n(o,null)),t=e.props?s:Pa(s)}let h=m;if(!1!==e.inheritAttrs&&t){const e=Object.keys(t),{shapeFlag:n}=h;e.length&&(1&n||6&n)&&(r&&e.some(he)&&(t=Fa(t,r)),h=Vi(h,t))}n.dirs&&(h.dirs=h.dirs?h.dirs.concat(n.dirs):n.dirs),n.transition&&(h.transition=n.transition),m=h}catch(e){ra(e,t,1),m=Zi(Ai)}return Da=null,m}const Pa=t=>{let e;for(const n in t)("class"===n||"style"===n||me(n))&&((e||(e={}))[n]=t[n]);return e},Fa=(t,e)=>{const n={};for(const a in t)he(a)&&a.slice(9)in e||(n[a]=t[a]);return n};function Ra(t,e,n){const a=Object.keys(e);if(a.length!==Object.keys(t).length)return!0;for(let i=0;i<a.length;i++){const o=a[i];if(e[o]!==t[o]&&!Oa(n,o))return!0}return!1}function Ia(t){return xe(t)&&(t=t()),_e(t)&&(t=function(t){let e;for(let n=0;n<t.length;n++){const a=t[n];if(!ji(a))return;if(a.type!==Ai||"v-if"===a.children){if(e)return;e=a}}return e}(t)),qi(t)}let Ba=0;const ja=t=>Ba+=t;function Ga(t,e,n,a){const[i,o]=t.propsOptions;if(e)for(const o in e){const r=e[o];if(Ee(o))continue;let l;i&&be(i,l=Re(o))?n[l]=r:Oa(t.emitsOptions,o)||(a[o]=r)}if(o){const e=Kn(n);for(let a=0;a<o.length;a++){const r=o[a];n[r]=za(i,e,r,e[r],t)}}}function za(t,e,n,a,i){const o=t[n];if(null!=o){const t=be(o,"default");if(t&&void 0===a){const t=o.default;o.type!==Function&&xe(t)?(mo(i),a=t(e),mo(null)):a=t}o[0]&&(be(e,n)||t?!o[1]||""!==a&&a!==Be(n)||(a=!0):a=!1)}return a}function $a(t,e,n=!1){if(!e.deopt&&t.__props)return t.__props;const a=t.props,i={},o=[];let r=!1;if(__VUE_OPTIONS_API__&&!xe(t)){const a=t=>{r=!0;const[n,a]=$a(t,e,!0);Ce(i,n),a&&o.push(...a)};!n&&e.mixins.length&&e.mixins.forEach(a),t.extends&&a(t.extends),t.mixins&&t.mixins.forEach(a)}if(!a&&!r)return t.__props=de;if(_e(a))for(let t=0;t<a.length;t++){const e=Re(a[t]);Ua(e)&&(i[e]=ue)}else if(a)for(const t in a){const e=Re(t);if(Ua(e)){const n=a[t],r=i[e]=_e(n)||xe(n)?{type:n}:n;if(r){const t=Wa(Boolean,r.type),n=Wa(String,r.type);r[0]=t>-1,r[1]=n<0||t<n,(t>-1||be(r,"default"))&&o.push(e)}}}return t.__props=[i,o]}function Ua(t){return"$"!==t[0]}function Za(t){const e=t&&t.toString().match(/^\s*function (\w+)/);return e?e[1]:""}function Va(t,e){return Za(t)===Za(e)}function Wa(t,e){if(_e(e)){for(let n=0,a=e.length;n<a;n++)if(Va(e[n],t))return n}else if(xe(e))return Va(e,t)?0:-1;return-1}function Ha(t,e,n=go,a=!1){if(n){const i=n[t]||(n[t]=[]),o=e.__weh||(e.__weh=(...a)=>{if(n.isUnmounted)return;on(),mo(n);const i=oa(e,n,t,a);return mo(null),rn(),i});return a?i.unshift(o):i.push(o),o}}const qa=t=>(e,n=go)=>!ho&&Ha(t,e,n),Ka=qa("bm"),Ja=qa("m"),Xa=qa("bu"),Ya=qa("u"),Qa=qa("bum"),ti=qa("um"),ei=qa("rtg"),ni=qa("rtc"),ai={};function ii(t,e,n){return oi(t,e,n)}function oi(t,e,{immediate:n,deep:a,flush:i,onTrack:o,onTrigger:r}=ue,l=go){let s,c,u=!1;if(Xn(t)?(s=()=>t.value,u=!!t._shallow):Wn(t)?(s=()=>t,a=!0):s=_e(t)?()=>t.map((t=>Xn(t)?t.value:Wn(t)?li(t):xe(t)?ia(t,l,2):void 0)):xe(t)?e?()=>ia(t,l,2):()=>{if(!l||!l.isUnmounted)return c&&c(),ia(t,l,3,[d])}:pe,e&&a){const t=s;s=()=>li(t())}const d=t=>{c=m.options.onStop=()=>{ia(t,l,4)}};let p=_e(t)?[]:ai;const f=()=>{if(m.active)if(e){const t=m();(a||u||ze(t,p))&&(c&&c(),oa(e,l,3,[t,p===ai?void 0:p,d]),p=t)}else m()};let g;f.allowRecurse=!!e,g="sync"===i?f:"post"===i?()=>Li(f,l&&l.suspense):()=>{!l||l.isMounted?function(t){wa(t,pa,da,fa)}(f):f()};const m=Ye(s,{lazy:!0,onTrack:o,onTrigger:r,scheduler:g});return vo(m,l),e?n?f():p=m():"post"===i?Li(m,l&&l.suspense):m(),()=>{Qe(m),l&&ye(l.effects,m)}}function ri(t,e,n){const a=this.proxy;return oi(ke(t)?()=>a[t]:t.bind(a),e.bind(a),n,this)}function li(t,e=new Set){if(!Ne(t)||e.has(t))return t;if(e.add(t),Xn(t))li(t.value,e);else if(_e(t))for(let n=0;n<t.length;n++)li(t[n],e);else if(we(t)||Le(t))t.forEach((t=>{li(t,e)}));else for(const n in t)li(t[n],e);return t}const si=t=>t.type.__isKeepAlive;function ci(t,e,n=go){const a=t.__wdc||(t.__wdc=()=>{let e=n;for(;e;){if(e.isDeactivated)return;e=e.parent}t()});if(Ha(e,a,n),n){let t=n.parent;for(;t&&t.parent;)si(t.parent.vnode)&&ui(a,e,n,t),t=t.parent}}function ui(t,e,n,a){const i=Ha(e,t,a,!0);ti((()=>{ye(a[e],i)}),n)}const di=t=>"_"===t[0]||"$stable"===t,pi=t=>_e(t)?t.map(qi):[qi(t)],fi=(t,e,n)=>function(t,e=Da){if(!e)return t;const n=(...n)=>{Ba||Ri(!0);const a=Da;Aa(e);const i=t(...n);return Aa(a),Ba||Ii(),i};return n._c=!0,n}((t=>pi(e(t))),n),gi=(t,e)=>{const n=t._ctx;for(const a in t){if(di(a))continue;const i=t[a];if(xe(i))e[a]=fi(0,i,n);else if(null!=i){const t=pi(i);e[a]=()=>t}}},mi=(t,e)=>{const n=pi(e);t.slots.default=()=>n};function hi(t,e){if(null===Da)return t;const n=Da.proxy,a=t.dirs||(t.dirs=[]);for(let t=0;t<e.length;t++){let[i,o,r,l=ue]=e[t];xe(i)&&(i={mounted:i,updated:i}),a.push({dir:i,instance:n,value:o,oldValue:void 0,arg:r,modifiers:l})}return t}function Ci(t,e,n,a){const i=t.dirs,o=e&&e.dirs;for(let r=0;r<i.length;r++){const l=i[r];o&&(l.oldValue=o[r].value);const s=l.dir[a];s&&oa(s,n,8,[t.el,l,t,e])}}function yi(){return{app:null,config:{isNativeTag:fe,performance:!1,globalProperties:{},optionMergeStrategies:{},isCustomElement:fe,errorHandler:void 0,warnHandler:void 0},mixins:[],components:{},directives:{},provides:Object.create(null)}}let vi=0;function bi(t,e){return function(n,a=null){null==a||Ne(a)||(a=null);const i=yi(),o=new Set;let r=!1;const l=i.app={_uid:vi++,_component:n,_props:a,_container:null,_context:i,version:Lo,get config(){return i.config},set config(t){},use:(t,...e)=>(o.has(t)||(t&&xe(t.install)?(o.add(t),t.install(l,...e)):xe(t)&&(o.add(t),t(l,...e))),l),mixin:t=>(__VUE_OPTIONS_API__&&(i.mixins.includes(t)||(i.mixins.push(t),(t.props||t.emits)&&(i.deopt=!0))),l),component:(t,e)=>e?(i.components[t]=e,l):i.components[t],directive:(t,e)=>e?(i.directives[t]=e,l):i.directives[t],mount(o,s){if(!r){const c=Zi(n,a);return c.appContext=i,s&&e?e(c,o):t(c,o),r=!0,l._container=o,o.__vue_app__=l,__VUE_PROD_DEVTOOLS__,c.component.proxy}},unmount(){r&&(t(null,l._container),__VUE_PROD_DEVTOOLS__)},provide:(t,e)=>(i.provides[t]=e,l)};return l}}const _i={scheduler:_a,allowRecurse:!0},Li=function(t,e){e&&e.pendingBranch?_e(t)?e.effects.push(...t):e.effects.push(t):wa(t,ma,ga,ha)},wi=(t,e,n,a)=>{if(_e(t))return void t.forEach(((t,i)=>wi(t,e&&(_e(e)?e[i]:e),n,a)));let i;i=!a||a.type.__asyncLoader?null:4&a.shapeFlag?a.component.exposed||a.component.proxy:a.el;const{i:o,r}=t,l=e&&e.r,s=o.refs===ue?o.refs={}:o.refs,c=o.setupState;if(null!=l&&l!==r&&(ke(l)?(s[l]=null,be(c,l)&&(c[l]=null)):Xn(l)&&(l.value=null)),ke(r)){const t=()=>{s[r]=i,be(c,r)&&(c[r]=i)};i?(t.id=-1,Li(t,n)):t()}else if(Xn(r)){const t=()=>{r.value=i};i?(t.id=-1,Li(t,n)):t()}else xe(r)&&ia(r,o,12,[i,s])};function xi(t,e,n,a=null){oa(t,e,7,[n,a])}function ki(t,e,n=!1){const a=t.children,i=e.children;if(_e(a)&&_e(i))for(let t=0;t<a.length;t++){const e=a[t];let o=i[t];1&o.shapeFlag&&!o.dynamicChildren&&((o.patchFlag<=0||32===o.patchFlag)&&(o=i[t]=Ki(i[t]),o.el=e.el),n||ki(e,o))}}const Si=t=>t&&(t.disabled||""===t.disabled);function Ni(t){return function(t,e,n=!0){const a=Da||go;if(a){const n=a.type;if("components"===t){if("_self"===e)return n;const t=n.displayName||n.name;if(t&&(t===e||t===Re(e)||t===je(Re(e))))return n}return Ti(a[t]||n[t],e)||Ti(a.appContext[t],e)}}("components",t)||t}const Mi=Symbol();function Ti(t,e){return t&&(t[e]||t[Re(e)]||t[je(Re(e))])}const Oi=Symbol(void 0),Di=Symbol(void 0),Ai=Symbol(void 0),Ei=Symbol(void 0),Pi=[];let Fi=null;function Ri(t=!1){Pi.push(Fi=t?null:[])}function Ii(){Pi.pop(),Fi=Pi[Pi.length-1]||null}function Bi(t,e,n,a,i){const o=Zi(t,e,n,a,i,!0);return o.dynamicChildren=Fi||de,Ii(),Fi&&Fi.push(o),o}function ji(t){return!!t&&!0===t.__v_isVNode}function Gi(t,e){return t.type===e.type&&t.key===e.key}const zi="__vInternal",$i=({key:t})=>null!=t?t:null,Ui=({ref:t})=>null!=t?ke(t)||Xn(t)||xe(t)?{i:Da,r:t}:t:null,Zi=function(t,e=null,n=null,a=0,i=null,o=!1){if(t&&t!==Mi||(t=Ai),ji(t)){const a=Vi(t,e,!0);return n&&Ji(a,n),a}var r;if(xe(r=t)&&"__vccOpts"in r&&(t=t.__vccOpts),e){(qn(e)||zi in e)&&(e=Ce({},e));let{class:t,style:n}=e;t&&!ke(t)&&(e.class=le(t)),Ne(n)&&(qn(n)&&!_e(n)&&(n=Ce({},n)),e.style=ae(n))}const l=ke(t)?1:(t=>t.__isSuspense)(t)?128:(t=>t.__isTeleport)(t)?64:Ne(t)?4:xe(t)?2:0,s={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&$i(e),ref:e&&Ui(e),scopeId:null,children:null,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:a,dynamicProps:i,dynamicChildren:null,appContext:null};if(Ji(s,n),128&l){const{content:t,fallback:e}=function(t){const{shapeFlag:e,children:n}=t;let a,i;return 32&e?(a=Ia(n.default),i=Ia(n.fallback)):(a=Ia(n),i=qi(null)),{content:a,fallback:i}}(s);s.ssContent=t,s.ssFallback=e}return!o&&Fi&&(a>0||6&l)&&32!==a&&Fi.push(s),s};function Vi(t,e,n=!1){const{props:a,ref:i,patchFlag:o}=t,r=e?function(...t){const e=Ce({},t[0]);for(let n=1;n<t.length;n++){const a=t[n];for(const t in a)if("class"===t)e.class!==a.class&&(e.class=le([e.class,a.class]));else if("style"===t)e.style=ae([e.style,a.style]);else if(me(t)){const n=e[t],i=a[t];n!==i&&(e[t]=n?[].concat(n,a[t]):i)}else""!==t&&(e[t]=a[t])}return e}(a||{},e):a;return{__v_isVNode:!0,__v_skip:!0,type:t.type,props:r,key:r&&$i(r),ref:e&&e.ref?n&&i?_e(i)?i.concat(Ui(e)):[i,Ui(e)]:Ui(e):i,scopeId:t.scopeId,children:t.children,target:t.target,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==Oi?-1===o?16:16|o:o,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:t.transition,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Vi(t.ssContent),ssFallback:t.ssFallback&&Vi(t.ssFallback),el:t.el,anchor:t.anchor}}function Wi(t=" ",e=0){return Zi(Di,null,t,e)}function Hi(t="",e=!1){return e?(Ri(),Bi(Ai,null,t)):Zi(Ai,null,t)}function qi(t){return null==t||"boolean"==typeof t?Zi(Ai):_e(t)?Zi(Oi,null,t):"object"==typeof t?null===t.el?t:Vi(t):Zi(Di,null,String(t))}function Ki(t){return null===t.el?t:Vi(t)}function Ji(t,e){let n=0;const{shapeFlag:a}=t;if(null==e)e=null;else if(_e(e))n=16;else if("object"==typeof e){if(1&a||64&a){const n=e.default;return void(n&&(n._c&&ja(1),Ji(t,n()),n._c&&ja(-1)))}{n=32;const a=e._;a||zi in e?3===a&&Da&&(1024&Da.vnode.patchFlag?(e._=2,t.patchFlag|=1024):e._=1):e._ctx=Da}}else xe(e)?(e={default:e,_ctx:Da},n=32):(e=String(e),64&a?(n=16,e=[Wi(e)]):n=8);t.children=e,t.shapeFlag|=n}function Xi(t,e,n=!1){const a=go||Da;if(a){const i=null==a.parent?a.vnode.appContext&&a.vnode.appContext.provides:a.parent.provides;if(i&&t in i)return i[t];if(arguments.length>1)return n&&xe(e)?e():e}}let Yi=!1;function Qi(t,e,n=[],a=[],i=[],o=!1){const{mixins:r,extends:l,data:s,computed:c,methods:u,watch:d,provide:p,inject:f,components:g,directives:m,beforeMount:h,mounted:C,beforeUpdate:y,updated:v,activated:b,deactivated:_,beforeDestroy:L,beforeUnmount:w,destroyed:x,unmounted:k,render:S,renderTracked:N,renderTriggered:M,errorCaptured:T,expose:O}=e,D=t.proxy,A=t.ctx,E=t.appContext.mixins;if(o&&S&&t.render===pe&&(t.render=S),o||(Yi=!0,to("beforeCreate","bc",e,t,E),Yi=!1,ao(t,E,n,a,i)),l&&Qi(t,l,n,a,i,!0),r&&ao(t,r,n,a,i),f)if(_e(f))for(let t=0;t<f.length;t++){const e=f[t];A[e]=Xi(e)}else for(const t in f){const e=f[t];Ne(e)?A[t]=Xi(e.from||t,e.default,!0):A[t]=Xi(e)}if(u)for(const t in u){const e=u[t];xe(e)&&(A[t]=e.bind(D))}if(o?s&&n.push(s):(n.length&&n.forEach((e=>io(t,e,D))),s&&io(t,s,D)),c)for(const t in c){const e=c[t],n=bo({get:xe(e)?e.bind(D,D):xe(e.get)?e.get.bind(D,D):pe,set:!xe(e)&&xe(e.set)?e.set.bind(D):pe});Object.defineProperty(A,t,{enumerable:!0,configurable:!0,get:()=>n.value,set:t=>n.value=t})}if(d&&a.push(d),!o&&a.length&&a.forEach((t=>{for(const e in t)oo(t[e],A,D,e)})),p&&i.push(p),!o&&i.length&&i.forEach((t=>{const e=xe(t)?t.call(D):t;Reflect.ownKeys(e).forEach((t=>{!function(t,e){if(go){let n=go.provides;const a=go.parent&&go.parent.provides;a===n&&(n=go.provides=Object.create(a)),n[t]=e}}(t,e[t])}))})),o&&(g&&Ce(t.components||(t.components=Ce({},t.type.components)),g),m&&Ce(t.directives||(t.directives=Ce({},t.type.directives)),m)),o||to("created","c",e,t,E),h&&Ka(h.bind(D)),C&&Ja(C.bind(D)),y&&Xa(y.bind(D)),v&&Ya(v.bind(D)),b&&ci(b.bind(D),"a",void 0),_&&function(t,e){ci(t,"da",void 0)}(_.bind(D)),T&&((t,e=go)=>{Ha("ec",t,e)})(T.bind(D)),N&&ni(N.bind(D)),M&&ei(M.bind(D)),w&&Qa(w.bind(D)),k&&ti(k.bind(D)),_e(O)&&!o)if(O.length){const e=t.exposed||(t.exposed=ea({}));O.forEach((t=>{e[t]=function(t,e){return Xn(t[e])?t[e]:new na(t,e)}(D,t)}))}else t.exposed||(t.exposed=ue)}function to(t,e,n,a,i){no(t,e,i,a);const{extends:o,mixins:r}=n;o&&eo(t,e,o,a),r&&no(t,e,r,a);const l=n[t];l&&oa(l.bind(a.proxy),a,e)}function eo(t,e,n,a){n.extends&&eo(t,e,n.extends,a);const i=n[t];i&&oa(i.bind(a.proxy),a,e)}function no(t,e,n,a){for(let i=0;i<n.length;i++){const o=n[i].mixins;o&&no(t,e,o,a);const r=n[i][t];r&&oa(r.bind(a.proxy),a,e)}}function ao(t,e,n,a,i){for(let o=0;o<e.length;o++)Qi(t,e[o],n,a,i,!0)}function io(t,e,n){const a=e.call(n,n);Ne(a)&&(t.data===ue?t.data=Un(a):Ce(t.data,a))}function oo(t,e,n,a){const i=a.includes(".")?function(t,e){const n=e.split(".");return()=>{let e=t;for(let t=0;t<n.length&&e;t++)e=e[n[t]];return e}}(n,a):()=>n[a];if(ke(t)){const n=e[t];xe(n)&&ii(i,n)}else if(xe(t))ii(i,t.bind(n));else if(Ne(t))if(_e(t))t.forEach((t=>oo(t,e,n,a)));else{const a=xe(t.handler)?t.handler.bind(n):e[t.handler];xe(a)&&ii(i,a,t)}}function ro(t,e,n){const a=n.appContext.config.optionMergeStrategies,{mixins:i,extends:o}=e;o&&ro(t,o,n),i&&i.forEach((e=>ro(t,e,n)));for(const i in e)a&&be(a,i)?t[i]=a[i](t[i],e[i],n.proxy,i):t[i]=e[i]}const lo=t=>t&&(t.proxy?t.proxy:lo(t.parent)),so=Ce(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>lo(t.parent),$root:t=>t.root&&t.root.proxy,$emit:t=>t.emit,$options:t=>__VUE_OPTIONS_API__?function(t){const e=t.type,{__merged:n,mixins:a,extends:i}=e;if(n)return n;const o=t.appContext.mixins;if(!o.length&&!a&&!i)return e;const r={};return o.forEach((e=>ro(r,e,t))),ro(r,e,t),e.__merged=r}(t):t.type,$forceUpdate:t=>()=>_a(t.update),$nextTick:t=>ba.bind(t.proxy),$watch:t=>__VUE_OPTIONS_API__?ri.bind(t):pe}),co={get({_:t},e){const{ctx:n,setupState:a,data:i,props:o,accessCache:r,type:l,appContext:s}=t;if("__v_skip"===e)return!0;let c;if("$"!==e[0]){const l=r[e];if(void 0!==l)switch(l){case 0:return a[e];case 1:return i[e];case 3:return n[e];case 2:return o[e]}else{if(a!==ue&&be(a,e))return r[e]=0,a[e];if(i!==ue&&be(i,e))return r[e]=1,i[e];if((c=t.propsOptions[0])&&be(c,e))return r[e]=2,o[e];if(n!==ue&&be(n,e))return r[e]=3,n[e];__VUE_OPTIONS_API__&&Yi||(r[e]=4)}}const u=so[e];let d,p;return u?("$attrs"===e&&ln(t,0,e),u(t)):(d=l.__cssModules)&&(d=d[e])?d:n!==ue&&be(n,e)?(r[e]=3,n[e]):(p=s.config.globalProperties,be(p,e)?p[e]:void 0)},set({_:t},e,n){const{data:a,setupState:i,ctx:o}=t;if(i!==ue&&be(i,e))i[e]=n;else if(a!==ue&&be(a,e))a[e]=n;else if(e in t.props)return!1;return!("$"===e[0]&&e.slice(1)in t||(o[e]=n,0))},has({_:{data:t,setupState:e,accessCache:n,ctx:a,appContext:i,propsOptions:o}},r){let l;return void 0!==n[r]||t!==ue&&be(t,r)||e!==ue&&be(e,r)||(l=o[0])&&be(l,r)||be(a,r)||be(so,r)||be(i.config.globalProperties,r)}},uo=Ce({},co,{get(t,e){if(e!==Symbol.unscopables)return co.get(t,e,t)},has:(t,e)=>"_"!==e[0]&&!ee(e)}),po=yi();let fo=0,go=null;const mo=t=>{go=t};let ho=!1;function Co(t,e,n){xe(e)?t.render=e:Ne(e)&&(__VUE_PROD_DEVTOOLS__&&(t.devtoolsRawSetupState=e),t.setupState=ea(e)),yo(t)}function yo(t,e){const n=t.type;t.render||(t.render=n.render||pe,t.render._rc&&(t.withProxy=new Proxy(t.ctx,uo))),__VUE_OPTIONS_API__&&(go=t,on(),Qi(t,n),rn(),go=null)}function vo(t,e=go){e&&(e.effects||(e.effects=[])).push(t)}function bo(t){const e=function(t){let e,n;return xe(t)?(e=t,n=pe):(e=t.get,n=t.set),new aa(e,n,xe(t)||!t.set)}(t);return vo(e.effect),e}function _o(t,e){let n;if(_e(t)||ke(t)){n=new Array(t.length);for(let a=0,i=t.length;a<i;a++)n[a]=e(t[a],a)}else if("number"==typeof t){n=new Array(t);for(let a=0;a<t;a++)n[a]=e(a+1,a)}else if(Ne(t))if(t[Symbol.iterator])n=Array.from(t,e);else{const a=Object.keys(t);n=new Array(a.length);for(let i=0,o=a.length;i<o;i++){const o=a[i];n[i]=e(t[o],o,i)}}else n=[];return n}const Lo="3.0.4",wo="http://www.w3.org/2000/svg",xo="undefined"!=typeof document?document:null;let ko,So;const No={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n)=>e?xo.createElementNS(wo,t):xo.createElement(t,n?{is:n}:void 0),createText:t=>xo.createTextNode(t),createComment:t=>xo.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>xo.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},cloneNode:t=>t.cloneNode(!0),insertStaticContent(t,e,n,a){const i=a?So||(So=xo.createElementNS(wo,"svg")):ko||(ko=xo.createElement("div"));i.innerHTML=t;const o=i.firstChild;let r=o,l=r;for(;r;)l=r,No.insert(r,e,n),r=i.firstChild;return[o,l]}},Mo=/\s*!important$/;function To(t,e,n){if(_e(n))n.forEach((n=>To(t,e,n)));else if(e.startsWith("--"))t.setProperty(e,n);else{const a=function(t,e){const n=Do[e];if(n)return n;let a=Re(e);if("filter"!==a&&a in t)return Do[e]=a;a=je(a);for(let n=0;n<Oo.length;n++){const i=Oo[n]+a;if(i in t)return Do[e]=i}return e}(t,e);Mo.test(n)?t.setProperty(Be(a),n.replace(Mo,""),"important"):t[a]=n}}const Oo=["Webkit","Moz","ms"],Do={},Ao="http://www.w3.org/1999/xlink";let Eo=Date.now;"undefined"!=typeof document&&Eo()>document.createEvent("Event").timeStamp&&(Eo=()=>performance.now());let Po=0;const Fo=Promise.resolve(),Ro=()=>{Po=0},Io=/(?:Once|Passive|Capture)$/,Bo=/^on[a-z]/,jo={beforeMount(t,{value:e},{transition:n}){t._vod="none"===t.style.display?"":t.style.display,n&&e?n.beforeEnter(t):Go(t,e)},mounted(t,{value:e},{transition:n}){n&&e&&n.enter(t)},updated(t,{value:e,oldValue:n},{transition:a}){a&&e!==n?e?(a.beforeEnter(t),Go(t,!0),a.enter(t)):a.leave(t,(()=>{Go(t,!1)})):Go(t,e)},beforeUnmount(t,{value:e}){Go(t,e)}};function Go(t,e){t.style.display=e?t._vod:"none"}const zo=Ce({patchProp:(t,e,n,a,i=!1,o,r,l,s)=>{switch(e){case"class":!function(t,e,n){if(null==e&&(e=""),n)t.setAttribute("class",e);else{const n=t._vtc;n&&(e=(e?[e,...n]:[...n]).join(" ")),t.className=e}}(t,a,i);break;case"style":!function(t,e,n){const a=t.style;if(n)if(ke(n))e!==n&&(a.cssText=n);else{for(const t in n)To(a,t,n[t]);if(e&&!ke(e))for(const t in e)null==n[t]&&To(a,t,"")}else t.removeAttribute("style")}(t,n,a);break;default:me(e)?he(e)||function(t,e,n,a,i=null){const o=t._vei||(t._vei={}),r=o[e];if(a&&r)r.value=a;else{const[n,l]=function(t){let e;if(Io.test(t)){let n;for(e={};n=t.match(Io);)t=t.slice(0,t.length-n[0].length),e[n[0].toLowerCase()]=!0}return[t.slice(2).toLowerCase(),e]}(e);a?function(t,e,n,a){t.addEventListener(e,n,a)}(t,n,o[e]=function(t,e){const n=t=>{(t.timeStamp||Eo())>=n.attached-1&&oa(function(t,e){if(_e(e)){const n=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{n.call(t),t._stopped=!0},e.map((t=>e=>!e._stopped&&t(e)))}return e}(t,n.value),e,5,[t])};return n.value=t,n.attached=Po||(Fo.then(Ro),Po=Eo()),n}(a,i),l):r&&(function(t,e,n,a){t.removeEventListener(e,n,a)}(t,n,r,l),o[e]=void 0)}}(t,e,0,a,r):function(t,e,n,a){return a?"innerHTML"===e||!!(e in t&&Bo.test(e)&&xe(n)):!("spellcheck"===e||"draggable"===e||"form"===e&&"string"==typeof n||"list"===e&&"INPUT"===t.tagName||Bo.test(e)&&ke(n)||!(e in t))}(t,e,a,i)?function(t,e,n,a,i,o,r){if("innerHTML"===e||"textContent"===e)return a&&r(a,i,o),void(t[e]=null==n?"":n);if("value"!==e||"PROGRESS"===t.tagName){if(""===n||null==n){const a=typeof t[e];if(""===n&&"boolean"===a)return void(t[e]=!0);if(null==n&&"string"===a)return t[e]="",void t.removeAttribute(e);if("number"===a)return t[e]=0,void t.removeAttribute(e)}try{t[e]=n}catch(t){}}else{t._value=n;const e=null==n?"":n;t.value!==e&&(t.value=e)}}(t,e,a,o,r,l,s):("true-value"===e?t._trueValue=a:"false-value"===e&&(t._falseValue=a),function(t,e,n,a){if(a&&e.startsWith("xlink:"))null==n?t.removeAttributeNS(Ao,e.slice(6,e.length)):t.setAttributeNS(Ao,e,n);else{const a=ne(e);null==n||a&&!1===n?t.removeAttribute(e):t.setAttribute(e,a?"":n)}}(t,e,a,i))}},forcePatchProp:(t,e)=>"value"===e},No);let $o;function Uo(){return $o||($o=function(t){return function(t,e){"boolean"!=typeof __VUE_OPTIONS_API__&&(We().__VUE_OPTIONS_API__=!0),"boolean"!=typeof __VUE_PROD_DEVTOOLS__&&(We().__VUE_PROD_DEVTOOLS__=!1);const{insert:n,remove:a,patchProp:i,forcePatchProp:o,createElement:r,createText:l,createComment:s,setText:c,setElementText:u,parentNode:d,nextSibling:p,setScopeId:f=pe,cloneNode:g,insertStaticContent:m}=t,h=(t,e,n,a=null,i=null,o=null,r=!1,l=!1)=>{t&&!Gi(t,e)&&(a=$(t),I(t,i,o,!0),t=null),-2===e.patchFlag&&(l=!1,e.dynamicChildren=null);const{type:s,ref:c,shapeFlag:u}=e;switch(s){case Di:C(t,e,n,a);break;case Ai:y(t,e,n,a);break;case Ei:null==t&&v(e,n,a,r);break;case Oi:N(t,e,n,a,i,o,r,l);break;default:1&u?b(t,e,n,a,i,o,r,l):6&u?M(t,e,n,a,i,o,r,l):(64&u||128&u)&&s.process(t,e,n,a,i,o,r,l,Z)}null!=c&&i&&wi(c,t&&t.ref,o,e)},C=(t,e,a,i)=>{if(null==t)n(e.el=l(e.children),a,i);else{const n=e.el=t.el;e.children!==t.children&&c(n,e.children)}},y=(t,e,a,i)=>{null==t?n(e.el=s(e.children||""),a,i):e.el=t.el},v=(t,e,n,a)=>{[t.el,t.anchor]=m(t.children,e,n,a)},b=(t,e,n,a,i,o,r,l)=>{r=r||"svg"===e.type,null==t?_(e,n,a,i,o,r,l):x(t,e,i,o,r,l)},_=(t,e,a,o,l,s,c)=>{let d,p;const{type:f,props:m,shapeFlag:h,transition:C,scopeId:y,patchFlag:v,dirs:b}=t;if(t.el&&void 0!==g&&-1===v)d=t.el=g(t.el);else{if(d=t.el=r(t.type,s,m&&m.is),8&h?u(d,t.children):16&h&&w(t.children,d,null,o,l,s&&"foreignObject"!==f,c||!!t.dynamicChildren),b&&Ci(t,null,o,"created"),m){for(const e in m)Ee(e)||i(d,e,null,m[e],s,t.children,o,l,z);(p=m.onVnodeBeforeMount)&&xi(p,o,t)}L(d,y,t,o)}__VUE_PROD_DEVTOOLS__&&(Object.defineProperty(d,"__vnode",{value:t,enumerable:!1}),Object.defineProperty(d,"__vueParentComponent",{value:o,enumerable:!1})),b&&Ci(t,null,o,"beforeMount");const _=(!l||l&&!l.pendingBranch)&&C&&!C.persisted;_&&C.beforeEnter(d),n(d,e,a),((p=m&&m.onVnodeMounted)||_||b)&&Li((()=>{p&&xi(p,o,t),_&&C.enter(d),b&&Ci(t,null,o,"mounted")}),l)},L=(t,e,n,a)=>{if(e&&f(t,e),a){const i=a.type.__scopeId;i&&i!==e&&f(t,i+"-s"),n===a.subTree&&L(t,a.vnode.scopeId,a.vnode,a.parent)}},w=(t,e,n,a,i,o,r,l=0)=>{for(let s=l;s<t.length;s++){const l=t[s]=r?Ki(t[s]):qi(t[s]);h(null,l,e,n,a,i,o,r)}},x=(t,e,n,a,r,l)=>{const s=e.el=t.el;let{patchFlag:c,dynamicChildren:d,dirs:p}=e;c|=16&t.patchFlag;const f=t.props||ue,g=e.props||ue;let m;if((m=g.onVnodeBeforeUpdate)&&xi(m,n,e,t),p&&Ci(e,t,n,"beforeUpdate"),c>0){if(16&c)S(s,e,f,g,n,a,r);else if(2&c&&f.class!==g.class&&i(s,"class",null,g.class,r),4&c&&i(s,"style",f.style,g.style,r),8&c){const l=e.dynamicProps;for(let e=0;e<l.length;e++){const c=l[e],u=f[c],d=g[c];(d!==u||o&&o(s,c))&&i(s,c,u,d,r,t.children,n,a,z)}}1&c&&t.children!==e.children&&u(s,e.children)}else l||null!=d||S(s,e,f,g,n,a,r);const h=r&&"foreignObject"!==e.type;d?k(t.dynamicChildren,d,s,n,a,h):l||E(t,e,s,null,n,a,h),((m=g.onVnodeUpdated)||p)&&Li((()=>{m&&xi(m,n,e,t),p&&Ci(e,t,n,"updated")}),a)},k=(t,e,n,a,i,o)=>{for(let r=0;r<e.length;r++){const l=t[r],s=e[r],c=l.type===Oi||!Gi(l,s)||6&l.shapeFlag||64&l.shapeFlag?d(l.el):n;h(l,s,c,null,a,i,o,!0)}},S=(t,e,n,a,r,l,s)=>{if(n!==a){for(const c in a){if(Ee(c))continue;const u=a[c],d=n[c];(u!==d||o&&o(t,c))&&i(t,c,d,u,s,e.children,r,l,z)}if(n!==ue)for(const o in n)Ee(o)||o in a||i(t,o,n[o],null,s,e.children,r,l,z)}},N=(t,e,a,i,o,r,s,c)=>{const u=e.el=t?t.el:l(""),d=e.anchor=t?t.anchor:l("");let{patchFlag:p,dynamicChildren:f}=e;p>0&&(c=!0),null==t?(n(u,a,i),n(d,a,i),w(e.children,a,d,o,r,s,c)):p>0&&64&p&&f?(k(t.dynamicChildren,f,a,o,r,s),(null!=e.key||o&&e===o.subTree)&&ki(t,e,!0)):E(t,e,a,d,o,r,s,c)},M=(t,e,n,a,i,o,r,l)=>{null==t?512&e.shapeFlag?i.ctx.activate(e,n,a,r,l):T(e,n,a,i,o,r,l):O(t,e,l)},T=(t,e,n,a,i,o,r)=>{const l=t.component=function(t,e,n){const a=t.type,i=(e?e.appContext:t.appContext)||po,o={uid:fo++,vnode:t,type:a,parent:e,appContext:i,root:null,next:null,subTree:null,update:null,render:null,proxy:null,exposed:null,withProxy:null,effects:null,provides:e?e.provides:Object.create(i.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:$a(a,i),emitsOptions:Ta(a,i),emit:null,emitted:null,ctx:ue,data:ue,props:ue,attrs:ue,slots:ue,refs:ue,setupState:ue,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null};return o.ctx={_:o},o.root=e?e.root:o,o.emit=Ma.bind(null,o),__VUE_PROD_DEVTOOLS__,o}(t,a,i);if(si(t)&&(l.ctx.renderer=Z),function(t,e=!1){ho=e;const{props:n,children:a,shapeFlag:i}=t.vnode,o=4&i;(function(t,e,n,a=!1){const i={},o={};Ue(o,zi,1),Ga(t,e,i,o),n?t.props=a?i:Vn(i,!1,vn,jn):t.type.props?t.props=i:t.props=o,t.attrs=o})(t,n,o,e),((t,e)=>{if(32&t.vnode.shapeFlag){const n=e._;n?(t.slots=e,Ue(e,"_",n)):gi(e,t.slots={})}else t.slots={},e&&mi(t,e);Ue(t.slots,zi,1)})(t,a),o&&function(t,e){const n=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,co);const{setup:a}=n;if(a){const n=t.setupContext=a.length>1?function(t){return{attrs:t.attrs,slots:t.slots,emit:t.emit,expose:e=>{t.exposed=ea(e)}}}(t):null;go=t,on();const i=ia(a,t,0,[t.props,n]);if(rn(),go=null,Me(i)){if(e)return i.then((e=>{Co(t,e)}));t.asyncDep=i}else Co(t,i)}else yo(t)}(t,e),ho=!1}(l),l.asyncDep){if(i&&i.registerDep(l,D),!t.el){const t=l.subTree=Zi(Ai);y(null,t,e,n)}}else D(l,t,e,n,i,o,r)},O=(t,e,n)=>{const a=e.component=t.component;if(function(t,e,n){const{props:a,children:i,component:o}=t,{props:r,children:l,patchFlag:s}=e,c=o.emitsOptions;if(e.dirs||e.transition)return!0;if(!(n&&s>=0))return!(!i&&!l||l&&l.$stable)||a!==r&&(a?!r||Ra(a,r,c):!!r);if(1024&s)return!0;if(16&s)return a?Ra(a,r,c):!!r;if(8&s){const t=e.dynamicProps;for(let e=0;e<t.length;e++){const n=t[e];if(r[n]!==a[n]&&!Oa(c,n))return!0}}return!1}(t,e,n)){if(a.asyncDep&&!a.asyncResolved)return void A(a,e,n);a.next=e,function(t){const e=ca.indexOf(t);e>-1&&ca.splice(e,1)}(a.update),a.update()}else e.component=t.component,e.el=t.el,a.vnode=e},D=(t,e,n,a,i,o,r)=>{t.update=Ye((function(){if(t.isMounted){let e,{next:n,bu:a,u:l,parent:s,vnode:c}=t,u=n;n?(n.el=c.el,A(t,n,r)):n=c,a&&$e(a),(e=n.props&&n.props.onVnodeBeforeUpdate)&&xi(e,s,n,c);const p=Ea(t),f=t.subTree;t.subTree=p,h(f,p,d(f.el),$(f),t,i,o),n.el=p.el,null===u&&function({vnode:t,parent:e},n){for(;e&&e.subTree===t;)(t=e.vnode).el=n,e=e.parent}(t,p.el),l&&Li(l,i),(e=n.props&&n.props.onVnodeUpdated)&&Li((()=>{xi(e,s,n,c)}),i),__VUE_PROD_DEVTOOLS__}else{let r;const{el:l,props:s}=e,{bm:c,m:u,parent:d}=t;c&&$e(c),(r=s&&s.onVnodeBeforeMount)&&xi(r,d,e);const p=t.subTree=Ea(t);h(null,p,n,a,t,i,o),e.el=p.el,u&&Li(u,i),(r=s&&s.onVnodeMounted)&&Li((()=>{xi(r,d,e)}),i);const{a:f}=t;f&&256&e.shapeFlag&&Li(f,i),t.isMounted=!0}}),_i)},A=(t,e,n)=>{e.component=t;const a=t.vnode.props;t.vnode=e,t.next=null,function(t,e,n,a){const{props:i,attrs:o,vnode:{patchFlag:r}}=t,l=Kn(i),[s]=t.propsOptions;if(!(a||r>0)||16&r){let a;Ga(t,e,i,o);for(const o in l)e&&(be(e,o)||(a=Be(o))!==o&&be(e,a))||(s?!n||void 0===n[o]&&void 0===n[a]||(i[o]=za(s,e||ue,o,void 0,t)):delete i[o]);if(o!==l)for(const t in o)e&&be(e,t)||delete o[t]}else if(8&r){const n=t.vnode.dynamicProps;for(let a=0;a<n.length;a++){const r=n[a],c=e[r];if(s)if(be(o,r))o[r]=c;else{const e=Re(r);i[e]=za(s,l,e,c,t)}else o[r]=c}}sn(t,"set","$attrs")}(t,e.props,a,n),((t,e)=>{const{vnode:n,slots:a}=t;let i=!0,o=ue;if(32&n.shapeFlag){const t=e._;t?1===t?i=!1:Ce(a,e):(i=!e.$stable,gi(e,a)),o=e}else e&&(mi(t,e),o={default:1});if(i)for(const t in a)di(t)||t in o||delete a[t]})(t,e.children),xa(void 0,t.update)},E=(t,e,n,a,i,o,r,l=!1)=>{const s=t&&t.children,c=t?t.shapeFlag:0,d=e.children,{patchFlag:p,shapeFlag:f}=e;if(p>0){if(128&p)return void F(s,d,n,a,i,o,r,l);if(256&p)return void P(s,d,n,a,i,o,r,l)}8&f?(16&c&&z(s,i,o),d!==s&&u(n,d)):16&c?16&f?F(s,d,n,a,i,o,r,l):z(s,i,o,!0):(8&c&&u(n,""),16&f&&w(d,n,a,i,o,r,l))},P=(t,e,n,a,i,o,r,l)=>{e=e||de;const s=(t=t||de).length,c=e.length,u=Math.min(s,c);let d;for(d=0;d<u;d++){const a=e[d]=l?Ki(e[d]):qi(e[d]);h(t[d],a,n,null,i,o,r,l)}s>c?z(t,i,o,!0,!1,u):w(e,n,a,i,o,r,l,u)},F=(t,e,n,a,i,o,r,l)=>{let s=0;const c=e.length;let u=t.length-1,d=c-1;for(;s<=u&&s<=d;){const a=t[s],c=e[s]=l?Ki(e[s]):qi(e[s]);if(!Gi(a,c))break;h(a,c,n,null,i,o,r,l),s++}for(;s<=u&&s<=d;){const a=t[u],s=e[d]=l?Ki(e[d]):qi(e[d]);if(!Gi(a,s))break;h(a,s,n,null,i,o,r,l),u--,d--}if(s>u){if(s<=d){const t=d+1,u=t<c?e[t].el:a;for(;s<=d;)h(null,e[s]=l?Ki(e[s]):qi(e[s]),n,u,i,o,r),s++}}else if(s>d)for(;s<=u;)I(t[s],i,o,!0),s++;else{const p=s,f=s,g=new Map;for(s=f;s<=d;s++){const t=e[s]=l?Ki(e[s]):qi(e[s]);null!=t.key&&g.set(t.key,s)}let m,C=0;const y=d-f+1;let v=!1,b=0;const _=new Array(y);for(s=0;s<y;s++)_[s]=0;for(s=p;s<=u;s++){const a=t[s];if(C>=y){I(a,i,o,!0);continue}let c;if(null!=a.key)c=g.get(a.key);else for(m=f;m<=d;m++)if(0===_[m-f]&&Gi(a,e[m])){c=m;break}void 0===c?I(a,i,o,!0):(_[c-f]=s+1,c>=b?b=c:v=!0,h(a,e[c],n,null,i,o,r,l),C++)}const L=v?function(t){const e=t.slice(),n=[0];let a,i,o,r,l;const s=t.length;for(a=0;a<s;a++){const s=t[a];if(0!==s){if(i=n[n.length-1],t[i]<s){e[a]=i,n.push(a);continue}for(o=0,r=n.length-1;o<r;)l=(o+r)/2|0,t[n[l]]<s?o=l+1:r=l;s<t[n[o]]&&(o>0&&(e[a]=n[o-1]),n[o]=a)}}for(o=n.length,r=n[o-1];o-- >0;)n[o]=r,r=e[r];return n}(_):de;for(m=L.length-1,s=y-1;s>=0;s--){const t=f+s,l=e[t],u=t+1<c?e[t+1].el:a;0===_[s]?h(null,l,n,u,i,o,r):v&&(m<0||s!==L[m]?R(l,n,u,2):m--)}}},R=(t,e,a,i,o=null)=>{const{el:r,type:l,transition:s,children:c,shapeFlag:u}=t;if(6&u)R(t.component.subTree,e,a,i);else if(128&u)t.suspense.move(e,a,i);else if(64&u)l.move(t,e,a,Z);else if(l!==Oi)if(l!==Ei)if(2!==i&&1&u&&s)if(0===i)s.beforeEnter(r),n(r,e,a),Li((()=>s.enter(r)),o);else{const{leave:t,delayLeave:i,afterLeave:o}=s,l=()=>n(r,e,a),c=()=>{t(r,(()=>{l(),o&&o()}))};i?i(r,l,c):c()}else n(r,e,a);else(({el:t,anchor:e},a,i)=>{let o;for(;t&&t!==e;)o=p(t),n(t,a,i),t=o;n(e,a,i)})(t,e,a);else{n(r,e,a);for(let t=0;t<c.length;t++)R(c[t],e,a,i);n(t.anchor,e,a)}},I=(t,e,n,a=!1,i=!1)=>{const{type:o,props:r,ref:l,children:s,dynamicChildren:c,shapeFlag:u,patchFlag:d,dirs:p}=t;if(null!=l&&wi(l,null,n,null),256&u)return void e.ctx.deactivate(t);const f=1&u&&p;let g;if((g=r&&r.onVnodeBeforeUnmount)&&xi(g,e,t),6&u)G(t.component,n,a);else{if(128&u)return void t.suspense.unmount(n,a);f&&Ci(t,null,e,"beforeUnmount"),c&&(o!==Oi||d>0&&64&d)?z(c,e,n,!1,!0):(o===Oi&&(128&d||256&d)||!i&&16&u)&&z(s,e,n),64&u&&(a||!Si(t.props))&&t.type.remove(t,Z),a&&B(t)}((g=r&&r.onVnodeUnmounted)||f)&&Li((()=>{g&&xi(g,e,t),f&&Ci(t,null,e,"unmounted")}),n)},B=t=>{const{type:e,el:n,anchor:i,transition:o}=t;if(e===Oi)return void j(n,i);if(e===Ei)return void(({el:t,anchor:e})=>{let n;for(;t&&t!==e;)n=p(t),a(t),t=n;a(e)})(t);const r=()=>{a(n),o&&!o.persisted&&o.afterLeave&&o.afterLeave()};if(1&t.shapeFlag&&o&&!o.persisted){const{leave:e,delayLeave:a}=o,i=()=>e(n,r);a?a(t.el,r,i):i()}else r()},j=(t,e)=>{let n;for(;t!==e;)n=p(t),a(t),t=n;a(e)},G=(t,e,n)=>{const{bum:a,effects:i,update:o,subTree:r,um:l}=t;if(a&&$e(a),i)for(let t=0;t<i.length;t++)Qe(i[t]);o&&(Qe(o),I(r,t,e,n)),l&&Li(l,e),Li((()=>{t.isUnmounted=!0}),e),e&&e.pendingBranch&&!e.isUnmounted&&t.asyncDep&&!t.asyncResolved&&t.suspenseId===e.pendingId&&(e.deps--,0===e.deps&&e.resolve()),__VUE_PROD_DEVTOOLS__},z=(t,e,n,a=!1,i=!1,o=0)=>{for(let r=o;r<t.length;r++)I(t[r],e,n,a,i)},$=t=>6&t.shapeFlag?$(t.component.subTree):128&t.shapeFlag?t.suspense.next():p(t.anchor||t.el),U=(t,e)=>{null==t?e._vnode&&I(e._vnode,null,null,!0):h(e._vnode||null,t,e),ka(),e._vnode=t},Z={p:h,um:I,m:R,r:B,mt:T,mc:w,pc:E,pbc:k,n:$,o:t};let V;return{render:U,hydrate:V,createApp:bi(U,V)}}(t)}(zo))}const Zo=(...t)=>Object.prototype.toString.call(...t).slice(8,-1);var Vo={props:{data:{required:!0,validator:t=>"Null"===Zo(t)},name:{required:!0,type:String}}};const Wo={class:"null"},Ho={class:"key"},qo={key:0,class:"separator"},Ko=Zi("span",{class:"value"},"null",-1);Vo.render=function(t,e,n,a,i,o){return Ri(),Bi("span",Wo,[Zi("span",Ho,se(n.name),1),""!==n.name?(Ri(),Bi("span",qo,": ")):Hi("v-if",!0),Ko])},Vo.__file="src/components/NullWrapper.vue";var Jo={props:{data:{required:!0,validator:t=>"Boolean"===Zo(t)},name:{required:!0,type:String}}};const Xo={class:"boolean"},Yo={class:"key"},Qo={key:0,class:"separator"},tr={class:"value"};Jo.render=function(t,e,n,a,i,o){return Ri(),Bi("span",Xo,[Zi("span",Yo,se(n.name),1),""!==n.name?(Ri(),Bi("span",Qo,": ")):Hi("v-if",!0),Zi("span",tr,se(n.data),1)])},Jo.__file="src/components/BooleanWrapper.vue";var er={props:{data:{required:!0,validator:t=>"Number"===Zo(t)},name:{required:!0,type:String}}};const nr={class:"number"},ar={class:"key"},ir={key:0,class:"separator"},or={class:"value"};er.render=function(t,e,n,a,i,o){return Ri(),Bi("span",nr,[Zi("span",ar,se(n.name),1),""!==n.name?(Ri(),Bi("span",ir,": ")):Hi("v-if",!0),Zi("span",or,se(n.data),1)])},er.__file="src/components/NumberWrapper.vue";var rr={props:{data:{required:!0,validator:t=>"String"===Zo(t)},name:{required:!0,type:String}}};const lr={class:"string"},sr={class:"key"},cr={key:0,class:"separator"},ur=Zi("span",{class:"quotes"},'"',-1),dr={class:"value"},pr=Zi("span",{class:"quotes"},'"',-1);rr.render=function(t,e,n,a,i,o){return Ri(),Bi("span",lr,[Zi("span",sr,se(n.name),1),""!==n.name?(Ri(),Bi("span",cr,": ")):Hi("v-if",!0),ur,Zi("span",dr,se(n.data),1),pr])},rr.__file="src/components/StringWrapper.vue";const fr=new Set;function gr(t={collapseSignal,expandSignal}){const e=Yn(!1),n=Yn(!1),a=()=>{e.value=!1,n.value=!n.value};ii((()=>t.collapseSignal),a);const i=Yn(!1),o=()=>{e.value=!0,i.value=!i.value};return ii((()=>t.expandSignal),o),ii((()=>t.data),(()=>{t.expandOnCreatedAndUpdated(t.path)?o():a()}),{immediate:!0}),{isExpanding:e,innerCollapseSignal:n,innerExpandSignal:i,handleClick:t=>{fr.clear(),!0===t.metaKey&&!0===t.shiftKey?a():!0===t.metaKey?o():e.value=!e.value}}}var mr={name:"array-wrapper",props:{path:{required:!0,validator:t=>"Array"===Zo(t)&&t.every((t=>"String"===Zo(t)||"Number"===Zo(t)))},data:{required:!0,validator:t=>"Array"===Zo(t)},name:{required:!0,type:String},collapseSignal:{default:!1,type:Boolean},expandSignal:{default:!1,type:Boolean},expandOnCreatedAndUpdated:{required:!0,type:Function},getKeys:{required:!0,type:Function}},setup(t){const{isExpanding:e,innerExpandSignal:n,innerCollapseSignal:a,handleClick:i}=gr(t),o=bo((()=>t.getKeys(t.data,t.path))),r=fr.has(t.data);return fr.add(t.data),{keys:o,isExpanding:e,innerExpandSignal:n,innerCollapseSignal:a,handleClick:i,isCircular:r}},components:{}};const hr={class:"array"},Cr={key:0,class:"value"},yr={key:0,class:"value"};mr.render=function(t,e,n,a,i,o){const r=Ni("wrapper");return Ri(),Bi("span",hr,[Zi("span",{class:"indicator",onClick:e[1]||(e[1]=(...t)=>a.handleClick&&a.handleClick(...t))},se(a.isExpanding?"▼":"▶"),1),Zi("span",{class:"key",onClick:e[2]||(e[2]=(...t)=>a.handleClick&&a.handleClick(...t))},se(""===n.name?"":n.name),1),Zi("span",{class:"separator",onClick:e[3]||(e[3]=(...t)=>a.handleClick&&a.handleClick(...t))},se(""===n.name?"":": "),1),Zi("span",{class:"count",onClick:e[4]||(e[4]=(...t)=>a.handleClick&&a.handleClick(...t))},se(!1===a.isExpanding&&n.data.length>=2?"("+n.data.length+")":""),1),Zi("span",{class:"preview",onClick:e[5]||(e[5]=(...t)=>a.handleClick&&a.handleClick(...t))},se(a.isExpanding?"Array("+n.data.length+")":"[...]"),1),a.isCircular?(Ri(),Bi(Oi,{key:0},[a.isExpanding?(Ri(),Bi("span",Cr,[(Ri(!0),Bi(Oi,null,_o(a.keys,(t=>(Ri(),Bi(r,{key:t,name:t,path:n.path.concat(t),data:n.data[t],"expand-signal":a.innerExpandSignal,"collapse-signal":a.innerCollapseSignal,expandOnCreatedAndUpdated:()=>!1,getKeys:n.getKeys},null,8,["name","path","data","expand-signal","collapse-signal","expandOnCreatedAndUpdated","getKeys"])))),128))])):Hi("v-if",!0)],64)):(Ri(),Bi(Oi,{key:1},[a.isExpanding?(Ri(),Bi("span",yr,[(Ri(!0),Bi(Oi,null,_o(a.keys,(t=>(Ri(),Bi(r,{key:t,name:t,path:n.path.concat(t),data:n.data[t],"expand-signal":a.innerExpandSignal,"collapse-signal":a.innerCollapseSignal,expandOnCreatedAndUpdated:n.expandOnCreatedAndUpdated,getKeys:n.getKeys},null,8,["name","path","data","expand-signal","collapse-signal","expandOnCreatedAndUpdated","getKeys"])))),128))])):Hi("v-if",!0)],64))])},mr.__file="src/components/ArrayWrapper.vue";var vr={name:"object-wrapper",props:{path:{required:!0,validator:t=>"Array"===Zo(t)&&t.every((t=>"String"===Zo(t)||"Number"===Zo(t)))},data:{required:!0,validator:t=>"Object"===Zo(t)},name:{required:!0,type:String},collapseSignal:{default:!1,type:Boolean},expandSignal:{default:!1,type:Boolean},expandOnCreatedAndUpdated:{required:!0,type:Function},getKeys:{required:!0,type:Function}},setup(t){const{isExpanding:e,innerExpandSignal:n,innerCollapseSignal:a,handleClick:i}=gr(t),o=bo((()=>t.getKeys(t.data,t.path))),r=fr.has(t.data);return fr.add(t.data),{keys:o,isExpanding:e,innerExpandSignal:n,innerCollapseSignal:a,handleClick:i,isCircular:r}},components:{}};const br={class:"object"},_r={key:0,class:"value"},Lr={key:1,class:"value"};vr.render=function(t,e,n,a,i,o){const r=Ni("wrapper");return Ri(),Bi("span",br,[Zi("span",{class:"indicator",onClick:e[1]||(e[1]=(...t)=>a.handleClick&&a.handleClick(...t))},se(a.isExpanding?"▼":"▶"),1),Zi("span",{class:"key",onClick:e[2]||(e[2]=(...t)=>a.handleClick&&a.handleClick(...t))},se(""===n.name?"":n.name),1),Zi("span",{class:"separator",onClick:e[3]||(e[3]=(...t)=>a.handleClick&&a.handleClick(...t))},se(""===n.name?"":": "),1),Zi("span",{class:"preview",onClick:e[4]||(e[4]=(...t)=>a.handleClick&&a.handleClick(...t))},se(a.isExpanding?"":"{...}"),1),a.isCircular?(Ri(),Bi(Oi,{key:0},[a.isExpanding?(Ri(),Bi("span",_r,[(Ri(!0),Bi(Oi,null,_o(a.keys,(t=>(Ri(),Bi(r,{key:t,class:"value",name:t,path:n.path.concat(t),data:n.data[t],"expand-signal":a.innerExpandSignal,"collapse-signal":a.innerCollapseSignal,expandOnCreatedAndUpdated:()=>!1,getKeys:n.getKeys},null,8,["name","path","data","expand-signal","collapse-signal","expandOnCreatedAndUpdated","getKeys"])))),128))])):Hi("v-if",!0)],64)):hi((Ri(),Bi("span",Lr,[(Ri(!0),Bi(Oi,null,_o(a.keys,(t=>(Ri(),Bi(r,{key:t,class:"value",name:t,path:n.path.concat(t),data:n.data[t],"expand-signal":a.innerExpandSignal,"collapse-signal":a.innerCollapseSignal,expandOnCreatedAndUpdated:n.expandOnCreatedAndUpdated,getKeys:n.getKeys},null,8,["name","path","data","expand-signal","collapse-signal","expandOnCreatedAndUpdated","getKeys"])))),128))],512)),[[jo,a.isExpanding]])])},vr.__file="src/components/ObjectWrapper.vue";const wr={name:"wrapper",props:{path:{required:!0,validator:t=>"Array"===Zo(t)&&t.every((t=>"String"===Zo(t)||"Number"===Zo(t)))},data:{required:!0,validator:t=>"Null"===Zo(t)||"Boolean"===Zo(t)||"Number"===Zo(t)||"String"===Zo(t)||"Array"===Zo(t)||"Object"===Zo(t)},name:{required:!0,type:String},collapseSignal:{default:!1,type:Boolean},expandSignal:{default:!1,type:Boolean},expandOnCreatedAndUpdated:{required:!0,type:Function},getKeys:{required:!0,type:Function}},setup:()=>({objectToString:Zo}),components:{NullWrapper:Vo,BooleanWrapper:Jo,NumberWrapper:er,StringWrapper:rr,ArrayWrapper:mr,ObjectWrapper:vr}};mr.components.Wrapper=wr,vr.components.Wrapper=wr,wr.render=function(t,e,n,a,i,o){const r=Ni("null-wrapper"),l=Ni("boolean-wrapper"),s=Ni("number-wrapper"),c=Ni("string-wrapper"),u=Ni("array-wrapper"),d=Ni("object-wrapper");return"Null"===t.objectToString(t.data)?(Ri(),Bi(r,{key:0,name:t.name,data:t.data},null,8,["name","data"])):"Boolean"===t.objectToString(t.data)?(Ri(),Bi(l,{key:1,name:t.name,data:t.data},null,8,["name","data"])):"Number"===t.objectToString(t.data)?(Ri(),Bi(s,{key:2,name:t.name,data:t.data},null,8,["name","data"])):"String"===t.objectToString(t.data)?(Ri(),Bi(c,{key:3,name:t.name,data:t.data},null,8,["name","data"])):"Array"===t.objectToString(t.data)?(Ri(),Bi(u,{key:4,name:t.name,path:t.path,data:t.data,"collapse-signal":t.collapseSignal,"expand-signal":t.expandSignal,expandOnCreatedAndUpdated:t.expandOnCreatedAndUpdated,getKeys:t.getKeys},null,8,["name","path","data","collapse-signal","expand-signal","expandOnCreatedAndUpdated","getKeys"])):"Object"===t.objectToString(t.data)?(Ri(),Bi(d,{key:5,name:t.name,path:t.path,data:t.data,"collapse-signal":t.collapseSignal,"expand-signal":t.expandSignal,expandOnCreatedAndUpdated:t.expandOnCreatedAndUpdated,getKeys:t.getKeys},null,8,["name","path","data","collapse-signal","expand-signal","expandOnCreatedAndUpdated","getKeys"])):Hi("v-if",!0)},wr.__file="src/components/Wrapper.vue";const xr=Object.freeze({expandOnCreatedAndUpdated:t=>!1,getKeys:(t,e)=>Object.keys(t)});var kr=gt({components:{CodeAce:ht,CodeMonaco:Kt,FullCodePreview:Yt,Preview:Ht},data:function(){return{mousedown:!1,leftContainerSize:40,mobileMode:!1,shared:ut,initialCode:"",currentTab:"code-editor",fullCode:"",fullCodeConfig:{mimimal:!1,esm:!0,node:!1}}},computed:{currentTime:function(){this.shared.message;for(var t=new Date,e=[t.getHours(),t.getMinutes(),t.getSeconds()],n="",a=0,i=e.length;a<i;++a)n+=(e[a]<10?"0":"")+e[a],a<i-1&&(n+=":");return n}},mounted:function(){var t=this;ut.isMobile?(this.leftContainerSize=0,dt().then((function(t){ut.runCode=pt(t)}))):(dt().then((function(e){t.initialCode=pt(e)})),window.addEventListener("mousemove",(function(e){if(t.mousedown){var n=e.clientX/window.innerWidth;n=Math.min(.9,Math.max(.1,n)),t.leftContainerSize=100*n}})),window.addEventListener("mouseup",(function(e){t.mousedown=!1})))},methods:{onSplitterDragStart:function(){this.mousedown=!0},disposeAndRun:function(){this.$refs.preview.refreshAll()},updateFullCode:function(){var t=this.$refs.preview.getOption();if(t){var e=(0,Qt.collectDeps)(t);e.push("svg"===ut.renderer?"SVGRenderer":"CanvasRenderer"),this.fullCode=(0,Qt.buildExampleCode)(ut.sourceCode,e,{minimal:this.fullCodeConfig.minimal,ts:!1,esm:this.fullCodeConfig.esm,theme:ut.darkMode?"dark":"",ROOT_PATH:ut.cdnRoot})}},updateOptionOutline:function(){var t=Object.freeze(this.$refs.preview.getOption());t&&((t,e,n={})=>{void 0===n.rootName&&(n.rootName=""),void 0===n.getKeys&&(n.getKeys=xr.getKeys),void 0===n.expandOnCreatedAndUpdated&&(n.expandOnCreatedAndUpdated=xr.expandOnCreatedAndUpdated),e.classList.add("object-visualizer"),((...t)=>{Uo().render(...t)})(null,e),((...t)=>{const e=Uo().createApp(...t),{mount:n}=e;return e.mount=t=>{const a=function(t){return ke(t)?document.querySelector(t):t}(t);if(!a)return;const i=e._component;xe(i)||i.render||i.template||(i.template=a.innerHTML),a.innerHTML="";const o=n(a);return a.removeAttribute("v-cloak"),a.setAttribute("data-v-app",""),o},e})(wr,{data:t,name:n.rootName,path:[],expandOnCreatedAndUpdated:n.expandOnCreatedAndUpdated,getKeys:n.getKeys}).mount(e)})(t,this.$el.querySelector("#option-outline"),{getKeys:function(t,e){return Object.keys(t).filter((function(e){return!(Array.isArray(t[e])&&!t[e].length)}))},expandOnCreatedAndUpdated:function(t){return 0===t.length||"series"===t[0]&&t.length<=1}})},updateTabContent:function(t){"full-code"===t?this.updateFullCode():"full-option"===t&&this.updateOptionOutline()}},watch:{"shared.typeCheck":function(t){this.initialCode=ut.sourceCode,this.updateFullCode()},currentTab:function(t){this.updateTabContent(t)},"shared.runHash":function(){this.updateTabContent(this.currentTab)},fullCodeConfig:{deep:!0,handler:function(){this.updateFullCode()}}}},Q,[],!1,null,null,null);kr.options.__file="src/editor/Editor.vue";const Sr=kr.exports;var Nr=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"example-explore"}},[n("div",{attrs:{id:"left-container"}},[n("div",{attrs:{id:"left-chart-nav"}},[n("scrollactive",{attrs:{"active-class":"active",offset:80,duration:500,"scroll-container-selector":"#example-explore","bezier-easing-value":".5,0,.35,1"},on:{itemchanged:t.onActiveNavChanged}},[n("ul",t._l(t.EXAMPLE_CATEGORIES,(function(e){return n("li",{key:e},[n("a",{staticClass:"left-chart-nav-link scrollactive-item",attrs:{id:"left-chart-nav-"+e,href:"#chart-type-"+e}},[n("span",{staticClass:"chart-icon",domProps:{innerHTML:t._s(t.icons[e])}}),t._v(" "),n("span",{staticClass:"chart-name"},[t._v(t._s(t.$t("chartTypes."+e)))])])])})),0)])],1)]),t._v(" "),n("div",{attrs:{id:"explore-container"}},[n("div",{staticClass:"example-list-panel"},t._l(t.exampleList,(function(e){return n("div",{key:e.category},[n("h3",{staticClass:"chart-type-head",attrs:{id:"chart-type-"+e.category}},[t._v("\n                    "+t._s(t.$t("chartTypes."+e.category))+"\n                    "),n("span",[t._v(t._s(e.category))])]),t._v(" "),n("div",{staticClass:"row",attrs:{id:"chart-row-"+e.category}},t._l(e.examples,(function(t){return n("div",{key:t.id,staticClass:"col-xl-2 col-lg-3 col-md-4 col-sm-6"},[n("ExampleCard",{attrs:{example:t}})],1)})),0)])})),0)]),t._v(" "),n("div",{attrs:{id:"toolbar"}},[n("el-switch",{attrs:{"active-color":"#181432","active-text":t.$t("editor.darkMode"),"inactive-text":""},model:{value:t.shared.darkMode,callback:function(e){t.$set(t.shared,"darkMode",e)},expression:"shared.darkMode"}})],1)])};Nr._withStripped=!0;var Mr=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"example-list-item"},[a("a",{staticClass:"example-link",attrs:{target:"_blank",href:t.exampleLink}},[a("img",{staticClass:"chart-area",attrs:{src:n(555),"data-src":t.screenshotURL}}),t._v(" "),a("h4",{staticClass:"example-title"},[t._v(t._s(t.title))]),t._v(" "),t.showSubtitle?a("h5",{staticClass:"example-subtitle"},[t._v(t._s(t.subtitle))]):t._e()])])};Mr._withStripped=!0;var Tr=gt({props:["example"],computed:{title:function(){return("zh"===ut.locale?this.example.titleCN:this.example.title)||this.example.title||""},showSubtitle:function(){return"zh"===ut.locale},subtitle:function(){return this.example.title||""},exampleTheme:function(){return this.example.theme||(ut.darkMode?"dark":"")},exampleLink:function(){var t=this.example,e=["c="+t.id],n=this.exampleTheme;return t.isGL&&e.push("gl=1"),n&&e.push("theme="+n),"local"in rt&&e.push("local"),"useDirtyRect"in rt&&e.push("useDirtyRect"),"./editor.html?"+e.join("&")},screenshotURL:function(){var t=this.example,e=this.exampleTheme?"-"+this.exampleTheme:"",n=st?"webp":"png",a=t.isGL?"data-gl":"data";return"".concat(ut.cdnRoot,"/").concat(a,"/thumb").concat(e,"/").concat(t.id,".").concat(n,"?_v_=").concat(ut.version)}}},Mr,[],!1,null,null,null);Tr.options.__file="src/explore/ExampleCard.vue";const Or=Tr.exports,Dr="undefined"!=typeof window,Ar=Dr&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),Er=Dr&&"IntersectionObserver"in window,Pr=Dr&&"classList"in document.createElement("p"),Fr={elements_selector:"img",container:Ar||Dr?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_poster:"poster",class_loading:"loading",class_loaded:"loaded",class_error:"error",load_delay:0,auto_unobserve:!0,callback_enter:null,callback_exit:null,callback_reveal:null,callback_loaded:null,callback_error:null,callback_finish:null,use_native:!1},Rr=function(t,e){var n;let a="LazyLoad::Initialized",i=new t(e);try{n=new CustomEvent(a,{detail:{instance:i}})}catch(t){(n=document.createEvent("CustomEvent")).initCustomEvent(a,!1,!1,{instance:i})}window.dispatchEvent(n)},Ir="data-",Br="was-processed",jr="ll-timeout",Gr="true",zr=(t,e)=>t.getAttribute(Ir+e),$r=(t,e,n)=>{var a=Ir+e;null!==n?t.setAttribute(a,n):t.removeAttribute(a)},Ur=t=>zr(t,Br)===Gr,Zr=(t,e)=>$r(t,jr,e),Vr=t=>zr(t,jr),Wr=(t,e,n,a)=>{t&&(void 0===a?void 0===n?t(e):t(e,n):t(e,n,a))},Hr=(t,e)=>{t.loadingCount+=e,0===t._elements.length&&0===t.loadingCount&&Wr(t._settings.callback_finish,t)},qr=t=>{let e=[];for(let n,a=0;n=t.children[a];a+=1)"SOURCE"===n.tagName&&e.push(n);return e},Kr=(t,e,n)=>{n&&t.setAttribute(e,n)},Jr=(t,e)=>{Kr(t,"sizes",zr(t,e.data_sizes)),Kr(t,"srcset",zr(t,e.data_srcset)),Kr(t,"src",zr(t,e.data_src))},Xr={IMG:(t,e)=>{const n=t.parentNode;n&&"PICTURE"===n.tagName&&qr(n).forEach((t=>{Jr(t,e)})),Jr(t,e)},IFRAME:(t,e)=>{Kr(t,"src",zr(t,e.data_src))},VIDEO:(t,e)=>{qr(t).forEach((t=>{Kr(t,"src",zr(t,e.data_src))})),Kr(t,"poster",zr(t,e.data_poster)),Kr(t,"src",zr(t,e.data_src)),t.load()}},Yr=(t,e)=>{Pr?t.classList.add(e):t.className+=(t.className?" ":"")+e},Qr=(t,e)=>{Pr?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\s+)"+e+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},tl="load",el="loadeddata",nl="error",al=(t,e,n)=>{t.addEventListener(e,n)},il=(t,e,n)=>{t.removeEventListener(e,n)},ol=(t,e,n)=>{il(t,tl,e),il(t,el,e),il(t,nl,n)},rl=function(t,e,n){var a=n._settings;const i=e?a.class_loaded:a.class_error,o=e?a.callback_loaded:a.callback_error,r=t.target;Qr(r,a.class_loading),Yr(r,i),Wr(o,r,n),Hr(n,-1)},ll=["IMG","IFRAME","VIDEO"],sl=(t,e)=>{var n=e._observer;ul(t,e),n&&e._settings.auto_unobserve&&n.unobserve(t)},cl=t=>{var e=Vr(t);e&&(clearTimeout(e),Zr(t,null))},ul=(t,e,n)=>{var a=e._settings;!n&&Ur(t)||(ll.indexOf(t.tagName)>-1&&(((t,e)=>{const n=i=>{rl(i,!0,e),ol(t,n,a)},a=i=>{rl(i,!1,e),ol(t,n,a)};((t,e,n)=>{al(t,tl,e),al(t,el,e),al(t,nl,n)})(t,n,a)})(t,e),Yr(t,a.class_loading)),((t,e)=>{const n=e._settings,a=t.tagName,i=Xr[a];if(i)return i(t,n),Hr(e,1),void(e._elements=(o=e._elements,r=t,o.filter((t=>t!==r))));var o,r;((t,e)=>{const n=zr(t,e.data_src),a=zr(t,e.data_bg);n&&(t.style.backgroundImage=`url("${n}")`),a&&(t.style.backgroundImage=a)})(t,n)})(t,e),(t=>{$r(t,Br,Gr)})(t),Wr(a.callback_reveal,t,e),Wr(a.callback_set,t,e))},dl=t=>{return!!Er&&(t._observer=new IntersectionObserver((e=>{e.forEach((e=>(t=>t.isIntersecting||t.intersectionRatio>0)(e)?((t,e,n)=>{const a=n._settings;Wr(a.callback_enter,t,e,n),a.load_delay?((t,e)=>{var n=e._settings.load_delay,a=Vr(t);a||(a=setTimeout((function(){sl(t,e),cl(t)}),n),Zr(t,a))})(t,n):sl(t,n)})(e.target,e,t):((t,e,n)=>{const a=n._settings;Wr(a.callback_exit,t,e,n),a.load_delay&&cl(t)})(e.target,e,t)))}),{root:(e=t._settings).container===document?null:e.container,rootMargin:e.thresholds||e.threshold+"px"}),!0);var e},pl=["IMG","IFRAME"],fl=(t,e)=>{return(t=>t.filter((t=>!Ur(t))))((n=t||(t=>t.container.querySelectorAll(t.elements_selector))(e),Array.prototype.slice.call(n)));var n},gl=function(t,e){var n;this._settings=(t=>Object.assign({},Fr,t))(t),this.loadingCount=0,dl(this),this.update(e),n=this,Dr&&window.addEventListener("online",(t=>{(t=>{var e=t._settings;e.container.querySelectorAll("."+e.class_error).forEach((t=>{Qr(t,e.class_error),(t=>{$r(t,Br,null)})(t)})),t.update()})(n)}))};gl.prototype={update:function(t){var e,n=this._settings;this._elements=fl(t,n),!Ar&&this._observer?((t=>t.use_native&&"loading"in HTMLImageElement.prototype)(n)&&((e=this)._elements.forEach((t=>{-1!==pl.indexOf(t.tagName)&&(t.setAttribute("loading","lazy"),ul(t,e))})),this._elements=fl(t,n)),this._elements.forEach((t=>{this._observer.observe(t)}))):this.loadAll()},destroy:function(){this._observer&&(this._elements.forEach((t=>{this._observer.unobserve(t)})),this._observer=null),this._elements=null,this._settings=null},load:function(t,e){ul(t,this,e)},loadAll:function(){this._elements.forEach((t=>{sl(t,this)}))}},Dr&&function(t,e){if(e)if(e.length)for(let n,a=0;n=e[a];a+=1)Rr(t,n);else Rr(t,e)}(gl,window.lazyLoadOptions);const ml=gl;var hl={};["line","bar","scatter","pie","radar","funnel","gauge","map","graph","treemap","parallel","sankey","candlestick","boxplot","heatmap","pictorialBar","themeRiver","calendar","custom","sunburst","tree","dataset","geo","lines","dataZoom","rich","drag"].forEach((function(t){hl[t]=n(472)("./"+t+".svg")}));var Cl=n(926);["globe","bar3D","scatter3D","surface","map3D","lines3D","line3D","scatterGL","linesGL","flowGL","graphGL","geo3D"].forEach((function(t){hl[t]=Cl}));var yl="ec-shot-loaded",vl=gt({components:{ExampleCard:Or},data:function(){var t={};function e(e,n){var a=0;do{for(var i=!1,o=0;o<e.length;o++){var r=e[o];if(!ot.hasOwnProperty(r.id)){"string"==typeof r.category&&(r.category=[r.category]);var l=(r.category||[])[a];if(l){i=!0;var s=t[l];s||(s={category:l,examples:[]},t[l]=s),r.isGL=n,s.examples.push(r)}}}if(!i)break}while(++a&&a<4)}return e(Ft,!1),e(Rt,!0),{shared:ut,icons:hl,EXAMPLE_CATEGORIES:it,exampleListByCategory:t}},watch:{"shared.darkMode":function(){for(var t=this.$el.querySelectorAll("img.chart-area"),e=0;e<t.length;e++)t[e].classList.remove(yl),t[e].setAttribute("data-was-processed","false");this._lazyload.update()}},computed:{exampleList:function(){for(var t=[],e=0;e<it.length;e++){var n=it[e],a=this.exampleListByCategory[n];a&&a.examples.length>0&&t.push({category:n,examples:a.examples})}return t}},mounted:function(){this._lazyload=new ml({elements_selector:"img.chart-area",load_delay:400,class_loaded:yl})},methods:{onActiveNavChanged:function(t,e,n){}}},Nr,[],!1,null,null,null);vl.options.__file="src/explore/Explore.vue";const bl=vl.exports;var _l=function(){var t=this.$createElement;return(this._self._c||t)("preview")};_l._withStripped=!0;var Ll=gt({components:{Preview:Ht},mounted:function(){dt().then((function(t){ut.runCode=pt(t)}))}},_l,[],!1,null,null,null);Ll.options.__file="src/editor/View.vue";const wl=Ll.exports;var xl=n(463),kl=n.n(xl);function Sl(t,e){var n=new X({locale:e.locale,fallbackLocale:"en",messages:Y});if(ut.cdnRoot=e.cdnRoot,ut.version=e.version,ut.locale=e.locale||"en","string"==typeof t&&(t=document.querySelector(t)),!t)throw new Error("Can't find el.");var a=document.createElement("div");t.appendChild(a),new(i())({i18n:n,el:a,render:function(t){return t({editor:Sr,explore:bl,view:wl}[e.page]||bl)}})}i().use(kl())},555:(t,e,n)=>{t.exports=n.p+"../asset/placeholder.jpg"},38:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="138px" viewBox="0 0 175 138" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>bar</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="bar" fill="#5067A2" fill-rule="nonzero"> <path d="M121.488231,0 L102.050114,0 C99.36627,-1.1969592e-16 97.1905846,2.17568537 97.1905846,4.85952929 L97.1905846,133.140471 C97.1905846,135.824315 99.36627,138 102.050114,138 L121.488231,138 C124.172075,138 126.34776,135.824315 126.34776,133.140471 L126.34776,4.85952929 C126.34776,2.17568537 124.172075,1.1969592e-16 121.488231,0 Z M170.083523,30.1571753 L150.645406,30.1571753 C147.961562,30.1571753 145.785877,32.3328607 145.785877,35.0167046 L145.785877,132.207289 C145.785877,134.891133 147.961562,137.066819 150.645406,137.066819 L170.083523,137.066819 C172.767367,137.066819 174.943052,134.891133 174.943052,132.207289 L174.943052,35.0167046 C174.943052,32.3328607 172.767367,30.1571753 170.083523,30.1571753 Z M53.4548215,39.8762339 C50.7709777,39.876234 48.5952924,42.0519193 48.5952924,44.7357631 L48.5952924,132.207289 C48.5952924,134.891133 50.7709777,137.066818 53.4548215,137.066819 L72.8929386,137.066819 C75.5767824,137.066818 77.7524677,134.891133 77.7524677,132.207289 L77.7524677,44.7357631 C77.7524676,42.0519193 75.5767824,39.876234 72.8929386,39.8762339 L53.4548215,39.8762339 Z M29.1571753,67.17388 L29.1571753,132.207289 C29.1571753,134.891133 26.9814901,137.066818 24.2976462,137.066819 L4.85952929,137.066819 C2.17568537,137.066819 3.28676086e-16,134.891133 0,132.207289 L0,67.17388 C7.33863613e-08,64.4900361 2.17568542,62.3143508 4.85952929,62.3143508 L24.2976462,62.3143508 C26.98149,62.3143509 29.1571753,64.4900362 29.1571753,67.17388 Z" id="Shape"></path> </g> </g> </svg>'},851:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="98px" viewBox="0 0 175 98" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>boxplot</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="boxplot" fill="#5067A2" fill-rule="nonzero"> <path d="M165.206074,4.85900217 L165.206074,43.7310195 L145.770065,43.7310195 L145.770065,14.5770065 C145.770065,11.8934537 143.594616,9.71800434 140.911063,9.71800434 L72.8850325,9.71800434 C70.2014797,9.71800434 68.0260304,11.8934537 68.0260304,14.5770065 L68.0260304,82.6030369 C68.0260304,85.2865897 70.2014797,87.462039 72.8850325,87.462039 L140.911063,87.462039 C143.594616,87.462039 145.770065,85.2865897 145.770065,82.6030369 L145.770065,53.4490239 L165.206074,53.4490239 L165.206074,92.3210412 C165.206074,95.004594 167.381523,97.1800434 170.065076,97.1800434 C172.748629,97.1800434 174.924078,95.004594 174.924078,92.3210412 L174.924078,4.85900217 C174.924078,2.17544937 172.748629,1.43751749e-14 170.065076,1.42108547e-14 C167.381523,-1.05827854e-15 165.206074,2.17544937 165.206074,4.85900217 Z M58.308026,14.5770065 L58.308026,82.6030369 C58.308026,83.8917244 57.7960969,85.1276306 56.8848572,86.0388703 C55.9736176,86.9501099 54.7377114,87.462039 53.4490239,87.462039 L34.0130152,87.462039 C31.3294624,87.462039 29.154013,85.2865897 29.154013,82.6030369 L29.154013,53.4490239 L9.71800434,53.4490239 L9.71800434,92.3210412 C9.71800434,95.004594 7.54255497,97.1800434 4.85900217,97.1800434 C2.17544937,97.1800434 3.28640434e-16,95.004594 0,92.3210412 L0,4.85900217 C-3.28640434e-16,2.17544937 2.17544937,4.31255248e-14 4.85900217,4.26325641e-14 C7.54255497,4.21396035e-14 9.71800434,2.17544937 9.71800434,4.85900217 L9.71800434,43.7310195 L29.154013,43.7310195 L29.154013,14.5770065 C29.154013,11.8934537 31.3294624,9.71800434 34.0130152,9.71800434 L53.4490239,9.71800434 C56.1325767,9.71800434 58.308026,11.8934537 58.308026,14.5770065 L58.308026,14.5770065 Z" id="Shape"></path> </g> </g> </svg>'},496:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="164px" height="138px" viewBox="0 0 164 138" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>calendar </title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="calendar-" transform="translate(-0.500000, -0.315789)" fill="#5067A2" fill-rule="nonzero"> <path d="M147.236842,56.3782895 C147.236842,53.9965615 145.304597,52.0657895 142.921053,52.0657895 L125.657895,52.0657895 C123.27435,52.0657895 121.342105,53.9965615 121.342105,56.3782895 L121.342105,65.0032895 C121.342105,67.3850175 123.27435,69.3157895 125.657895,69.3157895 L142.921053,69.3157895 C145.304597,69.3157895 147.236842,67.3850175 147.236842,65.0032895 L147.236842,56.3782895 Z M147.236842,82.2532895 C147.236842,79.8715615 145.304597,77.9407895 142.921053,77.9407895 L125.657895,77.9407895 C123.27435,77.9407895 121.342105,79.8715615 121.342105,82.2532895 L121.342105,90.8782895 C121.342105,93.2600175 123.27435,95.1907895 125.657895,95.1907895 L142.921053,95.1907895 C145.304597,95.1907895 147.236842,93.2600175 147.236842,90.8782895 L147.236842,82.2532895 Z M112.710526,56.3782895 C112.710526,53.9965615 110.778282,52.0657895 108.394737,52.0657895 L91.1315789,52.0657895 C88.7480342,52.0657895 86.8157895,53.9965615 86.8157895,56.3782895 L86.8157895,65.0032895 C86.8157895,67.3850175 88.7480342,69.3157895 91.1315789,69.3157895 L108.394737,69.3157895 C110.778282,69.3157895 112.710526,67.3850175 112.710526,65.0032895 L112.710526,56.3782895 Z M112.710526,82.2532895 C112.710526,79.8715615 110.778282,77.9407895 108.394737,77.9407895 L91.1315789,77.9407895 C88.7480342,77.9407895 86.8157895,79.8715615 86.8157895,82.2532895 L86.8157895,90.8782895 C86.8157895,93.2600175 88.7480342,95.1907895 91.1315789,95.1907895 L108.394737,95.1907895 C110.778282,95.1907895 112.710526,93.2600175 112.710526,90.8782895 L112.710526,82.2532895 Z M112.710526,108.128289 C112.710526,105.746561 110.778282,103.815789 108.394737,103.815789 L91.1315789,103.815789 C88.7480342,103.815789 86.8157895,105.746561 86.8157895,108.128289 L86.8157895,116.753289 C86.8157895,119.135017 88.7480342,121.065789 91.1315789,121.065789 L108.394737,121.065789 C110.778282,121.065789 112.710526,119.135017 112.710526,116.753289 L112.710526,108.128289 Z M78.1842105,56.3782895 C78.1842105,53.9965615 76.2519658,52.0657895 73.8684211,52.0657895 L56.6052632,52.0657895 C54.2217184,52.0657895 52.2894737,53.9965615 52.2894737,56.3782895 L52.2894737,65.0032895 C52.2894737,67.3850175 54.2217184,69.3157895 56.6052632,69.3157895 L73.8684211,69.3157895 C76.2519658,69.3157895 78.1842105,67.3850175 78.1842105,65.0032895 L78.1842105,56.3782895 Z M78.1842105,82.2532895 C78.1842105,79.8715615 76.2519658,77.9407895 73.8684211,77.9407895 L56.6052632,77.9407895 C54.2217184,77.9407895 52.2894737,79.8715615 52.2894737,82.2532895 L52.2894737,90.8782895 C52.2894737,93.2600175 54.2217184,95.1907895 56.6052632,95.1907895 L73.8684211,95.1907895 C76.2519658,95.1907895 78.1842105,93.2600175 78.1842105,90.8782895 L78.1842105,82.2532895 Z M78.1842105,108.128289 C78.1842105,105.746561 76.2519658,103.815789 73.8684211,103.815789 L56.6052632,103.815789 C54.2217184,103.815789 52.2894737,105.746561 52.2894737,108.128289 L52.2894737,116.753289 C52.2894737,119.135017 54.2217184,121.065789 56.6052632,121.065789 L73.8684211,121.065789 C76.2519658,121.065789 78.1842105,119.135017 78.1842105,116.753289 L78.1842105,108.128289 Z M43.6578947,82.2532895 C43.6578947,79.8715615 41.72565,77.9407895 39.3421053,77.9407895 L22.0789474,77.9407895 C19.6954027,77.9407895 17.7631579,79.8715615 17.7631579,82.2532895 L17.7631579,90.8782895 C17.7631579,93.2600175 19.6954027,95.1907895 22.0789474,95.1907895 L39.3421053,95.1907895 C41.72565,95.1907895 43.6578947,93.2600175 43.6578947,90.8782895 L43.6578947,82.2532895 Z M43.6578947,108.128289 C43.6578947,105.746561 41.72565,103.815789 39.3421053,103.815789 L22.0789474,103.815789 C19.6954027,103.815789 17.7631579,105.746561 17.7631579,108.128289 L17.7631579,116.753289 C17.7631579,119.135017 19.6954027,121.065789 22.0789474,121.065789 L39.3421053,121.065789 C41.72565,121.065789 43.6578947,119.135017 43.6578947,116.753289 L43.6578947,108.128289 Z M164.5,39.1282895 L164.5,134.003289 C164.5,136.385017 162.567755,138.315789 160.184211,138.315789 L4.81578947,138.315789 C2.43224476,138.315789 0.5,136.385017 0.5,134.003289 L0.5,39.1282895 C0.5,36.7465615 2.43224476,34.8157895 4.81578947,34.8157895 L160.184211,34.8157895 C162.567755,34.8157895 164.5,36.7465615 164.5,39.1282895 Z M164.5,4.62828947 L164.5,21.8782895 C164.5,24.2600175 162.567755,26.1907895 160.184211,26.1907895 L4.81578947,26.1907895 C2.43224476,26.1907895 0.5,24.2600175 0.5,21.8782895 L0.5,4.62828947 C0.5,2.24656149 2.43224476,0.315789474 4.81578947,0.315789474 L160.184211,0.315789474 C162.567755,0.315789474 164.5,2.24656149 164.5,4.62828947 Z" id="Shape"></path> </g> </g> </svg>'},173:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="138px" viewBox="0 0 175 138" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>Candlestick (1)</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="Candlestick-(1)" fill="#5067A2" fill-rule="nonzero"> <path d="M121.508001,34.0222403 L116.647681,33.0222403 L116.647681,4.86032 C116.647681,2.17603934 114.471642,-7.11961547e-08 111.787361,-7.11961549e-08 C109.10308,-7.1196155e-08 106.927041,2.17603934 106.927041,4.86032 L106.927041,33.0222403 L102.066721,33.0222403 C100.777684,33.0222403 99.5414424,33.5343082 98.6299556,34.4457951 C97.7184688,35.3572819 97.2064009,36.5935234 97.2064009,37.8825604 L97.2064009,105.927041 C97.2064009,107.216078 97.7184688,108.452319 98.6299556,109.363806 C99.5414424,110.275293 100.777684,110.787361 102.066721,110.787361 L106.927041,110.787361 L106.927041,125.572455 C106.927041,128.256735 109.10308,130.432775 111.787361,130.432775 C114.471642,130.432775 116.647681,128.256735 116.647681,125.572455 L116.647681,110.787361 L121.508001,110.787361 C122.797038,110.787361 124.03328,110.275293 124.944766,109.363806 C125.856253,108.452319 126.368321,107.216078 126.368321,105.927041 L126.368321,37.8825604 C126.368321,36.5935233 125.856253,35.3572819 124.944766,34.445795 C124.03328,33.5343082 122.797038,33.0222402 121.508001,33.0222403 L121.508001,34.0222403 Z M170.111202,41.6032004 L165.250881,41.6032004 L165.250881,27.0222403 C165.250881,24.3379598 163.074842,22.1619207 160.390561,22.1619207 C157.706281,22.1619207 155.530242,24.3379598 155.530241,27.0222403 L155.530241,41.6032004 L150.669921,41.6032004 C149.380884,41.6032004 148.144643,42.1152684 147.233156,43.0267552 C146.321669,43.938242 145.809601,45.1744835 145.809601,46.4635205 L145.809601,75.6254408 C145.809601,78.3097214 147.985641,80.4857608 150.669921,80.4857608 L155.530241,80.4857608 L155.530241,104.729037 C155.530241,107.413318 157.706281,109.589357 160.390561,109.589357 C163.074842,109.589357 165.250881,107.413318 165.250881,104.729037 L165.250881,80.4857608 L170.111202,80.4857608 C172.795482,80.4857608 174.971522,78.3097214 174.971522,75.6254408 L174.971522,46.4635205 C174.971522,45.1744835 174.459454,43.938242 173.547967,43.0267552 C172.63648,42.1152684 171.400239,41.6032004 170.111202,41.6032004 L170.111202,41.6032004 Z M72.9048007,84.3460808 L68.0444807,84.3460808 L68.0444807,55.1841605 C68.0444805,52.4998799 65.8684412,50.3238407 63.1841606,50.3238407 C60.49988,50.3238407 58.3238406,52.4998799 58.3238405,55.1841605 L58.3238405,84.3460808 L53.4635205,84.3460808 C52.1744835,84.3460807 50.938242,84.8581487 50.0267552,85.7696355 C49.1152683,86.6811224 48.6032003,87.9173639 48.6032004,89.2064009 L48.6032004,118.368321 C48.6032004,119.657358 49.1152684,120.8936 50.0267552,121.805086 C50.938242,122.716573 52.1744835,123.228641 53.4635205,123.228641 L58.3238405,123.228641 L58.3238405,132.949281 C58.3238406,135.633562 60.49988,137.809601 63.1841606,137.809601 C65.8684412,137.809601 68.0444805,135.633562 68.0444807,132.949281 L68.0444807,123.228641 L72.9048007,123.228641 C75.5890813,123.228641 77.7651206,121.052602 77.7651206,118.368321 L77.7651206,89.2064009 C77.7651207,87.9173639 77.2530527,86.6811224 76.3415659,85.7696356 C75.4300791,84.8581488 74.1938377,84.3460808 72.9048007,84.3460808 Z M29.1619203,41.6032004 L29.1619203,90.2064009 C29.1619203,92.8906815 26.9858809,95.0667209 24.3016003,95.0667209 L19.4412801,95.0667209 L19.4412801,119.572455 C19.4412801,122.256735 17.2652407,124.432775 14.5809601,124.432775 C11.8966795,124.432775 9.72064013,122.256735 9.72064013,119.572455 L9.72064013,95.0667209 L4.86032,95.0667209 C2.17603938,95.0667209 3.28729566e-16,92.8906815 0,90.2064009 L0,41.6032004 C-3.28729566e-16,38.9189198 2.17603938,36.7428804 4.86032,36.7428804 L9.72064013,36.7428804 L9.72064013,12.4412801 C9.72064013,9.75699951 11.8966795,7.58096013 14.5809601,7.58096013 C17.2652407,7.58096013 19.4412801,9.75699951 19.4412801,12.4412801 L19.4412801,36.7428804 L24.3016003,36.7428804 C26.9858809,36.7428804 29.1619203,38.9189198 29.1619203,41.6032004 Z" id="Shape"></path> </g> </g> </svg>'},353:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="159px" height="142px" viewBox="0 0 159 142" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>custom</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="custom" transform="translate(0.000000, -0.825151)" fill="#5067A2" fill-rule="nonzero"> <path d="M74.8235294,81.2918174 L74.8235294,138.091817 C74.8235294,140.705965 72.7298022,142.825151 70.1470588,142.825151 L4.67647054,142.825151 C2.09372718,142.825151 3.16294839e-16,140.705965 0,138.091817 L0,81.2918174 C-3.63362476e-08,80.0364594 0.492698108,78.8325175 1.36970646,77.9448453 C2.24671482,77.0571731 3.43619342,76.558484 4.67647054,76.558484 L70.1470588,76.558484 C71.387336,76.558484 72.5768146,77.0571731 73.4538229,77.9448453 C74.3308313,78.8325175 74.8235294,80.0364594 74.8235294,81.2918174 Z M74.8235294,5.55848402 L74.8235294,62.358484 C74.8235294,63.6138421 74.3308313,64.817784 73.4538229,65.7054562 C72.5768146,66.5931284 71.387336,67.0918174 70.1470588,67.0918174 L4.67647054,67.0918174 C3.43619342,67.0918174 2.24671482,66.5931284 1.36970646,65.7054562 C0.492698108,64.817784 -3.63362423e-08,63.6138421 0,62.358484 L0,5.55848402 C-2.35506485e-15,4.30312598 0.492698161,3.09918414 1.36970651,2.21151195 C2.24671486,1.32383977 3.43619344,0.825150732 4.67647054,0.825150732 L70.1470588,0.825150732 C72.7298022,0.825150732 74.8235294,2.94433623 74.8235294,5.55848402 Z M159,10.2918174 L159,57.6251507 C159,62.8534463 154.812546,67.0918174 149.647059,67.0918174 L93.5294118,67.0918174 C88.363925,67.0918174 84.1764706,62.8534464 84.1764706,57.6251507 L84.1764706,10.2918174 C84.1764706,5.06352179 88.363925,0.825150732 93.5294118,0.825150732 L149.647059,0.825150732 C154.812546,0.825150809 159,5.06352184 159,10.2918174 Z M154.323529,76.558484 C155.563807,76.558484 156.753285,77.0571731 157.630294,77.9448453 C158.507302,78.8325175 159,80.0364594 159,81.2918174 L159,138.091817 C159,140.705965 156.906273,142.825151 154.323529,142.825151 L88.8529412,142.825151 C86.2701978,142.825151 84.1764706,140.705965 84.1764706,138.091817 L84.1764706,81.2918174 C84.1764706,80.0364594 84.6691687,78.8325175 85.5461771,77.9448453 C86.4231854,77.0571731 87.612664,76.558484 88.8529412,76.558484 L154.323529,76.558484 L154.323529,76.558484 Z M93.5294118,133.358484 L149.647059,133.358484 L149.647059,86.0251507 L93.5294118,86.0251507 L93.5294118,133.358484 L93.5294118,133.358484 Z" id="Shape"></path> </g> </g> </svg>'},6:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="83px" viewBox="0 0 175 83" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>dataZoom</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="dataZoom" fill="#5067A2" fill-rule="nonzero"> <path d="M9.20037003,18.4191593 L9.20957963,13.8143694 L9.20957963,18.4191593 L41.4431082,18.4191593 L41.4431082,64.4670572 L9.20957963,64.4670572 L9.20957963,18.4191593 L9.20037003,18.4191593 Z M133.538904,64.4670572 L133.538904,18.4191593 L165.772433,18.4191593 L165.772433,64.4670572 L133.538904,64.4670572 L133.538904,64.4670572 Z M165.772433,9.20957963 L133.538904,9.20957963 L133.538904,4.60478981 C133.538904,2.06163473 131.47727,2.74466854e-07 128.934115,2.74466854e-07 C126.390959,2.74466855e-07 124.329325,2.06163473 124.329325,4.60478981 L124.329325,9.20957963 L50.6526879,9.20957963 L50.6526879,4.60478981 C50.6526879,2.06163462 48.5910532,-6.1602121e-15 46.047898,-6.31593544e-15 C43.5047429,-6.47165878e-15 41.4431082,2.06163462 41.4431082,4.60478981 L41.4431082,9.20957963 L9.20957963,9.20957963 C4.13510123,9.20957963 0,13.3446809 0,18.4191593 L0,64.4670572 C0,69.5507451 4.13510123,73.6766368 9.20957963,73.6766368 L41.4431082,73.6766368 L41.4431082,78.2814267 C41.4431082,80.8245818 43.5047429,82.8862165 46.047898,82.8862165 C48.5910532,82.8862165 50.6526879,80.8245818 50.6526879,78.2814267 L50.6526879,73.6766368 L124.329325,73.6766368 L124.329325,78.2814267 C124.329325,80.8245818 126.390959,82.8862165 128.934115,82.8862165 C131.47727,82.8862165 133.538904,80.8245818 133.538904,78.2814267 L133.538904,73.6766368 L165.772433,73.6766368 C170.858743,73.6766368 174.982013,69.5533676 174.982013,64.4670572 L174.982013,18.4191593 C174.982013,13.3446809 170.856121,9.20957963 165.772433,9.20957963 Z" id="Shape"></path> </g> </g> </svg>'},238:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="145px" height="157px" viewBox="0 0 145 157" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>dataset</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="dataset" fill="#5067A2" fill-rule="nonzero"> <path d="M77,133.051622 C77,135.720999 74.7614237,137.884956 72,137.884956 C69.2385763,137.884956 67,135.720999 67,133.051622 L67,92.7182891 C67,90.0489128 69.2385763,87.8849558 72,87.8849558 C74.7614237,87.8849558 77,90.0489128 77,92.7182891 L77,133.051622 Z M87,92.7182888 C87.0000002,90.0489126 89.2385764,87.8849558 92,87.8849558 C94.7614236,87.8849558 96.9999998,90.0489126 97,92.7182888 L97,133.051623 C96.9999998,135.720999 94.7614236,137.884956 92,137.884956 C89.2385764,137.884956 87.0000002,135.720999 87,133.051623 L87,92.7182888 Z M58,133.072456 C58,135.730326 55.7614237,137.884956 53,137.884956 C50.2385763,137.884956 48,135.730326 48,133.072456 L48,73.6974557 C48,71.0395854 50.2385763,68.8849558 53,68.8849558 C55.7614237,68.8849558 58,71.0395854 58,73.6974557 L58,133.072456 Z M39,133.066774 C38.9999999,135.727782 36.7614237,137.884956 34,137.884956 C31.2385763,137.884956 29.0000001,135.727782 29,133.066774 L29,44.7031376 C29,42.0421293 31.2385763,39.8849558 34,39.8849558 C36.7614237,39.8849558 39,42.0421293 39,44.7031376 L39,133.066774 Z M126.3,132.884956 L126.3,63.9913737 C126.403893,62.6917747 125.897136,61.4145164 124.9129,60.4952543 L83.0962,21.7192841 C82.9895,21.6282393 82.8537001,21.5918214 82.7469999,21.5098811 C81.8447692,20.5509026 80.5501183,19.997952 79.1870999,19.9894333 L39,19.9894333 L39,10.8849558 L135.9903,10.8849558 L136,132.884956 L126.3,132.884956 Z M116,146.884956 L10,146.884956 L10,28.8849558 L74.0143636,28.8849558 L74.0143636,58.8841865 C74.0143636,63.8855711 78.3314545,67.9611095 83.6507272,67.9611097 L116,67.9611097 L116,146.884956 Z M144.990333,10.0614263 C144.990333,5.00519104 140.659667,0.884955752 135.323667,0.884955752 L38.6666667,0.884955752 C33.3403334,0.884955752 29.0000001,5.00519104 28.9999999,10.0614263 L28.9999999,19.2378969 L9.66666665,19.2378969 C4.34033332,19.2378969 0,23.3581322 0,28.4143675 L0,147.708485 C0,152.773897 4.34033332,156.884956 9.66666665,156.884956 L116,156.884956 C121.338753,156.884956 125.666667,152.77651 125.666667,147.708485 L125.666667,142.202603 L135.333333,142.202603 C140.672086,142.202603 145,138.094157 145,133.026132 L144.990333,10.0614263 Z" id="Shape"></path> </g> </g> </svg>'},642:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="159px" viewBox="0 0 175 159" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>drag</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="drag" transform="translate(0.000000, 0.000000)" fill="#5067A2" fill-rule="nonzero"> <path d="M174.799112,77.2243509 C175.141784,80.4933122 173.860538,83.7226514 171.369927,85.8675022 L145.821493,107.665891 C143.704571,109.29545 140.681703,108.978807 138.948417,106.945941 C137.215132,104.913075 137.380357,101.878162 139.32409,100.045479 L158.345038,83.8019696 L92.4385031,83.8019696 L92.4385031,144.173679 L109.273597,130.085944 C111.397298,128.30558 114.562167,128.583909 116.342532,130.70761 C118.122896,132.83131 117.844567,135.99618 115.720867,137.776544 L93.3308935,156.516741 C89.5429956,159.697467 83.9995074,159.633553 80.2859517,156.366338 L59.0490671,137.706356 C57.140269,135.840194 57.0244102,132.80703 58.7852891,130.800695 C60.546168,128.79436 63.5687212,128.515654 65.6667932,130.166159 L82.4116455,144.885586 L82.4116455,83.8019696 L16.5051101,83.8019696 L35.5360859,100.045479 C36.9700273,101.186546 37.6671397,103.019075 37.3541473,104.824694 C37.041155,106.630312 35.7679333,108.121296 34.0335988,108.713163 C32.2992644,109.305031 30.380183,108.903467 29.0286553,107.665891 L3.52032945,85.8975828 C1.25557692,83.9644222 -0.0328273042,81.1246883 0.00397844461,78.147297 C0.0407841935,75.1699056 1.39899211,72.3628885 3.71083975,70.4863026 L29.118897,49.820949 C31.2816477,48.328475 34.2285594,48.7508003 35.8850928,50.7906204 C37.5416262,52.8304405 37.3503183,55.8013071 35.4458442,57.6118174 L15.5625855,73.7751119 L82.4116455,73.7751119 L82.4116455,14.1153089 L65.6667932,28.8347359 C64.3276607,30.0598688 62.43094,30.4655542 60.7078175,29.8954003 C58.9846951,29.3252464 57.7042897,27.8683002 57.360198,26.0862151 C57.0161064,24.30413 57.662069,22.4752334 59.0490671,21.3045658 L80.2759248,2.65461056 C83.9853287,-0.629787191 89.5418994,-0.698070701 93.3308935,2.49418084 L115.720867,21.2243509 C117.320514,22.5881211 117.904229,24.8023516 117.184781,26.777481 C116.465334,28.7526104 114.594242,30.0726692 112.492218,30.0880931 C111.314421,30.0896881 110.174126,29.6740664 109.273597,28.9149508 L92.4385031,14.8272158 L92.4385031,73.7751119 L159.29759,73.7751119 L139.414331,57.6118174 C138.022627,56.4816171 137.339593,54.6948034 137.622523,52.9244518 C137.905453,51.1541001 139.111362,49.669169 140.785997,49.0290176 C142.460631,48.3888662 144.349574,48.6907487 145.741278,49.820949 L171.149336,70.4863026 C173.218763,72.1532673 174.533435,74.5803549 174.799112,77.2243509" id="Path"></path> </g> </g> </svg>'},797:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="137px" viewBox="0 0 175 137" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>funnel </title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="funnel-" fill="#5067A2" fill-rule="nonzero"> <path d="M116.331467,108.325366 L60.5285591,108.325366 C58.9291301,108.325102 57.4459378,109.160985 56.6178211,110.52934 C55.7897045,111.897695 55.7371711,113.5994 56.4793063,115.016231 L66.3876358,133.863994 C67.1750739,135.367321 68.7306799,136.310539 70.4277481,136.313655 L106.432278,136.313655 C108.129346,136.310539 109.684952,135.367321 110.47239,133.863994 L120.380719,115.016231 C121.122854,113.5994 121.070321,111.897695 120.242204,110.52934 C119.414088,109.160985 117.930896,108.325102 116.331467,108.325366 L116.331467,108.325366 Z M134.968998,71.0137414 L41.9001683,71.0137414 C40.2925309,71.0025161 38.7981975,71.8401445 37.9688482,73.2173896 C37.139499,74.5946346 37.098146,76.3072185 37.8600561,77.722887 L47.8415098,96.5706503 C48.6348072,98.0648166 50.1899261,98.9971843 51.881622,98.9928896 L125.024106,98.9928896 C126.716211,98.9981743 128.270437,98.0607046 129.055078,96.5615098 L139.00911,77.7137465 C139.754942,76.2976526 139.705659,74.5945859 138.879188,73.2239903 C138.052717,71.8533948 136.569493,71.014997 134.968998,71.0137414 L134.968998,71.0137414 Z M153.63395,35.5759245 L23.2352156,35.5759245 C21.6347203,35.5771801 20.151496,36.4155778 19.325025,37.7861734 C18.498554,39.156769 18.4492717,40.8598357 19.1951033,42.2759296 L29.1491354,61.1145524 C29.9359394,62.6172637 31.4930184,63.5578521 33.1892477,63.5550727 L143.70734,63.5550727 C145.402425,63.5537423 146.957543,62.6143387 147.747452,61.1145524 L157.674063,42.266789 C158.415446,40.8514003 158.363824,39.1515952 157.537917,37.7838041 C156.712011,36.4160129 155.231751,35.5788553 153.63395,35.5759245 L153.63395,35.5759245 Z M174.995358,4.69922974 C174.994253,5.44166711 174.81229,6.17265769 174.465208,6.82897225 L164.538597,25.6767355 C163.746223,27.1729824 162.191592,28.108575 160.498485,28.1081153 L14.4968732,28.1081153 C12.8031994,28.1106197 11.2475937,27.1744407 10.4567611,25.6767355 L0.530150516,6.82897225 C-0.215681017,5.41287837 -0.166398756,3.70981169 0.660072225,2.33921611 C1.48654321,0.96862053 2.96976742,0.130222778 4.57026264,0.1289671 L170.425096,0.1289671 C172.949182,0.1289671 174.995358,2.17514338 174.995358,4.69922974 L174.995358,4.69922974 Z" id="Shape"></path> </g> </g> </svg>'},822:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="100px" viewBox="0 0 175 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>gange</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="gange" fill="#5067A2" fill-rule="nonzero"> <path d="M143.698895,82.9089367 C142.437361,67.6655629 135.026556,53.5920156 123.171797,43.9267897 L135.7146,25.9137777 C153.409366,39.7333892 164.305583,60.4959162 165.625777,82.9089367 L143.698895,82.9089367 L143.698895,82.9089367 Z M115.601912,38.6960173 C112.342946,36.8541942 108.909619,35.339582 105.352176,34.174346 L107.654453,22.8655635 C107.981818,21.2534161 107.424245,19.5890834 106.191766,18.4995036 C104.959288,17.4099237 103.239147,17.0606298 101.679304,17.5831975 C100.119461,18.1057651 98.9568933,19.4208039 98.6295287,21.0329513 L96.4193432,31.8996968 C93.4676767,31.3974455 90.4804994,31.132603 87.4865101,31.1077136 C77.1817177,31.1042083 67.0761605,33.9468942 58.284434,39.3222365 L45.5021944,21.4934066 C70.6181595,5.43266895 102.701308,5.12868193 128.117087,20.7106326 L115.601912,38.6960173 L115.601912,38.6960173 Z M31.2649159,82.9089367 L9.34724295,82.9089367 C10.6455448,61.0475255 21.0636813,40.7358347 38.0612364,26.9267794 L50.843476,44.7464001 C39.5322634,54.3814577 32.493597,68.101229 31.2649159,82.9089367 L31.2649159,82.9089367 Z M87.4865101,0.0269797767 C39.2492112,0.0269797767 0,39.276191 0,87.5134899 C5.46353103e-08,90.0565144 2.06152873,92.118043 4.60455321,92.118043 L35.685287,92.118043 C38.2283115,92.118043 40.2898401,90.0565144 40.2898401,87.5134899 C40.315223,61.4580101 61.4310302,40.3422029 87.4865101,40.31682 C89.908505,40.31682 92.2384089,40.6759751 94.5683128,41.0351302 L86.9247546,78.6451205 C82.0531374,79.4923583 78.2774037,83.5443651 78.2774037,88.6646282 C78.2774037,94.3864333 82.9158433,99.0248728 88.6376484,99.0248728 C94.3594535,99.0248728 98.997893,94.3864333 98.997893,88.6646282 C98.997893,85.7361324 97.7546637,83.102328 95.793124,81.2236703 L103.501146,43.3005704 C121.633876,49.8942906 134.68318,67.1337376 134.68318,87.5134899 C134.68318,90.0565144 136.744709,92.118043 139.287733,92.118043 L170.368467,92.118043 C172.911491,92.118043 174.97302,90.0565144 174.97302,87.5134899 C174.97302,39.276191 135.723809,0.0269798756 87.4865101,0.0269797767 L87.4865101,0.0269797767 Z" id="Shape"></path> </g> </g> </svg>'},317:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="142px" viewBox="0 0 175 142" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>geo</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="geo" fill="#5067A2" fill-rule="nonzero"> <path d="M9.20332621,34.019885 L55.2181167,56.861627 L55.2181167,128.571076 L9.20332621,103.207724 L9.20332621,34.019885 Z M171.819596,50.2815119 L151.996424,43.1124076 C149.63126,42.3318353 147.074346,43.5747977 146.227189,45.9169373 C145.380032,48.2590769 146.550177,50.8501245 148.867418,51.7631882 L165.653614,57.8371405 L165.653614,131.138702 L119.638823,119.625801 L119.638823,87.4706656 C119.638823,84.9293389 117.578671,82.8691865 115.037344,82.8691865 C112.496018,82.8691865 110.435865,84.9293389 110.435865,87.4706656 L110.435865,119.644207 L64.4210748,131.41479 L64.4210748,58.2236647 L81.060023,51.7263763 C83.2914479,50.7138845 84.3410975,48.1328302 83.4496557,45.8503474 C82.5582139,43.5678645 80.037126,42.3813901 77.7101463,43.1492194 L61.2460542,49.5820871 L6.64490386,22.4793755 C5.21943693,21.7614379 3.52312776,21.8367966 2.16693957,22.6783095 C0.810751382,23.5198224 -0.00997312356,25.0062796 0.000368118324,26.6023007 L0.000368118324,105.913394 C0.000368118324,107.597535 0.91146097,109.134429 2.38393426,109.944289 L58.8072703,141.059491 C59.8287987,141.620871 61.0435892,141.795727 62.16635,141.49203 L115.046547,127.963681 L169.141535,141.501233 C170.516378,141.840666 171.970958,141.532118 173.089604,140.663763 C174.206625,139.788526 174.858383,138.44767 174.856572,137.028595 L174.856572,54.6069022 C174.855748,52.6695411 173.64154,50.9402146 171.819596,50.2815119 Z M115.037344,16.5986853 C121.13907,16.6012266 126.083435,21.5497125 126.080894,27.651438 C126.078353,33.7531634 121.129867,38.697529 115.028141,38.6949877 C108.926416,38.6924463 103.98205,33.7439604 103.984592,27.642235 C103.987133,21.5405096 108.935619,16.596144 115.037344,16.5986853 L115.037344,16.5986853 Z M99.5763747,54.7173377 C102.208421,58.3341002 105.00612,61.9140509 107.813022,65.199507 C108.806942,66.3866886 109.718035,67.4358258 110.491083,68.3285127 C111.04326,68.8806902 111.402176,69.2856204 111.558626,69.4512736 C112.438859,70.4713636 113.723372,71.0524431 115.07068,71.0400337 C116.417988,71.0276243 117.69158,70.4229833 118.552874,69.3868529 C118.72773,69.2211997 119.06824,68.8254725 119.555997,68.264092 C120.506081,67.2663872 121.406012,66.2220982 122.252463,65.1350863 C125.059366,61.8496302 127.866268,58.2788825 130.498314,54.6437141 C133.121157,51.0177486 135.412694,47.4470008 137.262488,44.0879211 C140.741206,37.8851274 142.646219,32.5382087 142.646219,28.1207888 C142.701436,12.5861956 130.314255,0.0425636812 115.028141,0.0425636812 C99.7604339,0.0425636812 87.42847,12.5861956 87.42847,28.1207888 C87.42847,32.5382087 89.3334823,37.9403451 92.8029975,44.1523418 C94.7172128,47.5114215 97.0087494,51.0729663 99.5763747,54.7173377 Z" id="Shape"></path> </g> </g> </svg>'},926:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="120px" viewBox="0 0 175 120" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>gl</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="gl" fill="#5067A2"> <path d="M170.394737,101.315789 L119.736842,101.315789 L119.736842,4.60526316 C119.736842,2.06315789 117.673684,0 115.131579,0 L105.921053,0 C103.378947,0 101.315789,2.06315789 101.315789,4.60526316 L101.315789,115.131579 C101.315789,117.673684 103.378947,119.736842 105.921053,119.736842 L170.394737,119.736842 C172.936842,119.736842 175,117.673684 175,115.131579 L175,105.921053 C175,103.378947 172.936842,101.315789 170.394737,101.315789" id="Fill-1"></path> <path d="M78.2894737,0 L4.60526316,0 C2.06315789,0 0,2.06315789 0,4.60526316 L0,115.131579 C0,117.673684 2.06315789,119.736842 4.60526316,119.736842 L78.2894737,119.736842 C80.8315789,119.736842 82.8947368,117.673684 82.8947368,115.131579 L82.8947368,59.8684211 C82.8947368,57.3263158 80.8315789,55.2631579 78.2894737,55.2631579 L41.4473684,55.2631579 C38.9052632,55.2631579 36.8421053,57.3263158 36.8421053,59.8684211 L36.8421053,69.0789474 C36.8421053,71.6210526 38.9052632,73.6842105 41.4473684,73.6842105 L64.4736842,73.6842105 L64.4736842,101.315789 L18.4210526,101.315789 L18.4210526,18.4210526 L64.4736842,18.4210526 L64.4736842,32.2368421 C64.4736842,34.7789474 66.5368421,36.8421053 69.0789474,36.8421053 L78.2894737,36.8421053 C80.8315789,36.8421053 82.8947368,34.7789474 82.8947368,32.2368421 L82.8947368,4.60526316 C82.8947368,2.06315789 80.8315789,0 78.2894737,0" id="Fill-3"></path> </g> </g> </svg>'},769:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="171px" height="146px" viewBox="0 0 171 146" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>graph</title> <desc>Created with Sketch.</desc> <defs> <polygon id="path-1" points="0.06 0 171 0 171 146 0.06 146"></polygon> </defs> <g id="graph" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <mask id="mask-2" fill="white"> <use xlink:href="#path-1"></use> </mask> <g id="Clip-2"></g> <path d="M171,100 C171,106.075 166.075,111 160,111 C154.016,111 149.158,106.219 149.014,100.27 L114.105,83.503 C111.564,86.693 108.179,89.18 104.282,90.616 L108.698,124.651 C112.951,126.172 116,130.225 116,135 C116,141.075 111.075,146 105,146 C98.925,146 94,141.075 94,135 C94,131.233 95.896,127.912 98.781,125.93 L94.364,91.896 C82.94,90.82 74,81.206 74,69.5 C74,69.479 74.001,69.46 74.001,69.439 L53.719,64.759 C50.642,70.269 44.76,74 38,74 C36.07,74 34.215,73.689 32.472,73.127 L20.624,90.679 C21.499,92.256 22,94.068 22,96 C22,102.075 17.075,107 11,107 C4.925,107 0,102.075 0,96 C0,89.925 4.925,85 11,85 C11.452,85 11.895,85.035 12.332,85.089 L24.184,67.531 C21.574,64.407 20,60.389 20,56 C20,48.496 24.594,42.07 31.121,39.368 L29.111,21.279 C24.958,19.707 22,15.704 22,11 C22,4.925 26.925,0 33,0 C39.075,0 44,4.925 44,11 C44,14.838 42.031,18.214 39.051,20.182 L41.061,38.279 C49.223,39.681 55.49,46.564 55.95,55.011 L76.245,59.694 C79.889,52.181 87.589,47 96.5,47 C100.902,47 105.006,48.269 108.475,50.455 L131.538,27.391 C131.192,26.322 131,25.184 131,24 C131,17.925 135.925,13 142,13 C148.075,13 153,17.925 153,24 C153,30.075 148.075,35 142,35 C140.816,35 139.678,34.808 138.609,34.461 L115.546,57.525 C117.73,60.994 119,65.098 119,69.5 C119,71.216 118.802,72.884 118.438,74.49 L153.345,91.257 C155.193,89.847 157.495,89 160,89 C166.075,89 171,93.925 171,100" id="Fill-1" fill="#4F608A" mask="url(#mask-2)"></path> </g> </svg>'},781:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="165px" height="137px" viewBox="0 0 165 137" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>heatmap</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="heatmap" transform="translate(-0.500000, -0.474277)" fill-rule="nonzero"> <path d="M44.5999999,89.4742765 L5.40000005,89.4742765 C2.6938048,89.4742765 0.500000074,87.2916647 0.5,84.5992766 L0.5,55.3492765 C0.500000074,52.6568883 2.6938048,50.4742765 5.40000005,50.4742765 L44.5999999,50.4742765 C47.3061952,50.4742765 49.4999999,52.6568883 49.5,55.3492765 L49.5,84.5992766 C49.4999999,87.2916647 47.3061952,89.4742765 44.5999999,89.4742765" id="Path" fill="#687DB0"></path> <path d="M102.6,89.4742765 L63.3999999,89.4742765 C60.6938047,89.4742765 58.5000001,87.2916647 58.5,84.5992766 L58.5,55.3492765 C58.5000001,52.6568884 60.6938047,50.4742766 63.3999999,50.4742765 L102.6,50.4742765 C105.306195,50.4742765 107.5,52.6568883 107.5,55.3492765 L107.5,84.5992766 C107.5,87.2916647 105.306195,89.4742765 102.6,89.4742765" id="Path" fill="#8497C0"></path> <path d="M160.6,89.4742765 L121.4,89.4742765 C118.693805,89.4742765 116.5,87.2916647 116.5,84.5992766 L116.5,55.3492765 C116.5,52.6568884 118.693805,50.4742766 121.4,50.4742765 L160.6,50.4742765 C163.306195,50.4742766 165.5,52.6568884 165.5,55.3492765 L165.5,84.5992766 C165.5,87.2916647 163.306195,89.4742765 160.6,89.4742765" id="Path" fill="#A7B4D1"></path> <path d="M44.5999999,137.474277 L5.40000005,137.474277 C2.69380475,137.474277 0.5,135.291665 0.5,132.599276 L0.5,103.349277 C0.5,100.656888 2.69380475,98.4742765 5.40000005,98.4742765 L44.5999999,98.4742765 C45.8995608,98.4742765 47.1458949,98.9878911 48.0648232,99.902131 C48.9837515,100.816371 49.5,102.056346 49.5,103.349277 L49.5,132.599276 C49.5,135.291665 47.3061953,137.474277 44.5999999,137.474277" id="Path" fill="#8497C0"></path> <path d="M102.6,137.474277 L63.3999999,137.474277 C60.6938047,137.474276 58.5,135.291665 58.5,132.599276 L58.5,103.349277 C58.5,100.656888 60.6938047,98.4742766 63.3999999,98.4742765 L102.6,98.4742765 C105.306195,98.4742765 107.5,100.656888 107.5,103.349277 L107.5,132.599276 C107.5,135.291665 105.306195,137.474277 102.6,137.474277" id="Path" fill="#A7B4D1"></path> <path d="M160.6,137.474277 L121.4,137.474277 C118.693805,137.474276 116.5,135.291665 116.5,132.599276 L116.5,103.349277 C116.5,100.656888 118.693805,98.4742766 121.4,98.4742765 L160.6,98.4742765 C163.306195,98.4742766 165.5,100.656888 165.5,103.349277 L165.5,132.599276 C165.5,135.291665 163.306195,137.474276 160.6,137.474277" id="Path" fill="#CDD5E3"></path> <path d="M5.40000005,0.474276527 L44.5999999,0.474276527 C47.3061953,0.474276527 49.5,2.65688839 49.5,5.34927658 L49.5,34.5992765 C49.5,37.2916647 47.3061953,39.4742765 44.5999999,39.4742765 L5.40000005,39.4742765 C2.69380475,39.4742765 0.5,37.2916647 0.5,34.5992765 L0.5,5.34927658 C0.5,2.65688839 2.69380475,0.474276527 5.40000005,0.474276527" id="Path" fill="#5067A2"></path> <path d="M102.6,39.4742765 L63.3999999,39.4742765 C60.6938047,39.4742765 58.5,37.2916646 58.5,34.5992765 L58.5,5.34927658 C58.5,2.65688845 60.6938047,0.474276601 63.3999999,0.474276527 L102.6,0.474276527 C105.306195,0.474276527 107.5,2.65688839 107.5,5.34927658 L107.5,34.5992765 C107.5,37.2916647 105.306195,39.4742765 102.6,39.4742765" id="Path" fill="#687DB0"></path> <path d="M160.6,39.4742765 L121.4,39.4742765 C118.693805,39.4742765 116.5,37.2916646 116.5,34.5992765 L116.5,5.34927658 C116.5,2.65688845 118.693805,0.474276601 121.4,0.474276527 L160.6,0.474276527 C163.306195,0.474276601 165.5,2.65688845 165.5,5.34927658 L165.5,34.5992765 C165.5,37.2916646 163.306195,39.4742765 160.6,39.4742765" id="Path" fill="#8497C0"></path> </g> </g> </svg>'},69:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="138px" viewBox="0 0 175 138" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>line</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="line" fill="#5067A2" fill-rule="nonzero"> <path d="M25.2739189,111.655778 C26.7855309,111.657407 28.2007506,110.913642 29.0567232,109.667735 L69.3606163,51.4346379 L108.642876,94.5825372 C109.596174,95.6275458 110.977093,96.1760957 112.387618,96.0700817 C113.798143,95.9640677 115.081554,95.2152689 115.86794,94.0395069 L167.15209,17.582681 C168.126301,16.2187314 168.281888,14.4329668 167.558237,12.9210891 C166.834585,11.4092114 165.346152,10.4103472 163.672804,10.3136363 C161.999456,10.2169253 160.40586,11.0376639 159.512851,12.4561069 L111.496086,84.0348638 L72.2782537,40.9605957 C71.3313898,39.926718 69.968454,39.3754562 68.5690807,39.4603596 C67.1694417,39.5586882 65.8899144,40.2864616 65.0900052,41.4391988 L21.4911146,104.439918 C20.5200574,105.846972 20.4090348,107.676368 21.202809,109.190526 C21.9965833,110.704685 23.5643138,111.65402 25.2739189,111.655778" id="Path"></path> <path d="M170.272214,127.854648 L9.20390349,127.854648 L9.20390349,5.00465881 C9.20390349,2.46307104 7.14353951,0.402707066 4.60195174,0.402707066 C2.06036398,0.402707066 3.11254732e-16,2.46307104 0,5.00465881 L0,132.4566 C3.11254728e-16,134.998188 2.06036395,137.058552 4.60195168,137.058552 L170.272214,137.058552 C172.813801,137.058552 174.874165,134.998188 174.874165,132.4566 C174.874165,129.915012 172.813801,129.257355 170.272214,129.257355" id="Path"></path> </g> </g> </svg>'},276:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="163px" height="137px" viewBox="0 0 163 137" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>lines</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="lines" fill="#5067A2" fill-rule="nonzero"> <path d="M118.024118,118.8 C120.522388,118.8 122.566427,120.8475 122.566427,123.35 C122.566427,125.8525 120.522388,127.9 118.024118,127.9 C115.517543,127.894993 113.486807,125.860819 113.481809,123.35 C113.481809,120.8475 115.525848,118.8 118.024118,118.8 Z M142.434485,46 L64.9673569,46 C62.4587091,46 60.4250482,48.0371044 60.4250482,50.55 C60.4250482,53.0628956 62.4587091,55.1 64.9673569,55.1 L142.034762,55.0909 C149.519307,56.1087027 154.7743,62.9956941 153.790257,70.4972 C152.963556,76.6852 148.066948,81.5264 142.434485,82.2544 L20.6642736,82.2726 C14.6272756,82.8301001 9.06337697,85.7822231 5.21133949,90.4717 C0.0521031846,96.7506172 -1.39663076,105.298969 1.40493936,112.931618 C4.20650947,120.564268 10.8382585,126.136619 18.8291809,127.5724 L105.232977,127.8909 C107.143393,133.33221 112.265894,136.980155 118.024118,137 C125.537097,137 131.651044,130.8757 131.651044,123.35 C131.651044,115.8243 125.537097,109.7 118.024118,109.7 C112.110032,109.7 107.113492,113.5129 105.232977,118.8 L21.8634431,118.8728 L20.4099043,118.618 C14.3307333,117.521702 9.72082575,112.509885 9.12680957,106.3512 C8.77445503,102.712306 9.88625731,99.0830035 12.2155795,96.2684 C14.5594108,93.4383 17.8571269,91.6911 21.0912506,91.3544 L142.988646,91.3271 C153.280464,90.058092 161.421536,81.9929721 162.802197,71.6984 C164.446513,59.2314 155.679857,47.729 142.434485,46 Z" id="Shape"></path> <path d="M31.9999101,18.2496933 C36.9704563,18.2496933 40.9998801,22.3350263 40.9998801,27.37454 C40.9998801,32.4140537 36.9704563,36.4993867 31.9999101,36.4993867 C27.0293639,36.4993867 22.9999401,32.4140537 22.9999401,27.37454 C22.9999401,22.3350263 27.0293639,18.2496933 31.9999101,18.2496933 Z M16.8799604,56.2181803 C19.4539519,59.9411177 22.1809428,63.6184309 24.9259336,66.9946242 C25.9069304,68.2173537 26.7979274,69.3032104 27.5539249,70.2156951 C28.1029231,70.7814356 28.435922,71.1920537 28.5979214,71.3654258 C30.4699152,73.555389 33.5839048,73.555389 35.4378986,71.3015518 C35.617898,71.1373046 35.932897,70.7266865 36.4188954,70.1518212 C37.2648925,69.2393365 38.1288897,68.1443549 39.0558866,66.9307503 C41.8008774,63.554557 44.5368683,59.8863687 47.1108598,56.1451815 C49.6758512,52.4131192 51.9258437,48.7449309 53.7348377,45.2957388 C57.1368264,38.917471 58.9998202,33.4243133 58.9998202,28.8710148 C59.05382,12.911658 46.9398603,0 31.9909101,0 C17.0509599,0 5,12.911658 5,28.8710148 C5,33.4243133 6.8629938,38.9722201 10.2559825,45.3596128 C12.1279763,48.8088048 14.3689688,52.4678683 16.8799604,56.2181803 Z" id="Shape"></path> </g> </g> </svg>'},831:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="142px" viewBox="0 0 175 142" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>geo</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="geo" fill="#5067A2" fill-rule="nonzero"> <path d="M9.20332621,34.019885 L55.2181167,56.861627 L55.2181167,128.571076 L9.20332621,103.207724 L9.20332621,34.019885 Z M171.819596,50.2815119 L151.996424,43.1124076 C149.63126,42.3318353 147.074346,43.5747977 146.227189,45.9169373 C145.380032,48.2590769 146.550177,50.8501245 148.867418,51.7631882 L165.653614,57.8371405 L165.653614,131.138702 L119.638823,119.625801 L119.638823,87.4706656 C119.638823,84.9293389 117.578671,82.8691865 115.037344,82.8691865 C112.496018,82.8691865 110.435865,84.9293389 110.435865,87.4706656 L110.435865,119.644207 L64.4210748,131.41479 L64.4210748,58.2236647 L81.060023,51.7263763 C83.2914479,50.7138845 84.3410975,48.1328302 83.4496557,45.8503474 C82.5582139,43.5678645 80.037126,42.3813901 77.7101463,43.1492194 L61.2460542,49.5820871 L6.64490386,22.4793755 C5.21943693,21.7614379 3.52312776,21.8367966 2.16693957,22.6783095 C0.810751382,23.5198224 -0.00997312356,25.0062796 0.000368118324,26.6023007 L0.000368118324,105.913394 C0.000368118324,107.597535 0.91146097,109.134429 2.38393426,109.944289 L58.8072703,141.059491 C59.8287987,141.620871 61.0435892,141.795727 62.16635,141.49203 L115.046547,127.963681 L169.141535,141.501233 C170.516378,141.840666 171.970958,141.532118 173.089604,140.663763 C174.206625,139.788526 174.858383,138.44767 174.856572,137.028595 L174.856572,54.6069022 C174.855748,52.6695411 173.64154,50.9402146 171.819596,50.2815119 Z M115.037344,16.5986853 C121.13907,16.6012266 126.083435,21.5497125 126.080894,27.651438 C126.078353,33.7531634 121.129867,38.697529 115.028141,38.6949877 C108.926416,38.6924463 103.98205,33.7439604 103.984592,27.642235 C103.987133,21.5405096 108.935619,16.596144 115.037344,16.5986853 L115.037344,16.5986853 Z M99.5763747,54.7173377 C102.208421,58.3341002 105.00612,61.9140509 107.813022,65.199507 C108.806942,66.3866886 109.718035,67.4358258 110.491083,68.3285127 C111.04326,68.8806902 111.402176,69.2856204 111.558626,69.4512736 C112.438859,70.4713636 113.723372,71.0524431 115.07068,71.0400337 C116.417988,71.0276243 117.69158,70.4229833 118.552874,69.3868529 C118.72773,69.2211997 119.06824,68.8254725 119.555997,68.264092 C120.506081,67.2663872 121.406012,66.2220982 122.252463,65.1350863 C125.059366,61.8496302 127.866268,58.2788825 130.498314,54.6437141 C133.121157,51.0177486 135.412694,47.4470008 137.262488,44.0879211 C140.741206,37.8851274 142.646219,32.5382087 142.646219,28.1207888 C142.701436,12.5861956 130.314255,0.0425636812 115.028141,0.0425636812 C99.7604339,0.0425636812 87.42847,12.5861956 87.42847,28.1207888 C87.42847,32.5382087 89.3334823,37.9403451 92.8029975,44.1523418 C94.7172128,47.5114215 97.0087494,51.0729663 99.5763747,54.7173377 Z" id="Shape"></path> </g> </g> </svg>'},582:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="148px" viewBox="0 0 175 148" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>parallel</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="parallel" fill="#5067A2" fill-rule="nonzero"> <path d="M119.966527,90.2642567 L119.966527,71.4595035 L164.953975,91.1040224 L164.953975,117.16675 L119.966527,90.2642567 Z M99.5422259,68.8202399 L109.969317,68.8202399 L109.969317,80.2370544 L99.5422259,68.8202399 Z M64.9818688,58.8230293 L64.9818688,45.8666444 L76.8485579,58.8230293 L64.9818688,58.8230293 L64.9818688,58.8230293 Z M9.99721065,95.6627504 L9.99721065,37.9888424 L54.9846583,37.9888424 L54.9846583,61.3523236 L9.99721065,95.6627504 Z M170,2.04051565e-11 C167.238576,2.04245402e-11 165,2.23857623 165,4.99999995 L165,80.2194419 L120,60.5694419 L120,5.00139509 C120,2.23997133 117.761424,0.00139506489 115,0.00139506489 C112.238576,0.00139506489 110,2.23997133 110,5.00139509 L110,58.8394419 L90.42,58.8394419 L64.9999999,31.059442 L64.9999999,5.00139509 C64.9999999,2.23997137 62.7614237,0.00139513813 60,0.00139513813 C57.2385763,0.00139513813 55,2.23997137 55,5.00139509 L55,27.999442 L10,27.999442 L10,4.99999995 C10,2.23857619 7.76142378,-7.3221713e-08 5.00000002,-7.32217131e-08 C2.23857626,-7.32217133e-08 3.38176877e-16,2.23857619 0,4.99999995 L0,142.999442 C3.38176877e-16,145.760866 2.23857626,147.999442 5.00000002,147.999442 C7.76142378,147.999442 10,145.760866 10,142.999442 L10,108.249442 L55,73.9494419 L55,142.999442 C55,145.760866 57.2385763,147.999442 60,147.999442 C62.7614237,147.999442 64.9999999,145.760866 64.9999999,142.999442 L64.9999999,68.839442 L86.01,68.839442 L110,95.0694419 L110,142.999442 C110,145.760866 112.238576,147.999442 115,147.999442 C117.761424,147.999442 120,145.760866 120,142.999442 L120,101.939442 L165,128.839442 L165,142.999442 C165,145.760866 167.238576,147.999442 170,147.999442 C172.761424,147.999442 175,145.760866 175,142.999442 L175,4.99999995 C175,3.67391749 174.473216,2.40214791 173.535534,1.46446603 C172.597852,0.526784141 171.326082,-3.88296707e-08 170,2.04051565e-11 Z" id="Shape"></path> </g> </g> </svg>'},689:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="141px" viewBox="0 0 175 141" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>pictorialBar</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="pictorialBar" fill="#5067A2" fill-rule="nonzero"> <path d="M165.182447,113.123194 C161.75364,113.169204 158.605604,115.027549 156.908673,118.007359 L62.4782339,118.007359 C59.7807842,118.007359 57.5940692,120.194074 57.5940692,122.891524 C57.5940692,125.588973 59.7807842,127.775688 62.4782339,127.775688 L156.908673,127.775688 C158.605604,130.755498 161.75364,132.613843 165.182447,132.659853 C170.576885,132.6592 174.949595,128.285961 174.949595,122.891524 C174.949595,117.497086 170.576885,113.123847 165.182447,113.123194 L165.182447,113.123194 Z M165.182447,78.9340419 C161.75364,78.980052 158.605603,80.8383969 156.908673,83.8182066 L77.2674843,83.8182066 C74.5700347,83.8182066 72.3833197,86.0049216 72.3833197,88.7023712 C72.3833197,91.3998208 74.5700347,93.5865358 77.2674843,93.5865358 L156.908673,93.5865358 C158.605603,96.5663455 161.75364,98.4246904 165.182447,98.4707005 C170.577347,98.4707005 174.950777,94.0972705 174.950777,88.7023712 C174.950777,83.3074719 170.577347,78.9340419 165.182447,78.9340419 L165.182447,78.9340419 Z M165.182447,44.7448896 C170.407595,44.9786234 174.523583,49.2828462 174.523583,54.5132188 C174.523583,59.7435915 170.407595,64.0478142 165.182447,64.2815481 C161.75364,64.235538 158.605604,62.3771932 156.908673,59.3973835 L77.2674843,59.3973835 C74.5700346,59.3973835 72.3833196,57.2106685 72.3833196,54.5132188 C72.3833196,51.8157692 74.5700346,49.6290542 77.2674843,49.6290542 L156.908673,49.6290542 C158.605604,46.6492445 161.75364,44.7908997 165.182447,44.7448896 Z M62.6149904,20.3240665 C62.6149904,19.0287054 63.1295706,17.7863991 64.0455291,16.8704405 C64.9614877,15.954482 66.2037941,15.4399018 67.4991551,15.4399019 L156.908673,15.4399019 C158.605604,12.4600922 161.75364,10.6017474 165.182447,10.5557373 C170.407595,10.7894711 174.523583,15.0936938 174.523583,20.3240665 C174.523583,25.5544392 170.407595,29.8586619 165.182447,30.0923957 C161.75364,30.0463857 158.605604,28.1880408 156.908673,25.2082312 L67.4991551,25.2082312 C66.2037941,25.2082312 64.9614877,24.6936511 64.0455291,23.7776925 C63.1295705,22.8617339 62.6149904,21.6194275 62.6149904,20.3240665 Z M23.5416735,29.3240665 C31.6340224,29.3240665 38.1941674,22.7639215 38.1941674,14.6715726 C38.1941674,6.57922368 31.6340224,0.0190787204 23.5416735,0.0190787204 C15.4493246,0.0190787204 8.88917966,6.57922368 8.88917966,14.6715726 C8.88917966,22.7639215 15.4493246,29.3240665 23.5416735,29.3240665 Z M34.0523957,34.2082312 L13.0211829,34.2082312 C10.6337153,34.2093302 8.59694107,35.9362503 8.20539657,38.2913927 L0.0683783524,87.133039 C-0.166957522,88.5485838 0.232108973,89.996 1.15960938,91.0909397 C2.08710979,92.1858793 3.44919091,92.8175461 4.88416457,92.8182066 L8.88917966,92.8182066 L9.0426883,136.115835 C9.0426883,138.813285 11.2294033,141 13.9268529,141 L33.4635113,141 C34.7588723,141 36.0011787,140.48542 36.9171373,139.569461 C37.8330959,138.653503 38.347676,137.411196 38.347676,136.115835 L38.1941674,92.8182066 L42.189414,92.8182066 C43.6255482,92.8209447 44.9898051,92.1902296 45.9180572,91.0944026 C46.8463094,89.9985755 47.2440794,88.5491696 47.0052003,87.133039 L38.8681821,38.2913927 C38.4766376,35.9362503 36.4398634,34.2093302 34.0523957,34.2082312 Z" id="Shape"></path> </g> </g> </svg>'},931:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="144px" height="152px" viewBox="0 0 144 152" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>pie (2)</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="pie-(2)" transform="translate(0.000000, -0.612903)" fill="#5067A2" fill-rule="nonzero"> <path d="M72.1778824,12.9606446 L72.1778824,73.6462877 C72.1779317,75.129331 72.9386663,76.5065116 74.1881954,77.2856176 C75.4377246,78.0647237 76.9977039,78.1345538 78.3105882,77.4701504 L128.354824,52.1402676 L132.666353,49.9503148 C134.757503,48.8920984 137.302156,49.7461658 138.350118,51.857969 L138.468706,52.1060495 L138.782118,52.8930638 C140.942118,58.6416896 144,65.8873535 144,83.8518095 C144,116.316148 115.123765,152.612903 73.2282353,152.612903 C31.3242354,152.612903 0,119.994584 0,80.8406245 C0,44.5353146 27.216,13.7391044 62.2588236,9.22232682 C64.122353,8.98280072 65.9265883,8.80315611 67.6715294,8.69194766 C68.8395088,8.61630135 69.986418,9.03213213 70.8400527,9.84074781 C71.6936873,10.6493635 72.1779411,11.7786714 72.1778824,12.9606446 Z M90.0254118,0.659269609 C88.9814749,0.488081123 87.9163292,0.795987208 87.1201941,1.49909291 C86.324059,2.20219861 85.8798887,3.22724309 85.9087059,4.29493319 L85.9087059,54.6039644 C85.9087059,56.9393437 87.6028236,57.8717845 89.5680001,56.7511446 L133.149176,31.9088684 C134.092985,31.4117209 134.762111,30.50855 134.968019,29.4538349 C135.173928,28.3991197 134.894328,27.3070442 134.208,26.4853136 C134.208,26.4853136 133.538824,25.5357637 132.446118,24.3381334 C127.296,18.6921614 122.832,14.7399812 116.860235,10.9417819 C109.345997,6.07770841 100.978781,2.71218494 92.2108235,1.0271132 C89.9745882,0.599388123 90.0254118,0.659269609 90.0254118,0.659269609 L90.0254118,0.659269609 Z" id="Shape"></path> </g> </g> </svg>'},702:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="151px" height="170px" viewBox="0 0 151 170" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>radar</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="radar" transform="translate(0.500000, 0.000000)" fill="#5067A2" fill-rule="nonzero"> <path d="M79.573911,32.0195055 C79.7511468,32.0807796 79.9252225,32.1507623 80.0954971,32.2291958 L126.376239,53.5077701 C128.225278,54.3572545 129.374745,56.2354539 129.285085,58.2607506 L126.927916,110.733256 C126.832633,112.851954 125.405699,114.680595 123.367088,115.296516 L76.444394,129.315811 C75.5054275,129.595861 74.5046062,129.595861 73.5656397,129.315811 L32.4706683,117.053921 C30.8367372,116.566659 29.5635821,115.286115 29.0909814,113.654618 C28.6183807,112.023122 29.0111288,110.264354 30.133561,108.985836 L59.2822032,75.635091 C59.7218624,75.142978 60.0532763,74.5647698 60.2551619,73.937598 L73.2246026,35.1848307 C74.1062345,32.570839 76.9431645,31.1565423 79.573911,32.0195055 L79.573911,32.0195055 Z M139.476076,121.926724 L75.0000016,158.991984 L10.5239274,121.926724 L10.5239274,47.816176 L75.0000016,10.7509165 L139.476076,47.816176 L139.476076,121.926724 Z M146.998953,40.6068232 L77.5076273,0.665810956 C75.9548023,-0.221936985 74.0452007,-0.221936985 72.4923757,0.665810956 L3.00105014,40.6068232 C1.44784731,41.4971353 0.491395456,43.1462367 0.493424274,44.9304378 L0.493424274,124.812462 C0.493424274,126.599823 1.44632208,128.247389 3.00105014,129.136077 L72.4923757,169.077089 C74.047355,169.95676 75.9526481,169.95676 77.5076273,169.077089 L146.998953,129.136077 C148.550638,128.244253 149.506533,126.596111 149.506579,124.812462 L149.506579,44.9304378 C149.506533,43.1467894 148.550638,41.4986473 146.998953,40.6068232 L146.998953,40.6068232 Z" id="Shape"></path> </g> </g> </svg>'},989:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="167px" height="162px" viewBox="0 0 167 162" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>rich</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="rich" fill="#5067A2" fill-rule="nonzero"> <path d="M5.52634288,101.24857 L96.0005147,101.24857 C98.7764873,101.24857 101.026858,98.9820436 101.026858,96.1861415 C101.026858,93.3902395 98.7764873,91.123713 96.0005147,91.123713 L5.52634288,91.123713 C2.75037036,91.123713 0.5,93.3902395 0.5,96.1861415 C0.5,98.9820436 2.75037036,101.24857 5.52634288,101.24857 Z M75.8951432,121.498284 L5.52634288,121.498284 C2.75037036,121.498284 0.5,123.76481 0.5,126.560713 C0.5,129.356615 2.75037036,131.623141 5.52634288,131.623141 L75.8951432,131.623141 C78.6711157,131.623141 80.9214861,129.356615 80.9214861,126.560713 C80.9214861,123.76481 78.6711157,121.498284 75.8951432,121.498284 Z M146.394628,92.0653247 L128.923061,116.435856 L146.394628,116.435856 L146.394628,92.0653247 Z M166.5,60.749142 L166.5,151.872855 C166.5,157.464659 161.999259,161.997712 156.447314,161.997712 C150.895369,161.997712 146.394628,157.464659 146.394628,151.872855 L146.394628,136.68557 L114.406982,136.68557 L99.2575849,157.806021 C96.0041451,162.338178 89.7188607,163.355849 85.2190093,160.079052 C80.7191578,156.802254 79.7087415,150.471846 82.9621813,145.939689 L148.304639,54.8261007 C148.455429,54.6033538 148.706746,54.4919804 148.867589,54.2894832 C149.318111,53.7697312 149.823755,53.3011987 150.375492,52.892253 C150.857637,52.4854402 151.379728,52.1292264 151.933658,51.829143 C152.481136,51.5631055 153.053631,51.3528145 153.642615,51.2014019 C154.31205,50.9842108 155.003114,50.8416105 155.703415,50.7761579 C155.954733,50.7559082 156.185944,50.624285 156.447314,50.624285 C156.819264,50.624285 157.130897,50.7964076 157.492794,50.836907 C158.850886,50.9717079 160.164137,51.3999382 161.342972,52.0923893 C161.674711,52.2746367 162.036608,52.3151361 162.338188,52.537883 C162.559347,52.7100056 162.659874,52.9428773 162.87098,53.1251247 C163.403773,53.5807433 163.836038,54.0869861 164.268304,54.6337284 C164.650306,55.1399712 165.022255,55.6259644 165.30373,56.1929564 C165.585206,56.7498235 165.766154,57.3370652 165.947102,57.9546815 C166.138103,58.6330469 166.298946,59.2709129 166.34921,59.969528 C166.369315,60.2428992 166.5,60.4757709 166.5,60.749142 L166.5,60.749142 Z M55.7897717,151.872855 L5.52634288,151.872855 C2.75037036,151.872855 0.5,154.139381 0.5,156.935284 C0.5,159.731186 2.75037036,161.997712 5.52634288,161.997712 L55.7897717,161.997712 C58.5657442,161.997712 60.8161146,159.731186 60.8161146,156.935284 C60.8161146,154.139381 58.5657442,151.872855 55.7897717,151.872855 Z M86.3887335,40.499428 L161.100608,40.499428 C164.04791,40.499428 166.437171,38.2329016 166.437171,35.4369995 C166.437171,32.6410974 164.04791,30.374571 161.100608,30.374571 L86.3887335,30.374571 C83.4414314,30.374571 81.052171,32.6410974 81.052171,35.4369995 C81.052171,38.2329016 83.4414314,40.499428 86.3887335,40.499428 Z M86.3887335,10.124857 L161.100608,10.124857 C164.04791,10.124857 166.437171,7.85833056 166.437171,5.0624285 C166.437171,2.26652644 164.04791,1.71199625e-16 161.100608,0 L86.3887335,0 C83.4414314,-1.71199625e-16 81.052171,2.26652644 81.052171,5.0624285 C81.052171,7.85833056 83.4414314,10.124857 86.3887335,10.124857 Z M5.6570278,70.873999 L60.9467995,70.873999 C63.722772,70.873999 65.9731424,68.6074726 65.9731424,65.8115705 L65.9731424,5.0624285 C65.9731424,2.26652644 63.722772,1.71199625e-16 60.9467995,0 L5.6570278,0 C2.88105528,-1.71199625e-16 0.630684915,2.26652644 0.630684915,5.0624285 L0.630684915,65.8115705 C0.630684915,68.6074726 2.88105528,70.873999 5.6570278,70.873999 Z M81.052171,65.8115705 C81.052171,63.0156685 83.3025414,60.749142 86.0785139,60.749142 L116.236571,60.749142 C119.012544,60.749142 121.262914,63.0156685 121.262914,65.8115705 C121.262914,68.6074726 119.012544,70.873999 116.236571,70.873999 L86.0785139,70.873999 C83.3025414,70.873999 81.052171,68.6074726 81.052171,65.8115705 Z" id="Shape"></path> </g> </g> </svg>'},827:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="139px" viewBox="0 0 175 139" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>sankey</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="sankey" fill-rule="nonzero"> <path d="M4.60195168,138.058552 C2.06036395,138.058552 3.11254728e-16,135.998188 0,133.4566 L0,115.048793 C-3.11254732e-16,112.507205 2.06036398,110.446841 4.60195174,110.446841 C7.14353951,110.446841 9.20390349,112.507205 9.20390349,115.048793 L9.20390349,133.4566 C9.20390349,134.677113 8.71905638,135.847638 7.856023,136.710671 C6.99298962,137.573705 5.82246517,138.058552 4.60195168,138.058552 M4.60195168,106.820503 C2.06036395,106.820503 3.11254728e-16,104.760139 0,102.218552 L0,4.60195168 C-3.11254732e-16,2.06036391 2.06036398,-6.74114049e-08 4.60195174,-6.74114054e-08 C7.14353951,-6.74114058e-08 9.20390349,2.06036391 9.20390349,4.60195168 L9.20390349,102.218552 C9.20390349,103.439065 8.71905638,104.60959 7.856023,105.472623 C6.99298962,106.335656 5.82246517,106.820503 4.60195168,106.820503" id="Shape" fill="#5067A2"></path> <path d="M4.60195168,106.820503 C2.06036395,106.820503 3.11254728e-16,104.760139 0,102.218552 L0,4.60195168 C-3.11254732e-16,2.06036391 2.06036398,-6.74114049e-08 4.60195174,-6.74114054e-08 C7.14353951,-6.74114058e-08 9.20390349,2.06036391 9.20390349,4.60195168 L9.20390349,102.218552 C9.20390349,103.439065 8.71905638,104.60959 7.856023,105.472623 C6.99298962,106.335656 5.82246517,106.820503 4.60195168,106.820503" id="Path" fill="#5067A2"></path> <path d="M87.4370826,64.4273241 C86.2165692,64.4273241 85.0460447,63.942477 84.1830114,63.0794436 C83.319978,62.2164103 82.8351309,61.0458858 82.835131,59.8253723 L82.835131,4.60195168 C82.835131,2.06036391 84.8954949,-6.74113054e-08 87.4370827,-6.74113059e-08 C89.9786705,-6.74113063e-08 92.0390345,2.06036391 92.0390345,4.60195168 L92.0390345,59.8253723 C92.0390345,61.0458858 91.5541874,62.2164103 90.691154,63.0794437 C89.8281206,63.9424771 88.6575962,64.4273242 87.4370826,64.4273241 M170.272214,38.2054031 C167.730626,38.2054031 165.670262,36.1450392 165.670262,33.6034515 L165.670262,4.60195168 C165.670262,2.06036391 167.730626,-6.74114049e-08 170.272214,-6.74114054e-08 C172.813801,-6.74114058e-08 174.874165,2.06036391 174.874165,4.60195168 L174.874165,33.6034515 C174.874165,34.823965 174.389318,35.9944894 173.526285,36.8575227 C172.663252,37.7205561 171.492727,38.2054032 170.272214,38.2054031 M105.84489,138.058552 C104.624376,138.058552 103.453852,137.573705 102.590818,136.710671 C101.727785,135.847638 101.242938,134.677113 101.242938,133.4566 L101.242938,78.2331793 C101.242938,75.6915915 103.303302,73.6312276 105.84489,73.6312276 C108.386477,73.6312276 110.446841,75.6915915 110.446841,78.2331793 L110.446841,133.4566 C110.446841,135.998188 108.386477,138.058552 105.84489,138.058552 M170.272214,138.058552 C167.730626,138.058552 165.670262,135.998188 165.670262,133.4566 L165.670262,48.3020853 C165.670262,45.7604975 167.730626,43.7001336 170.272214,43.7001336 C172.813801,43.7001336 174.874165,45.7604975 174.874165,48.3020853 L174.874165,133.4566 C174.874165,134.677113 174.389318,135.847638 173.526285,136.710671 C172.663252,137.573705 171.492727,138.058552 170.272214,138.058552" id="Shape" fill="#5067A2"></path> <polygon id="Path" fill="#95A5C8" points="110.446841 133.4566 165.670262 133.4566 165.670262 78.2331793 110.446841 78.2331793"></polygon> <polygon id="Path" fill="#5067A2" points="165.670262 133.4566 174.874165 133.4566 174.874165 78.2331793 165.670262 78.2331793"></polygon> <path d="M165.670262,77.9478582 C124.491998,75.6100668 130.198418,59.8345763 92.0390345,59.8253723 L92.0390345,32.213662 C124.832542,32.2228659 136.825229,48.0167643 165.670262,48.6242219 L165.670262,77.9478582" id="Path" fill="#95A5C8"></path> <path d="M92.0390345,59.8253723 L92.0022188,59.8253723 L92.0022188,32.213662 L92.0390345,32.213662 L92.0390345,59.8253723 M174.874165,78.2331793 C171.56076,78.2055676 168.505064,78.1135285 165.670262,77.9478582 L165.670262,48.6242219 L167.400596,48.6426296 C169.765999,48.6426296 172.260257,48.5413867 174.874165,48.3204931 L174.874165,78.2331793" id="Shape" fill="#5067A2"></path> <polygon id="Path" fill="#95A5C8" points="92.0390345 32.213662 165.670262 32.213662 165.670262 4.60195168 92.0390345 4.60195168"></polygon> <path d="M82.835131,32.213662 L92.0390345,32.213662 L92.0390345,4.60195168 L82.835131,4.60195168 L82.835131,32.213662 Z M165.670262,32.213662 L174.506009,32.213662 L174.506009,4.60195168 L165.670262,4.60195168 L165.670262,32.213662 Z" id="Shape" fill="#5067A2"></path> <polygon id="Path" fill="#95A5C8" points="9.20390349 59.8253723 82.835131 59.8253723 82.835131 4.60195168 9.20390349 4.60195168"></polygon> <polyline id="Path" fill="#5067A2" points="82.835131 59.8253723 82.835131 4.60195168 82.835131 59.8253723"></polyline> <polygon id="Path" fill="#95A5C8" points="9.20390349 133.4566 101.242938 133.4566 101.242938 115.048793 9.20390349 115.048793"></polygon> <polygon id="Path" fill="#5067A2" points="101.242938 133.4566 110.446841 133.4566 110.446841 115.048793 101.242938 115.048793"></polygon> <path d="M101.242938,115.048793 C43.4792398,114.699045 52.1585208,101.445424 9.20390349,101.445424 L9.20390349,59.8253723 C56.5579867,59.8253723 47.7682589,78.1319363 101.242938,78.2331793 L101.242938,115.048793" id="Path" fill="#95A5C8"></path> <path d="M101.675521,115.048793 L101.242938,115.048793 L101.242938,78.2331793 L101.675521,78.2331793 C104.335449,78.2331793 100.46981,113.723431 101.675521,115.048793" id="Path" fill="#5067A2"></path> </g> </g> </svg>'},687:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="138px" viewBox="0 0 175 138" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>scatter</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="scatter" fill="#5067A2" fill-rule="nonzero"> <path d="M173.526285,129.202529 C172.663252,128.339495 171.492727,127.854648 170.272214,127.854648 L9.20390349,127.854648 L9.20390349,4.60195168 C9.20390349,2.06036391 7.14353951,-6.74112924e-08 4.60195174,-6.74112925e-08 C2.06036398,-6.74112927e-08 3.11254732e-16,2.06036391 0,4.60195168 L0,132.4566 C3.11254728e-16,134.998188 2.06036395,137.058552 4.60195168,137.058552 L170.272214,137.058552 C171.492727,137.058552 172.663252,136.573705 173.526285,135.710671 C174.389318,134.847638 174.874165,133.677113 174.874165,132.4566 C174.874165,131.236086 174.389318,130.065562 173.526285,129.202529 Z M151.864407,12.8058552 C155.15291,12.8054572 158.191783,14.5596242 159.836149,17.4074853 C161.480516,20.2553464 161.480516,23.7641708 159.836149,26.6120319 C158.191783,29.459893 155.15291,31.21406 151.864407,31.213662 C146.781666,31.2130468 142.661617,27.0924991 142.661617,22.0097586 C142.661617,16.9270181 146.781666,12.8064703 151.864407,12.8058552 Z M142.660503,58.8253723 C147.743679,58.8253723 151.864407,62.9461003 151.864407,68.0292758 C151.864407,73.1124513 147.743679,77.2331793 142.660503,77.2331793 C137.577328,77.2331793 133.4566,73.1124513 133.4566,68.0292758 C133.4566,62.9461003 137.577328,58.8253723 142.660503,58.8253723 Z M124.252696,40.4175655 C127.5412,40.4171675 130.580072,42.1713345 132.224439,45.0191956 C133.868806,47.8670567 133.868806,51.3758811 132.224439,54.2237422 C130.580072,57.0716033 127.5412,58.8257703 124.252696,58.8253723 C119.169956,58.8247572 115.049907,54.7042094 115.049907,49.6214689 C115.049907,44.5387284 119.169956,40.4181807 124.252696,40.4175655 L124.252696,40.4175655 Z M105.84489,22.0097586 C109.133393,22.0093606 112.172266,23.7635277 113.816632,26.6113888 C115.460999,29.4592498 115.460999,32.9680743 113.816632,35.8159354 C112.172266,38.6637965 109.133393,40.4179635 105.84489,40.4175655 C100.762149,40.4169503 96.6421001,36.2964026 96.6421001,31.2136621 C96.6421001,26.1309216 100.762149,22.0103738 105.84489,22.0097586 L105.84489,22.0097586 Z M105.84489,58.8253723 C110.928065,58.8253723 115.048793,62.9461003 115.048793,68.0292758 C115.048793,73.1124513 110.928065,77.2331793 105.84489,77.2331793 C100.761714,77.2331793 96.6409861,73.1124513 96.6409861,68.0292758 C96.6409861,62.9461003 100.761714,58.8253723 105.84489,58.8253723 L105.84489,58.8253723 Z M87.4370826,77.2331793 C90.8200008,77.0784213 94.0146452,78.7938663 95.7543045,81.6993216 C97.4939639,84.6047768 97.4975937,88.2308616 95.7637545,91.1397939 C94.0299154,94.0487262 90.8387117,95.7705634 87.4554905,95.6225784 C82.5370015,95.4074394 78.6587219,91.3598697 78.6537937,86.4366802 C78.6488656,81.5134907 82.5190342,77.4581647 87.4370826,77.2331793 L87.4370826,77.2331793 Z M59.8253723,68.0292758 C63.1138756,68.0288778 66.1527483,69.7830448 67.7971148,72.6309059 C69.4414814,75.478767 69.4414814,78.9875915 67.7971148,81.8354525 C66.1527483,84.6833136 63.1138756,86.4374807 59.8253723,86.4370826 C54.7426318,86.4364675 50.6225828,82.3159197 50.6225828,77.2331792 C50.6225828,72.1504387 54.7426318,68.029891 59.8253723,68.0292758 L59.8253723,68.0292758 Z M32.213662,95.6409861 C35.5021653,95.6405881 38.541038,97.3947552 40.1854045,100.242616 C41.8297711,103.090477 41.8297711,106.599302 40.1854045,109.447163 C38.541038,112.295024 35.5021653,114.049191 32.213662,114.048793 C27.1309215,114.048178 23.0108725,109.92763 23.0108725,104.84489 C23.0108725,99.762149 27.1309215,95.6416013 32.213662,95.6409861 L32.213662,95.6409861 Z" id="Shape"></path> </g> </g> </svg>'},31:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="176px" height="154px" viewBox="0 0 176 154" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>sunburst</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="sunburst" transform="translate(-0.500000, -0.495167)" fill="#5067A2" fill-rule="nonzero"> <path d="M119.233629,98.0044542 L110.718691,87.8510962 C116.698944,81.6134116 119.776927,73.1460671 119.198407,64.5239101 L132.221771,61.7588152 C132.389075,63.3350954 132.468325,64.9289877 132.468325,66.5404921 C132.486789,78.3855449 127.713147,89.7343283 119.233629,98.0044542 L119.233629,98.0044542 Z M63.3185781,30.3829135 C74.7931609,22.4121709 89.3686325,20.3583561 102.598787,24.8479794 C115.828942,29.3376027 126.144611,39.8381699 130.399028,53.1465133 L117.38447,55.9116082 C114.163414,47.1482037 107.14477,40.3166874 98.2978797,37.3338959 C89.4509892,34.3511045 79.7290566,35.5384174 71.8599325,40.5626897 L63.3185781,30.3829135 L63.3185781,30.3829135 Z M57.4981296,97.8547516 L67.6773104,89.3128978 C73.1543438,94.3147256 80.4453141,97.3616135 88.4495316,97.3616137 C93.8284022,97.3676833 99.1146581,95.9617789 103.779942,93.2844195 L112.365323,103.508226 C105.247152,108.132446 96.9377023,110.586264 88.4495316,110.570666 C76.8578752,110.587037 65.7306915,106.015602 57.4981296,97.8547516 L57.4981296,97.8547516 Z M51.880208,91.0741048 C47.0035405,83.8229191 44.4062144,75.2791485 44.4219328,66.5404921 C44.4219328,54.7315996 49.0624416,44.0146553 56.6263832,36.1068361 L65.194154,46.3130303 C60.3076881,51.9176198 57.6201378,59.1046557 57.6302124,66.5404921 C57.6302124,72.3876992 59.2592335,77.8562467 62.0858054,82.5146391 L51.880208,91.0741048 L51.880208,91.0741048 Z M40.5915316,112.05008 L50.7354904,103.534644 C60.658337,113.682313 74.2570793,119.394563 88.4495316,119.3767 C99.4212094,119.3767 109.618001,116.030407 118.062495,110.306485 L126.586238,120.468649 C115.441046,128.370969 102.111678,132.606084 88.4495316,132.585752 C70.3533434,132.605952 53.0459635,125.179425 40.5915316,112.05008 L40.5915316,112.05008 Z M0.5,62.1374747 C1.61718015,39.3368661 11.5653323,17.8665508 28.2373873,2.27405071 L36.7435195,12.4097967 C23.0478109,25.4703646 14.8209875,43.2437342 13.7258907,62.1374747 L0.5,62.1374747 Z M0.5,70.9435094 L13.7258907,70.9435094 C14.5580363,85.4042184 19.5854188,99.3091254 28.1933598,110.958131 L18.0582064,119.464761 C7.47186066,105.41813 1.35420505,88.5122858 0.5,70.9435094 L0.5,70.9435094 Z M22.5490216,62.1374747 C23.6176776,45.8469855 30.7006658,30.5346593 42.4230797,19.1728312 L50.9380174,29.3261893 C42.1806215,38.1364527 36.8165849,49.7571326 35.7925234,62.1374747 L22.5490216,62.1374747 L22.5490216,62.1374747 Z M22.5490216,70.9435094 L35.7925234,70.9435094 C36.5571371,80.2216635 39.7688087,89.1310032 45.0999577,96.7628032 L34.9559989,105.278239 C27.6604148,95.2350677 23.3587128,83.3306553 22.5490216,70.9435094 Z M160.064824,88.3354281 C162.208458,81.2692542 163.294499,73.9246962 163.287644,66.5404921 C163.287927,62.7888436 163.014228,59.0421838 162.468731,55.3304099 L175.40404,52.5829271 C177.539642,66.0542744 176.545357,79.8364744 172.498218,92.86173 L160.064824,88.3354281 Z M157.009309,96.5954887 L169.451508,101.130596 C164.453629,112.804913 156.992417,123.261434 147.578597,131.784403 L139.08127,121.666269 C146.731696,114.64362 152.837128,106.105711 157.009309,96.5954887 L157.009309,96.5954887 Z M139.336631,80.7886563 C141.234304,74.0037443 141.75525,66.9076826 140.868791,59.9183539 L153.830516,57.1620651 C155.148964,66.5886629 154.449628,76.187832 151.77883,85.3237642 L139.336631,80.7886563 Z M136.263504,89.0487169 L148.714509,93.5750188 C145.090489,101.633987 139.889912,108.885878 133.419321,114.903235 L124.913189,104.776295 C129.629614,100.274719 133.477161,94.943361 136.263504,89.0487169 L136.263504,89.0487169 Z M84.1260215,141.268503 L84.1260215,154.495167 C61.049526,153.386197 39.3397973,143.226766 23.7025446,126.218989 L33.8288923,117.71236 C46.9380429,131.745712 64.9535467,140.183088 84.1260215,141.268503 L84.1260215,141.268503 Z M104.94227,2.57345585 C127.679056,8.4576749 145.591926,25.956003 152.007773,48.5497632 L139.046048,51.306052 C133.813709,33.9700374 120.081572,20.5128194 102.64403,15.6328053 L104.933465,2.64390412 L104.94227,2.57345585 L104.94227,2.57345585 Z M96.2952498,0.953145396 L96.2600278,1.12046007 L93.9970091,13.9948829 C81.1068487,12.6102912 68.1594065,16.034712 57.6390179,23.6110727 L49.1240802,13.4665207 C60.4957814,5.02434618 74.2870046,0.475385223 88.4495316,0.495231624 C91.0999932,0.495231624 93.7152325,0.644934198 96.2952498,0.953145396 L96.2952498,0.953145396 Z" id="Shape"></path> <path d="M88.5,75.295167 C93.3601058,75.295167 97.3,71.3552728 97.3,66.495167 C97.3,61.6350611 93.3601058,57.6951669 88.5,57.6951669 C83.6398942,57.6951669 79.7,61.6350611 79.7,66.495167 C79.7,71.3552728 83.6398942,75.295167 88.5,75.295167 Z M88.5,88.495167 C76.3497355,88.495167 66.5,78.6454315 66.5,66.495167 C66.5,54.3449025 76.3497355,44.495167 88.5,44.495167 C100.650264,44.495167 110.5,54.3449025 110.5,66.495167 C110.5,78.6454315 100.650264,88.495167 88.5,88.495167 Z" id="Shape"></path> </g> </g> </svg>'},951:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="175px" height="130px" viewBox="0 0 175 130" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>themeriver</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="themeriver" fill="#5067A2" fill-rule="nonzero"> <path d="M4.9275627,42.5798026 C5.20117275,42.5813119 5.47437729,42.5585448 5.74396361,42.5117692 C10.5811329,41.6686599 15.2612908,40.0922201 19.6227791,37.836902 C26.4649962,34.328322 32.1798026,30.0130599 43.8718299,30.0130599 C55.5638572,30.0130599 63.7861807,41.3940774 79.5602127,41.4912681 C95.3342445,41.5787397 96.9864845,31.7333333 115.384662,31.7333333 C132.976158,31.7333333 137.621868,44.6208049 153.6,45.4566438 C160.490812,45.8162491 166.6041,44.9318147 171.930144,42.7936218 C173.778744,42.0602993 174.992296,40.2727177 174.991648,38.2839788 L174.991648,26.7960517 C174.987486,25.3270305 174.319017,23.9387356 173.173189,23.0194311 C172.027362,22.1001266 170.527173,21.7484925 169.092179,22.0628701 C165.933485,22.7529233 162.084738,22.8403949 157.5265,22.3155656 C145.533181,20.9160213 134.676993,5.82232335 119.476386,5.82232348 C102.788762,5.82232348 99.3093394,11.1678056 81.9899772,11.1678056 C64.6803341,11.1678056 59.6069856,0.126955258 43.8718299,0.126955258 C37.3211845,0.126955258 27.9422931,3.46059231 17.9025057,7.6009112 C12.9652241,9.65163256 8.49445708,10.8373576 4.50964317,11.1678056 C1.98627058,11.3754189 0.0451326562,13.4857192 0.0485952544,16.0176158 L0.0583143318,37.7202733 C0.0583143318,40.4027335 2.24510251,42.5798026 4.9275627,42.5798026 M170.132118,85.5283219 C169.634444,85.5282959 169.139638,85.6036638 168.664541,85.7518603 C162.658162,87.6665148 157.633409,88.7064541 153.551405,88.9008353 C139.342141,89.522855 131.343356,82.7583903 118.543356,82.7583903 C104.227183,82.7583903 97.8611998,94.1491269 80.444647,94.1491269 C61.0356872,94.1491269 52.3274108,84.1287775 42.4917236,84.1287775 C35.416249,84.1287775 28.7392558,88.7453303 19.9337889,92.9828398 C15.5893698,95.0627183 10.3507973,96.5594533 4.2083523,97.4438876 C1.81553905,97.7920745 0.0427391378,99.8465342 0.0485952544,102.264541 L0.0485952544,124.297646 C0.0496707163,125.687409 0.645723287,127.010209 1.68608385,127.931672 C2.72644442,128.853134 4.11154706,129.285071 5.491268,129.118299 C10.3313591,128.544875 15.142293,127.670159 19.9337889,126.513592 C29.8083523,124.132422 34.2305239,119.068793 42.4917236,118.388459 C54.5822323,117.397115 66.5658314,123.267426 82.4759302,121.323614 C98.386029,119.379803 106.3265,110.156416 120.273349,108.543052 C132.577676,107.12407 140.586181,111.293546 152.083827,110.030068 C159.995141,109.174791 166.81792,107.085194 172.552164,103.780714 C174.06095,102.911932 174.991067,101.303681 174.991648,99.5626424 L174.991648,90.3878512 C174.991648,87.7040073 172.815962,85.5283219 170.132118,85.5283219" id="Shape"></path> <path d="M170.132118,55.1659834 C169.755896,55.1642513 169.380769,55.206657 169.014427,55.2923311 C163.386911,56.5597226 157.597804,56.9530934 151.850569,56.4586181 C133.889749,55.0007593 128.388762,42.7839029 114.655733,42.7839029 C103.264996,42.7839029 93.9249811,52.940319 79.7157175,52.5807138 C59.2668185,52.0656038 52.6578588,41.0733486 42.0738042,41.0733486 C35.5231587,41.0733486 26.5330296,47.0991647 20.6724373,49.7524677 C15.5296251,52.0293301 10.0450596,53.4382394 4.44160976,53.9219438 C1.94888222,54.1623556 0.0470459996,56.2577415 0.0485952544,58.762035 L0.0485952544,80.8242976 C0.0491745866,82.2971429 0.717699925,83.69025 1.86632297,84.6121711 C3.01494602,85.5340923 4.51970635,85.8853329 5.95778278,85.5671982 C11.10094,84.3721963 16.0531556,82.4685044 20.6724373,79.9107062 C28.3018983,75.7703873 34.249962,72.7866364 41.8016705,72.7866364 C56.6037965,72.7866364 63.1252849,82.7778284 79.3755505,82.7778284 C94.6441914,82.7778284 103.070615,71.5231587 117.639484,71.5231587 C132.208352,71.5231587 139.964161,77.2185269 150.314958,77.5295368 C156.48656,77.7044798 163.707821,76.0813971 171.988459,72.6408505 C173.80584,71.8896408 174.991328,70.1171628 174.991648,68.1506454 L174.991648,60.0255125 C174.991648,57.3416686 172.815962,55.1659834 170.132118,55.1659834" id="Path"></path> </g> </g> </svg>'},929:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="174px" height="147px" viewBox="0 0 174 147" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>tree (1)</title> <desc>Created with Sketch.</desc> <defs> <polygon id="path-1" points="2 4.69629167 172 4.69629167 172 146.375 2 146.375"></polygon> </defs> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="tree-(1)"> <mask id="mask-2" fill="white"> <use xlink:href="#path-1"></use> </mask> <g id="path-1"></g> <path d="M174,127.4965 C173.994333,137.928125 165.534,146.380667 155.101667,146.375708 C144.670042,146.370042 136.216792,137.909 136.222458,127.476667 C136.222458,127.470292 136.222458,127.464625 136.222458,127.45825 C136.226708,118.755667 142.117917,111.435042 150.127042,109.248417 L150.127042,80.2563333 L91.4625,80.2563333 L91.4625,109.120208 C99.7407917,111.126208 105.890542,118.582125 105.889125,127.476667 C105.889125,127.483042 105.889125,127.490125 105.889125,127.4965 C105.883458,137.928125 97.4224167,146.380667 86.9907917,146.375708 C76.5584583,146.370042 68.1059167,137.909 68.1115833,127.476667 C68.1122917,118.764875 74.0049167,111.440708 82.0182917,109.254083 L82.0182917,80.2563333 L23.3530417,80.2563333 L23.3530417,109.120917 C31.630625,111.127625 37.7789583,118.582833 37.77825,127.476667 C37.77825,127.478792 37.77825,127.480917 37.77825,127.483042 C37.776125,137.915375 29.3179167,146.37075 18.8862917,146.368625 C8.45395833,146.367208 -0.00141666667,137.909 0,127.476667 C0.00141666667,118.764167 5.89545833,111.439292 13.9088333,109.254083 L13.9088333,80.2563333 C13.9088333,75.0500833 18.1425417,70.812125 23.3530417,70.812125 L82.0182917,70.812125 L82.0182917,37.8179167 C74.0006667,35.6305833 68.106625,28.298625 68.1115833,19.58825 C68.1122917,9.15025 76.5705,0.694875 87.0028333,0.696291667 C97.4344583,0.697708333 105.890542,9.15591667 105.889125,19.58825 C105.889125,19.594625 105.889125,19.601 105.889125,19.607375 C105.884167,28.4976667 99.7358333,35.9465 91.4625,37.9517917 L91.4625,70.812125 L150.127042,70.812125 C155.337542,70.812125 159.57125,75.0500833 159.57125,80.2563333 L159.57125,109.113125 C167.853083,111.119125 174.00425,118.579292 174,127.476667 C174,127.483042 174,127.490125 174,127.4965 Z" id="Fill-1" fill="#5067A2" fill-rule="nonzero"></path> </g> </g> </svg>'},101:t=>{t.exports='<?xml version="1.0" encoding="UTF-8"?> <svg width="160px" height="132px" viewBox="0 0 160 132" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>treemap</title> <desc>Created with Sketch.</desc> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="treemap" transform="translate(-0.500000, -0.095199)" fill="#5067A2" fill-rule="nonzero"> <path d="M84.9444444,79.2951993 L4.9444444,79.2951993 C2.48984554,79.2951993 0.5,81.2651464 0.5,83.6951993 L0.5,127.695199 C0.5,130.125252 2.48984554,132.095199 4.9444444,132.095199 L84.9444444,132.095199 C86.1231844,132.095199 87.2536462,131.631629 88.0871413,130.806469 C88.9206363,129.981309 89.3888889,128.862152 89.3888889,127.695199 L89.3888889,83.6951993 C89.3888889,82.5282467 88.9206363,81.4090895 88.0871413,80.5839295 C87.2536462,79.7587694 86.1231844,79.2951993 84.9444444,79.2951993 L84.9444444,79.2951993 Z M156.055556,105.695199 L102.722222,105.695199 C101.543482,105.695199 100.41302,106.158769 99.5795254,106.983929 C98.7460304,107.80909 98.2777777,108.928247 98.2777777,110.095199 L98.2777777,127.695199 C98.2777777,128.862152 98.7460304,129.981309 99.5795254,130.806469 C100.41302,131.631629 101.543482,132.095199 102.722222,132.095199 L156.055556,132.095199 C158.510154,132.095199 160.5,130.125252 160.5,127.695199 L160.5,110.095199 C160.5,107.665146 158.510154,105.695199 156.055556,105.695199 L156.055556,105.695199 Z M156.055556,61.6951994 L102.722222,61.6951994 C101.543482,61.6951994 100.41302,62.1587694 99.5795254,62.9839295 C98.7460304,63.8090896 98.2777777,64.9282468 98.2777777,66.0951993 L98.2777777,92.4951993 C98.2777777,93.6621519 98.7460304,94.7813091 99.5795254,95.6064692 C100.41302,96.4316293 101.543482,96.8951993 102.722222,96.8951993 L156.055556,96.8951993 C158.510154,96.8951993 160.5,94.9252522 160.5,92.4951993 L160.5,66.0951993 C160.5,63.6651465 158.510154,61.6951994 156.055556,61.6951994 L156.055556,61.6951994 Z M156.055556,0.0951993491 L102.722222,0.0951993491 C101.543482,0.0951993149 100.41302,0.558769393 99.5795254,1.38392945 C98.7460304,2.20908951 98.2777777,3.32824674 98.2777777,4.49519931 L98.2777777,48.4951994 C98.2777777,49.662152 98.7460304,50.7813092 99.5795254,51.6064692 C100.41302,52.4316293 101.543482,52.8951994 102.722222,52.8951993 L156.055556,52.8951993 C158.510154,52.8951993 160.5,50.9252523 160.5,48.4951994 L160.5,4.49519931 C160.5,2.06514643 158.510154,0.0951993491 156.055556,0.0951993491 L156.055556,0.0951993491 Z M89.3888889,4.49519931 L89.3888889,66.0951993 C89.3888889,67.2621519 88.9206363,68.3813091 88.0871413,69.2064692 C87.2536462,70.0316293 86.1231844,70.4951993 84.9444444,70.4951993 L4.9444444,70.4951993 C2.48984554,70.4951993 0.5,68.5252522 0.5,66.0951993 L0.5,4.49519931 C0.5,2.06514643 2.48984554,0.0951993491 4.9444444,0.0951993491 L84.9444444,0.0951993491 C86.1231844,0.0951993149 87.2536462,0.558769393 88.0871413,1.38392945 C88.9206363,2.20908951 89.3888889,3.32824674 89.3888889,4.49519931 Z" id="Shape"></path> </g> </g> </svg>'},705:(t,e,n)=>{var a=n(639).Symbol;t.exports=a},239:(t,e,n)=>{var a=n(705),i=n(607),o=n(333),r=a?a.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":r&&r in Object(t)?i(t):o(t)}},957:(t,e,n)=>{var a="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;t.exports=a},607:(t,e,n)=>{var a=n(705),i=Object.prototype,o=i.hasOwnProperty,r=i.toString,l=a?a.toStringTag:void 0;t.exports=function(t){var e=o.call(t,l),n=t[l];try{t[l]=void 0;var a=!0}catch(t){}var i=r.call(t);return a&&(e?t[l]=n:delete t[l]),i}},333:t=>{var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},639:(t,e,n)=>{var a=n(957),i="object"==typeof self&&self&&self.Object===Object&&self,o=a||i||Function("return this")();t.exports=o},279:(t,e,n)=>{var a=n(218),i=n(771),o=n(841),r=Math.max,l=Math.min;t.exports=function(t,e,n){var s,c,u,d,p,f,g=0,m=!1,h=!1,C=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function y(e){var n=s,a=c;return s=c=void 0,g=e,d=t.apply(a,n)}function v(t){return g=t,p=setTimeout(_,e),m?y(t):d}function b(t){var n=t-f;return void 0===f||n>=e||n<0||h&&t-g>=u}function _(){var t=i();if(b(t))return L(t);p=setTimeout(_,function(t){var n=e-(t-f);return h?l(n,u-(t-g)):n}(t))}function L(t){return p=void 0,C&&s?y(t):(s=c=void 0,d)}function w(){var t=i(),n=b(t);if(s=arguments,c=this,f=t,n){if(void 0===p)return v(f);if(h)return clearTimeout(p),p=setTimeout(_,e),y(f)}return void 0===p&&(p=setTimeout(_,e)),d}return e=o(e)||0,a(n)&&(m=!!n.leading,u=(h="maxWait"in n)?r(o(n.maxWait)||0,e):u,C="trailing"in n?!!n.trailing:C),w.cancel=function(){void 0!==p&&clearTimeout(p),g=0,s=f=c=p=void 0},w.flush=function(){return void 0===p?d:L(i())},w}},218:t=>{t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},5:t=>{t.exports=function(t){return null!=t&&"object"==typeof t}},448:(t,e,n)=>{var a=n(239),i=n(5);t.exports=function(t){return"symbol"==typeof t||i(t)&&"[object Symbol]"==a(t)}},771:(t,e,n)=>{var a=n(639);t.exports=function(){return a.Date.now()}},841:(t,e,n)=>{var a=n(218),i=n(448),o=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,s=/^0o[0-7]+$/i,c=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return NaN;if(a(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=a(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(o,"");var n=l.test(t);return n||s.test(t)?c(t.slice(2),n?2:8):r.test(t)?NaN:+t}},463:function(t){"undefined"!=typeof self&&self,t.exports=function(t){var e={};function n(a){if(e[a])return e[a].exports;var i=e[a]={i:a,l:!1,exports:{}};return t[a].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,a){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(a,i,function(e){return t[e]}.bind(null,i));return a},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/dist/",n(n.s=1)}([function(t,e){var n="function"==typeof Float32Array;function a(t,e){return 1-3*e+3*t}function i(t,e){return 3*e-6*t}function o(t){return 3*t}function r(t,e,n){return((a(e,n)*t+i(e,n))*t+o(e))*t}function l(t,e,n){return 3*a(e,n)*t*t+2*i(e,n)*t+o(e)}function s(t){return t}t.exports=function(t,e,a,i){if(!(0<=t&&t<=1&&0<=a&&a<=1))throw new Error("bezier x values must be in [0, 1] range");if(t===e&&a===i)return s;for(var o=n?new Float32Array(11):new Array(11),c=0;c<11;++c)o[c]=r(.1*c,t,a);function u(e){for(var n=0,i=1;10!==i&&o[i]<=e;++i)n+=.1;--i;var s=n+(e-o[i])/(o[i+1]-o[i])*.1,c=l(s,t,a);return c>=.001?function(t,e,n,a){for(var i=0;i<4;++i){var o=l(e,n,a);if(0===o)return e;e-=(r(e,n,a)-t)/o}return e}(e,s,t,a):0===c?s:function(t,e,n,a,i){var o,l,s=0;do{(o=r(l=e+(n-e)/2,a,i)-t)>0?n=l:e=l}while(Math.abs(o)>1e-7&&++s<10);return l}(e,n,n+.1,t,a)}return function(t){return 0===t?0:1===t?1:r(u(t),e,i)}}},function(t,e,n){"use strict";n.r(e);var a=function(){var t=this.$createElement;return(this._self._c||t)(this.tag,{ref:"scrollactive-nav-wrapper",tag:"component",staticClass:"scrollactive-nav"},[this._t("default")],2)};a._withStripped=!0;var i=n(0),o=n.n(i);function r(t){return function(t){if(Array.isArray(t))return l(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return l(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}var s=function(t,e,n,a,i,o,r,l){var s,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=[],c._compiled=!0),s)if(c.functional){c._injectStyles=s;var u=c.render;c.render=function(t,e){return s.call(e),u(t,e)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,s):[s]}return{exports:t,options:c}}({props:{activeClass:{type:String,default:"is-active"},offset:{type:Number,default:20},scrollOffset:{type:Number,default:null},scrollContainerSelector:{type:String,default:""},clickToScroll:{type:Boolean,default:!0},duration:{type:Number,default:600},alwaysTrack:{type:Boolean,default:!1},bezierEasingValue:{type:String,default:".5,0,.35,1"},modifyUrl:{type:Boolean,default:!0},exact:{type:Boolean,default:!1},highlightFirstItem:{type:Boolean,default:!1},tag:{type:String,default:"nav"},scrollOnStart:{type:Boolean,default:!0}},data:function(){return{observer:null,items:[],currentItem:null,lastActiveItem:null,scrollAnimationFrame:null,bezierEasing:o.a}},computed:{cubicBezierArray:function(){return this.bezierEasingValue.split(",")},scrollContainer:function(){var t=window;return this.scrollContainerSelector&&(t=document.querySelector(this.scrollContainerSelector)||window),t}},mounted:function(){var t=window.MutationObserver||window.WebKitMutationObserver;this.observer||(this.observer=new t(this.initScrollactiveItems),this.observer.observe(this.$refs["scrollactive-nav-wrapper"],{childList:!0,subtree:!0})),this.initScrollactiveItems(),this.removeActiveClass(),this.currentItem=this.getItemInsideWindow(),this.currentItem&&this.currentItem.classList.add(this.activeClass),this.scrollOnStart&&this.scrollToHashElement(),this.scrollContainer.addEventListener("scroll",this.onScroll)},updated:function(){this.initScrollactiveItems()},beforeDestroy:function(){this.scrollContainer.removeEventListener("scroll",this.onScroll),window.cancelAnimationFrame(this.scrollAnimationFrame)},methods:{onScroll:function(t){this.currentItem=this.getItemInsideWindow(),this.currentItem!==this.lastActiveItem&&(this.removeActiveClass(),this.$emit("itemchanged",t,this.currentItem,this.lastActiveItem),this.lastActiveItem=this.currentItem),this.currentItem&&this.currentItem.classList.add(this.activeClass)},getItemInsideWindow:function(){var t,e=this;return[].forEach.call(this.items,(function(n){var a=n===e.items[0],i=document.getElementById(decodeURI(n.hash.substr(1)));if(i){var o=e.scrollContainer.scrollTop||window.pageYOffset,r=o>=e.getOffsetTop(i)-e.offset,l=o<e.getOffsetTop(i)-e.offset+i.offsetHeight;a&&e.highlightFirstItem&&l&&(t=n),e.exact&&r&&l&&(t=n),!e.exact&&r&&(t=n)}})),t},initScrollactiveItems:function(){var t=this;this.items=this.$el.querySelectorAll(".scrollactive-item"),this.clickToScroll?[].forEach.call(this.items,(function(e){e.addEventListener("click",t.handleClick)})):[].forEach.call(this.items,(function(e){e.removeEventListener("click",t.handleClick)}))},setScrollactiveItems:function(){this.initScrollactiveItems()},handleClick:function(t){var e=this;t.preventDefault();var n=t.currentTarget.hash,a=document.getElementById(decodeURI(n.substr(1)));a?(this.alwaysTrack||(this.scrollContainer.removeEventListener("scroll",this.onScroll),window.cancelAnimationFrame(this.scrollAnimationFrame),this.removeActiveClass(),t.currentTarget.classList.add(this.activeClass)),this.scrollTo(a).then((function(){e.alwaysTrack||(e.scrollContainer.addEventListener("scroll",e.onScroll),e.currentItem=[].find.call(e.items,(function(t){return decodeURI(t.hash.substr(1))===a.id})),e.currentItem!==e.lastActiveItem&&(e.$emit("itemchanged",null,e.currentItem,e.lastActiveItem),e.lastActiveItem=e.currentItem)),e.modifyUrl&&e.pushHashToUrl(n)}))):console.warn("[vue-scrollactive] Element '".concat(n,"' was not found. Make sure it is set in the DOM."))},scrollTo:function(t){var e=this;return new Promise((function(n){var a=e.getOffsetTop(t),i=e.scrollContainer.scrollTop||window.pageYOffset,o=a-i,l=e.bezierEasing.apply(e,r(e.cubicBezierArray)),s=null;window.requestAnimationFrame((function t(a){s||(s=a);var r=a-s,c=r/e.duration;r>=e.duration&&(r=e.duration),c>=1&&(c=1);var u=e.scrollOffset||e.offset,d=i+l(c)*(o-u);e.scrollContainer.scrollTo(0,d),r<e.duration?e.scrollAnimationFrame=window.requestAnimationFrame(t):n()}))}))},getOffsetTop:function(t){for(var e=0,n=t;n;)e+=n.offsetTop,n=n.offsetParent;return this.scrollContainer.offsetTop&&(e-=this.scrollContainer.offsetTop),e},removeActiveClass:function(){var t=this;[].forEach.call(this.items,(function(e){e.classList.remove(t.activeClass)}))},scrollToHashElement:function(){var t=this,e=window.location.hash;if(e){var n=document.querySelector(decodeURI(e));n&&(window.location.hash="",setTimeout((function(){var a=n.offsetTop-t.offset;t.scrollContainer.scrollTo(0,a),t.pushHashToUrl(e)}),0))}},pushHashToUrl:function(t){window.history.pushState?window.history.pushState(null,null,t):window.location.hash=t}}},a);s.options.__file="src/scrollactive.vue";var c=s.exports,u={install:function(t){u.install.installed||t.component("scrollactive",c)}};"undefined"!=typeof window&&window.Vue&&u.install(window.Vue),e.default=u}])},472:(t,e,n)=>{var a={"./bar.svg":38,"./boxplot.svg":851,"./calendar.svg":496,"./candlestick.svg":173,"./custom.svg":353,"./dataZoom.svg":6,"./dataset.svg":238,"./drag.svg":642,"./funnel.svg":797,"./gauge.svg":822,"./geo.svg":317,"./gl.svg":926,"./graph.svg":769,"./heatmap.svg":781,"./line.svg":69,"./lines.svg":276,"./map.svg":831,"./parallel.svg":582,"./pictorialBar.svg":689,"./pie.svg":931,"./radar.svg":702,"./rich.svg":989,"./sankey.svg":827,"./scatter.svg":687,"./sunburst.svg":31,"./themeRiver.svg":951,"./tree.svg":929,"./treemap.svg":101};function i(t){var e=o(t);return n(e)}function o(t){if(!n.o(a,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return a[t]}i.keys=function(){return Object.keys(a)},i.resolve=o,t.exports=i,i.id=472}},e={};function n(a){if(e[a])return e[a].exports;var i=e[a]={id:a,loaded:!1,exports:{}};return t[a].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}return n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var a in e)n.o(e,a)&&!n.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),n.p="./",n(403)})();
\ No newline at end of file
diff --git a/examples/js/example-bundle.js.map b/examples/js/example-bundle.js.map
index 9ab8248..7a0ae13 100644
--- a/examples/js/example-bundle.js.map
+++ b/examples/js/example-bundle.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://echartsExample/./node_modules/@lang/object-visualizer/dist/object-visualizer.esm.min.js","webpack://echartsExample/./common/buildCode.js","webpack://echartsExample/src/editor/CodeAce.vue","webpack://echartsExample/src/editor/CodeMonaco.vue","webpack://echartsExample/src/editor/Editor.vue","webpack://echartsExample/src/editor/FullCodePreview.vue","webpack://echartsExample/src/editor/Preview.vue","webpack://echartsExample/src/editor/View.vue","webpack://echartsExample/src/explore/ExampleCard.vue","webpack://echartsExample/src/explore/Explore.vue","webpack://echartsExample/./src/common/config.js","webpack://echartsExample/./src/common/helper.js","webpack://echartsExample/./src/common/i18n.js","webpack://echartsExample/./src/common/store.js","webpack://echartsExample/./src/data/chart-list-data-gl.js","webpack://echartsExample/./src/data/chart-list-data.js","webpack://echartsExample/./src/data/option-keywords.js","webpack://echartsExample/./src/dep/showDebugDirtyRect.js","webpack://echartsExample/./src/editor/downloadExample.js","webpack://echartsExample/./src/editor/sandbox.js","webpack://echartsExample/./src/main.js","webpack://echartsExample/./src/asset/placeholder.jpg","webpack://echartsExample/./src/asset/icon/bar.svg","webpack://echartsExample/./src/asset/icon/boxplot.svg","webpack://echartsExample/./src/asset/icon/calendar.svg","webpack://echartsExample/./src/asset/icon/candlestick.svg","webpack://echartsExample/./src/asset/icon/custom.svg","webpack://echartsExample/./src/asset/icon/dataZoom.svg","webpack://echartsExample/./src/asset/icon/dataset.svg","webpack://echartsExample/./src/asset/icon/drag.svg","webpack://echartsExample/./src/asset/icon/funnel.svg","webpack://echartsExample/./src/asset/icon/gauge.svg","webpack://echartsExample/./src/asset/icon/geo.svg","webpack://echartsExample/./src/asset/icon/gl.svg","webpack://echartsExample/./src/asset/icon/graph.svg","webpack://echartsExample/./src/asset/icon/heatmap.svg","webpack://echartsExample/./src/asset/icon/line.svg","webpack://echartsExample/./src/asset/icon/lines.svg","webpack://echartsExample/./src/asset/icon/map.svg","webpack://echartsExample/./src/asset/icon/parallel.svg","webpack://echartsExample/./src/asset/icon/pictorialBar.svg","webpack://echartsExample/./src/asset/icon/pie.svg","webpack://echartsExample/./src/asset/icon/radar.svg","webpack://echartsExample/./src/asset/icon/rich.svg","webpack://echartsExample/./src/asset/icon/sankey.svg","webpack://echartsExample/./src/asset/icon/scatter.svg","webpack://echartsExample/./src/asset/icon/sunburst.svg","webpack://echartsExample/./src/asset/icon/themeRiver.svg","webpack://echartsExample/./src/asset/icon/tree.svg","webpack://echartsExample/./src/asset/icon/treemap.svg","webpack://echartsExample/./node_modules/lodash/_Symbol.js","webpack://echartsExample/./node_modules/lodash/_baseGetTag.js","webpack://echartsExample/./node_modules/lodash/_freeGlobal.js","webpack://echartsExample/./node_modules/lodash/_getRawTag.js","webpack://echartsExample/./node_modules/lodash/_objectToString.js","webpack://echartsExample/./node_modules/lodash/_root.js","webpack://echartsExample/./node_modules/lodash/debounce.js","webpack://echartsExample/./node_modules/lodash/isObject.js","webpack://echartsExample/./node_modules/lodash/isObjectLike.js","webpack://echartsExample/./node_modules/lodash/isSymbol.js","webpack://echartsExample/./node_modules/lodash/now.js","webpack://echartsExample/./node_modules/lodash/toNumber.js","webpack://echartsExample/./src/editor/CodeAce.vue?fe3c","webpack://echartsExample/./src/editor/CodeMonaco.vue?3785","webpack://echartsExample/./src/editor/Editor.vue?3ca8","webpack://echartsExample/./src/editor/FullCodePreview.vue?ab3f","webpack://echartsExample/./src/editor/Preview.vue?a8fb","webpack://echartsExample/./src/explore/ExampleCard.vue?81d6","webpack://echartsExample/./src/explore/Explore.vue?2d5c","webpack://echartsExample/./src/editor/object-visualizer.css","webpack://echartsExample/./node_modules/resize-detector/esm/index.js","webpack://echartsExample/./node_modules/vanilla-lazyload/dist/lazyload.esm.js","webpack://echartsExample/./node_modules/vue-i18n/dist/vue-i18n.esm.js","webpack://echartsExample/./src/editor/CodeAce.vue","webpack://echartsExample/./src/editor/CodeMonaco.vue","webpack://echartsExample/./src/editor/Editor.vue","webpack://echartsExample/./src/editor/FullCodePreview.vue","webpack://echartsExample/./src/editor/Preview.vue","webpack://echartsExample/./src/editor/View.vue","webpack://echartsExample/./src/explore/ExampleCard.vue","webpack://echartsExample/./src/explore/Explore.vue","webpack://echartsExample/./src/editor/CodeAce.vue?edd2","webpack://echartsExample/./src/editor/CodeMonaco.vue?5397","webpack://echartsExample/./src/editor/Editor.vue?c684","webpack://echartsExample/./src/editor/FullCodePreview.vue?84e7","webpack://echartsExample/./src/editor/Preview.vue?9b0f","webpack://echartsExample/./src/editor/View.vue?61ae","webpack://echartsExample/./src/explore/ExampleCard.vue?15c2","webpack://echartsExample/./src/explore/Explore.vue?0a10","webpack://echartsExample/./src/editor/CodeAce.vue?025a","webpack://echartsExample/./src/editor/CodeMonaco.vue?edac","webpack://echartsExample/./src/editor/Editor.vue?08c4","webpack://echartsExample/./src/editor/FullCodePreview.vue?f280","webpack://echartsExample/./src/editor/Preview.vue?42e8","webpack://echartsExample/./src/editor/View.vue?1961","webpack://echartsExample/./src/explore/ExampleCard.vue?094b","webpack://echartsExample/./src/explore/Explore.vue?6f68","webpack://echartsExample/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://echartsExample/./node_modules/vue-scrollactive/dist/vue-scrollactive.min.js","webpack://echartsExample//Users/lang/Develop/echarts-examples/src/asset/icon|sync|/^\\.\\/.*\\.svg$/","webpack://echartsExample/external \"Vue\"","webpack://echartsExample/webpack/bootstrap","webpack://echartsExample/webpack/runtime/compat get default export","webpack://echartsExample/webpack/runtime/define property getters","webpack://echartsExample/webpack/runtime/global","webpack://echartsExample/webpack/runtime/hasOwnProperty shorthand","webpack://echartsExample/webpack/runtime/make namespace object","webpack://echartsExample/webpack/runtime/node module decorator","webpack://echartsExample/webpack/runtime/publicPath","webpack://echartsExample/webpack/startup"],"names":["COMPONENTS_MAP","grid","polar","geo","singleAxis","parallel","calendar","graphic","toolbox","tooltip","axisPointer","brush","title","timeline","markPoint","markLine","markArea","legend","dataZoom","visualMap","aria","dataset","xAxis","yAxis","angleAxis","radiusAxis","CHARTS_MAP","line","bar","pie","scatter","radar","map","tree","treemap","graph","gauge","funnel","sankey","boxplot","candlestick","effectScatter","lines","heatmap","pictorialBar","themeRiver","sunburst","custom","COMPONENTS_GL_MAP","grid3D","geo3D","globe","mapbox3D","maptalks3D","xAxis3D","yAxis3D","zAxis3D","CHARTS_GL_MAP","bar3D","line3D","scatter3D","lines3D","polygons3D","surface","map3D","scatterGL","graphGL","flowGL","linesGL","COMPONENTS_MAP_REVERSE","CHARTS_MAP_REVERSE","CHARTS_GL_MAP_REVERSE","COMPONENTS_GL_MAP_REVERSE","RENDERERS_MAP_REVERSE","MARKERS","INJECTED_COMPONENTS","DEPENDENT_COMPONENTS","createReverseMap","reverseMap","Object","keys","forEach","key","includes","module","collectDeps","option","deps","options","opt","concat","baseOption","Array","from","Set","val","isArray","length","push","series","seriesOpt","type","markerType","buildMinimalBundleCode","includeType","chartsImports","componentsImports","chartsGLImports","componentsGLImports","renderersImports","dep","endsWith","replace","getImportsPartCode","imports","str","join","allImports","ECOptionTypeCode","filter","a","importsCodes","item","trim","buildLegacyMinimalBundleCode","isESM","modules","mod","hasGLInDeps","find","jsCode","minimal","esm","legacy","ts","theme","ROOT_PATH","extraImports","hasECStat","indexOf","usedRootPath","usedApp","DEP_CODE","IMPORT_CODE","ENV_CODE","PREPARE_CODE","EXAMPLE_CATEGORIES","THEMES","dark","BLACK_MAP","list","i","location","href","URL_PARAMS","search","substr","split","kv","SUPPORT_WEBP","elem","document","createElement","width","height","getContext","toDataURL","SCRIPT_URLS","localEChartsMinJS","echartsMinJS","echartsDir","echartsStatMinJS","echartsGLMinJS","datGUIMinJS","monacoDir","aceDir","promisesCache","loadScriptsAsync","scripts","Promise","all","scriptUrl","url","match","promise","resolve","reject","script","src","async","onload","onerror","body","appendChild","link","rel","downloadBlob","blob","fileName","window","navigator","msSaveBlob","msSaveOrOpenBlob","URL","createObjectURL","download","click","revokeObjectURL","en","editor","run","errorInEditor","chartOK","darkMode","enableDecal","renderCfgTitle","renderer","useDirtyRect","edit","monacoMode","tabEditor","tabFullCodePreview","tabOptionPreview","minimalBundle","chartTypes","drag","rich","zh","store","cdnRoot","version","locale","typeCheck","runCode","sourceCode","runHash","isMobile","innerWidth","editorStatus","message","loadExampleCode","dataRoot","$","ajax","dataType","success","data","parseSourceCode","code","hashId","updateRunHash","keywords","DebugRect","style","dom","className","assign","backgroundColor","border","cssText","hasOwnProperty","prototype","update","rect","domStyle","left","x","top","y","hide","opacity","show","_this","clearTimeout","_hideTimeout","setTimeout","zr","opts","painter","getLayers","Error","isSingleCanvas","debugViewRoot","debugRects","computedStyle","getComputedStyle","position","on","idx_1","eachBuiltinLayer","layer","debugGetPaintRects","paintRects","hasRootPath","rootPathCode","file","Blob","encoding","createSandbox","optionUpdated","appEnv","gui","_intervalIdList","_timeoutIdList","_oldSetTimeout","_oldSetInterval","setInterval","func","delay","id","gap","_clearTimeTickers","clearInterval","_events","_wrapOnMethods","chart","oldOn","oldSetOption","setOption","eventName","res","apply","arguments","_clearChartEvents","off","chartInstance","resize","dispose","getDataURL","pixelRatio","excludeComponents","getOption","el","echarts","init","showDebugDirtyRect","getZr","autoHideDelay","e","console","error","config","compiledCode","Function","updateTime","startTime","Date","endTime","domElement","remove","destroy","dat","GUI","autoPlace","css","right","zIndex","append","configParameters","name","value","isColor","controller","add","min","max","obj","colorArr","color","parse","stringify","onChange","onFinishChange","Vue","VueScrollactive","i18n","VueI18n","fallbackLocale","messages","querySelector","container","render","h","EditorPage","explore","ExplorePage","view","ViewPage","page"],"mappings":";;;;;;;;;;;;;;;;AAAA,gBAAgB,2CAA2C,YAAY,WAAW,eAAe,2CAA2C,0RAA0R,cAAc,SAAS,WAAW,YAAY,WAAW,KAAK,8BAA8B,gCAAgC,SAAS,iBAAiB,UAAU,wBAAwB,cAAc,WAAW,+BAA+B,MAAM,mBAAmB,0CAA0C,KAAK,cAAc,SAAS,YAAY,yBAAyB,WAAW,mBAAmB,+CAA+C,gBAAgB,0EAA0E,QAAQ,OAAO,8CAA8C,EAAE,cAAc,EAAE,OAAO,QAAQ,OAAO,oBAAoB,mCAAmC,cAAc,gGAAgG,qBAAqB,oBAAoB,6gBAA6gB,4BAA4B,4BAA4B,yLAAyL,KAAK,8CAA8C,YAAY,WAAW,YAAY,aAAa,2BAA2B,sCAAsC,EAAE,OAAO,sBAAsB,qBAAqB,MAAM,gJAAgJ,qBAAM,CAAC,qBAAM,GAAG,qBAAqB,MAAM,gCAAgC,kBAAkB,aAAa,2BAA2B,gBAAgB,sBAAsB,mBAAmB,2CAA2C,mBAAmB,MAAM,IAAI,2CAA2C,QAAQ,gCAAgC,4GAA4G,MAAM,qBAAqB,cAAc,mEAAmE,SAAS,eAAe,MAAM,OAAO,GAAG,aAAa,YAAY,WAAW,mBAAmB,YAAY,UAAU,YAAY,cAAc,kBAAkB,cAAc,iBAAiB,iBAAiB,mBAAmB,0BAA0B,eAAe,sBAAsB,eAAe,0DAA0D,yBAAyB,iBAAiB,aAAa,sBAAsB,kBAAkB,kCAAkC,IAAI,4BAA4B,8CAA8C,2BAA2B,GAAG,uCAAuC,wEAAwE,MAAM,mDAAmD,MAAM,4BAA4B,eAAe,+CAA+C,GAAG,qIAAqI,uBAAuB,uBAAuB,iCAAiC,iCAAiC,gDAAgD,aAAa,6CAA6C,2BAA2B,4DAA4D,2BAA2B,UAAU,0BAA0B,6BAA6B,kDAAkD,2BAA2B,qBAAqB,iBAAiB,0BAA0B,IAAI,iBAAiB,qBAAqB,6CAA6C,0DAA0D,2BAA2B,qBAAqB,KAAK,wBAAwB,eAAe,GAAG,kBAAkB,yBAAyB,aAAa,0DAA0D,oEAAoE,iEAAiE,UAAU,6CAA6C,oDAAoD,uCAAuC,mBAAmB,yBAAyB,oCAAoC,qBAAqB,mDAAmD,KAAK,8CAA8C,QAAQ,KAAK,kBAAkB,UAAU,KAAK,OAAO,8EAA8E,2BAA2B,gCAAgC,mCAAmC,MAAM,MAAM,sBAAsB,8DAA8D,oBAAoB,qCAAqC,4EAA4E,oBAAoB,6DAA6D,eAAe,QAAQ,uCAAuC,wCAAwC,iBAAiB,QAAQ,kBAAkB,YAAY,OAAO,kBAAkB,2BAA2B,oBAAoB,iEAAiE,eAAe,kBAAkB,YAAY,OAAO,kBAAkB,2BAA2B,eAAe,oBAAoB,oCAAoC,cAAc,0CAA0C,wCAAwC,iBAAiB,qBAAqB,gDAAgD,+DAA+D,mBAAmB,sBAAsB,wHAAwH,yBAAyB,OAAO,MAAM,eAAe,UAAU,UAAU,eAAe,EAAE,uCAAuC,qBAAqB,eAAe,eAAe,sBAAsB,0BAA0B,UAAU,OAAO,kBAAkB,YAAY,gBAAgB,2DAA2D,KAAK,OAAO,wBAAwB,YAAY,gBAAgB,2DAA2D,KAAK,OAAO,qBAAqB,YAAY,mBAAmB,QAAQ,0BAA0B,sFAAsF,iBAAiB,qBAAqB,kHAAkH,yDAAyD,sDAAsD,GAAG,UAAU,cAAc,KAAK,cAAc,KAAK,cAAc,+BAA+B,eAAe,yDAAyD,UAAU,kCAAkC,yDAAyD,kBAAkB,2BAA2B,eAAe,4CAA4C,eAAe,sBAAsB,qBAAqB,kBAAkB,+CAA+C,2BAA2B,cAAc,cAAc,kBAAkB,+BAA+B,oBAAoB,eAAe,oDAAoD,eAAe,+BAA+B,eAAe,oBAAoB,eAAe,2BAA2B,yBAAyB,eAAe,oCAAoC,eAAe,wBAAwB,kBAAkB,mBAAmB,IAAI,SAAS,oBAAoB,yEAAyE,YAAY,0CAA0C,aAAa,4GAA4G,UAAU,yBAAyB,uBAAuB,qCAAqC,aAAa,2DAA2D,eAAe,+BAA+B,SAAS,iBAAiB,6CAA6C,YAAY,+BAA+B,aAAa,2BAA2B,SAAS,mBAAmB,iEAAiE,uBAAuB,0DAA0D,wBAAwB,YAAY,kGAAkG,aAAa,iBAAiB,qBAAqB,MAAM,IAAI,gBAAgB,SAAS,UAAU,SAAS,qBAAqB,SAAS,oBAAoB,6BAA6B,UAAU,KAAK,WAAW,YAAY,WAAW,2BAA2B,SAAS,wBAAwB,WAAW,MAAM,eAAe,oBAAoB,KAAK,EAAE,EAAE,aAAa,iBAAiB,WAAW,+BAA+B,WAAW,yCAAyC,uCAAuC,sBAAsB,iBAAiB,UAAU,gBAAgB,YAAY,SAAS,YAAY,iBAAiB,YAAY,iBAAiB,2BAA2B,oBAAoB,eAAe,eAAe,uCAAuC,eAAe,gFAAgF,cAAc,+BAA+B,qBAAqB,wEAAwE,sBAAsB,cAAc,8CAA8C,aAAa,cAAc,8BAA8B,eAAe,cAAc,yBAAyB,4CAA4C,4CAA4C,aAAa,cAAc,cAAc,gCAAgC,eAAe,gDAAgD,IAAI,SAAS,aAAa,MAAM,eAAe,kBAAkB,QAAQ,mEAAmE,sBAAsB,yBAAyB,QAAQ,gDAAgD,cAAc,WAAW,2BAA2B,YAAY,gBAAgB,SAAS,yCAAyC,sBAAsB,qBAAqB,yCAAyC,oBAAoB,MAAM,cAAc,uBAAuB,iBAAiB,QAAQ,aAAa,sBAAsB,iDAAiD,gBAAgB,QAAQ,MAAM,+BAA+B,YAAY,sBAAsB,+FAA+F,+EAA+E,iBAAiB,6GAA6G,YAAY,eAAe,KAAK,eAAe,MAAM,oIAAoI,GAAG,MAAM,KAAK,IAAI,MAAM,kBAAkB,aAAa,gCAAgC,KAAK,UAAU,uBAAuB,uBAAuB,+BAA+B,QAAQ,2BAA2B,wBAAwB,YAAY,GAAG,4DAA4D,mGAAmG,SAAS,mBAAmB,iBAAiB,eAAe,MAAM,YAAY,WAAW,KAAK,aAAa,iBAAiB,qCAAqC,YAAY,KAAK,SAAS,aAAa,MAAM,6DAA6D,YAAY,SAAS,YAAY,WAAW,mDAAmD,UAAU,mBAAmB,uBAAuB,6CAA6C,YAAY,WAAW,KAAK,aAAa,kCAAkC,SAAS,eAAe,uBAAuB,QAAQ,aAAa,SAAS,kBAAkB,wBAAwB,UAAU,MAAM,8FAA8F,qBAAqB,0BAA0B,uBAAuB,aAAa,iBAAiB,MAAM,qDAAqD,MAAM,cAAc,YAAY,WAAW,KAAK,aAAa,wBAAwB,uBAAuB,aAAa,YAAY,uBAAuB,kBAAkB,kBAAkB,oDAAoD,uDAAuD,SAAS,sBAAsB,wCAAwC,oBAAoB,MAAM,SAAS,+BAA+B,YAAY,KAAK,sBAAsB,wBAAwB,+FAA+F,6BAA6B,oBAAoB,WAAW,KAAK,gBAAgB,gBAAgB,4BAA4B,aAAa,UAAU,gCAAgC,OAAO,GAAG,MAAM,+CAA+C,4DAA4D,uBAAuB,eAAe,iBAAiB,eAAe,oDAAoD,iBAAiB,iBAAiB,qBAAqB,iBAAiB,SAAS,uBAAuB,IAAI,2BAA2B,iCAAiC,SAAS,2BAA2B,MAAM,qDAAqD,wBAAwB,WAAW,oBAAoB,uBAAuB,EAAE,mCAAmC,4IAA4I,mBAAmB,iBAAiB,iBAAiB,iDAAiD,SAAS,aAAa,8JAA8J,kDAAkD,SAAS,UAAU,cAAc,YAAY,wBAAwB,YAAY,iBAAiB,aAAa,kBAAkB,YAAY,6DAA6D,UAAU,MAAM,0EAA0E,4BAA4B,eAAe,SAAS,aAAa,0CAA0C,EAAE,qEAAqE,wBAAwB,mBAAmB,mBAAmB,oDAAoD,yBAAyB,4BAA4B,gCAAgC,yBAAyB,WAAW,eAAe,kCAAkC,QAAQ,GAAG,iCAAiC,SAAS,iCAAiC,sBAAsB,+BAA+B,QAAQ,KAAK,EAAE,EAAE,0BAA0B,WAAW,IAAI,EAAE,gBAAgB,eAAe,KAAK,YAAY,6CAA6C,qBAAqB,qBAAqB,SAAS,UAAU,KAAK,gGAAgG,eAAe,iBAAiB,WAAW,WAAW,MAAM,gBAAgB,yBAAyB,iBAAiB,6BAA6B,eAAe,kBAAkB,kBAAkB,aAAa,uBAAuB,iBAAiB,cAAc,aAAa,YAAY,cAAc,uBAAuB,iBAAiB,sBAAsB,uCAAuC,YAAY,WAAW,KAAK,oBAAoB,UAAU,oBAAoB,UAAU,2DAA2D,EAAE,SAAS,qBAAqB,2BAA2B,YAAY,WAAW,KAAK,aAAa,2BAA2B,iBAAiB,2BAA2B,cAAc,OAAO,iBAAiB,gDAAgD,yBAAyB,0DAA0D,wBAAwB,cAAc,+BAA+B,SAAS,iBAAiB,0BAA0B,wBAAwB,uBAAuB,SAAS,eAAe,mFAAmF,gBAAgB,gBAAgB,kVAAkV,OAAO,gBAAgB,sHAAsH,WAAW,gDAAgD,qCAAqC,UAAU,UAAU,6BAA6B,kBAAkB,8EAA8E,gBAAgB,mEAAmE,MAAM,0FAA0F,MAAM,QAAQ,kCAAkC,uBAAuB,sFAAsF,aAAa,yBAAyB,wBAAwB,eAAe,aAAa,WAAW,wBAAwB,6BAA6B,eAAe,qBAAqB,4IAA4I,MAAM,mMAAmM,8CAA8C,0FAA0F,MAAM,yBAAyB,GAAG,UAAU,mBAAmB,MAAM,mBAAmB,MAAM,4BAA4B,MAAM,2BAA2B,MAAM,mGAAmG,+BAA+B,eAAe,qCAAqC,KAAK,kBAAkB,0CAA0C,eAAe,gDAAgD,eAAe,oCAAoC,KAAK,cAAc,QAAQ,MAAM,KAAK,SAAS,qBAAqB,SAAS,KAAK,cAAc,IAAI,MAAM,KAAK,SAAS,iBAAiB,KAAK,uBAAuB,4DAA4D,qBAAqB,QAAQ,MAAM,qEAAqE,GAAG,2CAA2C,KAAK,4JAA4J,4DAA4D,oCAAoC,WAAW,2DAA2D,sBAAsB,kDAAkD,sBAAsB,iCAAiC,mDAAmD,uEAAuE,qDAAqD,KAAK,eAAe,gBAAgB,yBAAyB,4EAA4E,yBAAyB,YAAY,WAAW,KAAK,iCAAiC,uBAAuB,mBAAmB,kBAAkB,IAAI,qCAAqC,GAAG,kBAAkB,gCAAgC,MAAM,2EAA2E,yBAAyB,qGAAqG,uBAAuB,YAAY,WAAW,KAAK,2BAA2B,oDAAoD,8CAA8C,kCAAkC,oCAAoC,4FAA4F,sCAAsC,KAAK,mBAAmB,YAAY,WAAW,KAAK,qFAAqF,wBAAwB,qBAAqB,UAAU,kBAAkB,iBAAiB,oBAAoB,mDAAmD,8EAA8E,uBAAuB,sDAAsD,IAAI,8BAA8B,GAAG,+KAA+K,uBAAuB,4EAA4E,qBAAqB,oCAAoC,sDAAsD,inBAAinB,OAAO,IAAI,gEAAgE,SAAS,QAAQ,+CAA+C,KAAK,MAAM,+BAA+B,eAAe,qBAAqB,yBAAyB,YAAY,wCAAwC,EAAE,eAAe,YAAY,gBAAgB,OAAO,wBAAwB,eAAe,8DAA8D,MAAM,QAAQ,GAAG,MAAM,8CAA8C,YAAY,iBAAiB,OAAO,kDAAkD,SAAS,UAAU,8BAA8B,sBAAsB,wBAAwB,QAAQ,GAAG,aAAa,aAAa,WAAW,aAAa,MAAM,gBAAgB,gCAAgC,yBAAyB,eAAe,sBAAsB,aAAa,gCAAgC,mBAAmB,MAAM,+BAA+B,IAAI,+BAA+B,oBAAoB,iCAAiC,0EAA0E,mBAAmB,+BAA+B,QAAQ,uBAAuB,YAAY,WAAW,KAAK,aAAa,mCAAmC,SAAS,SAAS,qDAAqD,qBAAqB,sBAAsB,qBAAqB,sBAAsB,iDAAiD,qBAAqB,uBAAuB,gBAAgB,OAAO,iCAAiC,OAAO,yFAAyF,0BAA0B,qEAAqE,iBAAiB,IAAI,KAAK,iBAAiB,6BAA6B,kEAAkE,YAAY,2BAA2B,KAAK,MAAM,MAAM,aAAa,IAAI,kBAAkB,GAAG,+CAA+C,wBAAwB,kGAAkG,UAAU,KAAK,MAAM,IAAI,GAAG,4CAA4C,MAAM,aAAa,cAAc,sBAAsB,wCAAwC,MAAM,uBAAuB,aAAa,8BAA8B,oBAAoB,MAAM,YAAY,mIAAmI,iDAAiD,aAAa,6BAA6B,YAAY,WAAW,KAAK,oBAAoB,sBAAsB,KAAK,aAAa,mBAAmB,aAAa,qBAAqB,yBAAyB,MAAM,gBAAgB,GAAG,aAAa,mBAAmB,YAAY,+CAA+C,oBAAoB,UAAU,EAAE,iDAAiD,oCAAoC,0BAA0B,sDAAsD,wBAAwB,GAAG,QAAQ,wCAAwC,wCAAwC,oHAAoH,uBAAuB,OAAO,mDAAmD,MAAM,QAAQ,IAAI,KAAK,iCAAiC,yBAAyB,yCAAyC,uBAAuB,QAAQ,iBAAiB,uBAAuB,KAAK,WAAW,EAAE,wCAAwC,kBAAkB,0BAA0B,KAAK,WAAW,EAAE,wCAAwC,kBAAkB,8BAA8B,QAAQ,SAAS,4BAA4B,KAAK,KAAK,iDAAiD,iBAAiB,KAAK,oBAAoB,KAAK,wBAAwB,QAAQ,KAAK,KAAK,iCAAiC,4BAA4B,UAAU,cAAc,aAAa,qBAAqB,QAAQ,IAAI,WAAW,QAAQ,KAAK,KAAK,aAAa,SAAS,YAAY,SAAS,MAAM,8BAA8B,aAAa,KAAK,+BAA+B,IAAI,MAAM,+EAA+E,sBAAsB,wBAAwB,cAAc,iBAAiB,QAAQ,IAAI,KAAK,aAAa,UAAU,2BAA2B,iBAAiB,SAAS,qBAAqB,IAAI,iCAAiC,wCAAwC,oBAAoB,KAAK,OAAO,eAAe,SAAS,MAAM,uBAAuB,KAAK,KAAK,uCAAuC,iEAAiE,sBAAsB,MAAM,gDAAgD,GAAG,gDAAgD,4CAA4C,qCAAqC,WAAW,SAAS,YAAY,WAAW,kBAAkB,4BAA4B,+BAA+B,2EAA2E,KAAK,MAAM,kCAAkC,yBAAyB,UAAU,WAAW,IAAI,eAAe,cAAc,uBAAuB,MAAM,iFAAiF,GAAG,oEAAoE,eAAe,MAAM,oEAAoE,KAAK,6CAA6C,2KAA2K,yCAAyC,yCAAyC,KAAK,QAAQ,MAAM,kCAAkC,GAAG,8BAA8B,2BAA2B,aAAa,oDAAoD,mCAAmC,MAAM,qBAAqB,gBAAgB,kBAAkB,SAAS,YAAY,MAAM,KAAK,MAAM,iBAAiB,KAAK,cAAc,MAAM,wCAAwC,GAAG,yBAAyB,WAAW,YAAY,yCAAyC,iBAAiB,4JAA4J,4BAA4B,YAAY,WAAW,oBAAoB,4GAA4G,iFAAiF,KAAK,iDAAiD,UAAU,mBAAmB,OAAO,0CAA0C,IAAI,0BAA0B,gBAAgB,sBAAsB,gCAAgC,0BAA0B,WAAW,KAAK,aAAa,WAAW,iHAAiH,6CAA6C,eAAe,0BAA0B,eAAe,MAAM,eAAe,qBAAqB,wBAAwB,8BAA8B,8CAA8C,gDAAgD,oBAAoB,kBAAkB,iBAAiB,sCAAsC,oFAAoF,YAAY,kBAAkB,sBAAsB,cAAc,kCAAkC,uBAAuB,yBAAyB,qDAAqD,eAAe,8BAA8B,iBAAiB,sCAAsC,4BAA4B,MAAM,uBAAuB,MAAM,8BAA8B,SAAS,qDAAqD,kBAAkB,UAAU,mBAAmB,oBAAoB,2CAA2C,MAAM,MAAM,yBAAyB,KAAK,IAAI,gBAAgB,GAAG,qDAAqD,mBAAmB,uFAAuF,kUAAkU,kBAAkB,MAAM,qBAAqB,aAAa,MAAM,uBAAuB,GAAG,QAAQ,qEAAqE,sBAAsB,IAAI,6BAA6B,uCAAuC,UAAU,sBAAsB,MAAM,0BAA0B,sBAAsB,YAAY,OAAO,YAAY,WAAW,KAAK,aAAa,kFAAkF,iDAAiD,cAAc,oBAAoB,oCAAoC,wBAAwB,SAAS,MAAM,MAAM,OAAO,+iBAA+iB,uBAAuB,uBAAuB,uBAAuB,4CAA4C,eAAe,2HAA2H,eAAe,2BAA2B,iBAAiB,QAAQ,MAAM,YAAY,GAAG,kBAAkB,kBAAkB,4BAA4B,cAAc,kBAAkB,sDAAsD,KAAK,YAAY,2FAA2F,cAAc,kBAAkB,+CAA+C,4BAA4B,sBAAsB,eAAe,MAAM,yFAAyF,yBAAyB,4CAA4C,UAAU,qCAAqC,MAAM,2SAA2S,2CAA2C,4JAA4J,WAAW,KAAK,aAAa,WAAW,uBAAuB,aAAa,gDAAgD,uBAAuB,aAAa,uBAAuB,yFAAyF,mBAAmB,oFAAoF,EAAE,2BAA2B,+DAA+D,EAAE,MAAM,6CAA6C,gCAAgC,6CAA6C,yBAAyB,gCAAgC,eAAe,OAAO,kBAAkB,sCAAsC,gDAAgD,SAAS,GAAG,4CAA4C,6DAA6D,gKAAgK,aAAa,2BAA2B,aAAa,uGAAuG,mCAAmC,GAAG,eAAe,mBAAmB,iCAAiC,MAAM,GAAG,8BAA8B,uBAAuB,YAAY,MAAM,mBAAmB,GAAG,8BAA8B,aAAa,2BAA2B,qBAAqB,+BAA+B,aAAa,2BAA2B,qBAAqB,YAAY,WAAW,KAAK,oBAAoB,eAAe,gBAAgB,4BAA4B,uBAAuB,YAAY,WAAW,wBAAwB,mBAAmB,oBAAoB,4CAA4C,qBAAqB,sCAAsC,qBAAqB,WAAW,QAAQ,YAAY,cAAc,cAAc,UAAU,eAAe,SAAS,aAAa,cAAc,6BAA6B,iDAAiD,KAAK,oDAAoD,iBAAiB,mBAAmB,mDAAmD,mBAAmB,GAAG,0CAA0C,oEAAoE,wEAAwE,iOAAiO,gBAAgB,8BAA8B,GAAG,cAAc,4BAA4B,8BAA8B,WAAW,wDAAwD,qHAAqH,MAAM,KAAK,IAAI,IAAI,MAAM,oEAAoE,GAAG,2BAA2B,MAAM,eAAe,aAAa,wBAAwB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,KAAK,oCAAoC,oCAAoC,oDAAoD,oCAAoC,mCAAmC,cAAc,QAAQ,oJAAoJ,MAAM,IAAI,MAAM,MAAM,0BAA0B,GAAG,wBAAwB,6BAA6B,8BAA8B,mDAAmD,MAAM,GAAG,qEAAqE,IAAI,MAAM,uHAAuH,QAAQ,KAAK,SAAS,+CAA+C,8BAA8B,UAAU,SAAS,YAAY,aAAa,MAAM,UAAU,mBAAmB,oGAAoG,iBAAiB,eAAe,uIAAuI,oBAAoB,uCAAuC,eAAe,oBAAoB,QAAQ,iEAAiE,IAAI,sBAAsB,iBAAiB,MAAM,eAAe,sBAAsB,uBAAuB,IAAI,mBAAmB,4BAA4B,eAAe,YAAY,IAAI,kBAAkB,qDAAqD,KAAK,uBAAuB,sBAAsB,uBAAuB,IAAI,KAAK,aAAa,kBAAkB,UAAU,SAAS,+FAA+F,UAAU,UAAU,iBAAiB,0BAA0B,YAAY,qBAAqB,oBAAoB,yEAAyE,KAAK,iGAAiG,cAAc,wBAAwB,gBAAgB,8GAA8G,qBAAqB,2DAA2D,iFAAiF,cAAc,qBAAqB,YAAY,KAAK,EAAE,qCAAqC,cAAc,0BAA0B,mBAAmB,kCAAkC,8CAA8C,KAAK,sBAAsB,cAAc,cAAc,WAAW,uCAAuC,OAAO,YAAY,YAAY,KAAK,gBAAgB,yBAAyB,SAAS,MAAM,oEAAoE,qCAAqC,wCAAwC,gBAAgB,uGAAuG,SAAS,mCAAmC,MAAM,4BAA4B,0BAA0B,SAAS,kBAAkB,KAAK,uBAAuB,MAAM,eAAe,MAAM,SAAS,cAAc,4DAA4D,mCAAmC,IAAI,MAAM,mBAAmB,0BAA0B,wBAAwB,YAAY,oDAAoD,SAAS,mCAAmC,uCAAuC,wBAAwB,kCAAkC,SAAS,sBAAsB,gEAAgE,SAAS,4BAA4B,6BAA6B,wBAAwB,qCAAqC,oBAAoB,UAAU,eAAe,QAAQ,EAAE,aAAa,EAAE,iFAAiF,YAAY,QAAQ,EAAE,aAAa,EAAE,iBAAiB,YAAY,mBAAmB,EAAE,aAAa,EAAE,kEAAkE,SAAS,WAAW,kBAAkB,QAAQ,EAAE,UAAU,iBAAiB,gCAAgC,YAAY,mCAAmC,UAAU,6BAA6B,+CAA+C,KAAK,eAAe,oDAAoD,QAAQ,MAAM,6BAA6B,gBAAgB,kCAAkC,KAAK,8BAA8B,oDAAoD,gCAAgC,QAAQ,MAAM,mDAAmD,yDAAyD,8CAA8C,2CAA2C,4CAA4C,6BAA6B,cAAc,kCAAkC,iFAAiF,wCAAwC,oBAAoB,oBAAoB,8CAA8C,kEAAkE,wDAAwD,IAAI,OAAO,WAAW,KAAK,WAAW,qBAAqB,0BAA0B,wGAAwG,0GAA0G,KAAK,aAAa,kEAAkE,YAAY,mCAAmC,KAAK,OAAO,cAAc,uBAAuB,kBAAkB,8BAA8B,QAAQ,GAAG,mBAAmB,oBAAoB,SAAS,iCAAiC,SAAS,IAAI,aAAa,qBAAqB,oEAAoE,aAAa,sEAAsE,IAAI,kEAAkE,QAAQ,OAAO,MAAM,wCAAwC,OAAO,2BAA2B,UAAU,aAAa,KAAK,YAAY,KAAK,wBAAwB,eAAe,cAAc,YAAY,gCAAgC,6GAA6G,4CAA4C,QAAQ,OAAO,MAAM,2CAA2C,OAAO,2BAA2B,UAAU,gBAAgB,KAAK,YAAY,KAAK,wBAAwB,KAAK,eAAe,gCAAgC,oIAAoI,+CAA+C,QAAQ,OAAO,MAAM,0CAA0C,OAAO,2BAA2B,UAAU,eAAe,KAAK,YAAY,KAAK,wBAAwB,KAAK,eAAe,gCAAgC,oIAAoI,8CAA8C,QAAQ,OAAO,MAAM,0CAA0C,OAAO,2BAA2B,UAAU,eAAe,KAAK,YAAY,KAAK,wBAAwB,eAAe,eAAe,aAAa,cAAc,eAAe,eAAe,SAAS,gCAAgC,0IAA0I,8CAA8C,iBAAiB,eAAe,wDAAwD,EAAE,+BAA+B,6BAA6B,6BAA6B,sBAAsB,6BAA6B,2BAA2B,6BAA6B,4CAA4C,GAAG,aAAa,GAAG,wEAAwE,qFAAqF,QAAQ,4BAA4B,MAAM,2FAA2F,OAAO,yCAAyC,OAAO,wBAAwB,iBAAiB,wBAAwB,eAAe,wBAAwB,4BAA4B,0BAA0B,UAAU,2BAA2B,UAAU,MAAM,sEAAsE,6DAA6D,uBAAuB,2FAA2F,gBAAgB,UAAU,cAAc,KAAK,oBAAoB,KAAK,qBAAqB,gCAAgC,sBAAsB,qCAAqC,kFAAkF,wCAAwC,4EAA4E,wCAAwC,kFAAkF,sCAAsC,8EAA8E,gFAAgF,gFAAgF,kFAAkF,MAAM,iFAAiF,iLAAiL,qJAAqJ,MAAM,iFAAiF,sMAAsM,0IAA0I,6CAA6C,QAAQ,6BAA6B,MAAM,2FAA2F,OAAO,0CAA0C,OAAO,wBAAwB,iBAAiB,wBAAwB,eAAe,wBAAwB,4BAA4B,0BAA0B,UAAU,2BAA2B,UAAU,MAAM,sEAAsE,6DAA6D,uBAAuB,2FAA2F,gBAAgB,UAAU,eAAe,KAAK,oBAAoB,KAAK,qBAAqB,gCAAgC,sBAAsB,qCAAqC,kFAAkF,wCAAwC,4EAA4E,wCAAwC,kFAAkF,sCAAsC,gFAAgF,sBAAsB,IAAI,gCAAgC,MAAM,iFAAiF,+LAA+L,4MAA4M,oNAAoN,gJAAgJ,8CAA8C,UAAU,sBAAsB,MAAM,2FAA2F,OAAO,kIAAkI,OAAO,wBAAwB,iBAAiB,wBAAwB,eAAe,wBAAwB,4BAA4B,0BAA0B,UAAU,2BAA2B,aAAa,kBAAkB,cAAc,sGAAsG,kFAAkF,8IAA8I,oDAAoD,8BAA8B,2EAA2E,8BAA8B,0EAA0E,8BAA8B,0EAA0E,8BAA8B,yEAAyE,oLAAoL,yJAAyJ,oLAAoL,uHAAuH,wCAAwC,wBAAwB,8DAA8D,EAAE,gBAAgB,IAAI,gOAAgO,kBAAkB,iBAAiB,uGAAuG,YAA+C;;;;;;;;;;;;ACA7xpD,IAAMA,cAAc,GAAG;AACnBC,MAAI,EAAE,eADa;AAEnBC,OAAK,EAAE,gBAFY;AAGnBC,KAAG,EAAE,cAHc;AAInBC,YAAU,EAAE,qBAJO;AAKnBC,UAAQ,EAAE,mBALS;AAMnBC,UAAQ,EAAE,mBANS;AAOnBC,SAAO,EAAE,kBAPU;AAQnBC,SAAO,EAAE,kBARU;AASnBC,SAAO,EAAE,kBATU;AAUnBC,aAAW,EAAE,sBAVM;AAWnBC,OAAK,EAAE,gBAXY;AAYnBC,OAAK,EAAE,gBAZY;AAanBC,UAAQ,EAAE,mBAbS;AAcnBC,WAAS,EAAE,oBAdQ;AAenBC,UAAQ,EAAE,mBAfS;AAgBnBC,UAAQ,EAAE,mBAhBS;AAiBnBC,QAAM,EAAE,iBAjBW;AAkBnBC,UAAQ,EAAE,mBAlBS;AAmBnBC,WAAS,EAAE,oBAnBQ;AAoBnBC,MAAI,EAAE,eApBa;AAqBnBC,SAAO,EAAE,kBArBU;AAuBnB;AACAC,OAAK,EAAE,eAxBY;AAyBnBC,OAAK,EAAE,eAzBY;AA0BnBC,WAAS,EAAE,gBA1BQ;AA2BnBC,YAAU,EAAE;AA3BO,CAAvB;AA8BA,IAAMC,UAAU,GAAG;AACfC,MAAI,EAAE,WADS;AAEfC,KAAG,EAAE,UAFU;AAGfC,KAAG,EAAE,UAHU;AAIfC,SAAO,EAAE,cAJM;AAKfC,OAAK,EAAE,YALQ;AAMfC,KAAG,EAAE,UANU;AAOfC,MAAI,EAAE,WAPS;AAQfC,SAAO,EAAE,cARM;AASfC,OAAK,EAAE,YATQ;AAUfC,OAAK,EAAE,YAVQ;AAWfC,QAAM,EAAE,aAXO;AAYfhC,UAAQ,EAAE,eAZK;AAafiC,QAAM,EAAE,aAbO;AAcfC,SAAO,EAAE,cAdM;AAefC,aAAW,EAAE,kBAfE;AAgBfC,eAAa,EAAE,oBAhBA;AAiBfC,OAAK,EAAE,YAjBQ;AAkBfC,SAAO,EAAE,cAlBM;AAmBfC,cAAY,EAAE,mBAnBC;AAoBfC,YAAU,EAAE,iBApBG;AAqBfC,UAAQ,EAAE,eArBK;AAsBfC,QAAM,EAAE;AAtBO,CAAnB;AAwBA,IAAMC,iBAAiB,GAAG;AAEtBC,QAAM,EAAE,iBAFc;AAGtBC,OAAK,EAAE,gBAHe;AAItBC,OAAK,EAAE,gBAJe;AAKtBC,UAAQ,EAAE,mBALY;AAMtBC,YAAU,EAAE,qBANU;AAQtB;AACAC,SAAO,EAAE,iBATa;AAUtBC,SAAO,EAAE,iBAVa;AAWtBC,SAAO,EAAE;AAXa,CAA1B;AAaA,IAAMC,aAAa,GAAG;AAClBC,OAAK,EAAE,YADW;AAElBC,QAAM,EAAE,aAFU;AAGlBC,WAAS,EAAE,gBAHO;AAIlBC,SAAO,EAAE,cAJS;AAKlBC,YAAU,EAAE,iBALM;AAMlBC,SAAO,EAAE,cANS;AAOlBC,OAAK,EAAE,YAPW;AASlBC,WAAS,EAAE,gBATO;AAUlBC,SAAO,EAAE,cAVS;AAWlBC,QAAM,EAAE,aAXU;AAYlBC,SAAO,EAAE;AAZS,CAAtB;AAeA,IAAMC,sBAAsB,GAAG,EAA/B;AACA,IAAMC,kBAAkB,GAAG,EAA3B;AACA,IAAMC,qBAAqB,GAAG,EAA9B;AACA,IAAMC,yBAAyB,GAAG,EAAlC;AAEA,IAAMC,qBAAqB,GAAG;AAC1B,iBAAe,KADW;AAE1B,oBAAkB;AAFQ,CAA9B,C,CAKA;AACA;;AACA,IAAMC,OAAO,GAAG,CAAC,UAAD,EAAa,UAAb,EAAyB,WAAzB,CAAhB;AACA,IAAMC,mBAAmB,aAClBD,OADkB,GACT,MADS,EACD,aADC,EAErB,MAFqB,CAEb;AAFa,EAAzB,C,CAKA;;AACA,IAAME,oBAAoB,GAAG,CACzB,OADyB,EAChB,OADgB,EACP,WADO,EACM,YADN,EAEzB,SAFyB,EAEd,SAFc,EAEH,SAFG,CAA7B;;AAKA,SAASC,gBAAT,CAA0B7C,GAA1B,EAA+B8C,UAA/B,EAA2C;AACvCC,QAAM,CAACC,IAAP,CAAYhD,GAAZ,EAAiBiD,OAAjB,CAAyB,UAAAC,GAAG,EAAI;AAC5B;AACA,QAAIN,oBAAoB,CAACO,QAArB,CAA8BD,GAA9B,CAAJ,EAAwC;AACpC;AACH;;AACDJ,cAAU,CAAC9C,GAAG,CAACkD,GAAD,CAAJ,CAAV,GAAuBA,GAAvB;AACH,GAND;AAOH;;AAEDL,gBAAgB,CAAC7E,cAAD,EAAiBqE,sBAAjB,CAAhB;AACAQ,gBAAgB,CAACnD,UAAD,EAAa4C,kBAAb,CAAhB;AACAO,gBAAgB,CAAC7B,iBAAD,EAAoBwB,yBAApB,CAAhB;AACAK,gBAAgB,CAACpB,aAAD,EAAgBc,qBAAhB,CAAhB;;AAEAa,0BAAA,GAA6B,SAASC,WAAT,CAAqBC,MAArB,EAA6B;AACtD,MAAIC,IAAI,GAAG,EAAX;;AACA,MAAID,MAAM,CAACE,OAAX,EAAoB;AAEhB;AACAF,UAAM,CAACE,OAAP,CAAeP,OAAf,CAAuB,UAACQ,GAAD,EAAS;AAC5BF,UAAI,GAAGA,IAAI,CAACG,MAAL,CAAYL,WAAW,CAACI,GAAD,CAAvB,CAAP;AACH,KAFD;;AAIA,QAAIH,MAAM,CAACK,UAAX,EAAuB;AACnBJ,UAAI,GAAGA,IAAI,CAACG,MAAL,CAAYL,WAAW,CAACC,MAAM,CAACK,UAAR,CAAvB,CAAP;AACH,KATe,CAWhB;;;AACA,WAAOC,KAAK,CAACC,IAAN,CAAW,IAAIC,GAAJ,CAAQP,IAAR,CAAX,CAAP;AACH;;AAEDR,QAAM,CAACC,IAAP,CAAYM,MAAZ,EAAoBL,OAApB,CAA4B,UAACC,GAAD,EAAS;AACjC,QAAIP,mBAAmB,CAACQ,QAApB,CAA6BD,GAA7B,CAAJ,EAAuC;AACnC;AACH;;AACD,QAAMa,GAAG,GAAGT,MAAM,CAACJ,GAAD,CAAlB;;AAEA,QAAIU,KAAK,CAACI,OAAN,CAAcD,GAAd,KAAsB,CAACA,GAAG,CAACE,MAA/B,EAAuC;AACnC;AACH;;AAED,QAAIjG,cAAc,CAACkF,GAAD,CAAlB,EAAyB;AACrBK,UAAI,CAACW,IAAL,CAAUlG,cAAc,CAACkF,GAAD,CAAxB;AACH;;AACD,QAAIlC,iBAAiB,CAACkC,GAAD,CAArB,EAA4B;AACxBK,UAAI,CAACW,IAAL,CAAUlD,iBAAiB,CAACkC,GAAD,CAA3B;AACH;AACJ,GAhBD;AAkBA,MAAIiB,MAAM,GAAGb,MAAM,CAACa,MAApB;;AACA,MAAI,CAACP,KAAK,CAACI,OAAN,CAAcG,MAAd,CAAL,EAA4B;AACxBA,UAAM,GAAG,CAACA,MAAD,CAAT;AACH;;AAEDA,QAAM,CAAClB,OAAP,CAAe,UAACmB,SAAD,EAAe;AAC1B,QAAI1E,UAAU,CAAC0E,SAAS,CAACC,IAAX,CAAd,EAAgC;AAC5Bd,UAAI,CAACW,IAAL,CAAUxE,UAAU,CAAC0E,SAAS,CAACC,IAAX,CAApB;AACH;;AACD,QAAI5C,aAAa,CAAC2C,SAAS,CAACC,IAAX,CAAjB,EAAmC;AAC/Bd,UAAI,CAACW,IAAL,CAAUzC,aAAa,CAAC2C,SAAS,CAACC,IAAX,CAAvB;AACH;;AACD,QAAID,SAAS,CAACC,IAAV,KAAmB,KAAvB,EAA8B;AAC1B;AACAd,UAAI,CAACW,IAAL,CAAUlG,cAAc,CAACG,GAAzB;AACH;;AACDuE,WAAO,CAACO,OAAR,CAAgB,UAAAqB,UAAU,EAAI;AAC1B,UAAIF,SAAS,CAACE,UAAD,CAAb,EAA2B;AACvBf,YAAI,CAACW,IAAL,CAAUlG,cAAc,CAACsG,UAAD,CAAxB;AACH;AACJ,KAJD;AAKH,GAhBD,EAxCsD,CA0DtD;;AACA,SAAOV,KAAK,CAACC,IAAN,CAAW,IAAIC,GAAJ,CAAQP,IAAR,CAAX,CAAP;AACH,CA5DD;;AA8DA,SAASgB,sBAAT,CAAgChB,IAAhC,EAAsCiB,WAAtC,EAAmD;AAC/C,MAAMC,aAAa,GAAG,EAAtB;AACA,MAAMC,iBAAiB,GAAG,EAA1B;AACA,MAAMC,eAAe,GAAG,EAAxB;AACA,MAAMC,mBAAmB,GAAG,EAA5B;AACA,MAAMC,gBAAgB,GAAG,EAAzB;AACAtB,MAAI,CAACN,OAAL,CAAa,UAAU6B,GAAV,EAAe;AACxB,QAAIA,GAAG,CAACC,QAAJ,CAAa,UAAb,CAAJ,EAA8B;AAC1BF,sBAAgB,CAACX,IAAjB,CAAsBY,GAAtB;AACH,KAFD,MAGK,IAAIxC,kBAAkB,CAACwC,GAAD,CAAtB,EAA6B;AAC9BL,mBAAa,CAACP,IAAd,CAAmBY,GAAnB;;AACA,UAAIN,WAAJ,EAAiB;AACbC,qBAAa,CAACP,IAAd,CAAmBY,GAAG,CAACE,OAAJ,CAAY,QAAZ,EAAsB,cAAtB,CAAnB;AACH;AACJ,KALI,MAMA,IAAI3C,sBAAsB,CAACyC,GAAD,CAA1B,EAAiC;AAClCJ,uBAAiB,CAACR,IAAlB,CAAuBY,GAAvB;;AACA,UAAIN,WAAJ,EAAiB;AACbE,yBAAiB,CAACR,IAAlB,CAAuBY,GAAG,CAACE,OAAJ,CAAY,YAAZ,EAA0B,iBAA1B,CAAvB;AACH;AACJ,KALI,MAMA,IAAIzC,qBAAqB,CAACuC,GAAD,CAAzB,EAAgC;AACjCH,qBAAe,CAACT,IAAhB,CAAqBY,GAArB;AACH,KAFI,MAGA,IAAItC,yBAAyB,CAACsC,GAAD,CAA7B,EAAoC;AACrCF,yBAAmB,CAACV,IAApB,CAAyBY,GAAzB;AACH;AACJ,GAtBD;;AAwBA,WAASG,kBAAT,CAA4BC,OAA5B,EAAqC;AACjC,qBAAUA,OAAO,CAAClF,GAAR,CAAY,UAAAmF,GAAG;AAAA,6BAC3BA,GAD2B;AAAA,KAAf,EACLC,IADK,CACA,GADA,CAAV;AAEH;;AAED,MAAMC,UAAU,aACTX,iBADS,EAETD,aAFS,EAGTG,mBAHS,EAITD,eAJS,EAKTE,gBALS,CAAhB;AAQA,MAAMS,gBAAgB,2DAEpBD,UAAU,CAACE,MAAX,CAAkB,UAAAC,CAAC;AAAA,WAAIA,CAAC,CAACT,QAAF,CAAW,QAAX,CAAJ;AAAA,GAAnB,EAA6CK,IAA7C,CAAkD,KAAlD,CAFoB,QAAtB;AAIA,MAAMK,YAAY,GAAG,CACjB,CAACf,iBAAD,EAAoB,oBAApB,CADiB,EAEjB,CAACD,aAAD,EAAgB,gBAAhB,CAFiB,EAGjB,CAACI,gBAAD,EAAmB,mBAAnB,CAHiB,EAIjB,CAACF,eAAD,EAAkB,mBAAlB,CAJiB,EAKjB,CAACC,mBAAD,EAAsB,uBAAtB,CALiB,EAMnBW,MANmB,CAMZ,UAAAC,CAAC;AAAA,WAAIA,CAAC,CAAC,CAAD,CAAD,CAAKvB,MAAL,GAAc,CAAlB;AAAA,GANW,EAMUjE,GANV,CAMc,UAAA0F,IAAI;AAAA,WAAI,oBACrCT,kBAAkB,CAACS,IAAI,CAAC,CAAD,CAAL,CADmB,uBAErCA,IAAI,CAAC,CAAD,CAFiC,cAGzCC,IAHyC,EAAJ;AAAA,GANlB,EASXP,IATW,CASN,IATM,CAArB;AAWA,SAAO,oDACTK,YADS,oCAIJJ,UAAU,CAACE,MAAX,CAAkB,UAAAC,CAAC;AAAA,WAAI,CAACA,CAAC,CAACT,QAAF,CAAW,QAAX,CAAL;AAAA,GAAnB,EAA8CK,IAA9C,CAAmD,IAAnD,CAJI,gBAMNZ,WAAW,GAAGc,gBAAH,GAAsB,EAN3B,CAAP;AAOH;;AAEDlC,qCAAA,GAAwCmB,sBAAxC;;AAEA,SAASqB,4BAAT,CAAsCrC,IAAtC,EAA4CsC,KAA5C,EAAmD;AAC/C,MAAMC,OAAO,GAAG,EAAhB;AACAvC,MAAI,CAACN,OAAL,CAAa,UAAU6B,GAAV,EAAe;AACxB,QAAIA,GAAG,CAACC,QAAJ,CAAa,UAAb,KAA4BD,GAAG,KAAK,gBAAxC,EAA0D;AACtDgB,aAAO,CAAC5B,IAAR,uBAA4BzB,qBAAqB,CAACqC,GAAD,CAAjD,cAA0DrC,qBAAqB,CAACqC,GAAD,CAA/E;AACH,KAFD,MAGK,IAAIxC,kBAAkB,CAACwC,GAAD,CAAtB,EAA6B;AAC9BgB,aAAO,CAAC5B,IAAR,6BAAkC5B,kBAAkB,CAACwC,GAAD,CAApD;AACH,KAFI,MAGA,IAAIzC,sBAAsB,CAACyC,GAAD,CAA1B,EAAiC;AAClCgB,aAAO,CAAC5B,IAAR,iCAAsC7B,sBAAsB,CAACyC,GAAD,CAA5D;AACH,KAFI,MAGA,IAAIvC,qBAAqB,CAACuC,GAAD,CAAzB,EAAgC;AACjCgB,aAAO,CAAC5B,IAAR,gCAAqC3B,qBAAqB,CAACuC,GAAD,CAA1D;AACH,KAFI,MAGA,IAAItC,yBAAyB,CAACsC,GAAD,CAA7B,EAAoC;AACrCgB,aAAO,CAAC5B,IAAR,oCAAyC1B,yBAAyB,CAACsC,GAAD,CAAlE;AACH;AACJ,GAhBD;AAkBA,SAAOe,KAAK,8DACdC,OAAO,CAAC9F,GAAR,CAAY,UAAA+F,GAAG,EAAI;AACjB,6BAAkBA,GAAlB;AACH,GAFC,EAECX,IAFD,CAEM,IAFN,CADc,qEAKdU,OAAO,CAAC9F,GAAR,CAAY,UAAA+F,GAAG,EAAI;AACjB,8BAAmBA,GAAnB;AACH,GAFC,EAECX,IAFD,CAEM,IAFN,CALc,OAAZ;AASH;;AAED,SAASY,WAAT,CAAqBzC,IAArB,EAA2B;AACvB,SAAO,CAAC,CAACA,IAAI,CAAC0C,IAAL,CAAU,UAAAnB,GAAG;AAAA,WAAI,CAAC,EAAEvC,qBAAqB,CAACuC,GAAD,CAArB,IAA8BtC,yBAAyB,CAACsC,GAAD,CAAzD,CAAL;AAAA,GAAb,CAAT;AACH;;AAED1B,MAAM,CAACwC,4BAAP,GAAsCA,4BAAtC;;AAEAxC,+BAAA,GAAkC,UAC9B8C,MAD8B,EACtB3C,IADsB,QAqBhC;AAAA,MAlBM4C,OAkBN,QAlBMA,OAkBN;AAAA,sBAfMC,GAeN;AAAA,MAfMA,GAeN,yBAfY,IAeZ;AAAA,MAXMC,MAWN,QAXMA,MAWN;AAAA,MATMC,EASN,QATMA,EASN;AAAA,MAPMC,KAON,QAPMA,KAON;AAAA,MANMC,SAMN,QANMA,SAMN;AAAA,MAFMC,YAEN,QAFMA,YAEN;;AACE;AACA;AACA;AACA;AAEA,MAAIH,EAAJ,EAAQ;AACJF,OAAG,GAAG,IAAN;AACH;;AAED,MAAID,OAAO,IAAI,CAACC,GAAhB,EAAqB;AACjB;AACAC,UAAM,GAAG,IAAT;AACH;;AAGD,MAAMK,SAAS,GAAGR,MAAM,CAACS,OAAP,CAAe,QAAf,KAA4B,CAA9C;AACA,MAAMC,YAAY,GAAGV,MAAM,CAACS,OAAP,CAAe,WAAf,KAA+B,CAApD;AACA,MAAME,OAAO,GAAGX,MAAM,CAACS,OAAP,CAAe,KAAf,KAAyB,CAAzC;AAEA,MAAMG,QAAQ,eAChBJ,SAAS,GACPN,GAAG,iFADI,GAGL,EAJY,OAAd;AAOA,MAAMW,WAAW,GAAG,CAChB,CAACZ,OAAD,GACMC,GAAG,gDACuCJ,WAAW,CAACzC,IAAD,CAAX,8BAA+C,EADtF,+CAEqCyC,WAAW,CAACzC,IAAD,CAAX,gCAAiD,EAFtF,CADT,GAIM8C,MAAM,GACFT,4BAA4B,CAACrC,IAAD,EAAO6C,GAAP,CAD1B,GAEF7B,sBAAsB,CAAChB,IAAD,EAAO+C,EAAP,CAPhB,EAQfC,KAAK,IAAIA,KAAK,KAAK,MAApB,GACMH,GAAG,mCAC0BG,KAD1B,0CAE2BA,KAF3B,OADT,GAIM,EAZU,EAahBE,YAbgB,EAclBlB,MAdkB,CAcX,UAAAC,CAAC;AAAA,WAAI,CAAC,CAACA,CAAN;AAAA,GAdU,EAcDJ,IAdC,CAcI,IAdJ,CAApB;AAgBA,MAAM4B,QAAQ,GAAG,CACbJ,YAAY,8BAAuBJ,SAAvB,UAAuC,EADtC,EAEbK,OAAO,oBAAaP,EAAE,GAAG,OAAH,GAAa,EAA5B,cAAyC,EAFnC,EAGbA,EAAE,IAAI,CAACH,OAAP,GAAiB,uCAAjB,GAA2D,EAH9C,EAIfZ,MAJe,CAIR,UAAAC,CAAC;AAAA,WAAI,CAAC,CAACA,CAAN;AAAA,GAJO,EAIEJ,IAJF,CAIO,IAJP,CAAjB;AAMA,MAAM6B,YAAY,GAAG,CACjBF,WAAW,CAACpB,IAAZ,EADiB,EACGmB,QAAQ,CAACnB,IAAT,EADH,EACoBqB,QAAQ,CAACrB,IAAT,EADpB,EAEnBJ,MAFmB,CAEZ,UAAAC,CAAC;AAAA,WAAI,CAAC,CAACA,CAAN;AAAA,GAFW,EAEFJ,IAFE,CAEG,MAFH,CAArB;AAIA,mBAAU6B,YAAV,+DAE4CX,EAAE,GAAG,GAAH,GAAS,EAFvD,mDAGiCC,KAAK,gBAASA,KAAT,SAAoB,EAH1D,2BAIQD,EAAE,GAAG,YAAH,GAAkB,EAJ5B,kBAMFJ,MAAM,CAACP,IAAP,EANE;AAUH,CApFD,C;;;;;;;;;;;;;;;;;;;;;;;AC3RA;AACA;AACA;AACA;;AAEA;AACA;AACA,6EACA,0EADA,EAEA,yFAFA,GAGA,IAHA,CAGA;AACA;;AAEA;AACA;AACA;AACA,+BADA;AAEA,6BAFA;AAGA,8BAHA;AAIA;AAJA;AAMA,OAPA;AASA;AACA;AACA;AACA;AAHA;AAKA,KArBA;AAsBA;;AACA;AACA;;AAEA;AAEA,wBAFA;AAIA,MAJA,kBAIA;AACA;AACA,8DADA;AAEA;AAFA;AAIA,GATA;AAWA,SAXA,qBAWA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCADA;AAEA,4BAFA;AAGA;AAHA;AAMA;AAEA;AACA,sEACA,4EADA;AAEA,OAHA;;AAKA;AACA;AACA;AACA,KApBA;AAqBA,GAlCA;AAoCA;AACA,kBADA,0BACA,IADA,EACA;AACA;AACA;;AACA;AACA;AACA,kBADA;AAEA;AAFA,WADA;AAIA;AACA,kBADA;AAEA;AAFA;AAJA;AASA;AACA;AAdA,GApCA;AAqDA;AACA,eADA,uBACA,MADA,EACA;AACA;AACA;AAHA;AArDA,G;;;;;;;;;;;;;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AADA,KAEA,IAFA,CAEA;AAAA;AAAA,GAFA,EAEA,IAFA,CAEA;AAEA;AACA;AACA,iCADA;AAEA;AAFA,OAHA,CAQA;;AACA;AACA,0DADA;AAEA,gCAFA;AAGA;AAHA,OATA,CAeA;;AACA,+DACA,IADA,EAEA;AACA,oDAHA;AAMA,woBAyBA,sBAzBA;AA2BA;AACA,GApDA;AAqDA;;AAEA;AACA;AACA;AACA,+EACA,gFADA,EAEA;AACA,qGAHA,GAIA,IAJA,CAIA;AACA;AAAA;AAAA;AAAA;AAAA;;AACA;AACA,0BACA,uBADA,GAEA;AACA;AACA;AACA,aAFA;AAGA,WANA;AAOA,SARA;AASA,OAfA;AAgBA;;AACA;AACA,GArBA,CAuBA;;;AACA;AACA;;AAEA;AAEA,wBAFA;AAIA,MAJA,kBAIA;AACA;AACA,8DADA;AAEA;AAFA;AAIA,GATA;AAWA,SAXA,qBAWA;AAAA;;AACA;AACA;AACA;AACA,4CACA,uBADA,EAEA,YAFA,EAGA;AACA,yCAJA;AAMA;AACA,oBADA;AAEA,gGAFA;AAGA;AACA;AADA,SAHA;AAMA;AANA;AASA;;AAEA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA,OAHA;AAIA,KA3BA;AA4BA,GAzCA;AA2CA,WA3CA,uBA2CA;AACA;AACA;;AACA;AACA;AACA,GAhDA;AAkDA;AACA,kBADA,0BACA,IADA,EACA;AACA;AACA;AACA;AACA;AALA,GAlDA;AA0DA;AACA,eADA,uBACA,MADA,EACA;AACA;AACA;AAHA;AA1DA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA,8DADA;AAEA,oEAFA;AAGA,8EAHA;AAIA;AAJA,GADA;AAQA,MARA,kBAQA;AACA;AACA,sBADA;AAEA,2BAFA;AAGA,uBAHA;AAIA,8DAJA;AAKA,qBALA;AAOA,+BAPA;AASA,kBATA;AAWA;AACA,sBADA;AAEA,iBAFA;AAGA,mBAHA,CAGA;;AAHA;AAXA;AAiBA,GA1BA;AA4BA;AACA,eADA,yBACA;AACA;AACA;AAEA;AACA;AACA;;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA;AACA;AAfA,GA5BA;AA8CA,SA9CA,qBA8CA;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAHA;AAIA,KANA,MAOA;AACA;AACA;AACA;AACA,OAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA,OANA;AAQA;AACA;AACA,OAFA;AAGA;AACA,GAzEA;AA2EA;AACA,uBADA,iCACA;AACA;AACA,KAHA;AAIA,iBAJA,2BAIA;AACA;AACA,KANA;AAOA,kBAPA,4BAOA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;AACA,4CADA;AAEA,iBAFA;AAGA,oCAHA;AAIA;AACA,sFALA;AAMA;AANA;AAQA,KAtBA;AAuBA,uBAvBA,iCAuBA;AACA;;AACA;AACA;AACA;;AACA,qEACA,MADA,EAEA,yCAFA,EAGA;AACA,eADA,mBACA,MADA,EACA,IADA,EACA;AACA;AACA;AACA;AACA;;AACA;AACA,WALA;AAMA,SARA;AASA,iCATA,qCASA,IATA,EASA;AACA,sCACA,wCADA;AAEA;AAZA,OAHA;AAkBA,KA9CA;AA+CA,oBA/CA,4BA+CA,GA/CA,EA+CA;AACA;AACA;AACA,OAFA,MAGA;AACA;AACA;AACA;AAtDA,GA3EA;AAoIA;AACA,sBADA,2BACA,eADA,EACA;AACA;AACA;AACA;AACA,KALA;AAMA,gBANA,sBAMA,GANA,EAMA;AACA;AACA,KARA;AASA,oBATA,2BASA;AACA;AACA,KAXA;AAYA;AACA,gBADA;AAEA,aAFA,qBAEA;AACA;AACA;AAJA;AAZA;AApIA,G;;;;;;;;;;;;;;;;;;;;;;ACxEA;AACA;AACA;;AAEA;AACA;AACA,6EACA,0EADA;AAGA;;AACA;AACA;;AAEA;AAEA,iBAFA;AAIA,MAJA,kBAIA;AACA;AACA,8DADA;AAEA;AAFA;AAIA,GATA;AAWA,SAXA,qBAWA;AAAA;;AACA;AACA;AACA;AACA;AACA,yDAHA,CAIA;;AACA;AACA,sBADA;AAEA,8BAFA;AAGA,8BAHA;AAIA,kCAJA;AAKA;AALA,SALA,CAYA;;AACA;AAEA;;AAEA;AAEA,KAnBA;AAoBA,GAjCA;AAmCA;AACA,WADA,mBACA,IADA,EACA;AACA;AACA;;AACA;AACA;AACA,kBADA;AAEA;AAFA,WADA;AAIA;AACA,kBADA;AAEA;AAFA;AAJA;AASA;AACA;AAdA,GAnCA;AAoDA;AACA,QADA,gBACA,MADA,EACA;AACA;AACA;AAHA;AApDA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACiDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA,+DAFA,CAIA;;AACA;AACA;AACA;AACA;;AAEA,6EACA,mEADA,EAEA,oEACA,yEADA,GACA,oEAHA,EAIA,kGAJA,EAKA,4DALA,EAMA,wEANA,4BAOA,yIAPA,sBAQA,WACA,0GADA,EAEA,8FAFA,IAGA,EAXA,IAYA,IAZA,CAYA;AACA;AACA,KAdA;AAeA;;AACA;AACA;;AAGA;AACA;AACA;AACA;;AACA;AACA;AACA;;AAGA;AAAA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA,OAFA,MAGA;AACA;AACA;AACA,KARA;AASA;;AAEA;AACA;AAEA,uDAHA,CAKA;;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA,KAlBA,CAoBA;;;AACA;AAEA,GAvBA,CAwBA;AACA;AACA;AACA;AACA;;AAGA;AAEA,qBAFA;AAIA,MAJA,kBAIA;AACA;AACA,8DADA;AAEA,8BAFA;AAGA,yBAHA;AAIA,mBAJA;AAKA,oBALA;AAOA;AAPA;AASA,GAdA;AAgBA,SAhBA,qBAgBA;AAAA;;AACA;AACA;AACA;;AACA;AACA;AACA;AACA,KALA;AAOA;AACA;AACA;AACA;AACA,KAJA;AAKA,GA9BA;AAgCA;AACA,YADA,sBACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AAVA,GAhCA;AA6CA;AACA,oBADA,yBACA,GADA,EACA;AACA;AACA;AACA;AACA;AACA,SAHA,MAIA;AACA;AACA;AACA;AACA,KAXA;AAYA,qBAZA,4BAYA;AACA;AACA,KAdA;AAeA,qBAfA,4BAeA;AACA;AACA,KAjBA;AAkBA,wBAlBA,+BAkBA;AACA;AACA,KApBA;AAqBA,yBArBA,gCAqBA;AACA;AACA;AAvBA,GA7CA;AAuEA;AACA,YADA;AAEA;AACA;AACA,cAJA,wBAIA;AACA;AACA;AACA,KAPA;AAQA,WARA,qBAQA;AACA;AACA;AACA;AACA,KAZA;AAaA,mBAbA,6BAaA;AACA;AACA,KAfA;AAgBA,cAhBA,wBAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBADA;AAEA;AAFA;AAIA;AACA;AACA,KA7BA;AA8BA,aA9BA,uBA8BA;AACA;AACA,KAhCA,CAiCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAzCA;AAvEA,G;;;;;;;;;;;;;;;;;;;;;AC/KA;AACA;AAEA;AACA;AACA;AADA,GADA;AAKA,SALA,qBAKA;AACA;AACA;AACA,KAFA;AAGA;AATA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;ACGA;AACA;AAEA;AACA,oBADA;AAGA;AAEA,SAFA,mBAEA;AACA,+HACA,kBADA,IACA,EADA;AAEA,KALA;AAOA,gBAPA,0BAOA;AACA;AACA,KATA;AAWA,YAXA,sBAWA;AACA;AACA,KAbA;AAeA,gBAfA,0BAeA;AACA;AACA;AACA,KAlBA;AAoBA,eApBA,yBAoBA;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA,KArCA;AAuCA,iBAvCA,2BAuCA;AACA;AACA;AACA;AACA;AACA;AACA;AA7CA;AAHA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC0CA;AACA;AACA;AACA;AACA;CAEA;;AAEA;AAEA,qEACA,OADA,EACA,SADA,EACA,UADA,EACA,QADA,EACA,aADA,EACA,SADA,EACA,SADA,EAEA,cAFA,EAEA,YAFA,EAEA,UAFA,EAEA,QAFA,EAEA,UAFA,EAEA,MAFA,EAEA,SAFA,EAEA,KAFA,EAEA,OAFA,EAGA,UAHA,EAGA,MAHA,EAGA,MAHA,EAIA,OAJA,CAIA;AACA;AACA,CANA;;AAQA;;AACA,yEACA,WADA,EACA,SADA,EACA,QADA,EACA,SADA,EACA,OADA,EACA,OADA,CACA;AACA;AACA,CAHA;AAKA;AAEA;AAEA;AACA;AADA,GAFA;AAMA,MANA,kBAMA;AACA;;AAEA;AACA,4BADA,CAEA;;AACA;AACA;;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AAEA;;AACA;AACA;AACA;;AACA;AACA;AACA,qCADA;AAEA;AAFA;AAIA;AACA;;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OA/BA,QA+BA,oCA/BA,EAHA,CAkCA;;AACA;;AAEA;AACA;AAEA;AACA,8DADA;AAGA,kBAHA;AAKA,wFALA;AAMA;AACA;AACA;AACA;AACA;AACA;AAXA;AAaA,GA9DA;AAgEA;AACA,qBADA,4BACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AATA,GAhEA;AA4EA;AACA,eADA,yBACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA,8BADA;AAEA;AAFA;AAIA;AACA;;AACA;AACA;AAdA,GA5EA;AA6FA,SA7FA,qBA6FA;AACA;AACA;AACA;AACA,yCAHA;AAIA,qBAJA;AAKA;AALA;AAOA,GArGA;AAuGA;AACA,sBADA,8BACA,KADA,EACA,WADA,EACA,cADA,EACA,CACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AAvGA,G;;;;;;;;;;;;;;;;;;;;AClFO,IAAMuB,kBAAkB,GAAG,CAC9B,MAD8B,EAE9B,KAF8B,EAG9B,KAH8B,EAI9B,SAJ8B,EAK9B,KAL8B,EAM9B,aAN8B,EAO9B,OAP8B,EAQ9B,SAR8B,EAS9B,SAT8B,EAU9B,OAV8B,EAW9B,OAX8B,EAY9B,MAZ8B,EAa9B,SAb8B,EAc9B,UAd8B,EAe9B,UAf8B,EAgB9B,QAhB8B,EAiB9B,QAjB8B,EAkB9B,OAlB8B,EAmB9B,cAnB8B,EAoB9B,YApB8B,EAqB9B,UArB8B,EAsB9B,QAtB8B,EAwB9B,SAxB8B,EAyB9B,UAzB8B,EA0B9B,MA1B8B,EA2B9B,MA3B8B,EA6B9B,OA7B8B,EA8B9B,OA9B8B,EA+B9B,WA/B8B,EAgC9B,SAhC8B,EAiC9B,OAjC8B,EAkC9B,SAlC8B,EAmC9B,QAnC8B,EAoC9B,WApC8B,EAqC9B,SArC8B,EAsC9B,QAtC8B,EAuC9B,SAvC8B,CAA3B;AA0CA,IAAMC,MAAM,GAAG;AAClB,aAAS,CACL,SADK,EAEL,SAFK,EAGL,SAHK,EAIL,SAJK,EAKL,SALK,EAML,SANK,EAOL,SAPK,EAQL,SARK,EASL,SATK,CADS;AAYlBC,MAAI,EAAE,CACF,SADE,EAEF,SAFE,EAGF,SAHE,EAIF,SAJE,EAKF,SALE,EAMF,SANE,EAOF,SAPE,EAQF,SARE,EASF,SATE;AAZY,CAAf;AAyBA,IAAMC,SAAS,GAAI,UAAUC,IAAV,EAAgB;AACtC,MAAMtH,GAAG,GAAG,EAAZ;;AACA,OAAK,IAAIuH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,IAAI,CAACrD,MAAzB,EAAiCsD,CAAC,EAAlC,EAAsC;AAClCvH,OAAG,CAACsH,IAAI,CAACC,CAAD,CAAL,CAAH,GAAe,CAAf;AACH;;AACD,SAAOC,QAAQ,CAACC,IAAT,CAAcd,OAAd,CAAsB,WAAtB,KAAsC,CAAtC,GAA0C,EAA1C,GAA+C3G,GAAtD;AACH,CANwB,CAMtB,CACC,mBADD,EAEC,WAFD,EAGC,iBAHD,EAIC,aAJD,EAKC,eALD,EAMC,WAND,EAOC,qBAPD,EAQC,YARD,EASC,YATD,EAUC,cAVD,EAWC,WAXD,EAYC,qBAZD,EAaC,aAbD,EAcC,mBAdD,EAeC,eAfD,EAgBC,0BAhBD,EAiBC,OAjBD,EAkBC,6BAlBD,EAmBC,wBAnBD,EAoBC,4BApBD,EAqBC,2BArBD,EAsBC,gBAtBD,EAuBC,iBAvBD,CANsB,CAAlB;AAiCP,IAAM0H,UAAU,GAAG,EAAnB;AACA,CAACF,QAAQ,CAACG,MAAT,IAAmB,EAApB,EAAwBC,MAAxB,CAA+B,CAA/B,EAAkCC,KAAlC,CAAwC,GAAxC,EAA6C5E,OAA7C,CAAqD,UAAUyC,IAAV,EAAgB;AACjE,MAAMoC,EAAE,GAAGpC,IAAI,CAACmC,KAAL,CAAW,GAAX,CAAX;AACAH,YAAU,CAACI,EAAE,CAAC,CAAD,CAAH,CAAV,GAAoBA,EAAE,CAAC,CAAD,CAAtB;AACH,CAHD;AAKA;AAEO,IAAMC,YAAY,GAAI,YAAY;AACrC,MAAIC,IAAI,GAAGC,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAX;AACAF,MAAI,CAACG,KAAL,GAAaH,IAAI,CAACI,MAAL,GAAc,CAA3B;;AACA,MAAI,CAAC,EAAEJ,IAAI,CAACK,UAAL,IAAmBL,IAAI,CAACK,UAAL,CAAgB,IAAhB,CAArB,CAAL,EAAkD;AAC9C;AACA,WAAOL,IAAI,CAACM,SAAL,CAAe,YAAf,EAA6B3B,OAA7B,CAAqC,iBAArC,MAA4D,CAAnE;AACH,GANoC,CAOrC;;;AACA,SAAO,KAAP;AACH,CAT2B,EAArB;AAWA,IAAM4B,WAAW,GAAG;AACvBC,mBAAiB,EAAE,0CADI;AAEvBC,cAAY,EAAE,qFAFS;AAGvBC,YAAU,EAAE,iEAHW;AAIvBC,kBAAgB,EAAE,qEAJK;AAKvB;AACAC,gBAAc,EAAE,kEANO;AAOvBC,aAAW,EAAE,iEAPU;AAQvBC,WAAS,EAAE,0DARY;AASvBC,QAAM,EAAE;AATe,CAApB,C;;;;;;;;;;;;;;;;ACvHP,IAAMC,aAAa,GAAG,EAAtB;AAEO,SAASC,gBAAT,CAA0BC,OAA1B,EAAmC;AACtC,SAAOC,OAAO,CAACC,GAAR,CAAYF,OAAO,CAAClJ,GAAR,CAAY,UAAUqJ,SAAV,EAAqB;AAChD,QAAI,OAAOA,SAAP,KAAqB,QAAzB,EAAmC;AAC/BA,eAAS,GAAG;AACRC,WAAG,EAAED,SADG;AAER;AACAhF,YAAI,EAAEgF,SAAS,CAACE,KAAV,CAAgB,QAAhB,IAA4B,KAA5B,GAAoC;AAHlC,OAAZ;AAKH;;AACD,QAAIP,aAAa,CAACK,SAAS,CAACC,GAAX,CAAjB,EAAkC;AAC9B,aAAON,aAAa,CAACK,SAAS,CAACC,GAAX,CAApB;AACH;;AACD,QAAME,OAAO,GAAG,IAAIL,OAAJ,CAAY,UAACM,OAAD,EAAUC,MAAV,EAAqB;AAC7C,UAAIL,SAAS,CAAChF,IAAV,KAAmB,IAAvB,EAA6B;AACzB,YAAMsF,MAAM,GAAG1B,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAf;AACAyB,cAAM,CAACC,GAAP,GAAaP,SAAS,CAACC,GAAvB;AACAK,cAAM,CAACE,KAAP,GAAe,KAAf;;AACAF,cAAM,CAACG,MAAP,GAAgB,YAAY;AACxBL,iBAAO;AACV,SAFD;;AAGAE,cAAM,CAACI,OAAP,GAAiB,YAAY;AACzBL,gBAAM;AACT,SAFD;;AAGAzB,gBAAQ,CAAC+B,IAAT,CAAcC,WAAd,CAA0BN,MAA1B;AACH,OAXD,MAYK,IAAIN,SAAS,CAAChF,IAAV,KAAmB,KAAvB,EAA8B;AAC/B,YAAM6F,IAAI,GAAGjC,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAb;AACAgC,YAAI,CAACC,GAAL,GAAW,YAAX;AACAD,YAAI,CAACzC,IAAL,GAAY4B,SAAS,CAACC,GAAtB;;AACAY,YAAI,CAACJ,MAAL,GAAc,YAAY;AACtBL,iBAAO;AACV,SAFD;;AAGAS,YAAI,CAACH,OAAL,GAAe,YAAY;AACvBL,gBAAM;AACT,SAFD;;AAGAzB,gBAAQ,CAAC+B,IAAT,CAAcC,WAAd,CAA0BC,IAA1B;AACH;AACJ,KAzBe,CAAhB;AA0BAlB,iBAAa,CAACK,SAAS,CAACC,GAAX,CAAb,GAA+BE,OAA/B;AACA,WAAOA,OAAP;AACH,GAvCkB,CAAZ,CAAP;AAwCH;AAEM,SAASY,YAAT,CAAsBC,IAAtB,EAA4BC,QAA5B,EAAsC;AACzC;AACA,MAAI,OAAOC,MAAM,CAACC,SAAP,CAAiBC,UAAxB,KAAuC,UAA3C,EAAuD;AACnDF,UAAM,CAACC,SAAP,CAAiBE,gBAAjB,CAAkCL,IAAlC,EAAwCC,QAAxC;AACH,GAFD,MAGK;AACD,QAAM9E,CAAC,GAAGyC,QAAQ,CAACC,aAAT,CAAuB,GAAvB,CAAV;AACA1C,KAAC,CAACiC,IAAF,GAASkD,GAAG,CAACC,eAAJ,CAAoBP,IAApB,CAAT;AACA7E,KAAC,CAACqF,QAAF,GAAaP,QAAb;AACA9E,KAAC,CAACsF,KAAF,GAJC,CAKD;;AACAH,OAAG,CAACI,eAAJ,CAAoBvF,CAAC,CAACiC,IAAtB;AACH;AACJ,C;;;;;;;;;;;;;;;AC3DD,iEAAe;AACXuD,IAAE,EAAE;AACAC,UAAM,EAAE;AACJC,SAAG,EAAE,KADD;AAEJC,mBAAa,EAAE,uBAFX;AAGJC,aAAO,EAAE,yCAHL;AAKJC,cAAQ,EAAE,WALN;AAMJC,iBAAW,EAAE,eANT;AAOJ;AAEAC,oBAAc,EAAE,QATZ;AAUJC,cAAQ,EAAE,UAVN;AAWJC,kBAAY,EAAE,gBAXV;AAaJZ,cAAQ,EAAE,UAbN;AAeJa,UAAI,EAAE,MAfF;AAgBJC,gBAAU,EAAE,sBAhBR;AAkBJC,eAAS,EAAE,cAlBP;AAmBJC,wBAAkB,EAAE,WAnBhB;AAoBJC,sBAAgB,EAAE,gBApBd;AAqBJC,mBAAa,EAAE;AArBX,KADR;AAyBAC,cAAU,EAAE;AACRrM,UAAI,EAAE,MADE;AAERC,SAAG,EAAE,KAFG;AAGRC,SAAG,EAAE,KAHG;AAIRC,aAAO,EAAE,SAJD;AAKRE,SAAG,EAAE,SALG;AAMRQ,iBAAW,EAAE,aANL;AAORT,WAAK,EAAE,OAPC;AAQRQ,aAAO,EAAE,SARD;AASRI,aAAO,EAAE,SATD;AAURR,WAAK,EAAE,OAVC;AAWRO,WAAK,EAAE,OAXC;AAYRT,UAAI,EAAE,MAZE;AAaRC,aAAO,EAAE,SAbD;AAcRY,cAAQ,EAAE,UAdF;AAeRzC,cAAQ,EAAE,UAfF;AAgBRiC,YAAM,EAAE,QAhBA;AAiBRD,YAAM,EAAE,QAjBA;AAkBRD,WAAK,EAAE,OAlBC;AAmBRQ,kBAAY,EAAE,cAnBN;AAoBRC,gBAAU,EAAE,YApBJ;AAqBRvC,cAAQ,EAAE,UArBF;AAsBRyC,YAAM,EAAE,QAtBA;AAwBR1B,aAAO,EAAE,SAxBD;AAyBRH,cAAQ,EAAE,UAzBF;AA0BR+M,UAAI,EAAE,MA1BE;AA2BRC,UAAI,EAAE,WA3BE;AA6BR/K,WAAK,EAAE,UA7BC;AA8BRO,WAAK,EAAE,QA9BC;AA+BRE,eAAS,EAAE,YA/BH;AAgCRG,aAAO,EAAE,YAhCD;AAiCRC,WAAK,EAAE,QAjCC;AAkCRH,aAAO,EAAE,UAlCD;AAmCRF,YAAM,EAAE,SAnCA;AAoCRM,eAAS,EAAE,YApCH;AAqCRG,aAAO,EAAE,UArCD;AAsCRD,YAAM,EAAE,SAtCA;AAuCRD,aAAO,EAAE;AAvCD;AAzBZ,GADO;AAoEXiK,IAAE,EAAE;AACAlB,UAAM,EAAE;AACJC,SAAG,EAAE,IADD;AAEJC,mBAAa,EAAE,UAFX;AAGJC,aAAO,EAAE,SAHL;AAKJC,cAAQ,EAAE,MALN;AAMJC,iBAAW,EAAE,OANT;AAOJ;AAEAC,oBAAc,EAAE,MATZ;AAUJE,kBAAY,EAAE,SAVV;AAWJD,cAAQ,EAAE,MAXN;AAYJX,cAAQ,EAAE,MAZN;AAcJa,UAAI,EAAE,IAdF;AAeJC,gBAAU,EAAE,QAfR;AAiBJC,eAAS,EAAE,MAjBP;AAkBJC,wBAAkB,EAAE,MAlBhB;AAmBJC,sBAAgB,EAAE,KAnBd;AAoBJC,mBAAa,EAAE;AApBX,KADR;AAwBAC,cAAU,EAAE;AACRrM,UAAI,EAAE,KADE;AAERC,SAAG,EAAE,KAFG;AAGRC,SAAG,EAAE,IAHG;AAIRC,aAAO,EAAE,KAJD;AAKRE,SAAG,EAAE,SALG;AAMRQ,iBAAW,EAAE,MANL;AAORT,WAAK,EAAE,KAPC;AAQRQ,aAAO,EAAE,KARD;AASRI,aAAO,EAAE,KATD;AAURR,WAAK,EAAE,KAVC;AAWRO,WAAK,EAAE,KAXC;AAYRT,UAAI,EAAE,IAZE;AAaRC,aAAO,EAAE,MAbD;AAcRY,cAAQ,EAAE,KAdF;AAeRzC,cAAQ,EAAE,OAfF;AAgBRiC,YAAM,EAAE,KAhBA;AAiBRD,YAAM,EAAE,KAjBA;AAkBRD,WAAK,EAAE,KAlBC;AAmBRQ,kBAAY,EAAE,MAnBN;AAoBRC,gBAAU,EAAE,OApBJ;AAqBRvC,cAAQ,EAAE,OArBF;AAsBRyC,YAAM,EAAE,OAtBA;AAwBR1B,aAAO,EAAE,KAxBD;AAyBRH,cAAQ,EAAE,QAzBF;AA0BR+M,UAAI,EAAE,IA1BE;AA2BRC,UAAI,EAAE,KA3BE;AA6BR/K,WAAK,EAAE,OA7BC;AA8BRO,WAAK,EAAE,QA9BC;AA+BRE,eAAS,EAAE,QA/BH;AAgCRG,aAAO,EAAE,OAhCD;AAiCRC,WAAK,EAAE,OAjCC;AAkCRH,aAAO,EAAE,QAlCD;AAmCRF,YAAM,EAAE,QAnCA;AAoCRM,eAAS,EAAE,QApCH;AAqCRG,aAAO,EAAE,QArCD;AAsCRD,YAAM,EAAE,SAtCA;AAuCRD,aAAO,EAAE;AAvCD;AAxBZ;AApEO,CAAf,E;;;;;;;;;;;;;;;;;;;ACCA;AACA;AAEO,IAAMkK,KAAK,GAAG;AACjBC,SAAO,EAAE,EADQ;AAEjBC,SAAO,EAAE,EAFQ;AAGjBC,QAAM,EAAE,EAHS;AAKjBlB,UAAQ,EAAE3D,4DAAA,KAAqB,MALd;AAMjB4D,aAAW,EAAE,WAAW5D,sDANP;AAOjB8D,UAAQ,EAAE9D,+DAAA,IAAuB,QAPhB;AASjB8E,WAAS,EAAE9E,6DAAA,KAAsB,QAThB;AAUjB+D,cAAY,EAAE,kBAAkB/D,sDAVf;AAYjB+E,SAAO,EAAE,EAZQ;AAajBC,YAAU,EAAE,EAbK;AAejBC,SAAO,EAAE,EAfQ;AAiBjBC,UAAQ,EAAErC,MAAM,CAACsC,UAAP,GAAoB,GAjBb;AAmBjBC,cAAY,EAAE;AACVzI,QAAI,EAAE,EADI;AAEV0I,WAAO,EAAE;AAFC;AAnBG,CAAd;AAyBA,SAASC,eAAT,GAA2B;AAC9B,SAAO,IAAI7D,OAAJ,CAAY,UAAAM,OAAO,EAAI;AAC1B,QAAMwD,QAAQ,GAAGvF,yDAAA,GAAgB,SAAhB,GAA4B,MAA7C;AACAwF,KAAC,CAACC,IAAF,WAAUf,KAAK,CAACC,OAAhB,cAA2BY,QAA3B,cAAuCvF,wDAAvC,oBAA6D0E,KAAK,CAACE,OAAnE,GAA8E;AAC1Ec,cAAQ,EAAE,MADgE;AAE1EC,aAAO,EAAE,iBAACC,IAAD,EAAU;AACf7D,eAAO,CAAC6D,IAAD,CAAP;AACH;AAJyE,KAA9E;AAMH,GARM,CAAP;AASH;AAEM,SAASC,eAAT,CAAyBC,IAAzB,EAA+B;AAClC,SAAOA,IAAI,CAACxI,OAAL,CAAa,kBAAb,EAAiC,EAAjC,EAAqCW,IAArC,EAAP;AACH;AAED,IAAI8H,MAAM,GAAG,GAAb;AACO,SAASC,aAAT,GAAyB;AAC5BtB,OAAK,CAACO,OAAN,GAAgBc,MAAM,EAAtB;AACH,C;;;;;;;;;;;;;;;AC/CD;AACA;AACA,iEAAe,CACb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,4BAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,4BAPb;AAQE,gBAAc;AARhB,CADa,EAWb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,uBAPb;AAQE,gBAAc;AARhB,CAXa,EAqBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,2BANX;AAOE,aAAW,2BAPb;AAQE,gBAAc;AARhB,CArBa,EA+Bb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,IANX;AAOE,aAAW,IAPb;AAQE,gBAAc;AARhB,CA/Ba,EAyCb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,sCAJR;AAKE,UAAQ,EALV;AAME,WAAS,kCANX;AAOE,aAAW,kCAPb;AAQE,gBAAc;AARhB,CAzCa,EAmDb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,oBAPb;AAQE,gBAAc;AARhB,CAnDa,EA6Db;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,uBAPX;AAQE,aAAW,uBARb;AASE,gBAAc;AAThB,CA7Da,EAwEb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,sBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CAxEa,EAkFb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,uBAPX;AAQE,aAAW,YARb;AASE,gBAAc;AAThB,CAlFa,EA6Fb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,OAJR;AAKE,UAAQ,EALV;AAME,WAAS,OANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA7Fa,EAuGb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,6BAJR;AAKE,UAAQ,EALV;AAME,WAAS,6BANX;AAOE,aAAW,6BAPb;AAQE,gBAAc;AARhB,CAvGa,EAiHb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,kCAJR;AAKE,UAAQ,EALV;AAME,WAAS,oCANX;AAOE,aAAW,oCAPb;AAQE,gBAAc;AARhB,CAjHa,EA2Hb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,2BAJR;AAKE,UAAQ,CACN,MADM,CALV;AAQE,WAAS,2BARX;AASE,aAAW,2BATb;AAUE,gBAAc;AAVhB,CA3Ha,EAuIb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,6BAJR;AAKE,UAAQ,CACN,MADM,CALV;AAQE,WAAS,6BARX;AASE,aAAW,6BATb;AAUE,gBAAc;AAVhB,CAvIa,EAmJb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAnJa,EA6Jb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CA7Ja,EAuKb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,kBAPb;AAQE,gBAAc;AARhB,CAvKa,EAiLb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,oBAPb;AAQE,gBAAc;AARhB,CAjLa,EA2Lb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,8BAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,wBAPb;AAQE,gBAAc;AARhB,CA3La,EAqMb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CArMa,EA+Mb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CA/Ma,EAyNb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,4BAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,4BAPb;AAQE,gBAAc;AARhB,CAzNa,EAmOb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,oBAPX;AAQE,aAAW,oBARb;AASE,gBAAc;AAThB,CAnOa,EA8Ob;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,0BAPX;AAQE,aAAW,0BARb;AASE,gBAAc;AAThB,CA9Oa,EAyPb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,+BAPX;AAQE,aAAW,qBARb;AASE,gBAAc;AAThB,CAzPa,EAoQb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,wBAPb;AAQE,gBAAc;AARhB,CApQa,EA8Qb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CA9Qa,EAwRb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAxRa,EAkSb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAlSa,EA4Sb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,0BAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,kBAPb;AAQE,gBAAc;AARhB,CA5Sa,EAsTb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,SANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAtTa,EAgUb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAhUa,EA0Ub;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,0BAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,kBAPb;AAQE,gBAAc;AARhB,CA1Ua,EAoVb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,2CANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CApVa,EA8Vb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,2BAJR;AAKE,UAAQ,EALV;AAME,WAAS,6BANX;AAOE,aAAW,6BAPb;AAQE,gBAAc;AARhB,CA9Va,EAwWb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAxWa,EAkXb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAlXa,EA4Xb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,QANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CA5Xa,EAsYb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAtYa,EAgZb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CAhZa,EA0Zb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,yBAPb;AAQE,gBAAc;AARhB,CA1Za,EAoab;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,WAPX;AAQE,aAAW,WARb;AASE,gBAAc;AAThB,CApaa,EA+ab;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,uBAPb;AAQE,gBAAc;AARhB,CA/aa,EAybb;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,4BAJR;AAKE,UAAQ,EALV;AAME,WAAS,8BANX;AAOE,aAAW,8BAPb;AAQE,gBAAc;AARhB,CAzba,EAmcb;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,WAPX;AAQE,aAAW,WARb;AASE,gBAAc;AAThB,CAnca,EA8cb;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gCANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CA9ca,EAwdb;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,2BAPX;AAQE,aAAW,2BARb;AASE,gBAAc;AAThB,CAxda,EAmeb;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CAnea,EA6eb;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,YAPX;AAQE,aAAW,YARb;AASE,gBAAc;AAThB,CA7ea,EAwfb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CAxfa,EAkgBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,2BAJR;AAKE,UAAQ,EALV;AAME,WAAS,2BANX;AAOE,aAAW,2BAPb;AAQE,gBAAc;AARhB,CAlgBa,EA4gBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CA5gBa,EAshBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,UANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAthBa,EAgiBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAhiBa,EA0iBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CA1iBa,EAojBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CApjBa,EA8jBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CA9jBa,EAwkBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CAxkBa,EAklBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,mBAPb;AAQE,gBAAc;AARhB,CAllBa,CAAf,E;;;;;;;;;;;;;;;ACFA;AACA;AACA,iEAAe,CACb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CADa,EAWb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,8BANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAXa,EAqBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CArBa,EA+Bb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CA/Ba,EAyCb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAzCa,EAmDb;AACE,cAAY,CACV,aADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAnDa,EA6Db;AACE,cAAY,CACV,SADU,EAEV,KAFU,EAGV,WAHU,CADd;AAME,QAAM,yBANR;AAOE,UAAQ,EAPV;AAQE,WAAS,wBARX;AASE,aAAW,OATb;AAUE,gBAAc;AAVhB,CA7Da,EAyEb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAzEa,EAmFb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAnFa,EA6Fb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA7Fa,EAuGb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAvGa,EAiHb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,OAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAjHa,EA2Hb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA3Ha,EAqIb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CArIa,EA+Ib;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA/Ia,EAyJb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,0BANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAzJa,EAmKb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAnKa,EA6Kb;AACE,cAAY,CACV,UADU,EAEV,SAFU,CADd;AAKE,QAAM,kBALR;AAME,UAAQ,EANV;AAOE,WAAS,kBAPX;AAQE,aAAW,OARb;AASE,gBAAc;AAThB,CA7Ka,EAwLb;AACE,cAAY,CACV,UADU,EAEV,SAFU,CADd;AAKE,QAAM,mBALR;AAME,UAAQ,EANV;AAOE,WAAS,2BAPX;AAQE,aAAW,OARb;AASE,gBAAc;AAThB,CAxLa,EAmMb;AACE,cAAY,CACV,aADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,iBAPb;AAQE,gBAAc;AARhB,CAnMa,EA6Mb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,QANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA7Ma,EAuNb;AACE,cAAY,CACV,SADU,EAEV,KAFU,CADd;AAKE,QAAM,iBALR;AAME,UAAQ,EANV;AAOE,WAAS,eAPX;AAQE,aAAW,aARb;AASE,gBAAc;AAThB,CAvNa,EAkOb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,OAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAlOa,EA4Ob;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CA5Oa,EAsPb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAtPa,EAgQb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAhQa,EA0Qb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CA1Qa,EAoRb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oCANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CApRa,EA8Rb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CA9Ra,EAwSb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAxSa,EAkTb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAlTa,EA4Tb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,0BAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,mBAPb;AAQE,gBAAc;AARhB,CA5Ta,EAsUb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAtUa,EAgVb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,4BAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAhVa,EA0Vb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gCAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CA1Va,EAoWb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CApWa,EA8Wb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA9Wa,EAwXb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,6BANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAxXa,EAkYb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,+BANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAlYa,EA4Yb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CA5Ya,EAsZb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,6BANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAtZa,EAgab;AACE,cAAY,CACV,aADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAhaa,EA0ab;AACE,cAAY,CACV,QADU,EAEV,UAFU,CADd;AAKE,QAAM,sBALR;AAME,UAAQ,EANV;AAOE,WAAS,2BAPX;AAQE,aAAW,kBARb;AASE,gBAAc;AAThB,CA1aa,EAqbb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CArba,EA+bb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA/ba,EAycb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CAzca,EAmdb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAnda,EA6db;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CA7da,EAueb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,qCANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CAvea,EAifb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,uCANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAjfa,EA2fb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CA3fa,EAqgBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CArgBa,EA+gBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CA/gBa,EAyhBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAzhBa,EAmiBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAniBa,EA6iBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CA7iBa,EAujBb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,2CANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAvjBa,EAikBb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAjkBa,EA2kBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA3kBa,EAqlBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,2BAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CArlBa,EA+lBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,+BAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CA/lBa,EAymBb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,8BANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAzmBa,EAmnBb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAnnBa,EA6nBb;AACE,cAAY,CACV,MADU,EAEV,WAFU,CADd;AAKE,QAAM,aALR;AAME,UAAQ,EANV;AAOE,WAAS,aAPX;AAQE,aAAW,SARb;AASE,gBAAc;AAThB,CA7nBa,EAwoBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,sCANX;AAOE,aAAW,kBAPb;AAQE,gBAAc;AARhB,CAxoBa,EAkpBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAlpBa,EA4pBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA5pBa,EAsqBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CAtqBa,EAgrBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,sBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAhrBa,EA0rBb;AACE,cAAY,CACV,aADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA1rBa,EAosBb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CApsBa,EA8sBb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,0BAJR;AAKE,UAAQ,EALV;AAME,WAAS,0BANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA9sBa,EAwtBb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,kBAPb;AAQE,gBAAc;AARhB,CAxtBa,EAkuBb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,SANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAluBa,EA4uBb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CA5uBa,EAsvBb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAtvBa,EAgwBb;AACE,cAAY,CACV,SADU,EAEV,KAFU,EAGV,WAHU,CADd;AAME,QAAM,6BANR;AAOE,UAAQ,EAPV;AAQE,WAAS,wBARX;AASE,aAAW,WATb;AAUE,gBAAc;AAVhB,CAhwBa,EA4wBb;AACE,cAAY,CACV,SADU,EAEV,KAFU,CADd;AAKE,QAAM,iBALR;AAME,UAAQ,EANV;AAOE,WAAS,qBAPX;AAQE,aAAW,cARb;AASE,gBAAc;AAThB,CA5wBa,EAuxBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAvxBa,EAiyBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAjyBa,EA2yBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA3yBa,EAqzBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CArzBa,EA+zBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CA/zBa,EAy0Bb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,CACN,MADM,CALV;AAQE,WAAS,gCARX;AASE,aAAW,YATb;AAUE,gBAAc;AAVhB,CAz0Ba,EAq1Bb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAr1Ba,EA+1Bb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CA/1Ba,EAy2Bb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,6BANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAz2Ba,EAm3Bb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAn3Ba,EA63Bb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,sBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA73Ba,EAu4Bb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,QAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAv4Ba,EAi5Bb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAj5Ba,EA25Bb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,2BANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CA35Ba,EAq6Bb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAr6Ba,EA+6Bb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CA/6Ba,EAy7Bb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAz7Ba,EAm8Bb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mCANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAn8Ba,EA68Bb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,qBAPb;AAQE,gBAAc;AARhB,CA78Ba,EAu9Bb;AACE,cAAY,CACV,MADU,EAEV,UAFU,CADd;AAKE,QAAM,aALR;AAME,UAAQ,EANV;AAOE,WAAS,wBAPX;AAQE,aAAW,SARb;AASE,gBAAc;AAThB,CAv9Ba,EAk+Bb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,8BANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAl+Ba,EA4+Bb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,+BANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA5+Ba,EAs/Bb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,MAJR;AAKE,UAAQ,EALV;AAME,WAAS,0BANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAt/Ba,EAggCb;AACE,cAAY,CACV,UADU,EAEV,OAFU,CADd;AAKE,QAAM,gBALR;AAME,UAAQ,EANV;AAOE,WAAS,gBAPX;AAQE,aAAW,OARb;AASE,gBAAc;AAThB,CAhgCa,EA2gCb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA3gCa,EAqhCb;AACE,cAAY,CACV,aADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,6BANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CArhCa,EA+hCb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,iBAPb;AAQE,gBAAc;AARhB,CA/hCa,EAyiCb;AACE,cAAY,CACV,QADU,EAEV,UAFU,EAGV,MAHU,CADd;AAME,QAAM,qBANR;AAOE,UAAQ,EAPV;AAQE,WAAS,gCARX;AASE,aAAW,SATb;AAUE,gBAAc;AAVhB,CAziCa,EAqjCb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,sBAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CArjCa,EA+jCb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,0BAJR;AAKE,UAAQ,EALV;AAME,WAAS,iCANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA/jCa,EAykCb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAzkCa,EAmlCb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAnlCa,EA6lCb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA7lCa,EAumCb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,OAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAvmCa,EAinCb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAjnCa,EA2nCb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,UAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CA3nCa,EAqoCb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAroCa,EA+oCb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA/oCa,EAypCb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAzpCa,EAmqCb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAnqCa,EA6qCb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CA7qCa,EAurCb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAvrCa,EAisCb;AACE,cAAY,CACV,KADU,EAEV,MAFU,CADd;AAKE,QAAM,eALR;AAME,UAAQ,EANV;AAOE,WAAS,mBAPX;AAQE,aAAW,OARb;AASE,gBAAc;AAThB,CAjsCa,EA4sCb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,2BAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CA5sCa,EAstCb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAttCa,EAguCb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAhuCa,EA0uCb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,UANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA1uCa,EAovCb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,2BANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CApvCa,EA8vCb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA9vCa,EAwwCb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAxwCa,EAkxCb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,UAJR;AAKE,UAAQ,EALV;AAME,WAAS,UANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAlxCa,EA4xCb;AACE,cAAY,CACV,SADU,EAEV,MAFU,EAGV,KAHU,CADd;AAME,QAAM,cANR;AAOE,UAAQ,EAPV;AAQE,WAAS,eARX;AASE,aAAW,UATb;AAUE,gBAAc;AAVhB,CA5xCa,EAwyCb;AACE,cAAY,CACV,SADU,EAEV,KAFU,CADd;AAKE,QAAM,0BALR;AAME,UAAQ,EANV;AAOE,WAAS,gCAPX;AAQE,aAAW,WARb;AASE,gBAAc;AAThB,CAxyCa,EAmzCb;AACE,cAAY,CACV,SADU,EAEV,KAFU,CADd;AAKE,QAAM,iBALR;AAME,UAAQ,EANV;AAOE,WAAS,2BAPX;AAQE,aAAW,kBARb;AASE,gBAAc;AAThB,CAnzCa,EA8zCb;AACE,cAAY,CACV,SADU,EAEV,KAFU,CADd;AAKE,QAAM,iBALR;AAME,UAAQ,EANV;AAOE,WAAS,yBAPX;AAQE,aAAW,WARb;AASE,gBAAc;AAThB,CA9zCa,EAy0Cb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,0BANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CAz0Ca,EAm1Cb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CAn1Ca,EA61Cb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,iBAPb;AAQE,gBAAc;AARhB,CA71Ca,EAu2Cb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAv2Ca,EAi3Cb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAj3Ca,EA23Cb;AACE,cAAY,CACV,KADU,EAEV,MAFU,CADd;AAKE,QAAM,UALR;AAME,UAAQ,EANV;AAOE,WAAS,aAPX;AAQE,aAAW,OARb;AASE,gBAAc;AAThB,CA33Ca,EAs4Cb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAt4Ca,EAg5Cb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAh5Ca,EA05Cb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gCANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CA15Ca,EAo6Cb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CAp6Ca,EA86Cb;AACE,cAAY,CACV,QADU,EAEV,UAFU,CADd;AAKE,QAAM,WALR;AAME,UAAQ,EANV;AAOE,WAAS,WAPX;AAQE,aAAW,KARb;AASE,gBAAc;AAThB,CA96Ca,EAy7Cb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,UANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CAz7Ca,EAm8Cb;AACE,cAAY,CACV,KADU,EAEV,MAFU,CADd;AAKE,QAAM,eALR;AAME,UAAQ,EANV;AAOE,WAAS,oBAPX;AAQE,aAAW,WARb;AASE,gBAAc;AAThB,CAn8Ca,EA88Cb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CA98Ca,EAw9Cb;AACE,cAAY,CACV,UADU,EAEV,KAFU,CADd;AAKE,QAAM,cALR;AAME,UAAQ,EANV;AAOE,WAAS,cAPX;AAQE,aAAW,MARb;AASE,gBAAc;AAThB,CAx9Ca,EAm+Cb;AACE,cAAY,CACV,QADU,EAEV,KAFU,CADd;AAKE,QAAM,eALR;AAME,UAAQ,EANV;AAOE,WAAS,mBAPX;AAQE,aAAW,eARb;AASE,gBAAc;AAThB,CAn+Ca,EA8+Cb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CA9+Ca,EAw/Cb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CAx/Ca,EAkgDb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAlgDa,EA4gDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA5gDa,EAshDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,2BANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAthDa,EAgiDb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,sBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CAhiDa,EA0iDb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CA1iDa,EAojDb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,8BANX;AAOE,aAAW,mBAPb;AAQE,gBAAc;AARhB,CApjDa,EA8jDb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,gBAAc;AAPhB,CA9jDa,EAukDb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAvkDa,EAilDb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oCANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAjlDa,EA2lDb;AACE,cAAY,CACV,QADU,EAEV,UAFU,CADd;AAKE,QAAM,sBALR;AAME,UAAQ,EANV;AAOE,WAAS,sBAPX;AAQE,aAAW,UARb;AASE,gBAAc;AAThB,CA3lDa,EAsmDb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,wCANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAtmDa,EAgnDb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAhnDa,EA0nDb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,uBAPb;AAQE,gBAAc;AARhB,CA1nDa,EAooDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,qCAJR;AAKE,UAAQ,EALV;AAME,WAAS,2CANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CApoDa,EA8oDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,UAJR;AAKE,UAAQ,EALV;AAME,WAAS,UANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA9oDa,EAwpDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAxpDa,EAkqDb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAlqDa,EA4qDb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA5qDa,EAsrDb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAtrDa,EAgsDb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,0BAJR;AAKE,UAAQ,EALV;AAME,WAAS,0BANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAhsDa,EA0sDb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CA1sDa,EAotDb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CAptDa,EA8tDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA9tDa,EAwuDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CAxuDa,EAkvDb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,mBAPb;AAQE,gBAAc;AARhB,CAlvDa,EA4vDb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,8BAJR;AAKE,UAAQ,EALV;AAME,WAAS,4CANX;AAOE,aAAW,mBAPb;AAQE,gBAAc;AARhB,CA5vDa,EAswDb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,8BAJR;AAKE,UAAQ,EALV;AAME,WAAS,4CANX;AAOE,aAAW,kBAPb;AAQE,gBAAc;AARhB,CAtwDa,EAgxDb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAhxDa,EA0xDb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CA1xDa,EAoyDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,0BANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CApyDa,EA8yDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,UAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CA9yDa,EAwzDb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,kCAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CAxzDa,EAk0Db;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iDANX;AAOE,aAAW,iDAPb;AAQE,gBAAc;AARhB,CAl0Da,EA40Db;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA50Da,EAs1Db;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAt1Da,EAg2Db;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAh2Da,EA02Db;AACE,cAAY,EADd;AAEE,QAAM,wBAFR;AAGE,UAAQ,EAHV;AAIE,gBAAc;AAJhB,CA12Da,EAg3Db;AACE,cAAY,CACV,aADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAh3Da,EA03Db;AACE,cAAY,CACV,aADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CA13Da,EAo4Db;AACE,cAAY,EADd;AAEE,QAAM,eAFR;AAGE,UAAQ,EAHV;AAIE,gBAAc;AAJhB,CAp4Da,EA04Db;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,kCAJR;AAKE,UAAQ,EALV;AAME,WAAS,+CANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CA14Da,EAo5Db;AACE,cAAY,CACV,SADU,EAEV,KAFU,CADd;AAKE,QAAM,oBALR;AAME,UAAQ,CACN,MADM,CANV;AASE,WAAS,yBATX;AAUE,aAAW,mBAVb;AAWE,gBAAc;AAXhB,CAp5Da,EAi6Db;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,QAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CAj6Da,EA26Db;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA36Da,EAq7Db;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CAr7Da,EA+7Db;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CA/7Da,EAy8Db;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAz8Da,EAm9Db;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAn9Da,EA69Db;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,6BANX;AAOE,aAAW,6BAPb;AAQE,gBAAc;AARhB,CA79Da,EAu+Db;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAv+Da,EAi/Db;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAj/Da,EA2/Db;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CA3/Da,EAqgEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CArgEa,EA+gEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA/gEa,EAyhEb;AACE,cAAY,CACV,MADU,EAEV,MAFU,CADd;AAKE,QAAM,gBALR;AAME,UAAQ,EANV;AAOE,WAAS,2BAPX;AAQE,aAAW,MARb;AASE,gBAAc;AAThB,CAzhEa,EAoiEb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CApiEa,EA8iEb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA9iEa,EAwjEb;AACE,cAAY,CACV,MADU,EAEV,UAFU,CADd;AAKE,QAAM,oBALR;AAME,UAAQ,EANV;AAOE,WAAS,gCAPX;AAQE,aAAW,0BARb;AASE,gBAAc;AAThB,CAxjEa,EAmkEb;AACE,cAAY,CACV,KADU,EAEV,OAFU,CADd;AAKE,QAAM,eALR;AAME,UAAQ,EANV;AAOE,WAAS,cAPX;AAQE,aAAW,WARb;AASE,gBAAc;AAThB,CAnkEa,EA8kEb;AACE,cAAY,CACV,KADU,EAEV,OAFU,CADd;AAKE,QAAM,YALR;AAME,UAAQ,CACN,MADM,CANV;AASE,WAAS,wCATX;AAUE,aAAW,iBAVb;AAWE,gBAAc;AAXhB,CA9kEa,EA2lEb;AACE,cAAY,CACV,KADU,EAEV,OAFU,CADd;AAKE,QAAM,gBALR;AAME,UAAQ,CACN,MADM,CANV;AASE,WAAS,kCATX;AAUE,aAAW,eAVb;AAWE,gBAAc;AAXhB,CA3lEa,EAwmEb;AACE,cAAY,CACV,KADU,EAEV,OAFU,CADd;AAKE,QAAM,mBALR;AAME,UAAQ,CACN,MADM,CANV;AASE,WAAS,oCATX;AAUE,aAAW,cAVb;AAWE,gBAAc;AAXhB,CAxmEa,EAqnEb;AACE,cAAY,CACV,KADU,EAEV,OAFU,CADd;AAKE,QAAM,UALR;AAME,UAAQ,EANV;AAOE,WAAS,yCAPX;AAQE,aAAW,sBARb;AASE,gBAAc;AAThB,CArnEa,EAgoEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,SAJR;AAKE,UAAQ,CACN,MADM,CALV;AAQE,WAAS,gBARX;AASE,aAAW,gBATb;AAUE,gBAAc;AAVhB,CAhoEa,EA4oEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CA5oEa,EAspEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAtpEa,EAgqEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,QAJR;AAKE,UAAQ,EALV;AAME,WAAS,uCANX;AAOE,aAAW,kBAPb;AAQE,gBAAc;AARhB,CAhqEa,EA0qEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CA1qEa,EAorEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAprEa,EA8rEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,CACN,MADM,CALV;AAQE,WAAS,qBARX;AASE,aAAW,WATb;AAUE,gBAAc;AAVhB,CA9rEa,EA0sEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,2BANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CA1sEa,EAotEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,SAJR;AAKE,UAAQ,EALV;AAME,WAAS,iCANX;AAOE,aAAW,iCAPb;AAQE,gBAAc;AARhB,CAptEa,EA8tEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CA9tEa,EAwuEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,yBAPb;AAQE,gBAAc;AARhB,CAxuEa,EAkvEb;AACE,cAAY,CACV,cADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAlvEa,EA4vEb;AACE,cAAY,CACV,cADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA5vEa,EAswEb;AACE,cAAY,CACV,cADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAtwEa,EAgxEb;AACE,cAAY,CACV,cADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,+BANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAhxEa,EA0xEb;AACE,cAAY,CACV,cADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,SANX;AAOE,aAAW,IAPb;AAQE,gBAAc;AARhB,CA1xEa,EAoyEb;AACE,cAAY,CACV,cADU,CADd;AAIE,QAAM,sBAJR;AAKE,UAAQ,EALV;AAME,WAAS,UANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CApyEa,EA8yEb;AACE,cAAY,CACV,cADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iCANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA9yEa,EAwzEb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAxzEa,EAk0Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAl0Ea,EA40Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,mBAPb;AAQE,gBAAc;AARhB,CA50Ea,EAs1Eb;AACE,cAAY,CACV,UADU,EAEV,SAFU,CADd;AAKE,QAAM,gBALR;AAME,UAAQ,EANV;AAOE,WAAS,gBAPX;AAQE,aAAW,WARb;AASE,gBAAc;AAThB,CAt1Ea,EAi2Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAj2Ea,EA22Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,0BAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,yBAPb;AAQE,gBAAc;AARhB,CA32Ea,EAq3Eb;AACE,cAAY,CACV,YADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAr3Ea,EA+3Eb;AACE,cAAY,CACV,YADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,mBAPb;AAQE,gBAAc;AARhB,CA/3Ea,EAy4Eb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAz4Ea,EAm5Eb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CAn5Ea,EA65Eb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA75Ea,EAu6Eb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAv6Ea,EAi7Eb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAj7Ea,EA27Eb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA37Ea,EAq8Eb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAr8Ea,EA+8Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CA/8Ea,EAy9Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,iBAPb;AAQE,gBAAc;AARhB,CAz9Ea,EAm+Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,4BAPb;AAQE,gBAAc;AARhB,CAn+Ea,EA6+Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA7+Ea,EAu/Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAv/Ea,EAigFb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAjgFa,EA2gFb;AACE,cAAY,CACV,UADU,EAEV,SAFU,CADd;AAKE,QAAM,iBALR;AAME,UAAQ,EANV;AAOE,WAAS,iBAPX;AAQE,aAAW,KARb;AASE,gBAAc;AAThB,CA3gFa,EAshFb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,wBAPb;AAQE,gBAAc;AARhB,CAthFa,EAgiFb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAhiFa,EA0iFb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CA1iFa,EAojFb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CApjFa,EA8jFb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gCAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CA9jFa,CAAf,E;;;;;;;;;;;;;;;ACFA;;AAEA;AACO,IAAME,QAAQ,GAAG,CAAC;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAD,EAA+B;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA/B,EAAmE;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAnE,EAAsG;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAtG,EAA4I;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA5I,EAAkL;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAlL,EAAsN;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAtN,EAA0P;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA1P,EAAwR;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAxR,EAA2T;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA3T,EAAoW;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAApW,EAAmY;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAnY,EAA2a;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA3a,EAA4c;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA5c,EAA8e;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA9e,EAAihB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAjhB,EAAojB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAApjB,EAAulB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAvlB,EAA+nB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA/nB,EAAuqB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAvqB,EAA8sB;AAAC,UAAO,sBAAR;AAA+B,WAAQ;AAAvC,CAA9sB,EAA2vB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA3vB,EAAmyB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAnyB,EAA00B;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAA10B,EAAo3B;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAAp3B,EAA85B;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA95B,EAA87B;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA97B,EAAm+B;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAn+B,EAAggC;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAhgC,EAAqiC;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAriC,EAAokC;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAApkC,EAAgmC;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAhmC,EAAgoC;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAhoC,EAAgqC;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAhqC,EAAosC;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApsC,EAAouC;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAApuC,EAAgwC;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAhwC,EAAoyC;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApyC,EAAo0C;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAp0C,EAAi2C;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAj2C,EAA63C;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA73C,EAA25C;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA35C,EAAy7C;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAz7C,EAA09C;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA19C,EAA2/C;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA3/C,EAA6hD;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA7hD,EAAqkD;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAArkD,EAAsmD;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAtmD,EAAuoD;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAvoD,EAAyqD;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAzqD,EAAosD;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAApsD,EAAguD;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAhuD,EAAkwD;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAlwD,EAAkyD;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAlyD,EAA8zD;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA9zD,EAA01D;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA11D,EAA23D;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA33D,EAAy5D;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAz5D,EAA27D;AAAC,UAAO,GAAR;AAAY,WAAQ;AAApB,CAA37D,EAAo9D;AAAC,UAAO,GAAR;AAAY,WAAQ;AAApB,CAAp9D,EAA6+D;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA7+D,EAA0gE;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA1gE,EAAijE;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAjjE,EAA8kE;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA9kE,EAA8mE;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA9mE,EAA6oE;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA7oE,EAAgrE;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAAhrE,EAAysE;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAzsE,EAAouE;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAApuE,EAAuwE;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAAvwE,EAA+yE;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA/yE,EAAq1E;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAr1E,EAA03E;AAAC,UAAO,GAAR;AAAY,WAAQ;AAApB,CAA13E,EAAk5E;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAl5E,EAAk7E;AAAC,UAAO,yBAAR;AAAkC,WAAQ;AAA1C,CAAl7E,EAAg+E;AAAC,UAAO,oBAAR;AAA6B,WAAQ;AAArC,CAAh+E,EAAygF;AAAC,UAAO,uBAAR;AAAgC,WAAQ;AAAxC,CAAzgF,EAAqjF;AAAC,UAAO,sBAAR;AAA+B,WAAQ;AAAvC,CAArjF,EAAgmF;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAhmF,EAA4nF;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA5nF,EAAypF;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAzpF,EAAyrF;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAzrF,EAAstF;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAttF,EAAuvF;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAvvF,EAAmxF;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAnxF,EAAmzF;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAnzF,EAA+0F;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA/0F,EAA62F;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA72F,EAA04F;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA14F,EAA26F;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA36F,EAA08F;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA18F,EAA6+F;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA7+F,EAA4gG;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA5gG,EAAuiG;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAviG,EAAikG;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAjkG,EAA6lG;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA7lG,EAA0nG;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA1nG,EAA0pG;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA1pG,EAAsrG;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAtrG,EAAutG;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAvtG,EAAwvG;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAxvG,EAA2xG;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA3xG,EAA+zG;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA/zG,EAA41G;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA51G,EAAw3G;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAx3G,EAAo5G;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAp5G,EAAi7G;AAAC,UAAO,GAAR;AAAY,WAAQ;AAApB,CAAj7G,EAAy8G;AAAC,UAAO,GAAR;AAAY,WAAQ;AAApB,CAAz8G,EAAi+G;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAj+G,EAAigH;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAjgH,EAA8hH;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA9hH,EAA2jH;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA3jH,EAAylH;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAzlH,EAAunH;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAvnH,EAAkpH;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAlpH,EAAkrH;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAlrH,EAA+sH;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA/sH,EAAivH;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAjvH,EAAkxH;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAlxH,EAAmzH;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAnzH,EAA+0H;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA/0H,EAAg3H;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAh3H,EAAm5H;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAn5H,EAAq7H;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAr7H,EAAy9H;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAz9H,EAAs/H;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAt/H,EAAyhI;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAzhI,EAAojI;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAApjI,EAAilI;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAjlI,EAAinI;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAjnI,EAA8oI;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA9oI,EAA8qI;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA9qI,EAA0sI;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA1sI,EAAuuI;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAvuI,EAAuwI;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAvwI,EAAyyI;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAzyI,EAA20I;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA30I,EAAy2I;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAz2I,EAA44I;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA54I,EAA86I;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA96I,EAAg9I;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAh9I,EAAk/I;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAAl/I,EAA2gJ;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAA3gJ,EAAoiJ;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAApiJ,EAA0kJ;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA1kJ,EAAqmJ;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAArmJ,EAAsoJ;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAtoJ,EAAuqJ;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAvqJ,EAAisJ;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAjsJ,EAA2tJ;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA3tJ,EAAuvJ;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAAvvJ,EAA8xJ;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA9xJ,EAA8zJ;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA9zJ,EAA61J;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA71J,EAA43J;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAA53J,EAAq5J;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAr5J,EAAk7J;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAl7J,EAA88J;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA98J,EAA2+J;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA3+J,EAA2gK;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA3gK,EAA2iK;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA3iK,EAAykK;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAzkK,EAAwmK;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAxmK,EAAsoK;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAtoK,EAAwqK;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAxqK,EAAysK;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAzsK,EAA2uK;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA3uK,EAA8wK;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA9wK,EAAgzK;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAhzK,EAAg1K;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAh1K,EAA62K;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA72K,EAA+4K;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA/4K,EAA+6K;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA/6K,EAAi9K;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAj9K,EAAm/K;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAn/K,EAAohL;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAphL,EAAijL;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAjjL,EAAulL;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAvlL,EAAwnL;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAxnL,EAAypL;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAzpL,EAA2rL;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA3rL,EAAstL;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAttL,EAAwvL;AAAC,UAAO,GAAR;AAAY,WAAQ;AAApB,CAAxvL,EAAgxL;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAhxL,EAA6yL;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA7yL,EAA40L;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA50L,EAAw2L;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAx2L,EAAm4L;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAn4L,EAAk6L;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAl6L,EAAo8L;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAp8L,EAAi+L;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAj+L,EAA+/L;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA//L,EAA6hM;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA7hM,EAA4jM;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA5jM,EAA6lM;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA7lM,EAA+nM;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA/nM,EAAiqM;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAjqM,EAAgsM;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAhsM,EAA0tM;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA1tM,EAAwvM;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAxvM,EAAoxM;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAApxM,EAAozM;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApzM,EAAk1M;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAAl1M,EAA02M;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAA12M,EAAk4M;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAl4M,EAAs6M;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAt6M,EAAw8M;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAx8M,EAAo+M;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAp+M,EAAsgN;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAtgN,EAAmiN;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAniN,EAAokN;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAApkN,EAAqmN;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAArmN,EAAkoN;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAloN,EAAsqN;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAtqN,EAAqsN;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAArsN,EAAquN;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAruN,EAAowN;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAApwN,EAA8xN;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA9xN,EAAwzN;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAxzN,EAA01N;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA11N,EAA63N;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA73N,EAA65N;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA75N,EAA47N;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA57N,EAAg+N;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAh+N,EAA4/N;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA5/N,EAAwhO;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAxhO,EAA0jO;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA1jO,EAAwlO;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAxlO,EAAioO;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAAjoO,EAAuqO;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAvqO,EAAwsO;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAxsO,EAAkuO;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAluO,EAA8vO;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAA9vO,EAAsxO;AAAC,UAAO,sBAAR;AAA+B,WAAQ;AAAvC,CAAtxO,EAAg0O;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAh0O,EAAg2O;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAh2O,EAAq4O;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAr4O,EAAu6O;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAv6O,EAAm8O;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAn8O,EAAg+O;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAh+O,EAAogP;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAApgP,EAAgiP;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAhiP,EAA8jP;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA9jP,EAAwlP;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAxlP,EAAinP;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAjnP,EAA4oP;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA5oP,EAAsqP;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAtqP,EAAosP;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAApsP,EAAwuP;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAxuP,EAA2wP;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA3wP,EAAqyP;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAryP,EAAm0P;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAn0P,EAAg2P;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAh2P,EAA03P;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA13P,EAA05P;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAA15P,EAAm7P;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAn7P,EAAo9P;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAp9P,EAAi/P;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAj/P,EAAihQ;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAjhQ,EAA8iQ;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA9iQ,EAA0kQ;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA1kQ,EAAgnQ;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAAhnQ,EAAwoQ;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAAxoQ,EAAgqQ;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAAhqQ,EAAwrQ;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAAxrQ,EAAgtQ;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAhtQ,EAA6uQ;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA7uQ,EAA2wQ;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA3wQ,EAAsyQ;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAtyQ,EAA00Q;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA10Q,EAA82Q;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA92Q,EAA64Q;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAA74Q,EAAo7Q;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAp7Q,EAAm9Q;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAn9Q,EAAm/Q;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAn/Q,EAAmhR;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAnhR,EAAojR;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAApjR,EAAolR;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAplR,EAA8mR;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA9mR,EAA2oR;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAA3oR,EAAoqR;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApqR,EAAksR;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAlsR,EAA6tR;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA7tR,EAAuvR;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAvvR,EAAmxR;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAnxR,EAA+yR;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA/yR,EAA00R;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA10R,EAAo2R;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAp2R,EAAk4R;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAl4R,EAAm6R;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAn6R,EAAi8R;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAj8R,EAA+9R;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA/9R,EAAggS;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAhgS,EAAiiS;AAAC,UAAO,sBAAR;AAA+B,WAAQ;AAAvC,CAAjiS,EAA2kS;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA3kS,EAAgnS;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAhnS,EAA+oS;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA/oS,EAA8qS;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA9qS,EAAktS;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAltS,EAAkvS;AAAC,UAAO,oBAAR;AAA6B,WAAQ;AAArC,CAAlvS,EAA0xS;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA1xS,EAAwzS;AAAC,UAAO,uBAAR;AAAgC,WAAQ;AAAxC,CAAxzS,EAAm2S;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAn2S,EAA+3S;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA/3S,EAAk6S;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAl6S,EAAi8S;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAj8S,EAAm+S;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAn+S,EAAwgT;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAxgT,EAAoiT;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAApiT,EAAykT;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAzkT,EAAomT;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApmT,EAAkoT;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAloT,EAAuqT;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAvqT,EAA2sT;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA3sT,EAAsuT;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAtuT,EAAswT;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAtwT,EAAoyT;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAApyT,EAAi0T;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAj0T,EAA81T;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA91T,EAAg4T;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAh4T,EAAk6T;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAl6T,EAAg8T;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAh8T,EAA+9T;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA/9T,EAA+/T;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA//T,EAA+hU;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA/hU,EAAokU;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAApkU,EAA+lU;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA/lU,EAA4nU;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA5nU,EAA2pU;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA3pU,EAA0rU;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA1rU,EAA0tU;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA1tU,EAA0vU;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA1vU,EAAyxU;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAzxU,EAAszU;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAtzU,EAAo1U;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAp1U,EAA82U;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA92U,EAA04U;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA14U,EAAq6U;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAr6U,EAAg8U;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAh8U,EAA29U;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA39U,EAAq/U;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAr/U,EAAghV;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAhhV,EAA+iV;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA/iV,EAAglV;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAhlV,EAAonV;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAApnV,EAAopV;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAppV,EAAsrV;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAtrV,EAAwtV;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAxtV,EAAwvV;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAxvV,EAAsxV;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAtxV,EAAyzV;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAzzV,EAAm1V;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAn1V,EAAw3V;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAx3V,EAA05V;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA15V,EAAw7V;AAAC,UAAO,oBAAR;AAA6B,WAAQ;AAArC,CAAx7V,EAAg+V;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAh+V,EAA8/V;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA9/V,EAAwhW;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAxhW,EAAkjW;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAljW,EAA4kW;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA5kW,EAAsmW;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAtmW,EAAmoW;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAnoW,EAA+pW;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA/pW,EAA6rW;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA7rW,EAAytW;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAztW,EAAwvW;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAxvW,EAAoxW;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApxW,EAAkzW;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAlzW,EAAo1W;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAp1W,EAAq3W;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAr3W,EAAi5W;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAj5W,EAAq7W;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAr7W,EAAi9W;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAj9W,EAAg/W;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAh/W,EAA2gX;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA3gX,EAAsiX;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAtiX,EAAikX;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAjkX,EAA4lX;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA5lX,EAAwnX;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAxnX,EAAwpX;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAxpX,EAA4rX;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA5rX,EAA8tX;AAAC,UAAO,uBAAR;AAAgC,WAAQ;AAAxC,CAA9tX,EAAywX;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAzwX,EAA2yX;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA3yX,EAA20X;AAAC,UAAO,oBAAR;AAA6B,WAAQ;AAArC,CAA30X,EAAm3X;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAAn3X,EAA05X;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA15X,EAAu7X;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAv7X,EAAo9X;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAp9X,EAAm/X;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAn/X,EAAqhY;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAArhY,EAAijY;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAjjY,EAAolY;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAplY,EAAynY;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAAznY,EAAgqY;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAhqY,EAAmsY;AAAC,UAAO,oBAAR;AAA6B,WAAQ;AAArC,CAAnsY,EAA2uY;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA3uY,EAA8wY;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA9wY,EAA6yY;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA7yY,EAA60Y;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA70Y,EAA22Y;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA32Y,EAA84Y;AAAC,UAAO,uBAAR;AAAgC,WAAQ;AAAxC,CAA94Y,EAAy7Y;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAz7Y,EAA29Y;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA39Y,EAA8/Y;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA9/Y,EAA4hZ;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA5hZ,EAAkkZ;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAlkZ,EAAumZ;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAAvmZ,EAA8oZ;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA9oZ,EAAwqZ;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAxqZ,EAA0sZ;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA1sZ,EAAquZ;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAruZ,EAAqwZ;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAArwZ,EAAoyZ;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAApyZ,EAAm0Z;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAn0Z,EAAi2Z;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAAj2Z,EAAu4Z;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAv4Z,EAA46Z;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA56Z,EAAk9Z;AAAC,UAAO,yBAAR;AAAkC,WAAQ;AAA1C,CAAl9Z,EAA+/Z;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA//Z,EAA2ha;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA3ha,EAA+ja;AAAC,UAAO,wBAAR;AAAiC,WAAQ;AAAzC,CAA/ja,EAA2ma;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA3ma,EAA4oa;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA5oa,EAAgra;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAhra,EAAota;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAApta,EAAwva;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAxva,EAA4xa;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA5xa,EAA4za;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA5za,EAAg2a;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAh2a,EAAi4a;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAj4a,EAAg6a;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAh6a,EAAg8a;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAh8a,EAAg+a;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAh+a,EAAmgb;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAngb,EAAsib;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAtib,EAA0kb;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA1kb,EAAymb;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAzmb,EAAqob;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAArob,EAAkqb;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAlqb,EAA+rb;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA/rb,EAA8tb;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA9tb,EAA8vb;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA9vb,EAA+xb;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAA/xb,EAAs0b;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAt0b,EAAq2b;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAr2b,EAAo4b;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAp4b,EAAm6b;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAn6b,EAAm8b;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAn8b,EAAg+b;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAh+b,EAAkgc;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAlgc,EAAiic;AAAC,UAAO,oBAAR;AAA6B,WAAQ;AAArC,CAAjic,EAAykc;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAzkc,EAAomc;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAApmc,EAAmoc;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAnoc,EAAgqc;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAhqc,EAAisc;AAAC,UAAO,0BAAR;AAAmC,WAAQ;AAA3C,CAAjsc,EAA+uc;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAA/uc,EAAsxc;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAtxc,EAAszc;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAtzc,EAAm1c;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAn1c,EAAi3c;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAj3c,EAA+4c;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA/4c,EAAo7c;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAp7c,EAAy9c;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAz9c,EAAm/c;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAn/c,EAAshd;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAthd,EAA+jd;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA/jd,EAA8ld;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA9ld,EAA+nd;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA/nd,EAAoqd;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAApqd,EAAmsd;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAnsd,EAA8td;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA9td,EAA6vd;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA7vd,EAA4xd;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA5xd,EAA+zd;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA/zd,EAAi2d;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAj2d,EAAo4d;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAp4d,EAAu6d;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAv6d,EAAo8d;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAp8d,EAAo+d;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAp+d,EAA6/d;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA7/d,EAA0he;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA1he,EAA8je;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA9je,EAAome;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAApme,EAAyoe;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAzoe,EAA8qe;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAA9qe,EAAute;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAvte,EAAgwe;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAhwe,EAAkye;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAlye,EAA2ze;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA3ze,EAAg2e;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAh2e,EAAg4e;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAh4e,EAA85e;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA95e,EAA47e;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA57e,EAA89e;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA99e,EAA4/e;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA5/e,EAAwhf;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAxhf,EAA0jf;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA1jf,EAA4lf;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA5lf,EAAiof;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAjof,EAAkqf;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAlqf,EAAmsf;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAnsf,EAAouf;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApuf,EAAkwf;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAlwf,EAAgyf;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAhyf,EAA8zf;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA9zf,EAA41f;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA51f,EAAy3f;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAz3f,EAAu5f;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAv5f,EAAk7f;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAl7f,EAA88f;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA98f,EAAw+f;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAx+f,EAAoggB;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAApggB,EAA6hgB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA7hgB,EAA8jgB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA9jgB,EAA4lgB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA5lgB,EAA0ngB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA1ngB,EAAwpgB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAxpgB,EAAsrgB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAtrgB,EAAstgB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAttgB,EAAqvgB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAArvgB,EAAkxgB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAlxgB,EAAozgB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAApzgB,EAAm1gB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAn1gB,EAA+2gB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA/2gB,EAA44gB;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA54gB,EAAk7gB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAl7gB,EAAq9gB;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAr9gB,EAA8/gB;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA9/gB,EAAwhhB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAxhhB,EAAyjhB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAzjhB,EAAslhB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAtlhB,EAAqnhB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAArnhB,EAAuphB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAvphB,EAAmrhB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAnrhB,EAAithB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAjthB,EAA8uhB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA9uhB,EAA+whB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA/whB,EAA2yhB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA3yhB,EAA20hB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA30hB,EAA82hB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA92hB,EAAg5hB;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAh5hB,EAA06hB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA16hB,EAA88hB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA98hB,EAAk/hB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAl/hB,EAAuhiB;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAvhiB,EAAgjiB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAhjiB,EAAoliB;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAApliB,EAA2niB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA3niB,EAAypiB;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAAzpiB,EAAgsiB;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAAhsiB,EAAsuiB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAtuiB,EAAmwiB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAnwiB,EAAqyiB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAryiB,EAAs0iB;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAt0iB,EAA+2iB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA/2iB,EAAo5iB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAp5iB,EAAm7iB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAn7iB,EAAs9iB;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAt9iB,EAA+/iB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA//iB,EAA4hjB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA5hjB,EAA+jjB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA/jjB,EAA+ljB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA/ljB,EAAiojB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAjojB,EAAmqjB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAnqjB,EAAmsjB;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAnsjB,EAA6tjB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA7tjB,EAA4vjB;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA5vjB,EAAkyjB;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAAlyjB,EAAy0jB;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAAz0jB,EAA+2jB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA/2jB,EAA24jB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA34jB,EAAw6jB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAx6jB,EAAy8jB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAz8jB,EAAw+jB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAx+jB,EAA2gkB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA3gkB,EAAgjkB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAhjkB,EAAglkB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAhlkB,EAAonkB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApnkB,EAAkpkB;AAAC,UAAO,wBAAR;AAAiC,WAAQ;AAAzC,CAAlpkB,EAA8rkB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA9rkB,EAA2tkB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA3tkB,EAAyvkB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAzvkB,EAA0xkB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA1xkB,EAAuzkB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAvzkB,EAAs1kB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAt1kB,EAAo3kB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAp3kB,EAAo5kB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAp5kB,EAAo7kB;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAp7kB,EAA69kB;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA79kB,EAAmglB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAnglB,EAAwilB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAxilB,EAA2klB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA3klB,EAAsmlB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAtmlB,EAAkolB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAlolB,EAA6plB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA7plB,EAAgslB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAhslB,EAAiulB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAjulB,EAA6vlB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA7vlB,EAAwxlB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAxxlB,EAAszlB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAtzlB,EAAu1lB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAv1lB,EAAk3lB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAl3lB,EAAk5lB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAl5lB,EAAi7lB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAj7lB,EAA88lB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA98lB,EAA8+lB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA9+lB,EAAmhmB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAnhmB,EAAijmB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAjjmB,EAAqlmB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAArlmB,EAAqnmB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAArnmB,EAAypmB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAzpmB,EAA4rmB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA5rmB,EAAutmB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAvtmB,EAAqvmB;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAArvmB,EAA4xmB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA5xmB,EAAwzmB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAxzmB,EAAu1mB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAv1mB,EAAo3mB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAp3mB,EAAm5mB;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAAn5mB,EAAy7mB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAz7mB,EAAq9mB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAr9mB,EAAk/mB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAl/mB,EAA+gnB;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAA/gnB,EAAwinB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAxinB,EAAyknB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAzknB,EAAomnB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAApmnB,EAAionB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAjonB,EAA8pnB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA9pnB,EAA0rnB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA1rnB,EAA4tnB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA5tnB,EAA4vnB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA5vnB,EAAiynB;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAjynB,EAA2znB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA3znB,EAAu1nB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAv1nB,EAAu3nB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAv3nB,EAAs5nB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAt5nB,EAAk7nB;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAl7nB,EAA28nB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA38nB,EAA8+nB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA9+nB,EAA0goB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA1goB,EAAyioB;AAAC,UAAO,sBAAR;AAA+B,WAAQ;AAAvC,CAAzioB,EAAmloB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAnloB,EAAinoB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAjnoB,EAAgpoB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAhpoB,EAA2qoB;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAA3qoB,EAAotoB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAptoB,EAAgvoB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAhvoB,EAAkxoB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAlxoB,EAAmzoB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAnzoB,EAAi1oB;AAAC,UAAO,GAAR;AAAY,WAAQ;AAApB,CAAj1oB,EAAw2oB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAx2oB,EAA04oB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA14oB,EAA26oB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA36oB,EAA48oB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA58oB,EAA++oB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA/+oB,EAAghpB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAhhpB,EAAmjpB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAnjpB,EAAmlpB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAnlpB,EAAunpB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAvnpB,EAA4ppB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA5ppB,EAA6rpB;AAAC,UAAO,oBAAR;AAA6B,WAAQ;AAArC,CAA7rpB,EAAqupB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAArupB,EAAmwpB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAnwpB,EAAuypB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAvypB,EAAq0pB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAr0pB,EAAi2pB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAj2pB,EAAg4pB;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAh4pB,EAAy6pB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAz6pB,EAAq8pB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAr8pB,EAAk+pB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAl+pB,EAA6/pB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA7/pB,EAAwhqB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAxhqB,EAAsjqB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAtjqB,EAAqlqB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAArlqB,CAAjB,C;;;;;;;;;;;;;;;ACJP,IAAIC,SAAS,GAAI,YAAY;AACzB,WAASA,SAAT,CAAmBC,KAAnB,EAA0B;AACtB,QAAIC,GAAG,GAAG,KAAKA,GAAL,GAAW7F,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAArB;AACA4F,OAAG,CAACC,SAAJ,GAAgB,qBAAhB;AACAF,SAAK,GAAG9K,MAAM,CAACiL,MAAP,CAAc,EAAd,EAAkBH,KAAlB,CAAR;AACA9K,UAAM,CAACiL,MAAP,CAAcH,KAAd,EAAqB;AACjBI,qBAAe,EAAE,sBADA;AAEjBC,YAAM,EAAE;AAFS,KAArB;AAIAJ,OAAG,CAACD,KAAJ,CAAUM,OAAV,GAAoB,+FAApB;;AACA,SAAK,IAAIjL,GAAT,IAAgB2K,KAAhB,EAAuB;AACnB,UAAIA,KAAK,CAACO,cAAN,CAAqBlL,GAArB,CAAJ,EAA+B;AAC3B4K,WAAG,CAACD,KAAJ,CAAU3K,GAAV,IAAiB2K,KAAK,CAAC3K,GAAD,CAAtB;AACH;AACJ;AACJ;;AACD0K,WAAS,CAACS,SAAV,CAAoBC,MAApB,GAA6B,UAAUC,IAAV,EAAgB;AACzC,QAAIC,QAAQ,GAAG,KAAKV,GAAL,CAASD,KAAxB;AACAW,YAAQ,CAACrG,KAAT,GAAiBoG,IAAI,CAACpG,KAAL,GAAa,IAA9B;AACAqG,YAAQ,CAACpG,MAAT,GAAkBmG,IAAI,CAACnG,MAAL,GAAc,IAAhC;AACAoG,YAAQ,CAACC,IAAT,GAAgBF,IAAI,CAACG,CAAL,GAAS,IAAzB;AACAF,YAAQ,CAACG,GAAT,GAAeJ,IAAI,CAACK,CAAL,GAAS,IAAxB;AACH,GAND;;AAOAhB,WAAS,CAACS,SAAV,CAAoBQ,IAApB,GAA2B,YAAY;AACnC,SAAKf,GAAL,CAASD,KAAT,CAAeiB,OAAf,GAAyB,GAAzB;AACH,GAFD;;AAGAlB,WAAS,CAACS,SAAV,CAAoBU,IAApB,GAA2B,YAAY;AACnC,QAAIC,KAAK,GAAG,IAAZ;;AACAC,gBAAY,CAAC,KAAKC,YAAN,CAAZ;AACA,SAAKpB,GAAL,CAASD,KAAT,CAAeiB,OAAf,GAAyB,GAAzB;AACA,SAAKI,YAAL,GAAoBC,UAAU,CAAC,YAAY;AACvCH,WAAK,CAACH,IAAN;AACH,KAF6B,EAE3B,GAF2B,CAA9B;AAGH,GAPD;;AAQA,SAAOjB,SAAP;AACH,CAnCgB,EAAjB;;AAoCA,6BAAe,oCAAUwB,EAAV,EAAcC,IAAd,EAAoB;AAC/BA,MAAI,GAAGA,IAAI,IAAI,EAAf;AACA,MAAIC,OAAO,GAAGF,EAAE,CAACE,OAAjB;;AACA,MAAI,CAACA,OAAO,CAACC,SAAb,EAAwB;AACpB,UAAM,IAAIC,KAAJ,CAAU,yDAAV,CAAN;AACH;;AACD,MAAIF,OAAO,CAACG,cAAR,EAAJ,EAA8B;AAC1B,UAAM,IAAID,KAAJ,CAAU,uEAAV,CAAN;AACH;;AACD,MAAIE,aAAa,GAAGzH,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAApB;AACAwH,eAAa,CAAC7B,KAAd,CAAoBM,OAApB,GAA8B,oFAA9B;AACAuB,eAAa,CAAC3B,SAAd,GAA0B,+BAA1B;AACA,MAAI4B,UAAU,GAAG,EAAjB;AACA,MAAI7B,GAAG,GAAGsB,EAAE,CAACtB,GAAb;AACAA,KAAG,CAAC7D,WAAJ,CAAgByF,aAAhB;AACA,MAAIE,aAAa,GAAGC,gBAAgB,CAAC/B,GAAD,CAApC;;AACA,MAAI8B,aAAa,CAACE,QAAd,KAA2B,QAA/B,EAAyC;AACrChC,OAAG,CAACD,KAAJ,CAAUiC,QAAV,GAAqB,UAArB;AACH;;AACDV,IAAE,CAACW,EAAH,CAAM,UAAN,EAAkB,YAAY;AAC1B,QAAIT,OAAO,CAACC,SAAZ,EAAuB;AACnB,UAAIS,KAAK,GAAG,CAAZ;AACAV,aAAO,CAACW,gBAAR,CAAyB,UAAUC,KAAV,EAAiB;AACtC,YAAI,CAACA,KAAK,CAACC,kBAAX,EAA+B;AAC3B;AACH;;AACD,YAAIC,UAAU,GAAGF,KAAK,CAACC,kBAAN,EAAjB;;AACA,aAAK,IAAI5I,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6I,UAAU,CAACnM,MAA/B,EAAuCsD,CAAC,EAAxC,EAA4C;AACxC,cAAI,CAACoI,UAAU,CAACK,KAAD,CAAf,EAAwB;AACpBL,sBAAU,CAACK,KAAD,CAAV,GAAoB,IAAIpC,SAAJ,CAAcyB,IAAI,CAACxB,KAAnB,CAApB;AACA6B,yBAAa,CAACzF,WAAd,CAA0B0F,UAAU,CAACK,KAAD,CAAV,CAAkBlC,GAA5C;AACH;;AACD6B,oBAAU,CAACK,KAAD,CAAV,CAAkBjB,IAAlB;AACAY,oBAAU,CAACK,KAAD,CAAV,CAAkB1B,MAAlB,CAAyB8B,UAAU,CAAC7I,CAAD,CAAnC;AACAyI,eAAK;AACR;AACJ,OAdD;;AAeA,WAAK,IAAIzI,CAAC,GAAGyI,KAAb,EAAoBzI,CAAC,GAAGoI,UAAU,CAAC1L,MAAnC,EAA2CsD,CAAC,EAA5C,EAAgD;AAC5CoI,kBAAU,CAACpI,CAAD,CAAV,CAAcsH,IAAd;AACH;AACJ;AACJ,GAtBD;AAuBH,C;;;;;;;;;;;;;;;;;;AC9ED;AACA;AACA;AAEA,IAAMwB,WAAW,GAAGjE,mEAAA,CAAyB,WAAzB,KAAyC,CAA7D;AACA,IAAMkE,YAAY,GAAGD,WAAW,8BAAuBjE,wDAAvB,SAA0C,EAA1E;AAEO,SAASvB,QAAT,GAAoB;AACvB,MAAM2C,IAAI,wDACyBjD,MAAM,CAAC/C,QAAP,CAAgBC,IADzC,2RAWgCc,oEAXhC,8IAagCA,kEAbhC,wLAgBgCA,sEAhBhC,+JAmBgCA,wEAnBhC,gJAsBgCA,kEAtBhC,0FAuBgCA,kEAvBhC,oSA2BgCA,kEA3BhC,qOAqCZ+H,YArCY,iBAuCZlE,2DAvCY,wIAAV;AAiDA,MAAMmE,IAAI,GAAG,IAAIC,IAAJ,CAAS,CAAChD,IAAD,CAAT,EAAiB;AAC1BnJ,QAAI,EAAE,yBADoB;AAE1BoM,YAAQ,EAAE;AAFgB,GAAjB,CAAb,CAlDuB,CAsDvB;;AACArG,8DAAY,CAACmG,IAAD,EAAO7I,wDAAA,GAAe,OAAtB,CAAZ;AACH,C;;;;;;;;;;;;;;;;;;AC/DD;AAEO,SAASgJ,aAAT,CAAuBC,aAAvB,EAAsC;AACzC,MAAIC,MAAM,GAAG,EAAb;AACA,MAAIC,GAAJ;AAEA,MAAIC,eAAe,GAAG,EAAtB;AACA,MAAIC,cAAc,GAAG,EAArB;AAEA,MAAMC,cAAc,GAAGzG,MAAM,CAAC4E,UAA9B;AACA,MAAM8B,eAAe,GAAG1G,MAAM,CAAC2G,WAA/B;;AAEA,WAAS/B,UAAT,CAAoBgC,IAApB,EAA0BC,KAA1B,EAAiC;AAC7B,QAAIC,EAAE,GAAGL,cAAc,CAACG,IAAD,EAAOC,KAAP,CAAvB;;AACAL,kBAAc,CAAC7M,IAAf,CAAoBmN,EAApB;;AACA,WAAOA,EAAP;AACH;;AAAA;;AACD,WAASH,WAAT,CAAqBC,IAArB,EAA2BG,GAA3B,EAAgC;AAC5B,QAAID,EAAE,GAAGJ,eAAe,CAACE,IAAD,EAAOG,GAAP,CAAxB;;AACAR,mBAAe,CAAC5M,IAAhB,CAAqBmN,EAArB;;AACA,WAAOA,EAAP;AACH;;AAAA;;AACD,WAASE,iBAAT,GAA6B;AACzB,SAAK,IAAIhK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuJ,eAAe,CAAC7M,MAApC,EAA4CsD,CAAC,EAA7C,EAAiD;AAC7CiK,mBAAa,CAACV,eAAe,CAACvJ,CAAD,CAAhB,CAAb;AACH;;AACD,SAAK,IAAIA,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwJ,cAAc,CAAC9M,MAAnC,EAA2CsD,CAAC,EAA5C,EAAgD;AAC5C0H,kBAAY,CAAC8B,cAAc,CAACxJ,CAAD,CAAf,CAAZ;AACH;;AACDuJ,mBAAe,GAAG,EAAlB;AACAC,kBAAc,GAAG,EAAjB;AACH;;AACD,MAAMU,OAAO,GAAG,EAAhB;;AACA,WAASC,cAAT,CAAwBC,KAAxB,EAA+B;AAC3B,QAAMC,KAAK,GAAGD,KAAK,CAAC5B,EAApB;AACA,QAAM8B,YAAY,GAAGF,KAAK,CAACG,SAA3B;;AACAH,SAAK,CAAC5B,EAAN,GAAW,UAAUgC,SAAV,EAAqB;AAC5B,UAAMC,GAAG,GAAGJ,KAAK,CAACK,KAAN,CAAYN,KAAZ,EAAmBO,SAAnB,CAAZ;;AACAT,aAAO,CAACvN,IAAR,CAAa6N,SAAb;;AACA,aAAOC,GAAP;AACH,KAJD;;AAKAL,SAAK,CAACG,SAAN,GAAkB,YAAY;AAC1B,UAAME,GAAG,GAAGH,YAAY,CAACI,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,CAAZ;AACAvB,mBAAa,IAAIA,aAAa,CAACgB,KAAD,CAA9B;AACA,aAAOK,GAAP;AACH,KAJD;AAKH;;AAED,WAASG,iBAAT,CAA2BR,KAA3B,EAAkC;AAC9BF,WAAO,CAACxO,OAAR,CAAgB,UAAU8O,SAAV,EAAqB;AACjC,UAAIJ,KAAJ,EAAW;AACPA,aAAK,CAACS,GAAN,CAAUL,SAAV;AACH;AACJ,KAJD;;AAMAN,WAAO,CAACxN,MAAR,GAAiB,CAAjB;AACH;;AAED,MAAIoO,aAAJ;AAEA,SAAO;AACHC,UADG,oBACM;AACL,UAAID,aAAJ,EAAmB;AACfA,qBAAa,CAACC,MAAd;AACH;AACJ,KALE;AAOHC,WAPG,qBAOO;AACN,UAAIF,aAAJ,EAAmB;AACfA,qBAAa,CAACE,OAAd;AACAF,qBAAa,GAAG,IAAhB;AACH;AACJ,KAZE;AAcHG,cAdG,wBAcU;AACT,aAAOH,aAAa,CAACG,UAAd,CAAyB;AAC5BC,kBAAU,EAAE,CADgB;AAE5BC,yBAAiB,EAAE,CAAC,SAAD;AAFS,OAAzB,CAAP;AAIH,KAnBE;AAqBHC,aArBG,uBAqBS;AACR,aAAON,aAAa,CAACM,SAAd,EAAP;AACH,KAvBE;AAyBHzH,OAzBG,eAyBC0H,EAzBD,EAyBKxG,KAzBL,EAyBY;AAEX,UAAI,CAACiG,aAAL,EAAoB;AAChBA,qBAAa,GAAGQ,OAAO,CAACC,IAAR,CAAaF,EAAb,EAAiBxG,KAAK,CAACf,QAAN,GAAiB,MAAjB,GAA0B,EAA3C,EAA+C;AAC3DG,kBAAQ,EAAEY,KAAK,CAACZ,QAD2C;AAE3DC,sBAAY,EAAEW,KAAK,CAACX;AAFuC,SAA/C,CAAhB;;AAIA,YAAIW,KAAK,CAACX,YAAN,IAAsBW,KAAK,CAACZ,QAAN,KAAmB,QAA7C,EAAuD;AACnD,cAAI;AACAuH,4EAAkB,CAACV,aAAa,CAACW,KAAd,EAAD,EAAwB;AACtCC,2BAAa,EAAE;AADuB,aAAxB,CAAlB;AAGH,WAJD,CAKA,OAAOC,CAAP,EAAU;AACNC,mBAAO,CAACC,KAAR,CAAcF,CAAd;AACH;AACJ;;AACDxB,sBAAc,CAACW,aAAD,CAAd;AACH,OAlBU,CAoBX;AACA;AACA;AACA;AAEA;;;AACAd,uBAAiB;;AACjBY,uBAAiB,CAACE,aAAD,CAAjB,CA3BW,CA4BX;;;AACAzB,YAAM,CAACyC,MAAP,GAAgB,IAAhB,CA7BW,CA+BX;;AAEA,UAAMC,YAAY,GAAGlH,KAAK,CAACK,OAA3B;AAEA,UAAM0E,IAAI,GAAG,IAAIoC,QAAJ,CACT,SADS,EACE,KADF,EACS,YADT,EACuB,aADvB,EACsC,WADtC,EAET,kBAAkBD,YAAlB,GAAiC,kBAFxB,CAAb;AAIA,UAAMhQ,MAAM,GAAG6N,IAAI,CAACkB,aAAD,EAAgBzB,MAAhB,EAAwBzB,UAAxB,EAAoC+B,WAApC,EAAiD9E,KAAK,CAACC,OAAvD,CAAnB;AACA,UAAImH,UAAU,GAAG,CAAjB;;AAEA,UAAIlQ,MAAM,IAAI,QAAOA,MAAP,MAAkB,QAAhC,EAA0C;AACtC,YAAMmQ,SAAS,GAAG,CAAC,IAAIC,IAAJ,EAAnB;AACArB,qBAAa,CAACP,SAAd,CAAwBxO,MAAxB,EAAgC,IAAhC;AACA,YAAMqQ,OAAO,GAAG,CAAC,IAAID,IAAJ,EAAjB;AACAF,kBAAU,GAAGG,OAAO,GAAGF,SAAvB;AACH;;AAED,UAAI5C,GAAJ,EAAS;AACL3D,SAAC,CAAC2D,GAAG,CAAC+C,UAAL,CAAD,CAAkBC,MAAlB;AACAhD,WAAG,CAACiD,OAAJ;AACAjD,WAAG,GAAG,IAAN;AACH;;AAED,UAAID,MAAM,CAACyC,MAAX,EAAmB;AACfxC,WAAG,GAAG,IAAIkD,GAAG,CAACC,GAAR,CAAY;AACdC,mBAAS,EAAE;AADG,SAAZ,CAAN;AAGA/G,SAAC,CAAC2D,GAAG,CAAC+C,UAAL,CAAD,CAAkBM,GAAlB,CAAsB;AAClBpE,kBAAQ,EAAE,UADQ;AAElBqE,eAAK,EAAE,CAFW;AAGlBxF,aAAG,EAAE,CAHa;AAIlByF,gBAAM,EAAE;AAJU,SAAtB;AAMAlH,SAAC,CAAC,kBAAD,CAAD,CAAsBmH,MAAtB,CAA6BxD,GAAG,CAAC+C,UAAjC;AAEA,YAAIU,gBAAgB,GAAG1D,MAAM,CAAC0D,gBAAP,IAA2B,EAAlD;;AACA,aAAK,IAAIC,IAAT,IAAiB3D,MAAM,CAACyC,MAAxB,EAAgC;AAC5B,cAAImB,KAAK,GAAG5D,MAAM,CAACyC,MAAP,CAAckB,IAAd,CAAZ;;AACA,cAAIA,IAAI,KAAK,UAAT,IAAuBA,IAAI,KAAK,gBAApC,EAAsD;AAClD,gBAAIE,OAAO,GAAG,KAAd,CADkD,CAElD;;AACA,gBAAIC,UAAU,GAAG,IAAjB;;AACA,gBAAIJ,gBAAgB,CAACC,IAAD,CAApB,EAA4B;AACxB,kBAAID,gBAAgB,CAACC,IAAD,CAAhB,CAAuB/Q,OAA3B,EAAoC;AAChCkR,0BAAU,GAAG7D,GAAG,CAAC8D,GAAJ,CAAQ/D,MAAM,CAACyC,MAAf,EAAuBkB,IAAvB,EAA6BD,gBAAgB,CAACC,IAAD,CAAhB,CAAuB/Q,OAApD,CAAb;AACH,eAFD,MAGK,IAAI8Q,gBAAgB,CAACC,IAAD,CAAhB,CAAuBK,GAAvB,IAA8B,IAAlC,EAAwC;AACzCF,0BAAU,GAAG7D,GAAG,CAAC8D,GAAJ,CAAQ/D,MAAM,CAACyC,MAAf,EAAuBkB,IAAvB,EAA6BD,gBAAgB,CAACC,IAAD,CAAhB,CAAuBK,GAApD,EAAyDN,gBAAgB,CAACC,IAAD,CAAhB,CAAuBM,GAAhF,CAAb;AACH;AACJ;;AACD,gBAAI,OAAOC,GAAP,KAAe,QAAnB,EAA6B;AACzB,kBAAI;AACA,oBAAIC,QAAQ,GAAGlC,OAAO,CAACmC,KAAR,CAAcC,KAAd,CAAoBT,KAApB,CAAf;AACAC,uBAAO,GAAG,CAAC,CAACM,QAAZ;;AACA,oBAAIN,OAAJ,EAAa;AACTD,uBAAK,GAAG3B,OAAO,CAACmC,KAAR,CAAcE,SAAd,CAAwBH,QAAxB,EAAkC,MAAlC,CAAR;AACH;AACJ,eAND,CAOA,OAAO7B,CAAP,EAAU,CAAE;AACf;;AACD,gBAAI,CAACwB,UAAL,EAAiB;AACbA,wBAAU,GAAG7D,GAAG,CAAC4D,OAAO,GAAG,UAAH,GAAgB,KAAxB,CAAH,CAAkC7D,MAAM,CAACyC,MAAzC,EAAiDkB,IAAjD,CAAb;AACH;;AACD3D,kBAAM,CAACyC,MAAP,CAAc8B,QAAd,IAA0BT,UAAU,CAACS,QAAX,CAAoBvE,MAAM,CAACyC,MAAP,CAAc8B,QAAlC,CAA1B;AACAvE,kBAAM,CAACyC,MAAP,CAAc+B,cAAd,IAAgCV,UAAU,CAACU,cAAX,CAA0BxE,MAAM,CAACyC,MAAP,CAAc+B,cAAxC,CAAhC;AACH;AACJ;AACJ;;AAED,aAAO5B,UAAP;AACH;AA/HE,GAAP;AAiIH;AAAA,C;;;;;;;;;;;;;;;;;;;;;;;;;AC7LD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA6B,8CAAA,CAAQC,yDAAR;AAEA;;;;;;;;;;AASO,SAASxC,IAAT,CAAcF,EAAd,EAAkBtP,MAAlB,EAA0B;AAC7B,MAAMiS,IAAI,GAAG,IAAIC,6CAAJ,CAAY;AACrBjJ,UAAM,EAAEjJ,MAAM,CAACiJ,MADM;AAErBkJ,kBAAc,EAAE,IAFK;AAGrBC,YAAQ,EAARA,iDAAQA;AAHa,GAAZ,CAAb;AAKAtJ,0DAAA,GAAgB9I,MAAM,CAAC+I,OAAvB;AACAD,0DAAA,GAAgB9I,MAAM,CAACgJ,OAAvB;AACAF,yDAAA,GAAe9I,MAAM,CAACiJ,MAAP,IAAiB,IAAhC;;AAGA,MAAI,OAAOqG,EAAP,KAAc,QAAlB,EAA4B;AACxBA,MAAE,GAAG3K,QAAQ,CAAC0N,aAAT,CAAuB/C,EAAvB,CAAL;AACH;;AACD,MAAI,CAACA,EAAL,EAAS;AACL,UAAM,IAAIpD,KAAJ,CAAU,iBAAV,CAAN;AACH;;AAED,MAAMoG,SAAS,GAAG3N,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAlB;AACA0K,IAAE,CAAC3I,WAAH,CAAe2L,SAAf;AAEA,MAAIP,4CAAJ,CAAQ;AACJE,QAAI,EAAJA,IADI;AAEJ3C,MAAE,EAAEgD,SAFA;AAGJC,UAAM,EAAE,gBAAAC,CAAC,EAAI;AACT,aAAOA,CAAC,CAAE;AACN7K,cAAM,EAAE8K,uDADF;AAENC,eAAO,EAAEC,yDAFH;AAGNC,YAAI,EAAEC,qDAAQA;AAHR,OAAD,CAIN7S,MAAM,CAAC8S,IAJD,KAIUH,yDAJX,CAAR;AAKH;AATG,GAAR;AAWH,C;;;;;;;;;;ACpDD,iBAAiB,qBAAuB,8B;;;;;;;;;;ACAxC;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACLA,aAAa,mBAAO,CAAC,mDAAW;AAChC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA;AACA,wBAAwB,qBAAM,gBAAgB,qBAAM,IAAI,qBAAM,sBAAsB,qBAAM;;AAE1F;;;;;;;;;;;ACHA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7CA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACRA,eAAe,mBAAO,CAAC,qDAAY;AACnC,UAAU,mBAAO,CAAC,2CAAO;AACzB,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO,YAAY;AAC9B,WAAW,QAAQ;AACnB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACjEA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,kBAAkB,UAAU,oBAAoB,iGAAiG,aAAa,kBAAkB,MAAM,OAAO,YAAY,WAAW,gBAAgB,gDAAgD,gBAAgB,cAAc,gCAAgC,WAAW,YAAY;;AAErY;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,4BAA4B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,WAAW,qBAAqB;AAChC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,OAAO,gBAAgB;AACvB,OAAO,4BAA4B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,qBAAqB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,gCAAgC;;AAEvC;AACA,OAAO,sCAAsC;AAC7C,OAAO,2EAA2E;;AAElF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEuC;;;;;;;;;;;;;;;;ACvSvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU,WAAW,EAAE;AAC/D,EAAE;AACF;AACA;AACA,oDAAoD,WAAW;AAC/D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,8BAA8B,4BAA4B;AAC1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,oCAAoC;AAC9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0CAA0C,aAAa;AACvD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;ACzexB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,WAAW;AACX,gBAAgB,IAAqC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX,gBAAgB,IAAqC;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,YAAY,IAAqC;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP,YAAY,IAAqC;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA,GAAG;;AAEH;AACA,MAAM,KAAqC;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA,wCAAwC;AACxC,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mCAAmC;AACnC,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA,2BAA2B;;AAE3B;AACA;;AAEA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA,0EAA0E;;AAE1E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,6CAA6C;AACnE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,qBAAqB,4BAA4B;AACjD;;AAEA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C,KAAK;AACL;AACA,mCAAmC;AACnC;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,uBAAuB,4BAA4B;;AAEnD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,cAAc,IAAqC;AACnD;AACA;AACA;AACA;AACA;AACA,YAAY,IAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wCAAwC;;AAExC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8CAA8C;;AAE9C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;AAMA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;AAIA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,2BAA2B,gCAAgC,EAAE;AAC7D,2BAA2B,gCAAgC,EAAE;AAC7D,gCAAgC,qEAAqE;AACrG;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AAGA;AACA,2BAA2B;AAC3B,2DAA2D;AAC3D;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,0BAA0B,MAAM,qBAAqB,YAAY,qBAAqB,mBAAmB,qBAAqB,iBAAiB,qBAAqB,oBAAoB,qBAAqB,UAAU,qBAAqB,kBAAkB,qBAAqB,0BAA0B,qBAAqB,WAAW,qBAAqB,aAAa,qBAAqB,yBAAyB,qBAAqB,sBAAsB,qBAAqB,4BAA4B,qBAAqB,qBAAqB,qBAAqB,mBAAmB,qBAAqB;;AAEhmB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG,GAAG,aAAa;AACnB;;AAEA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,GAAG,GAAG,kBAAkB;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC;;AAEzC,+CAA+C;AAC/C,sDAAsD;AACtD,oDAAoD;AACpD,uDAAuD;;AAEvD,6CAA6C;AAC7C;AACA;AACA;;AAEA,qDAAqD;AACrD;AACA;AACA;AACA;;AAEA,6DAA6D;AAC7D,qEAAqE,yCAAyC;;AAE9G,8CAA8C;AAC9C,qDAAqD,yBAAyB;;AAE9E,gDAAgD;AAChD,yDAAyD,6BAA6B;;AAEtF,4DAA4D;AAC5D,kEAAkE,sCAAsC;;AAExG,yDAAyD;AACzD,+DAA+D,mCAAmC;;AAElG,+DAA+D;AAC/D,uEAAuE,2CAA2C;;AAElH,wDAAwD;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,sDAAsD;AACtD,6DAA6D,iCAAiC;;AAE9F,2DAA2D;AAC3D,yEAAyE;AACzE,qEAAqE;;AAErE;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,yDAAyD;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,iBAAiB,2CAA2C;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA,6BAA6B,aAAoB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA,sBAAsB;AACtB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA,sBAAsB;AACtB;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC;AACvC;;AAEA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,iCAAiC;AACpF;;AAEA;AACA,0DAA0D;AAC1D;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8FAA8F;AAC9F;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAoB;AACjD;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA,sBAAsB;AACtB;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wDAAwD;AACxD;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0FAA0F;AAC1F;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAoB;AACjD;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,iEAAiE;AACjE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA,sBAAsB;AACtB,qDAAqD,GAAG,2BAA2B;AACnF,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA,sBAAsB;AACtB;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;;;;ACjlE+D;AAC3B;AACL;AACtD,CAAoE;;;AAGpE;AAC0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,0EAAM;AACR,EAAE,+EAAM;AACR,EAAE,wFAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;;;;ACvC0E;AAC3B;AACL;AACzD,CAAuE;;;AAGvE;AAC0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,6EAAM;AACR,EAAE,kFAAM;AACR,EAAE,2FAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;;;;ACvCsE;AAC3B;AACL;AACrD,CAAmE;;;AAGnE;AAC0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,yEAAM;AACR,EAAE,8EAAM;AACR,EAAE,uFAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;;;;ACvC+E;AAC3B;AACL;AAC9D,CAA4E;;;AAG5E;AAC0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,kFAAM;AACR,EAAE,uFAAM;AACR,EAAE,gGAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;;;;;ACvCuE;AAC3B;AACL;AACtD,CAAoE;;;AAGpE;AAC0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,0EAAM;AACR,EAAE,+EAAM;AACR,EAAE,wFAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;;;ACvCoE;AAC3B;AACL;;;AAGnD;AACA,CAA0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,uEAAM;AACR,EAAE,4EAAM;AACR,EAAE,qFAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;;;;ACtC2E;AAC3B;AACL;AAC1D,CAAwE;;;AAGxE;AAC0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,8EAAM;AACR,EAAE,mFAAM;AACR,EAAE,4FAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;;;;ACvCuE;AAC3B;AACL;AACtD,CAAoE;;;AAGpE;AAC0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,0EAAM;AACR,EAAE,+EAAM;AACR,EAAE,wFAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;ACvCwJ,CAAC,iEAAe,yKAAG,EAAC,C;;;;;;;;;;;;;;;;ACAjB,CAAC,iEAAe,4KAAG,EAAC,C;;;;;;;;;;;;;;;;ACAxB,CAAC,iEAAe,wKAAG,EAAC,C;;;;;;;;;;;;;;;;ACAX,CAAC,iEAAe,iLAAG,EAAC,C;;;;;;;;;;;;;;;;;ACA5B,CAAC,iEAAe,yKAAG,EAAC,C;;;;;;;;;;;;;;;;ACAvB,CAAC,iEAAe,sKAAG,EAAC,C;;;;;;;;;;;;;;;;ACAb,CAAC,iEAAe,6KAAG,EAAC,C;;;;;;;;;;;;;;;;ACAxB,CAAC,iEAAe,yKAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA3L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,SAAS,uBAAuB,EAAE;AACvC;AACA;AACA;AACA;AACA;AACA,sBAAsB,qCAAqC;AAC3D,sBAAsB;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS,6BAA6B,EAAE;AACrE;AACA;AACA;AACA,iCAAiC,SAAS,kBAAkB,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA,2CAA2C,gCAAgC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iCAAiC;AAC1E;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB,GAAG;AACnE,yCAAyC;AACzC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB,eAAe,gCAAgC,EAAE;AAC1E;AACA;AACA;AACA,6BAA6B,SAAS,kCAAkC,EAAE;AAC1E;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,gCAAgC,SAAS,uBAAuB,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oCAAoC;AACxD,oBAAoB,kBAAkB;AACtC,iBAAiB;AACjB,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gBAAgB;AAChB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACtOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,8DAA8D;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kCAAkC;AACpD,kBAAkB;AAClB,SAAS;AACT,oBAAoB,iCAAiC;AACrD;AACA;AACA;AACA;AACA,SAAS,SAAS,mBAAmB,EAAE;AACvC;AACA;AACA;AACA,aAAa,4BAA4B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB,yCAAyC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,iCAAiC,SAAS,WAAW,EAAE;AACvD;AACA,+CAA+C,4BAA4B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,gDAAgD;AAChD,uCAAuC;AACvC;AACA;AACA,gDAAgD;AAChD,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAS,WAAW,EAAE;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA,yBAAyB;AACzB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,yBAAyB;AACzB,mBAAmB;AACnB,4BAA4B,sCAAsC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACjOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,6DAA0B;AACnD;AACA;AACA,SAAS;AACT;AACA,kBAAkB,+BAA+B;AACjD;AACA;AACA,sBAAsB,kCAAkC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA,oBAAoB,SAAS,wBAAwB,EAAE;AACvD,eAAe,SAAS,uBAAuB,EAAE;AACjD;AACA;AACA,SAAS,SAAS,uBAAuB,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,mBAAmB;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,qCAAqC;AACrC,yBAAyB;AACzB;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS,0BAA0B,EAAE;AACpD;AACA;AACA,SAAS,oCAAoC;AAC7C;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA,wBAAwB;AACxB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,sCAAsC,SAAS,uBAAuB,EAAE;AACxE;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS,gBAAgB,EAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjIA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjGA;AACA,EAAE,KAAuD;AACzD;AACA,MAAM,CAIyB;AAC/B,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,yBAAyB;AAC3E,OAAO;AACP;AACA;AACA;AACA,wDAAwD,kBAAkB;AAC1E,kDAAkD,YAAY;AAC9D,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2BAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,QAAQ;AAC7E;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qFAAqF;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA;AACA,0BAA0B,qCAAqC;AAC/D,qBAAqB,4BAA4B;AACjD,2BAA2B,8BAA8B;AACzD,sCAAsC,4BAA4B;AAClE,4BAA4B,6BAA6B;AACzD,uBAAuB,6BAA6B;AACpD,0BAA0B,6BAA6B;AACvD,gCAAgC,sCAAsC;AACtE,wBAAwB,6BAA6B;AACrD,oBAAoB,6BAA6B;AACjD,iCAAiC,6BAA6B;AAC9D,kBAAkB,+BAA+B;AACjD,4BAA4B,6BAA6B;AACzD,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb;AACA,oCAAoC,GAAG;AACvC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;;;;ACxZD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uE;;;;;;;;;;;ACjDA,qB;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCxBA;WACA;WACA;WACA;WACA;WACA,gCAAgC,YAAY;WAC5C;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,wCAAwC,yCAAyC;WACjF;WACA;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA,CAAC,I;;;;;WCPD,sF;;;;;WCAA;WACA;WACA;WACA,sDAAsD,kBAAkB;WACxE;WACA,+CAA+C,cAAc;WAC7D,E;;;;;WCNA;WACA;WACA;WACA;WACA,E;;;;;WCJA,6B;;;;UCAA;UACA;UACA;UACA","file":"example-bundle.js","sourcesContent":["function e(e,n){const t=Object.create(null),r=e.split(\",\");for(let e=0;e<r.length;e++)t[r[e]]=!0;return n?e=>!!t[e.toLowerCase()]:e=>!!t[e]}const n=e(\"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl\"),t=e(\"itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly\");function r(e){if(x(e)){const n={};for(let t=0;t<e.length;t++){const o=e[t],s=r(k(o)?l(o):o);if(s)for(const e in s)n[e]=s[e]}return n}if(E(e))return e}const o=/;(?![^(]*\\))/g,s=/:(.+)/;function l(e){const n={};return e.split(o).forEach((e=>{if(e){const t=e.split(s);t.length>1&&(n[t[0].trim()]=t[1].trim())}})),n}function a(e){let n=\"\";if(k(e))n=e;else if(x(e))for(let t=0;t<e.length;t++)n+=a(e[t])+\" \";else if(E(e))for(const t in e)e[t]&&(n+=t+\" \");return n.trim()}const i=e=>null==e?\"\":E(e)?JSON.stringify(e,c,2):String(e),c=(e,n)=>S(n)?{[`Map(${n.size})`]:[...n.entries()].reduce(((e,[n,t])=>(e[`${n} =>`]=t,e)),{})}:C(n)?{[`Set(${n.size})`]:[...n.values()]}:!E(n)||x(n)||T(n)?n:String(n),u={},d=[],p=()=>{},f=()=>!1,h=/^on[^a-z]/,g=e=>h.test(e),_=e=>e.startsWith(\"onUpdate:\"),y=Object.assign,m=(e,n)=>{const t=e.indexOf(n);t>-1&&e.splice(t,1)},v=Object.prototype.hasOwnProperty,b=(e,n)=>v.call(e,n),x=Array.isArray,S=e=>\"[object Map]\"===P(e),C=e=>\"[object Set]\"===P(e),O=e=>\"function\"==typeof e,k=e=>\"string\"==typeof e,w=e=>\"symbol\"==typeof e,E=e=>null!==e&&\"object\"==typeof e,A=e=>E(e)&&O(e.then)&&O(e.catch),U=Object.prototype.toString,P=e=>U.call(e),T=e=>\"[object Object]\"===P(e),N=e=>k(e)&&\"NaN\"!==e&&\"-\"!==e[0]&&\"\"+parseInt(e,10)===e,V=e(\",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"),F=e=>{const n=Object.create(null);return t=>n[t]||(n[t]=e(t))},j=/-(\\w)/g,R=F((e=>e.replace(j,((e,n)=>n?n.toUpperCase():\"\")))),I=/\\B([A-Z])/g,K=F((e=>e.replace(I,\"-$1\").toLowerCase())),M=F((e=>e.charAt(0).toUpperCase()+e.slice(1))),D=F((e=>e?`on${M(e)}`:\"\")),$=(e,n)=>e!==n&&(e==e||n==n),L=(e,n)=>{for(let t=0;t<e.length;t++)e[t](n)},q=(e,n,t)=>{Object.defineProperty(e,n,{configurable:!0,enumerable:!1,value:t})},B=e=>{const n=parseFloat(e);return isNaN(n)?e:n};let W;const z=()=>W||(W=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:{}),H=new WeakMap,J=[];let G;const Z=Symbol(\"\"),Q=Symbol(\"\");function X(e,n=u){(function(e){return e&&!0===e._isEffect})(e)&&(e=e.raw);const t=function(e,n){const t=function(){if(!t.active)return n.scheduler?void 0:e();if(!J.includes(t)){ne(t);try{return re.push(te),te=!0,J.push(t),G=t,e()}finally{J.pop(),se(),G=J[J.length-1]}}};return t.id=ee++,t.allowRecurse=!!n.allowRecurse,t._isEffect=!0,t.active=!0,t.raw=e,t.deps=[],t.options=n,t}(e,n);return n.lazy||t(),t}function Y(e){e.active&&(ne(e),e.options.onStop&&e.options.onStop(),e.active=!1)}let ee=0;function ne(e){const{deps:n}=e;if(n.length){for(let t=0;t<n.length;t++)n[t].delete(e);n.length=0}}let te=!0;const re=[];function oe(){re.push(te),te=!1}function se(){const e=re.pop();te=void 0===e||e}function le(e,n,t){if(!te||void 0===G)return;let r=H.get(e);r||H.set(e,r=new Map);let o=r.get(t);o||r.set(t,o=new Set),o.has(G)||(o.add(G),G.deps.push(o))}function ae(e,n,t,r,o,s){const l=H.get(e);if(!l)return;const a=new Set,i=e=>{e&&e.forEach((e=>{(e!==G||e.allowRecurse)&&a.add(e)}))};if(\"clear\"===n)l.forEach(i);else if(\"length\"===t&&x(e))l.forEach(((e,n)=>{(\"length\"===n||n>=r)&&i(e)}));else switch(void 0!==t&&i(l.get(t)),n){case\"add\":x(e)?N(t)&&i(l.get(\"length\")):(i(l.get(Z)),S(e)&&i(l.get(Q)));break;case\"delete\":x(e)||(i(l.get(Z)),S(e)&&i(l.get(Q)));break;case\"set\":S(e)&&i(l.get(Z))}a.forEach((e=>{e.options.scheduler?e.options.scheduler(e):e()}))}const ie=new Set(Object.getOwnPropertyNames(Symbol).map((e=>Symbol[e])).filter(w)),ce=he(),ue=he(!1,!0),de=he(!0),pe=he(!0,!0),fe={};function he(e=!1,n=!1){return function(t,r,o){if(\"__v_isReactive\"===r)return!e;if(\"__v_isReadonly\"===r)return e;if(\"__v_raw\"===r&&o===(e?$e:De).get(t))return t;const s=x(t);if(!e&&s&&b(fe,r))return Reflect.get(fe,r,o);const l=Reflect.get(t,r,o);if(w(r)?ie.has(r):\"__proto__\"===r||\"__v_isRef\"===r)return l;if(e||le(t,0,r),n)return l;if(Qe(l)){return!s||!N(r)?l.value:l}return E(l)?e?Be(l):qe(l):l}}[\"includes\",\"indexOf\",\"lastIndexOf\"].forEach((e=>{const n=Array.prototype[e];fe[e]=function(...e){const t=Ge(this);for(let e=0,n=this.length;e<n;e++)le(t,0,e+\"\");const r=n.apply(t,e);return-1===r||!1===r?n.apply(t,e.map(Ge)):r}})),[\"push\",\"pop\",\"shift\",\"unshift\",\"splice\"].forEach((e=>{const n=Array.prototype[e];fe[e]=function(...e){oe();const t=n.apply(this,e);return se(),t}}));function ge(e=!1){return function(n,t,r,o){const s=n[t];if(!e&&(r=Ge(r),!x(n)&&Qe(s)&&!Qe(r)))return s.value=r,!0;const l=x(n)&&N(t)?Number(t)<n.length:b(n,t),a=Reflect.set(n,t,r,o);return n===Ge(o)&&(l?$(r,s)&&ae(n,\"set\",t,r):ae(n,\"add\",t,r)),a}}const _e={get:ce,set:ge(),deleteProperty:function(e,n){const t=b(e,n),r=(e[n],Reflect.deleteProperty(e,n));return r&&t&&ae(e,\"delete\",n,void 0),r},has:function(e,n){const t=Reflect.has(e,n);return w(n)&&ie.has(n)||le(e,0,n),t},ownKeys:function(e){return le(e,0,x(e)?\"length\":Z),Reflect.ownKeys(e)}},ye={get:de,set:(e,n)=>!0,deleteProperty:(e,n)=>!0},me=y({},_e,{get:ue,set:ge(!0)}),ve=(y({},ye,{get:pe}),e=>E(e)?qe(e):e),be=e=>E(e)?Be(e):e,xe=e=>e,Se=e=>Reflect.getPrototypeOf(e);function Ce(e,n,t=!1,r=!1){const o=Ge(e=e.__v_raw),s=Ge(n);n!==s&&!t&&le(o,0,n),!t&&le(o,0,s);const{has:l}=Se(o),a=t?be:r?xe:ve;return l.call(o,n)?a(e.get(n)):l.call(o,s)?a(e.get(s)):void 0}function Oe(e,n=!1){const t=this.__v_raw,r=Ge(t),o=Ge(e);return e!==o&&!n&&le(r,0,e),!n&&le(r,0,o),e===o?t.has(e):t.has(e)||t.has(o)}function ke(e,n=!1){return e=e.__v_raw,!n&&le(Ge(e),0,Z),Reflect.get(e,\"size\",e)}function we(e){e=Ge(e);const n=Ge(this),t=Se(n).has.call(n,e);return n.add(e),t||ae(n,\"add\",e,e),this}function Ee(e,n){n=Ge(n);const t=Ge(this),{has:r,get:o}=Se(t);let s=r.call(t,e);s||(e=Ge(e),s=r.call(t,e));const l=o.call(t,e);return t.set(e,n),s?$(n,l)&&ae(t,\"set\",e,n):ae(t,\"add\",e,n),this}function Ae(e){const n=Ge(this),{has:t,get:r}=Se(n);let o=t.call(n,e);o||(e=Ge(e),o=t.call(n,e));r&&r.call(n,e);const s=n.delete(e);return o&&ae(n,\"delete\",e,void 0),s}function Ue(){const e=Ge(this),n=0!==e.size,t=e.clear();return n&&ae(e,\"clear\",void 0,void 0),t}function Pe(e,n){return function(t,r){const o=this,s=o.__v_raw,l=Ge(s),a=e?be:n?xe:ve;return!e&&le(l,0,Z),s.forEach(((e,n)=>t.call(r,a(e),a(n),o)))}}function Te(e,n,t){return function(...r){const o=this.__v_raw,s=Ge(o),l=S(s),a=\"entries\"===e||e===Symbol.iterator&&l,i=\"keys\"===e&&l,c=o[e](...r),u=n?be:t?xe:ve;return!n&&le(s,0,i?Q:Z),{next(){const{value:e,done:n}=c.next();return n?{value:e,done:n}:{value:a?[u(e[0]),u(e[1])]:u(e),done:n}},[Symbol.iterator](){return this}}}}function Ne(e){return function(...n){return\"delete\"!==e&&this}}const Ve={get(e){return Ce(this,e)},get size(){return ke(this)},has:Oe,add:we,set:Ee,delete:Ae,clear:Ue,forEach:Pe(!1,!1)},Fe={get(e){return Ce(this,e,!1,!0)},get size(){return ke(this)},has:Oe,add:we,set:Ee,delete:Ae,clear:Ue,forEach:Pe(!1,!0)},je={get(e){return Ce(this,e,!0)},get size(){return ke(this,!0)},has(e){return Oe.call(this,e,!0)},add:Ne(\"add\"),set:Ne(\"set\"),delete:Ne(\"delete\"),clear:Ne(\"clear\"),forEach:Pe(!0,!1)};function Re(e,n){const t=n?Fe:e?je:Ve;return(n,r,o)=>\"__v_isReactive\"===r?!e:\"__v_isReadonly\"===r?e:\"__v_raw\"===r?n:Reflect.get(b(t,r)&&r in n?t:n,r,o)}[\"keys\",\"values\",\"entries\",Symbol.iterator].forEach((e=>{Ve[e]=Te(e,!1,!1),je[e]=Te(e,!0,!1),Fe[e]=Te(e,!1,!0)}));const Ie={get:Re(!1,!1)},Ke={get:Re(!1,!0)},Me={get:Re(!0,!1)},De=new WeakMap,$e=new WeakMap;function Le(e){return e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case\"Object\":case\"Array\":return 1;case\"Map\":case\"Set\":case\"WeakMap\":case\"WeakSet\":return 2;default:return 0}}((e=>P(e).slice(8,-1))(e))}function qe(e){return e&&e.__v_isReadonly?e:We(e,!1,_e,Ie)}function Be(e){return We(e,!0,ye,Me)}function We(e,n,t,r){if(!E(e))return e;if(e.__v_raw&&(!n||!e.__v_isReactive))return e;const o=n?$e:De,s=o.get(e);if(s)return s;const l=Le(e);if(0===l)return e;const a=new Proxy(e,2===l?r:t);return o.set(e,a),a}function ze(e){return He(e)?ze(e.__v_raw):!(!e||!e.__v_isReactive)}function He(e){return!(!e||!e.__v_isReadonly)}function Je(e){return ze(e)||He(e)}function Ge(e){return e&&Ge(e.__v_raw)||e}const Ze=e=>E(e)?qe(e):e;function Qe(e){return Boolean(e&&!0===e.__v_isRef)}function Xe(e){return function(e,n=!1){if(Qe(e))return e;return new Ye(e,n)}(e)}class Ye{constructor(e,n=!1){this._rawValue=e,this._shallow=n,this.__v_isRef=!0,this._value=n?e:Ze(e)}get value(){return le(Ge(this),0,\"value\"),this._value}set value(e){$(Ge(e),this._rawValue)&&(this._rawValue=e,this._value=this._shallow?e:Ze(e),ae(Ge(this),\"set\",\"value\",e))}}const en={get:(e,n,t)=>function(e){return Qe(e)?e.value:e}(Reflect.get(e,n,t)),set:(e,n,t,r)=>{const o=e[n];return Qe(o)&&!Qe(t)?(o.value=t,!0):Reflect.set(e,n,t,r)}};function nn(e){return ze(e)?e:new Proxy(e,en)}class tn{constructor(e,n){this._object=e,this._key=n,this.__v_isRef=!0}get value(){return this._object[this._key]}set value(e){this._object[this._key]=e}}class rn{constructor(e,n,t){this._setter=n,this._dirty=!0,this.__v_isRef=!0,this.effect=X(e,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,ae(Ge(this),\"set\",\"value\"))}}),this.__v_isReadonly=t}get value(){return this._dirty&&(this._value=this.effect(),this._dirty=!1),le(Ge(this),0,\"value\"),this._value}set value(e){this._setter(e)}}function on(e,n,t,r){let o;try{o=r?e(...r):e()}catch(e){ln(e,n,t)}return o}function sn(e,n,t,r){if(O(e)){const o=on(e,n,t,r);return o&&A(o)&&o.catch((e=>{ln(e,n,t)})),o}const o=[];for(let s=0;s<e.length;s++)o.push(sn(e[s],n,t,r));return o}function ln(e,n,t,r=!0){n&&n.vnode;if(n){let r=n.parent;const o=n.proxy,s=t;for(;r;){const n=r.ec;if(n)for(let t=0;t<n.length;t++)if(!1===n[t](e,o,s))return;r=r.parent}const l=n.appContext.config.errorHandler;if(l)return void on(l,null,10,[e,o,s])}!function(e,n,t,r=!0){console.error(e)}(e,0,0,r)}let an=!1,cn=!1;const un=[];let dn=0;const pn=[];let fn=null,hn=0;const gn=[];let _n=null,yn=0;const mn=Promise.resolve();let vn=null,bn=null;function xn(e){const n=vn||mn;return e?n.then(this?e.bind(this):e):n}function Sn(e){un.length&&un.includes(e,an&&e.allowRecurse?dn+1:dn)||e===bn||(un.push(e),Cn())}function Cn(){an||cn||(cn=!0,vn=mn.then(An))}function On(e,n,t,r){x(e)?t.push(...e):n&&n.includes(e,e.allowRecurse?r+1:r)||t.push(e),Cn()}function kn(e,n=null){if(pn.length){for(bn=n,fn=[...new Set(pn)],pn.length=0,hn=0;hn<fn.length;hn++)fn[hn]();fn=null,hn=0,bn=null,kn(e,n)}}function wn(e){if(gn.length){const e=[...new Set(gn)];if(gn.length=0,_n)return void _n.push(...e);for(_n=e,_n.sort(((e,n)=>En(e)-En(n))),yn=0;yn<_n.length;yn++)_n[yn]();_n=null,yn=0}}const En=e=>null==e.id?1/0:e.id;function An(e){cn=!1,an=!0,kn(e),un.sort(((e,n)=>En(e)-En(n)));try{for(dn=0;dn<un.length;dn++){const e=un[dn];e&&on(e,null,14)}}finally{dn=0,un.length=0,wn(),an=!1,vn=null,(un.length||gn.length)&&An(e)}}function Un(e,n,...t){const r=e.vnode.props||u;let o=t;const s=n.startsWith(\"update:\"),l=s&&n.slice(7);if(l&&l in r){const e=`${\"modelValue\"===l?\"model\":l}Modifiers`,{number:n,trim:s}=r[e]||u;s?o=t.map((e=>e.trim())):n&&(o=t.map(B))}__VUE_PROD_DEVTOOLS__;let a=D(R(n)),i=r[a];!i&&s&&(a=D(K(n)),i=r[a]),i&&sn(i,e,6,o);const c=r[a+\"Once\"];if(c){if(e.emitted){if(e.emitted[a])return}else(e.emitted={})[a]=!0;sn(c,e,6,o)}}function Pn(e,n,t=!1){if(!n.deopt&&void 0!==e.__emits)return e.__emits;const r=e.emits;let o={},s=!1;if(__VUE_OPTIONS_API__&&!O(e)){const r=e=>{s=!0,y(o,Pn(e,n,!0))};!t&&n.mixins.length&&n.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return r||s?(x(r)?r.forEach((e=>o[e]=null)):y(o,r),e.__emits=o):e.__emits=null}function Tn(e,n){return!(!e||!g(n))&&(n=n.slice(2).replace(/Once$/,\"\"),b(e,n[0].toLowerCase()+n.slice(1))||b(e,K(n))||b(e,n))}let Nn=null;function Vn(e){Nn=e}function Fn(e){const{type:n,vnode:t,proxy:r,withProxy:o,props:s,propsOptions:[l],slots:a,attrs:i,emit:c,render:u,renderCache:d,data:p,setupState:f,ctx:h}=e;let g;Nn=e;try{let e;if(4&t.shapeFlag){const n=o||r;g=Xt(u.call(n,n,d,s,f,p,h)),e=i}else{const t=n;0,g=Xt(t.length>1?t(s,{attrs:i,slots:a,emit:c}):t(s,null)),e=n.props?i:Rn(i)}let y=g;if(!1!==n.inheritAttrs&&e){const n=Object.keys(e),{shapeFlag:t}=y;n.length&&(1&t||6&t)&&(l&&n.some(_)&&(e=In(e,l)),y=Gt(y,e))}t.dirs&&(y.dirs=y.dirs?y.dirs.concat(t.dirs):t.dirs),t.transition&&(y.transition=t.transition),g=y}catch(n){ln(n,e,1),g=Jt(Rt)}return Nn=null,g}function jn(e){let n;for(let t=0;t<e.length;t++){const r=e[t];if(!qt(r))return;if(r.type!==Rt||\"v-if\"===r.children){if(n)return;n=r}}return n}const Rn=e=>{let n;for(const t in e)(\"class\"===t||\"style\"===t||g(t))&&((n||(n={}))[t]=e[t]);return n},In=(e,n)=>{const t={};for(const r in e)_(r)&&r.slice(9)in n||(t[r]=e[r]);return t};function Kn(e,n,t){const r=Object.keys(n);if(r.length!==Object.keys(e).length)return!0;for(let o=0;o<r.length;o++){const s=r[o];if(n[s]!==e[s]&&!Tn(t,s))return!0}return!1}function Mn(e){if(O(e)&&(e=e()),x(e)){e=jn(e)}return Xt(e)}let Dn=0;const $n=e=>Dn+=e;function Ln(e,n,t,r=!1){const o={},s={};q(s,Wt,1),qn(e,n,o,s),t?e.props=r?o:We(o,!1,me,Ke):e.type.props?e.props=o:e.props=s,e.attrs=s}function qn(e,n,t,r){const[o,s]=e.propsOptions;if(n)for(const s in n){const l=n[s];if(V(s))continue;let a;o&&b(o,a=R(s))?t[a]=l:Tn(e.emitsOptions,s)||(r[s]=l)}if(s){const n=Ge(t);for(let r=0;r<s.length;r++){const l=s[r];t[l]=Bn(o,n,l,n[l],e)}}}function Bn(e,n,t,r,o){const s=e[t];if(null!=s){const e=b(s,\"default\");if(e&&void 0===r){const e=s.default;s.type!==Function&&O(e)?(mr(o),r=e(n),mr(null)):r=e}s[0]&&(b(n,t)||e?!s[1]||\"\"!==r&&r!==K(t)||(r=!0):r=!1)}return r}function Wn(e,n,t=!1){if(!n.deopt&&e.__props)return e.__props;const r=e.props,o={},s=[];let l=!1;if(__VUE_OPTIONS_API__&&!O(e)){const r=e=>{l=!0;const[t,r]=Wn(e,n,!0);y(o,t),r&&s.push(...r)};!t&&n.mixins.length&&n.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!r&&!l)return e.__props=d;if(x(r))for(let e=0;e<r.length;e++){const n=R(r[e]);zn(n)&&(o[n]=u)}else if(r)for(const e in r){const n=R(e);if(zn(n)){const t=r[e],l=o[n]=x(t)||O(t)?{type:t}:t;if(l){const e=Gn(Boolean,l.type),t=Gn(String,l.type);l[0]=e>-1,l[1]=t<0||e<t,(e>-1||b(l,\"default\"))&&s.push(n)}}}return e.__props=[o,s]}function zn(e){return\"$\"!==e[0]}function Hn(e){const n=e&&e.toString().match(/^\\s*function (\\w+)/);return n?n[1]:\"\"}function Jn(e,n){return Hn(e)===Hn(n)}function Gn(e,n){if(x(n)){for(let t=0,r=n.length;t<r;t++)if(Jn(n[t],e))return t}else if(O(n))return Jn(n,e)?0:-1;return-1}function Zn(e,n,t=yr,r=!1){if(t){const o=t[e]||(t[e]=[]),s=n.__weh||(n.__weh=(...r)=>{if(t.isUnmounted)return;oe(),mr(t);const o=sn(n,t,e,r);return mr(null),se(),o});return r?o.unshift(s):o.push(s),s}}const Qn=e=>(n,t=yr)=>!vr&&Zn(e,n,t),Xn=Qn(\"bm\"),Yn=Qn(\"m\"),et=Qn(\"bu\"),nt=Qn(\"u\"),tt=Qn(\"bum\"),rt=Qn(\"um\"),ot=Qn(\"rtg\"),st=Qn(\"rtc\"),lt={};function at(e,n,t){return it(e,n,t)}function it(e,n,{immediate:t,deep:r,flush:o,onTrack:s,onTrigger:l}=u,a=yr){let i,c,d=!1;if(Qe(e)?(i=()=>e.value,d=!!e._shallow):ze(e)?(i=()=>e,r=!0):i=x(e)?()=>e.map((e=>Qe(e)?e.value:ze(e)?ut(e):O(e)?on(e,a,2):void 0)):O(e)?n?()=>on(e,a,2):()=>{if(!a||!a.isUnmounted)return c&&c(),on(e,a,3,[f])}:p,n&&r){const e=i;i=()=>ut(e())}const f=e=>{c=y.options.onStop=()=>{on(e,a,4)}};let h=x(e)?[]:lt;const g=()=>{if(y.active)if(n){const e=y();(r||d||$(e,h))&&(c&&c(),sn(n,a,3,[e,h===lt?void 0:h,f]),h=e)}else y()};let _;g.allowRecurse=!!n,_=\"sync\"===o?g:\"post\"===o?()=>kt(g,a&&a.suspense):()=>{!a||a.isMounted?function(e){On(e,fn,pn,hn)}(g):g()};const y=X(i,{lazy:!0,onTrack:s,onTrigger:l,scheduler:_});return Sr(y,a),n?t?g():h=y():\"post\"===o?kt(y,a&&a.suspense):y(),()=>{Y(y),a&&m(a.effects,y)}}function ct(e,n,t){const r=this.proxy;return it(k(e)?()=>r[e]:e.bind(r),n.bind(r),t,this)}function ut(e,n=new Set){if(!E(e)||n.has(e))return e;if(n.add(e),Qe(e))ut(e.value,n);else if(x(e))for(let t=0;t<e.length;t++)ut(e[t],n);else if(C(e)||S(e))e.forEach((e=>{ut(e,n)}));else for(const t in e)ut(e[t],n);return e}const dt=e=>e.type.__isKeepAlive;function pt(e,n,t=yr){const r=e.__wdc||(e.__wdc=()=>{let n=t;for(;n;){if(n.isDeactivated)return;n=n.parent}e()});if(Zn(n,r,t),t){let e=t.parent;for(;e&&e.parent;)dt(e.parent.vnode)&&ft(r,n,t,e),e=e.parent}}function ft(e,n,t,r){const o=Zn(n,e,r,!0);rt((()=>{m(r[n],o)}),t)}const ht=e=>\"_\"===e[0]||\"$stable\"===e,gt=e=>x(e)?e.map(Xt):[Xt(e)],_t=(e,n,t)=>function(e,n=Nn){if(!n)return e;const t=(...t)=>{Dn||Dt(!0);const r=Nn;Vn(n);const o=e(...t);return Vn(r),Dn||$t(),o};return t._c=!0,t}((e=>gt(n(e))),t),yt=(e,n)=>{const t=e._ctx;for(const r in e){if(ht(r))continue;const o=e[r];if(O(o))n[r]=_t(0,o,t);else if(null!=o){const e=gt(o);n[r]=()=>e}}},mt=(e,n)=>{const t=gt(n);e.slots.default=()=>t};function vt(e,n){if(null===Nn)return e;const t=Nn.proxy,r=e.dirs||(e.dirs=[]);for(let e=0;e<n.length;e++){let[o,s,l,a=u]=n[e];O(o)&&(o={mounted:o,updated:o}),r.push({dir:o,instance:t,value:s,oldValue:void 0,arg:l,modifiers:a})}return e}function bt(e,n,t,r){const o=e.dirs,s=n&&n.dirs;for(let l=0;l<o.length;l++){const a=o[l];s&&(a.oldValue=s[l].value);const i=a.dir[r];i&&sn(i,t,8,[e.el,a,e,n])}}function xt(){return{app:null,config:{isNativeTag:f,performance:!1,globalProperties:{},optionMergeStrategies:{},isCustomElement:f,errorHandler:void 0,warnHandler:void 0},mixins:[],components:{},directives:{},provides:Object.create(null)}}let St=0;function Ct(e,n){return function(t,r=null){null==r||E(r)||(r=null);const o=xt(),s=new Set;let l=!1;const a=o.app={_uid:St++,_component:t,_props:r,_container:null,_context:o,version:kr,get config(){return o.config},set config(e){},use:(e,...n)=>(s.has(e)||(e&&O(e.install)?(s.add(e),e.install(a,...n)):O(e)&&(s.add(e),e(a,...n))),a),mixin:e=>(__VUE_OPTIONS_API__&&(o.mixins.includes(e)||(o.mixins.push(e),(e.props||e.emits)&&(o.deopt=!0))),a),component:(e,n)=>n?(o.components[e]=n,a):o.components[e],directive:(e,n)=>n?(o.directives[e]=n,a):o.directives[e],mount(s,i){if(!l){const c=Jt(t,r);return c.appContext=o,i&&n?n(c,s):e(c,s),l=!0,a._container=s,s.__vue_app__=a,__VUE_PROD_DEVTOOLS__,c.component.proxy}},unmount(){l&&(e(null,a._container),__VUE_PROD_DEVTOOLS__)},provide:(e,n)=>(o.provides[e]=n,a)};return a}}const Ot={scheduler:Sn,allowRecurse:!0},kt=function(e,n){n&&n.pendingBranch?x(e)?n.effects.push(...e):n.effects.push(e):On(e,_n,gn,yn)},wt=(e,n,t,r)=>{if(x(e))return void e.forEach(((e,o)=>wt(e,n&&(x(n)?n[o]:n),t,r)));let o;o=!r||r.type.__asyncLoader?null:4&r.shapeFlag?r.component.exposed||r.component.proxy:r.el;const{i:s,r:l}=e,a=n&&n.r,i=s.refs===u?s.refs={}:s.refs,c=s.setupState;if(null!=a&&a!==l&&(k(a)?(i[a]=null,b(c,a)&&(c[a]=null)):Qe(a)&&(a.value=null)),k(l)){const e=()=>{i[l]=o,b(c,l)&&(c[l]=o)};o?(e.id=-1,kt(e,t)):e()}else if(Qe(l)){const e=()=>{l.value=o};o?(e.id=-1,kt(e,t)):e()}else O(l)&&on(l,s,12,[o,i])};function Et(e){return function(e,n){\"boolean\"!=typeof __VUE_OPTIONS_API__&&(z().__VUE_OPTIONS_API__=!0),\"boolean\"!=typeof __VUE_PROD_DEVTOOLS__&&(z().__VUE_PROD_DEVTOOLS__=!1);const{insert:t,remove:r,patchProp:o,forcePatchProp:s,createElement:l,createText:a,createComment:i,setText:c,setElementText:f,parentNode:h,nextSibling:g,setScopeId:_=p,cloneNode:m,insertStaticContent:v}=e,x=(e,n,t,r=null,o=null,s=null,l=!1,a=!1)=>{e&&!Bt(e,n)&&(r=le(e),Q(e,o,s,!0),e=null),-2===n.patchFlag&&(a=!1,n.dynamicChildren=null);const{type:i,ref:c,shapeFlag:u}=n;switch(i){case jt:S(e,n,t,r);break;case Rt:C(e,n,t,r);break;case It:null==e&&O(n,t,r,l);break;case Ft:I(e,n,t,r,o,s,l,a);break;default:1&u?E(e,n,t,r,o,s,l,a):6&u?M(e,n,t,r,o,s,l,a):(64&u||128&u)&&i.process(e,n,t,r,o,s,l,a,ce)}null!=c&&o&&wt(c,e&&e.ref,s,n)},S=(e,n,r,o)=>{if(null==e)t(n.el=a(n.children),r,o);else{const t=n.el=e.el;n.children!==e.children&&c(t,n.children)}},C=(e,n,r,o)=>{null==e?t(n.el=i(n.children||\"\"),r,o):n.el=e.el},O=(e,n,t,r)=>{[e.el,e.anchor]=v(e.children,n,t,r)},k=({el:e,anchor:n},r,o)=>{let s;for(;e&&e!==n;)s=g(e),t(e,r,o),e=s;t(n,r,o)},w=({el:e,anchor:n})=>{let t;for(;e&&e!==n;)t=g(e),r(e),e=t;r(n)},E=(e,n,t,r,o,s,l,a)=>{l=l||\"svg\"===n.type,null==e?U(n,t,r,o,s,l,a):N(e,n,o,s,l,a)},U=(e,n,r,s,a,i,c)=>{let u,d;const{type:p,props:h,shapeFlag:g,transition:_,scopeId:y,patchFlag:v,dirs:b}=e;if(e.el&&void 0!==m&&-1===v)u=e.el=m(e.el);else{if(u=e.el=l(e.type,i,h&&h.is),8&g?f(u,e.children):16&g&&T(e.children,u,null,s,a,i&&\"foreignObject\"!==p,c||!!e.dynamicChildren),b&&bt(e,null,s,\"created\"),h){for(const n in h)V(n)||o(u,n,null,h[n],i,e.children,s,a,re);(d=h.onVnodeBeforeMount)&&At(d,s,e)}P(u,y,e,s)}__VUE_PROD_DEVTOOLS__&&(Object.defineProperty(u,\"__vnode\",{value:e,enumerable:!1}),Object.defineProperty(u,\"__vueParentComponent\",{value:s,enumerable:!1})),b&&bt(e,null,s,\"beforeMount\");const x=(!a||a&&!a.pendingBranch)&&_&&!_.persisted;x&&_.beforeEnter(u),t(u,n,r),((d=h&&h.onVnodeMounted)||x||b)&&kt((()=>{d&&At(d,s,e),x&&_.enter(u),b&&bt(e,null,s,\"mounted\")}),a)},P=(e,n,t,r)=>{if(n&&_(e,n),r){const o=r.type.__scopeId;o&&o!==n&&_(e,o+\"-s\"),t===r.subTree&&P(e,r.vnode.scopeId,r.vnode,r.parent)}},T=(e,n,t,r,o,s,l,a=0)=>{for(let i=a;i<e.length;i++){const a=e[i]=l?Yt(e[i]):Xt(e[i]);x(null,a,n,t,r,o,s,l)}},N=(e,n,t,r,l,a)=>{const i=n.el=e.el;let{patchFlag:c,dynamicChildren:d,dirs:p}=n;c|=16&e.patchFlag;const h=e.props||u,g=n.props||u;let _;if((_=g.onVnodeBeforeUpdate)&&At(_,t,n,e),p&&bt(n,e,t,\"beforeUpdate\"),c>0){if(16&c)j(i,n,h,g,t,r,l);else if(2&c&&h.class!==g.class&&o(i,\"class\",null,g.class,l),4&c&&o(i,\"style\",h.style,g.style,l),8&c){const a=n.dynamicProps;for(let n=0;n<a.length;n++){const c=a[n],u=h[c],d=g[c];(d!==u||s&&s(i,c))&&o(i,c,u,d,l,e.children,t,r,re)}}1&c&&e.children!==n.children&&f(i,n.children)}else a||null!=d||j(i,n,h,g,t,r,l);const y=l&&\"foreignObject\"!==n.type;d?F(e.dynamicChildren,d,i,t,r,y):a||H(e,n,i,null,t,r,y),((_=g.onVnodeUpdated)||p)&&kt((()=>{_&&At(_,t,n,e),p&&bt(n,e,t,\"updated\")}),r)},F=(e,n,t,r,o,s)=>{for(let l=0;l<n.length;l++){const a=e[l],i=n[l],c=a.type===Ft||!Bt(a,i)||6&a.shapeFlag||64&a.shapeFlag?h(a.el):t;x(a,i,c,null,r,o,s,!0)}},j=(e,n,t,r,l,a,i)=>{if(t!==r){for(const c in r){if(V(c))continue;const u=r[c],d=t[c];(u!==d||s&&s(e,c))&&o(e,c,d,u,i,n.children,l,a,re)}if(t!==u)for(const s in t)V(s)||s in r||o(e,s,t[s],null,i,n.children,l,a,re)}},I=(e,n,r,o,s,l,i,c)=>{const u=n.el=e?e.el:a(\"\"),d=n.anchor=e?e.anchor:a(\"\");let{patchFlag:p,dynamicChildren:f}=n;p>0&&(c=!0),null==e?(t(u,r,o),t(d,r,o),T(n.children,r,d,s,l,i,c)):p>0&&64&p&&f?(F(e.dynamicChildren,f,r,s,l,i),(null!=n.key||s&&n===s.subTree)&&Ut(e,n,!0)):H(e,n,r,d,s,l,i,c)},M=(e,n,t,r,o,s,l,a)=>{null==e?512&n.shapeFlag?o.ctx.activate(n,t,r,l,a):D(n,t,r,o,s,l,a):$(e,n,a)},D=(e,n,t,r,o,s,l)=>{const a=e.component=function(e,n,t){const r=e.type,o=(n?n.appContext:e.appContext)||gr,s={uid:_r++,vnode:e,type:r,parent:n,appContext:o,root:null,next:null,subTree:null,update:null,render:null,proxy:null,exposed:null,withProxy:null,effects:null,provides:n?n.provides:Object.create(o.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Wn(r,o),emitsOptions:Pn(r,o),emit:null,emitted:null,ctx:u,data:u,props:u,attrs:u,slots:u,refs:u,setupState:u,setupContext:null,suspense:t,suspenseId:t?t.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null};s.ctx={_:s},s.root=n?n.root:s,s.emit=Un.bind(null,s),__VUE_PROD_DEVTOOLS__;return s}(e,r,o);if(dt(e)&&(a.ctx.renderer=ce),function(e,n=!1){vr=n;const{props:t,children:r,shapeFlag:o}=e.vnode,s=4&o;Ln(e,t,s,n),((e,n)=>{if(32&e.vnode.shapeFlag){const t=n._;t?(e.slots=n,q(n,\"_\",t)):yt(n,e.slots={})}else e.slots={},n&&mt(e,n);q(e.slots,Wt,1)})(e,r);const l=s?function(e,n){const t=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,fr);const{setup:r}=t;if(r){const t=e.setupContext=r.length>1?function(e){const n=n=>{e.exposed=nn(n)};return{attrs:e.attrs,slots:e.slots,emit:e.emit,expose:n}}(e):null;yr=e,oe();const o=on(r,e,0,[e.props,t]);if(se(),yr=null,A(o)){if(n)return o.then((n=>{br(e,n)}));e.asyncDep=o}else br(e,o)}else xr(e)}(e,n):void 0;vr=!1}(a),a.asyncDep){if(o&&o.registerDep(a,B),!e.el){const e=a.subTree=Jt(Rt);C(null,e,n,t)}}else B(a,e,n,t,o,s,l)},$=(e,n,t)=>{const r=n.component=e.component;if(function(e,n,t){const{props:r,children:o,component:s}=e,{props:l,children:a,patchFlag:i}=n,c=s.emitsOptions;if(n.dirs||n.transition)return!0;if(!(t&&i>=0))return!(!o&&!a||a&&a.$stable)||r!==l&&(r?!l||Kn(r,l,c):!!l);if(1024&i)return!0;if(16&i)return r?Kn(r,l,c):!!l;if(8&i){const e=n.dynamicProps;for(let n=0;n<e.length;n++){const t=e[n];if(l[t]!==r[t]&&!Tn(c,t))return!0}}return!1}(e,n,t)){if(r.asyncDep&&!r.asyncResolved)return void W(r,n,t);r.next=n,function(e){const n=un.indexOf(e);n>-1&&un.splice(n,1)}(r.update),r.update()}else n.component=e.component,n.el=e.el,r.vnode=n},B=(e,n,t,r,o,s,l)=>{e.update=X((function(){if(e.isMounted){let n,{next:t,bu:r,u:a,parent:i,vnode:c}=e,u=t;t?(t.el=c.el,W(e,t,l)):t=c,r&&L(r),(n=t.props&&t.props.onVnodeBeforeUpdate)&&At(n,i,t,c);const d=Fn(e),p=e.subTree;e.subTree=d,x(p,d,h(p.el),le(p),e,o,s),t.el=d.el,null===u&&function({vnode:e,parent:n},t){for(;n&&n.subTree===e;)(e=n.vnode).el=t,n=n.parent}(e,d.el),a&&kt(a,o),(n=t.props&&t.props.onVnodeUpdated)&&kt((()=>{At(n,i,t,c)}),o),__VUE_PROD_DEVTOOLS__}else{let l;const{el:a,props:i}=n,{bm:c,m:u,parent:d}=e;c&&L(c),(l=i&&i.onVnodeBeforeMount)&&At(l,d,n);const p=e.subTree=Fn(e);a&&de?de(n.el,p,e,o):(x(null,p,t,r,e,o,s),n.el=p.el),u&&kt(u,o),(l=i&&i.onVnodeMounted)&&kt((()=>{At(l,d,n)}),o);const{a:f}=e;f&&256&n.shapeFlag&&kt(f,o),e.isMounted=!0}}),Ot)},W=(e,n,t)=>{n.component=e;const r=e.vnode.props;e.vnode=n,e.next=null,function(e,n,t,r){const{props:o,attrs:s,vnode:{patchFlag:l}}=e,a=Ge(o),[i]=e.propsOptions;if(!(r||l>0)||16&l){let r;qn(e,n,o,s);for(const s in a)n&&(b(n,s)||(r=K(s))!==s&&b(n,r))||(i?!t||void 0===t[s]&&void 0===t[r]||(o[s]=Bn(i,n||u,s,void 0,e)):delete o[s]);if(s!==a)for(const e in s)n&&b(n,e)||delete s[e]}else if(8&l){const t=e.vnode.dynamicProps;for(let r=0;r<t.length;r++){const l=t[r],c=n[l];if(i)if(b(s,l))s[l]=c;else{const n=R(l);o[n]=Bn(i,a,n,c,e)}else s[l]=c}}ae(e,\"set\",\"$attrs\")}(e,n.props,r,t),((e,n)=>{const{vnode:t,slots:r}=e;let o=!0,s=u;if(32&t.shapeFlag){const e=n._;e?1===e?o=!1:y(r,n):(o=!n.$stable,yt(n,r)),s=n}else n&&(mt(e,n),s={default:1});if(o)for(const e in r)ht(e)||e in s||delete r[e]})(e,n.children),kn(void 0,e.update)},H=(e,n,t,r,o,s,l,a=!1)=>{const i=e&&e.children,c=e?e.shapeFlag:0,u=n.children,{patchFlag:d,shapeFlag:p}=n;if(d>0){if(128&d)return void G(i,u,t,r,o,s,l,a);if(256&d)return void J(i,u,t,r,o,s,l,a)}8&p?(16&c&&re(i,o,s),u!==i&&f(t,u)):16&c?16&p?G(i,u,t,r,o,s,l,a):re(i,o,s,!0):(8&c&&f(t,\"\"),16&p&&T(u,t,r,o,s,l,a))},J=(e,n,t,r,o,s,l,a)=>{n=n||d;const i=(e=e||d).length,c=n.length,u=Math.min(i,c);let p;for(p=0;p<u;p++){const r=n[p]=a?Yt(n[p]):Xt(n[p]);x(e[p],r,t,null,o,s,l,a)}i>c?re(e,o,s,!0,!1,u):T(n,t,r,o,s,l,a,u)},G=(e,n,t,r,o,s,l,a)=>{let i=0;const c=n.length;let u=e.length-1,p=c-1;for(;i<=u&&i<=p;){const r=e[i],c=n[i]=a?Yt(n[i]):Xt(n[i]);if(!Bt(r,c))break;x(r,c,t,null,o,s,l,a),i++}for(;i<=u&&i<=p;){const r=e[u],i=n[p]=a?Yt(n[p]):Xt(n[p]);if(!Bt(r,i))break;x(r,i,t,null,o,s,l,a),u--,p--}if(i>u){if(i<=p){const e=p+1,u=e<c?n[e].el:r;for(;i<=p;)x(null,n[i]=a?Yt(n[i]):Xt(n[i]),t,u,o,s,l),i++}}else if(i>p)for(;i<=u;)Q(e[i],o,s,!0),i++;else{const f=i,h=i,g=new Map;for(i=h;i<=p;i++){const e=n[i]=a?Yt(n[i]):Xt(n[i]);null!=e.key&&g.set(e.key,i)}let _,y=0;const m=p-h+1;let v=!1,b=0;const S=new Array(m);for(i=0;i<m;i++)S[i]=0;for(i=f;i<=u;i++){const r=e[i];if(y>=m){Q(r,o,s,!0);continue}let c;if(null!=r.key)c=g.get(r.key);else for(_=h;_<=p;_++)if(0===S[_-h]&&Bt(r,n[_])){c=_;break}void 0===c?Q(r,o,s,!0):(S[c-h]=i+1,c>=b?b=c:v=!0,x(r,n[c],t,null,o,s,l,a),y++)}const C=v?function(e){const n=e.slice(),t=[0];let r,o,s,l,a;const i=e.length;for(r=0;r<i;r++){const i=e[r];if(0!==i){if(o=t[t.length-1],e[o]<i){n[r]=o,t.push(r);continue}for(s=0,l=t.length-1;s<l;)a=(s+l)/2|0,e[t[a]]<i?s=a+1:l=a;i<e[t[s]]&&(s>0&&(n[r]=t[s-1]),t[s]=r)}}s=t.length,l=t[s-1];for(;s-- >0;)t[s]=l,l=n[l];return t}(S):d;for(_=C.length-1,i=m-1;i>=0;i--){const e=h+i,a=n[e],u=e+1<c?n[e+1].el:r;0===S[i]?x(null,a,t,u,o,s,l):v&&(_<0||i!==C[_]?Z(a,t,u,2):_--)}}},Z=(e,n,r,o,s=null)=>{const{el:l,type:a,transition:i,children:c,shapeFlag:u}=e;if(6&u)return void Z(e.component.subTree,n,r,o);if(128&u)return void e.suspense.move(n,r,o);if(64&u)return void a.move(e,n,r,ce);if(a===Ft){t(l,n,r);for(let e=0;e<c.length;e++)Z(c[e],n,r,o);return void t(e.anchor,n,r)}if(a===It)return void k(e,n,r);if(2!==o&&1&u&&i)if(0===o)i.beforeEnter(l),t(l,n,r),kt((()=>i.enter(l)),s);else{const{leave:e,delayLeave:o,afterLeave:s}=i,a=()=>t(l,n,r),c=()=>{e(l,(()=>{a(),s&&s()}))};o?o(l,a,c):c()}else t(l,n,r)},Q=(e,n,t,r=!1,o=!1)=>{const{type:s,props:l,ref:a,children:i,dynamicChildren:c,shapeFlag:u,patchFlag:d,dirs:p}=e;if(null!=a&&wt(a,null,t,null),256&u)return void n.ctx.deactivate(e);const f=1&u&&p;let h;if((h=l&&l.onVnodeBeforeUnmount)&&At(h,n,e),6&u)te(e.component,t,r);else{if(128&u)return void e.suspense.unmount(t,r);f&&bt(e,null,n,\"beforeUnmount\"),c&&(s!==Ft||d>0&&64&d)?re(c,n,t,!1,!0):(s===Ft&&(128&d||256&d)||!o&&16&u)&&re(i,n,t),64&u&&(r||!Pt(e.props))&&e.type.remove(e,ce),r&&ee(e)}((h=l&&l.onVnodeUnmounted)||f)&&kt((()=>{h&&At(h,n,e),f&&bt(e,null,n,\"unmounted\")}),t)},ee=e=>{const{type:n,el:t,anchor:o,transition:s}=e;if(n===Ft)return void ne(t,o);if(n===It)return void w(e);const l=()=>{r(t),s&&!s.persisted&&s.afterLeave&&s.afterLeave()};if(1&e.shapeFlag&&s&&!s.persisted){const{leave:n,delayLeave:r}=s,o=()=>n(t,l);r?r(e.el,l,o):o()}else l()},ne=(e,n)=>{let t;for(;e!==n;)t=g(e),r(e),e=t;r(n)},te=(e,n,t)=>{const{bum:r,effects:o,update:s,subTree:l,um:a}=e;if(r&&L(r),o)for(let e=0;e<o.length;e++)Y(o[e]);s&&(Y(s),Q(l,e,n,t)),a&&kt(a,n),kt((()=>{e.isUnmounted=!0}),n),n&&n.pendingBranch&&!n.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===n.pendingId&&(n.deps--,0===n.deps&&n.resolve()),__VUE_PROD_DEVTOOLS__},re=(e,n,t,r=!1,o=!1,s=0)=>{for(let l=s;l<e.length;l++)Q(e[l],n,t,r,o)},le=e=>6&e.shapeFlag?le(e.component.subTree):128&e.shapeFlag?e.suspense.next():g(e.anchor||e.el),ie=(e,n)=>{null==e?n._vnode&&Q(n._vnode,null,null,!0):x(n._vnode||null,e,n),wn(),n._vnode=e},ce={p:x,um:Q,m:Z,r:ee,mt:D,mc:T,pc:H,pbc:F,n:le,o:e};let ue,de;n&&([ue,de]=n(ce));return{render:ie,hydrate:ue,createApp:Ct(ie,ue)}}(e)}function At(e,n,t,r=null){sn(e,n,7,[t,r])}function Ut(e,n,t=!1){const r=e.children,o=n.children;if(x(r)&&x(o))for(let e=0;e<r.length;e++){const n=r[e];let s=o[e];1&s.shapeFlag&&!s.dynamicChildren&&((s.patchFlag<=0||32===s.patchFlag)&&(s=o[e]=Yt(o[e]),s.el=n.el),t||Ut(n,s))}}const Pt=e=>e&&(e.disabled||\"\"===e.disabled);function Tt(e){return function(e,n,t=!0){const r=Nn||yr;if(r){const t=r.type;if(\"components\"===e){if(\"_self\"===n)return t;const e=t.displayName||t.name;if(e&&(e===n||e===R(n)||e===M(R(n))))return t}return Vt(r[e]||t[e],n)||Vt(r.appContext[e],n)}}(\"components\",e)||e}const Nt=Symbol();function Vt(e,n){return e&&(e[n]||e[R(n)]||e[M(R(n))])}const Ft=Symbol(void 0),jt=Symbol(void 0),Rt=Symbol(void 0),It=Symbol(void 0),Kt=[];let Mt=null;function Dt(e=!1){Kt.push(Mt=e?null:[])}function $t(){Kt.pop(),Mt=Kt[Kt.length-1]||null}function Lt(e,n,t,r,o){const s=Jt(e,n,t,r,o,!0);return s.dynamicChildren=Mt||d,$t(),Mt&&Mt.push(s),s}function qt(e){return!!e&&!0===e.__v_isVNode}function Bt(e,n){return e.type===n.type&&e.key===n.key}const Wt=\"__vInternal\",zt=({key:e})=>null!=e?e:null,Ht=({ref:e})=>null!=e?k(e)||Qe(e)||O(e)?{i:Nn,r:e}:e:null,Jt=function(e,n=null,t=null,o=0,s=null,l=!1){e&&e!==Nt||(e=Rt);if(qt(e)){const r=Gt(e,n,!0);return t&&er(r,t),r}i=e,O(i)&&\"__vccOpts\"in i&&(e=e.__vccOpts);var i;if(n){(Je(n)||Wt in n)&&(n=y({},n));let{class:e,style:t}=n;e&&!k(e)&&(n.class=a(e)),E(t)&&(Je(t)&&!x(t)&&(t=y({},t)),n.style=r(t))}const c=k(e)?1:(e=>e.__isSuspense)(e)?128:(e=>e.__isTeleport)(e)?64:E(e)?4:O(e)?2:0,u={__v_isVNode:!0,__v_skip:!0,type:e,props:n,key:n&&zt(n),ref:n&&Ht(n),scopeId:null,children:null,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:c,patchFlag:o,dynamicProps:s,dynamicChildren:null,appContext:null};if(er(u,t),128&c){const{content:e,fallback:n}=function(e){const{shapeFlag:n,children:t}=e;let r,o;return 32&n?(r=Mn(t.default),o=Mn(t.fallback)):(r=Mn(t),o=Xt(null)),{content:r,fallback:o}}(u);u.ssContent=e,u.ssFallback=n}!l&&Mt&&(o>0||6&c)&&32!==o&&Mt.push(u);return u};function Gt(e,n,t=!1){const{props:o,ref:s,patchFlag:l}=e,i=n?function(...e){const n=y({},e[0]);for(let t=1;t<e.length;t++){const o=e[t];for(const e in o)if(\"class\"===e)n.class!==o.class&&(n.class=a([n.class,o.class]));else if(\"style\"===e)n.style=r([n.style,o.style]);else if(g(e)){const t=n[e],r=o[e];t!==r&&(n[e]=t?[].concat(t,o[e]):r)}else\"\"!==e&&(n[e]=o[e])}return n}(o||{},n):o;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:i,key:i&&zt(i),ref:n&&n.ref?t&&s?x(s)?s.concat(Ht(n)):[s,Ht(n)]:Ht(n):s,scopeId:e.scopeId,children:e.children,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:n&&e.type!==Ft?-1===l?16:16|l:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Gt(e.ssContent),ssFallback:e.ssFallback&&Gt(e.ssFallback),el:e.el,anchor:e.anchor}}function Zt(e=\" \",n=0){return Jt(jt,null,e,n)}function Qt(e=\"\",n=!1){return n?(Dt(),Lt(Rt,null,e)):Jt(Rt,null,e)}function Xt(e){return null==e||\"boolean\"==typeof e?Jt(Rt):x(e)?Jt(Ft,null,e):\"object\"==typeof e?null===e.el?e:Gt(e):Jt(jt,null,String(e))}function Yt(e){return null===e.el?e:Gt(e)}function er(e,n){let t=0;const{shapeFlag:r}=e;if(null==n)n=null;else if(x(n))t=16;else if(\"object\"==typeof n){if(1&r||64&r){const t=n.default;return void(t&&(t._c&&$n(1),er(e,t()),t._c&&$n(-1)))}{t=32;const r=n._;r||Wt in n?3===r&&Nn&&(1024&Nn.vnode.patchFlag?(n._=2,e.patchFlag|=1024):n._=1):n._ctx=Nn}}else O(n)?(n={default:n,_ctx:Nn},t=32):(n=String(n),64&r?(t=16,n=[Zt(n)]):t=8);e.children=n,e.shapeFlag|=t}function nr(e,n,t=!1){const r=yr||Nn;if(r){const o=null==r.parent?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(o&&e in o)return o[e];if(arguments.length>1)return t&&O(n)?n():n}}let tr=!1;function rr(e,n,t=[],r=[],o=[],s=!1){const{mixins:l,extends:a,data:i,computed:c,methods:d,watch:f,provide:h,inject:g,components:_,directives:m,beforeMount:v,mounted:b,beforeUpdate:S,updated:C,activated:k,deactivated:w,beforeDestroy:A,beforeUnmount:U,destroyed:P,unmounted:T,render:N,renderTracked:V,renderTriggered:F,errorCaptured:j,expose:R}=n,I=e.proxy,K=e.ctx,M=e.appContext.mixins;if(s&&N&&e.render===p&&(e.render=N),s||(tr=!0,or(\"beforeCreate\",\"bc\",n,e,M),tr=!1,ar(e,M,t,r,o)),a&&rr(e,a,t,r,o,!0),l&&ar(e,l,t,r,o),g)if(x(g))for(let e=0;e<g.length;e++){const n=g[e];K[n]=nr(n)}else for(const e in g){const n=g[e];E(n)?K[e]=nr(n.from||e,n.default,!0):K[e]=nr(n)}if(d)for(const e in d){const n=d[e];O(n)&&(K[e]=n.bind(I))}if(s?i&&t.push(i):(t.length&&t.forEach((n=>ir(e,n,I))),i&&ir(e,i,I)),c)for(const e in c){const n=c[e],t=Cr({get:O(n)?n.bind(I,I):O(n.get)?n.get.bind(I,I):p,set:!O(n)&&O(n.set)?n.set.bind(I):p});Object.defineProperty(K,e,{enumerable:!0,configurable:!0,get:()=>t.value,set:e=>t.value=e})}var D;if(f&&r.push(f),!s&&r.length&&r.forEach((e=>{for(const n in e)cr(e[n],K,I,n)})),h&&o.push(h),!s&&o.length&&o.forEach((e=>{const n=O(e)?e.call(I):e;Reflect.ownKeys(n).forEach((e=>{!function(e,n){if(yr){let t=yr.provides;const r=yr.parent&&yr.parent.provides;r===t&&(t=yr.provides=Object.create(r)),t[e]=n}}(e,n[e])}))})),s&&(_&&y(e.components||(e.components=y({},e.type.components)),_),m&&y(e.directives||(e.directives=y({},e.type.directives)),m)),s||or(\"created\",\"c\",n,e,M),v&&Xn(v.bind(I)),b&&Yn(b.bind(I)),S&&et(S.bind(I)),C&&nt(C.bind(I)),k&&pt(k.bind(I),\"a\",D),w&&function(e,n){pt(e,\"da\",n)}(w.bind(I)),j&&((e,n=yr)=>{Zn(\"ec\",e,n)})(j.bind(I)),V&&st(V.bind(I)),F&&ot(F.bind(I)),U&&tt(U.bind(I)),T&&rt(T.bind(I)),x(R)&&!s)if(R.length){const n=e.exposed||(e.exposed=nn({}));R.forEach((e=>{n[e]=function(e,n){return Qe(e[n])?e[n]:new tn(e,n)}(I,e)}))}else e.exposed||(e.exposed=u)}function or(e,n,t,r,o){lr(e,n,o,r);const{extends:s,mixins:l}=t;s&&sr(e,n,s,r),l&&lr(e,n,l,r);const a=t[e];a&&sn(a.bind(r.proxy),r,n)}function sr(e,n,t,r){t.extends&&sr(e,n,t.extends,r);const o=t[e];o&&sn(o.bind(r.proxy),r,n)}function lr(e,n,t,r){for(let o=0;o<t.length;o++){const s=t[o].mixins;s&&lr(e,n,s,r);const l=t[o][e];l&&sn(l.bind(r.proxy),r,n)}}function ar(e,n,t,r,o){for(let s=0;s<n.length;s++)rr(e,n[s],t,r,o,!0)}function ir(e,n,t){const r=n.call(t,t);E(r)&&(e.data===u?e.data=qe(r):y(e.data,r))}function cr(e,n,t,r){const o=r.includes(\".\")?function(e,n){const t=n.split(\".\");return()=>{let n=e;for(let e=0;e<t.length&&n;e++)n=n[t[e]];return n}}(t,r):()=>t[r];if(k(e)){const t=n[e];O(t)&&at(o,t)}else if(O(e))at(o,e.bind(t));else if(E(e))if(x(e))e.forEach((e=>cr(e,n,t,r)));else{const r=O(e.handler)?e.handler.bind(t):n[e.handler];O(r)&&at(o,r,e)}}function ur(e,n,t){const r=t.appContext.config.optionMergeStrategies,{mixins:o,extends:s}=n;s&&ur(e,s,t),o&&o.forEach((n=>ur(e,n,t)));for(const o in n)r&&b(r,o)?e[o]=r[o](e[o],n[o],t.proxy,o):e[o]=n[o]}const dr=e=>e&&(e.proxy?e.proxy:dr(e.parent)),pr=y(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>dr(e.parent),$root:e=>e.root&&e.root.proxy,$emit:e=>e.emit,$options:e=>__VUE_OPTIONS_API__?function(e){const n=e.type,{__merged:t,mixins:r,extends:o}=n;if(t)return t;const s=e.appContext.mixins;if(!s.length&&!r&&!o)return n;const l={};return s.forEach((n=>ur(l,n,e))),ur(l,n,e),n.__merged=l}(e):e.type,$forceUpdate:e=>()=>Sn(e.update),$nextTick:e=>xn.bind(e.proxy),$watch:e=>__VUE_OPTIONS_API__?ct.bind(e):p}),fr={get({_:e},n){const{ctx:t,setupState:r,data:o,props:s,accessCache:l,type:a,appContext:i}=e;if(\"__v_skip\"===n)return!0;let c;if(\"$\"!==n[0]){const a=l[n];if(void 0!==a)switch(a){case 0:return r[n];case 1:return o[n];case 3:return t[n];case 2:return s[n]}else{if(r!==u&&b(r,n))return l[n]=0,r[n];if(o!==u&&b(o,n))return l[n]=1,o[n];if((c=e.propsOptions[0])&&b(c,n))return l[n]=2,s[n];if(t!==u&&b(t,n))return l[n]=3,t[n];__VUE_OPTIONS_API__&&tr||(l[n]=4)}}const d=pr[n];let p,f;return d?(\"$attrs\"===n&&le(e,0,n),d(e)):(p=a.__cssModules)&&(p=p[n])?p:t!==u&&b(t,n)?(l[n]=3,t[n]):(f=i.config.globalProperties,b(f,n)?f[n]:void 0)},set({_:e},n,t){const{data:r,setupState:o,ctx:s}=e;if(o!==u&&b(o,n))o[n]=t;else if(r!==u&&b(r,n))r[n]=t;else if(n in e.props)return!1;return(\"$\"!==n[0]||!(n.slice(1)in e))&&(s[n]=t,!0)},has({_:{data:e,setupState:n,accessCache:t,ctx:r,appContext:o,propsOptions:s}},l){let a;return void 0!==t[l]||e!==u&&b(e,l)||n!==u&&b(n,l)||(a=s[0])&&b(a,l)||b(r,l)||b(pr,l)||b(o.config.globalProperties,l)}},hr=y({},fr,{get(e,n){if(n!==Symbol.unscopables)return fr.get(e,n,e)},has:(e,t)=>\"_\"!==t[0]&&!n(t)}),gr=xt();let _r=0;let yr=null;const mr=e=>{yr=e};let vr=!1;function br(e,n,t){O(n)?e.render=n:E(n)&&(__VUE_PROD_DEVTOOLS__&&(e.devtoolsRawSetupState=n),e.setupState=nn(n)),xr(e)}function xr(e,n){const t=e.type;e.render||(e.render=t.render||p,e.render._rc&&(e.withProxy=new Proxy(e.ctx,hr))),__VUE_OPTIONS_API__&&(yr=e,oe(),rr(e,t),se(),yr=null)}function Sr(e,n=yr){n&&(n.effects||(n.effects=[])).push(e)}function Cr(e){const n=function(e){let n,t;return O(e)?(n=e,t=p):(n=e.get,t=e.set),new rn(n,t,O(e)||!e.set)}(e);return Sr(n.effect),n}function Or(e,n){let t;if(x(e)||k(e)){t=new Array(e.length);for(let r=0,o=e.length;r<o;r++)t[r]=n(e[r],r)}else if(\"number\"==typeof e){t=new Array(e);for(let r=0;r<e;r++)t[r]=n(r+1,r)}else if(E(e))if(e[Symbol.iterator])t=Array.from(e,n);else{const r=Object.keys(e);t=new Array(r.length);for(let o=0,s=r.length;o<s;o++){const s=r[o];t[o]=n(e[s],s,o)}}else t=[];return t}const kr=\"3.0.4\",wr=\"http://www.w3.org/2000/svg\",Er=\"undefined\"!=typeof document?document:null;let Ar,Ur;const Pr={insert:(e,n,t)=>{n.insertBefore(e,t||null)},remove:e=>{const n=e.parentNode;n&&n.removeChild(e)},createElement:(e,n,t)=>n?Er.createElementNS(wr,e):Er.createElement(e,t?{is:t}:void 0),createText:e=>Er.createTextNode(e),createComment:e=>Er.createComment(e),setText:(e,n)=>{e.nodeValue=n},setElementText:(e,n)=>{e.textContent=n},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Er.querySelector(e),setScopeId(e,n){e.setAttribute(n,\"\")},cloneNode:e=>e.cloneNode(!0),insertStaticContent(e,n,t,r){const o=r?Ur||(Ur=Er.createElementNS(wr,\"svg\")):Ar||(Ar=Er.createElement(\"div\"));o.innerHTML=e;const s=o.firstChild;let l=s,a=l;for(;l;)a=l,Pr.insert(l,n,t),l=o.firstChild;return[s,a]}};const Tr=/\\s*!important$/;function Nr(e,n,t){if(x(t))t.forEach((t=>Nr(e,n,t)));else if(n.startsWith(\"--\"))e.setProperty(n,t);else{const r=function(e,n){const t=Fr[n];if(t)return t;let r=R(n);if(\"filter\"!==r&&r in e)return Fr[n]=r;r=M(r);for(let t=0;t<Vr.length;t++){const o=Vr[t]+r;if(o in e)return Fr[n]=o}return n}(e,n);Tr.test(t)?e.setProperty(K(r),t.replace(Tr,\"\"),\"important\"):e[r]=t}}const Vr=[\"Webkit\",\"Moz\",\"ms\"],Fr={};const jr=\"http://www.w3.org/1999/xlink\";let Rr=Date.now;\"undefined\"!=typeof document&&Rr()>document.createEvent(\"Event\").timeStamp&&(Rr=()=>performance.now());let Ir=0;const Kr=Promise.resolve(),Mr=()=>{Ir=0};function Dr(e,n,t,r,o=null){const s=e._vei||(e._vei={}),l=s[n];if(r&&l)l.value=r;else{const[t,a]=function(e){let n;if($r.test(e)){let t;for(n={};t=e.match($r);)e=e.slice(0,e.length-t[0].length),n[t[0].toLowerCase()]=!0}return[e.slice(2).toLowerCase(),n]}(n);if(r){!function(e,n,t,r){e.addEventListener(n,t,r)}(e,t,s[n]=function(e,n){const t=e=>{(e.timeStamp||Rr())>=t.attached-1&&sn(function(e,n){if(x(n)){const t=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{t.call(e),e._stopped=!0},n.map((e=>n=>!n._stopped&&e(n)))}return n}(e,t.value),n,5,[e])};return t.value=e,t.attached=(()=>Ir||(Kr.then(Mr),Ir=Rr()))(),t}(r,o),a)}else l&&(!function(e,n,t,r){e.removeEventListener(n,t,r)}(e,t,l,a),s[n]=void 0)}}const $r=/(?:Once|Passive|Capture)$/;const Lr=/^on[a-z]/;const qr={beforeMount(e,{value:n},{transition:t}){e._vod=\"none\"===e.style.display?\"\":e.style.display,t&&n?t.beforeEnter(e):Br(e,n)},mounted(e,{value:n},{transition:t}){t&&n&&t.enter(e)},updated(e,{value:n,oldValue:t},{transition:r}){r&&n!==t?n?(r.beforeEnter(e),Br(e,!0),r.enter(e)):r.leave(e,(()=>{Br(e,!1)})):Br(e,n)},beforeUnmount(e,{value:n}){Br(e,n)}};function Br(e,n){e.style.display=n?e._vod:\"none\"}const Wr=y({patchProp:(e,n,r,o,s=!1,l,a,i,c)=>{switch(n){case\"class\":!function(e,n,t){if(null==n&&(n=\"\"),t)e.setAttribute(\"class\",n);else{const t=e._vtc;t&&(n=(n?[n,...t]:[...t]).join(\" \")),e.className=n}}(e,o,s);break;case\"style\":!function(e,n,t){const r=e.style;if(t)if(k(t))n!==t&&(r.cssText=t);else{for(const e in t)Nr(r,e,t[e]);if(n&&!k(n))for(const e in n)null==t[e]&&Nr(r,e,\"\")}else e.removeAttribute(\"style\")}(e,r,o);break;default:g(n)?_(n)||Dr(e,n,0,o,a):function(e,n,t,r){if(r)return\"innerHTML\"===n||!!(n in e&&Lr.test(n)&&O(t));if(\"spellcheck\"===n||\"draggable\"===n)return!1;if(\"form\"===n&&\"string\"==typeof t)return!1;if(\"list\"===n&&\"INPUT\"===e.tagName)return!1;if(Lr.test(n)&&k(t))return!1;return n in e}(e,n,o,s)?function(e,n,t,r,o,s,l){if(\"innerHTML\"===n||\"textContent\"===n)return r&&l(r,o,s),void(e[n]=null==t?\"\":t);if(\"value\"!==n||\"PROGRESS\"===e.tagName){if(\"\"===t||null==t){const r=typeof e[n];if(\"\"===t&&\"boolean\"===r)return void(e[n]=!0);if(null==t&&\"string\"===r)return e[n]=\"\",void e.removeAttribute(n);if(\"number\"===r)return e[n]=0,void e.removeAttribute(n)}try{e[n]=t}catch(e){}}else{e._value=t;const n=null==t?\"\":t;e.value!==n&&(e.value=n)}}(e,n,o,l,a,i,c):(\"true-value\"===n?e._trueValue=o:\"false-value\"===n&&(e._falseValue=o),function(e,n,r,o){if(o&&n.startsWith(\"xlink:\"))null==r?e.removeAttributeNS(jr,n.slice(6,n.length)):e.setAttributeNS(jr,n,r);else{const o=t(n);null==r||o&&!1===r?e.removeAttribute(n):e.setAttribute(n,o?\"\":r)}}(e,n,o,s))}},forcePatchProp:(e,n)=>\"value\"===n},Pr);let zr;function Hr(){return zr||(zr=Et(Wr))}const Jr=(...e)=>{const n=Hr().createApp(...e),{mount:t}=n;return n.mount=e=>{const r=function(e){if(k(e)){return document.querySelector(e)}return e}(e);if(!r)return;const o=n._component;O(o)||o.render||o.template||(o.template=r.innerHTML),r.innerHTML=\"\";const s=t(r);return r.removeAttribute(\"v-cloak\"),r.setAttribute(\"data-v-app\",\"\"),s},n};const Gr=(...e)=>Object.prototype.toString.call(...e).slice(8,-1);var Zr={props:{data:{required:!0,validator:e=>\"Null\"===Gr(e)},name:{required:!0,type:String}}};const Qr={class:\"null\"},Xr={class:\"key\"},Yr={key:0,class:\"separator\"},eo=Jt(\"span\",{class:\"value\"},\"null\",-1);Zr.render=function(e,n,t,r,o,s){return Dt(),Lt(\"span\",Qr,[Jt(\"span\",Xr,i(t.name),1),\"\"!==t.name?(Dt(),Lt(\"span\",Yr,\": \")):Qt(\"v-if\",!0),eo])},Zr.__file=\"src/components/NullWrapper.vue\";var no={props:{data:{required:!0,validator:e=>\"Boolean\"===Gr(e)},name:{required:!0,type:String}}};const to={class:\"boolean\"},ro={class:\"key\"},oo={key:0,class:\"separator\"},so={class:\"value\"};no.render=function(e,n,t,r,o,s){return Dt(),Lt(\"span\",to,[Jt(\"span\",ro,i(t.name),1),\"\"!==t.name?(Dt(),Lt(\"span\",oo,\": \")):Qt(\"v-if\",!0),Jt(\"span\",so,i(t.data),1)])},no.__file=\"src/components/BooleanWrapper.vue\";var lo={props:{data:{required:!0,validator:e=>\"Number\"===Gr(e)},name:{required:!0,type:String}}};const ao={class:\"number\"},io={class:\"key\"},co={key:0,class:\"separator\"},uo={class:\"value\"};lo.render=function(e,n,t,r,o,s){return Dt(),Lt(\"span\",ao,[Jt(\"span\",io,i(t.name),1),\"\"!==t.name?(Dt(),Lt(\"span\",co,\": \")):Qt(\"v-if\",!0),Jt(\"span\",uo,i(t.data),1)])},lo.__file=\"src/components/NumberWrapper.vue\";var po={props:{data:{required:!0,validator:e=>\"String\"===Gr(e)},name:{required:!0,type:String}}};const fo={class:\"string\"},ho={class:\"key\"},go={key:0,class:\"separator\"},_o=Jt(\"span\",{class:\"quotes\"},'\"',-1),yo={class:\"value\"},mo=Jt(\"span\",{class:\"quotes\"},'\"',-1);po.render=function(e,n,t,r,o,s){return Dt(),Lt(\"span\",fo,[Jt(\"span\",ho,i(t.name),1),\"\"!==t.name?(Dt(),Lt(\"span\",go,\": \")):Qt(\"v-if\",!0),_o,Jt(\"span\",yo,i(t.data),1),mo])},po.__file=\"src/components/StringWrapper.vue\";const vo=new Set;function bo(e={collapseSignal:collapseSignal,expandSignal:expandSignal}){const n=Xe(!1),t=Xe(!1),r=()=>{n.value=!1,t.value=!t.value};at((()=>e.collapseSignal),r);const o=Xe(!1),s=()=>{n.value=!0,o.value=!o.value};at((()=>e.expandSignal),s);return at((()=>e.data),(()=>{e.expandOnCreatedAndUpdated(e.path)?s():r()}),{immediate:!0}),{isExpanding:n,innerCollapseSignal:t,innerExpandSignal:o,handleClick:e=>{vo.clear(),!0===e.metaKey&&!0===e.shiftKey?r():!0===e.metaKey?s():n.value=!n.value}}}var xo={name:\"array-wrapper\",props:{path:{required:!0,validator:e=>\"Array\"===Gr(e)&&e.every((e=>\"String\"===Gr(e)||\"Number\"===Gr(e)))},data:{required:!0,validator:e=>\"Array\"===Gr(e)},name:{required:!0,type:String},collapseSignal:{default:!1,type:Boolean},expandSignal:{default:!1,type:Boolean},expandOnCreatedAndUpdated:{required:!0,type:Function},getKeys:{required:!0,type:Function}},setup(e){const{isExpanding:n,innerExpandSignal:t,innerCollapseSignal:r,handleClick:o}=bo(e),s=Cr((()=>e.getKeys(e.data,e.path))),l=vo.has(e.data);return vo.add(e.data),{keys:s,isExpanding:n,innerExpandSignal:t,innerCollapseSignal:r,handleClick:o,isCircular:l}},components:{}};const So={class:\"array\"},Co={key:0,class:\"value\"},Oo={key:0,class:\"value\"};xo.render=function(e,n,t,r,o,s){const l=Tt(\"wrapper\");return Dt(),Lt(\"span\",So,[Jt(\"span\",{class:\"indicator\",onClick:n[1]||(n[1]=(...e)=>r.handleClick&&r.handleClick(...e))},i(r.isExpanding?\"▼\":\"▶\"),1),Jt(\"span\",{class:\"key\",onClick:n[2]||(n[2]=(...e)=>r.handleClick&&r.handleClick(...e))},i(\"\"===t.name?\"\":t.name),1),Jt(\"span\",{class:\"separator\",onClick:n[3]||(n[3]=(...e)=>r.handleClick&&r.handleClick(...e))},i(\"\"===t.name?\"\":\": \"),1),Jt(\"span\",{class:\"count\",onClick:n[4]||(n[4]=(...e)=>r.handleClick&&r.handleClick(...e))},i(!1===r.isExpanding&&t.data.length>=2?\"(\"+t.data.length+\")\":\"\"),1),Jt(\"span\",{class:\"preview\",onClick:n[5]||(n[5]=(...e)=>r.handleClick&&r.handleClick(...e))},i(r.isExpanding?\"Array(\"+t.data.length+\")\":\"[...]\"),1),r.isCircular?(Dt(),Lt(Ft,{key:0},[r.isExpanding?(Dt(),Lt(\"span\",Co,[(Dt(!0),Lt(Ft,null,Or(r.keys,(e=>(Dt(),Lt(l,{key:e,name:e,path:t.path.concat(e),data:t.data[e],\"expand-signal\":r.innerExpandSignal,\"collapse-signal\":r.innerCollapseSignal,expandOnCreatedAndUpdated:()=>!1,getKeys:t.getKeys},null,8,[\"name\",\"path\",\"data\",\"expand-signal\",\"collapse-signal\",\"expandOnCreatedAndUpdated\",\"getKeys\"])))),128))])):Qt(\"v-if\",!0)],64)):(Dt(),Lt(Ft,{key:1},[r.isExpanding?(Dt(),Lt(\"span\",Oo,[(Dt(!0),Lt(Ft,null,Or(r.keys,(e=>(Dt(),Lt(l,{key:e,name:e,path:t.path.concat(e),data:t.data[e],\"expand-signal\":r.innerExpandSignal,\"collapse-signal\":r.innerCollapseSignal,expandOnCreatedAndUpdated:t.expandOnCreatedAndUpdated,getKeys:t.getKeys},null,8,[\"name\",\"path\",\"data\",\"expand-signal\",\"collapse-signal\",\"expandOnCreatedAndUpdated\",\"getKeys\"])))),128))])):Qt(\"v-if\",!0)],64))])},xo.__file=\"src/components/ArrayWrapper.vue\";var ko={name:\"object-wrapper\",props:{path:{required:!0,validator:e=>\"Array\"===Gr(e)&&e.every((e=>\"String\"===Gr(e)||\"Number\"===Gr(e)))},data:{required:!0,validator:e=>\"Object\"===Gr(e)},name:{required:!0,type:String},collapseSignal:{default:!1,type:Boolean},expandSignal:{default:!1,type:Boolean},expandOnCreatedAndUpdated:{required:!0,type:Function},getKeys:{required:!0,type:Function}},setup(e){const{isExpanding:n,innerExpandSignal:t,innerCollapseSignal:r,handleClick:o}=bo(e),s=Cr((()=>e.getKeys(e.data,e.path))),l=vo.has(e.data);return vo.add(e.data),{keys:s,isExpanding:n,innerExpandSignal:t,innerCollapseSignal:r,handleClick:o,isCircular:l}},components:{}};const wo={class:\"object\"},Eo={key:0,class:\"value\"},Ao={key:1,class:\"value\"};ko.render=function(e,n,t,r,o,s){const l=Tt(\"wrapper\");return Dt(),Lt(\"span\",wo,[Jt(\"span\",{class:\"indicator\",onClick:n[1]||(n[1]=(...e)=>r.handleClick&&r.handleClick(...e))},i(r.isExpanding?\"▼\":\"▶\"),1),Jt(\"span\",{class:\"key\",onClick:n[2]||(n[2]=(...e)=>r.handleClick&&r.handleClick(...e))},i(\"\"===t.name?\"\":t.name),1),Jt(\"span\",{class:\"separator\",onClick:n[3]||(n[3]=(...e)=>r.handleClick&&r.handleClick(...e))},i(\"\"===t.name?\"\":\": \"),1),Jt(\"span\",{class:\"preview\",onClick:n[4]||(n[4]=(...e)=>r.handleClick&&r.handleClick(...e))},i(r.isExpanding?\"\":\"{...}\"),1),r.isCircular?(Dt(),Lt(Ft,{key:0},[r.isExpanding?(Dt(),Lt(\"span\",Eo,[(Dt(!0),Lt(Ft,null,Or(r.keys,(e=>(Dt(),Lt(l,{key:e,class:\"value\",name:e,path:t.path.concat(e),data:t.data[e],\"expand-signal\":r.innerExpandSignal,\"collapse-signal\":r.innerCollapseSignal,expandOnCreatedAndUpdated:()=>!1,getKeys:t.getKeys},null,8,[\"name\",\"path\",\"data\",\"expand-signal\",\"collapse-signal\",\"expandOnCreatedAndUpdated\",\"getKeys\"])))),128))])):Qt(\"v-if\",!0)],64)):vt((Dt(),Lt(\"span\",Ao,[(Dt(!0),Lt(Ft,null,Or(r.keys,(e=>(Dt(),Lt(l,{key:e,class:\"value\",name:e,path:t.path.concat(e),data:t.data[e],\"expand-signal\":r.innerExpandSignal,\"collapse-signal\":r.innerCollapseSignal,expandOnCreatedAndUpdated:t.expandOnCreatedAndUpdated,getKeys:t.getKeys},null,8,[\"name\",\"path\",\"data\",\"expand-signal\",\"collapse-signal\",\"expandOnCreatedAndUpdated\",\"getKeys\"])))),128))],512)),[[qr,r.isExpanding]])])},ko.__file=\"src/components/ObjectWrapper.vue\";const Uo={name:\"wrapper\",props:{path:{required:!0,validator:e=>\"Array\"===Gr(e)&&e.every((e=>\"String\"===Gr(e)||\"Number\"===Gr(e)))},data:{required:!0,validator:e=>\"Null\"===Gr(e)||\"Boolean\"===Gr(e)||\"Number\"===Gr(e)||\"String\"===Gr(e)||\"Array\"===Gr(e)||\"Object\"===Gr(e)},name:{required:!0,type:String},collapseSignal:{default:!1,type:Boolean},expandSignal:{default:!1,type:Boolean},expandOnCreatedAndUpdated:{required:!0,type:Function},getKeys:{required:!0,type:Function}},setup:()=>({objectToString:Gr}),components:{NullWrapper:Zr,BooleanWrapper:no,NumberWrapper:lo,StringWrapper:po,ArrayWrapper:xo,ObjectWrapper:ko}};xo.components.Wrapper=Uo,ko.components.Wrapper=Uo,Uo.render=function(e,n,t,r,o,s){const l=Tt(\"null-wrapper\"),a=Tt(\"boolean-wrapper\"),i=Tt(\"number-wrapper\"),c=Tt(\"string-wrapper\"),u=Tt(\"array-wrapper\"),d=Tt(\"object-wrapper\");return\"Null\"===e.objectToString(e.data)?(Dt(),Lt(l,{key:0,name:e.name,data:e.data},null,8,[\"name\",\"data\"])):\"Boolean\"===e.objectToString(e.data)?(Dt(),Lt(a,{key:1,name:e.name,data:e.data},null,8,[\"name\",\"data\"])):\"Number\"===e.objectToString(e.data)?(Dt(),Lt(i,{key:2,name:e.name,data:e.data},null,8,[\"name\",\"data\"])):\"String\"===e.objectToString(e.data)?(Dt(),Lt(c,{key:3,name:e.name,data:e.data},null,8,[\"name\",\"data\"])):\"Array\"===e.objectToString(e.data)?(Dt(),Lt(u,{key:4,name:e.name,path:e.path,data:e.data,\"collapse-signal\":e.collapseSignal,\"expand-signal\":e.expandSignal,expandOnCreatedAndUpdated:e.expandOnCreatedAndUpdated,getKeys:e.getKeys},null,8,[\"name\",\"path\",\"data\",\"collapse-signal\",\"expand-signal\",\"expandOnCreatedAndUpdated\",\"getKeys\"])):\"Object\"===e.objectToString(e.data)?(Dt(),Lt(d,{key:5,name:e.name,path:e.path,data:e.data,\"collapse-signal\":e.collapseSignal,\"expand-signal\":e.expandSignal,expandOnCreatedAndUpdated:e.expandOnCreatedAndUpdated,getKeys:e.getKeys},null,8,[\"name\",\"path\",\"data\",\"collapse-signal\",\"expand-signal\",\"expandOnCreatedAndUpdated\",\"getKeys\"])):Qt(\"v-if\",!0)},Uo.__file=\"src/components/Wrapper.vue\";const Po=Object.freeze({expandOnCreatedAndUpdated:e=>!1,getKeys:(e,n)=>Object.keys(e)});var To=(e,n,t={})=>{void 0===t.rootName&&(t.rootName=\"\"),void 0===t.getKeys&&(t.getKeys=Po.getKeys),void 0===t.expandOnCreatedAndUpdated&&(t.expandOnCreatedAndUpdated=Po.expandOnCreatedAndUpdated),n.classList.add(\"object-visualizer\"),((...e)=>{Hr().render(...e)})(null,n),Jr(Uo,{data:e,name:t.rootName,path:[],expandOnCreatedAndUpdated:t.expandOnCreatedAndUpdated,getKeys:t.getKeys}).mount(n)};export{To as mount,qe as reactive};\n","const COMPONENTS_MAP = {\n    grid: 'GridComponent',\n    polar: 'PolarComponent',\n    geo: 'GeoComponent',\n    singleAxis: 'SingleAxisComponent',\n    parallel: 'ParallelComponent',\n    calendar: 'CalendarComponent',\n    graphic: 'GraphicComponent',\n    toolbox: 'ToolboxComponent',\n    tooltip: 'TooltipComponent',\n    axisPointer: 'AxisPointerComponent',\n    brush: 'BrushComponent',\n    title: 'TitleComponent',\n    timeline: 'TimelineComponent',\n    markPoint: 'MarkPointComponent',\n    markLine: 'MarkLineComponent',\n    markArea: 'MarkAreaComponent',\n    legend: 'LegendComponent',\n    dataZoom: 'DataZoomComponent',\n    visualMap: 'VisualMapComponent',\n    aria: 'AriaComponent',\n    dataset: 'DatasetComponent',\n\n    // Dependencies\n    xAxis: 'GridComponent',\n    yAxis: 'GridComponent',\n    angleAxis: 'PolarComponent',\n    radiusAxis: 'PolarComponent'\n}\n\nconst CHARTS_MAP = {\n    line: 'LineChart',\n    bar: 'BarChart',\n    pie: 'PieChart',\n    scatter: 'ScatterChart',\n    radar: 'RadarChart',\n    map: 'MapChart',\n    tree: 'TreeChart',\n    treemap: 'TreemapChart',\n    graph: 'GraphChart',\n    gauge: 'GaugeChart',\n    funnel: 'FunnelChart',\n    parallel: 'ParallelChart',\n    sankey: 'SankeyChart',\n    boxplot: 'BoxplotChart',\n    candlestick: 'CandlestickChart',\n    effectScatter: 'EffectScatterChart',\n    lines: 'LinesChart',\n    heatmap: 'HeatmapChart',\n    pictorialBar: 'PictorialBarChart',\n    themeRiver: 'ThemeRiverChart',\n    sunburst: 'SunburstChart',\n    custom: 'CustomChart'\n}\nconst COMPONENTS_GL_MAP = {\n\n    grid3D: 'Grid3DComponent',\n    geo3D: 'Geo3DComponent',\n    globe: 'GlobeComponent',\n    mapbox3D: 'Mapbox3DComponent',\n    maptalks3D: 'Maptalks3DComponent',\n\n    // Dependencies\n    xAxis3D: 'Grid3DComponent',\n    yAxis3D: 'Grid3DComponent',\n    zAxis3D: 'Grid3DComponent',\n}\nconst CHARTS_GL_MAP = {\n    bar3D: 'Bar3DChart',\n    line3D: 'Line3DChart',\n    scatter3D: 'Scatter3DChart',\n    lines3D: 'Lines3DChart',\n    polygons3D: 'Polygons3DChart',\n    surface: 'SurfaceChart',\n    map3D: 'Map3DChart',\n\n    scatterGL: 'ScatterGLChart',\n    graphGL: 'GraphGLChart',\n    flowGL: 'FlowGLChart',\n    linesGL: 'LinesGLChart'\n}\n\nconst COMPONENTS_MAP_REVERSE = {};\nconst CHARTS_MAP_REVERSE = {};\nconst CHARTS_GL_MAP_REVERSE = {};\nconst COMPONENTS_GL_MAP_REVERSE = {};\n\nconst RENDERERS_MAP_REVERSE = {\n    'SVGRenderer': 'svg',\n    'CanvasRenderer': 'canvas'\n}\n\n// Component that will be injected automatically in preprocessor\n// These should be excluded util find they were used explicitly.\nconst MARKERS = ['markLine', 'markArea', 'markPoint'];\nconst INJECTED_COMPONENTS = [\n    ...MARKERS, 'grid', 'axisPointer',\n    'aria'  // TODO aria\n];\n\n// Component that was dependent.\nconst DEPENDENT_COMPONENTS = [\n    'xAxis', 'yAxis', 'angleAxis', 'radiusAxis',\n    'xAxis3D', 'yAxis3D', 'zAxis3D'\n];\n\nfunction createReverseMap(map, reverseMap) {\n    Object.keys(map).forEach(key => {\n        // Exclude dependencies.\n        if (DEPENDENT_COMPONENTS.includes(key)) {\n            return;\n        }\n        reverseMap[map[key]] = key;\n    });\n}\n\ncreateReverseMap(COMPONENTS_MAP, COMPONENTS_MAP_REVERSE);\ncreateReverseMap(CHARTS_MAP, CHARTS_MAP_REVERSE);\ncreateReverseMap(COMPONENTS_GL_MAP, COMPONENTS_GL_MAP_REVERSE);\ncreateReverseMap(CHARTS_GL_MAP, CHARTS_GL_MAP_REVERSE);\n\nmodule.exports.collectDeps = function collectDeps(option) {\n    let deps = [];\n    if (option.options) {\n\n        // TODO getOption() doesn't have baseOption and options.\n        option.options.forEach((opt) => {\n            deps = deps.concat(collectDeps(opt));\n        });\n\n        if (option.baseOption) {\n            deps = deps.concat(collectDeps(option.baseOption))\n        }\n\n        // Remove duplicates\n        return Array.from(new Set(deps));\n    }\n\n    Object.keys(option).forEach((key) => {\n        if (INJECTED_COMPONENTS.includes(key)) {\n            return;\n        }\n        const val = option[key];\n\n        if (Array.isArray(val) && !val.length) {\n            return;\n        }\n\n        if (COMPONENTS_MAP[key]) {\n            deps.push(COMPONENTS_MAP[key]);\n        }\n        if (COMPONENTS_GL_MAP[key]) {\n            deps.push(COMPONENTS_GL_MAP[key]);\n        }\n    });\n\n    let series = option.series;\n    if (!Array.isArray(series)) {\n        series = [series];\n    }\n\n    series.forEach((seriesOpt) => {\n        if (CHARTS_MAP[seriesOpt.type]) {\n            deps.push(CHARTS_MAP[seriesOpt.type]);\n        }\n        if (CHARTS_GL_MAP[seriesOpt.type]) {\n            deps.push(CHARTS_GL_MAP[seriesOpt.type]);\n        }\n        if (seriesOpt.type === 'map') {\n            // Needs geo component when using map\n            deps.push(COMPONENTS_MAP.geo);\n        }\n        MARKERS.forEach(markerType => {\n            if (seriesOpt[markerType]) {\n                deps.push(COMPONENTS_MAP[markerType]);\n            }\n        });\n    });\n\n    // Remove duplicates\n    return Array.from(new Set(deps));\n}\n\nfunction buildMinimalBundleCode(deps, includeType) {\n    const chartsImports = [];\n    const componentsImports = [];\n    const chartsGLImports = [];\n    const componentsGLImports = [];\n    const renderersImports = [];\n    deps.forEach(function (dep) {\n        if (dep.endsWith('Renderer')) {\n            renderersImports.push(dep);\n        }\n        else if (CHARTS_MAP_REVERSE[dep]) {\n            chartsImports.push(dep);\n            if (includeType) {\n                chartsImports.push(dep.replace(/Chart$/, 'SeriesOption'));\n            }\n        }\n        else if (COMPONENTS_MAP_REVERSE[dep]) {\n            componentsImports.push(dep);\n            if (includeType) {\n                componentsImports.push(dep.replace(/Component$/, 'ComponentOption'));\n            }\n        }\n        else if (CHARTS_GL_MAP_REVERSE[dep]) {\n            chartsGLImports.push(dep)\n        }\n        else if (COMPONENTS_GL_MAP_REVERSE[dep]) {\n            componentsGLImports.push(dep);\n        }\n    });\n\n    function getImportsPartCode(imports) {\n        return `${imports.map(str => `\n    ${str}`).join(',')}`;\n    }\n\n    const allImports = [\n        ...componentsImports,\n        ...chartsImports,\n        ...componentsGLImports,\n        ...chartsGLImports,\n        ...renderersImports\n    ];\n\n    const ECOptionTypeCode = `\ntype ECOption = echarts.ComposeOption<\n    ${allImports.filter(a => a.endsWith('Option')).join(' | ')}\n>`;\n    const importsCodes = [\n        [componentsImports, 'echarts/components'],\n        [chartsImports, 'echarts/charts'],\n        [renderersImports, 'echarts/renderers'],\n        [chartsGLImports, 'echarts-gl/charts'],\n        [componentsGLImports, 'echarts-gl/components']\n    ].filter(a => a[0].length > 0).map(item => `\nimport {${getImportsPartCode(item[0])}\n} from '${item[1]}';\n    `.trim()).join('\\n');\n\n    return `import * as echarts from 'echarts/core';\n${importsCodes}\n\necharts.use(\n    [${allImports.filter(a => !a.endsWith('Option')).join(', ')}]\n);\n` + (includeType ? ECOptionTypeCode : '')\n}\n\nmodule.exports.buildMinimalBundleCode = buildMinimalBundleCode;\n\nfunction buildLegacyMinimalBundleCode(deps, isESM) {\n    const modules = [];\n    deps.forEach(function (dep) {\n        if (dep.endsWith('Renderer') && dep !== 'CanvasRenderer') {\n            modules.push(`zrender/lib/${RENDERERS_MAP_REVERSE[dep]}/${RENDERERS_MAP_REVERSE[dep]}`);\n        }\n        else if (CHARTS_MAP_REVERSE[dep]) {\n            modules.push(`echarts/lib/chart/${CHARTS_MAP_REVERSE[dep]}`);\n        }\n        else if (COMPONENTS_MAP_REVERSE[dep]) {\n            modules.push(`echarts/lib/component/${COMPONENTS_MAP_REVERSE[dep]}`);\n        }\n        else if (CHARTS_GL_MAP_REVERSE[dep]) {\n            modules.push(`echarts-gl/lib/chart/${CHARTS_GL_MAP_REVERSE[dep]}`);\n        }\n        else if (COMPONENTS_GL_MAP_REVERSE[dep]) {\n            modules.push(`echarts-gl/lib/component/${COMPONENTS_GL_MAP_REVERSE[dep]}`);\n        }\n    });\n\n    return isESM ? `import * as echarts from 'echarts/lib/echarts';\n${modules.map(mod => {\n    return `import '${mod}';`;\n}).join('\\n')}\n` : `const echarts = require('echarts/lib/echarts');\n${modules.map(mod => {\n    return `require('${mod}');`;\n}).join('\\n')}\n`\n}\n\nfunction hasGLInDeps(deps) {\n    return !!deps.find(dep => !!(CHARTS_GL_MAP_REVERSE[dep] || COMPONENTS_GL_MAP_REVERSE[dep]));\n}\n\nmodule.buildLegacyMinimalBundleCode = buildLegacyMinimalBundleCode;\n\nmodule.exports.buildExampleCode = function (\n    jsCode, deps, {\n        // If enable minimal import\n        minimal,\n        // If is ESM module or CommonJS module\n        // Force to be true in ts mode or minimal mode.\n        esm = true,\n        // If use legacy minimal import, like:\n        // import 'echarts/lib/chart/bar';\n        // Only available when minimal is true.\n        legacy,\n        // If is ts code\n        ts,\n        // Theme\n        theme,\n        ROOT_PATH,\n        // Other imports code code string\n        // For example\n        // `import 'echarts-liquidfill'`\n        extraImports\n    }\n) {\n    // if (minimal && !legacy) {\n    //     // ESM must be used when use the new minimal import\n    //     esm = true;\n    // }\n\n    if (ts) {\n        esm = true;\n    }\n\n    if (minimal && !esm) {\n        // Only legacy mode can be used when use require in mimimal bundle.\n        legacy = true;\n    }\n\n\n    const hasECStat = jsCode.indexOf('ecStat') >= 0;\n    const usedRootPath = jsCode.indexOf('ROOT_PATH') >= 0;\n    const usedApp = jsCode.indexOf('app') >= 0;\n\n    const DEP_CODE = `\n${hasECStat ?\n    esm ? `import ecStat from 'echarts-stat';`\n        : `var ecStat = require('echarts-stat');`\n    : ''\n}\n`;\n    const IMPORT_CODE = [\n        !minimal\n            ? esm\n                ? `import * as echarts from 'echarts';${hasGLInDeps(deps) ? `\\nimport 'echarts-gl';` : ''}`\n                : `var echarts = require('echarts');${hasGLInDeps(deps) ? `\\nrequire('echarts-gl');` : ''}`\n            : legacy\n                ? buildLegacyMinimalBundleCode(deps, esm)\n                : buildMinimalBundleCode(deps, ts),\n        (theme && theme !== 'dark')\n            ? esm\n                ? `import 'echarts/theme/${theme}'`\n                : `require('echarts/theme/${theme}')`\n            : '',\n        extraImports\n    ].filter(a => !!a).join('\\n');\n\n    const ENV_CODE = [\n        usedRootPath ? `var ROOT_PATH = '${ROOT_PATH}';` : '',\n        usedApp ? `var app${ts ? ': any' : ''} = {};` : '',\n        ts && !minimal ? 'type ECOption = echarts.EChartsOption' : ''\n    ].filter(a => !!a).join('\\n');\n\n    const PREPARE_CODE = [\n        IMPORT_CODE.trim(), DEP_CODE.trim(), ENV_CODE.trim()\n    ].filter(a => !!a).join('\\n\\n');\n\n    return `${PREPARE_CODE}\n\nvar chartDom = document.getElementById('main')${ts ? '!' : ''};\nvar myChart = echarts.init(chartDom${theme ? `, '${theme}'` : ''});\nvar option${ts ? ': ECOption' : ''};\n\n${jsCode.trim()}\n\noption && myChart.setOption(option);\n`;\n}","<template>\n<div class=\"ace-editor-main\" v-loading=\"loading\"></div>\n</template>\n\n<script>\n\nimport {keywords} from '../data/option-keywords';\nimport {loadScriptsAsync} from '../common/helper';\nimport {store} from '../common/store';\nimport {SCRIPT_URLS} from '../common/config';\n\nfunction ensureACE() {\n    if (typeof ace === 'undefined') {\n        return loadScriptsAsync([\n            SCRIPT_URLS.aceDir + '/ace.js',\n            SCRIPT_URLS.aceDir + '/ext-language_tools.js'\n        ]).then(function () {\n            const lnTools = ace.require('ace/ext/language_tools');\n\n            const completions = [];\n            keywords.forEach(keyword => {\n                completions.push({\n                    caption: keyword.name,\n                    value: keyword.name,\n                    score: keyword.count,\n                    metal: 'local'\n                });\n            });\n\n            lnTools.addCompleter({\n                getCompletions: function (editor, session, pos, prefix, callback) {\n                    callback(null, completions);\n                }\n            });\n        })\n    }\n    return Promise.resolve();\n}\n\nexport default {\n\n    props: ['initialCode'],\n\n    data() {\n        return {\n            shared: store,\n            loading: false\n        }\n    },\n\n    mounted() {\n        this.loading = true;\n        ensureACE().then(() => {\n            this.loading = false;\n            const editor = ace.edit(this.$el);\n            editor.getSession().setMode('ace/mode/javascript');\n            editor.setOptions({\n                enableBasicAutocompletion: true,\n                enableSnippets: true,\n                enableLiveAutocompletion: true\n            });\n\n            this._editor = editor;\n\n            editor.on('change', () => {\n                store.sourceCode =\n                    store.runCode = editor.getValue();\n            });\n\n            if (this.initialCode) {\n                this.setInitialCode(this.initialCode);\n            }\n        });\n    },\n\n    methods: {\n        setInitialCode(code) {\n            if (this._editor && code) {\n                this._editor.setValue(code || '');\n                this._editor.selection.setSelectionRange({\n                    start: {\n                        row:1,\n                        column: 4\n                    }, end: {\n                        row:1,\n                        column: 4\n                    }\n                });\n            }\n        }\n    },\n\n    watch: {\n        initialCode(newVal) {\n            this.setInitialCode(newVal);\n        }\n    }\n}\n</script>\n\n<style lang=\"scss\">\n.ace-editor-main {\n    font-family: 'Source Code Pro', 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace;\n    font-size: 12px;\n    line-height: 18px;\n    padding: 10px;\n    // height: 100%;\n\n    // Fix safari\n    position: absolute;\n    left: 0;\n    top: 0;\n    bottom: 0;\n    right: 0;\n}\n</style>","<template>\n<div class=\"monaco-editor-main\" v-loading=\"loading\"></div>\n</template>\n\n<script>\n\nimport {keywords, fullKeywordsList} from '../data/option-keywords';\nimport {loadScriptsAsync} from '../common/helper';\nimport {store} from '../common/store';\nimport {SCRIPT_URLS} from '../common/config';\nimport { ensureECharts } from './Preview.vue';\n\nfunction loadTypes() {\n    return fetch(store.cdnRoot + '/types/echarts.d.ts', {\n        mode: 'cors'\n    }).then(response => response.text()).then(code => {\n\n        // validation settings\n        monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({\n            noSemanticValidation: false,\n            noSyntaxValidation: false\n        });\n\n        // compiler options\n        monaco.languages.typescript.typescriptDefaults.setCompilerOptions({\n            target: monaco.languages.typescript.ScriptTarget.ES6,\n            allowNonTsExtensions: true,\n            noResolve: false\n        });\n\n        // console.log('file:///node_modules/@types/' + res[i].path);\n        monaco.languages.typescript.typescriptDefaults.addExtraLib(\n            code,\n            // https://github.com/microsoft/monaco-editor/issues/667#issuecomment-468164794\n            'file:///node_modules/@types/echarts/index.d.ts'\n        );\n\n        monaco.languages.typescript.typescriptDefaults.addExtraLib(\n`import {init, EChartsOption} from 'echarts';\n// Declare to global namespace.\ndeclare global {\ndeclare const $: any;\ndeclare const ROOT_PATH: string;\ndeclare const app: {\n    configParameters: {\n        [key: string]: ({\n            options: { [key: string]: string\n        }) | ({\n            min?: number\n            max?: number\n        })\n    }\n    config: {\n        onChange: () => void\n        [key: string]: string | number | function\n    }\n    [key: string]: any\n};\ndeclare const myChart: ReturnType<typeof init>;\ndeclare var option: EChartsOption;\n}\n`,\n            'file:///example.d.ts'\n        );\n        return;\n    });\n}\n\nfunction ensureMonacoAndTsTransformer() {\n    function loadMonaco() {\n        if (typeof monaco === 'undefined') {\n            return loadScriptsAsync([\n                SCRIPT_URLS.monacoDir + '/loader.js',\n                // Prebuilt TS transformer with surcrase\n                store.cdnRoot + '/js/example-transform-ts-bundle.js'\n            ]).then(function () {\n                window.require.config({ paths: { 'vs': SCRIPT_URLS.monacoDir }});\n                return new Promise(resolve => {\n                    window.require([\n                        'vs/editor/editor.main'\n                    ], function () {\n                        loadTypes().then(() => {\n                            resolve();\n                        });\n                    })\n                });\n            })\n        }\n        return Promise.resolve();\n    }\n\n    // Must load echarts before monaco. Or the AMD loader will affect loading of echarts.\n    return ensureECharts().then(loadMonaco);\n}\n\nexport default {\n\n    props: ['initialCode'],\n\n    data() {\n        return {\n            shared: store,\n            loading: false\n        }\n    },\n\n    mounted() {\n        this.loading = true;\n        ensureMonacoAndTsTransformer().then(() => {\n            this.loading = false;\n            const model = monaco.editor.createModel(\n                this.initialCode || '',\n                'typescript',\n                // Should also be a file path so it can resolve the lib.\n                monaco.Uri.parse('file:///main.ts')\n            );\n            const editor = monaco.editor.create(this.$el, {\n                model,\n                fontFamily: `'Source Code Pro', 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace`,\n                minimap: {\n                    enabled: false\n                },\n                automaticLayout: true\n            });\n\n            this._editor = editor;\n\n            if (this.initialCode) {\n                store.sourceCode = this.initialCode;\n                store.runCode = echartsExampleTransformTs(store.sourceCode);\n            }\n            editor.onDidChangeModelContent(() => {\n                store.sourceCode = editor.getValue();\n                store.runCode = echartsExampleTransformTs(store.sourceCode);\n            });\n        });\n    },\n\n    destroyed() {\n        if (this._editor) {\n            this._editor.getModel().dispose();\n            this._editor.dispose();\n        }\n    },\n\n    methods: {\n        setInitialCode(code) {\n            if (this._editor && code) {\n                this._editor.setValue(code || '');\n            }\n        }\n    },\n\n    watch: {\n        initialCode(newVal) {\n            this.setInitialCode(newVal);\n        }\n    }\n}\n</script>\n\n<style lang=\"scss\">\n.monaco-editor-main {\n    font-family: 'Source Code Pro', 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace;\n    font-size: 12px;\n    padding: 0;\n    overflow-y: hidden;\n    // height: 100%;\n    // Fix safari\n    position: absolute;\n    left: 0;\n    top: 0;\n    bottom: 0;\n    right: 0;\n}\n</style>","<template>\n<div id=\"main-container\">\n    <div id=\"editor-left-container\" :style=\"{width: leftContainerSize + '%'}\" v-if=\"!shared.isMobile\">\n        <el-tabs v-model=\"currentTab\" type=\"border-card\">\n            <el-tab-pane :label=\"$t('editor.tabEditor')\" name=\"code-editor\">\n                <el-container>\n                    <el-header id=\"editor-control-panel\">\n                        <div id=\"code-info\">\n                            <template v-if=\"shared.editorStatus.message\">\n                                <span class=\"code-info-time\">{{currentTime}}</span>\n                                <span :class=\"'code-info-type-' + shared.editorStatus.type\">{{shared.editorStatus.message}}</span>\n                            </template>\n                        </div>\n                        <div class=\"editor-controls\">\n                            <!-- <el-switch v-model=\"shared.typeCheck\"\n                                :active-text=\"$t('editor.monacoMode')\"\n                                :inactive-text=\"''\"\n                            ></el-switch> -->\n                            <a href=\"javascript:;\" class='btn btn-default btn-sm' @click='disposeAndRun'>{{$t('editor.run')}}</a>\n                        </div>\n                    </el-header>\n                    <el-main>\n                        <CodeMonaco v-if=\"shared.typeCheck\" id=\"code-panel\" :initialCode=\"initialCode\"></CodeMonaco>\n                        <CodeAce v-else id=\"code-panel\" :initialCode=\"initialCode\"></CodeAce>\n                    </el-main>\n                </el-container>\n            </el-tab-pane>\n\n            <el-tab-pane :label=\"$t('editor.tabFullCodePreview')\" name=\"full-code\" :lazy=\"true\">\n                <el-container style=\"width: 100%; height: 100%\">\n                    <el-header id=\"full-code-generate-config\">\n                        <span class=\"full-code-generate-config-label\">\n                            <!-- <i class=\"el-icon-setting\"></i> 配置 -->\n                        </span>\n                        <el-switch\n                            class=\"enable-decal\"\n                            v-model=\"fullCodeConfig.minimal\"\n                            :active-text=\"$t('editor.minimalBundle')\"\n                            :inactive-text=\"''\">\n                        </el-switch>\n                        <el-switch\n                            class=\"enable-decal\"\n                            v-model=\"fullCodeConfig.esm\"\n                            active-text=\"ES Modules\"\n                            :inactive-text=\"''\">\n                        </el-switch>\n                    </el-header>\n                    <el-main>\n                        <FullCodePreview :code=\"fullCode\"></FullCodePreview>\n                    </el-main>\n                </el-container>\n            </el-tab-pane>\n            <el-tab-pane :label=\"$t('editor.tabOptionPreview')\" name=\"full-option\">\n                <div id=\"option-outline\"></div>\n            </el-tab-pane>\n        </el-tabs>\n    </div>\n    <div class=\"handler\" id=\"h-handler\" @mousedown=\"onSplitterDragStart\" :style=\"{left: leftContainerSize + '%'}\" v-if=\"!shared.isMobile\"></div>\n    <Preview :inEditor=\"true\" class=\"right-container\" ref=\"preview\" :style=\"{\n        width: (100 - leftContainerSize) + '%',\n        left: leftContainerSize + '%'\n    }\"></Preview>\n</div>\n</template>\n\n<script>\n\nimport CodeAce from './CodeAce.vue';\nimport CodeMonaco from './CodeMonaco.vue';\nimport FullCodePreview from './FullCodePreview.vue';\nimport Preview from './Preview.vue';\nimport {URL_PARAMS} from '../common/config';\nimport {store, loadExampleCode, parseSourceCode} from '../common/store';\nimport {collectDeps, buildExampleCode} from '../../common/buildCode';\nimport { mount } from \"@lang/object-visualizer\";\n\nimport './object-visualizer.css';\n\nexport default {\n    components: {\n        CodeAce,\n        CodeMonaco,\n        FullCodePreview,\n        Preview\n    },\n\n    data() {\n        return {\n            mousedown: false,\n            leftContainerSize: 40,\n            mobileMode: false,\n            shared: store,\n            initialCode: '',\n\n            currentTab: 'code-editor',\n\n            fullCode: '',\n\n            fullCodeConfig: {\n                mimimal: false,\n                esm: true,\n                node: false // If is in node\n            }\n        };\n    },\n\n    computed: {\n        currentTime() {\n            // Update time when message updated.\n            const message = this.shared.message;\n\n            const time = new Date();\n            const digits = [time.getHours(), time.getMinutes(), time.getSeconds()];\n            let timeStr = '';\n            for (let i = 0, len = digits.length; i < len; ++i) {\n                timeStr += (digits[i] < 10 ? '0' : '') + digits[i];\n                if (i < len - 1) {\n                    timeStr += ':';\n                }\n            }\n            return timeStr;\n        }\n    },\n\n    mounted() {\n\n        if (store.isMobile) {\n            this.leftContainerSize = 0;\n            loadExampleCode().then(code => {\n                // No editor available. Set to runCode directly.\n                store.runCode = parseSourceCode(code);\n            });\n        }\n        else {\n            loadExampleCode().then(code => {\n                // Only set the code in editor. editor will sync to the store.\n                this.initialCode = parseSourceCode(code);\n            });\n\n            window.addEventListener('mousemove', (e) => {\n                if (this.mousedown) {\n                    let percentage = e.clientX / window.innerWidth;\n                    percentage = Math.min(0.9, Math.max(0.1, percentage));\n                    this.leftContainerSize = percentage * 100;\n                }\n            });\n\n            window.addEventListener('mouseup', (e) => {\n                this.mousedown = false;\n            });\n        }\n    },\n\n    methods: {\n        onSplitterDragStart() {\n            this.mousedown = true;\n        },\n        disposeAndRun() {\n            this.$refs.preview.refreshAll();\n        },\n        updateFullCode() {\n            const option = this.$refs.preview.getOption();\n            if (!option) {\n                return;\n            }\n            const deps = collectDeps(option);\n            deps.push(store.renderer === 'svg' ? 'SVGRenderer' : 'CanvasRenderer');\n            this.fullCode = buildExampleCode(store.sourceCode, deps, {\n                minimal: this.fullCodeConfig.minimal,\n                ts: false,\n                esm: this.fullCodeConfig.esm,\n                // legacy: true,\n                theme: store.darkMode ? 'dark' : '',\n                ROOT_PATH: store.cdnRoot\n            });\n        },\n        updateOptionOutline() {\n            const option = Object.freeze(this.$refs.preview.getOption());\n            if (!option) {\n                return;\n            }\n            mount(\n                option,\n                this.$el.querySelector('#option-outline'),\n                {\n                    getKeys(object, path) {\n                        return Object.keys(object).filter(key => {\n                            if (Array.isArray(object[key]) && !object[key].length) {\n                                return false;\n                            }\n                            return true;\n                        });\n                    },\n                    expandOnCreatedAndUpdated(path) {\n                        return path.length === 0\n                            || (path[0] === 'series' && path.length <= 1);\n                    },\n                }\n            );\n        },\n        updateTabContent(tab) {\n            if (tab === 'full-code') {\n                this.updateFullCode();\n            }\n            else if (tab === 'full-option') {\n                this.updateOptionOutline();\n            }\n        }\n    },\n\n    watch: {\n        'shared.typeCheck'(enableTypeCheck) {\n            // Update initialCode to avoid code changed when switching editor\n            this.initialCode = store.sourceCode;\n            this.updateFullCode();\n        },\n        'currentTab'(tab) {\n            this.updateTabContent(tab);\n        },\n        'shared.runHash'() {\n            this.updateTabContent(this.currentTab);\n        },\n        fullCodeConfig: {\n            deep: true,\n            handler() {\n                this.updateFullCode();\n            }\n        }\n    }\n}\n</script>\n\n<style lang=\"scss\">\n\n@import '../style/color.scss';\n\n$code-info-height: 25px;\n$control-panel-height: 30px;\n$pd-basic: 10px;\n$handler-width: 5px;\n\n#main-container {\n    .handler {\n        position: absolute;\n        left: 50%;\n\n        top: 0;\n        bottom: 0;\n        width: $handler-width;\n\n        cursor: col-resize;\n        z-index: 100;\n        background-color: transparent;\n        border-left: 1px solid #ececec;\n        // border-right: 1px solid $clr-border;\n    }\n\n}\n\n#editor-left-container {\n    position: absolute;\n    left: 0;\n    bottom: 0;\n    top: 0;\n\n    width: 50%;\n\n    .el-tab-pane {\n        height: 100%;\n\n        .el-container {\n            width: 100%;\n            height: 100%;\n        }\n\n        .el-header {\n            height: $control-panel-height!important;\n            position: relative;\n            z-index: 10;\n            padding: 0;\n        }\n        .el-main {\n            padding: 0;\n            position: relative;\n\n            ::-webkit-scrollbar {\n                height:8px;\n                width:8px;\n                transition:all 0.3s ease-in-out;\n                border-radius:2px;\n            }\n\n            ::-webkit-scrollbar-button {\n                display:none;\n            }\n\n            ::-webkit-scrollbar-thumb {\n                width:8px;\n                min-height:15px;\n                background:rgba(50, 50, 50, 0.6) !important;\n                transition:all 0.3s ease-in-out;border-radius:2px;\n            }\n\n            ::-webkit-scrollbar-thumb:hover {\n                background:rgba(0, 0, 0, 0.5) !important;\n            }\n        }\n    }\n\n    .el-tabs {\n        box-shadow: none;\n    }\n\n    .el-tabs--border-card>.el-tabs__header {\n        border-bottom: none;\n    }\n\n    .el-tabs__content {\n        position: absolute;\n        top: 34px;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        padding: 0;\n    }\n\n    .el-tabs__item {\n        height: 34px;\n        line-height: 34px;\n    }\n}\n\n#editor-control-panel, #full-code-generate-config {\n    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n}\n\n#option-outline {\n    // height: 100%;\n    // Fix safari\n    position: absolute;\n    left: 0;\n    top: 0;\n    bottom: 0;\n    right: 0;\n\n    font-size: 13px;\n\n    font-family: 'Source Code Pro', 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace;\n}\n\n#full-code-generate-config {\n    .full-code-generate-config-label {\n        height: $control-panel-height;\n        line-height: $control-panel-height;\n        vertical-align: middle;\n        margin: 0 0 0 20px;\n    }\n\n    .el-switch {\n        margin-right: 10px;\n    }\n\n    .el-switch__label {\n        margin-left: 8px;\n        margin-top: -2px;\n    }\n    .el-switch__label * {\n        font-size: 12px;\n    }\n}\n\n#editor-control-panel {\n    .setting-panel {\n        display: inline-block;\n\n        .btn-group + .btn-group {\n            margin-left: $pd-basic;\n        }\n    }\n\n    .editor-controls  {\n        float: right;\n\n        .el-switch__label {\n            margin-top: -3px;\n        }\n        .el-switch__label * {\n            font-size: 12px;\n        }\n\n        .btn {\n            color: #FFF;\n            border-radius: 0;\n            background-color: #409eff;\n            margin-left: $pd-basic;\n            border: none;\n            height: 30px;\n            width: 50px;\n        }\n        .btn:hover {\n            background-color: lighten($color: #409eff, $amount: 5);\n        }\n    }\n}\n\n#code-info {\n    position: absolute;\n    bottom: 0;\n    overflow: hidden;\n\n    height: $control-panel-height;\n    line-height: $control-panel-height;\n    padding: 0px 10px;\n\n    // border-top: 1px solid $clr-border;\n    font-size: 0.9rem;\n\n    .code-info-time {\n        color: $clr-text;\n        display: inline-block;\n        margin-right: 10px;\n        font-size: 12px;\n    }\n\n    .code-info-type-info {\n        color: $clr-text;\n        font-size: 12px;\n    }\n\n    .code-info-type-warn {\n        color: $clr-warn;\n    }\n\n    .code-info-type-error {\n        color: $clr-error;\n    }\n}\n\n.right-container {\n    position: absolute;\n    right: 0;\n\n    width: 50%;\n    height: 100%;\n    padding: 0;\n    padding-left: $handler-width;\n    border: none;\n    z-index: 30;\n\n    background: $clr-bg;\n}\n\n\n</style>","<template>\n<div class=\"full-code-preview\" v-loading=\"loading\"></div>\n</template>\n\n<script>\n\nimport {loadScriptsAsync} from '../common/helper';\nimport {store} from '../common/store';\nimport {SCRIPT_URLS} from '../common/config';\n\nfunction ensureACE() {\n    if (typeof ace === 'undefined') {\n        return loadScriptsAsync([\n            SCRIPT_URLS.aceDir + '/ace.js'\n        ]);\n    }\n    return Promise.resolve();\n}\n\nexport default {\n\n    props: ['code'],\n\n    data() {\n        return {\n            shared: store,\n            loading: false\n        }\n    },\n\n    mounted() {\n        this.loading = true;\n        ensureACE().then(() => {\n            this.loading = false;\n            const editor = ace.edit(this.$el);\n            editor.getSession().setMode('ace/mode/javascript');\n            // https://stackoverflow.com/questions/32806060/is-there-a-programmatic-way-to-hide-the-cursor-in-ace-editor\n            editor.setOptions({\n                readOnly: true,\n                showLineNumbers: false,\n                showFoldWidgets: false,\n                highlightActiveLine: false,\n                highlightGutterLine: false\n            });\n            // editor.renderer.setShowGutter(false);\n            editor.renderer.$cursorLayer.element.style.display = 'none';\n\n            this._editor = editor;\n\n            this.setCode(this.code);\n\n        });\n    },\n\n    methods: {\n        setCode(code) {\n            if (this._editor) {\n                this._editor.setValue(code);\n                this._editor.selection.setSelectionRange({\n                    start: {\n                        row:1,\n                        column: 4\n                    }, end: {\n                        row:1,\n                        column: 4\n                    }\n                });\n            }\n        }\n    },\n\n    watch: {\n        code(newVal) {\n            this.setCode(newVal);\n        }\n    }\n}\n</script>\n\n<style lang=\"scss\">\n.full-code-preview {\n    font-family: 'Source Code Pro', 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace;\n    font-size: 12px;\n    line-height: 18px;\n    // height: 100%;\n\n    // Fix safari\n    position: absolute;\n    left: 0;\n    top: 0;\n    bottom: 0;\n    right: 0;\n}\n</style>","<template>\n<div :class=\"[(inEditor && !shared.isMobile) ? '' : 'full']\">\n    <div v-loading=\"loading\"\n        class=\"right-panel\"\n        id=\"chart-panel\"\n        :style=\"{background: backgroundColor}\"\n    >\n        <div class=\"chart-container\"></div>\n    </div>\n    <div id=\"tool-panel\">\n        <div class=\"left-panel\">\n            <el-switch\n                class=\"dark-mode\"\n                v-model=\"shared.darkMode\"\n                active-color=\"#181432\"\n                :active-text=\"$t('editor.darkMode')\"\n                :inactive-text=\"''\">\n            </el-switch>\n            <el-switch\n                v-if=\"!isGL\"\n\n                class=\"enable-decal\"\n                v-model=\"shared.enableDecal\"\n                :active-text=\"$t('editor.enableDecal')\"\n                :inactive-text=\"''\">\n            </el-switch>\n\n            <el-popover\n                placement=\"bottom\"\n                width=\"450\"\n                trigger=\"click\"\n                style=\"margin-top:3px;\"\n\n                v-if=\"!isGL\"\n            >\n                <div class=\"render-config-container\">\n                    <el-row :gutter=\"2\" type=\"flex\" align=\"middle\">\n                        <el-col :span=\"12\">\n                            <label class=\"tool-label\">{{ $t('editor.renderer') }}</label>\n                            <el-radio-group v-model=\"shared.renderer\" size=\"mini\" style=\"text-transform: uppercase\">\n                                <el-radio-button label=\"svg\"></el-radio-button>\n                                <el-radio-button label=\"canvas\"></el-radio-button>\n                            </el-radio-group>\n                        </el-col>\n                        <el-col :span=\"12\">\n                            <el-switch\n                                v-if=\"shared.renderer==='canvas'\"\n                                v-model=\"shared.useDirtyRect\"\n                                :active-text=\"$t('editor.useDirtyRect')\"\n                                :inactive-text=\"''\">\n                            </el-switch>\n                        </el-col>\n                    </el-row>\n                </div>\n                <span class=\"render-config-trigger\" slot=\"reference\"><i class=\"el-icon-setting el-icon--left\"></i>{{$t('editor.renderCfgTitle')}}</span>\n            </el-popover>\n        </div>\n        <template v-if=\"inEditor\">\n            <button v-if=\"!shared.isMobile\" class=\"download btn btn-sm\" @click=\"downloadExample\">{{ $t('editor.download') }}</button>\n            <a class=\"screenshot\" @click=\"screenshot\" target=\"_blank\"><i class=\"el-icon-camera-solid\"></i></a>\n        </template>\n        <a :href=\"editLink\" target=\"_blank\" v-else class=\"edit btn btn-sm\">{{ $t('editor.edit') }}</a>\n    </div>\n</div>\n</template>\n\n<script>\n\nimport {store, updateRunHash} from '../common/store';\nimport {SCRIPT_URLS, URL_PARAMS} from '../common/config';\nimport {loadScriptsAsync} from '../common/helper';\nimport {createSandbox} from './sandbox';\nimport debounce from 'lodash/debounce';\nimport { addListener, removeListener } from 'resize-detector';\nimport CHART_LIST from '../data/chart-list-data';\nimport CHART_LIST_GL from '../data/chart-list-data-gl';\nimport {download} from './downloadExample';\n\nfunction findExample(item) {\n    return URL_PARAMS.c === item.id;\n}\nconst example = CHART_LIST.concat(CHART_LIST_GL).find(findExample);\nconst isGL = CHART_LIST_GL.find(findExample);\n\nfunction addDecalIfNecessary(option) {\n    if (store.enableDecal) {\n        option.aria = option.aria || {};\n        option.aria.decal = option.aria.decal || {};\n        option.aria.decal.show = true;\n        option.aria.show = option.aria.enabled = true;\n    }\n}\n\nexport function ensureECharts() {\n    if (typeof echarts === 'undefined') {\n\n        const hasBmap = example && example.tags.indexOf('bmap') >= 0;\n\n        // Code from https://api.map.baidu.com/api?v=2.0&ak=KOmVjPVUAey1G2E8zNhPiuQ6QiEmAwZu\n        if (hasBmap) {\n            window.HOST_TYPE = \"2\";\n            window.BMap_loadScriptTime = (new Date).getTime();\n        }\n\n        return loadScriptsAsync([\n            SCRIPT_URLS.datGUIMinJS,\n            'local' in URL_PARAMS\n                ? SCRIPT_URLS.localEChartsMinJS : SCRIPT_URLS.echartsMinJS,\n            SCRIPT_URLS.echartsDir + '/dist/extension/dataTool.js',\n            'https://cdn.jsdelivr.net/npm/echarts@4.9.0/map/js/world.js',\n            SCRIPT_URLS.echartsStatMinJS,\n            ...URL_PARAMS.gl ? [SCRIPT_URLS.echartsGLMinJS] : [],\n            ...hasBmap ? [\n                'https://api.map.baidu.com/getscript?v=3.0&ak=KOmVjPVUAey1G2E8zNhPiuQ6QiEmAwZu&services=&t=20200327103013',\n                SCRIPT_URLS.echartsDir + '/dist/extension/bmap.js'\n            ] : []\n        ]).then(() => {\n            echarts.registerPreprocessor(addDecalIfNecessary)\n        });\n    }\n    return Promise.resolve();\n}\n\n\nfunction log(text, type) {\n    if (type !== 'warn' && type !== 'error') {\n        type = 'info';\n    }\n    store.editorStatus.message = text;\n    store.editorStatus.type = type;\n}\n\n\nfunction run() {\n\n    if (typeof echarts === 'undefined') {\n        return;\n    }\n    if (!this.sandbox) {\n        this.sandbox = createSandbox((chart) => {\n            const option = chart.getOption();\n            if (typeof option.backgroundColor === 'string' && option.backgroundColor !== 'transparent') {\n                this.backgroundColor = option.backgroundColor;\n            }\n            else {\n                this.backgroundColor = '#fff';\n            }\n        });\n    }\n\n    try {\n        const updateTime = this.sandbox.run(this.$el.querySelector('.chart-container'), store);\n\n        log(this.$t('editor.chartOK') + updateTime + 'ms');\n\n        // Find the appropriate throttle time\n        const debounceTime = 500;\n        const debounceTimeQuantities = [0, 500, 2000, 5000, 10000];\n        for (let i = debounceTimeQuantities.length - 1; i >= 0; i--) {\n            const quantity = debounceTimeQuantities[i];\n            const preferredDebounceTime = debounceTimeQuantities[i + 1] || 1000000;\n            if (updateTime >= quantity && this.debouncedTime !== preferredDebounceTime) {\n                this.debouncedRun = debounce(run, preferredDebounceTime, {\n                    trailing: true\n                });\n                this.debouncedTime = preferredDebounceTime;\n                break;\n            }\n        }\n\n        // Update run hash to let others known chart has been changed.\n        updateRunHash();\n\n    }\n    catch (e) {\n        log(this.$t('editor.errorInEditor'), 'error');\n        console.error(e);\n    }\n}\n\n\nexport default {\n\n    props: ['inEditor'],\n\n    data() {\n        return {\n            shared: store,\n            debouncedTime: undefined,\n            backgroundColor: '',\n            autoRun: true,\n            loading: false,\n\n            isGL\n        }\n    },\n\n    mounted() {\n        this.loading = true;\n        ensureECharts().then(() => {\n            this.loading = false;\n            if (store.runCode) {\n                this.run();\n            }\n        });\n\n        addListener(this.$el, () => {\n            if (this.sandbox) {\n                this.sandbox.resize();\n            }\n        })\n    },\n\n    computed: {\n        editLink() {\n            const params = ['c=' + URL_PARAMS.c];\n            if (URL_PARAMS.theme) {\n                params.push(['theme=' + URL_PARAMS.theme]);\n            }\n            if (URL_PARAMS.gl) {\n                params.push(['gl=' + URL_PARAMS.gl]);\n            }\n            return './editor.html?' + params.join('&');\n        }\n    },\n\n    watch: {\n        'shared.runCode'(val) {\n            if (this.autoRun || !this.sandbox) {\n                if (!this.debouncedRun) {\n                    // First run\n                    this.run();\n                }\n                else {\n                    this.debouncedRun();\n                }\n            }\n        },\n        'shared.renderer'() {\n            this.refreshAll();\n        },\n        'shared.darkMode'() {\n            this.refreshAll();\n        },\n        'shared.enableDecal'() {\n            this.refreshAll();\n        },\n        'shared.useDirtyRect'() {\n            this.refreshAll();\n        }\n    },\n\n    methods: {\n        run,\n        // debouncedRun will be created at first run\n        // debouncedRun: null,\n        refreshAll() {\n            this.dispose();\n            this.run();\n        },\n        dispose() {\n            if (this.sandbox) {\n                this.sandbox.dispose();\n            }\n        },\n        downloadExample() {\n            download();\n        },\n        screenshot() {\n            if (this.sandbox) {\n                const url = this.sandbox.getDataURL();\n                const $a = document.createElement('a');\n                $a.download = URL_PARAMS.c + '.' + (store.renderer === 'svg' ? 'svg' : 'png');\n                $a.target = '_blank';\n                $a.href = url;\n                const evt = new MouseEvent('click', {\n                    bubbles: true,\n                    cancelable: false\n                });\n                $a.dispatchEvent(evt);\n            }\n        },\n        getOption() {\n            return this.sandbox && this.sandbox.getOption();\n        }\n        // hasEditorError() {\n        //     const annotations = this.editor.getSession().getAnnotations();\n        //     for (let aid = 0, alen = annotations.length; aid < alen; ++aid) {\n        //         if (annotations[aid].type === 'error') {\n        //             return true;\n        //         }\n        //     }\n        //     return false;\n        // }\n    }\n}\n</script>\n\n<style lang=\"scss\">\n\n#chart-panel {\n    position: absolute;\n    // top: $control-panel-height;\n    top: 42px;\n    right: 15px;\n    bottom: 15px;\n    left: 15px;\n    box-sizing: border-box;\n    box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 20px;\n    border-radius: 5px;\n    background: #fff;\n    overflow: hidden;\n\n    padding: 10px;\n\n    .ec-debug-dirty-rect-container {\n        left: 10px!important;\n        top: 10px!important;\n        right: 10px!important;\n        bottom: 10px!important;\n\n        .ec-debug-dirty-rect {\n            background-color: rgba(255, 0, 0, 0.2)!important;\n            border: 1px solid red!important;\n        }\n    }\n\n    .chart-container {\n        position: relative;\n        height: 100%;\n    }\n}\n\n.render-config-container {\n    .el-radio-group {\n        label {\n            margin-bottom: 0;\n        }\n    }\n}\n\n#tool-panel {\n    position: absolute;\n    top: 0;\n    right: 0;\n    left: 0;\n    padding-top: 5px;\n    padding-left: 15px;\n\n    // .el-switch__label * {\n    //     font-size: 12px;\n    // }\n\n    .render-config-trigger {\n        margin-left: 10px;\n        cursor: pointer;\n        font-weight: 500;\n        // font-size: 12px;\n    }\n\n    label {\n        margin-bottom: 0;\n    }\n\n    .left-panel {\n        float: left;\n    }\n\n    .left-panel>* {\n        vertical-align: middle;\n        display: inline-block;\n    }\n\n    .tool-label {\n        font-weight: bold;\n        text-transform: uppercase;\n        margin-left: 20px;\n    }\n\n    .screenshot, .download, .edit {\n        float: right;\n        margin-right: 15px;\n        cursor: pointer;\n    }\n    .screenshot {\n        font-size: 22px;\n        margin-right: 10px;\n    }\n}\n\n.full {\n    #chart-panel {\n        top: 40px;\n        right: 5px;\n        bottom: 5px;\n        left: 5px;\n        box-shadow: rgba(10, 9, 9, 0.1) 0px 0px 5px;\n    }\n    #tool-panel {\n        padding-left: 5px;\n        .download, .edit {\n            margin-right: 5px;\n        }\n    }\n}\n\n.dg.main * {\n    box-sizing: content-box;\n}\n.dg.main input {\n    line-height: normal;\n}\n\n.dg.main.a {\n    overflow-x: visible;\n}\n\n.dg.main .c {\n    select {\n        color: #000;\n    }\n}\n\n</style>","<template>\n<preview></Preview>\n</template>\n\n<script>\n\nimport Preview from './Preview.vue';\nimport {store, loadExampleCode, parseSourceCode} from '../common/store';\n\nexport default {\n    components: {\n        Preview\n    },\n\n    mounted() {\n        loadExampleCode().then(code => {\n            store.runCode = parseSourceCode(code);\n        });\n    }\n}\n</script>\n\n<style lang=\"scss\">\n\n</style>","<template>\n<div class=\"example-list-item\">\n    <a target=\"_blank\" class=\"example-link\" :href=\"exampleLink\">\n        <img class=\"chart-area\" src=\"../asset/placeholder.jpg\" :data-src=\"screenshotURL\" />\n        <h4 class=\"example-title\">{{title}}</h4>\n        <h5 class=\"example-subtitle\" v-if=\"showSubtitle\">{{subtitle}}</h5>\n    </a>\n</div>\n</template>\n\n<script>\n\nimport {store} from '../common/store';\nimport {SUPPORT_WEBP, URL_PARAMS} from '../common/config';\n\nexport default {\n    props: ['example'],\n\n    computed: {\n\n        title() {\n            return (store.locale === 'zh' ? this.example.titleCN : this.example.title)\n                || this.example.title || '';\n        },\n\n        showSubtitle() {\n            return store.locale === 'zh';\n        },\n\n        subtitle() {\n            return this.example.title || '';\n        },\n\n        exampleTheme() {\n            const example = this.example;\n            return example.theme || (store.darkMode ? 'dark' : '');\n        },\n\n        exampleLink() {\n            const example = this.example;\n            const hash = ['c=' + example.id];\n            const exampleTheme = this.exampleTheme;\n            if (example.isGL) {\n                hash.push('gl=1');\n            }\n            if (exampleTheme) {\n                hash.push('theme=' + exampleTheme);\n            }\n            if ('local' in URL_PARAMS) {\n                hash.push('local');\n            }\n            if ('useDirtyRect' in URL_PARAMS) {\n                hash.push('useDirtyRect');\n            }\n            return './editor.html?' + hash.join('&');\n        },\n\n        screenshotURL() {\n            const example = this.example;\n            const themePostfix = this.exampleTheme ? ('-' + this.exampleTheme) : '';\n            const ext = SUPPORT_WEBP ? 'webp' : 'png';\n            const folder = example.isGL ? 'data-gl' : 'data';\n            return `${store.cdnRoot}/${folder}/thumb${themePostfix}/${example.id}.${ext}?_v_=${store.version}`;\n        }\n    }\n}\n</script>\n\n<style lang=\"scss\">\n\n@import \"../style/color.scss\";\n\n.example-list-item {\n    width: 100%;\n    max-width: 350px;\n    margin-bottom: 30px;\n\n    border-radius: 2px;\n\n    .example-link {\n        position: relative;\n        display: block;\n\n        .chart-area {\n            width: 100%;\n            height: 100%;\n            border-radius: 5px;\n            box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);\n            margin-top: 10px;\n        }\n\n        .example-title {\n            color: $clr-primary;\n            overflow: hidden;\n            text-overflow: ellipsis;\n            white-space: nowrap;\n\n            padding: 10px 10px 2px 10px;\n            margin: 0;\n            font-weight: normal;\n            font-size: 14px;\n            text-align: center;\n        }\n\n        .example-subtitle {\n            font-size: 12px;\n            text-align: center;\n            color: #aaa;\n            font-weight: normal;\n            // font-weight: 200;\n            overflow: hidden;\n            white-space: nowrap;\n            text-overflow: ellipsis;\n            margin: 3px 0 0 0;\n        }\n    }\n\n    .example-info {\n        padding: 5px 0;\n\n        font-weight: bold;\n\n        .chart-icon {\n            float: right;\n\n            .chart-delete {\n                display: none;\n\n                transition: 1s;\n            }\n        }\n    }\n\n    &:hover .example-info .chart-icon .chart-delete {\n        display: block;\n\n        text-decoration: none;\n    }\n}\n</style>","<template>\n<div id=\"example-explore\">\n    <div id=\"left-container\">\n        <div id=\"left-chart-nav\">\n            <scrollactive\n                active-class=\"active\"\n                :offset=\"80\"\n                :duration=\"500\"\n                :scroll-container-selector=\"'#example-explore'\"\n                bezier-easing-value=\".5,0,.35,1\"\n                @itemchanged=\"onActiveNavChanged\"\n            >\n                <ul>\n                    <li v-for=\"category in EXAMPLE_CATEGORIES\" :key=\"category\">\n                        <a class=\"left-chart-nav-link scrollactive-item\" :id=\"'left-chart-nav-' + category\"\n                            :href=\"'#chart-type-' + category\"\n                        >\n                            <span class=\"chart-icon\" v-html=\"icons[category]\"></span>\n                            <span class=\"chart-name\">{{$t('chartTypes.' + category)}}</span>\n                        </a>\n                    </li>\n                </ul>\n            </scrollactive>\n        </div>\n    </div>\n    <div id=\"explore-container\">\n        <div class=\"example-list-panel\">\n            <div v-for=\"categoryObj in exampleList\" :key=\"categoryObj.category\">\n                <h3 class=\"chart-type-head\" :id=\"'chart-type-' + categoryObj.category\">\n                    {{$t('chartTypes.' + categoryObj.category)}}\n                    <span>{{categoryObj.category}}</span>\n                </h3>\n\n                <div class=\"row\" :id=\"'chart-row-' + categoryObj.category\">\n                    <div class=\"col-xl-2 col-lg-3 col-md-4 col-sm-6\"\n                        v-for=\"exampleItem in categoryObj.examples\"\n                        :key=\"exampleItem.id\"\n                    >\n                        <ExampleCard :example=\"exampleItem\"></ExampleCard>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div id=\"toolbar\">\n        <el-switch\n            v-model=\"shared.darkMode\"\n            active-color=\"#181432\"\n            :active-text=\"$t('editor.darkMode')\"\n            :inactive-text=\"''\">\n        </el-switch>\n    </div>\n</div>\n</template>\n\n<script>\n\nimport CHART_LIST from '../data/chart-list-data';\nimport CHART_LIST_GL from '../data/chart-list-data-gl';\nimport {EXAMPLE_CATEGORIES, BLACK_MAP, URL_PARAMS} from '../common/config';\nimport {store} from '../common/store';\nimport ExampleCard from './ExampleCard.vue';\nimport LazyLoad from 'vanilla-lazyload/dist/lazyload.esm';\n// import scrollIntoView from 'scroll-into-view';\n\nconst icons = {};\n\n['line', 'bar', 'scatter', 'pie', 'radar', 'funnel', 'gauge', 'map',\n    'graph', 'treemap', 'parallel', 'sankey', 'candlestick', 'boxplot', 'heatmap',\n    'pictorialBar', 'themeRiver', 'calendar', 'custom', 'sunburst', 'tree', 'dataset', 'geo', 'lines',\n    'dataZoom', 'rich', 'drag'\n].forEach(function (category) {\n    icons[category] = require('../asset/icon/' + category + '.svg');\n});\n\nconst glIcon = require('../asset/icon/gl.svg');\n['globe', 'bar3D', 'scatter3D', 'surface', 'map3D', 'lines3D', 'line3D',\n    'scatterGL', 'linesGL', 'flowGL', 'graphGL', 'geo3D'].forEach(function (category) {\n    icons[category] = glIcon;\n});\n\nconst LAZY_LOADED_CLASS = 'ec-shot-loaded';\n\nexport default {\n\n    components: {\n        ExampleCard\n    },\n\n    data() {\n        const exampleListByCategory = {};\n\n        function addExamples(list, isGL) {\n            let categoryOrder = 0;\n            // Add by category order in each example.\n            do {\n                let added = false;\n                for (let i = 0; i < list.length; i++) {\n                    const example = list[i];\n                    if (BLACK_MAP.hasOwnProperty(example.id)) {\n                        continue;\n                    }\n                    if (typeof example.category === 'string') {\n                        example.category = [example.category];\n                    }\n\n                    const categoryStr = (example.category || [])[categoryOrder];\n                    if (categoryStr) {\n                        added = true;\n                        let categoryObj = exampleListByCategory[categoryStr];\n                        if (!categoryObj) {\n                            categoryObj = {\n                                category: categoryStr,\n                                examples: []\n                            }\n                            exampleListByCategory[categoryStr] = categoryObj;\n                        }\n                        example.isGL = isGL;\n\n                        categoryObj.examples.push(example);\n                    }\n                }\n\n                if (!added) {\n                    break;\n                }\n            } while (++categoryOrder && categoryOrder < 4)  // At most 4 category\n        }\n\n        addExamples(CHART_LIST, false);\n        addExamples(CHART_LIST_GL, true);\n\n        return {\n            shared: store,\n\n            icons,\n\n            EXAMPLE_CATEGORIES,\n            // [{\n            //  category: '',\n            //  isGL: false\n            //  examples: []\n            // }]\n            exampleListByCategory\n        }\n    },\n\n    watch: {\n        \"shared.darkMode\"() {\n            const imgs = this.$el.querySelectorAll('img.chart-area');\n            for (let i = 0; i < imgs.length; i++) {\n                // Force lazyload to update\n                imgs[i].classList.remove(LAZY_LOADED_CLASS);\n                imgs[i].setAttribute('data-was-processed', 'false');\n            }\n            this._lazyload.update();\n        }\n    },\n\n    computed: {\n        exampleList() {\n            const list = [];\n            for (let i = 0; i < EXAMPLE_CATEGORIES.length; i++) {\n                const category = EXAMPLE_CATEGORIES[i];\n                const categoryObj = this.exampleListByCategory[category];\n                if (categoryObj && categoryObj.examples.length > 0) {\n                    list.push({\n                        category,\n                        examples: categoryObj.examples\n                    });\n                }\n            }\n            return list;\n        }\n    },\n\n    mounted() {\n        this._lazyload = new LazyLoad({\n            // Container should be the scroll viewport.\n            // container: this.$el.querySelector('#explore-container .example-list-panel'),\n            elements_selector: 'img.chart-area',\n            load_delay: 400,\n            class_loaded: LAZY_LOADED_CLASS\n        });\n    },\n\n    methods: {\n        onActiveNavChanged(event, currentItem, lastActiveItem) {\n            // currentItem && currentItem.scrollIntoView && currentItem.parentNode.scrollIntoView();\n            // scrollIntoView(currentItem, {\n            //     time: 100,\n            //     cancellable: false,\n            //     align: {\n            //         top: 0,\n            //         topOffset: 50\n            //     }\n            // });\n        }\n    }\n}\n</script>\n\n<style lang=\"scss\">\n\n@import \"../style/color.scss\";\n@import \"../style/config.xl.scss\";\n\n$chart-nav-width: 200px;\n$chart-icon-width: 25px;\n$chart-icon-border: 1px;\n\n$toolbar-height: 30px;\n\n$nav-height: 50px;\n$nav-active-bg: #5470C6;\n$nav-hover-border: $nav-active-bg;\n\n$nav-text-color: #6E7079;\n$nav-hover-text-color: #464646;\n\n$pd-basic: 10px;\n$pd-sm: 6px;\n$pd-lg: 20px;\n\n#example-explore {\n    background: $clr-bg;\n\n    // Use this as scrollable viewport insteadof window because echarts-www has a viewport.\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    overflow-y: auto;\n\n    ::-webkit-scrollbar {\n        height: 4px;\n        width: 4px;\n        -webkit-transition: all 0.3s ease-in-out;\n        transition: all 0.3s ease-in-out;\n        border-radius: 2px;\n        background: #fff;\n    }\n\n    ::-webkit-scrollbar-button {\n        display: none\n    }\n\n    ::-webkit-scrollbar-thumb {\n        width: 4px;\n        min-height: 15px;\n        background: rgba(50, 50, 50, 0.2) !important;\n        -webkit-transition: all 0.3s ease-in-out;\n        transition: all 0.3s ease-in-out;\n        border-radius: 2px\n    }\n\n    ::-webkit-scrollbar-thumb:hover {\n        background: rgba(0, 0, 0, 0.5) !important\n    }\n}\n\n#explore-container {\n    margin-left: $chart-nav-width + 20px;\n    padding: 10px 10px;\n    // background-color: $clr-bg;\n}\n\n.example-list-panel {\n    margin: 30px 15px 30px 15px;\n\n    h3 {\n        margin-bottom: 20px;\n        padding-bottom: 10px;\n        border-bottom: 1px solid #E1E5F2;\n        font-weight: normal;\n        color: #464646;\n        font-size: 20px;\n    }\n    .chart-type-head span {\n        font-size: 16px;\n        padding-left: 5px;\n        color: #949CB1;\n        font-weight: 200;\n    }\n}\n\n#left-container {\n    position: sticky;\n    left: 0;\n    top: 0;\n    float: left;\n    height: calc(100%);\n    width: $chart-nav-width;\n    box-shadow: 0 0 10px rgba(0,0,0,0.1);\n    overflow-y: auto;\n\n}\n\n#toolbar {\n    position: fixed;\n    right: 30px;\n    top: 20px;\n    height: $toolbar-height;\n    background-color: #fff;\n    border-radius: $toolbar-height / 2;\n    // color: #fff;\n    padding: 4px 15px;\n    box-shadow: 0 0 10px rgba(0,0,0,0.1);\n\n    .el-switch__label * {\n        font-size: 12px;\n        // color: #fff;\n        text-transform: uppercase;\n    }\n    .el-switch__label.is-active {\n        color: #181432;\n    }\n}\n\n#left-chart-nav {\n    background-color: #fff;\n    overflow-y: hidden;\n    color: #111;\n    box-shadow: 0 0 20px rgba(0,0,0,0.2);\n\n    &:hover {\n        overflow-y: auto;\n\n        a {\n            text-decoration: none;\n        }\n    }\n\n    li {\n        // transition: background-color 0.5s;\n        cursor: pointer;\n\n        a {\n            height: 45px;\n            padding: 10px 0 10px 20px;\n            display: block;\n            // transition: background-color 0.5s;\n            text-decoration: none;\n            color: $nav-text-color;\n\n            .chart-name {\n                display: inline-block;\n                position: relative;\n                vertical-align: middle;\n                margin-left: 10px;\n            }\n\n            .chart-icon {\n                content: '';\n                width: 20px;\n                display: inline-block;\n                border-radius: 50%;\n                vertical-align: middle;\n\n                svg {\n                    width: 100%!important;\n                    height: auto!important;\n                }\n            }\n\n            &.active {\n                background-color: $nav-active-bg;\n                color: #fff;\n\n                .chart-icon * {\n                    fill: #fff;\n                }\n            }\n\n            &.active:hover {\n                color: #fff;\n            }\n        }\n\n        &:hover {\n            border-right: 4px solid $nav-hover-border;\n\n            a {\n                color: $nav-hover-text-color;\n            }\n        }\n    }\n}\n\n@media (max-width: 768px) {\n    #left-container {\n        display: none;\n    }\n    #explore-container {\n        margin-left: 0;\n    }\n}\n\n</style>","\nexport const EXAMPLE_CATEGORIES = [\n    'line',\n    'bar',\n    'pie',\n    'scatter',\n    'map',\n    'candlestick',\n    'radar',\n    'boxplot',\n    'heatmap',\n    'graph',\n    'lines',\n    'tree',\n    'treemap',\n    'sunburst',\n    'parallel',\n    'sankey',\n    'funnel',\n    'gauge',\n    'pictorialBar',\n    'themeRiver',\n    'calendar',\n    'custom',\n\n    'dataset',\n    'dataZoom',\n    'drag',\n    'rich',\n\n    'globe',\n    'bar3D',\n    'scatter3D',\n    'surface',\n    'map3D',\n    'lines3D',\n    'line3D',\n    'scatterGL',\n    'linesGL',\n    'flowGL',\n    'graphGL'\n];\n\nexport const THEMES = {\n    default: [\n        '#5470c6',\n        '#91cc75',\n        '#fac858',\n        '#ee6666',\n        '#73c0de',\n        '#3ba272',\n        '#fc8452',\n        '#9a60b4',\n        '#ea7ccc'\n    ],\n    dark: [\n        '#4992ff',\n        '#7cffb2',\n        '#fddd60',\n        '#ff6e76',\n        '#58d9f9',\n        '#05c091',\n        '#ff8a45',\n        '#8d48e3',\n        '#dd79ff'\n    ]\n};\n\nexport const BLACK_MAP = (function (list) {\n    const map = {};\n    for (var i = 0; i < list.length; i++) {\n        map[list[i]] = 1;\n    }\n    return location.href.indexOf('github.io') >= 0 ? {} : map;\n})([\n    'effectScatter-map',\n    'geo-lines',\n    'geo-map-scatter',\n    'heatmap-map',\n    'lines-airline',\n    'map-china',\n    'map-china-dataRange',\n    'map-labels',\n    'map-locate',\n    'map-province',\n    'map-world',\n    'map-world-dataRange',\n    'scatter-map',\n    'scatter-map-brush',\n    'scatter-weibo',\n    'scatter-world-population',\n    'geo3d',\n    'geo3d-with-different-height',\n    'globe-country-carousel',\n    'globe-with-echarts-surface',\n    'map3d-alcohol-consumption',\n    'map3d-wood-map',\n    'scattergl-weibo'\n]);\n\n\nconst URL_PARAMS = {};\n(location.search || '').substr(1).split('&').forEach(function (item) {\n    const kv = item.split('=');\n    URL_PARAMS[kv[0]] = kv[1];\n});\n\nexport {URL_PARAMS};\n\nexport const SUPPORT_WEBP = (function () {\n    var elem = document.createElement('canvas');\n    elem.width = elem.height = 1;\n    if (!!(elem.getContext && elem.getContext('2d'))) {\n        // was able or not to get WebP representation\n        return elem.toDataURL('image/webp').indexOf('data:image/webp') === 0;\n    }\n    // very old browser like IE 8, canvas not supported\n    return false;\n})();\n\nexport const SCRIPT_URLS = {\n    localEChartsMinJS: 'http://localhost/echarts/dist/echarts.js',\n    echartsMinJS: 'https://cdn.jsdelivr.net/npm/echarts-nightly@5.1.2-dev.20210512/dist/echarts.min.js',\n    echartsDir: 'https://cdn.jsdelivr.net/npm/echarts-nightly@5.1.2-dev.20210512',\n    echartsStatMinJS: 'https://cdn.jsdelivr.net/npm/echarts-stat@latest/dist/ecStat.min.js',\n    // echartsGLMinJS: 'http://localhost/echarts-gl/dist/echarts-gl.min.js',\n    echartsGLMinJS: 'https://cdn.jsdelivr.net/npm/echarts-gl@2/dist/echarts-gl.min.js',\n    datGUIMinJS: 'https://cdn.jsdelivr.net/npm/dat.gui@0.6.5/build/dat.gui.min.js',\n    monacoDir: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.21.2/min/vs',\n    aceDir: 'https://cdn.jsdelivr.net/npm/ace-builds@1.4.12/src-min-noconflict'\n};\n","\nconst promisesCache = {};\n\nexport function loadScriptsAsync(scripts) {\n    return Promise.all(scripts.map(function (scriptUrl) {\n        if (typeof scriptUrl === 'string') {\n            scriptUrl = {\n                url: scriptUrl,\n                // TODO Not supported type\n                type: scriptUrl.match(/\\.css$/) ? 'css' : 'js'\n            };\n        }\n        if (promisesCache[scriptUrl.url]) {\n            return promisesCache[scriptUrl.url];\n        }\n        const promise = new Promise((resolve, reject) => {\n            if (scriptUrl.type === 'js') {\n                const script = document.createElement('script');\n                script.src = scriptUrl.url;\n                script.async = false;\n                script.onload = function () {\n                    resolve();\n                };\n                script.onerror = function () {\n                    reject();\n                };\n                document.body.appendChild(script);\n            }\n            else if (scriptUrl.type === 'css') {\n                const link = document.createElement('link');\n                link.rel = 'stylesheet';\n                link.href = scriptUrl.url;\n                link.onload = function () {\n                    resolve();\n                };\n                link.onerror = function () {\n                    reject();\n                };\n                document.body.appendChild(link);\n            }\n        });\n        promisesCache[scriptUrl.url] = promise;\n        return promise;\n    }));\n}\n\nexport function downloadBlob(blob, fileName) {\n    // for IE\n    if (typeof window.navigator.msSaveBlob === 'function') {\n        window.navigator.msSaveOrOpenBlob(blob, fileName);\n    }\n    else {\n        const a = document.createElement('a');\n        a.href = URL.createObjectURL(blob);\n        a.download = fileName;\n        a.click();\n        // should revoke the blob url after the download\n        URL.revokeObjectURL(a.href);\n    }\n}","export default {\n    en: {\n        editor: {\n            run: 'Run',\n            errorInEditor: 'Errors exist in code!',\n            chartOK: 'Chart has been generated successfully, ',\n\n            darkMode: 'Dark Mode',\n            enableDecal: 'Decal Pattern',\n            // lightMode: 'Light Mode',\n\n            renderCfgTitle: 'Render',\n            renderer: 'Renderer',\n            useDirtyRect: 'Use Dirty Rect',\n\n            download: 'Download',\n\n            edit: 'Edit',\n            monacoMode: 'Enable Type Checking',\n\n            tabEditor: 'Edit Example',\n            tabFullCodePreview: 'Full Code',\n            tabOptionPreview: 'Option Preview',\n            minimalBundle: 'Minimal Bundle'\n        },\n\n        chartTypes: {\n            line: 'Line',\n            bar: 'Bar',\n            pie: 'Pie',\n            scatter: 'Scatter',\n            map: 'GEO/Map',\n            candlestick: 'Candlestick',\n            radar: 'Radar',\n            boxplot: 'Boxplot',\n            heatmap: 'Heatmap',\n            graph: 'Graph',\n            lines: 'Lines',\n            tree: 'Tree',\n            treemap: 'Treemap',\n            sunburst: 'Sunburst',\n            parallel: 'Parallel',\n            sankey: 'Sankey',\n            funnel: 'Funnel',\n            gauge: 'Gauge',\n            pictorialBar: 'PictorialBar',\n            themeRiver: 'ThemeRiver',\n            calendar: 'Calendar',\n            custom: 'Custom',\n\n            dataset: 'Dataset',\n            dataZoom: 'DataZoom',\n            drag: 'Drag',\n            rich: 'Rich Text',\n\n            globe: '3D Globe',\n            bar3D: '3D Bar',\n            scatter3D: '3D Scatter',\n            surface: '3D Surface',\n            map3D: '3D Map',\n            lines3D: '3D Lines',\n            line3D: '3D Line',\n            scatterGL: 'Scatter GL',\n            linesGL: 'Lines GL',\n            flowGL: 'Flow GL',\n            graphGL: 'Graph GL'\n        }\n    },\n    zh: {\n        editor: {\n            run: '运行',\n            errorInEditor: '编辑器内容有误!',\n            chartOK: '图表已生成, ',\n\n            darkMode: '深色模式',\n            enableDecal: '无障碍花纹',\n            // lightMode: '浅色模式',\n\n            renderCfgTitle: '渲染设置',\n            useDirtyRect: '开启脏矩形优化',\n            renderer: '渲染模式',\n            download: '下载示例',\n\n            edit: '编辑',\n            monacoMode: '开启类型检查',\n\n            tabEditor: '示例编辑',\n            tabFullCodePreview: '完整代码',\n            tabOptionPreview: '配置项',\n            minimalBundle: '按需引入'\n        },\n\n        chartTypes: {\n            line: '折线图',\n            bar: '柱状图',\n            pie: '饼图',\n            scatter: '散点图',\n            map: '地理坐标/地图',\n            candlestick: 'K 线图',\n            radar: '雷达图',\n            boxplot: '盒须图',\n            heatmap: '热力图',\n            graph: '关系图',\n            lines: '路径图',\n            tree: '树图',\n            treemap: '矩形树图',\n            sunburst: '旭日图',\n            parallel: '平行坐标系',\n            sankey: '桑基图',\n            funnel: '漏斗图',\n            gauge: '仪表盘',\n            pictorialBar: '象形柱图',\n            themeRiver: '主题河流图',\n            calendar: '日历坐标系',\n            custom: '自定义系列',\n\n            dataset: '数据集',\n            dataZoom: '数据区域缩放',\n            drag: '拖拽',\n            rich: '富文本',\n\n            globe: '3D 地球',\n            bar3D: '3D 柱状图',\n            scatter3D: '3D 散点图',\n            surface: '3D 曲面',\n            map3D: '3D 地图',\n            lines3D: '3D 路径图',\n            line3D: '3D 折线图',\n            scatterGL: 'GL 散点图',\n            linesGL: 'GL 路径图',\n            flowGL: 'GL 矢量场图',\n            graphGL: 'GL 关系图'\n        }\n    }\n};","\n// import * as matter from 'gray-matter';\nimport {URL_PARAMS} from '../common/config';\n\nexport const store = {\n    cdnRoot: '',\n    version: '',\n    locale: '',\n\n    darkMode: URL_PARAMS.theme === 'dark',\n    enableDecal: 'decal' in URL_PARAMS,\n    renderer: URL_PARAMS.renderer || 'canvas',\n\n    typeCheck: URL_PARAMS.editor === 'monaco',\n    useDirtyRect: 'useDirtyRect' in URL_PARAMS,\n\n    runCode: '',\n    sourceCode: '',\n\n    runHash: '',\n\n    isMobile: window.innerWidth < 600,\n\n    editorStatus: {\n        type: '',\n        message: ''\n    }\n};\n\nexport function loadExampleCode() {\n    return new Promise(resolve => {\n        const dataRoot = URL_PARAMS.gl ? 'data-gl' : 'data';\n        $.ajax(`${store.cdnRoot}/${dataRoot}/${URL_PARAMS.c}.js?_v_${store.version}`, {\n            dataType: 'text',\n            success: (data) => {\n                resolve(data);\n            }\n        });\n    });\n}\n\nexport function parseSourceCode(code) {\n    return code.replace(/\\/\\*[\\w\\W]*?\\*\\//, '').trim();\n}\n\nlet hashId = 123;\nexport function updateRunHash() {\n    store.runHash = hashId++;\n}","\n/* eslint-disable */\n// THIS FILE IS GENERATED, DON'T MODIFY */\nexport default [\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"animating-contour-on-globe\",\n    \"tags\": [],\n    \"title\": \"Animating Contour on Globe\",\n    \"titleCN\": \"Animating Contour on Globe\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"bar3d-dataset\",\n    \"tags\": [],\n    \"title\": \"3D Bar with Dataset\",\n    \"titleCN\": \"使用 dataset 为三维柱状图设置数据\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"bar3d-global-population\",\n    \"tags\": [],\n    \"title\": \"Bar3D - Global Population\",\n    \"titleCN\": \"Bar3D - Global Population\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"bar3d-myth\",\n    \"tags\": [],\n    \"title\": \"星云\",\n    \"titleCN\": \"星云\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"bar3d-noise-modified-from-marpi-demo\",\n    \"tags\": [],\n    \"title\": \"Noise modified from marpi's demo\",\n    \"titleCN\": \"Noise modified from marpi's demo\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"bar3d-punch-card\",\n    \"tags\": [],\n    \"title\": \"Bar3D - Punch Card\",\n    \"titleCN\": \"Bar3D - Punch Card\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"bar3d-simplex-noise\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"Bar3D - Simplex Noise\",\n    \"titleCN\": \"Bar3D - Simplex Noise\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"bar3d-voxelize-image\",\n    \"tags\": [],\n    \"title\": \"Voxelize image\",\n    \"titleCN\": \"Voxelize image\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"flowGL\"\n    ],\n    \"id\": \"flowGL-noise\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"Flow on the cartesian\",\n    \"titleCN\": \"直角坐标系上的向量场\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"geo3D\"\n    ],\n    \"id\": \"geo3d\",\n    \"tags\": [],\n    \"title\": \"Geo3D\",\n    \"titleCN\": \"Geo3D\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"geo3D\"\n    ],\n    \"id\": \"geo3d-with-different-height\",\n    \"tags\": [],\n    \"title\": \"Geo3D with Different Height\",\n    \"titleCN\": \"Geo3D with Different Height\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"global-population-bar3d-on-globe\",\n    \"tags\": [],\n    \"title\": \"Global Population - Bar3D on Globe\",\n    \"titleCN\": \"Global Population - Bar3D on Globe\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"flowGL\"\n    ],\n    \"id\": \"global-wind-visualization\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Global wind visualization\",\n    \"titleCN\": \"Global wind visualization\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"flowGL\"\n    ],\n    \"id\": \"global-wind-visualization-2\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Global Wind Visualization 2\",\n    \"titleCN\": \"Global Wind Visualization 2\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-atmosphere\",\n    \"tags\": [],\n    \"title\": \"Globe with Atmosphere\",\n    \"titleCN\": \"大气层显示\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-contour-paint\",\n    \"tags\": [],\n    \"title\": \"Contour Paint\",\n    \"titleCN\": \"Contour Paint\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-country-carousel\",\n    \"tags\": [],\n    \"title\": \"Country Carousel\",\n    \"titleCN\": \"Country Carousel\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-displacement\",\n    \"tags\": [],\n    \"title\": \"Globe Displacement\",\n    \"titleCN\": \"Globe Displacement\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-echarts-gl-hello-world\",\n    \"tags\": [],\n    \"title\": \"ECharts-GL Hello World\",\n    \"titleCN\": \"ECharts-GL Hello World\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-layers\",\n    \"tags\": [],\n    \"title\": \"Globe Layers\",\n    \"titleCN\": \"Globe Layers\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-moon\",\n    \"tags\": [],\n    \"title\": \"Moon\",\n    \"titleCN\": \"Moon\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-with-echarts-surface\",\n    \"tags\": [],\n    \"title\": \"Globe with ECharts Surface\",\n    \"titleCN\": \"Globe with ECharts Surface\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"graphGL\"\n    ],\n    \"id\": \"graphgl-gpu-layout\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"GraphGL GPU Layout\",\n    \"titleCN\": \"GraphGL GPU Layout\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"graphGL\"\n    ],\n    \"id\": \"graphgl-large-internet\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"GraphGL - Large Internet\",\n    \"titleCN\": \"GraphGL - Large Internet\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"graphGL\"\n    ],\n    \"id\": \"graphgl-npm-dep\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"NPM Dependencies with graphGL\",\n    \"titleCN\": \"1w 节点 2w7 边的NPM 依赖图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"image-surface-sushuang\",\n    \"tags\": [],\n    \"title\": \"Image Surface Sushuang\",\n    \"titleCN\": \"Image Surface Sushuang\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"image-to-bar3d\",\n    \"tags\": [],\n    \"title\": \"Image to Bar3D\",\n    \"titleCN\": \"Image to Bar3D\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"iron-globe\",\n    \"tags\": [],\n    \"title\": \"Iron globe\",\n    \"titleCN\": \"Iron globe\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"line3D\"\n    ],\n    \"id\": \"line3d-orthographic\",\n    \"tags\": [],\n    \"title\": \"三维折线图正交投影\",\n    \"titleCN\": \"三维折线图正交投影\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"lines3D\"\n    ],\n    \"id\": \"lines3d-airline-on-globe\",\n    \"tags\": [],\n    \"title\": \"Airline on Globe\",\n    \"titleCN\": \"Airline on Globe\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"lines3D\"\n    ],\n    \"id\": \"lines3d-flights\",\n    \"tags\": [],\n    \"title\": \"Flights\",\n    \"titleCN\": \"Flights\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"lines3D\"\n    ],\n    \"id\": \"lines3d-flights-gl\",\n    \"tags\": [],\n    \"title\": \"Flights GL\",\n    \"titleCN\": \"Flights GL\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"lines3D\"\n    ],\n    \"id\": \"lines3d-flights-on-geo3d\",\n    \"tags\": [],\n    \"title\": \"Flights on Geo3D\",\n    \"titleCN\": \"Flights on Geo3D\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"linesGL\"\n    ],\n    \"id\": \"linesGL-ny\",\n    \"tags\": [],\n    \"title\": \"Use linesGL to draw 1 million ny streets.\",\n    \"titleCN\": \"实时交互的纽约街道可视化\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map3D\"\n    ],\n    \"id\": \"map3d-alcohol-consumption\",\n    \"tags\": [],\n    \"title\": \"Map3D - Alcohol Consumption\",\n    \"titleCN\": \"Map3D - Alcohol Consumption\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map3D\"\n    ],\n    \"id\": \"map3d-buildings\",\n    \"tags\": [],\n    \"title\": \"Buildings\",\n    \"titleCN\": \"Buildings\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map3D\"\n    ],\n    \"id\": \"map3d-wood-city\",\n    \"tags\": [],\n    \"title\": \"Wood City\",\n    \"titleCN\": \"Wood City\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map3D\"\n    ],\n    \"id\": \"map3d-wood-map\",\n    \"tags\": [],\n    \"title\": \"木质世界地图\",\n    \"titleCN\": \"木质世界地图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"metal-bar3d\",\n    \"tags\": [],\n    \"title\": \"Metal Bar3D\",\n    \"titleCN\": \"Metal Bar3D\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"metal-surface\",\n    \"tags\": [],\n    \"title\": \"Metal Surface\",\n    \"titleCN\": \"Metal Surface\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"parametric-surface-rose\",\n    \"tags\": [],\n    \"title\": \"Parametric Surface Rose\",\n    \"titleCN\": \"Parametric Surface Rose\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter3D\"\n    ],\n    \"id\": \"scatter3d\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"Scatter3D\",\n    \"titleCN\": \"Scatter3D\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter3D\"\n    ],\n    \"id\": \"scatter3D-dataset\",\n    \"tags\": [],\n    \"title\": \"3D Scatter with Dataset\",\n    \"titleCN\": \"使用 dataset 为三维散点图设置数据\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter3D\"\n    ],\n    \"id\": \"scatter3d-globe-population\",\n    \"tags\": [],\n    \"title\": \"Scatter3D - Globe Population\",\n    \"titleCN\": \"Scatter3D - Globe Population\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter3D\"\n    ],\n    \"id\": \"scatter3d-orthographic\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"三维散点图正交投影\",\n    \"titleCN\": \"三维散点图正交投影\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter3D\"\n    ],\n    \"id\": \"scatter3d-scatter\",\n    \"tags\": [],\n    \"title\": \"3D Scatter with Scatter Matrix\",\n    \"titleCN\": \"三维散点图和散点矩阵结合使用\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter3D\"\n    ],\n    \"id\": \"scatter3d-simplex-noise\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"Scatter3D - Simplex Noise\",\n    \"titleCN\": \"Scatter3D - Simplex Noise\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatterGL\"\n    ],\n    \"id\": \"scatterGL-gps\",\n    \"tags\": [],\n    \"title\": \"10 million Bulk GPS points\",\n    \"titleCN\": \"1 千万 GPS 点可视化\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatterGL\"\n    ],\n    \"id\": \"scattergl-weibo\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"微博签到数据点亮中国\",\n    \"titleCN\": \"微博签到数据点亮中国\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"simple-surface\",\n    \"tags\": [],\n    \"title\": \"Simple Surface\",\n    \"titleCN\": \"Simple Surface\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"sphere-parametric-surface\",\n    \"tags\": [],\n    \"title\": \"Sphere Parametric Surface\",\n    \"titleCN\": \"Sphere Parametric Surface\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"stacked-bar3d\",\n    \"tags\": [],\n    \"title\": \"Stacked Bar3D\",\n    \"titleCN\": \"Stacked Bar3D\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"surface-breather\",\n    \"tags\": [],\n    \"title\": \"Breather\",\n    \"titleCN\": \"Breather\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"surface-golden-rose\",\n    \"tags\": [],\n    \"title\": \"Golden Rose\",\n    \"titleCN\": \"Golden Rose\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"surface-leather\",\n    \"tags\": [],\n    \"title\": \"皮革材质\",\n    \"titleCN\": \"皮革材质\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"surface-mollusc-shell\",\n    \"tags\": [],\n    \"title\": \"Mollusc Shell\",\n    \"titleCN\": \"Mollusc Shell\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"surface-theme-roses\",\n    \"tags\": [],\n    \"title\": \"Theme Roses\",\n    \"titleCN\": \"Theme Roses\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"surface-wave\",\n    \"tags\": [],\n    \"title\": \"Surface Wave\",\n    \"titleCN\": \"Surface Wave\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"transparent-bar3d\",\n    \"tags\": [],\n    \"title\": \"Transparent Bar3D\",\n    \"titleCN\": \"Transparent Bar3D\",\n    \"difficulty\": 10\n  }\n]","\n/* eslint-disable */\n// THIS FILE IS GENERATED, DON'T MODIFY */\nexport default [\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-background\",\n    \"tags\": [],\n    \"title\": \"Bar with Background\",\n    \"titleCN\": \"带背景色的柱状图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"bar-histogram\",\n    \"tags\": [],\n    \"title\": \"Histogram with Custom Series\",\n    \"titleCN\": \"直方图(自定义系列)\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Bar\",\n    \"titleCN\": \"基础柱状图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-tick-align\",\n    \"tags\": [],\n    \"title\": \"Axis Align with Tick\",\n    \"titleCN\": \"坐标轴刻度与标签对齐\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"calendar\"\n    ],\n    \"id\": \"calendar-simple\",\n    \"tags\": [],\n    \"title\": \"Simple Calendar\",\n    \"titleCN\": \"基础日历图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"candlestick\"\n    ],\n    \"id\": \"candlestick-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Candlestick\",\n    \"titleCN\": \"基础 K 线图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"bar\",\n      \"transform\"\n    ],\n    \"id\": \"data-transform-sort-bar\",\n    \"tags\": [],\n    \"title\": \"Sort Data in Bar Chart\",\n    \"titleCN\": \"柱状图排序\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"heatmap\"\n    ],\n    \"id\": \"heatmap-cartesian\",\n    \"tags\": [],\n    \"title\": \"Heatmap on Cartesian\",\n    \"titleCN\": \"笛卡尔坐标系上的热力图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Line Chart\",\n    \"titleCN\": \"基础折线图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-smooth\",\n    \"tags\": [],\n    \"title\": \"Smoothed Line Chart\",\n    \"titleCN\": \"基础平滑折线图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-simple\",\n    \"tags\": [],\n    \"title\": \"Referer of a website\",\n    \"titleCN\": \"某站点用户访问来源\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"radar\"\n    ],\n    \"id\": \"radar\",\n    \"tags\": [],\n    \"title\": \"Basic Radar Chart\",\n    \"titleCN\": \"基础雷达图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"sankey\"\n    ],\n    \"id\": \"sankey-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Sankey\",\n    \"titleCN\": \"基础桑基图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Scatter Chart\",\n    \"titleCN\": \"基础散点图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"area-basic\",\n    \"tags\": [],\n    \"title\": \"Basic area chart\",\n    \"titleCN\": \"基础面积图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-data-color\",\n    \"tags\": [],\n    \"title\": \"Set Style of Single Bar.\",\n    \"titleCN\": \"自定义单个柱子颜色\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-waterfall\",\n    \"tags\": [],\n    \"title\": \"Waterfall Chart\",\n    \"titleCN\": \"瀑布图(柱状图模拟)\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"calendar\",\n      \"heatmap\"\n    ],\n    \"id\": \"calendar-heatmap\",\n    \"tags\": [],\n    \"title\": \"Calendar Heatmap\",\n    \"titleCN\": \"日历热力图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"calendar\",\n      \"heatmap\"\n    ],\n    \"id\": \"calendar-vertical\",\n    \"tags\": [],\n    \"title\": \"Calendar Heatmap Vertical\",\n    \"titleCN\": \"纵向日历图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"candlestick\"\n    ],\n    \"id\": \"custom-ohlc\",\n    \"tags\": [],\n    \"title\": \"OHLC Chart\",\n    \"titleCN\": \"OHLC 图(使用自定义系列)\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-profit\",\n    \"tags\": [],\n    \"title\": \"Profit\",\n    \"titleCN\": \"利润分布直方图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"bar\"\n    ],\n    \"id\": \"dataset-encode0\",\n    \"tags\": [],\n    \"title\": \"Simple Encode\",\n    \"titleCN\": \"指定数据到坐标轴的映射\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge\",\n    \"tags\": [],\n    \"title\": \"Gauge Basic chart\",\n    \"titleCN\": \"基础仪表盘\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-simple\",\n    \"tags\": [],\n    \"title\": \"Simple Gauge\",\n    \"titleCN\": \"带标签数字动画的基础仪表盘\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-force2\",\n    \"tags\": [],\n    \"title\": \"Force Layout\",\n    \"titleCN\": \"力引导布局\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-stack\",\n    \"tags\": [],\n    \"title\": \"Stacked Line Chart\",\n    \"titleCN\": \"折线图堆叠\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"parallel\"\n    ],\n    \"id\": \"parallel-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Parallel\",\n    \"titleCN\": \"基础平行坐标\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-borderRadius\",\n    \"tags\": [],\n    \"title\": \"Doughnut Chart with Rounded Corner\",\n    \"titleCN\": \"圆角环形图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-doughnut\",\n    \"tags\": [],\n    \"title\": \"Doughnut Chart\",\n    \"titleCN\": \"环形图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"radar\"\n    ],\n    \"id\": \"radar-aqi\",\n    \"tags\": [],\n    \"title\": \"AQI - Radar Chart\",\n    \"titleCN\": \"AQI - 雷达图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"sankey\"\n    ],\n    \"id\": \"sankey-vertical\",\n    \"tags\": [],\n    \"title\": \"Sankey Orient Vertical\",\n    \"titleCN\": \"垂直方向的桑基图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-anscombe-quartet\",\n    \"tags\": [],\n    \"title\": \"Anscomb's quartet\",\n    \"titleCN\": \"Anscomb's quartet\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-clustering\",\n    \"tags\": [],\n    \"title\": \"Clustering Process\",\n    \"titleCN\": \"数据聚合\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-clustering-process\",\n    \"tags\": [],\n    \"title\": \"Clustering Process\",\n    \"titleCN\": \"聚合过程可视化\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-exponential-regression\",\n    \"tags\": [],\n    \"title\": \"Exponential Regression\",\n    \"titleCN\": \"指数回归(使用统计插件)\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"sunburst\"\n    ],\n    \"id\": \"sunburst-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Sunburst\",\n    \"titleCN\": \"基础旭日图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"area-stack\",\n    \"tags\": [],\n    \"title\": \"Stacked area chart\",\n    \"titleCN\": \"堆叠面积图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"area-stack-gradient\",\n    \"tags\": [],\n    \"title\": \"Gradient Stacked area chart\",\n    \"titleCN\": \"渐变堆叠面积图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-negative2\",\n    \"tags\": [],\n    \"title\": \"Bar Chart with Negative Value\",\n    \"titleCN\": \"交错正负轴标签\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-y-category\",\n    \"tags\": [],\n    \"title\": \"World Total Population\",\n    \"titleCN\": \"世界人口总量 - 条形图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"calendar\"\n    ],\n    \"id\": \"calendar-horizontal\",\n    \"tags\": [],\n    \"title\": \"Calendar Heatmap Horizontal\",\n    \"titleCN\": \"横向日力图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"candlestick\"\n    ],\n    \"id\": \"candlestick-sh\",\n    \"tags\": [],\n    \"title\": \"ShangHai Index\",\n    \"titleCN\": \"上证指数\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"custom\",\n      \"dataZoom\"\n    ],\n    \"id\": \"custom-error-scatter\",\n    \"tags\": [],\n    \"title\": \"Error Scatter on Catesian\",\n    \"titleCN\": \"使用自定系列给散点图添加误差范围\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"effectScatter-map\",\n    \"tags\": [],\n    \"title\": \"Air Quality\",\n    \"titleCN\": \"全国主要城市空气质量\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-speed\",\n    \"tags\": [],\n    \"title\": \"Speed Gauge\",\n    \"titleCN\": \"速度仪表盘\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-grid\",\n    \"tags\": [],\n    \"title\": \"Graph on Cartesian\",\n    \"titleCN\": \"笛卡尔坐标系上的 Graph\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-simple\",\n    \"tags\": [],\n    \"title\": \"Simple Graph\",\n    \"titleCN\": \"Graph 简单示例\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"heatmap\"\n    ],\n    \"id\": \"heatmap-large\",\n    \"tags\": [],\n    \"title\": \"Heatmap - 2w data\",\n    \"titleCN\": \"热力图 - 2w 数据\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"heatmap\"\n    ],\n    \"id\": \"heatmap-large-piecewise\",\n    \"tags\": [],\n    \"title\": \"Heatmap - Discrete Mapping of Color\",\n    \"titleCN\": \"热力图 - 颜色的离散映射\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-marker\",\n    \"tags\": [],\n    \"title\": \"Temperature Change in the coming week\",\n    \"titleCN\": \"未来一周气温变化\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"parallel\"\n    ],\n    \"id\": \"parallel-aqi\",\n    \"tags\": [],\n    \"title\": \"Parallel Aqi\",\n    \"titleCN\": \"AQI 分布(平行坐标)\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-custom\",\n    \"tags\": [],\n    \"title\": \"Customized Pie\",\n    \"titleCN\": \"饼图自定义样式\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-pattern\",\n    \"tags\": [],\n    \"title\": \"Texture on Pie Chart\",\n    \"titleCN\": \"饼图纹理\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-roseType\",\n    \"tags\": [],\n    \"title\": \"Nightingale's Rose Diagram\",\n    \"titleCN\": \"南丁格尔玫瑰图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-roseType-simple\",\n    \"tags\": [],\n    \"title\": \"Nightingale's Rose Diagram\",\n    \"titleCN\": \"基础南丁格尔玫瑰图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"radar\"\n    ],\n    \"id\": \"radar-custom\",\n    \"tags\": [],\n    \"title\": \"Customized Radar Chart\",\n    \"titleCN\": \"自定义雷达图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"sankey\"\n    ],\n    \"id\": \"sankey-itemstyle\",\n    \"tags\": [],\n    \"title\": \"Specify ItemStyle for Each Node in Sankey\",\n    \"titleCN\": \"桑基图节点自定义样式\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"sankey\"\n    ],\n    \"id\": \"sankey-levels\",\n    \"tags\": [],\n    \"title\": \"Sankey with Levels Setting\",\n    \"titleCN\": \"桑基图层级自定义样式\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-effect\",\n    \"tags\": [],\n    \"title\": \"Effect Scatter Chart\",\n    \"titleCN\": \"涟漪特效散点图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-linear-regression\",\n    \"tags\": [],\n    \"title\": \"Linear Regression\",\n    \"titleCN\": \"线性回归(使用统计插件)\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-polynomial-regression\",\n    \"tags\": [],\n    \"title\": \"Polynomial Regression\",\n    \"titleCN\": \"多项式回归(使用统计插件)\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"sunburst\"\n    ],\n    \"id\": \"sunburst-borderRadius\",\n    \"tags\": [],\n    \"title\": \"Sunburst with Rounded Corner\",\n    \"titleCN\": \"圆角旭日图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"sunburst\"\n    ],\n    \"id\": \"sunburst-label-rotate\",\n    \"tags\": [],\n    \"title\": \"Sunburst Label Rotate\",\n    \"titleCN\": \"旭日图标签旋转\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"line\",\n      \"visualMap\"\n    ],\n    \"id\": \"area-pieces\",\n    \"tags\": [],\n    \"title\": \"Area Pieces\",\n    \"titleCN\": \"折线图区域高亮\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-gradient\",\n    \"tags\": [],\n    \"title\": \"Clickable Column Chart with Gradient\",\n    \"titleCN\": \"特性示例:渐变色 阴影 点击缩放\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-label-rotation\",\n    \"tags\": [],\n    \"title\": \"Bar Label Rotation\",\n    \"titleCN\": \"柱状图标签旋转\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-stack\",\n    \"tags\": [],\n    \"title\": \"Stacked Column Chart\",\n    \"titleCN\": \"堆叠柱状图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-waterfall2\",\n    \"tags\": [],\n    \"title\": \"Waterfall Chart\",\n    \"titleCN\": \"阶梯瀑布图(柱状图模拟)\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-y-category-stack\",\n    \"tags\": [],\n    \"title\": \"Stacked Horizontal Bar\",\n    \"titleCN\": \"堆叠条形图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"candlestick\"\n    ],\n    \"id\": \"candlestick-large\",\n    \"tags\": [],\n    \"title\": \"Large Scale Candlestick\",\n    \"titleCN\": \"大数据量K线图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-bar-trend\",\n    \"tags\": [],\n    \"title\": \"Custom Bar Trend\",\n    \"titleCN\": \"使用自定义系列添加柱状图趋势\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-cartesian-polygon\",\n    \"tags\": [],\n    \"title\": \"Custom Cartesian Polygon\",\n    \"titleCN\": \"自定义多边形图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-error-bar\",\n    \"tags\": [],\n    \"title\": \"Error Bar on Catesian\",\n    \"titleCN\": \"使用自定系列给柱状图添加误差范围\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-profile\",\n    \"tags\": [],\n    \"title\": \"Profile\",\n    \"titleCN\": \"性能分析图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"cycle-plot\",\n    \"tags\": [],\n    \"title\": \"Cycle Plot\",\n    \"titleCN\": \"Cycle Plot\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"data-transform-filter\",\n    \"tags\": [],\n    \"title\": \"Data Transform Fitler\",\n    \"titleCN\": \"数据过滤\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"pie\",\n      \"transform\"\n    ],\n    \"id\": \"data-transform-multiple-pie\",\n    \"tags\": [],\n    \"title\": \"Partition Data to Pies\",\n    \"titleCN\": \"分割数据到数个饼图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"pie\"\n    ],\n    \"id\": \"dataset-default\",\n    \"tags\": [],\n    \"title\": \"Default arrangement\",\n    \"titleCN\": \"默认 encode 设置\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"dataset\"\n    ],\n    \"id\": \"dataset-encode1\",\n    \"tags\": [],\n    \"title\": \"Encode and Matrix\",\n    \"titleCN\": \"指定数据到坐标轴的映射\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-progress\",\n    \"tags\": [],\n    \"title\": \"Grogress Gauge\",\n    \"titleCN\": \"进度仪表盘\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-stage\",\n    \"tags\": [],\n    \"title\": \"Stage Speed Gauge\",\n    \"titleCN\": \"阶段速度仪表盘\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-force\",\n    \"tags\": [],\n    \"title\": \"Force Layout\",\n    \"titleCN\": \"力引导布局\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-label-overlap\",\n    \"tags\": [],\n    \"title\": \"Hide Overlapped Label\",\n    \"titleCN\": \"关系图自动隐藏重叠标签\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"heatmap\"\n    ],\n    \"id\": \"heatmap-bmap\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Heatmap on Baidu Map Extension\",\n    \"titleCN\": \"热力图与百度地图扩展\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"heatmap\"\n    ],\n    \"id\": \"heatmap-map\",\n    \"tags\": [],\n    \"title\": \"Air Qulity\",\n    \"titleCN\": \"全国主要城市空气质量\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-gradient\",\n    \"tags\": [],\n    \"title\": \"Line Gradient\",\n    \"titleCN\": \"折线图的渐变\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-sections\",\n    \"tags\": [],\n    \"title\": \"Distribution of Electricity\",\n    \"titleCN\": \"一天用电量分布\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-alignTo\",\n    \"tags\": [],\n    \"title\": \"Pie Label Align\",\n    \"titleCN\": \"饼图标签对齐\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-labelLine-adjust\",\n    \"tags\": [],\n    \"title\": \"Label Line Adjust\",\n    \"titleCN\": \"饼图引导线调整\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"radar\"\n    ],\n    \"id\": \"radar2\",\n    \"tags\": [],\n    \"title\": \"Proportion of Browsers\",\n    \"titleCN\": \"浏览器占比变化\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"sankey\"\n    ],\n    \"id\": \"sankey-energy\",\n    \"tags\": [],\n    \"title\": \"Gradient Edge\",\n    \"titleCN\": \"桑基图渐变色边\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"sankey\"\n    ],\n    \"id\": \"sankey-nodeAlign-left\",\n    \"tags\": [],\n    \"title\": \"Node Align Left in Sankey\",\n    \"titleCN\": \"桑基图左对齐布局\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"sankey\"\n    ],\n    \"id\": \"sankey-nodeAlign-right\",\n    \"tags\": [],\n    \"title\": \"Node Align Right in Sankey\",\n    \"titleCN\": \"桑基图右对齐布局\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-punchCard\",\n    \"tags\": [],\n    \"title\": \"Punch Card of Github\",\n    \"titleCN\": \"GitHub 打卡气泡图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-single-axis\",\n    \"tags\": [],\n    \"title\": \"Scatter on Single Axis\",\n    \"titleCN\": \"单轴散点图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-weight\",\n    \"tags\": [],\n    \"title\": \"Distribution of Height and Weight\",\n    \"titleCN\": \"男性女性身高体重分布\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"sunburst\"\n    ],\n    \"id\": \"sunburst-monochrome\",\n    \"tags\": [],\n    \"title\": \"Monochrome Sunburst\",\n    \"titleCN\": \"Monochrome Sunburst\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"line\",\n      \"dataZoom\"\n    ],\n    \"id\": \"area-simple\",\n    \"tags\": [],\n    \"title\": \"Large scale area chart\",\n    \"titleCN\": \"大数据量面积图\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-brush\",\n    \"tags\": [],\n    \"title\": \"Brush Select on Column Chart\",\n    \"titleCN\": \"柱状图框选\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-negative\",\n    \"tags\": [],\n    \"title\": \"Bar Chart with Negative Value\",\n    \"titleCN\": \"正负条形图\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar1\",\n    \"tags\": [],\n    \"title\": \"Rainfall and Evaporation\",\n    \"titleCN\": \"某地区蒸发量和降水量\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"calendar\",\n      \"graph\"\n    ],\n    \"id\": \"calendar-graph\",\n    \"tags\": [],\n    \"title\": \"Calendar Graph\",\n    \"titleCN\": \"日历关系图\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"calendar\"\n    ],\n    \"id\": \"calendar-lunar\",\n    \"tags\": [],\n    \"title\": \"Calendar Lunar\",\n    \"titleCN\": \"农历日历图\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"candlestick\"\n    ],\n    \"id\": \"candlestick-touch\",\n    \"tags\": [],\n    \"title\": \"Axis Pointer Link and Touch\",\n    \"titleCN\": \"触屏上的坐标轴指示器\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"confidence-band\",\n    \"tags\": [],\n    \"title\": \"Confidence Band\",\n    \"titleCN\": \"Confidence Band\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"custom\",\n      \"dataZoom\",\n      \"drag\"\n    ],\n    \"id\": \"custom-gantt-flight\",\n    \"tags\": [],\n    \"title\": \"Gantt Chart of Airport Flights\",\n    \"titleCN\": \"机场航班甘特图\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-polar-heatmap\",\n    \"tags\": [],\n    \"title\": \"Polar Heatmap\",\n    \"titleCN\": \"极坐标热力图(自定义系列)\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"boxplot\"\n    ],\n    \"id\": \"data-transform-aggregate\",\n    \"tags\": [],\n    \"title\": \"Data Transform Simple Aggregate\",\n    \"titleCN\": \"简单的数据聚合\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-grade\",\n    \"tags\": [],\n    \"title\": \"Grade Gauge\",\n    \"titleCN\": \"等级仪表盘\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-multi-title\",\n    \"tags\": [],\n    \"title\": \"Multi Title Gauge\",\n    \"titleCN\": \"多标题仪表盘\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-temperature\",\n    \"tags\": [],\n    \"title\": \"Temperature Gauge chart\",\n    \"titleCN\": \"气温仪表盘\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph\",\n    \"tags\": [],\n    \"title\": \"Les Miserables\",\n    \"titleCN\": \"悲惨世界人物关系图\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"grid-multiple\",\n    \"tags\": [],\n    \"title\": \"Rainfall and Water Flow\",\n    \"titleCN\": \"雨量流量关系图\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-aqi\",\n    \"tags\": [],\n    \"title\": \"Beijing AQI\",\n    \"titleCN\": \"北京 AQI 可视化\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"mix-line-bar\",\n    \"tags\": [],\n    \"title\": \"Mixed Line and Bar\",\n    \"titleCN\": \"折柱混合\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"mix-zoom-on-value\",\n    \"tags\": [],\n    \"title\": \"Mix Zoom On Value\",\n    \"titleCN\": \"多数值轴轴缩放\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"multiple-x-axis\",\n    \"tags\": [],\n    \"title\": \"Multiple X Axes\",\n    \"titleCN\": \"多 X 轴\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"multiple-y-axis\",\n    \"tags\": [],\n    \"title\": \"Multiple Y Axes\",\n    \"titleCN\": \"多 Y 轴示例\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"parallel\"\n    ],\n    \"id\": \"parallel-nutrients\",\n    \"tags\": [],\n    \"title\": \"Parallel Nutrients\",\n    \"titleCN\": \"营养结构(平行坐标)\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-legend\",\n    \"tags\": [],\n    \"title\": \"Pie with Scrollable Legend\",\n    \"titleCN\": \"可滚动的图例\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"pie\",\n      \"rich\"\n    ],\n    \"id\": \"pie-rich-text\",\n    \"tags\": [],\n    \"title\": \"Pie Special Label\",\n    \"titleCN\": \"富文本标签\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-label-align-right\",\n    \"tags\": [],\n    \"title\": \"Align Label on the Top\",\n    \"titleCN\": \"散点图标签顶部对齐\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-label-align-top\",\n    \"tags\": [],\n    \"title\": \"Align Label on the Top\",\n    \"titleCN\": \"散点图标签顶部对齐\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"sunburst\"\n    ],\n    \"id\": \"sunburst-visualMap\",\n    \"tags\": [],\n    \"title\": \"Sunburst VisualMap\",\n    \"titleCN\": \"旭日图使用视觉编码\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"area-rainfall\",\n    \"tags\": [],\n    \"title\": \"Rainfall\",\n    \"titleCN\": \"雨量流量关系图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"area-time-axis\",\n    \"tags\": [],\n    \"title\": \"Area Chart with Time Axis\",\n    \"titleCN\": \"时间轴折线图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-animation-delay\",\n    \"tags\": [],\n    \"title\": \"Animation Delay\",\n    \"titleCN\": \"柱状图动画延迟\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-large\",\n    \"tags\": [],\n    \"title\": \"Large Scale Bar Chart\",\n    \"titleCN\": \"大数据量柱图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-race\",\n    \"tags\": [],\n    \"title\": \"Bar Race\",\n    \"titleCN\": \"动态排序柱状图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"line\",\n      \"pie\"\n    ],\n    \"id\": \"dataset-link\",\n    \"tags\": [],\n    \"title\": \"Share Dataset\",\n    \"titleCN\": \"联动和共享数据集\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"bar\"\n    ],\n    \"id\": \"dataset-series-layout-by\",\n    \"tags\": [],\n    \"title\": \"Series Layout By Column or Row\",\n    \"titleCN\": \"系列按行和按列排布\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"bar\"\n    ],\n    \"id\": \"dataset-simple0\",\n    \"tags\": [],\n    \"title\": \"Simple Example of Dataset\",\n    \"titleCN\": \"最简单的数据集(dataset)\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"bar\"\n    ],\n    \"id\": \"dataset-simple1\",\n    \"tags\": [],\n    \"title\": \"Dataset in Object Array\",\n    \"titleCN\": \"对象数组的输入格式\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"dynamic-data2\",\n    \"tags\": [],\n    \"title\": \"Dynamic Data + Time Axis\",\n    \"titleCN\": \"动态数据 + 时间坐标轴\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-ring\",\n    \"tags\": [],\n    \"title\": \"Ring Gauge\",\n    \"titleCN\": \"得分环\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-circular-layout\",\n    \"tags\": [],\n    \"title\": \"Les Miserables\",\n    \"titleCN\": \"悲惨世界人物关系图(环形布局)\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-function\",\n    \"tags\": [],\n    \"title\": \"Function Plot\",\n    \"titleCN\": \"函数绘图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-race\",\n    \"tags\": [],\n    \"title\": \"Line Race\",\n    \"titleCN\": \"动态排序折线图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"pie\",\n      \"rich\"\n    ],\n    \"id\": \"pie-nest\",\n    \"tags\": [],\n    \"title\": \"Nested Pies\",\n    \"titleCN\": \"嵌套环形图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-large\",\n    \"tags\": [],\n    \"title\": \"Large Scatter\",\n    \"titleCN\": \"大规模散点图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-nebula\",\n    \"tags\": [],\n    \"title\": \"Scatter Nebula\",\n    \"titleCN\": \"大规模星云散点图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-stream-visual\",\n    \"tags\": [],\n    \"title\": \"Visual interaction with stream\",\n    \"titleCN\": \"流式渲染和视觉映射操作\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"sunburst\"\n    ],\n    \"id\": \"sunburst-drink\",\n    \"tags\": [],\n    \"title\": \"Drink Flavors\",\n    \"titleCN\": \"Drink Flavors\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"custom\",\n      \"dataZoom\"\n    ],\n    \"id\": \"wind-barb\",\n    \"tags\": [],\n    \"title\": \"Wind Barb\",\n    \"titleCN\": \"风向图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-race-country\",\n    \"tags\": [],\n    \"title\": \"Bar Race\",\n    \"titleCN\": \"动态排序柱状图 - 人均收入\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"bar\",\n      \"rich\"\n    ],\n    \"id\": \"bar-rich-text\",\n    \"tags\": [],\n    \"title\": \"Wheater Statistics\",\n    \"titleCN\": \"天气统计(富文本)\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"bubble-gradient\",\n    \"tags\": [],\n    \"title\": \"Bubble Chart\",\n    \"titleCN\": \"气泡图\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"calendar\",\n      \"pie\"\n    ],\n    \"id\": \"calendar-pie\",\n    \"tags\": [],\n    \"title\": \"Calendar Pie\",\n    \"titleCN\": \"日历饼图\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"custom\",\n      \"map\"\n    ],\n    \"id\": \"custom-hexbin\",\n    \"tags\": [],\n    \"title\": \"Hexagonal Binning\",\n    \"titleCN\": \"六边形分箱图(自定义系列)\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"dynamic-data\",\n    \"tags\": [],\n    \"title\": \"Dynamic Data\",\n    \"titleCN\": \"动态数据\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-barometer\",\n    \"tags\": [],\n    \"title\": \"Gauge Barometer chart\",\n    \"titleCN\": \"气压表\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-force-dynamic\",\n    \"tags\": [],\n    \"title\": \"Graph Dynamic\",\n    \"titleCN\": \"动态增加图节点\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-markline\",\n    \"tags\": [],\n    \"title\": \"Line with Marklines\",\n    \"titleCN\": \"折线图的标记线\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-style\",\n    \"tags\": [],\n    \"title\": \"Line Style and Item Style\",\n    \"titleCN\": \"自定义折线图样式\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"mix-timeline-finance\",\n    \"tags\": [],\n    \"title\": \"Finance Indices 2002\",\n    \"titleCN\": \"2002全国宏观经济指标\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"sunburst\"\n    ],\n    \"id\": \"sunburst-book\",\n    \"tags\": [],\n    \"title\": \"Book Records\",\n    \"titleCN\": \"书籍分布\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"watermark\",\n    \"tags\": [],\n    \"title\": \"Watermark - ECharts Download\",\n    \"titleCN\": \"水印 - ECharts 下载统计\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-polar-real-estate\",\n    \"tags\": [],\n    \"title\": \"Bar Chart on Polar\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-polar-stack\",\n    \"tags\": [],\n    \"title\": \"Stacked Bar Chart on Polar\",\n    \"titleCN\": \"极坐标系下的堆叠柱状图\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-polar-stack-radial\",\n    \"tags\": [],\n    \"title\": \"Stacked Bar Chart on Polar(Radial)\",\n    \"titleCN\": \"极坐标系下的堆叠柱状图\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"custom\",\n      \"calendar\"\n    ],\n    \"id\": \"custom-calendar-icon\",\n    \"tags\": [],\n    \"title\": \"Custom Calendar Icon\",\n    \"titleCN\": \"日历图自定义图标\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-wind\",\n    \"tags\": [],\n    \"title\": \"Use custom series to draw wind vectors\",\n    \"titleCN\": \"使用自定义系列绘制风场\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-clock\",\n    \"tags\": [],\n    \"title\": \"Clock Gauge\",\n    \"titleCN\": \"时钟仪表盘\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-life-expectancy\",\n    \"tags\": [],\n    \"title\": \"Graph Life Expectancy\",\n    \"titleCN\": \"Graph Life Expectancy\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-in-cartesian-coordinate-system\",\n    \"tags\": [],\n    \"title\": \"Line Chart in Cartesian Coordinate System\",\n    \"titleCN\": \"双数值轴折线图\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-log\",\n    \"tags\": [],\n    \"title\": \"Log Axis\",\n    \"titleCN\": \"对数轴示例\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-step\",\n    \"tags\": [],\n    \"title\": \"Step Line\",\n    \"titleCN\": \"阶梯折线图\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"polar-roundCap\",\n    \"tags\": [],\n    \"title\": \"Rounded Bar on Polar\",\n    \"titleCN\": \"圆角环形图\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-aqi-color\",\n    \"tags\": [],\n    \"title\": \"Scatter Aqi Color\",\n    \"titleCN\": \"AQI 气泡图\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-nutrients\",\n    \"tags\": [],\n    \"title\": \"Scatter Nutrients\",\n    \"titleCN\": \"营养分布散点图\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-nutrients-matrix\",\n    \"tags\": [],\n    \"title\": \"Scatter Nutrients Matrix\",\n    \"titleCN\": \"营养分布散点矩阵\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-car\",\n    \"tags\": [],\n    \"title\": \"Gauge Car\",\n    \"titleCN\": \"Gauge Car\",\n    \"difficulty\": 8\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-webkit-dep\",\n    \"tags\": [],\n    \"title\": \"Graph Webkit Dep\",\n    \"titleCN\": \"WebKit 模块关系依赖图\",\n    \"difficulty\": 8\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-easing\",\n    \"tags\": [],\n    \"title\": \"Line Easing Visualizing\",\n    \"titleCN\": \"缓动函数可视化\",\n    \"difficulty\": 8\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-y-category\",\n    \"tags\": [],\n    \"title\": \"Line Y Category\",\n    \"titleCN\": \"垂直折线图(Y轴为类目轴)\",\n    \"difficulty\": 8\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-polar-punchCard\",\n    \"tags\": [],\n    \"title\": \"Punch Card of Github\",\n    \"titleCN\": \"GitHub 打卡气泡图(极坐标)\",\n    \"difficulty\": 8\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-aggregate-scatter-bar\",\n    \"tags\": [],\n    \"title\": \"Aggregate Morphing Between Scatter and Bar\",\n    \"titleCN\": \"聚合分割形变(散点图 - 柱状图)\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-aggregate-scatter-pie\",\n    \"tags\": [],\n    \"title\": \"Aggregate Morphing Between Scatter and Pie\",\n    \"titleCN\": \"聚合分割形变(散点图 - 饼图)\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-gauge\",\n    \"tags\": [],\n    \"title\": \"Custom Gauge\",\n    \"titleCN\": \"自定义仪表\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-npm\",\n    \"tags\": [],\n    \"title\": \"NPM Dependencies\",\n    \"titleCN\": \"NPM 依赖关系图\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-graphic\",\n    \"tags\": [],\n    \"title\": \"Custom Graphic Component\",\n    \"titleCN\": \"自定义图形组件\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-pen\",\n    \"tags\": [],\n    \"title\": \"Click to Add Points\",\n    \"titleCN\": \"点击添加折线图拐点\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-life-expectancy-timeline\",\n    \"tags\": [],\n    \"title\": \"Life Expectancy and GDP\",\n    \"titleCN\": \"各国人均寿命与GDP关系演变\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-painter-choice\",\n    \"tags\": [],\n    \"title\": \"Master Painter Color Choices Throughout History\",\n    \"titleCN\": \"Master Painter Color Choices Throughout History\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"boxplot\"\n    ],\n    \"id\": \"boxplot-light-velocity\",\n    \"tags\": [],\n    \"title\": \"Boxplot Light Velocity\",\n    \"titleCN\": \"基础盒须图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"boxplot\"\n    ],\n    \"id\": \"boxplot-light-velocity2\",\n    \"tags\": [],\n    \"title\": \"Boxplot Light Velocity2\",\n    \"titleCN\": \"垂直方向盒须图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"boxplot\"\n    ],\n    \"id\": \"boxplot-multi\",\n    \"tags\": [],\n    \"title\": \"Multiple Categories\",\n    \"titleCN\": \"多系列盒须图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [],\n    \"id\": \"calendar-effectscatter\",\n    \"tags\": [],\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"candlestick\"\n    ],\n    \"id\": \"candlestick-brush\",\n    \"tags\": [],\n    \"title\": \"Candlestick Brush\",\n    \"titleCN\": \"日力图刷选\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"candlestick\"\n    ],\n    \"id\": \"candlestick-sh-2015\",\n    \"tags\": [],\n    \"title\": \"ShangHai Index, 2015\",\n    \"titleCN\": \"2015 年上证指数\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [],\n    \"id\": \"covid-america\",\n    \"tags\": [],\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-aggregate-scatter-cluster\",\n    \"tags\": [],\n    \"title\": \"Aggregate Morphing Between Scatter Clustering\",\n    \"titleCN\": \"聚合分割形变(散点图聚类)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter\",\n      \"map\"\n    ],\n    \"id\": \"effectScatter-bmap\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Air Quality - Baidu Map\",\n    \"titleCN\": \"全国主要城市空气质量 - 百度地图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"funnel\"\n    ],\n    \"id\": \"funnel\",\n    \"tags\": [],\n    \"title\": \"Funnel Chart\",\n    \"titleCN\": \"漏斗图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"funnel\"\n    ],\n    \"id\": \"funnel-align\",\n    \"tags\": [],\n    \"title\": \"Funnel (align)\",\n    \"titleCN\": \"漏斗图(对比)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"funnel\"\n    ],\n    \"id\": \"funnel-customize\",\n    \"tags\": [],\n    \"title\": \"Customized Funnel\",\n    \"titleCN\": \"漏斗图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"funnel\"\n    ],\n    \"id\": \"funnel-mutiple\",\n    \"tags\": [],\n    \"title\": \"Multiple Funnels\",\n    \"titleCN\": \"漏斗图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-beef-cuts\",\n    \"tags\": [],\n    \"title\": \"GEO Beef Cuts\",\n    \"titleCN\": \"庖丁解牛\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-lines\",\n    \"tags\": [],\n    \"title\": \"Migration\",\n    \"titleCN\": \"模拟迁徙\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-map-scatter\",\n    \"tags\": [],\n    \"title\": \"map and scatter share a geo\",\n    \"titleCN\": \"map and scatter share a geo\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-organ\",\n    \"tags\": [],\n    \"title\": \"Organ Data with SVG\",\n    \"titleCN\": \"内脏数据(SVG)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-seatmap-flight\",\n    \"tags\": [],\n    \"title\": \"Flight Seatmap with SVG\",\n    \"titleCN\": \"航班选座(SVG)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-svg-lines\",\n    \"tags\": [],\n    \"title\": \"GEO SVG Lines\",\n    \"titleCN\": \"GEO 路径图(SVG)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-svg-map\",\n    \"tags\": [],\n    \"title\": \"GEO SVG Map\",\n    \"titleCN\": \"地图(SVG)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-svg-traffic\",\n    \"tags\": [],\n    \"title\": \"GEO SVG Traffic\",\n    \"titleCN\": \"交通(SVG)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"line\",\n      \"drag\"\n    ],\n    \"id\": \"line-draggable\",\n    \"tags\": [],\n    \"title\": \"Try Dragging these Points\",\n    \"titleCN\": \"可拖拽点\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-polar\",\n    \"tags\": [],\n    \"title\": \"Two Value-Axes in Polar\",\n    \"titleCN\": \"极坐标双数值轴\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-polar2\",\n    \"tags\": [],\n    \"title\": \"Two Value-Axes in Polar\",\n    \"titleCN\": \"极坐标双数值轴\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"line\",\n      \"dataZoom\"\n    ],\n    \"id\": \"line-tooltip-touch\",\n    \"tags\": [],\n    \"title\": \"Tooltip and DataZoom on Mobile\",\n    \"titleCN\": \"移动端上的 dataZoom 和 tooltip\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\",\n      \"lines\"\n    ],\n    \"id\": \"lines-airline\",\n    \"tags\": [],\n    \"title\": \"65k+ Airline\",\n    \"titleCN\": \"65k+ 飞机航线\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\",\n      \"lines\"\n    ],\n    \"id\": \"lines-bmap\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"A Hiking Trail in Hangzhou - Baidu Map\",\n    \"titleCN\": \"杭州热门步行路线 - 百度地图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\",\n      \"lines\"\n    ],\n    \"id\": \"lines-bmap-bus\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Bus Lines of Beijing - Baidu Map\",\n    \"titleCN\": \"北京公交路线 - 百度地图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\",\n      \"lines\"\n    ],\n    \"id\": \"lines-bmap-effect\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Bus Lines of Beijing - Line Effect\",\n    \"titleCN\": \"北京公交路线 - 线特效\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\",\n      \"lines\"\n    ],\n    \"id\": \"lines-ny\",\n    \"tags\": [],\n    \"title\": \"Use lines to draw 1 million ny streets.\",\n    \"titleCN\": \"使用线图绘制近 100 万的纽约街道数据\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-bin\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Binning on Map\",\n    \"titleCN\": \"Binning on Map\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-china\",\n    \"tags\": [],\n    \"title\": \"Map China\",\n    \"titleCN\": \"Map China\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-china-dataRange\",\n    \"tags\": [],\n    \"title\": \"Sales of iphone\",\n    \"titleCN\": \"iphone销量\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-HK\",\n    \"tags\": [],\n    \"title\": \"Population Density of HongKong (2011)\",\n    \"titleCN\": \"香港18区人口密度 (2011)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-labels\",\n    \"tags\": [],\n    \"title\": \"Rich Text Labels on Map\",\n    \"titleCN\": \"地图上的富文本标签\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-locate\",\n    \"tags\": [],\n    \"title\": \"Map Locate\",\n    \"titleCN\": \"Map Locate\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-polygon\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Draw Polygon on Map\",\n    \"titleCN\": \"在地图上绘制多边形\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-province\",\n    \"tags\": [],\n    \"title\": \"Switch among 34 Provinces\",\n    \"titleCN\": \"34 省切换查看\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-usa\",\n    \"tags\": [],\n    \"title\": \"USA Population Estimates (2012)\",\n    \"titleCN\": \"USA Population Estimates (2012)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-world\",\n    \"tags\": [],\n    \"title\": \"Map World\",\n    \"titleCN\": \"Map World\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-world-dataRange\",\n    \"tags\": [],\n    \"title\": \"World Population (2010)\",\n    \"titleCN\": \"World Population (2010)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"pictorialBar\"\n    ],\n    \"id\": \"pictorialBar-body-fill\",\n    \"tags\": [],\n    \"title\": \"Water Content\",\n    \"titleCN\": \"人体含水量\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"pictorialBar\"\n    ],\n    \"id\": \"pictorialBar-dotted\",\n    \"tags\": [],\n    \"title\": \"Dotted bar\",\n    \"titleCN\": \"虚线柱状图效果\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"pictorialBar\"\n    ],\n    \"id\": \"pictorialBar-forest\",\n    \"tags\": [],\n    \"title\": \"Expansion of forest\",\n    \"titleCN\": \"森林的增长\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"pictorialBar\"\n    ],\n    \"id\": \"pictorialBar-hill\",\n    \"tags\": [],\n    \"title\": \"Wish List and Mountain Height\",\n    \"titleCN\": \"圣诞愿望清单和山峰高度\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"pictorialBar\"\n    ],\n    \"id\": \"pictorialBar-spirit\",\n    \"tags\": [],\n    \"title\": \"Spirits\",\n    \"titleCN\": \"精灵\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"pictorialBar\"\n    ],\n    \"id\": \"pictorialBar-vehicle\",\n    \"tags\": [],\n    \"title\": \"Vehicles\",\n    \"titleCN\": \"交通工具\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"pictorialBar\"\n    ],\n    \"id\": \"pictorialBar-velocity\",\n    \"tags\": [],\n    \"title\": \"Velocity of Christmas Reindeers\",\n    \"titleCN\": \"驯鹿的速度\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"radar\"\n    ],\n    \"id\": \"radar-multiple\",\n    \"tags\": [],\n    \"title\": \"Multiple Radar\",\n    \"titleCN\": \"多雷达图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-map\",\n    \"tags\": [],\n    \"title\": \"Air Quality\",\n    \"titleCN\": \"全国主要城市空气质量\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-map-brush\",\n    \"tags\": [],\n    \"title\": \"Scatter Map Brush\",\n    \"titleCN\": \"Scatter Map Brush\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"parallel\",\n      \"scatter\"\n    ],\n    \"id\": \"scatter-matrix\",\n    \"tags\": [],\n    \"title\": \"Scatter Matrix\",\n    \"titleCN\": \"散点矩阵和平行坐标\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-weibo\",\n    \"tags\": [],\n    \"title\": \"Sign in of weibo\",\n    \"titleCN\": \"微博签到数据点亮中国\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-world-population\",\n    \"tags\": [],\n    \"title\": \"World Population (2011)\",\n    \"titleCN\": \"World Population (2011)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"themeRiver\"\n    ],\n    \"id\": \"themeRiver-basic\",\n    \"tags\": [],\n    \"title\": \"ThemeRiver\",\n    \"titleCN\": \"主题河流图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"themeRiver\"\n    ],\n    \"id\": \"themeRiver-lastfm\",\n    \"tags\": [],\n    \"title\": \"ThemeRiver Lastfm\",\n    \"titleCN\": \"ThemeRiver Lastfm\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"tree\"\n    ],\n    \"id\": \"tree-basic\",\n    \"tags\": [],\n    \"title\": \"From Left to Right Tree\",\n    \"titleCN\": \"从左到右树状图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"tree\"\n    ],\n    \"id\": \"tree-legend\",\n    \"tags\": [],\n    \"title\": \"Multiple Trees\",\n    \"titleCN\": \"多棵树\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"tree\"\n    ],\n    \"id\": \"tree-orient-bottom-top\",\n    \"tags\": [],\n    \"title\": \"From Bottom to Top Tree\",\n    \"titleCN\": \"从下到上树状图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"tree\"\n    ],\n    \"id\": \"tree-orient-right-left\",\n    \"tags\": [],\n    \"title\": \"From Right to Left Tree\",\n    \"titleCN\": \"从右到左树状图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"tree\"\n    ],\n    \"id\": \"tree-polyline\",\n    \"tags\": [],\n    \"title\": \"Tree with Polyline Edge\",\n    \"titleCN\": \"折线树图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"tree\"\n    ],\n    \"id\": \"tree-radial\",\n    \"tags\": [],\n    \"title\": \"Radial Tree\",\n    \"titleCN\": \"径向树状图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"tree\"\n    ],\n    \"id\": \"tree-vertical\",\n    \"tags\": [],\n    \"title\": \"From Top to Bottom Tree\",\n    \"titleCN\": \"从上到下树状图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"treemap\"\n    ],\n    \"id\": \"treemap-disk\",\n    \"tags\": [],\n    \"title\": \"Disk Usage\",\n    \"titleCN\": \"磁盘占用\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"treemap\"\n    ],\n    \"id\": \"treemap-drill-down\",\n    \"tags\": [],\n    \"title\": \"ECharts Option Query\",\n    \"titleCN\": \"ECharts 配置项查询分布\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"treemap\"\n    ],\n    \"id\": \"treemap-obama\",\n    \"tags\": [],\n    \"title\": \"How $3.7 Trillion is Spent\",\n    \"titleCN\": \"How $3.7 Trillion is Spent\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"treemap\"\n    ],\n    \"id\": \"treemap-show-parent\",\n    \"tags\": [],\n    \"title\": \"Show Parent Labels\",\n    \"titleCN\": \"显示父层级标签\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"treemap\"\n    ],\n    \"id\": \"treemap-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Treemap\",\n    \"titleCN\": \"基础矩形树图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"treemap\"\n    ],\n    \"id\": \"treemap-visual\",\n    \"tags\": [],\n    \"title\": \"Gradient Mapping\",\n    \"titleCN\": \"映射为渐变色\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"calendar\",\n      \"scatter\"\n    ],\n    \"id\": \"calendar-charts\",\n    \"tags\": [],\n    \"title\": \"Calendar Charts\",\n    \"titleCN\": \"日力图\",\n    \"difficulty\": 11\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"circle-packing-with-d3\",\n    \"tags\": [],\n    \"title\": \"Circle Packing with d3\",\n    \"titleCN\": \"Circle Packing with d3\",\n    \"difficulty\": 11\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-one-to-one-morph\",\n    \"tags\": [],\n    \"title\": \"One-to-one Morphing\",\n    \"titleCN\": \"一对一映射形变\",\n    \"difficulty\": 11\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-spiral-race\",\n    \"tags\": [],\n    \"title\": \"Custom Spiral Race\",\n    \"titleCN\": \"自定义螺旋线竞速\",\n    \"difficulty\": 11\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-story-transition\",\n    \"tags\": [],\n    \"title\": \"Simple Story Transition\",\n    \"titleCN\": \"极简场景变换示例\",\n    \"difficulty\": 11\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-logarithmic-regression\",\n    \"tags\": [],\n    \"title\": \"Logarithmic Regression\",\n    \"titleCN\": \"对数回归(使用统计插件)\",\n    \"difficulty\": 16\n  }\n]","\n// THIS FILE IS GENERATED, DON'T MODIFY */\n\n/* eslint-disable  */\nexport const keywords = [{\"name\":\"color\",\"count\":1835},{\"name\":\"shadowColor\",\"count\":1770},{\"name\":\"shadowBlur\",\"count\":1770},{\"name\":\"shadowOffsetX\",\"count\":1770},{\"name\":\"shadowOffsetY\",\"count\":1770},{\"name\":\"borderColor\",\"count\":1451},{\"name\":\"borderWidth\",\"count\":1450},{\"name\":\"width\",\"count\":1411},{\"name\":\"borderType\",\"count\":1385},{\"name\":\"borderDashOffset\",\"count\":1373},{\"name\":\"height\",\"count\":1120},{\"name\":\"backgroundColor\",\"count\":1111},{\"name\":\"fontSize\",\"count\":1098},{\"name\":\"fontStyle\",\"count\":1081},{\"name\":\"fontWeight\",\"count\":1081},{\"name\":\"fontFamily\",\"count\":1081},{\"name\":\"lineHeight\",\"count\":1081},{\"name\":\"textBorderColor\",\"count\":1081},{\"name\":\"textBorderWidth\",\"count\":1081},{\"name\":\"textBorderType\",\"count\":1081},{\"name\":\"textBorderDashOffset\",\"count\":1081},{\"name\":\"textShadowColor\",\"count\":1081},{\"name\":\"textShadowBlur\",\"count\":1081},{\"name\":\"textShadowOffsetX\",\"count\":1081},{\"name\":\"textShadowOffsetY\",\"count\":1081},{\"name\":\"padding\",\"count\":1079},{\"name\":\"borderRadius\",\"count\":1051},{\"name\":\"align\",\"count\":916},{\"name\":\"verticalAlign\",\"count\":913},{\"name\":\"opacity\",\"count\":692},{\"name\":\"show\",\"count\":664},{\"name\":\"overflow\",\"count\":567},{\"name\":\"ellipsis\",\"count\":567},{\"name\":\"lineOverflow\",\"count\":567},{\"name\":\"position\",\"count\":528},{\"name\":\"rich\",\"count\":514},{\"name\":\"<style_name>\",\"count\":514},{\"name\":\"distance\",\"count\":472},{\"name\":\"label\",\"count\":468},{\"name\":\"type\",\"count\":389},{\"name\":\"rotate\",\"count\":365},{\"name\":\"offset\",\"count\":357},{\"name\":\"itemStyle\",\"count\":356},{\"name\":\"borderCap\",\"count\":347},{\"name\":\"borderJoin\",\"count\":347},{\"name\":\"borderMiterLimit\",\"count\":347},{\"name\":\"formatter\",\"count\":331},{\"name\":\"lineStyle\",\"count\":298},{\"name\":\"dashOffset\",\"count\":278},{\"name\":\"cap\",\"count\":278},{\"name\":\"join\",\"count\":278},{\"name\":\"miterLimit\",\"count\":278},{\"name\":\"emphasis\",\"count\":175},{\"name\":\"blur\",\"count\":143},{\"name\":\"name\",\"count\":133},{\"name\":\"curveness\",\"count\":124},{\"name\":\"symbol\",\"count\":119},{\"name\":\"symbolSize\",\"count\":119},{\"name\":\"x\",\"count\":115},{\"name\":\"y\",\"count\":115},{\"name\":\"value\",\"count\":101},{\"name\":\"symbolKeepAspect\",\"count\":94},{\"name\":\"silent\",\"count\":93},{\"name\":\"labelLine\",\"count\":81},{\"name\":\"rotation\",\"count\":78},{\"name\":\"symbolOffset\",\"count\":75},{\"name\":\"id\",\"count\":71},{\"name\":\"data\",\"count\":71},{\"name\":\"symbolRotate\",\"count\":67},{\"name\":\"animationDuration\",\"count\":66},{\"name\":\"animationEasing\",\"count\":66},{\"name\":\"animationDelay\",\"count\":65},{\"name\":\"z\",\"count\":64},{\"name\":\"animation\",\"count\":64},{\"name\":\"animationDurationUpdate\",\"count\":63},{\"name\":\"animationThreshold\",\"count\":62},{\"name\":\"animationEasingUpdate\",\"count\":62},{\"name\":\"animationDelayUpdate\",\"count\":62},{\"name\":\"style\",\"count\":60},{\"name\":\"select\",\"count\":56},{\"name\":\"textStyle\",\"count\":54},{\"name\":\"zlevel\",\"count\":52},{\"name\":\"transition\",\"count\":48},{\"name\":\"focus\",\"count\":41},{\"name\":\"blurScope\",\"count\":41},{\"name\":\"coord\",\"count\":41},{\"name\":\"tooltip\",\"count\":40},{\"name\":\"inside\",\"count\":40},{\"name\":\"valueIndex\",\"count\":40},{\"name\":\"valueDim\",\"count\":40},{\"name\":\"extraCssText\",\"count\":38},{\"name\":\"interval\",\"count\":34},{\"name\":\"left\",\"count\":33},{\"name\":\"top\",\"count\":33},{\"name\":\"right\",\"count\":33},{\"name\":\"bottom\",\"count\":33},{\"name\":\"draggable\",\"count\":31},{\"name\":\"decal\",\"count\":28},{\"name\":\"dashArrayX\",\"count\":28},{\"name\":\"dashArrayY\",\"count\":28},{\"name\":\"maxTileWidth\",\"count\":28},{\"name\":\"maxTileHeight\",\"count\":28},{\"name\":\"margin\",\"count\":27},{\"name\":\"xAxis\",\"count\":27},{\"name\":\"yAxis\",\"count\":27},{\"name\":\"origin\",\"count\":26},{\"name\":\"0\",\"count\":26},{\"name\":\"1\",\"count\":26},{\"name\":\"precision\",\"count\":25},{\"name\":\"scaleX\",\"count\":25},{\"name\":\"scaleY\",\"count\":25},{\"name\":\"originX\",\"count\":25},{\"name\":\"originY\",\"count\":25},{\"name\":\"info\",\"count\":25},{\"name\":\"invisible\",\"count\":25},{\"name\":\"ignore\",\"count\":25},{\"name\":\"textContent\",\"count\":25},{\"name\":\"textConfig\",\"count\":25},{\"name\":\"layoutRect\",\"count\":25},{\"name\":\"local\",\"count\":25},{\"name\":\"insideFill\",\"count\":25},{\"name\":\"insideStroke\",\"count\":25},{\"name\":\"outsideFill\",\"count\":25},{\"name\":\"outsideStroke\",\"count\":25},{\"name\":\"smooth\",\"count\":24},{\"name\":\"selectedMode\",\"count\":23},{\"name\":\"fill\",\"count\":23},{\"name\":\"stroke\",\"count\":23},{\"name\":\"lineWidth\",\"count\":23},{\"name\":\"length\",\"count\":21},{\"name\":\"areaStyle\",\"count\":20},{\"name\":\"shape\",\"count\":20},{\"name\":\"cursor\",\"count\":19},{\"name\":\"showAbove\",\"count\":19},{\"name\":\"splitNumber\",\"count\":18},{\"name\":\"progressive\",\"count\":18},{\"name\":\"length2\",\"count\":18},{\"name\":\"minTurnAngle\",\"count\":18},{\"name\":\"labelLayout\",\"count\":18},{\"name\":\"hideOverlap\",\"count\":17},{\"name\":\"moveOverlap\",\"count\":17},{\"name\":\"dx\",\"count\":17},{\"name\":\"dy\",\"count\":17},{\"name\":\"labelLinePoints\",\"count\":17},{\"name\":\"icon\",\"count\":16},{\"name\":\"xAxisIndex\",\"count\":15},{\"name\":\"yAxisIndex\",\"count\":15},{\"name\":\"min\",\"count\":14},{\"name\":\"max\",\"count\":14},{\"name\":\"scale\",\"count\":14},{\"name\":\"coordinateSystem\",\"count\":13},{\"name\":\"markPoint\",\"count\":13},{\"name\":\"markLine\",\"count\":13},{\"name\":\"markArea\",\"count\":13},{\"name\":\"z2\",\"count\":13},{\"name\":\"during\",\"count\":13},{\"name\":\"extra\",\"count\":13},{\"name\":\"orient\",\"count\":12},{\"name\":\"iconStyle\",\"count\":12},{\"name\":\"areaColor\",\"count\":12},{\"name\":\"$action\",\"count\":12},{\"name\":\"bounding\",\"count\":12},{\"name\":\"onclick\",\"count\":12},{\"name\":\"onmouseover\",\"count\":12},{\"name\":\"onmouseout\",\"count\":12},{\"name\":\"onmousemove\",\"count\":12},{\"name\":\"onmousewheel\",\"count\":12},{\"name\":\"onmousedown\",\"count\":12},{\"name\":\"onmouseup\",\"count\":12},{\"name\":\"ondrag\",\"count\":12},{\"name\":\"ondragstart\",\"count\":12},{\"name\":\"ondragend\",\"count\":12},{\"name\":\"ondragenter\",\"count\":12},{\"name\":\"ondragleave\",\"count\":12},{\"name\":\"ondragover\",\"count\":12},{\"name\":\"ondrop\",\"count\":12},{\"name\":\"legendHoverLink\",\"count\":12},{\"name\":\"upperLabel\",\"count\":12},{\"name\":\"dimensions\",\"count\":11},{\"name\":\"axisPointer\",\"count\":10},{\"name\":\"snap\",\"count\":10},{\"name\":\"shadowStyle\",\"count\":10},{\"name\":\"r\",\"count\":10},{\"name\":\"encode\",\"count\":10},{\"name\":\"minAngle\",\"count\":10},{\"name\":\"morph\",\"count\":10},{\"name\":\"title\",\"count\":9},{\"name\":\"textAlign\",\"count\":9},{\"name\":\"triggerEvent\",\"count\":9},{\"name\":\"inverse\",\"count\":9},{\"name\":\"axisLine\",\"count\":9},{\"name\":\"axisTick\",\"count\":9},{\"name\":\"axisLabel\",\"count\":9},{\"name\":\"boundaryGap\",\"count\":8},{\"name\":\"showMinLabel\",\"count\":8},{\"name\":\"showMaxLabel\",\"count\":8},{\"name\":\"splitLine\",\"count\":8},{\"name\":\"size\",\"count\":8},{\"name\":\"throttle\",\"count\":8},{\"name\":\"center\",\"count\":8},{\"name\":\"startAngle\",\"count\":8},{\"name\":\"geoIndex\",\"count\":8},{\"name\":\"cx\",\"count\":8},{\"name\":\"cy\",\"count\":8},{\"name\":\"seriesLayoutBy\",\"count\":8},{\"name\":\"datasetIndex\",\"count\":8},{\"name\":\"color0\",\"count\":8},{\"name\":\"borderColor0\",\"count\":8},{\"name\":\"nameGap\",\"count\":7},{\"name\":\"minInterval\",\"count\":7},{\"name\":\"maxInterval\",\"count\":7},{\"name\":\"logBase\",\"count\":7},{\"name\":\"alignWithLabel\",\"count\":7},{\"name\":\"minorTick\",\"count\":7},{\"name\":\"polarIndex\",\"count\":7},{\"name\":\"clockwise\",\"count\":7},{\"name\":\"clip\",\"count\":7},{\"name\":\"text\",\"count\":6},{\"name\":\"nameLocation\",\"count\":6},{\"name\":\"nameTextStyle\",\"count\":6},{\"name\":\"nameRotate\",\"count\":6},{\"name\":\"splitArea\",\"count\":6},{\"name\":\"triggerTooltip\",\"count\":6},{\"name\":\"status\",\"count\":6},{\"name\":\"handle\",\"count\":6},{\"name\":\"textPosition\",\"count\":6},{\"name\":\"textFill\",\"count\":6},{\"name\":\"textBackgroundColor\",\"count\":6},{\"name\":\"textBorderRadius\",\"count\":6},{\"name\":\"textPadding\",\"count\":6},{\"name\":\"line\",\"count\":6},{\"name\":\"layout\",\"count\":6},{\"name\":\"r0\",\"count\":6},{\"name\":\"progressiveThreshold\",\"count\":6},{\"name\":\"colorAlpha\",\"count\":6},{\"name\":\"colorSaturation\",\"count\":6},{\"name\":\"offsetCenter\",\"count\":6},{\"name\":\"target\",\"count\":5},{\"name\":\"itemGap\",\"count\":5},{\"name\":\"minorSplitLine\",\"count\":5},{\"name\":\"radius\",\"count\":5},{\"name\":\"realtime\",\"count\":5},{\"name\":\"zoom\",\"count\":5},{\"name\":\"bar\",\"count\":5},{\"name\":\"stack\",\"count\":5},{\"name\":\"roam\",\"count\":5},{\"name\":\"endAngle\",\"count\":5},{\"name\":\"valueAnimation\",\"count\":5},{\"name\":\"calendarIndex\",\"count\":5},{\"name\":\"link\",\"count\":4},{\"name\":\"selected\",\"count\":4},{\"name\":\"trigger\",\"count\":4},{\"name\":\"axis\",\"count\":4},{\"name\":\"crossStyle\",\"count\":4},{\"name\":\"end\",\"count\":4},{\"name\":\"seriesIndex\",\"count\":4},{\"name\":\"inRange\",\"count\":4},{\"name\":\"outOfRange\",\"count\":4},{\"name\":\"nameMap\",\"count\":4},{\"name\":\"points\",\"count\":4},{\"name\":\"smoothConstraint\",\"count\":4},{\"name\":\"x1\",\"count\":4},{\"name\":\"y1\",\"count\":4},{\"name\":\"x2\",\"count\":4},{\"name\":\"y2\",\"count\":4},{\"name\":\"percent\",\"count\":4},{\"name\":\"endLabel\",\"count\":4},{\"name\":\"large\",\"count\":4},{\"name\":\"largeThreshold\",\"count\":4},{\"name\":\"hoverAnimation\",\"count\":4},{\"name\":\"edgeLabel\",\"count\":4},{\"name\":\"textVerticalAlign\",\"count\":3},{\"name\":\"itemWidth\",\"count\":3},{\"name\":\"itemHeight\",\"count\":3},{\"name\":\"filterMode\",\"count\":3},{\"name\":\"handleStyle\",\"count\":3},{\"name\":\"brushStyle\",\"count\":3},{\"name\":\"rect\",\"count\":3},{\"name\":\"polygon\",\"count\":3},{\"name\":\"map\",\"count\":3},{\"name\":\"children\",\"count\":3},{\"name\":\"image\",\"count\":3},{\"name\":\"font\",\"count\":3},{\"name\":\"source\",\"count\":3},{\"name\":\"config\",\"count\":3},{\"name\":\"print\",\"count\":3},{\"name\":\"sort\",\"count\":3},{\"name\":\"withName\",\"count\":3},{\"name\":\"withoutName\",\"count\":3},{\"name\":\"roundCap\",\"count\":3},{\"name\":\"barWidth\",\"count\":3},{\"name\":\"barMaxWidth\",\"count\":3},{\"name\":\"barMinWidth\",\"count\":3},{\"name\":\"progressiveChunkMode\",\"count\":3},{\"name\":\"visualDimension\",\"count\":3},{\"name\":\"visualMin\",\"count\":3},{\"name\":\"visualMax\",\"count\":3},{\"name\":\"colorMappingBy\",\"count\":3},{\"name\":\"visibleMin\",\"count\":3},{\"name\":\"childrenVisibleMin\",\"count\":3},{\"name\":\"gapWidth\",\"count\":3},{\"name\":\"borderColorSaturation\",\"count\":3},{\"name\":\"levels\",\"count\":3},{\"name\":\"selectorLabel\",\"count\":2},{\"name\":\"gridIndex\",\"count\":2},{\"name\":\"realtimeSort\",\"count\":2},{\"name\":\"sortSeriesIndex\",\"count\":2},{\"name\":\"onZero\",\"count\":2},{\"name\":\"onZeroAxisIndex\",\"count\":2},{\"name\":\"radar\",\"count\":2},{\"name\":\"dataZoom\",\"count\":2},{\"name\":\"radiusAxisIndex\",\"count\":2},{\"name\":\"angleAxisIndex\",\"count\":2},{\"name\":\"start\",\"count\":2},{\"name\":\"startValue\",\"count\":2},{\"name\":\"endValue\",\"count\":2},{\"name\":\"minSpan\",\"count\":2},{\"name\":\"maxSpan\",\"count\":2},{\"name\":\"minValueSpan\",\"count\":2},{\"name\":\"maxValueSpan\",\"count\":2},{\"name\":\"zoomLock\",\"count\":2},{\"name\":\"rangeMode\",\"count\":2},{\"name\":\"handleIcon\",\"count\":2},{\"name\":\"handleSize\",\"count\":2},{\"name\":\"moveHandleStyle\",\"count\":2},{\"name\":\"range\",\"count\":2},{\"name\":\"textGap\",\"count\":2},{\"name\":\"dimension\",\"count\":2},{\"name\":\"hoverLink\",\"count\":2},{\"name\":\"controller\",\"count\":2},{\"name\":\"categories\",\"count\":2},{\"name\":\"triggerOn\",\"count\":2},{\"name\":\"toolbox\",\"count\":2},{\"name\":\"itemSize\",\"count\":2},{\"name\":\"back\",\"count\":2},{\"name\":\"option\",\"count\":2},{\"name\":\"brush\",\"count\":2},{\"name\":\"lineX\",\"count\":2},{\"name\":\"lineY\",\"count\":2},{\"name\":\"keep\",\"count\":2},{\"name\":\"clear\",\"count\":2},{\"name\":\"brushType\",\"count\":2},{\"name\":\"aspectScale\",\"count\":2},{\"name\":\"boundingCoords\",\"count\":2},{\"name\":\"scaleLimit\",\"count\":2},{\"name\":\"nameProperty\",\"count\":2},{\"name\":\"layoutCenter\",\"count\":2},{\"name\":\"layoutSize\",\"count\":2},{\"name\":\"parallel\",\"count\":2},{\"name\":\"parallelIndex\",\"count\":2},{\"name\":\"loop\",\"count\":2},{\"name\":\"checkpointStyle\",\"count\":2},{\"name\":\"controlStyle\",\"count\":2},{\"name\":\"progress\",\"count\":2},{\"name\":\"diffChildrenByName\",\"count\":2},{\"name\":\"polyline\",\"count\":2},{\"name\":\"cpx1\",\"count\":2},{\"name\":\"cpy1\",\"count\":2},{\"name\":\"cpx2\",\"count\":2},{\"name\":\"cpy2\",\"count\":2},{\"name\":\"enabled\",\"count\":2},{\"name\":\"series\",\"count\":2},{\"name\":\"maxCount\",\"count\":2},{\"name\":\"prefix\",\"count\":2},{\"name\":\"separator\",\"count\":2},{\"name\":\"middle\",\"count\":2},{\"name\":\"sampling\",\"count\":2},{\"name\":\"barMinHeight\",\"count\":2},{\"name\":\"barMinAngle\",\"count\":2},{\"name\":\"barGap\",\"count\":2},{\"name\":\"barCategoryGap\",\"count\":2},{\"name\":\"period\",\"count\":2},{\"name\":\"nodeClick\",\"count\":2},{\"name\":\"nodes\",\"count\":2},{\"name\":\"links\",\"count\":2},{\"name\":\"edges\",\"count\":2},{\"name\":\"depth\",\"count\":2},{\"name\":\"detail\",\"count\":2},{\"name\":\"keepAspect\",\"count\":2},{\"name\":\"symbolPosition\",\"count\":2},{\"name\":\"symbolRepeat\",\"count\":2},{\"name\":\"symbolRepeatDirection\",\"count\":2},{\"name\":\"symbolMargin\",\"count\":2},{\"name\":\"symbolClip\",\"count\":2},{\"name\":\"symbolBoundingData\",\"count\":2},{\"name\":\"symbolPatternSize\",\"count\":2},{\"name\":\"subtext\",\"count\":1},{\"name\":\"sublink\",\"count\":1},{\"name\":\"subtarget\",\"count\":1},{\"name\":\"subtextStyle\",\"count\":1},{\"name\":\"legend\",\"count\":1},{\"name\":\"inactiveColor\",\"count\":1},{\"name\":\"scrollDataIndex\",\"count\":1},{\"name\":\"pageButtonItemGap\",\"count\":1},{\"name\":\"pageButtonGap\",\"count\":1},{\"name\":\"pageButtonPosition\",\"count\":1},{\"name\":\"pageFormatter\",\"count\":1},{\"name\":\"pageIcons\",\"count\":1},{\"name\":\"horizontal\",\"count\":1},{\"name\":\"vertical\",\"count\":1},{\"name\":\"pageIconColor\",\"count\":1},{\"name\":\"pageIconInactiveColor\",\"count\":1},{\"name\":\"pageIconSize\",\"count\":1},{\"name\":\"pageTextStyle\",\"count\":1},{\"name\":\"selector\",\"count\":1},{\"name\":\"selectorPosition\",\"count\":1},{\"name\":\"selectorItemGap\",\"count\":1},{\"name\":\"selectorButtonGap\",\"count\":1},{\"name\":\"grid\",\"count\":1},{\"name\":\"containLabel\",\"count\":1},{\"name\":\"polar\",\"count\":1},{\"name\":\"radiusAxis\",\"count\":1},{\"name\":\"angleAxis\",\"count\":1},{\"name\":\"indicator\",\"count\":1},{\"name\":\"disabled\",\"count\":1},{\"name\":\"zoomOnMouseWheel\",\"count\":1},{\"name\":\"moveOnMouseMove\",\"count\":1},{\"name\":\"moveOnMouseWheel\",\"count\":1},{\"name\":\"preventDefaultMouseMove\",\"count\":1},{\"name\":\"slider\",\"count\":1},{\"name\":\"dataBackground\",\"count\":1},{\"name\":\"selectedDataBackground\",\"count\":1},{\"name\":\"fillerColor\",\"count\":1},{\"name\":\"moveHandleIcon\",\"count\":1},{\"name\":\"moveHandleSize\",\"count\":1},{\"name\":\"labelPrecision\",\"count\":1},{\"name\":\"labelFormatter\",\"count\":1},{\"name\":\"showDetail\",\"count\":1},{\"name\":\"showDataShadow\",\"count\":1},{\"name\":\"brushSelect\",\"count\":1},{\"name\":\"visualMap\",\"count\":1},{\"name\":\"continuous\",\"count\":1},{\"name\":\"calculable\",\"count\":1},{\"name\":\"indicatorIcon\",\"count\":1},{\"name\":\"indicatorSize\",\"count\":1},{\"name\":\"indicatorStyle\",\"count\":1},{\"name\":\"piecewise\",\"count\":1},{\"name\":\"pieces\",\"count\":1},{\"name\":\"minOpen\",\"count\":1},{\"name\":\"maxOpen\",\"count\":1},{\"name\":\"showLabel\",\"count\":1},{\"name\":\"itemSymbol\",\"count\":1},{\"name\":\"showContent\",\"count\":1},{\"name\":\"alwaysShowContent\",\"count\":1},{\"name\":\"showDelay\",\"count\":1},{\"name\":\"hideDelay\",\"count\":1},{\"name\":\"enterable\",\"count\":1},{\"name\":\"renderMode\",\"count\":1},{\"name\":\"confine\",\"count\":1},{\"name\":\"appendToBody\",\"count\":1},{\"name\":\"className\",\"count\":1},{\"name\":\"transitionDuration\",\"count\":1},{\"name\":\"order\",\"count\":1},{\"name\":\"showTitle\",\"count\":1},{\"name\":\"feature\",\"count\":1},{\"name\":\"saveAsImage\",\"count\":1},{\"name\":\"connectedBackgroundColor\",\"count\":1},{\"name\":\"excludeComponents\",\"count\":1},{\"name\":\"pixelRatio\",\"count\":1},{\"name\":\"restore\",\"count\":1},{\"name\":\"dataView\",\"count\":1},{\"name\":\"readOnly\",\"count\":1},{\"name\":\"optionToContent\",\"count\":1},{\"name\":\"contentToOption\",\"count\":1},{\"name\":\"lang\",\"count\":1},{\"name\":\"textareaColor\",\"count\":1},{\"name\":\"textareaBorderColor\",\"count\":1},{\"name\":\"textColor\",\"count\":1},{\"name\":\"buttonColor\",\"count\":1},{\"name\":\"buttonTextColor\",\"count\":1},{\"name\":\"magicType\",\"count\":1},{\"name\":\"tiled\",\"count\":1},{\"name\":\"brushLink\",\"count\":1},{\"name\":\"brushMode\",\"count\":1},{\"name\":\"transformable\",\"count\":1},{\"name\":\"throttleType\",\"count\":1},{\"name\":\"throttleDelay\",\"count\":1},{\"name\":\"removeOnClick\",\"count\":1},{\"name\":\"inBrush\",\"count\":1},{\"name\":\"outOfBrush\",\"count\":1},{\"name\":\"geo\",\"count\":1},{\"name\":\"regions\",\"count\":1},{\"name\":\"axisExpandable\",\"count\":1},{\"name\":\"axisExpandCenter\",\"count\":1},{\"name\":\"axisExpandCount\",\"count\":1},{\"name\":\"axisExpandWidth\",\"count\":1},{\"name\":\"axisExpandTriggerOn\",\"count\":1},{\"name\":\"parallelAxisDefault\",\"count\":1},{\"name\":\"parallelAxis\",\"count\":1},{\"name\":\"dim\",\"count\":1},{\"name\":\"areaSelectStyle\",\"count\":1},{\"name\":\"singleAxis\",\"count\":1},{\"name\":\"timeline\",\"count\":1},{\"name\":\"axisType\",\"count\":1},{\"name\":\"currentIndex\",\"count\":1},{\"name\":\"autoPlay\",\"count\":1},{\"name\":\"rewind\",\"count\":1},{\"name\":\"playInterval\",\"count\":1},{\"name\":\"replaceMerge\",\"count\":1},{\"name\":\"controlPosition\",\"count\":1},{\"name\":\"showPlayBtn\",\"count\":1},{\"name\":\"showPrevBtn\",\"count\":1},{\"name\":\"showNextBtn\",\"count\":1},{\"name\":\"playIcon\",\"count\":1},{\"name\":\"stopIcon\",\"count\":1},{\"name\":\"prevIcon\",\"count\":1},{\"name\":\"nextIcon\",\"count\":1},{\"name\":\"graphic\",\"count\":1},{\"name\":\"elements\",\"count\":1},{\"name\":\"group\",\"count\":1},{\"name\":\"circle\",\"count\":1},{\"name\":\"ring\",\"count\":1},{\"name\":\"sector\",\"count\":1},{\"name\":\"arc\",\"count\":1},{\"name\":\"bezierCurve\",\"count\":1},{\"name\":\"calendar\",\"count\":1},{\"name\":\"cellSize\",\"count\":1},{\"name\":\"dayLabel\",\"count\":1},{\"name\":\"firstDay\",\"count\":1},{\"name\":\"monthLabel\",\"count\":1},{\"name\":\"yearLabel\",\"count\":1},{\"name\":\"dataset\",\"count\":1},{\"name\":\"sourceHeader\",\"count\":1},{\"name\":\"transform\",\"count\":1},{\"name\":\"filter\",\"count\":1},{\"name\":\"xxx:xxx\",\"count\":1},{\"name\":\"fromDatasetIndex\",\"count\":1},{\"name\":\"fromDatasetId\",\"count\":1},{\"name\":\"fromTransformResult\",\"count\":1},{\"name\":\"aria\",\"count\":1},{\"name\":\"description\",\"count\":1},{\"name\":\"general\",\"count\":1},{\"name\":\"withTitle\",\"count\":1},{\"name\":\"withoutTitle\",\"count\":1},{\"name\":\"single\",\"count\":1},{\"name\":\"multiple\",\"count\":1},{\"name\":\"allData\",\"count\":1},{\"name\":\"partialData\",\"count\":1},{\"name\":\"decals\",\"count\":1},{\"name\":\"showSymbol\",\"count\":1},{\"name\":\"showAllSymbol\",\"count\":1},{\"name\":\"connectNulls\",\"count\":1},{\"name\":\"step\",\"count\":1},{\"name\":\"smoothMonotone\",\"count\":1},{\"name\":\"showBackground\",\"count\":1},{\"name\":\"backgroundStyle\",\"count\":1},{\"name\":\"pie\",\"count\":1},{\"name\":\"selectedOffset\",\"count\":1},{\"name\":\"minShowLabelAngle\",\"count\":1},{\"name\":\"roseType\",\"count\":1},{\"name\":\"avoidLabelOverlap\",\"count\":1},{\"name\":\"stillShowZeroSum\",\"count\":1},{\"name\":\"alignTo\",\"count\":1},{\"name\":\"edgeDistance\",\"count\":1},{\"name\":\"bleedMargin\",\"count\":1},{\"name\":\"distanceToLabelLine\",\"count\":1},{\"name\":\"maxSurfaceAngle\",\"count\":1},{\"name\":\"scaleSize\",\"count\":1},{\"name\":\"animationType\",\"count\":1},{\"name\":\"animationTypeUpdate\",\"count\":1},{\"name\":\"scatter\",\"count\":1},{\"name\":\"effectScatter\",\"count\":1},{\"name\":\"effectType\",\"count\":1},{\"name\":\"showEffectOn\",\"count\":1},{\"name\":\"rippleEffect\",\"count\":1},{\"name\":\"radarIndex\",\"count\":1},{\"name\":\"tree\",\"count\":1},{\"name\":\"edgeShape\",\"count\":1},{\"name\":\"edgeForkPosition\",\"count\":1},{\"name\":\"expandAndCollapse\",\"count\":1},{\"name\":\"initialTreeDepth\",\"count\":1},{\"name\":\"leaves\",\"count\":1},{\"name\":\"treemap\",\"count\":1},{\"name\":\"squareRatio\",\"count\":1},{\"name\":\"leafDepth\",\"count\":1},{\"name\":\"drillDownIcon\",\"count\":1},{\"name\":\"zoomToNodeRatio\",\"count\":1},{\"name\":\"breadcrumb\",\"count\":1},{\"name\":\"emptyItemWidth\",\"count\":1},{\"name\":\"sunburst\",\"count\":1},{\"name\":\"renderLabelForZeroData\",\"count\":1},{\"name\":\"boxplot\",\"count\":1},{\"name\":\"boxWidth\",\"count\":1},{\"name\":\"candlestick\",\"count\":1},{\"name\":\"heatmap\",\"count\":1},{\"name\":\"pointSize\",\"count\":1},{\"name\":\"blurSize\",\"count\":1},{\"name\":\"minOpacity\",\"count\":1},{\"name\":\"maxOpacity\",\"count\":1},{\"name\":\"mapValueCalculation\",\"count\":1},{\"name\":\"showLegendSymbol\",\"count\":1},{\"name\":\"inactiveOpacity\",\"count\":1},{\"name\":\"activeOpacity\",\"count\":1},{\"name\":\"lines\",\"count\":1},{\"name\":\"effect\",\"count\":1},{\"name\":\"delay\",\"count\":1},{\"name\":\"constantSpeed\",\"count\":1},{\"name\":\"trailLength\",\"count\":1},{\"name\":\"coords\",\"count\":1},{\"name\":\"graph\",\"count\":1},{\"name\":\"circular\",\"count\":1},{\"name\":\"rotateLabel\",\"count\":1},{\"name\":\"force\",\"count\":1},{\"name\":\"initLayout\",\"count\":1},{\"name\":\"repulsion\",\"count\":1},{\"name\":\"gravity\",\"count\":1},{\"name\":\"edgeLength\",\"count\":1},{\"name\":\"layoutAnimation\",\"count\":1},{\"name\":\"friction\",\"count\":1},{\"name\":\"nodeScaleRatio\",\"count\":1},{\"name\":\"edgeSymbol\",\"count\":1},{\"name\":\"edgeSymbolSize\",\"count\":1},{\"name\":\"autoCurveness\",\"count\":1},{\"name\":\"fixed\",\"count\":1},{\"name\":\"category\",\"count\":1},{\"name\":\"ignoreForceLayout\",\"count\":1},{\"name\":\"sankey\",\"count\":1},{\"name\":\"nodeWidth\",\"count\":1},{\"name\":\"nodeGap\",\"count\":1},{\"name\":\"nodeAlign\",\"count\":1},{\"name\":\"layoutIterations\",\"count\":1},{\"name\":\"funnel\",\"count\":1},{\"name\":\"minSize\",\"count\":1},{\"name\":\"maxSize\",\"count\":1},{\"name\":\"gap\",\"count\":1},{\"name\":\"funnelAlign\",\"count\":1},{\"name\":\"gauge\",\"count\":1},{\"name\":\"overlap\",\"count\":1},{\"name\":\"pointer\",\"count\":1},{\"name\":\"anchor\",\"count\":1},{\"name\":\"pictorialBar\",\"count\":1},{\"name\":\"themeRiver\",\"count\":1},{\"name\":\"singleAxisIndex\",\"count\":1},{\"name\":\"date\",\"count\":1},{\"name\":\"custom\",\"count\":1},{\"name\":\"renderItem\",\"count\":1},{\"name\":\"arguments\",\"count\":1},{\"name\":\"params\",\"count\":1},{\"name\":\"api\",\"count\":1},{\"name\":\"styleEmphasis\",\"count\":1},{\"name\":\"visual\",\"count\":1},{\"name\":\"barLayout\",\"count\":1},{\"name\":\"currentSeriesIndices\",\"count\":1},{\"name\":\"getWidth\",\"count\":1},{\"name\":\"getHeight\",\"count\":1},{\"name\":\"getZr\",\"count\":1},{\"name\":\"getDevicePixelRatio\",\"count\":1},{\"name\":\"return\",\"count\":1},{\"name\":\"return_group\",\"count\":1},{\"name\":\"return_path\",\"count\":1},{\"name\":\"pathData\",\"count\":1},{\"name\":\"d\",\"count\":1},{\"name\":\"return_image\",\"count\":1},{\"name\":\"return_text\",\"count\":1},{\"name\":\"return_rect\",\"count\":1},{\"name\":\"return_circle\",\"count\":1},{\"name\":\"return_ring\",\"count\":1},{\"name\":\"return_sector\",\"count\":1},{\"name\":\"return_arc\",\"count\":1},{\"name\":\"return_polygon\",\"count\":1},{\"name\":\"return_polyline\",\"count\":1},{\"name\":\"return_line\",\"count\":1},{\"name\":\"return_bezierCurve\",\"count\":1},{\"name\":\"darkMode\",\"count\":1},{\"name\":\"stateAnimation\",\"count\":1},{\"name\":\"duration\",\"count\":1},{\"name\":\"easing\",\"count\":1},{\"name\":\"blendMode\",\"count\":1},{\"name\":\"hoverLayerThreshold\",\"count\":1},{\"name\":\"useUTC\",\"count\":1},{\"name\":\"options\",\"count\":1},{\"name\":\"media\",\"count\":1},{\"name\":\"query\",\"count\":1},{\"name\":\"minWidth\",\"count\":1},{\"name\":\"maxHeight\",\"count\":1},{\"name\":\"minAspectRatio\",\"count\":1}];","var DebugRect = (function () {\n    function DebugRect(style) {\n        var dom = this.dom = document.createElement('div');\n        dom.className = 'ec-debug-dirty-rect';\n        style = Object.assign({}, style);\n        Object.assign(style, {\n            backgroundColor: 'rgba(0, 0, 255, 0.2)',\n            border: '1px solid #00f'\n        });\n        dom.style.cssText = \"\\nposition: absolute;\\nopacity: 0;\\ntransition: opacity 0.5s linear;\\npointer-events: none;\\n\";\n        for (var key in style) {\n            if (style.hasOwnProperty(key)) {\n                dom.style[key] = style[key];\n            }\n        }\n    }\n    DebugRect.prototype.update = function (rect) {\n        var domStyle = this.dom.style;\n        domStyle.width = rect.width + 'px';\n        domStyle.height = rect.height + 'px';\n        domStyle.left = rect.x + 'px';\n        domStyle.top = rect.y + 'px';\n    };\n    DebugRect.prototype.hide = function () {\n        this.dom.style.opacity = '0';\n    };\n    DebugRect.prototype.show = function () {\n        var _this = this;\n        clearTimeout(this._hideTimeout);\n        this.dom.style.opacity = '1';\n        this._hideTimeout = setTimeout(function () {\n            _this.hide();\n        }, 500);\n    };\n    return DebugRect;\n}());\nexport default function (zr, opts) {\n    opts = opts || {};\n    var painter = zr.painter;\n    if (!painter.getLayers) {\n        throw new Error('Debug dirty rect can only been used on canvas renderer.');\n    }\n    if (painter.isSingleCanvas()) {\n        throw new Error('Debug dirty rect can only been used on zrender inited with container.');\n    }\n    var debugViewRoot = document.createElement('div');\n    debugViewRoot.style.cssText = \"\\nposition:absolute;\\nleft:0;\\ntop:0;\\nright:0;\\nbottom:0;\\npointer-events:none;\\n\";\n    debugViewRoot.className = 'ec-debug-dirty-rect-container';\n    var debugRects = [];\n    var dom = zr.dom;\n    dom.appendChild(debugViewRoot);\n    var computedStyle = getComputedStyle(dom);\n    if (computedStyle.position === 'static') {\n        dom.style.position = 'relative';\n    }\n    zr.on('rendered', function () {\n        if (painter.getLayers) {\n            var idx_1 = 0;\n            painter.eachBuiltinLayer(function (layer) {\n                if (!layer.debugGetPaintRects) {\n                    return;\n                }\n                var paintRects = layer.debugGetPaintRects();\n                for (var i = 0; i < paintRects.length; i++) {\n                    if (!debugRects[idx_1]) {\n                        debugRects[idx_1] = new DebugRect(opts.style);\n                        debugViewRoot.appendChild(debugRects[idx_1].dom);\n                    }\n                    debugRects[idx_1].show();\n                    debugRects[idx_1].update(paintRects[i]);\n                    idx_1++;\n                }\n            });\n            for (var i = idx_1; i < debugRects.length; i++) {\n                debugRects[i].hide();\n            }\n        }\n    });\n}\n","import {store} from '../common/store';\nimport {URL_PARAMS, SCRIPT_URLS} from '../common/config';\nimport {downloadBlob} from '../common/helper';\n\nconst hasRootPath = store.sourceCode.indexOf('ROOT_PATH') >= 0;\nconst rootPathCode = hasRootPath ? `var ROOT_PATH = '${store.cdnRoot}'` : '';\n\nexport function download() {\n    const code = `<!--\n    THIS EXAMPLE WAS DOWNLOADED FROM ${window.location.href}\n-->\n<!DOCTYPE html>\n<html style=\"height: 100%\">\n    <head>\n        <meta charset=\"utf-8\">\n    </head>\n    <body style=\"height: 100%; margin: 0\">\n        <div id=\"container\" style=\"height: 100%\"></div>\n\n        <script type=\"text/javascript\" src=\"${SCRIPT_URLS.echartsMinJS}\"></script>\n        <!-- Uncomment this line if you want to dataTool extension\n        <script type=\"text/javascript\" src=\"${SCRIPT_URLS.echartsDir}/dist/extension/dataTool.min.js\"></script>\n        -->\n        <!-- Uncomment this line if you want to use gl extension\n        <script type=\"text/javascript\" src=\"${SCRIPT_URLS.echartsGLMinJS}\"></script>\n        -->\n        <!-- Uncomment this line if you want to echarts-stat extension\n        <script type=\"text/javascript\" src=\"${SCRIPT_URLS.echartsStatMinJS}\"></script>\n        -->\n        <!-- Uncomment this line if you want to use map\n        <script type=\"text/javascript\" src=\"${SCRIPT_URLS.echartsDir}/map/js/china.js\"></script>\n        <script type=\"text/javascript\" src=\"${SCRIPT_URLS.echartsDir}/map/js/world.js\"></script>\n        -->\n        <!-- Uncomment these two lines if you want to use bmap extension\n        <script type=\"text/javascript\" src=\"https://api.map.baidu.com/api?v=2.0&ak=<Your Key Here>\"></script>\n        <script type=\"text/javascript\" src=\"${SCRIPT_URLS.echartsDir}/dist/extension/bmap.min.js\"></script>\n        -->\n\n        <script type=\"text/javascript\">\nvar dom = document.getElementById(\"container\");\nvar myChart = echarts.init(dom);\nvar app = {};\n\nvar option;\n\n${rootPathCode}\n\n${store.sourceCode}\n\nif (option && typeof option === 'object') {\n    myChart.setOption(option);\n}\n\n        </script>\n    </body>\n</html>\n    `;\n    const file = new Blob([code], {\n        type: 'text/html;charset=UTF-8',\n        encoding: 'UTF-8'\n    });\n    // download the blob\n    downloadBlob(file, URL_PARAMS.c + '.html');\n}","import showDebugDirtyRect from '../dep/showDebugDirtyRect';\n\nexport function createSandbox(optionUpdated) {\n    let appEnv = {};\n    let gui;\n\n    let _intervalIdList = [];\n    let _timeoutIdList = [];\n\n    const _oldSetTimeout = window.setTimeout;\n    const _oldSetInterval = window.setInterval;\n\n    function setTimeout(func, delay) {\n        var id = _oldSetTimeout(func, delay);\n        _timeoutIdList.push(id);\n        return id;\n    };\n    function setInterval(func, gap) {\n        var id = _oldSetInterval(func, gap);\n        _intervalIdList.push(id);\n        return id;\n    };\n    function _clearTimeTickers() {\n        for (var i = 0; i < _intervalIdList.length; i++) {\n            clearInterval(_intervalIdList[i]);\n        }\n        for (var i = 0; i < _timeoutIdList.length; i++) {\n            clearTimeout(_timeoutIdList[i]);\n        }\n        _intervalIdList = [];\n        _timeoutIdList = [];\n    }\n    const _events = [];\n    function _wrapOnMethods(chart) {\n        const oldOn = chart.on;\n        const oldSetOption = chart.setOption;\n        chart.on = function (eventName) {\n            const res = oldOn.apply(chart, arguments);\n            _events.push(eventName);\n            return res;\n        };\n        chart.setOption = function () {\n            const res = oldSetOption.apply(this, arguments);\n            optionUpdated && optionUpdated(chart);\n            return res;\n        };\n    }\n\n    function _clearChartEvents(chart) {\n        _events.forEach(function (eventName) {\n            if (chart) {\n                chart.off(eventName);\n            }\n        });\n\n        _events.length = 0;\n    }\n\n    let chartInstance;\n\n    return {\n        resize() {\n            if (chartInstance) {\n                chartInstance.resize();\n            }\n        },\n\n        dispose() {\n            if (chartInstance) {\n                chartInstance.dispose();\n                chartInstance = null;\n            }\n        },\n\n        getDataURL() {\n            return chartInstance.getDataURL({\n                pixelRatio: 2,\n                excludeComponents: ['toolbox']\n            });\n        },\n\n        getOption() {\n            return chartInstance.getOption();\n        },\n\n        run(el, store) {\n\n            if (!chartInstance) {\n                chartInstance = echarts.init(el, store.darkMode ? 'dark' : '', {\n                    renderer: store.renderer,\n                    useDirtyRect: store.useDirtyRect\n                });\n                if (store.useDirtyRect && store.renderer === 'canvas') {\n                    try {\n                        showDebugDirtyRect(chartInstance.getZr(), {\n                            autoHideDelay: 500\n                        });\n                    }\n                    catch (e) {\n                        console.error(e);\n                    }\n                }\n                _wrapOnMethods(chartInstance);\n            }\n\n            // if (this.hasEditorError()) {\n            //     log(this.$t('editor.errorInEditor'), 'error');\n            //     return;\n            // }\n\n            // TODO Scope the variables in component.\n            _clearTimeTickers();\n            _clearChartEvents(chartInstance);\n            // Reset\n            appEnv.config = null;\n\n            // run the code\n\n            const compiledCode = store.runCode;\n\n            const func = new Function(\n                'myChart', 'app', 'setTimeout', 'setInterval', 'ROOT_PATH',\n                'var option;\\n' + compiledCode + '\\nreturn option;'\n            );\n            const option = func(chartInstance, appEnv, setTimeout, setInterval, store.cdnRoot);\n            let updateTime = 0;\n\n            if (option && typeof option === 'object') {\n                const startTime = +new Date();\n                chartInstance.setOption(option, true);\n                const endTime = +new Date();\n                updateTime = endTime - startTime;\n            }\n\n            if (gui) {\n                $(gui.domElement).remove();\n                gui.destroy();\n                gui = null;\n            }\n\n            if (appEnv.config) {\n                gui = new dat.GUI({\n                    autoPlace: false\n                });\n                $(gui.domElement).css({\n                    position: 'absolute',\n                    right: 5,\n                    top: 0,\n                    zIndex: 1000\n                });\n                $('.right-container').append(gui.domElement);\n\n                var configParameters = appEnv.configParameters || {};\n                for (var name in appEnv.config) {\n                    var value = appEnv.config[name];\n                    if (name !== 'onChange' && name !== 'onFinishChange') {\n                        var isColor = false;\n                        // var value = obj;\n                        var controller = null;\n                        if (configParameters[name]) {\n                            if (configParameters[name].options) {\n                                controller = gui.add(appEnv.config, name, configParameters[name].options);\n                            }\n                            else if (configParameters[name].min != null) {\n                                controller = gui.add(appEnv.config, name, configParameters[name].min, configParameters[name].max);\n                            }\n                        }\n                        if (typeof obj === 'string') {\n                            try {\n                                var colorArr = echarts.color.parse(value);\n                                isColor = !!colorArr;\n                                if (isColor) {\n                                    value = echarts.color.stringify(colorArr, 'rgba');\n                                }\n                            }\n                            catch (e) {}\n                        }\n                        if (!controller) {\n                            controller = gui[isColor ? 'addColor' : 'add'](appEnv.config, name);\n                        }\n                        appEnv.config.onChange && controller.onChange(appEnv.config.onChange);\n                        appEnv.config.onFinishChange && controller.onFinishChange(appEnv.config.onFinishChange);\n                    }\n                }\n            }\n\n            return updateTime;\n        }\n    };\n};","import Vue from 'vue';\nimport VueI18n from 'vue-i18n';\nimport messages from './common/i18n';\nimport EditorPage from './editor/Editor.vue';\nimport ExplorePage from './explore/Explore.vue';\nimport ViewPage from './editor/View.vue';\nimport {store} from './common/store';\nimport VueScrollactive from 'vue-scrollactive';\n\nVue.use(VueScrollactive);\n\n/**\n *\n * @param {*} el\n * @param {Object} option\n * @param {string} [option.cdnRoot]\n * @param {string} [option.page] editor | explore\n * @param {string} [option.locale] zh | en\n * @param {string} [option.version]\n */\nexport function init(el, option) {\n    const i18n = new VueI18n({\n        locale: option.locale,\n        fallbackLocale: 'en',\n        messages\n    });\n    store.cdnRoot = option.cdnRoot;\n    store.version = option.version;\n    store.locale = option.locale || 'en';\n\n\n    if (typeof el === 'string') {\n        el = document.querySelector(el);\n    }\n    if (!el) {\n        throw new Error('Can\\'t find el.');\n    }\n\n    const container = document.createElement('div');\n    el.appendChild(container);\n\n    new Vue({\n        i18n,\n        el: container,\n        render: h => {\n            return h(({\n                editor: EditorPage,\n                explore: ExplorePage,\n                view: ViewPage\n            })[option.page] || ExplorePage);\n        }\n    });\n}","module.exports = __webpack_public_path__ + \"../asset/placeholder.jpg\";","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"138px\\\" viewBox=\\\"0 0 175 138\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>bar</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"bar\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M121.488231,0 L102.050114,0 C99.36627,-1.1969592e-16 97.1905846,2.17568537 97.1905846,4.85952929 L97.1905846,133.140471 C97.1905846,135.824315 99.36627,138 102.050114,138 L121.488231,138 C124.172075,138 126.34776,135.824315 126.34776,133.140471 L126.34776,4.85952929 C126.34776,2.17568537 124.172075,1.1969592e-16 121.488231,0 Z M170.083523,30.1571753 L150.645406,30.1571753 C147.961562,30.1571753 145.785877,32.3328607 145.785877,35.0167046 L145.785877,132.207289 C145.785877,134.891133 147.961562,137.066819 150.645406,137.066819 L170.083523,137.066819 C172.767367,137.066819 174.943052,134.891133 174.943052,132.207289 L174.943052,35.0167046 C174.943052,32.3328607 172.767367,30.1571753 170.083523,30.1571753 Z M53.4548215,39.8762339 C50.7709777,39.876234 48.5952924,42.0519193 48.5952924,44.7357631 L48.5952924,132.207289 C48.5952924,134.891133 50.7709777,137.066818 53.4548215,137.066819 L72.8929386,137.066819 C75.5767824,137.066818 77.7524677,134.891133 77.7524677,132.207289 L77.7524677,44.7357631 C77.7524676,42.0519193 75.5767824,39.876234 72.8929386,39.8762339 L53.4548215,39.8762339 Z M29.1571753,67.17388 L29.1571753,132.207289 C29.1571753,134.891133 26.9814901,137.066818 24.2976462,137.066819 L4.85952929,137.066819 C2.17568537,137.066819 3.28676086e-16,134.891133 0,132.207289 L0,67.17388 C7.33863613e-08,64.4900361 2.17568542,62.3143508 4.85952929,62.3143508 L24.2976462,62.3143508 C26.98149,62.3143509 29.1571753,64.4900362 29.1571753,67.17388 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"98px\\\" viewBox=\\\"0 0 175 98\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>boxplot</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"boxplot\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M165.206074,4.85900217 L165.206074,43.7310195 L145.770065,43.7310195 L145.770065,14.5770065 C145.770065,11.8934537 143.594616,9.71800434 140.911063,9.71800434 L72.8850325,9.71800434 C70.2014797,9.71800434 68.0260304,11.8934537 68.0260304,14.5770065 L68.0260304,82.6030369 C68.0260304,85.2865897 70.2014797,87.462039 72.8850325,87.462039 L140.911063,87.462039 C143.594616,87.462039 145.770065,85.2865897 145.770065,82.6030369 L145.770065,53.4490239 L165.206074,53.4490239 L165.206074,92.3210412 C165.206074,95.004594 167.381523,97.1800434 170.065076,97.1800434 C172.748629,97.1800434 174.924078,95.004594 174.924078,92.3210412 L174.924078,4.85900217 C174.924078,2.17544937 172.748629,1.43751749e-14 170.065076,1.42108547e-14 C167.381523,-1.05827854e-15 165.206074,2.17544937 165.206074,4.85900217 Z M58.308026,14.5770065 L58.308026,82.6030369 C58.308026,83.8917244 57.7960969,85.1276306 56.8848572,86.0388703 C55.9736176,86.9501099 54.7377114,87.462039 53.4490239,87.462039 L34.0130152,87.462039 C31.3294624,87.462039 29.154013,85.2865897 29.154013,82.6030369 L29.154013,53.4490239 L9.71800434,53.4490239 L9.71800434,92.3210412 C9.71800434,95.004594 7.54255497,97.1800434 4.85900217,97.1800434 C2.17544937,97.1800434 3.28640434e-16,95.004594 0,92.3210412 L0,4.85900217 C-3.28640434e-16,2.17544937 2.17544937,4.31255248e-14 4.85900217,4.26325641e-14 C7.54255497,4.21396035e-14 9.71800434,2.17544937 9.71800434,4.85900217 L9.71800434,43.7310195 L29.154013,43.7310195 L29.154013,14.5770065 C29.154013,11.8934537 31.3294624,9.71800434 34.0130152,9.71800434 L53.4490239,9.71800434 C56.1325767,9.71800434 58.308026,11.8934537 58.308026,14.5770065 L58.308026,14.5770065 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"164px\\\" height=\\\"138px\\\" viewBox=\\\"0 0 164 138\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>calendar </title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"calendar-\\\" transform=\\\"translate(-0.500000, -0.315789)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M147.236842,56.3782895 C147.236842,53.9965615 145.304597,52.0657895 142.921053,52.0657895 L125.657895,52.0657895 C123.27435,52.0657895 121.342105,53.9965615 121.342105,56.3782895 L121.342105,65.0032895 C121.342105,67.3850175 123.27435,69.3157895 125.657895,69.3157895 L142.921053,69.3157895 C145.304597,69.3157895 147.236842,67.3850175 147.236842,65.0032895 L147.236842,56.3782895 Z M147.236842,82.2532895 C147.236842,79.8715615 145.304597,77.9407895 142.921053,77.9407895 L125.657895,77.9407895 C123.27435,77.9407895 121.342105,79.8715615 121.342105,82.2532895 L121.342105,90.8782895 C121.342105,93.2600175 123.27435,95.1907895 125.657895,95.1907895 L142.921053,95.1907895 C145.304597,95.1907895 147.236842,93.2600175 147.236842,90.8782895 L147.236842,82.2532895 Z M112.710526,56.3782895 C112.710526,53.9965615 110.778282,52.0657895 108.394737,52.0657895 L91.1315789,52.0657895 C88.7480342,52.0657895 86.8157895,53.9965615 86.8157895,56.3782895 L86.8157895,65.0032895 C86.8157895,67.3850175 88.7480342,69.3157895 91.1315789,69.3157895 L108.394737,69.3157895 C110.778282,69.3157895 112.710526,67.3850175 112.710526,65.0032895 L112.710526,56.3782895 Z M112.710526,82.2532895 C112.710526,79.8715615 110.778282,77.9407895 108.394737,77.9407895 L91.1315789,77.9407895 C88.7480342,77.9407895 86.8157895,79.8715615 86.8157895,82.2532895 L86.8157895,90.8782895 C86.8157895,93.2600175 88.7480342,95.1907895 91.1315789,95.1907895 L108.394737,95.1907895 C110.778282,95.1907895 112.710526,93.2600175 112.710526,90.8782895 L112.710526,82.2532895 Z M112.710526,108.128289 C112.710526,105.746561 110.778282,103.815789 108.394737,103.815789 L91.1315789,103.815789 C88.7480342,103.815789 86.8157895,105.746561 86.8157895,108.128289 L86.8157895,116.753289 C86.8157895,119.135017 88.7480342,121.065789 91.1315789,121.065789 L108.394737,121.065789 C110.778282,121.065789 112.710526,119.135017 112.710526,116.753289 L112.710526,108.128289 Z M78.1842105,56.3782895 C78.1842105,53.9965615 76.2519658,52.0657895 73.8684211,52.0657895 L56.6052632,52.0657895 C54.2217184,52.0657895 52.2894737,53.9965615 52.2894737,56.3782895 L52.2894737,65.0032895 C52.2894737,67.3850175 54.2217184,69.3157895 56.6052632,69.3157895 L73.8684211,69.3157895 C76.2519658,69.3157895 78.1842105,67.3850175 78.1842105,65.0032895 L78.1842105,56.3782895 Z M78.1842105,82.2532895 C78.1842105,79.8715615 76.2519658,77.9407895 73.8684211,77.9407895 L56.6052632,77.9407895 C54.2217184,77.9407895 52.2894737,79.8715615 52.2894737,82.2532895 L52.2894737,90.8782895 C52.2894737,93.2600175 54.2217184,95.1907895 56.6052632,95.1907895 L73.8684211,95.1907895 C76.2519658,95.1907895 78.1842105,93.2600175 78.1842105,90.8782895 L78.1842105,82.2532895 Z M78.1842105,108.128289 C78.1842105,105.746561 76.2519658,103.815789 73.8684211,103.815789 L56.6052632,103.815789 C54.2217184,103.815789 52.2894737,105.746561 52.2894737,108.128289 L52.2894737,116.753289 C52.2894737,119.135017 54.2217184,121.065789 56.6052632,121.065789 L73.8684211,121.065789 C76.2519658,121.065789 78.1842105,119.135017 78.1842105,116.753289 L78.1842105,108.128289 Z M43.6578947,82.2532895 C43.6578947,79.8715615 41.72565,77.9407895 39.3421053,77.9407895 L22.0789474,77.9407895 C19.6954027,77.9407895 17.7631579,79.8715615 17.7631579,82.2532895 L17.7631579,90.8782895 C17.7631579,93.2600175 19.6954027,95.1907895 22.0789474,95.1907895 L39.3421053,95.1907895 C41.72565,95.1907895 43.6578947,93.2600175 43.6578947,90.8782895 L43.6578947,82.2532895 Z M43.6578947,108.128289 C43.6578947,105.746561 41.72565,103.815789 39.3421053,103.815789 L22.0789474,103.815789 C19.6954027,103.815789 17.7631579,105.746561 17.7631579,108.128289 L17.7631579,116.753289 C17.7631579,119.135017 19.6954027,121.065789 22.0789474,121.065789 L39.3421053,121.065789 C41.72565,121.065789 43.6578947,119.135017 43.6578947,116.753289 L43.6578947,108.128289 Z M164.5,39.1282895 L164.5,134.003289 C164.5,136.385017 162.567755,138.315789 160.184211,138.315789 L4.81578947,138.315789 C2.43224476,138.315789 0.5,136.385017 0.5,134.003289 L0.5,39.1282895 C0.5,36.7465615 2.43224476,34.8157895 4.81578947,34.8157895 L160.184211,34.8157895 C162.567755,34.8157895 164.5,36.7465615 164.5,39.1282895 Z M164.5,4.62828947 L164.5,21.8782895 C164.5,24.2600175 162.567755,26.1907895 160.184211,26.1907895 L4.81578947,26.1907895 C2.43224476,26.1907895 0.5,24.2600175 0.5,21.8782895 L0.5,4.62828947 C0.5,2.24656149 2.43224476,0.315789474 4.81578947,0.315789474 L160.184211,0.315789474 C162.567755,0.315789474 164.5,2.24656149 164.5,4.62828947 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"138px\\\" viewBox=\\\"0 0 175 138\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>Candlestick (1)</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"Candlestick-(1)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M121.508001,34.0222403 L116.647681,33.0222403 L116.647681,4.86032 C116.647681,2.17603934 114.471642,-7.11961547e-08 111.787361,-7.11961549e-08 C109.10308,-7.1196155e-08 106.927041,2.17603934 106.927041,4.86032 L106.927041,33.0222403 L102.066721,33.0222403 C100.777684,33.0222403 99.5414424,33.5343082 98.6299556,34.4457951 C97.7184688,35.3572819 97.2064009,36.5935234 97.2064009,37.8825604 L97.2064009,105.927041 C97.2064009,107.216078 97.7184688,108.452319 98.6299556,109.363806 C99.5414424,110.275293 100.777684,110.787361 102.066721,110.787361 L106.927041,110.787361 L106.927041,125.572455 C106.927041,128.256735 109.10308,130.432775 111.787361,130.432775 C114.471642,130.432775 116.647681,128.256735 116.647681,125.572455 L116.647681,110.787361 L121.508001,110.787361 C122.797038,110.787361 124.03328,110.275293 124.944766,109.363806 C125.856253,108.452319 126.368321,107.216078 126.368321,105.927041 L126.368321,37.8825604 C126.368321,36.5935233 125.856253,35.3572819 124.944766,34.445795 C124.03328,33.5343082 122.797038,33.0222402 121.508001,33.0222403 L121.508001,34.0222403 Z M170.111202,41.6032004 L165.250881,41.6032004 L165.250881,27.0222403 C165.250881,24.3379598 163.074842,22.1619207 160.390561,22.1619207 C157.706281,22.1619207 155.530242,24.3379598 155.530241,27.0222403 L155.530241,41.6032004 L150.669921,41.6032004 C149.380884,41.6032004 148.144643,42.1152684 147.233156,43.0267552 C146.321669,43.938242 145.809601,45.1744835 145.809601,46.4635205 L145.809601,75.6254408 C145.809601,78.3097214 147.985641,80.4857608 150.669921,80.4857608 L155.530241,80.4857608 L155.530241,104.729037 C155.530241,107.413318 157.706281,109.589357 160.390561,109.589357 C163.074842,109.589357 165.250881,107.413318 165.250881,104.729037 L165.250881,80.4857608 L170.111202,80.4857608 C172.795482,80.4857608 174.971522,78.3097214 174.971522,75.6254408 L174.971522,46.4635205 C174.971522,45.1744835 174.459454,43.938242 173.547967,43.0267552 C172.63648,42.1152684 171.400239,41.6032004 170.111202,41.6032004 L170.111202,41.6032004 Z M72.9048007,84.3460808 L68.0444807,84.3460808 L68.0444807,55.1841605 C68.0444805,52.4998799 65.8684412,50.3238407 63.1841606,50.3238407 C60.49988,50.3238407 58.3238406,52.4998799 58.3238405,55.1841605 L58.3238405,84.3460808 L53.4635205,84.3460808 C52.1744835,84.3460807 50.938242,84.8581487 50.0267552,85.7696355 C49.1152683,86.6811224 48.6032003,87.9173639 48.6032004,89.2064009 L48.6032004,118.368321 C48.6032004,119.657358 49.1152684,120.8936 50.0267552,121.805086 C50.938242,122.716573 52.1744835,123.228641 53.4635205,123.228641 L58.3238405,123.228641 L58.3238405,132.949281 C58.3238406,135.633562 60.49988,137.809601 63.1841606,137.809601 C65.8684412,137.809601 68.0444805,135.633562 68.0444807,132.949281 L68.0444807,123.228641 L72.9048007,123.228641 C75.5890813,123.228641 77.7651206,121.052602 77.7651206,118.368321 L77.7651206,89.2064009 C77.7651207,87.9173639 77.2530527,86.6811224 76.3415659,85.7696356 C75.4300791,84.8581488 74.1938377,84.3460808 72.9048007,84.3460808 Z M29.1619203,41.6032004 L29.1619203,90.2064009 C29.1619203,92.8906815 26.9858809,95.0667209 24.3016003,95.0667209 L19.4412801,95.0667209 L19.4412801,119.572455 C19.4412801,122.256735 17.2652407,124.432775 14.5809601,124.432775 C11.8966795,124.432775 9.72064013,122.256735 9.72064013,119.572455 L9.72064013,95.0667209 L4.86032,95.0667209 C2.17603938,95.0667209 3.28729566e-16,92.8906815 0,90.2064009 L0,41.6032004 C-3.28729566e-16,38.9189198 2.17603938,36.7428804 4.86032,36.7428804 L9.72064013,36.7428804 L9.72064013,12.4412801 C9.72064013,9.75699951 11.8966795,7.58096013 14.5809601,7.58096013 C17.2652407,7.58096013 19.4412801,9.75699951 19.4412801,12.4412801 L19.4412801,36.7428804 L24.3016003,36.7428804 C26.9858809,36.7428804 29.1619203,38.9189198 29.1619203,41.6032004 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"159px\\\" height=\\\"142px\\\" viewBox=\\\"0 0 159 142\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>custom</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"custom\\\" transform=\\\"translate(0.000000, -0.825151)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M74.8235294,81.2918174 L74.8235294,138.091817 C74.8235294,140.705965 72.7298022,142.825151 70.1470588,142.825151 L4.67647054,142.825151 C2.09372718,142.825151 3.16294839e-16,140.705965 0,138.091817 L0,81.2918174 C-3.63362476e-08,80.0364594 0.492698108,78.8325175 1.36970646,77.9448453 C2.24671482,77.0571731 3.43619342,76.558484 4.67647054,76.558484 L70.1470588,76.558484 C71.387336,76.558484 72.5768146,77.0571731 73.4538229,77.9448453 C74.3308313,78.8325175 74.8235294,80.0364594 74.8235294,81.2918174 Z M74.8235294,5.55848402 L74.8235294,62.358484 C74.8235294,63.6138421 74.3308313,64.817784 73.4538229,65.7054562 C72.5768146,66.5931284 71.387336,67.0918174 70.1470588,67.0918174 L4.67647054,67.0918174 C3.43619342,67.0918174 2.24671482,66.5931284 1.36970646,65.7054562 C0.492698108,64.817784 -3.63362423e-08,63.6138421 0,62.358484 L0,5.55848402 C-2.35506485e-15,4.30312598 0.492698161,3.09918414 1.36970651,2.21151195 C2.24671486,1.32383977 3.43619344,0.825150732 4.67647054,0.825150732 L70.1470588,0.825150732 C72.7298022,0.825150732 74.8235294,2.94433623 74.8235294,5.55848402 Z M159,10.2918174 L159,57.6251507 C159,62.8534463 154.812546,67.0918174 149.647059,67.0918174 L93.5294118,67.0918174 C88.363925,67.0918174 84.1764706,62.8534464 84.1764706,57.6251507 L84.1764706,10.2918174 C84.1764706,5.06352179 88.363925,0.825150732 93.5294118,0.825150732 L149.647059,0.825150732 C154.812546,0.825150809 159,5.06352184 159,10.2918174 Z M154.323529,76.558484 C155.563807,76.558484 156.753285,77.0571731 157.630294,77.9448453 C158.507302,78.8325175 159,80.0364594 159,81.2918174 L159,138.091817 C159,140.705965 156.906273,142.825151 154.323529,142.825151 L88.8529412,142.825151 C86.2701978,142.825151 84.1764706,140.705965 84.1764706,138.091817 L84.1764706,81.2918174 C84.1764706,80.0364594 84.6691687,78.8325175 85.5461771,77.9448453 C86.4231854,77.0571731 87.612664,76.558484 88.8529412,76.558484 L154.323529,76.558484 L154.323529,76.558484 Z M93.5294118,133.358484 L149.647059,133.358484 L149.647059,86.0251507 L93.5294118,86.0251507 L93.5294118,133.358484 L93.5294118,133.358484 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"83px\\\" viewBox=\\\"0 0 175 83\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>dataZoom</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"dataZoom\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M9.20037003,18.4191593 L9.20957963,13.8143694 L9.20957963,18.4191593 L41.4431082,18.4191593 L41.4431082,64.4670572 L9.20957963,64.4670572 L9.20957963,18.4191593 L9.20037003,18.4191593 Z M133.538904,64.4670572 L133.538904,18.4191593 L165.772433,18.4191593 L165.772433,64.4670572 L133.538904,64.4670572 L133.538904,64.4670572 Z M165.772433,9.20957963 L133.538904,9.20957963 L133.538904,4.60478981 C133.538904,2.06163473 131.47727,2.74466854e-07 128.934115,2.74466854e-07 C126.390959,2.74466855e-07 124.329325,2.06163473 124.329325,4.60478981 L124.329325,9.20957963 L50.6526879,9.20957963 L50.6526879,4.60478981 C50.6526879,2.06163462 48.5910532,-6.1602121e-15 46.047898,-6.31593544e-15 C43.5047429,-6.47165878e-15 41.4431082,2.06163462 41.4431082,4.60478981 L41.4431082,9.20957963 L9.20957963,9.20957963 C4.13510123,9.20957963 0,13.3446809 0,18.4191593 L0,64.4670572 C0,69.5507451 4.13510123,73.6766368 9.20957963,73.6766368 L41.4431082,73.6766368 L41.4431082,78.2814267 C41.4431082,80.8245818 43.5047429,82.8862165 46.047898,82.8862165 C48.5910532,82.8862165 50.6526879,80.8245818 50.6526879,78.2814267 L50.6526879,73.6766368 L124.329325,73.6766368 L124.329325,78.2814267 C124.329325,80.8245818 126.390959,82.8862165 128.934115,82.8862165 C131.47727,82.8862165 133.538904,80.8245818 133.538904,78.2814267 L133.538904,73.6766368 L165.772433,73.6766368 C170.858743,73.6766368 174.982013,69.5533676 174.982013,64.4670572 L174.982013,18.4191593 C174.982013,13.3446809 170.856121,9.20957963 165.772433,9.20957963 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"145px\\\" height=\\\"157px\\\" viewBox=\\\"0 0 145 157\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>dataset</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"dataset\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M77,133.051622 C77,135.720999 74.7614237,137.884956 72,137.884956 C69.2385763,137.884956 67,135.720999 67,133.051622 L67,92.7182891 C67,90.0489128 69.2385763,87.8849558 72,87.8849558 C74.7614237,87.8849558 77,90.0489128 77,92.7182891 L77,133.051622 Z M87,92.7182888 C87.0000002,90.0489126 89.2385764,87.8849558 92,87.8849558 C94.7614236,87.8849558 96.9999998,90.0489126 97,92.7182888 L97,133.051623 C96.9999998,135.720999 94.7614236,137.884956 92,137.884956 C89.2385764,137.884956 87.0000002,135.720999 87,133.051623 L87,92.7182888 Z M58,133.072456 C58,135.730326 55.7614237,137.884956 53,137.884956 C50.2385763,137.884956 48,135.730326 48,133.072456 L48,73.6974557 C48,71.0395854 50.2385763,68.8849558 53,68.8849558 C55.7614237,68.8849558 58,71.0395854 58,73.6974557 L58,133.072456 Z M39,133.066774 C38.9999999,135.727782 36.7614237,137.884956 34,137.884956 C31.2385763,137.884956 29.0000001,135.727782 29,133.066774 L29,44.7031376 C29,42.0421293 31.2385763,39.8849558 34,39.8849558 C36.7614237,39.8849558 39,42.0421293 39,44.7031376 L39,133.066774 Z M126.3,132.884956 L126.3,63.9913737 C126.403893,62.6917747 125.897136,61.4145164 124.9129,60.4952543 L83.0962,21.7192841 C82.9895,21.6282393 82.8537001,21.5918214 82.7469999,21.5098811 C81.8447692,20.5509026 80.5501183,19.997952 79.1870999,19.9894333 L39,19.9894333 L39,10.8849558 L135.9903,10.8849558 L136,132.884956 L126.3,132.884956 Z M116,146.884956 L10,146.884956 L10,28.8849558 L74.0143636,28.8849558 L74.0143636,58.8841865 C74.0143636,63.8855711 78.3314545,67.9611095 83.6507272,67.9611097 L116,67.9611097 L116,146.884956 Z M144.990333,10.0614263 C144.990333,5.00519104 140.659667,0.884955752 135.323667,0.884955752 L38.6666667,0.884955752 C33.3403334,0.884955752 29.0000001,5.00519104 28.9999999,10.0614263 L28.9999999,19.2378969 L9.66666665,19.2378969 C4.34033332,19.2378969 0,23.3581322 0,28.4143675 L0,147.708485 C0,152.773897 4.34033332,156.884956 9.66666665,156.884956 L116,156.884956 C121.338753,156.884956 125.666667,152.77651 125.666667,147.708485 L125.666667,142.202603 L135.333333,142.202603 C140.672086,142.202603 145,138.094157 145,133.026132 L144.990333,10.0614263 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"159px\\\" viewBox=\\\"0 0 175 159\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>drag</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"drag\\\" transform=\\\"translate(0.000000, 0.000000)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M174.799112,77.2243509 C175.141784,80.4933122 173.860538,83.7226514 171.369927,85.8675022 L145.821493,107.665891 C143.704571,109.29545 140.681703,108.978807 138.948417,106.945941 C137.215132,104.913075 137.380357,101.878162 139.32409,100.045479 L158.345038,83.8019696 L92.4385031,83.8019696 L92.4385031,144.173679 L109.273597,130.085944 C111.397298,128.30558 114.562167,128.583909 116.342532,130.70761 C118.122896,132.83131 117.844567,135.99618 115.720867,137.776544 L93.3308935,156.516741 C89.5429956,159.697467 83.9995074,159.633553 80.2859517,156.366338 L59.0490671,137.706356 C57.140269,135.840194 57.0244102,132.80703 58.7852891,130.800695 C60.546168,128.79436 63.5687212,128.515654 65.6667932,130.166159 L82.4116455,144.885586 L82.4116455,83.8019696 L16.5051101,83.8019696 L35.5360859,100.045479 C36.9700273,101.186546 37.6671397,103.019075 37.3541473,104.824694 C37.041155,106.630312 35.7679333,108.121296 34.0335988,108.713163 C32.2992644,109.305031 30.380183,108.903467 29.0286553,107.665891 L3.52032945,85.8975828 C1.25557692,83.9644222 -0.0328273042,81.1246883 0.00397844461,78.147297 C0.0407841935,75.1699056 1.39899211,72.3628885 3.71083975,70.4863026 L29.118897,49.820949 C31.2816477,48.328475 34.2285594,48.7508003 35.8850928,50.7906204 C37.5416262,52.8304405 37.3503183,55.8013071 35.4458442,57.6118174 L15.5625855,73.7751119 L82.4116455,73.7751119 L82.4116455,14.1153089 L65.6667932,28.8347359 C64.3276607,30.0598688 62.43094,30.4655542 60.7078175,29.8954003 C58.9846951,29.3252464 57.7042897,27.8683002 57.360198,26.0862151 C57.0161064,24.30413 57.662069,22.4752334 59.0490671,21.3045658 L80.2759248,2.65461056 C83.9853287,-0.629787191 89.5418994,-0.698070701 93.3308935,2.49418084 L115.720867,21.2243509 C117.320514,22.5881211 117.904229,24.8023516 117.184781,26.777481 C116.465334,28.7526104 114.594242,30.0726692 112.492218,30.0880931 C111.314421,30.0896881 110.174126,29.6740664 109.273597,28.9149508 L92.4385031,14.8272158 L92.4385031,73.7751119 L159.29759,73.7751119 L139.414331,57.6118174 C138.022627,56.4816171 137.339593,54.6948034 137.622523,52.9244518 C137.905453,51.1541001 139.111362,49.669169 140.785997,49.0290176 C142.460631,48.3888662 144.349574,48.6907487 145.741278,49.820949 L171.149336,70.4863026 C173.218763,72.1532673 174.533435,74.5803549 174.799112,77.2243509\\\" id=\\\"Path\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"137px\\\" viewBox=\\\"0 0 175 137\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>funnel </title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"funnel-\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M116.331467,108.325366 L60.5285591,108.325366 C58.9291301,108.325102 57.4459378,109.160985 56.6178211,110.52934 C55.7897045,111.897695 55.7371711,113.5994 56.4793063,115.016231 L66.3876358,133.863994 C67.1750739,135.367321 68.7306799,136.310539 70.4277481,136.313655 L106.432278,136.313655 C108.129346,136.310539 109.684952,135.367321 110.47239,133.863994 L120.380719,115.016231 C121.122854,113.5994 121.070321,111.897695 120.242204,110.52934 C119.414088,109.160985 117.930896,108.325102 116.331467,108.325366 L116.331467,108.325366 Z M134.968998,71.0137414 L41.9001683,71.0137414 C40.2925309,71.0025161 38.7981975,71.8401445 37.9688482,73.2173896 C37.139499,74.5946346 37.098146,76.3072185 37.8600561,77.722887 L47.8415098,96.5706503 C48.6348072,98.0648166 50.1899261,98.9971843 51.881622,98.9928896 L125.024106,98.9928896 C126.716211,98.9981743 128.270437,98.0607046 129.055078,96.5615098 L139.00911,77.7137465 C139.754942,76.2976526 139.705659,74.5945859 138.879188,73.2239903 C138.052717,71.8533948 136.569493,71.014997 134.968998,71.0137414 L134.968998,71.0137414 Z M153.63395,35.5759245 L23.2352156,35.5759245 C21.6347203,35.5771801 20.151496,36.4155778 19.325025,37.7861734 C18.498554,39.156769 18.4492717,40.8598357 19.1951033,42.2759296 L29.1491354,61.1145524 C29.9359394,62.6172637 31.4930184,63.5578521 33.1892477,63.5550727 L143.70734,63.5550727 C145.402425,63.5537423 146.957543,62.6143387 147.747452,61.1145524 L157.674063,42.266789 C158.415446,40.8514003 158.363824,39.1515952 157.537917,37.7838041 C156.712011,36.4160129 155.231751,35.5788553 153.63395,35.5759245 L153.63395,35.5759245 Z M174.995358,4.69922974 C174.994253,5.44166711 174.81229,6.17265769 174.465208,6.82897225 L164.538597,25.6767355 C163.746223,27.1729824 162.191592,28.108575 160.498485,28.1081153 L14.4968732,28.1081153 C12.8031994,28.1106197 11.2475937,27.1744407 10.4567611,25.6767355 L0.530150516,6.82897225 C-0.215681017,5.41287837 -0.166398756,3.70981169 0.660072225,2.33921611 C1.48654321,0.96862053 2.96976742,0.130222778 4.57026264,0.1289671 L170.425096,0.1289671 C172.949182,0.1289671 174.995358,2.17514338 174.995358,4.69922974 L174.995358,4.69922974 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"100px\\\" viewBox=\\\"0 0 175 100\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>gange</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"gange\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M143.698895,82.9089367 C142.437361,67.6655629 135.026556,53.5920156 123.171797,43.9267897 L135.7146,25.9137777 C153.409366,39.7333892 164.305583,60.4959162 165.625777,82.9089367 L143.698895,82.9089367 L143.698895,82.9089367 Z M115.601912,38.6960173 C112.342946,36.8541942 108.909619,35.339582 105.352176,34.174346 L107.654453,22.8655635 C107.981818,21.2534161 107.424245,19.5890834 106.191766,18.4995036 C104.959288,17.4099237 103.239147,17.0606298 101.679304,17.5831975 C100.119461,18.1057651 98.9568933,19.4208039 98.6295287,21.0329513 L96.4193432,31.8996968 C93.4676767,31.3974455 90.4804994,31.132603 87.4865101,31.1077136 C77.1817177,31.1042083 67.0761605,33.9468942 58.284434,39.3222365 L45.5021944,21.4934066 C70.6181595,5.43266895 102.701308,5.12868193 128.117087,20.7106326 L115.601912,38.6960173 L115.601912,38.6960173 Z M31.2649159,82.9089367 L9.34724295,82.9089367 C10.6455448,61.0475255 21.0636813,40.7358347 38.0612364,26.9267794 L50.843476,44.7464001 C39.5322634,54.3814577 32.493597,68.101229 31.2649159,82.9089367 L31.2649159,82.9089367 Z M87.4865101,0.0269797767 C39.2492112,0.0269797767 0,39.276191 0,87.5134899 C5.46353103e-08,90.0565144 2.06152873,92.118043 4.60455321,92.118043 L35.685287,92.118043 C38.2283115,92.118043 40.2898401,90.0565144 40.2898401,87.5134899 C40.315223,61.4580101 61.4310302,40.3422029 87.4865101,40.31682 C89.908505,40.31682 92.2384089,40.6759751 94.5683128,41.0351302 L86.9247546,78.6451205 C82.0531374,79.4923583 78.2774037,83.5443651 78.2774037,88.6646282 C78.2774037,94.3864333 82.9158433,99.0248728 88.6376484,99.0248728 C94.3594535,99.0248728 98.997893,94.3864333 98.997893,88.6646282 C98.997893,85.7361324 97.7546637,83.102328 95.793124,81.2236703 L103.501146,43.3005704 C121.633876,49.8942906 134.68318,67.1337376 134.68318,87.5134899 C134.68318,90.0565144 136.744709,92.118043 139.287733,92.118043 L170.368467,92.118043 C172.911491,92.118043 174.97302,90.0565144 174.97302,87.5134899 C174.97302,39.276191 135.723809,0.0269798756 87.4865101,0.0269797767 L87.4865101,0.0269797767 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"142px\\\" viewBox=\\\"0 0 175 142\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>geo</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"geo\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M9.20332621,34.019885 L55.2181167,56.861627 L55.2181167,128.571076 L9.20332621,103.207724 L9.20332621,34.019885 Z M171.819596,50.2815119 L151.996424,43.1124076 C149.63126,42.3318353 147.074346,43.5747977 146.227189,45.9169373 C145.380032,48.2590769 146.550177,50.8501245 148.867418,51.7631882 L165.653614,57.8371405 L165.653614,131.138702 L119.638823,119.625801 L119.638823,87.4706656 C119.638823,84.9293389 117.578671,82.8691865 115.037344,82.8691865 C112.496018,82.8691865 110.435865,84.9293389 110.435865,87.4706656 L110.435865,119.644207 L64.4210748,131.41479 L64.4210748,58.2236647 L81.060023,51.7263763 C83.2914479,50.7138845 84.3410975,48.1328302 83.4496557,45.8503474 C82.5582139,43.5678645 80.037126,42.3813901 77.7101463,43.1492194 L61.2460542,49.5820871 L6.64490386,22.4793755 C5.21943693,21.7614379 3.52312776,21.8367966 2.16693957,22.6783095 C0.810751382,23.5198224 -0.00997312356,25.0062796 0.000368118324,26.6023007 L0.000368118324,105.913394 C0.000368118324,107.597535 0.91146097,109.134429 2.38393426,109.944289 L58.8072703,141.059491 C59.8287987,141.620871 61.0435892,141.795727 62.16635,141.49203 L115.046547,127.963681 L169.141535,141.501233 C170.516378,141.840666 171.970958,141.532118 173.089604,140.663763 C174.206625,139.788526 174.858383,138.44767 174.856572,137.028595 L174.856572,54.6069022 C174.855748,52.6695411 173.64154,50.9402146 171.819596,50.2815119 Z M115.037344,16.5986853 C121.13907,16.6012266 126.083435,21.5497125 126.080894,27.651438 C126.078353,33.7531634 121.129867,38.697529 115.028141,38.6949877 C108.926416,38.6924463 103.98205,33.7439604 103.984592,27.642235 C103.987133,21.5405096 108.935619,16.596144 115.037344,16.5986853 L115.037344,16.5986853 Z M99.5763747,54.7173377 C102.208421,58.3341002 105.00612,61.9140509 107.813022,65.199507 C108.806942,66.3866886 109.718035,67.4358258 110.491083,68.3285127 C111.04326,68.8806902 111.402176,69.2856204 111.558626,69.4512736 C112.438859,70.4713636 113.723372,71.0524431 115.07068,71.0400337 C116.417988,71.0276243 117.69158,70.4229833 118.552874,69.3868529 C118.72773,69.2211997 119.06824,68.8254725 119.555997,68.264092 C120.506081,67.2663872 121.406012,66.2220982 122.252463,65.1350863 C125.059366,61.8496302 127.866268,58.2788825 130.498314,54.6437141 C133.121157,51.0177486 135.412694,47.4470008 137.262488,44.0879211 C140.741206,37.8851274 142.646219,32.5382087 142.646219,28.1207888 C142.701436,12.5861956 130.314255,0.0425636812 115.028141,0.0425636812 C99.7604339,0.0425636812 87.42847,12.5861956 87.42847,28.1207888 C87.42847,32.5382087 89.3334823,37.9403451 92.8029975,44.1523418 C94.7172128,47.5114215 97.0087494,51.0729663 99.5763747,54.7173377 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"120px\\\" viewBox=\\\"0 0 175 120\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>gl</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"gl\\\" fill=\\\"#5067A2\\\"> <path d=\\\"M170.394737,101.315789 L119.736842,101.315789 L119.736842,4.60526316 C119.736842,2.06315789 117.673684,0 115.131579,0 L105.921053,0 C103.378947,0 101.315789,2.06315789 101.315789,4.60526316 L101.315789,115.131579 C101.315789,117.673684 103.378947,119.736842 105.921053,119.736842 L170.394737,119.736842 C172.936842,119.736842 175,117.673684 175,115.131579 L175,105.921053 C175,103.378947 172.936842,101.315789 170.394737,101.315789\\\" id=\\\"Fill-1\\\"></path> <path d=\\\"M78.2894737,0 L4.60526316,0 C2.06315789,0 0,2.06315789 0,4.60526316 L0,115.131579 C0,117.673684 2.06315789,119.736842 4.60526316,119.736842 L78.2894737,119.736842 C80.8315789,119.736842 82.8947368,117.673684 82.8947368,115.131579 L82.8947368,59.8684211 C82.8947368,57.3263158 80.8315789,55.2631579 78.2894737,55.2631579 L41.4473684,55.2631579 C38.9052632,55.2631579 36.8421053,57.3263158 36.8421053,59.8684211 L36.8421053,69.0789474 C36.8421053,71.6210526 38.9052632,73.6842105 41.4473684,73.6842105 L64.4736842,73.6842105 L64.4736842,101.315789 L18.4210526,101.315789 L18.4210526,18.4210526 L64.4736842,18.4210526 L64.4736842,32.2368421 C64.4736842,34.7789474 66.5368421,36.8421053 69.0789474,36.8421053 L78.2894737,36.8421053 C80.8315789,36.8421053 82.8947368,34.7789474 82.8947368,32.2368421 L82.8947368,4.60526316 C82.8947368,2.06315789 80.8315789,0 78.2894737,0\\\" id=\\\"Fill-3\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"171px\\\" height=\\\"146px\\\" viewBox=\\\"0 0 171 146\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>graph</title> <desc>Created with Sketch.</desc> <defs> <polygon id=\\\"path-1\\\" points=\\\"0.06 0 171 0 171 146 0.06 146\\\"></polygon> </defs> <g id=\\\"graph\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <mask id=\\\"mask-2\\\" fill=\\\"white\\\"> <use xlink:href=\\\"#path-1\\\"></use> </mask> <g id=\\\"Clip-2\\\"></g> <path d=\\\"M171,100 C171,106.075 166.075,111 160,111 C154.016,111 149.158,106.219 149.014,100.27 L114.105,83.503 C111.564,86.693 108.179,89.18 104.282,90.616 L108.698,124.651 C112.951,126.172 116,130.225 116,135 C116,141.075 111.075,146 105,146 C98.925,146 94,141.075 94,135 C94,131.233 95.896,127.912 98.781,125.93 L94.364,91.896 C82.94,90.82 74,81.206 74,69.5 C74,69.479 74.001,69.46 74.001,69.439 L53.719,64.759 C50.642,70.269 44.76,74 38,74 C36.07,74 34.215,73.689 32.472,73.127 L20.624,90.679 C21.499,92.256 22,94.068 22,96 C22,102.075 17.075,107 11,107 C4.925,107 0,102.075 0,96 C0,89.925 4.925,85 11,85 C11.452,85 11.895,85.035 12.332,85.089 L24.184,67.531 C21.574,64.407 20,60.389 20,56 C20,48.496 24.594,42.07 31.121,39.368 L29.111,21.279 C24.958,19.707 22,15.704 22,11 C22,4.925 26.925,0 33,0 C39.075,0 44,4.925 44,11 C44,14.838 42.031,18.214 39.051,20.182 L41.061,38.279 C49.223,39.681 55.49,46.564 55.95,55.011 L76.245,59.694 C79.889,52.181 87.589,47 96.5,47 C100.902,47 105.006,48.269 108.475,50.455 L131.538,27.391 C131.192,26.322 131,25.184 131,24 C131,17.925 135.925,13 142,13 C148.075,13 153,17.925 153,24 C153,30.075 148.075,35 142,35 C140.816,35 139.678,34.808 138.609,34.461 L115.546,57.525 C117.73,60.994 119,65.098 119,69.5 C119,71.216 118.802,72.884 118.438,74.49 L153.345,91.257 C155.193,89.847 157.495,89 160,89 C166.075,89 171,93.925 171,100\\\" id=\\\"Fill-1\\\" fill=\\\"#4F608A\\\" mask=\\\"url(#mask-2)\\\"></path> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"165px\\\" height=\\\"137px\\\" viewBox=\\\"0 0 165 137\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>heatmap</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"heatmap\\\" transform=\\\"translate(-0.500000, -0.474277)\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M44.5999999,89.4742765 L5.40000005,89.4742765 C2.6938048,89.4742765 0.500000074,87.2916647 0.5,84.5992766 L0.5,55.3492765 C0.500000074,52.6568883 2.6938048,50.4742765 5.40000005,50.4742765 L44.5999999,50.4742765 C47.3061952,50.4742765 49.4999999,52.6568883 49.5,55.3492765 L49.5,84.5992766 C49.4999999,87.2916647 47.3061952,89.4742765 44.5999999,89.4742765\\\" id=\\\"Path\\\" fill=\\\"#687DB0\\\"></path> <path d=\\\"M102.6,89.4742765 L63.3999999,89.4742765 C60.6938047,89.4742765 58.5000001,87.2916647 58.5,84.5992766 L58.5,55.3492765 C58.5000001,52.6568884 60.6938047,50.4742766 63.3999999,50.4742765 L102.6,50.4742765 C105.306195,50.4742765 107.5,52.6568883 107.5,55.3492765 L107.5,84.5992766 C107.5,87.2916647 105.306195,89.4742765 102.6,89.4742765\\\" id=\\\"Path\\\" fill=\\\"#8497C0\\\"></path> <path d=\\\"M160.6,89.4742765 L121.4,89.4742765 C118.693805,89.4742765 116.5,87.2916647 116.5,84.5992766 L116.5,55.3492765 C116.5,52.6568884 118.693805,50.4742766 121.4,50.4742765 L160.6,50.4742765 C163.306195,50.4742766 165.5,52.6568884 165.5,55.3492765 L165.5,84.5992766 C165.5,87.2916647 163.306195,89.4742765 160.6,89.4742765\\\" id=\\\"Path\\\" fill=\\\"#A7B4D1\\\"></path> <path d=\\\"M44.5999999,137.474277 L5.40000005,137.474277 C2.69380475,137.474277 0.5,135.291665 0.5,132.599276 L0.5,103.349277 C0.5,100.656888 2.69380475,98.4742765 5.40000005,98.4742765 L44.5999999,98.4742765 C45.8995608,98.4742765 47.1458949,98.9878911 48.0648232,99.902131 C48.9837515,100.816371 49.5,102.056346 49.5,103.349277 L49.5,132.599276 C49.5,135.291665 47.3061953,137.474277 44.5999999,137.474277\\\" id=\\\"Path\\\" fill=\\\"#8497C0\\\"></path> <path d=\\\"M102.6,137.474277 L63.3999999,137.474277 C60.6938047,137.474276 58.5,135.291665 58.5,132.599276 L58.5,103.349277 C58.5,100.656888 60.6938047,98.4742766 63.3999999,98.4742765 L102.6,98.4742765 C105.306195,98.4742765 107.5,100.656888 107.5,103.349277 L107.5,132.599276 C107.5,135.291665 105.306195,137.474277 102.6,137.474277\\\" id=\\\"Path\\\" fill=\\\"#A7B4D1\\\"></path> <path d=\\\"M160.6,137.474277 L121.4,137.474277 C118.693805,137.474276 116.5,135.291665 116.5,132.599276 L116.5,103.349277 C116.5,100.656888 118.693805,98.4742766 121.4,98.4742765 L160.6,98.4742765 C163.306195,98.4742766 165.5,100.656888 165.5,103.349277 L165.5,132.599276 C165.5,135.291665 163.306195,137.474276 160.6,137.474277\\\" id=\\\"Path\\\" fill=\\\"#CDD5E3\\\"></path> <path d=\\\"M5.40000005,0.474276527 L44.5999999,0.474276527 C47.3061953,0.474276527 49.5,2.65688839 49.5,5.34927658 L49.5,34.5992765 C49.5,37.2916647 47.3061953,39.4742765 44.5999999,39.4742765 L5.40000005,39.4742765 C2.69380475,39.4742765 0.5,37.2916647 0.5,34.5992765 L0.5,5.34927658 C0.5,2.65688839 2.69380475,0.474276527 5.40000005,0.474276527\\\" id=\\\"Path\\\" fill=\\\"#5067A2\\\"></path> <path d=\\\"M102.6,39.4742765 L63.3999999,39.4742765 C60.6938047,39.4742765 58.5,37.2916646 58.5,34.5992765 L58.5,5.34927658 C58.5,2.65688845 60.6938047,0.474276601 63.3999999,0.474276527 L102.6,0.474276527 C105.306195,0.474276527 107.5,2.65688839 107.5,5.34927658 L107.5,34.5992765 C107.5,37.2916647 105.306195,39.4742765 102.6,39.4742765\\\" id=\\\"Path\\\" fill=\\\"#687DB0\\\"></path> <path d=\\\"M160.6,39.4742765 L121.4,39.4742765 C118.693805,39.4742765 116.5,37.2916646 116.5,34.5992765 L116.5,5.34927658 C116.5,2.65688845 118.693805,0.474276601 121.4,0.474276527 L160.6,0.474276527 C163.306195,0.474276601 165.5,2.65688845 165.5,5.34927658 L165.5,34.5992765 C165.5,37.2916646 163.306195,39.4742765 160.6,39.4742765\\\" id=\\\"Path\\\" fill=\\\"#8497C0\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"138px\\\" viewBox=\\\"0 0 175 138\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>line</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"line\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M25.2739189,111.655778 C26.7855309,111.657407 28.2007506,110.913642 29.0567232,109.667735 L69.3606163,51.4346379 L108.642876,94.5825372 C109.596174,95.6275458 110.977093,96.1760957 112.387618,96.0700817 C113.798143,95.9640677 115.081554,95.2152689 115.86794,94.0395069 L167.15209,17.582681 C168.126301,16.2187314 168.281888,14.4329668 167.558237,12.9210891 C166.834585,11.4092114 165.346152,10.4103472 163.672804,10.3136363 C161.999456,10.2169253 160.40586,11.0376639 159.512851,12.4561069 L111.496086,84.0348638 L72.2782537,40.9605957 C71.3313898,39.926718 69.968454,39.3754562 68.5690807,39.4603596 C67.1694417,39.5586882 65.8899144,40.2864616 65.0900052,41.4391988 L21.4911146,104.439918 C20.5200574,105.846972 20.4090348,107.676368 21.202809,109.190526 C21.9965833,110.704685 23.5643138,111.65402 25.2739189,111.655778\\\" id=\\\"Path\\\"></path> <path d=\\\"M170.272214,127.854648 L9.20390349,127.854648 L9.20390349,5.00465881 C9.20390349,2.46307104 7.14353951,0.402707066 4.60195174,0.402707066 C2.06036398,0.402707066 3.11254732e-16,2.46307104 0,5.00465881 L0,132.4566 C3.11254728e-16,134.998188 2.06036395,137.058552 4.60195168,137.058552 L170.272214,137.058552 C172.813801,137.058552 174.874165,134.998188 174.874165,132.4566 C174.874165,129.915012 172.813801,129.257355 170.272214,129.257355\\\" id=\\\"Path\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"163px\\\" height=\\\"137px\\\" viewBox=\\\"0 0 163 137\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>lines</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"lines\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M118.024118,118.8 C120.522388,118.8 122.566427,120.8475 122.566427,123.35 C122.566427,125.8525 120.522388,127.9 118.024118,127.9 C115.517543,127.894993 113.486807,125.860819 113.481809,123.35 C113.481809,120.8475 115.525848,118.8 118.024118,118.8 Z M142.434485,46 L64.9673569,46 C62.4587091,46 60.4250482,48.0371044 60.4250482,50.55 C60.4250482,53.0628956 62.4587091,55.1 64.9673569,55.1 L142.034762,55.0909 C149.519307,56.1087027 154.7743,62.9956941 153.790257,70.4972 C152.963556,76.6852 148.066948,81.5264 142.434485,82.2544 L20.6642736,82.2726 C14.6272756,82.8301001 9.06337697,85.7822231 5.21133949,90.4717 C0.0521031846,96.7506172 -1.39663076,105.298969 1.40493936,112.931618 C4.20650947,120.564268 10.8382585,126.136619 18.8291809,127.5724 L105.232977,127.8909 C107.143393,133.33221 112.265894,136.980155 118.024118,137 C125.537097,137 131.651044,130.8757 131.651044,123.35 C131.651044,115.8243 125.537097,109.7 118.024118,109.7 C112.110032,109.7 107.113492,113.5129 105.232977,118.8 L21.8634431,118.8728 L20.4099043,118.618 C14.3307333,117.521702 9.72082575,112.509885 9.12680957,106.3512 C8.77445503,102.712306 9.88625731,99.0830035 12.2155795,96.2684 C14.5594108,93.4383 17.8571269,91.6911 21.0912506,91.3544 L142.988646,91.3271 C153.280464,90.058092 161.421536,81.9929721 162.802197,71.6984 C164.446513,59.2314 155.679857,47.729 142.434485,46 Z\\\" id=\\\"Shape\\\"></path> <path d=\\\"M31.9999101,18.2496933 C36.9704563,18.2496933 40.9998801,22.3350263 40.9998801,27.37454 C40.9998801,32.4140537 36.9704563,36.4993867 31.9999101,36.4993867 C27.0293639,36.4993867 22.9999401,32.4140537 22.9999401,27.37454 C22.9999401,22.3350263 27.0293639,18.2496933 31.9999101,18.2496933 Z M16.8799604,56.2181803 C19.4539519,59.9411177 22.1809428,63.6184309 24.9259336,66.9946242 C25.9069304,68.2173537 26.7979274,69.3032104 27.5539249,70.2156951 C28.1029231,70.7814356 28.435922,71.1920537 28.5979214,71.3654258 C30.4699152,73.555389 33.5839048,73.555389 35.4378986,71.3015518 C35.617898,71.1373046 35.932897,70.7266865 36.4188954,70.1518212 C37.2648925,69.2393365 38.1288897,68.1443549 39.0558866,66.9307503 C41.8008774,63.554557 44.5368683,59.8863687 47.1108598,56.1451815 C49.6758512,52.4131192 51.9258437,48.7449309 53.7348377,45.2957388 C57.1368264,38.917471 58.9998202,33.4243133 58.9998202,28.8710148 C59.05382,12.911658 46.9398603,0 31.9909101,0 C17.0509599,0 5,12.911658 5,28.8710148 C5,33.4243133 6.8629938,38.9722201 10.2559825,45.3596128 C12.1279763,48.8088048 14.3689688,52.4678683 16.8799604,56.2181803 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"142px\\\" viewBox=\\\"0 0 175 142\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>geo</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"geo\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M9.20332621,34.019885 L55.2181167,56.861627 L55.2181167,128.571076 L9.20332621,103.207724 L9.20332621,34.019885 Z M171.819596,50.2815119 L151.996424,43.1124076 C149.63126,42.3318353 147.074346,43.5747977 146.227189,45.9169373 C145.380032,48.2590769 146.550177,50.8501245 148.867418,51.7631882 L165.653614,57.8371405 L165.653614,131.138702 L119.638823,119.625801 L119.638823,87.4706656 C119.638823,84.9293389 117.578671,82.8691865 115.037344,82.8691865 C112.496018,82.8691865 110.435865,84.9293389 110.435865,87.4706656 L110.435865,119.644207 L64.4210748,131.41479 L64.4210748,58.2236647 L81.060023,51.7263763 C83.2914479,50.7138845 84.3410975,48.1328302 83.4496557,45.8503474 C82.5582139,43.5678645 80.037126,42.3813901 77.7101463,43.1492194 L61.2460542,49.5820871 L6.64490386,22.4793755 C5.21943693,21.7614379 3.52312776,21.8367966 2.16693957,22.6783095 C0.810751382,23.5198224 -0.00997312356,25.0062796 0.000368118324,26.6023007 L0.000368118324,105.913394 C0.000368118324,107.597535 0.91146097,109.134429 2.38393426,109.944289 L58.8072703,141.059491 C59.8287987,141.620871 61.0435892,141.795727 62.16635,141.49203 L115.046547,127.963681 L169.141535,141.501233 C170.516378,141.840666 171.970958,141.532118 173.089604,140.663763 C174.206625,139.788526 174.858383,138.44767 174.856572,137.028595 L174.856572,54.6069022 C174.855748,52.6695411 173.64154,50.9402146 171.819596,50.2815119 Z M115.037344,16.5986853 C121.13907,16.6012266 126.083435,21.5497125 126.080894,27.651438 C126.078353,33.7531634 121.129867,38.697529 115.028141,38.6949877 C108.926416,38.6924463 103.98205,33.7439604 103.984592,27.642235 C103.987133,21.5405096 108.935619,16.596144 115.037344,16.5986853 L115.037344,16.5986853 Z M99.5763747,54.7173377 C102.208421,58.3341002 105.00612,61.9140509 107.813022,65.199507 C108.806942,66.3866886 109.718035,67.4358258 110.491083,68.3285127 C111.04326,68.8806902 111.402176,69.2856204 111.558626,69.4512736 C112.438859,70.4713636 113.723372,71.0524431 115.07068,71.0400337 C116.417988,71.0276243 117.69158,70.4229833 118.552874,69.3868529 C118.72773,69.2211997 119.06824,68.8254725 119.555997,68.264092 C120.506081,67.2663872 121.406012,66.2220982 122.252463,65.1350863 C125.059366,61.8496302 127.866268,58.2788825 130.498314,54.6437141 C133.121157,51.0177486 135.412694,47.4470008 137.262488,44.0879211 C140.741206,37.8851274 142.646219,32.5382087 142.646219,28.1207888 C142.701436,12.5861956 130.314255,0.0425636812 115.028141,0.0425636812 C99.7604339,0.0425636812 87.42847,12.5861956 87.42847,28.1207888 C87.42847,32.5382087 89.3334823,37.9403451 92.8029975,44.1523418 C94.7172128,47.5114215 97.0087494,51.0729663 99.5763747,54.7173377 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"148px\\\" viewBox=\\\"0 0 175 148\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>parallel</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"parallel\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M119.966527,90.2642567 L119.966527,71.4595035 L164.953975,91.1040224 L164.953975,117.16675 L119.966527,90.2642567 Z M99.5422259,68.8202399 L109.969317,68.8202399 L109.969317,80.2370544 L99.5422259,68.8202399 Z M64.9818688,58.8230293 L64.9818688,45.8666444 L76.8485579,58.8230293 L64.9818688,58.8230293 L64.9818688,58.8230293 Z M9.99721065,95.6627504 L9.99721065,37.9888424 L54.9846583,37.9888424 L54.9846583,61.3523236 L9.99721065,95.6627504 Z M170,2.04051565e-11 C167.238576,2.04245402e-11 165,2.23857623 165,4.99999995 L165,80.2194419 L120,60.5694419 L120,5.00139509 C120,2.23997133 117.761424,0.00139506489 115,0.00139506489 C112.238576,0.00139506489 110,2.23997133 110,5.00139509 L110,58.8394419 L90.42,58.8394419 L64.9999999,31.059442 L64.9999999,5.00139509 C64.9999999,2.23997137 62.7614237,0.00139513813 60,0.00139513813 C57.2385763,0.00139513813 55,2.23997137 55,5.00139509 L55,27.999442 L10,27.999442 L10,4.99999995 C10,2.23857619 7.76142378,-7.3221713e-08 5.00000002,-7.32217131e-08 C2.23857626,-7.32217133e-08 3.38176877e-16,2.23857619 0,4.99999995 L0,142.999442 C3.38176877e-16,145.760866 2.23857626,147.999442 5.00000002,147.999442 C7.76142378,147.999442 10,145.760866 10,142.999442 L10,108.249442 L55,73.9494419 L55,142.999442 C55,145.760866 57.2385763,147.999442 60,147.999442 C62.7614237,147.999442 64.9999999,145.760866 64.9999999,142.999442 L64.9999999,68.839442 L86.01,68.839442 L110,95.0694419 L110,142.999442 C110,145.760866 112.238576,147.999442 115,147.999442 C117.761424,147.999442 120,145.760866 120,142.999442 L120,101.939442 L165,128.839442 L165,142.999442 C165,145.760866 167.238576,147.999442 170,147.999442 C172.761424,147.999442 175,145.760866 175,142.999442 L175,4.99999995 C175,3.67391749 174.473216,2.40214791 173.535534,1.46446603 C172.597852,0.526784141 171.326082,-3.88296707e-08 170,2.04051565e-11 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"141px\\\" viewBox=\\\"0 0 175 141\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>pictorialBar</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"pictorialBar\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M165.182447,113.123194 C161.75364,113.169204 158.605604,115.027549 156.908673,118.007359 L62.4782339,118.007359 C59.7807842,118.007359 57.5940692,120.194074 57.5940692,122.891524 C57.5940692,125.588973 59.7807842,127.775688 62.4782339,127.775688 L156.908673,127.775688 C158.605604,130.755498 161.75364,132.613843 165.182447,132.659853 C170.576885,132.6592 174.949595,128.285961 174.949595,122.891524 C174.949595,117.497086 170.576885,113.123847 165.182447,113.123194 L165.182447,113.123194 Z M165.182447,78.9340419 C161.75364,78.980052 158.605603,80.8383969 156.908673,83.8182066 L77.2674843,83.8182066 C74.5700347,83.8182066 72.3833197,86.0049216 72.3833197,88.7023712 C72.3833197,91.3998208 74.5700347,93.5865358 77.2674843,93.5865358 L156.908673,93.5865358 C158.605603,96.5663455 161.75364,98.4246904 165.182447,98.4707005 C170.577347,98.4707005 174.950777,94.0972705 174.950777,88.7023712 C174.950777,83.3074719 170.577347,78.9340419 165.182447,78.9340419 L165.182447,78.9340419 Z M165.182447,44.7448896 C170.407595,44.9786234 174.523583,49.2828462 174.523583,54.5132188 C174.523583,59.7435915 170.407595,64.0478142 165.182447,64.2815481 C161.75364,64.235538 158.605604,62.3771932 156.908673,59.3973835 L77.2674843,59.3973835 C74.5700346,59.3973835 72.3833196,57.2106685 72.3833196,54.5132188 C72.3833196,51.8157692 74.5700346,49.6290542 77.2674843,49.6290542 L156.908673,49.6290542 C158.605604,46.6492445 161.75364,44.7908997 165.182447,44.7448896 Z M62.6149904,20.3240665 C62.6149904,19.0287054 63.1295706,17.7863991 64.0455291,16.8704405 C64.9614877,15.954482 66.2037941,15.4399018 67.4991551,15.4399019 L156.908673,15.4399019 C158.605604,12.4600922 161.75364,10.6017474 165.182447,10.5557373 C170.407595,10.7894711 174.523583,15.0936938 174.523583,20.3240665 C174.523583,25.5544392 170.407595,29.8586619 165.182447,30.0923957 C161.75364,30.0463857 158.605604,28.1880408 156.908673,25.2082312 L67.4991551,25.2082312 C66.2037941,25.2082312 64.9614877,24.6936511 64.0455291,23.7776925 C63.1295705,22.8617339 62.6149904,21.6194275 62.6149904,20.3240665 Z M23.5416735,29.3240665 C31.6340224,29.3240665 38.1941674,22.7639215 38.1941674,14.6715726 C38.1941674,6.57922368 31.6340224,0.0190787204 23.5416735,0.0190787204 C15.4493246,0.0190787204 8.88917966,6.57922368 8.88917966,14.6715726 C8.88917966,22.7639215 15.4493246,29.3240665 23.5416735,29.3240665 Z M34.0523957,34.2082312 L13.0211829,34.2082312 C10.6337153,34.2093302 8.59694107,35.9362503 8.20539657,38.2913927 L0.0683783524,87.133039 C-0.166957522,88.5485838 0.232108973,89.996 1.15960938,91.0909397 C2.08710979,92.1858793 3.44919091,92.8175461 4.88416457,92.8182066 L8.88917966,92.8182066 L9.0426883,136.115835 C9.0426883,138.813285 11.2294033,141 13.9268529,141 L33.4635113,141 C34.7588723,141 36.0011787,140.48542 36.9171373,139.569461 C37.8330959,138.653503 38.347676,137.411196 38.347676,136.115835 L38.1941674,92.8182066 L42.189414,92.8182066 C43.6255482,92.8209447 44.9898051,92.1902296 45.9180572,91.0944026 C46.8463094,89.9985755 47.2440794,88.5491696 47.0052003,87.133039 L38.8681821,38.2913927 C38.4766376,35.9362503 36.4398634,34.2093302 34.0523957,34.2082312 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"144px\\\" height=\\\"152px\\\" viewBox=\\\"0 0 144 152\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>pie (2)</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"pie-(2)\\\" transform=\\\"translate(0.000000, -0.612903)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M72.1778824,12.9606446 L72.1778824,73.6462877 C72.1779317,75.129331 72.9386663,76.5065116 74.1881954,77.2856176 C75.4377246,78.0647237 76.9977039,78.1345538 78.3105882,77.4701504 L128.354824,52.1402676 L132.666353,49.9503148 C134.757503,48.8920984 137.302156,49.7461658 138.350118,51.857969 L138.468706,52.1060495 L138.782118,52.8930638 C140.942118,58.6416896 144,65.8873535 144,83.8518095 C144,116.316148 115.123765,152.612903 73.2282353,152.612903 C31.3242354,152.612903 0,119.994584 0,80.8406245 C0,44.5353146 27.216,13.7391044 62.2588236,9.22232682 C64.122353,8.98280072 65.9265883,8.80315611 67.6715294,8.69194766 C68.8395088,8.61630135 69.986418,9.03213213 70.8400527,9.84074781 C71.6936873,10.6493635 72.1779411,11.7786714 72.1778824,12.9606446 Z M90.0254118,0.659269609 C88.9814749,0.488081123 87.9163292,0.795987208 87.1201941,1.49909291 C86.324059,2.20219861 85.8798887,3.22724309 85.9087059,4.29493319 L85.9087059,54.6039644 C85.9087059,56.9393437 87.6028236,57.8717845 89.5680001,56.7511446 L133.149176,31.9088684 C134.092985,31.4117209 134.762111,30.50855 134.968019,29.4538349 C135.173928,28.3991197 134.894328,27.3070442 134.208,26.4853136 C134.208,26.4853136 133.538824,25.5357637 132.446118,24.3381334 C127.296,18.6921614 122.832,14.7399812 116.860235,10.9417819 C109.345997,6.07770841 100.978781,2.71218494 92.2108235,1.0271132 C89.9745882,0.599388123 90.0254118,0.659269609 90.0254118,0.659269609 L90.0254118,0.659269609 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"151px\\\" height=\\\"170px\\\" viewBox=\\\"0 0 151 170\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>radar</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"radar\\\" transform=\\\"translate(0.500000, 0.000000)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M79.573911,32.0195055 C79.7511468,32.0807796 79.9252225,32.1507623 80.0954971,32.2291958 L126.376239,53.5077701 C128.225278,54.3572545 129.374745,56.2354539 129.285085,58.2607506 L126.927916,110.733256 C126.832633,112.851954 125.405699,114.680595 123.367088,115.296516 L76.444394,129.315811 C75.5054275,129.595861 74.5046062,129.595861 73.5656397,129.315811 L32.4706683,117.053921 C30.8367372,116.566659 29.5635821,115.286115 29.0909814,113.654618 C28.6183807,112.023122 29.0111288,110.264354 30.133561,108.985836 L59.2822032,75.635091 C59.7218624,75.142978 60.0532763,74.5647698 60.2551619,73.937598 L73.2246026,35.1848307 C74.1062345,32.570839 76.9431645,31.1565423 79.573911,32.0195055 L79.573911,32.0195055 Z M139.476076,121.926724 L75.0000016,158.991984 L10.5239274,121.926724 L10.5239274,47.816176 L75.0000016,10.7509165 L139.476076,47.816176 L139.476076,121.926724 Z M146.998953,40.6068232 L77.5076273,0.665810956 C75.9548023,-0.221936985 74.0452007,-0.221936985 72.4923757,0.665810956 L3.00105014,40.6068232 C1.44784731,41.4971353 0.491395456,43.1462367 0.493424274,44.9304378 L0.493424274,124.812462 C0.493424274,126.599823 1.44632208,128.247389 3.00105014,129.136077 L72.4923757,169.077089 C74.047355,169.95676 75.9526481,169.95676 77.5076273,169.077089 L146.998953,129.136077 C148.550638,128.244253 149.506533,126.596111 149.506579,124.812462 L149.506579,44.9304378 C149.506533,43.1467894 148.550638,41.4986473 146.998953,40.6068232 L146.998953,40.6068232 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"167px\\\" height=\\\"162px\\\" viewBox=\\\"0 0 167 162\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>rich</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"rich\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M5.52634288,101.24857 L96.0005147,101.24857 C98.7764873,101.24857 101.026858,98.9820436 101.026858,96.1861415 C101.026858,93.3902395 98.7764873,91.123713 96.0005147,91.123713 L5.52634288,91.123713 C2.75037036,91.123713 0.5,93.3902395 0.5,96.1861415 C0.5,98.9820436 2.75037036,101.24857 5.52634288,101.24857 Z M75.8951432,121.498284 L5.52634288,121.498284 C2.75037036,121.498284 0.5,123.76481 0.5,126.560713 C0.5,129.356615 2.75037036,131.623141 5.52634288,131.623141 L75.8951432,131.623141 C78.6711157,131.623141 80.9214861,129.356615 80.9214861,126.560713 C80.9214861,123.76481 78.6711157,121.498284 75.8951432,121.498284 Z M146.394628,92.0653247 L128.923061,116.435856 L146.394628,116.435856 L146.394628,92.0653247 Z M166.5,60.749142 L166.5,151.872855 C166.5,157.464659 161.999259,161.997712 156.447314,161.997712 C150.895369,161.997712 146.394628,157.464659 146.394628,151.872855 L146.394628,136.68557 L114.406982,136.68557 L99.2575849,157.806021 C96.0041451,162.338178 89.7188607,163.355849 85.2190093,160.079052 C80.7191578,156.802254 79.7087415,150.471846 82.9621813,145.939689 L148.304639,54.8261007 C148.455429,54.6033538 148.706746,54.4919804 148.867589,54.2894832 C149.318111,53.7697312 149.823755,53.3011987 150.375492,52.892253 C150.857637,52.4854402 151.379728,52.1292264 151.933658,51.829143 C152.481136,51.5631055 153.053631,51.3528145 153.642615,51.2014019 C154.31205,50.9842108 155.003114,50.8416105 155.703415,50.7761579 C155.954733,50.7559082 156.185944,50.624285 156.447314,50.624285 C156.819264,50.624285 157.130897,50.7964076 157.492794,50.836907 C158.850886,50.9717079 160.164137,51.3999382 161.342972,52.0923893 C161.674711,52.2746367 162.036608,52.3151361 162.338188,52.537883 C162.559347,52.7100056 162.659874,52.9428773 162.87098,53.1251247 C163.403773,53.5807433 163.836038,54.0869861 164.268304,54.6337284 C164.650306,55.1399712 165.022255,55.6259644 165.30373,56.1929564 C165.585206,56.7498235 165.766154,57.3370652 165.947102,57.9546815 C166.138103,58.6330469 166.298946,59.2709129 166.34921,59.969528 C166.369315,60.2428992 166.5,60.4757709 166.5,60.749142 L166.5,60.749142 Z M55.7897717,151.872855 L5.52634288,151.872855 C2.75037036,151.872855 0.5,154.139381 0.5,156.935284 C0.5,159.731186 2.75037036,161.997712 5.52634288,161.997712 L55.7897717,161.997712 C58.5657442,161.997712 60.8161146,159.731186 60.8161146,156.935284 C60.8161146,154.139381 58.5657442,151.872855 55.7897717,151.872855 Z M86.3887335,40.499428 L161.100608,40.499428 C164.04791,40.499428 166.437171,38.2329016 166.437171,35.4369995 C166.437171,32.6410974 164.04791,30.374571 161.100608,30.374571 L86.3887335,30.374571 C83.4414314,30.374571 81.052171,32.6410974 81.052171,35.4369995 C81.052171,38.2329016 83.4414314,40.499428 86.3887335,40.499428 Z M86.3887335,10.124857 L161.100608,10.124857 C164.04791,10.124857 166.437171,7.85833056 166.437171,5.0624285 C166.437171,2.26652644 164.04791,1.71199625e-16 161.100608,0 L86.3887335,0 C83.4414314,-1.71199625e-16 81.052171,2.26652644 81.052171,5.0624285 C81.052171,7.85833056 83.4414314,10.124857 86.3887335,10.124857 Z M5.6570278,70.873999 L60.9467995,70.873999 C63.722772,70.873999 65.9731424,68.6074726 65.9731424,65.8115705 L65.9731424,5.0624285 C65.9731424,2.26652644 63.722772,1.71199625e-16 60.9467995,0 L5.6570278,0 C2.88105528,-1.71199625e-16 0.630684915,2.26652644 0.630684915,5.0624285 L0.630684915,65.8115705 C0.630684915,68.6074726 2.88105528,70.873999 5.6570278,70.873999 Z M81.052171,65.8115705 C81.052171,63.0156685 83.3025414,60.749142 86.0785139,60.749142 L116.236571,60.749142 C119.012544,60.749142 121.262914,63.0156685 121.262914,65.8115705 C121.262914,68.6074726 119.012544,70.873999 116.236571,70.873999 L86.0785139,70.873999 C83.3025414,70.873999 81.052171,68.6074726 81.052171,65.8115705 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"139px\\\" viewBox=\\\"0 0 175 139\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>sankey</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"sankey\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M4.60195168,138.058552 C2.06036395,138.058552 3.11254728e-16,135.998188 0,133.4566 L0,115.048793 C-3.11254732e-16,112.507205 2.06036398,110.446841 4.60195174,110.446841 C7.14353951,110.446841 9.20390349,112.507205 9.20390349,115.048793 L9.20390349,133.4566 C9.20390349,134.677113 8.71905638,135.847638 7.856023,136.710671 C6.99298962,137.573705 5.82246517,138.058552 4.60195168,138.058552 M4.60195168,106.820503 C2.06036395,106.820503 3.11254728e-16,104.760139 0,102.218552 L0,4.60195168 C-3.11254732e-16,2.06036391 2.06036398,-6.74114049e-08 4.60195174,-6.74114054e-08 C7.14353951,-6.74114058e-08 9.20390349,2.06036391 9.20390349,4.60195168 L9.20390349,102.218552 C9.20390349,103.439065 8.71905638,104.60959 7.856023,105.472623 C6.99298962,106.335656 5.82246517,106.820503 4.60195168,106.820503\\\" id=\\\"Shape\\\" fill=\\\"#5067A2\\\"></path> <path d=\\\"M4.60195168,106.820503 C2.06036395,106.820503 3.11254728e-16,104.760139 0,102.218552 L0,4.60195168 C-3.11254732e-16,2.06036391 2.06036398,-6.74114049e-08 4.60195174,-6.74114054e-08 C7.14353951,-6.74114058e-08 9.20390349,2.06036391 9.20390349,4.60195168 L9.20390349,102.218552 C9.20390349,103.439065 8.71905638,104.60959 7.856023,105.472623 C6.99298962,106.335656 5.82246517,106.820503 4.60195168,106.820503\\\" id=\\\"Path\\\" fill=\\\"#5067A2\\\"></path> <path d=\\\"M87.4370826,64.4273241 C86.2165692,64.4273241 85.0460447,63.942477 84.1830114,63.0794436 C83.319978,62.2164103 82.8351309,61.0458858 82.835131,59.8253723 L82.835131,4.60195168 C82.835131,2.06036391 84.8954949,-6.74113054e-08 87.4370827,-6.74113059e-08 C89.9786705,-6.74113063e-08 92.0390345,2.06036391 92.0390345,4.60195168 L92.0390345,59.8253723 C92.0390345,61.0458858 91.5541874,62.2164103 90.691154,63.0794437 C89.8281206,63.9424771 88.6575962,64.4273242 87.4370826,64.4273241 M170.272214,38.2054031 C167.730626,38.2054031 165.670262,36.1450392 165.670262,33.6034515 L165.670262,4.60195168 C165.670262,2.06036391 167.730626,-6.74114049e-08 170.272214,-6.74114054e-08 C172.813801,-6.74114058e-08 174.874165,2.06036391 174.874165,4.60195168 L174.874165,33.6034515 C174.874165,34.823965 174.389318,35.9944894 173.526285,36.8575227 C172.663252,37.7205561 171.492727,38.2054032 170.272214,38.2054031 M105.84489,138.058552 C104.624376,138.058552 103.453852,137.573705 102.590818,136.710671 C101.727785,135.847638 101.242938,134.677113 101.242938,133.4566 L101.242938,78.2331793 C101.242938,75.6915915 103.303302,73.6312276 105.84489,73.6312276 C108.386477,73.6312276 110.446841,75.6915915 110.446841,78.2331793 L110.446841,133.4566 C110.446841,135.998188 108.386477,138.058552 105.84489,138.058552 M170.272214,138.058552 C167.730626,138.058552 165.670262,135.998188 165.670262,133.4566 L165.670262,48.3020853 C165.670262,45.7604975 167.730626,43.7001336 170.272214,43.7001336 C172.813801,43.7001336 174.874165,45.7604975 174.874165,48.3020853 L174.874165,133.4566 C174.874165,134.677113 174.389318,135.847638 173.526285,136.710671 C172.663252,137.573705 171.492727,138.058552 170.272214,138.058552\\\" id=\\\"Shape\\\" fill=\\\"#5067A2\\\"></path> <polygon id=\\\"Path\\\" fill=\\\"#95A5C8\\\" points=\\\"110.446841 133.4566 165.670262 133.4566 165.670262 78.2331793 110.446841 78.2331793\\\"></polygon> <polygon id=\\\"Path\\\" fill=\\\"#5067A2\\\" points=\\\"165.670262 133.4566 174.874165 133.4566 174.874165 78.2331793 165.670262 78.2331793\\\"></polygon> <path d=\\\"M165.670262,77.9478582 C124.491998,75.6100668 130.198418,59.8345763 92.0390345,59.8253723 L92.0390345,32.213662 C124.832542,32.2228659 136.825229,48.0167643 165.670262,48.6242219 L165.670262,77.9478582\\\" id=\\\"Path\\\" fill=\\\"#95A5C8\\\"></path> <path d=\\\"M92.0390345,59.8253723 L92.0022188,59.8253723 L92.0022188,32.213662 L92.0390345,32.213662 L92.0390345,59.8253723 M174.874165,78.2331793 C171.56076,78.2055676 168.505064,78.1135285 165.670262,77.9478582 L165.670262,48.6242219 L167.400596,48.6426296 C169.765999,48.6426296 172.260257,48.5413867 174.874165,48.3204931 L174.874165,78.2331793\\\" id=\\\"Shape\\\" fill=\\\"#5067A2\\\"></path> <polygon id=\\\"Path\\\" fill=\\\"#95A5C8\\\" points=\\\"92.0390345 32.213662 165.670262 32.213662 165.670262 4.60195168 92.0390345 4.60195168\\\"></polygon> <path d=\\\"M82.835131,32.213662 L92.0390345,32.213662 L92.0390345,4.60195168 L82.835131,4.60195168 L82.835131,32.213662 Z M165.670262,32.213662 L174.506009,32.213662 L174.506009,4.60195168 L165.670262,4.60195168 L165.670262,32.213662 Z\\\" id=\\\"Shape\\\" fill=\\\"#5067A2\\\"></path> <polygon id=\\\"Path\\\" fill=\\\"#95A5C8\\\" points=\\\"9.20390349 59.8253723 82.835131 59.8253723 82.835131 4.60195168 9.20390349 4.60195168\\\"></polygon> <polyline id=\\\"Path\\\" fill=\\\"#5067A2\\\" points=\\\"82.835131 59.8253723 82.835131 4.60195168 82.835131 59.8253723\\\"></polyline> <polygon id=\\\"Path\\\" fill=\\\"#95A5C8\\\" points=\\\"9.20390349 133.4566 101.242938 133.4566 101.242938 115.048793 9.20390349 115.048793\\\"></polygon> <polygon id=\\\"Path\\\" fill=\\\"#5067A2\\\" points=\\\"101.242938 133.4566 110.446841 133.4566 110.446841 115.048793 101.242938 115.048793\\\"></polygon> <path d=\\\"M101.242938,115.048793 C43.4792398,114.699045 52.1585208,101.445424 9.20390349,101.445424 L9.20390349,59.8253723 C56.5579867,59.8253723 47.7682589,78.1319363 101.242938,78.2331793 L101.242938,115.048793\\\" id=\\\"Path\\\" fill=\\\"#95A5C8\\\"></path> <path d=\\\"M101.675521,115.048793 L101.242938,115.048793 L101.242938,78.2331793 L101.675521,78.2331793 C104.335449,78.2331793 100.46981,113.723431 101.675521,115.048793\\\" id=\\\"Path\\\" fill=\\\"#5067A2\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"138px\\\" viewBox=\\\"0 0 175 138\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>scatter</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"scatter\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M173.526285,129.202529 C172.663252,128.339495 171.492727,127.854648 170.272214,127.854648 L9.20390349,127.854648 L9.20390349,4.60195168 C9.20390349,2.06036391 7.14353951,-6.74112924e-08 4.60195174,-6.74112925e-08 C2.06036398,-6.74112927e-08 3.11254732e-16,2.06036391 0,4.60195168 L0,132.4566 C3.11254728e-16,134.998188 2.06036395,137.058552 4.60195168,137.058552 L170.272214,137.058552 C171.492727,137.058552 172.663252,136.573705 173.526285,135.710671 C174.389318,134.847638 174.874165,133.677113 174.874165,132.4566 C174.874165,131.236086 174.389318,130.065562 173.526285,129.202529 Z M151.864407,12.8058552 C155.15291,12.8054572 158.191783,14.5596242 159.836149,17.4074853 C161.480516,20.2553464 161.480516,23.7641708 159.836149,26.6120319 C158.191783,29.459893 155.15291,31.21406 151.864407,31.213662 C146.781666,31.2130468 142.661617,27.0924991 142.661617,22.0097586 C142.661617,16.9270181 146.781666,12.8064703 151.864407,12.8058552 Z M142.660503,58.8253723 C147.743679,58.8253723 151.864407,62.9461003 151.864407,68.0292758 C151.864407,73.1124513 147.743679,77.2331793 142.660503,77.2331793 C137.577328,77.2331793 133.4566,73.1124513 133.4566,68.0292758 C133.4566,62.9461003 137.577328,58.8253723 142.660503,58.8253723 Z M124.252696,40.4175655 C127.5412,40.4171675 130.580072,42.1713345 132.224439,45.0191956 C133.868806,47.8670567 133.868806,51.3758811 132.224439,54.2237422 C130.580072,57.0716033 127.5412,58.8257703 124.252696,58.8253723 C119.169956,58.8247572 115.049907,54.7042094 115.049907,49.6214689 C115.049907,44.5387284 119.169956,40.4181807 124.252696,40.4175655 L124.252696,40.4175655 Z M105.84489,22.0097586 C109.133393,22.0093606 112.172266,23.7635277 113.816632,26.6113888 C115.460999,29.4592498 115.460999,32.9680743 113.816632,35.8159354 C112.172266,38.6637965 109.133393,40.4179635 105.84489,40.4175655 C100.762149,40.4169503 96.6421001,36.2964026 96.6421001,31.2136621 C96.6421001,26.1309216 100.762149,22.0103738 105.84489,22.0097586 L105.84489,22.0097586 Z M105.84489,58.8253723 C110.928065,58.8253723 115.048793,62.9461003 115.048793,68.0292758 C115.048793,73.1124513 110.928065,77.2331793 105.84489,77.2331793 C100.761714,77.2331793 96.6409861,73.1124513 96.6409861,68.0292758 C96.6409861,62.9461003 100.761714,58.8253723 105.84489,58.8253723 L105.84489,58.8253723 Z M87.4370826,77.2331793 C90.8200008,77.0784213 94.0146452,78.7938663 95.7543045,81.6993216 C97.4939639,84.6047768 97.4975937,88.2308616 95.7637545,91.1397939 C94.0299154,94.0487262 90.8387117,95.7705634 87.4554905,95.6225784 C82.5370015,95.4074394 78.6587219,91.3598697 78.6537937,86.4366802 C78.6488656,81.5134907 82.5190342,77.4581647 87.4370826,77.2331793 L87.4370826,77.2331793 Z M59.8253723,68.0292758 C63.1138756,68.0288778 66.1527483,69.7830448 67.7971148,72.6309059 C69.4414814,75.478767 69.4414814,78.9875915 67.7971148,81.8354525 C66.1527483,84.6833136 63.1138756,86.4374807 59.8253723,86.4370826 C54.7426318,86.4364675 50.6225828,82.3159197 50.6225828,77.2331792 C50.6225828,72.1504387 54.7426318,68.029891 59.8253723,68.0292758 L59.8253723,68.0292758 Z M32.213662,95.6409861 C35.5021653,95.6405881 38.541038,97.3947552 40.1854045,100.242616 C41.8297711,103.090477 41.8297711,106.599302 40.1854045,109.447163 C38.541038,112.295024 35.5021653,114.049191 32.213662,114.048793 C27.1309215,114.048178 23.0108725,109.92763 23.0108725,104.84489 C23.0108725,99.762149 27.1309215,95.6416013 32.213662,95.6409861 L32.213662,95.6409861 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"176px\\\" height=\\\"154px\\\" viewBox=\\\"0 0 176 154\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>sunburst</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"sunburst\\\" transform=\\\"translate(-0.500000, -0.495167)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M119.233629,98.0044542 L110.718691,87.8510962 C116.698944,81.6134116 119.776927,73.1460671 119.198407,64.5239101 L132.221771,61.7588152 C132.389075,63.3350954 132.468325,64.9289877 132.468325,66.5404921 C132.486789,78.3855449 127.713147,89.7343283 119.233629,98.0044542 L119.233629,98.0044542 Z M63.3185781,30.3829135 C74.7931609,22.4121709 89.3686325,20.3583561 102.598787,24.8479794 C115.828942,29.3376027 126.144611,39.8381699 130.399028,53.1465133 L117.38447,55.9116082 C114.163414,47.1482037 107.14477,40.3166874 98.2978797,37.3338959 C89.4509892,34.3511045 79.7290566,35.5384174 71.8599325,40.5626897 L63.3185781,30.3829135 L63.3185781,30.3829135 Z M57.4981296,97.8547516 L67.6773104,89.3128978 C73.1543438,94.3147256 80.4453141,97.3616135 88.4495316,97.3616137 C93.8284022,97.3676833 99.1146581,95.9617789 103.779942,93.2844195 L112.365323,103.508226 C105.247152,108.132446 96.9377023,110.586264 88.4495316,110.570666 C76.8578752,110.587037 65.7306915,106.015602 57.4981296,97.8547516 L57.4981296,97.8547516 Z M51.880208,91.0741048 C47.0035405,83.8229191 44.4062144,75.2791485 44.4219328,66.5404921 C44.4219328,54.7315996 49.0624416,44.0146553 56.6263832,36.1068361 L65.194154,46.3130303 C60.3076881,51.9176198 57.6201378,59.1046557 57.6302124,66.5404921 C57.6302124,72.3876992 59.2592335,77.8562467 62.0858054,82.5146391 L51.880208,91.0741048 L51.880208,91.0741048 Z M40.5915316,112.05008 L50.7354904,103.534644 C60.658337,113.682313 74.2570793,119.394563 88.4495316,119.3767 C99.4212094,119.3767 109.618001,116.030407 118.062495,110.306485 L126.586238,120.468649 C115.441046,128.370969 102.111678,132.606084 88.4495316,132.585752 C70.3533434,132.605952 53.0459635,125.179425 40.5915316,112.05008 L40.5915316,112.05008 Z M0.5,62.1374747 C1.61718015,39.3368661 11.5653323,17.8665508 28.2373873,2.27405071 L36.7435195,12.4097967 C23.0478109,25.4703646 14.8209875,43.2437342 13.7258907,62.1374747 L0.5,62.1374747 Z M0.5,70.9435094 L13.7258907,70.9435094 C14.5580363,85.4042184 19.5854188,99.3091254 28.1933598,110.958131 L18.0582064,119.464761 C7.47186066,105.41813 1.35420505,88.5122858 0.5,70.9435094 L0.5,70.9435094 Z M22.5490216,62.1374747 C23.6176776,45.8469855 30.7006658,30.5346593 42.4230797,19.1728312 L50.9380174,29.3261893 C42.1806215,38.1364527 36.8165849,49.7571326 35.7925234,62.1374747 L22.5490216,62.1374747 L22.5490216,62.1374747 Z M22.5490216,70.9435094 L35.7925234,70.9435094 C36.5571371,80.2216635 39.7688087,89.1310032 45.0999577,96.7628032 L34.9559989,105.278239 C27.6604148,95.2350677 23.3587128,83.3306553 22.5490216,70.9435094 Z M160.064824,88.3354281 C162.208458,81.2692542 163.294499,73.9246962 163.287644,66.5404921 C163.287927,62.7888436 163.014228,59.0421838 162.468731,55.3304099 L175.40404,52.5829271 C177.539642,66.0542744 176.545357,79.8364744 172.498218,92.86173 L160.064824,88.3354281 Z M157.009309,96.5954887 L169.451508,101.130596 C164.453629,112.804913 156.992417,123.261434 147.578597,131.784403 L139.08127,121.666269 C146.731696,114.64362 152.837128,106.105711 157.009309,96.5954887 L157.009309,96.5954887 Z M139.336631,80.7886563 C141.234304,74.0037443 141.75525,66.9076826 140.868791,59.9183539 L153.830516,57.1620651 C155.148964,66.5886629 154.449628,76.187832 151.77883,85.3237642 L139.336631,80.7886563 Z M136.263504,89.0487169 L148.714509,93.5750188 C145.090489,101.633987 139.889912,108.885878 133.419321,114.903235 L124.913189,104.776295 C129.629614,100.274719 133.477161,94.943361 136.263504,89.0487169 L136.263504,89.0487169 Z M84.1260215,141.268503 L84.1260215,154.495167 C61.049526,153.386197 39.3397973,143.226766 23.7025446,126.218989 L33.8288923,117.71236 C46.9380429,131.745712 64.9535467,140.183088 84.1260215,141.268503 L84.1260215,141.268503 Z M104.94227,2.57345585 C127.679056,8.4576749 145.591926,25.956003 152.007773,48.5497632 L139.046048,51.306052 C133.813709,33.9700374 120.081572,20.5128194 102.64403,15.6328053 L104.933465,2.64390412 L104.94227,2.57345585 L104.94227,2.57345585 Z M96.2952498,0.953145396 L96.2600278,1.12046007 L93.9970091,13.9948829 C81.1068487,12.6102912 68.1594065,16.034712 57.6390179,23.6110727 L49.1240802,13.4665207 C60.4957814,5.02434618 74.2870046,0.475385223 88.4495316,0.495231624 C91.0999932,0.495231624 93.7152325,0.644934198 96.2952498,0.953145396 L96.2952498,0.953145396 Z\\\" id=\\\"Shape\\\"></path> <path d=\\\"M88.5,75.295167 C93.3601058,75.295167 97.3,71.3552728 97.3,66.495167 C97.3,61.6350611 93.3601058,57.6951669 88.5,57.6951669 C83.6398942,57.6951669 79.7,61.6350611 79.7,66.495167 C79.7,71.3552728 83.6398942,75.295167 88.5,75.295167 Z M88.5,88.495167 C76.3497355,88.495167 66.5,78.6454315 66.5,66.495167 C66.5,54.3449025 76.3497355,44.495167 88.5,44.495167 C100.650264,44.495167 110.5,54.3449025 110.5,66.495167 C110.5,78.6454315 100.650264,88.495167 88.5,88.495167 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"130px\\\" viewBox=\\\"0 0 175 130\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>themeriver</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"themeriver\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M4.9275627,42.5798026 C5.20117275,42.5813119 5.47437729,42.5585448 5.74396361,42.5117692 C10.5811329,41.6686599 15.2612908,40.0922201 19.6227791,37.836902 C26.4649962,34.328322 32.1798026,30.0130599 43.8718299,30.0130599 C55.5638572,30.0130599 63.7861807,41.3940774 79.5602127,41.4912681 C95.3342445,41.5787397 96.9864845,31.7333333 115.384662,31.7333333 C132.976158,31.7333333 137.621868,44.6208049 153.6,45.4566438 C160.490812,45.8162491 166.6041,44.9318147 171.930144,42.7936218 C173.778744,42.0602993 174.992296,40.2727177 174.991648,38.2839788 L174.991648,26.7960517 C174.987486,25.3270305 174.319017,23.9387356 173.173189,23.0194311 C172.027362,22.1001266 170.527173,21.7484925 169.092179,22.0628701 C165.933485,22.7529233 162.084738,22.8403949 157.5265,22.3155656 C145.533181,20.9160213 134.676993,5.82232335 119.476386,5.82232348 C102.788762,5.82232348 99.3093394,11.1678056 81.9899772,11.1678056 C64.6803341,11.1678056 59.6069856,0.126955258 43.8718299,0.126955258 C37.3211845,0.126955258 27.9422931,3.46059231 17.9025057,7.6009112 C12.9652241,9.65163256 8.49445708,10.8373576 4.50964317,11.1678056 C1.98627058,11.3754189 0.0451326562,13.4857192 0.0485952544,16.0176158 L0.0583143318,37.7202733 C0.0583143318,40.4027335 2.24510251,42.5798026 4.9275627,42.5798026 M170.132118,85.5283219 C169.634444,85.5282959 169.139638,85.6036638 168.664541,85.7518603 C162.658162,87.6665148 157.633409,88.7064541 153.551405,88.9008353 C139.342141,89.522855 131.343356,82.7583903 118.543356,82.7583903 C104.227183,82.7583903 97.8611998,94.1491269 80.444647,94.1491269 C61.0356872,94.1491269 52.3274108,84.1287775 42.4917236,84.1287775 C35.416249,84.1287775 28.7392558,88.7453303 19.9337889,92.9828398 C15.5893698,95.0627183 10.3507973,96.5594533 4.2083523,97.4438876 C1.81553905,97.7920745 0.0427391378,99.8465342 0.0485952544,102.264541 L0.0485952544,124.297646 C0.0496707163,125.687409 0.645723287,127.010209 1.68608385,127.931672 C2.72644442,128.853134 4.11154706,129.285071 5.491268,129.118299 C10.3313591,128.544875 15.142293,127.670159 19.9337889,126.513592 C29.8083523,124.132422 34.2305239,119.068793 42.4917236,118.388459 C54.5822323,117.397115 66.5658314,123.267426 82.4759302,121.323614 C98.386029,119.379803 106.3265,110.156416 120.273349,108.543052 C132.577676,107.12407 140.586181,111.293546 152.083827,110.030068 C159.995141,109.174791 166.81792,107.085194 172.552164,103.780714 C174.06095,102.911932 174.991067,101.303681 174.991648,99.5626424 L174.991648,90.3878512 C174.991648,87.7040073 172.815962,85.5283219 170.132118,85.5283219\\\" id=\\\"Shape\\\"></path> <path d=\\\"M170.132118,55.1659834 C169.755896,55.1642513 169.380769,55.206657 169.014427,55.2923311 C163.386911,56.5597226 157.597804,56.9530934 151.850569,56.4586181 C133.889749,55.0007593 128.388762,42.7839029 114.655733,42.7839029 C103.264996,42.7839029 93.9249811,52.940319 79.7157175,52.5807138 C59.2668185,52.0656038 52.6578588,41.0733486 42.0738042,41.0733486 C35.5231587,41.0733486 26.5330296,47.0991647 20.6724373,49.7524677 C15.5296251,52.0293301 10.0450596,53.4382394 4.44160976,53.9219438 C1.94888222,54.1623556 0.0470459996,56.2577415 0.0485952544,58.762035 L0.0485952544,80.8242976 C0.0491745866,82.2971429 0.717699925,83.69025 1.86632297,84.6121711 C3.01494602,85.5340923 4.51970635,85.8853329 5.95778278,85.5671982 C11.10094,84.3721963 16.0531556,82.4685044 20.6724373,79.9107062 C28.3018983,75.7703873 34.249962,72.7866364 41.8016705,72.7866364 C56.6037965,72.7866364 63.1252849,82.7778284 79.3755505,82.7778284 C94.6441914,82.7778284 103.070615,71.5231587 117.639484,71.5231587 C132.208352,71.5231587 139.964161,77.2185269 150.314958,77.5295368 C156.48656,77.7044798 163.707821,76.0813971 171.988459,72.6408505 C173.80584,71.8896408 174.991328,70.1171628 174.991648,68.1506454 L174.991648,60.0255125 C174.991648,57.3416686 172.815962,55.1659834 170.132118,55.1659834\\\" id=\\\"Path\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"174px\\\" height=\\\"147px\\\" viewBox=\\\"0 0 174 147\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>tree (1)</title> <desc>Created with Sketch.</desc> <defs> <polygon id=\\\"path-1\\\" points=\\\"2 4.69629167 172 4.69629167 172 146.375 2 146.375\\\"></polygon> </defs> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"tree-(1)\\\"> <mask id=\\\"mask-2\\\" fill=\\\"white\\\"> <use xlink:href=\\\"#path-1\\\"></use> </mask> <g id=\\\"path-1\\\"></g> <path d=\\\"M174,127.4965 C173.994333,137.928125 165.534,146.380667 155.101667,146.375708 C144.670042,146.370042 136.216792,137.909 136.222458,127.476667 C136.222458,127.470292 136.222458,127.464625 136.222458,127.45825 C136.226708,118.755667 142.117917,111.435042 150.127042,109.248417 L150.127042,80.2563333 L91.4625,80.2563333 L91.4625,109.120208 C99.7407917,111.126208 105.890542,118.582125 105.889125,127.476667 C105.889125,127.483042 105.889125,127.490125 105.889125,127.4965 C105.883458,137.928125 97.4224167,146.380667 86.9907917,146.375708 C76.5584583,146.370042 68.1059167,137.909 68.1115833,127.476667 C68.1122917,118.764875 74.0049167,111.440708 82.0182917,109.254083 L82.0182917,80.2563333 L23.3530417,80.2563333 L23.3530417,109.120917 C31.630625,111.127625 37.7789583,118.582833 37.77825,127.476667 C37.77825,127.478792 37.77825,127.480917 37.77825,127.483042 C37.776125,137.915375 29.3179167,146.37075 18.8862917,146.368625 C8.45395833,146.367208 -0.00141666667,137.909 0,127.476667 C0.00141666667,118.764167 5.89545833,111.439292 13.9088333,109.254083 L13.9088333,80.2563333 C13.9088333,75.0500833 18.1425417,70.812125 23.3530417,70.812125 L82.0182917,70.812125 L82.0182917,37.8179167 C74.0006667,35.6305833 68.106625,28.298625 68.1115833,19.58825 C68.1122917,9.15025 76.5705,0.694875 87.0028333,0.696291667 C97.4344583,0.697708333 105.890542,9.15591667 105.889125,19.58825 C105.889125,19.594625 105.889125,19.601 105.889125,19.607375 C105.884167,28.4976667 99.7358333,35.9465 91.4625,37.9517917 L91.4625,70.812125 L150.127042,70.812125 C155.337542,70.812125 159.57125,75.0500833 159.57125,80.2563333 L159.57125,109.113125 C167.853083,111.119125 174.00425,118.579292 174,127.476667 C174,127.483042 174,127.490125 174,127.4965 Z\\\" id=\\\"Fill-1\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"160px\\\" height=\\\"132px\\\" viewBox=\\\"0 0 160 132\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>treemap</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"treemap\\\" transform=\\\"translate(-0.500000, -0.095199)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M84.9444444,79.2951993 L4.9444444,79.2951993 C2.48984554,79.2951993 0.5,81.2651464 0.5,83.6951993 L0.5,127.695199 C0.5,130.125252 2.48984554,132.095199 4.9444444,132.095199 L84.9444444,132.095199 C86.1231844,132.095199 87.2536462,131.631629 88.0871413,130.806469 C88.9206363,129.981309 89.3888889,128.862152 89.3888889,127.695199 L89.3888889,83.6951993 C89.3888889,82.5282467 88.9206363,81.4090895 88.0871413,80.5839295 C87.2536462,79.7587694 86.1231844,79.2951993 84.9444444,79.2951993 L84.9444444,79.2951993 Z M156.055556,105.695199 L102.722222,105.695199 C101.543482,105.695199 100.41302,106.158769 99.5795254,106.983929 C98.7460304,107.80909 98.2777777,108.928247 98.2777777,110.095199 L98.2777777,127.695199 C98.2777777,128.862152 98.7460304,129.981309 99.5795254,130.806469 C100.41302,131.631629 101.543482,132.095199 102.722222,132.095199 L156.055556,132.095199 C158.510154,132.095199 160.5,130.125252 160.5,127.695199 L160.5,110.095199 C160.5,107.665146 158.510154,105.695199 156.055556,105.695199 L156.055556,105.695199 Z M156.055556,61.6951994 L102.722222,61.6951994 C101.543482,61.6951994 100.41302,62.1587694 99.5795254,62.9839295 C98.7460304,63.8090896 98.2777777,64.9282468 98.2777777,66.0951993 L98.2777777,92.4951993 C98.2777777,93.6621519 98.7460304,94.7813091 99.5795254,95.6064692 C100.41302,96.4316293 101.543482,96.8951993 102.722222,96.8951993 L156.055556,96.8951993 C158.510154,96.8951993 160.5,94.9252522 160.5,92.4951993 L160.5,66.0951993 C160.5,63.6651465 158.510154,61.6951994 156.055556,61.6951994 L156.055556,61.6951994 Z M156.055556,0.0951993491 L102.722222,0.0951993491 C101.543482,0.0951993149 100.41302,0.558769393 99.5795254,1.38392945 C98.7460304,2.20908951 98.2777777,3.32824674 98.2777777,4.49519931 L98.2777777,48.4951994 C98.2777777,49.662152 98.7460304,50.7813092 99.5795254,51.6064692 C100.41302,52.4316293 101.543482,52.8951994 102.722222,52.8951993 L156.055556,52.8951993 C158.510154,52.8951993 160.5,50.9252523 160.5,48.4951994 L160.5,4.49519931 C160.5,2.06514643 158.510154,0.0951993491 156.055556,0.0951993491 L156.055556,0.0951993491 Z M89.3888889,4.49519931 L89.3888889,66.0951993 C89.3888889,67.2621519 88.9206363,68.3813091 88.0871413,69.2064692 C87.2536462,70.0316293 86.1231844,70.4951993 84.9444444,70.4951993 L4.9444444,70.4951993 C2.48984554,70.4951993 0.5,68.5252522 0.5,66.0951993 L0.5,4.49519931 C0.5,2.06514643 2.48984554,0.0951993491 4.9444444,0.0951993491 L84.9444444,0.0951993491 C86.1231844,0.0951993149 87.2536462,0.558769393 88.0871413,1.38392945 C88.9206363,2.20908951 89.3888889,3.32824674 89.3888889,4.49519931 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var isObject = require('./isObject'),\n    now = require('./now'),\n    toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nmodule.exports = now;\n","var isObject = require('./isObject'),\n    isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = value.replace(reTrim, '');\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","let raf = null;\nfunction requestAnimationFrame (callback) {\n  if (!raf) {\n    raf = (\n      window.requestAnimationFrame ||\n      window.webkitRequestAnimationFrame ||\n      window.mozRequestAnimationFrame ||\n      function (callback) {\n        return setTimeout(callback, 16)\n      }\n    ).bind(window);\n  }\n  return raf(callback)\n}\n\nlet caf = null;\nfunction cancelAnimationFrame (id) {\n  if (!caf) {\n    caf = (\n      window.cancelAnimationFrame ||\n      window.webkitCancelAnimationFrame ||\n      window.mozCancelAnimationFrame ||\n      function (id) {\n        clearTimeout(id);\n      }\n    ).bind(window);\n  }\n\n  caf(id);\n}\n\nfunction createStyles (styleText) {\n  var style = document.createElement('style');\n  style.type = 'text/css';\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = styleText;\n  } else {\n    style.appendChild(document.createTextNode(styleText));\n  }\n  (document.querySelector('head') || document.body).appendChild(style);\n  return style\n}\n\nfunction createElement (tagName, props = {}) {\n  let elem = document.createElement(tagName);\n  Object.keys(props).forEach(key => {\n    elem[key] = props[key];\n  });\n  return elem\n}\n\nfunction getComputedStyle (elem, prop, pseudo) {\n  // for older versions of Firefox, `getComputedStyle` required\n  // the second argument and may return `null` for some elements\n  // when `display: none`\n  let computedStyle = window.getComputedStyle(elem, pseudo || null) || {\n    display: 'none'\n  };\n\n  return computedStyle[prop]\n}\n\nfunction getRenderInfo (elem) {\n  if (!document.documentElement.contains(elem)) {\n    return {\n      detached: true,\n      rendered: false\n    }\n  }\n\n  let current = elem;\n  while (current !== document) {\n    if (getComputedStyle(current, 'display') === 'none') {\n      return {\n        detached: false,\n        rendered: false\n      }\n    }\n    current = current.parentNode;\n  }\n\n  return {\n    detached: false,\n    rendered: true\n  }\n}\n\nvar css = \".resize-triggers{visibility:hidden;opacity:0;pointer-events:none}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:\\\"\\\";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}\";\n\nlet total = 0;\nlet style = null;\n\nfunction addListener (elem, callback) {\n  if (!elem.__resize_mutation_handler__) {\n    elem.__resize_mutation_handler__ = handleMutation.bind(elem);\n  }\n\n  let listeners = elem.__resize_listeners__;\n\n  if (!listeners) {\n    elem.__resize_listeners__ = [];\n    if (window.ResizeObserver) {\n      let { offsetWidth, offsetHeight } = elem;\n      let ro = new ResizeObserver(() => {\n        if (!elem.__resize_observer_triggered__) {\n          elem.__resize_observer_triggered__ = true;\n          if (elem.offsetWidth === offsetWidth && elem.offsetHeight === offsetHeight) {\n            return\n          }\n        }\n        runCallbacks(elem);\n      });\n\n      // initially display none won't trigger ResizeObserver callback\n      let { detached, rendered } = getRenderInfo(elem);\n      elem.__resize_observer_triggered__ = detached === false && rendered === false;\n      elem.__resize_observer__ = ro;\n      ro.observe(elem);\n    } else if (elem.attachEvent && elem.addEventListener) {\n      // targeting IE9/10\n      elem.__resize_legacy_resize_handler__ = function handleLegacyResize () {\n        runCallbacks(elem);\n      };\n      elem.attachEvent('onresize', elem.__resize_legacy_resize_handler__);\n      document.addEventListener('DOMSubtreeModified', elem.__resize_mutation_handler__);\n    } else {\n      if (!total) {\n        style = createStyles(css);\n      }\n      initTriggers(elem);\n\n      elem.__resize_rendered__ = getRenderInfo(elem).rendered;\n      if (window.MutationObserver) {\n        let mo = new MutationObserver(elem.__resize_mutation_handler__);\n        mo.observe(document, {\n          attributes: true,\n          childList: true,\n          characterData: true,\n          subtree: true\n        });\n        elem.__resize_mutation_observer__ = mo;\n      }\n    }\n  }\n\n  elem.__resize_listeners__.push(callback);\n  total++;\n}\n\nfunction removeListener (elem, callback) {\n  let listeners = elem.__resize_listeners__;\n  if (!listeners) {\n    return\n  }\n\n  if (callback) {\n    listeners.splice(listeners.indexOf(callback), 1);\n  }\n\n  // no listeners exist, or removing all listeners\n  if (!listeners.length || !callback) {\n    // targeting IE9/10\n    if (elem.detachEvent && elem.removeEventListener) {\n      elem.detachEvent('onresize', elem.__resize_legacy_resize_handler__);\n      document.removeEventListener('DOMSubtreeModified', elem.__resize_mutation_handler__);\n      return\n    }\n\n    if (elem.__resize_observer__) {\n      elem.__resize_observer__.unobserve(elem);\n      elem.__resize_observer__.disconnect();\n      elem.__resize_observer__ = null;\n    } else {\n      if (elem.__resize_mutation_observer__) {\n        elem.__resize_mutation_observer__.disconnect();\n        elem.__resize_mutation_observer__ = null;\n      }\n      elem.removeEventListener('scroll', handleScroll);\n      elem.removeChild(elem.__resize_triggers__.triggers);\n      elem.__resize_triggers__ = null;\n    }\n    elem.__resize_listeners__ = null;\n  }\n\n  if (!--total && style) {\n    style.parentNode.removeChild(style);\n  }\n}\n\nfunction getUpdatedSize (elem) {\n  let { width, height } = elem.__resize_last__;\n  let { offsetWidth, offsetHeight } = elem;\n  if (offsetWidth !== width || offsetHeight !== height) {\n    return {\n      width: offsetWidth,\n      height: offsetHeight\n    }\n  }\n  return null\n}\n\nfunction handleMutation () {\n  // `this` denotes the scrolling element\n  let { rendered, detached } = getRenderInfo(this);\n  if (rendered !== this.__resize_rendered__) {\n    if (!detached && this.__resize_triggers__) {\n      resetTriggers(this);\n      this.addEventListener('scroll', handleScroll, true);\n    }\n    this.__resize_rendered__ = rendered;\n    runCallbacks(this);\n  }\n}\n\nfunction handleScroll () {\n  // `this` denotes the scrolling element\n  resetTriggers(this);\n  if (this.__resize_raf__) {\n    cancelAnimationFrame(this.__resize_raf__);\n  }\n  this.__resize_raf__ = requestAnimationFrame(() => {\n    let updated = getUpdatedSize(this);\n    if (updated) {\n      this.__resize_last__ = updated;\n      runCallbacks(this);\n    }\n  });\n}\n\nfunction runCallbacks (elem) {\n  if (!elem || !elem.__resize_listeners__) {\n    return\n  }\n  elem.__resize_listeners__.forEach(callback => {\n    callback.call(elem, elem);\n  });\n}\n\nfunction initTriggers (elem) {\n  let position = getComputedStyle(elem, 'position');\n  if (!position || position === 'static') {\n    elem.style.position = 'relative';\n  }\n\n  elem.__resize_old_position__ = position;\n  elem.__resize_last__ = {};\n\n  let triggers = createElement('div', {\n    className: 'resize-triggers'\n  });\n  let expand = createElement('div', {\n    className: 'resize-expand-trigger'\n  });\n  let expandChild = createElement('div');\n  let contract = createElement('div', {\n    className: 'resize-contract-trigger'\n  });\n  expand.appendChild(expandChild);\n  triggers.appendChild(expand);\n  triggers.appendChild(contract);\n  elem.appendChild(triggers);\n\n  elem.__resize_triggers__ = {\n    triggers,\n    expand,\n    expandChild,\n    contract\n  };\n\n  resetTriggers(elem);\n  elem.addEventListener('scroll', handleScroll, true);\n\n  elem.__resize_last__ = {\n    width: elem.offsetWidth,\n    height: elem.offsetHeight\n  };\n}\n\nfunction resetTriggers (elem) {\n  let { expand, expandChild, contract } = elem.__resize_triggers__;\n\n  // batch read\n  let { scrollWidth: csw, scrollHeight: csh } = contract;\n  let { offsetWidth: eow, offsetHeight: eoh, scrollWidth: esw, scrollHeight: esh } = expand;\n\n  // batch write\n  contract.scrollLeft = csw;\n  contract.scrollTop = csh;\n  expandChild.style.width = eow + 1 + 'px';\n  expandChild.style.height = eoh + 1 + 'px';\n  expand.scrollLeft = esw;\n  expand.scrollTop = esh;\n}\n\nexport { addListener, removeListener };\n","const runningOnBrowser = typeof window !== \"undefined\";\r\n\r\nconst isBot =\r\n\t(runningOnBrowser && !(\"onscroll\" in window)) ||\r\n\t(typeof navigator !== \"undefined\" &&\r\n\t\t/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent));\r\n\r\nconst supportsIntersectionObserver =\r\n\trunningOnBrowser && \"IntersectionObserver\" in window;\r\n\r\nconst supportsClassList =\r\n\trunningOnBrowser && \"classList\" in document.createElement(\"p\");\r\n\r\nconst defaultSettings = {\r\n\telements_selector: \"img\",\r\n\tcontainer: isBot || runningOnBrowser ? document : null,\r\n\tthreshold: 300,\r\n\tthresholds: null,\r\n\tdata_src: \"src\",\r\n\tdata_srcset: \"srcset\",\r\n\tdata_sizes: \"sizes\",\r\n\tdata_bg: \"bg\",\r\n\tdata_poster: \"poster\",\r\n\tclass_loading: \"loading\",\r\n\tclass_loaded: \"loaded\",\r\n\tclass_error: \"error\",\r\n\tload_delay: 0,\r\n\tauto_unobserve: true,\r\n\tcallback_enter: null,\r\n\tcallback_exit: null,\r\n\tcallback_reveal: null,\r\n\tcallback_loaded: null,\r\n\tcallback_error: null,\r\n\tcallback_finish: null,\r\n\tuse_native: false\r\n};\r\n\r\nvar getInstanceSettings = customSettings => {\r\n\treturn Object.assign({}, defaultSettings, customSettings);\r\n};\r\n\r\n/* Creates instance and notifies it through the window element */\r\nconst createInstance = function(classObj, options) {\r\n\tvar event;\r\n\tlet eventString = \"LazyLoad::Initialized\";\r\n\tlet instance = new classObj(options);\r\n\ttry {\r\n\t\t// Works in modern browsers\r\n\t\tevent = new CustomEvent(eventString, { detail: { instance } });\r\n\t} catch (err) {\r\n\t\t// Works in Internet Explorer (all versions)\r\n\t\tevent = document.createEvent(\"CustomEvent\");\r\n\t\tevent.initCustomEvent(eventString, false, false, { instance });\r\n\t}\r\n\twindow.dispatchEvent(event);\r\n};\r\n\r\n/* Auto initialization of one or more instances of lazyload, depending on the \r\n    options passed in (plain object or an array) */\r\nfunction autoInitialize(classObj, options) {\r\n\tif (!options) {\r\n\t\treturn;\r\n\t}\r\n\tif (!options.length) {\r\n\t\t// Plain object\r\n\t\tcreateInstance(classObj, options);\r\n\t} else {\r\n\t\t// Array of objects\r\n\t\tfor (let i = 0, optionsItem; (optionsItem = options[i]); i += 1) {\r\n\t\t\tcreateInstance(classObj, optionsItem);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst dataPrefix = \"data-\";\r\nconst processedDataName = \"was-processed\";\r\nconst timeoutDataName = \"ll-timeout\";\r\nconst trueString = \"true\";\r\n\r\nconst getData = (element, attribute) => {\r\n\treturn element.getAttribute(dataPrefix + attribute);\r\n};\r\n\r\nconst setData = (element, attribute, value) => {\r\n\tvar attrName = dataPrefix + attribute;\r\n\tif (value === null) {\r\n\t\telement.removeAttribute(attrName);\r\n\t\treturn;\r\n\t}\r\n\telement.setAttribute(attrName, value);\r\n};\r\n\r\nconst resetWasProcessedData = element =>\r\n\tsetData(element, processedDataName, null);\r\n\r\nconst setWasProcessedData = element =>\r\n\tsetData(element, processedDataName, trueString);\r\n\r\nconst getWasProcessedData = element =>\r\n\tgetData(element, processedDataName) === trueString;\r\n\r\nconst setTimeoutData = (element, value) =>\r\n\tsetData(element, timeoutDataName, value);\r\n\r\nconst getTimeoutData = element => getData(element, timeoutDataName);\r\n\r\nconst purgeProcessedElements = elements => {\r\n\treturn elements.filter(element => !getWasProcessedData(element));\r\n};\r\n\r\nconst purgeOneElement = (elements, elementToPurge) => {\r\n\treturn elements.filter(element => element !== elementToPurge);\r\n};\r\n\r\nconst safeCallback = (callback, arg1, arg2, arg3) => {\r\n\tif (!callback) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (arg3 !== undefined) {\r\n\t\tcallback(arg1, arg2, arg3);\r\n\t\treturn;\r\n\t}\r\n\tif (arg2 !== undefined) {\r\n\t\tcallback(arg1, arg2);\r\n\t\treturn;\r\n\t}\r\n\tcallback(arg1);\r\n};\r\n\r\nconst updateLoadingCount = (instance, plusMinus) => {\r\n    instance.loadingCount += plusMinus;\r\n    if (instance._elements.length === 0 && instance.loadingCount === 0) {\r\n        safeCallback(instance._settings.callback_finish, instance);\r\n    }\r\n};\r\n\r\nconst getSourceTags = parentTag => {\r\n\tlet sourceTags = [];\r\n\tfor (let i = 0, childTag; (childTag = parentTag.children[i]); i += 1) {\r\n\t\tif (childTag.tagName === \"SOURCE\") {\r\n\t\t\tsourceTags.push(childTag);\r\n\t\t}\r\n\t}\r\n\treturn sourceTags;\r\n};\r\n\r\nconst setAttributeIfValue = (element, attrName, value) => {\r\n\tif (!value) {\r\n\t\treturn;\r\n\t}\r\n\telement.setAttribute(attrName, value);\r\n};\r\n\r\nconst setImageAttributes = (element, settings) => {\r\n\tsetAttributeIfValue(\r\n\t\telement,\r\n\t\t\"sizes\",\r\n\t\tgetData(element, settings.data_sizes)\r\n\t);\r\n\tsetAttributeIfValue(\r\n\t\telement,\r\n\t\t\"srcset\",\r\n\t\tgetData(element, settings.data_srcset)\r\n\t);\r\n\tsetAttributeIfValue(element, \"src\", getData(element, settings.data_src));\r\n};\r\n\r\nconst setSourcesImg = (element, settings) => {\r\n\tconst parent = element.parentNode;\r\n\r\n\tif (parent && parent.tagName === \"PICTURE\") {\r\n\t\tlet sourceTags = getSourceTags(parent);\r\n\t\tsourceTags.forEach(sourceTag => {\r\n\t\t\tsetImageAttributes(sourceTag, settings);\r\n\t\t});\r\n\t}\r\n\r\n\tsetImageAttributes(element, settings);\r\n};\r\n\r\nconst setSourcesIframe = (element, settings) => {\r\n\tsetAttributeIfValue(element, \"src\", getData(element, settings.data_src));\r\n};\r\n\r\nconst setSourcesVideo = (element, settings) => {\r\n\tlet sourceTags = getSourceTags(element);\r\n\tsourceTags.forEach(sourceTag => {\r\n\t\tsetAttributeIfValue(\r\n\t\t\tsourceTag,\r\n\t\t\t\"src\",\r\n\t\t\tgetData(sourceTag, settings.data_src)\r\n\t\t);\r\n\t});\r\n\tsetAttributeIfValue(\r\n\t\telement,\r\n\t\t\"poster\",\r\n\t\tgetData(element, settings.data_poster)\r\n\t);\r\n\tsetAttributeIfValue(element, \"src\", getData(element, settings.data_src));\r\n\telement.load();\r\n};\r\n\r\nconst setSourcesBgImage = (element, settings) => {\r\n\tconst srcDataValue = getData(element, settings.data_src);\r\n\tconst bgDataValue = getData(element, settings.data_bg);\r\n\r\n\tif (srcDataValue) {\r\n\t\telement.style.backgroundImage = `url(\"${srcDataValue}\")`;\r\n\t}\r\n\r\n\tif (bgDataValue) {\r\n\t\telement.style.backgroundImage = bgDataValue;\r\n\t}\r\n};\r\n\r\nconst setSourcesFunctions = {\r\n\tIMG: setSourcesImg,\r\n\tIFRAME: setSourcesIframe,\r\n\tVIDEO: setSourcesVideo\r\n};\r\n\r\nconst setSources = (element, instance) => {\r\n\tconst settings = instance._settings;\r\n\tconst tagName = element.tagName;\r\n\tconst setSourcesFunction = setSourcesFunctions[tagName];\r\n\tif (setSourcesFunction) {\r\n\t\tsetSourcesFunction(element, settings);\r\n\t\tupdateLoadingCount(instance, 1);\r\n\t\tinstance._elements = purgeOneElement(instance._elements, element);\r\n\t\treturn;\r\n\t}\r\n\tsetSourcesBgImage(element, settings);\r\n};\r\n\r\nconst addClass = (element, className) => {\r\n\tif (supportsClassList) {\r\n\t\telement.classList.add(className);\r\n\t\treturn;\r\n\t}\r\n\telement.className += (element.className ? \" \" : \"\") + className;\r\n};\r\n\r\nconst removeClass = (element, className) => {\r\n\tif (supportsClassList) {\r\n\t\telement.classList.remove(className);\r\n\t\treturn;\r\n\t}\r\n\telement.className = element.className.\r\n\t\treplace(new RegExp(\"(^|\\\\s+)\" + className + \"(\\\\s+|$)\"), \" \").\r\n\t\treplace(/^\\s+/, \"\").\r\n\t\treplace(/\\s+$/, \"\");\r\n};\r\n\r\nconst genericLoadEventName = \"load\";\r\nconst mediaLoadEventName = \"loadeddata\";\r\nconst errorEventName = \"error\";\r\n\r\nconst addEventListener = (element, eventName, handler) => {\r\n\telement.addEventListener(eventName, handler);\r\n};\r\n\r\nconst removeEventListener = (element, eventName, handler) => {\r\n\telement.removeEventListener(eventName, handler);\r\n};\r\n\r\nconst addEventListeners = (element, loadHandler, errorHandler) => {\r\n\taddEventListener(element, genericLoadEventName, loadHandler);\r\n\taddEventListener(element, mediaLoadEventName, loadHandler);\r\n\taddEventListener(element, errorEventName, errorHandler);\r\n};\r\n\r\nconst removeEventListeners = (element, loadHandler, errorHandler) => {\r\n\tremoveEventListener(element, genericLoadEventName, loadHandler);\r\n\tremoveEventListener(element, mediaLoadEventName, loadHandler);\r\n\tremoveEventListener(element, errorEventName, errorHandler);\r\n};\r\n\r\nconst eventHandler = function(event, success, instance) {\r\n\tvar settings = instance._settings;\r\n\tconst className = success ? settings.class_loaded : settings.class_error;\r\n\tconst callback = success\r\n\t\t? settings.callback_loaded\r\n\t\t: settings.callback_error;\r\n\tconst element = event.target;\r\n\r\n\tremoveClass(element, settings.class_loading);\r\n\taddClass(element, className);\r\n\tsafeCallback(callback, element, instance);\r\n\r\n\tupdateLoadingCount(instance, -1);\r\n};\r\n\r\nconst addOneShotEventListeners = (element, instance) => {\r\n\tconst loadHandler = event => {\r\n\t\teventHandler(event, true, instance);\r\n\t\tremoveEventListeners(element, loadHandler, errorHandler);\r\n\t};\r\n\tconst errorHandler = event => {\r\n\t\teventHandler(event, false, instance);\r\n\t\tremoveEventListeners(element, loadHandler, errorHandler);\r\n\t};\r\n\taddEventListeners(element, loadHandler, errorHandler);\r\n};\r\n\r\nconst managedTags = [\"IMG\", \"IFRAME\", \"VIDEO\"];\r\n\r\nconst onEnter = (element, entry, instance) => {\r\n\tconst settings = instance._settings;\r\n\tsafeCallback(settings.callback_enter, element, entry, instance);\r\n\tif (!settings.load_delay) {\r\n\t\trevealAndUnobserve(element, instance);\r\n\t\treturn;\r\n\t}\r\n\tdelayLoad(element, instance);\r\n};\r\n\r\nconst revealAndUnobserve = (element, instance) => {\r\n\tvar observer = instance._observer;\r\n\trevealElement(element, instance);\r\n\tif (observer && instance._settings.auto_unobserve) {\r\n\t\tobserver.unobserve(element);\r\n\t}\r\n};\r\n\r\nconst onExit = (element, entry, instance) => {\r\n\tconst settings = instance._settings;\r\n\tsafeCallback(settings.callback_exit, element, entry, instance);\r\n\tif (!settings.load_delay) {\r\n\t\treturn;\r\n\t}\r\n\tcancelDelayLoad(element);\r\n};\r\n\r\nconst cancelDelayLoad = element => {\r\n\tvar timeoutId = getTimeoutData(element);\r\n\tif (!timeoutId) {\r\n\t\treturn; // do nothing if timeout doesn't exist\r\n\t}\r\n\tclearTimeout(timeoutId);\r\n\tsetTimeoutData(element, null);\r\n};\r\n\r\nconst delayLoad = (element, instance) => {\r\n\tvar loadDelay = instance._settings.load_delay;\r\n\tvar timeoutId = getTimeoutData(element);\r\n\tif (timeoutId) {\r\n\t\treturn; // do nothing if timeout already set\r\n\t}\r\n\ttimeoutId = setTimeout(function() {\r\n\t\trevealAndUnobserve(element, instance);\r\n\t\tcancelDelayLoad(element);\r\n\t}, loadDelay);\r\n\tsetTimeoutData(element, timeoutId);\r\n};\r\n\r\nconst revealElement = (element, instance, force) => {\r\n\tvar settings = instance._settings;\r\n\tif (!force && getWasProcessedData(element)) {\r\n\t\treturn; // element has already been processed and force wasn't true\r\n\t}\r\n\tif (managedTags.indexOf(element.tagName) > -1) {\r\n\t\taddOneShotEventListeners(element, instance);\r\n\t\taddClass(element, settings.class_loading);\r\n\t}\r\n\tsetSources(element, instance);\r\n\tsetWasProcessedData(element);\r\n\tsafeCallback(settings.callback_reveal, element, instance);\r\n\tsafeCallback(settings.callback_set, element, instance);\r\n};\r\n\r\nconst isIntersecting = entry =>\r\n\tentry.isIntersecting || entry.intersectionRatio > 0;\r\n\r\nconst getObserverSettings = settings => ({\r\n\troot: settings.container === document ? null : settings.container,\r\n\trootMargin: settings.thresholds || settings.threshold + \"px\"\r\n});\r\n\r\nconst setObserver = instance => {\r\n\tif (!supportsIntersectionObserver) {\r\n\t\treturn false;\r\n\t}\r\n\tinstance._observer = new IntersectionObserver(entries => {\r\n\t\tentries.forEach(entry =>\r\n\t\t\tisIntersecting(entry)\r\n\t\t\t\t? onEnter(entry.target, entry, instance)\r\n\t\t\t\t: onExit(entry.target, entry, instance)\r\n\t\t);\r\n\t}, getObserverSettings(instance._settings));\r\n\treturn true;\r\n};\r\n\r\nconst nativeLazyTags = [\"IMG\", \"IFRAME\"];\r\n\r\nconst shouldUseNative = settings =>\r\n\tsettings.use_native && \"loading\" in HTMLImageElement.prototype;\r\n\r\nconst loadAllNative = instance => {\r\n\tinstance._elements.forEach(element => {\r\n\t\tif (nativeLazyTags.indexOf(element.tagName) === -1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\telement.setAttribute(\"loading\", \"lazy\");\r\n\t\trevealElement(element, instance);\r\n\t});\r\n};\r\n\r\nconst nodeSetToArray = nodeSet => Array.prototype.slice.call(nodeSet);\r\n\r\nconst queryElements = settings =>\r\n\tsettings.container.querySelectorAll(settings.elements_selector);\r\n\r\nconst getElements = (elements, settings) =>\r\n\tpurgeProcessedElements(nodeSetToArray(elements || queryElements(settings)));\r\n\r\nconst retryLazyLoad = instance => {\r\n\tvar settings = instance._settings;\r\n\tvar errorElements = settings.container.querySelectorAll(\r\n\t\t\".\" + settings.class_error\r\n\t);\r\n\terrorElements.forEach(element => {\r\n\t\tremoveClass(element, settings.class_error);\r\n\t\tresetWasProcessedData(element);\r\n\t});\r\n\tinstance.update();\r\n};\r\n\r\nconst setOnlineCheck = instance => {\r\n\tif (!runningOnBrowser) {\r\n\t\treturn;\r\n\t}\r\n\twindow.addEventListener(\"online\", event => {\r\n\t\tretryLazyLoad(instance);\r\n\t});\r\n};\r\n\r\nconst LazyLoad = function(customSettings, elements) {\r\n    this._settings = getInstanceSettings(customSettings);\r\n    this.loadingCount = 0;\r\n    setObserver(this);\r\n    this.update(elements);\r\n    setOnlineCheck(this);\r\n};\r\n\r\nLazyLoad.prototype = {\r\n    update: function(elements) {\r\n        var settings = this._settings;\r\n        this._elements = getElements(elements, settings);\r\n        if (isBot || !this._observer) {\r\n            this.loadAll();\r\n            return;\r\n        }\r\n        if (shouldUseNative(settings)) {\r\n            loadAllNative(this);\r\n            this._elements = getElements(elements, settings);\r\n        }\r\n        this._elements.forEach(element => {\r\n            this._observer.observe(element);\r\n        });\r\n    },\r\n\r\n    destroy: function() {\r\n        if (this._observer) {\r\n            this._elements.forEach(element => {\r\n                this._observer.unobserve(element);\r\n            });\r\n            this._observer = null;\r\n        }\r\n        this._elements = null;\r\n        this._settings = null;\r\n    },\r\n\r\n    load: function(element, force) {\r\n        revealElement(element, this, force);\r\n    },\r\n\r\n    loadAll: function() {\r\n        this._elements.forEach(element => {\r\n            revealAndUnobserve(element, this);\r\n        });\r\n    }\r\n};\r\n\r\n/* Automatic instances creation if required (useful for async script loading) */\r\nif (runningOnBrowser) {\r\n    autoInitialize(LazyLoad, window.lazyLoadOptions);\r\n}\r\n\r\nexport default LazyLoad;\r\n","/*!\n * vue-i18n v8.20.0 \n * (c) 2020 kazuya kawaguchi\n * Released under the MIT License.\n */\n/*  */\n\n/**\n * constants\n */\n\nvar numberFormatKeys = [\n  'style',\n  'currency',\n  'currencyDisplay',\n  'useGrouping',\n  'minimumIntegerDigits',\n  'minimumFractionDigits',\n  'maximumFractionDigits',\n  'minimumSignificantDigits',\n  'maximumSignificantDigits',\n  'localeMatcher',\n  'formatMatcher',\n  'unit'\n];\n\n/**\n * utilities\n */\n\nfunction warn (msg, err) {\n  if (typeof console !== 'undefined') {\n    console.warn('[vue-i18n] ' + msg);\n    /* istanbul ignore if */\n    if (err) {\n      console.warn(err.stack);\n    }\n  }\n}\n\nfunction error (msg, err) {\n  if (typeof console !== 'undefined') {\n    console.error('[vue-i18n] ' + msg);\n    /* istanbul ignore if */\n    if (err) {\n      console.error(err.stack);\n    }\n  }\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (obj) {\n  return obj !== null && typeof obj === 'object'\n}\n\nfunction isBoolean (val) {\n  return typeof val === 'boolean'\n}\n\nfunction isString (val) {\n  return typeof val === 'string'\n}\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n  return toString.call(obj) === OBJECT_STRING\n}\n\nfunction isNull (val) {\n  return val === null || val === undefined\n}\n\nfunction parseArgs () {\n  var args = [], len = arguments.length;\n  while ( len-- ) args[ len ] = arguments[ len ];\n\n  var locale = null;\n  var params = null;\n  if (args.length === 1) {\n    if (isObject(args[0]) || Array.isArray(args[0])) {\n      params = args[0];\n    } else if (typeof args[0] === 'string') {\n      locale = args[0];\n    }\n  } else if (args.length === 2) {\n    if (typeof args[0] === 'string') {\n      locale = args[0];\n    }\n    /* istanbul ignore if */\n    if (isObject(args[1]) || Array.isArray(args[1])) {\n      params = args[1];\n    }\n  }\n\n  return { locale: locale, params: params }\n}\n\nfunction looseClone (obj) {\n  return JSON.parse(JSON.stringify(obj))\n}\n\nfunction remove (arr, item) {\n  if (arr.length) {\n    var index = arr.indexOf(item);\n    if (index > -1) {\n      return arr.splice(index, 1)\n    }\n  }\n}\n\nfunction includes (arr, item) {\n  return !!~arr.indexOf(item)\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n  return hasOwnProperty.call(obj, key)\n}\n\nfunction merge (target) {\n  var arguments$1 = arguments;\n\n  var output = Object(target);\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments$1[i];\n    if (source !== undefined && source !== null) {\n      var key = (void 0);\n      for (key in source) {\n        if (hasOwn(source, key)) {\n          if (isObject(source[key])) {\n            output[key] = merge(output[key], source[key]);\n          } else {\n            output[key] = source[key];\n          }\n        }\n      }\n    }\n  }\n  return output\n}\n\nfunction looseEqual (a, b) {\n  if (a === b) { return true }\n  var isObjectA = isObject(a);\n  var isObjectB = isObject(b);\n  if (isObjectA && isObjectB) {\n    try {\n      var isArrayA = Array.isArray(a);\n      var isArrayB = Array.isArray(b);\n      if (isArrayA && isArrayB) {\n        return a.length === b.length && a.every(function (e, i) {\n          return looseEqual(e, b[i])\n        })\n      } else if (!isArrayA && !isArrayB) {\n        var keysA = Object.keys(a);\n        var keysB = Object.keys(b);\n        return keysA.length === keysB.length && keysA.every(function (key) {\n          return looseEqual(a[key], b[key])\n        })\n      } else {\n        /* istanbul ignore next */\n        return false\n      }\n    } catch (e) {\n      /* istanbul ignore next */\n      return false\n    }\n  } else if (!isObjectA && !isObjectB) {\n    return String(a) === String(b)\n  } else {\n    return false\n  }\n}\n\n/*  */\n\nfunction extend (Vue) {\n  if (!Vue.prototype.hasOwnProperty('$i18n')) {\n    // $FlowFixMe\n    Object.defineProperty(Vue.prototype, '$i18n', {\n      get: function get () { return this._i18n }\n    });\n  }\n\n  Vue.prototype.$t = function (key) {\n    var values = [], len = arguments.length - 1;\n    while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n\n    var i18n = this.$i18n;\n    return i18n._t.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))\n  };\n\n  Vue.prototype.$tc = function (key, choice) {\n    var values = [], len = arguments.length - 2;\n    while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n\n    var i18n = this.$i18n;\n    return i18n._tc.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this, choice ].concat( values ))\n  };\n\n  Vue.prototype.$te = function (key, locale) {\n    var i18n = this.$i18n;\n    return i18n._te(key, i18n.locale, i18n._getMessages(), locale)\n  };\n\n  Vue.prototype.$d = function (value) {\n    var ref;\n\n    var args = [], len = arguments.length - 1;\n    while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n    return (ref = this.$i18n).d.apply(ref, [ value ].concat( args ))\n  };\n\n  Vue.prototype.$n = function (value) {\n    var ref;\n\n    var args = [], len = arguments.length - 1;\n    while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n    return (ref = this.$i18n).n.apply(ref, [ value ].concat( args ))\n  };\n}\n\n/*  */\n\nvar mixin = {\n  beforeCreate: function beforeCreate () {\n    var options = this.$options;\n    options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n    if (options.i18n) {\n      if (options.i18n instanceof VueI18n) {\n        // init locale messages via custom blocks\n        if (options.__i18n) {\n          try {\n            var localeMessages = {};\n            options.__i18n.forEach(function (resource) {\n              localeMessages = merge(localeMessages, JSON.parse(resource));\n            });\n            Object.keys(localeMessages).forEach(function (locale) {\n              options.i18n.mergeLocaleMessage(locale, localeMessages[locale]);\n            });\n          } catch (e) {\n            if (process.env.NODE_ENV !== 'production') {\n              error(\"Cannot parse locale messages via custom blocks.\", e);\n            }\n          }\n        }\n        this._i18n = options.i18n;\n        this._i18nWatcher = this._i18n.watchI18nData();\n      } else if (isPlainObject(options.i18n)) {\n        var rootI18n = this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n\n          ? this.$root.$i18n\n          : null;\n        // component local i18n\n        if (rootI18n) {\n          options.i18n.root = this.$root;\n          options.i18n.formatter = rootI18n.formatter;\n          options.i18n.fallbackLocale = rootI18n.fallbackLocale;\n          options.i18n.formatFallbackMessages = rootI18n.formatFallbackMessages;\n          options.i18n.silentTranslationWarn = rootI18n.silentTranslationWarn;\n          options.i18n.silentFallbackWarn = rootI18n.silentFallbackWarn;\n          options.i18n.pluralizationRules = rootI18n.pluralizationRules;\n          options.i18n.preserveDirectiveContent = rootI18n.preserveDirectiveContent;\n        }\n\n        // init locale messages via custom blocks\n        if (options.__i18n) {\n          try {\n            var localeMessages$1 = {};\n            options.__i18n.forEach(function (resource) {\n              localeMessages$1 = merge(localeMessages$1, JSON.parse(resource));\n            });\n            options.i18n.messages = localeMessages$1;\n          } catch (e) {\n            if (process.env.NODE_ENV !== 'production') {\n              warn(\"Cannot parse locale messages via custom blocks.\", e);\n            }\n          }\n        }\n\n        var ref = options.i18n;\n        var sharedMessages = ref.sharedMessages;\n        if (sharedMessages && isPlainObject(sharedMessages)) {\n          options.i18n.messages = merge(options.i18n.messages, sharedMessages);\n        }\n\n        this._i18n = new VueI18n(options.i18n);\n        this._i18nWatcher = this._i18n.watchI18nData();\n\n        if (options.i18n.sync === undefined || !!options.i18n.sync) {\n          this._localeWatcher = this.$i18n.watchLocale();\n        }\n\n        if (rootI18n) {\n          rootI18n.onComponentInstanceCreated(this._i18n);\n        }\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          warn(\"Cannot be interpreted 'i18n' option.\");\n        }\n      }\n    } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n      // root i18n\n      this._i18n = this.$root.$i18n;\n    } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n      // parent i18n\n      this._i18n = options.parent.$i18n;\n    }\n  },\n\n  beforeMount: function beforeMount () {\n    var options = this.$options;\n    options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n    if (options.i18n) {\n      if (options.i18n instanceof VueI18n) {\n        // init locale messages via custom blocks\n        this._i18n.subscribeDataChanging(this);\n        this._subscribing = true;\n      } else if (isPlainObject(options.i18n)) {\n        this._i18n.subscribeDataChanging(this);\n        this._subscribing = true;\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          warn(\"Cannot be interpreted 'i18n' option.\");\n        }\n      }\n    } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n      this._i18n.subscribeDataChanging(this);\n      this._subscribing = true;\n    } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n      this._i18n.subscribeDataChanging(this);\n      this._subscribing = true;\n    }\n  },\n\n  beforeDestroy: function beforeDestroy () {\n    if (!this._i18n) { return }\n\n    var self = this;\n    this.$nextTick(function () {\n      if (self._subscribing) {\n        self._i18n.unsubscribeDataChanging(self);\n        delete self._subscribing;\n      }\n\n      if (self._i18nWatcher) {\n        self._i18nWatcher();\n        self._i18n.destroyVM();\n        delete self._i18nWatcher;\n      }\n\n      if (self._localeWatcher) {\n        self._localeWatcher();\n        delete self._localeWatcher;\n      }\n    });\n  }\n};\n\n/*  */\n\nvar interpolationComponent = {\n  name: 'i18n',\n  functional: true,\n  props: {\n    tag: {\n      type: [String, Boolean, Object],\n      default: 'span'\n    },\n    path: {\n      type: String,\n      required: true\n    },\n    locale: {\n      type: String\n    },\n    places: {\n      type: [Array, Object]\n    }\n  },\n  render: function render (h, ref) {\n    var data = ref.data;\n    var parent = ref.parent;\n    var props = ref.props;\n    var slots = ref.slots;\n\n    var $i18n = parent.$i18n;\n    if (!$i18n) {\n      if (process.env.NODE_ENV !== 'production') {\n        warn('Cannot find VueI18n instance!');\n      }\n      return\n    }\n\n    var path = props.path;\n    var locale = props.locale;\n    var places = props.places;\n    var params = slots();\n    var children = $i18n.i(\n      path,\n      locale,\n      onlyHasDefaultPlace(params) || places\n        ? useLegacyPlaces(params.default, places)\n        : params\n    );\n\n    var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n    return tag ? h(tag, data, children) : children\n  }\n};\n\nfunction onlyHasDefaultPlace (params) {\n  var prop;\n  for (prop in params) {\n    if (prop !== 'default') { return false }\n  }\n  return Boolean(prop)\n}\n\nfunction useLegacyPlaces (children, places) {\n  var params = places ? createParamsFromPlaces(places) : {};\n\n  if (!children) { return params }\n\n  // Filter empty text nodes\n  children = children.filter(function (child) {\n    return child.tag || child.text.trim() !== ''\n  });\n\n  var everyPlace = children.every(vnodeHasPlaceAttribute);\n  if (process.env.NODE_ENV !== 'production' && everyPlace) {\n    warn('`place` attribute is deprecated in next major version. Please switch to Vue slots.');\n  }\n\n  return children.reduce(\n    everyPlace ? assignChildPlace : assignChildIndex,\n    params\n  )\n}\n\nfunction createParamsFromPlaces (places) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn('`places` prop is deprecated in next major version. Please switch to Vue slots.');\n  }\n\n  return Array.isArray(places)\n    ? places.reduce(assignChildIndex, {})\n    : Object.assign({}, places)\n}\n\nfunction assignChildPlace (params, child) {\n  if (child.data && child.data.attrs && child.data.attrs.place) {\n    params[child.data.attrs.place] = child;\n  }\n  return params\n}\n\nfunction assignChildIndex (params, child, index) {\n  params[index] = child;\n  return params\n}\n\nfunction vnodeHasPlaceAttribute (vnode) {\n  return Boolean(vnode.data && vnode.data.attrs && vnode.data.attrs.place)\n}\n\n/*  */\n\nvar numberComponent = {\n  name: 'i18n-n',\n  functional: true,\n  props: {\n    tag: {\n      type: [String, Boolean, Object],\n      default: 'span'\n    },\n    value: {\n      type: Number,\n      required: true\n    },\n    format: {\n      type: [String, Object]\n    },\n    locale: {\n      type: String\n    }\n  },\n  render: function render (h, ref) {\n    var props = ref.props;\n    var parent = ref.parent;\n    var data = ref.data;\n\n    var i18n = parent.$i18n;\n\n    if (!i18n) {\n      if (process.env.NODE_ENV !== 'production') {\n        warn('Cannot find VueI18n instance!');\n      }\n      return null\n    }\n\n    var key = null;\n    var options = null;\n\n    if (isString(props.format)) {\n      key = props.format;\n    } else if (isObject(props.format)) {\n      if (props.format.key) {\n        key = props.format.key;\n      }\n\n      // Filter out number format options only\n      options = Object.keys(props.format).reduce(function (acc, prop) {\n        var obj;\n\n        if (includes(numberFormatKeys, prop)) {\n          return Object.assign({}, acc, ( obj = {}, obj[prop] = props.format[prop], obj ))\n        }\n        return acc\n      }, null);\n    }\n\n    var locale = props.locale || i18n.locale;\n    var parts = i18n._ntp(props.value, locale, key, options);\n\n    var values = parts.map(function (part, index) {\n      var obj;\n\n      var slot = data.scopedSlots && data.scopedSlots[part.type];\n      return slot ? slot(( obj = {}, obj[part.type] = part.value, obj.index = index, obj.parts = parts, obj )) : part.value\n    });\n\n    var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n    return tag\n      ? h(tag, {\n        attrs: data.attrs,\n        'class': data['class'],\n        staticClass: data.staticClass\n      }, values)\n      : values\n  }\n};\n\n/*  */\n\nfunction bind (el, binding, vnode) {\n  if (!assert(el, vnode)) { return }\n\n  t(el, binding, vnode);\n}\n\nfunction update (el, binding, vnode, oldVNode) {\n  if (!assert(el, vnode)) { return }\n\n  var i18n = vnode.context.$i18n;\n  if (localeEqual(el, vnode) &&\n    (looseEqual(binding.value, binding.oldValue) &&\n     looseEqual(el._localeMessage, i18n.getLocaleMessage(i18n.locale)))) { return }\n\n  t(el, binding, vnode);\n}\n\nfunction unbind (el, binding, vnode, oldVNode) {\n  var vm = vnode.context;\n  if (!vm) {\n    warn('Vue instance does not exists in VNode context');\n    return\n  }\n\n  var i18n = vnode.context.$i18n || {};\n  if (!binding.modifiers.preserve && !i18n.preserveDirectiveContent) {\n    el.textContent = '';\n  }\n  el._vt = undefined;\n  delete el['_vt'];\n  el._locale = undefined;\n  delete el['_locale'];\n  el._localeMessage = undefined;\n  delete el['_localeMessage'];\n}\n\nfunction assert (el, vnode) {\n  var vm = vnode.context;\n  if (!vm) {\n    warn('Vue instance does not exists in VNode context');\n    return false\n  }\n\n  if (!vm.$i18n) {\n    warn('VueI18n instance does not exists in Vue instance');\n    return false\n  }\n\n  return true\n}\n\nfunction localeEqual (el, vnode) {\n  var vm = vnode.context;\n  return el._locale === vm.$i18n.locale\n}\n\nfunction t (el, binding, vnode) {\n  var ref$1, ref$2;\n\n  var value = binding.value;\n\n  var ref = parseValue(value);\n  var path = ref.path;\n  var locale = ref.locale;\n  var args = ref.args;\n  var choice = ref.choice;\n  if (!path && !locale && !args) {\n    warn('value type not supported');\n    return\n  }\n\n  if (!path) {\n    warn('`path` is required in v-t directive');\n    return\n  }\n\n  var vm = vnode.context;\n  if (choice != null) {\n    el._vt = el.textContent = (ref$1 = vm.$i18n).tc.apply(ref$1, [ path, choice ].concat( makeParams(locale, args) ));\n  } else {\n    el._vt = el.textContent = (ref$2 = vm.$i18n).t.apply(ref$2, [ path ].concat( makeParams(locale, args) ));\n  }\n  el._locale = vm.$i18n.locale;\n  el._localeMessage = vm.$i18n.getLocaleMessage(vm.$i18n.locale);\n}\n\nfunction parseValue (value) {\n  var path;\n  var locale;\n  var args;\n  var choice;\n\n  if (isString(value)) {\n    path = value;\n  } else if (isPlainObject(value)) {\n    path = value.path;\n    locale = value.locale;\n    args = value.args;\n    choice = value.choice;\n  }\n\n  return { path: path, locale: locale, args: args, choice: choice }\n}\n\nfunction makeParams (locale, args) {\n  var params = [];\n\n  locale && params.push(locale);\n  if (args && (Array.isArray(args) || isPlainObject(args))) {\n    params.push(args);\n  }\n\n  return params\n}\n\nvar Vue;\n\nfunction install (_Vue) {\n  /* istanbul ignore if */\n  if (process.env.NODE_ENV !== 'production' && install.installed && _Vue === Vue) {\n    warn('already installed.');\n    return\n  }\n  install.installed = true;\n\n  Vue = _Vue;\n\n  var version = (Vue.version && Number(Vue.version.split('.')[0])) || -1;\n  /* istanbul ignore if */\n  if (process.env.NODE_ENV !== 'production' && version < 2) {\n    warn((\"vue-i18n (\" + (install.version) + \") need to use Vue 2.0 or later (Vue: \" + (Vue.version) + \").\"));\n    return\n  }\n\n  extend(Vue);\n  Vue.mixin(mixin);\n  Vue.directive('t', { bind: bind, update: update, unbind: unbind });\n  Vue.component(interpolationComponent.name, interpolationComponent);\n  Vue.component(numberComponent.name, numberComponent);\n\n  // use simple mergeStrategies to prevent i18n instance lose '__proto__'\n  var strats = Vue.config.optionMergeStrategies;\n  strats.i18n = function (parentVal, childVal) {\n    return childVal === undefined\n      ? parentVal\n      : childVal\n  };\n}\n\n/*  */\n\nvar BaseFormatter = function BaseFormatter () {\n  this._caches = Object.create(null);\n};\n\nBaseFormatter.prototype.interpolate = function interpolate (message, values) {\n  if (!values) {\n    return [message]\n  }\n  var tokens = this._caches[message];\n  if (!tokens) {\n    tokens = parse(message);\n    this._caches[message] = tokens;\n  }\n  return compile(tokens, values)\n};\n\n\n\nvar RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nvar RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\n\nfunction parse (format) {\n  var tokens = [];\n  var position = 0;\n\n  var text = '';\n  while (position < format.length) {\n    var char = format[position++];\n    if (char === '{') {\n      if (text) {\n        tokens.push({ type: 'text', value: text });\n      }\n\n      text = '';\n      var sub = '';\n      char = format[position++];\n      while (char !== undefined && char !== '}') {\n        sub += char;\n        char = format[position++];\n      }\n      var isClosed = char === '}';\n\n      var type = RE_TOKEN_LIST_VALUE.test(sub)\n        ? 'list'\n        : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n          ? 'named'\n          : 'unknown';\n      tokens.push({ value: sub, type: type });\n    } else if (char === '%') {\n      // when found rails i18n syntax, skip text capture\n      if (format[(position)] !== '{') {\n        text += char;\n      }\n    } else {\n      text += char;\n    }\n  }\n\n  text && tokens.push({ type: 'text', value: text });\n\n  return tokens\n}\n\nfunction compile (tokens, values) {\n  var compiled = [];\n  var index = 0;\n\n  var mode = Array.isArray(values)\n    ? 'list'\n    : isObject(values)\n      ? 'named'\n      : 'unknown';\n  if (mode === 'unknown') { return compiled }\n\n  while (index < tokens.length) {\n    var token = tokens[index];\n    switch (token.type) {\n      case 'text':\n        compiled.push(token.value);\n        break\n      case 'list':\n        compiled.push(values[parseInt(token.value, 10)]);\n        break\n      case 'named':\n        if (mode === 'named') {\n          compiled.push((values)[token.value]);\n        } else {\n          if (process.env.NODE_ENV !== 'production') {\n            warn((\"Type of token '\" + (token.type) + \"' and format of value '\" + mode + \"' don't match!\"));\n          }\n        }\n        break\n      case 'unknown':\n        if (process.env.NODE_ENV !== 'production') {\n          warn(\"Detect 'unknown' type of token!\");\n        }\n        break\n    }\n    index++;\n  }\n\n  return compiled\n}\n\n/*  */\n\n/**\n *  Path parser\n *  - Inspired:\n *    Vue.js Path parser\n */\n\n// actions\nvar APPEND = 0;\nvar PUSH = 1;\nvar INC_SUB_PATH_DEPTH = 2;\nvar PUSH_SUB_PATH = 3;\n\n// states\nvar BEFORE_PATH = 0;\nvar IN_PATH = 1;\nvar BEFORE_IDENT = 2;\nvar IN_IDENT = 3;\nvar IN_SUB_PATH = 4;\nvar IN_SINGLE_QUOTE = 5;\nvar IN_DOUBLE_QUOTE = 6;\nvar AFTER_PATH = 7;\nvar ERROR = 8;\n\nvar pathStateMachine = [];\n\npathStateMachine[BEFORE_PATH] = {\n  'ws': [BEFORE_PATH],\n  'ident': [IN_IDENT, APPEND],\n  '[': [IN_SUB_PATH],\n  'eof': [AFTER_PATH]\n};\n\npathStateMachine[IN_PATH] = {\n  'ws': [IN_PATH],\n  '.': [BEFORE_IDENT],\n  '[': [IN_SUB_PATH],\n  'eof': [AFTER_PATH]\n};\n\npathStateMachine[BEFORE_IDENT] = {\n  'ws': [BEFORE_IDENT],\n  'ident': [IN_IDENT, APPEND],\n  '0': [IN_IDENT, APPEND],\n  'number': [IN_IDENT, APPEND]\n};\n\npathStateMachine[IN_IDENT] = {\n  'ident': [IN_IDENT, APPEND],\n  '0': [IN_IDENT, APPEND],\n  'number': [IN_IDENT, APPEND],\n  'ws': [IN_PATH, PUSH],\n  '.': [BEFORE_IDENT, PUSH],\n  '[': [IN_SUB_PATH, PUSH],\n  'eof': [AFTER_PATH, PUSH]\n};\n\npathStateMachine[IN_SUB_PATH] = {\n  \"'\": [IN_SINGLE_QUOTE, APPEND],\n  '\"': [IN_DOUBLE_QUOTE, APPEND],\n  '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH],\n  ']': [IN_PATH, PUSH_SUB_PATH],\n  'eof': ERROR,\n  'else': [IN_SUB_PATH, APPEND]\n};\n\npathStateMachine[IN_SINGLE_QUOTE] = {\n  \"'\": [IN_SUB_PATH, APPEND],\n  'eof': ERROR,\n  'else': [IN_SINGLE_QUOTE, APPEND]\n};\n\npathStateMachine[IN_DOUBLE_QUOTE] = {\n  '\"': [IN_SUB_PATH, APPEND],\n  'eof': ERROR,\n  'else': [IN_DOUBLE_QUOTE, APPEND]\n};\n\n/**\n * Check if an expression is a literal value.\n */\n\nvar literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral (exp) {\n  return literalValueRE.test(exp)\n}\n\n/**\n * Strip quotes from a string\n */\n\nfunction stripQuotes (str) {\n  var a = str.charCodeAt(0);\n  var b = str.charCodeAt(str.length - 1);\n  return a === b && (a === 0x22 || a === 0x27)\n    ? str.slice(1, -1)\n    : str\n}\n\n/**\n * Determine the type of a character in a keypath.\n */\n\nfunction getPathCharType (ch) {\n  if (ch === undefined || ch === null) { return 'eof' }\n\n  var code = ch.charCodeAt(0);\n\n  switch (code) {\n    case 0x5B: // [\n    case 0x5D: // ]\n    case 0x2E: // .\n    case 0x22: // \"\n    case 0x27: // '\n      return ch\n\n    case 0x5F: // _\n    case 0x24: // $\n    case 0x2D: // -\n      return 'ident'\n\n    case 0x09: // Tab\n    case 0x0A: // Newline\n    case 0x0D: // Return\n    case 0xA0:  // No-break space\n    case 0xFEFF:  // Byte Order Mark\n    case 0x2028:  // Line Separator\n    case 0x2029:  // Paragraph Separator\n      return 'ws'\n  }\n\n  return 'ident'\n}\n\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\n\nfunction formatSubPath (path) {\n  var trimmed = path.trim();\n  // invalid leading 0\n  if (path.charAt(0) === '0' && isNaN(path)) { return false }\n\n  return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed\n}\n\n/**\n * Parse a string path into an array of segments\n */\n\nfunction parse$1 (path) {\n  var keys = [];\n  var index = -1;\n  var mode = BEFORE_PATH;\n  var subPathDepth = 0;\n  var c;\n  var key;\n  var newChar;\n  var type;\n  var transition;\n  var action;\n  var typeMap;\n  var actions = [];\n\n  actions[PUSH] = function () {\n    if (key !== undefined) {\n      keys.push(key);\n      key = undefined;\n    }\n  };\n\n  actions[APPEND] = function () {\n    if (key === undefined) {\n      key = newChar;\n    } else {\n      key += newChar;\n    }\n  };\n\n  actions[INC_SUB_PATH_DEPTH] = function () {\n    actions[APPEND]();\n    subPathDepth++;\n  };\n\n  actions[PUSH_SUB_PATH] = function () {\n    if (subPathDepth > 0) {\n      subPathDepth--;\n      mode = IN_SUB_PATH;\n      actions[APPEND]();\n    } else {\n      subPathDepth = 0;\n      if (key === undefined) { return false }\n      key = formatSubPath(key);\n      if (key === false) {\n        return false\n      } else {\n        actions[PUSH]();\n      }\n    }\n  };\n\n  function maybeUnescapeQuote () {\n    var nextChar = path[index + 1];\n    if ((mode === IN_SINGLE_QUOTE && nextChar === \"'\") ||\n      (mode === IN_DOUBLE_QUOTE && nextChar === '\"')) {\n      index++;\n      newChar = '\\\\' + nextChar;\n      actions[APPEND]();\n      return true\n    }\n  }\n\n  while (mode !== null) {\n    index++;\n    c = path[index];\n\n    if (c === '\\\\' && maybeUnescapeQuote()) {\n      continue\n    }\n\n    type = getPathCharType(c);\n    typeMap = pathStateMachine[mode];\n    transition = typeMap[type] || typeMap['else'] || ERROR;\n\n    if (transition === ERROR) {\n      return // parse error\n    }\n\n    mode = transition[0];\n    action = actions[transition[1]];\n    if (action) {\n      newChar = transition[2];\n      newChar = newChar === undefined\n        ? c\n        : newChar;\n      if (action() === false) {\n        return\n      }\n    }\n\n    if (mode === AFTER_PATH) {\n      return keys\n    }\n  }\n}\n\n\n\n\n\nvar I18nPath = function I18nPath () {\n  this._cache = Object.create(null);\n};\n\n/**\n * External parse that check for a cache hit first\n */\nI18nPath.prototype.parsePath = function parsePath (path) {\n  var hit = this._cache[path];\n  if (!hit) {\n    hit = parse$1(path);\n    if (hit) {\n      this._cache[path] = hit;\n    }\n  }\n  return hit || []\n};\n\n/**\n * Get path value from path string\n */\nI18nPath.prototype.getPathValue = function getPathValue (obj, path) {\n  if (!isObject(obj)) { return null }\n\n  var paths = this.parsePath(path);\n  if (paths.length === 0) {\n    return null\n  } else {\n    var length = paths.length;\n    var last = obj;\n    var i = 0;\n    while (i < length) {\n      var value = last[paths[i]];\n      if (value === undefined) {\n        return null\n      }\n      last = value;\n      i++;\n    }\n\n    return last\n  }\n};\n\n/*  */\n\n\n\nvar htmlTagMatcher = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nvar linkKeyMatcher = /(?:@(?:\\.[a-z]+)?:(?:[\\w\\-_|.]+|\\([\\w\\-_|.]+\\)))/g;\nvar linkKeyPrefixMatcher = /^@(?:\\.([a-z]+))?:/;\nvar bracketsMatcher = /[()]/g;\nvar defaultModifiers = {\n  'upper': function (str) { return str.toLocaleUpperCase(); },\n  'lower': function (str) { return str.toLocaleLowerCase(); },\n  'capitalize': function (str) { return (\"\" + (str.charAt(0).toLocaleUpperCase()) + (str.substr(1))); }\n};\n\nvar defaultFormatter = new BaseFormatter();\n\nvar VueI18n = function VueI18n (options) {\n  var this$1 = this;\n  if ( options === void 0 ) options = {};\n\n  // Auto install if it is not done yet and `window` has `Vue`.\n  // To allow users to avoid auto-installation in some cases,\n  // this code should be placed here. See #290\n  /* istanbul ignore if */\n  if (!Vue && typeof window !== 'undefined' && window.Vue) {\n    install(window.Vue);\n  }\n\n  var locale = options.locale || 'en-US';\n  var fallbackLocale = options.fallbackLocale === false\n    ? false\n    : options.fallbackLocale || 'en-US';\n  var messages = options.messages || {};\n  var dateTimeFormats = options.dateTimeFormats || {};\n  var numberFormats = options.numberFormats || {};\n\n  this._vm = null;\n  this._formatter = options.formatter || defaultFormatter;\n  this._modifiers = options.modifiers || {};\n  this._missing = options.missing || null;\n  this._root = options.root || null;\n  this._sync = options.sync === undefined ? true : !!options.sync;\n  this._fallbackRoot = options.fallbackRoot === undefined\n    ? true\n    : !!options.fallbackRoot;\n  this._formatFallbackMessages = options.formatFallbackMessages === undefined\n    ? false\n    : !!options.formatFallbackMessages;\n  this._silentTranslationWarn = options.silentTranslationWarn === undefined\n    ? false\n    : options.silentTranslationWarn;\n  this._silentFallbackWarn = options.silentFallbackWarn === undefined\n    ? false\n    : !!options.silentFallbackWarn;\n  this._dateTimeFormatters = {};\n  this._numberFormatters = {};\n  this._path = new I18nPath();\n  this._dataListeners = [];\n  this._componentInstanceCreatedListener = options.componentInstanceCreatedListener || null;\n  this._preserveDirectiveContent = options.preserveDirectiveContent === undefined\n    ? false\n    : !!options.preserveDirectiveContent;\n  this.pluralizationRules = options.pluralizationRules || {};\n  this._warnHtmlInMessage = options.warnHtmlInMessage || 'off';\n  this._postTranslation = options.postTranslation || null;\n\n  /**\n   * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`\n   * @param choicesLength {number} an overall amount of available choices\n   * @returns a final choice index\n  */\n  this.getChoiceIndex = function (choice, choicesLength) {\n    var thisPrototype = Object.getPrototypeOf(this$1);\n    if (thisPrototype && thisPrototype.getChoiceIndex) {\n      var prototypeGetChoiceIndex = (thisPrototype.getChoiceIndex);\n      return (prototypeGetChoiceIndex).call(this$1, choice, choicesLength)\n    }\n\n    // Default (old) getChoiceIndex implementation - english-compatible\n    var defaultImpl = function (_choice, _choicesLength) {\n      _choice = Math.abs(_choice);\n\n      if (_choicesLength === 2) {\n        return _choice\n          ? _choice > 1\n            ? 1\n            : 0\n          : 1\n      }\n\n      return _choice ? Math.min(_choice, 2) : 0\n    };\n\n    if (this$1.locale in this$1.pluralizationRules) {\n      return this$1.pluralizationRules[this$1.locale].apply(this$1, [choice, choicesLength])\n    } else {\n      return defaultImpl(choice, choicesLength)\n    }\n  };\n\n\n  this._exist = function (message, key) {\n    if (!message || !key) { return false }\n    if (!isNull(this$1._path.getPathValue(message, key))) { return true }\n    // fallback for flat key\n    if (message[key]) { return true }\n    return false\n  };\n\n  if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n    Object.keys(messages).forEach(function (locale) {\n      this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n    });\n  }\n\n  this._initVM({\n    locale: locale,\n    fallbackLocale: fallbackLocale,\n    messages: messages,\n    dateTimeFormats: dateTimeFormats,\n    numberFormats: numberFormats\n  });\n};\n\nvar prototypeAccessors = { vm: { configurable: true },messages: { configurable: true },dateTimeFormats: { configurable: true },numberFormats: { configurable: true },availableLocales: { configurable: true },locale: { configurable: true },fallbackLocale: { configurable: true },formatFallbackMessages: { configurable: true },missing: { configurable: true },formatter: { configurable: true },silentTranslationWarn: { configurable: true },silentFallbackWarn: { configurable: true },preserveDirectiveContent: { configurable: true },warnHtmlInMessage: { configurable: true },postTranslation: { configurable: true } };\n\nVueI18n.prototype._checkLocaleMessage = function _checkLocaleMessage (locale, level, message) {\n  var paths = [];\n\n  var fn = function (level, locale, message, paths) {\n    if (isPlainObject(message)) {\n      Object.keys(message).forEach(function (key) {\n        var val = message[key];\n        if (isPlainObject(val)) {\n          paths.push(key);\n          paths.push('.');\n          fn(level, locale, val, paths);\n          paths.pop();\n          paths.pop();\n        } else {\n          paths.push(key);\n          fn(level, locale, val, paths);\n          paths.pop();\n        }\n      });\n    } else if (Array.isArray(message)) {\n      message.forEach(function (item, index) {\n        if (isPlainObject(item)) {\n          paths.push((\"[\" + index + \"]\"));\n          paths.push('.');\n          fn(level, locale, item, paths);\n          paths.pop();\n          paths.pop();\n        } else {\n          paths.push((\"[\" + index + \"]\"));\n          fn(level, locale, item, paths);\n          paths.pop();\n        }\n      });\n    } else if (isString(message)) {\n      var ret = htmlTagMatcher.test(message);\n      if (ret) {\n        var msg = \"Detected HTML in message '\" + message + \"' of keypath '\" + (paths.join('')) + \"' at '\" + locale + \"'. Consider component interpolation with '<i18n>' to avoid XSS. See https://bit.ly/2ZqJzkp\";\n        if (level === 'warn') {\n          warn(msg);\n        } else if (level === 'error') {\n          error(msg);\n        }\n      }\n    }\n  };\n\n  fn(level, locale, message, paths);\n};\n\nVueI18n.prototype._initVM = function _initVM (data) {\n  var silent = Vue.config.silent;\n  Vue.config.silent = true;\n  this._vm = new Vue({ data: data });\n  Vue.config.silent = silent;\n};\n\nVueI18n.prototype.destroyVM = function destroyVM () {\n  this._vm.$destroy();\n};\n\nVueI18n.prototype.subscribeDataChanging = function subscribeDataChanging (vm) {\n  this._dataListeners.push(vm);\n};\n\nVueI18n.prototype.unsubscribeDataChanging = function unsubscribeDataChanging (vm) {\n  remove(this._dataListeners, vm);\n};\n\nVueI18n.prototype.watchI18nData = function watchI18nData () {\n  var self = this;\n  return this._vm.$watch('$data', function () {\n    var i = self._dataListeners.length;\n    while (i--) {\n      Vue.nextTick(function () {\n        self._dataListeners[i] && self._dataListeners[i].$forceUpdate();\n      });\n    }\n  }, { deep: true })\n};\n\nVueI18n.prototype.watchLocale = function watchLocale () {\n  /* istanbul ignore if */\n  if (!this._sync || !this._root) { return null }\n  var target = this._vm;\n  return this._root.$i18n.vm.$watch('locale', function (val) {\n    target.$set(target, 'locale', val);\n    target.$forceUpdate();\n  }, { immediate: true })\n};\n\nVueI18n.prototype.onComponentInstanceCreated = function onComponentInstanceCreated (newI18n) {\n  if (this._componentInstanceCreatedListener) {\n    this._componentInstanceCreatedListener(newI18n, this);\n  }\n};\n\nprototypeAccessors.vm.get = function () { return this._vm };\n\nprototypeAccessors.messages.get = function () { return looseClone(this._getMessages()) };\nprototypeAccessors.dateTimeFormats.get = function () { return looseClone(this._getDateTimeFormats()) };\nprototypeAccessors.numberFormats.get = function () { return looseClone(this._getNumberFormats()) };\nprototypeAccessors.availableLocales.get = function () { return Object.keys(this.messages).sort() };\n\nprototypeAccessors.locale.get = function () { return this._vm.locale };\nprototypeAccessors.locale.set = function (locale) {\n  this._vm.$set(this._vm, 'locale', locale);\n};\n\nprototypeAccessors.fallbackLocale.get = function () { return this._vm.fallbackLocale };\nprototypeAccessors.fallbackLocale.set = function (locale) {\n  this._localeChainCache = {};\n  this._vm.$set(this._vm, 'fallbackLocale', locale);\n};\n\nprototypeAccessors.formatFallbackMessages.get = function () { return this._formatFallbackMessages };\nprototypeAccessors.formatFallbackMessages.set = function (fallback) { this._formatFallbackMessages = fallback; };\n\nprototypeAccessors.missing.get = function () { return this._missing };\nprototypeAccessors.missing.set = function (handler) { this._missing = handler; };\n\nprototypeAccessors.formatter.get = function () { return this._formatter };\nprototypeAccessors.formatter.set = function (formatter) { this._formatter = formatter; };\n\nprototypeAccessors.silentTranslationWarn.get = function () { return this._silentTranslationWarn };\nprototypeAccessors.silentTranslationWarn.set = function (silent) { this._silentTranslationWarn = silent; };\n\nprototypeAccessors.silentFallbackWarn.get = function () { return this._silentFallbackWarn };\nprototypeAccessors.silentFallbackWarn.set = function (silent) { this._silentFallbackWarn = silent; };\n\nprototypeAccessors.preserveDirectiveContent.get = function () { return this._preserveDirectiveContent };\nprototypeAccessors.preserveDirectiveContent.set = function (preserve) { this._preserveDirectiveContent = preserve; };\n\nprototypeAccessors.warnHtmlInMessage.get = function () { return this._warnHtmlInMessage };\nprototypeAccessors.warnHtmlInMessage.set = function (level) {\n    var this$1 = this;\n\n  var orgLevel = this._warnHtmlInMessage;\n  this._warnHtmlInMessage = level;\n  if (orgLevel !== level && (level === 'warn' || level === 'error')) {\n    var messages = this._getMessages();\n    Object.keys(messages).forEach(function (locale) {\n      this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n    });\n  }\n};\n\nprototypeAccessors.postTranslation.get = function () { return this._postTranslation };\nprototypeAccessors.postTranslation.set = function (handler) { this._postTranslation = handler; };\n\nVueI18n.prototype._getMessages = function _getMessages () { return this._vm.messages };\nVueI18n.prototype._getDateTimeFormats = function _getDateTimeFormats () { return this._vm.dateTimeFormats };\nVueI18n.prototype._getNumberFormats = function _getNumberFormats () { return this._vm.numberFormats };\n\nVueI18n.prototype._warnDefault = function _warnDefault (locale, key, result, vm, values, interpolateMode) {\n  if (!isNull(result)) { return result }\n  if (this._missing) {\n    var missingRet = this._missing.apply(null, [locale, key, vm, values]);\n    if (isString(missingRet)) {\n      return missingRet\n    }\n  } else {\n    if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n      warn(\n        \"Cannot translate the value of keypath '\" + key + \"'. \" +\n        'Use the value of keypath as default.'\n      );\n    }\n  }\n\n  if (this._formatFallbackMessages) {\n    var parsedArgs = parseArgs.apply(void 0, values);\n    return this._render(key, interpolateMode, parsedArgs.params, key)\n  } else {\n    return key\n  }\n};\n\nVueI18n.prototype._isFallbackRoot = function _isFallbackRoot (val) {\n  return !val && !isNull(this._root) && this._fallbackRoot\n};\n\nVueI18n.prototype._isSilentFallbackWarn = function _isSilentFallbackWarn (key) {\n  return this._silentFallbackWarn instanceof RegExp\n    ? this._silentFallbackWarn.test(key)\n    : this._silentFallbackWarn\n};\n\nVueI18n.prototype._isSilentFallback = function _isSilentFallback (locale, key) {\n  return this._isSilentFallbackWarn(key) && (this._isFallbackRoot() || locale !== this.fallbackLocale)\n};\n\nVueI18n.prototype._isSilentTranslationWarn = function _isSilentTranslationWarn (key) {\n  return this._silentTranslationWarn instanceof RegExp\n    ? this._silentTranslationWarn.test(key)\n    : this._silentTranslationWarn\n};\n\nVueI18n.prototype._interpolate = function _interpolate (\n  locale,\n  message,\n  key,\n  host,\n  interpolateMode,\n  values,\n  visitedLinkStack\n) {\n  if (!message) { return null }\n\n  var pathRet = this._path.getPathValue(message, key);\n  if (Array.isArray(pathRet) || isPlainObject(pathRet)) { return pathRet }\n\n  var ret;\n  if (isNull(pathRet)) {\n    /* istanbul ignore else */\n    if (isPlainObject(message)) {\n      ret = message[key];\n      if (!isString(ret)) {\n        if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n          warn((\"Value of key '\" + key + \"' is not a string!\"));\n        }\n        return null\n      }\n    } else {\n      return null\n    }\n  } else {\n    /* istanbul ignore else */\n    if (isString(pathRet)) {\n      ret = pathRet;\n    } else {\n      if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n        warn((\"Value of key '\" + key + \"' is not a string!\"));\n      }\n      return null\n    }\n  }\n\n  // Check for the existence of links within the translated string\n  if (ret.indexOf('@:') >= 0 || ret.indexOf('@.') >= 0) {\n    ret = this._link(locale, message, ret, host, 'raw', values, visitedLinkStack);\n  }\n\n  return this._render(ret, interpolateMode, values, key)\n};\n\nVueI18n.prototype._link = function _link (\n  locale,\n  message,\n  str,\n  host,\n  interpolateMode,\n  values,\n  visitedLinkStack\n) {\n  var ret = str;\n\n  // Match all the links within the local\n  // We are going to replace each of\n  // them with its translation\n  var matches = ret.match(linkKeyMatcher);\n  for (var idx in matches) {\n    // ie compatible: filter custom array\n    // prototype method\n    if (!matches.hasOwnProperty(idx)) {\n      continue\n    }\n    var link = matches[idx];\n    var linkKeyPrefixMatches = link.match(linkKeyPrefixMatcher);\n    var linkPrefix = linkKeyPrefixMatches[0];\n      var formatterName = linkKeyPrefixMatches[1];\n\n    // Remove the leading @:, @.case: and the brackets\n    var linkPlaceholder = link.replace(linkPrefix, '').replace(bracketsMatcher, '');\n\n    if (includes(visitedLinkStack, linkPlaceholder)) {\n      if (process.env.NODE_ENV !== 'production') {\n        warn((\"Circular reference found. \\\"\" + link + \"\\\" is already visited in the chain of \" + (visitedLinkStack.reverse().join(' <- '))));\n      }\n      return ret\n    }\n    visitedLinkStack.push(linkPlaceholder);\n\n    // Translate the link\n    var translated = this._interpolate(\n      locale, message, linkPlaceholder, host,\n      interpolateMode === 'raw' ? 'string' : interpolateMode,\n      interpolateMode === 'raw' ? undefined : values,\n      visitedLinkStack\n    );\n\n    if (this._isFallbackRoot(translated)) {\n      if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(linkPlaceholder)) {\n        warn((\"Fall back to translate the link placeholder '\" + linkPlaceholder + \"' with root locale.\"));\n      }\n      /* istanbul ignore if */\n      if (!this._root) { throw Error('unexpected error') }\n      var root = this._root.$i18n;\n      translated = root._translate(\n        root._getMessages(), root.locale, root.fallbackLocale,\n        linkPlaceholder, host, interpolateMode, values\n      );\n    }\n    translated = this._warnDefault(\n      locale, linkPlaceholder, translated, host,\n      Array.isArray(values) ? values : [values],\n      interpolateMode\n    );\n\n    if (this._modifiers.hasOwnProperty(formatterName)) {\n      translated = this._modifiers[formatterName](translated);\n    } else if (defaultModifiers.hasOwnProperty(formatterName)) {\n      translated = defaultModifiers[formatterName](translated);\n    }\n\n    visitedLinkStack.pop();\n\n    // Replace the link with the translated\n    ret = !translated ? ret : ret.replace(link, translated);\n  }\n\n  return ret\n};\n\nVueI18n.prototype._render = function _render (message, interpolateMode, values, path) {\n  var ret = this._formatter.interpolate(message, values, path);\n\n  // If the custom formatter refuses to work - apply the default one\n  if (!ret) {\n    ret = defaultFormatter.interpolate(message, values, path);\n  }\n\n  // if interpolateMode is **not** 'string' ('row'),\n  // return the compiled data (e.g. ['foo', VNode, 'bar']) with formatter\n  return interpolateMode === 'string' && !isString(ret) ? ret.join('') : ret\n};\n\nVueI18n.prototype._appendItemToChain = function _appendItemToChain (chain, item, blocks) {\n  var follow = false;\n  if (!includes(chain, item)) {\n    follow = true;\n    if (item) {\n      follow = item[item.length - 1] !== '!';\n      item = item.replace(/!/g, '');\n      chain.push(item);\n      if (blocks && blocks[item]) {\n        follow = blocks[item];\n      }\n    }\n  }\n  return follow\n};\n\nVueI18n.prototype._appendLocaleToChain = function _appendLocaleToChain (chain, locale, blocks) {\n  var follow;\n  var tokens = locale.split('-');\n  do {\n    var item = tokens.join('-');\n    follow = this._appendItemToChain(chain, item, blocks);\n    tokens.splice(-1, 1);\n  } while (tokens.length && (follow === true))\n  return follow\n};\n\nVueI18n.prototype._appendBlockToChain = function _appendBlockToChain (chain, block, blocks) {\n  var follow = true;\n  for (var i = 0; (i < block.length) && (isBoolean(follow)); i++) {\n    var locale = block[i];\n    if (isString(locale)) {\n      follow = this._appendLocaleToChain(chain, locale, blocks);\n    }\n  }\n  return follow\n};\n\nVueI18n.prototype._getLocaleChain = function _getLocaleChain (start, fallbackLocale) {\n  if (start === '') { return [] }\n\n  if (!this._localeChainCache) {\n    this._localeChainCache = {};\n  }\n\n  var chain = this._localeChainCache[start];\n  if (!chain) {\n    if (!fallbackLocale) {\n      fallbackLocale = this.fallbackLocale;\n    }\n    chain = [];\n\n    // first block defined by start\n    var block = [start];\n\n    // while any intervening block found\n    while (isArray(block)) {\n      block = this._appendBlockToChain(\n        chain,\n        block,\n        fallbackLocale\n      );\n    }\n\n    // last block defined by default\n    var defaults;\n    if (isArray(fallbackLocale)) {\n      defaults = fallbackLocale;\n    } else if (isObject(fallbackLocale)) {\n      /* $FlowFixMe */\n      if (fallbackLocale['default']) {\n        defaults = fallbackLocale['default'];\n      } else {\n        defaults = null;\n      }\n    } else {\n      defaults = fallbackLocale;\n    }\n\n    // convert defaults to array\n    if (isString(defaults)) {\n      block = [defaults];\n    } else {\n      block = defaults;\n    }\n    if (block) {\n      this._appendBlockToChain(\n        chain,\n        block,\n        null\n      );\n    }\n    this._localeChainCache[start] = chain;\n  }\n  return chain\n};\n\nVueI18n.prototype._translate = function _translate (\n  messages,\n  locale,\n  fallback,\n  key,\n  host,\n  interpolateMode,\n  args\n) {\n  var chain = this._getLocaleChain(locale, fallback);\n  var res;\n  for (var i = 0; i < chain.length; i++) {\n    var step = chain[i];\n    res =\n      this._interpolate(step, messages[step], key, host, interpolateMode, args, [key]);\n    if (!isNull(res)) {\n      if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n        warn((\"Fall back to translate the keypath '\" + key + \"' with '\" + step + \"' locale.\"));\n      }\n      return res\n    }\n  }\n  return null\n};\n\nVueI18n.prototype._t = function _t (key, _locale, messages, host) {\n    var ref;\n\n    var values = [], len = arguments.length - 4;\n    while ( len-- > 0 ) values[ len ] = arguments[ len + 4 ];\n  if (!key) { return '' }\n\n  var parsedArgs = parseArgs.apply(void 0, values);\n  var locale = parsedArgs.locale || _locale;\n\n  var ret = this._translate(\n    messages, locale, this.fallbackLocale, key,\n    host, 'string', parsedArgs.params\n  );\n  if (this._isFallbackRoot(ret)) {\n    if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n      warn((\"Fall back to translate the keypath '\" + key + \"' with root locale.\"));\n    }\n    /* istanbul ignore if */\n    if (!this._root) { throw Error('unexpected error') }\n    return (ref = this._root).$t.apply(ref, [ key ].concat( values ))\n  } else {\n    ret = this._warnDefault(locale, key, ret, host, values, 'string');\n    if (this._postTranslation && ret !== null && ret !== undefined) {\n      ret = this._postTranslation(ret, key);\n    }\n    return ret\n  }\n};\n\nVueI18n.prototype.t = function t (key) {\n    var ref;\n\n    var values = [], len = arguments.length - 1;\n    while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n  return (ref = this)._t.apply(ref, [ key, this.locale, this._getMessages(), null ].concat( values ))\n};\n\nVueI18n.prototype._i = function _i (key, locale, messages, host, values) {\n  var ret =\n    this._translate(messages, locale, this.fallbackLocale, key, host, 'raw', values);\n  if (this._isFallbackRoot(ret)) {\n    if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n      warn((\"Fall back to interpolate the keypath '\" + key + \"' with root locale.\"));\n    }\n    if (!this._root) { throw Error('unexpected error') }\n    return this._root.$i18n.i(key, locale, values)\n  } else {\n    return this._warnDefault(locale, key, ret, host, [values], 'raw')\n  }\n};\n\nVueI18n.prototype.i = function i (key, locale, values) {\n  /* istanbul ignore if */\n  if (!key) { return '' }\n\n  if (!isString(locale)) {\n    locale = this.locale;\n  }\n\n  return this._i(key, locale, this._getMessages(), null, values)\n};\n\nVueI18n.prototype._tc = function _tc (\n  key,\n  _locale,\n  messages,\n  host,\n  choice\n) {\n    var ref;\n\n    var values = [], len = arguments.length - 5;\n    while ( len-- > 0 ) values[ len ] = arguments[ len + 5 ];\n  if (!key) { return '' }\n  if (choice === undefined) {\n    choice = 1;\n  }\n\n  var predefined = { 'count': choice, 'n': choice };\n  var parsedArgs = parseArgs.apply(void 0, values);\n  parsedArgs.params = Object.assign(predefined, parsedArgs.params);\n  values = parsedArgs.locale === null ? [parsedArgs.params] : [parsedArgs.locale, parsedArgs.params];\n  return this.fetchChoice((ref = this)._t.apply(ref, [ key, _locale, messages, host ].concat( values )), choice)\n};\n\nVueI18n.prototype.fetchChoice = function fetchChoice (message, choice) {\n  /* istanbul ignore if */\n  if (!message && !isString(message)) { return null }\n  var choices = message.split('|');\n\n  choice = this.getChoiceIndex(choice, choices.length);\n  if (!choices[choice]) { return message }\n  return choices[choice].trim()\n};\n\nVueI18n.prototype.tc = function tc (key, choice) {\n    var ref;\n\n    var values = [], len = arguments.length - 2;\n    while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n  return (ref = this)._tc.apply(ref, [ key, this.locale, this._getMessages(), null, choice ].concat( values ))\n};\n\nVueI18n.prototype._te = function _te (key, locale, messages) {\n    var args = [], len = arguments.length - 3;\n    while ( len-- > 0 ) args[ len ] = arguments[ len + 3 ];\n\n  var _locale = parseArgs.apply(void 0, args).locale || locale;\n  return this._exist(messages[_locale], key)\n};\n\nVueI18n.prototype.te = function te (key, locale) {\n  return this._te(key, this.locale, this._getMessages(), locale)\n};\n\nVueI18n.prototype.getLocaleMessage = function getLocaleMessage (locale) {\n  return looseClone(this._vm.messages[locale] || {})\n};\n\nVueI18n.prototype.setLocaleMessage = function setLocaleMessage (locale, message) {\n  if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n    this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n  }\n  this._vm.$set(this._vm.messages, locale, message);\n};\n\nVueI18n.prototype.mergeLocaleMessage = function mergeLocaleMessage (locale, message) {\n  if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n    this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n  }\n  this._vm.$set(this._vm.messages, locale, merge({}, this._vm.messages[locale] || {}, message));\n};\n\nVueI18n.prototype.getDateTimeFormat = function getDateTimeFormat (locale) {\n  return looseClone(this._vm.dateTimeFormats[locale] || {})\n};\n\nVueI18n.prototype.setDateTimeFormat = function setDateTimeFormat (locale, format) {\n  this._vm.$set(this._vm.dateTimeFormats, locale, format);\n  this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype.mergeDateTimeFormat = function mergeDateTimeFormat (locale, format) {\n  this._vm.$set(this._vm.dateTimeFormats, locale, merge(this._vm.dateTimeFormats[locale] || {}, format));\n  this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype._clearDateTimeFormat = function _clearDateTimeFormat (locale, format) {\n  for (var key in format) {\n    var id = locale + \"__\" + key;\n\n    if (!this._dateTimeFormatters.hasOwnProperty(id)) {\n      continue\n    }\n\n    delete this._dateTimeFormatters[id];\n  }\n};\n\nVueI18n.prototype._localizeDateTime = function _localizeDateTime (\n  value,\n  locale,\n  fallback,\n  dateTimeFormats,\n  key\n) {\n  var _locale = locale;\n  var formats = dateTimeFormats[_locale];\n\n  var chain = this._getLocaleChain(locale, fallback);\n  for (var i = 0; i < chain.length; i++) {\n    var current = _locale;\n    var step = chain[i];\n    formats = dateTimeFormats[step];\n    _locale = step;\n    // fallback locale\n    if (isNull(formats) || isNull(formats[key])) {\n      if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n        warn((\"Fall back to '\" + step + \"' datetime formats from '\" + current + \"' datetime formats.\"));\n      }\n    } else {\n      break\n    }\n  }\n\n  if (isNull(formats) || isNull(formats[key])) {\n    return null\n  } else {\n    var format = formats[key];\n    var id = _locale + \"__\" + key;\n    var formatter = this._dateTimeFormatters[id];\n    if (!formatter) {\n      formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);\n    }\n    return formatter.format(value)\n  }\n};\n\nVueI18n.prototype._d = function _d (value, locale, key) {\n  /* istanbul ignore if */\n  if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {\n    warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');\n    return ''\n  }\n\n  if (!key) {\n    return new Intl.DateTimeFormat(locale).format(value)\n  }\n\n  var ret =\n    this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);\n  if (this._isFallbackRoot(ret)) {\n    if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n      warn((\"Fall back to datetime localization of root: key '\" + key + \"'.\"));\n    }\n    /* istanbul ignore if */\n    if (!this._root) { throw Error('unexpected error') }\n    return this._root.$i18n.d(value, key, locale)\n  } else {\n    return ret || ''\n  }\n};\n\nVueI18n.prototype.d = function d (value) {\n    var args = [], len = arguments.length - 1;\n    while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n  var locale = this.locale;\n  var key = null;\n\n  if (args.length === 1) {\n    if (isString(args[0])) {\n      key = args[0];\n    } else if (isObject(args[0])) {\n      if (args[0].locale) {\n        locale = args[0].locale;\n      }\n      if (args[0].key) {\n        key = args[0].key;\n      }\n    }\n  } else if (args.length === 2) {\n    if (isString(args[0])) {\n      key = args[0];\n    }\n    if (isString(args[1])) {\n      locale = args[1];\n    }\n  }\n\n  return this._d(value, locale, key)\n};\n\nVueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {\n  return looseClone(this._vm.numberFormats[locale] || {})\n};\n\nVueI18n.prototype.setNumberFormat = function setNumberFormat (locale, format) {\n  this._vm.$set(this._vm.numberFormats, locale, format);\n  this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype.mergeNumberFormat = function mergeNumberFormat (locale, format) {\n  this._vm.$set(this._vm.numberFormats, locale, merge(this._vm.numberFormats[locale] || {}, format));\n  this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype._clearNumberFormat = function _clearNumberFormat (locale, format) {\n  for (var key in format) {\n    var id = locale + \"__\" + key;\n\n    if (!this._numberFormatters.hasOwnProperty(id)) {\n      continue\n    }\n\n    delete this._numberFormatters[id];\n  }\n};\n\nVueI18n.prototype._getNumberFormatter = function _getNumberFormatter (\n  value,\n  locale,\n  fallback,\n  numberFormats,\n  key,\n  options\n) {\n  var _locale = locale;\n  var formats = numberFormats[_locale];\n\n  var chain = this._getLocaleChain(locale, fallback);\n  for (var i = 0; i < chain.length; i++) {\n    var current = _locale;\n    var step = chain[i];\n    formats = numberFormats[step];\n    _locale = step;\n    // fallback locale\n    if (isNull(formats) || isNull(formats[key])) {\n      if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n        warn((\"Fall back to '\" + step + \"' number formats from '\" + current + \"' number formats.\"));\n      }\n    } else {\n      break\n    }\n  }\n\n  if (isNull(formats) || isNull(formats[key])) {\n    return null\n  } else {\n    var format = formats[key];\n\n    var formatter;\n    if (options) {\n      // If options specified - create one time number formatter\n      formatter = new Intl.NumberFormat(_locale, Object.assign({}, format, options));\n    } else {\n      var id = _locale + \"__\" + key;\n      formatter = this._numberFormatters[id];\n      if (!formatter) {\n        formatter = this._numberFormatters[id] = new Intl.NumberFormat(_locale, format);\n      }\n    }\n    return formatter\n  }\n};\n\nVueI18n.prototype._n = function _n (value, locale, key, options) {\n  /* istanbul ignore if */\n  if (!VueI18n.availabilities.numberFormat) {\n    if (process.env.NODE_ENV !== 'production') {\n      warn('Cannot format a Number value due to not supported Intl.NumberFormat.');\n    }\n    return ''\n  }\n\n  if (!key) {\n    var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n    return nf.format(value)\n  }\n\n  var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n  var ret = formatter && formatter.format(value);\n  if (this._isFallbackRoot(ret)) {\n    if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n      warn((\"Fall back to number localization of root: key '\" + key + \"'.\"));\n    }\n    /* istanbul ignore if */\n    if (!this._root) { throw Error('unexpected error') }\n    return this._root.$i18n.n(value, Object.assign({}, { key: key, locale: locale }, options))\n  } else {\n    return ret || ''\n  }\n};\n\nVueI18n.prototype.n = function n (value) {\n    var args = [], len = arguments.length - 1;\n    while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n  var locale = this.locale;\n  var key = null;\n  var options = null;\n\n  if (args.length === 1) {\n    if (isString(args[0])) {\n      key = args[0];\n    } else if (isObject(args[0])) {\n      if (args[0].locale) {\n        locale = args[0].locale;\n      }\n      if (args[0].key) {\n        key = args[0].key;\n      }\n\n      // Filter out number format options only\n      options = Object.keys(args[0]).reduce(function (acc, key) {\n          var obj;\n\n        if (includes(numberFormatKeys, key)) {\n          return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n        }\n        return acc\n      }, null);\n    }\n  } else if (args.length === 2) {\n    if (isString(args[0])) {\n      key = args[0];\n    }\n    if (isString(args[1])) {\n      locale = args[1];\n    }\n  }\n\n  return this._n(value, locale, key, options)\n};\n\nVueI18n.prototype._ntp = function _ntp (value, locale, key, options) {\n  /* istanbul ignore if */\n  if (!VueI18n.availabilities.numberFormat) {\n    if (process.env.NODE_ENV !== 'production') {\n      warn('Cannot format to parts a Number value due to not supported Intl.NumberFormat.');\n    }\n    return []\n  }\n\n  if (!key) {\n    var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n    return nf.formatToParts(value)\n  }\n\n  var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n  var ret = formatter && formatter.formatToParts(value);\n  if (this._isFallbackRoot(ret)) {\n    if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n      warn((\"Fall back to format number to parts of root: key '\" + key + \"' .\"));\n    }\n    /* istanbul ignore if */\n    if (!this._root) { throw Error('unexpected error') }\n    return this._root.$i18n._ntp(value, locale, key, options)\n  } else {\n    return ret || []\n  }\n};\n\nObject.defineProperties( VueI18n.prototype, prototypeAccessors );\n\nvar availabilities;\n// $FlowFixMe\nObject.defineProperty(VueI18n, 'availabilities', {\n  get: function get () {\n    if (!availabilities) {\n      var intlDefined = typeof Intl !== 'undefined';\n      availabilities = {\n        dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n        numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n      };\n    }\n\n    return availabilities\n  }\n});\n\nVueI18n.install = install;\nVueI18n.version = '8.20.0';\n\nexport default VueI18n;\n","import { render, staticRenderFns } from \"./CodeAce.vue?vue&type=template&id=37ad02ad&\"\nimport script from \"./CodeAce.vue?vue&type=script&lang=js&\"\nexport * from \"./CodeAce.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CodeAce.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('37ad02ad')) {\n      api.createRecord('37ad02ad', component.options)\n    } else {\n      api.reload('37ad02ad', component.options)\n    }\n    module.hot.accept(\"./CodeAce.vue?vue&type=template&id=37ad02ad&\", function () {\n      api.rerender('37ad02ad', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/editor/CodeAce.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./CodeMonaco.vue?vue&type=template&id=f5fd2472&\"\nimport script from \"./CodeMonaco.vue?vue&type=script&lang=js&\"\nexport * from \"./CodeMonaco.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CodeMonaco.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('f5fd2472')) {\n      api.createRecord('f5fd2472', component.options)\n    } else {\n      api.reload('f5fd2472', component.options)\n    }\n    module.hot.accept(\"./CodeMonaco.vue?vue&type=template&id=f5fd2472&\", function () {\n      api.rerender('f5fd2472', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/editor/CodeMonaco.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Editor.vue?vue&type=template&id=3a753434&\"\nimport script from \"./Editor.vue?vue&type=script&lang=js&\"\nexport * from \"./Editor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Editor.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('3a753434')) {\n      api.createRecord('3a753434', component.options)\n    } else {\n      api.reload('3a753434', component.options)\n    }\n    module.hot.accept(\"./Editor.vue?vue&type=template&id=3a753434&\", function () {\n      api.rerender('3a753434', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/editor/Editor.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./FullCodePreview.vue?vue&type=template&id=04a90f3a&\"\nimport script from \"./FullCodePreview.vue?vue&type=script&lang=js&\"\nexport * from \"./FullCodePreview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FullCodePreview.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('04a90f3a')) {\n      api.createRecord('04a90f3a', component.options)\n    } else {\n      api.reload('04a90f3a', component.options)\n    }\n    module.hot.accept(\"./FullCodePreview.vue?vue&type=template&id=04a90f3a&\", function () {\n      api.rerender('04a90f3a', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/editor/FullCodePreview.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Preview.vue?vue&type=template&id=66bf6e1f&\"\nimport script from \"./Preview.vue?vue&type=script&lang=js&\"\nexport * from \"./Preview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Preview.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('66bf6e1f')) {\n      api.createRecord('66bf6e1f', component.options)\n    } else {\n      api.reload('66bf6e1f', component.options)\n    }\n    module.hot.accept(\"./Preview.vue?vue&type=template&id=66bf6e1f&\", function () {\n      api.rerender('66bf6e1f', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/editor/Preview.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./View.vue?vue&type=template&id=3d6bc75e&\"\nimport script from \"./View.vue?vue&type=script&lang=js&\"\nexport * from \"./View.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('3d6bc75e')) {\n      api.createRecord('3d6bc75e', component.options)\n    } else {\n      api.reload('3d6bc75e', component.options)\n    }\n    module.hot.accept(\"./View.vue?vue&type=template&id=3d6bc75e&\", function () {\n      api.rerender('3d6bc75e', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/editor/View.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./ExampleCard.vue?vue&type=template&id=01229e96&\"\nimport script from \"./ExampleCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ExampleCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ExampleCard.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('01229e96')) {\n      api.createRecord('01229e96', component.options)\n    } else {\n      api.reload('01229e96', component.options)\n    }\n    module.hot.accept(\"./ExampleCard.vue?vue&type=template&id=01229e96&\", function () {\n      api.rerender('01229e96', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/explore/ExampleCard.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Explore.vue?vue&type=template&id=050c84ae&\"\nimport script from \"./Explore.vue?vue&type=script&lang=js&\"\nexport * from \"./Explore.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Explore.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('050c84ae')) {\n      api.createRecord('050c84ae', component.options)\n    } else {\n      api.reload('050c84ae', component.options)\n    }\n    module.hot.accept(\"./Explore.vue?vue&type=template&id=050c84ae&\", function () {\n      api.rerender('050c84ae', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/explore/Explore.vue\"\nexport default component.exports","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeAce.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeAce.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeMonaco.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeMonaco.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Editor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Editor.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullCodePreview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullCodePreview.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Preview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Preview.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./View.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./View.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExampleCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExampleCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Explore.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Explore.vue?vue&type=script&lang=js&\"","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", {\n    directives: [\n      {\n        name: \"loading\",\n        rawName: \"v-loading\",\n        value: _vm.loading,\n        expression: \"loading\"\n      }\n    ],\n    staticClass: \"ace-editor-main\"\n  })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", {\n    directives: [\n      {\n        name: \"loading\",\n        rawName: \"v-loading\",\n        value: _vm.loading,\n        expression: \"loading\"\n      }\n    ],\n    staticClass: \"monaco-editor-main\"\n  })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    { attrs: { id: \"main-container\" } },\n    [\n      !_vm.shared.isMobile\n        ? _c(\n            \"div\",\n            {\n              style: { width: _vm.leftContainerSize + \"%\" },\n              attrs: { id: \"editor-left-container\" }\n            },\n            [\n              _c(\n                \"el-tabs\",\n                {\n                  attrs: { type: \"border-card\" },\n                  model: {\n                    value: _vm.currentTab,\n                    callback: function($$v) {\n                      _vm.currentTab = $$v\n                    },\n                    expression: \"currentTab\"\n                  }\n                },\n                [\n                  _c(\n                    \"el-tab-pane\",\n                    {\n                      attrs: {\n                        label: _vm.$t(\"editor.tabEditor\"),\n                        name: \"code-editor\"\n                      }\n                    },\n                    [\n                      _c(\n                        \"el-container\",\n                        [\n                          _c(\n                            \"el-header\",\n                            { attrs: { id: \"editor-control-panel\" } },\n                            [\n                              _c(\n                                \"div\",\n                                { attrs: { id: \"code-info\" } },\n                                [\n                                  _vm.shared.editorStatus.message\n                                    ? [\n                                        _c(\n                                          \"span\",\n                                          { staticClass: \"code-info-time\" },\n                                          [_vm._v(_vm._s(_vm.currentTime))]\n                                        ),\n                                        _vm._v(\" \"),\n                                        _c(\n                                          \"span\",\n                                          {\n                                            class:\n                                              \"code-info-type-\" +\n                                              _vm.shared.editorStatus.type\n                                          },\n                                          [\n                                            _vm._v(\n                                              _vm._s(\n                                                _vm.shared.editorStatus.message\n                                              )\n                                            )\n                                          ]\n                                        )\n                                      ]\n                                    : _vm._e()\n                                ],\n                                2\n                              ),\n                              _vm._v(\" \"),\n                              _c(\"div\", { staticClass: \"editor-controls\" }, [\n                                _c(\n                                  \"a\",\n                                  {\n                                    staticClass: \"btn btn-default btn-sm\",\n                                    attrs: { href: \"javascript:;\" },\n                                    on: { click: _vm.disposeAndRun }\n                                  },\n                                  [_vm._v(_vm._s(_vm.$t(\"editor.run\")))]\n                                )\n                              ])\n                            ]\n                          ),\n                          _vm._v(\" \"),\n                          _c(\n                            \"el-main\",\n                            [\n                              _vm.shared.typeCheck\n                                ? _c(\"CodeMonaco\", {\n                                    attrs: {\n                                      id: \"code-panel\",\n                                      initialCode: _vm.initialCode\n                                    }\n                                  })\n                                : _c(\"CodeAce\", {\n                                    attrs: {\n                                      id: \"code-panel\",\n                                      initialCode: _vm.initialCode\n                                    }\n                                  })\n                            ],\n                            1\n                          )\n                        ],\n                        1\n                      )\n                    ],\n                    1\n                  ),\n                  _vm._v(\" \"),\n                  _c(\n                    \"el-tab-pane\",\n                    {\n                      attrs: {\n                        label: _vm.$t(\"editor.tabFullCodePreview\"),\n                        name: \"full-code\",\n                        lazy: true\n                      }\n                    },\n                    [\n                      _c(\n                        \"el-container\",\n                        { staticStyle: { width: \"100%\", height: \"100%\" } },\n                        [\n                          _c(\n                            \"el-header\",\n                            { attrs: { id: \"full-code-generate-config\" } },\n                            [\n                              _c(\"span\", {\n                                staticClass: \"full-code-generate-config-label\"\n                              }),\n                              _vm._v(\" \"),\n                              _c(\"el-switch\", {\n                                staticClass: \"enable-decal\",\n                                attrs: {\n                                  \"active-text\": _vm.$t(\"editor.minimalBundle\"),\n                                  \"inactive-text\": \"\"\n                                },\n                                model: {\n                                  value: _vm.fullCodeConfig.minimal,\n                                  callback: function($$v) {\n                                    _vm.$set(_vm.fullCodeConfig, \"minimal\", $$v)\n                                  },\n                                  expression: \"fullCodeConfig.minimal\"\n                                }\n                              }),\n                              _vm._v(\" \"),\n                              _c(\"el-switch\", {\n                                staticClass: \"enable-decal\",\n                                attrs: {\n                                  \"active-text\": \"ES Modules\",\n                                  \"inactive-text\": \"\"\n                                },\n                                model: {\n                                  value: _vm.fullCodeConfig.esm,\n                                  callback: function($$v) {\n                                    _vm.$set(_vm.fullCodeConfig, \"esm\", $$v)\n                                  },\n                                  expression: \"fullCodeConfig.esm\"\n                                }\n                              })\n                            ],\n                            1\n                          ),\n                          _vm._v(\" \"),\n                          _c(\n                            \"el-main\",\n                            [\n                              _c(\"FullCodePreview\", {\n                                attrs: { code: _vm.fullCode }\n                              })\n                            ],\n                            1\n                          )\n                        ],\n                        1\n                      )\n                    ],\n                    1\n                  ),\n                  _vm._v(\" \"),\n                  _c(\n                    \"el-tab-pane\",\n                    {\n                      attrs: {\n                        label: _vm.$t(\"editor.tabOptionPreview\"),\n                        name: \"full-option\"\n                      }\n                    },\n                    [_c(\"div\", { attrs: { id: \"option-outline\" } })]\n                  )\n                ],\n                1\n              )\n            ],\n            1\n          )\n        : _vm._e(),\n      _vm._v(\" \"),\n      !_vm.shared.isMobile\n        ? _c(\"div\", {\n            staticClass: \"handler\",\n            style: { left: _vm.leftContainerSize + \"%\" },\n            attrs: { id: \"h-handler\" },\n            on: { mousedown: _vm.onSplitterDragStart }\n          })\n        : _vm._e(),\n      _vm._v(\" \"),\n      _c(\"Preview\", {\n        ref: \"preview\",\n        staticClass: \"right-container\",\n        style: {\n          width: 100 - _vm.leftContainerSize + \"%\",\n          left: _vm.leftContainerSize + \"%\"\n        },\n        attrs: { inEditor: true }\n      })\n    ],\n    1\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", {\n    directives: [\n      {\n        name: \"loading\",\n        rawName: \"v-loading\",\n        value: _vm.loading,\n        expression: \"loading\"\n      }\n    ],\n    staticClass: \"full-code-preview\"\n  })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    { class: [_vm.inEditor && !_vm.shared.isMobile ? \"\" : \"full\"] },\n    [\n      _c(\n        \"div\",\n        {\n          directives: [\n            {\n              name: \"loading\",\n              rawName: \"v-loading\",\n              value: _vm.loading,\n              expression: \"loading\"\n            }\n          ],\n          staticClass: \"right-panel\",\n          style: { background: _vm.backgroundColor },\n          attrs: { id: \"chart-panel\" }\n        },\n        [_c(\"div\", { staticClass: \"chart-container\" })]\n      ),\n      _vm._v(\" \"),\n      _c(\n        \"div\",\n        { attrs: { id: \"tool-panel\" } },\n        [\n          _c(\n            \"div\",\n            { staticClass: \"left-panel\" },\n            [\n              _c(\"el-switch\", {\n                staticClass: \"dark-mode\",\n                attrs: {\n                  \"active-color\": \"#181432\",\n                  \"active-text\": _vm.$t(\"editor.darkMode\"),\n                  \"inactive-text\": \"\"\n                },\n                model: {\n                  value: _vm.shared.darkMode,\n                  callback: function($$v) {\n                    _vm.$set(_vm.shared, \"darkMode\", $$v)\n                  },\n                  expression: \"shared.darkMode\"\n                }\n              }),\n              _vm._v(\" \"),\n              !_vm.isGL\n                ? _c(\"el-switch\", {\n                    staticClass: \"enable-decal\",\n                    attrs: {\n                      \"active-text\": _vm.$t(\"editor.enableDecal\"),\n                      \"inactive-text\": \"\"\n                    },\n                    model: {\n                      value: _vm.shared.enableDecal,\n                      callback: function($$v) {\n                        _vm.$set(_vm.shared, \"enableDecal\", $$v)\n                      },\n                      expression: \"shared.enableDecal\"\n                    }\n                  })\n                : _vm._e(),\n              _vm._v(\" \"),\n              !_vm.isGL\n                ? _c(\n                    \"el-popover\",\n                    {\n                      staticStyle: { \"margin-top\": \"3px\" },\n                      attrs: {\n                        placement: \"bottom\",\n                        width: \"450\",\n                        trigger: \"click\"\n                      }\n                    },\n                    [\n                      _c(\n                        \"div\",\n                        { staticClass: \"render-config-container\" },\n                        [\n                          _c(\n                            \"el-row\",\n                            {\n                              attrs: {\n                                gutter: 2,\n                                type: \"flex\",\n                                align: \"middle\"\n                              }\n                            },\n                            [\n                              _c(\n                                \"el-col\",\n                                { attrs: { span: 12 } },\n                                [\n                                  _c(\"label\", { staticClass: \"tool-label\" }, [\n                                    _vm._v(_vm._s(_vm.$t(\"editor.renderer\")))\n                                  ]),\n                                  _vm._v(\" \"),\n                                  _c(\n                                    \"el-radio-group\",\n                                    {\n                                      staticStyle: {\n                                        \"text-transform\": \"uppercase\"\n                                      },\n                                      attrs: { size: \"mini\" },\n                                      model: {\n                                        value: _vm.shared.renderer,\n                                        callback: function($$v) {\n                                          _vm.$set(_vm.shared, \"renderer\", $$v)\n                                        },\n                                        expression: \"shared.renderer\"\n                                      }\n                                    },\n                                    [\n                                      _c(\"el-radio-button\", {\n                                        attrs: { label: \"svg\" }\n                                      }),\n                                      _vm._v(\" \"),\n                                      _c(\"el-radio-button\", {\n                                        attrs: { label: \"canvas\" }\n                                      })\n                                    ],\n                                    1\n                                  )\n                                ],\n                                1\n                              ),\n                              _vm._v(\" \"),\n                              _c(\n                                \"el-col\",\n                                { attrs: { span: 12 } },\n                                [\n                                  _vm.shared.renderer === \"canvas\"\n                                    ? _c(\"el-switch\", {\n                                        attrs: {\n                                          \"active-text\": _vm.$t(\n                                            \"editor.useDirtyRect\"\n                                          ),\n                                          \"inactive-text\": \"\"\n                                        },\n                                        model: {\n                                          value: _vm.shared.useDirtyRect,\n                                          callback: function($$v) {\n                                            _vm.$set(\n                                              _vm.shared,\n                                              \"useDirtyRect\",\n                                              $$v\n                                            )\n                                          },\n                                          expression: \"shared.useDirtyRect\"\n                                        }\n                                      })\n                                    : _vm._e()\n                                ],\n                                1\n                              )\n                            ],\n                            1\n                          )\n                        ],\n                        1\n                      ),\n                      _vm._v(\" \"),\n                      _c(\n                        \"span\",\n                        {\n                          staticClass: \"render-config-trigger\",\n                          attrs: { slot: \"reference\" },\n                          slot: \"reference\"\n                        },\n                        [\n                          _c(\"i\", {\n                            staticClass: \"el-icon-setting el-icon--left\"\n                          }),\n                          _vm._v(_vm._s(_vm.$t(\"editor.renderCfgTitle\")))\n                        ]\n                      )\n                    ]\n                  )\n                : _vm._e()\n            ],\n            1\n          ),\n          _vm._v(\" \"),\n          _vm.inEditor\n            ? [\n                !_vm.shared.isMobile\n                  ? _c(\n                      \"button\",\n                      {\n                        staticClass: \"download btn btn-sm\",\n                        on: { click: _vm.downloadExample }\n                      },\n                      [_vm._v(_vm._s(_vm.$t(\"editor.download\")))]\n                    )\n                  : _vm._e(),\n                _vm._v(\" \"),\n                _c(\n                  \"a\",\n                  {\n                    staticClass: \"screenshot\",\n                    attrs: { target: \"_blank\" },\n                    on: { click: _vm.screenshot }\n                  },\n                  [_c(\"i\", { staticClass: \"el-icon-camera-solid\" })]\n                )\n              ]\n            : _c(\n                \"a\",\n                {\n                  staticClass: \"edit btn btn-sm\",\n                  attrs: { href: _vm.editLink, target: \"_blank\" }\n                },\n                [_vm._v(_vm._s(_vm.$t(\"editor.edit\")))]\n              )\n        ],\n        2\n      )\n    ]\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"preview\")\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", { staticClass: \"example-list-item\" }, [\n    _c(\n      \"a\",\n      {\n        staticClass: \"example-link\",\n        attrs: { target: \"_blank\", href: _vm.exampleLink }\n      },\n      [\n        _c(\"img\", {\n          staticClass: \"chart-area\",\n          attrs: {\n            src: require(\"../asset/placeholder.jpg\"),\n            \"data-src\": _vm.screenshotURL\n          }\n        }),\n        _vm._v(\" \"),\n        _c(\"h4\", { staticClass: \"example-title\" }, [_vm._v(_vm._s(_vm.title))]),\n        _vm._v(\" \"),\n        _vm.showSubtitle\n          ? _c(\"h5\", { staticClass: \"example-subtitle\" }, [\n              _vm._v(_vm._s(_vm.subtitle))\n            ])\n          : _vm._e()\n      ]\n    )\n  ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", { attrs: { id: \"example-explore\" } }, [\n    _c(\"div\", { attrs: { id: \"left-container\" } }, [\n      _c(\n        \"div\",\n        { attrs: { id: \"left-chart-nav\" } },\n        [\n          _c(\n            \"scrollactive\",\n            {\n              attrs: {\n                \"active-class\": \"active\",\n                offset: 80,\n                duration: 500,\n                \"scroll-container-selector\": \"#example-explore\",\n                \"bezier-easing-value\": \".5,0,.35,1\"\n              },\n              on: { itemchanged: _vm.onActiveNavChanged }\n            },\n            [\n              _c(\n                \"ul\",\n                _vm._l(_vm.EXAMPLE_CATEGORIES, function(category) {\n                  return _c(\"li\", { key: category }, [\n                    _c(\n                      \"a\",\n                      {\n                        staticClass: \"left-chart-nav-link scrollactive-item\",\n                        attrs: {\n                          id: \"left-chart-nav-\" + category,\n                          href: \"#chart-type-\" + category\n                        }\n                      },\n                      [\n                        _c(\"span\", {\n                          staticClass: \"chart-icon\",\n                          domProps: { innerHTML: _vm._s(_vm.icons[category]) }\n                        }),\n                        _vm._v(\" \"),\n                        _c(\"span\", { staticClass: \"chart-name\" }, [\n                          _vm._v(_vm._s(_vm.$t(\"chartTypes.\" + category)))\n                        ])\n                      ]\n                    )\n                  ])\n                }),\n                0\n              )\n            ]\n          )\n        ],\n        1\n      )\n    ]),\n    _vm._v(\" \"),\n    _c(\"div\", { attrs: { id: \"explore-container\" } }, [\n      _c(\n        \"div\",\n        { staticClass: \"example-list-panel\" },\n        _vm._l(_vm.exampleList, function(categoryObj) {\n          return _c(\"div\", { key: categoryObj.category }, [\n            _c(\n              \"h3\",\n              {\n                staticClass: \"chart-type-head\",\n                attrs: { id: \"chart-type-\" + categoryObj.category }\n              },\n              [\n                _vm._v(\n                  \"\\n                    \" +\n                    _vm._s(_vm.$t(\"chartTypes.\" + categoryObj.category)) +\n                    \"\\n                    \"\n                ),\n                _c(\"span\", [_vm._v(_vm._s(categoryObj.category))])\n              ]\n            ),\n            _vm._v(\" \"),\n            _c(\n              \"div\",\n              {\n                staticClass: \"row\",\n                attrs: { id: \"chart-row-\" + categoryObj.category }\n              },\n              _vm._l(categoryObj.examples, function(exampleItem) {\n                return _c(\n                  \"div\",\n                  {\n                    key: exampleItem.id,\n                    staticClass: \"col-xl-2 col-lg-3 col-md-4 col-sm-6\"\n                  },\n                  [_c(\"ExampleCard\", { attrs: { example: exampleItem } })],\n                  1\n                )\n              }),\n              0\n            )\n          ])\n        }),\n        0\n      )\n    ]),\n    _vm._v(\" \"),\n    _c(\n      \"div\",\n      { attrs: { id: \"toolbar\" } },\n      [\n        _c(\"el-switch\", {\n          attrs: {\n            \"active-color\": \"#181432\",\n            \"active-text\": _vm.$t(\"editor.darkMode\"),\n            \"inactive-text\": \"\"\n          },\n          model: {\n            value: _vm.shared.darkMode,\n            callback: function($$v) {\n              _vm.$set(_vm.shared, \"darkMode\", $$v)\n            },\n            expression: \"shared.darkMode\"\n          }\n        })\n      ],\n      1\n    )\n  ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier, /* server only */\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () {\n        injectStyles.call(\n          this,\n          (options.functional ? this.parent : this).$root.$options.shadowRoot\n        )\n      }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functional component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n","!(function (t, e) {\n  'object' == typeof exports && 'object' == typeof module\n    ? (module.exports = e())\n    : 'function' == typeof define && define.amd\n    ? define([], e)\n    : 'object' == typeof exports\n    ? (exports['vue-scrollactive'] = e())\n    : (t.vueScrollactive = e());\n})('undefined' != typeof self ? self : this, function () {\n  return (function (t) {\n    var e = {};\n    function r(n) {\n      if (e[n]) return e[n].exports;\n      var o = (e[n] = { i: n, l: !1, exports: {} });\n      return t[n].call(o.exports, o, o.exports, r), (o.l = !0), o.exports;\n    }\n    return (\n      (r.m = t),\n      (r.c = e),\n      (r.d = function (t, e, n) {\n        r.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n });\n      }),\n      (r.r = function (t) {\n        'undefined' != typeof Symbol &&\n          Symbol.toStringTag &&\n          Object.defineProperty(t, Symbol.toStringTag, { value: 'Module' }),\n          Object.defineProperty(t, '__esModule', { value: !0 });\n      }),\n      (r.t = function (t, e) {\n        if ((1 & e && (t = r(t)), 8 & e)) return t;\n        if (4 & e && 'object' == typeof t && t && t.__esModule) return t;\n        var n = Object.create(null);\n        if (\n          (r.r(n),\n          Object.defineProperty(n, 'default', { enumerable: !0, value: t }),\n          2 & e && 'string' != typeof t)\n        )\n          for (var o in t)\n            r.d(\n              n,\n              o,\n              function (e) {\n                return t[e];\n              }.bind(null, o)\n            );\n        return n;\n      }),\n      (r.n = function (t) {\n        var e =\n          t && t.__esModule\n            ? function () {\n                return t.default;\n              }\n            : function () {\n                return t;\n              };\n        return r.d(e, 'a', e), e;\n      }),\n      (r.o = function (t, e) {\n        return Object.prototype.hasOwnProperty.call(t, e);\n      }),\n      (r.p = '/dist/'),\n      r((r.s = 1))\n    );\n  })([\n    function (t, e) {\n      var r = 'function' == typeof Float32Array;\n      function n(t, e) {\n        return 1 - 3 * e + 3 * t;\n      }\n      function o(t, e) {\n        return 3 * e - 6 * t;\n      }\n      function i(t) {\n        return 3 * t;\n      }\n      function s(t, e, r) {\n        return ((n(e, r) * t + o(e, r)) * t + i(e)) * t;\n      }\n      function l(t, e, r) {\n        return 3 * n(e, r) * t * t + 2 * o(e, r) * t + i(e);\n      }\n      function a(t) {\n        return t;\n      }\n      t.exports = function (t, e, n, o) {\n        if (!(0 <= t && t <= 1 && 0 <= n && n <= 1))\n          throw new Error('bezier x values must be in [0, 1] range');\n        if (t === e && n === o) return a;\n        for (var i = r ? new Float32Array(11) : new Array(11), c = 0; c < 11; ++c)\n          i[c] = s(0.1 * c, t, n);\n        function u(e) {\n          for (var r = 0, o = 1; 10 !== o && i[o] <= e; ++o) r += 0.1;\n          --o;\n          var a = r + 0.1 * ((e - i[o]) / (i[o + 1] - i[o])),\n            c = l(a, t, n);\n          return c >= 0.001\n            ? (function (t, e, r, n) {\n                for (var o = 0; o < 4; ++o) {\n                  var i = l(e, r, n);\n                  if (0 === i) return e;\n                  e -= (s(e, r, n) - t) / i;\n                }\n                return e;\n              })(e, a, t, n)\n            : 0 === c\n            ? a\n            : (function (t, e, r, n, o) {\n                var i,\n                  l,\n                  a = 0;\n                do {\n                  (i = s((l = e + (r - e) / 2), n, o) - t) > 0 ? (r = l) : (e = l);\n                } while (Math.abs(i) > 1e-7 && ++a < 10);\n                return l;\n              })(e, r, r + 0.1, t, n);\n        }\n        return function (t) {\n          return 0 === t ? 0 : 1 === t ? 1 : s(u(t), e, o);\n        };\n      };\n    },\n    function (t, e, r) {\n      'use strict';\n      r.r(e);\n      var n = function () {\n        var t = this.$createElement;\n        return (this._self._c || t)(\n          this.tag,\n          { ref: 'scrollactive-nav-wrapper', tag: 'component', staticClass: 'scrollactive-nav' },\n          [this._t('default')],\n          2\n        );\n      };\n      n._withStripped = !0;\n      var o = r(0),\n        i = r.n(o);\n      function s(t) {\n        return (\n          (function (t) {\n            if (Array.isArray(t)) return l(t);\n          })(t) ||\n          (function (t) {\n            if ('undefined' != typeof Symbol && Symbol.iterator in Object(t)) return Array.from(t);\n          })(t) ||\n          (function (t, e) {\n            if (!t) return;\n            if ('string' == typeof t) return l(t, e);\n            var r = Object.prototype.toString.call(t).slice(8, -1);\n            'Object' === r && t.constructor && (r = t.constructor.name);\n            if ('Map' === r || 'Set' === r) return Array.from(t);\n            if ('Arguments' === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))\n              return l(t, e);\n          })(t) ||\n          (function () {\n            throw new TypeError(\n              'Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'\n            );\n          })()\n        );\n      }\n      function l(t, e) {\n        (null == e || e > t.length) && (e = t.length);\n        for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r];\n        return n;\n      }\n      var a = (function (t, e, r, n, o, i, s, l) {\n        var a,\n          c = 'function' == typeof t ? t.options : t;\n        if (\n          (e && ((c.render = e), (c.staticRenderFns = r), (c._compiled = !0)),\n          n && (c.functional = !0),\n          i && (c._scopeId = 'data-v-' + i),\n          s\n            ? ((a = function (t) {\n                (t =\n                  t ||\n                  (this.$vnode && this.$vnode.ssrContext) ||\n                  (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext)) ||\n                  'undefined' == typeof __VUE_SSR_CONTEXT__ ||\n                  (t = __VUE_SSR_CONTEXT__),\n                  o && o.call(this, t),\n                  t && t._registeredComponents && t._registeredComponents.add(s);\n              }),\n              (c._ssrRegister = a))\n            : o &&\n              (a = l\n                ? function () {\n                    o.call(this, (c.functional ? this.parent : this).$root.$options.shadowRoot);\n                  }\n                : o),\n          a)\n        )\n          if (c.functional) {\n            c._injectStyles = a;\n            var u = c.render;\n            c.render = function (t, e) {\n              return a.call(e), u(t, e);\n            };\n          } else {\n            var f = c.beforeCreate;\n            c.beforeCreate = f ? [].concat(f, a) : [a];\n          }\n        return { exports: t, options: c };\n      })(\n        {\n          props: {\n            activeClass: { type: String, default: 'is-active' },\n            offset: { type: Number, default: 20 },\n            scrollOffset: { type: Number, default: null },\n            scrollContainerSelector: { type: String, default: '' },\n            clickToScroll: { type: Boolean, default: !0 },\n            duration: { type: Number, default: 600 },\n            alwaysTrack: { type: Boolean, default: !1 },\n            bezierEasingValue: { type: String, default: '.5,0,.35,1' },\n            modifyUrl: { type: Boolean, default: !0 },\n            exact: { type: Boolean, default: !1 },\n            highlightFirstItem: { type: Boolean, default: !1 },\n            tag: { type: String, default: 'nav' },\n            scrollOnStart: { type: Boolean, default: !0 },\n          },\n          data: function () {\n            return {\n              observer: null,\n              items: [],\n              currentItem: null,\n              lastActiveItem: null,\n              scrollAnimationFrame: null,\n              bezierEasing: i.a,\n            };\n          },\n          computed: {\n            cubicBezierArray: function () {\n              return this.bezierEasingValue.split(',');\n            },\n            scrollContainer: function () {\n              var t = window;\n              return (\n                this.scrollContainerSelector &&\n                  (t = document.querySelector(this.scrollContainerSelector) || window),\n                t\n              );\n            },\n          },\n          mounted: function () {\n            var t = window.MutationObserver || window.WebKitMutationObserver;\n            this.observer ||\n              ((this.observer = new t(this.initScrollactiveItems)),\n              this.observer.observe(this.$refs['scrollactive-nav-wrapper'], {\n                childList: !0,\n                subtree: !0,\n              })),\n              this.initScrollactiveItems(),\n              this.removeActiveClass(),\n              (this.currentItem = this.getItemInsideWindow()),\n              this.currentItem && this.currentItem.classList.add(this.activeClass),\n              this.scrollOnStart && this.scrollToHashElement(),\n              this.scrollContainer.addEventListener('scroll', this.onScroll);\n          },\n          updated: function () {\n            this.initScrollactiveItems();\n          },\n          beforeDestroy: function () {\n            this.scrollContainer.removeEventListener('scroll', this.onScroll),\n              window.cancelAnimationFrame(this.scrollAnimationFrame);\n          },\n          methods: {\n            onScroll: function (t) {\n              (this.currentItem = this.getItemInsideWindow()),\n                this.currentItem !== this.lastActiveItem &&\n                  (this.removeActiveClass(),\n                  this.$emit('itemchanged', t, this.currentItem, this.lastActiveItem),\n                  (this.lastActiveItem = this.currentItem)),\n                this.currentItem && this.currentItem.classList.add(this.activeClass);\n            },\n            getItemInsideWindow: function () {\n              var t,\n                e = this;\n              return (\n                [].forEach.call(this.items, function (r) {\n                  var n = r === e.items[0],\n                    o = document.getElementById(decodeURI(r.hash.substr(1)));\n                  if (o) {\n                    var i = e.scrollContainer.scrollTop || window.pageYOffset,\n                      s = i >= e.getOffsetTop(o) - e.offset,\n                      l = i < e.getOffsetTop(o) - e.offset + o.offsetHeight;\n                    n && e.highlightFirstItem && l && (t = r),\n                      e.exact && s && l && (t = r),\n                      !e.exact && s && (t = r);\n                  }\n                }),\n                t\n              );\n            },\n            initScrollactiveItems: function () {\n              var t = this;\n              (this.items = this.$el.querySelectorAll('.scrollactive-item')),\n                this.clickToScroll\n                  ? [].forEach.call(this.items, function (e) {\n                      e.addEventListener('click', t.handleClick);\n                    })\n                  : [].forEach.call(this.items, function (e) {\n                      e.removeEventListener('click', t.handleClick);\n                    });\n            },\n            setScrollactiveItems: function () {\n              this.initScrollactiveItems();\n            },\n            handleClick: function (t) {\n              var e = this;\n              t.preventDefault();\n              var r = t.currentTarget.hash,\n                n = document.getElementById(decodeURI(r.substr(1)));\n              n\n                ? (this.alwaysTrack ||\n                    (this.scrollContainer.removeEventListener('scroll', this.onScroll),\n                    window.cancelAnimationFrame(this.scrollAnimationFrame),\n                    this.removeActiveClass(),\n                    t.currentTarget.classList.add(this.activeClass)),\n                  this.scrollTo(n).then(function () {\n                    if (!e.alwaysTrack) {\n                      e.scrollContainer.addEventListener('scroll', e.onScroll);\n                      (e.currentItem = [].find.call(e.items, function (t) {\n                        return decodeURI(t.hash.substr(1)) === n.id;\n                      })),\n                        e.currentItem !== e.lastActiveItem &&\n                          (e.$emit('itemchanged', null, e.currentItem, e.lastActiveItem),\n                          (e.lastActiveItem = e.currentItem));\n                    }\n                    e.modifyUrl && e.pushHashToUrl(r);\n                  }))\n                : console.warn(\n                    \"[vue-scrollactive] Element '\".concat(\n                      r,\n                      \"' was not found. Make sure it is set in the DOM.\"\n                    )\n                  );\n            },\n            scrollTo: function (t) {\n              var e = this;\n              return new Promise(function (r) {\n                var n = e.getOffsetTop(t),\n                  o = e.scrollContainer.scrollTop || window.pageYOffset,\n                  i = n - o,\n                  l = e.bezierEasing.apply(e, s(e.cubicBezierArray)),\n                  a = null;\n                window.requestAnimationFrame(function t(n) {\n                  a || (a = n);\n                  var s = n - a,\n                    c = s / e.duration;\n                  s >= e.duration && (s = e.duration), c >= 1 && (c = 1);\n                  var u = e.scrollOffset || e.offset,\n                    f = o + l(c) * (i - u);\n                  e.scrollContainer.scrollTo(0, f),\n                    s < e.duration\n                      ? (e.scrollAnimationFrame = window.requestAnimationFrame(t))\n                      : r();\n                });\n              });\n            },\n            getOffsetTop: function (t) {\n              for (var e = 0, r = t; r; ) (e += r.offsetTop), (r = r.offsetParent);\n              return this.scrollContainer.offsetTop && (e -= this.scrollContainer.offsetTop), e;\n            },\n            removeActiveClass: function () {\n              var t = this;\n              [].forEach.call(this.items, function (e) {\n                e.classList.remove(t.activeClass);\n              });\n            },\n            scrollToHashElement: function () {\n              var t = this,\n                e = window.location.hash;\n              if (e) {\n                var r = document.querySelector(decodeURI(e));\n                r &&\n                  ((window.location.hash = ''),\n                  setTimeout(function () {\n                    var n = r.offsetTop - t.offset;\n                    t.scrollContainer.scrollTo(0, n), t.pushHashToUrl(e);\n                  }, 0));\n              }\n            },\n            pushHashToUrl: function (t) {\n              window.history.pushState\n                ? window.history.pushState(null, null, t)\n                : (window.location.hash = t);\n            },\n          },\n        },\n        n,\n        [],\n        !1,\n        null,\n        null,\n        null\n      );\n      a.options.__file = 'src/scrollactive.vue';\n      var c = a.exports,\n        u = {\n          install: function (t) {\n            u.install.installed || t.component('scrollactive', c);\n          },\n        };\n      'undefined' != typeof window && window.Vue && u.install(window.Vue);\n      e.default = u;\n    },\n  ]);\n});\n","var map = {\n\t\"./bar.svg\": \"./src/asset/icon/bar.svg\",\n\t\"./boxplot.svg\": \"./src/asset/icon/boxplot.svg\",\n\t\"./calendar.svg\": \"./src/asset/icon/calendar.svg\",\n\t\"./candlestick.svg\": \"./src/asset/icon/candlestick.svg\",\n\t\"./custom.svg\": \"./src/asset/icon/custom.svg\",\n\t\"./dataZoom.svg\": \"./src/asset/icon/dataZoom.svg\",\n\t\"./dataset.svg\": \"./src/asset/icon/dataset.svg\",\n\t\"./drag.svg\": \"./src/asset/icon/drag.svg\",\n\t\"./funnel.svg\": \"./src/asset/icon/funnel.svg\",\n\t\"./gauge.svg\": \"./src/asset/icon/gauge.svg\",\n\t\"./geo.svg\": \"./src/asset/icon/geo.svg\",\n\t\"./gl.svg\": \"./src/asset/icon/gl.svg\",\n\t\"./graph.svg\": \"./src/asset/icon/graph.svg\",\n\t\"./heatmap.svg\": \"./src/asset/icon/heatmap.svg\",\n\t\"./line.svg\": \"./src/asset/icon/line.svg\",\n\t\"./lines.svg\": \"./src/asset/icon/lines.svg\",\n\t\"./map.svg\": \"./src/asset/icon/map.svg\",\n\t\"./parallel.svg\": \"./src/asset/icon/parallel.svg\",\n\t\"./pictorialBar.svg\": \"./src/asset/icon/pictorialBar.svg\",\n\t\"./pie.svg\": \"./src/asset/icon/pie.svg\",\n\t\"./radar.svg\": \"./src/asset/icon/radar.svg\",\n\t\"./rich.svg\": \"./src/asset/icon/rich.svg\",\n\t\"./sankey.svg\": \"./src/asset/icon/sankey.svg\",\n\t\"./scatter.svg\": \"./src/asset/icon/scatter.svg\",\n\t\"./sunburst.svg\": \"./src/asset/icon/sunburst.svg\",\n\t\"./themeRiver.svg\": \"./src/asset/icon/themeRiver.svg\",\n\t\"./tree.svg\": \"./src/asset/icon/tree.svg\",\n\t\"./treemap.svg\": \"./src/asset/icon/treemap.svg\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./src/asset/icon sync recursive ^\\\\.\\\\/.*\\\\.svg$\";","module.exports = Vue;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => module['default'] :\n\t\t() => module;\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"./\";","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(\"./src/main.js\");\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://echartsExample/./node_modules/@lang/object-visualizer/dist/object-visualizer.esm.min.js","webpack://echartsExample/./common/buildCode.js","webpack://echartsExample/src/editor/CodeAce.vue","webpack://echartsExample/src/editor/CodeMonaco.vue","webpack://echartsExample/src/editor/Editor.vue","webpack://echartsExample/src/editor/FullCodePreview.vue","webpack://echartsExample/src/editor/Preview.vue","webpack://echartsExample/src/editor/View.vue","webpack://echartsExample/src/explore/ExampleCard.vue","webpack://echartsExample/src/explore/Explore.vue","webpack://echartsExample/./src/common/config.js","webpack://echartsExample/./src/common/helper.js","webpack://echartsExample/./src/common/i18n.js","webpack://echartsExample/./src/common/store.js","webpack://echartsExample/./src/data/chart-list-data-gl.js","webpack://echartsExample/./src/data/chart-list-data.js","webpack://echartsExample/./src/data/option-keywords.js","webpack://echartsExample/./src/dep/showDebugDirtyRect.js","webpack://echartsExample/./src/editor/downloadExample.js","webpack://echartsExample/./src/editor/sandbox.js","webpack://echartsExample/./src/main.js","webpack://echartsExample/./src/asset/placeholder.jpg","webpack://echartsExample/./src/asset/icon/bar.svg","webpack://echartsExample/./src/asset/icon/boxplot.svg","webpack://echartsExample/./src/asset/icon/calendar.svg","webpack://echartsExample/./src/asset/icon/candlestick.svg","webpack://echartsExample/./src/asset/icon/custom.svg","webpack://echartsExample/./src/asset/icon/dataZoom.svg","webpack://echartsExample/./src/asset/icon/dataset.svg","webpack://echartsExample/./src/asset/icon/drag.svg","webpack://echartsExample/./src/asset/icon/funnel.svg","webpack://echartsExample/./src/asset/icon/gauge.svg","webpack://echartsExample/./src/asset/icon/geo.svg","webpack://echartsExample/./src/asset/icon/gl.svg","webpack://echartsExample/./src/asset/icon/graph.svg","webpack://echartsExample/./src/asset/icon/heatmap.svg","webpack://echartsExample/./src/asset/icon/line.svg","webpack://echartsExample/./src/asset/icon/lines.svg","webpack://echartsExample/./src/asset/icon/map.svg","webpack://echartsExample/./src/asset/icon/parallel.svg","webpack://echartsExample/./src/asset/icon/pictorialBar.svg","webpack://echartsExample/./src/asset/icon/pie.svg","webpack://echartsExample/./src/asset/icon/radar.svg","webpack://echartsExample/./src/asset/icon/rich.svg","webpack://echartsExample/./src/asset/icon/sankey.svg","webpack://echartsExample/./src/asset/icon/scatter.svg","webpack://echartsExample/./src/asset/icon/sunburst.svg","webpack://echartsExample/./src/asset/icon/themeRiver.svg","webpack://echartsExample/./src/asset/icon/tree.svg","webpack://echartsExample/./src/asset/icon/treemap.svg","webpack://echartsExample/./node_modules/lodash/_Symbol.js","webpack://echartsExample/./node_modules/lodash/_baseGetTag.js","webpack://echartsExample/./node_modules/lodash/_freeGlobal.js","webpack://echartsExample/./node_modules/lodash/_getRawTag.js","webpack://echartsExample/./node_modules/lodash/_objectToString.js","webpack://echartsExample/./node_modules/lodash/_root.js","webpack://echartsExample/./node_modules/lodash/debounce.js","webpack://echartsExample/./node_modules/lodash/isObject.js","webpack://echartsExample/./node_modules/lodash/isObjectLike.js","webpack://echartsExample/./node_modules/lodash/isSymbol.js","webpack://echartsExample/./node_modules/lodash/now.js","webpack://echartsExample/./node_modules/lodash/toNumber.js","webpack://echartsExample/./src/editor/CodeAce.vue?fe3c","webpack://echartsExample/./src/editor/CodeMonaco.vue?3785","webpack://echartsExample/./src/editor/Editor.vue?3ca8","webpack://echartsExample/./src/editor/FullCodePreview.vue?ab3f","webpack://echartsExample/./src/editor/Preview.vue?a8fb","webpack://echartsExample/./src/explore/ExampleCard.vue?81d6","webpack://echartsExample/./src/explore/Explore.vue?2d5c","webpack://echartsExample/./src/editor/object-visualizer.css","webpack://echartsExample/./node_modules/resize-detector/esm/index.js","webpack://echartsExample/./node_modules/vanilla-lazyload/dist/lazyload.esm.js","webpack://echartsExample/./node_modules/vue-i18n/dist/vue-i18n.esm.js","webpack://echartsExample/./src/editor/CodeAce.vue","webpack://echartsExample/./src/editor/CodeMonaco.vue","webpack://echartsExample/./src/editor/Editor.vue","webpack://echartsExample/./src/editor/FullCodePreview.vue","webpack://echartsExample/./src/editor/Preview.vue","webpack://echartsExample/./src/editor/View.vue","webpack://echartsExample/./src/explore/ExampleCard.vue","webpack://echartsExample/./src/explore/Explore.vue","webpack://echartsExample/./src/editor/CodeAce.vue?edd2","webpack://echartsExample/./src/editor/CodeMonaco.vue?5397","webpack://echartsExample/./src/editor/Editor.vue?c684","webpack://echartsExample/./src/editor/FullCodePreview.vue?84e7","webpack://echartsExample/./src/editor/Preview.vue?9b0f","webpack://echartsExample/./src/editor/View.vue?61ae","webpack://echartsExample/./src/explore/ExampleCard.vue?15c2","webpack://echartsExample/./src/explore/Explore.vue?0a10","webpack://echartsExample/./src/editor/CodeAce.vue?025a","webpack://echartsExample/./src/editor/CodeMonaco.vue?edac","webpack://echartsExample/./src/editor/Editor.vue?08c4","webpack://echartsExample/./src/editor/FullCodePreview.vue?f280","webpack://echartsExample/./src/editor/Preview.vue?42e8","webpack://echartsExample/./src/editor/View.vue?1961","webpack://echartsExample/./src/explore/ExampleCard.vue?094b","webpack://echartsExample/./src/explore/Explore.vue?6f68","webpack://echartsExample/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://echartsExample/./node_modules/vue-scrollactive/dist/vue-scrollactive.min.js","webpack://echartsExample//Users/lang/Develop/echarts-examples/src/asset/icon|sync|/^\\.\\/.*\\.svg$/","webpack://echartsExample/external \"Vue\"","webpack://echartsExample/webpack/bootstrap","webpack://echartsExample/webpack/runtime/compat get default export","webpack://echartsExample/webpack/runtime/define property getters","webpack://echartsExample/webpack/runtime/global","webpack://echartsExample/webpack/runtime/hasOwnProperty shorthand","webpack://echartsExample/webpack/runtime/make namespace object","webpack://echartsExample/webpack/runtime/node module decorator","webpack://echartsExample/webpack/runtime/publicPath","webpack://echartsExample/webpack/startup"],"names":["COMPONENTS_MAP","grid","polar","geo","singleAxis","parallel","calendar","graphic","toolbox","tooltip","axisPointer","brush","title","timeline","markPoint","markLine","markArea","legend","dataZoom","visualMap","aria","dataset","xAxis","yAxis","angleAxis","radiusAxis","CHARTS_MAP","line","bar","pie","scatter","radar","map","tree","treemap","graph","gauge","funnel","sankey","boxplot","candlestick","effectScatter","lines","heatmap","pictorialBar","themeRiver","sunburst","custom","COMPONENTS_GL_MAP","grid3D","geo3D","globe","mapbox3D","maptalks3D","xAxis3D","yAxis3D","zAxis3D","CHARTS_GL_MAP","bar3D","line3D","scatter3D","lines3D","polygons3D","surface","map3D","scatterGL","graphGL","flowGL","linesGL","COMPONENTS_MAP_REVERSE","CHARTS_MAP_REVERSE","CHARTS_GL_MAP_REVERSE","COMPONENTS_GL_MAP_REVERSE","RENDERERS_MAP_REVERSE","MARKERS","INJECTED_COMPONENTS","DEPENDENT_COMPONENTS","createReverseMap","reverseMap","Object","keys","forEach","key","includes","module","collectDeps","option","deps","options","opt","concat","baseOption","Array","from","Set","val","isArray","length","push","series","seriesOpt","type","markerType","buildMinimalBundleCode","includeType","chartsImports","componentsImports","chartsGLImports","componentsGLImports","renderersImports","dep","endsWith","replace","getImportsPartCode","imports","str","join","allImports","ECOptionTypeCode","filter","a","importsCodes","item","trim","buildLegacyMinimalBundleCode","isESM","modules","mod","hasGLInDeps","find","jsCode","minimal","esm","legacy","ts","theme","ROOT_PATH","extraImports","hasECStat","indexOf","usedRootPath","usedApp","DEP_CODE","IMPORT_CODE","ENV_CODE","PREPARE_CODE","EXAMPLE_CATEGORIES","THEMES","dark","BLACK_MAP","list","i","location","href","URL_PARAMS","search","substr","split","kv","SUPPORT_WEBP","elem","document","createElement","width","height","getContext","toDataURL","SCRIPT_URLS","localEChartsMinJS","echartsMinJS","echartsDir","echartsStatMinJS","echartsGLMinJS","datGUIMinJS","monacoDir","aceDir","promisesCache","loadScriptsAsync","scripts","Promise","all","scriptUrl","url","match","promise","resolve","reject","script","src","async","onload","onerror","body","appendChild","link","rel","downloadBlob","blob","fileName","window","navigator","msSaveBlob","msSaveOrOpenBlob","URL","createObjectURL","download","click","revokeObjectURL","en","editor","run","errorInEditor","chartOK","darkMode","enableDecal","renderCfgTitle","renderer","useDirtyRect","edit","monacoMode","tabEditor","tabFullCodePreview","tabOptionPreview","minimalBundle","chartTypes","drag","rich","zh","store","cdnRoot","version","locale","typeCheck","runCode","sourceCode","runHash","isMobile","innerWidth","editorStatus","message","loadExampleCode","dataRoot","$","ajax","dataType","success","data","parseSourceCode","code","hashId","updateRunHash","keywords","DebugRect","style","dom","className","assign","backgroundColor","border","cssText","hasOwnProperty","prototype","update","rect","domStyle","left","x","top","y","hide","opacity","show","_this","clearTimeout","_hideTimeout","setTimeout","zr","opts","painter","getLayers","Error","isSingleCanvas","debugViewRoot","debugRects","computedStyle","getComputedStyle","position","on","idx_1","eachBuiltinLayer","layer","debugGetPaintRects","paintRects","hasRootPath","rootPathCode","file","Blob","encoding","createSandbox","optionUpdated","appEnv","gui","_intervalIdList","_timeoutIdList","_oldSetTimeout","_oldSetInterval","setInterval","func","delay","id","gap","_clearTimeTickers","clearInterval","_events","_wrapOnMethods","chart","oldOn","oldSetOption","setOption","eventName","res","apply","arguments","_clearChartEvents","off","chartInstance","resize","dispose","getDataURL","pixelRatio","excludeComponents","getOption","el","echarts","init","showDebugDirtyRect","getZr","autoHideDelay","e","console","error","config","compiledCode","Function","updateTime","startTime","Date","endTime","domElement","remove","destroy","dat","GUI","autoPlace","css","right","zIndex","append","configParameters","name","value","isColor","controller","add","min","max","obj","colorArr","color","parse","stringify","onChange","onFinishChange","Vue","VueScrollactive","i18n","VueI18n","fallbackLocale","messages","querySelector","container","render","h","EditorPage","explore","ExplorePage","view","ViewPage","page"],"mappings":";;;;;;;;;;;;;;;;AAAA,gBAAgB,2CAA2C,YAAY,WAAW,eAAe,2CAA2C,0RAA0R,cAAc,SAAS,WAAW,YAAY,WAAW,KAAK,8BAA8B,gCAAgC,SAAS,iBAAiB,UAAU,wBAAwB,cAAc,WAAW,+BAA+B,MAAM,mBAAmB,0CAA0C,KAAK,cAAc,SAAS,YAAY,yBAAyB,WAAW,mBAAmB,+CAA+C,gBAAgB,0EAA0E,QAAQ,OAAO,8CAA8C,EAAE,cAAc,EAAE,OAAO,QAAQ,OAAO,oBAAoB,mCAAmC,cAAc,gGAAgG,qBAAqB,oBAAoB,6gBAA6gB,4BAA4B,4BAA4B,yLAAyL,KAAK,8CAA8C,YAAY,WAAW,YAAY,aAAa,2BAA2B,sCAAsC,EAAE,OAAO,sBAAsB,qBAAqB,MAAM,gJAAgJ,qBAAM,CAAC,qBAAM,GAAG,qBAAqB,MAAM,gCAAgC,kBAAkB,aAAa,2BAA2B,gBAAgB,sBAAsB,mBAAmB,2CAA2C,mBAAmB,MAAM,IAAI,2CAA2C,QAAQ,gCAAgC,4GAA4G,MAAM,qBAAqB,cAAc,mEAAmE,SAAS,eAAe,MAAM,OAAO,GAAG,aAAa,YAAY,WAAW,mBAAmB,YAAY,UAAU,YAAY,cAAc,kBAAkB,cAAc,iBAAiB,iBAAiB,mBAAmB,0BAA0B,eAAe,sBAAsB,eAAe,0DAA0D,yBAAyB,iBAAiB,aAAa,sBAAsB,kBAAkB,kCAAkC,IAAI,4BAA4B,8CAA8C,2BAA2B,GAAG,uCAAuC,wEAAwE,MAAM,mDAAmD,MAAM,4BAA4B,eAAe,+CAA+C,GAAG,qIAAqI,uBAAuB,uBAAuB,iCAAiC,iCAAiC,gDAAgD,aAAa,6CAA6C,2BAA2B,4DAA4D,2BAA2B,UAAU,0BAA0B,6BAA6B,kDAAkD,2BAA2B,qBAAqB,iBAAiB,0BAA0B,IAAI,iBAAiB,qBAAqB,6CAA6C,0DAA0D,2BAA2B,qBAAqB,KAAK,wBAAwB,eAAe,GAAG,kBAAkB,yBAAyB,aAAa,0DAA0D,oEAAoE,iEAAiE,UAAU,6CAA6C,oDAAoD,uCAAuC,mBAAmB,yBAAyB,oCAAoC,qBAAqB,mDAAmD,KAAK,8CAA8C,QAAQ,KAAK,kBAAkB,UAAU,KAAK,OAAO,8EAA8E,2BAA2B,gCAAgC,mCAAmC,MAAM,MAAM,sBAAsB,8DAA8D,oBAAoB,qCAAqC,4EAA4E,oBAAoB,6DAA6D,eAAe,QAAQ,uCAAuC,wCAAwC,iBAAiB,QAAQ,kBAAkB,YAAY,OAAO,kBAAkB,2BAA2B,oBAAoB,iEAAiE,eAAe,kBAAkB,YAAY,OAAO,kBAAkB,2BAA2B,eAAe,oBAAoB,oCAAoC,cAAc,0CAA0C,wCAAwC,iBAAiB,qBAAqB,gDAAgD,+DAA+D,mBAAmB,sBAAsB,wHAAwH,yBAAyB,OAAO,MAAM,eAAe,UAAU,UAAU,eAAe,EAAE,uCAAuC,qBAAqB,eAAe,eAAe,sBAAsB,0BAA0B,UAAU,OAAO,kBAAkB,YAAY,gBAAgB,2DAA2D,KAAK,OAAO,wBAAwB,YAAY,gBAAgB,2DAA2D,KAAK,OAAO,qBAAqB,YAAY,mBAAmB,QAAQ,0BAA0B,sFAAsF,iBAAiB,qBAAqB,kHAAkH,yDAAyD,sDAAsD,GAAG,UAAU,cAAc,KAAK,cAAc,KAAK,cAAc,+BAA+B,eAAe,yDAAyD,UAAU,kCAAkC,yDAAyD,kBAAkB,2BAA2B,eAAe,4CAA4C,eAAe,sBAAsB,qBAAqB,kBAAkB,+CAA+C,2BAA2B,cAAc,cAAc,kBAAkB,+BAA+B,oBAAoB,eAAe,oDAAoD,eAAe,+BAA+B,eAAe,oBAAoB,eAAe,2BAA2B,yBAAyB,eAAe,oCAAoC,eAAe,wBAAwB,kBAAkB,mBAAmB,IAAI,SAAS,oBAAoB,yEAAyE,YAAY,0CAA0C,aAAa,4GAA4G,UAAU,yBAAyB,uBAAuB,qCAAqC,aAAa,2DAA2D,eAAe,+BAA+B,SAAS,iBAAiB,6CAA6C,YAAY,+BAA+B,aAAa,2BAA2B,SAAS,mBAAmB,iEAAiE,uBAAuB,0DAA0D,wBAAwB,YAAY,kGAAkG,aAAa,iBAAiB,qBAAqB,MAAM,IAAI,gBAAgB,SAAS,UAAU,SAAS,qBAAqB,SAAS,oBAAoB,6BAA6B,UAAU,KAAK,WAAW,YAAY,WAAW,2BAA2B,SAAS,wBAAwB,WAAW,MAAM,eAAe,oBAAoB,KAAK,EAAE,EAAE,aAAa,iBAAiB,WAAW,+BAA+B,WAAW,yCAAyC,uCAAuC,sBAAsB,iBAAiB,UAAU,gBAAgB,YAAY,SAAS,YAAY,iBAAiB,YAAY,iBAAiB,2BAA2B,oBAAoB,eAAe,eAAe,uCAAuC,eAAe,gFAAgF,cAAc,+BAA+B,qBAAqB,wEAAwE,sBAAsB,cAAc,8CAA8C,aAAa,cAAc,8BAA8B,eAAe,cAAc,yBAAyB,4CAA4C,4CAA4C,aAAa,cAAc,cAAc,gCAAgC,eAAe,gDAAgD,IAAI,SAAS,aAAa,MAAM,eAAe,kBAAkB,QAAQ,mEAAmE,sBAAsB,yBAAyB,QAAQ,gDAAgD,cAAc,WAAW,2BAA2B,YAAY,gBAAgB,SAAS,yCAAyC,sBAAsB,qBAAqB,yCAAyC,oBAAoB,MAAM,cAAc,uBAAuB,iBAAiB,QAAQ,aAAa,sBAAsB,iDAAiD,gBAAgB,QAAQ,MAAM,+BAA+B,YAAY,sBAAsB,+FAA+F,+EAA+E,iBAAiB,6GAA6G,YAAY,eAAe,KAAK,eAAe,MAAM,oIAAoI,GAAG,MAAM,KAAK,IAAI,MAAM,kBAAkB,aAAa,gCAAgC,KAAK,UAAU,uBAAuB,uBAAuB,+BAA+B,QAAQ,2BAA2B,wBAAwB,YAAY,GAAG,4DAA4D,mGAAmG,SAAS,mBAAmB,iBAAiB,eAAe,MAAM,YAAY,WAAW,KAAK,aAAa,iBAAiB,qCAAqC,YAAY,KAAK,SAAS,aAAa,MAAM,6DAA6D,YAAY,SAAS,YAAY,WAAW,mDAAmD,UAAU,mBAAmB,uBAAuB,6CAA6C,YAAY,WAAW,KAAK,aAAa,kCAAkC,SAAS,eAAe,uBAAuB,QAAQ,aAAa,SAAS,kBAAkB,wBAAwB,UAAU,MAAM,8FAA8F,qBAAqB,0BAA0B,uBAAuB,aAAa,iBAAiB,MAAM,qDAAqD,MAAM,cAAc,YAAY,WAAW,KAAK,aAAa,wBAAwB,uBAAuB,aAAa,YAAY,uBAAuB,kBAAkB,kBAAkB,oDAAoD,uDAAuD,SAAS,sBAAsB,wCAAwC,oBAAoB,MAAM,SAAS,+BAA+B,YAAY,KAAK,sBAAsB,wBAAwB,+FAA+F,6BAA6B,oBAAoB,WAAW,KAAK,gBAAgB,gBAAgB,4BAA4B,aAAa,UAAU,gCAAgC,OAAO,GAAG,MAAM,+CAA+C,4DAA4D,uBAAuB,eAAe,iBAAiB,eAAe,oDAAoD,iBAAiB,iBAAiB,qBAAqB,iBAAiB,SAAS,uBAAuB,IAAI,2BAA2B,iCAAiC,SAAS,2BAA2B,MAAM,qDAAqD,wBAAwB,WAAW,oBAAoB,uBAAuB,EAAE,mCAAmC,4IAA4I,mBAAmB,iBAAiB,iBAAiB,iDAAiD,SAAS,aAAa,8JAA8J,kDAAkD,SAAS,UAAU,cAAc,YAAY,wBAAwB,YAAY,iBAAiB,aAAa,kBAAkB,YAAY,6DAA6D,UAAU,MAAM,0EAA0E,4BAA4B,eAAe,SAAS,aAAa,0CAA0C,EAAE,qEAAqE,wBAAwB,mBAAmB,mBAAmB,oDAAoD,yBAAyB,4BAA4B,gCAAgC,yBAAyB,WAAW,eAAe,kCAAkC,QAAQ,GAAG,iCAAiC,SAAS,iCAAiC,sBAAsB,+BAA+B,QAAQ,KAAK,EAAE,EAAE,0BAA0B,WAAW,IAAI,EAAE,gBAAgB,eAAe,KAAK,YAAY,6CAA6C,qBAAqB,qBAAqB,SAAS,UAAU,KAAK,gGAAgG,eAAe,iBAAiB,WAAW,WAAW,MAAM,gBAAgB,yBAAyB,iBAAiB,6BAA6B,eAAe,kBAAkB,kBAAkB,aAAa,uBAAuB,iBAAiB,cAAc,aAAa,YAAY,cAAc,uBAAuB,iBAAiB,sBAAsB,uCAAuC,YAAY,WAAW,KAAK,oBAAoB,UAAU,oBAAoB,UAAU,2DAA2D,EAAE,SAAS,qBAAqB,2BAA2B,YAAY,WAAW,KAAK,aAAa,2BAA2B,iBAAiB,2BAA2B,cAAc,OAAO,iBAAiB,gDAAgD,yBAAyB,0DAA0D,wBAAwB,cAAc,+BAA+B,SAAS,iBAAiB,0BAA0B,wBAAwB,uBAAuB,SAAS,eAAe,mFAAmF,gBAAgB,gBAAgB,kVAAkV,OAAO,gBAAgB,sHAAsH,WAAW,gDAAgD,qCAAqC,UAAU,UAAU,6BAA6B,kBAAkB,8EAA8E,gBAAgB,mEAAmE,MAAM,0FAA0F,MAAM,QAAQ,kCAAkC,uBAAuB,sFAAsF,aAAa,yBAAyB,wBAAwB,eAAe,aAAa,WAAW,wBAAwB,6BAA6B,eAAe,qBAAqB,4IAA4I,MAAM,mMAAmM,8CAA8C,0FAA0F,MAAM,yBAAyB,GAAG,UAAU,mBAAmB,MAAM,mBAAmB,MAAM,4BAA4B,MAAM,2BAA2B,MAAM,mGAAmG,+BAA+B,eAAe,qCAAqC,KAAK,kBAAkB,0CAA0C,eAAe,gDAAgD,eAAe,oCAAoC,KAAK,cAAc,QAAQ,MAAM,KAAK,SAAS,qBAAqB,SAAS,KAAK,cAAc,IAAI,MAAM,KAAK,SAAS,iBAAiB,KAAK,uBAAuB,4DAA4D,qBAAqB,QAAQ,MAAM,qEAAqE,GAAG,2CAA2C,KAAK,4JAA4J,4DAA4D,oCAAoC,WAAW,2DAA2D,sBAAsB,kDAAkD,sBAAsB,iCAAiC,mDAAmD,uEAAuE,qDAAqD,KAAK,eAAe,gBAAgB,yBAAyB,4EAA4E,yBAAyB,YAAY,WAAW,KAAK,iCAAiC,uBAAuB,mBAAmB,kBAAkB,IAAI,qCAAqC,GAAG,kBAAkB,gCAAgC,MAAM,2EAA2E,yBAAyB,qGAAqG,uBAAuB,YAAY,WAAW,KAAK,2BAA2B,oDAAoD,8CAA8C,kCAAkC,oCAAoC,4FAA4F,sCAAsC,KAAK,mBAAmB,YAAY,WAAW,KAAK,qFAAqF,wBAAwB,qBAAqB,UAAU,kBAAkB,iBAAiB,oBAAoB,mDAAmD,8EAA8E,uBAAuB,sDAAsD,IAAI,8BAA8B,GAAG,+KAA+K,uBAAuB,4EAA4E,qBAAqB,oCAAoC,sDAAsD,inBAAinB,OAAO,IAAI,gEAAgE,SAAS,QAAQ,+CAA+C,KAAK,MAAM,+BAA+B,eAAe,qBAAqB,yBAAyB,YAAY,wCAAwC,EAAE,eAAe,YAAY,gBAAgB,OAAO,wBAAwB,eAAe,8DAA8D,MAAM,QAAQ,GAAG,MAAM,8CAA8C,YAAY,iBAAiB,OAAO,kDAAkD,SAAS,UAAU,8BAA8B,sBAAsB,wBAAwB,QAAQ,GAAG,aAAa,aAAa,WAAW,aAAa,MAAM,gBAAgB,gCAAgC,yBAAyB,eAAe,sBAAsB,aAAa,gCAAgC,mBAAmB,MAAM,+BAA+B,IAAI,+BAA+B,oBAAoB,iCAAiC,0EAA0E,mBAAmB,+BAA+B,QAAQ,uBAAuB,YAAY,WAAW,KAAK,aAAa,mCAAmC,SAAS,SAAS,qDAAqD,qBAAqB,sBAAsB,qBAAqB,sBAAsB,iDAAiD,qBAAqB,uBAAuB,gBAAgB,OAAO,iCAAiC,OAAO,yFAAyF,0BAA0B,qEAAqE,iBAAiB,IAAI,KAAK,iBAAiB,6BAA6B,kEAAkE,YAAY,2BAA2B,KAAK,MAAM,MAAM,aAAa,IAAI,kBAAkB,GAAG,+CAA+C,wBAAwB,kGAAkG,UAAU,KAAK,MAAM,IAAI,GAAG,4CAA4C,MAAM,aAAa,cAAc,sBAAsB,wCAAwC,MAAM,uBAAuB,aAAa,8BAA8B,oBAAoB,MAAM,YAAY,mIAAmI,iDAAiD,aAAa,6BAA6B,YAAY,WAAW,KAAK,oBAAoB,sBAAsB,KAAK,aAAa,mBAAmB,aAAa,qBAAqB,yBAAyB,MAAM,gBAAgB,GAAG,aAAa,mBAAmB,YAAY,+CAA+C,oBAAoB,UAAU,EAAE,iDAAiD,oCAAoC,0BAA0B,sDAAsD,wBAAwB,GAAG,QAAQ,wCAAwC,wCAAwC,oHAAoH,uBAAuB,OAAO,mDAAmD,MAAM,QAAQ,IAAI,KAAK,iCAAiC,yBAAyB,yCAAyC,uBAAuB,QAAQ,iBAAiB,uBAAuB,KAAK,WAAW,EAAE,wCAAwC,kBAAkB,0BAA0B,KAAK,WAAW,EAAE,wCAAwC,kBAAkB,8BAA8B,QAAQ,SAAS,4BAA4B,KAAK,KAAK,iDAAiD,iBAAiB,KAAK,oBAAoB,KAAK,wBAAwB,QAAQ,KAAK,KAAK,iCAAiC,4BAA4B,UAAU,cAAc,aAAa,qBAAqB,QAAQ,IAAI,WAAW,QAAQ,KAAK,KAAK,aAAa,SAAS,YAAY,SAAS,MAAM,8BAA8B,aAAa,KAAK,+BAA+B,IAAI,MAAM,+EAA+E,sBAAsB,wBAAwB,cAAc,iBAAiB,QAAQ,IAAI,KAAK,aAAa,UAAU,2BAA2B,iBAAiB,SAAS,qBAAqB,IAAI,iCAAiC,wCAAwC,oBAAoB,KAAK,OAAO,eAAe,SAAS,MAAM,uBAAuB,KAAK,KAAK,uCAAuC,iEAAiE,sBAAsB,MAAM,gDAAgD,GAAG,gDAAgD,4CAA4C,qCAAqC,WAAW,SAAS,YAAY,WAAW,kBAAkB,4BAA4B,+BAA+B,2EAA2E,KAAK,MAAM,kCAAkC,yBAAyB,UAAU,WAAW,IAAI,eAAe,cAAc,uBAAuB,MAAM,iFAAiF,GAAG,oEAAoE,eAAe,MAAM,oEAAoE,KAAK,6CAA6C,2KAA2K,yCAAyC,yCAAyC,KAAK,QAAQ,MAAM,kCAAkC,GAAG,8BAA8B,2BAA2B,aAAa,oDAAoD,mCAAmC,MAAM,qBAAqB,gBAAgB,kBAAkB,SAAS,YAAY,MAAM,KAAK,MAAM,iBAAiB,KAAK,cAAc,MAAM,wCAAwC,GAAG,yBAAyB,WAAW,YAAY,yCAAyC,iBAAiB,4JAA4J,4BAA4B,YAAY,WAAW,oBAAoB,4GAA4G,iFAAiF,KAAK,iDAAiD,UAAU,mBAAmB,OAAO,0CAA0C,IAAI,0BAA0B,gBAAgB,sBAAsB,gCAAgC,0BAA0B,WAAW,KAAK,aAAa,WAAW,iHAAiH,6CAA6C,eAAe,0BAA0B,eAAe,MAAM,eAAe,qBAAqB,wBAAwB,8BAA8B,8CAA8C,gDAAgD,oBAAoB,kBAAkB,iBAAiB,sCAAsC,oFAAoF,YAAY,kBAAkB,sBAAsB,cAAc,kCAAkC,uBAAuB,yBAAyB,qDAAqD,eAAe,8BAA8B,iBAAiB,sCAAsC,4BAA4B,MAAM,uBAAuB,MAAM,8BAA8B,SAAS,qDAAqD,kBAAkB,UAAU,mBAAmB,oBAAoB,2CAA2C,MAAM,MAAM,yBAAyB,KAAK,IAAI,gBAAgB,GAAG,qDAAqD,mBAAmB,uFAAuF,kUAAkU,kBAAkB,MAAM,qBAAqB,aAAa,MAAM,uBAAuB,GAAG,QAAQ,qEAAqE,sBAAsB,IAAI,6BAA6B,uCAAuC,UAAU,sBAAsB,MAAM,0BAA0B,sBAAsB,YAAY,OAAO,YAAY,WAAW,KAAK,aAAa,kFAAkF,iDAAiD,cAAc,oBAAoB,oCAAoC,wBAAwB,SAAS,MAAM,MAAM,OAAO,+iBAA+iB,uBAAuB,uBAAuB,uBAAuB,4CAA4C,eAAe,2HAA2H,eAAe,2BAA2B,iBAAiB,QAAQ,MAAM,YAAY,GAAG,kBAAkB,kBAAkB,4BAA4B,cAAc,kBAAkB,sDAAsD,KAAK,YAAY,2FAA2F,cAAc,kBAAkB,+CAA+C,4BAA4B,sBAAsB,eAAe,MAAM,yFAAyF,yBAAyB,4CAA4C,UAAU,qCAAqC,MAAM,2SAA2S,2CAA2C,4JAA4J,WAAW,KAAK,aAAa,WAAW,uBAAuB,aAAa,gDAAgD,uBAAuB,aAAa,uBAAuB,yFAAyF,mBAAmB,oFAAoF,EAAE,2BAA2B,+DAA+D,EAAE,MAAM,6CAA6C,gCAAgC,6CAA6C,yBAAyB,gCAAgC,eAAe,OAAO,kBAAkB,sCAAsC,gDAAgD,SAAS,GAAG,4CAA4C,6DAA6D,gKAAgK,aAAa,2BAA2B,aAAa,uGAAuG,mCAAmC,GAAG,eAAe,mBAAmB,iCAAiC,MAAM,GAAG,8BAA8B,uBAAuB,YAAY,MAAM,mBAAmB,GAAG,8BAA8B,aAAa,2BAA2B,qBAAqB,+BAA+B,aAAa,2BAA2B,qBAAqB,YAAY,WAAW,KAAK,oBAAoB,eAAe,gBAAgB,4BAA4B,uBAAuB,YAAY,WAAW,wBAAwB,mBAAmB,oBAAoB,4CAA4C,qBAAqB,sCAAsC,qBAAqB,WAAW,QAAQ,YAAY,cAAc,cAAc,UAAU,eAAe,SAAS,aAAa,cAAc,6BAA6B,iDAAiD,KAAK,oDAAoD,iBAAiB,mBAAmB,mDAAmD,mBAAmB,GAAG,0CAA0C,oEAAoE,wEAAwE,iOAAiO,gBAAgB,8BAA8B,GAAG,cAAc,4BAA4B,8BAA8B,WAAW,wDAAwD,qHAAqH,MAAM,KAAK,IAAI,IAAI,MAAM,oEAAoE,GAAG,2BAA2B,MAAM,eAAe,aAAa,wBAAwB,mBAAmB,mBAAmB,mBAAmB,mBAAmB,KAAK,oCAAoC,oCAAoC,oDAAoD,oCAAoC,mCAAmC,cAAc,QAAQ,oJAAoJ,MAAM,IAAI,MAAM,MAAM,0BAA0B,GAAG,wBAAwB,6BAA6B,8BAA8B,mDAAmD,MAAM,GAAG,qEAAqE,IAAI,MAAM,uHAAuH,QAAQ,KAAK,SAAS,+CAA+C,8BAA8B,UAAU,SAAS,YAAY,aAAa,MAAM,UAAU,mBAAmB,oGAAoG,iBAAiB,eAAe,uIAAuI,oBAAoB,uCAAuC,eAAe,oBAAoB,QAAQ,iEAAiE,IAAI,sBAAsB,iBAAiB,MAAM,eAAe,sBAAsB,uBAAuB,IAAI,mBAAmB,4BAA4B,eAAe,YAAY,IAAI,kBAAkB,qDAAqD,KAAK,uBAAuB,sBAAsB,uBAAuB,IAAI,KAAK,aAAa,kBAAkB,UAAU,SAAS,+FAA+F,UAAU,UAAU,iBAAiB,0BAA0B,YAAY,qBAAqB,oBAAoB,yEAAyE,KAAK,iGAAiG,cAAc,wBAAwB,gBAAgB,8GAA8G,qBAAqB,2DAA2D,iFAAiF,cAAc,qBAAqB,YAAY,KAAK,EAAE,qCAAqC,cAAc,0BAA0B,mBAAmB,kCAAkC,8CAA8C,KAAK,sBAAsB,cAAc,cAAc,WAAW,uCAAuC,OAAO,YAAY,YAAY,KAAK,gBAAgB,yBAAyB,SAAS,MAAM,oEAAoE,qCAAqC,wCAAwC,gBAAgB,uGAAuG,SAAS,mCAAmC,MAAM,4BAA4B,0BAA0B,SAAS,kBAAkB,KAAK,uBAAuB,MAAM,eAAe,MAAM,SAAS,cAAc,4DAA4D,mCAAmC,IAAI,MAAM,mBAAmB,0BAA0B,wBAAwB,YAAY,oDAAoD,SAAS,mCAAmC,uCAAuC,wBAAwB,kCAAkC,SAAS,sBAAsB,gEAAgE,SAAS,4BAA4B,6BAA6B,wBAAwB,qCAAqC,oBAAoB,UAAU,eAAe,QAAQ,EAAE,aAAa,EAAE,iFAAiF,YAAY,QAAQ,EAAE,aAAa,EAAE,iBAAiB,YAAY,mBAAmB,EAAE,aAAa,EAAE,kEAAkE,SAAS,WAAW,kBAAkB,QAAQ,EAAE,UAAU,iBAAiB,gCAAgC,YAAY,mCAAmC,UAAU,6BAA6B,+CAA+C,KAAK,eAAe,oDAAoD,QAAQ,MAAM,6BAA6B,gBAAgB,kCAAkC,KAAK,8BAA8B,oDAAoD,gCAAgC,QAAQ,MAAM,mDAAmD,yDAAyD,8CAA8C,2CAA2C,4CAA4C,6BAA6B,cAAc,kCAAkC,iFAAiF,wCAAwC,oBAAoB,oBAAoB,8CAA8C,kEAAkE,wDAAwD,IAAI,OAAO,WAAW,KAAK,WAAW,qBAAqB,0BAA0B,wGAAwG,0GAA0G,KAAK,aAAa,kEAAkE,YAAY,mCAAmC,KAAK,OAAO,cAAc,uBAAuB,kBAAkB,8BAA8B,QAAQ,GAAG,mBAAmB,oBAAoB,SAAS,iCAAiC,SAAS,IAAI,aAAa,qBAAqB,oEAAoE,aAAa,sEAAsE,IAAI,kEAAkE,QAAQ,OAAO,MAAM,wCAAwC,OAAO,2BAA2B,UAAU,aAAa,KAAK,YAAY,KAAK,wBAAwB,eAAe,cAAc,YAAY,gCAAgC,6GAA6G,4CAA4C,QAAQ,OAAO,MAAM,2CAA2C,OAAO,2BAA2B,UAAU,gBAAgB,KAAK,YAAY,KAAK,wBAAwB,KAAK,eAAe,gCAAgC,oIAAoI,+CAA+C,QAAQ,OAAO,MAAM,0CAA0C,OAAO,2BAA2B,UAAU,eAAe,KAAK,YAAY,KAAK,wBAAwB,KAAK,eAAe,gCAAgC,oIAAoI,8CAA8C,QAAQ,OAAO,MAAM,0CAA0C,OAAO,2BAA2B,UAAU,eAAe,KAAK,YAAY,KAAK,wBAAwB,eAAe,eAAe,aAAa,cAAc,eAAe,eAAe,SAAS,gCAAgC,0IAA0I,8CAA8C,iBAAiB,eAAe,wDAAwD,EAAE,+BAA+B,6BAA6B,6BAA6B,sBAAsB,6BAA6B,2BAA2B,6BAA6B,4CAA4C,GAAG,aAAa,GAAG,wEAAwE,qFAAqF,QAAQ,4BAA4B,MAAM,2FAA2F,OAAO,yCAAyC,OAAO,wBAAwB,iBAAiB,wBAAwB,eAAe,wBAAwB,4BAA4B,0BAA0B,UAAU,2BAA2B,UAAU,MAAM,sEAAsE,6DAA6D,uBAAuB,2FAA2F,gBAAgB,UAAU,cAAc,KAAK,oBAAoB,KAAK,qBAAqB,gCAAgC,sBAAsB,qCAAqC,kFAAkF,wCAAwC,4EAA4E,wCAAwC,kFAAkF,sCAAsC,8EAA8E,gFAAgF,gFAAgF,kFAAkF,MAAM,iFAAiF,iLAAiL,qJAAqJ,MAAM,iFAAiF,sMAAsM,0IAA0I,6CAA6C,QAAQ,6BAA6B,MAAM,2FAA2F,OAAO,0CAA0C,OAAO,wBAAwB,iBAAiB,wBAAwB,eAAe,wBAAwB,4BAA4B,0BAA0B,UAAU,2BAA2B,UAAU,MAAM,sEAAsE,6DAA6D,uBAAuB,2FAA2F,gBAAgB,UAAU,eAAe,KAAK,oBAAoB,KAAK,qBAAqB,gCAAgC,sBAAsB,qCAAqC,kFAAkF,wCAAwC,4EAA4E,wCAAwC,kFAAkF,sCAAsC,gFAAgF,sBAAsB,IAAI,gCAAgC,MAAM,iFAAiF,+LAA+L,4MAA4M,oNAAoN,gJAAgJ,8CAA8C,UAAU,sBAAsB,MAAM,2FAA2F,OAAO,kIAAkI,OAAO,wBAAwB,iBAAiB,wBAAwB,eAAe,wBAAwB,4BAA4B,0BAA0B,UAAU,2BAA2B,aAAa,kBAAkB,cAAc,sGAAsG,kFAAkF,8IAA8I,oDAAoD,8BAA8B,2EAA2E,8BAA8B,0EAA0E,8BAA8B,0EAA0E,8BAA8B,yEAAyE,oLAAoL,yJAAyJ,oLAAoL,uHAAuH,wCAAwC,wBAAwB,8DAA8D,EAAE,gBAAgB,IAAI,gOAAgO,kBAAkB,iBAAiB,uGAAuG,YAA+C;;;;;;;;;;;;ACA7xpD,IAAMA,cAAc,GAAG;AACnBC,MAAI,EAAE,eADa;AAEnBC,OAAK,EAAE,gBAFY;AAGnBC,KAAG,EAAE,cAHc;AAInBC,YAAU,EAAE,qBAJO;AAKnBC,UAAQ,EAAE,mBALS;AAMnBC,UAAQ,EAAE,mBANS;AAOnBC,SAAO,EAAE,kBAPU;AAQnBC,SAAO,EAAE,kBARU;AASnBC,SAAO,EAAE,kBATU;AAUnBC,aAAW,EAAE,sBAVM;AAWnBC,OAAK,EAAE,gBAXY;AAYnBC,OAAK,EAAE,gBAZY;AAanBC,UAAQ,EAAE,mBAbS;AAcnBC,WAAS,EAAE,oBAdQ;AAenBC,UAAQ,EAAE,mBAfS;AAgBnBC,UAAQ,EAAE,mBAhBS;AAiBnBC,QAAM,EAAE,iBAjBW;AAkBnBC,UAAQ,EAAE,mBAlBS;AAmBnBC,WAAS,EAAE,oBAnBQ;AAoBnBC,MAAI,EAAE,eApBa;AAqBnBC,SAAO,EAAE,kBArBU;AAuBnB;AACAC,OAAK,EAAE,eAxBY;AAyBnBC,OAAK,EAAE,eAzBY;AA0BnBC,WAAS,EAAE,gBA1BQ;AA2BnBC,YAAU,EAAE;AA3BO,CAAvB;AA8BA,IAAMC,UAAU,GAAG;AACfC,MAAI,EAAE,WADS;AAEfC,KAAG,EAAE,UAFU;AAGfC,KAAG,EAAE,UAHU;AAIfC,SAAO,EAAE,cAJM;AAKfC,OAAK,EAAE,YALQ;AAMfC,KAAG,EAAE,UANU;AAOfC,MAAI,EAAE,WAPS;AAQfC,SAAO,EAAE,cARM;AASfC,OAAK,EAAE,YATQ;AAUfC,OAAK,EAAE,YAVQ;AAWfC,QAAM,EAAE,aAXO;AAYfhC,UAAQ,EAAE,eAZK;AAafiC,QAAM,EAAE,aAbO;AAcfC,SAAO,EAAE,cAdM;AAefC,aAAW,EAAE,kBAfE;AAgBfC,eAAa,EAAE,oBAhBA;AAiBfC,OAAK,EAAE,YAjBQ;AAkBfC,SAAO,EAAE,cAlBM;AAmBfC,cAAY,EAAE,mBAnBC;AAoBfC,YAAU,EAAE,iBApBG;AAqBfC,UAAQ,EAAE,eArBK;AAsBfC,QAAM,EAAE;AAtBO,CAAnB;AAwBA,IAAMC,iBAAiB,GAAG;AAEtBC,QAAM,EAAE,iBAFc;AAGtBC,OAAK,EAAE,gBAHe;AAItBC,OAAK,EAAE,gBAJe;AAKtBC,UAAQ,EAAE,mBALY;AAMtBC,YAAU,EAAE,qBANU;AAQtB;AACAC,SAAO,EAAE,iBATa;AAUtBC,SAAO,EAAE,iBAVa;AAWtBC,SAAO,EAAE;AAXa,CAA1B;AAaA,IAAMC,aAAa,GAAG;AAClBC,OAAK,EAAE,YADW;AAElBC,QAAM,EAAE,aAFU;AAGlBC,WAAS,EAAE,gBAHO;AAIlBC,SAAO,EAAE,cAJS;AAKlBC,YAAU,EAAE,iBALM;AAMlBC,SAAO,EAAE,cANS;AAOlBC,OAAK,EAAE,YAPW;AASlBC,WAAS,EAAE,gBATO;AAUlBC,SAAO,EAAE,cAVS;AAWlBC,QAAM,EAAE,aAXU;AAYlBC,SAAO,EAAE;AAZS,CAAtB;AAeA,IAAMC,sBAAsB,GAAG,EAA/B;AACA,IAAMC,kBAAkB,GAAG,EAA3B;AACA,IAAMC,qBAAqB,GAAG,EAA9B;AACA,IAAMC,yBAAyB,GAAG,EAAlC;AAEA,IAAMC,qBAAqB,GAAG;AAC1B,iBAAe,KADW;AAE1B,oBAAkB;AAFQ,CAA9B,C,CAKA;AACA;;AACA,IAAMC,OAAO,GAAG,CAAC,UAAD,EAAa,UAAb,EAAyB,WAAzB,CAAhB;AACA,IAAMC,mBAAmB,aAClBD,OADkB,GACT,MADS,EACD,aADC,EAErB,MAFqB,CAEb;AAFa,EAAzB,C,CAKA;;AACA,IAAME,oBAAoB,GAAG,CACzB,OADyB,EAChB,OADgB,EACP,WADO,EACM,YADN,EAEzB,SAFyB,EAEd,SAFc,EAEH,SAFG,CAA7B;;AAKA,SAASC,gBAAT,CAA0B7C,GAA1B,EAA+B8C,UAA/B,EAA2C;AACvCC,QAAM,CAACC,IAAP,CAAYhD,GAAZ,EAAiBiD,OAAjB,CAAyB,UAAAC,GAAG,EAAI;AAC5B;AACA,QAAIN,oBAAoB,CAACO,QAArB,CAA8BD,GAA9B,CAAJ,EAAwC;AACpC;AACH;;AACDJ,cAAU,CAAC9C,GAAG,CAACkD,GAAD,CAAJ,CAAV,GAAuBA,GAAvB;AACH,GAND;AAOH;;AAEDL,gBAAgB,CAAC7E,cAAD,EAAiBqE,sBAAjB,CAAhB;AACAQ,gBAAgB,CAACnD,UAAD,EAAa4C,kBAAb,CAAhB;AACAO,gBAAgB,CAAC7B,iBAAD,EAAoBwB,yBAApB,CAAhB;AACAK,gBAAgB,CAACpB,aAAD,EAAgBc,qBAAhB,CAAhB;;AAEAa,0BAAA,GAA6B,SAASC,WAAT,CAAqBC,MAArB,EAA6B;AACtD,MAAIC,IAAI,GAAG,EAAX;;AACA,MAAID,MAAM,CAACE,OAAX,EAAoB;AAEhB;AACAF,UAAM,CAACE,OAAP,CAAeP,OAAf,CAAuB,UAACQ,GAAD,EAAS;AAC5BF,UAAI,GAAGA,IAAI,CAACG,MAAL,CAAYL,WAAW,CAACI,GAAD,CAAvB,CAAP;AACH,KAFD;;AAIA,QAAIH,MAAM,CAACK,UAAX,EAAuB;AACnBJ,UAAI,GAAGA,IAAI,CAACG,MAAL,CAAYL,WAAW,CAACC,MAAM,CAACK,UAAR,CAAvB,CAAP;AACH,KATe,CAWhB;;;AACA,WAAOC,KAAK,CAACC,IAAN,CAAW,IAAIC,GAAJ,CAAQP,IAAR,CAAX,CAAP;AACH;;AAEDR,QAAM,CAACC,IAAP,CAAYM,MAAZ,EAAoBL,OAApB,CAA4B,UAACC,GAAD,EAAS;AACjC,QAAIP,mBAAmB,CAACQ,QAApB,CAA6BD,GAA7B,CAAJ,EAAuC;AACnC;AACH;;AACD,QAAMa,GAAG,GAAGT,MAAM,CAACJ,GAAD,CAAlB;;AAEA,QAAIU,KAAK,CAACI,OAAN,CAAcD,GAAd,KAAsB,CAACA,GAAG,CAACE,MAA/B,EAAuC;AACnC;AACH;;AAED,QAAIjG,cAAc,CAACkF,GAAD,CAAlB,EAAyB;AACrBK,UAAI,CAACW,IAAL,CAAUlG,cAAc,CAACkF,GAAD,CAAxB;AACH;;AACD,QAAIlC,iBAAiB,CAACkC,GAAD,CAArB,EAA4B;AACxBK,UAAI,CAACW,IAAL,CAAUlD,iBAAiB,CAACkC,GAAD,CAA3B;AACH;AACJ,GAhBD;AAkBA,MAAIiB,MAAM,GAAGb,MAAM,CAACa,MAApB;;AACA,MAAI,CAACP,KAAK,CAACI,OAAN,CAAcG,MAAd,CAAL,EAA4B;AACxBA,UAAM,GAAG,CAACA,MAAD,CAAT;AACH;;AAEDA,QAAM,CAAClB,OAAP,CAAe,UAACmB,SAAD,EAAe;AAC1B,QAAI1E,UAAU,CAAC0E,SAAS,CAACC,IAAX,CAAd,EAAgC;AAC5Bd,UAAI,CAACW,IAAL,CAAUxE,UAAU,CAAC0E,SAAS,CAACC,IAAX,CAApB;AACH;;AACD,QAAI5C,aAAa,CAAC2C,SAAS,CAACC,IAAX,CAAjB,EAAmC;AAC/Bd,UAAI,CAACW,IAAL,CAAUzC,aAAa,CAAC2C,SAAS,CAACC,IAAX,CAAvB;AACH;;AACD,QAAID,SAAS,CAACC,IAAV,KAAmB,KAAvB,EAA8B;AAC1B;AACAd,UAAI,CAACW,IAAL,CAAUlG,cAAc,CAACG,GAAzB;AACH;;AACDuE,WAAO,CAACO,OAAR,CAAgB,UAAAqB,UAAU,EAAI;AAC1B,UAAIF,SAAS,CAACE,UAAD,CAAb,EAA2B;AACvBf,YAAI,CAACW,IAAL,CAAUlG,cAAc,CAACsG,UAAD,CAAxB;AACH;AACJ,KAJD;AAKH,GAhBD,EAxCsD,CA0DtD;;AACA,SAAOV,KAAK,CAACC,IAAN,CAAW,IAAIC,GAAJ,CAAQP,IAAR,CAAX,CAAP;AACH,CA5DD;;AA8DA,SAASgB,sBAAT,CAAgChB,IAAhC,EAAsCiB,WAAtC,EAAmD;AAC/C,MAAMC,aAAa,GAAG,EAAtB;AACA,MAAMC,iBAAiB,GAAG,EAA1B;AACA,MAAMC,eAAe,GAAG,EAAxB;AACA,MAAMC,mBAAmB,GAAG,EAA5B;AACA,MAAMC,gBAAgB,GAAG,EAAzB;AACAtB,MAAI,CAACN,OAAL,CAAa,UAAU6B,GAAV,EAAe;AACxB,QAAIA,GAAG,CAACC,QAAJ,CAAa,UAAb,CAAJ,EAA8B;AAC1BF,sBAAgB,CAACX,IAAjB,CAAsBY,GAAtB;AACH,KAFD,MAGK,IAAIxC,kBAAkB,CAACwC,GAAD,CAAtB,EAA6B;AAC9BL,mBAAa,CAACP,IAAd,CAAmBY,GAAnB;;AACA,UAAIN,WAAJ,EAAiB;AACbC,qBAAa,CAACP,IAAd,CAAmBY,GAAG,CAACE,OAAJ,CAAY,QAAZ,EAAsB,cAAtB,CAAnB;AACH;AACJ,KALI,MAMA,IAAI3C,sBAAsB,CAACyC,GAAD,CAA1B,EAAiC;AAClCJ,uBAAiB,CAACR,IAAlB,CAAuBY,GAAvB;;AACA,UAAIN,WAAJ,EAAiB;AACbE,yBAAiB,CAACR,IAAlB,CAAuBY,GAAG,CAACE,OAAJ,CAAY,YAAZ,EAA0B,iBAA1B,CAAvB;AACH;AACJ,KALI,MAMA,IAAIzC,qBAAqB,CAACuC,GAAD,CAAzB,EAAgC;AACjCH,qBAAe,CAACT,IAAhB,CAAqBY,GAArB;AACH,KAFI,MAGA,IAAItC,yBAAyB,CAACsC,GAAD,CAA7B,EAAoC;AACrCF,yBAAmB,CAACV,IAApB,CAAyBY,GAAzB;AACH;AACJ,GAtBD;;AAwBA,WAASG,kBAAT,CAA4BC,OAA5B,EAAqC;AACjC,qBAAUA,OAAO,CAAClF,GAAR,CAAY,UAAAmF,GAAG;AAAA,6BAC3BA,GAD2B;AAAA,KAAf,EACLC,IADK,CACA,GADA,CAAV;AAEH;;AAED,MAAMC,UAAU,aACTX,iBADS,EAETD,aAFS,EAGTG,mBAHS,EAITD,eAJS,EAKTE,gBALS,CAAhB;AAQA,MAAMS,gBAAgB,2DAEpBD,UAAU,CAACE,MAAX,CAAkB,UAAAC,CAAC;AAAA,WAAIA,CAAC,CAACT,QAAF,CAAW,QAAX,CAAJ;AAAA,GAAnB,EAA6CK,IAA7C,CAAkD,KAAlD,CAFoB,QAAtB;AAIA,MAAMK,YAAY,GAAG,CACjB,CAACf,iBAAD,EAAoB,oBAApB,CADiB,EAEjB,CAACD,aAAD,EAAgB,gBAAhB,CAFiB,EAGjB,CAACI,gBAAD,EAAmB,mBAAnB,CAHiB,EAIjB,CAACF,eAAD,EAAkB,mBAAlB,CAJiB,EAKjB,CAACC,mBAAD,EAAsB,uBAAtB,CALiB,EAMnBW,MANmB,CAMZ,UAAAC,CAAC;AAAA,WAAIA,CAAC,CAAC,CAAD,CAAD,CAAKvB,MAAL,GAAc,CAAlB;AAAA,GANW,EAMUjE,GANV,CAMc,UAAA0F,IAAI;AAAA,WAAI,oBACrCT,kBAAkB,CAACS,IAAI,CAAC,CAAD,CAAL,CADmB,uBAErCA,IAAI,CAAC,CAAD,CAFiC,cAGzCC,IAHyC,EAAJ;AAAA,GANlB,EASXP,IATW,CASN,IATM,CAArB;AAWA,SAAO,oDACTK,YADS,oCAIJJ,UAAU,CAACE,MAAX,CAAkB,UAAAC,CAAC;AAAA,WAAI,CAACA,CAAC,CAACT,QAAF,CAAW,QAAX,CAAL;AAAA,GAAnB,EAA8CK,IAA9C,CAAmD,IAAnD,CAJI,gBAMNZ,WAAW,GAAGc,gBAAH,GAAsB,EAN3B,CAAP;AAOH;;AAEDlC,qCAAA,GAAwCmB,sBAAxC;;AAEA,SAASqB,4BAAT,CAAsCrC,IAAtC,EAA4CsC,KAA5C,EAAmD;AAC/C,MAAMC,OAAO,GAAG,EAAhB;AACAvC,MAAI,CAACN,OAAL,CAAa,UAAU6B,GAAV,EAAe;AACxB,QAAIA,GAAG,CAACC,QAAJ,CAAa,UAAb,KAA4BD,GAAG,KAAK,gBAAxC,EAA0D;AACtDgB,aAAO,CAAC5B,IAAR,uBAA4BzB,qBAAqB,CAACqC,GAAD,CAAjD,cAA0DrC,qBAAqB,CAACqC,GAAD,CAA/E;AACH,KAFD,MAGK,IAAIxC,kBAAkB,CAACwC,GAAD,CAAtB,EAA6B;AAC9BgB,aAAO,CAAC5B,IAAR,6BAAkC5B,kBAAkB,CAACwC,GAAD,CAApD;AACH,KAFI,MAGA,IAAIzC,sBAAsB,CAACyC,GAAD,CAA1B,EAAiC;AAClCgB,aAAO,CAAC5B,IAAR,iCAAsC7B,sBAAsB,CAACyC,GAAD,CAA5D;AACH,KAFI,MAGA,IAAIvC,qBAAqB,CAACuC,GAAD,CAAzB,EAAgC;AACjCgB,aAAO,CAAC5B,IAAR,gCAAqC3B,qBAAqB,CAACuC,GAAD,CAA1D;AACH,KAFI,MAGA,IAAItC,yBAAyB,CAACsC,GAAD,CAA7B,EAAoC;AACrCgB,aAAO,CAAC5B,IAAR,oCAAyC1B,yBAAyB,CAACsC,GAAD,CAAlE;AACH;AACJ,GAhBD;AAkBA,SAAOe,KAAK,8DACdC,OAAO,CAAC9F,GAAR,CAAY,UAAA+F,GAAG,EAAI;AACjB,6BAAkBA,GAAlB;AACH,GAFC,EAECX,IAFD,CAEM,IAFN,CADc,qEAKdU,OAAO,CAAC9F,GAAR,CAAY,UAAA+F,GAAG,EAAI;AACjB,8BAAmBA,GAAnB;AACH,GAFC,EAECX,IAFD,CAEM,IAFN,CALc,OAAZ;AASH;;AAED,SAASY,WAAT,CAAqBzC,IAArB,EAA2B;AACvB,SAAO,CAAC,CAACA,IAAI,CAAC0C,IAAL,CAAU,UAAAnB,GAAG;AAAA,WAAI,CAAC,EAAEvC,qBAAqB,CAACuC,GAAD,CAArB,IAA8BtC,yBAAyB,CAACsC,GAAD,CAAzD,CAAL;AAAA,GAAb,CAAT;AACH;;AAED1B,MAAM,CAACwC,4BAAP,GAAsCA,4BAAtC;;AAEAxC,+BAAA,GAAkC,UAC9B8C,MAD8B,EACtB3C,IADsB,QAqBhC;AAAA,MAlBM4C,OAkBN,QAlBMA,OAkBN;AAAA,sBAfMC,GAeN;AAAA,MAfMA,GAeN,yBAfY,IAeZ;AAAA,MAXMC,MAWN,QAXMA,MAWN;AAAA,MATMC,EASN,QATMA,EASN;AAAA,MAPMC,KAON,QAPMA,KAON;AAAA,MANMC,SAMN,QANMA,SAMN;AAAA,MAFMC,YAEN,QAFMA,YAEN;;AACE;AACA;AACA;AACA;AAEA,MAAIH,EAAJ,EAAQ;AACJF,OAAG,GAAG,IAAN;AACH;;AAED,MAAID,OAAO,IAAI,CAACC,GAAhB,EAAqB;AACjB;AACAC,UAAM,GAAG,IAAT;AACH;;AAGD,MAAMK,SAAS,GAAGR,MAAM,CAACS,OAAP,CAAe,QAAf,KAA4B,CAA9C;AACA,MAAMC,YAAY,GAAGV,MAAM,CAACS,OAAP,CAAe,WAAf,KAA+B,CAApD;AACA,MAAME,OAAO,GAAGX,MAAM,CAACS,OAAP,CAAe,KAAf,KAAyB,CAAzC;AAEA,MAAMG,QAAQ,eAChBJ,SAAS,GACPN,GAAG,iFADI,GAGL,EAJY,OAAd;AAOA,MAAMW,WAAW,GAAG,CAChB,CAACZ,OAAD,GACMC,GAAG,gDACuCJ,WAAW,CAACzC,IAAD,CAAX,8BAA+C,EADtF,+CAEqCyC,WAAW,CAACzC,IAAD,CAAX,gCAAiD,EAFtF,CADT,GAIM8C,MAAM,GACFT,4BAA4B,CAACrC,IAAD,EAAO6C,GAAP,CAD1B,GAEF7B,sBAAsB,CAAChB,IAAD,EAAO+C,EAAP,CAPhB,EAQfC,KAAK,IAAIA,KAAK,KAAK,MAApB,GACMH,GAAG,mCAC0BG,KAD1B,0CAE2BA,KAF3B,OADT,GAIM,EAZU,EAahBE,YAbgB,EAclBlB,MAdkB,CAcX,UAAAC,CAAC;AAAA,WAAI,CAAC,CAACA,CAAN;AAAA,GAdU,EAcDJ,IAdC,CAcI,IAdJ,CAApB;AAgBA,MAAM4B,QAAQ,GAAG,CACbJ,YAAY,8BAAuBJ,SAAvB,UAAuC,EADtC,EAEbK,OAAO,oBAAaP,EAAE,GAAG,OAAH,GAAa,EAA5B,cAAyC,EAFnC,EAGbA,EAAE,IAAI,CAACH,OAAP,GAAiB,uCAAjB,GAA2D,EAH9C,EAIfZ,MAJe,CAIR,UAAAC,CAAC;AAAA,WAAI,CAAC,CAACA,CAAN;AAAA,GAJO,EAIEJ,IAJF,CAIO,IAJP,CAAjB;AAMA,MAAM6B,YAAY,GAAG,CACjBF,WAAW,CAACpB,IAAZ,EADiB,EACGmB,QAAQ,CAACnB,IAAT,EADH,EACoBqB,QAAQ,CAACrB,IAAT,EADpB,EAEnBJ,MAFmB,CAEZ,UAAAC,CAAC;AAAA,WAAI,CAAC,CAACA,CAAN;AAAA,GAFW,EAEFJ,IAFE,CAEG,MAFH,CAArB;AAIA,mBAAU6B,YAAV,+DAE4CX,EAAE,GAAG,GAAH,GAAS,EAFvD,mDAGiCC,KAAK,gBAASA,KAAT,SAAoB,EAH1D,2BAIQD,EAAE,GAAG,YAAH,GAAkB,EAJ5B,kBAMFJ,MAAM,CAACP,IAAP,EANE;AAUH,CApFD,C;;;;;;;;;;;;;;;;;;;;;;;AC3RA;AACA;AACA;AACA;;AAEA;AACA;AACA,6EACA,0EADA,EAEA,yFAFA,GAGA,IAHA,CAGA;AACA;;AAEA;AACA;AACA;AACA,+BADA;AAEA,6BAFA;AAGA,8BAHA;AAIA;AAJA;AAMA,OAPA;AASA;AACA;AACA;AACA;AAHA;AAKA,KArBA;AAsBA;;AACA;AACA;;AAEA;AAEA,wBAFA;AAIA,MAJA,kBAIA;AACA;AACA,8DADA;AAEA;AAFA;AAIA,GATA;AAWA,SAXA,qBAWA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCADA;AAEA,4BAFA;AAGA;AAHA;AAMA;AAEA;AACA,sEACA,4EADA;AAEA,OAHA;;AAKA;AACA;AACA;AACA,KApBA;AAqBA,GAlCA;AAoCA;AACA,kBADA,0BACA,IADA,EACA;AACA;AACA;;AACA;AACA;AACA,kBADA;AAEA;AAFA,WADA;AAIA;AACA,kBADA;AAEA;AAFA;AAJA;AASA;AACA;AAdA,GApCA;AAqDA;AACA,eADA,uBACA,MADA,EACA;AACA;AACA;AAHA;AArDA,G;;;;;;;;;;;;;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AADA,KAEA,IAFA,CAEA;AAAA;AAAA,GAFA,EAEA,IAFA,CAEA;AAEA;AACA;AACA,iCADA;AAEA;AAFA,OAHA,CAQA;;AACA;AACA,0DADA;AAEA,gCAFA;AAGA;AAHA,OATA,CAeA;;AACA,+DACA,IADA,EAEA;AACA,oDAHA;AAMA,woBAyBA,sBAzBA;AA2BA;AACA,GApDA;AAqDA;;AAEA;AACA;AACA;AACA,+EACA,gFADA,EAEA;AACA,qGAHA,GAIA,IAJA,CAIA;AACA;AAAA;AAAA;AAAA;AAAA;;AACA;AACA,0BACA,uBADA,GAEA;AACA;AACA;AACA,aAFA;AAGA,WANA;AAOA,SARA;AASA,OAfA;AAgBA;;AACA;AACA,GArBA,CAuBA;;;AACA;AACA;;AAEA;AAEA,wBAFA;AAIA,MAJA,kBAIA;AACA;AACA,8DADA;AAEA;AAFA;AAIA,GATA;AAWA,SAXA,qBAWA;AAAA;;AACA;AACA;AACA;AACA,4CACA,uBADA,EAEA,YAFA,EAGA;AACA,yCAJA;AAMA;AACA,oBADA;AAEA,gGAFA;AAGA;AACA;AADA,SAHA;AAMA;AANA;AASA;;AAEA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA,OAHA;AAIA,KA3BA;AA4BA,GAzCA;AA2CA,WA3CA,uBA2CA;AACA;AACA;;AACA;AACA;AACA,GAhDA;AAkDA;AACA,kBADA,0BACA,IADA,EACA;AACA;AACA;AACA;AACA;AALA,GAlDA;AA0DA;AACA,eADA,uBACA,MADA,EACA;AACA;AACA;AAHA;AA1DA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA,8DADA;AAEA,oEAFA;AAGA,8EAHA;AAIA;AAJA,GADA;AAQA,MARA,kBAQA;AACA;AACA,sBADA;AAEA,2BAFA;AAGA,uBAHA;AAIA,8DAJA;AAKA,qBALA;AAOA,+BAPA;AASA,kBATA;AAWA;AACA,sBADA;AAEA,iBAFA;AAGA,mBAHA,CAGA;;AAHA;AAXA;AAiBA,GA1BA;AA4BA;AACA,eADA,yBACA;AACA;AACA;AAEA;AACA;AACA;;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA;AACA;AAfA,GA5BA;AA8CA,SA9CA,qBA8CA;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAHA;AAIA,KANA,MAOA;AACA;AACA;AACA;AACA,OAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA,OANA;AAQA;AACA;AACA,OAFA;AAGA;AACA,GAzEA;AA2EA;AACA,uBADA,iCACA;AACA;AACA,KAHA;AAIA,iBAJA,2BAIA;AACA;AACA,KANA;AAOA,kBAPA,4BAOA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;AACA,4CADA;AAEA,iBAFA;AAGA,oCAHA;AAIA;AACA,sFALA;AAMA;AANA;AAQA,KAtBA;AAuBA,uBAvBA,iCAuBA;AACA;;AACA;AACA;AACA;;AACA,qEACA,MADA,EAEA,yCAFA,EAGA;AACA,eADA,mBACA,MADA,EACA,IADA,EACA;AACA;AACA;AACA;AACA;;AACA;AACA,WALA;AAMA,SARA;AASA,iCATA,qCASA,IATA,EASA;AACA,sCACA,wCADA;AAEA;AAZA,OAHA;AAkBA,KA9CA;AA+CA,oBA/CA,4BA+CA,GA/CA,EA+CA;AACA;AACA;AACA,OAFA,MAGA;AACA;AACA;AACA;AAtDA,GA3EA;AAoIA;AACA,sBADA,2BACA,eADA,EACA;AACA;AACA;AACA;AACA,KALA;AAMA,gBANA,sBAMA,GANA,EAMA;AACA;AACA,KARA;AASA,oBATA,2BASA;AACA;AACA,KAXA;AAYA;AACA,gBADA;AAEA,aAFA,qBAEA;AACA;AACA;AAJA;AAZA;AApIA,G;;;;;;;;;;;;;;;;;;;;;;ACxEA;AACA;AACA;;AAEA;AACA;AACA,6EACA,0EADA;AAGA;;AACA;AACA;;AAEA;AAEA,iBAFA;AAIA,MAJA,kBAIA;AACA;AACA,8DADA;AAEA;AAFA;AAIA,GATA;AAWA,SAXA,qBAWA;AAAA;;AACA;AACA;AACA;AACA;AACA,yDAHA,CAIA;;AACA;AACA,sBADA;AAEA,8BAFA;AAGA,8BAHA;AAIA,kCAJA;AAKA;AALA,SALA,CAYA;;AACA;AAEA;;AAEA;AAEA,KAnBA;AAoBA,GAjCA;AAmCA;AACA,WADA,mBACA,IADA,EACA;AACA;AACA;;AACA;AACA;AACA,kBADA;AAEA;AAFA,WADA;AAIA;AACA,kBADA;AAEA;AAFA;AAJA;AASA;AACA;AAdA,GAnCA;AAoDA;AACA,QADA,gBACA,MADA,EACA;AACA;AACA;AAHA;AApDA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACiDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAEA,+DAFA,CAIA;;AACA;AACA;AACA;AACA;;AAEA,6EACA,mEADA,EAEA,oEACA,yEADA,GACA,oEAHA,EAIA,kGAJA,EAKA,4DALA,EAMA,wEANA,4BAOA,yIAPA,sBAQA,WACA,0GADA,EAEA,8FAFA,IAGA,EAXA,IAYA,IAZA,CAYA;AACA;AACA,KAdA;AAeA;;AACA;AACA;;AAGA;AACA;AACA;AACA;;AACA;AACA;AACA;;AAGA;AAAA;;AAEA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA,OAFA,MAGA;AACA;AACA;AACA,KARA;AASA;;AAEA;AACA;AAEA,uDAHA,CAKA;;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA,KAlBA,CAoBA;;;AACA;AAEA,GAvBA,CAwBA;AACA;AACA;AACA;AACA;;AAGA;AAEA,qBAFA;AAIA,MAJA,kBAIA;AACA;AACA,8DADA;AAEA,8BAFA;AAGA,yBAHA;AAIA,mBAJA;AAKA,oBALA;AAOA;AAPA;AASA,GAdA;AAgBA,SAhBA,qBAgBA;AAAA;;AACA;AACA;AACA;;AACA;AACA;AACA;AACA,KALA;AAOA;AACA;AACA;AACA;AACA,KAJA;AAKA,GA9BA;AAgCA;AACA,YADA,sBACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AAVA,GAhCA;AA6CA;AACA,oBADA,yBACA,GADA,EACA;AACA;AACA;AACA;AACA;AACA,SAHA,MAIA;AACA;AACA;AACA;AACA,KAXA;AAYA,qBAZA,4BAYA;AACA;AACA,KAdA;AAeA,qBAfA,4BAeA;AACA;AACA,KAjBA;AAkBA,wBAlBA,+BAkBA;AACA;AACA,KApBA;AAqBA,yBArBA,gCAqBA;AACA;AACA;AAvBA,GA7CA;AAuEA;AACA,YADA;AAEA;AACA;AACA,cAJA,wBAIA;AACA;AACA;AACA,KAPA;AAQA,WARA,qBAQA;AACA;AACA;AACA;AACA,KAZA;AAaA,mBAbA,6BAaA;AACA;AACA,KAfA;AAgBA,cAhBA,wBAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBADA;AAEA;AAFA;AAIA;AACA;AACA,KA7BA;AA8BA,aA9BA,uBA8BA;AACA;AACA,KAhCA,CAiCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAzCA;AAvEA,G;;;;;;;;;;;;;;;;;;;;;AC/KA;AACA;AAEA;AACA;AACA;AADA,GADA;AAKA,SALA,qBAKA;AACA;AACA;AACA,KAFA;AAGA;AATA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;ACGA;AACA;AAEA;AACA,oBADA;AAGA;AAEA,SAFA,mBAEA;AACA,+HACA,kBADA,IACA,EADA;AAEA,KALA;AAOA,gBAPA,0BAOA;AACA;AACA,KATA;AAWA,YAXA,sBAWA;AACA;AACA,KAbA;AAeA,gBAfA,0BAeA;AACA;AACA;AACA,KAlBA;AAoBA,eApBA,yBAoBA;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA,KArCA;AAuCA,iBAvCA,2BAuCA;AACA;AACA;AACA;AACA;AACA;AACA;AA7CA;AAHA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC0CA;AACA;AACA;AACA;AACA;CAEA;;AAEA;AAEA,qEACA,OADA,EACA,SADA,EACA,UADA,EACA,QADA,EACA,aADA,EACA,SADA,EACA,SADA,EAEA,cAFA,EAEA,YAFA,EAEA,UAFA,EAEA,QAFA,EAEA,UAFA,EAEA,MAFA,EAEA,SAFA,EAEA,KAFA,EAEA,OAFA,EAGA,UAHA,EAGA,MAHA,EAGA,MAHA,EAIA,OAJA,CAIA;AACA;AACA,CANA;;AAQA;;AACA,yEACA,WADA,EACA,SADA,EACA,QADA,EACA,SADA,EACA,OADA,EACA,OADA,CACA;AACA;AACA,CAHA;AAKA;AAEA;AAEA;AACA;AADA,GAFA;AAMA,MANA,kBAMA;AACA;;AAEA;AACA,4BADA,CAEA;;AACA;AACA;;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;AAEA;;AACA;AACA;AACA;;AACA;AACA;AACA,qCADA;AAEA;AAFA;AAIA;AACA;;AACA;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OA/BA,QA+BA,oCA/BA,EAHA,CAkCA;;AACA;;AAEA;AACA;AAEA;AACA,8DADA;AAGA,kBAHA;AAKA,wFALA;AAMA;AACA;AACA;AACA;AACA;AACA;AAXA;AAaA,GA9DA;AAgEA;AACA,qBADA,4BACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AATA,GAhEA;AA4EA;AACA,eADA,yBACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA,8BADA;AAEA;AAFA;AAIA;AACA;;AACA;AACA;AAdA,GA5EA;AA6FA,SA7FA,qBA6FA;AACA;AACA;AACA;AACA,yCAHA;AAIA,qBAJA;AAKA;AALA;AAOA,GArGA;AAuGA;AACA,sBADA,8BACA,KADA,EACA,WADA,EACA,cADA,EACA,CACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AAvGA,G;;;;;;;;;;;;;;;;;;;;AClFO,IAAMuB,kBAAkB,GAAG,CAC9B,MAD8B,EAE9B,KAF8B,EAG9B,KAH8B,EAI9B,SAJ8B,EAK9B,KAL8B,EAM9B,aAN8B,EAO9B,OAP8B,EAQ9B,SAR8B,EAS9B,SAT8B,EAU9B,OAV8B,EAW9B,OAX8B,EAY9B,MAZ8B,EAa9B,SAb8B,EAc9B,UAd8B,EAe9B,UAf8B,EAgB9B,QAhB8B,EAiB9B,QAjB8B,EAkB9B,OAlB8B,EAmB9B,cAnB8B,EAoB9B,YApB8B,EAqB9B,UArB8B,EAsB9B,QAtB8B,EAwB9B,SAxB8B,EAyB9B,UAzB8B,EA0B9B,MA1B8B,EA2B9B,MA3B8B,EA6B9B,OA7B8B,EA8B9B,OA9B8B,EA+B9B,WA/B8B,EAgC9B,SAhC8B,EAiC9B,OAjC8B,EAkC9B,SAlC8B,EAmC9B,QAnC8B,EAoC9B,WApC8B,EAqC9B,SArC8B,EAsC9B,QAtC8B,EAuC9B,SAvC8B,CAA3B;AA0CA,IAAMC,MAAM,GAAG;AAClB,aAAS,CACL,SADK,EAEL,SAFK,EAGL,SAHK,EAIL,SAJK,EAKL,SALK,EAML,SANK,EAOL,SAPK,EAQL,SARK,EASL,SATK,CADS;AAYlBC,MAAI,EAAE,CACF,SADE,EAEF,SAFE,EAGF,SAHE,EAIF,SAJE,EAKF,SALE,EAMF,SANE,EAOF,SAPE,EAQF,SARE,EASF,SATE;AAZY,CAAf;AAyBA,IAAMC,SAAS,GAAI,UAAUC,IAAV,EAAgB;AACtC,MAAMtH,GAAG,GAAG,EAAZ;;AACA,OAAK,IAAIuH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,IAAI,CAACrD,MAAzB,EAAiCsD,CAAC,EAAlC,EAAsC;AAClCvH,OAAG,CAACsH,IAAI,CAACC,CAAD,CAAL,CAAH,GAAe,CAAf;AACH;;AACD,SAAOC,QAAQ,CAACC,IAAT,CAAcd,OAAd,CAAsB,WAAtB,KAAsC,CAAtC,GAA0C,EAA1C,GAA+C3G,GAAtD;AACH,CANwB,CAMtB,CACC,mBADD,EAEC,WAFD,EAGC,iBAHD,EAIC,aAJD,EAKC,eALD,EAMC,WAND,EAOC,qBAPD,EAQC,YARD,EASC,YATD,EAUC,cAVD,EAWC,WAXD,EAYC,qBAZD,EAaC,aAbD,EAcC,mBAdD,EAeC,eAfD,EAgBC,0BAhBD,EAiBC,OAjBD,EAkBC,6BAlBD,EAmBC,wBAnBD,EAoBC,4BApBD,EAqBC,2BArBD,EAsBC,gBAtBD,EAuBC,iBAvBD,CANsB,CAAlB;AAiCP,IAAM0H,UAAU,GAAG,EAAnB;AACA,CAACF,QAAQ,CAACG,MAAT,IAAmB,EAApB,EAAwBC,MAAxB,CAA+B,CAA/B,EAAkCC,KAAlC,CAAwC,GAAxC,EAA6C5E,OAA7C,CAAqD,UAAUyC,IAAV,EAAgB;AACjE,MAAMoC,EAAE,GAAGpC,IAAI,CAACmC,KAAL,CAAW,GAAX,CAAX;AACAH,YAAU,CAACI,EAAE,CAAC,CAAD,CAAH,CAAV,GAAoBA,EAAE,CAAC,CAAD,CAAtB;AACH,CAHD;AAKA;AAEO,IAAMC,YAAY,GAAI,YAAY;AACrC,MAAIC,IAAI,GAAGC,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAX;AACAF,MAAI,CAACG,KAAL,GAAaH,IAAI,CAACI,MAAL,GAAc,CAA3B;;AACA,MAAI,CAAC,EAAEJ,IAAI,CAACK,UAAL,IAAmBL,IAAI,CAACK,UAAL,CAAgB,IAAhB,CAArB,CAAL,EAAkD;AAC9C;AACA,WAAOL,IAAI,CAACM,SAAL,CAAe,YAAf,EAA6B3B,OAA7B,CAAqC,iBAArC,MAA4D,CAAnE;AACH,GANoC,CAOrC;;;AACA,SAAO,KAAP;AACH,CAT2B,EAArB;AAWA,IAAM4B,WAAW,GAAG;AACvBC,mBAAiB,EAAE,0CADI;AAEvBC,cAAY,EAAE,4DAFS;AAGvBC,YAAU,EAAE,wCAHW;AAIvBC,kBAAgB,EAAE,qEAJK;AAKvB;AACAC,gBAAc,EAAE,kEANO;AAOvBC,aAAW,EAAE,iEAPU;AAQvBC,WAAS,EAAE,0DARY;AASvBC,QAAM,EAAE;AATe,CAApB,C;;;;;;;;;;;;;;;;ACvHP,IAAMC,aAAa,GAAG,EAAtB;AAEO,SAASC,gBAAT,CAA0BC,OAA1B,EAAmC;AACtC,SAAOC,OAAO,CAACC,GAAR,CAAYF,OAAO,CAAClJ,GAAR,CAAY,UAAUqJ,SAAV,EAAqB;AAChD,QAAI,OAAOA,SAAP,KAAqB,QAAzB,EAAmC;AAC/BA,eAAS,GAAG;AACRC,WAAG,EAAED,SADG;AAER;AACAhF,YAAI,EAAEgF,SAAS,CAACE,KAAV,CAAgB,QAAhB,IAA4B,KAA5B,GAAoC;AAHlC,OAAZ;AAKH;;AACD,QAAIP,aAAa,CAACK,SAAS,CAACC,GAAX,CAAjB,EAAkC;AAC9B,aAAON,aAAa,CAACK,SAAS,CAACC,GAAX,CAApB;AACH;;AACD,QAAME,OAAO,GAAG,IAAIL,OAAJ,CAAY,UAACM,OAAD,EAAUC,MAAV,EAAqB;AAC7C,UAAIL,SAAS,CAAChF,IAAV,KAAmB,IAAvB,EAA6B;AACzB,YAAMsF,MAAM,GAAG1B,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAf;AACAyB,cAAM,CAACC,GAAP,GAAaP,SAAS,CAACC,GAAvB;AACAK,cAAM,CAACE,KAAP,GAAe,KAAf;;AACAF,cAAM,CAACG,MAAP,GAAgB,YAAY;AACxBL,iBAAO;AACV,SAFD;;AAGAE,cAAM,CAACI,OAAP,GAAiB,YAAY;AACzBL,gBAAM;AACT,SAFD;;AAGAzB,gBAAQ,CAAC+B,IAAT,CAAcC,WAAd,CAA0BN,MAA1B;AACH,OAXD,MAYK,IAAIN,SAAS,CAAChF,IAAV,KAAmB,KAAvB,EAA8B;AAC/B,YAAM6F,IAAI,GAAGjC,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAb;AACAgC,YAAI,CAACC,GAAL,GAAW,YAAX;AACAD,YAAI,CAACzC,IAAL,GAAY4B,SAAS,CAACC,GAAtB;;AACAY,YAAI,CAACJ,MAAL,GAAc,YAAY;AACtBL,iBAAO;AACV,SAFD;;AAGAS,YAAI,CAACH,OAAL,GAAe,YAAY;AACvBL,gBAAM;AACT,SAFD;;AAGAzB,gBAAQ,CAAC+B,IAAT,CAAcC,WAAd,CAA0BC,IAA1B;AACH;AACJ,KAzBe,CAAhB;AA0BAlB,iBAAa,CAACK,SAAS,CAACC,GAAX,CAAb,GAA+BE,OAA/B;AACA,WAAOA,OAAP;AACH,GAvCkB,CAAZ,CAAP;AAwCH;AAEM,SAASY,YAAT,CAAsBC,IAAtB,EAA4BC,QAA5B,EAAsC;AACzC;AACA,MAAI,OAAOC,MAAM,CAACC,SAAP,CAAiBC,UAAxB,KAAuC,UAA3C,EAAuD;AACnDF,UAAM,CAACC,SAAP,CAAiBE,gBAAjB,CAAkCL,IAAlC,EAAwCC,QAAxC;AACH,GAFD,MAGK;AACD,QAAM9E,CAAC,GAAGyC,QAAQ,CAACC,aAAT,CAAuB,GAAvB,CAAV;AACA1C,KAAC,CAACiC,IAAF,GAASkD,GAAG,CAACC,eAAJ,CAAoBP,IAApB,CAAT;AACA7E,KAAC,CAACqF,QAAF,GAAaP,QAAb;AACA9E,KAAC,CAACsF,KAAF,GAJC,CAKD;;AACAH,OAAG,CAACI,eAAJ,CAAoBvF,CAAC,CAACiC,IAAtB;AACH;AACJ,C;;;;;;;;;;;;;;;AC3DD,iEAAe;AACXuD,IAAE,EAAE;AACAC,UAAM,EAAE;AACJC,SAAG,EAAE,KADD;AAEJC,mBAAa,EAAE,uBAFX;AAGJC,aAAO,EAAE,yCAHL;AAKJC,cAAQ,EAAE,WALN;AAMJC,iBAAW,EAAE,eANT;AAOJ;AAEAC,oBAAc,EAAE,QATZ;AAUJC,cAAQ,EAAE,UAVN;AAWJC,kBAAY,EAAE,gBAXV;AAaJZ,cAAQ,EAAE,UAbN;AAeJa,UAAI,EAAE,MAfF;AAgBJC,gBAAU,EAAE,sBAhBR;AAkBJC,eAAS,EAAE,cAlBP;AAmBJC,wBAAkB,EAAE,WAnBhB;AAoBJC,sBAAgB,EAAE,gBApBd;AAqBJC,mBAAa,EAAE;AArBX,KADR;AAyBAC,cAAU,EAAE;AACRrM,UAAI,EAAE,MADE;AAERC,SAAG,EAAE,KAFG;AAGRC,SAAG,EAAE,KAHG;AAIRC,aAAO,EAAE,SAJD;AAKRE,SAAG,EAAE,SALG;AAMRQ,iBAAW,EAAE,aANL;AAORT,WAAK,EAAE,OAPC;AAQRQ,aAAO,EAAE,SARD;AASRI,aAAO,EAAE,SATD;AAURR,WAAK,EAAE,OAVC;AAWRO,WAAK,EAAE,OAXC;AAYRT,UAAI,EAAE,MAZE;AAaRC,aAAO,EAAE,SAbD;AAcRY,cAAQ,EAAE,UAdF;AAeRzC,cAAQ,EAAE,UAfF;AAgBRiC,YAAM,EAAE,QAhBA;AAiBRD,YAAM,EAAE,QAjBA;AAkBRD,WAAK,EAAE,OAlBC;AAmBRQ,kBAAY,EAAE,cAnBN;AAoBRC,gBAAU,EAAE,YApBJ;AAqBRvC,cAAQ,EAAE,UArBF;AAsBRyC,YAAM,EAAE,QAtBA;AAwBR1B,aAAO,EAAE,SAxBD;AAyBRH,cAAQ,EAAE,UAzBF;AA0BR+M,UAAI,EAAE,MA1BE;AA2BRC,UAAI,EAAE,WA3BE;AA6BR/K,WAAK,EAAE,UA7BC;AA8BRO,WAAK,EAAE,QA9BC;AA+BRE,eAAS,EAAE,YA/BH;AAgCRG,aAAO,EAAE,YAhCD;AAiCRC,WAAK,EAAE,QAjCC;AAkCRH,aAAO,EAAE,UAlCD;AAmCRF,YAAM,EAAE,SAnCA;AAoCRM,eAAS,EAAE,YApCH;AAqCRG,aAAO,EAAE,UArCD;AAsCRD,YAAM,EAAE,SAtCA;AAuCRD,aAAO,EAAE;AAvCD;AAzBZ,GADO;AAoEXiK,IAAE,EAAE;AACAlB,UAAM,EAAE;AACJC,SAAG,EAAE,IADD;AAEJC,mBAAa,EAAE,UAFX;AAGJC,aAAO,EAAE,SAHL;AAKJC,cAAQ,EAAE,MALN;AAMJC,iBAAW,EAAE,OANT;AAOJ;AAEAC,oBAAc,EAAE,MATZ;AAUJE,kBAAY,EAAE,SAVV;AAWJD,cAAQ,EAAE,MAXN;AAYJX,cAAQ,EAAE,MAZN;AAcJa,UAAI,EAAE,IAdF;AAeJC,gBAAU,EAAE,QAfR;AAiBJC,eAAS,EAAE,MAjBP;AAkBJC,wBAAkB,EAAE,MAlBhB;AAmBJC,sBAAgB,EAAE,KAnBd;AAoBJC,mBAAa,EAAE;AApBX,KADR;AAwBAC,cAAU,EAAE;AACRrM,UAAI,EAAE,KADE;AAERC,SAAG,EAAE,KAFG;AAGRC,SAAG,EAAE,IAHG;AAIRC,aAAO,EAAE,KAJD;AAKRE,SAAG,EAAE,SALG;AAMRQ,iBAAW,EAAE,MANL;AAORT,WAAK,EAAE,KAPC;AAQRQ,aAAO,EAAE,KARD;AASRI,aAAO,EAAE,KATD;AAURR,WAAK,EAAE,KAVC;AAWRO,WAAK,EAAE,KAXC;AAYRT,UAAI,EAAE,IAZE;AAaRC,aAAO,EAAE,MAbD;AAcRY,cAAQ,EAAE,KAdF;AAeRzC,cAAQ,EAAE,OAfF;AAgBRiC,YAAM,EAAE,KAhBA;AAiBRD,YAAM,EAAE,KAjBA;AAkBRD,WAAK,EAAE,KAlBC;AAmBRQ,kBAAY,EAAE,MAnBN;AAoBRC,gBAAU,EAAE,OApBJ;AAqBRvC,cAAQ,EAAE,OArBF;AAsBRyC,YAAM,EAAE,OAtBA;AAwBR1B,aAAO,EAAE,KAxBD;AAyBRH,cAAQ,EAAE,QAzBF;AA0BR+M,UAAI,EAAE,IA1BE;AA2BRC,UAAI,EAAE,KA3BE;AA6BR/K,WAAK,EAAE,OA7BC;AA8BRO,WAAK,EAAE,QA9BC;AA+BRE,eAAS,EAAE,QA/BH;AAgCRG,aAAO,EAAE,OAhCD;AAiCRC,WAAK,EAAE,OAjCC;AAkCRH,aAAO,EAAE,QAlCD;AAmCRF,YAAM,EAAE,QAnCA;AAoCRM,eAAS,EAAE,QApCH;AAqCRG,aAAO,EAAE,QArCD;AAsCRD,YAAM,EAAE,SAtCA;AAuCRD,aAAO,EAAE;AAvCD;AAxBZ;AApEO,CAAf,E;;;;;;;;;;;;;;;;;;;ACCA;AACA;AAEO,IAAMkK,KAAK,GAAG;AACjBC,SAAO,EAAE,EADQ;AAEjBC,SAAO,EAAE,EAFQ;AAGjBC,QAAM,EAAE,EAHS;AAKjBlB,UAAQ,EAAE3D,4DAAA,KAAqB,MALd;AAMjB4D,aAAW,EAAE,WAAW5D,sDANP;AAOjB8D,UAAQ,EAAE9D,+DAAA,IAAuB,QAPhB;AASjB8E,WAAS,EAAE9E,6DAAA,KAAsB,QAThB;AAUjB+D,cAAY,EAAE,kBAAkB/D,sDAVf;AAYjB+E,SAAO,EAAE,EAZQ;AAajBC,YAAU,EAAE,EAbK;AAejBC,SAAO,EAAE,EAfQ;AAiBjBC,UAAQ,EAAErC,MAAM,CAACsC,UAAP,GAAoB,GAjBb;AAmBjBC,cAAY,EAAE;AACVzI,QAAI,EAAE,EADI;AAEV0I,WAAO,EAAE;AAFC;AAnBG,CAAd;AAyBA,SAASC,eAAT,GAA2B;AAC9B,SAAO,IAAI7D,OAAJ,CAAY,UAAAM,OAAO,EAAI;AAC1B,QAAMwD,QAAQ,GAAGvF,yDAAA,GAAgB,SAAhB,GAA4B,MAA7C;AACAwF,KAAC,CAACC,IAAF,WAAUf,KAAK,CAACC,OAAhB,cAA2BY,QAA3B,cAAuCvF,wDAAvC,oBAA6D0E,KAAK,CAACE,OAAnE,GAA8E;AAC1Ec,cAAQ,EAAE,MADgE;AAE1EC,aAAO,EAAE,iBAACC,IAAD,EAAU;AACf7D,eAAO,CAAC6D,IAAD,CAAP;AACH;AAJyE,KAA9E;AAMH,GARM,CAAP;AASH;AAEM,SAASC,eAAT,CAAyBC,IAAzB,EAA+B;AAClC,SAAOA,IAAI,CAACxI,OAAL,CAAa,kBAAb,EAAiC,EAAjC,EAAqCW,IAArC,EAAP;AACH;AAED,IAAI8H,MAAM,GAAG,GAAb;AACO,SAASC,aAAT,GAAyB;AAC5BtB,OAAK,CAACO,OAAN,GAAgBc,MAAM,EAAtB;AACH,C;;;;;;;;;;;;;;;AC/CD;AACA;AACA,iEAAe,CACb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,4BAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,4BAPb;AAQE,gBAAc;AARhB,CADa,EAWb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,uBAPb;AAQE,gBAAc;AARhB,CAXa,EAqBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,2BANX;AAOE,aAAW,2BAPb;AAQE,gBAAc;AARhB,CArBa,EA+Bb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,IANX;AAOE,aAAW,IAPb;AAQE,gBAAc;AARhB,CA/Ba,EAyCb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,sCAJR;AAKE,UAAQ,EALV;AAME,WAAS,kCANX;AAOE,aAAW,kCAPb;AAQE,gBAAc;AARhB,CAzCa,EAmDb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,oBAPb;AAQE,gBAAc;AARhB,CAnDa,EA6Db;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,uBAPX;AAQE,aAAW,uBARb;AASE,gBAAc;AAThB,CA7Da,EAwEb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,sBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CAxEa,EAkFb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,uBAPX;AAQE,aAAW,YARb;AASE,gBAAc;AAThB,CAlFa,EA6Fb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,OAJR;AAKE,UAAQ,EALV;AAME,WAAS,OANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA7Fa,EAuGb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,6BAJR;AAKE,UAAQ,EALV;AAME,WAAS,6BANX;AAOE,aAAW,6BAPb;AAQE,gBAAc;AARhB,CAvGa,EAiHb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,kCAJR;AAKE,UAAQ,EALV;AAME,WAAS,oCANX;AAOE,aAAW,oCAPb;AAQE,gBAAc;AARhB,CAjHa,EA2Hb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,2BAJR;AAKE,UAAQ,CACN,MADM,CALV;AAQE,WAAS,2BARX;AASE,aAAW,2BATb;AAUE,gBAAc;AAVhB,CA3Ha,EAuIb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,6BAJR;AAKE,UAAQ,CACN,MADM,CALV;AAQE,WAAS,6BARX;AASE,aAAW,6BATb;AAUE,gBAAc;AAVhB,CAvIa,EAmJb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAnJa,EA6Jb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CA7Ja,EAuKb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,kBAPb;AAQE,gBAAc;AARhB,CAvKa,EAiLb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,oBAPb;AAQE,gBAAc;AARhB,CAjLa,EA2Lb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,8BAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,wBAPb;AAQE,gBAAc;AARhB,CA3La,EAqMb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CArMa,EA+Mb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CA/Ma,EAyNb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,4BAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,4BAPb;AAQE,gBAAc;AARhB,CAzNa,EAmOb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,oBAPX;AAQE,aAAW,oBARb;AASE,gBAAc;AAThB,CAnOa,EA8Ob;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,0BAPX;AAQE,aAAW,0BARb;AASE,gBAAc;AAThB,CA9Oa,EAyPb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,+BAPX;AAQE,aAAW,qBARb;AASE,gBAAc;AAThB,CAzPa,EAoQb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,wBAPb;AAQE,gBAAc;AARhB,CApQa,EA8Qb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CA9Qa,EAwRb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAxRa,EAkSb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAlSa,EA4Sb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,0BAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,kBAPb;AAQE,gBAAc;AARhB,CA5Sa,EAsTb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,SANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAtTa,EAgUb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAhUa,EA0Ub;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,0BAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,kBAPb;AAQE,gBAAc;AARhB,CA1Ua,EAoVb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,2CANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CApVa,EA8Vb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,2BAJR;AAKE,UAAQ,EALV;AAME,WAAS,6BANX;AAOE,aAAW,6BAPb;AAQE,gBAAc;AARhB,CA9Va,EAwWb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAxWa,EAkXb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAlXa,EA4Xb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,QANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CA5Xa,EAsYb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAtYa,EAgZb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CAhZa,EA0Zb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,yBAPb;AAQE,gBAAc;AARhB,CA1Za,EAoab;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,WAPX;AAQE,aAAW,WARb;AASE,gBAAc;AAThB,CApaa,EA+ab;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,uBAPb;AAQE,gBAAc;AARhB,CA/aa,EAybb;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,4BAJR;AAKE,UAAQ,EALV;AAME,WAAS,8BANX;AAOE,aAAW,8BAPb;AAQE,gBAAc;AARhB,CAzba,EAmcb;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,WAPX;AAQE,aAAW,WARb;AASE,gBAAc;AAThB,CAnca,EA8cb;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gCANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CA9ca,EAwdb;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,2BAPX;AAQE,aAAW,2BARb;AASE,gBAAc;AAThB,CAxda,EAmeb;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CAnea,EA6eb;AACE,cAAY,CACV,WADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,WAAS,YAPX;AAQE,aAAW,YARb;AASE,gBAAc;AAThB,CA7ea,EAwfb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CAxfa,EAkgBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,2BAJR;AAKE,UAAQ,EALV;AAME,WAAS,2BANX;AAOE,aAAW,2BAPb;AAQE,gBAAc;AARhB,CAlgBa,EA4gBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CA5gBa,EAshBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,UANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAthBa,EAgiBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAhiBa,EA0iBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,MANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CA1iBa,EAojBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CApjBa,EA8jBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CA9jBa,EAwkBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CAxkBa,EAklBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,mBAPb;AAQE,gBAAc;AARhB,CAllBa,CAAf,E;;;;;;;;;;;;;;;ACFA;AACA;AACA,iEAAe,CACb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CADa,EAWb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,8BANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAXa,EAqBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CArBa,EA+Bb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CA/Ba,EAyCb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAzCa,EAmDb;AACE,cAAY,CACV,aADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAnDa,EA6Db;AACE,cAAY,CACV,SADU,EAEV,KAFU,EAGV,WAHU,CADd;AAME,QAAM,yBANR;AAOE,UAAQ,EAPV;AAQE,WAAS,wBARX;AASE,aAAW,OATb;AAUE,gBAAc;AAVhB,CA7Da,EAyEb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAzEa,EAmFb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAnFa,EA6Fb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA7Fa,EAuGb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAvGa,EAiHb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,OAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAjHa,EA2Hb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA3Ha,EAqIb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CArIa,EA+Ib;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA/Ia,EAyJb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,0BANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAzJa,EAmKb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAnKa,EA6Kb;AACE,cAAY,CACV,UADU,EAEV,SAFU,CADd;AAKE,QAAM,kBALR;AAME,UAAQ,EANV;AAOE,WAAS,kBAPX;AAQE,aAAW,OARb;AASE,gBAAc;AAThB,CA7Ka,EAwLb;AACE,cAAY,CACV,UADU,EAEV,SAFU,CADd;AAKE,QAAM,mBALR;AAME,UAAQ,EANV;AAOE,WAAS,2BAPX;AAQE,aAAW,OARb;AASE,gBAAc;AAThB,CAxLa,EAmMb;AACE,cAAY,CACV,aADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,iBAPb;AAQE,gBAAc;AARhB,CAnMa,EA6Mb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,QANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA7Ma,EAuNb;AACE,cAAY,CACV,SADU,EAEV,KAFU,CADd;AAKE,QAAM,iBALR;AAME,UAAQ,EANV;AAOE,WAAS,eAPX;AAQE,aAAW,aARb;AASE,gBAAc;AAThB,CAvNa,EAkOb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,OAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAlOa,EA4Ob;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CA5Oa,EAsPb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAtPa,EAgQb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAhQa,EA0Qb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CA1Qa,EAoRb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oCANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CApRa,EA8Rb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CA9Ra,EAwSb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAxSa,EAkTb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAlTa,EA4Tb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,0BAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,mBAPb;AAQE,gBAAc;AARhB,CA5Ta,EAsUb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAtUa,EAgVb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,4BAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAhVa,EA0Vb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gCAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CA1Va,EAoWb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CApWa,EA8Wb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA9Wa,EAwXb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,6BANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAxXa,EAkYb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,+BANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAlYa,EA4Yb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CA5Ya,EAsZb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,6BANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAtZa,EAgab;AACE,cAAY,CACV,aADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAhaa,EA0ab;AACE,cAAY,CACV,QADU,EAEV,UAFU,CADd;AAKE,QAAM,sBALR;AAME,UAAQ,EANV;AAOE,WAAS,2BAPX;AAQE,aAAW,kBARb;AASE,gBAAc;AAThB,CA1aa,EAqbb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CArba,EA+bb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA/ba,EAycb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CAzca,EAmdb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAnda,EA6db;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CA7da,EAueb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,qCANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CAvea,EAifb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,uCANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAjfa,EA2fb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CA3fa,EAqgBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CArgBa,EA+gBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CA/gBa,EAyhBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAzhBa,EAmiBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAniBa,EA6iBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CA7iBa,EAujBb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,2CANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAvjBa,EAikBb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAjkBa,EA2kBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA3kBa,EAqlBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,2BAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CArlBa,EA+lBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,+BAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CA/lBa,EAymBb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,8BANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAzmBa,EAmnBb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAnnBa,EA6nBb;AACE,cAAY,CACV,MADU,EAEV,WAFU,CADd;AAKE,QAAM,aALR;AAME,UAAQ,EANV;AAOE,WAAS,aAPX;AAQE,aAAW,SARb;AASE,gBAAc;AAThB,CA7nBa,EAwoBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,sCANX;AAOE,aAAW,kBAPb;AAQE,gBAAc;AARhB,CAxoBa,EAkpBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAlpBa,EA4pBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA5pBa,EAsqBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CAtqBa,EAgrBb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,sBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAhrBa,EA0rBb;AACE,cAAY,CACV,aADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA1rBa,EAosBb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CApsBa,EA8sBb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,0BAJR;AAKE,UAAQ,EALV;AAME,WAAS,0BANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA9sBa,EAwtBb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,kBAPb;AAQE,gBAAc;AARhB,CAxtBa,EAkuBb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,SANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAluBa,EA4uBb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CA5uBa,EAsvBb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAtvBa,EAgwBb;AACE,cAAY,CACV,SADU,EAEV,KAFU,EAGV,WAHU,CADd;AAME,QAAM,6BANR;AAOE,UAAQ,EAPV;AAQE,WAAS,wBARX;AASE,aAAW,WATb;AAUE,gBAAc;AAVhB,CAhwBa,EA4wBb;AACE,cAAY,CACV,SADU,EAEV,KAFU,CADd;AAKE,QAAM,iBALR;AAME,UAAQ,EANV;AAOE,WAAS,qBAPX;AAQE,aAAW,cARb;AASE,gBAAc;AAThB,CA5wBa,EAuxBb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAvxBa,EAiyBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAjyBa,EA2yBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA3yBa,EAqzBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CArzBa,EA+zBb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CA/zBa,EAy0Bb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,CACN,MADM,CALV;AAQE,WAAS,gCARX;AASE,aAAW,YATb;AAUE,gBAAc;AAVhB,CAz0Ba,EAq1Bb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAr1Ba,EA+1Bb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CA/1Ba,EAy2Bb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,6BANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAz2Ba,EAm3Bb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAn3Ba,EA63Bb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,sBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA73Ba,EAu4Bb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,QAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAv4Ba,EAi5Bb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAj5Ba,EA25Bb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,2BANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CA35Ba,EAq6Bb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAr6Ba,EA+6Bb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CA/6Ba,EAy7Bb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAz7Ba,EAm8Bb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mCANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAn8Ba,EA68Bb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,qBAPb;AAQE,gBAAc;AARhB,CA78Ba,EAu9Bb;AACE,cAAY,CACV,MADU,EAEV,UAFU,CADd;AAKE,QAAM,aALR;AAME,UAAQ,EANV;AAOE,WAAS,wBAPX;AAQE,aAAW,SARb;AASE,gBAAc;AAThB,CAv9Ba,EAk+Bb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,8BANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAl+Ba,EA4+Bb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,+BANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA5+Ba,EAs/Bb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,MAJR;AAKE,UAAQ,EALV;AAME,WAAS,0BANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAt/Ba,EAggCb;AACE,cAAY,CACV,UADU,EAEV,OAFU,CADd;AAKE,QAAM,gBALR;AAME,UAAQ,EANV;AAOE,WAAS,gBAPX;AAQE,aAAW,OARb;AASE,gBAAc;AAThB,CAhgCa,EA2gCb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA3gCa,EAqhCb;AACE,cAAY,CACV,aADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,6BANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CArhCa,EA+hCb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,iBAPb;AAQE,gBAAc;AARhB,CA/hCa,EAyiCb;AACE,cAAY,CACV,QADU,EAEV,UAFU,EAGV,MAHU,CADd;AAME,QAAM,qBANR;AAOE,UAAQ,EAPV;AAQE,WAAS,gCARX;AASE,aAAW,SATb;AAUE,gBAAc;AAVhB,CAziCa,EAqjCb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,sBAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CArjCa,EA+jCb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,0BAJR;AAKE,UAAQ,EALV;AAME,WAAS,iCANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA/jCa,EAykCb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAzkCa,EAmlCb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAnlCa,EA6lCb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA7lCa,EAumCb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,OAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAvmCa,EAinCb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAjnCa,EA2nCb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,UAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CA3nCa,EAqoCb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAroCa,EA+oCb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA/oCa,EAypCb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAzpCa,EAmqCb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAnqCa,EA6qCb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CA7qCa,EAurCb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAvrCa,EAisCb;AACE,cAAY,CACV,KADU,EAEV,MAFU,CADd;AAKE,QAAM,eALR;AAME,UAAQ,EANV;AAOE,WAAS,mBAPX;AAQE,aAAW,OARb;AASE,gBAAc;AAThB,CAjsCa,EA4sCb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,2BAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CA5sCa,EAstCb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAttCa,EAguCb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAhuCa,EA0uCb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,UANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA1uCa,EAovCb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,2BANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CApvCa,EA8vCb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA9vCa,EAwwCb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAxwCa,EAkxCb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,UAJR;AAKE,UAAQ,EALV;AAME,WAAS,UANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAlxCa,EA4xCb;AACE,cAAY,CACV,SADU,EAEV,MAFU,EAGV,KAHU,CADd;AAME,QAAM,cANR;AAOE,UAAQ,EAPV;AAQE,WAAS,eARX;AASE,aAAW,UATb;AAUE,gBAAc;AAVhB,CA5xCa,EAwyCb;AACE,cAAY,CACV,SADU,EAEV,KAFU,CADd;AAKE,QAAM,0BALR;AAME,UAAQ,EANV;AAOE,WAAS,gCAPX;AAQE,aAAW,WARb;AASE,gBAAc;AAThB,CAxyCa,EAmzCb;AACE,cAAY,CACV,SADU,EAEV,KAFU,CADd;AAKE,QAAM,iBALR;AAME,UAAQ,EANV;AAOE,WAAS,2BAPX;AAQE,aAAW,kBARb;AASE,gBAAc;AAThB,CAnzCa,EA8zCb;AACE,cAAY,CACV,SADU,EAEV,KAFU,CADd;AAKE,QAAM,iBALR;AAME,UAAQ,EANV;AAOE,WAAS,yBAPX;AAQE,aAAW,WARb;AASE,gBAAc;AAThB,CA9zCa,EAy0Cb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,0BANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CAz0Ca,EAm1Cb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CAn1Ca,EA61Cb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,iBAPb;AAQE,gBAAc;AARhB,CA71Ca,EAu2Cb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAv2Ca,EAi3Cb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAj3Ca,EA23Cb;AACE,cAAY,CACV,KADU,EAEV,MAFU,CADd;AAKE,QAAM,UALR;AAME,UAAQ,EANV;AAOE,WAAS,aAPX;AAQE,aAAW,OARb;AASE,gBAAc;AAThB,CA33Ca,EAs4Cb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAt4Ca,EAg5Cb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAh5Ca,EA05Cb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gCANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CA15Ca,EAo6Cb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CAp6Ca,EA86Cb;AACE,cAAY,CACV,QADU,EAEV,UAFU,CADd;AAKE,QAAM,WALR;AAME,UAAQ,EANV;AAOE,WAAS,WAPX;AAQE,aAAW,KARb;AASE,gBAAc;AAThB,CA96Ca,EAy7Cb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,UANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CAz7Ca,EAm8Cb;AACE,cAAY,CACV,KADU,EAEV,MAFU,CADd;AAKE,QAAM,eALR;AAME,UAAQ,EANV;AAOE,WAAS,oBAPX;AAQE,aAAW,WARb;AASE,gBAAc;AAThB,CAn8Ca,EA88Cb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CA98Ca,EAw9Cb;AACE,cAAY,CACV,UADU,EAEV,KAFU,CADd;AAKE,QAAM,cALR;AAME,UAAQ,EANV;AAOE,WAAS,cAPX;AAQE,aAAW,MARb;AASE,gBAAc;AAThB,CAx9Ca,EAm+Cb;AACE,cAAY,CACV,QADU,EAEV,KAFU,CADd;AAKE,QAAM,eALR;AAME,UAAQ,EANV;AAOE,WAAS,mBAPX;AAQE,aAAW,eARb;AASE,gBAAc;AAThB,CAn+Ca,EA8+Cb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CA9+Ca,EAw/Cb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CAx/Ca,EAkgDb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAlgDa,EA4gDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA5gDa,EAshDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,2BANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAthDa,EAgiDb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,sBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CAhiDa,EA0iDb;AACE,cAAY,CACV,UADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CA1iDa,EAojDb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,8BANX;AAOE,aAAW,mBAPb;AAQE,gBAAc;AARhB,CApjDa,EA8jDb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,gBAAc;AAPhB,CA9jDa,EAukDb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAvkDa,EAilDb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oCANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAjlDa,EA2lDb;AACE,cAAY,CACV,QADU,EAEV,UAFU,CADd;AAKE,QAAM,sBALR;AAME,UAAQ,EANV;AAOE,WAAS,sBAPX;AAQE,aAAW,UARb;AASE,gBAAc;AAThB,CA3lDa,EAsmDb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,wCANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAtmDa,EAgnDb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAhnDa,EA0nDb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,uBANX;AAOE,aAAW,uBAPb;AAQE,gBAAc;AARhB,CA1nDa,EAooDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,qCAJR;AAKE,UAAQ,EALV;AAME,WAAS,2CANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CApoDa,EA8oDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,UAJR;AAKE,UAAQ,EALV;AAME,WAAS,UANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA9oDa,EAwpDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAxpDa,EAkqDb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAlqDa,EA4qDb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA5qDa,EAsrDb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAtrDa,EAgsDb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,0BAJR;AAKE,UAAQ,EALV;AAME,WAAS,0BANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAhsDa,EA0sDb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CA1sDa,EAotDb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CAptDa,EA8tDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA9tDa,EAwuDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CAxuDa,EAkvDb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,mBAPb;AAQE,gBAAc;AARhB,CAlvDa,EA4vDb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,8BAJR;AAKE,UAAQ,EALV;AAME,WAAS,4CANX;AAOE,aAAW,mBAPb;AAQE,gBAAc;AARhB,CA5vDa,EAswDb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,8BAJR;AAKE,UAAQ,EALV;AAME,WAAS,4CANX;AAOE,aAAW,kBAPb;AAQE,gBAAc;AARhB,CAtwDa,EAgxDb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAhxDa,EA0xDb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CA1xDa,EAoyDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,0BANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CApyDa,EA8yDb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,UAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CA9yDa,EAwzDb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,kCAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,gBAPb;AAQE,gBAAc;AARhB,CAxzDa,EAk0Db;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iDANX;AAOE,aAAW,iDAPb;AAQE,gBAAc;AARhB,CAl0Da,EA40Db;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA50Da,EAs1Db;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAt1Da,EAg2Db;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAh2Da,EA02Db;AACE,cAAY,EADd;AAEE,QAAM,wBAFR;AAGE,UAAQ,EAHV;AAIE,gBAAc;AAJhB,CA12Da,EAg3Db;AACE,cAAY,CACV,aADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAh3Da,EA03Db;AACE,cAAY,CACV,aADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CA13Da,EAo4Db;AACE,cAAY,EADd;AAEE,QAAM,eAFR;AAGE,UAAQ,EAHV;AAIE,gBAAc;AAJhB,CAp4Da,EA04Db;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,kCAJR;AAKE,UAAQ,EALV;AAME,WAAS,+CANX;AAOE,aAAW,eAPb;AAQE,gBAAc;AARhB,CA14Da,EAo5Db;AACE,cAAY,CACV,SADU,EAEV,KAFU,CADd;AAKE,QAAM,oBALR;AAME,UAAQ,CACN,MADM,CANV;AASE,WAAS,yBATX;AAUE,aAAW,mBAVb;AAWE,gBAAc;AAXhB,CAp5Da,EAi6Db;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,QAJR;AAKE,UAAQ,EALV;AAME,WAAS,cANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CAj6Da,EA26Db;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA36Da,EAq7Db;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CAr7Da,EA+7Db;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CA/7Da,EAy8Db;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAz8Da,EAm9Db;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAn9Da,EA69Db;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,6BANX;AAOE,aAAW,6BAPb;AAQE,gBAAc;AARhB,CA79Da,EAu+Db;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAv+Da,EAi/Db;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CAj/Da,EA2/Db;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CA3/Da,EAqgEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CArgEa,EA+gEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,iBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA/gEa,EAyhEb;AACE,cAAY,CACV,MADU,EAEV,MAFU,CADd;AAKE,QAAM,gBALR;AAME,UAAQ,EANV;AAOE,WAAS,2BAPX;AAQE,aAAW,MARb;AASE,gBAAc;AAThB,CAzhEa,EAoiEb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CApiEa,EA8iEb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA9iEa,EAwjEb;AACE,cAAY,CACV,MADU,EAEV,UAFU,CADd;AAKE,QAAM,oBALR;AAME,UAAQ,EANV;AAOE,WAAS,gCAPX;AAQE,aAAW,0BARb;AASE,gBAAc;AAThB,CAxjEa,EAmkEb;AACE,cAAY,CACV,KADU,EAEV,OAFU,CADd;AAKE,QAAM,eALR;AAME,UAAQ,EANV;AAOE,WAAS,cAPX;AAQE,aAAW,WARb;AASE,gBAAc;AAThB,CAnkEa,EA8kEb;AACE,cAAY,CACV,KADU,EAEV,OAFU,CADd;AAKE,QAAM,YALR;AAME,UAAQ,CACN,MADM,CANV;AASE,WAAS,wCATX;AAUE,aAAW,iBAVb;AAWE,gBAAc;AAXhB,CA9kEa,EA2lEb;AACE,cAAY,CACV,KADU,EAEV,OAFU,CADd;AAKE,QAAM,gBALR;AAME,UAAQ,CACN,MADM,CANV;AASE,WAAS,kCATX;AAUE,aAAW,eAVb;AAWE,gBAAc;AAXhB,CA3lEa,EAwmEb;AACE,cAAY,CACV,KADU,EAEV,OAFU,CADd;AAKE,QAAM,mBALR;AAME,UAAQ,CACN,MADM,CANV;AASE,WAAS,oCATX;AAUE,aAAW,cAVb;AAWE,gBAAc;AAXhB,CAxmEa,EAqnEb;AACE,cAAY,CACV,KADU,EAEV,OAFU,CADd;AAKE,QAAM,UALR;AAME,UAAQ,EANV;AAOE,WAAS,yCAPX;AAQE,aAAW,sBARb;AASE,gBAAc;AAThB,CArnEa,EAgoEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,SAJR;AAKE,UAAQ,CACN,MADM,CALV;AAQE,WAAS,gBARX;AASE,aAAW,gBATb;AAUE,gBAAc;AAVhB,CAhoEa,EA4oEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CA5oEa,EAspEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iBANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CAtpEa,EAgqEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,QAJR;AAKE,UAAQ,EALV;AAME,WAAS,uCANX;AAOE,aAAW,kBAPb;AAQE,gBAAc;AARhB,CAhqEa,EA0qEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CA1qEa,EAorEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAprEa,EA8rEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,CACN,MADM,CALV;AAQE,WAAS,qBARX;AASE,aAAW,WATb;AAUE,gBAAc;AAVhB,CA9rEa,EA0sEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,2BANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CA1sEa,EAotEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,SAJR;AAKE,UAAQ,EALV;AAME,WAAS,iCANX;AAOE,aAAW,iCAPb;AAQE,gBAAc;AARhB,CAptEa,EA8tEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,WAJR;AAKE,UAAQ,EALV;AAME,WAAS,WANX;AAOE,aAAW,WAPb;AAQE,gBAAc;AARhB,CA9tEa,EAwuEb;AACE,cAAY,CACV,KADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,yBAPb;AAQE,gBAAc;AARhB,CAxuEa,EAkvEb;AACE,cAAY,CACV,cADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAlvEa,EA4vEb;AACE,cAAY,CACV,cADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA5vEa,EAswEb;AACE,cAAY,CACV,cADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAtwEa,EAgxEb;AACE,cAAY,CACV,cADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,+BANX;AAOE,aAAW,aAPb;AAQE,gBAAc;AARhB,CAhxEa,EA0xEb;AACE,cAAY,CACV,cADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,SANX;AAOE,aAAW,IAPb;AAQE,gBAAc;AARhB,CA1xEa,EAoyEb;AACE,cAAY,CACV,cADU,CADd;AAIE,QAAM,sBAJR;AAKE,UAAQ,EALV;AAME,WAAS,UANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CApyEa,EA8yEb;AACE,cAAY,CACV,cADU,CADd;AAIE,QAAM,uBAJR;AAKE,UAAQ,EALV;AAME,WAAS,iCANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA9yEa,EAwzEb;AACE,cAAY,CACV,OADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAxzEa,EAk0Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAl0Ea,EA40Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,mBAPb;AAQE,gBAAc;AARhB,CA50Ea,EAs1Eb;AACE,cAAY,CACV,UADU,EAEV,SAFU,CADd;AAKE,QAAM,gBALR;AAME,UAAQ,EANV;AAOE,WAAS,gBAPX;AAQE,aAAW,WARb;AASE,gBAAc;AAThB,CAt1Ea,EAi2Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,YAPb;AAQE,gBAAc;AARhB,CAj2Ea,EA22Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,0BAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,yBAPb;AAQE,gBAAc;AARhB,CA32Ea,EAq3Eb;AACE,cAAY,CACV,YADU,CADd;AAIE,QAAM,kBAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CAr3Ea,EA+3Eb;AACE,cAAY,CACV,YADU,CADd;AAIE,QAAM,mBAJR;AAKE,UAAQ,EALV;AAME,WAAS,mBANX;AAOE,aAAW,mBAPb;AAQE,gBAAc;AARhB,CA/3Ea,EAy4Eb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,YAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAz4Ea,EAm5Eb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,gBANX;AAOE,aAAW,KAPb;AAQE,gBAAc;AARhB,CAn5Ea,EA65Eb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA75Ea,EAu6Eb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAv6Ea,EAi7Eb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CAj7Ea,EA27Eb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,aAJR;AAKE,UAAQ,EALV;AAME,WAAS,aANX;AAOE,aAAW,OAPb;AAQE,gBAAc;AARhB,CA37Ea,EAq8Eb;AACE,cAAY,CACV,MADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAr8Ea,EA+8Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,cAJR;AAKE,UAAQ,EALV;AAME,WAAS,YANX;AAOE,aAAW,MAPb;AAQE,gBAAc;AARhB,CA/8Ea,EAy9Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,sBANX;AAOE,aAAW,iBAPb;AAQE,gBAAc;AARhB,CAz9Ea,EAm+Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,eAJR;AAKE,UAAQ,EALV;AAME,WAAS,4BANX;AAOE,aAAW,4BAPb;AAQE,gBAAc;AARhB,CAn+Ea,EA6+Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,qBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CA7+Ea,EAu/Eb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,eANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAv/Ea,EAigFb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gBAJR;AAKE,UAAQ,EALV;AAME,WAAS,kBANX;AAOE,aAAW,QAPb;AAQE,gBAAc;AARhB,CAjgFa,EA2gFb;AACE,cAAY,CACV,UADU,EAEV,SAFU,CADd;AAKE,QAAM,iBALR;AAME,UAAQ,EANV;AAOE,WAAS,iBAPX;AAQE,aAAW,KARb;AASE,gBAAc;AAThB,CA3gFa,EAshFb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,wBAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,wBAPb;AAQE,gBAAc;AARhB,CAthFa,EAgiFb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,qBANX;AAOE,aAAW,SAPb;AAQE,gBAAc;AARhB,CAhiFa,EA0iFb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,oBAJR;AAKE,UAAQ,EALV;AAME,WAAS,oBANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CA1iFa,EAojFb;AACE,cAAY,CACV,QADU,CADd;AAIE,QAAM,yBAJR;AAKE,UAAQ,EALV;AAME,WAAS,yBANX;AAOE,aAAW,UAPb;AAQE,gBAAc;AARhB,CApjFa,EA8jFb;AACE,cAAY,CACV,SADU,CADd;AAIE,QAAM,gCAJR;AAKE,UAAQ,EALV;AAME,WAAS,wBANX;AAOE,aAAW,cAPb;AAQE,gBAAc;AARhB,CA9jFa,CAAf,E;;;;;;;;;;;;;;;ACFA;;AAEA;AACO,IAAME,QAAQ,GAAG,CAAC;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAD,EAA+B;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA/B,EAAmE;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAnE,EAAsG;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAtG,EAA4I;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA5I,EAAkL;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAlL,EAAsN;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAtN,EAA0P;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA1P,EAAwR;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAxR,EAA2T;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA3T,EAAoW;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAApW,EAAmY;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAnY,EAA2a;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA3a,EAA4c;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA5c,EAA8e;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA9e,EAAihB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAjhB,EAAojB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAApjB,EAAulB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAvlB,EAA+nB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA/nB,EAAuqB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAvqB,EAA8sB;AAAC,UAAO,sBAAR;AAA+B,WAAQ;AAAvC,CAA9sB,EAA2vB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA3vB,EAAmyB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAnyB,EAA00B;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAA10B,EAAo3B;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAAp3B,EAA85B;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA95B,EAA87B;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA97B,EAAm+B;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAn+B,EAAggC;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAhgC,EAAqiC;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAriC,EAAokC;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAApkC,EAAgmC;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAhmC,EAAgoC;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAhoC,EAAgqC;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAhqC,EAAosC;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApsC,EAAouC;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAApuC,EAAgwC;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAhwC,EAAoyC;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApyC,EAAo0C;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAp0C,EAAi2C;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAj2C,EAA63C;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA73C,EAA25C;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA35C,EAAy7C;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAz7C,EAA09C;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA19C,EAA2/C;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA3/C,EAA6hD;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA7hD,EAAqkD;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAArkD,EAAsmD;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAtmD,EAAuoD;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAvoD,EAAyqD;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAzqD,EAAosD;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAApsD,EAAguD;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAhuD,EAAkwD;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAlwD,EAAkyD;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAlyD,EAA8zD;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA9zD,EAA01D;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA11D,EAA23D;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA33D,EAAy5D;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAz5D,EAA27D;AAAC,UAAO,GAAR;AAAY,WAAQ;AAApB,CAA37D,EAAo9D;AAAC,UAAO,GAAR;AAAY,WAAQ;AAApB,CAAp9D,EAA6+D;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA7+D,EAA0gE;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA1gE,EAAijE;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAjjE,EAA8kE;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA9kE,EAA8mE;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA9mE,EAA6oE;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA7oE,EAAgrE;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAAhrE,EAAysE;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAzsE,EAAouE;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAApuE,EAAuwE;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAAvwE,EAA+yE;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA/yE,EAAq1E;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAr1E,EAA03E;AAAC,UAAO,GAAR;AAAY,WAAQ;AAApB,CAA13E,EAAk5E;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAl5E,EAAk7E;AAAC,UAAO,yBAAR;AAAkC,WAAQ;AAA1C,CAAl7E,EAAg+E;AAAC,UAAO,oBAAR;AAA6B,WAAQ;AAArC,CAAh+E,EAAygF;AAAC,UAAO,uBAAR;AAAgC,WAAQ;AAAxC,CAAzgF,EAAqjF;AAAC,UAAO,sBAAR;AAA+B,WAAQ;AAAvC,CAArjF,EAAgmF;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAhmF,EAA4nF;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA5nF,EAAypF;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAzpF,EAAyrF;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAzrF,EAAstF;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAttF,EAAuvF;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAvvF,EAAmxF;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAnxF,EAAmzF;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAnzF,EAA+0F;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA/0F,EAA62F;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA72F,EAA04F;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA14F,EAA26F;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA36F,EAA08F;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA18F,EAA6+F;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA7+F,EAA4gG;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA5gG,EAAuiG;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAviG,EAAikG;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAjkG,EAA6lG;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA7lG,EAA0nG;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA1nG,EAA0pG;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA1pG,EAAsrG;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAtrG,EAAutG;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAvtG,EAAwvG;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAxvG,EAA2xG;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA3xG,EAA+zG;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA/zG,EAA41G;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA51G,EAAw3G;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAx3G,EAAo5G;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAp5G,EAAi7G;AAAC,UAAO,GAAR;AAAY,WAAQ;AAApB,CAAj7G,EAAy8G;AAAC,UAAO,GAAR;AAAY,WAAQ;AAApB,CAAz8G,EAAi+G;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAj+G,EAAigH;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAjgH,EAA8hH;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA9hH,EAA2jH;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA3jH,EAAylH;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAzlH,EAAunH;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAvnH,EAAkpH;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAlpH,EAAkrH;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAlrH,EAA+sH;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA/sH,EAAivH;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAjvH,EAAkxH;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAlxH,EAAmzH;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAnzH,EAA+0H;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA/0H,EAAg3H;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAh3H,EAAm5H;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAn5H,EAAq7H;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAr7H,EAAy9H;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAz9H,EAAs/H;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAt/H,EAAyhI;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAzhI,EAAojI;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAApjI,EAAilI;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAjlI,EAAinI;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAjnI,EAA8oI;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA9oI,EAA8qI;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA9qI,EAA0sI;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA1sI,EAAuuI;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAvuI,EAAuwI;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAvwI,EAAyyI;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAzyI,EAA20I;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA30I,EAAy2I;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAz2I,EAA44I;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA54I,EAA86I;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA96I,EAAg9I;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAh9I,EAAk/I;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAAl/I,EAA2gJ;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAA3gJ,EAAoiJ;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAApiJ,EAA0kJ;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA1kJ,EAAqmJ;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAArmJ,EAAsoJ;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAtoJ,EAAuqJ;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAvqJ,EAAisJ;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAjsJ,EAA2tJ;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA3tJ,EAAuvJ;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAAvvJ,EAA8xJ;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA9xJ,EAA8zJ;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA9zJ,EAA61J;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA71J,EAA43J;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAA53J,EAAq5J;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAr5J,EAAk7J;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAl7J,EAA88J;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA98J,EAA2+J;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA3+J,EAA2gK;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA3gK,EAA2iK;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA3iK,EAAykK;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAzkK,EAAwmK;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAxmK,EAAsoK;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAtoK,EAAwqK;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAxqK,EAAysK;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAzsK,EAA2uK;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA3uK,EAA8wK;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA9wK,EAAgzK;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAhzK,EAAg1K;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAh1K,EAA62K;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA72K,EAA+4K;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA/4K,EAA+6K;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA/6K,EAAi9K;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAj9K,EAAm/K;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAn/K,EAAohL;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAphL,EAAijL;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAjjL,EAAulL;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAvlL,EAAwnL;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAxnL,EAAypL;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAzpL,EAA2rL;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA3rL,EAAstL;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAttL,EAAwvL;AAAC,UAAO,GAAR;AAAY,WAAQ;AAApB,CAAxvL,EAAgxL;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAhxL,EAA6yL;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA7yL,EAA40L;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA50L,EAAw2L;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAx2L,EAAm4L;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAn4L,EAAk6L;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAl6L,EAAo8L;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAp8L,EAAi+L;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAj+L,EAA+/L;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA//L,EAA6hM;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA7hM,EAA4jM;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA5jM,EAA6lM;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA7lM,EAA+nM;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA/nM,EAAiqM;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAjqM,EAAgsM;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAhsM,EAA0tM;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA1tM,EAAwvM;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAxvM,EAAoxM;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAApxM,EAAozM;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApzM,EAAk1M;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAAl1M,EAA02M;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAA12M,EAAk4M;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAl4M,EAAs6M;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAt6M,EAAw8M;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAx8M,EAAo+M;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAp+M,EAAsgN;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAtgN,EAAmiN;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAniN,EAAokN;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAApkN,EAAqmN;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAArmN,EAAkoN;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAloN,EAAsqN;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAtqN,EAAqsN;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAArsN,EAAquN;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAruN,EAAowN;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAApwN,EAA8xN;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA9xN,EAAwzN;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAxzN,EAA01N;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA11N,EAA63N;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA73N,EAA65N;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA75N,EAA47N;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA57N,EAAg+N;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAh+N,EAA4/N;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA5/N,EAAwhO;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAxhO,EAA0jO;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA1jO,EAAwlO;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAxlO,EAAioO;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAAjoO,EAAuqO;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAvqO,EAAwsO;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAxsO,EAAkuO;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAluO,EAA8vO;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAA9vO,EAAsxO;AAAC,UAAO,sBAAR;AAA+B,WAAQ;AAAvC,CAAtxO,EAAg0O;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAh0O,EAAg2O;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAh2O,EAAq4O;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAr4O,EAAu6O;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAv6O,EAAm8O;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAn8O,EAAg+O;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAh+O,EAAogP;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAApgP,EAAgiP;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAhiP,EAA8jP;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA9jP,EAAwlP;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAxlP,EAAinP;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAjnP,EAA4oP;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA5oP,EAAsqP;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAtqP,EAAosP;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAApsP,EAAwuP;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAxuP,EAA2wP;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA3wP,EAAqyP;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAryP,EAAm0P;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAn0P,EAAg2P;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAh2P,EAA03P;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA13P,EAA05P;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAA15P,EAAm7P;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAn7P,EAAo9P;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAp9P,EAAi/P;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAj/P,EAAihQ;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAjhQ,EAA8iQ;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA9iQ,EAA0kQ;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA1kQ,EAAgnQ;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAAhnQ,EAAwoQ;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAAxoQ,EAAgqQ;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAAhqQ,EAAwrQ;AAAC,UAAO,IAAR;AAAa,WAAQ;AAArB,CAAxrQ,EAAgtQ;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAhtQ,EAA6uQ;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA7uQ,EAA2wQ;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA3wQ,EAAsyQ;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAtyQ,EAA00Q;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA10Q,EAA82Q;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA92Q,EAA64Q;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAA74Q,EAAo7Q;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAp7Q,EAAm9Q;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAn9Q,EAAm/Q;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAn/Q,EAAmhR;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAnhR,EAAojR;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAApjR,EAAolR;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAplR,EAA8mR;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA9mR,EAA2oR;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAA3oR,EAAoqR;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApqR,EAAksR;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAlsR,EAA6tR;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA7tR,EAAuvR;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAvvR,EAAmxR;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAnxR,EAA+yR;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA/yR,EAA00R;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA10R,EAAo2R;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAp2R,EAAk4R;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAl4R,EAAm6R;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAn6R,EAAi8R;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAj8R,EAA+9R;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA/9R,EAAggS;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAhgS,EAAiiS;AAAC,UAAO,sBAAR;AAA+B,WAAQ;AAAvC,CAAjiS,EAA2kS;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA3kS,EAAgnS;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAhnS,EAA+oS;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA/oS,EAA8qS;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA9qS,EAAktS;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAltS,EAAkvS;AAAC,UAAO,oBAAR;AAA6B,WAAQ;AAArC,CAAlvS,EAA0xS;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA1xS,EAAwzS;AAAC,UAAO,uBAAR;AAAgC,WAAQ;AAAxC,CAAxzS,EAAm2S;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAn2S,EAA+3S;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA/3S,EAAk6S;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAl6S,EAAi8S;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAj8S,EAAm+S;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAn+S,EAAwgT;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAxgT,EAAoiT;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAApiT,EAAykT;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAzkT,EAAomT;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApmT,EAAkoT;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAloT,EAAuqT;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAvqT,EAA2sT;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA3sT,EAAsuT;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAtuT,EAAswT;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAtwT,EAAoyT;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAApyT,EAAi0T;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAj0T,EAA81T;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA91T,EAAg4T;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAh4T,EAAk6T;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAl6T,EAAg8T;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAh8T,EAA+9T;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA/9T,EAA+/T;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA//T,EAA+hU;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA/hU,EAAokU;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAApkU,EAA+lU;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA/lU,EAA4nU;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA5nU,EAA2pU;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA3pU,EAA0rU;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA1rU,EAA0tU;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA1tU,EAA0vU;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA1vU,EAAyxU;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAzxU,EAAszU;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAtzU,EAAo1U;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAp1U,EAA82U;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA92U,EAA04U;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA14U,EAAq6U;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAr6U,EAAg8U;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAh8U,EAA29U;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA39U,EAAq/U;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAr/U,EAAghV;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAhhV,EAA+iV;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA/iV,EAAglV;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAhlV,EAAonV;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAApnV,EAAopV;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAppV,EAAsrV;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAtrV,EAAwtV;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAxtV,EAAwvV;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAxvV,EAAsxV;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAtxV,EAAyzV;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAzzV,EAAm1V;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAn1V,EAAw3V;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAx3V,EAA05V;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA15V,EAAw7V;AAAC,UAAO,oBAAR;AAA6B,WAAQ;AAArC,CAAx7V,EAAg+V;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAh+V,EAA8/V;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA9/V,EAAwhW;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAxhW,EAAkjW;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAljW,EAA4kW;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA5kW,EAAsmW;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAtmW,EAAmoW;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAnoW,EAA+pW;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA/pW,EAA6rW;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA7rW,EAAytW;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAztW,EAAwvW;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAxvW,EAAoxW;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApxW,EAAkzW;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAlzW,EAAo1W;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAp1W,EAAq3W;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAr3W,EAAi5W;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAj5W,EAAq7W;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAr7W,EAAi9W;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAj9W,EAAg/W;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAh/W,EAA2gX;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA3gX,EAAsiX;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAtiX,EAAikX;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAjkX,EAA4lX;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA5lX,EAAwnX;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAxnX,EAAwpX;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAxpX,EAA4rX;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA5rX,EAA8tX;AAAC,UAAO,uBAAR;AAAgC,WAAQ;AAAxC,CAA9tX,EAAywX;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAzwX,EAA2yX;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA3yX,EAA20X;AAAC,UAAO,oBAAR;AAA6B,WAAQ;AAArC,CAA30X,EAAm3X;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAAn3X,EAA05X;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA15X,EAAu7X;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAv7X,EAAo9X;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAp9X,EAAm/X;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAn/X,EAAqhY;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAArhY,EAAijY;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAjjY,EAAolY;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAplY,EAAynY;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAAznY,EAAgqY;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAhqY,EAAmsY;AAAC,UAAO,oBAAR;AAA6B,WAAQ;AAArC,CAAnsY,EAA2uY;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA3uY,EAA8wY;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA9wY,EAA6yY;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA7yY,EAA60Y;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA70Y,EAA22Y;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA32Y,EAA84Y;AAAC,UAAO,uBAAR;AAAgC,WAAQ;AAAxC,CAA94Y,EAAy7Y;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAz7Y,EAA29Y;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA39Y,EAA8/Y;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA9/Y,EAA4hZ;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA5hZ,EAAkkZ;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAlkZ,EAAumZ;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAAvmZ,EAA8oZ;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA9oZ,EAAwqZ;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAxqZ,EAA0sZ;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA1sZ,EAAquZ;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAruZ,EAAqwZ;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAArwZ,EAAoyZ;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAApyZ,EAAm0Z;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAn0Z,EAAi2Z;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAAj2Z,EAAu4Z;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAv4Z,EAA46Z;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA56Z,EAAk9Z;AAAC,UAAO,yBAAR;AAAkC,WAAQ;AAA1C,CAAl9Z,EAA+/Z;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA//Z,EAA2ha;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA3ha,EAA+ja;AAAC,UAAO,wBAAR;AAAiC,WAAQ;AAAzC,CAA/ja,EAA2ma;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA3ma,EAA4oa;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA5oa,EAAgra;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAhra,EAAota;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAApta,EAAwva;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAxva,EAA4xa;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA5xa,EAA4za;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA5za,EAAg2a;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAh2a,EAAi4a;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAj4a,EAAg6a;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAh6a,EAAg8a;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAh8a,EAAg+a;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAh+a,EAAmgb;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAngb,EAAsib;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAtib,EAA0kb;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA1kb,EAAymb;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAzmb,EAAqob;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAArob,EAAkqb;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAlqb,EAA+rb;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA/rb,EAA8tb;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA9tb,EAA8vb;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA9vb,EAA+xb;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAA/xb,EAAs0b;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAt0b,EAAq2b;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAr2b,EAAo4b;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAp4b,EAAm6b;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAn6b,EAAm8b;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAn8b,EAAg+b;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAh+b,EAAkgc;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAlgc,EAAiic;AAAC,UAAO,oBAAR;AAA6B,WAAQ;AAArC,CAAjic,EAAykc;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAzkc,EAAomc;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAApmc,EAAmoc;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAnoc,EAAgqc;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAhqc,EAAisc;AAAC,UAAO,0BAAR;AAAmC,WAAQ;AAA3C,CAAjsc,EAA+uc;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAA/uc,EAAsxc;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAtxc,EAAszc;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAtzc,EAAm1c;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAn1c,EAAi3c;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAj3c,EAA+4c;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA/4c,EAAo7c;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAp7c,EAAy9c;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAz9c,EAAm/c;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAn/c,EAAshd;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAthd,EAA+jd;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA/jd,EAA8ld;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA9ld,EAA+nd;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA/nd,EAAoqd;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAApqd,EAAmsd;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAnsd,EAA8td;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA9td,EAA6vd;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA7vd,EAA4xd;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA5xd,EAA+zd;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA/zd,EAAi2d;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAj2d,EAAo4d;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAp4d,EAAu6d;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAv6d,EAAo8d;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAp8d,EAAo+d;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAp+d,EAA6/d;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA7/d,EAA0he;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA1he,EAA8je;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA9je,EAAome;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAApme,EAAyoe;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAzoe,EAA8qe;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAA9qe,EAAute;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAvte,EAAgwe;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAhwe,EAAkye;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAlye,EAA2ze;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA3ze,EAAg2e;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAh2e,EAAg4e;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAh4e,EAA85e;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA95e,EAA47e;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA57e,EAA89e;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA99e,EAA4/e;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA5/e,EAAwhf;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAxhf,EAA0jf;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA1jf,EAA4lf;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA5lf,EAAiof;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAjof,EAAkqf;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAlqf,EAAmsf;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAnsf,EAAouf;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApuf,EAAkwf;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAlwf,EAAgyf;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAhyf,EAA8zf;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA9zf,EAA41f;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA51f,EAAy3f;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAz3f,EAAu5f;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAv5f,EAAk7f;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAl7f,EAA88f;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA98f,EAAw+f;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAx+f,EAAoggB;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAApggB,EAA6hgB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA7hgB,EAA8jgB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA9jgB,EAA4lgB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA5lgB,EAA0ngB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA1ngB,EAAwpgB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAxpgB,EAAsrgB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAtrgB,EAAstgB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAttgB,EAAqvgB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAArvgB,EAAkxgB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAlxgB,EAAozgB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAApzgB,EAAm1gB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAn1gB,EAA+2gB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA/2gB,EAA44gB;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA54gB,EAAk7gB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAl7gB,EAAq9gB;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAr9gB,EAA8/gB;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAA9/gB,EAAwhhB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAxhhB,EAAyjhB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAzjhB,EAAslhB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAtlhB,EAAqnhB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAArnhB,EAAuphB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAvphB,EAAmrhB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAnrhB,EAAithB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAjthB,EAA8uhB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA9uhB,EAA+whB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA/whB,EAA2yhB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA3yhB,EAA20hB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA30hB,EAA82hB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA92hB,EAAg5hB;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAh5hB,EAA06hB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA16hB,EAA88hB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAA98hB,EAAk/hB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAl/hB,EAAuhiB;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAvhiB,EAAgjiB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAhjiB,EAAoliB;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAApliB,EAA2niB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA3niB,EAAypiB;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAAzpiB,EAAgsiB;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAAhsiB,EAAsuiB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAtuiB,EAAmwiB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAnwiB,EAAqyiB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAryiB,EAAs0iB;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAt0iB,EAA+2iB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA/2iB,EAAo5iB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAp5iB,EAAm7iB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAn7iB,EAAs9iB;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAt9iB,EAA+/iB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA//iB,EAA4hjB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA5hjB,EAA+jjB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA/jjB,EAA+ljB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA/ljB,EAAiojB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAjojB,EAAmqjB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAnqjB,EAAmsjB;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAnsjB,EAA6tjB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA7tjB,EAA4vjB;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA5vjB,EAAkyjB;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAAlyjB,EAAy0jB;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAAz0jB,EAA+2jB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA/2jB,EAA24jB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA34jB,EAAw6jB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAx6jB,EAAy8jB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAz8jB,EAAw+jB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAx+jB,EAA2gkB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA3gkB,EAAgjkB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAhjkB,EAAglkB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAhlkB,EAAonkB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAApnkB,EAAkpkB;AAAC,UAAO,wBAAR;AAAiC,WAAQ;AAAzC,CAAlpkB,EAA8rkB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA9rkB,EAA2tkB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAA3tkB,EAAyvkB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAzvkB,EAA0xkB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAA1xkB,EAAuzkB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAvzkB,EAAs1kB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAt1kB,EAAo3kB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAp3kB,EAAo5kB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAp5kB,EAAo7kB;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAp7kB,EAA69kB;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAA79kB,EAAmglB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAnglB,EAAwilB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAxilB,EAA2klB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA3klB,EAAsmlB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAtmlB,EAAkolB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAlolB,EAA6plB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA7plB,EAAgslB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAhslB,EAAiulB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAjulB,EAA6vlB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA7vlB,EAAwxlB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAxxlB,EAAszlB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAtzlB,EAAu1lB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAv1lB,EAAk3lB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAl3lB,EAAk5lB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAl5lB,EAAi7lB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAj7lB,EAA88lB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA98lB,EAA8+lB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA9+lB,EAAmhmB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAnhmB,EAAijmB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAjjmB,EAAqlmB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAArlmB,EAAqnmB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAArnmB,EAAypmB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAzpmB,EAA4rmB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA5rmB,EAAutmB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAvtmB,EAAqvmB;AAAC,UAAO,mBAAR;AAA4B,WAAQ;AAApC,CAArvmB,EAA4xmB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA5xmB,EAAwzmB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAxzmB,EAAu1mB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAv1mB,EAAo3mB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAp3mB,EAAm5mB;AAAC,UAAO,kBAAR;AAA2B,WAAQ;AAAnC,CAAn5mB,EAAy7mB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAz7mB,EAAq9mB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAr9mB,EAAk/mB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAl/mB,EAA+gnB;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAA/gnB,EAAwinB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAxinB,EAAyknB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAzknB,EAAomnB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAApmnB,EAAionB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAjonB,EAA8pnB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA9pnB,EAA0rnB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAA1rnB,EAA4tnB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAA5tnB,EAA4vnB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAA5vnB,EAAiynB;AAAC,UAAO,MAAR;AAAe,WAAQ;AAAvB,CAAjynB,EAA2znB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA3znB,EAAu1nB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAv1nB,EAAu3nB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAv3nB,EAAs5nB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAt5nB,EAAk7nB;AAAC,UAAO,KAAR;AAAc,WAAQ;AAAtB,CAAl7nB,EAA28nB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA38nB,EAA8+nB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAA9+nB,EAA0goB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAA1goB,EAAyioB;AAAC,UAAO,sBAAR;AAA+B,WAAQ;AAAvC,CAAzioB,EAAmloB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAnloB,EAAinoB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAjnoB,EAAgpoB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAhpoB,EAA2qoB;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAA3qoB,EAAotoB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAptoB,EAAgvoB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAhvoB,EAAkxoB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAAlxoB,EAAmzoB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAnzoB,EAAi1oB;AAAC,UAAO,GAAR;AAAY,WAAQ;AAApB,CAAj1oB,EAAw2oB;AAAC,UAAO,cAAR;AAAuB,WAAQ;AAA/B,CAAx2oB,EAA04oB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA14oB,EAA26oB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA36oB,EAA48oB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAA58oB,EAA++oB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA/+oB,EAAghpB;AAAC,UAAO,eAAR;AAAwB,WAAQ;AAAhC,CAAhhpB,EAAmjpB;AAAC,UAAO,YAAR;AAAqB,WAAQ;AAA7B,CAAnjpB,EAAmlpB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAnlpB,EAAunpB;AAAC,UAAO,iBAAR;AAA0B,WAAQ;AAAlC,CAAvnpB,EAA4ppB;AAAC,UAAO,aAAR;AAAsB,WAAQ;AAA9B,CAA5ppB,EAA6rpB;AAAC,UAAO,oBAAR;AAA6B,WAAQ;AAArC,CAA7rpB,EAAqupB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAArupB,EAAmwpB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAAnwpB,EAAuypB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAvypB,EAAq0pB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAr0pB,EAAi2pB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAj2pB,EAAg4pB;AAAC,UAAO,qBAAR;AAA8B,WAAQ;AAAtC,CAAh4pB,EAAy6pB;AAAC,UAAO,QAAR;AAAiB,WAAQ;AAAzB,CAAz6pB,EAAq8pB;AAAC,UAAO,SAAR;AAAkB,WAAQ;AAA1B,CAAr8pB,EAAk+pB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAAl+pB,EAA6/pB;AAAC,UAAO,OAAR;AAAgB,WAAQ;AAAxB,CAA7/pB,EAAwhqB;AAAC,UAAO,UAAR;AAAmB,WAAQ;AAA3B,CAAxhqB,EAAsjqB;AAAC,UAAO,WAAR;AAAoB,WAAQ;AAA5B,CAAtjqB,EAAqlqB;AAAC,UAAO,gBAAR;AAAyB,WAAQ;AAAjC,CAArlqB,CAAjB,C;;;;;;;;;;;;;;;ACJP,IAAIC,SAAS,GAAI,YAAY;AACzB,WAASA,SAAT,CAAmBC,KAAnB,EAA0B;AACtB,QAAIC,GAAG,GAAG,KAAKA,GAAL,GAAW7F,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAArB;AACA4F,OAAG,CAACC,SAAJ,GAAgB,qBAAhB;AACAF,SAAK,GAAG9K,MAAM,CAACiL,MAAP,CAAc,EAAd,EAAkBH,KAAlB,CAAR;AACA9K,UAAM,CAACiL,MAAP,CAAcH,KAAd,EAAqB;AACjBI,qBAAe,EAAE,sBADA;AAEjBC,YAAM,EAAE;AAFS,KAArB;AAIAJ,OAAG,CAACD,KAAJ,CAAUM,OAAV,GAAoB,+FAApB;;AACA,SAAK,IAAIjL,GAAT,IAAgB2K,KAAhB,EAAuB;AACnB,UAAIA,KAAK,CAACO,cAAN,CAAqBlL,GAArB,CAAJ,EAA+B;AAC3B4K,WAAG,CAACD,KAAJ,CAAU3K,GAAV,IAAiB2K,KAAK,CAAC3K,GAAD,CAAtB;AACH;AACJ;AACJ;;AACD0K,WAAS,CAACS,SAAV,CAAoBC,MAApB,GAA6B,UAAUC,IAAV,EAAgB;AACzC,QAAIC,QAAQ,GAAG,KAAKV,GAAL,CAASD,KAAxB;AACAW,YAAQ,CAACrG,KAAT,GAAiBoG,IAAI,CAACpG,KAAL,GAAa,IAA9B;AACAqG,YAAQ,CAACpG,MAAT,GAAkBmG,IAAI,CAACnG,MAAL,GAAc,IAAhC;AACAoG,YAAQ,CAACC,IAAT,GAAgBF,IAAI,CAACG,CAAL,GAAS,IAAzB;AACAF,YAAQ,CAACG,GAAT,GAAeJ,IAAI,CAACK,CAAL,GAAS,IAAxB;AACH,GAND;;AAOAhB,WAAS,CAACS,SAAV,CAAoBQ,IAApB,GAA2B,YAAY;AACnC,SAAKf,GAAL,CAASD,KAAT,CAAeiB,OAAf,GAAyB,GAAzB;AACH,GAFD;;AAGAlB,WAAS,CAACS,SAAV,CAAoBU,IAApB,GAA2B,YAAY;AACnC,QAAIC,KAAK,GAAG,IAAZ;;AACAC,gBAAY,CAAC,KAAKC,YAAN,CAAZ;AACA,SAAKpB,GAAL,CAASD,KAAT,CAAeiB,OAAf,GAAyB,GAAzB;AACA,SAAKI,YAAL,GAAoBC,UAAU,CAAC,YAAY;AACvCH,WAAK,CAACH,IAAN;AACH,KAF6B,EAE3B,GAF2B,CAA9B;AAGH,GAPD;;AAQA,SAAOjB,SAAP;AACH,CAnCgB,EAAjB;;AAoCA,6BAAe,oCAAUwB,EAAV,EAAcC,IAAd,EAAoB;AAC/BA,MAAI,GAAGA,IAAI,IAAI,EAAf;AACA,MAAIC,OAAO,GAAGF,EAAE,CAACE,OAAjB;;AACA,MAAI,CAACA,OAAO,CAACC,SAAb,EAAwB;AACpB,UAAM,IAAIC,KAAJ,CAAU,yDAAV,CAAN;AACH;;AACD,MAAIF,OAAO,CAACG,cAAR,EAAJ,EAA8B;AAC1B,UAAM,IAAID,KAAJ,CAAU,uEAAV,CAAN;AACH;;AACD,MAAIE,aAAa,GAAGzH,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAApB;AACAwH,eAAa,CAAC7B,KAAd,CAAoBM,OAApB,GAA8B,oFAA9B;AACAuB,eAAa,CAAC3B,SAAd,GAA0B,+BAA1B;AACA,MAAI4B,UAAU,GAAG,EAAjB;AACA,MAAI7B,GAAG,GAAGsB,EAAE,CAACtB,GAAb;AACAA,KAAG,CAAC7D,WAAJ,CAAgByF,aAAhB;AACA,MAAIE,aAAa,GAAGC,gBAAgB,CAAC/B,GAAD,CAApC;;AACA,MAAI8B,aAAa,CAACE,QAAd,KAA2B,QAA/B,EAAyC;AACrChC,OAAG,CAACD,KAAJ,CAAUiC,QAAV,GAAqB,UAArB;AACH;;AACDV,IAAE,CAACW,EAAH,CAAM,UAAN,EAAkB,YAAY;AAC1B,QAAIT,OAAO,CAACC,SAAZ,EAAuB;AACnB,UAAIS,KAAK,GAAG,CAAZ;AACAV,aAAO,CAACW,gBAAR,CAAyB,UAAUC,KAAV,EAAiB;AACtC,YAAI,CAACA,KAAK,CAACC,kBAAX,EAA+B;AAC3B;AACH;;AACD,YAAIC,UAAU,GAAGF,KAAK,CAACC,kBAAN,EAAjB;;AACA,aAAK,IAAI5I,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6I,UAAU,CAACnM,MAA/B,EAAuCsD,CAAC,EAAxC,EAA4C;AACxC,cAAI,CAACoI,UAAU,CAACK,KAAD,CAAf,EAAwB;AACpBL,sBAAU,CAACK,KAAD,CAAV,GAAoB,IAAIpC,SAAJ,CAAcyB,IAAI,CAACxB,KAAnB,CAApB;AACA6B,yBAAa,CAACzF,WAAd,CAA0B0F,UAAU,CAACK,KAAD,CAAV,CAAkBlC,GAA5C;AACH;;AACD6B,oBAAU,CAACK,KAAD,CAAV,CAAkBjB,IAAlB;AACAY,oBAAU,CAACK,KAAD,CAAV,CAAkB1B,MAAlB,CAAyB8B,UAAU,CAAC7I,CAAD,CAAnC;AACAyI,eAAK;AACR;AACJ,OAdD;;AAeA,WAAK,IAAIzI,CAAC,GAAGyI,KAAb,EAAoBzI,CAAC,GAAGoI,UAAU,CAAC1L,MAAnC,EAA2CsD,CAAC,EAA5C,EAAgD;AAC5CoI,kBAAU,CAACpI,CAAD,CAAV,CAAcsH,IAAd;AACH;AACJ;AACJ,GAtBD;AAuBH,C;;;;;;;;;;;;;;;;;;AC9ED;AACA;AACA;AAEA,IAAMwB,WAAW,GAAGjE,mEAAA,CAAyB,WAAzB,KAAyC,CAA7D;AACA,IAAMkE,YAAY,GAAGD,WAAW,8BAAuBjE,wDAAvB,SAA0C,EAA1E;AAEO,SAASvB,QAAT,GAAoB;AACvB,MAAM2C,IAAI,wDACyBjD,MAAM,CAAC/C,QAAP,CAAgBC,IADzC,2RAWgCc,oEAXhC,8IAagCA,kEAbhC,wLAgBgCA,sEAhBhC,+JAmBgCA,wEAnBhC,gJAsBgCA,kEAtBhC,0FAuBgCA,kEAvBhC,oSA2BgCA,kEA3BhC,qOAqCZ+H,YArCY,iBAuCZlE,2DAvCY,wIAAV;AAiDA,MAAMmE,IAAI,GAAG,IAAIC,IAAJ,CAAS,CAAChD,IAAD,CAAT,EAAiB;AAC1BnJ,QAAI,EAAE,yBADoB;AAE1BoM,YAAQ,EAAE;AAFgB,GAAjB,CAAb,CAlDuB,CAsDvB;;AACArG,8DAAY,CAACmG,IAAD,EAAO7I,wDAAA,GAAe,OAAtB,CAAZ;AACH,C;;;;;;;;;;;;;;;;;;AC/DD;AAEO,SAASgJ,aAAT,CAAuBC,aAAvB,EAAsC;AACzC,MAAIC,MAAM,GAAG,EAAb;AACA,MAAIC,GAAJ;AAEA,MAAIC,eAAe,GAAG,EAAtB;AACA,MAAIC,cAAc,GAAG,EAArB;AAEA,MAAMC,cAAc,GAAGzG,MAAM,CAAC4E,UAA9B;AACA,MAAM8B,eAAe,GAAG1G,MAAM,CAAC2G,WAA/B;;AAEA,WAAS/B,UAAT,CAAoBgC,IAApB,EAA0BC,KAA1B,EAAiC;AAC7B,QAAIC,EAAE,GAAGL,cAAc,CAACG,IAAD,EAAOC,KAAP,CAAvB;;AACAL,kBAAc,CAAC7M,IAAf,CAAoBmN,EAApB;;AACA,WAAOA,EAAP;AACH;;AAAA;;AACD,WAASH,WAAT,CAAqBC,IAArB,EAA2BG,GAA3B,EAAgC;AAC5B,QAAID,EAAE,GAAGJ,eAAe,CAACE,IAAD,EAAOG,GAAP,CAAxB;;AACAR,mBAAe,CAAC5M,IAAhB,CAAqBmN,EAArB;;AACA,WAAOA,EAAP;AACH;;AAAA;;AACD,WAASE,iBAAT,GAA6B;AACzB,SAAK,IAAIhK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuJ,eAAe,CAAC7M,MAApC,EAA4CsD,CAAC,EAA7C,EAAiD;AAC7CiK,mBAAa,CAACV,eAAe,CAACvJ,CAAD,CAAhB,CAAb;AACH;;AACD,SAAK,IAAIA,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwJ,cAAc,CAAC9M,MAAnC,EAA2CsD,CAAC,EAA5C,EAAgD;AAC5C0H,kBAAY,CAAC8B,cAAc,CAACxJ,CAAD,CAAf,CAAZ;AACH;;AACDuJ,mBAAe,GAAG,EAAlB;AACAC,kBAAc,GAAG,EAAjB;AACH;;AACD,MAAMU,OAAO,GAAG,EAAhB;;AACA,WAASC,cAAT,CAAwBC,KAAxB,EAA+B;AAC3B,QAAMC,KAAK,GAAGD,KAAK,CAAC5B,EAApB;AACA,QAAM8B,YAAY,GAAGF,KAAK,CAACG,SAA3B;;AACAH,SAAK,CAAC5B,EAAN,GAAW,UAAUgC,SAAV,EAAqB;AAC5B,UAAMC,GAAG,GAAGJ,KAAK,CAACK,KAAN,CAAYN,KAAZ,EAAmBO,SAAnB,CAAZ;;AACAT,aAAO,CAACvN,IAAR,CAAa6N,SAAb;;AACA,aAAOC,GAAP;AACH,KAJD;;AAKAL,SAAK,CAACG,SAAN,GAAkB,YAAY;AAC1B,UAAME,GAAG,GAAGH,YAAY,CAACI,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,CAAZ;AACAvB,mBAAa,IAAIA,aAAa,CAACgB,KAAD,CAA9B;AACA,aAAOK,GAAP;AACH,KAJD;AAKH;;AAED,WAASG,iBAAT,CAA2BR,KAA3B,EAAkC;AAC9BF,WAAO,CAACxO,OAAR,CAAgB,UAAU8O,SAAV,EAAqB;AACjC,UAAIJ,KAAJ,EAAW;AACPA,aAAK,CAACS,GAAN,CAAUL,SAAV;AACH;AACJ,KAJD;;AAMAN,WAAO,CAACxN,MAAR,GAAiB,CAAjB;AACH;;AAED,MAAIoO,aAAJ;AAEA,SAAO;AACHC,UADG,oBACM;AACL,UAAID,aAAJ,EAAmB;AACfA,qBAAa,CAACC,MAAd;AACH;AACJ,KALE;AAOHC,WAPG,qBAOO;AACN,UAAIF,aAAJ,EAAmB;AACfA,qBAAa,CAACE,OAAd;AACAF,qBAAa,GAAG,IAAhB;AACH;AACJ,KAZE;AAcHG,cAdG,wBAcU;AACT,aAAOH,aAAa,CAACG,UAAd,CAAyB;AAC5BC,kBAAU,EAAE,CADgB;AAE5BC,yBAAiB,EAAE,CAAC,SAAD;AAFS,OAAzB,CAAP;AAIH,KAnBE;AAqBHC,aArBG,uBAqBS;AACR,aAAON,aAAa,CAACM,SAAd,EAAP;AACH,KAvBE;AAyBHzH,OAzBG,eAyBC0H,EAzBD,EAyBKxG,KAzBL,EAyBY;AAEX,UAAI,CAACiG,aAAL,EAAoB;AAChBA,qBAAa,GAAGQ,OAAO,CAACC,IAAR,CAAaF,EAAb,EAAiBxG,KAAK,CAACf,QAAN,GAAiB,MAAjB,GAA0B,EAA3C,EAA+C;AAC3DG,kBAAQ,EAAEY,KAAK,CAACZ,QAD2C;AAE3DC,sBAAY,EAAEW,KAAK,CAACX;AAFuC,SAA/C,CAAhB;;AAIA,YAAIW,KAAK,CAACX,YAAN,IAAsBW,KAAK,CAACZ,QAAN,KAAmB,QAA7C,EAAuD;AACnD,cAAI;AACAuH,4EAAkB,CAACV,aAAa,CAACW,KAAd,EAAD,EAAwB;AACtCC,2BAAa,EAAE;AADuB,aAAxB,CAAlB;AAGH,WAJD,CAKA,OAAOC,CAAP,EAAU;AACNC,mBAAO,CAACC,KAAR,CAAcF,CAAd;AACH;AACJ;;AACDxB,sBAAc,CAACW,aAAD,CAAd;AACH,OAlBU,CAoBX;AACA;AACA;AACA;AAEA;;;AACAd,uBAAiB;;AACjBY,uBAAiB,CAACE,aAAD,CAAjB,CA3BW,CA4BX;;;AACAzB,YAAM,CAACyC,MAAP,GAAgB,IAAhB,CA7BW,CA+BX;;AAEA,UAAMC,YAAY,GAAGlH,KAAK,CAACK,OAA3B;AAEA,UAAM0E,IAAI,GAAG,IAAIoC,QAAJ,CACT,SADS,EACE,KADF,EACS,YADT,EACuB,aADvB,EACsC,WADtC,EAET,kBAAkBD,YAAlB,GAAiC,kBAFxB,CAAb;AAIA,UAAMhQ,MAAM,GAAG6N,IAAI,CAACkB,aAAD,EAAgBzB,MAAhB,EAAwBzB,UAAxB,EAAoC+B,WAApC,EAAiD9E,KAAK,CAACC,OAAvD,CAAnB;AACA,UAAImH,UAAU,GAAG,CAAjB;;AAEA,UAAIlQ,MAAM,IAAI,QAAOA,MAAP,MAAkB,QAAhC,EAA0C;AACtC,YAAMmQ,SAAS,GAAG,CAAC,IAAIC,IAAJ,EAAnB;AACArB,qBAAa,CAACP,SAAd,CAAwBxO,MAAxB,EAAgC,IAAhC;AACA,YAAMqQ,OAAO,GAAG,CAAC,IAAID,IAAJ,EAAjB;AACAF,kBAAU,GAAGG,OAAO,GAAGF,SAAvB;AACH;;AAED,UAAI5C,GAAJ,EAAS;AACL3D,SAAC,CAAC2D,GAAG,CAAC+C,UAAL,CAAD,CAAkBC,MAAlB;AACAhD,WAAG,CAACiD,OAAJ;AACAjD,WAAG,GAAG,IAAN;AACH;;AAED,UAAID,MAAM,CAACyC,MAAX,EAAmB;AACfxC,WAAG,GAAG,IAAIkD,GAAG,CAACC,GAAR,CAAY;AACdC,mBAAS,EAAE;AADG,SAAZ,CAAN;AAGA/G,SAAC,CAAC2D,GAAG,CAAC+C,UAAL,CAAD,CAAkBM,GAAlB,CAAsB;AAClBpE,kBAAQ,EAAE,UADQ;AAElBqE,eAAK,EAAE,CAFW;AAGlBxF,aAAG,EAAE,CAHa;AAIlByF,gBAAM,EAAE;AAJU,SAAtB;AAMAlH,SAAC,CAAC,kBAAD,CAAD,CAAsBmH,MAAtB,CAA6BxD,GAAG,CAAC+C,UAAjC;AAEA,YAAIU,gBAAgB,GAAG1D,MAAM,CAAC0D,gBAAP,IAA2B,EAAlD;;AACA,aAAK,IAAIC,IAAT,IAAiB3D,MAAM,CAACyC,MAAxB,EAAgC;AAC5B,cAAImB,KAAK,GAAG5D,MAAM,CAACyC,MAAP,CAAckB,IAAd,CAAZ;;AACA,cAAIA,IAAI,KAAK,UAAT,IAAuBA,IAAI,KAAK,gBAApC,EAAsD;AAClD,gBAAIE,OAAO,GAAG,KAAd,CADkD,CAElD;;AACA,gBAAIC,UAAU,GAAG,IAAjB;;AACA,gBAAIJ,gBAAgB,CAACC,IAAD,CAApB,EAA4B;AACxB,kBAAID,gBAAgB,CAACC,IAAD,CAAhB,CAAuB/Q,OAA3B,EAAoC;AAChCkR,0BAAU,GAAG7D,GAAG,CAAC8D,GAAJ,CAAQ/D,MAAM,CAACyC,MAAf,EAAuBkB,IAAvB,EAA6BD,gBAAgB,CAACC,IAAD,CAAhB,CAAuB/Q,OAApD,CAAb;AACH,eAFD,MAGK,IAAI8Q,gBAAgB,CAACC,IAAD,CAAhB,CAAuBK,GAAvB,IAA8B,IAAlC,EAAwC;AACzCF,0BAAU,GAAG7D,GAAG,CAAC8D,GAAJ,CAAQ/D,MAAM,CAACyC,MAAf,EAAuBkB,IAAvB,EAA6BD,gBAAgB,CAACC,IAAD,CAAhB,CAAuBK,GAApD,EAAyDN,gBAAgB,CAACC,IAAD,CAAhB,CAAuBM,GAAhF,CAAb;AACH;AACJ;;AACD,gBAAI,OAAOC,GAAP,KAAe,QAAnB,EAA6B;AACzB,kBAAI;AACA,oBAAIC,QAAQ,GAAGlC,OAAO,CAACmC,KAAR,CAAcC,KAAd,CAAoBT,KAApB,CAAf;AACAC,uBAAO,GAAG,CAAC,CAACM,QAAZ;;AACA,oBAAIN,OAAJ,EAAa;AACTD,uBAAK,GAAG3B,OAAO,CAACmC,KAAR,CAAcE,SAAd,CAAwBH,QAAxB,EAAkC,MAAlC,CAAR;AACH;AACJ,eAND,CAOA,OAAO7B,CAAP,EAAU,CAAE;AACf;;AACD,gBAAI,CAACwB,UAAL,EAAiB;AACbA,wBAAU,GAAG7D,GAAG,CAAC4D,OAAO,GAAG,UAAH,GAAgB,KAAxB,CAAH,CAAkC7D,MAAM,CAACyC,MAAzC,EAAiDkB,IAAjD,CAAb;AACH;;AACD3D,kBAAM,CAACyC,MAAP,CAAc8B,QAAd,IAA0BT,UAAU,CAACS,QAAX,CAAoBvE,MAAM,CAACyC,MAAP,CAAc8B,QAAlC,CAA1B;AACAvE,kBAAM,CAACyC,MAAP,CAAc+B,cAAd,IAAgCV,UAAU,CAACU,cAAX,CAA0BxE,MAAM,CAACyC,MAAP,CAAc+B,cAAxC,CAAhC;AACH;AACJ;AACJ;;AAED,aAAO5B,UAAP;AACH;AA/HE,GAAP;AAiIH;AAAA,C;;;;;;;;;;;;;;;;;;;;;;;;;AC7LD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA6B,8CAAA,CAAQC,yDAAR;AAEA;;;;;;;;;;AASO,SAASxC,IAAT,CAAcF,EAAd,EAAkBtP,MAAlB,EAA0B;AAC7B,MAAMiS,IAAI,GAAG,IAAIC,6CAAJ,CAAY;AACrBjJ,UAAM,EAAEjJ,MAAM,CAACiJ,MADM;AAErBkJ,kBAAc,EAAE,IAFK;AAGrBC,YAAQ,EAARA,iDAAQA;AAHa,GAAZ,CAAb;AAKAtJ,0DAAA,GAAgB9I,MAAM,CAAC+I,OAAvB;AACAD,0DAAA,GAAgB9I,MAAM,CAACgJ,OAAvB;AACAF,yDAAA,GAAe9I,MAAM,CAACiJ,MAAP,IAAiB,IAAhC;;AAGA,MAAI,OAAOqG,EAAP,KAAc,QAAlB,EAA4B;AACxBA,MAAE,GAAG3K,QAAQ,CAAC0N,aAAT,CAAuB/C,EAAvB,CAAL;AACH;;AACD,MAAI,CAACA,EAAL,EAAS;AACL,UAAM,IAAIpD,KAAJ,CAAU,iBAAV,CAAN;AACH;;AAED,MAAMoG,SAAS,GAAG3N,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAlB;AACA0K,IAAE,CAAC3I,WAAH,CAAe2L,SAAf;AAEA,MAAIP,4CAAJ,CAAQ;AACJE,QAAI,EAAJA,IADI;AAEJ3C,MAAE,EAAEgD,SAFA;AAGJC,UAAM,EAAE,gBAAAC,CAAC,EAAI;AACT,aAAOA,CAAC,CAAE;AACN7K,cAAM,EAAE8K,uDADF;AAENC,eAAO,EAAEC,yDAFH;AAGNC,YAAI,EAAEC,qDAAQA;AAHR,OAAD,CAIN7S,MAAM,CAAC8S,IAJD,KAIUH,yDAJX,CAAR;AAKH;AATG,GAAR;AAWH,C;;;;;;;;;;ACpDD,iBAAiB,qBAAuB,8B;;;;;;;;;;ACAxC;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA;AACA;AACA;AACA,sB;;;;;;;;;;ACHA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;ACLA,aAAa,mBAAO,CAAC,mDAAW;AAChC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC3BA;AACA,wBAAwB,qBAAM,gBAAgB,qBAAM,IAAI,qBAAM,sBAAsB,qBAAM;;AAE1F;;;;;;;;;;;ACHA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7CA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACRA,eAAe,mBAAO,CAAC,qDAAY;AACnC,UAAU,mBAAO,CAAC,2CAAO;AACzB,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO,YAAY;AAC9B,WAAW,QAAQ;AACnB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5BA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACtBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACjEA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,kBAAkB,UAAU,oBAAoB,iGAAiG,aAAa,kBAAkB,MAAM,OAAO,YAAY,WAAW,gBAAgB,gDAAgD,gBAAgB,cAAc,gCAAgC,WAAW,YAAY;;AAErY;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,4BAA4B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,WAAW,qBAAqB;AAChC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,OAAO,gBAAgB;AACvB,OAAO,4BAA4B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,qBAAqB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,gCAAgC;;AAEvC;AACA,OAAO,sCAAsC;AAC7C,OAAO,2EAA2E;;AAElF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEuC;;;;;;;;;;;;;;;;ACvSvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU,WAAW,EAAE;AAC/D,EAAE;AACF;AACA;AACA,oDAAoD,WAAW;AAC/D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,8BAA8B,4BAA4B;AAC1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,oCAAoC;AAC9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0CAA0C,aAAa;AACvD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;ACzexB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,WAAW;AACX,gBAAgB,IAAqC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX,gBAAgB,IAAqC;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,YAAY,IAAqC;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP,YAAY,IAAqC;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA,GAAG;;AAEH;AACA,MAAM,KAAqC;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA,wCAAwC;AACxC,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mCAAmC;AACnC,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA,2BAA2B;;AAE3B;AACA;;AAEA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA,0EAA0E;;AAE1E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,6CAA6C;AACnE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,qBAAqB,4BAA4B;AACjD;;AAEA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C,KAAK;AACL;AACA,mCAAmC;AACnC;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,uBAAuB,4BAA4B;;AAEnD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,cAAc,IAAqC;AACnD;AACA;AACA;AACA;AACA;AACA,YAAY,IAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wCAAwC;;AAExC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8CAA8C;;AAE9C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;AAMA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;AAIA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,2BAA2B,gCAAgC,EAAE;AAC7D,2BAA2B,gCAAgC,EAAE;AAC7D,gCAAgC,qEAAqE;AACrG;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AAGA;AACA,2BAA2B;AAC3B,2DAA2D;AAC3D;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,0BAA0B,MAAM,qBAAqB,YAAY,qBAAqB,mBAAmB,qBAAqB,iBAAiB,qBAAqB,oBAAoB,qBAAqB,UAAU,qBAAqB,kBAAkB,qBAAqB,0BAA0B,qBAAqB,WAAW,qBAAqB,aAAa,qBAAqB,yBAAyB,qBAAqB,sBAAsB,qBAAqB,4BAA4B,qBAAqB,qBAAqB,qBAAqB,mBAAmB,qBAAqB;;AAEhmB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG,GAAG,aAAa;AACnB;;AAEA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,GAAG,GAAG,kBAAkB;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC;;AAEzC,+CAA+C;AAC/C,sDAAsD;AACtD,oDAAoD;AACpD,uDAAuD;;AAEvD,6CAA6C;AAC7C;AACA;AACA;;AAEA,qDAAqD;AACrD;AACA;AACA;AACA;;AAEA,6DAA6D;AAC7D,qEAAqE,yCAAyC;;AAE9G,8CAA8C;AAC9C,qDAAqD,yBAAyB;;AAE9E,gDAAgD;AAChD,yDAAyD,6BAA6B;;AAEtF,4DAA4D;AAC5D,kEAAkE,sCAAsC;;AAExG,yDAAyD;AACzD,+DAA+D,mCAAmC;;AAElG,+DAA+D;AAC/D,uEAAuE,2CAA2C;;AAElH,wDAAwD;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,sDAAsD;AACtD,6DAA6D,iCAAiC;;AAE9F,2DAA2D;AAC3D,yEAAyE;AACzE,qEAAqE;;AAErE;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,yDAAyD;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,iBAAiB,2CAA2C;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA,6BAA6B,aAAoB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA,sBAAsB;AACtB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA,sBAAsB;AACtB;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC;AACvC;;AAEA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,iCAAiC;AACpF;;AAEA;AACA,0DAA0D;AAC1D;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8FAA8F;AAC9F;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAoB;AACjD;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA,sBAAsB;AACtB;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wDAAwD;AACxD;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0FAA0F;AAC1F;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAoB;AACjD;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,iEAAiE;AACjE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA,sBAAsB;AACtB,qDAAqD,GAAG,2BAA2B;AACnF,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA,sBAAsB;AACtB;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;;;;ACjlE+D;AAC3B;AACL;AACtD,CAAoE;;;AAGpE;AAC0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,0EAAM;AACR,EAAE,+EAAM;AACR,EAAE,wFAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;;;;ACvC0E;AAC3B;AACL;AACzD,CAAuE;;;AAGvE;AAC0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,6EAAM;AACR,EAAE,kFAAM;AACR,EAAE,2FAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;;;;ACvCsE;AAC3B;AACL;AACrD,CAAmE;;;AAGnE;AAC0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,yEAAM;AACR,EAAE,8EAAM;AACR,EAAE,uFAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;;;;ACvC+E;AAC3B;AACL;AAC9D,CAA4E;;;AAG5E;AAC0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,kFAAM;AACR,EAAE,uFAAM;AACR,EAAE,gGAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;;;;;ACvCuE;AAC3B;AACL;AACtD,CAAoE;;;AAGpE;AAC0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,0EAAM;AACR,EAAE,+EAAM;AACR,EAAE,wFAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;;;ACvCoE;AAC3B;AACL;;;AAGnD;AACA,CAA0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,uEAAM;AACR,EAAE,4EAAM;AACR,EAAE,qFAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;;;;ACtC2E;AAC3B;AACL;AAC1D,CAAwE;;;AAGxE;AAC0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,8EAAM;AACR,EAAE,mFAAM;AACR,EAAE,4FAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;;;;ACvCuE;AAC3B;AACL;AACtD,CAAoE;;;AAGpE;AAC0F;AAC1F,gBAAgB,oGAAU;AAC1B,EAAE,0EAAM;AACR,EAAE,+EAAM;AACR,EAAE,wFAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACA,iEAAe,iB;;;;;;;;;;;;;;;;ACvCwJ,CAAC,iEAAe,yKAAG,EAAC,C;;;;;;;;;;;;;;;;ACAjB,CAAC,iEAAe,4KAAG,EAAC,C;;;;;;;;;;;;;;;;ACAxB,CAAC,iEAAe,wKAAG,EAAC,C;;;;;;;;;;;;;;;;ACAX,CAAC,iEAAe,iLAAG,EAAC,C;;;;;;;;;;;;;;;;;ACA5B,CAAC,iEAAe,yKAAG,EAAC,C;;;;;;;;;;;;;;;;ACAvB,CAAC,iEAAe,sKAAG,EAAC,C;;;;;;;;;;;;;;;;ACAb,CAAC,iEAAe,6KAAG,EAAC,C;;;;;;;;;;;;;;;;ACAxB,CAAC,iEAAe,yKAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA3L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,SAAS,uBAAuB,EAAE;AACvC;AACA;AACA;AACA;AACA;AACA,sBAAsB,qCAAqC;AAC3D,sBAAsB;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS,6BAA6B,EAAE;AACrE;AACA;AACA;AACA,iCAAiC,SAAS,kBAAkB,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA,2CAA2C,gCAAgC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iCAAiC;AAC1E;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB,GAAG;AACnE,yCAAyC;AACzC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB,eAAe,gCAAgC,EAAE;AAC1E;AACA;AACA;AACA,6BAA6B,SAAS,kCAAkC,EAAE;AAC1E;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,gCAAgC,SAAS,uBAAuB,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oCAAoC;AACxD,oBAAoB,kBAAkB;AACtC,iBAAiB;AACjB,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gBAAgB;AAChB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACtOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,8DAA8D;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kCAAkC;AACpD,kBAAkB;AAClB,SAAS;AACT,oBAAoB,iCAAiC;AACrD;AACA;AACA;AACA;AACA,SAAS,SAAS,mBAAmB,EAAE;AACvC;AACA;AACA;AACA,aAAa,4BAA4B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB,yCAAyC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,iCAAiC,SAAS,WAAW,EAAE;AACvD;AACA,+CAA+C,4BAA4B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,gDAAgD;AAChD,uCAAuC;AACvC;AACA;AACA,gDAAgD;AAChD,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAS,WAAW,EAAE;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA,yBAAyB;AACzB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,yBAAyB;AACzB,mBAAmB;AACnB,4BAA4B,sCAAsC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACjOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,6DAA0B;AACnD;AACA;AACA,SAAS;AACT;AACA,kBAAkB,+BAA+B;AACjD;AACA;AACA,sBAAsB,kCAAkC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA,oBAAoB,SAAS,wBAAwB,EAAE;AACvD,eAAe,SAAS,uBAAuB,EAAE;AACjD;AACA;AACA,SAAS,SAAS,uBAAuB,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,mBAAmB;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,qCAAqC;AACrC,yBAAyB;AACzB;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS,0BAA0B,EAAE;AACpD;AACA;AACA,SAAS,oCAAoC;AAC7C;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA,wBAAwB;AACxB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,sCAAsC,SAAS,uBAAuB,EAAE;AACxE;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS,gBAAgB,EAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjIA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjGA;AACA,EAAE,KAAuD;AACzD;AACA,MAAM,CAIyB;AAC/B,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,yBAAyB;AAC3E,OAAO;AACP;AACA;AACA;AACA,wDAAwD,kBAAkB;AAC1E,kDAAkD,YAAY;AAC9D,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2BAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,QAAQ;AAC7E;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qFAAqF;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA;AACA,0BAA0B,qCAAqC;AAC/D,qBAAqB,4BAA4B;AACjD,2BAA2B,8BAA8B;AACzD,sCAAsC,4BAA4B;AAClE,4BAA4B,6BAA6B;AACzD,uBAAuB,6BAA6B;AACpD,0BAA0B,6BAA6B;AACvD,gCAAgC,sCAAsC;AACtE,wBAAwB,6BAA6B;AACrD,oBAAoB,6BAA6B;AACjD,iCAAiC,6BAA6B;AAC9D,kBAAkB,+BAA+B;AACjD,4BAA4B,6BAA6B;AACzD,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb;AACA,oCAAoC,GAAG;AACvC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;;;;ACxZD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uE;;;;;;;;;;;ACjDA,qB;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCxBA;WACA;WACA;WACA;WACA;WACA,gCAAgC,YAAY;WAC5C;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,wCAAwC,yCAAyC;WACjF;WACA;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA,CAAC,I;;;;;WCPD,sF;;;;;WCAA;WACA;WACA;WACA,sDAAsD,kBAAkB;WACxE;WACA,+CAA+C,cAAc;WAC7D,E;;;;;WCNA;WACA;WACA;WACA;WACA,E;;;;;WCJA,6B;;;;UCAA;UACA;UACA;UACA","file":"example-bundle.js","sourcesContent":["function e(e,n){const t=Object.create(null),r=e.split(\",\");for(let e=0;e<r.length;e++)t[r[e]]=!0;return n?e=>!!t[e.toLowerCase()]:e=>!!t[e]}const n=e(\"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl\"),t=e(\"itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly\");function r(e){if(x(e)){const n={};for(let t=0;t<e.length;t++){const o=e[t],s=r(k(o)?l(o):o);if(s)for(const e in s)n[e]=s[e]}return n}if(E(e))return e}const o=/;(?![^(]*\\))/g,s=/:(.+)/;function l(e){const n={};return e.split(o).forEach((e=>{if(e){const t=e.split(s);t.length>1&&(n[t[0].trim()]=t[1].trim())}})),n}function a(e){let n=\"\";if(k(e))n=e;else if(x(e))for(let t=0;t<e.length;t++)n+=a(e[t])+\" \";else if(E(e))for(const t in e)e[t]&&(n+=t+\" \");return n.trim()}const i=e=>null==e?\"\":E(e)?JSON.stringify(e,c,2):String(e),c=(e,n)=>S(n)?{[`Map(${n.size})`]:[...n.entries()].reduce(((e,[n,t])=>(e[`${n} =>`]=t,e)),{})}:C(n)?{[`Set(${n.size})`]:[...n.values()]}:!E(n)||x(n)||T(n)?n:String(n),u={},d=[],p=()=>{},f=()=>!1,h=/^on[^a-z]/,g=e=>h.test(e),_=e=>e.startsWith(\"onUpdate:\"),y=Object.assign,m=(e,n)=>{const t=e.indexOf(n);t>-1&&e.splice(t,1)},v=Object.prototype.hasOwnProperty,b=(e,n)=>v.call(e,n),x=Array.isArray,S=e=>\"[object Map]\"===P(e),C=e=>\"[object Set]\"===P(e),O=e=>\"function\"==typeof e,k=e=>\"string\"==typeof e,w=e=>\"symbol\"==typeof e,E=e=>null!==e&&\"object\"==typeof e,A=e=>E(e)&&O(e.then)&&O(e.catch),U=Object.prototype.toString,P=e=>U.call(e),T=e=>\"[object Object]\"===P(e),N=e=>k(e)&&\"NaN\"!==e&&\"-\"!==e[0]&&\"\"+parseInt(e,10)===e,V=e(\",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"),F=e=>{const n=Object.create(null);return t=>n[t]||(n[t]=e(t))},j=/-(\\w)/g,R=F((e=>e.replace(j,((e,n)=>n?n.toUpperCase():\"\")))),I=/\\B([A-Z])/g,K=F((e=>e.replace(I,\"-$1\").toLowerCase())),M=F((e=>e.charAt(0).toUpperCase()+e.slice(1))),D=F((e=>e?`on${M(e)}`:\"\")),$=(e,n)=>e!==n&&(e==e||n==n),L=(e,n)=>{for(let t=0;t<e.length;t++)e[t](n)},q=(e,n,t)=>{Object.defineProperty(e,n,{configurable:!0,enumerable:!1,value:t})},B=e=>{const n=parseFloat(e);return isNaN(n)?e:n};let W;const z=()=>W||(W=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:{}),H=new WeakMap,J=[];let G;const Z=Symbol(\"\"),Q=Symbol(\"\");function X(e,n=u){(function(e){return e&&!0===e._isEffect})(e)&&(e=e.raw);const t=function(e,n){const t=function(){if(!t.active)return n.scheduler?void 0:e();if(!J.includes(t)){ne(t);try{return re.push(te),te=!0,J.push(t),G=t,e()}finally{J.pop(),se(),G=J[J.length-1]}}};return t.id=ee++,t.allowRecurse=!!n.allowRecurse,t._isEffect=!0,t.active=!0,t.raw=e,t.deps=[],t.options=n,t}(e,n);return n.lazy||t(),t}function Y(e){e.active&&(ne(e),e.options.onStop&&e.options.onStop(),e.active=!1)}let ee=0;function ne(e){const{deps:n}=e;if(n.length){for(let t=0;t<n.length;t++)n[t].delete(e);n.length=0}}let te=!0;const re=[];function oe(){re.push(te),te=!1}function se(){const e=re.pop();te=void 0===e||e}function le(e,n,t){if(!te||void 0===G)return;let r=H.get(e);r||H.set(e,r=new Map);let o=r.get(t);o||r.set(t,o=new Set),o.has(G)||(o.add(G),G.deps.push(o))}function ae(e,n,t,r,o,s){const l=H.get(e);if(!l)return;const a=new Set,i=e=>{e&&e.forEach((e=>{(e!==G||e.allowRecurse)&&a.add(e)}))};if(\"clear\"===n)l.forEach(i);else if(\"length\"===t&&x(e))l.forEach(((e,n)=>{(\"length\"===n||n>=r)&&i(e)}));else switch(void 0!==t&&i(l.get(t)),n){case\"add\":x(e)?N(t)&&i(l.get(\"length\")):(i(l.get(Z)),S(e)&&i(l.get(Q)));break;case\"delete\":x(e)||(i(l.get(Z)),S(e)&&i(l.get(Q)));break;case\"set\":S(e)&&i(l.get(Z))}a.forEach((e=>{e.options.scheduler?e.options.scheduler(e):e()}))}const ie=new Set(Object.getOwnPropertyNames(Symbol).map((e=>Symbol[e])).filter(w)),ce=he(),ue=he(!1,!0),de=he(!0),pe=he(!0,!0),fe={};function he(e=!1,n=!1){return function(t,r,o){if(\"__v_isReactive\"===r)return!e;if(\"__v_isReadonly\"===r)return e;if(\"__v_raw\"===r&&o===(e?$e:De).get(t))return t;const s=x(t);if(!e&&s&&b(fe,r))return Reflect.get(fe,r,o);const l=Reflect.get(t,r,o);if(w(r)?ie.has(r):\"__proto__\"===r||\"__v_isRef\"===r)return l;if(e||le(t,0,r),n)return l;if(Qe(l)){return!s||!N(r)?l.value:l}return E(l)?e?Be(l):qe(l):l}}[\"includes\",\"indexOf\",\"lastIndexOf\"].forEach((e=>{const n=Array.prototype[e];fe[e]=function(...e){const t=Ge(this);for(let e=0,n=this.length;e<n;e++)le(t,0,e+\"\");const r=n.apply(t,e);return-1===r||!1===r?n.apply(t,e.map(Ge)):r}})),[\"push\",\"pop\",\"shift\",\"unshift\",\"splice\"].forEach((e=>{const n=Array.prototype[e];fe[e]=function(...e){oe();const t=n.apply(this,e);return se(),t}}));function ge(e=!1){return function(n,t,r,o){const s=n[t];if(!e&&(r=Ge(r),!x(n)&&Qe(s)&&!Qe(r)))return s.value=r,!0;const l=x(n)&&N(t)?Number(t)<n.length:b(n,t),a=Reflect.set(n,t,r,o);return n===Ge(o)&&(l?$(r,s)&&ae(n,\"set\",t,r):ae(n,\"add\",t,r)),a}}const _e={get:ce,set:ge(),deleteProperty:function(e,n){const t=b(e,n),r=(e[n],Reflect.deleteProperty(e,n));return r&&t&&ae(e,\"delete\",n,void 0),r},has:function(e,n){const t=Reflect.has(e,n);return w(n)&&ie.has(n)||le(e,0,n),t},ownKeys:function(e){return le(e,0,x(e)?\"length\":Z),Reflect.ownKeys(e)}},ye={get:de,set:(e,n)=>!0,deleteProperty:(e,n)=>!0},me=y({},_e,{get:ue,set:ge(!0)}),ve=(y({},ye,{get:pe}),e=>E(e)?qe(e):e),be=e=>E(e)?Be(e):e,xe=e=>e,Se=e=>Reflect.getPrototypeOf(e);function Ce(e,n,t=!1,r=!1){const o=Ge(e=e.__v_raw),s=Ge(n);n!==s&&!t&&le(o,0,n),!t&&le(o,0,s);const{has:l}=Se(o),a=t?be:r?xe:ve;return l.call(o,n)?a(e.get(n)):l.call(o,s)?a(e.get(s)):void 0}function Oe(e,n=!1){const t=this.__v_raw,r=Ge(t),o=Ge(e);return e!==o&&!n&&le(r,0,e),!n&&le(r,0,o),e===o?t.has(e):t.has(e)||t.has(o)}function ke(e,n=!1){return e=e.__v_raw,!n&&le(Ge(e),0,Z),Reflect.get(e,\"size\",e)}function we(e){e=Ge(e);const n=Ge(this),t=Se(n).has.call(n,e);return n.add(e),t||ae(n,\"add\",e,e),this}function Ee(e,n){n=Ge(n);const t=Ge(this),{has:r,get:o}=Se(t);let s=r.call(t,e);s||(e=Ge(e),s=r.call(t,e));const l=o.call(t,e);return t.set(e,n),s?$(n,l)&&ae(t,\"set\",e,n):ae(t,\"add\",e,n),this}function Ae(e){const n=Ge(this),{has:t,get:r}=Se(n);let o=t.call(n,e);o||(e=Ge(e),o=t.call(n,e));r&&r.call(n,e);const s=n.delete(e);return o&&ae(n,\"delete\",e,void 0),s}function Ue(){const e=Ge(this),n=0!==e.size,t=e.clear();return n&&ae(e,\"clear\",void 0,void 0),t}function Pe(e,n){return function(t,r){const o=this,s=o.__v_raw,l=Ge(s),a=e?be:n?xe:ve;return!e&&le(l,0,Z),s.forEach(((e,n)=>t.call(r,a(e),a(n),o)))}}function Te(e,n,t){return function(...r){const o=this.__v_raw,s=Ge(o),l=S(s),a=\"entries\"===e||e===Symbol.iterator&&l,i=\"keys\"===e&&l,c=o[e](...r),u=n?be:t?xe:ve;return!n&&le(s,0,i?Q:Z),{next(){const{value:e,done:n}=c.next();return n?{value:e,done:n}:{value:a?[u(e[0]),u(e[1])]:u(e),done:n}},[Symbol.iterator](){return this}}}}function Ne(e){return function(...n){return\"delete\"!==e&&this}}const Ve={get(e){return Ce(this,e)},get size(){return ke(this)},has:Oe,add:we,set:Ee,delete:Ae,clear:Ue,forEach:Pe(!1,!1)},Fe={get(e){return Ce(this,e,!1,!0)},get size(){return ke(this)},has:Oe,add:we,set:Ee,delete:Ae,clear:Ue,forEach:Pe(!1,!0)},je={get(e){return Ce(this,e,!0)},get size(){return ke(this,!0)},has(e){return Oe.call(this,e,!0)},add:Ne(\"add\"),set:Ne(\"set\"),delete:Ne(\"delete\"),clear:Ne(\"clear\"),forEach:Pe(!0,!1)};function Re(e,n){const t=n?Fe:e?je:Ve;return(n,r,o)=>\"__v_isReactive\"===r?!e:\"__v_isReadonly\"===r?e:\"__v_raw\"===r?n:Reflect.get(b(t,r)&&r in n?t:n,r,o)}[\"keys\",\"values\",\"entries\",Symbol.iterator].forEach((e=>{Ve[e]=Te(e,!1,!1),je[e]=Te(e,!0,!1),Fe[e]=Te(e,!1,!0)}));const Ie={get:Re(!1,!1)},Ke={get:Re(!1,!0)},Me={get:Re(!0,!1)},De=new WeakMap,$e=new WeakMap;function Le(e){return e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case\"Object\":case\"Array\":return 1;case\"Map\":case\"Set\":case\"WeakMap\":case\"WeakSet\":return 2;default:return 0}}((e=>P(e).slice(8,-1))(e))}function qe(e){return e&&e.__v_isReadonly?e:We(e,!1,_e,Ie)}function Be(e){return We(e,!0,ye,Me)}function We(e,n,t,r){if(!E(e))return e;if(e.__v_raw&&(!n||!e.__v_isReactive))return e;const o=n?$e:De,s=o.get(e);if(s)return s;const l=Le(e);if(0===l)return e;const a=new Proxy(e,2===l?r:t);return o.set(e,a),a}function ze(e){return He(e)?ze(e.__v_raw):!(!e||!e.__v_isReactive)}function He(e){return!(!e||!e.__v_isReadonly)}function Je(e){return ze(e)||He(e)}function Ge(e){return e&&Ge(e.__v_raw)||e}const Ze=e=>E(e)?qe(e):e;function Qe(e){return Boolean(e&&!0===e.__v_isRef)}function Xe(e){return function(e,n=!1){if(Qe(e))return e;return new Ye(e,n)}(e)}class Ye{constructor(e,n=!1){this._rawValue=e,this._shallow=n,this.__v_isRef=!0,this._value=n?e:Ze(e)}get value(){return le(Ge(this),0,\"value\"),this._value}set value(e){$(Ge(e),this._rawValue)&&(this._rawValue=e,this._value=this._shallow?e:Ze(e),ae(Ge(this),\"set\",\"value\",e))}}const en={get:(e,n,t)=>function(e){return Qe(e)?e.value:e}(Reflect.get(e,n,t)),set:(e,n,t,r)=>{const o=e[n];return Qe(o)&&!Qe(t)?(o.value=t,!0):Reflect.set(e,n,t,r)}};function nn(e){return ze(e)?e:new Proxy(e,en)}class tn{constructor(e,n){this._object=e,this._key=n,this.__v_isRef=!0}get value(){return this._object[this._key]}set value(e){this._object[this._key]=e}}class rn{constructor(e,n,t){this._setter=n,this._dirty=!0,this.__v_isRef=!0,this.effect=X(e,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,ae(Ge(this),\"set\",\"value\"))}}),this.__v_isReadonly=t}get value(){return this._dirty&&(this._value=this.effect(),this._dirty=!1),le(Ge(this),0,\"value\"),this._value}set value(e){this._setter(e)}}function on(e,n,t,r){let o;try{o=r?e(...r):e()}catch(e){ln(e,n,t)}return o}function sn(e,n,t,r){if(O(e)){const o=on(e,n,t,r);return o&&A(o)&&o.catch((e=>{ln(e,n,t)})),o}const o=[];for(let s=0;s<e.length;s++)o.push(sn(e[s],n,t,r));return o}function ln(e,n,t,r=!0){n&&n.vnode;if(n){let r=n.parent;const o=n.proxy,s=t;for(;r;){const n=r.ec;if(n)for(let t=0;t<n.length;t++)if(!1===n[t](e,o,s))return;r=r.parent}const l=n.appContext.config.errorHandler;if(l)return void on(l,null,10,[e,o,s])}!function(e,n,t,r=!0){console.error(e)}(e,0,0,r)}let an=!1,cn=!1;const un=[];let dn=0;const pn=[];let fn=null,hn=0;const gn=[];let _n=null,yn=0;const mn=Promise.resolve();let vn=null,bn=null;function xn(e){const n=vn||mn;return e?n.then(this?e.bind(this):e):n}function Sn(e){un.length&&un.includes(e,an&&e.allowRecurse?dn+1:dn)||e===bn||(un.push(e),Cn())}function Cn(){an||cn||(cn=!0,vn=mn.then(An))}function On(e,n,t,r){x(e)?t.push(...e):n&&n.includes(e,e.allowRecurse?r+1:r)||t.push(e),Cn()}function kn(e,n=null){if(pn.length){for(bn=n,fn=[...new Set(pn)],pn.length=0,hn=0;hn<fn.length;hn++)fn[hn]();fn=null,hn=0,bn=null,kn(e,n)}}function wn(e){if(gn.length){const e=[...new Set(gn)];if(gn.length=0,_n)return void _n.push(...e);for(_n=e,_n.sort(((e,n)=>En(e)-En(n))),yn=0;yn<_n.length;yn++)_n[yn]();_n=null,yn=0}}const En=e=>null==e.id?1/0:e.id;function An(e){cn=!1,an=!0,kn(e),un.sort(((e,n)=>En(e)-En(n)));try{for(dn=0;dn<un.length;dn++){const e=un[dn];e&&on(e,null,14)}}finally{dn=0,un.length=0,wn(),an=!1,vn=null,(un.length||gn.length)&&An(e)}}function Un(e,n,...t){const r=e.vnode.props||u;let o=t;const s=n.startsWith(\"update:\"),l=s&&n.slice(7);if(l&&l in r){const e=`${\"modelValue\"===l?\"model\":l}Modifiers`,{number:n,trim:s}=r[e]||u;s?o=t.map((e=>e.trim())):n&&(o=t.map(B))}__VUE_PROD_DEVTOOLS__;let a=D(R(n)),i=r[a];!i&&s&&(a=D(K(n)),i=r[a]),i&&sn(i,e,6,o);const c=r[a+\"Once\"];if(c){if(e.emitted){if(e.emitted[a])return}else(e.emitted={})[a]=!0;sn(c,e,6,o)}}function Pn(e,n,t=!1){if(!n.deopt&&void 0!==e.__emits)return e.__emits;const r=e.emits;let o={},s=!1;if(__VUE_OPTIONS_API__&&!O(e)){const r=e=>{s=!0,y(o,Pn(e,n,!0))};!t&&n.mixins.length&&n.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return r||s?(x(r)?r.forEach((e=>o[e]=null)):y(o,r),e.__emits=o):e.__emits=null}function Tn(e,n){return!(!e||!g(n))&&(n=n.slice(2).replace(/Once$/,\"\"),b(e,n[0].toLowerCase()+n.slice(1))||b(e,K(n))||b(e,n))}let Nn=null;function Vn(e){Nn=e}function Fn(e){const{type:n,vnode:t,proxy:r,withProxy:o,props:s,propsOptions:[l],slots:a,attrs:i,emit:c,render:u,renderCache:d,data:p,setupState:f,ctx:h}=e;let g;Nn=e;try{let e;if(4&t.shapeFlag){const n=o||r;g=Xt(u.call(n,n,d,s,f,p,h)),e=i}else{const t=n;0,g=Xt(t.length>1?t(s,{attrs:i,slots:a,emit:c}):t(s,null)),e=n.props?i:Rn(i)}let y=g;if(!1!==n.inheritAttrs&&e){const n=Object.keys(e),{shapeFlag:t}=y;n.length&&(1&t||6&t)&&(l&&n.some(_)&&(e=In(e,l)),y=Gt(y,e))}t.dirs&&(y.dirs=y.dirs?y.dirs.concat(t.dirs):t.dirs),t.transition&&(y.transition=t.transition),g=y}catch(n){ln(n,e,1),g=Jt(Rt)}return Nn=null,g}function jn(e){let n;for(let t=0;t<e.length;t++){const r=e[t];if(!qt(r))return;if(r.type!==Rt||\"v-if\"===r.children){if(n)return;n=r}}return n}const Rn=e=>{let n;for(const t in e)(\"class\"===t||\"style\"===t||g(t))&&((n||(n={}))[t]=e[t]);return n},In=(e,n)=>{const t={};for(const r in e)_(r)&&r.slice(9)in n||(t[r]=e[r]);return t};function Kn(e,n,t){const r=Object.keys(n);if(r.length!==Object.keys(e).length)return!0;for(let o=0;o<r.length;o++){const s=r[o];if(n[s]!==e[s]&&!Tn(t,s))return!0}return!1}function Mn(e){if(O(e)&&(e=e()),x(e)){e=jn(e)}return Xt(e)}let Dn=0;const $n=e=>Dn+=e;function Ln(e,n,t,r=!1){const o={},s={};q(s,Wt,1),qn(e,n,o,s),t?e.props=r?o:We(o,!1,me,Ke):e.type.props?e.props=o:e.props=s,e.attrs=s}function qn(e,n,t,r){const[o,s]=e.propsOptions;if(n)for(const s in n){const l=n[s];if(V(s))continue;let a;o&&b(o,a=R(s))?t[a]=l:Tn(e.emitsOptions,s)||(r[s]=l)}if(s){const n=Ge(t);for(let r=0;r<s.length;r++){const l=s[r];t[l]=Bn(o,n,l,n[l],e)}}}function Bn(e,n,t,r,o){const s=e[t];if(null!=s){const e=b(s,\"default\");if(e&&void 0===r){const e=s.default;s.type!==Function&&O(e)?(mr(o),r=e(n),mr(null)):r=e}s[0]&&(b(n,t)||e?!s[1]||\"\"!==r&&r!==K(t)||(r=!0):r=!1)}return r}function Wn(e,n,t=!1){if(!n.deopt&&e.__props)return e.__props;const r=e.props,o={},s=[];let l=!1;if(__VUE_OPTIONS_API__&&!O(e)){const r=e=>{l=!0;const[t,r]=Wn(e,n,!0);y(o,t),r&&s.push(...r)};!t&&n.mixins.length&&n.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!r&&!l)return e.__props=d;if(x(r))for(let e=0;e<r.length;e++){const n=R(r[e]);zn(n)&&(o[n]=u)}else if(r)for(const e in r){const n=R(e);if(zn(n)){const t=r[e],l=o[n]=x(t)||O(t)?{type:t}:t;if(l){const e=Gn(Boolean,l.type),t=Gn(String,l.type);l[0]=e>-1,l[1]=t<0||e<t,(e>-1||b(l,\"default\"))&&s.push(n)}}}return e.__props=[o,s]}function zn(e){return\"$\"!==e[0]}function Hn(e){const n=e&&e.toString().match(/^\\s*function (\\w+)/);return n?n[1]:\"\"}function Jn(e,n){return Hn(e)===Hn(n)}function Gn(e,n){if(x(n)){for(let t=0,r=n.length;t<r;t++)if(Jn(n[t],e))return t}else if(O(n))return Jn(n,e)?0:-1;return-1}function Zn(e,n,t=yr,r=!1){if(t){const o=t[e]||(t[e]=[]),s=n.__weh||(n.__weh=(...r)=>{if(t.isUnmounted)return;oe(),mr(t);const o=sn(n,t,e,r);return mr(null),se(),o});return r?o.unshift(s):o.push(s),s}}const Qn=e=>(n,t=yr)=>!vr&&Zn(e,n,t),Xn=Qn(\"bm\"),Yn=Qn(\"m\"),et=Qn(\"bu\"),nt=Qn(\"u\"),tt=Qn(\"bum\"),rt=Qn(\"um\"),ot=Qn(\"rtg\"),st=Qn(\"rtc\"),lt={};function at(e,n,t){return it(e,n,t)}function it(e,n,{immediate:t,deep:r,flush:o,onTrack:s,onTrigger:l}=u,a=yr){let i,c,d=!1;if(Qe(e)?(i=()=>e.value,d=!!e._shallow):ze(e)?(i=()=>e,r=!0):i=x(e)?()=>e.map((e=>Qe(e)?e.value:ze(e)?ut(e):O(e)?on(e,a,2):void 0)):O(e)?n?()=>on(e,a,2):()=>{if(!a||!a.isUnmounted)return c&&c(),on(e,a,3,[f])}:p,n&&r){const e=i;i=()=>ut(e())}const f=e=>{c=y.options.onStop=()=>{on(e,a,4)}};let h=x(e)?[]:lt;const g=()=>{if(y.active)if(n){const e=y();(r||d||$(e,h))&&(c&&c(),sn(n,a,3,[e,h===lt?void 0:h,f]),h=e)}else y()};let _;g.allowRecurse=!!n,_=\"sync\"===o?g:\"post\"===o?()=>kt(g,a&&a.suspense):()=>{!a||a.isMounted?function(e){On(e,fn,pn,hn)}(g):g()};const y=X(i,{lazy:!0,onTrack:s,onTrigger:l,scheduler:_});return Sr(y,a),n?t?g():h=y():\"post\"===o?kt(y,a&&a.suspense):y(),()=>{Y(y),a&&m(a.effects,y)}}function ct(e,n,t){const r=this.proxy;return it(k(e)?()=>r[e]:e.bind(r),n.bind(r),t,this)}function ut(e,n=new Set){if(!E(e)||n.has(e))return e;if(n.add(e),Qe(e))ut(e.value,n);else if(x(e))for(let t=0;t<e.length;t++)ut(e[t],n);else if(C(e)||S(e))e.forEach((e=>{ut(e,n)}));else for(const t in e)ut(e[t],n);return e}const dt=e=>e.type.__isKeepAlive;function pt(e,n,t=yr){const r=e.__wdc||(e.__wdc=()=>{let n=t;for(;n;){if(n.isDeactivated)return;n=n.parent}e()});if(Zn(n,r,t),t){let e=t.parent;for(;e&&e.parent;)dt(e.parent.vnode)&&ft(r,n,t,e),e=e.parent}}function ft(e,n,t,r){const o=Zn(n,e,r,!0);rt((()=>{m(r[n],o)}),t)}const ht=e=>\"_\"===e[0]||\"$stable\"===e,gt=e=>x(e)?e.map(Xt):[Xt(e)],_t=(e,n,t)=>function(e,n=Nn){if(!n)return e;const t=(...t)=>{Dn||Dt(!0);const r=Nn;Vn(n);const o=e(...t);return Vn(r),Dn||$t(),o};return t._c=!0,t}((e=>gt(n(e))),t),yt=(e,n)=>{const t=e._ctx;for(const r in e){if(ht(r))continue;const o=e[r];if(O(o))n[r]=_t(0,o,t);else if(null!=o){const e=gt(o);n[r]=()=>e}}},mt=(e,n)=>{const t=gt(n);e.slots.default=()=>t};function vt(e,n){if(null===Nn)return e;const t=Nn.proxy,r=e.dirs||(e.dirs=[]);for(let e=0;e<n.length;e++){let[o,s,l,a=u]=n[e];O(o)&&(o={mounted:o,updated:o}),r.push({dir:o,instance:t,value:s,oldValue:void 0,arg:l,modifiers:a})}return e}function bt(e,n,t,r){const o=e.dirs,s=n&&n.dirs;for(let l=0;l<o.length;l++){const a=o[l];s&&(a.oldValue=s[l].value);const i=a.dir[r];i&&sn(i,t,8,[e.el,a,e,n])}}function xt(){return{app:null,config:{isNativeTag:f,performance:!1,globalProperties:{},optionMergeStrategies:{},isCustomElement:f,errorHandler:void 0,warnHandler:void 0},mixins:[],components:{},directives:{},provides:Object.create(null)}}let St=0;function Ct(e,n){return function(t,r=null){null==r||E(r)||(r=null);const o=xt(),s=new Set;let l=!1;const a=o.app={_uid:St++,_component:t,_props:r,_container:null,_context:o,version:kr,get config(){return o.config},set config(e){},use:(e,...n)=>(s.has(e)||(e&&O(e.install)?(s.add(e),e.install(a,...n)):O(e)&&(s.add(e),e(a,...n))),a),mixin:e=>(__VUE_OPTIONS_API__&&(o.mixins.includes(e)||(o.mixins.push(e),(e.props||e.emits)&&(o.deopt=!0))),a),component:(e,n)=>n?(o.components[e]=n,a):o.components[e],directive:(e,n)=>n?(o.directives[e]=n,a):o.directives[e],mount(s,i){if(!l){const c=Jt(t,r);return c.appContext=o,i&&n?n(c,s):e(c,s),l=!0,a._container=s,s.__vue_app__=a,__VUE_PROD_DEVTOOLS__,c.component.proxy}},unmount(){l&&(e(null,a._container),__VUE_PROD_DEVTOOLS__)},provide:(e,n)=>(o.provides[e]=n,a)};return a}}const Ot={scheduler:Sn,allowRecurse:!0},kt=function(e,n){n&&n.pendingBranch?x(e)?n.effects.push(...e):n.effects.push(e):On(e,_n,gn,yn)},wt=(e,n,t,r)=>{if(x(e))return void e.forEach(((e,o)=>wt(e,n&&(x(n)?n[o]:n),t,r)));let o;o=!r||r.type.__asyncLoader?null:4&r.shapeFlag?r.component.exposed||r.component.proxy:r.el;const{i:s,r:l}=e,a=n&&n.r,i=s.refs===u?s.refs={}:s.refs,c=s.setupState;if(null!=a&&a!==l&&(k(a)?(i[a]=null,b(c,a)&&(c[a]=null)):Qe(a)&&(a.value=null)),k(l)){const e=()=>{i[l]=o,b(c,l)&&(c[l]=o)};o?(e.id=-1,kt(e,t)):e()}else if(Qe(l)){const e=()=>{l.value=o};o?(e.id=-1,kt(e,t)):e()}else O(l)&&on(l,s,12,[o,i])};function Et(e){return function(e,n){\"boolean\"!=typeof __VUE_OPTIONS_API__&&(z().__VUE_OPTIONS_API__=!0),\"boolean\"!=typeof __VUE_PROD_DEVTOOLS__&&(z().__VUE_PROD_DEVTOOLS__=!1);const{insert:t,remove:r,patchProp:o,forcePatchProp:s,createElement:l,createText:a,createComment:i,setText:c,setElementText:f,parentNode:h,nextSibling:g,setScopeId:_=p,cloneNode:m,insertStaticContent:v}=e,x=(e,n,t,r=null,o=null,s=null,l=!1,a=!1)=>{e&&!Bt(e,n)&&(r=le(e),Q(e,o,s,!0),e=null),-2===n.patchFlag&&(a=!1,n.dynamicChildren=null);const{type:i,ref:c,shapeFlag:u}=n;switch(i){case jt:S(e,n,t,r);break;case Rt:C(e,n,t,r);break;case It:null==e&&O(n,t,r,l);break;case Ft:I(e,n,t,r,o,s,l,a);break;default:1&u?E(e,n,t,r,o,s,l,a):6&u?M(e,n,t,r,o,s,l,a):(64&u||128&u)&&i.process(e,n,t,r,o,s,l,a,ce)}null!=c&&o&&wt(c,e&&e.ref,s,n)},S=(e,n,r,o)=>{if(null==e)t(n.el=a(n.children),r,o);else{const t=n.el=e.el;n.children!==e.children&&c(t,n.children)}},C=(e,n,r,o)=>{null==e?t(n.el=i(n.children||\"\"),r,o):n.el=e.el},O=(e,n,t,r)=>{[e.el,e.anchor]=v(e.children,n,t,r)},k=({el:e,anchor:n},r,o)=>{let s;for(;e&&e!==n;)s=g(e),t(e,r,o),e=s;t(n,r,o)},w=({el:e,anchor:n})=>{let t;for(;e&&e!==n;)t=g(e),r(e),e=t;r(n)},E=(e,n,t,r,o,s,l,a)=>{l=l||\"svg\"===n.type,null==e?U(n,t,r,o,s,l,a):N(e,n,o,s,l,a)},U=(e,n,r,s,a,i,c)=>{let u,d;const{type:p,props:h,shapeFlag:g,transition:_,scopeId:y,patchFlag:v,dirs:b}=e;if(e.el&&void 0!==m&&-1===v)u=e.el=m(e.el);else{if(u=e.el=l(e.type,i,h&&h.is),8&g?f(u,e.children):16&g&&T(e.children,u,null,s,a,i&&\"foreignObject\"!==p,c||!!e.dynamicChildren),b&&bt(e,null,s,\"created\"),h){for(const n in h)V(n)||o(u,n,null,h[n],i,e.children,s,a,re);(d=h.onVnodeBeforeMount)&&At(d,s,e)}P(u,y,e,s)}__VUE_PROD_DEVTOOLS__&&(Object.defineProperty(u,\"__vnode\",{value:e,enumerable:!1}),Object.defineProperty(u,\"__vueParentComponent\",{value:s,enumerable:!1})),b&&bt(e,null,s,\"beforeMount\");const x=(!a||a&&!a.pendingBranch)&&_&&!_.persisted;x&&_.beforeEnter(u),t(u,n,r),((d=h&&h.onVnodeMounted)||x||b)&&kt((()=>{d&&At(d,s,e),x&&_.enter(u),b&&bt(e,null,s,\"mounted\")}),a)},P=(e,n,t,r)=>{if(n&&_(e,n),r){const o=r.type.__scopeId;o&&o!==n&&_(e,o+\"-s\"),t===r.subTree&&P(e,r.vnode.scopeId,r.vnode,r.parent)}},T=(e,n,t,r,o,s,l,a=0)=>{for(let i=a;i<e.length;i++){const a=e[i]=l?Yt(e[i]):Xt(e[i]);x(null,a,n,t,r,o,s,l)}},N=(e,n,t,r,l,a)=>{const i=n.el=e.el;let{patchFlag:c,dynamicChildren:d,dirs:p}=n;c|=16&e.patchFlag;const h=e.props||u,g=n.props||u;let _;if((_=g.onVnodeBeforeUpdate)&&At(_,t,n,e),p&&bt(n,e,t,\"beforeUpdate\"),c>0){if(16&c)j(i,n,h,g,t,r,l);else if(2&c&&h.class!==g.class&&o(i,\"class\",null,g.class,l),4&c&&o(i,\"style\",h.style,g.style,l),8&c){const a=n.dynamicProps;for(let n=0;n<a.length;n++){const c=a[n],u=h[c],d=g[c];(d!==u||s&&s(i,c))&&o(i,c,u,d,l,e.children,t,r,re)}}1&c&&e.children!==n.children&&f(i,n.children)}else a||null!=d||j(i,n,h,g,t,r,l);const y=l&&\"foreignObject\"!==n.type;d?F(e.dynamicChildren,d,i,t,r,y):a||H(e,n,i,null,t,r,y),((_=g.onVnodeUpdated)||p)&&kt((()=>{_&&At(_,t,n,e),p&&bt(n,e,t,\"updated\")}),r)},F=(e,n,t,r,o,s)=>{for(let l=0;l<n.length;l++){const a=e[l],i=n[l],c=a.type===Ft||!Bt(a,i)||6&a.shapeFlag||64&a.shapeFlag?h(a.el):t;x(a,i,c,null,r,o,s,!0)}},j=(e,n,t,r,l,a,i)=>{if(t!==r){for(const c in r){if(V(c))continue;const u=r[c],d=t[c];(u!==d||s&&s(e,c))&&o(e,c,d,u,i,n.children,l,a,re)}if(t!==u)for(const s in t)V(s)||s in r||o(e,s,t[s],null,i,n.children,l,a,re)}},I=(e,n,r,o,s,l,i,c)=>{const u=n.el=e?e.el:a(\"\"),d=n.anchor=e?e.anchor:a(\"\");let{patchFlag:p,dynamicChildren:f}=n;p>0&&(c=!0),null==e?(t(u,r,o),t(d,r,o),T(n.children,r,d,s,l,i,c)):p>0&&64&p&&f?(F(e.dynamicChildren,f,r,s,l,i),(null!=n.key||s&&n===s.subTree)&&Ut(e,n,!0)):H(e,n,r,d,s,l,i,c)},M=(e,n,t,r,o,s,l,a)=>{null==e?512&n.shapeFlag?o.ctx.activate(n,t,r,l,a):D(n,t,r,o,s,l,a):$(e,n,a)},D=(e,n,t,r,o,s,l)=>{const a=e.component=function(e,n,t){const r=e.type,o=(n?n.appContext:e.appContext)||gr,s={uid:_r++,vnode:e,type:r,parent:n,appContext:o,root:null,next:null,subTree:null,update:null,render:null,proxy:null,exposed:null,withProxy:null,effects:null,provides:n?n.provides:Object.create(o.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Wn(r,o),emitsOptions:Pn(r,o),emit:null,emitted:null,ctx:u,data:u,props:u,attrs:u,slots:u,refs:u,setupState:u,setupContext:null,suspense:t,suspenseId:t?t.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null};s.ctx={_:s},s.root=n?n.root:s,s.emit=Un.bind(null,s),__VUE_PROD_DEVTOOLS__;return s}(e,r,o);if(dt(e)&&(a.ctx.renderer=ce),function(e,n=!1){vr=n;const{props:t,children:r,shapeFlag:o}=e.vnode,s=4&o;Ln(e,t,s,n),((e,n)=>{if(32&e.vnode.shapeFlag){const t=n._;t?(e.slots=n,q(n,\"_\",t)):yt(n,e.slots={})}else e.slots={},n&&mt(e,n);q(e.slots,Wt,1)})(e,r);const l=s?function(e,n){const t=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,fr);const{setup:r}=t;if(r){const t=e.setupContext=r.length>1?function(e){const n=n=>{e.exposed=nn(n)};return{attrs:e.attrs,slots:e.slots,emit:e.emit,expose:n}}(e):null;yr=e,oe();const o=on(r,e,0,[e.props,t]);if(se(),yr=null,A(o)){if(n)return o.then((n=>{br(e,n)}));e.asyncDep=o}else br(e,o)}else xr(e)}(e,n):void 0;vr=!1}(a),a.asyncDep){if(o&&o.registerDep(a,B),!e.el){const e=a.subTree=Jt(Rt);C(null,e,n,t)}}else B(a,e,n,t,o,s,l)},$=(e,n,t)=>{const r=n.component=e.component;if(function(e,n,t){const{props:r,children:o,component:s}=e,{props:l,children:a,patchFlag:i}=n,c=s.emitsOptions;if(n.dirs||n.transition)return!0;if(!(t&&i>=0))return!(!o&&!a||a&&a.$stable)||r!==l&&(r?!l||Kn(r,l,c):!!l);if(1024&i)return!0;if(16&i)return r?Kn(r,l,c):!!l;if(8&i){const e=n.dynamicProps;for(let n=0;n<e.length;n++){const t=e[n];if(l[t]!==r[t]&&!Tn(c,t))return!0}}return!1}(e,n,t)){if(r.asyncDep&&!r.asyncResolved)return void W(r,n,t);r.next=n,function(e){const n=un.indexOf(e);n>-1&&un.splice(n,1)}(r.update),r.update()}else n.component=e.component,n.el=e.el,r.vnode=n},B=(e,n,t,r,o,s,l)=>{e.update=X((function(){if(e.isMounted){let n,{next:t,bu:r,u:a,parent:i,vnode:c}=e,u=t;t?(t.el=c.el,W(e,t,l)):t=c,r&&L(r),(n=t.props&&t.props.onVnodeBeforeUpdate)&&At(n,i,t,c);const d=Fn(e),p=e.subTree;e.subTree=d,x(p,d,h(p.el),le(p),e,o,s),t.el=d.el,null===u&&function({vnode:e,parent:n},t){for(;n&&n.subTree===e;)(e=n.vnode).el=t,n=n.parent}(e,d.el),a&&kt(a,o),(n=t.props&&t.props.onVnodeUpdated)&&kt((()=>{At(n,i,t,c)}),o),__VUE_PROD_DEVTOOLS__}else{let l;const{el:a,props:i}=n,{bm:c,m:u,parent:d}=e;c&&L(c),(l=i&&i.onVnodeBeforeMount)&&At(l,d,n);const p=e.subTree=Fn(e);a&&de?de(n.el,p,e,o):(x(null,p,t,r,e,o,s),n.el=p.el),u&&kt(u,o),(l=i&&i.onVnodeMounted)&&kt((()=>{At(l,d,n)}),o);const{a:f}=e;f&&256&n.shapeFlag&&kt(f,o),e.isMounted=!0}}),Ot)},W=(e,n,t)=>{n.component=e;const r=e.vnode.props;e.vnode=n,e.next=null,function(e,n,t,r){const{props:o,attrs:s,vnode:{patchFlag:l}}=e,a=Ge(o),[i]=e.propsOptions;if(!(r||l>0)||16&l){let r;qn(e,n,o,s);for(const s in a)n&&(b(n,s)||(r=K(s))!==s&&b(n,r))||(i?!t||void 0===t[s]&&void 0===t[r]||(o[s]=Bn(i,n||u,s,void 0,e)):delete o[s]);if(s!==a)for(const e in s)n&&b(n,e)||delete s[e]}else if(8&l){const t=e.vnode.dynamicProps;for(let r=0;r<t.length;r++){const l=t[r],c=n[l];if(i)if(b(s,l))s[l]=c;else{const n=R(l);o[n]=Bn(i,a,n,c,e)}else s[l]=c}}ae(e,\"set\",\"$attrs\")}(e,n.props,r,t),((e,n)=>{const{vnode:t,slots:r}=e;let o=!0,s=u;if(32&t.shapeFlag){const e=n._;e?1===e?o=!1:y(r,n):(o=!n.$stable,yt(n,r)),s=n}else n&&(mt(e,n),s={default:1});if(o)for(const e in r)ht(e)||e in s||delete r[e]})(e,n.children),kn(void 0,e.update)},H=(e,n,t,r,o,s,l,a=!1)=>{const i=e&&e.children,c=e?e.shapeFlag:0,u=n.children,{patchFlag:d,shapeFlag:p}=n;if(d>0){if(128&d)return void G(i,u,t,r,o,s,l,a);if(256&d)return void J(i,u,t,r,o,s,l,a)}8&p?(16&c&&re(i,o,s),u!==i&&f(t,u)):16&c?16&p?G(i,u,t,r,o,s,l,a):re(i,o,s,!0):(8&c&&f(t,\"\"),16&p&&T(u,t,r,o,s,l,a))},J=(e,n,t,r,o,s,l,a)=>{n=n||d;const i=(e=e||d).length,c=n.length,u=Math.min(i,c);let p;for(p=0;p<u;p++){const r=n[p]=a?Yt(n[p]):Xt(n[p]);x(e[p],r,t,null,o,s,l,a)}i>c?re(e,o,s,!0,!1,u):T(n,t,r,o,s,l,a,u)},G=(e,n,t,r,o,s,l,a)=>{let i=0;const c=n.length;let u=e.length-1,p=c-1;for(;i<=u&&i<=p;){const r=e[i],c=n[i]=a?Yt(n[i]):Xt(n[i]);if(!Bt(r,c))break;x(r,c,t,null,o,s,l,a),i++}for(;i<=u&&i<=p;){const r=e[u],i=n[p]=a?Yt(n[p]):Xt(n[p]);if(!Bt(r,i))break;x(r,i,t,null,o,s,l,a),u--,p--}if(i>u){if(i<=p){const e=p+1,u=e<c?n[e].el:r;for(;i<=p;)x(null,n[i]=a?Yt(n[i]):Xt(n[i]),t,u,o,s,l),i++}}else if(i>p)for(;i<=u;)Q(e[i],o,s,!0),i++;else{const f=i,h=i,g=new Map;for(i=h;i<=p;i++){const e=n[i]=a?Yt(n[i]):Xt(n[i]);null!=e.key&&g.set(e.key,i)}let _,y=0;const m=p-h+1;let v=!1,b=0;const S=new Array(m);for(i=0;i<m;i++)S[i]=0;for(i=f;i<=u;i++){const r=e[i];if(y>=m){Q(r,o,s,!0);continue}let c;if(null!=r.key)c=g.get(r.key);else for(_=h;_<=p;_++)if(0===S[_-h]&&Bt(r,n[_])){c=_;break}void 0===c?Q(r,o,s,!0):(S[c-h]=i+1,c>=b?b=c:v=!0,x(r,n[c],t,null,o,s,l,a),y++)}const C=v?function(e){const n=e.slice(),t=[0];let r,o,s,l,a;const i=e.length;for(r=0;r<i;r++){const i=e[r];if(0!==i){if(o=t[t.length-1],e[o]<i){n[r]=o,t.push(r);continue}for(s=0,l=t.length-1;s<l;)a=(s+l)/2|0,e[t[a]]<i?s=a+1:l=a;i<e[t[s]]&&(s>0&&(n[r]=t[s-1]),t[s]=r)}}s=t.length,l=t[s-1];for(;s-- >0;)t[s]=l,l=n[l];return t}(S):d;for(_=C.length-1,i=m-1;i>=0;i--){const e=h+i,a=n[e],u=e+1<c?n[e+1].el:r;0===S[i]?x(null,a,t,u,o,s,l):v&&(_<0||i!==C[_]?Z(a,t,u,2):_--)}}},Z=(e,n,r,o,s=null)=>{const{el:l,type:a,transition:i,children:c,shapeFlag:u}=e;if(6&u)return void Z(e.component.subTree,n,r,o);if(128&u)return void e.suspense.move(n,r,o);if(64&u)return void a.move(e,n,r,ce);if(a===Ft){t(l,n,r);for(let e=0;e<c.length;e++)Z(c[e],n,r,o);return void t(e.anchor,n,r)}if(a===It)return void k(e,n,r);if(2!==o&&1&u&&i)if(0===o)i.beforeEnter(l),t(l,n,r),kt((()=>i.enter(l)),s);else{const{leave:e,delayLeave:o,afterLeave:s}=i,a=()=>t(l,n,r),c=()=>{e(l,(()=>{a(),s&&s()}))};o?o(l,a,c):c()}else t(l,n,r)},Q=(e,n,t,r=!1,o=!1)=>{const{type:s,props:l,ref:a,children:i,dynamicChildren:c,shapeFlag:u,patchFlag:d,dirs:p}=e;if(null!=a&&wt(a,null,t,null),256&u)return void n.ctx.deactivate(e);const f=1&u&&p;let h;if((h=l&&l.onVnodeBeforeUnmount)&&At(h,n,e),6&u)te(e.component,t,r);else{if(128&u)return void e.suspense.unmount(t,r);f&&bt(e,null,n,\"beforeUnmount\"),c&&(s!==Ft||d>0&&64&d)?re(c,n,t,!1,!0):(s===Ft&&(128&d||256&d)||!o&&16&u)&&re(i,n,t),64&u&&(r||!Pt(e.props))&&e.type.remove(e,ce),r&&ee(e)}((h=l&&l.onVnodeUnmounted)||f)&&kt((()=>{h&&At(h,n,e),f&&bt(e,null,n,\"unmounted\")}),t)},ee=e=>{const{type:n,el:t,anchor:o,transition:s}=e;if(n===Ft)return void ne(t,o);if(n===It)return void w(e);const l=()=>{r(t),s&&!s.persisted&&s.afterLeave&&s.afterLeave()};if(1&e.shapeFlag&&s&&!s.persisted){const{leave:n,delayLeave:r}=s,o=()=>n(t,l);r?r(e.el,l,o):o()}else l()},ne=(e,n)=>{let t;for(;e!==n;)t=g(e),r(e),e=t;r(n)},te=(e,n,t)=>{const{bum:r,effects:o,update:s,subTree:l,um:a}=e;if(r&&L(r),o)for(let e=0;e<o.length;e++)Y(o[e]);s&&(Y(s),Q(l,e,n,t)),a&&kt(a,n),kt((()=>{e.isUnmounted=!0}),n),n&&n.pendingBranch&&!n.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===n.pendingId&&(n.deps--,0===n.deps&&n.resolve()),__VUE_PROD_DEVTOOLS__},re=(e,n,t,r=!1,o=!1,s=0)=>{for(let l=s;l<e.length;l++)Q(e[l],n,t,r,o)},le=e=>6&e.shapeFlag?le(e.component.subTree):128&e.shapeFlag?e.suspense.next():g(e.anchor||e.el),ie=(e,n)=>{null==e?n._vnode&&Q(n._vnode,null,null,!0):x(n._vnode||null,e,n),wn(),n._vnode=e},ce={p:x,um:Q,m:Z,r:ee,mt:D,mc:T,pc:H,pbc:F,n:le,o:e};let ue,de;n&&([ue,de]=n(ce));return{render:ie,hydrate:ue,createApp:Ct(ie,ue)}}(e)}function At(e,n,t,r=null){sn(e,n,7,[t,r])}function Ut(e,n,t=!1){const r=e.children,o=n.children;if(x(r)&&x(o))for(let e=0;e<r.length;e++){const n=r[e];let s=o[e];1&s.shapeFlag&&!s.dynamicChildren&&((s.patchFlag<=0||32===s.patchFlag)&&(s=o[e]=Yt(o[e]),s.el=n.el),t||Ut(n,s))}}const Pt=e=>e&&(e.disabled||\"\"===e.disabled);function Tt(e){return function(e,n,t=!0){const r=Nn||yr;if(r){const t=r.type;if(\"components\"===e){if(\"_self\"===n)return t;const e=t.displayName||t.name;if(e&&(e===n||e===R(n)||e===M(R(n))))return t}return Vt(r[e]||t[e],n)||Vt(r.appContext[e],n)}}(\"components\",e)||e}const Nt=Symbol();function Vt(e,n){return e&&(e[n]||e[R(n)]||e[M(R(n))])}const Ft=Symbol(void 0),jt=Symbol(void 0),Rt=Symbol(void 0),It=Symbol(void 0),Kt=[];let Mt=null;function Dt(e=!1){Kt.push(Mt=e?null:[])}function $t(){Kt.pop(),Mt=Kt[Kt.length-1]||null}function Lt(e,n,t,r,o){const s=Jt(e,n,t,r,o,!0);return s.dynamicChildren=Mt||d,$t(),Mt&&Mt.push(s),s}function qt(e){return!!e&&!0===e.__v_isVNode}function Bt(e,n){return e.type===n.type&&e.key===n.key}const Wt=\"__vInternal\",zt=({key:e})=>null!=e?e:null,Ht=({ref:e})=>null!=e?k(e)||Qe(e)||O(e)?{i:Nn,r:e}:e:null,Jt=function(e,n=null,t=null,o=0,s=null,l=!1){e&&e!==Nt||(e=Rt);if(qt(e)){const r=Gt(e,n,!0);return t&&er(r,t),r}i=e,O(i)&&\"__vccOpts\"in i&&(e=e.__vccOpts);var i;if(n){(Je(n)||Wt in n)&&(n=y({},n));let{class:e,style:t}=n;e&&!k(e)&&(n.class=a(e)),E(t)&&(Je(t)&&!x(t)&&(t=y({},t)),n.style=r(t))}const c=k(e)?1:(e=>e.__isSuspense)(e)?128:(e=>e.__isTeleport)(e)?64:E(e)?4:O(e)?2:0,u={__v_isVNode:!0,__v_skip:!0,type:e,props:n,key:n&&zt(n),ref:n&&Ht(n),scopeId:null,children:null,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:c,patchFlag:o,dynamicProps:s,dynamicChildren:null,appContext:null};if(er(u,t),128&c){const{content:e,fallback:n}=function(e){const{shapeFlag:n,children:t}=e;let r,o;return 32&n?(r=Mn(t.default),o=Mn(t.fallback)):(r=Mn(t),o=Xt(null)),{content:r,fallback:o}}(u);u.ssContent=e,u.ssFallback=n}!l&&Mt&&(o>0||6&c)&&32!==o&&Mt.push(u);return u};function Gt(e,n,t=!1){const{props:o,ref:s,patchFlag:l}=e,i=n?function(...e){const n=y({},e[0]);for(let t=1;t<e.length;t++){const o=e[t];for(const e in o)if(\"class\"===e)n.class!==o.class&&(n.class=a([n.class,o.class]));else if(\"style\"===e)n.style=r([n.style,o.style]);else if(g(e)){const t=n[e],r=o[e];t!==r&&(n[e]=t?[].concat(t,o[e]):r)}else\"\"!==e&&(n[e]=o[e])}return n}(o||{},n):o;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:i,key:i&&zt(i),ref:n&&n.ref?t&&s?x(s)?s.concat(Ht(n)):[s,Ht(n)]:Ht(n):s,scopeId:e.scopeId,children:e.children,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:n&&e.type!==Ft?-1===l?16:16|l:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Gt(e.ssContent),ssFallback:e.ssFallback&&Gt(e.ssFallback),el:e.el,anchor:e.anchor}}function Zt(e=\" \",n=0){return Jt(jt,null,e,n)}function Qt(e=\"\",n=!1){return n?(Dt(),Lt(Rt,null,e)):Jt(Rt,null,e)}function Xt(e){return null==e||\"boolean\"==typeof e?Jt(Rt):x(e)?Jt(Ft,null,e):\"object\"==typeof e?null===e.el?e:Gt(e):Jt(jt,null,String(e))}function Yt(e){return null===e.el?e:Gt(e)}function er(e,n){let t=0;const{shapeFlag:r}=e;if(null==n)n=null;else if(x(n))t=16;else if(\"object\"==typeof n){if(1&r||64&r){const t=n.default;return void(t&&(t._c&&$n(1),er(e,t()),t._c&&$n(-1)))}{t=32;const r=n._;r||Wt in n?3===r&&Nn&&(1024&Nn.vnode.patchFlag?(n._=2,e.patchFlag|=1024):n._=1):n._ctx=Nn}}else O(n)?(n={default:n,_ctx:Nn},t=32):(n=String(n),64&r?(t=16,n=[Zt(n)]):t=8);e.children=n,e.shapeFlag|=t}function nr(e,n,t=!1){const r=yr||Nn;if(r){const o=null==r.parent?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(o&&e in o)return o[e];if(arguments.length>1)return t&&O(n)?n():n}}let tr=!1;function rr(e,n,t=[],r=[],o=[],s=!1){const{mixins:l,extends:a,data:i,computed:c,methods:d,watch:f,provide:h,inject:g,components:_,directives:m,beforeMount:v,mounted:b,beforeUpdate:S,updated:C,activated:k,deactivated:w,beforeDestroy:A,beforeUnmount:U,destroyed:P,unmounted:T,render:N,renderTracked:V,renderTriggered:F,errorCaptured:j,expose:R}=n,I=e.proxy,K=e.ctx,M=e.appContext.mixins;if(s&&N&&e.render===p&&(e.render=N),s||(tr=!0,or(\"beforeCreate\",\"bc\",n,e,M),tr=!1,ar(e,M,t,r,o)),a&&rr(e,a,t,r,o,!0),l&&ar(e,l,t,r,o),g)if(x(g))for(let e=0;e<g.length;e++){const n=g[e];K[n]=nr(n)}else for(const e in g){const n=g[e];E(n)?K[e]=nr(n.from||e,n.default,!0):K[e]=nr(n)}if(d)for(const e in d){const n=d[e];O(n)&&(K[e]=n.bind(I))}if(s?i&&t.push(i):(t.length&&t.forEach((n=>ir(e,n,I))),i&&ir(e,i,I)),c)for(const e in c){const n=c[e],t=Cr({get:O(n)?n.bind(I,I):O(n.get)?n.get.bind(I,I):p,set:!O(n)&&O(n.set)?n.set.bind(I):p});Object.defineProperty(K,e,{enumerable:!0,configurable:!0,get:()=>t.value,set:e=>t.value=e})}var D;if(f&&r.push(f),!s&&r.length&&r.forEach((e=>{for(const n in e)cr(e[n],K,I,n)})),h&&o.push(h),!s&&o.length&&o.forEach((e=>{const n=O(e)?e.call(I):e;Reflect.ownKeys(n).forEach((e=>{!function(e,n){if(yr){let t=yr.provides;const r=yr.parent&&yr.parent.provides;r===t&&(t=yr.provides=Object.create(r)),t[e]=n}}(e,n[e])}))})),s&&(_&&y(e.components||(e.components=y({},e.type.components)),_),m&&y(e.directives||(e.directives=y({},e.type.directives)),m)),s||or(\"created\",\"c\",n,e,M),v&&Xn(v.bind(I)),b&&Yn(b.bind(I)),S&&et(S.bind(I)),C&&nt(C.bind(I)),k&&pt(k.bind(I),\"a\",D),w&&function(e,n){pt(e,\"da\",n)}(w.bind(I)),j&&((e,n=yr)=>{Zn(\"ec\",e,n)})(j.bind(I)),V&&st(V.bind(I)),F&&ot(F.bind(I)),U&&tt(U.bind(I)),T&&rt(T.bind(I)),x(R)&&!s)if(R.length){const n=e.exposed||(e.exposed=nn({}));R.forEach((e=>{n[e]=function(e,n){return Qe(e[n])?e[n]:new tn(e,n)}(I,e)}))}else e.exposed||(e.exposed=u)}function or(e,n,t,r,o){lr(e,n,o,r);const{extends:s,mixins:l}=t;s&&sr(e,n,s,r),l&&lr(e,n,l,r);const a=t[e];a&&sn(a.bind(r.proxy),r,n)}function sr(e,n,t,r){t.extends&&sr(e,n,t.extends,r);const o=t[e];o&&sn(o.bind(r.proxy),r,n)}function lr(e,n,t,r){for(let o=0;o<t.length;o++){const s=t[o].mixins;s&&lr(e,n,s,r);const l=t[o][e];l&&sn(l.bind(r.proxy),r,n)}}function ar(e,n,t,r,o){for(let s=0;s<n.length;s++)rr(e,n[s],t,r,o,!0)}function ir(e,n,t){const r=n.call(t,t);E(r)&&(e.data===u?e.data=qe(r):y(e.data,r))}function cr(e,n,t,r){const o=r.includes(\".\")?function(e,n){const t=n.split(\".\");return()=>{let n=e;for(let e=0;e<t.length&&n;e++)n=n[t[e]];return n}}(t,r):()=>t[r];if(k(e)){const t=n[e];O(t)&&at(o,t)}else if(O(e))at(o,e.bind(t));else if(E(e))if(x(e))e.forEach((e=>cr(e,n,t,r)));else{const r=O(e.handler)?e.handler.bind(t):n[e.handler];O(r)&&at(o,r,e)}}function ur(e,n,t){const r=t.appContext.config.optionMergeStrategies,{mixins:o,extends:s}=n;s&&ur(e,s,t),o&&o.forEach((n=>ur(e,n,t)));for(const o in n)r&&b(r,o)?e[o]=r[o](e[o],n[o],t.proxy,o):e[o]=n[o]}const dr=e=>e&&(e.proxy?e.proxy:dr(e.parent)),pr=y(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>dr(e.parent),$root:e=>e.root&&e.root.proxy,$emit:e=>e.emit,$options:e=>__VUE_OPTIONS_API__?function(e){const n=e.type,{__merged:t,mixins:r,extends:o}=n;if(t)return t;const s=e.appContext.mixins;if(!s.length&&!r&&!o)return n;const l={};return s.forEach((n=>ur(l,n,e))),ur(l,n,e),n.__merged=l}(e):e.type,$forceUpdate:e=>()=>Sn(e.update),$nextTick:e=>xn.bind(e.proxy),$watch:e=>__VUE_OPTIONS_API__?ct.bind(e):p}),fr={get({_:e},n){const{ctx:t,setupState:r,data:o,props:s,accessCache:l,type:a,appContext:i}=e;if(\"__v_skip\"===n)return!0;let c;if(\"$\"!==n[0]){const a=l[n];if(void 0!==a)switch(a){case 0:return r[n];case 1:return o[n];case 3:return t[n];case 2:return s[n]}else{if(r!==u&&b(r,n))return l[n]=0,r[n];if(o!==u&&b(o,n))return l[n]=1,o[n];if((c=e.propsOptions[0])&&b(c,n))return l[n]=2,s[n];if(t!==u&&b(t,n))return l[n]=3,t[n];__VUE_OPTIONS_API__&&tr||(l[n]=4)}}const d=pr[n];let p,f;return d?(\"$attrs\"===n&&le(e,0,n),d(e)):(p=a.__cssModules)&&(p=p[n])?p:t!==u&&b(t,n)?(l[n]=3,t[n]):(f=i.config.globalProperties,b(f,n)?f[n]:void 0)},set({_:e},n,t){const{data:r,setupState:o,ctx:s}=e;if(o!==u&&b(o,n))o[n]=t;else if(r!==u&&b(r,n))r[n]=t;else if(n in e.props)return!1;return(\"$\"!==n[0]||!(n.slice(1)in e))&&(s[n]=t,!0)},has({_:{data:e,setupState:n,accessCache:t,ctx:r,appContext:o,propsOptions:s}},l){let a;return void 0!==t[l]||e!==u&&b(e,l)||n!==u&&b(n,l)||(a=s[0])&&b(a,l)||b(r,l)||b(pr,l)||b(o.config.globalProperties,l)}},hr=y({},fr,{get(e,n){if(n!==Symbol.unscopables)return fr.get(e,n,e)},has:(e,t)=>\"_\"!==t[0]&&!n(t)}),gr=xt();let _r=0;let yr=null;const mr=e=>{yr=e};let vr=!1;function br(e,n,t){O(n)?e.render=n:E(n)&&(__VUE_PROD_DEVTOOLS__&&(e.devtoolsRawSetupState=n),e.setupState=nn(n)),xr(e)}function xr(e,n){const t=e.type;e.render||(e.render=t.render||p,e.render._rc&&(e.withProxy=new Proxy(e.ctx,hr))),__VUE_OPTIONS_API__&&(yr=e,oe(),rr(e,t),se(),yr=null)}function Sr(e,n=yr){n&&(n.effects||(n.effects=[])).push(e)}function Cr(e){const n=function(e){let n,t;return O(e)?(n=e,t=p):(n=e.get,t=e.set),new rn(n,t,O(e)||!e.set)}(e);return Sr(n.effect),n}function Or(e,n){let t;if(x(e)||k(e)){t=new Array(e.length);for(let r=0,o=e.length;r<o;r++)t[r]=n(e[r],r)}else if(\"number\"==typeof e){t=new Array(e);for(let r=0;r<e;r++)t[r]=n(r+1,r)}else if(E(e))if(e[Symbol.iterator])t=Array.from(e,n);else{const r=Object.keys(e);t=new Array(r.length);for(let o=0,s=r.length;o<s;o++){const s=r[o];t[o]=n(e[s],s,o)}}else t=[];return t}const kr=\"3.0.4\",wr=\"http://www.w3.org/2000/svg\",Er=\"undefined\"!=typeof document?document:null;let Ar,Ur;const Pr={insert:(e,n,t)=>{n.insertBefore(e,t||null)},remove:e=>{const n=e.parentNode;n&&n.removeChild(e)},createElement:(e,n,t)=>n?Er.createElementNS(wr,e):Er.createElement(e,t?{is:t}:void 0),createText:e=>Er.createTextNode(e),createComment:e=>Er.createComment(e),setText:(e,n)=>{e.nodeValue=n},setElementText:(e,n)=>{e.textContent=n},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Er.querySelector(e),setScopeId(e,n){e.setAttribute(n,\"\")},cloneNode:e=>e.cloneNode(!0),insertStaticContent(e,n,t,r){const o=r?Ur||(Ur=Er.createElementNS(wr,\"svg\")):Ar||(Ar=Er.createElement(\"div\"));o.innerHTML=e;const s=o.firstChild;let l=s,a=l;for(;l;)a=l,Pr.insert(l,n,t),l=o.firstChild;return[s,a]}};const Tr=/\\s*!important$/;function Nr(e,n,t){if(x(t))t.forEach((t=>Nr(e,n,t)));else if(n.startsWith(\"--\"))e.setProperty(n,t);else{const r=function(e,n){const t=Fr[n];if(t)return t;let r=R(n);if(\"filter\"!==r&&r in e)return Fr[n]=r;r=M(r);for(let t=0;t<Vr.length;t++){const o=Vr[t]+r;if(o in e)return Fr[n]=o}return n}(e,n);Tr.test(t)?e.setProperty(K(r),t.replace(Tr,\"\"),\"important\"):e[r]=t}}const Vr=[\"Webkit\",\"Moz\",\"ms\"],Fr={};const jr=\"http://www.w3.org/1999/xlink\";let Rr=Date.now;\"undefined\"!=typeof document&&Rr()>document.createEvent(\"Event\").timeStamp&&(Rr=()=>performance.now());let Ir=0;const Kr=Promise.resolve(),Mr=()=>{Ir=0};function Dr(e,n,t,r,o=null){const s=e._vei||(e._vei={}),l=s[n];if(r&&l)l.value=r;else{const[t,a]=function(e){let n;if($r.test(e)){let t;for(n={};t=e.match($r);)e=e.slice(0,e.length-t[0].length),n[t[0].toLowerCase()]=!0}return[e.slice(2).toLowerCase(),n]}(n);if(r){!function(e,n,t,r){e.addEventListener(n,t,r)}(e,t,s[n]=function(e,n){const t=e=>{(e.timeStamp||Rr())>=t.attached-1&&sn(function(e,n){if(x(n)){const t=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{t.call(e),e._stopped=!0},n.map((e=>n=>!n._stopped&&e(n)))}return n}(e,t.value),n,5,[e])};return t.value=e,t.attached=(()=>Ir||(Kr.then(Mr),Ir=Rr()))(),t}(r,o),a)}else l&&(!function(e,n,t,r){e.removeEventListener(n,t,r)}(e,t,l,a),s[n]=void 0)}}const $r=/(?:Once|Passive|Capture)$/;const Lr=/^on[a-z]/;const qr={beforeMount(e,{value:n},{transition:t}){e._vod=\"none\"===e.style.display?\"\":e.style.display,t&&n?t.beforeEnter(e):Br(e,n)},mounted(e,{value:n},{transition:t}){t&&n&&t.enter(e)},updated(e,{value:n,oldValue:t},{transition:r}){r&&n!==t?n?(r.beforeEnter(e),Br(e,!0),r.enter(e)):r.leave(e,(()=>{Br(e,!1)})):Br(e,n)},beforeUnmount(e,{value:n}){Br(e,n)}};function Br(e,n){e.style.display=n?e._vod:\"none\"}const Wr=y({patchProp:(e,n,r,o,s=!1,l,a,i,c)=>{switch(n){case\"class\":!function(e,n,t){if(null==n&&(n=\"\"),t)e.setAttribute(\"class\",n);else{const t=e._vtc;t&&(n=(n?[n,...t]:[...t]).join(\" \")),e.className=n}}(e,o,s);break;case\"style\":!function(e,n,t){const r=e.style;if(t)if(k(t))n!==t&&(r.cssText=t);else{for(const e in t)Nr(r,e,t[e]);if(n&&!k(n))for(const e in n)null==t[e]&&Nr(r,e,\"\")}else e.removeAttribute(\"style\")}(e,r,o);break;default:g(n)?_(n)||Dr(e,n,0,o,a):function(e,n,t,r){if(r)return\"innerHTML\"===n||!!(n in e&&Lr.test(n)&&O(t));if(\"spellcheck\"===n||\"draggable\"===n)return!1;if(\"form\"===n&&\"string\"==typeof t)return!1;if(\"list\"===n&&\"INPUT\"===e.tagName)return!1;if(Lr.test(n)&&k(t))return!1;return n in e}(e,n,o,s)?function(e,n,t,r,o,s,l){if(\"innerHTML\"===n||\"textContent\"===n)return r&&l(r,o,s),void(e[n]=null==t?\"\":t);if(\"value\"!==n||\"PROGRESS\"===e.tagName){if(\"\"===t||null==t){const r=typeof e[n];if(\"\"===t&&\"boolean\"===r)return void(e[n]=!0);if(null==t&&\"string\"===r)return e[n]=\"\",void e.removeAttribute(n);if(\"number\"===r)return e[n]=0,void e.removeAttribute(n)}try{e[n]=t}catch(e){}}else{e._value=t;const n=null==t?\"\":t;e.value!==n&&(e.value=n)}}(e,n,o,l,a,i,c):(\"true-value\"===n?e._trueValue=o:\"false-value\"===n&&(e._falseValue=o),function(e,n,r,o){if(o&&n.startsWith(\"xlink:\"))null==r?e.removeAttributeNS(jr,n.slice(6,n.length)):e.setAttributeNS(jr,n,r);else{const o=t(n);null==r||o&&!1===r?e.removeAttribute(n):e.setAttribute(n,o?\"\":r)}}(e,n,o,s))}},forcePatchProp:(e,n)=>\"value\"===n},Pr);let zr;function Hr(){return zr||(zr=Et(Wr))}const Jr=(...e)=>{const n=Hr().createApp(...e),{mount:t}=n;return n.mount=e=>{const r=function(e){if(k(e)){return document.querySelector(e)}return e}(e);if(!r)return;const o=n._component;O(o)||o.render||o.template||(o.template=r.innerHTML),r.innerHTML=\"\";const s=t(r);return r.removeAttribute(\"v-cloak\"),r.setAttribute(\"data-v-app\",\"\"),s},n};const Gr=(...e)=>Object.prototype.toString.call(...e).slice(8,-1);var Zr={props:{data:{required:!0,validator:e=>\"Null\"===Gr(e)},name:{required:!0,type:String}}};const Qr={class:\"null\"},Xr={class:\"key\"},Yr={key:0,class:\"separator\"},eo=Jt(\"span\",{class:\"value\"},\"null\",-1);Zr.render=function(e,n,t,r,o,s){return Dt(),Lt(\"span\",Qr,[Jt(\"span\",Xr,i(t.name),1),\"\"!==t.name?(Dt(),Lt(\"span\",Yr,\": \")):Qt(\"v-if\",!0),eo])},Zr.__file=\"src/components/NullWrapper.vue\";var no={props:{data:{required:!0,validator:e=>\"Boolean\"===Gr(e)},name:{required:!0,type:String}}};const to={class:\"boolean\"},ro={class:\"key\"},oo={key:0,class:\"separator\"},so={class:\"value\"};no.render=function(e,n,t,r,o,s){return Dt(),Lt(\"span\",to,[Jt(\"span\",ro,i(t.name),1),\"\"!==t.name?(Dt(),Lt(\"span\",oo,\": \")):Qt(\"v-if\",!0),Jt(\"span\",so,i(t.data),1)])},no.__file=\"src/components/BooleanWrapper.vue\";var lo={props:{data:{required:!0,validator:e=>\"Number\"===Gr(e)},name:{required:!0,type:String}}};const ao={class:\"number\"},io={class:\"key\"},co={key:0,class:\"separator\"},uo={class:\"value\"};lo.render=function(e,n,t,r,o,s){return Dt(),Lt(\"span\",ao,[Jt(\"span\",io,i(t.name),1),\"\"!==t.name?(Dt(),Lt(\"span\",co,\": \")):Qt(\"v-if\",!0),Jt(\"span\",uo,i(t.data),1)])},lo.__file=\"src/components/NumberWrapper.vue\";var po={props:{data:{required:!0,validator:e=>\"String\"===Gr(e)},name:{required:!0,type:String}}};const fo={class:\"string\"},ho={class:\"key\"},go={key:0,class:\"separator\"},_o=Jt(\"span\",{class:\"quotes\"},'\"',-1),yo={class:\"value\"},mo=Jt(\"span\",{class:\"quotes\"},'\"',-1);po.render=function(e,n,t,r,o,s){return Dt(),Lt(\"span\",fo,[Jt(\"span\",ho,i(t.name),1),\"\"!==t.name?(Dt(),Lt(\"span\",go,\": \")):Qt(\"v-if\",!0),_o,Jt(\"span\",yo,i(t.data),1),mo])},po.__file=\"src/components/StringWrapper.vue\";const vo=new Set;function bo(e={collapseSignal:collapseSignal,expandSignal:expandSignal}){const n=Xe(!1),t=Xe(!1),r=()=>{n.value=!1,t.value=!t.value};at((()=>e.collapseSignal),r);const o=Xe(!1),s=()=>{n.value=!0,o.value=!o.value};at((()=>e.expandSignal),s);return at((()=>e.data),(()=>{e.expandOnCreatedAndUpdated(e.path)?s():r()}),{immediate:!0}),{isExpanding:n,innerCollapseSignal:t,innerExpandSignal:o,handleClick:e=>{vo.clear(),!0===e.metaKey&&!0===e.shiftKey?r():!0===e.metaKey?s():n.value=!n.value}}}var xo={name:\"array-wrapper\",props:{path:{required:!0,validator:e=>\"Array\"===Gr(e)&&e.every((e=>\"String\"===Gr(e)||\"Number\"===Gr(e)))},data:{required:!0,validator:e=>\"Array\"===Gr(e)},name:{required:!0,type:String},collapseSignal:{default:!1,type:Boolean},expandSignal:{default:!1,type:Boolean},expandOnCreatedAndUpdated:{required:!0,type:Function},getKeys:{required:!0,type:Function}},setup(e){const{isExpanding:n,innerExpandSignal:t,innerCollapseSignal:r,handleClick:o}=bo(e),s=Cr((()=>e.getKeys(e.data,e.path))),l=vo.has(e.data);return vo.add(e.data),{keys:s,isExpanding:n,innerExpandSignal:t,innerCollapseSignal:r,handleClick:o,isCircular:l}},components:{}};const So={class:\"array\"},Co={key:0,class:\"value\"},Oo={key:0,class:\"value\"};xo.render=function(e,n,t,r,o,s){const l=Tt(\"wrapper\");return Dt(),Lt(\"span\",So,[Jt(\"span\",{class:\"indicator\",onClick:n[1]||(n[1]=(...e)=>r.handleClick&&r.handleClick(...e))},i(r.isExpanding?\"▼\":\"▶\"),1),Jt(\"span\",{class:\"key\",onClick:n[2]||(n[2]=(...e)=>r.handleClick&&r.handleClick(...e))},i(\"\"===t.name?\"\":t.name),1),Jt(\"span\",{class:\"separator\",onClick:n[3]||(n[3]=(...e)=>r.handleClick&&r.handleClick(...e))},i(\"\"===t.name?\"\":\": \"),1),Jt(\"span\",{class:\"count\",onClick:n[4]||(n[4]=(...e)=>r.handleClick&&r.handleClick(...e))},i(!1===r.isExpanding&&t.data.length>=2?\"(\"+t.data.length+\")\":\"\"),1),Jt(\"span\",{class:\"preview\",onClick:n[5]||(n[5]=(...e)=>r.handleClick&&r.handleClick(...e))},i(r.isExpanding?\"Array(\"+t.data.length+\")\":\"[...]\"),1),r.isCircular?(Dt(),Lt(Ft,{key:0},[r.isExpanding?(Dt(),Lt(\"span\",Co,[(Dt(!0),Lt(Ft,null,Or(r.keys,(e=>(Dt(),Lt(l,{key:e,name:e,path:t.path.concat(e),data:t.data[e],\"expand-signal\":r.innerExpandSignal,\"collapse-signal\":r.innerCollapseSignal,expandOnCreatedAndUpdated:()=>!1,getKeys:t.getKeys},null,8,[\"name\",\"path\",\"data\",\"expand-signal\",\"collapse-signal\",\"expandOnCreatedAndUpdated\",\"getKeys\"])))),128))])):Qt(\"v-if\",!0)],64)):(Dt(),Lt(Ft,{key:1},[r.isExpanding?(Dt(),Lt(\"span\",Oo,[(Dt(!0),Lt(Ft,null,Or(r.keys,(e=>(Dt(),Lt(l,{key:e,name:e,path:t.path.concat(e),data:t.data[e],\"expand-signal\":r.innerExpandSignal,\"collapse-signal\":r.innerCollapseSignal,expandOnCreatedAndUpdated:t.expandOnCreatedAndUpdated,getKeys:t.getKeys},null,8,[\"name\",\"path\",\"data\",\"expand-signal\",\"collapse-signal\",\"expandOnCreatedAndUpdated\",\"getKeys\"])))),128))])):Qt(\"v-if\",!0)],64))])},xo.__file=\"src/components/ArrayWrapper.vue\";var ko={name:\"object-wrapper\",props:{path:{required:!0,validator:e=>\"Array\"===Gr(e)&&e.every((e=>\"String\"===Gr(e)||\"Number\"===Gr(e)))},data:{required:!0,validator:e=>\"Object\"===Gr(e)},name:{required:!0,type:String},collapseSignal:{default:!1,type:Boolean},expandSignal:{default:!1,type:Boolean},expandOnCreatedAndUpdated:{required:!0,type:Function},getKeys:{required:!0,type:Function}},setup(e){const{isExpanding:n,innerExpandSignal:t,innerCollapseSignal:r,handleClick:o}=bo(e),s=Cr((()=>e.getKeys(e.data,e.path))),l=vo.has(e.data);return vo.add(e.data),{keys:s,isExpanding:n,innerExpandSignal:t,innerCollapseSignal:r,handleClick:o,isCircular:l}},components:{}};const wo={class:\"object\"},Eo={key:0,class:\"value\"},Ao={key:1,class:\"value\"};ko.render=function(e,n,t,r,o,s){const l=Tt(\"wrapper\");return Dt(),Lt(\"span\",wo,[Jt(\"span\",{class:\"indicator\",onClick:n[1]||(n[1]=(...e)=>r.handleClick&&r.handleClick(...e))},i(r.isExpanding?\"▼\":\"▶\"),1),Jt(\"span\",{class:\"key\",onClick:n[2]||(n[2]=(...e)=>r.handleClick&&r.handleClick(...e))},i(\"\"===t.name?\"\":t.name),1),Jt(\"span\",{class:\"separator\",onClick:n[3]||(n[3]=(...e)=>r.handleClick&&r.handleClick(...e))},i(\"\"===t.name?\"\":\": \"),1),Jt(\"span\",{class:\"preview\",onClick:n[4]||(n[4]=(...e)=>r.handleClick&&r.handleClick(...e))},i(r.isExpanding?\"\":\"{...}\"),1),r.isCircular?(Dt(),Lt(Ft,{key:0},[r.isExpanding?(Dt(),Lt(\"span\",Eo,[(Dt(!0),Lt(Ft,null,Or(r.keys,(e=>(Dt(),Lt(l,{key:e,class:\"value\",name:e,path:t.path.concat(e),data:t.data[e],\"expand-signal\":r.innerExpandSignal,\"collapse-signal\":r.innerCollapseSignal,expandOnCreatedAndUpdated:()=>!1,getKeys:t.getKeys},null,8,[\"name\",\"path\",\"data\",\"expand-signal\",\"collapse-signal\",\"expandOnCreatedAndUpdated\",\"getKeys\"])))),128))])):Qt(\"v-if\",!0)],64)):vt((Dt(),Lt(\"span\",Ao,[(Dt(!0),Lt(Ft,null,Or(r.keys,(e=>(Dt(),Lt(l,{key:e,class:\"value\",name:e,path:t.path.concat(e),data:t.data[e],\"expand-signal\":r.innerExpandSignal,\"collapse-signal\":r.innerCollapseSignal,expandOnCreatedAndUpdated:t.expandOnCreatedAndUpdated,getKeys:t.getKeys},null,8,[\"name\",\"path\",\"data\",\"expand-signal\",\"collapse-signal\",\"expandOnCreatedAndUpdated\",\"getKeys\"])))),128))],512)),[[qr,r.isExpanding]])])},ko.__file=\"src/components/ObjectWrapper.vue\";const Uo={name:\"wrapper\",props:{path:{required:!0,validator:e=>\"Array\"===Gr(e)&&e.every((e=>\"String\"===Gr(e)||\"Number\"===Gr(e)))},data:{required:!0,validator:e=>\"Null\"===Gr(e)||\"Boolean\"===Gr(e)||\"Number\"===Gr(e)||\"String\"===Gr(e)||\"Array\"===Gr(e)||\"Object\"===Gr(e)},name:{required:!0,type:String},collapseSignal:{default:!1,type:Boolean},expandSignal:{default:!1,type:Boolean},expandOnCreatedAndUpdated:{required:!0,type:Function},getKeys:{required:!0,type:Function}},setup:()=>({objectToString:Gr}),components:{NullWrapper:Zr,BooleanWrapper:no,NumberWrapper:lo,StringWrapper:po,ArrayWrapper:xo,ObjectWrapper:ko}};xo.components.Wrapper=Uo,ko.components.Wrapper=Uo,Uo.render=function(e,n,t,r,o,s){const l=Tt(\"null-wrapper\"),a=Tt(\"boolean-wrapper\"),i=Tt(\"number-wrapper\"),c=Tt(\"string-wrapper\"),u=Tt(\"array-wrapper\"),d=Tt(\"object-wrapper\");return\"Null\"===e.objectToString(e.data)?(Dt(),Lt(l,{key:0,name:e.name,data:e.data},null,8,[\"name\",\"data\"])):\"Boolean\"===e.objectToString(e.data)?(Dt(),Lt(a,{key:1,name:e.name,data:e.data},null,8,[\"name\",\"data\"])):\"Number\"===e.objectToString(e.data)?(Dt(),Lt(i,{key:2,name:e.name,data:e.data},null,8,[\"name\",\"data\"])):\"String\"===e.objectToString(e.data)?(Dt(),Lt(c,{key:3,name:e.name,data:e.data},null,8,[\"name\",\"data\"])):\"Array\"===e.objectToString(e.data)?(Dt(),Lt(u,{key:4,name:e.name,path:e.path,data:e.data,\"collapse-signal\":e.collapseSignal,\"expand-signal\":e.expandSignal,expandOnCreatedAndUpdated:e.expandOnCreatedAndUpdated,getKeys:e.getKeys},null,8,[\"name\",\"path\",\"data\",\"collapse-signal\",\"expand-signal\",\"expandOnCreatedAndUpdated\",\"getKeys\"])):\"Object\"===e.objectToString(e.data)?(Dt(),Lt(d,{key:5,name:e.name,path:e.path,data:e.data,\"collapse-signal\":e.collapseSignal,\"expand-signal\":e.expandSignal,expandOnCreatedAndUpdated:e.expandOnCreatedAndUpdated,getKeys:e.getKeys},null,8,[\"name\",\"path\",\"data\",\"collapse-signal\",\"expand-signal\",\"expandOnCreatedAndUpdated\",\"getKeys\"])):Qt(\"v-if\",!0)},Uo.__file=\"src/components/Wrapper.vue\";const Po=Object.freeze({expandOnCreatedAndUpdated:e=>!1,getKeys:(e,n)=>Object.keys(e)});var To=(e,n,t={})=>{void 0===t.rootName&&(t.rootName=\"\"),void 0===t.getKeys&&(t.getKeys=Po.getKeys),void 0===t.expandOnCreatedAndUpdated&&(t.expandOnCreatedAndUpdated=Po.expandOnCreatedAndUpdated),n.classList.add(\"object-visualizer\"),((...e)=>{Hr().render(...e)})(null,n),Jr(Uo,{data:e,name:t.rootName,path:[],expandOnCreatedAndUpdated:t.expandOnCreatedAndUpdated,getKeys:t.getKeys}).mount(n)};export{To as mount,qe as reactive};\n","const COMPONENTS_MAP = {\n    grid: 'GridComponent',\n    polar: 'PolarComponent',\n    geo: 'GeoComponent',\n    singleAxis: 'SingleAxisComponent',\n    parallel: 'ParallelComponent',\n    calendar: 'CalendarComponent',\n    graphic: 'GraphicComponent',\n    toolbox: 'ToolboxComponent',\n    tooltip: 'TooltipComponent',\n    axisPointer: 'AxisPointerComponent',\n    brush: 'BrushComponent',\n    title: 'TitleComponent',\n    timeline: 'TimelineComponent',\n    markPoint: 'MarkPointComponent',\n    markLine: 'MarkLineComponent',\n    markArea: 'MarkAreaComponent',\n    legend: 'LegendComponent',\n    dataZoom: 'DataZoomComponent',\n    visualMap: 'VisualMapComponent',\n    aria: 'AriaComponent',\n    dataset: 'DatasetComponent',\n\n    // Dependencies\n    xAxis: 'GridComponent',\n    yAxis: 'GridComponent',\n    angleAxis: 'PolarComponent',\n    radiusAxis: 'PolarComponent'\n}\n\nconst CHARTS_MAP = {\n    line: 'LineChart',\n    bar: 'BarChart',\n    pie: 'PieChart',\n    scatter: 'ScatterChart',\n    radar: 'RadarChart',\n    map: 'MapChart',\n    tree: 'TreeChart',\n    treemap: 'TreemapChart',\n    graph: 'GraphChart',\n    gauge: 'GaugeChart',\n    funnel: 'FunnelChart',\n    parallel: 'ParallelChart',\n    sankey: 'SankeyChart',\n    boxplot: 'BoxplotChart',\n    candlestick: 'CandlestickChart',\n    effectScatter: 'EffectScatterChart',\n    lines: 'LinesChart',\n    heatmap: 'HeatmapChart',\n    pictorialBar: 'PictorialBarChart',\n    themeRiver: 'ThemeRiverChart',\n    sunburst: 'SunburstChart',\n    custom: 'CustomChart'\n}\nconst COMPONENTS_GL_MAP = {\n\n    grid3D: 'Grid3DComponent',\n    geo3D: 'Geo3DComponent',\n    globe: 'GlobeComponent',\n    mapbox3D: 'Mapbox3DComponent',\n    maptalks3D: 'Maptalks3DComponent',\n\n    // Dependencies\n    xAxis3D: 'Grid3DComponent',\n    yAxis3D: 'Grid3DComponent',\n    zAxis3D: 'Grid3DComponent',\n}\nconst CHARTS_GL_MAP = {\n    bar3D: 'Bar3DChart',\n    line3D: 'Line3DChart',\n    scatter3D: 'Scatter3DChart',\n    lines3D: 'Lines3DChart',\n    polygons3D: 'Polygons3DChart',\n    surface: 'SurfaceChart',\n    map3D: 'Map3DChart',\n\n    scatterGL: 'ScatterGLChart',\n    graphGL: 'GraphGLChart',\n    flowGL: 'FlowGLChart',\n    linesGL: 'LinesGLChart'\n}\n\nconst COMPONENTS_MAP_REVERSE = {};\nconst CHARTS_MAP_REVERSE = {};\nconst CHARTS_GL_MAP_REVERSE = {};\nconst COMPONENTS_GL_MAP_REVERSE = {};\n\nconst RENDERERS_MAP_REVERSE = {\n    'SVGRenderer': 'svg',\n    'CanvasRenderer': 'canvas'\n}\n\n// Component that will be injected automatically in preprocessor\n// These should be excluded util find they were used explicitly.\nconst MARKERS = ['markLine', 'markArea', 'markPoint'];\nconst INJECTED_COMPONENTS = [\n    ...MARKERS, 'grid', 'axisPointer',\n    'aria'  // TODO aria\n];\n\n// Component that was dependent.\nconst DEPENDENT_COMPONENTS = [\n    'xAxis', 'yAxis', 'angleAxis', 'radiusAxis',\n    'xAxis3D', 'yAxis3D', 'zAxis3D'\n];\n\nfunction createReverseMap(map, reverseMap) {\n    Object.keys(map).forEach(key => {\n        // Exclude dependencies.\n        if (DEPENDENT_COMPONENTS.includes(key)) {\n            return;\n        }\n        reverseMap[map[key]] = key;\n    });\n}\n\ncreateReverseMap(COMPONENTS_MAP, COMPONENTS_MAP_REVERSE);\ncreateReverseMap(CHARTS_MAP, CHARTS_MAP_REVERSE);\ncreateReverseMap(COMPONENTS_GL_MAP, COMPONENTS_GL_MAP_REVERSE);\ncreateReverseMap(CHARTS_GL_MAP, CHARTS_GL_MAP_REVERSE);\n\nmodule.exports.collectDeps = function collectDeps(option) {\n    let deps = [];\n    if (option.options) {\n\n        // TODO getOption() doesn't have baseOption and options.\n        option.options.forEach((opt) => {\n            deps = deps.concat(collectDeps(opt));\n        });\n\n        if (option.baseOption) {\n            deps = deps.concat(collectDeps(option.baseOption))\n        }\n\n        // Remove duplicates\n        return Array.from(new Set(deps));\n    }\n\n    Object.keys(option).forEach((key) => {\n        if (INJECTED_COMPONENTS.includes(key)) {\n            return;\n        }\n        const val = option[key];\n\n        if (Array.isArray(val) && !val.length) {\n            return;\n        }\n\n        if (COMPONENTS_MAP[key]) {\n            deps.push(COMPONENTS_MAP[key]);\n        }\n        if (COMPONENTS_GL_MAP[key]) {\n            deps.push(COMPONENTS_GL_MAP[key]);\n        }\n    });\n\n    let series = option.series;\n    if (!Array.isArray(series)) {\n        series = [series];\n    }\n\n    series.forEach((seriesOpt) => {\n        if (CHARTS_MAP[seriesOpt.type]) {\n            deps.push(CHARTS_MAP[seriesOpt.type]);\n        }\n        if (CHARTS_GL_MAP[seriesOpt.type]) {\n            deps.push(CHARTS_GL_MAP[seriesOpt.type]);\n        }\n        if (seriesOpt.type === 'map') {\n            // Needs geo component when using map\n            deps.push(COMPONENTS_MAP.geo);\n        }\n        MARKERS.forEach(markerType => {\n            if (seriesOpt[markerType]) {\n                deps.push(COMPONENTS_MAP[markerType]);\n            }\n        });\n    });\n\n    // Remove duplicates\n    return Array.from(new Set(deps));\n}\n\nfunction buildMinimalBundleCode(deps, includeType) {\n    const chartsImports = [];\n    const componentsImports = [];\n    const chartsGLImports = [];\n    const componentsGLImports = [];\n    const renderersImports = [];\n    deps.forEach(function (dep) {\n        if (dep.endsWith('Renderer')) {\n            renderersImports.push(dep);\n        }\n        else if (CHARTS_MAP_REVERSE[dep]) {\n            chartsImports.push(dep);\n            if (includeType) {\n                chartsImports.push(dep.replace(/Chart$/, 'SeriesOption'));\n            }\n        }\n        else if (COMPONENTS_MAP_REVERSE[dep]) {\n            componentsImports.push(dep);\n            if (includeType) {\n                componentsImports.push(dep.replace(/Component$/, 'ComponentOption'));\n            }\n        }\n        else if (CHARTS_GL_MAP_REVERSE[dep]) {\n            chartsGLImports.push(dep)\n        }\n        else if (COMPONENTS_GL_MAP_REVERSE[dep]) {\n            componentsGLImports.push(dep);\n        }\n    });\n\n    function getImportsPartCode(imports) {\n        return `${imports.map(str => `\n    ${str}`).join(',')}`;\n    }\n\n    const allImports = [\n        ...componentsImports,\n        ...chartsImports,\n        ...componentsGLImports,\n        ...chartsGLImports,\n        ...renderersImports\n    ];\n\n    const ECOptionTypeCode = `\ntype ECOption = echarts.ComposeOption<\n    ${allImports.filter(a => a.endsWith('Option')).join(' | ')}\n>`;\n    const importsCodes = [\n        [componentsImports, 'echarts/components'],\n        [chartsImports, 'echarts/charts'],\n        [renderersImports, 'echarts/renderers'],\n        [chartsGLImports, 'echarts-gl/charts'],\n        [componentsGLImports, 'echarts-gl/components']\n    ].filter(a => a[0].length > 0).map(item => `\nimport {${getImportsPartCode(item[0])}\n} from '${item[1]}';\n    `.trim()).join('\\n');\n\n    return `import * as echarts from 'echarts/core';\n${importsCodes}\n\necharts.use(\n    [${allImports.filter(a => !a.endsWith('Option')).join(', ')}]\n);\n` + (includeType ? ECOptionTypeCode : '')\n}\n\nmodule.exports.buildMinimalBundleCode = buildMinimalBundleCode;\n\nfunction buildLegacyMinimalBundleCode(deps, isESM) {\n    const modules = [];\n    deps.forEach(function (dep) {\n        if (dep.endsWith('Renderer') && dep !== 'CanvasRenderer') {\n            modules.push(`zrender/lib/${RENDERERS_MAP_REVERSE[dep]}/${RENDERERS_MAP_REVERSE[dep]}`);\n        }\n        else if (CHARTS_MAP_REVERSE[dep]) {\n            modules.push(`echarts/lib/chart/${CHARTS_MAP_REVERSE[dep]}`);\n        }\n        else if (COMPONENTS_MAP_REVERSE[dep]) {\n            modules.push(`echarts/lib/component/${COMPONENTS_MAP_REVERSE[dep]}`);\n        }\n        else if (CHARTS_GL_MAP_REVERSE[dep]) {\n            modules.push(`echarts-gl/lib/chart/${CHARTS_GL_MAP_REVERSE[dep]}`);\n        }\n        else if (COMPONENTS_GL_MAP_REVERSE[dep]) {\n            modules.push(`echarts-gl/lib/component/${COMPONENTS_GL_MAP_REVERSE[dep]}`);\n        }\n    });\n\n    return isESM ? `import * as echarts from 'echarts/lib/echarts';\n${modules.map(mod => {\n    return `import '${mod}';`;\n}).join('\\n')}\n` : `const echarts = require('echarts/lib/echarts');\n${modules.map(mod => {\n    return `require('${mod}');`;\n}).join('\\n')}\n`\n}\n\nfunction hasGLInDeps(deps) {\n    return !!deps.find(dep => !!(CHARTS_GL_MAP_REVERSE[dep] || COMPONENTS_GL_MAP_REVERSE[dep]));\n}\n\nmodule.buildLegacyMinimalBundleCode = buildLegacyMinimalBundleCode;\n\nmodule.exports.buildExampleCode = function (\n    jsCode, deps, {\n        // If enable minimal import\n        minimal,\n        // If is ESM module or CommonJS module\n        // Force to be true in ts mode or minimal mode.\n        esm = true,\n        // If use legacy minimal import, like:\n        // import 'echarts/lib/chart/bar';\n        // Only available when minimal is true.\n        legacy,\n        // If is ts code\n        ts,\n        // Theme\n        theme,\n        ROOT_PATH,\n        // Other imports code code string\n        // For example\n        // `import 'echarts-liquidfill'`\n        extraImports\n    }\n) {\n    // if (minimal && !legacy) {\n    //     // ESM must be used when use the new minimal import\n    //     esm = true;\n    // }\n\n    if (ts) {\n        esm = true;\n    }\n\n    if (minimal && !esm) {\n        // Only legacy mode can be used when use require in mimimal bundle.\n        legacy = true;\n    }\n\n\n    const hasECStat = jsCode.indexOf('ecStat') >= 0;\n    const usedRootPath = jsCode.indexOf('ROOT_PATH') >= 0;\n    const usedApp = jsCode.indexOf('app') >= 0;\n\n    const DEP_CODE = `\n${hasECStat ?\n    esm ? `import ecStat from 'echarts-stat';`\n        : `var ecStat = require('echarts-stat');`\n    : ''\n}\n`;\n    const IMPORT_CODE = [\n        !minimal\n            ? esm\n                ? `import * as echarts from 'echarts';${hasGLInDeps(deps) ? `\\nimport 'echarts-gl';` : ''}`\n                : `var echarts = require('echarts');${hasGLInDeps(deps) ? `\\nrequire('echarts-gl');` : ''}`\n            : legacy\n                ? buildLegacyMinimalBundleCode(deps, esm)\n                : buildMinimalBundleCode(deps, ts),\n        (theme && theme !== 'dark')\n            ? esm\n                ? `import 'echarts/theme/${theme}'`\n                : `require('echarts/theme/${theme}')`\n            : '',\n        extraImports\n    ].filter(a => !!a).join('\\n');\n\n    const ENV_CODE = [\n        usedRootPath ? `var ROOT_PATH = '${ROOT_PATH}';` : '',\n        usedApp ? `var app${ts ? ': any' : ''} = {};` : '',\n        ts && !minimal ? 'type ECOption = echarts.EChartsOption' : ''\n    ].filter(a => !!a).join('\\n');\n\n    const PREPARE_CODE = [\n        IMPORT_CODE.trim(), DEP_CODE.trim(), ENV_CODE.trim()\n    ].filter(a => !!a).join('\\n\\n');\n\n    return `${PREPARE_CODE}\n\nvar chartDom = document.getElementById('main')${ts ? '!' : ''};\nvar myChart = echarts.init(chartDom${theme ? `, '${theme}'` : ''});\nvar option${ts ? ': ECOption' : ''};\n\n${jsCode.trim()}\n\noption && myChart.setOption(option);\n`;\n}","<template>\n<div class=\"ace-editor-main\" v-loading=\"loading\"></div>\n</template>\n\n<script>\n\nimport {keywords} from '../data/option-keywords';\nimport {loadScriptsAsync} from '../common/helper';\nimport {store} from '../common/store';\nimport {SCRIPT_URLS} from '../common/config';\n\nfunction ensureACE() {\n    if (typeof ace === 'undefined') {\n        return loadScriptsAsync([\n            SCRIPT_URLS.aceDir + '/ace.js',\n            SCRIPT_URLS.aceDir + '/ext-language_tools.js'\n        ]).then(function () {\n            const lnTools = ace.require('ace/ext/language_tools');\n\n            const completions = [];\n            keywords.forEach(keyword => {\n                completions.push({\n                    caption: keyword.name,\n                    value: keyword.name,\n                    score: keyword.count,\n                    metal: 'local'\n                });\n            });\n\n            lnTools.addCompleter({\n                getCompletions: function (editor, session, pos, prefix, callback) {\n                    callback(null, completions);\n                }\n            });\n        })\n    }\n    return Promise.resolve();\n}\n\nexport default {\n\n    props: ['initialCode'],\n\n    data() {\n        return {\n            shared: store,\n            loading: false\n        }\n    },\n\n    mounted() {\n        this.loading = true;\n        ensureACE().then(() => {\n            this.loading = false;\n            const editor = ace.edit(this.$el);\n            editor.getSession().setMode('ace/mode/javascript');\n            editor.setOptions({\n                enableBasicAutocompletion: true,\n                enableSnippets: true,\n                enableLiveAutocompletion: true\n            });\n\n            this._editor = editor;\n\n            editor.on('change', () => {\n                store.sourceCode =\n                    store.runCode = editor.getValue();\n            });\n\n            if (this.initialCode) {\n                this.setInitialCode(this.initialCode);\n            }\n        });\n    },\n\n    methods: {\n        setInitialCode(code) {\n            if (this._editor && code) {\n                this._editor.setValue(code || '');\n                this._editor.selection.setSelectionRange({\n                    start: {\n                        row:1,\n                        column: 4\n                    }, end: {\n                        row:1,\n                        column: 4\n                    }\n                });\n            }\n        }\n    },\n\n    watch: {\n        initialCode(newVal) {\n            this.setInitialCode(newVal);\n        }\n    }\n}\n</script>\n\n<style lang=\"scss\">\n.ace-editor-main {\n    font-family: 'Source Code Pro', 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace;\n    font-size: 12px;\n    line-height: 18px;\n    padding: 10px;\n    // height: 100%;\n\n    // Fix safari\n    position: absolute;\n    left: 0;\n    top: 0;\n    bottom: 0;\n    right: 0;\n}\n</style>","<template>\n<div class=\"monaco-editor-main\" v-loading=\"loading\"></div>\n</template>\n\n<script>\n\nimport {keywords, fullKeywordsList} from '../data/option-keywords';\nimport {loadScriptsAsync} from '../common/helper';\nimport {store} from '../common/store';\nimport {SCRIPT_URLS} from '../common/config';\nimport { ensureECharts } from './Preview.vue';\n\nfunction loadTypes() {\n    return fetch(store.cdnRoot + '/types/echarts.d.ts', {\n        mode: 'cors'\n    }).then(response => response.text()).then(code => {\n\n        // validation settings\n        monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({\n            noSemanticValidation: false,\n            noSyntaxValidation: false\n        });\n\n        // compiler options\n        monaco.languages.typescript.typescriptDefaults.setCompilerOptions({\n            target: monaco.languages.typescript.ScriptTarget.ES6,\n            allowNonTsExtensions: true,\n            noResolve: false\n        });\n\n        // console.log('file:///node_modules/@types/' + res[i].path);\n        monaco.languages.typescript.typescriptDefaults.addExtraLib(\n            code,\n            // https://github.com/microsoft/monaco-editor/issues/667#issuecomment-468164794\n            'file:///node_modules/@types/echarts/index.d.ts'\n        );\n\n        monaco.languages.typescript.typescriptDefaults.addExtraLib(\n`import {init, EChartsOption} from 'echarts';\n// Declare to global namespace.\ndeclare global {\ndeclare const $: any;\ndeclare const ROOT_PATH: string;\ndeclare const app: {\n    configParameters: {\n        [key: string]: ({\n            options: { [key: string]: string\n        }) | ({\n            min?: number\n            max?: number\n        })\n    }\n    config: {\n        onChange: () => void\n        [key: string]: string | number | function\n    }\n    [key: string]: any\n};\ndeclare const myChart: ReturnType<typeof init>;\ndeclare var option: EChartsOption;\n}\n`,\n            'file:///example.d.ts'\n        );\n        return;\n    });\n}\n\nfunction ensureMonacoAndTsTransformer() {\n    function loadMonaco() {\n        if (typeof monaco === 'undefined') {\n            return loadScriptsAsync([\n                SCRIPT_URLS.monacoDir + '/loader.js',\n                // Prebuilt TS transformer with surcrase\n                store.cdnRoot + '/js/example-transform-ts-bundle.js'\n            ]).then(function () {\n                window.require.config({ paths: { 'vs': SCRIPT_URLS.monacoDir }});\n                return new Promise(resolve => {\n                    window.require([\n                        'vs/editor/editor.main'\n                    ], function () {\n                        loadTypes().then(() => {\n                            resolve();\n                        });\n                    })\n                });\n            })\n        }\n        return Promise.resolve();\n    }\n\n    // Must load echarts before monaco. Or the AMD loader will affect loading of echarts.\n    return ensureECharts().then(loadMonaco);\n}\n\nexport default {\n\n    props: ['initialCode'],\n\n    data() {\n        return {\n            shared: store,\n            loading: false\n        }\n    },\n\n    mounted() {\n        this.loading = true;\n        ensureMonacoAndTsTransformer().then(() => {\n            this.loading = false;\n            const model = monaco.editor.createModel(\n                this.initialCode || '',\n                'typescript',\n                // Should also be a file path so it can resolve the lib.\n                monaco.Uri.parse('file:///main.ts')\n            );\n            const editor = monaco.editor.create(this.$el, {\n                model,\n                fontFamily: `'Source Code Pro', 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace`,\n                minimap: {\n                    enabled: false\n                },\n                automaticLayout: true\n            });\n\n            this._editor = editor;\n\n            if (this.initialCode) {\n                store.sourceCode = this.initialCode;\n                store.runCode = echartsExampleTransformTs(store.sourceCode);\n            }\n            editor.onDidChangeModelContent(() => {\n                store.sourceCode = editor.getValue();\n                store.runCode = echartsExampleTransformTs(store.sourceCode);\n            });\n        });\n    },\n\n    destroyed() {\n        if (this._editor) {\n            this._editor.getModel().dispose();\n            this._editor.dispose();\n        }\n    },\n\n    methods: {\n        setInitialCode(code) {\n            if (this._editor && code) {\n                this._editor.setValue(code || '');\n            }\n        }\n    },\n\n    watch: {\n        initialCode(newVal) {\n            this.setInitialCode(newVal);\n        }\n    }\n}\n</script>\n\n<style lang=\"scss\">\n.monaco-editor-main {\n    font-family: 'Source Code Pro', 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace;\n    font-size: 12px;\n    padding: 0;\n    overflow-y: hidden;\n    // height: 100%;\n    // Fix safari\n    position: absolute;\n    left: 0;\n    top: 0;\n    bottom: 0;\n    right: 0;\n}\n</style>","<template>\n<div id=\"main-container\">\n    <div id=\"editor-left-container\" :style=\"{width: leftContainerSize + '%'}\" v-if=\"!shared.isMobile\">\n        <el-tabs v-model=\"currentTab\" type=\"border-card\">\n            <el-tab-pane :label=\"$t('editor.tabEditor')\" name=\"code-editor\">\n                <el-container>\n                    <el-header id=\"editor-control-panel\">\n                        <div id=\"code-info\">\n                            <template v-if=\"shared.editorStatus.message\">\n                                <span class=\"code-info-time\">{{currentTime}}</span>\n                                <span :class=\"'code-info-type-' + shared.editorStatus.type\">{{shared.editorStatus.message}}</span>\n                            </template>\n                        </div>\n                        <div class=\"editor-controls\">\n                            <!-- <el-switch v-model=\"shared.typeCheck\"\n                                :active-text=\"$t('editor.monacoMode')\"\n                                :inactive-text=\"''\"\n                            ></el-switch> -->\n                            <a href=\"javascript:;\" class='btn btn-default btn-sm' @click='disposeAndRun'>{{$t('editor.run')}}</a>\n                        </div>\n                    </el-header>\n                    <el-main>\n                        <CodeMonaco v-if=\"shared.typeCheck\" id=\"code-panel\" :initialCode=\"initialCode\"></CodeMonaco>\n                        <CodeAce v-else id=\"code-panel\" :initialCode=\"initialCode\"></CodeAce>\n                    </el-main>\n                </el-container>\n            </el-tab-pane>\n\n            <el-tab-pane :label=\"$t('editor.tabFullCodePreview')\" name=\"full-code\" :lazy=\"true\">\n                <el-container style=\"width: 100%; height: 100%\">\n                    <el-header id=\"full-code-generate-config\">\n                        <span class=\"full-code-generate-config-label\">\n                            <!-- <i class=\"el-icon-setting\"></i> 配置 -->\n                        </span>\n                        <el-switch\n                            class=\"enable-decal\"\n                            v-model=\"fullCodeConfig.minimal\"\n                            :active-text=\"$t('editor.minimalBundle')\"\n                            :inactive-text=\"''\">\n                        </el-switch>\n                        <el-switch\n                            class=\"enable-decal\"\n                            v-model=\"fullCodeConfig.esm\"\n                            active-text=\"ES Modules\"\n                            :inactive-text=\"''\">\n                        </el-switch>\n                    </el-header>\n                    <el-main>\n                        <FullCodePreview :code=\"fullCode\"></FullCodePreview>\n                    </el-main>\n                </el-container>\n            </el-tab-pane>\n            <el-tab-pane :label=\"$t('editor.tabOptionPreview')\" name=\"full-option\">\n                <div id=\"option-outline\"></div>\n            </el-tab-pane>\n        </el-tabs>\n    </div>\n    <div class=\"handler\" id=\"h-handler\" @mousedown=\"onSplitterDragStart\" :style=\"{left: leftContainerSize + '%'}\" v-if=\"!shared.isMobile\"></div>\n    <Preview :inEditor=\"true\" class=\"right-container\" ref=\"preview\" :style=\"{\n        width: (100 - leftContainerSize) + '%',\n        left: leftContainerSize + '%'\n    }\"></Preview>\n</div>\n</template>\n\n<script>\n\nimport CodeAce from './CodeAce.vue';\nimport CodeMonaco from './CodeMonaco.vue';\nimport FullCodePreview from './FullCodePreview.vue';\nimport Preview from './Preview.vue';\nimport {URL_PARAMS} from '../common/config';\nimport {store, loadExampleCode, parseSourceCode} from '../common/store';\nimport {collectDeps, buildExampleCode} from '../../common/buildCode';\nimport { mount } from \"@lang/object-visualizer\";\n\nimport './object-visualizer.css';\n\nexport default {\n    components: {\n        CodeAce,\n        CodeMonaco,\n        FullCodePreview,\n        Preview\n    },\n\n    data() {\n        return {\n            mousedown: false,\n            leftContainerSize: 40,\n            mobileMode: false,\n            shared: store,\n            initialCode: '',\n\n            currentTab: 'code-editor',\n\n            fullCode: '',\n\n            fullCodeConfig: {\n                mimimal: false,\n                esm: true,\n                node: false // If is in node\n            }\n        };\n    },\n\n    computed: {\n        currentTime() {\n            // Update time when message updated.\n            const message = this.shared.message;\n\n            const time = new Date();\n            const digits = [time.getHours(), time.getMinutes(), time.getSeconds()];\n            let timeStr = '';\n            for (let i = 0, len = digits.length; i < len; ++i) {\n                timeStr += (digits[i] < 10 ? '0' : '') + digits[i];\n                if (i < len - 1) {\n                    timeStr += ':';\n                }\n            }\n            return timeStr;\n        }\n    },\n\n    mounted() {\n\n        if (store.isMobile) {\n            this.leftContainerSize = 0;\n            loadExampleCode().then(code => {\n                // No editor available. Set to runCode directly.\n                store.runCode = parseSourceCode(code);\n            });\n        }\n        else {\n            loadExampleCode().then(code => {\n                // Only set the code in editor. editor will sync to the store.\n                this.initialCode = parseSourceCode(code);\n            });\n\n            window.addEventListener('mousemove', (e) => {\n                if (this.mousedown) {\n                    let percentage = e.clientX / window.innerWidth;\n                    percentage = Math.min(0.9, Math.max(0.1, percentage));\n                    this.leftContainerSize = percentage * 100;\n                }\n            });\n\n            window.addEventListener('mouseup', (e) => {\n                this.mousedown = false;\n            });\n        }\n    },\n\n    methods: {\n        onSplitterDragStart() {\n            this.mousedown = true;\n        },\n        disposeAndRun() {\n            this.$refs.preview.refreshAll();\n        },\n        updateFullCode() {\n            const option = this.$refs.preview.getOption();\n            if (!option) {\n                return;\n            }\n            const deps = collectDeps(option);\n            deps.push(store.renderer === 'svg' ? 'SVGRenderer' : 'CanvasRenderer');\n            this.fullCode = buildExampleCode(store.sourceCode, deps, {\n                minimal: this.fullCodeConfig.minimal,\n                ts: false,\n                esm: this.fullCodeConfig.esm,\n                // legacy: true,\n                theme: store.darkMode ? 'dark' : '',\n                ROOT_PATH: store.cdnRoot\n            });\n        },\n        updateOptionOutline() {\n            const option = Object.freeze(this.$refs.preview.getOption());\n            if (!option) {\n                return;\n            }\n            mount(\n                option,\n                this.$el.querySelector('#option-outline'),\n                {\n                    getKeys(object, path) {\n                        return Object.keys(object).filter(key => {\n                            if (Array.isArray(object[key]) && !object[key].length) {\n                                return false;\n                            }\n                            return true;\n                        });\n                    },\n                    expandOnCreatedAndUpdated(path) {\n                        return path.length === 0\n                            || (path[0] === 'series' && path.length <= 1);\n                    },\n                }\n            );\n        },\n        updateTabContent(tab) {\n            if (tab === 'full-code') {\n                this.updateFullCode();\n            }\n            else if (tab === 'full-option') {\n                this.updateOptionOutline();\n            }\n        }\n    },\n\n    watch: {\n        'shared.typeCheck'(enableTypeCheck) {\n            // Update initialCode to avoid code changed when switching editor\n            this.initialCode = store.sourceCode;\n            this.updateFullCode();\n        },\n        'currentTab'(tab) {\n            this.updateTabContent(tab);\n        },\n        'shared.runHash'() {\n            this.updateTabContent(this.currentTab);\n        },\n        fullCodeConfig: {\n            deep: true,\n            handler() {\n                this.updateFullCode();\n            }\n        }\n    }\n}\n</script>\n\n<style lang=\"scss\">\n\n@import '../style/color.scss';\n\n$code-info-height: 25px;\n$control-panel-height: 30px;\n$pd-basic: 10px;\n$handler-width: 5px;\n\n#main-container {\n    .handler {\n        position: absolute;\n        left: 50%;\n\n        top: 0;\n        bottom: 0;\n        width: $handler-width;\n\n        cursor: col-resize;\n        z-index: 100;\n        background-color: transparent;\n        border-left: 1px solid #ececec;\n        // border-right: 1px solid $clr-border;\n    }\n\n}\n\n#editor-left-container {\n    position: absolute;\n    left: 0;\n    bottom: 0;\n    top: 0;\n\n    width: 50%;\n\n    .el-tab-pane {\n        height: 100%;\n\n        .el-container {\n            width: 100%;\n            height: 100%;\n        }\n\n        .el-header {\n            height: $control-panel-height!important;\n            position: relative;\n            z-index: 10;\n            padding: 0;\n        }\n        .el-main {\n            padding: 0;\n            position: relative;\n\n            ::-webkit-scrollbar {\n                height:8px;\n                width:8px;\n                transition:all 0.3s ease-in-out;\n                border-radius:2px;\n            }\n\n            ::-webkit-scrollbar-button {\n                display:none;\n            }\n\n            ::-webkit-scrollbar-thumb {\n                width:8px;\n                min-height:15px;\n                background:rgba(50, 50, 50, 0.6) !important;\n                transition:all 0.3s ease-in-out;border-radius:2px;\n            }\n\n            ::-webkit-scrollbar-thumb:hover {\n                background:rgba(0, 0, 0, 0.5) !important;\n            }\n        }\n    }\n\n    .el-tabs {\n        box-shadow: none;\n    }\n\n    .el-tabs--border-card>.el-tabs__header {\n        border-bottom: none;\n    }\n\n    .el-tabs__content {\n        position: absolute;\n        top: 34px;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        padding: 0;\n    }\n\n    .el-tabs__item {\n        height: 34px;\n        line-height: 34px;\n    }\n}\n\n#editor-control-panel, #full-code-generate-config {\n    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n}\n\n#option-outline {\n    // height: 100%;\n    // Fix safari\n    position: absolute;\n    left: 0;\n    top: 0;\n    bottom: 0;\n    right: 0;\n\n    font-size: 13px;\n\n    font-family: 'Source Code Pro', 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace;\n}\n\n#full-code-generate-config {\n    .full-code-generate-config-label {\n        height: $control-panel-height;\n        line-height: $control-panel-height;\n        vertical-align: middle;\n        margin: 0 0 0 20px;\n    }\n\n    .el-switch {\n        margin-right: 10px;\n    }\n\n    .el-switch__label {\n        margin-left: 8px;\n        margin-top: -2px;\n    }\n    .el-switch__label * {\n        font-size: 12px;\n    }\n}\n\n#editor-control-panel {\n    .setting-panel {\n        display: inline-block;\n\n        .btn-group + .btn-group {\n            margin-left: $pd-basic;\n        }\n    }\n\n    .editor-controls  {\n        float: right;\n\n        .el-switch__label {\n            margin-top: -3px;\n        }\n        .el-switch__label * {\n            font-size: 12px;\n        }\n\n        .btn {\n            color: #FFF;\n            border-radius: 0;\n            background-color: #409eff;\n            margin-left: $pd-basic;\n            border: none;\n            height: 30px;\n            width: 50px;\n        }\n        .btn:hover {\n            background-color: lighten($color: #409eff, $amount: 5);\n        }\n    }\n}\n\n#code-info {\n    position: absolute;\n    bottom: 0;\n    overflow: hidden;\n\n    height: $control-panel-height;\n    line-height: $control-panel-height;\n    padding: 0px 10px;\n\n    // border-top: 1px solid $clr-border;\n    font-size: 0.9rem;\n\n    .code-info-time {\n        color: $clr-text;\n        display: inline-block;\n        margin-right: 10px;\n        font-size: 12px;\n    }\n\n    .code-info-type-info {\n        color: $clr-text;\n        font-size: 12px;\n    }\n\n    .code-info-type-warn {\n        color: $clr-warn;\n    }\n\n    .code-info-type-error {\n        color: $clr-error;\n    }\n}\n\n.right-container {\n    position: absolute;\n    right: 0;\n\n    width: 50%;\n    height: 100%;\n    padding: 0;\n    padding-left: $handler-width;\n    border: none;\n    z-index: 30;\n\n    background: $clr-bg;\n}\n\n\n</style>","<template>\n<div class=\"full-code-preview\" v-loading=\"loading\"></div>\n</template>\n\n<script>\n\nimport {loadScriptsAsync} from '../common/helper';\nimport {store} from '../common/store';\nimport {SCRIPT_URLS} from '../common/config';\n\nfunction ensureACE() {\n    if (typeof ace === 'undefined') {\n        return loadScriptsAsync([\n            SCRIPT_URLS.aceDir + '/ace.js'\n        ]);\n    }\n    return Promise.resolve();\n}\n\nexport default {\n\n    props: ['code'],\n\n    data() {\n        return {\n            shared: store,\n            loading: false\n        }\n    },\n\n    mounted() {\n        this.loading = true;\n        ensureACE().then(() => {\n            this.loading = false;\n            const editor = ace.edit(this.$el);\n            editor.getSession().setMode('ace/mode/javascript');\n            // https://stackoverflow.com/questions/32806060/is-there-a-programmatic-way-to-hide-the-cursor-in-ace-editor\n            editor.setOptions({\n                readOnly: true,\n                showLineNumbers: false,\n                showFoldWidgets: false,\n                highlightActiveLine: false,\n                highlightGutterLine: false\n            });\n            // editor.renderer.setShowGutter(false);\n            editor.renderer.$cursorLayer.element.style.display = 'none';\n\n            this._editor = editor;\n\n            this.setCode(this.code);\n\n        });\n    },\n\n    methods: {\n        setCode(code) {\n            if (this._editor) {\n                this._editor.setValue(code);\n                this._editor.selection.setSelectionRange({\n                    start: {\n                        row:1,\n                        column: 4\n                    }, end: {\n                        row:1,\n                        column: 4\n                    }\n                });\n            }\n        }\n    },\n\n    watch: {\n        code(newVal) {\n            this.setCode(newVal);\n        }\n    }\n}\n</script>\n\n<style lang=\"scss\">\n.full-code-preview {\n    font-family: 'Source Code Pro', 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace;\n    font-size: 12px;\n    line-height: 18px;\n    // height: 100%;\n\n    // Fix safari\n    position: absolute;\n    left: 0;\n    top: 0;\n    bottom: 0;\n    right: 0;\n}\n</style>","<template>\n<div :class=\"[(inEditor && !shared.isMobile) ? '' : 'full']\">\n    <div v-loading=\"loading\"\n        class=\"right-panel\"\n        id=\"chart-panel\"\n        :style=\"{background: backgroundColor}\"\n    >\n        <div class=\"chart-container\"></div>\n    </div>\n    <div id=\"tool-panel\">\n        <div class=\"left-panel\">\n            <el-switch\n                class=\"dark-mode\"\n                v-model=\"shared.darkMode\"\n                active-color=\"#181432\"\n                :active-text=\"$t('editor.darkMode')\"\n                :inactive-text=\"''\">\n            </el-switch>\n            <el-switch\n                v-if=\"!isGL\"\n\n                class=\"enable-decal\"\n                v-model=\"shared.enableDecal\"\n                :active-text=\"$t('editor.enableDecal')\"\n                :inactive-text=\"''\">\n            </el-switch>\n\n            <el-popover\n                placement=\"bottom\"\n                width=\"450\"\n                trigger=\"click\"\n                style=\"margin-top:3px;\"\n\n                v-if=\"!isGL\"\n            >\n                <div class=\"render-config-container\">\n                    <el-row :gutter=\"2\" type=\"flex\" align=\"middle\">\n                        <el-col :span=\"12\">\n                            <label class=\"tool-label\">{{ $t('editor.renderer') }}</label>\n                            <el-radio-group v-model=\"shared.renderer\" size=\"mini\" style=\"text-transform: uppercase\">\n                                <el-radio-button label=\"svg\"></el-radio-button>\n                                <el-radio-button label=\"canvas\"></el-radio-button>\n                            </el-radio-group>\n                        </el-col>\n                        <el-col :span=\"12\">\n                            <el-switch\n                                v-if=\"shared.renderer==='canvas'\"\n                                v-model=\"shared.useDirtyRect\"\n                                :active-text=\"$t('editor.useDirtyRect')\"\n                                :inactive-text=\"''\">\n                            </el-switch>\n                        </el-col>\n                    </el-row>\n                </div>\n                <span class=\"render-config-trigger\" slot=\"reference\"><i class=\"el-icon-setting el-icon--left\"></i>{{$t('editor.renderCfgTitle')}}</span>\n            </el-popover>\n        </div>\n        <template v-if=\"inEditor\">\n            <button v-if=\"!shared.isMobile\" class=\"download btn btn-sm\" @click=\"downloadExample\">{{ $t('editor.download') }}</button>\n            <a class=\"screenshot\" @click=\"screenshot\" target=\"_blank\"><i class=\"el-icon-camera-solid\"></i></a>\n        </template>\n        <a :href=\"editLink\" target=\"_blank\" v-else class=\"edit btn btn-sm\">{{ $t('editor.edit') }}</a>\n    </div>\n</div>\n</template>\n\n<script>\n\nimport {store, updateRunHash} from '../common/store';\nimport {SCRIPT_URLS, URL_PARAMS} from '../common/config';\nimport {loadScriptsAsync} from '../common/helper';\nimport {createSandbox} from './sandbox';\nimport debounce from 'lodash/debounce';\nimport { addListener, removeListener } from 'resize-detector';\nimport CHART_LIST from '../data/chart-list-data';\nimport CHART_LIST_GL from '../data/chart-list-data-gl';\nimport {download} from './downloadExample';\n\nfunction findExample(item) {\n    return URL_PARAMS.c === item.id;\n}\nconst example = CHART_LIST.concat(CHART_LIST_GL).find(findExample);\nconst isGL = CHART_LIST_GL.find(findExample);\n\nfunction addDecalIfNecessary(option) {\n    if (store.enableDecal) {\n        option.aria = option.aria || {};\n        option.aria.decal = option.aria.decal || {};\n        option.aria.decal.show = true;\n        option.aria.show = option.aria.enabled = true;\n    }\n}\n\nexport function ensureECharts() {\n    if (typeof echarts === 'undefined') {\n\n        const hasBmap = example && example.tags.indexOf('bmap') >= 0;\n\n        // Code from https://api.map.baidu.com/api?v=2.0&ak=KOmVjPVUAey1G2E8zNhPiuQ6QiEmAwZu\n        if (hasBmap) {\n            window.HOST_TYPE = \"2\";\n            window.BMap_loadScriptTime = (new Date).getTime();\n        }\n\n        return loadScriptsAsync([\n            SCRIPT_URLS.datGUIMinJS,\n            'local' in URL_PARAMS\n                ? SCRIPT_URLS.localEChartsMinJS : SCRIPT_URLS.echartsMinJS,\n            SCRIPT_URLS.echartsDir + '/dist/extension/dataTool.js',\n            'https://cdn.jsdelivr.net/npm/echarts@4.9.0/map/js/world.js',\n            SCRIPT_URLS.echartsStatMinJS,\n            ...URL_PARAMS.gl ? [SCRIPT_URLS.echartsGLMinJS] : [],\n            ...hasBmap ? [\n                'https://api.map.baidu.com/getscript?v=3.0&ak=KOmVjPVUAey1G2E8zNhPiuQ6QiEmAwZu&services=&t=20200327103013',\n                SCRIPT_URLS.echartsDir + '/dist/extension/bmap.js'\n            ] : []\n        ]).then(() => {\n            echarts.registerPreprocessor(addDecalIfNecessary)\n        });\n    }\n    return Promise.resolve();\n}\n\n\nfunction log(text, type) {\n    if (type !== 'warn' && type !== 'error') {\n        type = 'info';\n    }\n    store.editorStatus.message = text;\n    store.editorStatus.type = type;\n}\n\n\nfunction run() {\n\n    if (typeof echarts === 'undefined') {\n        return;\n    }\n    if (!this.sandbox) {\n        this.sandbox = createSandbox((chart) => {\n            const option = chart.getOption();\n            if (typeof option.backgroundColor === 'string' && option.backgroundColor !== 'transparent') {\n                this.backgroundColor = option.backgroundColor;\n            }\n            else {\n                this.backgroundColor = '#fff';\n            }\n        });\n    }\n\n    try {\n        const updateTime = this.sandbox.run(this.$el.querySelector('.chart-container'), store);\n\n        log(this.$t('editor.chartOK') + updateTime + 'ms');\n\n        // Find the appropriate throttle time\n        const debounceTime = 500;\n        const debounceTimeQuantities = [0, 500, 2000, 5000, 10000];\n        for (let i = debounceTimeQuantities.length - 1; i >= 0; i--) {\n            const quantity = debounceTimeQuantities[i];\n            const preferredDebounceTime = debounceTimeQuantities[i + 1] || 1000000;\n            if (updateTime >= quantity && this.debouncedTime !== preferredDebounceTime) {\n                this.debouncedRun = debounce(run, preferredDebounceTime, {\n                    trailing: true\n                });\n                this.debouncedTime = preferredDebounceTime;\n                break;\n            }\n        }\n\n        // Update run hash to let others known chart has been changed.\n        updateRunHash();\n\n    }\n    catch (e) {\n        log(this.$t('editor.errorInEditor'), 'error');\n        console.error(e);\n    }\n}\n\n\nexport default {\n\n    props: ['inEditor'],\n\n    data() {\n        return {\n            shared: store,\n            debouncedTime: undefined,\n            backgroundColor: '',\n            autoRun: true,\n            loading: false,\n\n            isGL\n        }\n    },\n\n    mounted() {\n        this.loading = true;\n        ensureECharts().then(() => {\n            this.loading = false;\n            if (store.runCode) {\n                this.run();\n            }\n        });\n\n        addListener(this.$el, () => {\n            if (this.sandbox) {\n                this.sandbox.resize();\n            }\n        })\n    },\n\n    computed: {\n        editLink() {\n            const params = ['c=' + URL_PARAMS.c];\n            if (URL_PARAMS.theme) {\n                params.push(['theme=' + URL_PARAMS.theme]);\n            }\n            if (URL_PARAMS.gl) {\n                params.push(['gl=' + URL_PARAMS.gl]);\n            }\n            return './editor.html?' + params.join('&');\n        }\n    },\n\n    watch: {\n        'shared.runCode'(val) {\n            if (this.autoRun || !this.sandbox) {\n                if (!this.debouncedRun) {\n                    // First run\n                    this.run();\n                }\n                else {\n                    this.debouncedRun();\n                }\n            }\n        },\n        'shared.renderer'() {\n            this.refreshAll();\n        },\n        'shared.darkMode'() {\n            this.refreshAll();\n        },\n        'shared.enableDecal'() {\n            this.refreshAll();\n        },\n        'shared.useDirtyRect'() {\n            this.refreshAll();\n        }\n    },\n\n    methods: {\n        run,\n        // debouncedRun will be created at first run\n        // debouncedRun: null,\n        refreshAll() {\n            this.dispose();\n            this.run();\n        },\n        dispose() {\n            if (this.sandbox) {\n                this.sandbox.dispose();\n            }\n        },\n        downloadExample() {\n            download();\n        },\n        screenshot() {\n            if (this.sandbox) {\n                const url = this.sandbox.getDataURL();\n                const $a = document.createElement('a');\n                $a.download = URL_PARAMS.c + '.' + (store.renderer === 'svg' ? 'svg' : 'png');\n                $a.target = '_blank';\n                $a.href = url;\n                const evt = new MouseEvent('click', {\n                    bubbles: true,\n                    cancelable: false\n                });\n                $a.dispatchEvent(evt);\n            }\n        },\n        getOption() {\n            return this.sandbox && this.sandbox.getOption();\n        }\n        // hasEditorError() {\n        //     const annotations = this.editor.getSession().getAnnotations();\n        //     for (let aid = 0, alen = annotations.length; aid < alen; ++aid) {\n        //         if (annotations[aid].type === 'error') {\n        //             return true;\n        //         }\n        //     }\n        //     return false;\n        // }\n    }\n}\n</script>\n\n<style lang=\"scss\">\n\n#chart-panel {\n    position: absolute;\n    // top: $control-panel-height;\n    top: 42px;\n    right: 15px;\n    bottom: 15px;\n    left: 15px;\n    box-sizing: border-box;\n    box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 20px;\n    border-radius: 5px;\n    background: #fff;\n    overflow: hidden;\n\n    padding: 10px;\n\n    .ec-debug-dirty-rect-container {\n        left: 10px!important;\n        top: 10px!important;\n        right: 10px!important;\n        bottom: 10px!important;\n\n        .ec-debug-dirty-rect {\n            background-color: rgba(255, 0, 0, 0.2)!important;\n            border: 1px solid red!important;\n        }\n    }\n\n    .chart-container {\n        position: relative;\n        height: 100%;\n    }\n}\n\n.render-config-container {\n    .el-radio-group {\n        label {\n            margin-bottom: 0;\n        }\n    }\n}\n\n#tool-panel {\n    position: absolute;\n    top: 0;\n    right: 0;\n    left: 0;\n    padding-top: 5px;\n    padding-left: 15px;\n\n    // .el-switch__label * {\n    //     font-size: 12px;\n    // }\n\n    .render-config-trigger {\n        margin-left: 10px;\n        cursor: pointer;\n        font-weight: 500;\n        // font-size: 12px;\n    }\n\n    label {\n        margin-bottom: 0;\n    }\n\n    .left-panel {\n        float: left;\n    }\n\n    .left-panel>* {\n        vertical-align: middle;\n        display: inline-block;\n    }\n\n    .tool-label {\n        font-weight: bold;\n        text-transform: uppercase;\n        margin-left: 20px;\n    }\n\n    .screenshot, .download, .edit {\n        float: right;\n        margin-right: 15px;\n        cursor: pointer;\n    }\n    .screenshot {\n        font-size: 22px;\n        margin-right: 10px;\n    }\n}\n\n.full {\n    #chart-panel {\n        top: 40px;\n        right: 5px;\n        bottom: 5px;\n        left: 5px;\n        box-shadow: rgba(10, 9, 9, 0.1) 0px 0px 5px;\n    }\n    #tool-panel {\n        padding-left: 5px;\n        .download, .edit {\n            margin-right: 5px;\n        }\n    }\n}\n\n.dg.main * {\n    box-sizing: content-box;\n}\n.dg.main input {\n    line-height: normal;\n}\n\n.dg.main.a {\n    overflow-x: visible;\n}\n\n.dg.main .c {\n    select {\n        color: #000;\n    }\n}\n\n</style>","<template>\n<preview></Preview>\n</template>\n\n<script>\n\nimport Preview from './Preview.vue';\nimport {store, loadExampleCode, parseSourceCode} from '../common/store';\n\nexport default {\n    components: {\n        Preview\n    },\n\n    mounted() {\n        loadExampleCode().then(code => {\n            store.runCode = parseSourceCode(code);\n        });\n    }\n}\n</script>\n\n<style lang=\"scss\">\n\n</style>","<template>\n<div class=\"example-list-item\">\n    <a target=\"_blank\" class=\"example-link\" :href=\"exampleLink\">\n        <img class=\"chart-area\" src=\"../asset/placeholder.jpg\" :data-src=\"screenshotURL\" />\n        <h4 class=\"example-title\">{{title}}</h4>\n        <h5 class=\"example-subtitle\" v-if=\"showSubtitle\">{{subtitle}}</h5>\n    </a>\n</div>\n</template>\n\n<script>\n\nimport {store} from '../common/store';\nimport {SUPPORT_WEBP, URL_PARAMS} from '../common/config';\n\nexport default {\n    props: ['example'],\n\n    computed: {\n\n        title() {\n            return (store.locale === 'zh' ? this.example.titleCN : this.example.title)\n                || this.example.title || '';\n        },\n\n        showSubtitle() {\n            return store.locale === 'zh';\n        },\n\n        subtitle() {\n            return this.example.title || '';\n        },\n\n        exampleTheme() {\n            const example = this.example;\n            return example.theme || (store.darkMode ? 'dark' : '');\n        },\n\n        exampleLink() {\n            const example = this.example;\n            const hash = ['c=' + example.id];\n            const exampleTheme = this.exampleTheme;\n            if (example.isGL) {\n                hash.push('gl=1');\n            }\n            if (exampleTheme) {\n                hash.push('theme=' + exampleTheme);\n            }\n            if ('local' in URL_PARAMS) {\n                hash.push('local');\n            }\n            if ('useDirtyRect' in URL_PARAMS) {\n                hash.push('useDirtyRect');\n            }\n            return './editor.html?' + hash.join('&');\n        },\n\n        screenshotURL() {\n            const example = this.example;\n            const themePostfix = this.exampleTheme ? ('-' + this.exampleTheme) : '';\n            const ext = SUPPORT_WEBP ? 'webp' : 'png';\n            const folder = example.isGL ? 'data-gl' : 'data';\n            return `${store.cdnRoot}/${folder}/thumb${themePostfix}/${example.id}.${ext}?_v_=${store.version}`;\n        }\n    }\n}\n</script>\n\n<style lang=\"scss\">\n\n@import \"../style/color.scss\";\n\n.example-list-item {\n    width: 100%;\n    max-width: 350px;\n    margin-bottom: 30px;\n\n    border-radius: 2px;\n\n    .example-link {\n        position: relative;\n        display: block;\n\n        .chart-area {\n            width: 100%;\n            height: 100%;\n            border-radius: 5px;\n            box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);\n            margin-top: 10px;\n        }\n\n        .example-title {\n            color: $clr-primary;\n            overflow: hidden;\n            text-overflow: ellipsis;\n            white-space: nowrap;\n\n            padding: 10px 10px 2px 10px;\n            margin: 0;\n            font-weight: normal;\n            font-size: 14px;\n            text-align: center;\n        }\n\n        .example-subtitle {\n            font-size: 12px;\n            text-align: center;\n            color: #aaa;\n            font-weight: normal;\n            // font-weight: 200;\n            overflow: hidden;\n            white-space: nowrap;\n            text-overflow: ellipsis;\n            margin: 3px 0 0 0;\n        }\n    }\n\n    .example-info {\n        padding: 5px 0;\n\n        font-weight: bold;\n\n        .chart-icon {\n            float: right;\n\n            .chart-delete {\n                display: none;\n\n                transition: 1s;\n            }\n        }\n    }\n\n    &:hover .example-info .chart-icon .chart-delete {\n        display: block;\n\n        text-decoration: none;\n    }\n}\n</style>","<template>\n<div id=\"example-explore\">\n    <div id=\"left-container\">\n        <div id=\"left-chart-nav\">\n            <scrollactive\n                active-class=\"active\"\n                :offset=\"80\"\n                :duration=\"500\"\n                :scroll-container-selector=\"'#example-explore'\"\n                bezier-easing-value=\".5,0,.35,1\"\n                @itemchanged=\"onActiveNavChanged\"\n            >\n                <ul>\n                    <li v-for=\"category in EXAMPLE_CATEGORIES\" :key=\"category\">\n                        <a class=\"left-chart-nav-link scrollactive-item\" :id=\"'left-chart-nav-' + category\"\n                            :href=\"'#chart-type-' + category\"\n                        >\n                            <span class=\"chart-icon\" v-html=\"icons[category]\"></span>\n                            <span class=\"chart-name\">{{$t('chartTypes.' + category)}}</span>\n                        </a>\n                    </li>\n                </ul>\n            </scrollactive>\n        </div>\n    </div>\n    <div id=\"explore-container\">\n        <div class=\"example-list-panel\">\n            <div v-for=\"categoryObj in exampleList\" :key=\"categoryObj.category\">\n                <h3 class=\"chart-type-head\" :id=\"'chart-type-' + categoryObj.category\">\n                    {{$t('chartTypes.' + categoryObj.category)}}\n                    <span>{{categoryObj.category}}</span>\n                </h3>\n\n                <div class=\"row\" :id=\"'chart-row-' + categoryObj.category\">\n                    <div class=\"col-xl-2 col-lg-3 col-md-4 col-sm-6\"\n                        v-for=\"exampleItem in categoryObj.examples\"\n                        :key=\"exampleItem.id\"\n                    >\n                        <ExampleCard :example=\"exampleItem\"></ExampleCard>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div id=\"toolbar\">\n        <el-switch\n            v-model=\"shared.darkMode\"\n            active-color=\"#181432\"\n            :active-text=\"$t('editor.darkMode')\"\n            :inactive-text=\"''\">\n        </el-switch>\n    </div>\n</div>\n</template>\n\n<script>\n\nimport CHART_LIST from '../data/chart-list-data';\nimport CHART_LIST_GL from '../data/chart-list-data-gl';\nimport {EXAMPLE_CATEGORIES, BLACK_MAP, URL_PARAMS} from '../common/config';\nimport {store} from '../common/store';\nimport ExampleCard from './ExampleCard.vue';\nimport LazyLoad from 'vanilla-lazyload/dist/lazyload.esm';\n// import scrollIntoView from 'scroll-into-view';\n\nconst icons = {};\n\n['line', 'bar', 'scatter', 'pie', 'radar', 'funnel', 'gauge', 'map',\n    'graph', 'treemap', 'parallel', 'sankey', 'candlestick', 'boxplot', 'heatmap',\n    'pictorialBar', 'themeRiver', 'calendar', 'custom', 'sunburst', 'tree', 'dataset', 'geo', 'lines',\n    'dataZoom', 'rich', 'drag'\n].forEach(function (category) {\n    icons[category] = require('../asset/icon/' + category + '.svg');\n});\n\nconst glIcon = require('../asset/icon/gl.svg');\n['globe', 'bar3D', 'scatter3D', 'surface', 'map3D', 'lines3D', 'line3D',\n    'scatterGL', 'linesGL', 'flowGL', 'graphGL', 'geo3D'].forEach(function (category) {\n    icons[category] = glIcon;\n});\n\nconst LAZY_LOADED_CLASS = 'ec-shot-loaded';\n\nexport default {\n\n    components: {\n        ExampleCard\n    },\n\n    data() {\n        const exampleListByCategory = {};\n\n        function addExamples(list, isGL) {\n            let categoryOrder = 0;\n            // Add by category order in each example.\n            do {\n                let added = false;\n                for (let i = 0; i < list.length; i++) {\n                    const example = list[i];\n                    if (BLACK_MAP.hasOwnProperty(example.id)) {\n                        continue;\n                    }\n                    if (typeof example.category === 'string') {\n                        example.category = [example.category];\n                    }\n\n                    const categoryStr = (example.category || [])[categoryOrder];\n                    if (categoryStr) {\n                        added = true;\n                        let categoryObj = exampleListByCategory[categoryStr];\n                        if (!categoryObj) {\n                            categoryObj = {\n                                category: categoryStr,\n                                examples: []\n                            }\n                            exampleListByCategory[categoryStr] = categoryObj;\n                        }\n                        example.isGL = isGL;\n\n                        categoryObj.examples.push(example);\n                    }\n                }\n\n                if (!added) {\n                    break;\n                }\n            } while (++categoryOrder && categoryOrder < 4)  // At most 4 category\n        }\n\n        addExamples(CHART_LIST, false);\n        addExamples(CHART_LIST_GL, true);\n\n        return {\n            shared: store,\n\n            icons,\n\n            EXAMPLE_CATEGORIES,\n            // [{\n            //  category: '',\n            //  isGL: false\n            //  examples: []\n            // }]\n            exampleListByCategory\n        }\n    },\n\n    watch: {\n        \"shared.darkMode\"() {\n            const imgs = this.$el.querySelectorAll('img.chart-area');\n            for (let i = 0; i < imgs.length; i++) {\n                // Force lazyload to update\n                imgs[i].classList.remove(LAZY_LOADED_CLASS);\n                imgs[i].setAttribute('data-was-processed', 'false');\n            }\n            this._lazyload.update();\n        }\n    },\n\n    computed: {\n        exampleList() {\n            const list = [];\n            for (let i = 0; i < EXAMPLE_CATEGORIES.length; i++) {\n                const category = EXAMPLE_CATEGORIES[i];\n                const categoryObj = this.exampleListByCategory[category];\n                if (categoryObj && categoryObj.examples.length > 0) {\n                    list.push({\n                        category,\n                        examples: categoryObj.examples\n                    });\n                }\n            }\n            return list;\n        }\n    },\n\n    mounted() {\n        this._lazyload = new LazyLoad({\n            // Container should be the scroll viewport.\n            // container: this.$el.querySelector('#explore-container .example-list-panel'),\n            elements_selector: 'img.chart-area',\n            load_delay: 400,\n            class_loaded: LAZY_LOADED_CLASS\n        });\n    },\n\n    methods: {\n        onActiveNavChanged(event, currentItem, lastActiveItem) {\n            // currentItem && currentItem.scrollIntoView && currentItem.parentNode.scrollIntoView();\n            // scrollIntoView(currentItem, {\n            //     time: 100,\n            //     cancellable: false,\n            //     align: {\n            //         top: 0,\n            //         topOffset: 50\n            //     }\n            // });\n        }\n    }\n}\n</script>\n\n<style lang=\"scss\">\n\n@import \"../style/color.scss\";\n@import \"../style/config.xl.scss\";\n\n$chart-nav-width: 200px;\n$chart-icon-width: 25px;\n$chart-icon-border: 1px;\n\n$toolbar-height: 30px;\n\n$nav-height: 50px;\n$nav-active-bg: #5470C6;\n$nav-hover-border: $nav-active-bg;\n\n$nav-text-color: #6E7079;\n$nav-hover-text-color: #464646;\n\n$pd-basic: 10px;\n$pd-sm: 6px;\n$pd-lg: 20px;\n\n#example-explore {\n    background: $clr-bg;\n\n    // Use this as scrollable viewport insteadof window because echarts-www has a viewport.\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    overflow-y: auto;\n\n    ::-webkit-scrollbar {\n        height: 4px;\n        width: 4px;\n        -webkit-transition: all 0.3s ease-in-out;\n        transition: all 0.3s ease-in-out;\n        border-radius: 2px;\n        background: #fff;\n    }\n\n    ::-webkit-scrollbar-button {\n        display: none\n    }\n\n    ::-webkit-scrollbar-thumb {\n        width: 4px;\n        min-height: 15px;\n        background: rgba(50, 50, 50, 0.2) !important;\n        -webkit-transition: all 0.3s ease-in-out;\n        transition: all 0.3s ease-in-out;\n        border-radius: 2px\n    }\n\n    ::-webkit-scrollbar-thumb:hover {\n        background: rgba(0, 0, 0, 0.5) !important\n    }\n}\n\n#explore-container {\n    margin-left: $chart-nav-width + 20px;\n    padding: 10px 10px;\n    // background-color: $clr-bg;\n}\n\n.example-list-panel {\n    margin: 30px 15px 30px 15px;\n\n    h3 {\n        margin-bottom: 20px;\n        padding-bottom: 10px;\n        border-bottom: 1px solid #E1E5F2;\n        font-weight: normal;\n        color: #464646;\n        font-size: 20px;\n    }\n    .chart-type-head span {\n        font-size: 16px;\n        padding-left: 5px;\n        color: #949CB1;\n        font-weight: 200;\n    }\n}\n\n#left-container {\n    position: sticky;\n    left: 0;\n    top: 0;\n    float: left;\n    height: calc(100%);\n    width: $chart-nav-width;\n    box-shadow: 0 0 10px rgba(0,0,0,0.1);\n    overflow-y: auto;\n\n}\n\n#toolbar {\n    position: fixed;\n    right: 30px;\n    top: 20px;\n    height: $toolbar-height;\n    background-color: #fff;\n    border-radius: $toolbar-height / 2;\n    // color: #fff;\n    padding: 4px 15px;\n    box-shadow: 0 0 10px rgba(0,0,0,0.1);\n\n    .el-switch__label * {\n        font-size: 12px;\n        // color: #fff;\n        text-transform: uppercase;\n    }\n    .el-switch__label.is-active {\n        color: #181432;\n    }\n}\n\n#left-chart-nav {\n    background-color: #fff;\n    overflow-y: hidden;\n    color: #111;\n    box-shadow: 0 0 20px rgba(0,0,0,0.2);\n\n    &:hover {\n        overflow-y: auto;\n\n        a {\n            text-decoration: none;\n        }\n    }\n\n    li {\n        // transition: background-color 0.5s;\n        cursor: pointer;\n\n        a {\n            height: 45px;\n            padding: 10px 0 10px 20px;\n            display: block;\n            // transition: background-color 0.5s;\n            text-decoration: none;\n            color: $nav-text-color;\n\n            .chart-name {\n                display: inline-block;\n                position: relative;\n                vertical-align: middle;\n                margin-left: 10px;\n            }\n\n            .chart-icon {\n                content: '';\n                width: 20px;\n                display: inline-block;\n                border-radius: 50%;\n                vertical-align: middle;\n\n                svg {\n                    width: 100%!important;\n                    height: auto!important;\n                }\n            }\n\n            &.active {\n                background-color: $nav-active-bg;\n                color: #fff;\n\n                .chart-icon * {\n                    fill: #fff;\n                }\n            }\n\n            &.active:hover {\n                color: #fff;\n            }\n        }\n\n        &:hover {\n            border-right: 4px solid $nav-hover-border;\n\n            a {\n                color: $nav-hover-text-color;\n            }\n        }\n    }\n}\n\n@media (max-width: 768px) {\n    #left-container {\n        display: none;\n    }\n    #explore-container {\n        margin-left: 0;\n    }\n}\n\n</style>","\nexport const EXAMPLE_CATEGORIES = [\n    'line',\n    'bar',\n    'pie',\n    'scatter',\n    'map',\n    'candlestick',\n    'radar',\n    'boxplot',\n    'heatmap',\n    'graph',\n    'lines',\n    'tree',\n    'treemap',\n    'sunburst',\n    'parallel',\n    'sankey',\n    'funnel',\n    'gauge',\n    'pictorialBar',\n    'themeRiver',\n    'calendar',\n    'custom',\n\n    'dataset',\n    'dataZoom',\n    'drag',\n    'rich',\n\n    'globe',\n    'bar3D',\n    'scatter3D',\n    'surface',\n    'map3D',\n    'lines3D',\n    'line3D',\n    'scatterGL',\n    'linesGL',\n    'flowGL',\n    'graphGL'\n];\n\nexport const THEMES = {\n    default: [\n        '#5470c6',\n        '#91cc75',\n        '#fac858',\n        '#ee6666',\n        '#73c0de',\n        '#3ba272',\n        '#fc8452',\n        '#9a60b4',\n        '#ea7ccc'\n    ],\n    dark: [\n        '#4992ff',\n        '#7cffb2',\n        '#fddd60',\n        '#ff6e76',\n        '#58d9f9',\n        '#05c091',\n        '#ff8a45',\n        '#8d48e3',\n        '#dd79ff'\n    ]\n};\n\nexport const BLACK_MAP = (function (list) {\n    const map = {};\n    for (var i = 0; i < list.length; i++) {\n        map[list[i]] = 1;\n    }\n    return location.href.indexOf('github.io') >= 0 ? {} : map;\n})([\n    'effectScatter-map',\n    'geo-lines',\n    'geo-map-scatter',\n    'heatmap-map',\n    'lines-airline',\n    'map-china',\n    'map-china-dataRange',\n    'map-labels',\n    'map-locate',\n    'map-province',\n    'map-world',\n    'map-world-dataRange',\n    'scatter-map',\n    'scatter-map-brush',\n    'scatter-weibo',\n    'scatter-world-population',\n    'geo3d',\n    'geo3d-with-different-height',\n    'globe-country-carousel',\n    'globe-with-echarts-surface',\n    'map3d-alcohol-consumption',\n    'map3d-wood-map',\n    'scattergl-weibo'\n]);\n\n\nconst URL_PARAMS = {};\n(location.search || '').substr(1).split('&').forEach(function (item) {\n    const kv = item.split('=');\n    URL_PARAMS[kv[0]] = kv[1];\n});\n\nexport {URL_PARAMS};\n\nexport const SUPPORT_WEBP = (function () {\n    var elem = document.createElement('canvas');\n    elem.width = elem.height = 1;\n    if (!!(elem.getContext && elem.getContext('2d'))) {\n        // was able or not to get WebP representation\n        return elem.toDataURL('image/webp').indexOf('data:image/webp') === 0;\n    }\n    // very old browser like IE 8, canvas not supported\n    return false;\n})();\n\nexport const SCRIPT_URLS = {\n    localEChartsMinJS: 'http://localhost/echarts/dist/echarts.js',\n    echartsMinJS: 'https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js',\n    echartsDir: 'https://cdn.jsdelivr.net/npm/echarts@5',\n    echartsStatMinJS: 'https://cdn.jsdelivr.net/npm/echarts-stat@latest/dist/ecStat.min.js',\n    // echartsGLMinJS: 'http://localhost/echarts-gl/dist/echarts-gl.min.js',\n    echartsGLMinJS: 'https://cdn.jsdelivr.net/npm/echarts-gl@2/dist/echarts-gl.min.js',\n    datGUIMinJS: 'https://cdn.jsdelivr.net/npm/dat.gui@0.6.5/build/dat.gui.min.js',\n    monacoDir: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.21.2/min/vs',\n    aceDir: 'https://cdn.jsdelivr.net/npm/ace-builds@1.4.12/src-min-noconflict'\n};\n","\nconst promisesCache = {};\n\nexport function loadScriptsAsync(scripts) {\n    return Promise.all(scripts.map(function (scriptUrl) {\n        if (typeof scriptUrl === 'string') {\n            scriptUrl = {\n                url: scriptUrl,\n                // TODO Not supported type\n                type: scriptUrl.match(/\\.css$/) ? 'css' : 'js'\n            };\n        }\n        if (promisesCache[scriptUrl.url]) {\n            return promisesCache[scriptUrl.url];\n        }\n        const promise = new Promise((resolve, reject) => {\n            if (scriptUrl.type === 'js') {\n                const script = document.createElement('script');\n                script.src = scriptUrl.url;\n                script.async = false;\n                script.onload = function () {\n                    resolve();\n                };\n                script.onerror = function () {\n                    reject();\n                };\n                document.body.appendChild(script);\n            }\n            else if (scriptUrl.type === 'css') {\n                const link = document.createElement('link');\n                link.rel = 'stylesheet';\n                link.href = scriptUrl.url;\n                link.onload = function () {\n                    resolve();\n                };\n                link.onerror = function () {\n                    reject();\n                };\n                document.body.appendChild(link);\n            }\n        });\n        promisesCache[scriptUrl.url] = promise;\n        return promise;\n    }));\n}\n\nexport function downloadBlob(blob, fileName) {\n    // for IE\n    if (typeof window.navigator.msSaveBlob === 'function') {\n        window.navigator.msSaveOrOpenBlob(blob, fileName);\n    }\n    else {\n        const a = document.createElement('a');\n        a.href = URL.createObjectURL(blob);\n        a.download = fileName;\n        a.click();\n        // should revoke the blob url after the download\n        URL.revokeObjectURL(a.href);\n    }\n}","export default {\n    en: {\n        editor: {\n            run: 'Run',\n            errorInEditor: 'Errors exist in code!',\n            chartOK: 'Chart has been generated successfully, ',\n\n            darkMode: 'Dark Mode',\n            enableDecal: 'Decal Pattern',\n            // lightMode: 'Light Mode',\n\n            renderCfgTitle: 'Render',\n            renderer: 'Renderer',\n            useDirtyRect: 'Use Dirty Rect',\n\n            download: 'Download',\n\n            edit: 'Edit',\n            monacoMode: 'Enable Type Checking',\n\n            tabEditor: 'Edit Example',\n            tabFullCodePreview: 'Full Code',\n            tabOptionPreview: 'Option Preview',\n            minimalBundle: 'Minimal Bundle'\n        },\n\n        chartTypes: {\n            line: 'Line',\n            bar: 'Bar',\n            pie: 'Pie',\n            scatter: 'Scatter',\n            map: 'GEO/Map',\n            candlestick: 'Candlestick',\n            radar: 'Radar',\n            boxplot: 'Boxplot',\n            heatmap: 'Heatmap',\n            graph: 'Graph',\n            lines: 'Lines',\n            tree: 'Tree',\n            treemap: 'Treemap',\n            sunburst: 'Sunburst',\n            parallel: 'Parallel',\n            sankey: 'Sankey',\n            funnel: 'Funnel',\n            gauge: 'Gauge',\n            pictorialBar: 'PictorialBar',\n            themeRiver: 'ThemeRiver',\n            calendar: 'Calendar',\n            custom: 'Custom',\n\n            dataset: 'Dataset',\n            dataZoom: 'DataZoom',\n            drag: 'Drag',\n            rich: 'Rich Text',\n\n            globe: '3D Globe',\n            bar3D: '3D Bar',\n            scatter3D: '3D Scatter',\n            surface: '3D Surface',\n            map3D: '3D Map',\n            lines3D: '3D Lines',\n            line3D: '3D Line',\n            scatterGL: 'Scatter GL',\n            linesGL: 'Lines GL',\n            flowGL: 'Flow GL',\n            graphGL: 'Graph GL'\n        }\n    },\n    zh: {\n        editor: {\n            run: '运行',\n            errorInEditor: '编辑器内容有误!',\n            chartOK: '图表已生成, ',\n\n            darkMode: '深色模式',\n            enableDecal: '无障碍花纹',\n            // lightMode: '浅色模式',\n\n            renderCfgTitle: '渲染设置',\n            useDirtyRect: '开启脏矩形优化',\n            renderer: '渲染模式',\n            download: '下载示例',\n\n            edit: '编辑',\n            monacoMode: '开启类型检查',\n\n            tabEditor: '示例编辑',\n            tabFullCodePreview: '完整代码',\n            tabOptionPreview: '配置项',\n            minimalBundle: '按需引入'\n        },\n\n        chartTypes: {\n            line: '折线图',\n            bar: '柱状图',\n            pie: '饼图',\n            scatter: '散点图',\n            map: '地理坐标/地图',\n            candlestick: 'K 线图',\n            radar: '雷达图',\n            boxplot: '盒须图',\n            heatmap: '热力图',\n            graph: '关系图',\n            lines: '路径图',\n            tree: '树图',\n            treemap: '矩形树图',\n            sunburst: '旭日图',\n            parallel: '平行坐标系',\n            sankey: '桑基图',\n            funnel: '漏斗图',\n            gauge: '仪表盘',\n            pictorialBar: '象形柱图',\n            themeRiver: '主题河流图',\n            calendar: '日历坐标系',\n            custom: '自定义系列',\n\n            dataset: '数据集',\n            dataZoom: '数据区域缩放',\n            drag: '拖拽',\n            rich: '富文本',\n\n            globe: '3D 地球',\n            bar3D: '3D 柱状图',\n            scatter3D: '3D 散点图',\n            surface: '3D 曲面',\n            map3D: '3D 地图',\n            lines3D: '3D 路径图',\n            line3D: '3D 折线图',\n            scatterGL: 'GL 散点图',\n            linesGL: 'GL 路径图',\n            flowGL: 'GL 矢量场图',\n            graphGL: 'GL 关系图'\n        }\n    }\n};","\n// import * as matter from 'gray-matter';\nimport {URL_PARAMS} from '../common/config';\n\nexport const store = {\n    cdnRoot: '',\n    version: '',\n    locale: '',\n\n    darkMode: URL_PARAMS.theme === 'dark',\n    enableDecal: 'decal' in URL_PARAMS,\n    renderer: URL_PARAMS.renderer || 'canvas',\n\n    typeCheck: URL_PARAMS.editor === 'monaco',\n    useDirtyRect: 'useDirtyRect' in URL_PARAMS,\n\n    runCode: '',\n    sourceCode: '',\n\n    runHash: '',\n\n    isMobile: window.innerWidth < 600,\n\n    editorStatus: {\n        type: '',\n        message: ''\n    }\n};\n\nexport function loadExampleCode() {\n    return new Promise(resolve => {\n        const dataRoot = URL_PARAMS.gl ? 'data-gl' : 'data';\n        $.ajax(`${store.cdnRoot}/${dataRoot}/${URL_PARAMS.c}.js?_v_${store.version}`, {\n            dataType: 'text',\n            success: (data) => {\n                resolve(data);\n            }\n        });\n    });\n}\n\nexport function parseSourceCode(code) {\n    return code.replace(/\\/\\*[\\w\\W]*?\\*\\//, '').trim();\n}\n\nlet hashId = 123;\nexport function updateRunHash() {\n    store.runHash = hashId++;\n}","\n/* eslint-disable */\n// THIS FILE IS GENERATED, DON'T MODIFY */\nexport default [\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"animating-contour-on-globe\",\n    \"tags\": [],\n    \"title\": \"Animating Contour on Globe\",\n    \"titleCN\": \"Animating Contour on Globe\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"bar3d-dataset\",\n    \"tags\": [],\n    \"title\": \"3D Bar with Dataset\",\n    \"titleCN\": \"使用 dataset 为三维柱状图设置数据\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"bar3d-global-population\",\n    \"tags\": [],\n    \"title\": \"Bar3D - Global Population\",\n    \"titleCN\": \"Bar3D - Global Population\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"bar3d-myth\",\n    \"tags\": [],\n    \"title\": \"星云\",\n    \"titleCN\": \"星云\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"bar3d-noise-modified-from-marpi-demo\",\n    \"tags\": [],\n    \"title\": \"Noise modified from marpi's demo\",\n    \"titleCN\": \"Noise modified from marpi's demo\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"bar3d-punch-card\",\n    \"tags\": [],\n    \"title\": \"Bar3D - Punch Card\",\n    \"titleCN\": \"Bar3D - Punch Card\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"bar3d-simplex-noise\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"Bar3D - Simplex Noise\",\n    \"titleCN\": \"Bar3D - Simplex Noise\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"bar3d-voxelize-image\",\n    \"tags\": [],\n    \"title\": \"Voxelize image\",\n    \"titleCN\": \"Voxelize image\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"flowGL\"\n    ],\n    \"id\": \"flowGL-noise\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"Flow on the cartesian\",\n    \"titleCN\": \"直角坐标系上的向量场\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"geo3D\"\n    ],\n    \"id\": \"geo3d\",\n    \"tags\": [],\n    \"title\": \"Geo3D\",\n    \"titleCN\": \"Geo3D\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"geo3D\"\n    ],\n    \"id\": \"geo3d-with-different-height\",\n    \"tags\": [],\n    \"title\": \"Geo3D with Different Height\",\n    \"titleCN\": \"Geo3D with Different Height\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"global-population-bar3d-on-globe\",\n    \"tags\": [],\n    \"title\": \"Global Population - Bar3D on Globe\",\n    \"titleCN\": \"Global Population - Bar3D on Globe\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"flowGL\"\n    ],\n    \"id\": \"global-wind-visualization\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Global wind visualization\",\n    \"titleCN\": \"Global wind visualization\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"flowGL\"\n    ],\n    \"id\": \"global-wind-visualization-2\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Global Wind Visualization 2\",\n    \"titleCN\": \"Global Wind Visualization 2\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-atmosphere\",\n    \"tags\": [],\n    \"title\": \"Globe with Atmosphere\",\n    \"titleCN\": \"大气层显示\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-contour-paint\",\n    \"tags\": [],\n    \"title\": \"Contour Paint\",\n    \"titleCN\": \"Contour Paint\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-country-carousel\",\n    \"tags\": [],\n    \"title\": \"Country Carousel\",\n    \"titleCN\": \"Country Carousel\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-displacement\",\n    \"tags\": [],\n    \"title\": \"Globe Displacement\",\n    \"titleCN\": \"Globe Displacement\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-echarts-gl-hello-world\",\n    \"tags\": [],\n    \"title\": \"ECharts-GL Hello World\",\n    \"titleCN\": \"ECharts-GL Hello World\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-layers\",\n    \"tags\": [],\n    \"title\": \"Globe Layers\",\n    \"titleCN\": \"Globe Layers\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-moon\",\n    \"tags\": [],\n    \"title\": \"Moon\",\n    \"titleCN\": \"Moon\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"globe-with-echarts-surface\",\n    \"tags\": [],\n    \"title\": \"Globe with ECharts Surface\",\n    \"titleCN\": \"Globe with ECharts Surface\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"graphGL\"\n    ],\n    \"id\": \"graphgl-gpu-layout\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"GraphGL GPU Layout\",\n    \"titleCN\": \"GraphGL GPU Layout\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"graphGL\"\n    ],\n    \"id\": \"graphgl-large-internet\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"GraphGL - Large Internet\",\n    \"titleCN\": \"GraphGL - Large Internet\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"graphGL\"\n    ],\n    \"id\": \"graphgl-npm-dep\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"NPM Dependencies with graphGL\",\n    \"titleCN\": \"1w 节点 2w7 边的NPM 依赖图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"image-surface-sushuang\",\n    \"tags\": [],\n    \"title\": \"Image Surface Sushuang\",\n    \"titleCN\": \"Image Surface Sushuang\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"image-to-bar3d\",\n    \"tags\": [],\n    \"title\": \"Image to Bar3D\",\n    \"titleCN\": \"Image to Bar3D\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"globe\"\n    ],\n    \"id\": \"iron-globe\",\n    \"tags\": [],\n    \"title\": \"Iron globe\",\n    \"titleCN\": \"Iron globe\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"line3D\"\n    ],\n    \"id\": \"line3d-orthographic\",\n    \"tags\": [],\n    \"title\": \"三维折线图正交投影\",\n    \"titleCN\": \"三维折线图正交投影\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"lines3D\"\n    ],\n    \"id\": \"lines3d-airline-on-globe\",\n    \"tags\": [],\n    \"title\": \"Airline on Globe\",\n    \"titleCN\": \"Airline on Globe\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"lines3D\"\n    ],\n    \"id\": \"lines3d-flights\",\n    \"tags\": [],\n    \"title\": \"Flights\",\n    \"titleCN\": \"Flights\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"lines3D\"\n    ],\n    \"id\": \"lines3d-flights-gl\",\n    \"tags\": [],\n    \"title\": \"Flights GL\",\n    \"titleCN\": \"Flights GL\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"lines3D\"\n    ],\n    \"id\": \"lines3d-flights-on-geo3d\",\n    \"tags\": [],\n    \"title\": \"Flights on Geo3D\",\n    \"titleCN\": \"Flights on Geo3D\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"linesGL\"\n    ],\n    \"id\": \"linesGL-ny\",\n    \"tags\": [],\n    \"title\": \"Use linesGL to draw 1 million ny streets.\",\n    \"titleCN\": \"实时交互的纽约街道可视化\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map3D\"\n    ],\n    \"id\": \"map3d-alcohol-consumption\",\n    \"tags\": [],\n    \"title\": \"Map3D - Alcohol Consumption\",\n    \"titleCN\": \"Map3D - Alcohol Consumption\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map3D\"\n    ],\n    \"id\": \"map3d-buildings\",\n    \"tags\": [],\n    \"title\": \"Buildings\",\n    \"titleCN\": \"Buildings\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map3D\"\n    ],\n    \"id\": \"map3d-wood-city\",\n    \"tags\": [],\n    \"title\": \"Wood City\",\n    \"titleCN\": \"Wood City\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map3D\"\n    ],\n    \"id\": \"map3d-wood-map\",\n    \"tags\": [],\n    \"title\": \"木质世界地图\",\n    \"titleCN\": \"木质世界地图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"metal-bar3d\",\n    \"tags\": [],\n    \"title\": \"Metal Bar3D\",\n    \"titleCN\": \"Metal Bar3D\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"metal-surface\",\n    \"tags\": [],\n    \"title\": \"Metal Surface\",\n    \"titleCN\": \"Metal Surface\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"parametric-surface-rose\",\n    \"tags\": [],\n    \"title\": \"Parametric Surface Rose\",\n    \"titleCN\": \"Parametric Surface Rose\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter3D\"\n    ],\n    \"id\": \"scatter3d\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"Scatter3D\",\n    \"titleCN\": \"Scatter3D\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter3D\"\n    ],\n    \"id\": \"scatter3D-dataset\",\n    \"tags\": [],\n    \"title\": \"3D Scatter with Dataset\",\n    \"titleCN\": \"使用 dataset 为三维散点图设置数据\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter3D\"\n    ],\n    \"id\": \"scatter3d-globe-population\",\n    \"tags\": [],\n    \"title\": \"Scatter3D - Globe Population\",\n    \"titleCN\": \"Scatter3D - Globe Population\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter3D\"\n    ],\n    \"id\": \"scatter3d-orthographic\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"三维散点图正交投影\",\n    \"titleCN\": \"三维散点图正交投影\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter3D\"\n    ],\n    \"id\": \"scatter3d-scatter\",\n    \"tags\": [],\n    \"title\": \"3D Scatter with Scatter Matrix\",\n    \"titleCN\": \"三维散点图和散点矩阵结合使用\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter3D\"\n    ],\n    \"id\": \"scatter3d-simplex-noise\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"Scatter3D - Simplex Noise\",\n    \"titleCN\": \"Scatter3D - Simplex Noise\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatterGL\"\n    ],\n    \"id\": \"scatterGL-gps\",\n    \"tags\": [],\n    \"title\": \"10 million Bulk GPS points\",\n    \"titleCN\": \"1 千万 GPS 点可视化\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatterGL\"\n    ],\n    \"id\": \"scattergl-weibo\",\n    \"tags\": [],\n    \"theme\": \"dark\",\n    \"title\": \"微博签到数据点亮中国\",\n    \"titleCN\": \"微博签到数据点亮中国\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"simple-surface\",\n    \"tags\": [],\n    \"title\": \"Simple Surface\",\n    \"titleCN\": \"Simple Surface\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"sphere-parametric-surface\",\n    \"tags\": [],\n    \"title\": \"Sphere Parametric Surface\",\n    \"titleCN\": \"Sphere Parametric Surface\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"stacked-bar3d\",\n    \"tags\": [],\n    \"title\": \"Stacked Bar3D\",\n    \"titleCN\": \"Stacked Bar3D\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"surface-breather\",\n    \"tags\": [],\n    \"title\": \"Breather\",\n    \"titleCN\": \"Breather\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"surface-golden-rose\",\n    \"tags\": [],\n    \"title\": \"Golden Rose\",\n    \"titleCN\": \"Golden Rose\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"surface-leather\",\n    \"tags\": [],\n    \"title\": \"皮革材质\",\n    \"titleCN\": \"皮革材质\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"surface-mollusc-shell\",\n    \"tags\": [],\n    \"title\": \"Mollusc Shell\",\n    \"titleCN\": \"Mollusc Shell\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"surface-theme-roses\",\n    \"tags\": [],\n    \"title\": \"Theme Roses\",\n    \"titleCN\": \"Theme Roses\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"surface\"\n    ],\n    \"id\": \"surface-wave\",\n    \"tags\": [],\n    \"title\": \"Surface Wave\",\n    \"titleCN\": \"Surface Wave\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"bar3D\"\n    ],\n    \"id\": \"transparent-bar3d\",\n    \"tags\": [],\n    \"title\": \"Transparent Bar3D\",\n    \"titleCN\": \"Transparent Bar3D\",\n    \"difficulty\": 10\n  }\n]","\n/* eslint-disable */\n// THIS FILE IS GENERATED, DON'T MODIFY */\nexport default [\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-background\",\n    \"tags\": [],\n    \"title\": \"Bar with Background\",\n    \"titleCN\": \"带背景色的柱状图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"bar-histogram\",\n    \"tags\": [],\n    \"title\": \"Histogram with Custom Series\",\n    \"titleCN\": \"直方图(自定义系列)\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Bar\",\n    \"titleCN\": \"基础柱状图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-tick-align\",\n    \"tags\": [],\n    \"title\": \"Axis Align with Tick\",\n    \"titleCN\": \"坐标轴刻度与标签对齐\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"calendar\"\n    ],\n    \"id\": \"calendar-simple\",\n    \"tags\": [],\n    \"title\": \"Simple Calendar\",\n    \"titleCN\": \"基础日历图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"candlestick\"\n    ],\n    \"id\": \"candlestick-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Candlestick\",\n    \"titleCN\": \"基础 K 线图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"bar\",\n      \"transform\"\n    ],\n    \"id\": \"data-transform-sort-bar\",\n    \"tags\": [],\n    \"title\": \"Sort Data in Bar Chart\",\n    \"titleCN\": \"柱状图排序\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"heatmap\"\n    ],\n    \"id\": \"heatmap-cartesian\",\n    \"tags\": [],\n    \"title\": \"Heatmap on Cartesian\",\n    \"titleCN\": \"笛卡尔坐标系上的热力图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Line Chart\",\n    \"titleCN\": \"基础折线图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-smooth\",\n    \"tags\": [],\n    \"title\": \"Smoothed Line Chart\",\n    \"titleCN\": \"基础平滑折线图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-simple\",\n    \"tags\": [],\n    \"title\": \"Referer of a website\",\n    \"titleCN\": \"某站点用户访问来源\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"radar\"\n    ],\n    \"id\": \"radar\",\n    \"tags\": [],\n    \"title\": \"Basic Radar Chart\",\n    \"titleCN\": \"基础雷达图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"sankey\"\n    ],\n    \"id\": \"sankey-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Sankey\",\n    \"titleCN\": \"基础桑基图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Scatter Chart\",\n    \"titleCN\": \"基础散点图\",\n    \"difficulty\": 0\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"area-basic\",\n    \"tags\": [],\n    \"title\": \"Basic area chart\",\n    \"titleCN\": \"基础面积图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-data-color\",\n    \"tags\": [],\n    \"title\": \"Set Style of Single Bar.\",\n    \"titleCN\": \"自定义单个柱子颜色\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-waterfall\",\n    \"tags\": [],\n    \"title\": \"Waterfall Chart\",\n    \"titleCN\": \"瀑布图(柱状图模拟)\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"calendar\",\n      \"heatmap\"\n    ],\n    \"id\": \"calendar-heatmap\",\n    \"tags\": [],\n    \"title\": \"Calendar Heatmap\",\n    \"titleCN\": \"日历热力图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"calendar\",\n      \"heatmap\"\n    ],\n    \"id\": \"calendar-vertical\",\n    \"tags\": [],\n    \"title\": \"Calendar Heatmap Vertical\",\n    \"titleCN\": \"纵向日历图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"candlestick\"\n    ],\n    \"id\": \"custom-ohlc\",\n    \"tags\": [],\n    \"title\": \"OHLC Chart\",\n    \"titleCN\": \"OHLC 图(使用自定义系列)\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-profit\",\n    \"tags\": [],\n    \"title\": \"Profit\",\n    \"titleCN\": \"利润分布直方图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"bar\"\n    ],\n    \"id\": \"dataset-encode0\",\n    \"tags\": [],\n    \"title\": \"Simple Encode\",\n    \"titleCN\": \"指定数据到坐标轴的映射\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge\",\n    \"tags\": [],\n    \"title\": \"Gauge Basic chart\",\n    \"titleCN\": \"基础仪表盘\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-simple\",\n    \"tags\": [],\n    \"title\": \"Simple Gauge\",\n    \"titleCN\": \"带标签数字动画的基础仪表盘\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-force2\",\n    \"tags\": [],\n    \"title\": \"Force Layout\",\n    \"titleCN\": \"力引导布局\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-stack\",\n    \"tags\": [],\n    \"title\": \"Stacked Line Chart\",\n    \"titleCN\": \"折线图堆叠\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"parallel\"\n    ],\n    \"id\": \"parallel-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Parallel\",\n    \"titleCN\": \"基础平行坐标\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-borderRadius\",\n    \"tags\": [],\n    \"title\": \"Doughnut Chart with Rounded Corner\",\n    \"titleCN\": \"圆角环形图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-doughnut\",\n    \"tags\": [],\n    \"title\": \"Doughnut Chart\",\n    \"titleCN\": \"环形图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"radar\"\n    ],\n    \"id\": \"radar-aqi\",\n    \"tags\": [],\n    \"title\": \"AQI - Radar Chart\",\n    \"titleCN\": \"AQI - 雷达图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"sankey\"\n    ],\n    \"id\": \"sankey-vertical\",\n    \"tags\": [],\n    \"title\": \"Sankey Orient Vertical\",\n    \"titleCN\": \"垂直方向的桑基图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-anscombe-quartet\",\n    \"tags\": [],\n    \"title\": \"Anscomb's quartet\",\n    \"titleCN\": \"Anscomb's quartet\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-clustering\",\n    \"tags\": [],\n    \"title\": \"Clustering Process\",\n    \"titleCN\": \"数据聚合\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-clustering-process\",\n    \"tags\": [],\n    \"title\": \"Clustering Process\",\n    \"titleCN\": \"聚合过程可视化\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-exponential-regression\",\n    \"tags\": [],\n    \"title\": \"Exponential Regression\",\n    \"titleCN\": \"指数回归(使用统计插件)\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"sunburst\"\n    ],\n    \"id\": \"sunburst-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Sunburst\",\n    \"titleCN\": \"基础旭日图\",\n    \"difficulty\": 1\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"area-stack\",\n    \"tags\": [],\n    \"title\": \"Stacked area chart\",\n    \"titleCN\": \"堆叠面积图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"area-stack-gradient\",\n    \"tags\": [],\n    \"title\": \"Gradient Stacked area chart\",\n    \"titleCN\": \"渐变堆叠面积图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-negative2\",\n    \"tags\": [],\n    \"title\": \"Bar Chart with Negative Value\",\n    \"titleCN\": \"交错正负轴标签\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-y-category\",\n    \"tags\": [],\n    \"title\": \"World Total Population\",\n    \"titleCN\": \"世界人口总量 - 条形图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"calendar\"\n    ],\n    \"id\": \"calendar-horizontal\",\n    \"tags\": [],\n    \"title\": \"Calendar Heatmap Horizontal\",\n    \"titleCN\": \"横向日力图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"candlestick\"\n    ],\n    \"id\": \"candlestick-sh\",\n    \"tags\": [],\n    \"title\": \"ShangHai Index\",\n    \"titleCN\": \"上证指数\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"custom\",\n      \"dataZoom\"\n    ],\n    \"id\": \"custom-error-scatter\",\n    \"tags\": [],\n    \"title\": \"Error Scatter on Catesian\",\n    \"titleCN\": \"使用自定系列给散点图添加误差范围\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"effectScatter-map\",\n    \"tags\": [],\n    \"title\": \"Air Quality\",\n    \"titleCN\": \"全国主要城市空气质量\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-speed\",\n    \"tags\": [],\n    \"title\": \"Speed Gauge\",\n    \"titleCN\": \"速度仪表盘\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-grid\",\n    \"tags\": [],\n    \"title\": \"Graph on Cartesian\",\n    \"titleCN\": \"笛卡尔坐标系上的 Graph\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-simple\",\n    \"tags\": [],\n    \"title\": \"Simple Graph\",\n    \"titleCN\": \"Graph 简单示例\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"heatmap\"\n    ],\n    \"id\": \"heatmap-large\",\n    \"tags\": [],\n    \"title\": \"Heatmap - 2w data\",\n    \"titleCN\": \"热力图 - 2w 数据\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"heatmap\"\n    ],\n    \"id\": \"heatmap-large-piecewise\",\n    \"tags\": [],\n    \"title\": \"Heatmap - Discrete Mapping of Color\",\n    \"titleCN\": \"热力图 - 颜色的离散映射\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-marker\",\n    \"tags\": [],\n    \"title\": \"Temperature Change in the coming week\",\n    \"titleCN\": \"未来一周气温变化\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"parallel\"\n    ],\n    \"id\": \"parallel-aqi\",\n    \"tags\": [],\n    \"title\": \"Parallel Aqi\",\n    \"titleCN\": \"AQI 分布(平行坐标)\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-custom\",\n    \"tags\": [],\n    \"title\": \"Customized Pie\",\n    \"titleCN\": \"饼图自定义样式\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-pattern\",\n    \"tags\": [],\n    \"title\": \"Texture on Pie Chart\",\n    \"titleCN\": \"饼图纹理\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-roseType\",\n    \"tags\": [],\n    \"title\": \"Nightingale's Rose Diagram\",\n    \"titleCN\": \"南丁格尔玫瑰图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-roseType-simple\",\n    \"tags\": [],\n    \"title\": \"Nightingale's Rose Diagram\",\n    \"titleCN\": \"基础南丁格尔玫瑰图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"radar\"\n    ],\n    \"id\": \"radar-custom\",\n    \"tags\": [],\n    \"title\": \"Customized Radar Chart\",\n    \"titleCN\": \"自定义雷达图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"sankey\"\n    ],\n    \"id\": \"sankey-itemstyle\",\n    \"tags\": [],\n    \"title\": \"Specify ItemStyle for Each Node in Sankey\",\n    \"titleCN\": \"桑基图节点自定义样式\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"sankey\"\n    ],\n    \"id\": \"sankey-levels\",\n    \"tags\": [],\n    \"title\": \"Sankey with Levels Setting\",\n    \"titleCN\": \"桑基图层级自定义样式\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-effect\",\n    \"tags\": [],\n    \"title\": \"Effect Scatter Chart\",\n    \"titleCN\": \"涟漪特效散点图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-linear-regression\",\n    \"tags\": [],\n    \"title\": \"Linear Regression\",\n    \"titleCN\": \"线性回归(使用统计插件)\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-polynomial-regression\",\n    \"tags\": [],\n    \"title\": \"Polynomial Regression\",\n    \"titleCN\": \"多项式回归(使用统计插件)\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"sunburst\"\n    ],\n    \"id\": \"sunburst-borderRadius\",\n    \"tags\": [],\n    \"title\": \"Sunburst with Rounded Corner\",\n    \"titleCN\": \"圆角旭日图\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"sunburst\"\n    ],\n    \"id\": \"sunburst-label-rotate\",\n    \"tags\": [],\n    \"title\": \"Sunburst Label Rotate\",\n    \"titleCN\": \"旭日图标签旋转\",\n    \"difficulty\": 2\n  },\n  {\n    \"category\": [\n      \"line\",\n      \"visualMap\"\n    ],\n    \"id\": \"area-pieces\",\n    \"tags\": [],\n    \"title\": \"Area Pieces\",\n    \"titleCN\": \"折线图区域高亮\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-gradient\",\n    \"tags\": [],\n    \"title\": \"Clickable Column Chart with Gradient\",\n    \"titleCN\": \"特性示例:渐变色 阴影 点击缩放\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-label-rotation\",\n    \"tags\": [],\n    \"title\": \"Bar Label Rotation\",\n    \"titleCN\": \"柱状图标签旋转\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-stack\",\n    \"tags\": [],\n    \"title\": \"Stacked Column Chart\",\n    \"titleCN\": \"堆叠柱状图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-waterfall2\",\n    \"tags\": [],\n    \"title\": \"Waterfall Chart\",\n    \"titleCN\": \"阶梯瀑布图(柱状图模拟)\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-y-category-stack\",\n    \"tags\": [],\n    \"title\": \"Stacked Horizontal Bar\",\n    \"titleCN\": \"堆叠条形图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"candlestick\"\n    ],\n    \"id\": \"candlestick-large\",\n    \"tags\": [],\n    \"title\": \"Large Scale Candlestick\",\n    \"titleCN\": \"大数据量K线图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-bar-trend\",\n    \"tags\": [],\n    \"title\": \"Custom Bar Trend\",\n    \"titleCN\": \"使用自定义系列添加柱状图趋势\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-cartesian-polygon\",\n    \"tags\": [],\n    \"title\": \"Custom Cartesian Polygon\",\n    \"titleCN\": \"自定义多边形图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-error-bar\",\n    \"tags\": [],\n    \"title\": \"Error Bar on Catesian\",\n    \"titleCN\": \"使用自定系列给柱状图添加误差范围\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-profile\",\n    \"tags\": [],\n    \"title\": \"Profile\",\n    \"titleCN\": \"性能分析图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"cycle-plot\",\n    \"tags\": [],\n    \"title\": \"Cycle Plot\",\n    \"titleCN\": \"Cycle Plot\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"data-transform-filter\",\n    \"tags\": [],\n    \"title\": \"Data Transform Fitler\",\n    \"titleCN\": \"数据过滤\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"pie\",\n      \"transform\"\n    ],\n    \"id\": \"data-transform-multiple-pie\",\n    \"tags\": [],\n    \"title\": \"Partition Data to Pies\",\n    \"titleCN\": \"分割数据到数个饼图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"pie\"\n    ],\n    \"id\": \"dataset-default\",\n    \"tags\": [],\n    \"title\": \"Default arrangement\",\n    \"titleCN\": \"默认 encode 设置\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"dataset\"\n    ],\n    \"id\": \"dataset-encode1\",\n    \"tags\": [],\n    \"title\": \"Encode and Matrix\",\n    \"titleCN\": \"指定数据到坐标轴的映射\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-progress\",\n    \"tags\": [],\n    \"title\": \"Grogress Gauge\",\n    \"titleCN\": \"进度仪表盘\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-stage\",\n    \"tags\": [],\n    \"title\": \"Stage Speed Gauge\",\n    \"titleCN\": \"阶段速度仪表盘\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-force\",\n    \"tags\": [],\n    \"title\": \"Force Layout\",\n    \"titleCN\": \"力引导布局\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-label-overlap\",\n    \"tags\": [],\n    \"title\": \"Hide Overlapped Label\",\n    \"titleCN\": \"关系图自动隐藏重叠标签\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"heatmap\"\n    ],\n    \"id\": \"heatmap-bmap\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Heatmap on Baidu Map Extension\",\n    \"titleCN\": \"热力图与百度地图扩展\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"heatmap\"\n    ],\n    \"id\": \"heatmap-map\",\n    \"tags\": [],\n    \"title\": \"Air Qulity\",\n    \"titleCN\": \"全国主要城市空气质量\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-gradient\",\n    \"tags\": [],\n    \"title\": \"Line Gradient\",\n    \"titleCN\": \"折线图的渐变\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-sections\",\n    \"tags\": [],\n    \"title\": \"Distribution of Electricity\",\n    \"titleCN\": \"一天用电量分布\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-alignTo\",\n    \"tags\": [],\n    \"title\": \"Pie Label Align\",\n    \"titleCN\": \"饼图标签对齐\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-labelLine-adjust\",\n    \"tags\": [],\n    \"title\": \"Label Line Adjust\",\n    \"titleCN\": \"饼图引导线调整\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"radar\"\n    ],\n    \"id\": \"radar2\",\n    \"tags\": [],\n    \"title\": \"Proportion of Browsers\",\n    \"titleCN\": \"浏览器占比变化\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"sankey\"\n    ],\n    \"id\": \"sankey-energy\",\n    \"tags\": [],\n    \"title\": \"Gradient Edge\",\n    \"titleCN\": \"桑基图渐变色边\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"sankey\"\n    ],\n    \"id\": \"sankey-nodeAlign-left\",\n    \"tags\": [],\n    \"title\": \"Node Align Left in Sankey\",\n    \"titleCN\": \"桑基图左对齐布局\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"sankey\"\n    ],\n    \"id\": \"sankey-nodeAlign-right\",\n    \"tags\": [],\n    \"title\": \"Node Align Right in Sankey\",\n    \"titleCN\": \"桑基图右对齐布局\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-punchCard\",\n    \"tags\": [],\n    \"title\": \"Punch Card of Github\",\n    \"titleCN\": \"GitHub 打卡气泡图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-single-axis\",\n    \"tags\": [],\n    \"title\": \"Scatter on Single Axis\",\n    \"titleCN\": \"单轴散点图\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-weight\",\n    \"tags\": [],\n    \"title\": \"Distribution of Height and Weight\",\n    \"titleCN\": \"男性女性身高体重分布\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"sunburst\"\n    ],\n    \"id\": \"sunburst-monochrome\",\n    \"tags\": [],\n    \"title\": \"Monochrome Sunburst\",\n    \"titleCN\": \"Monochrome Sunburst\",\n    \"difficulty\": 3\n  },\n  {\n    \"category\": [\n      \"line\",\n      \"dataZoom\"\n    ],\n    \"id\": \"area-simple\",\n    \"tags\": [],\n    \"title\": \"Large scale area chart\",\n    \"titleCN\": \"大数据量面积图\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-brush\",\n    \"tags\": [],\n    \"title\": \"Brush Select on Column Chart\",\n    \"titleCN\": \"柱状图框选\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-negative\",\n    \"tags\": [],\n    \"title\": \"Bar Chart with Negative Value\",\n    \"titleCN\": \"正负条形图\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar1\",\n    \"tags\": [],\n    \"title\": \"Rainfall and Evaporation\",\n    \"titleCN\": \"某地区蒸发量和降水量\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"calendar\",\n      \"graph\"\n    ],\n    \"id\": \"calendar-graph\",\n    \"tags\": [],\n    \"title\": \"Calendar Graph\",\n    \"titleCN\": \"日历关系图\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"calendar\"\n    ],\n    \"id\": \"calendar-lunar\",\n    \"tags\": [],\n    \"title\": \"Calendar Lunar\",\n    \"titleCN\": \"农历日历图\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"candlestick\"\n    ],\n    \"id\": \"candlestick-touch\",\n    \"tags\": [],\n    \"title\": \"Axis Pointer Link and Touch\",\n    \"titleCN\": \"触屏上的坐标轴指示器\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"confidence-band\",\n    \"tags\": [],\n    \"title\": \"Confidence Band\",\n    \"titleCN\": \"Confidence Band\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"custom\",\n      \"dataZoom\",\n      \"drag\"\n    ],\n    \"id\": \"custom-gantt-flight\",\n    \"tags\": [],\n    \"title\": \"Gantt Chart of Airport Flights\",\n    \"titleCN\": \"机场航班甘特图\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-polar-heatmap\",\n    \"tags\": [],\n    \"title\": \"Polar Heatmap\",\n    \"titleCN\": \"极坐标热力图(自定义系列)\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"boxplot\"\n    ],\n    \"id\": \"data-transform-aggregate\",\n    \"tags\": [],\n    \"title\": \"Data Transform Simple Aggregate\",\n    \"titleCN\": \"简单的数据聚合\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-grade\",\n    \"tags\": [],\n    \"title\": \"Grade Gauge\",\n    \"titleCN\": \"等级仪表盘\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-multi-title\",\n    \"tags\": [],\n    \"title\": \"Multi Title Gauge\",\n    \"titleCN\": \"多标题仪表盘\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-temperature\",\n    \"tags\": [],\n    \"title\": \"Temperature Gauge chart\",\n    \"titleCN\": \"气温仪表盘\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph\",\n    \"tags\": [],\n    \"title\": \"Les Miserables\",\n    \"titleCN\": \"悲惨世界人物关系图\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"grid-multiple\",\n    \"tags\": [],\n    \"title\": \"Rainfall and Water Flow\",\n    \"titleCN\": \"雨量流量关系图\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-aqi\",\n    \"tags\": [],\n    \"title\": \"Beijing AQI\",\n    \"titleCN\": \"北京 AQI 可视化\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"mix-line-bar\",\n    \"tags\": [],\n    \"title\": \"Mixed Line and Bar\",\n    \"titleCN\": \"折柱混合\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"mix-zoom-on-value\",\n    \"tags\": [],\n    \"title\": \"Mix Zoom On Value\",\n    \"titleCN\": \"多数值轴轴缩放\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"multiple-x-axis\",\n    \"tags\": [],\n    \"title\": \"Multiple X Axes\",\n    \"titleCN\": \"多 X 轴\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"multiple-y-axis\",\n    \"tags\": [],\n    \"title\": \"Multiple Y Axes\",\n    \"titleCN\": \"多 Y 轴示例\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"parallel\"\n    ],\n    \"id\": \"parallel-nutrients\",\n    \"tags\": [],\n    \"title\": \"Parallel Nutrients\",\n    \"titleCN\": \"营养结构(平行坐标)\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"pie\"\n    ],\n    \"id\": \"pie-legend\",\n    \"tags\": [],\n    \"title\": \"Pie with Scrollable Legend\",\n    \"titleCN\": \"可滚动的图例\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"pie\",\n      \"rich\"\n    ],\n    \"id\": \"pie-rich-text\",\n    \"tags\": [],\n    \"title\": \"Pie Special Label\",\n    \"titleCN\": \"富文本标签\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-label-align-right\",\n    \"tags\": [],\n    \"title\": \"Align Label on the Top\",\n    \"titleCN\": \"散点图标签顶部对齐\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-label-align-top\",\n    \"tags\": [],\n    \"title\": \"Align Label on the Top\",\n    \"titleCN\": \"散点图标签顶部对齐\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"sunburst\"\n    ],\n    \"id\": \"sunburst-visualMap\",\n    \"tags\": [],\n    \"title\": \"Sunburst VisualMap\",\n    \"titleCN\": \"旭日图使用视觉编码\",\n    \"difficulty\": 4\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"area-rainfall\",\n    \"tags\": [],\n    \"title\": \"Rainfall\",\n    \"titleCN\": \"雨量流量关系图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"area-time-axis\",\n    \"tags\": [],\n    \"title\": \"Area Chart with Time Axis\",\n    \"titleCN\": \"时间轴折线图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-animation-delay\",\n    \"tags\": [],\n    \"title\": \"Animation Delay\",\n    \"titleCN\": \"柱状图动画延迟\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-large\",\n    \"tags\": [],\n    \"title\": \"Large Scale Bar Chart\",\n    \"titleCN\": \"大数据量柱图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-race\",\n    \"tags\": [],\n    \"title\": \"Bar Race\",\n    \"titleCN\": \"动态排序柱状图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"line\",\n      \"pie\"\n    ],\n    \"id\": \"dataset-link\",\n    \"tags\": [],\n    \"title\": \"Share Dataset\",\n    \"titleCN\": \"联动和共享数据集\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"bar\"\n    ],\n    \"id\": \"dataset-series-layout-by\",\n    \"tags\": [],\n    \"title\": \"Series Layout By Column or Row\",\n    \"titleCN\": \"系列按行和按列排布\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"bar\"\n    ],\n    \"id\": \"dataset-simple0\",\n    \"tags\": [],\n    \"title\": \"Simple Example of Dataset\",\n    \"titleCN\": \"最简单的数据集(dataset)\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"dataset\",\n      \"bar\"\n    ],\n    \"id\": \"dataset-simple1\",\n    \"tags\": [],\n    \"title\": \"Dataset in Object Array\",\n    \"titleCN\": \"对象数组的输入格式\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"dynamic-data2\",\n    \"tags\": [],\n    \"title\": \"Dynamic Data + Time Axis\",\n    \"titleCN\": \"动态数据 + 时间坐标轴\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-ring\",\n    \"tags\": [],\n    \"title\": \"Ring Gauge\",\n    \"titleCN\": \"得分环\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-circular-layout\",\n    \"tags\": [],\n    \"title\": \"Les Miserables\",\n    \"titleCN\": \"悲惨世界人物关系图(环形布局)\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-function\",\n    \"tags\": [],\n    \"title\": \"Function Plot\",\n    \"titleCN\": \"函数绘图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-race\",\n    \"tags\": [],\n    \"title\": \"Line Race\",\n    \"titleCN\": \"动态排序折线图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"pie\",\n      \"rich\"\n    ],\n    \"id\": \"pie-nest\",\n    \"tags\": [],\n    \"title\": \"Nested Pies\",\n    \"titleCN\": \"嵌套环形图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-large\",\n    \"tags\": [],\n    \"title\": \"Large Scatter\",\n    \"titleCN\": \"大规模散点图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-nebula\",\n    \"tags\": [],\n    \"title\": \"Scatter Nebula\",\n    \"titleCN\": \"大规模星云散点图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-stream-visual\",\n    \"tags\": [],\n    \"title\": \"Visual interaction with stream\",\n    \"titleCN\": \"流式渲染和视觉映射操作\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"sunburst\"\n    ],\n    \"id\": \"sunburst-drink\",\n    \"tags\": [],\n    \"title\": \"Drink Flavors\",\n    \"titleCN\": \"Drink Flavors\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"custom\",\n      \"dataZoom\"\n    ],\n    \"id\": \"wind-barb\",\n    \"tags\": [],\n    \"title\": \"Wind Barb\",\n    \"titleCN\": \"风向图\",\n    \"difficulty\": 5\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-race-country\",\n    \"tags\": [],\n    \"title\": \"Bar Race\",\n    \"titleCN\": \"动态排序柱状图 - 人均收入\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"bar\",\n      \"rich\"\n    ],\n    \"id\": \"bar-rich-text\",\n    \"tags\": [],\n    \"title\": \"Wheater Statistics\",\n    \"titleCN\": \"天气统计(富文本)\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"bubble-gradient\",\n    \"tags\": [],\n    \"title\": \"Bubble Chart\",\n    \"titleCN\": \"气泡图\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"calendar\",\n      \"pie\"\n    ],\n    \"id\": \"calendar-pie\",\n    \"tags\": [],\n    \"title\": \"Calendar Pie\",\n    \"titleCN\": \"日历饼图\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"custom\",\n      \"map\"\n    ],\n    \"id\": \"custom-hexbin\",\n    \"tags\": [],\n    \"title\": \"Hexagonal Binning\",\n    \"titleCN\": \"六边形分箱图(自定义系列)\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"dynamic-data\",\n    \"tags\": [],\n    \"title\": \"Dynamic Data\",\n    \"titleCN\": \"动态数据\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-barometer\",\n    \"tags\": [],\n    \"title\": \"Gauge Barometer chart\",\n    \"titleCN\": \"气压表\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-force-dynamic\",\n    \"tags\": [],\n    \"title\": \"Graph Dynamic\",\n    \"titleCN\": \"动态增加图节点\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-markline\",\n    \"tags\": [],\n    \"title\": \"Line with Marklines\",\n    \"titleCN\": \"折线图的标记线\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-style\",\n    \"tags\": [],\n    \"title\": \"Line Style and Item Style\",\n    \"titleCN\": \"自定义折线图样式\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"mix-timeline-finance\",\n    \"tags\": [],\n    \"title\": \"Finance Indices 2002\",\n    \"titleCN\": \"2002全国宏观经济指标\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"sunburst\"\n    ],\n    \"id\": \"sunburst-book\",\n    \"tags\": [],\n    \"title\": \"Book Records\",\n    \"titleCN\": \"书籍分布\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"watermark\",\n    \"tags\": [],\n    \"title\": \"Watermark - ECharts Download\",\n    \"titleCN\": \"水印 - ECharts 下载统计\",\n    \"difficulty\": 6\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-polar-real-estate\",\n    \"tags\": [],\n    \"title\": \"Bar Chart on Polar\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-polar-stack\",\n    \"tags\": [],\n    \"title\": \"Stacked Bar Chart on Polar\",\n    \"titleCN\": \"极坐标系下的堆叠柱状图\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"bar-polar-stack-radial\",\n    \"tags\": [],\n    \"title\": \"Stacked Bar Chart on Polar(Radial)\",\n    \"titleCN\": \"极坐标系下的堆叠柱状图\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"custom\",\n      \"calendar\"\n    ],\n    \"id\": \"custom-calendar-icon\",\n    \"tags\": [],\n    \"title\": \"Custom Calendar Icon\",\n    \"titleCN\": \"日历图自定义图标\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-wind\",\n    \"tags\": [],\n    \"title\": \"Use custom series to draw wind vectors\",\n    \"titleCN\": \"使用自定义系列绘制风场\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-clock\",\n    \"tags\": [],\n    \"title\": \"Clock Gauge\",\n    \"titleCN\": \"时钟仪表盘\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-life-expectancy\",\n    \"tags\": [],\n    \"title\": \"Graph Life Expectancy\",\n    \"titleCN\": \"Graph Life Expectancy\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-in-cartesian-coordinate-system\",\n    \"tags\": [],\n    \"title\": \"Line Chart in Cartesian Coordinate System\",\n    \"titleCN\": \"双数值轴折线图\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-log\",\n    \"tags\": [],\n    \"title\": \"Log Axis\",\n    \"titleCN\": \"对数轴示例\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-step\",\n    \"tags\": [],\n    \"title\": \"Step Line\",\n    \"titleCN\": \"阶梯折线图\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"bar\"\n    ],\n    \"id\": \"polar-roundCap\",\n    \"tags\": [],\n    \"title\": \"Rounded Bar on Polar\",\n    \"titleCN\": \"圆角环形图\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-aqi-color\",\n    \"tags\": [],\n    \"title\": \"Scatter Aqi Color\",\n    \"titleCN\": \"AQI 气泡图\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-nutrients\",\n    \"tags\": [],\n    \"title\": \"Scatter Nutrients\",\n    \"titleCN\": \"营养分布散点图\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-nutrients-matrix\",\n    \"tags\": [],\n    \"title\": \"Scatter Nutrients Matrix\",\n    \"titleCN\": \"营养分布散点矩阵\",\n    \"difficulty\": 7\n  },\n  {\n    \"category\": [\n      \"gauge\"\n    ],\n    \"id\": \"gauge-car\",\n    \"tags\": [],\n    \"title\": \"Gauge Car\",\n    \"titleCN\": \"Gauge Car\",\n    \"difficulty\": 8\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-webkit-dep\",\n    \"tags\": [],\n    \"title\": \"Graph Webkit Dep\",\n    \"titleCN\": \"WebKit 模块关系依赖图\",\n    \"difficulty\": 8\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-easing\",\n    \"tags\": [],\n    \"title\": \"Line Easing Visualizing\",\n    \"titleCN\": \"缓动函数可视化\",\n    \"difficulty\": 8\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-y-category\",\n    \"tags\": [],\n    \"title\": \"Line Y Category\",\n    \"titleCN\": \"垂直折线图(Y轴为类目轴)\",\n    \"difficulty\": 8\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-polar-punchCard\",\n    \"tags\": [],\n    \"title\": \"Punch Card of Github\",\n    \"titleCN\": \"GitHub 打卡气泡图(极坐标)\",\n    \"difficulty\": 8\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-aggregate-scatter-bar\",\n    \"tags\": [],\n    \"title\": \"Aggregate Morphing Between Scatter and Bar\",\n    \"titleCN\": \"聚合分割形变(散点图 - 柱状图)\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-aggregate-scatter-pie\",\n    \"tags\": [],\n    \"title\": \"Aggregate Morphing Between Scatter and Pie\",\n    \"titleCN\": \"聚合分割形变(散点图 - 饼图)\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-gauge\",\n    \"tags\": [],\n    \"title\": \"Custom Gauge\",\n    \"titleCN\": \"自定义仪表\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"graph\"\n    ],\n    \"id\": \"graph-npm\",\n    \"tags\": [],\n    \"title\": \"NPM Dependencies\",\n    \"titleCN\": \"NPM 依赖关系图\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-graphic\",\n    \"tags\": [],\n    \"title\": \"Custom Graphic Component\",\n    \"titleCN\": \"自定义图形组件\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-pen\",\n    \"tags\": [],\n    \"title\": \"Click to Add Points\",\n    \"titleCN\": \"点击添加折线图拐点\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-life-expectancy-timeline\",\n    \"tags\": [],\n    \"title\": \"Life Expectancy and GDP\",\n    \"titleCN\": \"各国人均寿命与GDP关系演变\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-painter-choice\",\n    \"tags\": [],\n    \"title\": \"Master Painter Color Choices Throughout History\",\n    \"titleCN\": \"Master Painter Color Choices Throughout History\",\n    \"difficulty\": 9\n  },\n  {\n    \"category\": [\n      \"boxplot\"\n    ],\n    \"id\": \"boxplot-light-velocity\",\n    \"tags\": [],\n    \"title\": \"Boxplot Light Velocity\",\n    \"titleCN\": \"基础盒须图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"boxplot\"\n    ],\n    \"id\": \"boxplot-light-velocity2\",\n    \"tags\": [],\n    \"title\": \"Boxplot Light Velocity2\",\n    \"titleCN\": \"垂直方向盒须图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"boxplot\"\n    ],\n    \"id\": \"boxplot-multi\",\n    \"tags\": [],\n    \"title\": \"Multiple Categories\",\n    \"titleCN\": \"多系列盒须图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [],\n    \"id\": \"calendar-effectscatter\",\n    \"tags\": [],\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"candlestick\"\n    ],\n    \"id\": \"candlestick-brush\",\n    \"tags\": [],\n    \"title\": \"Candlestick Brush\",\n    \"titleCN\": \"日力图刷选\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"candlestick\"\n    ],\n    \"id\": \"candlestick-sh-2015\",\n    \"tags\": [],\n    \"title\": \"ShangHai Index, 2015\",\n    \"titleCN\": \"2015 年上证指数\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [],\n    \"id\": \"covid-america\",\n    \"tags\": [],\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-aggregate-scatter-cluster\",\n    \"tags\": [],\n    \"title\": \"Aggregate Morphing Between Scatter Clustering\",\n    \"titleCN\": \"聚合分割形变(散点图聚类)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter\",\n      \"map\"\n    ],\n    \"id\": \"effectScatter-bmap\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Air Quality - Baidu Map\",\n    \"titleCN\": \"全国主要城市空气质量 - 百度地图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"funnel\"\n    ],\n    \"id\": \"funnel\",\n    \"tags\": [],\n    \"title\": \"Funnel Chart\",\n    \"titleCN\": \"漏斗图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"funnel\"\n    ],\n    \"id\": \"funnel-align\",\n    \"tags\": [],\n    \"title\": \"Funnel (align)\",\n    \"titleCN\": \"漏斗图(对比)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"funnel\"\n    ],\n    \"id\": \"funnel-customize\",\n    \"tags\": [],\n    \"title\": \"Customized Funnel\",\n    \"titleCN\": \"漏斗图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"funnel\"\n    ],\n    \"id\": \"funnel-mutiple\",\n    \"tags\": [],\n    \"title\": \"Multiple Funnels\",\n    \"titleCN\": \"漏斗图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-beef-cuts\",\n    \"tags\": [],\n    \"title\": \"GEO Beef Cuts\",\n    \"titleCN\": \"庖丁解牛\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-lines\",\n    \"tags\": [],\n    \"title\": \"Migration\",\n    \"titleCN\": \"模拟迁徙\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-map-scatter\",\n    \"tags\": [],\n    \"title\": \"map and scatter share a geo\",\n    \"titleCN\": \"map and scatter share a geo\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-organ\",\n    \"tags\": [],\n    \"title\": \"Organ Data with SVG\",\n    \"titleCN\": \"内脏数据(SVG)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-seatmap-flight\",\n    \"tags\": [],\n    \"title\": \"Flight Seatmap with SVG\",\n    \"titleCN\": \"航班选座(SVG)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-svg-lines\",\n    \"tags\": [],\n    \"title\": \"GEO SVG Lines\",\n    \"titleCN\": \"GEO 路径图(SVG)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-svg-map\",\n    \"tags\": [],\n    \"title\": \"GEO SVG Map\",\n    \"titleCN\": \"地图(SVG)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"geo-svg-traffic\",\n    \"tags\": [],\n    \"title\": \"GEO SVG Traffic\",\n    \"titleCN\": \"交通(SVG)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"line\",\n      \"drag\"\n    ],\n    \"id\": \"line-draggable\",\n    \"tags\": [],\n    \"title\": \"Try Dragging these Points\",\n    \"titleCN\": \"可拖拽点\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-polar\",\n    \"tags\": [],\n    \"title\": \"Two Value-Axes in Polar\",\n    \"titleCN\": \"极坐标双数值轴\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"line\"\n    ],\n    \"id\": \"line-polar2\",\n    \"tags\": [],\n    \"title\": \"Two Value-Axes in Polar\",\n    \"titleCN\": \"极坐标双数值轴\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"line\",\n      \"dataZoom\"\n    ],\n    \"id\": \"line-tooltip-touch\",\n    \"tags\": [],\n    \"title\": \"Tooltip and DataZoom on Mobile\",\n    \"titleCN\": \"移动端上的 dataZoom 和 tooltip\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\",\n      \"lines\"\n    ],\n    \"id\": \"lines-airline\",\n    \"tags\": [],\n    \"title\": \"65k+ Airline\",\n    \"titleCN\": \"65k+ 飞机航线\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\",\n      \"lines\"\n    ],\n    \"id\": \"lines-bmap\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"A Hiking Trail in Hangzhou - Baidu Map\",\n    \"titleCN\": \"杭州热门步行路线 - 百度地图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\",\n      \"lines\"\n    ],\n    \"id\": \"lines-bmap-bus\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Bus Lines of Beijing - Baidu Map\",\n    \"titleCN\": \"北京公交路线 - 百度地图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\",\n      \"lines\"\n    ],\n    \"id\": \"lines-bmap-effect\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Bus Lines of Beijing - Line Effect\",\n    \"titleCN\": \"北京公交路线 - 线特效\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\",\n      \"lines\"\n    ],\n    \"id\": \"lines-ny\",\n    \"tags\": [],\n    \"title\": \"Use lines to draw 1 million ny streets.\",\n    \"titleCN\": \"使用线图绘制近 100 万的纽约街道数据\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-bin\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Binning on Map\",\n    \"titleCN\": \"Binning on Map\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-china\",\n    \"tags\": [],\n    \"title\": \"Map China\",\n    \"titleCN\": \"Map China\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-china-dataRange\",\n    \"tags\": [],\n    \"title\": \"Sales of iphone\",\n    \"titleCN\": \"iphone销量\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-HK\",\n    \"tags\": [],\n    \"title\": \"Population Density of HongKong (2011)\",\n    \"titleCN\": \"香港18区人口密度 (2011)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-labels\",\n    \"tags\": [],\n    \"title\": \"Rich Text Labels on Map\",\n    \"titleCN\": \"地图上的富文本标签\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-locate\",\n    \"tags\": [],\n    \"title\": \"Map Locate\",\n    \"titleCN\": \"Map Locate\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-polygon\",\n    \"tags\": [\n      \"bmap\"\n    ],\n    \"title\": \"Draw Polygon on Map\",\n    \"titleCN\": \"在地图上绘制多边形\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-province\",\n    \"tags\": [],\n    \"title\": \"Switch among 34 Provinces\",\n    \"titleCN\": \"34 省切换查看\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-usa\",\n    \"tags\": [],\n    \"title\": \"USA Population Estimates (2012)\",\n    \"titleCN\": \"USA Population Estimates (2012)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-world\",\n    \"tags\": [],\n    \"title\": \"Map World\",\n    \"titleCN\": \"Map World\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"map\"\n    ],\n    \"id\": \"map-world-dataRange\",\n    \"tags\": [],\n    \"title\": \"World Population (2010)\",\n    \"titleCN\": \"World Population (2010)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"pictorialBar\"\n    ],\n    \"id\": \"pictorialBar-body-fill\",\n    \"tags\": [],\n    \"title\": \"Water Content\",\n    \"titleCN\": \"人体含水量\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"pictorialBar\"\n    ],\n    \"id\": \"pictorialBar-dotted\",\n    \"tags\": [],\n    \"title\": \"Dotted bar\",\n    \"titleCN\": \"虚线柱状图效果\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"pictorialBar\"\n    ],\n    \"id\": \"pictorialBar-forest\",\n    \"tags\": [],\n    \"title\": \"Expansion of forest\",\n    \"titleCN\": \"森林的增长\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"pictorialBar\"\n    ],\n    \"id\": \"pictorialBar-hill\",\n    \"tags\": [],\n    \"title\": \"Wish List and Mountain Height\",\n    \"titleCN\": \"圣诞愿望清单和山峰高度\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"pictorialBar\"\n    ],\n    \"id\": \"pictorialBar-spirit\",\n    \"tags\": [],\n    \"title\": \"Spirits\",\n    \"titleCN\": \"精灵\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"pictorialBar\"\n    ],\n    \"id\": \"pictorialBar-vehicle\",\n    \"tags\": [],\n    \"title\": \"Vehicles\",\n    \"titleCN\": \"交通工具\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"pictorialBar\"\n    ],\n    \"id\": \"pictorialBar-velocity\",\n    \"tags\": [],\n    \"title\": \"Velocity of Christmas Reindeers\",\n    \"titleCN\": \"驯鹿的速度\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"radar\"\n    ],\n    \"id\": \"radar-multiple\",\n    \"tags\": [],\n    \"title\": \"Multiple Radar\",\n    \"titleCN\": \"多雷达图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-map\",\n    \"tags\": [],\n    \"title\": \"Air Quality\",\n    \"titleCN\": \"全国主要城市空气质量\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-map-brush\",\n    \"tags\": [],\n    \"title\": \"Scatter Map Brush\",\n    \"titleCN\": \"Scatter Map Brush\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"parallel\",\n      \"scatter\"\n    ],\n    \"id\": \"scatter-matrix\",\n    \"tags\": [],\n    \"title\": \"Scatter Matrix\",\n    \"titleCN\": \"散点矩阵和平行坐标\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-weibo\",\n    \"tags\": [],\n    \"title\": \"Sign in of weibo\",\n    \"titleCN\": \"微博签到数据点亮中国\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-world-population\",\n    \"tags\": [],\n    \"title\": \"World Population (2011)\",\n    \"titleCN\": \"World Population (2011)\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"themeRiver\"\n    ],\n    \"id\": \"themeRiver-basic\",\n    \"tags\": [],\n    \"title\": \"ThemeRiver\",\n    \"titleCN\": \"主题河流图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"themeRiver\"\n    ],\n    \"id\": \"themeRiver-lastfm\",\n    \"tags\": [],\n    \"title\": \"ThemeRiver Lastfm\",\n    \"titleCN\": \"ThemeRiver Lastfm\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"tree\"\n    ],\n    \"id\": \"tree-basic\",\n    \"tags\": [],\n    \"title\": \"From Left to Right Tree\",\n    \"titleCN\": \"从左到右树状图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"tree\"\n    ],\n    \"id\": \"tree-legend\",\n    \"tags\": [],\n    \"title\": \"Multiple Trees\",\n    \"titleCN\": \"多棵树\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"tree\"\n    ],\n    \"id\": \"tree-orient-bottom-top\",\n    \"tags\": [],\n    \"title\": \"From Bottom to Top Tree\",\n    \"titleCN\": \"从下到上树状图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"tree\"\n    ],\n    \"id\": \"tree-orient-right-left\",\n    \"tags\": [],\n    \"title\": \"From Right to Left Tree\",\n    \"titleCN\": \"从右到左树状图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"tree\"\n    ],\n    \"id\": \"tree-polyline\",\n    \"tags\": [],\n    \"title\": \"Tree with Polyline Edge\",\n    \"titleCN\": \"折线树图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"tree\"\n    ],\n    \"id\": \"tree-radial\",\n    \"tags\": [],\n    \"title\": \"Radial Tree\",\n    \"titleCN\": \"径向树状图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"tree\"\n    ],\n    \"id\": \"tree-vertical\",\n    \"tags\": [],\n    \"title\": \"From Top to Bottom Tree\",\n    \"titleCN\": \"从上到下树状图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"treemap\"\n    ],\n    \"id\": \"treemap-disk\",\n    \"tags\": [],\n    \"title\": \"Disk Usage\",\n    \"titleCN\": \"磁盘占用\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"treemap\"\n    ],\n    \"id\": \"treemap-drill-down\",\n    \"tags\": [],\n    \"title\": \"ECharts Option Query\",\n    \"titleCN\": \"ECharts 配置项查询分布\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"treemap\"\n    ],\n    \"id\": \"treemap-obama\",\n    \"tags\": [],\n    \"title\": \"How $3.7 Trillion is Spent\",\n    \"titleCN\": \"How $3.7 Trillion is Spent\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"treemap\"\n    ],\n    \"id\": \"treemap-show-parent\",\n    \"tags\": [],\n    \"title\": \"Show Parent Labels\",\n    \"titleCN\": \"显示父层级标签\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"treemap\"\n    ],\n    \"id\": \"treemap-simple\",\n    \"tags\": [],\n    \"title\": \"Basic Treemap\",\n    \"titleCN\": \"基础矩形树图\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"treemap\"\n    ],\n    \"id\": \"treemap-visual\",\n    \"tags\": [],\n    \"title\": \"Gradient Mapping\",\n    \"titleCN\": \"映射为渐变色\",\n    \"difficulty\": 10\n  },\n  {\n    \"category\": [\n      \"calendar\",\n      \"scatter\"\n    ],\n    \"id\": \"calendar-charts\",\n    \"tags\": [],\n    \"title\": \"Calendar Charts\",\n    \"titleCN\": \"日力图\",\n    \"difficulty\": 11\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"circle-packing-with-d3\",\n    \"tags\": [],\n    \"title\": \"Circle Packing with d3\",\n    \"titleCN\": \"Circle Packing with d3\",\n    \"difficulty\": 11\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-one-to-one-morph\",\n    \"tags\": [],\n    \"title\": \"One-to-one Morphing\",\n    \"titleCN\": \"一对一映射形变\",\n    \"difficulty\": 11\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-spiral-race\",\n    \"tags\": [],\n    \"title\": \"Custom Spiral Race\",\n    \"titleCN\": \"自定义螺旋线竞速\",\n    \"difficulty\": 11\n  },\n  {\n    \"category\": [\n      \"custom\"\n    ],\n    \"id\": \"custom-story-transition\",\n    \"tags\": [],\n    \"title\": \"Simple Story Transition\",\n    \"titleCN\": \"极简场景变换示例\",\n    \"difficulty\": 11\n  },\n  {\n    \"category\": [\n      \"scatter\"\n    ],\n    \"id\": \"scatter-logarithmic-regression\",\n    \"tags\": [],\n    \"title\": \"Logarithmic Regression\",\n    \"titleCN\": \"对数回归(使用统计插件)\",\n    \"difficulty\": 16\n  }\n]","\n// THIS FILE IS GENERATED, DON'T MODIFY */\n\n/* eslint-disable  */\nexport const keywords = [{\"name\":\"color\",\"count\":1835},{\"name\":\"shadowColor\",\"count\":1770},{\"name\":\"shadowBlur\",\"count\":1770},{\"name\":\"shadowOffsetX\",\"count\":1770},{\"name\":\"shadowOffsetY\",\"count\":1770},{\"name\":\"borderColor\",\"count\":1451},{\"name\":\"borderWidth\",\"count\":1450},{\"name\":\"width\",\"count\":1411},{\"name\":\"borderType\",\"count\":1385},{\"name\":\"borderDashOffset\",\"count\":1373},{\"name\":\"height\",\"count\":1120},{\"name\":\"backgroundColor\",\"count\":1111},{\"name\":\"fontSize\",\"count\":1098},{\"name\":\"fontStyle\",\"count\":1081},{\"name\":\"fontWeight\",\"count\":1081},{\"name\":\"fontFamily\",\"count\":1081},{\"name\":\"lineHeight\",\"count\":1081},{\"name\":\"textBorderColor\",\"count\":1081},{\"name\":\"textBorderWidth\",\"count\":1081},{\"name\":\"textBorderType\",\"count\":1081},{\"name\":\"textBorderDashOffset\",\"count\":1081},{\"name\":\"textShadowColor\",\"count\":1081},{\"name\":\"textShadowBlur\",\"count\":1081},{\"name\":\"textShadowOffsetX\",\"count\":1081},{\"name\":\"textShadowOffsetY\",\"count\":1081},{\"name\":\"padding\",\"count\":1079},{\"name\":\"borderRadius\",\"count\":1051},{\"name\":\"align\",\"count\":916},{\"name\":\"verticalAlign\",\"count\":913},{\"name\":\"opacity\",\"count\":692},{\"name\":\"show\",\"count\":664},{\"name\":\"overflow\",\"count\":567},{\"name\":\"ellipsis\",\"count\":567},{\"name\":\"lineOverflow\",\"count\":567},{\"name\":\"position\",\"count\":528},{\"name\":\"rich\",\"count\":514},{\"name\":\"<style_name>\",\"count\":514},{\"name\":\"distance\",\"count\":472},{\"name\":\"label\",\"count\":468},{\"name\":\"type\",\"count\":389},{\"name\":\"rotate\",\"count\":365},{\"name\":\"offset\",\"count\":357},{\"name\":\"itemStyle\",\"count\":356},{\"name\":\"borderCap\",\"count\":347},{\"name\":\"borderJoin\",\"count\":347},{\"name\":\"borderMiterLimit\",\"count\":347},{\"name\":\"formatter\",\"count\":331},{\"name\":\"lineStyle\",\"count\":298},{\"name\":\"dashOffset\",\"count\":278},{\"name\":\"cap\",\"count\":278},{\"name\":\"join\",\"count\":278},{\"name\":\"miterLimit\",\"count\":278},{\"name\":\"emphasis\",\"count\":175},{\"name\":\"blur\",\"count\":143},{\"name\":\"name\",\"count\":133},{\"name\":\"curveness\",\"count\":124},{\"name\":\"symbol\",\"count\":119},{\"name\":\"symbolSize\",\"count\":119},{\"name\":\"x\",\"count\":115},{\"name\":\"y\",\"count\":115},{\"name\":\"value\",\"count\":101},{\"name\":\"symbolKeepAspect\",\"count\":94},{\"name\":\"silent\",\"count\":93},{\"name\":\"labelLine\",\"count\":81},{\"name\":\"rotation\",\"count\":78},{\"name\":\"symbolOffset\",\"count\":75},{\"name\":\"id\",\"count\":71},{\"name\":\"data\",\"count\":71},{\"name\":\"symbolRotate\",\"count\":67},{\"name\":\"animationDuration\",\"count\":66},{\"name\":\"animationEasing\",\"count\":66},{\"name\":\"animationDelay\",\"count\":65},{\"name\":\"z\",\"count\":64},{\"name\":\"animation\",\"count\":64},{\"name\":\"animationDurationUpdate\",\"count\":63},{\"name\":\"animationThreshold\",\"count\":62},{\"name\":\"animationEasingUpdate\",\"count\":62},{\"name\":\"animationDelayUpdate\",\"count\":62},{\"name\":\"style\",\"count\":60},{\"name\":\"select\",\"count\":56},{\"name\":\"textStyle\",\"count\":54},{\"name\":\"zlevel\",\"count\":52},{\"name\":\"transition\",\"count\":48},{\"name\":\"focus\",\"count\":41},{\"name\":\"blurScope\",\"count\":41},{\"name\":\"coord\",\"count\":41},{\"name\":\"tooltip\",\"count\":40},{\"name\":\"inside\",\"count\":40},{\"name\":\"valueIndex\",\"count\":40},{\"name\":\"valueDim\",\"count\":40},{\"name\":\"extraCssText\",\"count\":38},{\"name\":\"interval\",\"count\":34},{\"name\":\"left\",\"count\":33},{\"name\":\"top\",\"count\":33},{\"name\":\"right\",\"count\":33},{\"name\":\"bottom\",\"count\":33},{\"name\":\"draggable\",\"count\":31},{\"name\":\"decal\",\"count\":28},{\"name\":\"dashArrayX\",\"count\":28},{\"name\":\"dashArrayY\",\"count\":28},{\"name\":\"maxTileWidth\",\"count\":28},{\"name\":\"maxTileHeight\",\"count\":28},{\"name\":\"margin\",\"count\":27},{\"name\":\"xAxis\",\"count\":27},{\"name\":\"yAxis\",\"count\":27},{\"name\":\"origin\",\"count\":26},{\"name\":\"0\",\"count\":26},{\"name\":\"1\",\"count\":26},{\"name\":\"precision\",\"count\":25},{\"name\":\"scaleX\",\"count\":25},{\"name\":\"scaleY\",\"count\":25},{\"name\":\"originX\",\"count\":25},{\"name\":\"originY\",\"count\":25},{\"name\":\"info\",\"count\":25},{\"name\":\"invisible\",\"count\":25},{\"name\":\"ignore\",\"count\":25},{\"name\":\"textContent\",\"count\":25},{\"name\":\"textConfig\",\"count\":25},{\"name\":\"layoutRect\",\"count\":25},{\"name\":\"local\",\"count\":25},{\"name\":\"insideFill\",\"count\":25},{\"name\":\"insideStroke\",\"count\":25},{\"name\":\"outsideFill\",\"count\":25},{\"name\":\"outsideStroke\",\"count\":25},{\"name\":\"smooth\",\"count\":24},{\"name\":\"selectedMode\",\"count\":23},{\"name\":\"fill\",\"count\":23},{\"name\":\"stroke\",\"count\":23},{\"name\":\"lineWidth\",\"count\":23},{\"name\":\"length\",\"count\":21},{\"name\":\"areaStyle\",\"count\":20},{\"name\":\"shape\",\"count\":20},{\"name\":\"cursor\",\"count\":19},{\"name\":\"showAbove\",\"count\":19},{\"name\":\"splitNumber\",\"count\":18},{\"name\":\"progressive\",\"count\":18},{\"name\":\"length2\",\"count\":18},{\"name\":\"minTurnAngle\",\"count\":18},{\"name\":\"labelLayout\",\"count\":18},{\"name\":\"hideOverlap\",\"count\":17},{\"name\":\"moveOverlap\",\"count\":17},{\"name\":\"dx\",\"count\":17},{\"name\":\"dy\",\"count\":17},{\"name\":\"labelLinePoints\",\"count\":17},{\"name\":\"icon\",\"count\":16},{\"name\":\"xAxisIndex\",\"count\":15},{\"name\":\"yAxisIndex\",\"count\":15},{\"name\":\"min\",\"count\":14},{\"name\":\"max\",\"count\":14},{\"name\":\"scale\",\"count\":14},{\"name\":\"coordinateSystem\",\"count\":13},{\"name\":\"markPoint\",\"count\":13},{\"name\":\"markLine\",\"count\":13},{\"name\":\"markArea\",\"count\":13},{\"name\":\"z2\",\"count\":13},{\"name\":\"during\",\"count\":13},{\"name\":\"extra\",\"count\":13},{\"name\":\"orient\",\"count\":12},{\"name\":\"iconStyle\",\"count\":12},{\"name\":\"areaColor\",\"count\":12},{\"name\":\"$action\",\"count\":12},{\"name\":\"bounding\",\"count\":12},{\"name\":\"onclick\",\"count\":12},{\"name\":\"onmouseover\",\"count\":12},{\"name\":\"onmouseout\",\"count\":12},{\"name\":\"onmousemove\",\"count\":12},{\"name\":\"onmousewheel\",\"count\":12},{\"name\":\"onmousedown\",\"count\":12},{\"name\":\"onmouseup\",\"count\":12},{\"name\":\"ondrag\",\"count\":12},{\"name\":\"ondragstart\",\"count\":12},{\"name\":\"ondragend\",\"count\":12},{\"name\":\"ondragenter\",\"count\":12},{\"name\":\"ondragleave\",\"count\":12},{\"name\":\"ondragover\",\"count\":12},{\"name\":\"ondrop\",\"count\":12},{\"name\":\"legendHoverLink\",\"count\":12},{\"name\":\"upperLabel\",\"count\":12},{\"name\":\"dimensions\",\"count\":11},{\"name\":\"axisPointer\",\"count\":10},{\"name\":\"snap\",\"count\":10},{\"name\":\"shadowStyle\",\"count\":10},{\"name\":\"r\",\"count\":10},{\"name\":\"encode\",\"count\":10},{\"name\":\"minAngle\",\"count\":10},{\"name\":\"morph\",\"count\":10},{\"name\":\"title\",\"count\":9},{\"name\":\"textAlign\",\"count\":9},{\"name\":\"triggerEvent\",\"count\":9},{\"name\":\"inverse\",\"count\":9},{\"name\":\"axisLine\",\"count\":9},{\"name\":\"axisTick\",\"count\":9},{\"name\":\"axisLabel\",\"count\":9},{\"name\":\"boundaryGap\",\"count\":8},{\"name\":\"showMinLabel\",\"count\":8},{\"name\":\"showMaxLabel\",\"count\":8},{\"name\":\"splitLine\",\"count\":8},{\"name\":\"size\",\"count\":8},{\"name\":\"throttle\",\"count\":8},{\"name\":\"center\",\"count\":8},{\"name\":\"startAngle\",\"count\":8},{\"name\":\"geoIndex\",\"count\":8},{\"name\":\"cx\",\"count\":8},{\"name\":\"cy\",\"count\":8},{\"name\":\"seriesLayoutBy\",\"count\":8},{\"name\":\"datasetIndex\",\"count\":8},{\"name\":\"color0\",\"count\":8},{\"name\":\"borderColor0\",\"count\":8},{\"name\":\"nameGap\",\"count\":7},{\"name\":\"minInterval\",\"count\":7},{\"name\":\"maxInterval\",\"count\":7},{\"name\":\"logBase\",\"count\":7},{\"name\":\"alignWithLabel\",\"count\":7},{\"name\":\"minorTick\",\"count\":7},{\"name\":\"polarIndex\",\"count\":7},{\"name\":\"clockwise\",\"count\":7},{\"name\":\"clip\",\"count\":7},{\"name\":\"text\",\"count\":6},{\"name\":\"nameLocation\",\"count\":6},{\"name\":\"nameTextStyle\",\"count\":6},{\"name\":\"nameRotate\",\"count\":6},{\"name\":\"splitArea\",\"count\":6},{\"name\":\"triggerTooltip\",\"count\":6},{\"name\":\"status\",\"count\":6},{\"name\":\"handle\",\"count\":6},{\"name\":\"textPosition\",\"count\":6},{\"name\":\"textFill\",\"count\":6},{\"name\":\"textBackgroundColor\",\"count\":6},{\"name\":\"textBorderRadius\",\"count\":6},{\"name\":\"textPadding\",\"count\":6},{\"name\":\"line\",\"count\":6},{\"name\":\"layout\",\"count\":6},{\"name\":\"r0\",\"count\":6},{\"name\":\"progressiveThreshold\",\"count\":6},{\"name\":\"colorAlpha\",\"count\":6},{\"name\":\"colorSaturation\",\"count\":6},{\"name\":\"offsetCenter\",\"count\":6},{\"name\":\"target\",\"count\":5},{\"name\":\"itemGap\",\"count\":5},{\"name\":\"minorSplitLine\",\"count\":5},{\"name\":\"radius\",\"count\":5},{\"name\":\"realtime\",\"count\":5},{\"name\":\"zoom\",\"count\":5},{\"name\":\"bar\",\"count\":5},{\"name\":\"stack\",\"count\":5},{\"name\":\"roam\",\"count\":5},{\"name\":\"endAngle\",\"count\":5},{\"name\":\"valueAnimation\",\"count\":5},{\"name\":\"calendarIndex\",\"count\":5},{\"name\":\"link\",\"count\":4},{\"name\":\"selected\",\"count\":4},{\"name\":\"trigger\",\"count\":4},{\"name\":\"axis\",\"count\":4},{\"name\":\"crossStyle\",\"count\":4},{\"name\":\"end\",\"count\":4},{\"name\":\"seriesIndex\",\"count\":4},{\"name\":\"inRange\",\"count\":4},{\"name\":\"outOfRange\",\"count\":4},{\"name\":\"nameMap\",\"count\":4},{\"name\":\"points\",\"count\":4},{\"name\":\"smoothConstraint\",\"count\":4},{\"name\":\"x1\",\"count\":4},{\"name\":\"y1\",\"count\":4},{\"name\":\"x2\",\"count\":4},{\"name\":\"y2\",\"count\":4},{\"name\":\"percent\",\"count\":4},{\"name\":\"endLabel\",\"count\":4},{\"name\":\"large\",\"count\":4},{\"name\":\"largeThreshold\",\"count\":4},{\"name\":\"hoverAnimation\",\"count\":4},{\"name\":\"edgeLabel\",\"count\":4},{\"name\":\"textVerticalAlign\",\"count\":3},{\"name\":\"itemWidth\",\"count\":3},{\"name\":\"itemHeight\",\"count\":3},{\"name\":\"filterMode\",\"count\":3},{\"name\":\"handleStyle\",\"count\":3},{\"name\":\"brushStyle\",\"count\":3},{\"name\":\"rect\",\"count\":3},{\"name\":\"polygon\",\"count\":3},{\"name\":\"map\",\"count\":3},{\"name\":\"children\",\"count\":3},{\"name\":\"image\",\"count\":3},{\"name\":\"font\",\"count\":3},{\"name\":\"source\",\"count\":3},{\"name\":\"config\",\"count\":3},{\"name\":\"print\",\"count\":3},{\"name\":\"sort\",\"count\":3},{\"name\":\"withName\",\"count\":3},{\"name\":\"withoutName\",\"count\":3},{\"name\":\"roundCap\",\"count\":3},{\"name\":\"barWidth\",\"count\":3},{\"name\":\"barMaxWidth\",\"count\":3},{\"name\":\"barMinWidth\",\"count\":3},{\"name\":\"progressiveChunkMode\",\"count\":3},{\"name\":\"visualDimension\",\"count\":3},{\"name\":\"visualMin\",\"count\":3},{\"name\":\"visualMax\",\"count\":3},{\"name\":\"colorMappingBy\",\"count\":3},{\"name\":\"visibleMin\",\"count\":3},{\"name\":\"childrenVisibleMin\",\"count\":3},{\"name\":\"gapWidth\",\"count\":3},{\"name\":\"borderColorSaturation\",\"count\":3},{\"name\":\"levels\",\"count\":3},{\"name\":\"selectorLabel\",\"count\":2},{\"name\":\"gridIndex\",\"count\":2},{\"name\":\"realtimeSort\",\"count\":2},{\"name\":\"sortSeriesIndex\",\"count\":2},{\"name\":\"onZero\",\"count\":2},{\"name\":\"onZeroAxisIndex\",\"count\":2},{\"name\":\"radar\",\"count\":2},{\"name\":\"dataZoom\",\"count\":2},{\"name\":\"radiusAxisIndex\",\"count\":2},{\"name\":\"angleAxisIndex\",\"count\":2},{\"name\":\"start\",\"count\":2},{\"name\":\"startValue\",\"count\":2},{\"name\":\"endValue\",\"count\":2},{\"name\":\"minSpan\",\"count\":2},{\"name\":\"maxSpan\",\"count\":2},{\"name\":\"minValueSpan\",\"count\":2},{\"name\":\"maxValueSpan\",\"count\":2},{\"name\":\"zoomLock\",\"count\":2},{\"name\":\"rangeMode\",\"count\":2},{\"name\":\"handleIcon\",\"count\":2},{\"name\":\"handleSize\",\"count\":2},{\"name\":\"moveHandleStyle\",\"count\":2},{\"name\":\"range\",\"count\":2},{\"name\":\"textGap\",\"count\":2},{\"name\":\"dimension\",\"count\":2},{\"name\":\"hoverLink\",\"count\":2},{\"name\":\"controller\",\"count\":2},{\"name\":\"categories\",\"count\":2},{\"name\":\"triggerOn\",\"count\":2},{\"name\":\"toolbox\",\"count\":2},{\"name\":\"itemSize\",\"count\":2},{\"name\":\"back\",\"count\":2},{\"name\":\"option\",\"count\":2},{\"name\":\"brush\",\"count\":2},{\"name\":\"lineX\",\"count\":2},{\"name\":\"lineY\",\"count\":2},{\"name\":\"keep\",\"count\":2},{\"name\":\"clear\",\"count\":2},{\"name\":\"brushType\",\"count\":2},{\"name\":\"aspectScale\",\"count\":2},{\"name\":\"boundingCoords\",\"count\":2},{\"name\":\"scaleLimit\",\"count\":2},{\"name\":\"nameProperty\",\"count\":2},{\"name\":\"layoutCenter\",\"count\":2},{\"name\":\"layoutSize\",\"count\":2},{\"name\":\"parallel\",\"count\":2},{\"name\":\"parallelIndex\",\"count\":2},{\"name\":\"loop\",\"count\":2},{\"name\":\"checkpointStyle\",\"count\":2},{\"name\":\"controlStyle\",\"count\":2},{\"name\":\"progress\",\"count\":2},{\"name\":\"diffChildrenByName\",\"count\":2},{\"name\":\"polyline\",\"count\":2},{\"name\":\"cpx1\",\"count\":2},{\"name\":\"cpy1\",\"count\":2},{\"name\":\"cpx2\",\"count\":2},{\"name\":\"cpy2\",\"count\":2},{\"name\":\"enabled\",\"count\":2},{\"name\":\"series\",\"count\":2},{\"name\":\"maxCount\",\"count\":2},{\"name\":\"prefix\",\"count\":2},{\"name\":\"separator\",\"count\":2},{\"name\":\"middle\",\"count\":2},{\"name\":\"sampling\",\"count\":2},{\"name\":\"barMinHeight\",\"count\":2},{\"name\":\"barMinAngle\",\"count\":2},{\"name\":\"barGap\",\"count\":2},{\"name\":\"barCategoryGap\",\"count\":2},{\"name\":\"period\",\"count\":2},{\"name\":\"nodeClick\",\"count\":2},{\"name\":\"nodes\",\"count\":2},{\"name\":\"links\",\"count\":2},{\"name\":\"edges\",\"count\":2},{\"name\":\"depth\",\"count\":2},{\"name\":\"detail\",\"count\":2},{\"name\":\"keepAspect\",\"count\":2},{\"name\":\"symbolPosition\",\"count\":2},{\"name\":\"symbolRepeat\",\"count\":2},{\"name\":\"symbolRepeatDirection\",\"count\":2},{\"name\":\"symbolMargin\",\"count\":2},{\"name\":\"symbolClip\",\"count\":2},{\"name\":\"symbolBoundingData\",\"count\":2},{\"name\":\"symbolPatternSize\",\"count\":2},{\"name\":\"subtext\",\"count\":1},{\"name\":\"sublink\",\"count\":1},{\"name\":\"subtarget\",\"count\":1},{\"name\":\"subtextStyle\",\"count\":1},{\"name\":\"legend\",\"count\":1},{\"name\":\"inactiveColor\",\"count\":1},{\"name\":\"scrollDataIndex\",\"count\":1},{\"name\":\"pageButtonItemGap\",\"count\":1},{\"name\":\"pageButtonGap\",\"count\":1},{\"name\":\"pageButtonPosition\",\"count\":1},{\"name\":\"pageFormatter\",\"count\":1},{\"name\":\"pageIcons\",\"count\":1},{\"name\":\"horizontal\",\"count\":1},{\"name\":\"vertical\",\"count\":1},{\"name\":\"pageIconColor\",\"count\":1},{\"name\":\"pageIconInactiveColor\",\"count\":1},{\"name\":\"pageIconSize\",\"count\":1},{\"name\":\"pageTextStyle\",\"count\":1},{\"name\":\"selector\",\"count\":1},{\"name\":\"selectorPosition\",\"count\":1},{\"name\":\"selectorItemGap\",\"count\":1},{\"name\":\"selectorButtonGap\",\"count\":1},{\"name\":\"grid\",\"count\":1},{\"name\":\"containLabel\",\"count\":1},{\"name\":\"polar\",\"count\":1},{\"name\":\"radiusAxis\",\"count\":1},{\"name\":\"angleAxis\",\"count\":1},{\"name\":\"indicator\",\"count\":1},{\"name\":\"disabled\",\"count\":1},{\"name\":\"zoomOnMouseWheel\",\"count\":1},{\"name\":\"moveOnMouseMove\",\"count\":1},{\"name\":\"moveOnMouseWheel\",\"count\":1},{\"name\":\"preventDefaultMouseMove\",\"count\":1},{\"name\":\"slider\",\"count\":1},{\"name\":\"dataBackground\",\"count\":1},{\"name\":\"selectedDataBackground\",\"count\":1},{\"name\":\"fillerColor\",\"count\":1},{\"name\":\"moveHandleIcon\",\"count\":1},{\"name\":\"moveHandleSize\",\"count\":1},{\"name\":\"labelPrecision\",\"count\":1},{\"name\":\"labelFormatter\",\"count\":1},{\"name\":\"showDetail\",\"count\":1},{\"name\":\"showDataShadow\",\"count\":1},{\"name\":\"brushSelect\",\"count\":1},{\"name\":\"visualMap\",\"count\":1},{\"name\":\"continuous\",\"count\":1},{\"name\":\"calculable\",\"count\":1},{\"name\":\"indicatorIcon\",\"count\":1},{\"name\":\"indicatorSize\",\"count\":1},{\"name\":\"indicatorStyle\",\"count\":1},{\"name\":\"piecewise\",\"count\":1},{\"name\":\"pieces\",\"count\":1},{\"name\":\"minOpen\",\"count\":1},{\"name\":\"maxOpen\",\"count\":1},{\"name\":\"showLabel\",\"count\":1},{\"name\":\"itemSymbol\",\"count\":1},{\"name\":\"showContent\",\"count\":1},{\"name\":\"alwaysShowContent\",\"count\":1},{\"name\":\"showDelay\",\"count\":1},{\"name\":\"hideDelay\",\"count\":1},{\"name\":\"enterable\",\"count\":1},{\"name\":\"renderMode\",\"count\":1},{\"name\":\"confine\",\"count\":1},{\"name\":\"appendToBody\",\"count\":1},{\"name\":\"className\",\"count\":1},{\"name\":\"transitionDuration\",\"count\":1},{\"name\":\"order\",\"count\":1},{\"name\":\"showTitle\",\"count\":1},{\"name\":\"feature\",\"count\":1},{\"name\":\"saveAsImage\",\"count\":1},{\"name\":\"connectedBackgroundColor\",\"count\":1},{\"name\":\"excludeComponents\",\"count\":1},{\"name\":\"pixelRatio\",\"count\":1},{\"name\":\"restore\",\"count\":1},{\"name\":\"dataView\",\"count\":1},{\"name\":\"readOnly\",\"count\":1},{\"name\":\"optionToContent\",\"count\":1},{\"name\":\"contentToOption\",\"count\":1},{\"name\":\"lang\",\"count\":1},{\"name\":\"textareaColor\",\"count\":1},{\"name\":\"textareaBorderColor\",\"count\":1},{\"name\":\"textColor\",\"count\":1},{\"name\":\"buttonColor\",\"count\":1},{\"name\":\"buttonTextColor\",\"count\":1},{\"name\":\"magicType\",\"count\":1},{\"name\":\"tiled\",\"count\":1},{\"name\":\"brushLink\",\"count\":1},{\"name\":\"brushMode\",\"count\":1},{\"name\":\"transformable\",\"count\":1},{\"name\":\"throttleType\",\"count\":1},{\"name\":\"throttleDelay\",\"count\":1},{\"name\":\"removeOnClick\",\"count\":1},{\"name\":\"inBrush\",\"count\":1},{\"name\":\"outOfBrush\",\"count\":1},{\"name\":\"geo\",\"count\":1},{\"name\":\"regions\",\"count\":1},{\"name\":\"axisExpandable\",\"count\":1},{\"name\":\"axisExpandCenter\",\"count\":1},{\"name\":\"axisExpandCount\",\"count\":1},{\"name\":\"axisExpandWidth\",\"count\":1},{\"name\":\"axisExpandTriggerOn\",\"count\":1},{\"name\":\"parallelAxisDefault\",\"count\":1},{\"name\":\"parallelAxis\",\"count\":1},{\"name\":\"dim\",\"count\":1},{\"name\":\"areaSelectStyle\",\"count\":1},{\"name\":\"singleAxis\",\"count\":1},{\"name\":\"timeline\",\"count\":1},{\"name\":\"axisType\",\"count\":1},{\"name\":\"currentIndex\",\"count\":1},{\"name\":\"autoPlay\",\"count\":1},{\"name\":\"rewind\",\"count\":1},{\"name\":\"playInterval\",\"count\":1},{\"name\":\"replaceMerge\",\"count\":1},{\"name\":\"controlPosition\",\"count\":1},{\"name\":\"showPlayBtn\",\"count\":1},{\"name\":\"showPrevBtn\",\"count\":1},{\"name\":\"showNextBtn\",\"count\":1},{\"name\":\"playIcon\",\"count\":1},{\"name\":\"stopIcon\",\"count\":1},{\"name\":\"prevIcon\",\"count\":1},{\"name\":\"nextIcon\",\"count\":1},{\"name\":\"graphic\",\"count\":1},{\"name\":\"elements\",\"count\":1},{\"name\":\"group\",\"count\":1},{\"name\":\"circle\",\"count\":1},{\"name\":\"ring\",\"count\":1},{\"name\":\"sector\",\"count\":1},{\"name\":\"arc\",\"count\":1},{\"name\":\"bezierCurve\",\"count\":1},{\"name\":\"calendar\",\"count\":1},{\"name\":\"cellSize\",\"count\":1},{\"name\":\"dayLabel\",\"count\":1},{\"name\":\"firstDay\",\"count\":1},{\"name\":\"monthLabel\",\"count\":1},{\"name\":\"yearLabel\",\"count\":1},{\"name\":\"dataset\",\"count\":1},{\"name\":\"sourceHeader\",\"count\":1},{\"name\":\"transform\",\"count\":1},{\"name\":\"filter\",\"count\":1},{\"name\":\"xxx:xxx\",\"count\":1},{\"name\":\"fromDatasetIndex\",\"count\":1},{\"name\":\"fromDatasetId\",\"count\":1},{\"name\":\"fromTransformResult\",\"count\":1},{\"name\":\"aria\",\"count\":1},{\"name\":\"description\",\"count\":1},{\"name\":\"general\",\"count\":1},{\"name\":\"withTitle\",\"count\":1},{\"name\":\"withoutTitle\",\"count\":1},{\"name\":\"single\",\"count\":1},{\"name\":\"multiple\",\"count\":1},{\"name\":\"allData\",\"count\":1},{\"name\":\"partialData\",\"count\":1},{\"name\":\"decals\",\"count\":1},{\"name\":\"showSymbol\",\"count\":1},{\"name\":\"showAllSymbol\",\"count\":1},{\"name\":\"connectNulls\",\"count\":1},{\"name\":\"step\",\"count\":1},{\"name\":\"smoothMonotone\",\"count\":1},{\"name\":\"showBackground\",\"count\":1},{\"name\":\"backgroundStyle\",\"count\":1},{\"name\":\"pie\",\"count\":1},{\"name\":\"selectedOffset\",\"count\":1},{\"name\":\"minShowLabelAngle\",\"count\":1},{\"name\":\"roseType\",\"count\":1},{\"name\":\"avoidLabelOverlap\",\"count\":1},{\"name\":\"stillShowZeroSum\",\"count\":1},{\"name\":\"alignTo\",\"count\":1},{\"name\":\"edgeDistance\",\"count\":1},{\"name\":\"bleedMargin\",\"count\":1},{\"name\":\"distanceToLabelLine\",\"count\":1},{\"name\":\"maxSurfaceAngle\",\"count\":1},{\"name\":\"scaleSize\",\"count\":1},{\"name\":\"animationType\",\"count\":1},{\"name\":\"animationTypeUpdate\",\"count\":1},{\"name\":\"scatter\",\"count\":1},{\"name\":\"effectScatter\",\"count\":1},{\"name\":\"effectType\",\"count\":1},{\"name\":\"showEffectOn\",\"count\":1},{\"name\":\"rippleEffect\",\"count\":1},{\"name\":\"radarIndex\",\"count\":1},{\"name\":\"tree\",\"count\":1},{\"name\":\"edgeShape\",\"count\":1},{\"name\":\"edgeForkPosition\",\"count\":1},{\"name\":\"expandAndCollapse\",\"count\":1},{\"name\":\"initialTreeDepth\",\"count\":1},{\"name\":\"leaves\",\"count\":1},{\"name\":\"treemap\",\"count\":1},{\"name\":\"squareRatio\",\"count\":1},{\"name\":\"leafDepth\",\"count\":1},{\"name\":\"drillDownIcon\",\"count\":1},{\"name\":\"zoomToNodeRatio\",\"count\":1},{\"name\":\"breadcrumb\",\"count\":1},{\"name\":\"emptyItemWidth\",\"count\":1},{\"name\":\"sunburst\",\"count\":1},{\"name\":\"renderLabelForZeroData\",\"count\":1},{\"name\":\"boxplot\",\"count\":1},{\"name\":\"boxWidth\",\"count\":1},{\"name\":\"candlestick\",\"count\":1},{\"name\":\"heatmap\",\"count\":1},{\"name\":\"pointSize\",\"count\":1},{\"name\":\"blurSize\",\"count\":1},{\"name\":\"minOpacity\",\"count\":1},{\"name\":\"maxOpacity\",\"count\":1},{\"name\":\"mapValueCalculation\",\"count\":1},{\"name\":\"showLegendSymbol\",\"count\":1},{\"name\":\"inactiveOpacity\",\"count\":1},{\"name\":\"activeOpacity\",\"count\":1},{\"name\":\"lines\",\"count\":1},{\"name\":\"effect\",\"count\":1},{\"name\":\"delay\",\"count\":1},{\"name\":\"constantSpeed\",\"count\":1},{\"name\":\"trailLength\",\"count\":1},{\"name\":\"coords\",\"count\":1},{\"name\":\"graph\",\"count\":1},{\"name\":\"circular\",\"count\":1},{\"name\":\"rotateLabel\",\"count\":1},{\"name\":\"force\",\"count\":1},{\"name\":\"initLayout\",\"count\":1},{\"name\":\"repulsion\",\"count\":1},{\"name\":\"gravity\",\"count\":1},{\"name\":\"edgeLength\",\"count\":1},{\"name\":\"layoutAnimation\",\"count\":1},{\"name\":\"friction\",\"count\":1},{\"name\":\"nodeScaleRatio\",\"count\":1},{\"name\":\"edgeSymbol\",\"count\":1},{\"name\":\"edgeSymbolSize\",\"count\":1},{\"name\":\"autoCurveness\",\"count\":1},{\"name\":\"fixed\",\"count\":1},{\"name\":\"category\",\"count\":1},{\"name\":\"ignoreForceLayout\",\"count\":1},{\"name\":\"sankey\",\"count\":1},{\"name\":\"nodeWidth\",\"count\":1},{\"name\":\"nodeGap\",\"count\":1},{\"name\":\"nodeAlign\",\"count\":1},{\"name\":\"layoutIterations\",\"count\":1},{\"name\":\"funnel\",\"count\":1},{\"name\":\"minSize\",\"count\":1},{\"name\":\"maxSize\",\"count\":1},{\"name\":\"gap\",\"count\":1},{\"name\":\"funnelAlign\",\"count\":1},{\"name\":\"gauge\",\"count\":1},{\"name\":\"overlap\",\"count\":1},{\"name\":\"pointer\",\"count\":1},{\"name\":\"anchor\",\"count\":1},{\"name\":\"pictorialBar\",\"count\":1},{\"name\":\"themeRiver\",\"count\":1},{\"name\":\"singleAxisIndex\",\"count\":1},{\"name\":\"date\",\"count\":1},{\"name\":\"custom\",\"count\":1},{\"name\":\"renderItem\",\"count\":1},{\"name\":\"arguments\",\"count\":1},{\"name\":\"params\",\"count\":1},{\"name\":\"api\",\"count\":1},{\"name\":\"styleEmphasis\",\"count\":1},{\"name\":\"visual\",\"count\":1},{\"name\":\"barLayout\",\"count\":1},{\"name\":\"currentSeriesIndices\",\"count\":1},{\"name\":\"getWidth\",\"count\":1},{\"name\":\"getHeight\",\"count\":1},{\"name\":\"getZr\",\"count\":1},{\"name\":\"getDevicePixelRatio\",\"count\":1},{\"name\":\"return\",\"count\":1},{\"name\":\"return_group\",\"count\":1},{\"name\":\"return_path\",\"count\":1},{\"name\":\"pathData\",\"count\":1},{\"name\":\"d\",\"count\":1},{\"name\":\"return_image\",\"count\":1},{\"name\":\"return_text\",\"count\":1},{\"name\":\"return_rect\",\"count\":1},{\"name\":\"return_circle\",\"count\":1},{\"name\":\"return_ring\",\"count\":1},{\"name\":\"return_sector\",\"count\":1},{\"name\":\"return_arc\",\"count\":1},{\"name\":\"return_polygon\",\"count\":1},{\"name\":\"return_polyline\",\"count\":1},{\"name\":\"return_line\",\"count\":1},{\"name\":\"return_bezierCurve\",\"count\":1},{\"name\":\"darkMode\",\"count\":1},{\"name\":\"stateAnimation\",\"count\":1},{\"name\":\"duration\",\"count\":1},{\"name\":\"easing\",\"count\":1},{\"name\":\"blendMode\",\"count\":1},{\"name\":\"hoverLayerThreshold\",\"count\":1},{\"name\":\"useUTC\",\"count\":1},{\"name\":\"options\",\"count\":1},{\"name\":\"media\",\"count\":1},{\"name\":\"query\",\"count\":1},{\"name\":\"minWidth\",\"count\":1},{\"name\":\"maxHeight\",\"count\":1},{\"name\":\"minAspectRatio\",\"count\":1}];","var DebugRect = (function () {\n    function DebugRect(style) {\n        var dom = this.dom = document.createElement('div');\n        dom.className = 'ec-debug-dirty-rect';\n        style = Object.assign({}, style);\n        Object.assign(style, {\n            backgroundColor: 'rgba(0, 0, 255, 0.2)',\n            border: '1px solid #00f'\n        });\n        dom.style.cssText = \"\\nposition: absolute;\\nopacity: 0;\\ntransition: opacity 0.5s linear;\\npointer-events: none;\\n\";\n        for (var key in style) {\n            if (style.hasOwnProperty(key)) {\n                dom.style[key] = style[key];\n            }\n        }\n    }\n    DebugRect.prototype.update = function (rect) {\n        var domStyle = this.dom.style;\n        domStyle.width = rect.width + 'px';\n        domStyle.height = rect.height + 'px';\n        domStyle.left = rect.x + 'px';\n        domStyle.top = rect.y + 'px';\n    };\n    DebugRect.prototype.hide = function () {\n        this.dom.style.opacity = '0';\n    };\n    DebugRect.prototype.show = function () {\n        var _this = this;\n        clearTimeout(this._hideTimeout);\n        this.dom.style.opacity = '1';\n        this._hideTimeout = setTimeout(function () {\n            _this.hide();\n        }, 500);\n    };\n    return DebugRect;\n}());\nexport default function (zr, opts) {\n    opts = opts || {};\n    var painter = zr.painter;\n    if (!painter.getLayers) {\n        throw new Error('Debug dirty rect can only been used on canvas renderer.');\n    }\n    if (painter.isSingleCanvas()) {\n        throw new Error('Debug dirty rect can only been used on zrender inited with container.');\n    }\n    var debugViewRoot = document.createElement('div');\n    debugViewRoot.style.cssText = \"\\nposition:absolute;\\nleft:0;\\ntop:0;\\nright:0;\\nbottom:0;\\npointer-events:none;\\n\";\n    debugViewRoot.className = 'ec-debug-dirty-rect-container';\n    var debugRects = [];\n    var dom = zr.dom;\n    dom.appendChild(debugViewRoot);\n    var computedStyle = getComputedStyle(dom);\n    if (computedStyle.position === 'static') {\n        dom.style.position = 'relative';\n    }\n    zr.on('rendered', function () {\n        if (painter.getLayers) {\n            var idx_1 = 0;\n            painter.eachBuiltinLayer(function (layer) {\n                if (!layer.debugGetPaintRects) {\n                    return;\n                }\n                var paintRects = layer.debugGetPaintRects();\n                for (var i = 0; i < paintRects.length; i++) {\n                    if (!debugRects[idx_1]) {\n                        debugRects[idx_1] = new DebugRect(opts.style);\n                        debugViewRoot.appendChild(debugRects[idx_1].dom);\n                    }\n                    debugRects[idx_1].show();\n                    debugRects[idx_1].update(paintRects[i]);\n                    idx_1++;\n                }\n            });\n            for (var i = idx_1; i < debugRects.length; i++) {\n                debugRects[i].hide();\n            }\n        }\n    });\n}\n","import {store} from '../common/store';\nimport {URL_PARAMS, SCRIPT_URLS} from '../common/config';\nimport {downloadBlob} from '../common/helper';\n\nconst hasRootPath = store.sourceCode.indexOf('ROOT_PATH') >= 0;\nconst rootPathCode = hasRootPath ? `var ROOT_PATH = '${store.cdnRoot}'` : '';\n\nexport function download() {\n    const code = `<!--\n    THIS EXAMPLE WAS DOWNLOADED FROM ${window.location.href}\n-->\n<!DOCTYPE html>\n<html style=\"height: 100%\">\n    <head>\n        <meta charset=\"utf-8\">\n    </head>\n    <body style=\"height: 100%; margin: 0\">\n        <div id=\"container\" style=\"height: 100%\"></div>\n\n        <script type=\"text/javascript\" src=\"${SCRIPT_URLS.echartsMinJS}\"></script>\n        <!-- Uncomment this line if you want to dataTool extension\n        <script type=\"text/javascript\" src=\"${SCRIPT_URLS.echartsDir}/dist/extension/dataTool.min.js\"></script>\n        -->\n        <!-- Uncomment this line if you want to use gl extension\n        <script type=\"text/javascript\" src=\"${SCRIPT_URLS.echartsGLMinJS}\"></script>\n        -->\n        <!-- Uncomment this line if you want to echarts-stat extension\n        <script type=\"text/javascript\" src=\"${SCRIPT_URLS.echartsStatMinJS}\"></script>\n        -->\n        <!-- Uncomment this line if you want to use map\n        <script type=\"text/javascript\" src=\"${SCRIPT_URLS.echartsDir}/map/js/china.js\"></script>\n        <script type=\"text/javascript\" src=\"${SCRIPT_URLS.echartsDir}/map/js/world.js\"></script>\n        -->\n        <!-- Uncomment these two lines if you want to use bmap extension\n        <script type=\"text/javascript\" src=\"https://api.map.baidu.com/api?v=2.0&ak=<Your Key Here>\"></script>\n        <script type=\"text/javascript\" src=\"${SCRIPT_URLS.echartsDir}/dist/extension/bmap.min.js\"></script>\n        -->\n\n        <script type=\"text/javascript\">\nvar dom = document.getElementById(\"container\");\nvar myChart = echarts.init(dom);\nvar app = {};\n\nvar option;\n\n${rootPathCode}\n\n${store.sourceCode}\n\nif (option && typeof option === 'object') {\n    myChart.setOption(option);\n}\n\n        </script>\n    </body>\n</html>\n    `;\n    const file = new Blob([code], {\n        type: 'text/html;charset=UTF-8',\n        encoding: 'UTF-8'\n    });\n    // download the blob\n    downloadBlob(file, URL_PARAMS.c + '.html');\n}","import showDebugDirtyRect from '../dep/showDebugDirtyRect';\n\nexport function createSandbox(optionUpdated) {\n    let appEnv = {};\n    let gui;\n\n    let _intervalIdList = [];\n    let _timeoutIdList = [];\n\n    const _oldSetTimeout = window.setTimeout;\n    const _oldSetInterval = window.setInterval;\n\n    function setTimeout(func, delay) {\n        var id = _oldSetTimeout(func, delay);\n        _timeoutIdList.push(id);\n        return id;\n    };\n    function setInterval(func, gap) {\n        var id = _oldSetInterval(func, gap);\n        _intervalIdList.push(id);\n        return id;\n    };\n    function _clearTimeTickers() {\n        for (var i = 0; i < _intervalIdList.length; i++) {\n            clearInterval(_intervalIdList[i]);\n        }\n        for (var i = 0; i < _timeoutIdList.length; i++) {\n            clearTimeout(_timeoutIdList[i]);\n        }\n        _intervalIdList = [];\n        _timeoutIdList = [];\n    }\n    const _events = [];\n    function _wrapOnMethods(chart) {\n        const oldOn = chart.on;\n        const oldSetOption = chart.setOption;\n        chart.on = function (eventName) {\n            const res = oldOn.apply(chart, arguments);\n            _events.push(eventName);\n            return res;\n        };\n        chart.setOption = function () {\n            const res = oldSetOption.apply(this, arguments);\n            optionUpdated && optionUpdated(chart);\n            return res;\n        };\n    }\n\n    function _clearChartEvents(chart) {\n        _events.forEach(function (eventName) {\n            if (chart) {\n                chart.off(eventName);\n            }\n        });\n\n        _events.length = 0;\n    }\n\n    let chartInstance;\n\n    return {\n        resize() {\n            if (chartInstance) {\n                chartInstance.resize();\n            }\n        },\n\n        dispose() {\n            if (chartInstance) {\n                chartInstance.dispose();\n                chartInstance = null;\n            }\n        },\n\n        getDataURL() {\n            return chartInstance.getDataURL({\n                pixelRatio: 2,\n                excludeComponents: ['toolbox']\n            });\n        },\n\n        getOption() {\n            return chartInstance.getOption();\n        },\n\n        run(el, store) {\n\n            if (!chartInstance) {\n                chartInstance = echarts.init(el, store.darkMode ? 'dark' : '', {\n                    renderer: store.renderer,\n                    useDirtyRect: store.useDirtyRect\n                });\n                if (store.useDirtyRect && store.renderer === 'canvas') {\n                    try {\n                        showDebugDirtyRect(chartInstance.getZr(), {\n                            autoHideDelay: 500\n                        });\n                    }\n                    catch (e) {\n                        console.error(e);\n                    }\n                }\n                _wrapOnMethods(chartInstance);\n            }\n\n            // if (this.hasEditorError()) {\n            //     log(this.$t('editor.errorInEditor'), 'error');\n            //     return;\n            // }\n\n            // TODO Scope the variables in component.\n            _clearTimeTickers();\n            _clearChartEvents(chartInstance);\n            // Reset\n            appEnv.config = null;\n\n            // run the code\n\n            const compiledCode = store.runCode;\n\n            const func = new Function(\n                'myChart', 'app', 'setTimeout', 'setInterval', 'ROOT_PATH',\n                'var option;\\n' + compiledCode + '\\nreturn option;'\n            );\n            const option = func(chartInstance, appEnv, setTimeout, setInterval, store.cdnRoot);\n            let updateTime = 0;\n\n            if (option && typeof option === 'object') {\n                const startTime = +new Date();\n                chartInstance.setOption(option, true);\n                const endTime = +new Date();\n                updateTime = endTime - startTime;\n            }\n\n            if (gui) {\n                $(gui.domElement).remove();\n                gui.destroy();\n                gui = null;\n            }\n\n            if (appEnv.config) {\n                gui = new dat.GUI({\n                    autoPlace: false\n                });\n                $(gui.domElement).css({\n                    position: 'absolute',\n                    right: 5,\n                    top: 0,\n                    zIndex: 1000\n                });\n                $('.right-container').append(gui.domElement);\n\n                var configParameters = appEnv.configParameters || {};\n                for (var name in appEnv.config) {\n                    var value = appEnv.config[name];\n                    if (name !== 'onChange' && name !== 'onFinishChange') {\n                        var isColor = false;\n                        // var value = obj;\n                        var controller = null;\n                        if (configParameters[name]) {\n                            if (configParameters[name].options) {\n                                controller = gui.add(appEnv.config, name, configParameters[name].options);\n                            }\n                            else if (configParameters[name].min != null) {\n                                controller = gui.add(appEnv.config, name, configParameters[name].min, configParameters[name].max);\n                            }\n                        }\n                        if (typeof obj === 'string') {\n                            try {\n                                var colorArr = echarts.color.parse(value);\n                                isColor = !!colorArr;\n                                if (isColor) {\n                                    value = echarts.color.stringify(colorArr, 'rgba');\n                                }\n                            }\n                            catch (e) {}\n                        }\n                        if (!controller) {\n                            controller = gui[isColor ? 'addColor' : 'add'](appEnv.config, name);\n                        }\n                        appEnv.config.onChange && controller.onChange(appEnv.config.onChange);\n                        appEnv.config.onFinishChange && controller.onFinishChange(appEnv.config.onFinishChange);\n                    }\n                }\n            }\n\n            return updateTime;\n        }\n    };\n};","import Vue from 'vue';\nimport VueI18n from 'vue-i18n';\nimport messages from './common/i18n';\nimport EditorPage from './editor/Editor.vue';\nimport ExplorePage from './explore/Explore.vue';\nimport ViewPage from './editor/View.vue';\nimport {store} from './common/store';\nimport VueScrollactive from 'vue-scrollactive';\n\nVue.use(VueScrollactive);\n\n/**\n *\n * @param {*} el\n * @param {Object} option\n * @param {string} [option.cdnRoot]\n * @param {string} [option.page] editor | explore\n * @param {string} [option.locale] zh | en\n * @param {string} [option.version]\n */\nexport function init(el, option) {\n    const i18n = new VueI18n({\n        locale: option.locale,\n        fallbackLocale: 'en',\n        messages\n    });\n    store.cdnRoot = option.cdnRoot;\n    store.version = option.version;\n    store.locale = option.locale || 'en';\n\n\n    if (typeof el === 'string') {\n        el = document.querySelector(el);\n    }\n    if (!el) {\n        throw new Error('Can\\'t find el.');\n    }\n\n    const container = document.createElement('div');\n    el.appendChild(container);\n\n    new Vue({\n        i18n,\n        el: container,\n        render: h => {\n            return h(({\n                editor: EditorPage,\n                explore: ExplorePage,\n                view: ViewPage\n            })[option.page] || ExplorePage);\n        }\n    });\n}","module.exports = __webpack_public_path__ + \"../asset/placeholder.jpg\";","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"138px\\\" viewBox=\\\"0 0 175 138\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>bar</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"bar\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M121.488231,0 L102.050114,0 C99.36627,-1.1969592e-16 97.1905846,2.17568537 97.1905846,4.85952929 L97.1905846,133.140471 C97.1905846,135.824315 99.36627,138 102.050114,138 L121.488231,138 C124.172075,138 126.34776,135.824315 126.34776,133.140471 L126.34776,4.85952929 C126.34776,2.17568537 124.172075,1.1969592e-16 121.488231,0 Z M170.083523,30.1571753 L150.645406,30.1571753 C147.961562,30.1571753 145.785877,32.3328607 145.785877,35.0167046 L145.785877,132.207289 C145.785877,134.891133 147.961562,137.066819 150.645406,137.066819 L170.083523,137.066819 C172.767367,137.066819 174.943052,134.891133 174.943052,132.207289 L174.943052,35.0167046 C174.943052,32.3328607 172.767367,30.1571753 170.083523,30.1571753 Z M53.4548215,39.8762339 C50.7709777,39.876234 48.5952924,42.0519193 48.5952924,44.7357631 L48.5952924,132.207289 C48.5952924,134.891133 50.7709777,137.066818 53.4548215,137.066819 L72.8929386,137.066819 C75.5767824,137.066818 77.7524677,134.891133 77.7524677,132.207289 L77.7524677,44.7357631 C77.7524676,42.0519193 75.5767824,39.876234 72.8929386,39.8762339 L53.4548215,39.8762339 Z M29.1571753,67.17388 L29.1571753,132.207289 C29.1571753,134.891133 26.9814901,137.066818 24.2976462,137.066819 L4.85952929,137.066819 C2.17568537,137.066819 3.28676086e-16,134.891133 0,132.207289 L0,67.17388 C7.33863613e-08,64.4900361 2.17568542,62.3143508 4.85952929,62.3143508 L24.2976462,62.3143508 C26.98149,62.3143509 29.1571753,64.4900362 29.1571753,67.17388 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"98px\\\" viewBox=\\\"0 0 175 98\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>boxplot</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"boxplot\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M165.206074,4.85900217 L165.206074,43.7310195 L145.770065,43.7310195 L145.770065,14.5770065 C145.770065,11.8934537 143.594616,9.71800434 140.911063,9.71800434 L72.8850325,9.71800434 C70.2014797,9.71800434 68.0260304,11.8934537 68.0260304,14.5770065 L68.0260304,82.6030369 C68.0260304,85.2865897 70.2014797,87.462039 72.8850325,87.462039 L140.911063,87.462039 C143.594616,87.462039 145.770065,85.2865897 145.770065,82.6030369 L145.770065,53.4490239 L165.206074,53.4490239 L165.206074,92.3210412 C165.206074,95.004594 167.381523,97.1800434 170.065076,97.1800434 C172.748629,97.1800434 174.924078,95.004594 174.924078,92.3210412 L174.924078,4.85900217 C174.924078,2.17544937 172.748629,1.43751749e-14 170.065076,1.42108547e-14 C167.381523,-1.05827854e-15 165.206074,2.17544937 165.206074,4.85900217 Z M58.308026,14.5770065 L58.308026,82.6030369 C58.308026,83.8917244 57.7960969,85.1276306 56.8848572,86.0388703 C55.9736176,86.9501099 54.7377114,87.462039 53.4490239,87.462039 L34.0130152,87.462039 C31.3294624,87.462039 29.154013,85.2865897 29.154013,82.6030369 L29.154013,53.4490239 L9.71800434,53.4490239 L9.71800434,92.3210412 C9.71800434,95.004594 7.54255497,97.1800434 4.85900217,97.1800434 C2.17544937,97.1800434 3.28640434e-16,95.004594 0,92.3210412 L0,4.85900217 C-3.28640434e-16,2.17544937 2.17544937,4.31255248e-14 4.85900217,4.26325641e-14 C7.54255497,4.21396035e-14 9.71800434,2.17544937 9.71800434,4.85900217 L9.71800434,43.7310195 L29.154013,43.7310195 L29.154013,14.5770065 C29.154013,11.8934537 31.3294624,9.71800434 34.0130152,9.71800434 L53.4490239,9.71800434 C56.1325767,9.71800434 58.308026,11.8934537 58.308026,14.5770065 L58.308026,14.5770065 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"164px\\\" height=\\\"138px\\\" viewBox=\\\"0 0 164 138\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>calendar </title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"calendar-\\\" transform=\\\"translate(-0.500000, -0.315789)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M147.236842,56.3782895 C147.236842,53.9965615 145.304597,52.0657895 142.921053,52.0657895 L125.657895,52.0657895 C123.27435,52.0657895 121.342105,53.9965615 121.342105,56.3782895 L121.342105,65.0032895 C121.342105,67.3850175 123.27435,69.3157895 125.657895,69.3157895 L142.921053,69.3157895 C145.304597,69.3157895 147.236842,67.3850175 147.236842,65.0032895 L147.236842,56.3782895 Z M147.236842,82.2532895 C147.236842,79.8715615 145.304597,77.9407895 142.921053,77.9407895 L125.657895,77.9407895 C123.27435,77.9407895 121.342105,79.8715615 121.342105,82.2532895 L121.342105,90.8782895 C121.342105,93.2600175 123.27435,95.1907895 125.657895,95.1907895 L142.921053,95.1907895 C145.304597,95.1907895 147.236842,93.2600175 147.236842,90.8782895 L147.236842,82.2532895 Z M112.710526,56.3782895 C112.710526,53.9965615 110.778282,52.0657895 108.394737,52.0657895 L91.1315789,52.0657895 C88.7480342,52.0657895 86.8157895,53.9965615 86.8157895,56.3782895 L86.8157895,65.0032895 C86.8157895,67.3850175 88.7480342,69.3157895 91.1315789,69.3157895 L108.394737,69.3157895 C110.778282,69.3157895 112.710526,67.3850175 112.710526,65.0032895 L112.710526,56.3782895 Z M112.710526,82.2532895 C112.710526,79.8715615 110.778282,77.9407895 108.394737,77.9407895 L91.1315789,77.9407895 C88.7480342,77.9407895 86.8157895,79.8715615 86.8157895,82.2532895 L86.8157895,90.8782895 C86.8157895,93.2600175 88.7480342,95.1907895 91.1315789,95.1907895 L108.394737,95.1907895 C110.778282,95.1907895 112.710526,93.2600175 112.710526,90.8782895 L112.710526,82.2532895 Z M112.710526,108.128289 C112.710526,105.746561 110.778282,103.815789 108.394737,103.815789 L91.1315789,103.815789 C88.7480342,103.815789 86.8157895,105.746561 86.8157895,108.128289 L86.8157895,116.753289 C86.8157895,119.135017 88.7480342,121.065789 91.1315789,121.065789 L108.394737,121.065789 C110.778282,121.065789 112.710526,119.135017 112.710526,116.753289 L112.710526,108.128289 Z M78.1842105,56.3782895 C78.1842105,53.9965615 76.2519658,52.0657895 73.8684211,52.0657895 L56.6052632,52.0657895 C54.2217184,52.0657895 52.2894737,53.9965615 52.2894737,56.3782895 L52.2894737,65.0032895 C52.2894737,67.3850175 54.2217184,69.3157895 56.6052632,69.3157895 L73.8684211,69.3157895 C76.2519658,69.3157895 78.1842105,67.3850175 78.1842105,65.0032895 L78.1842105,56.3782895 Z M78.1842105,82.2532895 C78.1842105,79.8715615 76.2519658,77.9407895 73.8684211,77.9407895 L56.6052632,77.9407895 C54.2217184,77.9407895 52.2894737,79.8715615 52.2894737,82.2532895 L52.2894737,90.8782895 C52.2894737,93.2600175 54.2217184,95.1907895 56.6052632,95.1907895 L73.8684211,95.1907895 C76.2519658,95.1907895 78.1842105,93.2600175 78.1842105,90.8782895 L78.1842105,82.2532895 Z M78.1842105,108.128289 C78.1842105,105.746561 76.2519658,103.815789 73.8684211,103.815789 L56.6052632,103.815789 C54.2217184,103.815789 52.2894737,105.746561 52.2894737,108.128289 L52.2894737,116.753289 C52.2894737,119.135017 54.2217184,121.065789 56.6052632,121.065789 L73.8684211,121.065789 C76.2519658,121.065789 78.1842105,119.135017 78.1842105,116.753289 L78.1842105,108.128289 Z M43.6578947,82.2532895 C43.6578947,79.8715615 41.72565,77.9407895 39.3421053,77.9407895 L22.0789474,77.9407895 C19.6954027,77.9407895 17.7631579,79.8715615 17.7631579,82.2532895 L17.7631579,90.8782895 C17.7631579,93.2600175 19.6954027,95.1907895 22.0789474,95.1907895 L39.3421053,95.1907895 C41.72565,95.1907895 43.6578947,93.2600175 43.6578947,90.8782895 L43.6578947,82.2532895 Z M43.6578947,108.128289 C43.6578947,105.746561 41.72565,103.815789 39.3421053,103.815789 L22.0789474,103.815789 C19.6954027,103.815789 17.7631579,105.746561 17.7631579,108.128289 L17.7631579,116.753289 C17.7631579,119.135017 19.6954027,121.065789 22.0789474,121.065789 L39.3421053,121.065789 C41.72565,121.065789 43.6578947,119.135017 43.6578947,116.753289 L43.6578947,108.128289 Z M164.5,39.1282895 L164.5,134.003289 C164.5,136.385017 162.567755,138.315789 160.184211,138.315789 L4.81578947,138.315789 C2.43224476,138.315789 0.5,136.385017 0.5,134.003289 L0.5,39.1282895 C0.5,36.7465615 2.43224476,34.8157895 4.81578947,34.8157895 L160.184211,34.8157895 C162.567755,34.8157895 164.5,36.7465615 164.5,39.1282895 Z M164.5,4.62828947 L164.5,21.8782895 C164.5,24.2600175 162.567755,26.1907895 160.184211,26.1907895 L4.81578947,26.1907895 C2.43224476,26.1907895 0.5,24.2600175 0.5,21.8782895 L0.5,4.62828947 C0.5,2.24656149 2.43224476,0.315789474 4.81578947,0.315789474 L160.184211,0.315789474 C162.567755,0.315789474 164.5,2.24656149 164.5,4.62828947 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"138px\\\" viewBox=\\\"0 0 175 138\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>Candlestick (1)</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"Candlestick-(1)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M121.508001,34.0222403 L116.647681,33.0222403 L116.647681,4.86032 C116.647681,2.17603934 114.471642,-7.11961547e-08 111.787361,-7.11961549e-08 C109.10308,-7.1196155e-08 106.927041,2.17603934 106.927041,4.86032 L106.927041,33.0222403 L102.066721,33.0222403 C100.777684,33.0222403 99.5414424,33.5343082 98.6299556,34.4457951 C97.7184688,35.3572819 97.2064009,36.5935234 97.2064009,37.8825604 L97.2064009,105.927041 C97.2064009,107.216078 97.7184688,108.452319 98.6299556,109.363806 C99.5414424,110.275293 100.777684,110.787361 102.066721,110.787361 L106.927041,110.787361 L106.927041,125.572455 C106.927041,128.256735 109.10308,130.432775 111.787361,130.432775 C114.471642,130.432775 116.647681,128.256735 116.647681,125.572455 L116.647681,110.787361 L121.508001,110.787361 C122.797038,110.787361 124.03328,110.275293 124.944766,109.363806 C125.856253,108.452319 126.368321,107.216078 126.368321,105.927041 L126.368321,37.8825604 C126.368321,36.5935233 125.856253,35.3572819 124.944766,34.445795 C124.03328,33.5343082 122.797038,33.0222402 121.508001,33.0222403 L121.508001,34.0222403 Z M170.111202,41.6032004 L165.250881,41.6032004 L165.250881,27.0222403 C165.250881,24.3379598 163.074842,22.1619207 160.390561,22.1619207 C157.706281,22.1619207 155.530242,24.3379598 155.530241,27.0222403 L155.530241,41.6032004 L150.669921,41.6032004 C149.380884,41.6032004 148.144643,42.1152684 147.233156,43.0267552 C146.321669,43.938242 145.809601,45.1744835 145.809601,46.4635205 L145.809601,75.6254408 C145.809601,78.3097214 147.985641,80.4857608 150.669921,80.4857608 L155.530241,80.4857608 L155.530241,104.729037 C155.530241,107.413318 157.706281,109.589357 160.390561,109.589357 C163.074842,109.589357 165.250881,107.413318 165.250881,104.729037 L165.250881,80.4857608 L170.111202,80.4857608 C172.795482,80.4857608 174.971522,78.3097214 174.971522,75.6254408 L174.971522,46.4635205 C174.971522,45.1744835 174.459454,43.938242 173.547967,43.0267552 C172.63648,42.1152684 171.400239,41.6032004 170.111202,41.6032004 L170.111202,41.6032004 Z M72.9048007,84.3460808 L68.0444807,84.3460808 L68.0444807,55.1841605 C68.0444805,52.4998799 65.8684412,50.3238407 63.1841606,50.3238407 C60.49988,50.3238407 58.3238406,52.4998799 58.3238405,55.1841605 L58.3238405,84.3460808 L53.4635205,84.3460808 C52.1744835,84.3460807 50.938242,84.8581487 50.0267552,85.7696355 C49.1152683,86.6811224 48.6032003,87.9173639 48.6032004,89.2064009 L48.6032004,118.368321 C48.6032004,119.657358 49.1152684,120.8936 50.0267552,121.805086 C50.938242,122.716573 52.1744835,123.228641 53.4635205,123.228641 L58.3238405,123.228641 L58.3238405,132.949281 C58.3238406,135.633562 60.49988,137.809601 63.1841606,137.809601 C65.8684412,137.809601 68.0444805,135.633562 68.0444807,132.949281 L68.0444807,123.228641 L72.9048007,123.228641 C75.5890813,123.228641 77.7651206,121.052602 77.7651206,118.368321 L77.7651206,89.2064009 C77.7651207,87.9173639 77.2530527,86.6811224 76.3415659,85.7696356 C75.4300791,84.8581488 74.1938377,84.3460808 72.9048007,84.3460808 Z M29.1619203,41.6032004 L29.1619203,90.2064009 C29.1619203,92.8906815 26.9858809,95.0667209 24.3016003,95.0667209 L19.4412801,95.0667209 L19.4412801,119.572455 C19.4412801,122.256735 17.2652407,124.432775 14.5809601,124.432775 C11.8966795,124.432775 9.72064013,122.256735 9.72064013,119.572455 L9.72064013,95.0667209 L4.86032,95.0667209 C2.17603938,95.0667209 3.28729566e-16,92.8906815 0,90.2064009 L0,41.6032004 C-3.28729566e-16,38.9189198 2.17603938,36.7428804 4.86032,36.7428804 L9.72064013,36.7428804 L9.72064013,12.4412801 C9.72064013,9.75699951 11.8966795,7.58096013 14.5809601,7.58096013 C17.2652407,7.58096013 19.4412801,9.75699951 19.4412801,12.4412801 L19.4412801,36.7428804 L24.3016003,36.7428804 C26.9858809,36.7428804 29.1619203,38.9189198 29.1619203,41.6032004 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"159px\\\" height=\\\"142px\\\" viewBox=\\\"0 0 159 142\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>custom</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"custom\\\" transform=\\\"translate(0.000000, -0.825151)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M74.8235294,81.2918174 L74.8235294,138.091817 C74.8235294,140.705965 72.7298022,142.825151 70.1470588,142.825151 L4.67647054,142.825151 C2.09372718,142.825151 3.16294839e-16,140.705965 0,138.091817 L0,81.2918174 C-3.63362476e-08,80.0364594 0.492698108,78.8325175 1.36970646,77.9448453 C2.24671482,77.0571731 3.43619342,76.558484 4.67647054,76.558484 L70.1470588,76.558484 C71.387336,76.558484 72.5768146,77.0571731 73.4538229,77.9448453 C74.3308313,78.8325175 74.8235294,80.0364594 74.8235294,81.2918174 Z M74.8235294,5.55848402 L74.8235294,62.358484 C74.8235294,63.6138421 74.3308313,64.817784 73.4538229,65.7054562 C72.5768146,66.5931284 71.387336,67.0918174 70.1470588,67.0918174 L4.67647054,67.0918174 C3.43619342,67.0918174 2.24671482,66.5931284 1.36970646,65.7054562 C0.492698108,64.817784 -3.63362423e-08,63.6138421 0,62.358484 L0,5.55848402 C-2.35506485e-15,4.30312598 0.492698161,3.09918414 1.36970651,2.21151195 C2.24671486,1.32383977 3.43619344,0.825150732 4.67647054,0.825150732 L70.1470588,0.825150732 C72.7298022,0.825150732 74.8235294,2.94433623 74.8235294,5.55848402 Z M159,10.2918174 L159,57.6251507 C159,62.8534463 154.812546,67.0918174 149.647059,67.0918174 L93.5294118,67.0918174 C88.363925,67.0918174 84.1764706,62.8534464 84.1764706,57.6251507 L84.1764706,10.2918174 C84.1764706,5.06352179 88.363925,0.825150732 93.5294118,0.825150732 L149.647059,0.825150732 C154.812546,0.825150809 159,5.06352184 159,10.2918174 Z M154.323529,76.558484 C155.563807,76.558484 156.753285,77.0571731 157.630294,77.9448453 C158.507302,78.8325175 159,80.0364594 159,81.2918174 L159,138.091817 C159,140.705965 156.906273,142.825151 154.323529,142.825151 L88.8529412,142.825151 C86.2701978,142.825151 84.1764706,140.705965 84.1764706,138.091817 L84.1764706,81.2918174 C84.1764706,80.0364594 84.6691687,78.8325175 85.5461771,77.9448453 C86.4231854,77.0571731 87.612664,76.558484 88.8529412,76.558484 L154.323529,76.558484 L154.323529,76.558484 Z M93.5294118,133.358484 L149.647059,133.358484 L149.647059,86.0251507 L93.5294118,86.0251507 L93.5294118,133.358484 L93.5294118,133.358484 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"83px\\\" viewBox=\\\"0 0 175 83\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>dataZoom</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"dataZoom\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M9.20037003,18.4191593 L9.20957963,13.8143694 L9.20957963,18.4191593 L41.4431082,18.4191593 L41.4431082,64.4670572 L9.20957963,64.4670572 L9.20957963,18.4191593 L9.20037003,18.4191593 Z M133.538904,64.4670572 L133.538904,18.4191593 L165.772433,18.4191593 L165.772433,64.4670572 L133.538904,64.4670572 L133.538904,64.4670572 Z M165.772433,9.20957963 L133.538904,9.20957963 L133.538904,4.60478981 C133.538904,2.06163473 131.47727,2.74466854e-07 128.934115,2.74466854e-07 C126.390959,2.74466855e-07 124.329325,2.06163473 124.329325,4.60478981 L124.329325,9.20957963 L50.6526879,9.20957963 L50.6526879,4.60478981 C50.6526879,2.06163462 48.5910532,-6.1602121e-15 46.047898,-6.31593544e-15 C43.5047429,-6.47165878e-15 41.4431082,2.06163462 41.4431082,4.60478981 L41.4431082,9.20957963 L9.20957963,9.20957963 C4.13510123,9.20957963 0,13.3446809 0,18.4191593 L0,64.4670572 C0,69.5507451 4.13510123,73.6766368 9.20957963,73.6766368 L41.4431082,73.6766368 L41.4431082,78.2814267 C41.4431082,80.8245818 43.5047429,82.8862165 46.047898,82.8862165 C48.5910532,82.8862165 50.6526879,80.8245818 50.6526879,78.2814267 L50.6526879,73.6766368 L124.329325,73.6766368 L124.329325,78.2814267 C124.329325,80.8245818 126.390959,82.8862165 128.934115,82.8862165 C131.47727,82.8862165 133.538904,80.8245818 133.538904,78.2814267 L133.538904,73.6766368 L165.772433,73.6766368 C170.858743,73.6766368 174.982013,69.5533676 174.982013,64.4670572 L174.982013,18.4191593 C174.982013,13.3446809 170.856121,9.20957963 165.772433,9.20957963 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"145px\\\" height=\\\"157px\\\" viewBox=\\\"0 0 145 157\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>dataset</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"dataset\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M77,133.051622 C77,135.720999 74.7614237,137.884956 72,137.884956 C69.2385763,137.884956 67,135.720999 67,133.051622 L67,92.7182891 C67,90.0489128 69.2385763,87.8849558 72,87.8849558 C74.7614237,87.8849558 77,90.0489128 77,92.7182891 L77,133.051622 Z M87,92.7182888 C87.0000002,90.0489126 89.2385764,87.8849558 92,87.8849558 C94.7614236,87.8849558 96.9999998,90.0489126 97,92.7182888 L97,133.051623 C96.9999998,135.720999 94.7614236,137.884956 92,137.884956 C89.2385764,137.884956 87.0000002,135.720999 87,133.051623 L87,92.7182888 Z M58,133.072456 C58,135.730326 55.7614237,137.884956 53,137.884956 C50.2385763,137.884956 48,135.730326 48,133.072456 L48,73.6974557 C48,71.0395854 50.2385763,68.8849558 53,68.8849558 C55.7614237,68.8849558 58,71.0395854 58,73.6974557 L58,133.072456 Z M39,133.066774 C38.9999999,135.727782 36.7614237,137.884956 34,137.884956 C31.2385763,137.884956 29.0000001,135.727782 29,133.066774 L29,44.7031376 C29,42.0421293 31.2385763,39.8849558 34,39.8849558 C36.7614237,39.8849558 39,42.0421293 39,44.7031376 L39,133.066774 Z M126.3,132.884956 L126.3,63.9913737 C126.403893,62.6917747 125.897136,61.4145164 124.9129,60.4952543 L83.0962,21.7192841 C82.9895,21.6282393 82.8537001,21.5918214 82.7469999,21.5098811 C81.8447692,20.5509026 80.5501183,19.997952 79.1870999,19.9894333 L39,19.9894333 L39,10.8849558 L135.9903,10.8849558 L136,132.884956 L126.3,132.884956 Z M116,146.884956 L10,146.884956 L10,28.8849558 L74.0143636,28.8849558 L74.0143636,58.8841865 C74.0143636,63.8855711 78.3314545,67.9611095 83.6507272,67.9611097 L116,67.9611097 L116,146.884956 Z M144.990333,10.0614263 C144.990333,5.00519104 140.659667,0.884955752 135.323667,0.884955752 L38.6666667,0.884955752 C33.3403334,0.884955752 29.0000001,5.00519104 28.9999999,10.0614263 L28.9999999,19.2378969 L9.66666665,19.2378969 C4.34033332,19.2378969 0,23.3581322 0,28.4143675 L0,147.708485 C0,152.773897 4.34033332,156.884956 9.66666665,156.884956 L116,156.884956 C121.338753,156.884956 125.666667,152.77651 125.666667,147.708485 L125.666667,142.202603 L135.333333,142.202603 C140.672086,142.202603 145,138.094157 145,133.026132 L144.990333,10.0614263 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"159px\\\" viewBox=\\\"0 0 175 159\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>drag</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"drag\\\" transform=\\\"translate(0.000000, 0.000000)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M174.799112,77.2243509 C175.141784,80.4933122 173.860538,83.7226514 171.369927,85.8675022 L145.821493,107.665891 C143.704571,109.29545 140.681703,108.978807 138.948417,106.945941 C137.215132,104.913075 137.380357,101.878162 139.32409,100.045479 L158.345038,83.8019696 L92.4385031,83.8019696 L92.4385031,144.173679 L109.273597,130.085944 C111.397298,128.30558 114.562167,128.583909 116.342532,130.70761 C118.122896,132.83131 117.844567,135.99618 115.720867,137.776544 L93.3308935,156.516741 C89.5429956,159.697467 83.9995074,159.633553 80.2859517,156.366338 L59.0490671,137.706356 C57.140269,135.840194 57.0244102,132.80703 58.7852891,130.800695 C60.546168,128.79436 63.5687212,128.515654 65.6667932,130.166159 L82.4116455,144.885586 L82.4116455,83.8019696 L16.5051101,83.8019696 L35.5360859,100.045479 C36.9700273,101.186546 37.6671397,103.019075 37.3541473,104.824694 C37.041155,106.630312 35.7679333,108.121296 34.0335988,108.713163 C32.2992644,109.305031 30.380183,108.903467 29.0286553,107.665891 L3.52032945,85.8975828 C1.25557692,83.9644222 -0.0328273042,81.1246883 0.00397844461,78.147297 C0.0407841935,75.1699056 1.39899211,72.3628885 3.71083975,70.4863026 L29.118897,49.820949 C31.2816477,48.328475 34.2285594,48.7508003 35.8850928,50.7906204 C37.5416262,52.8304405 37.3503183,55.8013071 35.4458442,57.6118174 L15.5625855,73.7751119 L82.4116455,73.7751119 L82.4116455,14.1153089 L65.6667932,28.8347359 C64.3276607,30.0598688 62.43094,30.4655542 60.7078175,29.8954003 C58.9846951,29.3252464 57.7042897,27.8683002 57.360198,26.0862151 C57.0161064,24.30413 57.662069,22.4752334 59.0490671,21.3045658 L80.2759248,2.65461056 C83.9853287,-0.629787191 89.5418994,-0.698070701 93.3308935,2.49418084 L115.720867,21.2243509 C117.320514,22.5881211 117.904229,24.8023516 117.184781,26.777481 C116.465334,28.7526104 114.594242,30.0726692 112.492218,30.0880931 C111.314421,30.0896881 110.174126,29.6740664 109.273597,28.9149508 L92.4385031,14.8272158 L92.4385031,73.7751119 L159.29759,73.7751119 L139.414331,57.6118174 C138.022627,56.4816171 137.339593,54.6948034 137.622523,52.9244518 C137.905453,51.1541001 139.111362,49.669169 140.785997,49.0290176 C142.460631,48.3888662 144.349574,48.6907487 145.741278,49.820949 L171.149336,70.4863026 C173.218763,72.1532673 174.533435,74.5803549 174.799112,77.2243509\\\" id=\\\"Path\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"137px\\\" viewBox=\\\"0 0 175 137\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>funnel </title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"funnel-\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M116.331467,108.325366 L60.5285591,108.325366 C58.9291301,108.325102 57.4459378,109.160985 56.6178211,110.52934 C55.7897045,111.897695 55.7371711,113.5994 56.4793063,115.016231 L66.3876358,133.863994 C67.1750739,135.367321 68.7306799,136.310539 70.4277481,136.313655 L106.432278,136.313655 C108.129346,136.310539 109.684952,135.367321 110.47239,133.863994 L120.380719,115.016231 C121.122854,113.5994 121.070321,111.897695 120.242204,110.52934 C119.414088,109.160985 117.930896,108.325102 116.331467,108.325366 L116.331467,108.325366 Z M134.968998,71.0137414 L41.9001683,71.0137414 C40.2925309,71.0025161 38.7981975,71.8401445 37.9688482,73.2173896 C37.139499,74.5946346 37.098146,76.3072185 37.8600561,77.722887 L47.8415098,96.5706503 C48.6348072,98.0648166 50.1899261,98.9971843 51.881622,98.9928896 L125.024106,98.9928896 C126.716211,98.9981743 128.270437,98.0607046 129.055078,96.5615098 L139.00911,77.7137465 C139.754942,76.2976526 139.705659,74.5945859 138.879188,73.2239903 C138.052717,71.8533948 136.569493,71.014997 134.968998,71.0137414 L134.968998,71.0137414 Z M153.63395,35.5759245 L23.2352156,35.5759245 C21.6347203,35.5771801 20.151496,36.4155778 19.325025,37.7861734 C18.498554,39.156769 18.4492717,40.8598357 19.1951033,42.2759296 L29.1491354,61.1145524 C29.9359394,62.6172637 31.4930184,63.5578521 33.1892477,63.5550727 L143.70734,63.5550727 C145.402425,63.5537423 146.957543,62.6143387 147.747452,61.1145524 L157.674063,42.266789 C158.415446,40.8514003 158.363824,39.1515952 157.537917,37.7838041 C156.712011,36.4160129 155.231751,35.5788553 153.63395,35.5759245 L153.63395,35.5759245 Z M174.995358,4.69922974 C174.994253,5.44166711 174.81229,6.17265769 174.465208,6.82897225 L164.538597,25.6767355 C163.746223,27.1729824 162.191592,28.108575 160.498485,28.1081153 L14.4968732,28.1081153 C12.8031994,28.1106197 11.2475937,27.1744407 10.4567611,25.6767355 L0.530150516,6.82897225 C-0.215681017,5.41287837 -0.166398756,3.70981169 0.660072225,2.33921611 C1.48654321,0.96862053 2.96976742,0.130222778 4.57026264,0.1289671 L170.425096,0.1289671 C172.949182,0.1289671 174.995358,2.17514338 174.995358,4.69922974 L174.995358,4.69922974 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"100px\\\" viewBox=\\\"0 0 175 100\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>gange</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"gange\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M143.698895,82.9089367 C142.437361,67.6655629 135.026556,53.5920156 123.171797,43.9267897 L135.7146,25.9137777 C153.409366,39.7333892 164.305583,60.4959162 165.625777,82.9089367 L143.698895,82.9089367 L143.698895,82.9089367 Z M115.601912,38.6960173 C112.342946,36.8541942 108.909619,35.339582 105.352176,34.174346 L107.654453,22.8655635 C107.981818,21.2534161 107.424245,19.5890834 106.191766,18.4995036 C104.959288,17.4099237 103.239147,17.0606298 101.679304,17.5831975 C100.119461,18.1057651 98.9568933,19.4208039 98.6295287,21.0329513 L96.4193432,31.8996968 C93.4676767,31.3974455 90.4804994,31.132603 87.4865101,31.1077136 C77.1817177,31.1042083 67.0761605,33.9468942 58.284434,39.3222365 L45.5021944,21.4934066 C70.6181595,5.43266895 102.701308,5.12868193 128.117087,20.7106326 L115.601912,38.6960173 L115.601912,38.6960173 Z M31.2649159,82.9089367 L9.34724295,82.9089367 C10.6455448,61.0475255 21.0636813,40.7358347 38.0612364,26.9267794 L50.843476,44.7464001 C39.5322634,54.3814577 32.493597,68.101229 31.2649159,82.9089367 L31.2649159,82.9089367 Z M87.4865101,0.0269797767 C39.2492112,0.0269797767 0,39.276191 0,87.5134899 C5.46353103e-08,90.0565144 2.06152873,92.118043 4.60455321,92.118043 L35.685287,92.118043 C38.2283115,92.118043 40.2898401,90.0565144 40.2898401,87.5134899 C40.315223,61.4580101 61.4310302,40.3422029 87.4865101,40.31682 C89.908505,40.31682 92.2384089,40.6759751 94.5683128,41.0351302 L86.9247546,78.6451205 C82.0531374,79.4923583 78.2774037,83.5443651 78.2774037,88.6646282 C78.2774037,94.3864333 82.9158433,99.0248728 88.6376484,99.0248728 C94.3594535,99.0248728 98.997893,94.3864333 98.997893,88.6646282 C98.997893,85.7361324 97.7546637,83.102328 95.793124,81.2236703 L103.501146,43.3005704 C121.633876,49.8942906 134.68318,67.1337376 134.68318,87.5134899 C134.68318,90.0565144 136.744709,92.118043 139.287733,92.118043 L170.368467,92.118043 C172.911491,92.118043 174.97302,90.0565144 174.97302,87.5134899 C174.97302,39.276191 135.723809,0.0269798756 87.4865101,0.0269797767 L87.4865101,0.0269797767 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"142px\\\" viewBox=\\\"0 0 175 142\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>geo</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"geo\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M9.20332621,34.019885 L55.2181167,56.861627 L55.2181167,128.571076 L9.20332621,103.207724 L9.20332621,34.019885 Z M171.819596,50.2815119 L151.996424,43.1124076 C149.63126,42.3318353 147.074346,43.5747977 146.227189,45.9169373 C145.380032,48.2590769 146.550177,50.8501245 148.867418,51.7631882 L165.653614,57.8371405 L165.653614,131.138702 L119.638823,119.625801 L119.638823,87.4706656 C119.638823,84.9293389 117.578671,82.8691865 115.037344,82.8691865 C112.496018,82.8691865 110.435865,84.9293389 110.435865,87.4706656 L110.435865,119.644207 L64.4210748,131.41479 L64.4210748,58.2236647 L81.060023,51.7263763 C83.2914479,50.7138845 84.3410975,48.1328302 83.4496557,45.8503474 C82.5582139,43.5678645 80.037126,42.3813901 77.7101463,43.1492194 L61.2460542,49.5820871 L6.64490386,22.4793755 C5.21943693,21.7614379 3.52312776,21.8367966 2.16693957,22.6783095 C0.810751382,23.5198224 -0.00997312356,25.0062796 0.000368118324,26.6023007 L0.000368118324,105.913394 C0.000368118324,107.597535 0.91146097,109.134429 2.38393426,109.944289 L58.8072703,141.059491 C59.8287987,141.620871 61.0435892,141.795727 62.16635,141.49203 L115.046547,127.963681 L169.141535,141.501233 C170.516378,141.840666 171.970958,141.532118 173.089604,140.663763 C174.206625,139.788526 174.858383,138.44767 174.856572,137.028595 L174.856572,54.6069022 C174.855748,52.6695411 173.64154,50.9402146 171.819596,50.2815119 Z M115.037344,16.5986853 C121.13907,16.6012266 126.083435,21.5497125 126.080894,27.651438 C126.078353,33.7531634 121.129867,38.697529 115.028141,38.6949877 C108.926416,38.6924463 103.98205,33.7439604 103.984592,27.642235 C103.987133,21.5405096 108.935619,16.596144 115.037344,16.5986853 L115.037344,16.5986853 Z M99.5763747,54.7173377 C102.208421,58.3341002 105.00612,61.9140509 107.813022,65.199507 C108.806942,66.3866886 109.718035,67.4358258 110.491083,68.3285127 C111.04326,68.8806902 111.402176,69.2856204 111.558626,69.4512736 C112.438859,70.4713636 113.723372,71.0524431 115.07068,71.0400337 C116.417988,71.0276243 117.69158,70.4229833 118.552874,69.3868529 C118.72773,69.2211997 119.06824,68.8254725 119.555997,68.264092 C120.506081,67.2663872 121.406012,66.2220982 122.252463,65.1350863 C125.059366,61.8496302 127.866268,58.2788825 130.498314,54.6437141 C133.121157,51.0177486 135.412694,47.4470008 137.262488,44.0879211 C140.741206,37.8851274 142.646219,32.5382087 142.646219,28.1207888 C142.701436,12.5861956 130.314255,0.0425636812 115.028141,0.0425636812 C99.7604339,0.0425636812 87.42847,12.5861956 87.42847,28.1207888 C87.42847,32.5382087 89.3334823,37.9403451 92.8029975,44.1523418 C94.7172128,47.5114215 97.0087494,51.0729663 99.5763747,54.7173377 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"120px\\\" viewBox=\\\"0 0 175 120\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>gl</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"gl\\\" fill=\\\"#5067A2\\\"> <path d=\\\"M170.394737,101.315789 L119.736842,101.315789 L119.736842,4.60526316 C119.736842,2.06315789 117.673684,0 115.131579,0 L105.921053,0 C103.378947,0 101.315789,2.06315789 101.315789,4.60526316 L101.315789,115.131579 C101.315789,117.673684 103.378947,119.736842 105.921053,119.736842 L170.394737,119.736842 C172.936842,119.736842 175,117.673684 175,115.131579 L175,105.921053 C175,103.378947 172.936842,101.315789 170.394737,101.315789\\\" id=\\\"Fill-1\\\"></path> <path d=\\\"M78.2894737,0 L4.60526316,0 C2.06315789,0 0,2.06315789 0,4.60526316 L0,115.131579 C0,117.673684 2.06315789,119.736842 4.60526316,119.736842 L78.2894737,119.736842 C80.8315789,119.736842 82.8947368,117.673684 82.8947368,115.131579 L82.8947368,59.8684211 C82.8947368,57.3263158 80.8315789,55.2631579 78.2894737,55.2631579 L41.4473684,55.2631579 C38.9052632,55.2631579 36.8421053,57.3263158 36.8421053,59.8684211 L36.8421053,69.0789474 C36.8421053,71.6210526 38.9052632,73.6842105 41.4473684,73.6842105 L64.4736842,73.6842105 L64.4736842,101.315789 L18.4210526,101.315789 L18.4210526,18.4210526 L64.4736842,18.4210526 L64.4736842,32.2368421 C64.4736842,34.7789474 66.5368421,36.8421053 69.0789474,36.8421053 L78.2894737,36.8421053 C80.8315789,36.8421053 82.8947368,34.7789474 82.8947368,32.2368421 L82.8947368,4.60526316 C82.8947368,2.06315789 80.8315789,0 78.2894737,0\\\" id=\\\"Fill-3\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"171px\\\" height=\\\"146px\\\" viewBox=\\\"0 0 171 146\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>graph</title> <desc>Created with Sketch.</desc> <defs> <polygon id=\\\"path-1\\\" points=\\\"0.06 0 171 0 171 146 0.06 146\\\"></polygon> </defs> <g id=\\\"graph\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <mask id=\\\"mask-2\\\" fill=\\\"white\\\"> <use xlink:href=\\\"#path-1\\\"></use> </mask> <g id=\\\"Clip-2\\\"></g> <path d=\\\"M171,100 C171,106.075 166.075,111 160,111 C154.016,111 149.158,106.219 149.014,100.27 L114.105,83.503 C111.564,86.693 108.179,89.18 104.282,90.616 L108.698,124.651 C112.951,126.172 116,130.225 116,135 C116,141.075 111.075,146 105,146 C98.925,146 94,141.075 94,135 C94,131.233 95.896,127.912 98.781,125.93 L94.364,91.896 C82.94,90.82 74,81.206 74,69.5 C74,69.479 74.001,69.46 74.001,69.439 L53.719,64.759 C50.642,70.269 44.76,74 38,74 C36.07,74 34.215,73.689 32.472,73.127 L20.624,90.679 C21.499,92.256 22,94.068 22,96 C22,102.075 17.075,107 11,107 C4.925,107 0,102.075 0,96 C0,89.925 4.925,85 11,85 C11.452,85 11.895,85.035 12.332,85.089 L24.184,67.531 C21.574,64.407 20,60.389 20,56 C20,48.496 24.594,42.07 31.121,39.368 L29.111,21.279 C24.958,19.707 22,15.704 22,11 C22,4.925 26.925,0 33,0 C39.075,0 44,4.925 44,11 C44,14.838 42.031,18.214 39.051,20.182 L41.061,38.279 C49.223,39.681 55.49,46.564 55.95,55.011 L76.245,59.694 C79.889,52.181 87.589,47 96.5,47 C100.902,47 105.006,48.269 108.475,50.455 L131.538,27.391 C131.192,26.322 131,25.184 131,24 C131,17.925 135.925,13 142,13 C148.075,13 153,17.925 153,24 C153,30.075 148.075,35 142,35 C140.816,35 139.678,34.808 138.609,34.461 L115.546,57.525 C117.73,60.994 119,65.098 119,69.5 C119,71.216 118.802,72.884 118.438,74.49 L153.345,91.257 C155.193,89.847 157.495,89 160,89 C166.075,89 171,93.925 171,100\\\" id=\\\"Fill-1\\\" fill=\\\"#4F608A\\\" mask=\\\"url(#mask-2)\\\"></path> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"165px\\\" height=\\\"137px\\\" viewBox=\\\"0 0 165 137\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>heatmap</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"heatmap\\\" transform=\\\"translate(-0.500000, -0.474277)\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M44.5999999,89.4742765 L5.40000005,89.4742765 C2.6938048,89.4742765 0.500000074,87.2916647 0.5,84.5992766 L0.5,55.3492765 C0.500000074,52.6568883 2.6938048,50.4742765 5.40000005,50.4742765 L44.5999999,50.4742765 C47.3061952,50.4742765 49.4999999,52.6568883 49.5,55.3492765 L49.5,84.5992766 C49.4999999,87.2916647 47.3061952,89.4742765 44.5999999,89.4742765\\\" id=\\\"Path\\\" fill=\\\"#687DB0\\\"></path> <path d=\\\"M102.6,89.4742765 L63.3999999,89.4742765 C60.6938047,89.4742765 58.5000001,87.2916647 58.5,84.5992766 L58.5,55.3492765 C58.5000001,52.6568884 60.6938047,50.4742766 63.3999999,50.4742765 L102.6,50.4742765 C105.306195,50.4742765 107.5,52.6568883 107.5,55.3492765 L107.5,84.5992766 C107.5,87.2916647 105.306195,89.4742765 102.6,89.4742765\\\" id=\\\"Path\\\" fill=\\\"#8497C0\\\"></path> <path d=\\\"M160.6,89.4742765 L121.4,89.4742765 C118.693805,89.4742765 116.5,87.2916647 116.5,84.5992766 L116.5,55.3492765 C116.5,52.6568884 118.693805,50.4742766 121.4,50.4742765 L160.6,50.4742765 C163.306195,50.4742766 165.5,52.6568884 165.5,55.3492765 L165.5,84.5992766 C165.5,87.2916647 163.306195,89.4742765 160.6,89.4742765\\\" id=\\\"Path\\\" fill=\\\"#A7B4D1\\\"></path> <path d=\\\"M44.5999999,137.474277 L5.40000005,137.474277 C2.69380475,137.474277 0.5,135.291665 0.5,132.599276 L0.5,103.349277 C0.5,100.656888 2.69380475,98.4742765 5.40000005,98.4742765 L44.5999999,98.4742765 C45.8995608,98.4742765 47.1458949,98.9878911 48.0648232,99.902131 C48.9837515,100.816371 49.5,102.056346 49.5,103.349277 L49.5,132.599276 C49.5,135.291665 47.3061953,137.474277 44.5999999,137.474277\\\" id=\\\"Path\\\" fill=\\\"#8497C0\\\"></path> <path d=\\\"M102.6,137.474277 L63.3999999,137.474277 C60.6938047,137.474276 58.5,135.291665 58.5,132.599276 L58.5,103.349277 C58.5,100.656888 60.6938047,98.4742766 63.3999999,98.4742765 L102.6,98.4742765 C105.306195,98.4742765 107.5,100.656888 107.5,103.349277 L107.5,132.599276 C107.5,135.291665 105.306195,137.474277 102.6,137.474277\\\" id=\\\"Path\\\" fill=\\\"#A7B4D1\\\"></path> <path d=\\\"M160.6,137.474277 L121.4,137.474277 C118.693805,137.474276 116.5,135.291665 116.5,132.599276 L116.5,103.349277 C116.5,100.656888 118.693805,98.4742766 121.4,98.4742765 L160.6,98.4742765 C163.306195,98.4742766 165.5,100.656888 165.5,103.349277 L165.5,132.599276 C165.5,135.291665 163.306195,137.474276 160.6,137.474277\\\" id=\\\"Path\\\" fill=\\\"#CDD5E3\\\"></path> <path d=\\\"M5.40000005,0.474276527 L44.5999999,0.474276527 C47.3061953,0.474276527 49.5,2.65688839 49.5,5.34927658 L49.5,34.5992765 C49.5,37.2916647 47.3061953,39.4742765 44.5999999,39.4742765 L5.40000005,39.4742765 C2.69380475,39.4742765 0.5,37.2916647 0.5,34.5992765 L0.5,5.34927658 C0.5,2.65688839 2.69380475,0.474276527 5.40000005,0.474276527\\\" id=\\\"Path\\\" fill=\\\"#5067A2\\\"></path> <path d=\\\"M102.6,39.4742765 L63.3999999,39.4742765 C60.6938047,39.4742765 58.5,37.2916646 58.5,34.5992765 L58.5,5.34927658 C58.5,2.65688845 60.6938047,0.474276601 63.3999999,0.474276527 L102.6,0.474276527 C105.306195,0.474276527 107.5,2.65688839 107.5,5.34927658 L107.5,34.5992765 C107.5,37.2916647 105.306195,39.4742765 102.6,39.4742765\\\" id=\\\"Path\\\" fill=\\\"#687DB0\\\"></path> <path d=\\\"M160.6,39.4742765 L121.4,39.4742765 C118.693805,39.4742765 116.5,37.2916646 116.5,34.5992765 L116.5,5.34927658 C116.5,2.65688845 118.693805,0.474276601 121.4,0.474276527 L160.6,0.474276527 C163.306195,0.474276601 165.5,2.65688845 165.5,5.34927658 L165.5,34.5992765 C165.5,37.2916646 163.306195,39.4742765 160.6,39.4742765\\\" id=\\\"Path\\\" fill=\\\"#8497C0\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"138px\\\" viewBox=\\\"0 0 175 138\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>line</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"line\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M25.2739189,111.655778 C26.7855309,111.657407 28.2007506,110.913642 29.0567232,109.667735 L69.3606163,51.4346379 L108.642876,94.5825372 C109.596174,95.6275458 110.977093,96.1760957 112.387618,96.0700817 C113.798143,95.9640677 115.081554,95.2152689 115.86794,94.0395069 L167.15209,17.582681 C168.126301,16.2187314 168.281888,14.4329668 167.558237,12.9210891 C166.834585,11.4092114 165.346152,10.4103472 163.672804,10.3136363 C161.999456,10.2169253 160.40586,11.0376639 159.512851,12.4561069 L111.496086,84.0348638 L72.2782537,40.9605957 C71.3313898,39.926718 69.968454,39.3754562 68.5690807,39.4603596 C67.1694417,39.5586882 65.8899144,40.2864616 65.0900052,41.4391988 L21.4911146,104.439918 C20.5200574,105.846972 20.4090348,107.676368 21.202809,109.190526 C21.9965833,110.704685 23.5643138,111.65402 25.2739189,111.655778\\\" id=\\\"Path\\\"></path> <path d=\\\"M170.272214,127.854648 L9.20390349,127.854648 L9.20390349,5.00465881 C9.20390349,2.46307104 7.14353951,0.402707066 4.60195174,0.402707066 C2.06036398,0.402707066 3.11254732e-16,2.46307104 0,5.00465881 L0,132.4566 C3.11254728e-16,134.998188 2.06036395,137.058552 4.60195168,137.058552 L170.272214,137.058552 C172.813801,137.058552 174.874165,134.998188 174.874165,132.4566 C174.874165,129.915012 172.813801,129.257355 170.272214,129.257355\\\" id=\\\"Path\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"163px\\\" height=\\\"137px\\\" viewBox=\\\"0 0 163 137\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>lines</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"lines\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M118.024118,118.8 C120.522388,118.8 122.566427,120.8475 122.566427,123.35 C122.566427,125.8525 120.522388,127.9 118.024118,127.9 C115.517543,127.894993 113.486807,125.860819 113.481809,123.35 C113.481809,120.8475 115.525848,118.8 118.024118,118.8 Z M142.434485,46 L64.9673569,46 C62.4587091,46 60.4250482,48.0371044 60.4250482,50.55 C60.4250482,53.0628956 62.4587091,55.1 64.9673569,55.1 L142.034762,55.0909 C149.519307,56.1087027 154.7743,62.9956941 153.790257,70.4972 C152.963556,76.6852 148.066948,81.5264 142.434485,82.2544 L20.6642736,82.2726 C14.6272756,82.8301001 9.06337697,85.7822231 5.21133949,90.4717 C0.0521031846,96.7506172 -1.39663076,105.298969 1.40493936,112.931618 C4.20650947,120.564268 10.8382585,126.136619 18.8291809,127.5724 L105.232977,127.8909 C107.143393,133.33221 112.265894,136.980155 118.024118,137 C125.537097,137 131.651044,130.8757 131.651044,123.35 C131.651044,115.8243 125.537097,109.7 118.024118,109.7 C112.110032,109.7 107.113492,113.5129 105.232977,118.8 L21.8634431,118.8728 L20.4099043,118.618 C14.3307333,117.521702 9.72082575,112.509885 9.12680957,106.3512 C8.77445503,102.712306 9.88625731,99.0830035 12.2155795,96.2684 C14.5594108,93.4383 17.8571269,91.6911 21.0912506,91.3544 L142.988646,91.3271 C153.280464,90.058092 161.421536,81.9929721 162.802197,71.6984 C164.446513,59.2314 155.679857,47.729 142.434485,46 Z\\\" id=\\\"Shape\\\"></path> <path d=\\\"M31.9999101,18.2496933 C36.9704563,18.2496933 40.9998801,22.3350263 40.9998801,27.37454 C40.9998801,32.4140537 36.9704563,36.4993867 31.9999101,36.4993867 C27.0293639,36.4993867 22.9999401,32.4140537 22.9999401,27.37454 C22.9999401,22.3350263 27.0293639,18.2496933 31.9999101,18.2496933 Z M16.8799604,56.2181803 C19.4539519,59.9411177 22.1809428,63.6184309 24.9259336,66.9946242 C25.9069304,68.2173537 26.7979274,69.3032104 27.5539249,70.2156951 C28.1029231,70.7814356 28.435922,71.1920537 28.5979214,71.3654258 C30.4699152,73.555389 33.5839048,73.555389 35.4378986,71.3015518 C35.617898,71.1373046 35.932897,70.7266865 36.4188954,70.1518212 C37.2648925,69.2393365 38.1288897,68.1443549 39.0558866,66.9307503 C41.8008774,63.554557 44.5368683,59.8863687 47.1108598,56.1451815 C49.6758512,52.4131192 51.9258437,48.7449309 53.7348377,45.2957388 C57.1368264,38.917471 58.9998202,33.4243133 58.9998202,28.8710148 C59.05382,12.911658 46.9398603,0 31.9909101,0 C17.0509599,0 5,12.911658 5,28.8710148 C5,33.4243133 6.8629938,38.9722201 10.2559825,45.3596128 C12.1279763,48.8088048 14.3689688,52.4678683 16.8799604,56.2181803 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"142px\\\" viewBox=\\\"0 0 175 142\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>geo</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"geo\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M9.20332621,34.019885 L55.2181167,56.861627 L55.2181167,128.571076 L9.20332621,103.207724 L9.20332621,34.019885 Z M171.819596,50.2815119 L151.996424,43.1124076 C149.63126,42.3318353 147.074346,43.5747977 146.227189,45.9169373 C145.380032,48.2590769 146.550177,50.8501245 148.867418,51.7631882 L165.653614,57.8371405 L165.653614,131.138702 L119.638823,119.625801 L119.638823,87.4706656 C119.638823,84.9293389 117.578671,82.8691865 115.037344,82.8691865 C112.496018,82.8691865 110.435865,84.9293389 110.435865,87.4706656 L110.435865,119.644207 L64.4210748,131.41479 L64.4210748,58.2236647 L81.060023,51.7263763 C83.2914479,50.7138845 84.3410975,48.1328302 83.4496557,45.8503474 C82.5582139,43.5678645 80.037126,42.3813901 77.7101463,43.1492194 L61.2460542,49.5820871 L6.64490386,22.4793755 C5.21943693,21.7614379 3.52312776,21.8367966 2.16693957,22.6783095 C0.810751382,23.5198224 -0.00997312356,25.0062796 0.000368118324,26.6023007 L0.000368118324,105.913394 C0.000368118324,107.597535 0.91146097,109.134429 2.38393426,109.944289 L58.8072703,141.059491 C59.8287987,141.620871 61.0435892,141.795727 62.16635,141.49203 L115.046547,127.963681 L169.141535,141.501233 C170.516378,141.840666 171.970958,141.532118 173.089604,140.663763 C174.206625,139.788526 174.858383,138.44767 174.856572,137.028595 L174.856572,54.6069022 C174.855748,52.6695411 173.64154,50.9402146 171.819596,50.2815119 Z M115.037344,16.5986853 C121.13907,16.6012266 126.083435,21.5497125 126.080894,27.651438 C126.078353,33.7531634 121.129867,38.697529 115.028141,38.6949877 C108.926416,38.6924463 103.98205,33.7439604 103.984592,27.642235 C103.987133,21.5405096 108.935619,16.596144 115.037344,16.5986853 L115.037344,16.5986853 Z M99.5763747,54.7173377 C102.208421,58.3341002 105.00612,61.9140509 107.813022,65.199507 C108.806942,66.3866886 109.718035,67.4358258 110.491083,68.3285127 C111.04326,68.8806902 111.402176,69.2856204 111.558626,69.4512736 C112.438859,70.4713636 113.723372,71.0524431 115.07068,71.0400337 C116.417988,71.0276243 117.69158,70.4229833 118.552874,69.3868529 C118.72773,69.2211997 119.06824,68.8254725 119.555997,68.264092 C120.506081,67.2663872 121.406012,66.2220982 122.252463,65.1350863 C125.059366,61.8496302 127.866268,58.2788825 130.498314,54.6437141 C133.121157,51.0177486 135.412694,47.4470008 137.262488,44.0879211 C140.741206,37.8851274 142.646219,32.5382087 142.646219,28.1207888 C142.701436,12.5861956 130.314255,0.0425636812 115.028141,0.0425636812 C99.7604339,0.0425636812 87.42847,12.5861956 87.42847,28.1207888 C87.42847,32.5382087 89.3334823,37.9403451 92.8029975,44.1523418 C94.7172128,47.5114215 97.0087494,51.0729663 99.5763747,54.7173377 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"148px\\\" viewBox=\\\"0 0 175 148\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>parallel</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"parallel\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M119.966527,90.2642567 L119.966527,71.4595035 L164.953975,91.1040224 L164.953975,117.16675 L119.966527,90.2642567 Z M99.5422259,68.8202399 L109.969317,68.8202399 L109.969317,80.2370544 L99.5422259,68.8202399 Z M64.9818688,58.8230293 L64.9818688,45.8666444 L76.8485579,58.8230293 L64.9818688,58.8230293 L64.9818688,58.8230293 Z M9.99721065,95.6627504 L9.99721065,37.9888424 L54.9846583,37.9888424 L54.9846583,61.3523236 L9.99721065,95.6627504 Z M170,2.04051565e-11 C167.238576,2.04245402e-11 165,2.23857623 165,4.99999995 L165,80.2194419 L120,60.5694419 L120,5.00139509 C120,2.23997133 117.761424,0.00139506489 115,0.00139506489 C112.238576,0.00139506489 110,2.23997133 110,5.00139509 L110,58.8394419 L90.42,58.8394419 L64.9999999,31.059442 L64.9999999,5.00139509 C64.9999999,2.23997137 62.7614237,0.00139513813 60,0.00139513813 C57.2385763,0.00139513813 55,2.23997137 55,5.00139509 L55,27.999442 L10,27.999442 L10,4.99999995 C10,2.23857619 7.76142378,-7.3221713e-08 5.00000002,-7.32217131e-08 C2.23857626,-7.32217133e-08 3.38176877e-16,2.23857619 0,4.99999995 L0,142.999442 C3.38176877e-16,145.760866 2.23857626,147.999442 5.00000002,147.999442 C7.76142378,147.999442 10,145.760866 10,142.999442 L10,108.249442 L55,73.9494419 L55,142.999442 C55,145.760866 57.2385763,147.999442 60,147.999442 C62.7614237,147.999442 64.9999999,145.760866 64.9999999,142.999442 L64.9999999,68.839442 L86.01,68.839442 L110,95.0694419 L110,142.999442 C110,145.760866 112.238576,147.999442 115,147.999442 C117.761424,147.999442 120,145.760866 120,142.999442 L120,101.939442 L165,128.839442 L165,142.999442 C165,145.760866 167.238576,147.999442 170,147.999442 C172.761424,147.999442 175,145.760866 175,142.999442 L175,4.99999995 C175,3.67391749 174.473216,2.40214791 173.535534,1.46446603 C172.597852,0.526784141 171.326082,-3.88296707e-08 170,2.04051565e-11 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"141px\\\" viewBox=\\\"0 0 175 141\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>pictorialBar</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"pictorialBar\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M165.182447,113.123194 C161.75364,113.169204 158.605604,115.027549 156.908673,118.007359 L62.4782339,118.007359 C59.7807842,118.007359 57.5940692,120.194074 57.5940692,122.891524 C57.5940692,125.588973 59.7807842,127.775688 62.4782339,127.775688 L156.908673,127.775688 C158.605604,130.755498 161.75364,132.613843 165.182447,132.659853 C170.576885,132.6592 174.949595,128.285961 174.949595,122.891524 C174.949595,117.497086 170.576885,113.123847 165.182447,113.123194 L165.182447,113.123194 Z M165.182447,78.9340419 C161.75364,78.980052 158.605603,80.8383969 156.908673,83.8182066 L77.2674843,83.8182066 C74.5700347,83.8182066 72.3833197,86.0049216 72.3833197,88.7023712 C72.3833197,91.3998208 74.5700347,93.5865358 77.2674843,93.5865358 L156.908673,93.5865358 C158.605603,96.5663455 161.75364,98.4246904 165.182447,98.4707005 C170.577347,98.4707005 174.950777,94.0972705 174.950777,88.7023712 C174.950777,83.3074719 170.577347,78.9340419 165.182447,78.9340419 L165.182447,78.9340419 Z M165.182447,44.7448896 C170.407595,44.9786234 174.523583,49.2828462 174.523583,54.5132188 C174.523583,59.7435915 170.407595,64.0478142 165.182447,64.2815481 C161.75364,64.235538 158.605604,62.3771932 156.908673,59.3973835 L77.2674843,59.3973835 C74.5700346,59.3973835 72.3833196,57.2106685 72.3833196,54.5132188 C72.3833196,51.8157692 74.5700346,49.6290542 77.2674843,49.6290542 L156.908673,49.6290542 C158.605604,46.6492445 161.75364,44.7908997 165.182447,44.7448896 Z M62.6149904,20.3240665 C62.6149904,19.0287054 63.1295706,17.7863991 64.0455291,16.8704405 C64.9614877,15.954482 66.2037941,15.4399018 67.4991551,15.4399019 L156.908673,15.4399019 C158.605604,12.4600922 161.75364,10.6017474 165.182447,10.5557373 C170.407595,10.7894711 174.523583,15.0936938 174.523583,20.3240665 C174.523583,25.5544392 170.407595,29.8586619 165.182447,30.0923957 C161.75364,30.0463857 158.605604,28.1880408 156.908673,25.2082312 L67.4991551,25.2082312 C66.2037941,25.2082312 64.9614877,24.6936511 64.0455291,23.7776925 C63.1295705,22.8617339 62.6149904,21.6194275 62.6149904,20.3240665 Z M23.5416735,29.3240665 C31.6340224,29.3240665 38.1941674,22.7639215 38.1941674,14.6715726 C38.1941674,6.57922368 31.6340224,0.0190787204 23.5416735,0.0190787204 C15.4493246,0.0190787204 8.88917966,6.57922368 8.88917966,14.6715726 C8.88917966,22.7639215 15.4493246,29.3240665 23.5416735,29.3240665 Z M34.0523957,34.2082312 L13.0211829,34.2082312 C10.6337153,34.2093302 8.59694107,35.9362503 8.20539657,38.2913927 L0.0683783524,87.133039 C-0.166957522,88.5485838 0.232108973,89.996 1.15960938,91.0909397 C2.08710979,92.1858793 3.44919091,92.8175461 4.88416457,92.8182066 L8.88917966,92.8182066 L9.0426883,136.115835 C9.0426883,138.813285 11.2294033,141 13.9268529,141 L33.4635113,141 C34.7588723,141 36.0011787,140.48542 36.9171373,139.569461 C37.8330959,138.653503 38.347676,137.411196 38.347676,136.115835 L38.1941674,92.8182066 L42.189414,92.8182066 C43.6255482,92.8209447 44.9898051,92.1902296 45.9180572,91.0944026 C46.8463094,89.9985755 47.2440794,88.5491696 47.0052003,87.133039 L38.8681821,38.2913927 C38.4766376,35.9362503 36.4398634,34.2093302 34.0523957,34.2082312 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"144px\\\" height=\\\"152px\\\" viewBox=\\\"0 0 144 152\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>pie (2)</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"pie-(2)\\\" transform=\\\"translate(0.000000, -0.612903)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M72.1778824,12.9606446 L72.1778824,73.6462877 C72.1779317,75.129331 72.9386663,76.5065116 74.1881954,77.2856176 C75.4377246,78.0647237 76.9977039,78.1345538 78.3105882,77.4701504 L128.354824,52.1402676 L132.666353,49.9503148 C134.757503,48.8920984 137.302156,49.7461658 138.350118,51.857969 L138.468706,52.1060495 L138.782118,52.8930638 C140.942118,58.6416896 144,65.8873535 144,83.8518095 C144,116.316148 115.123765,152.612903 73.2282353,152.612903 C31.3242354,152.612903 0,119.994584 0,80.8406245 C0,44.5353146 27.216,13.7391044 62.2588236,9.22232682 C64.122353,8.98280072 65.9265883,8.80315611 67.6715294,8.69194766 C68.8395088,8.61630135 69.986418,9.03213213 70.8400527,9.84074781 C71.6936873,10.6493635 72.1779411,11.7786714 72.1778824,12.9606446 Z M90.0254118,0.659269609 C88.9814749,0.488081123 87.9163292,0.795987208 87.1201941,1.49909291 C86.324059,2.20219861 85.8798887,3.22724309 85.9087059,4.29493319 L85.9087059,54.6039644 C85.9087059,56.9393437 87.6028236,57.8717845 89.5680001,56.7511446 L133.149176,31.9088684 C134.092985,31.4117209 134.762111,30.50855 134.968019,29.4538349 C135.173928,28.3991197 134.894328,27.3070442 134.208,26.4853136 C134.208,26.4853136 133.538824,25.5357637 132.446118,24.3381334 C127.296,18.6921614 122.832,14.7399812 116.860235,10.9417819 C109.345997,6.07770841 100.978781,2.71218494 92.2108235,1.0271132 C89.9745882,0.599388123 90.0254118,0.659269609 90.0254118,0.659269609 L90.0254118,0.659269609 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"151px\\\" height=\\\"170px\\\" viewBox=\\\"0 0 151 170\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>radar</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"radar\\\" transform=\\\"translate(0.500000, 0.000000)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M79.573911,32.0195055 C79.7511468,32.0807796 79.9252225,32.1507623 80.0954971,32.2291958 L126.376239,53.5077701 C128.225278,54.3572545 129.374745,56.2354539 129.285085,58.2607506 L126.927916,110.733256 C126.832633,112.851954 125.405699,114.680595 123.367088,115.296516 L76.444394,129.315811 C75.5054275,129.595861 74.5046062,129.595861 73.5656397,129.315811 L32.4706683,117.053921 C30.8367372,116.566659 29.5635821,115.286115 29.0909814,113.654618 C28.6183807,112.023122 29.0111288,110.264354 30.133561,108.985836 L59.2822032,75.635091 C59.7218624,75.142978 60.0532763,74.5647698 60.2551619,73.937598 L73.2246026,35.1848307 C74.1062345,32.570839 76.9431645,31.1565423 79.573911,32.0195055 L79.573911,32.0195055 Z M139.476076,121.926724 L75.0000016,158.991984 L10.5239274,121.926724 L10.5239274,47.816176 L75.0000016,10.7509165 L139.476076,47.816176 L139.476076,121.926724 Z M146.998953,40.6068232 L77.5076273,0.665810956 C75.9548023,-0.221936985 74.0452007,-0.221936985 72.4923757,0.665810956 L3.00105014,40.6068232 C1.44784731,41.4971353 0.491395456,43.1462367 0.493424274,44.9304378 L0.493424274,124.812462 C0.493424274,126.599823 1.44632208,128.247389 3.00105014,129.136077 L72.4923757,169.077089 C74.047355,169.95676 75.9526481,169.95676 77.5076273,169.077089 L146.998953,129.136077 C148.550638,128.244253 149.506533,126.596111 149.506579,124.812462 L149.506579,44.9304378 C149.506533,43.1467894 148.550638,41.4986473 146.998953,40.6068232 L146.998953,40.6068232 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"167px\\\" height=\\\"162px\\\" viewBox=\\\"0 0 167 162\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>rich</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"rich\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M5.52634288,101.24857 L96.0005147,101.24857 C98.7764873,101.24857 101.026858,98.9820436 101.026858,96.1861415 C101.026858,93.3902395 98.7764873,91.123713 96.0005147,91.123713 L5.52634288,91.123713 C2.75037036,91.123713 0.5,93.3902395 0.5,96.1861415 C0.5,98.9820436 2.75037036,101.24857 5.52634288,101.24857 Z M75.8951432,121.498284 L5.52634288,121.498284 C2.75037036,121.498284 0.5,123.76481 0.5,126.560713 C0.5,129.356615 2.75037036,131.623141 5.52634288,131.623141 L75.8951432,131.623141 C78.6711157,131.623141 80.9214861,129.356615 80.9214861,126.560713 C80.9214861,123.76481 78.6711157,121.498284 75.8951432,121.498284 Z M146.394628,92.0653247 L128.923061,116.435856 L146.394628,116.435856 L146.394628,92.0653247 Z M166.5,60.749142 L166.5,151.872855 C166.5,157.464659 161.999259,161.997712 156.447314,161.997712 C150.895369,161.997712 146.394628,157.464659 146.394628,151.872855 L146.394628,136.68557 L114.406982,136.68557 L99.2575849,157.806021 C96.0041451,162.338178 89.7188607,163.355849 85.2190093,160.079052 C80.7191578,156.802254 79.7087415,150.471846 82.9621813,145.939689 L148.304639,54.8261007 C148.455429,54.6033538 148.706746,54.4919804 148.867589,54.2894832 C149.318111,53.7697312 149.823755,53.3011987 150.375492,52.892253 C150.857637,52.4854402 151.379728,52.1292264 151.933658,51.829143 C152.481136,51.5631055 153.053631,51.3528145 153.642615,51.2014019 C154.31205,50.9842108 155.003114,50.8416105 155.703415,50.7761579 C155.954733,50.7559082 156.185944,50.624285 156.447314,50.624285 C156.819264,50.624285 157.130897,50.7964076 157.492794,50.836907 C158.850886,50.9717079 160.164137,51.3999382 161.342972,52.0923893 C161.674711,52.2746367 162.036608,52.3151361 162.338188,52.537883 C162.559347,52.7100056 162.659874,52.9428773 162.87098,53.1251247 C163.403773,53.5807433 163.836038,54.0869861 164.268304,54.6337284 C164.650306,55.1399712 165.022255,55.6259644 165.30373,56.1929564 C165.585206,56.7498235 165.766154,57.3370652 165.947102,57.9546815 C166.138103,58.6330469 166.298946,59.2709129 166.34921,59.969528 C166.369315,60.2428992 166.5,60.4757709 166.5,60.749142 L166.5,60.749142 Z M55.7897717,151.872855 L5.52634288,151.872855 C2.75037036,151.872855 0.5,154.139381 0.5,156.935284 C0.5,159.731186 2.75037036,161.997712 5.52634288,161.997712 L55.7897717,161.997712 C58.5657442,161.997712 60.8161146,159.731186 60.8161146,156.935284 C60.8161146,154.139381 58.5657442,151.872855 55.7897717,151.872855 Z M86.3887335,40.499428 L161.100608,40.499428 C164.04791,40.499428 166.437171,38.2329016 166.437171,35.4369995 C166.437171,32.6410974 164.04791,30.374571 161.100608,30.374571 L86.3887335,30.374571 C83.4414314,30.374571 81.052171,32.6410974 81.052171,35.4369995 C81.052171,38.2329016 83.4414314,40.499428 86.3887335,40.499428 Z M86.3887335,10.124857 L161.100608,10.124857 C164.04791,10.124857 166.437171,7.85833056 166.437171,5.0624285 C166.437171,2.26652644 164.04791,1.71199625e-16 161.100608,0 L86.3887335,0 C83.4414314,-1.71199625e-16 81.052171,2.26652644 81.052171,5.0624285 C81.052171,7.85833056 83.4414314,10.124857 86.3887335,10.124857 Z M5.6570278,70.873999 L60.9467995,70.873999 C63.722772,70.873999 65.9731424,68.6074726 65.9731424,65.8115705 L65.9731424,5.0624285 C65.9731424,2.26652644 63.722772,1.71199625e-16 60.9467995,0 L5.6570278,0 C2.88105528,-1.71199625e-16 0.630684915,2.26652644 0.630684915,5.0624285 L0.630684915,65.8115705 C0.630684915,68.6074726 2.88105528,70.873999 5.6570278,70.873999 Z M81.052171,65.8115705 C81.052171,63.0156685 83.3025414,60.749142 86.0785139,60.749142 L116.236571,60.749142 C119.012544,60.749142 121.262914,63.0156685 121.262914,65.8115705 C121.262914,68.6074726 119.012544,70.873999 116.236571,70.873999 L86.0785139,70.873999 C83.3025414,70.873999 81.052171,68.6074726 81.052171,65.8115705 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"139px\\\" viewBox=\\\"0 0 175 139\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>sankey</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"sankey\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M4.60195168,138.058552 C2.06036395,138.058552 3.11254728e-16,135.998188 0,133.4566 L0,115.048793 C-3.11254732e-16,112.507205 2.06036398,110.446841 4.60195174,110.446841 C7.14353951,110.446841 9.20390349,112.507205 9.20390349,115.048793 L9.20390349,133.4566 C9.20390349,134.677113 8.71905638,135.847638 7.856023,136.710671 C6.99298962,137.573705 5.82246517,138.058552 4.60195168,138.058552 M4.60195168,106.820503 C2.06036395,106.820503 3.11254728e-16,104.760139 0,102.218552 L0,4.60195168 C-3.11254732e-16,2.06036391 2.06036398,-6.74114049e-08 4.60195174,-6.74114054e-08 C7.14353951,-6.74114058e-08 9.20390349,2.06036391 9.20390349,4.60195168 L9.20390349,102.218552 C9.20390349,103.439065 8.71905638,104.60959 7.856023,105.472623 C6.99298962,106.335656 5.82246517,106.820503 4.60195168,106.820503\\\" id=\\\"Shape\\\" fill=\\\"#5067A2\\\"></path> <path d=\\\"M4.60195168,106.820503 C2.06036395,106.820503 3.11254728e-16,104.760139 0,102.218552 L0,4.60195168 C-3.11254732e-16,2.06036391 2.06036398,-6.74114049e-08 4.60195174,-6.74114054e-08 C7.14353951,-6.74114058e-08 9.20390349,2.06036391 9.20390349,4.60195168 L9.20390349,102.218552 C9.20390349,103.439065 8.71905638,104.60959 7.856023,105.472623 C6.99298962,106.335656 5.82246517,106.820503 4.60195168,106.820503\\\" id=\\\"Path\\\" fill=\\\"#5067A2\\\"></path> <path d=\\\"M87.4370826,64.4273241 C86.2165692,64.4273241 85.0460447,63.942477 84.1830114,63.0794436 C83.319978,62.2164103 82.8351309,61.0458858 82.835131,59.8253723 L82.835131,4.60195168 C82.835131,2.06036391 84.8954949,-6.74113054e-08 87.4370827,-6.74113059e-08 C89.9786705,-6.74113063e-08 92.0390345,2.06036391 92.0390345,4.60195168 L92.0390345,59.8253723 C92.0390345,61.0458858 91.5541874,62.2164103 90.691154,63.0794437 C89.8281206,63.9424771 88.6575962,64.4273242 87.4370826,64.4273241 M170.272214,38.2054031 C167.730626,38.2054031 165.670262,36.1450392 165.670262,33.6034515 L165.670262,4.60195168 C165.670262,2.06036391 167.730626,-6.74114049e-08 170.272214,-6.74114054e-08 C172.813801,-6.74114058e-08 174.874165,2.06036391 174.874165,4.60195168 L174.874165,33.6034515 C174.874165,34.823965 174.389318,35.9944894 173.526285,36.8575227 C172.663252,37.7205561 171.492727,38.2054032 170.272214,38.2054031 M105.84489,138.058552 C104.624376,138.058552 103.453852,137.573705 102.590818,136.710671 C101.727785,135.847638 101.242938,134.677113 101.242938,133.4566 L101.242938,78.2331793 C101.242938,75.6915915 103.303302,73.6312276 105.84489,73.6312276 C108.386477,73.6312276 110.446841,75.6915915 110.446841,78.2331793 L110.446841,133.4566 C110.446841,135.998188 108.386477,138.058552 105.84489,138.058552 M170.272214,138.058552 C167.730626,138.058552 165.670262,135.998188 165.670262,133.4566 L165.670262,48.3020853 C165.670262,45.7604975 167.730626,43.7001336 170.272214,43.7001336 C172.813801,43.7001336 174.874165,45.7604975 174.874165,48.3020853 L174.874165,133.4566 C174.874165,134.677113 174.389318,135.847638 173.526285,136.710671 C172.663252,137.573705 171.492727,138.058552 170.272214,138.058552\\\" id=\\\"Shape\\\" fill=\\\"#5067A2\\\"></path> <polygon id=\\\"Path\\\" fill=\\\"#95A5C8\\\" points=\\\"110.446841 133.4566 165.670262 133.4566 165.670262 78.2331793 110.446841 78.2331793\\\"></polygon> <polygon id=\\\"Path\\\" fill=\\\"#5067A2\\\" points=\\\"165.670262 133.4566 174.874165 133.4566 174.874165 78.2331793 165.670262 78.2331793\\\"></polygon> <path d=\\\"M165.670262,77.9478582 C124.491998,75.6100668 130.198418,59.8345763 92.0390345,59.8253723 L92.0390345,32.213662 C124.832542,32.2228659 136.825229,48.0167643 165.670262,48.6242219 L165.670262,77.9478582\\\" id=\\\"Path\\\" fill=\\\"#95A5C8\\\"></path> <path d=\\\"M92.0390345,59.8253723 L92.0022188,59.8253723 L92.0022188,32.213662 L92.0390345,32.213662 L92.0390345,59.8253723 M174.874165,78.2331793 C171.56076,78.2055676 168.505064,78.1135285 165.670262,77.9478582 L165.670262,48.6242219 L167.400596,48.6426296 C169.765999,48.6426296 172.260257,48.5413867 174.874165,48.3204931 L174.874165,78.2331793\\\" id=\\\"Shape\\\" fill=\\\"#5067A2\\\"></path> <polygon id=\\\"Path\\\" fill=\\\"#95A5C8\\\" points=\\\"92.0390345 32.213662 165.670262 32.213662 165.670262 4.60195168 92.0390345 4.60195168\\\"></polygon> <path d=\\\"M82.835131,32.213662 L92.0390345,32.213662 L92.0390345,4.60195168 L82.835131,4.60195168 L82.835131,32.213662 Z M165.670262,32.213662 L174.506009,32.213662 L174.506009,4.60195168 L165.670262,4.60195168 L165.670262,32.213662 Z\\\" id=\\\"Shape\\\" fill=\\\"#5067A2\\\"></path> <polygon id=\\\"Path\\\" fill=\\\"#95A5C8\\\" points=\\\"9.20390349 59.8253723 82.835131 59.8253723 82.835131 4.60195168 9.20390349 4.60195168\\\"></polygon> <polyline id=\\\"Path\\\" fill=\\\"#5067A2\\\" points=\\\"82.835131 59.8253723 82.835131 4.60195168 82.835131 59.8253723\\\"></polyline> <polygon id=\\\"Path\\\" fill=\\\"#95A5C8\\\" points=\\\"9.20390349 133.4566 101.242938 133.4566 101.242938 115.048793 9.20390349 115.048793\\\"></polygon> <polygon id=\\\"Path\\\" fill=\\\"#5067A2\\\" points=\\\"101.242938 133.4566 110.446841 133.4566 110.446841 115.048793 101.242938 115.048793\\\"></polygon> <path d=\\\"M101.242938,115.048793 C43.4792398,114.699045 52.1585208,101.445424 9.20390349,101.445424 L9.20390349,59.8253723 C56.5579867,59.8253723 47.7682589,78.1319363 101.242938,78.2331793 L101.242938,115.048793\\\" id=\\\"Path\\\" fill=\\\"#95A5C8\\\"></path> <path d=\\\"M101.675521,115.048793 L101.242938,115.048793 L101.242938,78.2331793 L101.675521,78.2331793 C104.335449,78.2331793 100.46981,113.723431 101.675521,115.048793\\\" id=\\\"Path\\\" fill=\\\"#5067A2\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"138px\\\" viewBox=\\\"0 0 175 138\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>scatter</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"scatter\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M173.526285,129.202529 C172.663252,128.339495 171.492727,127.854648 170.272214,127.854648 L9.20390349,127.854648 L9.20390349,4.60195168 C9.20390349,2.06036391 7.14353951,-6.74112924e-08 4.60195174,-6.74112925e-08 C2.06036398,-6.74112927e-08 3.11254732e-16,2.06036391 0,4.60195168 L0,132.4566 C3.11254728e-16,134.998188 2.06036395,137.058552 4.60195168,137.058552 L170.272214,137.058552 C171.492727,137.058552 172.663252,136.573705 173.526285,135.710671 C174.389318,134.847638 174.874165,133.677113 174.874165,132.4566 C174.874165,131.236086 174.389318,130.065562 173.526285,129.202529 Z M151.864407,12.8058552 C155.15291,12.8054572 158.191783,14.5596242 159.836149,17.4074853 C161.480516,20.2553464 161.480516,23.7641708 159.836149,26.6120319 C158.191783,29.459893 155.15291,31.21406 151.864407,31.213662 C146.781666,31.2130468 142.661617,27.0924991 142.661617,22.0097586 C142.661617,16.9270181 146.781666,12.8064703 151.864407,12.8058552 Z M142.660503,58.8253723 C147.743679,58.8253723 151.864407,62.9461003 151.864407,68.0292758 C151.864407,73.1124513 147.743679,77.2331793 142.660503,77.2331793 C137.577328,77.2331793 133.4566,73.1124513 133.4566,68.0292758 C133.4566,62.9461003 137.577328,58.8253723 142.660503,58.8253723 Z M124.252696,40.4175655 C127.5412,40.4171675 130.580072,42.1713345 132.224439,45.0191956 C133.868806,47.8670567 133.868806,51.3758811 132.224439,54.2237422 C130.580072,57.0716033 127.5412,58.8257703 124.252696,58.8253723 C119.169956,58.8247572 115.049907,54.7042094 115.049907,49.6214689 C115.049907,44.5387284 119.169956,40.4181807 124.252696,40.4175655 L124.252696,40.4175655 Z M105.84489,22.0097586 C109.133393,22.0093606 112.172266,23.7635277 113.816632,26.6113888 C115.460999,29.4592498 115.460999,32.9680743 113.816632,35.8159354 C112.172266,38.6637965 109.133393,40.4179635 105.84489,40.4175655 C100.762149,40.4169503 96.6421001,36.2964026 96.6421001,31.2136621 C96.6421001,26.1309216 100.762149,22.0103738 105.84489,22.0097586 L105.84489,22.0097586 Z M105.84489,58.8253723 C110.928065,58.8253723 115.048793,62.9461003 115.048793,68.0292758 C115.048793,73.1124513 110.928065,77.2331793 105.84489,77.2331793 C100.761714,77.2331793 96.6409861,73.1124513 96.6409861,68.0292758 C96.6409861,62.9461003 100.761714,58.8253723 105.84489,58.8253723 L105.84489,58.8253723 Z M87.4370826,77.2331793 C90.8200008,77.0784213 94.0146452,78.7938663 95.7543045,81.6993216 C97.4939639,84.6047768 97.4975937,88.2308616 95.7637545,91.1397939 C94.0299154,94.0487262 90.8387117,95.7705634 87.4554905,95.6225784 C82.5370015,95.4074394 78.6587219,91.3598697 78.6537937,86.4366802 C78.6488656,81.5134907 82.5190342,77.4581647 87.4370826,77.2331793 L87.4370826,77.2331793 Z M59.8253723,68.0292758 C63.1138756,68.0288778 66.1527483,69.7830448 67.7971148,72.6309059 C69.4414814,75.478767 69.4414814,78.9875915 67.7971148,81.8354525 C66.1527483,84.6833136 63.1138756,86.4374807 59.8253723,86.4370826 C54.7426318,86.4364675 50.6225828,82.3159197 50.6225828,77.2331792 C50.6225828,72.1504387 54.7426318,68.029891 59.8253723,68.0292758 L59.8253723,68.0292758 Z M32.213662,95.6409861 C35.5021653,95.6405881 38.541038,97.3947552 40.1854045,100.242616 C41.8297711,103.090477 41.8297711,106.599302 40.1854045,109.447163 C38.541038,112.295024 35.5021653,114.049191 32.213662,114.048793 C27.1309215,114.048178 23.0108725,109.92763 23.0108725,104.84489 C23.0108725,99.762149 27.1309215,95.6416013 32.213662,95.6409861 L32.213662,95.6409861 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"176px\\\" height=\\\"154px\\\" viewBox=\\\"0 0 176 154\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>sunburst</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"sunburst\\\" transform=\\\"translate(-0.500000, -0.495167)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M119.233629,98.0044542 L110.718691,87.8510962 C116.698944,81.6134116 119.776927,73.1460671 119.198407,64.5239101 L132.221771,61.7588152 C132.389075,63.3350954 132.468325,64.9289877 132.468325,66.5404921 C132.486789,78.3855449 127.713147,89.7343283 119.233629,98.0044542 L119.233629,98.0044542 Z M63.3185781,30.3829135 C74.7931609,22.4121709 89.3686325,20.3583561 102.598787,24.8479794 C115.828942,29.3376027 126.144611,39.8381699 130.399028,53.1465133 L117.38447,55.9116082 C114.163414,47.1482037 107.14477,40.3166874 98.2978797,37.3338959 C89.4509892,34.3511045 79.7290566,35.5384174 71.8599325,40.5626897 L63.3185781,30.3829135 L63.3185781,30.3829135 Z M57.4981296,97.8547516 L67.6773104,89.3128978 C73.1543438,94.3147256 80.4453141,97.3616135 88.4495316,97.3616137 C93.8284022,97.3676833 99.1146581,95.9617789 103.779942,93.2844195 L112.365323,103.508226 C105.247152,108.132446 96.9377023,110.586264 88.4495316,110.570666 C76.8578752,110.587037 65.7306915,106.015602 57.4981296,97.8547516 L57.4981296,97.8547516 Z M51.880208,91.0741048 C47.0035405,83.8229191 44.4062144,75.2791485 44.4219328,66.5404921 C44.4219328,54.7315996 49.0624416,44.0146553 56.6263832,36.1068361 L65.194154,46.3130303 C60.3076881,51.9176198 57.6201378,59.1046557 57.6302124,66.5404921 C57.6302124,72.3876992 59.2592335,77.8562467 62.0858054,82.5146391 L51.880208,91.0741048 L51.880208,91.0741048 Z M40.5915316,112.05008 L50.7354904,103.534644 C60.658337,113.682313 74.2570793,119.394563 88.4495316,119.3767 C99.4212094,119.3767 109.618001,116.030407 118.062495,110.306485 L126.586238,120.468649 C115.441046,128.370969 102.111678,132.606084 88.4495316,132.585752 C70.3533434,132.605952 53.0459635,125.179425 40.5915316,112.05008 L40.5915316,112.05008 Z M0.5,62.1374747 C1.61718015,39.3368661 11.5653323,17.8665508 28.2373873,2.27405071 L36.7435195,12.4097967 C23.0478109,25.4703646 14.8209875,43.2437342 13.7258907,62.1374747 L0.5,62.1374747 Z M0.5,70.9435094 L13.7258907,70.9435094 C14.5580363,85.4042184 19.5854188,99.3091254 28.1933598,110.958131 L18.0582064,119.464761 C7.47186066,105.41813 1.35420505,88.5122858 0.5,70.9435094 L0.5,70.9435094 Z M22.5490216,62.1374747 C23.6176776,45.8469855 30.7006658,30.5346593 42.4230797,19.1728312 L50.9380174,29.3261893 C42.1806215,38.1364527 36.8165849,49.7571326 35.7925234,62.1374747 L22.5490216,62.1374747 L22.5490216,62.1374747 Z M22.5490216,70.9435094 L35.7925234,70.9435094 C36.5571371,80.2216635 39.7688087,89.1310032 45.0999577,96.7628032 L34.9559989,105.278239 C27.6604148,95.2350677 23.3587128,83.3306553 22.5490216,70.9435094 Z M160.064824,88.3354281 C162.208458,81.2692542 163.294499,73.9246962 163.287644,66.5404921 C163.287927,62.7888436 163.014228,59.0421838 162.468731,55.3304099 L175.40404,52.5829271 C177.539642,66.0542744 176.545357,79.8364744 172.498218,92.86173 L160.064824,88.3354281 Z M157.009309,96.5954887 L169.451508,101.130596 C164.453629,112.804913 156.992417,123.261434 147.578597,131.784403 L139.08127,121.666269 C146.731696,114.64362 152.837128,106.105711 157.009309,96.5954887 L157.009309,96.5954887 Z M139.336631,80.7886563 C141.234304,74.0037443 141.75525,66.9076826 140.868791,59.9183539 L153.830516,57.1620651 C155.148964,66.5886629 154.449628,76.187832 151.77883,85.3237642 L139.336631,80.7886563 Z M136.263504,89.0487169 L148.714509,93.5750188 C145.090489,101.633987 139.889912,108.885878 133.419321,114.903235 L124.913189,104.776295 C129.629614,100.274719 133.477161,94.943361 136.263504,89.0487169 L136.263504,89.0487169 Z M84.1260215,141.268503 L84.1260215,154.495167 C61.049526,153.386197 39.3397973,143.226766 23.7025446,126.218989 L33.8288923,117.71236 C46.9380429,131.745712 64.9535467,140.183088 84.1260215,141.268503 L84.1260215,141.268503 Z M104.94227,2.57345585 C127.679056,8.4576749 145.591926,25.956003 152.007773,48.5497632 L139.046048,51.306052 C133.813709,33.9700374 120.081572,20.5128194 102.64403,15.6328053 L104.933465,2.64390412 L104.94227,2.57345585 L104.94227,2.57345585 Z M96.2952498,0.953145396 L96.2600278,1.12046007 L93.9970091,13.9948829 C81.1068487,12.6102912 68.1594065,16.034712 57.6390179,23.6110727 L49.1240802,13.4665207 C60.4957814,5.02434618 74.2870046,0.475385223 88.4495316,0.495231624 C91.0999932,0.495231624 93.7152325,0.644934198 96.2952498,0.953145396 L96.2952498,0.953145396 Z\\\" id=\\\"Shape\\\"></path> <path d=\\\"M88.5,75.295167 C93.3601058,75.295167 97.3,71.3552728 97.3,66.495167 C97.3,61.6350611 93.3601058,57.6951669 88.5,57.6951669 C83.6398942,57.6951669 79.7,61.6350611 79.7,66.495167 C79.7,71.3552728 83.6398942,75.295167 88.5,75.295167 Z M88.5,88.495167 C76.3497355,88.495167 66.5,78.6454315 66.5,66.495167 C66.5,54.3449025 76.3497355,44.495167 88.5,44.495167 C100.650264,44.495167 110.5,54.3449025 110.5,66.495167 C110.5,78.6454315 100.650264,88.495167 88.5,88.495167 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"175px\\\" height=\\\"130px\\\" viewBox=\\\"0 0 175 130\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>themeriver</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"themeriver\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M4.9275627,42.5798026 C5.20117275,42.5813119 5.47437729,42.5585448 5.74396361,42.5117692 C10.5811329,41.6686599 15.2612908,40.0922201 19.6227791,37.836902 C26.4649962,34.328322 32.1798026,30.0130599 43.8718299,30.0130599 C55.5638572,30.0130599 63.7861807,41.3940774 79.5602127,41.4912681 C95.3342445,41.5787397 96.9864845,31.7333333 115.384662,31.7333333 C132.976158,31.7333333 137.621868,44.6208049 153.6,45.4566438 C160.490812,45.8162491 166.6041,44.9318147 171.930144,42.7936218 C173.778744,42.0602993 174.992296,40.2727177 174.991648,38.2839788 L174.991648,26.7960517 C174.987486,25.3270305 174.319017,23.9387356 173.173189,23.0194311 C172.027362,22.1001266 170.527173,21.7484925 169.092179,22.0628701 C165.933485,22.7529233 162.084738,22.8403949 157.5265,22.3155656 C145.533181,20.9160213 134.676993,5.82232335 119.476386,5.82232348 C102.788762,5.82232348 99.3093394,11.1678056 81.9899772,11.1678056 C64.6803341,11.1678056 59.6069856,0.126955258 43.8718299,0.126955258 C37.3211845,0.126955258 27.9422931,3.46059231 17.9025057,7.6009112 C12.9652241,9.65163256 8.49445708,10.8373576 4.50964317,11.1678056 C1.98627058,11.3754189 0.0451326562,13.4857192 0.0485952544,16.0176158 L0.0583143318,37.7202733 C0.0583143318,40.4027335 2.24510251,42.5798026 4.9275627,42.5798026 M170.132118,85.5283219 C169.634444,85.5282959 169.139638,85.6036638 168.664541,85.7518603 C162.658162,87.6665148 157.633409,88.7064541 153.551405,88.9008353 C139.342141,89.522855 131.343356,82.7583903 118.543356,82.7583903 C104.227183,82.7583903 97.8611998,94.1491269 80.444647,94.1491269 C61.0356872,94.1491269 52.3274108,84.1287775 42.4917236,84.1287775 C35.416249,84.1287775 28.7392558,88.7453303 19.9337889,92.9828398 C15.5893698,95.0627183 10.3507973,96.5594533 4.2083523,97.4438876 C1.81553905,97.7920745 0.0427391378,99.8465342 0.0485952544,102.264541 L0.0485952544,124.297646 C0.0496707163,125.687409 0.645723287,127.010209 1.68608385,127.931672 C2.72644442,128.853134 4.11154706,129.285071 5.491268,129.118299 C10.3313591,128.544875 15.142293,127.670159 19.9337889,126.513592 C29.8083523,124.132422 34.2305239,119.068793 42.4917236,118.388459 C54.5822323,117.397115 66.5658314,123.267426 82.4759302,121.323614 C98.386029,119.379803 106.3265,110.156416 120.273349,108.543052 C132.577676,107.12407 140.586181,111.293546 152.083827,110.030068 C159.995141,109.174791 166.81792,107.085194 172.552164,103.780714 C174.06095,102.911932 174.991067,101.303681 174.991648,99.5626424 L174.991648,90.3878512 C174.991648,87.7040073 172.815962,85.5283219 170.132118,85.5283219\\\" id=\\\"Shape\\\"></path> <path d=\\\"M170.132118,55.1659834 C169.755896,55.1642513 169.380769,55.206657 169.014427,55.2923311 C163.386911,56.5597226 157.597804,56.9530934 151.850569,56.4586181 C133.889749,55.0007593 128.388762,42.7839029 114.655733,42.7839029 C103.264996,42.7839029 93.9249811,52.940319 79.7157175,52.5807138 C59.2668185,52.0656038 52.6578588,41.0733486 42.0738042,41.0733486 C35.5231587,41.0733486 26.5330296,47.0991647 20.6724373,49.7524677 C15.5296251,52.0293301 10.0450596,53.4382394 4.44160976,53.9219438 C1.94888222,54.1623556 0.0470459996,56.2577415 0.0485952544,58.762035 L0.0485952544,80.8242976 C0.0491745866,82.2971429 0.717699925,83.69025 1.86632297,84.6121711 C3.01494602,85.5340923 4.51970635,85.8853329 5.95778278,85.5671982 C11.10094,84.3721963 16.0531556,82.4685044 20.6724373,79.9107062 C28.3018983,75.7703873 34.249962,72.7866364 41.8016705,72.7866364 C56.6037965,72.7866364 63.1252849,82.7778284 79.3755505,82.7778284 C94.6441914,82.7778284 103.070615,71.5231587 117.639484,71.5231587 C132.208352,71.5231587 139.964161,77.2185269 150.314958,77.5295368 C156.48656,77.7044798 163.707821,76.0813971 171.988459,72.6408505 C173.80584,71.8896408 174.991328,70.1171628 174.991648,68.1506454 L174.991648,60.0255125 C174.991648,57.3416686 172.815962,55.1659834 170.132118,55.1659834\\\" id=\\\"Path\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"174px\\\" height=\\\"147px\\\" viewBox=\\\"0 0 174 147\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>tree (1)</title> <desc>Created with Sketch.</desc> <defs> <polygon id=\\\"path-1\\\" points=\\\"2 4.69629167 172 4.69629167 172 146.375 2 146.375\\\"></polygon> </defs> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"tree-(1)\\\"> <mask id=\\\"mask-2\\\" fill=\\\"white\\\"> <use xlink:href=\\\"#path-1\\\"></use> </mask> <g id=\\\"path-1\\\"></g> <path d=\\\"M174,127.4965 C173.994333,137.928125 165.534,146.380667 155.101667,146.375708 C144.670042,146.370042 136.216792,137.909 136.222458,127.476667 C136.222458,127.470292 136.222458,127.464625 136.222458,127.45825 C136.226708,118.755667 142.117917,111.435042 150.127042,109.248417 L150.127042,80.2563333 L91.4625,80.2563333 L91.4625,109.120208 C99.7407917,111.126208 105.890542,118.582125 105.889125,127.476667 C105.889125,127.483042 105.889125,127.490125 105.889125,127.4965 C105.883458,137.928125 97.4224167,146.380667 86.9907917,146.375708 C76.5584583,146.370042 68.1059167,137.909 68.1115833,127.476667 C68.1122917,118.764875 74.0049167,111.440708 82.0182917,109.254083 L82.0182917,80.2563333 L23.3530417,80.2563333 L23.3530417,109.120917 C31.630625,111.127625 37.7789583,118.582833 37.77825,127.476667 C37.77825,127.478792 37.77825,127.480917 37.77825,127.483042 C37.776125,137.915375 29.3179167,146.37075 18.8862917,146.368625 C8.45395833,146.367208 -0.00141666667,137.909 0,127.476667 C0.00141666667,118.764167 5.89545833,111.439292 13.9088333,109.254083 L13.9088333,80.2563333 C13.9088333,75.0500833 18.1425417,70.812125 23.3530417,70.812125 L82.0182917,70.812125 L82.0182917,37.8179167 C74.0006667,35.6305833 68.106625,28.298625 68.1115833,19.58825 C68.1122917,9.15025 76.5705,0.694875 87.0028333,0.696291667 C97.4344583,0.697708333 105.890542,9.15591667 105.889125,19.58825 C105.889125,19.594625 105.889125,19.601 105.889125,19.607375 C105.884167,28.4976667 99.7358333,35.9465 91.4625,37.9517917 L91.4625,70.812125 L150.127042,70.812125 C155.337542,70.812125 159.57125,75.0500833 159.57125,80.2563333 L159.57125,109.113125 C167.853083,111.119125 174.00425,118.579292 174,127.476667 C174,127.483042 174,127.490125 174,127.4965 Z\\\" id=\\\"Fill-1\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?> <svg width=\\\"160px\\\" height=\\\"132px\\\" viewBox=\\\"0 0 160 132\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"> <title>treemap</title> <desc>Created with Sketch.</desc> <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"> <g id=\\\"treemap\\\" transform=\\\"translate(-0.500000, -0.095199)\\\" fill=\\\"#5067A2\\\" fill-rule=\\\"nonzero\\\"> <path d=\\\"M84.9444444,79.2951993 L4.9444444,79.2951993 C2.48984554,79.2951993 0.5,81.2651464 0.5,83.6951993 L0.5,127.695199 C0.5,130.125252 2.48984554,132.095199 4.9444444,132.095199 L84.9444444,132.095199 C86.1231844,132.095199 87.2536462,131.631629 88.0871413,130.806469 C88.9206363,129.981309 89.3888889,128.862152 89.3888889,127.695199 L89.3888889,83.6951993 C89.3888889,82.5282467 88.9206363,81.4090895 88.0871413,80.5839295 C87.2536462,79.7587694 86.1231844,79.2951993 84.9444444,79.2951993 L84.9444444,79.2951993 Z M156.055556,105.695199 L102.722222,105.695199 C101.543482,105.695199 100.41302,106.158769 99.5795254,106.983929 C98.7460304,107.80909 98.2777777,108.928247 98.2777777,110.095199 L98.2777777,127.695199 C98.2777777,128.862152 98.7460304,129.981309 99.5795254,130.806469 C100.41302,131.631629 101.543482,132.095199 102.722222,132.095199 L156.055556,132.095199 C158.510154,132.095199 160.5,130.125252 160.5,127.695199 L160.5,110.095199 C160.5,107.665146 158.510154,105.695199 156.055556,105.695199 L156.055556,105.695199 Z M156.055556,61.6951994 L102.722222,61.6951994 C101.543482,61.6951994 100.41302,62.1587694 99.5795254,62.9839295 C98.7460304,63.8090896 98.2777777,64.9282468 98.2777777,66.0951993 L98.2777777,92.4951993 C98.2777777,93.6621519 98.7460304,94.7813091 99.5795254,95.6064692 C100.41302,96.4316293 101.543482,96.8951993 102.722222,96.8951993 L156.055556,96.8951993 C158.510154,96.8951993 160.5,94.9252522 160.5,92.4951993 L160.5,66.0951993 C160.5,63.6651465 158.510154,61.6951994 156.055556,61.6951994 L156.055556,61.6951994 Z M156.055556,0.0951993491 L102.722222,0.0951993491 C101.543482,0.0951993149 100.41302,0.558769393 99.5795254,1.38392945 C98.7460304,2.20908951 98.2777777,3.32824674 98.2777777,4.49519931 L98.2777777,48.4951994 C98.2777777,49.662152 98.7460304,50.7813092 99.5795254,51.6064692 C100.41302,52.4316293 101.543482,52.8951994 102.722222,52.8951993 L156.055556,52.8951993 C158.510154,52.8951993 160.5,50.9252523 160.5,48.4951994 L160.5,4.49519931 C160.5,2.06514643 158.510154,0.0951993491 156.055556,0.0951993491 L156.055556,0.0951993491 Z M89.3888889,4.49519931 L89.3888889,66.0951993 C89.3888889,67.2621519 88.9206363,68.3813091 88.0871413,69.2064692 C87.2536462,70.0316293 86.1231844,70.4951993 84.9444444,70.4951993 L4.9444444,70.4951993 C2.48984554,70.4951993 0.5,68.5252522 0.5,66.0951993 L0.5,4.49519931 C0.5,2.06514643 2.48984554,0.0951993491 4.9444444,0.0951993491 L84.9444444,0.0951993491 C86.1231844,0.0951993149 87.2536462,0.558769393 88.0871413,1.38392945 C88.9206363,2.20908951 89.3888889,3.32824674 89.3888889,4.49519931 Z\\\" id=\\\"Shape\\\"></path> </g> </g> </svg>\";\n// Exports\nmodule.exports = code;","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var isObject = require('./isObject'),\n    now = require('./now'),\n    toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nmodule.exports = now;\n","var isObject = require('./isObject'),\n    isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = value.replace(reTrim, '');\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","let raf = null;\nfunction requestAnimationFrame (callback) {\n  if (!raf) {\n    raf = (\n      window.requestAnimationFrame ||\n      window.webkitRequestAnimationFrame ||\n      window.mozRequestAnimationFrame ||\n      function (callback) {\n        return setTimeout(callback, 16)\n      }\n    ).bind(window);\n  }\n  return raf(callback)\n}\n\nlet caf = null;\nfunction cancelAnimationFrame (id) {\n  if (!caf) {\n    caf = (\n      window.cancelAnimationFrame ||\n      window.webkitCancelAnimationFrame ||\n      window.mozCancelAnimationFrame ||\n      function (id) {\n        clearTimeout(id);\n      }\n    ).bind(window);\n  }\n\n  caf(id);\n}\n\nfunction createStyles (styleText) {\n  var style = document.createElement('style');\n  style.type = 'text/css';\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = styleText;\n  } else {\n    style.appendChild(document.createTextNode(styleText));\n  }\n  (document.querySelector('head') || document.body).appendChild(style);\n  return style\n}\n\nfunction createElement (tagName, props = {}) {\n  let elem = document.createElement(tagName);\n  Object.keys(props).forEach(key => {\n    elem[key] = props[key];\n  });\n  return elem\n}\n\nfunction getComputedStyle (elem, prop, pseudo) {\n  // for older versions of Firefox, `getComputedStyle` required\n  // the second argument and may return `null` for some elements\n  // when `display: none`\n  let computedStyle = window.getComputedStyle(elem, pseudo || null) || {\n    display: 'none'\n  };\n\n  return computedStyle[prop]\n}\n\nfunction getRenderInfo (elem) {\n  if (!document.documentElement.contains(elem)) {\n    return {\n      detached: true,\n      rendered: false\n    }\n  }\n\n  let current = elem;\n  while (current !== document) {\n    if (getComputedStyle(current, 'display') === 'none') {\n      return {\n        detached: false,\n        rendered: false\n      }\n    }\n    current = current.parentNode;\n  }\n\n  return {\n    detached: false,\n    rendered: true\n  }\n}\n\nvar css = \".resize-triggers{visibility:hidden;opacity:0;pointer-events:none}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:\\\"\\\";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}\";\n\nlet total = 0;\nlet style = null;\n\nfunction addListener (elem, callback) {\n  if (!elem.__resize_mutation_handler__) {\n    elem.__resize_mutation_handler__ = handleMutation.bind(elem);\n  }\n\n  let listeners = elem.__resize_listeners__;\n\n  if (!listeners) {\n    elem.__resize_listeners__ = [];\n    if (window.ResizeObserver) {\n      let { offsetWidth, offsetHeight } = elem;\n      let ro = new ResizeObserver(() => {\n        if (!elem.__resize_observer_triggered__) {\n          elem.__resize_observer_triggered__ = true;\n          if (elem.offsetWidth === offsetWidth && elem.offsetHeight === offsetHeight) {\n            return\n          }\n        }\n        runCallbacks(elem);\n      });\n\n      // initially display none won't trigger ResizeObserver callback\n      let { detached, rendered } = getRenderInfo(elem);\n      elem.__resize_observer_triggered__ = detached === false && rendered === false;\n      elem.__resize_observer__ = ro;\n      ro.observe(elem);\n    } else if (elem.attachEvent && elem.addEventListener) {\n      // targeting IE9/10\n      elem.__resize_legacy_resize_handler__ = function handleLegacyResize () {\n        runCallbacks(elem);\n      };\n      elem.attachEvent('onresize', elem.__resize_legacy_resize_handler__);\n      document.addEventListener('DOMSubtreeModified', elem.__resize_mutation_handler__);\n    } else {\n      if (!total) {\n        style = createStyles(css);\n      }\n      initTriggers(elem);\n\n      elem.__resize_rendered__ = getRenderInfo(elem).rendered;\n      if (window.MutationObserver) {\n        let mo = new MutationObserver(elem.__resize_mutation_handler__);\n        mo.observe(document, {\n          attributes: true,\n          childList: true,\n          characterData: true,\n          subtree: true\n        });\n        elem.__resize_mutation_observer__ = mo;\n      }\n    }\n  }\n\n  elem.__resize_listeners__.push(callback);\n  total++;\n}\n\nfunction removeListener (elem, callback) {\n  let listeners = elem.__resize_listeners__;\n  if (!listeners) {\n    return\n  }\n\n  if (callback) {\n    listeners.splice(listeners.indexOf(callback), 1);\n  }\n\n  // no listeners exist, or removing all listeners\n  if (!listeners.length || !callback) {\n    // targeting IE9/10\n    if (elem.detachEvent && elem.removeEventListener) {\n      elem.detachEvent('onresize', elem.__resize_legacy_resize_handler__);\n      document.removeEventListener('DOMSubtreeModified', elem.__resize_mutation_handler__);\n      return\n    }\n\n    if (elem.__resize_observer__) {\n      elem.__resize_observer__.unobserve(elem);\n      elem.__resize_observer__.disconnect();\n      elem.__resize_observer__ = null;\n    } else {\n      if (elem.__resize_mutation_observer__) {\n        elem.__resize_mutation_observer__.disconnect();\n        elem.__resize_mutation_observer__ = null;\n      }\n      elem.removeEventListener('scroll', handleScroll);\n      elem.removeChild(elem.__resize_triggers__.triggers);\n      elem.__resize_triggers__ = null;\n    }\n    elem.__resize_listeners__ = null;\n  }\n\n  if (!--total && style) {\n    style.parentNode.removeChild(style);\n  }\n}\n\nfunction getUpdatedSize (elem) {\n  let { width, height } = elem.__resize_last__;\n  let { offsetWidth, offsetHeight } = elem;\n  if (offsetWidth !== width || offsetHeight !== height) {\n    return {\n      width: offsetWidth,\n      height: offsetHeight\n    }\n  }\n  return null\n}\n\nfunction handleMutation () {\n  // `this` denotes the scrolling element\n  let { rendered, detached } = getRenderInfo(this);\n  if (rendered !== this.__resize_rendered__) {\n    if (!detached && this.__resize_triggers__) {\n      resetTriggers(this);\n      this.addEventListener('scroll', handleScroll, true);\n    }\n    this.__resize_rendered__ = rendered;\n    runCallbacks(this);\n  }\n}\n\nfunction handleScroll () {\n  // `this` denotes the scrolling element\n  resetTriggers(this);\n  if (this.__resize_raf__) {\n    cancelAnimationFrame(this.__resize_raf__);\n  }\n  this.__resize_raf__ = requestAnimationFrame(() => {\n    let updated = getUpdatedSize(this);\n    if (updated) {\n      this.__resize_last__ = updated;\n      runCallbacks(this);\n    }\n  });\n}\n\nfunction runCallbacks (elem) {\n  if (!elem || !elem.__resize_listeners__) {\n    return\n  }\n  elem.__resize_listeners__.forEach(callback => {\n    callback.call(elem, elem);\n  });\n}\n\nfunction initTriggers (elem) {\n  let position = getComputedStyle(elem, 'position');\n  if (!position || position === 'static') {\n    elem.style.position = 'relative';\n  }\n\n  elem.__resize_old_position__ = position;\n  elem.__resize_last__ = {};\n\n  let triggers = createElement('div', {\n    className: 'resize-triggers'\n  });\n  let expand = createElement('div', {\n    className: 'resize-expand-trigger'\n  });\n  let expandChild = createElement('div');\n  let contract = createElement('div', {\n    className: 'resize-contract-trigger'\n  });\n  expand.appendChild(expandChild);\n  triggers.appendChild(expand);\n  triggers.appendChild(contract);\n  elem.appendChild(triggers);\n\n  elem.__resize_triggers__ = {\n    triggers,\n    expand,\n    expandChild,\n    contract\n  };\n\n  resetTriggers(elem);\n  elem.addEventListener('scroll', handleScroll, true);\n\n  elem.__resize_last__ = {\n    width: elem.offsetWidth,\n    height: elem.offsetHeight\n  };\n}\n\nfunction resetTriggers (elem) {\n  let { expand, expandChild, contract } = elem.__resize_triggers__;\n\n  // batch read\n  let { scrollWidth: csw, scrollHeight: csh } = contract;\n  let { offsetWidth: eow, offsetHeight: eoh, scrollWidth: esw, scrollHeight: esh } = expand;\n\n  // batch write\n  contract.scrollLeft = csw;\n  contract.scrollTop = csh;\n  expandChild.style.width = eow + 1 + 'px';\n  expandChild.style.height = eoh + 1 + 'px';\n  expand.scrollLeft = esw;\n  expand.scrollTop = esh;\n}\n\nexport { addListener, removeListener };\n","const runningOnBrowser = typeof window !== \"undefined\";\r\n\r\nconst isBot =\r\n\t(runningOnBrowser && !(\"onscroll\" in window)) ||\r\n\t(typeof navigator !== \"undefined\" &&\r\n\t\t/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent));\r\n\r\nconst supportsIntersectionObserver =\r\n\trunningOnBrowser && \"IntersectionObserver\" in window;\r\n\r\nconst supportsClassList =\r\n\trunningOnBrowser && \"classList\" in document.createElement(\"p\");\r\n\r\nconst defaultSettings = {\r\n\telements_selector: \"img\",\r\n\tcontainer: isBot || runningOnBrowser ? document : null,\r\n\tthreshold: 300,\r\n\tthresholds: null,\r\n\tdata_src: \"src\",\r\n\tdata_srcset: \"srcset\",\r\n\tdata_sizes: \"sizes\",\r\n\tdata_bg: \"bg\",\r\n\tdata_poster: \"poster\",\r\n\tclass_loading: \"loading\",\r\n\tclass_loaded: \"loaded\",\r\n\tclass_error: \"error\",\r\n\tload_delay: 0,\r\n\tauto_unobserve: true,\r\n\tcallback_enter: null,\r\n\tcallback_exit: null,\r\n\tcallback_reveal: null,\r\n\tcallback_loaded: null,\r\n\tcallback_error: null,\r\n\tcallback_finish: null,\r\n\tuse_native: false\r\n};\r\n\r\nvar getInstanceSettings = customSettings => {\r\n\treturn Object.assign({}, defaultSettings, customSettings);\r\n};\r\n\r\n/* Creates instance and notifies it through the window element */\r\nconst createInstance = function(classObj, options) {\r\n\tvar event;\r\n\tlet eventString = \"LazyLoad::Initialized\";\r\n\tlet instance = new classObj(options);\r\n\ttry {\r\n\t\t// Works in modern browsers\r\n\t\tevent = new CustomEvent(eventString, { detail: { instance } });\r\n\t} catch (err) {\r\n\t\t// Works in Internet Explorer (all versions)\r\n\t\tevent = document.createEvent(\"CustomEvent\");\r\n\t\tevent.initCustomEvent(eventString, false, false, { instance });\r\n\t}\r\n\twindow.dispatchEvent(event);\r\n};\r\n\r\n/* Auto initialization of one or more instances of lazyload, depending on the \r\n    options passed in (plain object or an array) */\r\nfunction autoInitialize(classObj, options) {\r\n\tif (!options) {\r\n\t\treturn;\r\n\t}\r\n\tif (!options.length) {\r\n\t\t// Plain object\r\n\t\tcreateInstance(classObj, options);\r\n\t} else {\r\n\t\t// Array of objects\r\n\t\tfor (let i = 0, optionsItem; (optionsItem = options[i]); i += 1) {\r\n\t\t\tcreateInstance(classObj, optionsItem);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst dataPrefix = \"data-\";\r\nconst processedDataName = \"was-processed\";\r\nconst timeoutDataName = \"ll-timeout\";\r\nconst trueString = \"true\";\r\n\r\nconst getData = (element, attribute) => {\r\n\treturn element.getAttribute(dataPrefix + attribute);\r\n};\r\n\r\nconst setData = (element, attribute, value) => {\r\n\tvar attrName = dataPrefix + attribute;\r\n\tif (value === null) {\r\n\t\telement.removeAttribute(attrName);\r\n\t\treturn;\r\n\t}\r\n\telement.setAttribute(attrName, value);\r\n};\r\n\r\nconst resetWasProcessedData = element =>\r\n\tsetData(element, processedDataName, null);\r\n\r\nconst setWasProcessedData = element =>\r\n\tsetData(element, processedDataName, trueString);\r\n\r\nconst getWasProcessedData = element =>\r\n\tgetData(element, processedDataName) === trueString;\r\n\r\nconst setTimeoutData = (element, value) =>\r\n\tsetData(element, timeoutDataName, value);\r\n\r\nconst getTimeoutData = element => getData(element, timeoutDataName);\r\n\r\nconst purgeProcessedElements = elements => {\r\n\treturn elements.filter(element => !getWasProcessedData(element));\r\n};\r\n\r\nconst purgeOneElement = (elements, elementToPurge) => {\r\n\treturn elements.filter(element => element !== elementToPurge);\r\n};\r\n\r\nconst safeCallback = (callback, arg1, arg2, arg3) => {\r\n\tif (!callback) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (arg3 !== undefined) {\r\n\t\tcallback(arg1, arg2, arg3);\r\n\t\treturn;\r\n\t}\r\n\tif (arg2 !== undefined) {\r\n\t\tcallback(arg1, arg2);\r\n\t\treturn;\r\n\t}\r\n\tcallback(arg1);\r\n};\r\n\r\nconst updateLoadingCount = (instance, plusMinus) => {\r\n    instance.loadingCount += plusMinus;\r\n    if (instance._elements.length === 0 && instance.loadingCount === 0) {\r\n        safeCallback(instance._settings.callback_finish, instance);\r\n    }\r\n};\r\n\r\nconst getSourceTags = parentTag => {\r\n\tlet sourceTags = [];\r\n\tfor (let i = 0, childTag; (childTag = parentTag.children[i]); i += 1) {\r\n\t\tif (childTag.tagName === \"SOURCE\") {\r\n\t\t\tsourceTags.push(childTag);\r\n\t\t}\r\n\t}\r\n\treturn sourceTags;\r\n};\r\n\r\nconst setAttributeIfValue = (element, attrName, value) => {\r\n\tif (!value) {\r\n\t\treturn;\r\n\t}\r\n\telement.setAttribute(attrName, value);\r\n};\r\n\r\nconst setImageAttributes = (element, settings) => {\r\n\tsetAttributeIfValue(\r\n\t\telement,\r\n\t\t\"sizes\",\r\n\t\tgetData(element, settings.data_sizes)\r\n\t);\r\n\tsetAttributeIfValue(\r\n\t\telement,\r\n\t\t\"srcset\",\r\n\t\tgetData(element, settings.data_srcset)\r\n\t);\r\n\tsetAttributeIfValue(element, \"src\", getData(element, settings.data_src));\r\n};\r\n\r\nconst setSourcesImg = (element, settings) => {\r\n\tconst parent = element.parentNode;\r\n\r\n\tif (parent && parent.tagName === \"PICTURE\") {\r\n\t\tlet sourceTags = getSourceTags(parent);\r\n\t\tsourceTags.forEach(sourceTag => {\r\n\t\t\tsetImageAttributes(sourceTag, settings);\r\n\t\t});\r\n\t}\r\n\r\n\tsetImageAttributes(element, settings);\r\n};\r\n\r\nconst setSourcesIframe = (element, settings) => {\r\n\tsetAttributeIfValue(element, \"src\", getData(element, settings.data_src));\r\n};\r\n\r\nconst setSourcesVideo = (element, settings) => {\r\n\tlet sourceTags = getSourceTags(element);\r\n\tsourceTags.forEach(sourceTag => {\r\n\t\tsetAttributeIfValue(\r\n\t\t\tsourceTag,\r\n\t\t\t\"src\",\r\n\t\t\tgetData(sourceTag, settings.data_src)\r\n\t\t);\r\n\t});\r\n\tsetAttributeIfValue(\r\n\t\telement,\r\n\t\t\"poster\",\r\n\t\tgetData(element, settings.data_poster)\r\n\t);\r\n\tsetAttributeIfValue(element, \"src\", getData(element, settings.data_src));\r\n\telement.load();\r\n};\r\n\r\nconst setSourcesBgImage = (element, settings) => {\r\n\tconst srcDataValue = getData(element, settings.data_src);\r\n\tconst bgDataValue = getData(element, settings.data_bg);\r\n\r\n\tif (srcDataValue) {\r\n\t\telement.style.backgroundImage = `url(\"${srcDataValue}\")`;\r\n\t}\r\n\r\n\tif (bgDataValue) {\r\n\t\telement.style.backgroundImage = bgDataValue;\r\n\t}\r\n};\r\n\r\nconst setSourcesFunctions = {\r\n\tIMG: setSourcesImg,\r\n\tIFRAME: setSourcesIframe,\r\n\tVIDEO: setSourcesVideo\r\n};\r\n\r\nconst setSources = (element, instance) => {\r\n\tconst settings = instance._settings;\r\n\tconst tagName = element.tagName;\r\n\tconst setSourcesFunction = setSourcesFunctions[tagName];\r\n\tif (setSourcesFunction) {\r\n\t\tsetSourcesFunction(element, settings);\r\n\t\tupdateLoadingCount(instance, 1);\r\n\t\tinstance._elements = purgeOneElement(instance._elements, element);\r\n\t\treturn;\r\n\t}\r\n\tsetSourcesBgImage(element, settings);\r\n};\r\n\r\nconst addClass = (element, className) => {\r\n\tif (supportsClassList) {\r\n\t\telement.classList.add(className);\r\n\t\treturn;\r\n\t}\r\n\telement.className += (element.className ? \" \" : \"\") + className;\r\n};\r\n\r\nconst removeClass = (element, className) => {\r\n\tif (supportsClassList) {\r\n\t\telement.classList.remove(className);\r\n\t\treturn;\r\n\t}\r\n\telement.className = element.className.\r\n\t\treplace(new RegExp(\"(^|\\\\s+)\" + className + \"(\\\\s+|$)\"), \" \").\r\n\t\treplace(/^\\s+/, \"\").\r\n\t\treplace(/\\s+$/, \"\");\r\n};\r\n\r\nconst genericLoadEventName = \"load\";\r\nconst mediaLoadEventName = \"loadeddata\";\r\nconst errorEventName = \"error\";\r\n\r\nconst addEventListener = (element, eventName, handler) => {\r\n\telement.addEventListener(eventName, handler);\r\n};\r\n\r\nconst removeEventListener = (element, eventName, handler) => {\r\n\telement.removeEventListener(eventName, handler);\r\n};\r\n\r\nconst addEventListeners = (element, loadHandler, errorHandler) => {\r\n\taddEventListener(element, genericLoadEventName, loadHandler);\r\n\taddEventListener(element, mediaLoadEventName, loadHandler);\r\n\taddEventListener(element, errorEventName, errorHandler);\r\n};\r\n\r\nconst removeEventListeners = (element, loadHandler, errorHandler) => {\r\n\tremoveEventListener(element, genericLoadEventName, loadHandler);\r\n\tremoveEventListener(element, mediaLoadEventName, loadHandler);\r\n\tremoveEventListener(element, errorEventName, errorHandler);\r\n};\r\n\r\nconst eventHandler = function(event, success, instance) {\r\n\tvar settings = instance._settings;\r\n\tconst className = success ? settings.class_loaded : settings.class_error;\r\n\tconst callback = success\r\n\t\t? settings.callback_loaded\r\n\t\t: settings.callback_error;\r\n\tconst element = event.target;\r\n\r\n\tremoveClass(element, settings.class_loading);\r\n\taddClass(element, className);\r\n\tsafeCallback(callback, element, instance);\r\n\r\n\tupdateLoadingCount(instance, -1);\r\n};\r\n\r\nconst addOneShotEventListeners = (element, instance) => {\r\n\tconst loadHandler = event => {\r\n\t\teventHandler(event, true, instance);\r\n\t\tremoveEventListeners(element, loadHandler, errorHandler);\r\n\t};\r\n\tconst errorHandler = event => {\r\n\t\teventHandler(event, false, instance);\r\n\t\tremoveEventListeners(element, loadHandler, errorHandler);\r\n\t};\r\n\taddEventListeners(element, loadHandler, errorHandler);\r\n};\r\n\r\nconst managedTags = [\"IMG\", \"IFRAME\", \"VIDEO\"];\r\n\r\nconst onEnter = (element, entry, instance) => {\r\n\tconst settings = instance._settings;\r\n\tsafeCallback(settings.callback_enter, element, entry, instance);\r\n\tif (!settings.load_delay) {\r\n\t\trevealAndUnobserve(element, instance);\r\n\t\treturn;\r\n\t}\r\n\tdelayLoad(element, instance);\r\n};\r\n\r\nconst revealAndUnobserve = (element, instance) => {\r\n\tvar observer = instance._observer;\r\n\trevealElement(element, instance);\r\n\tif (observer && instance._settings.auto_unobserve) {\r\n\t\tobserver.unobserve(element);\r\n\t}\r\n};\r\n\r\nconst onExit = (element, entry, instance) => {\r\n\tconst settings = instance._settings;\r\n\tsafeCallback(settings.callback_exit, element, entry, instance);\r\n\tif (!settings.load_delay) {\r\n\t\treturn;\r\n\t}\r\n\tcancelDelayLoad(element);\r\n};\r\n\r\nconst cancelDelayLoad = element => {\r\n\tvar timeoutId = getTimeoutData(element);\r\n\tif (!timeoutId) {\r\n\t\treturn; // do nothing if timeout doesn't exist\r\n\t}\r\n\tclearTimeout(timeoutId);\r\n\tsetTimeoutData(element, null);\r\n};\r\n\r\nconst delayLoad = (element, instance) => {\r\n\tvar loadDelay = instance._settings.load_delay;\r\n\tvar timeoutId = getTimeoutData(element);\r\n\tif (timeoutId) {\r\n\t\treturn; // do nothing if timeout already set\r\n\t}\r\n\ttimeoutId = setTimeout(function() {\r\n\t\trevealAndUnobserve(element, instance);\r\n\t\tcancelDelayLoad(element);\r\n\t}, loadDelay);\r\n\tsetTimeoutData(element, timeoutId);\r\n};\r\n\r\nconst revealElement = (element, instance, force) => {\r\n\tvar settings = instance._settings;\r\n\tif (!force && getWasProcessedData(element)) {\r\n\t\treturn; // element has already been processed and force wasn't true\r\n\t}\r\n\tif (managedTags.indexOf(element.tagName) > -1) {\r\n\t\taddOneShotEventListeners(element, instance);\r\n\t\taddClass(element, settings.class_loading);\r\n\t}\r\n\tsetSources(element, instance);\r\n\tsetWasProcessedData(element);\r\n\tsafeCallback(settings.callback_reveal, element, instance);\r\n\tsafeCallback(settings.callback_set, element, instance);\r\n};\r\n\r\nconst isIntersecting = entry =>\r\n\tentry.isIntersecting || entry.intersectionRatio > 0;\r\n\r\nconst getObserverSettings = settings => ({\r\n\troot: settings.container === document ? null : settings.container,\r\n\trootMargin: settings.thresholds || settings.threshold + \"px\"\r\n});\r\n\r\nconst setObserver = instance => {\r\n\tif (!supportsIntersectionObserver) {\r\n\t\treturn false;\r\n\t}\r\n\tinstance._observer = new IntersectionObserver(entries => {\r\n\t\tentries.forEach(entry =>\r\n\t\t\tisIntersecting(entry)\r\n\t\t\t\t? onEnter(entry.target, entry, instance)\r\n\t\t\t\t: onExit(entry.target, entry, instance)\r\n\t\t);\r\n\t}, getObserverSettings(instance._settings));\r\n\treturn true;\r\n};\r\n\r\nconst nativeLazyTags = [\"IMG\", \"IFRAME\"];\r\n\r\nconst shouldUseNative = settings =>\r\n\tsettings.use_native && \"loading\" in HTMLImageElement.prototype;\r\n\r\nconst loadAllNative = instance => {\r\n\tinstance._elements.forEach(element => {\r\n\t\tif (nativeLazyTags.indexOf(element.tagName) === -1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\telement.setAttribute(\"loading\", \"lazy\");\r\n\t\trevealElement(element, instance);\r\n\t});\r\n};\r\n\r\nconst nodeSetToArray = nodeSet => Array.prototype.slice.call(nodeSet);\r\n\r\nconst queryElements = settings =>\r\n\tsettings.container.querySelectorAll(settings.elements_selector);\r\n\r\nconst getElements = (elements, settings) =>\r\n\tpurgeProcessedElements(nodeSetToArray(elements || queryElements(settings)));\r\n\r\nconst retryLazyLoad = instance => {\r\n\tvar settings = instance._settings;\r\n\tvar errorElements = settings.container.querySelectorAll(\r\n\t\t\".\" + settings.class_error\r\n\t);\r\n\terrorElements.forEach(element => {\r\n\t\tremoveClass(element, settings.class_error);\r\n\t\tresetWasProcessedData(element);\r\n\t});\r\n\tinstance.update();\r\n};\r\n\r\nconst setOnlineCheck = instance => {\r\n\tif (!runningOnBrowser) {\r\n\t\treturn;\r\n\t}\r\n\twindow.addEventListener(\"online\", event => {\r\n\t\tretryLazyLoad(instance);\r\n\t});\r\n};\r\n\r\nconst LazyLoad = function(customSettings, elements) {\r\n    this._settings = getInstanceSettings(customSettings);\r\n    this.loadingCount = 0;\r\n    setObserver(this);\r\n    this.update(elements);\r\n    setOnlineCheck(this);\r\n};\r\n\r\nLazyLoad.prototype = {\r\n    update: function(elements) {\r\n        var settings = this._settings;\r\n        this._elements = getElements(elements, settings);\r\n        if (isBot || !this._observer) {\r\n            this.loadAll();\r\n            return;\r\n        }\r\n        if (shouldUseNative(settings)) {\r\n            loadAllNative(this);\r\n            this._elements = getElements(elements, settings);\r\n        }\r\n        this._elements.forEach(element => {\r\n            this._observer.observe(element);\r\n        });\r\n    },\r\n\r\n    destroy: function() {\r\n        if (this._observer) {\r\n            this._elements.forEach(element => {\r\n                this._observer.unobserve(element);\r\n            });\r\n            this._observer = null;\r\n        }\r\n        this._elements = null;\r\n        this._settings = null;\r\n    },\r\n\r\n    load: function(element, force) {\r\n        revealElement(element, this, force);\r\n    },\r\n\r\n    loadAll: function() {\r\n        this._elements.forEach(element => {\r\n            revealAndUnobserve(element, this);\r\n        });\r\n    }\r\n};\r\n\r\n/* Automatic instances creation if required (useful for async script loading) */\r\nif (runningOnBrowser) {\r\n    autoInitialize(LazyLoad, window.lazyLoadOptions);\r\n}\r\n\r\nexport default LazyLoad;\r\n","/*!\n * vue-i18n v8.20.0 \n * (c) 2020 kazuya kawaguchi\n * Released under the MIT License.\n */\n/*  */\n\n/**\n * constants\n */\n\nvar numberFormatKeys = [\n  'style',\n  'currency',\n  'currencyDisplay',\n  'useGrouping',\n  'minimumIntegerDigits',\n  'minimumFractionDigits',\n  'maximumFractionDigits',\n  'minimumSignificantDigits',\n  'maximumSignificantDigits',\n  'localeMatcher',\n  'formatMatcher',\n  'unit'\n];\n\n/**\n * utilities\n */\n\nfunction warn (msg, err) {\n  if (typeof console !== 'undefined') {\n    console.warn('[vue-i18n] ' + msg);\n    /* istanbul ignore if */\n    if (err) {\n      console.warn(err.stack);\n    }\n  }\n}\n\nfunction error (msg, err) {\n  if (typeof console !== 'undefined') {\n    console.error('[vue-i18n] ' + msg);\n    /* istanbul ignore if */\n    if (err) {\n      console.error(err.stack);\n    }\n  }\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (obj) {\n  return obj !== null && typeof obj === 'object'\n}\n\nfunction isBoolean (val) {\n  return typeof val === 'boolean'\n}\n\nfunction isString (val) {\n  return typeof val === 'string'\n}\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n  return toString.call(obj) === OBJECT_STRING\n}\n\nfunction isNull (val) {\n  return val === null || val === undefined\n}\n\nfunction parseArgs () {\n  var args = [], len = arguments.length;\n  while ( len-- ) args[ len ] = arguments[ len ];\n\n  var locale = null;\n  var params = null;\n  if (args.length === 1) {\n    if (isObject(args[0]) || Array.isArray(args[0])) {\n      params = args[0];\n    } else if (typeof args[0] === 'string') {\n      locale = args[0];\n    }\n  } else if (args.length === 2) {\n    if (typeof args[0] === 'string') {\n      locale = args[0];\n    }\n    /* istanbul ignore if */\n    if (isObject(args[1]) || Array.isArray(args[1])) {\n      params = args[1];\n    }\n  }\n\n  return { locale: locale, params: params }\n}\n\nfunction looseClone (obj) {\n  return JSON.parse(JSON.stringify(obj))\n}\n\nfunction remove (arr, item) {\n  if (arr.length) {\n    var index = arr.indexOf(item);\n    if (index > -1) {\n      return arr.splice(index, 1)\n    }\n  }\n}\n\nfunction includes (arr, item) {\n  return !!~arr.indexOf(item)\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n  return hasOwnProperty.call(obj, key)\n}\n\nfunction merge (target) {\n  var arguments$1 = arguments;\n\n  var output = Object(target);\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments$1[i];\n    if (source !== undefined && source !== null) {\n      var key = (void 0);\n      for (key in source) {\n        if (hasOwn(source, key)) {\n          if (isObject(source[key])) {\n            output[key] = merge(output[key], source[key]);\n          } else {\n            output[key] = source[key];\n          }\n        }\n      }\n    }\n  }\n  return output\n}\n\nfunction looseEqual (a, b) {\n  if (a === b) { return true }\n  var isObjectA = isObject(a);\n  var isObjectB = isObject(b);\n  if (isObjectA && isObjectB) {\n    try {\n      var isArrayA = Array.isArray(a);\n      var isArrayB = Array.isArray(b);\n      if (isArrayA && isArrayB) {\n        return a.length === b.length && a.every(function (e, i) {\n          return looseEqual(e, b[i])\n        })\n      } else if (!isArrayA && !isArrayB) {\n        var keysA = Object.keys(a);\n        var keysB = Object.keys(b);\n        return keysA.length === keysB.length && keysA.every(function (key) {\n          return looseEqual(a[key], b[key])\n        })\n      } else {\n        /* istanbul ignore next */\n        return false\n      }\n    } catch (e) {\n      /* istanbul ignore next */\n      return false\n    }\n  } else if (!isObjectA && !isObjectB) {\n    return String(a) === String(b)\n  } else {\n    return false\n  }\n}\n\n/*  */\n\nfunction extend (Vue) {\n  if (!Vue.prototype.hasOwnProperty('$i18n')) {\n    // $FlowFixMe\n    Object.defineProperty(Vue.prototype, '$i18n', {\n      get: function get () { return this._i18n }\n    });\n  }\n\n  Vue.prototype.$t = function (key) {\n    var values = [], len = arguments.length - 1;\n    while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n\n    var i18n = this.$i18n;\n    return i18n._t.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))\n  };\n\n  Vue.prototype.$tc = function (key, choice) {\n    var values = [], len = arguments.length - 2;\n    while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n\n    var i18n = this.$i18n;\n    return i18n._tc.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this, choice ].concat( values ))\n  };\n\n  Vue.prototype.$te = function (key, locale) {\n    var i18n = this.$i18n;\n    return i18n._te(key, i18n.locale, i18n._getMessages(), locale)\n  };\n\n  Vue.prototype.$d = function (value) {\n    var ref;\n\n    var args = [], len = arguments.length - 1;\n    while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n    return (ref = this.$i18n).d.apply(ref, [ value ].concat( args ))\n  };\n\n  Vue.prototype.$n = function (value) {\n    var ref;\n\n    var args = [], len = arguments.length - 1;\n    while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n    return (ref = this.$i18n).n.apply(ref, [ value ].concat( args ))\n  };\n}\n\n/*  */\n\nvar mixin = {\n  beforeCreate: function beforeCreate () {\n    var options = this.$options;\n    options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n    if (options.i18n) {\n      if (options.i18n instanceof VueI18n) {\n        // init locale messages via custom blocks\n        if (options.__i18n) {\n          try {\n            var localeMessages = {};\n            options.__i18n.forEach(function (resource) {\n              localeMessages = merge(localeMessages, JSON.parse(resource));\n            });\n            Object.keys(localeMessages).forEach(function (locale) {\n              options.i18n.mergeLocaleMessage(locale, localeMessages[locale]);\n            });\n          } catch (e) {\n            if (process.env.NODE_ENV !== 'production') {\n              error(\"Cannot parse locale messages via custom blocks.\", e);\n            }\n          }\n        }\n        this._i18n = options.i18n;\n        this._i18nWatcher = this._i18n.watchI18nData();\n      } else if (isPlainObject(options.i18n)) {\n        var rootI18n = this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n\n          ? this.$root.$i18n\n          : null;\n        // component local i18n\n        if (rootI18n) {\n          options.i18n.root = this.$root;\n          options.i18n.formatter = rootI18n.formatter;\n          options.i18n.fallbackLocale = rootI18n.fallbackLocale;\n          options.i18n.formatFallbackMessages = rootI18n.formatFallbackMessages;\n          options.i18n.silentTranslationWarn = rootI18n.silentTranslationWarn;\n          options.i18n.silentFallbackWarn = rootI18n.silentFallbackWarn;\n          options.i18n.pluralizationRules = rootI18n.pluralizationRules;\n          options.i18n.preserveDirectiveContent = rootI18n.preserveDirectiveContent;\n        }\n\n        // init locale messages via custom blocks\n        if (options.__i18n) {\n          try {\n            var localeMessages$1 = {};\n            options.__i18n.forEach(function (resource) {\n              localeMessages$1 = merge(localeMessages$1, JSON.parse(resource));\n            });\n            options.i18n.messages = localeMessages$1;\n          } catch (e) {\n            if (process.env.NODE_ENV !== 'production') {\n              warn(\"Cannot parse locale messages via custom blocks.\", e);\n            }\n          }\n        }\n\n        var ref = options.i18n;\n        var sharedMessages = ref.sharedMessages;\n        if (sharedMessages && isPlainObject(sharedMessages)) {\n          options.i18n.messages = merge(options.i18n.messages, sharedMessages);\n        }\n\n        this._i18n = new VueI18n(options.i18n);\n        this._i18nWatcher = this._i18n.watchI18nData();\n\n        if (options.i18n.sync === undefined || !!options.i18n.sync) {\n          this._localeWatcher = this.$i18n.watchLocale();\n        }\n\n        if (rootI18n) {\n          rootI18n.onComponentInstanceCreated(this._i18n);\n        }\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          warn(\"Cannot be interpreted 'i18n' option.\");\n        }\n      }\n    } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n      // root i18n\n      this._i18n = this.$root.$i18n;\n    } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n      // parent i18n\n      this._i18n = options.parent.$i18n;\n    }\n  },\n\n  beforeMount: function beforeMount () {\n    var options = this.$options;\n    options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n    if (options.i18n) {\n      if (options.i18n instanceof VueI18n) {\n        // init locale messages via custom blocks\n        this._i18n.subscribeDataChanging(this);\n        this._subscribing = true;\n      } else if (isPlainObject(options.i18n)) {\n        this._i18n.subscribeDataChanging(this);\n        this._subscribing = true;\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          warn(\"Cannot be interpreted 'i18n' option.\");\n        }\n      }\n    } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n      this._i18n.subscribeDataChanging(this);\n      this._subscribing = true;\n    } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n      this._i18n.subscribeDataChanging(this);\n      this._subscribing = true;\n    }\n  },\n\n  beforeDestroy: function beforeDestroy () {\n    if (!this._i18n) { return }\n\n    var self = this;\n    this.$nextTick(function () {\n      if (self._subscribing) {\n        self._i18n.unsubscribeDataChanging(self);\n        delete self._subscribing;\n      }\n\n      if (self._i18nWatcher) {\n        self._i18nWatcher();\n        self._i18n.destroyVM();\n        delete self._i18nWatcher;\n      }\n\n      if (self._localeWatcher) {\n        self._localeWatcher();\n        delete self._localeWatcher;\n      }\n    });\n  }\n};\n\n/*  */\n\nvar interpolationComponent = {\n  name: 'i18n',\n  functional: true,\n  props: {\n    tag: {\n      type: [String, Boolean, Object],\n      default: 'span'\n    },\n    path: {\n      type: String,\n      required: true\n    },\n    locale: {\n      type: String\n    },\n    places: {\n      type: [Array, Object]\n    }\n  },\n  render: function render (h, ref) {\n    var data = ref.data;\n    var parent = ref.parent;\n    var props = ref.props;\n    var slots = ref.slots;\n\n    var $i18n = parent.$i18n;\n    if (!$i18n) {\n      if (process.env.NODE_ENV !== 'production') {\n        warn('Cannot find VueI18n instance!');\n      }\n      return\n    }\n\n    var path = props.path;\n    var locale = props.locale;\n    var places = props.places;\n    var params = slots();\n    var children = $i18n.i(\n      path,\n      locale,\n      onlyHasDefaultPlace(params) || places\n        ? useLegacyPlaces(params.default, places)\n        : params\n    );\n\n    var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n    return tag ? h(tag, data, children) : children\n  }\n};\n\nfunction onlyHasDefaultPlace (params) {\n  var prop;\n  for (prop in params) {\n    if (prop !== 'default') { return false }\n  }\n  return Boolean(prop)\n}\n\nfunction useLegacyPlaces (children, places) {\n  var params = places ? createParamsFromPlaces(places) : {};\n\n  if (!children) { return params }\n\n  // Filter empty text nodes\n  children = children.filter(function (child) {\n    return child.tag || child.text.trim() !== ''\n  });\n\n  var everyPlace = children.every(vnodeHasPlaceAttribute);\n  if (process.env.NODE_ENV !== 'production' && everyPlace) {\n    warn('`place` attribute is deprecated in next major version. Please switch to Vue slots.');\n  }\n\n  return children.reduce(\n    everyPlace ? assignChildPlace : assignChildIndex,\n    params\n  )\n}\n\nfunction createParamsFromPlaces (places) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn('`places` prop is deprecated in next major version. Please switch to Vue slots.');\n  }\n\n  return Array.isArray(places)\n    ? places.reduce(assignChildIndex, {})\n    : Object.assign({}, places)\n}\n\nfunction assignChildPlace (params, child) {\n  if (child.data && child.data.attrs && child.data.attrs.place) {\n    params[child.data.attrs.place] = child;\n  }\n  return params\n}\n\nfunction assignChildIndex (params, child, index) {\n  params[index] = child;\n  return params\n}\n\nfunction vnodeHasPlaceAttribute (vnode) {\n  return Boolean(vnode.data && vnode.data.attrs && vnode.data.attrs.place)\n}\n\n/*  */\n\nvar numberComponent = {\n  name: 'i18n-n',\n  functional: true,\n  props: {\n    tag: {\n      type: [String, Boolean, Object],\n      default: 'span'\n    },\n    value: {\n      type: Number,\n      required: true\n    },\n    format: {\n      type: [String, Object]\n    },\n    locale: {\n      type: String\n    }\n  },\n  render: function render (h, ref) {\n    var props = ref.props;\n    var parent = ref.parent;\n    var data = ref.data;\n\n    var i18n = parent.$i18n;\n\n    if (!i18n) {\n      if (process.env.NODE_ENV !== 'production') {\n        warn('Cannot find VueI18n instance!');\n      }\n      return null\n    }\n\n    var key = null;\n    var options = null;\n\n    if (isString(props.format)) {\n      key = props.format;\n    } else if (isObject(props.format)) {\n      if (props.format.key) {\n        key = props.format.key;\n      }\n\n      // Filter out number format options only\n      options = Object.keys(props.format).reduce(function (acc, prop) {\n        var obj;\n\n        if (includes(numberFormatKeys, prop)) {\n          return Object.assign({}, acc, ( obj = {}, obj[prop] = props.format[prop], obj ))\n        }\n        return acc\n      }, null);\n    }\n\n    var locale = props.locale || i18n.locale;\n    var parts = i18n._ntp(props.value, locale, key, options);\n\n    var values = parts.map(function (part, index) {\n      var obj;\n\n      var slot = data.scopedSlots && data.scopedSlots[part.type];\n      return slot ? slot(( obj = {}, obj[part.type] = part.value, obj.index = index, obj.parts = parts, obj )) : part.value\n    });\n\n    var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n    return tag\n      ? h(tag, {\n        attrs: data.attrs,\n        'class': data['class'],\n        staticClass: data.staticClass\n      }, values)\n      : values\n  }\n};\n\n/*  */\n\nfunction bind (el, binding, vnode) {\n  if (!assert(el, vnode)) { return }\n\n  t(el, binding, vnode);\n}\n\nfunction update (el, binding, vnode, oldVNode) {\n  if (!assert(el, vnode)) { return }\n\n  var i18n = vnode.context.$i18n;\n  if (localeEqual(el, vnode) &&\n    (looseEqual(binding.value, binding.oldValue) &&\n     looseEqual(el._localeMessage, i18n.getLocaleMessage(i18n.locale)))) { return }\n\n  t(el, binding, vnode);\n}\n\nfunction unbind (el, binding, vnode, oldVNode) {\n  var vm = vnode.context;\n  if (!vm) {\n    warn('Vue instance does not exists in VNode context');\n    return\n  }\n\n  var i18n = vnode.context.$i18n || {};\n  if (!binding.modifiers.preserve && !i18n.preserveDirectiveContent) {\n    el.textContent = '';\n  }\n  el._vt = undefined;\n  delete el['_vt'];\n  el._locale = undefined;\n  delete el['_locale'];\n  el._localeMessage = undefined;\n  delete el['_localeMessage'];\n}\n\nfunction assert (el, vnode) {\n  var vm = vnode.context;\n  if (!vm) {\n    warn('Vue instance does not exists in VNode context');\n    return false\n  }\n\n  if (!vm.$i18n) {\n    warn('VueI18n instance does not exists in Vue instance');\n    return false\n  }\n\n  return true\n}\n\nfunction localeEqual (el, vnode) {\n  var vm = vnode.context;\n  return el._locale === vm.$i18n.locale\n}\n\nfunction t (el, binding, vnode) {\n  var ref$1, ref$2;\n\n  var value = binding.value;\n\n  var ref = parseValue(value);\n  var path = ref.path;\n  var locale = ref.locale;\n  var args = ref.args;\n  var choice = ref.choice;\n  if (!path && !locale && !args) {\n    warn('value type not supported');\n    return\n  }\n\n  if (!path) {\n    warn('`path` is required in v-t directive');\n    return\n  }\n\n  var vm = vnode.context;\n  if (choice != null) {\n    el._vt = el.textContent = (ref$1 = vm.$i18n).tc.apply(ref$1, [ path, choice ].concat( makeParams(locale, args) ));\n  } else {\n    el._vt = el.textContent = (ref$2 = vm.$i18n).t.apply(ref$2, [ path ].concat( makeParams(locale, args) ));\n  }\n  el._locale = vm.$i18n.locale;\n  el._localeMessage = vm.$i18n.getLocaleMessage(vm.$i18n.locale);\n}\n\nfunction parseValue (value) {\n  var path;\n  var locale;\n  var args;\n  var choice;\n\n  if (isString(value)) {\n    path = value;\n  } else if (isPlainObject(value)) {\n    path = value.path;\n    locale = value.locale;\n    args = value.args;\n    choice = value.choice;\n  }\n\n  return { path: path, locale: locale, args: args, choice: choice }\n}\n\nfunction makeParams (locale, args) {\n  var params = [];\n\n  locale && params.push(locale);\n  if (args && (Array.isArray(args) || isPlainObject(args))) {\n    params.push(args);\n  }\n\n  return params\n}\n\nvar Vue;\n\nfunction install (_Vue) {\n  /* istanbul ignore if */\n  if (process.env.NODE_ENV !== 'production' && install.installed && _Vue === Vue) {\n    warn('already installed.');\n    return\n  }\n  install.installed = true;\n\n  Vue = _Vue;\n\n  var version = (Vue.version && Number(Vue.version.split('.')[0])) || -1;\n  /* istanbul ignore if */\n  if (process.env.NODE_ENV !== 'production' && version < 2) {\n    warn((\"vue-i18n (\" + (install.version) + \") need to use Vue 2.0 or later (Vue: \" + (Vue.version) + \").\"));\n    return\n  }\n\n  extend(Vue);\n  Vue.mixin(mixin);\n  Vue.directive('t', { bind: bind, update: update, unbind: unbind });\n  Vue.component(interpolationComponent.name, interpolationComponent);\n  Vue.component(numberComponent.name, numberComponent);\n\n  // use simple mergeStrategies to prevent i18n instance lose '__proto__'\n  var strats = Vue.config.optionMergeStrategies;\n  strats.i18n = function (parentVal, childVal) {\n    return childVal === undefined\n      ? parentVal\n      : childVal\n  };\n}\n\n/*  */\n\nvar BaseFormatter = function BaseFormatter () {\n  this._caches = Object.create(null);\n};\n\nBaseFormatter.prototype.interpolate = function interpolate (message, values) {\n  if (!values) {\n    return [message]\n  }\n  var tokens = this._caches[message];\n  if (!tokens) {\n    tokens = parse(message);\n    this._caches[message] = tokens;\n  }\n  return compile(tokens, values)\n};\n\n\n\nvar RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nvar RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\n\nfunction parse (format) {\n  var tokens = [];\n  var position = 0;\n\n  var text = '';\n  while (position < format.length) {\n    var char = format[position++];\n    if (char === '{') {\n      if (text) {\n        tokens.push({ type: 'text', value: text });\n      }\n\n      text = '';\n      var sub = '';\n      char = format[position++];\n      while (char !== undefined && char !== '}') {\n        sub += char;\n        char = format[position++];\n      }\n      var isClosed = char === '}';\n\n      var type = RE_TOKEN_LIST_VALUE.test(sub)\n        ? 'list'\n        : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n          ? 'named'\n          : 'unknown';\n      tokens.push({ value: sub, type: type });\n    } else if (char === '%') {\n      // when found rails i18n syntax, skip text capture\n      if (format[(position)] !== '{') {\n        text += char;\n      }\n    } else {\n      text += char;\n    }\n  }\n\n  text && tokens.push({ type: 'text', value: text });\n\n  return tokens\n}\n\nfunction compile (tokens, values) {\n  var compiled = [];\n  var index = 0;\n\n  var mode = Array.isArray(values)\n    ? 'list'\n    : isObject(values)\n      ? 'named'\n      : 'unknown';\n  if (mode === 'unknown') { return compiled }\n\n  while (index < tokens.length) {\n    var token = tokens[index];\n    switch (token.type) {\n      case 'text':\n        compiled.push(token.value);\n        break\n      case 'list':\n        compiled.push(values[parseInt(token.value, 10)]);\n        break\n      case 'named':\n        if (mode === 'named') {\n          compiled.push((values)[token.value]);\n        } else {\n          if (process.env.NODE_ENV !== 'production') {\n            warn((\"Type of token '\" + (token.type) + \"' and format of value '\" + mode + \"' don't match!\"));\n          }\n        }\n        break\n      case 'unknown':\n        if (process.env.NODE_ENV !== 'production') {\n          warn(\"Detect 'unknown' type of token!\");\n        }\n        break\n    }\n    index++;\n  }\n\n  return compiled\n}\n\n/*  */\n\n/**\n *  Path parser\n *  - Inspired:\n *    Vue.js Path parser\n */\n\n// actions\nvar APPEND = 0;\nvar PUSH = 1;\nvar INC_SUB_PATH_DEPTH = 2;\nvar PUSH_SUB_PATH = 3;\n\n// states\nvar BEFORE_PATH = 0;\nvar IN_PATH = 1;\nvar BEFORE_IDENT = 2;\nvar IN_IDENT = 3;\nvar IN_SUB_PATH = 4;\nvar IN_SINGLE_QUOTE = 5;\nvar IN_DOUBLE_QUOTE = 6;\nvar AFTER_PATH = 7;\nvar ERROR = 8;\n\nvar pathStateMachine = [];\n\npathStateMachine[BEFORE_PATH] = {\n  'ws': [BEFORE_PATH],\n  'ident': [IN_IDENT, APPEND],\n  '[': [IN_SUB_PATH],\n  'eof': [AFTER_PATH]\n};\n\npathStateMachine[IN_PATH] = {\n  'ws': [IN_PATH],\n  '.': [BEFORE_IDENT],\n  '[': [IN_SUB_PATH],\n  'eof': [AFTER_PATH]\n};\n\npathStateMachine[BEFORE_IDENT] = {\n  'ws': [BEFORE_IDENT],\n  'ident': [IN_IDENT, APPEND],\n  '0': [IN_IDENT, APPEND],\n  'number': [IN_IDENT, APPEND]\n};\n\npathStateMachine[IN_IDENT] = {\n  'ident': [IN_IDENT, APPEND],\n  '0': [IN_IDENT, APPEND],\n  'number': [IN_IDENT, APPEND],\n  'ws': [IN_PATH, PUSH],\n  '.': [BEFORE_IDENT, PUSH],\n  '[': [IN_SUB_PATH, PUSH],\n  'eof': [AFTER_PATH, PUSH]\n};\n\npathStateMachine[IN_SUB_PATH] = {\n  \"'\": [IN_SINGLE_QUOTE, APPEND],\n  '\"': [IN_DOUBLE_QUOTE, APPEND],\n  '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH],\n  ']': [IN_PATH, PUSH_SUB_PATH],\n  'eof': ERROR,\n  'else': [IN_SUB_PATH, APPEND]\n};\n\npathStateMachine[IN_SINGLE_QUOTE] = {\n  \"'\": [IN_SUB_PATH, APPEND],\n  'eof': ERROR,\n  'else': [IN_SINGLE_QUOTE, APPEND]\n};\n\npathStateMachine[IN_DOUBLE_QUOTE] = {\n  '\"': [IN_SUB_PATH, APPEND],\n  'eof': ERROR,\n  'else': [IN_DOUBLE_QUOTE, APPEND]\n};\n\n/**\n * Check if an expression is a literal value.\n */\n\nvar literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral (exp) {\n  return literalValueRE.test(exp)\n}\n\n/**\n * Strip quotes from a string\n */\n\nfunction stripQuotes (str) {\n  var a = str.charCodeAt(0);\n  var b = str.charCodeAt(str.length - 1);\n  return a === b && (a === 0x22 || a === 0x27)\n    ? str.slice(1, -1)\n    : str\n}\n\n/**\n * Determine the type of a character in a keypath.\n */\n\nfunction getPathCharType (ch) {\n  if (ch === undefined || ch === null) { return 'eof' }\n\n  var code = ch.charCodeAt(0);\n\n  switch (code) {\n    case 0x5B: // [\n    case 0x5D: // ]\n    case 0x2E: // .\n    case 0x22: // \"\n    case 0x27: // '\n      return ch\n\n    case 0x5F: // _\n    case 0x24: // $\n    case 0x2D: // -\n      return 'ident'\n\n    case 0x09: // Tab\n    case 0x0A: // Newline\n    case 0x0D: // Return\n    case 0xA0:  // No-break space\n    case 0xFEFF:  // Byte Order Mark\n    case 0x2028:  // Line Separator\n    case 0x2029:  // Paragraph Separator\n      return 'ws'\n  }\n\n  return 'ident'\n}\n\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\n\nfunction formatSubPath (path) {\n  var trimmed = path.trim();\n  // invalid leading 0\n  if (path.charAt(0) === '0' && isNaN(path)) { return false }\n\n  return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed\n}\n\n/**\n * Parse a string path into an array of segments\n */\n\nfunction parse$1 (path) {\n  var keys = [];\n  var index = -1;\n  var mode = BEFORE_PATH;\n  var subPathDepth = 0;\n  var c;\n  var key;\n  var newChar;\n  var type;\n  var transition;\n  var action;\n  var typeMap;\n  var actions = [];\n\n  actions[PUSH] = function () {\n    if (key !== undefined) {\n      keys.push(key);\n      key = undefined;\n    }\n  };\n\n  actions[APPEND] = function () {\n    if (key === undefined) {\n      key = newChar;\n    } else {\n      key += newChar;\n    }\n  };\n\n  actions[INC_SUB_PATH_DEPTH] = function () {\n    actions[APPEND]();\n    subPathDepth++;\n  };\n\n  actions[PUSH_SUB_PATH] = function () {\n    if (subPathDepth > 0) {\n      subPathDepth--;\n      mode = IN_SUB_PATH;\n      actions[APPEND]();\n    } else {\n      subPathDepth = 0;\n      if (key === undefined) { return false }\n      key = formatSubPath(key);\n      if (key === false) {\n        return false\n      } else {\n        actions[PUSH]();\n      }\n    }\n  };\n\n  function maybeUnescapeQuote () {\n    var nextChar = path[index + 1];\n    if ((mode === IN_SINGLE_QUOTE && nextChar === \"'\") ||\n      (mode === IN_DOUBLE_QUOTE && nextChar === '\"')) {\n      index++;\n      newChar = '\\\\' + nextChar;\n      actions[APPEND]();\n      return true\n    }\n  }\n\n  while (mode !== null) {\n    index++;\n    c = path[index];\n\n    if (c === '\\\\' && maybeUnescapeQuote()) {\n      continue\n    }\n\n    type = getPathCharType(c);\n    typeMap = pathStateMachine[mode];\n    transition = typeMap[type] || typeMap['else'] || ERROR;\n\n    if (transition === ERROR) {\n      return // parse error\n    }\n\n    mode = transition[0];\n    action = actions[transition[1]];\n    if (action) {\n      newChar = transition[2];\n      newChar = newChar === undefined\n        ? c\n        : newChar;\n      if (action() === false) {\n        return\n      }\n    }\n\n    if (mode === AFTER_PATH) {\n      return keys\n    }\n  }\n}\n\n\n\n\n\nvar I18nPath = function I18nPath () {\n  this._cache = Object.create(null);\n};\n\n/**\n * External parse that check for a cache hit first\n */\nI18nPath.prototype.parsePath = function parsePath (path) {\n  var hit = this._cache[path];\n  if (!hit) {\n    hit = parse$1(path);\n    if (hit) {\n      this._cache[path] = hit;\n    }\n  }\n  return hit || []\n};\n\n/**\n * Get path value from path string\n */\nI18nPath.prototype.getPathValue = function getPathValue (obj, path) {\n  if (!isObject(obj)) { return null }\n\n  var paths = this.parsePath(path);\n  if (paths.length === 0) {\n    return null\n  } else {\n    var length = paths.length;\n    var last = obj;\n    var i = 0;\n    while (i < length) {\n      var value = last[paths[i]];\n      if (value === undefined) {\n        return null\n      }\n      last = value;\n      i++;\n    }\n\n    return last\n  }\n};\n\n/*  */\n\n\n\nvar htmlTagMatcher = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nvar linkKeyMatcher = /(?:@(?:\\.[a-z]+)?:(?:[\\w\\-_|.]+|\\([\\w\\-_|.]+\\)))/g;\nvar linkKeyPrefixMatcher = /^@(?:\\.([a-z]+))?:/;\nvar bracketsMatcher = /[()]/g;\nvar defaultModifiers = {\n  'upper': function (str) { return str.toLocaleUpperCase(); },\n  'lower': function (str) { return str.toLocaleLowerCase(); },\n  'capitalize': function (str) { return (\"\" + (str.charAt(0).toLocaleUpperCase()) + (str.substr(1))); }\n};\n\nvar defaultFormatter = new BaseFormatter();\n\nvar VueI18n = function VueI18n (options) {\n  var this$1 = this;\n  if ( options === void 0 ) options = {};\n\n  // Auto install if it is not done yet and `window` has `Vue`.\n  // To allow users to avoid auto-installation in some cases,\n  // this code should be placed here. See #290\n  /* istanbul ignore if */\n  if (!Vue && typeof window !== 'undefined' && window.Vue) {\n    install(window.Vue);\n  }\n\n  var locale = options.locale || 'en-US';\n  var fallbackLocale = options.fallbackLocale === false\n    ? false\n    : options.fallbackLocale || 'en-US';\n  var messages = options.messages || {};\n  var dateTimeFormats = options.dateTimeFormats || {};\n  var numberFormats = options.numberFormats || {};\n\n  this._vm = null;\n  this._formatter = options.formatter || defaultFormatter;\n  this._modifiers = options.modifiers || {};\n  this._missing = options.missing || null;\n  this._root = options.root || null;\n  this._sync = options.sync === undefined ? true : !!options.sync;\n  this._fallbackRoot = options.fallbackRoot === undefined\n    ? true\n    : !!options.fallbackRoot;\n  this._formatFallbackMessages = options.formatFallbackMessages === undefined\n    ? false\n    : !!options.formatFallbackMessages;\n  this._silentTranslationWarn = options.silentTranslationWarn === undefined\n    ? false\n    : options.silentTranslationWarn;\n  this._silentFallbackWarn = options.silentFallbackWarn === undefined\n    ? false\n    : !!options.silentFallbackWarn;\n  this._dateTimeFormatters = {};\n  this._numberFormatters = {};\n  this._path = new I18nPath();\n  this._dataListeners = [];\n  this._componentInstanceCreatedListener = options.componentInstanceCreatedListener || null;\n  this._preserveDirectiveContent = options.preserveDirectiveContent === undefined\n    ? false\n    : !!options.preserveDirectiveContent;\n  this.pluralizationRules = options.pluralizationRules || {};\n  this._warnHtmlInMessage = options.warnHtmlInMessage || 'off';\n  this._postTranslation = options.postTranslation || null;\n\n  /**\n   * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`\n   * @param choicesLength {number} an overall amount of available choices\n   * @returns a final choice index\n  */\n  this.getChoiceIndex = function (choice, choicesLength) {\n    var thisPrototype = Object.getPrototypeOf(this$1);\n    if (thisPrototype && thisPrototype.getChoiceIndex) {\n      var prototypeGetChoiceIndex = (thisPrototype.getChoiceIndex);\n      return (prototypeGetChoiceIndex).call(this$1, choice, choicesLength)\n    }\n\n    // Default (old) getChoiceIndex implementation - english-compatible\n    var defaultImpl = function (_choice, _choicesLength) {\n      _choice = Math.abs(_choice);\n\n      if (_choicesLength === 2) {\n        return _choice\n          ? _choice > 1\n            ? 1\n            : 0\n          : 1\n      }\n\n      return _choice ? Math.min(_choice, 2) : 0\n    };\n\n    if (this$1.locale in this$1.pluralizationRules) {\n      return this$1.pluralizationRules[this$1.locale].apply(this$1, [choice, choicesLength])\n    } else {\n      return defaultImpl(choice, choicesLength)\n    }\n  };\n\n\n  this._exist = function (message, key) {\n    if (!message || !key) { return false }\n    if (!isNull(this$1._path.getPathValue(message, key))) { return true }\n    // fallback for flat key\n    if (message[key]) { return true }\n    return false\n  };\n\n  if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n    Object.keys(messages).forEach(function (locale) {\n      this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n    });\n  }\n\n  this._initVM({\n    locale: locale,\n    fallbackLocale: fallbackLocale,\n    messages: messages,\n    dateTimeFormats: dateTimeFormats,\n    numberFormats: numberFormats\n  });\n};\n\nvar prototypeAccessors = { vm: { configurable: true },messages: { configurable: true },dateTimeFormats: { configurable: true },numberFormats: { configurable: true },availableLocales: { configurable: true },locale: { configurable: true },fallbackLocale: { configurable: true },formatFallbackMessages: { configurable: true },missing: { configurable: true },formatter: { configurable: true },silentTranslationWarn: { configurable: true },silentFallbackWarn: { configurable: true },preserveDirectiveContent: { configurable: true },warnHtmlInMessage: { configurable: true },postTranslation: { configurable: true } };\n\nVueI18n.prototype._checkLocaleMessage = function _checkLocaleMessage (locale, level, message) {\n  var paths = [];\n\n  var fn = function (level, locale, message, paths) {\n    if (isPlainObject(message)) {\n      Object.keys(message).forEach(function (key) {\n        var val = message[key];\n        if (isPlainObject(val)) {\n          paths.push(key);\n          paths.push('.');\n          fn(level, locale, val, paths);\n          paths.pop();\n          paths.pop();\n        } else {\n          paths.push(key);\n          fn(level, locale, val, paths);\n          paths.pop();\n        }\n      });\n    } else if (Array.isArray(message)) {\n      message.forEach(function (item, index) {\n        if (isPlainObject(item)) {\n          paths.push((\"[\" + index + \"]\"));\n          paths.push('.');\n          fn(level, locale, item, paths);\n          paths.pop();\n          paths.pop();\n        } else {\n          paths.push((\"[\" + index + \"]\"));\n          fn(level, locale, item, paths);\n          paths.pop();\n        }\n      });\n    } else if (isString(message)) {\n      var ret = htmlTagMatcher.test(message);\n      if (ret) {\n        var msg = \"Detected HTML in message '\" + message + \"' of keypath '\" + (paths.join('')) + \"' at '\" + locale + \"'. Consider component interpolation with '<i18n>' to avoid XSS. See https://bit.ly/2ZqJzkp\";\n        if (level === 'warn') {\n          warn(msg);\n        } else if (level === 'error') {\n          error(msg);\n        }\n      }\n    }\n  };\n\n  fn(level, locale, message, paths);\n};\n\nVueI18n.prototype._initVM = function _initVM (data) {\n  var silent = Vue.config.silent;\n  Vue.config.silent = true;\n  this._vm = new Vue({ data: data });\n  Vue.config.silent = silent;\n};\n\nVueI18n.prototype.destroyVM = function destroyVM () {\n  this._vm.$destroy();\n};\n\nVueI18n.prototype.subscribeDataChanging = function subscribeDataChanging (vm) {\n  this._dataListeners.push(vm);\n};\n\nVueI18n.prototype.unsubscribeDataChanging = function unsubscribeDataChanging (vm) {\n  remove(this._dataListeners, vm);\n};\n\nVueI18n.prototype.watchI18nData = function watchI18nData () {\n  var self = this;\n  return this._vm.$watch('$data', function () {\n    var i = self._dataListeners.length;\n    while (i--) {\n      Vue.nextTick(function () {\n        self._dataListeners[i] && self._dataListeners[i].$forceUpdate();\n      });\n    }\n  }, { deep: true })\n};\n\nVueI18n.prototype.watchLocale = function watchLocale () {\n  /* istanbul ignore if */\n  if (!this._sync || !this._root) { return null }\n  var target = this._vm;\n  return this._root.$i18n.vm.$watch('locale', function (val) {\n    target.$set(target, 'locale', val);\n    target.$forceUpdate();\n  }, { immediate: true })\n};\n\nVueI18n.prototype.onComponentInstanceCreated = function onComponentInstanceCreated (newI18n) {\n  if (this._componentInstanceCreatedListener) {\n    this._componentInstanceCreatedListener(newI18n, this);\n  }\n};\n\nprototypeAccessors.vm.get = function () { return this._vm };\n\nprototypeAccessors.messages.get = function () { return looseClone(this._getMessages()) };\nprototypeAccessors.dateTimeFormats.get = function () { return looseClone(this._getDateTimeFormats()) };\nprototypeAccessors.numberFormats.get = function () { return looseClone(this._getNumberFormats()) };\nprototypeAccessors.availableLocales.get = function () { return Object.keys(this.messages).sort() };\n\nprototypeAccessors.locale.get = function () { return this._vm.locale };\nprototypeAccessors.locale.set = function (locale) {\n  this._vm.$set(this._vm, 'locale', locale);\n};\n\nprototypeAccessors.fallbackLocale.get = function () { return this._vm.fallbackLocale };\nprototypeAccessors.fallbackLocale.set = function (locale) {\n  this._localeChainCache = {};\n  this._vm.$set(this._vm, 'fallbackLocale', locale);\n};\n\nprototypeAccessors.formatFallbackMessages.get = function () { return this._formatFallbackMessages };\nprototypeAccessors.formatFallbackMessages.set = function (fallback) { this._formatFallbackMessages = fallback; };\n\nprototypeAccessors.missing.get = function () { return this._missing };\nprototypeAccessors.missing.set = function (handler) { this._missing = handler; };\n\nprototypeAccessors.formatter.get = function () { return this._formatter };\nprototypeAccessors.formatter.set = function (formatter) { this._formatter = formatter; };\n\nprototypeAccessors.silentTranslationWarn.get = function () { return this._silentTranslationWarn };\nprototypeAccessors.silentTranslationWarn.set = function (silent) { this._silentTranslationWarn = silent; };\n\nprototypeAccessors.silentFallbackWarn.get = function () { return this._silentFallbackWarn };\nprototypeAccessors.silentFallbackWarn.set = function (silent) { this._silentFallbackWarn = silent; };\n\nprototypeAccessors.preserveDirectiveContent.get = function () { return this._preserveDirectiveContent };\nprototypeAccessors.preserveDirectiveContent.set = function (preserve) { this._preserveDirectiveContent = preserve; };\n\nprototypeAccessors.warnHtmlInMessage.get = function () { return this._warnHtmlInMessage };\nprototypeAccessors.warnHtmlInMessage.set = function (level) {\n    var this$1 = this;\n\n  var orgLevel = this._warnHtmlInMessage;\n  this._warnHtmlInMessage = level;\n  if (orgLevel !== level && (level === 'warn' || level === 'error')) {\n    var messages = this._getMessages();\n    Object.keys(messages).forEach(function (locale) {\n      this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n    });\n  }\n};\n\nprototypeAccessors.postTranslation.get = function () { return this._postTranslation };\nprototypeAccessors.postTranslation.set = function (handler) { this._postTranslation = handler; };\n\nVueI18n.prototype._getMessages = function _getMessages () { return this._vm.messages };\nVueI18n.prototype._getDateTimeFormats = function _getDateTimeFormats () { return this._vm.dateTimeFormats };\nVueI18n.prototype._getNumberFormats = function _getNumberFormats () { return this._vm.numberFormats };\n\nVueI18n.prototype._warnDefault = function _warnDefault (locale, key, result, vm, values, interpolateMode) {\n  if (!isNull(result)) { return result }\n  if (this._missing) {\n    var missingRet = this._missing.apply(null, [locale, key, vm, values]);\n    if (isString(missingRet)) {\n      return missingRet\n    }\n  } else {\n    if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n      warn(\n        \"Cannot translate the value of keypath '\" + key + \"'. \" +\n        'Use the value of keypath as default.'\n      );\n    }\n  }\n\n  if (this._formatFallbackMessages) {\n    var parsedArgs = parseArgs.apply(void 0, values);\n    return this._render(key, interpolateMode, parsedArgs.params, key)\n  } else {\n    return key\n  }\n};\n\nVueI18n.prototype._isFallbackRoot = function _isFallbackRoot (val) {\n  return !val && !isNull(this._root) && this._fallbackRoot\n};\n\nVueI18n.prototype._isSilentFallbackWarn = function _isSilentFallbackWarn (key) {\n  return this._silentFallbackWarn instanceof RegExp\n    ? this._silentFallbackWarn.test(key)\n    : this._silentFallbackWarn\n};\n\nVueI18n.prototype._isSilentFallback = function _isSilentFallback (locale, key) {\n  return this._isSilentFallbackWarn(key) && (this._isFallbackRoot() || locale !== this.fallbackLocale)\n};\n\nVueI18n.prototype._isSilentTranslationWarn = function _isSilentTranslationWarn (key) {\n  return this._silentTranslationWarn instanceof RegExp\n    ? this._silentTranslationWarn.test(key)\n    : this._silentTranslationWarn\n};\n\nVueI18n.prototype._interpolate = function _interpolate (\n  locale,\n  message,\n  key,\n  host,\n  interpolateMode,\n  values,\n  visitedLinkStack\n) {\n  if (!message) { return null }\n\n  var pathRet = this._path.getPathValue(message, key);\n  if (Array.isArray(pathRet) || isPlainObject(pathRet)) { return pathRet }\n\n  var ret;\n  if (isNull(pathRet)) {\n    /* istanbul ignore else */\n    if (isPlainObject(message)) {\n      ret = message[key];\n      if (!isString(ret)) {\n        if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n          warn((\"Value of key '\" + key + \"' is not a string!\"));\n        }\n        return null\n      }\n    } else {\n      return null\n    }\n  } else {\n    /* istanbul ignore else */\n    if (isString(pathRet)) {\n      ret = pathRet;\n    } else {\n      if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n        warn((\"Value of key '\" + key + \"' is not a string!\"));\n      }\n      return null\n    }\n  }\n\n  // Check for the existence of links within the translated string\n  if (ret.indexOf('@:') >= 0 || ret.indexOf('@.') >= 0) {\n    ret = this._link(locale, message, ret, host, 'raw', values, visitedLinkStack);\n  }\n\n  return this._render(ret, interpolateMode, values, key)\n};\n\nVueI18n.prototype._link = function _link (\n  locale,\n  message,\n  str,\n  host,\n  interpolateMode,\n  values,\n  visitedLinkStack\n) {\n  var ret = str;\n\n  // Match all the links within the local\n  // We are going to replace each of\n  // them with its translation\n  var matches = ret.match(linkKeyMatcher);\n  for (var idx in matches) {\n    // ie compatible: filter custom array\n    // prototype method\n    if (!matches.hasOwnProperty(idx)) {\n      continue\n    }\n    var link = matches[idx];\n    var linkKeyPrefixMatches = link.match(linkKeyPrefixMatcher);\n    var linkPrefix = linkKeyPrefixMatches[0];\n      var formatterName = linkKeyPrefixMatches[1];\n\n    // Remove the leading @:, @.case: and the brackets\n    var linkPlaceholder = link.replace(linkPrefix, '').replace(bracketsMatcher, '');\n\n    if (includes(visitedLinkStack, linkPlaceholder)) {\n      if (process.env.NODE_ENV !== 'production') {\n        warn((\"Circular reference found. \\\"\" + link + \"\\\" is already visited in the chain of \" + (visitedLinkStack.reverse().join(' <- '))));\n      }\n      return ret\n    }\n    visitedLinkStack.push(linkPlaceholder);\n\n    // Translate the link\n    var translated = this._interpolate(\n      locale, message, linkPlaceholder, host,\n      interpolateMode === 'raw' ? 'string' : interpolateMode,\n      interpolateMode === 'raw' ? undefined : values,\n      visitedLinkStack\n    );\n\n    if (this._isFallbackRoot(translated)) {\n      if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(linkPlaceholder)) {\n        warn((\"Fall back to translate the link placeholder '\" + linkPlaceholder + \"' with root locale.\"));\n      }\n      /* istanbul ignore if */\n      if (!this._root) { throw Error('unexpected error') }\n      var root = this._root.$i18n;\n      translated = root._translate(\n        root._getMessages(), root.locale, root.fallbackLocale,\n        linkPlaceholder, host, interpolateMode, values\n      );\n    }\n    translated = this._warnDefault(\n      locale, linkPlaceholder, translated, host,\n      Array.isArray(values) ? values : [values],\n      interpolateMode\n    );\n\n    if (this._modifiers.hasOwnProperty(formatterName)) {\n      translated = this._modifiers[formatterName](translated);\n    } else if (defaultModifiers.hasOwnProperty(formatterName)) {\n      translated = defaultModifiers[formatterName](translated);\n    }\n\n    visitedLinkStack.pop();\n\n    // Replace the link with the translated\n    ret = !translated ? ret : ret.replace(link, translated);\n  }\n\n  return ret\n};\n\nVueI18n.prototype._render = function _render (message, interpolateMode, values, path) {\n  var ret = this._formatter.interpolate(message, values, path);\n\n  // If the custom formatter refuses to work - apply the default one\n  if (!ret) {\n    ret = defaultFormatter.interpolate(message, values, path);\n  }\n\n  // if interpolateMode is **not** 'string' ('row'),\n  // return the compiled data (e.g. ['foo', VNode, 'bar']) with formatter\n  return interpolateMode === 'string' && !isString(ret) ? ret.join('') : ret\n};\n\nVueI18n.prototype._appendItemToChain = function _appendItemToChain (chain, item, blocks) {\n  var follow = false;\n  if (!includes(chain, item)) {\n    follow = true;\n    if (item) {\n      follow = item[item.length - 1] !== '!';\n      item = item.replace(/!/g, '');\n      chain.push(item);\n      if (blocks && blocks[item]) {\n        follow = blocks[item];\n      }\n    }\n  }\n  return follow\n};\n\nVueI18n.prototype._appendLocaleToChain = function _appendLocaleToChain (chain, locale, blocks) {\n  var follow;\n  var tokens = locale.split('-');\n  do {\n    var item = tokens.join('-');\n    follow = this._appendItemToChain(chain, item, blocks);\n    tokens.splice(-1, 1);\n  } while (tokens.length && (follow === true))\n  return follow\n};\n\nVueI18n.prototype._appendBlockToChain = function _appendBlockToChain (chain, block, blocks) {\n  var follow = true;\n  for (var i = 0; (i < block.length) && (isBoolean(follow)); i++) {\n    var locale = block[i];\n    if (isString(locale)) {\n      follow = this._appendLocaleToChain(chain, locale, blocks);\n    }\n  }\n  return follow\n};\n\nVueI18n.prototype._getLocaleChain = function _getLocaleChain (start, fallbackLocale) {\n  if (start === '') { return [] }\n\n  if (!this._localeChainCache) {\n    this._localeChainCache = {};\n  }\n\n  var chain = this._localeChainCache[start];\n  if (!chain) {\n    if (!fallbackLocale) {\n      fallbackLocale = this.fallbackLocale;\n    }\n    chain = [];\n\n    // first block defined by start\n    var block = [start];\n\n    // while any intervening block found\n    while (isArray(block)) {\n      block = this._appendBlockToChain(\n        chain,\n        block,\n        fallbackLocale\n      );\n    }\n\n    // last block defined by default\n    var defaults;\n    if (isArray(fallbackLocale)) {\n      defaults = fallbackLocale;\n    } else if (isObject(fallbackLocale)) {\n      /* $FlowFixMe */\n      if (fallbackLocale['default']) {\n        defaults = fallbackLocale['default'];\n      } else {\n        defaults = null;\n      }\n    } else {\n      defaults = fallbackLocale;\n    }\n\n    // convert defaults to array\n    if (isString(defaults)) {\n      block = [defaults];\n    } else {\n      block = defaults;\n    }\n    if (block) {\n      this._appendBlockToChain(\n        chain,\n        block,\n        null\n      );\n    }\n    this._localeChainCache[start] = chain;\n  }\n  return chain\n};\n\nVueI18n.prototype._translate = function _translate (\n  messages,\n  locale,\n  fallback,\n  key,\n  host,\n  interpolateMode,\n  args\n) {\n  var chain = this._getLocaleChain(locale, fallback);\n  var res;\n  for (var i = 0; i < chain.length; i++) {\n    var step = chain[i];\n    res =\n      this._interpolate(step, messages[step], key, host, interpolateMode, args, [key]);\n    if (!isNull(res)) {\n      if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n        warn((\"Fall back to translate the keypath '\" + key + \"' with '\" + step + \"' locale.\"));\n      }\n      return res\n    }\n  }\n  return null\n};\n\nVueI18n.prototype._t = function _t (key, _locale, messages, host) {\n    var ref;\n\n    var values = [], len = arguments.length - 4;\n    while ( len-- > 0 ) values[ len ] = arguments[ len + 4 ];\n  if (!key) { return '' }\n\n  var parsedArgs = parseArgs.apply(void 0, values);\n  var locale = parsedArgs.locale || _locale;\n\n  var ret = this._translate(\n    messages, locale, this.fallbackLocale, key,\n    host, 'string', parsedArgs.params\n  );\n  if (this._isFallbackRoot(ret)) {\n    if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n      warn((\"Fall back to translate the keypath '\" + key + \"' with root locale.\"));\n    }\n    /* istanbul ignore if */\n    if (!this._root) { throw Error('unexpected error') }\n    return (ref = this._root).$t.apply(ref, [ key ].concat( values ))\n  } else {\n    ret = this._warnDefault(locale, key, ret, host, values, 'string');\n    if (this._postTranslation && ret !== null && ret !== undefined) {\n      ret = this._postTranslation(ret, key);\n    }\n    return ret\n  }\n};\n\nVueI18n.prototype.t = function t (key) {\n    var ref;\n\n    var values = [], len = arguments.length - 1;\n    while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n  return (ref = this)._t.apply(ref, [ key, this.locale, this._getMessages(), null ].concat( values ))\n};\n\nVueI18n.prototype._i = function _i (key, locale, messages, host, values) {\n  var ret =\n    this._translate(messages, locale, this.fallbackLocale, key, host, 'raw', values);\n  if (this._isFallbackRoot(ret)) {\n    if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n      warn((\"Fall back to interpolate the keypath '\" + key + \"' with root locale.\"));\n    }\n    if (!this._root) { throw Error('unexpected error') }\n    return this._root.$i18n.i(key, locale, values)\n  } else {\n    return this._warnDefault(locale, key, ret, host, [values], 'raw')\n  }\n};\n\nVueI18n.prototype.i = function i (key, locale, values) {\n  /* istanbul ignore if */\n  if (!key) { return '' }\n\n  if (!isString(locale)) {\n    locale = this.locale;\n  }\n\n  return this._i(key, locale, this._getMessages(), null, values)\n};\n\nVueI18n.prototype._tc = function _tc (\n  key,\n  _locale,\n  messages,\n  host,\n  choice\n) {\n    var ref;\n\n    var values = [], len = arguments.length - 5;\n    while ( len-- > 0 ) values[ len ] = arguments[ len + 5 ];\n  if (!key) { return '' }\n  if (choice === undefined) {\n    choice = 1;\n  }\n\n  var predefined = { 'count': choice, 'n': choice };\n  var parsedArgs = parseArgs.apply(void 0, values);\n  parsedArgs.params = Object.assign(predefined, parsedArgs.params);\n  values = parsedArgs.locale === null ? [parsedArgs.params] : [parsedArgs.locale, parsedArgs.params];\n  return this.fetchChoice((ref = this)._t.apply(ref, [ key, _locale, messages, host ].concat( values )), choice)\n};\n\nVueI18n.prototype.fetchChoice = function fetchChoice (message, choice) {\n  /* istanbul ignore if */\n  if (!message && !isString(message)) { return null }\n  var choices = message.split('|');\n\n  choice = this.getChoiceIndex(choice, choices.length);\n  if (!choices[choice]) { return message }\n  return choices[choice].trim()\n};\n\nVueI18n.prototype.tc = function tc (key, choice) {\n    var ref;\n\n    var values = [], len = arguments.length - 2;\n    while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n  return (ref = this)._tc.apply(ref, [ key, this.locale, this._getMessages(), null, choice ].concat( values ))\n};\n\nVueI18n.prototype._te = function _te (key, locale, messages) {\n    var args = [], len = arguments.length - 3;\n    while ( len-- > 0 ) args[ len ] = arguments[ len + 3 ];\n\n  var _locale = parseArgs.apply(void 0, args).locale || locale;\n  return this._exist(messages[_locale], key)\n};\n\nVueI18n.prototype.te = function te (key, locale) {\n  return this._te(key, this.locale, this._getMessages(), locale)\n};\n\nVueI18n.prototype.getLocaleMessage = function getLocaleMessage (locale) {\n  return looseClone(this._vm.messages[locale] || {})\n};\n\nVueI18n.prototype.setLocaleMessage = function setLocaleMessage (locale, message) {\n  if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n    this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n  }\n  this._vm.$set(this._vm.messages, locale, message);\n};\n\nVueI18n.prototype.mergeLocaleMessage = function mergeLocaleMessage (locale, message) {\n  if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n    this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n  }\n  this._vm.$set(this._vm.messages, locale, merge({}, this._vm.messages[locale] || {}, message));\n};\n\nVueI18n.prototype.getDateTimeFormat = function getDateTimeFormat (locale) {\n  return looseClone(this._vm.dateTimeFormats[locale] || {})\n};\n\nVueI18n.prototype.setDateTimeFormat = function setDateTimeFormat (locale, format) {\n  this._vm.$set(this._vm.dateTimeFormats, locale, format);\n  this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype.mergeDateTimeFormat = function mergeDateTimeFormat (locale, format) {\n  this._vm.$set(this._vm.dateTimeFormats, locale, merge(this._vm.dateTimeFormats[locale] || {}, format));\n  this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype._clearDateTimeFormat = function _clearDateTimeFormat (locale, format) {\n  for (var key in format) {\n    var id = locale + \"__\" + key;\n\n    if (!this._dateTimeFormatters.hasOwnProperty(id)) {\n      continue\n    }\n\n    delete this._dateTimeFormatters[id];\n  }\n};\n\nVueI18n.prototype._localizeDateTime = function _localizeDateTime (\n  value,\n  locale,\n  fallback,\n  dateTimeFormats,\n  key\n) {\n  var _locale = locale;\n  var formats = dateTimeFormats[_locale];\n\n  var chain = this._getLocaleChain(locale, fallback);\n  for (var i = 0; i < chain.length; i++) {\n    var current = _locale;\n    var step = chain[i];\n    formats = dateTimeFormats[step];\n    _locale = step;\n    // fallback locale\n    if (isNull(formats) || isNull(formats[key])) {\n      if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n        warn((\"Fall back to '\" + step + \"' datetime formats from '\" + current + \"' datetime formats.\"));\n      }\n    } else {\n      break\n    }\n  }\n\n  if (isNull(formats) || isNull(formats[key])) {\n    return null\n  } else {\n    var format = formats[key];\n    var id = _locale + \"__\" + key;\n    var formatter = this._dateTimeFormatters[id];\n    if (!formatter) {\n      formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);\n    }\n    return formatter.format(value)\n  }\n};\n\nVueI18n.prototype._d = function _d (value, locale, key) {\n  /* istanbul ignore if */\n  if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {\n    warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');\n    return ''\n  }\n\n  if (!key) {\n    return new Intl.DateTimeFormat(locale).format(value)\n  }\n\n  var ret =\n    this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);\n  if (this._isFallbackRoot(ret)) {\n    if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n      warn((\"Fall back to datetime localization of root: key '\" + key + \"'.\"));\n    }\n    /* istanbul ignore if */\n    if (!this._root) { throw Error('unexpected error') }\n    return this._root.$i18n.d(value, key, locale)\n  } else {\n    return ret || ''\n  }\n};\n\nVueI18n.prototype.d = function d (value) {\n    var args = [], len = arguments.length - 1;\n    while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n  var locale = this.locale;\n  var key = null;\n\n  if (args.length === 1) {\n    if (isString(args[0])) {\n      key = args[0];\n    } else if (isObject(args[0])) {\n      if (args[0].locale) {\n        locale = args[0].locale;\n      }\n      if (args[0].key) {\n        key = args[0].key;\n      }\n    }\n  } else if (args.length === 2) {\n    if (isString(args[0])) {\n      key = args[0];\n    }\n    if (isString(args[1])) {\n      locale = args[1];\n    }\n  }\n\n  return this._d(value, locale, key)\n};\n\nVueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {\n  return looseClone(this._vm.numberFormats[locale] || {})\n};\n\nVueI18n.prototype.setNumberFormat = function setNumberFormat (locale, format) {\n  this._vm.$set(this._vm.numberFormats, locale, format);\n  this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype.mergeNumberFormat = function mergeNumberFormat (locale, format) {\n  this._vm.$set(this._vm.numberFormats, locale, merge(this._vm.numberFormats[locale] || {}, format));\n  this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype._clearNumberFormat = function _clearNumberFormat (locale, format) {\n  for (var key in format) {\n    var id = locale + \"__\" + key;\n\n    if (!this._numberFormatters.hasOwnProperty(id)) {\n      continue\n    }\n\n    delete this._numberFormatters[id];\n  }\n};\n\nVueI18n.prototype._getNumberFormatter = function _getNumberFormatter (\n  value,\n  locale,\n  fallback,\n  numberFormats,\n  key,\n  options\n) {\n  var _locale = locale;\n  var formats = numberFormats[_locale];\n\n  var chain = this._getLocaleChain(locale, fallback);\n  for (var i = 0; i < chain.length; i++) {\n    var current = _locale;\n    var step = chain[i];\n    formats = numberFormats[step];\n    _locale = step;\n    // fallback locale\n    if (isNull(formats) || isNull(formats[key])) {\n      if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n        warn((\"Fall back to '\" + step + \"' number formats from '\" + current + \"' number formats.\"));\n      }\n    } else {\n      break\n    }\n  }\n\n  if (isNull(formats) || isNull(formats[key])) {\n    return null\n  } else {\n    var format = formats[key];\n\n    var formatter;\n    if (options) {\n      // If options specified - create one time number formatter\n      formatter = new Intl.NumberFormat(_locale, Object.assign({}, format, options));\n    } else {\n      var id = _locale + \"__\" + key;\n      formatter = this._numberFormatters[id];\n      if (!formatter) {\n        formatter = this._numberFormatters[id] = new Intl.NumberFormat(_locale, format);\n      }\n    }\n    return formatter\n  }\n};\n\nVueI18n.prototype._n = function _n (value, locale, key, options) {\n  /* istanbul ignore if */\n  if (!VueI18n.availabilities.numberFormat) {\n    if (process.env.NODE_ENV !== 'production') {\n      warn('Cannot format a Number value due to not supported Intl.NumberFormat.');\n    }\n    return ''\n  }\n\n  if (!key) {\n    var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n    return nf.format(value)\n  }\n\n  var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n  var ret = formatter && formatter.format(value);\n  if (this._isFallbackRoot(ret)) {\n    if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n      warn((\"Fall back to number localization of root: key '\" + key + \"'.\"));\n    }\n    /* istanbul ignore if */\n    if (!this._root) { throw Error('unexpected error') }\n    return this._root.$i18n.n(value, Object.assign({}, { key: key, locale: locale }, options))\n  } else {\n    return ret || ''\n  }\n};\n\nVueI18n.prototype.n = function n (value) {\n    var args = [], len = arguments.length - 1;\n    while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n  var locale = this.locale;\n  var key = null;\n  var options = null;\n\n  if (args.length === 1) {\n    if (isString(args[0])) {\n      key = args[0];\n    } else if (isObject(args[0])) {\n      if (args[0].locale) {\n        locale = args[0].locale;\n      }\n      if (args[0].key) {\n        key = args[0].key;\n      }\n\n      // Filter out number format options only\n      options = Object.keys(args[0]).reduce(function (acc, key) {\n          var obj;\n\n        if (includes(numberFormatKeys, key)) {\n          return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n        }\n        return acc\n      }, null);\n    }\n  } else if (args.length === 2) {\n    if (isString(args[0])) {\n      key = args[0];\n    }\n    if (isString(args[1])) {\n      locale = args[1];\n    }\n  }\n\n  return this._n(value, locale, key, options)\n};\n\nVueI18n.prototype._ntp = function _ntp (value, locale, key, options) {\n  /* istanbul ignore if */\n  if (!VueI18n.availabilities.numberFormat) {\n    if (process.env.NODE_ENV !== 'production') {\n      warn('Cannot format to parts a Number value due to not supported Intl.NumberFormat.');\n    }\n    return []\n  }\n\n  if (!key) {\n    var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n    return nf.formatToParts(value)\n  }\n\n  var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n  var ret = formatter && formatter.formatToParts(value);\n  if (this._isFallbackRoot(ret)) {\n    if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n      warn((\"Fall back to format number to parts of root: key '\" + key + \"' .\"));\n    }\n    /* istanbul ignore if */\n    if (!this._root) { throw Error('unexpected error') }\n    return this._root.$i18n._ntp(value, locale, key, options)\n  } else {\n    return ret || []\n  }\n};\n\nObject.defineProperties( VueI18n.prototype, prototypeAccessors );\n\nvar availabilities;\n// $FlowFixMe\nObject.defineProperty(VueI18n, 'availabilities', {\n  get: function get () {\n    if (!availabilities) {\n      var intlDefined = typeof Intl !== 'undefined';\n      availabilities = {\n        dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n        numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n      };\n    }\n\n    return availabilities\n  }\n});\n\nVueI18n.install = install;\nVueI18n.version = '8.20.0';\n\nexport default VueI18n;\n","import { render, staticRenderFns } from \"./CodeAce.vue?vue&type=template&id=37ad02ad&\"\nimport script from \"./CodeAce.vue?vue&type=script&lang=js&\"\nexport * from \"./CodeAce.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CodeAce.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('37ad02ad')) {\n      api.createRecord('37ad02ad', component.options)\n    } else {\n      api.reload('37ad02ad', component.options)\n    }\n    module.hot.accept(\"./CodeAce.vue?vue&type=template&id=37ad02ad&\", function () {\n      api.rerender('37ad02ad', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/editor/CodeAce.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./CodeMonaco.vue?vue&type=template&id=f5fd2472&\"\nimport script from \"./CodeMonaco.vue?vue&type=script&lang=js&\"\nexport * from \"./CodeMonaco.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CodeMonaco.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('f5fd2472')) {\n      api.createRecord('f5fd2472', component.options)\n    } else {\n      api.reload('f5fd2472', component.options)\n    }\n    module.hot.accept(\"./CodeMonaco.vue?vue&type=template&id=f5fd2472&\", function () {\n      api.rerender('f5fd2472', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/editor/CodeMonaco.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Editor.vue?vue&type=template&id=3a753434&\"\nimport script from \"./Editor.vue?vue&type=script&lang=js&\"\nexport * from \"./Editor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Editor.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('3a753434')) {\n      api.createRecord('3a753434', component.options)\n    } else {\n      api.reload('3a753434', component.options)\n    }\n    module.hot.accept(\"./Editor.vue?vue&type=template&id=3a753434&\", function () {\n      api.rerender('3a753434', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/editor/Editor.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./FullCodePreview.vue?vue&type=template&id=04a90f3a&\"\nimport script from \"./FullCodePreview.vue?vue&type=script&lang=js&\"\nexport * from \"./FullCodePreview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FullCodePreview.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('04a90f3a')) {\n      api.createRecord('04a90f3a', component.options)\n    } else {\n      api.reload('04a90f3a', component.options)\n    }\n    module.hot.accept(\"./FullCodePreview.vue?vue&type=template&id=04a90f3a&\", function () {\n      api.rerender('04a90f3a', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/editor/FullCodePreview.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Preview.vue?vue&type=template&id=66bf6e1f&\"\nimport script from \"./Preview.vue?vue&type=script&lang=js&\"\nexport * from \"./Preview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Preview.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('66bf6e1f')) {\n      api.createRecord('66bf6e1f', component.options)\n    } else {\n      api.reload('66bf6e1f', component.options)\n    }\n    module.hot.accept(\"./Preview.vue?vue&type=template&id=66bf6e1f&\", function () {\n      api.rerender('66bf6e1f', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/editor/Preview.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./View.vue?vue&type=template&id=3d6bc75e&\"\nimport script from \"./View.vue?vue&type=script&lang=js&\"\nexport * from \"./View.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('3d6bc75e')) {\n      api.createRecord('3d6bc75e', component.options)\n    } else {\n      api.reload('3d6bc75e', component.options)\n    }\n    module.hot.accept(\"./View.vue?vue&type=template&id=3d6bc75e&\", function () {\n      api.rerender('3d6bc75e', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/editor/View.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./ExampleCard.vue?vue&type=template&id=01229e96&\"\nimport script from \"./ExampleCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ExampleCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ExampleCard.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('01229e96')) {\n      api.createRecord('01229e96', component.options)\n    } else {\n      api.reload('01229e96', component.options)\n    }\n    module.hot.accept(\"./ExampleCard.vue?vue&type=template&id=01229e96&\", function () {\n      api.rerender('01229e96', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/explore/ExampleCard.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Explore.vue?vue&type=template&id=050c84ae&\"\nimport script from \"./Explore.vue?vue&type=script&lang=js&\"\nexport * from \"./Explore.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Explore.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/Users/lang/Develop/echarts-examples/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('050c84ae')) {\n      api.createRecord('050c84ae', component.options)\n    } else {\n      api.reload('050c84ae', component.options)\n    }\n    module.hot.accept(\"./Explore.vue?vue&type=template&id=050c84ae&\", function () {\n      api.rerender('050c84ae', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/explore/Explore.vue\"\nexport default component.exports","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeAce.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeAce.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeMonaco.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeMonaco.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Editor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Editor.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullCodePreview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullCodePreview.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Preview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Preview.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./View.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./View.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExampleCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExampleCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Explore.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Explore.vue?vue&type=script&lang=js&\"","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", {\n    directives: [\n      {\n        name: \"loading\",\n        rawName: \"v-loading\",\n        value: _vm.loading,\n        expression: \"loading\"\n      }\n    ],\n    staticClass: \"ace-editor-main\"\n  })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", {\n    directives: [\n      {\n        name: \"loading\",\n        rawName: \"v-loading\",\n        value: _vm.loading,\n        expression: \"loading\"\n      }\n    ],\n    staticClass: \"monaco-editor-main\"\n  })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    { attrs: { id: \"main-container\" } },\n    [\n      !_vm.shared.isMobile\n        ? _c(\n            \"div\",\n            {\n              style: { width: _vm.leftContainerSize + \"%\" },\n              attrs: { id: \"editor-left-container\" }\n            },\n            [\n              _c(\n                \"el-tabs\",\n                {\n                  attrs: { type: \"border-card\" },\n                  model: {\n                    value: _vm.currentTab,\n                    callback: function($$v) {\n                      _vm.currentTab = $$v\n                    },\n                    expression: \"currentTab\"\n                  }\n                },\n                [\n                  _c(\n                    \"el-tab-pane\",\n                    {\n                      attrs: {\n                        label: _vm.$t(\"editor.tabEditor\"),\n                        name: \"code-editor\"\n                      }\n                    },\n                    [\n                      _c(\n                        \"el-container\",\n                        [\n                          _c(\n                            \"el-header\",\n                            { attrs: { id: \"editor-control-panel\" } },\n                            [\n                              _c(\n                                \"div\",\n                                { attrs: { id: \"code-info\" } },\n                                [\n                                  _vm.shared.editorStatus.message\n                                    ? [\n                                        _c(\n                                          \"span\",\n                                          { staticClass: \"code-info-time\" },\n                                          [_vm._v(_vm._s(_vm.currentTime))]\n                                        ),\n                                        _vm._v(\" \"),\n                                        _c(\n                                          \"span\",\n                                          {\n                                            class:\n                                              \"code-info-type-\" +\n                                              _vm.shared.editorStatus.type\n                                          },\n                                          [\n                                            _vm._v(\n                                              _vm._s(\n                                                _vm.shared.editorStatus.message\n                                              )\n                                            )\n                                          ]\n                                        )\n                                      ]\n                                    : _vm._e()\n                                ],\n                                2\n                              ),\n                              _vm._v(\" \"),\n                              _c(\"div\", { staticClass: \"editor-controls\" }, [\n                                _c(\n                                  \"a\",\n                                  {\n                                    staticClass: \"btn btn-default btn-sm\",\n                                    attrs: { href: \"javascript:;\" },\n                                    on: { click: _vm.disposeAndRun }\n                                  },\n                                  [_vm._v(_vm._s(_vm.$t(\"editor.run\")))]\n                                )\n                              ])\n                            ]\n                          ),\n                          _vm._v(\" \"),\n                          _c(\n                            \"el-main\",\n                            [\n                              _vm.shared.typeCheck\n                                ? _c(\"CodeMonaco\", {\n                                    attrs: {\n                                      id: \"code-panel\",\n                                      initialCode: _vm.initialCode\n                                    }\n                                  })\n                                : _c(\"CodeAce\", {\n                                    attrs: {\n                                      id: \"code-panel\",\n                                      initialCode: _vm.initialCode\n                                    }\n                                  })\n                            ],\n                            1\n                          )\n                        ],\n                        1\n                      )\n                    ],\n                    1\n                  ),\n                  _vm._v(\" \"),\n                  _c(\n                    \"el-tab-pane\",\n                    {\n                      attrs: {\n                        label: _vm.$t(\"editor.tabFullCodePreview\"),\n                        name: \"full-code\",\n                        lazy: true\n                      }\n                    },\n                    [\n                      _c(\n                        \"el-container\",\n                        { staticStyle: { width: \"100%\", height: \"100%\" } },\n                        [\n                          _c(\n                            \"el-header\",\n                            { attrs: { id: \"full-code-generate-config\" } },\n                            [\n                              _c(\"span\", {\n                                staticClass: \"full-code-generate-config-label\"\n                              }),\n                              _vm._v(\" \"),\n                              _c(\"el-switch\", {\n                                staticClass: \"enable-decal\",\n                                attrs: {\n                                  \"active-text\": _vm.$t(\"editor.minimalBundle\"),\n                                  \"inactive-text\": \"\"\n                                },\n                                model: {\n                                  value: _vm.fullCodeConfig.minimal,\n                                  callback: function($$v) {\n                                    _vm.$set(_vm.fullCodeConfig, \"minimal\", $$v)\n                                  },\n                                  expression: \"fullCodeConfig.minimal\"\n                                }\n                              }),\n                              _vm._v(\" \"),\n                              _c(\"el-switch\", {\n                                staticClass: \"enable-decal\",\n                                attrs: {\n                                  \"active-text\": \"ES Modules\",\n                                  \"inactive-text\": \"\"\n                                },\n                                model: {\n                                  value: _vm.fullCodeConfig.esm,\n                                  callback: function($$v) {\n                                    _vm.$set(_vm.fullCodeConfig, \"esm\", $$v)\n                                  },\n                                  expression: \"fullCodeConfig.esm\"\n                                }\n                              })\n                            ],\n                            1\n                          ),\n                          _vm._v(\" \"),\n                          _c(\n                            \"el-main\",\n                            [\n                              _c(\"FullCodePreview\", {\n                                attrs: { code: _vm.fullCode }\n                              })\n                            ],\n                            1\n                          )\n                        ],\n                        1\n                      )\n                    ],\n                    1\n                  ),\n                  _vm._v(\" \"),\n                  _c(\n                    \"el-tab-pane\",\n                    {\n                      attrs: {\n                        label: _vm.$t(\"editor.tabOptionPreview\"),\n                        name: \"full-option\"\n                      }\n                    },\n                    [_c(\"div\", { attrs: { id: \"option-outline\" } })]\n                  )\n                ],\n                1\n              )\n            ],\n            1\n          )\n        : _vm._e(),\n      _vm._v(\" \"),\n      !_vm.shared.isMobile\n        ? _c(\"div\", {\n            staticClass: \"handler\",\n            style: { left: _vm.leftContainerSize + \"%\" },\n            attrs: { id: \"h-handler\" },\n            on: { mousedown: _vm.onSplitterDragStart }\n          })\n        : _vm._e(),\n      _vm._v(\" \"),\n      _c(\"Preview\", {\n        ref: \"preview\",\n        staticClass: \"right-container\",\n        style: {\n          width: 100 - _vm.leftContainerSize + \"%\",\n          left: _vm.leftContainerSize + \"%\"\n        },\n        attrs: { inEditor: true }\n      })\n    ],\n    1\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", {\n    directives: [\n      {\n        name: \"loading\",\n        rawName: \"v-loading\",\n        value: _vm.loading,\n        expression: \"loading\"\n      }\n    ],\n    staticClass: \"full-code-preview\"\n  })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    { class: [_vm.inEditor && !_vm.shared.isMobile ? \"\" : \"full\"] },\n    [\n      _c(\n        \"div\",\n        {\n          directives: [\n            {\n              name: \"loading\",\n              rawName: \"v-loading\",\n              value: _vm.loading,\n              expression: \"loading\"\n            }\n          ],\n          staticClass: \"right-panel\",\n          style: { background: _vm.backgroundColor },\n          attrs: { id: \"chart-panel\" }\n        },\n        [_c(\"div\", { staticClass: \"chart-container\" })]\n      ),\n      _vm._v(\" \"),\n      _c(\n        \"div\",\n        { attrs: { id: \"tool-panel\" } },\n        [\n          _c(\n            \"div\",\n            { staticClass: \"left-panel\" },\n            [\n              _c(\"el-switch\", {\n                staticClass: \"dark-mode\",\n                attrs: {\n                  \"active-color\": \"#181432\",\n                  \"active-text\": _vm.$t(\"editor.darkMode\"),\n                  \"inactive-text\": \"\"\n                },\n                model: {\n                  value: _vm.shared.darkMode,\n                  callback: function($$v) {\n                    _vm.$set(_vm.shared, \"darkMode\", $$v)\n                  },\n                  expression: \"shared.darkMode\"\n                }\n              }),\n              _vm._v(\" \"),\n              !_vm.isGL\n                ? _c(\"el-switch\", {\n                    staticClass: \"enable-decal\",\n                    attrs: {\n                      \"active-text\": _vm.$t(\"editor.enableDecal\"),\n                      \"inactive-text\": \"\"\n                    },\n                    model: {\n                      value: _vm.shared.enableDecal,\n                      callback: function($$v) {\n                        _vm.$set(_vm.shared, \"enableDecal\", $$v)\n                      },\n                      expression: \"shared.enableDecal\"\n                    }\n                  })\n                : _vm._e(),\n              _vm._v(\" \"),\n              !_vm.isGL\n                ? _c(\n                    \"el-popover\",\n                    {\n                      staticStyle: { \"margin-top\": \"3px\" },\n                      attrs: {\n                        placement: \"bottom\",\n                        width: \"450\",\n                        trigger: \"click\"\n                      }\n                    },\n                    [\n                      _c(\n                        \"div\",\n                        { staticClass: \"render-config-container\" },\n                        [\n                          _c(\n                            \"el-row\",\n                            {\n                              attrs: {\n                                gutter: 2,\n                                type: \"flex\",\n                                align: \"middle\"\n                              }\n                            },\n                            [\n                              _c(\n                                \"el-col\",\n                                { attrs: { span: 12 } },\n                                [\n                                  _c(\"label\", { staticClass: \"tool-label\" }, [\n                                    _vm._v(_vm._s(_vm.$t(\"editor.renderer\")))\n                                  ]),\n                                  _vm._v(\" \"),\n                                  _c(\n                                    \"el-radio-group\",\n                                    {\n                                      staticStyle: {\n                                        \"text-transform\": \"uppercase\"\n                                      },\n                                      attrs: { size: \"mini\" },\n                                      model: {\n                                        value: _vm.shared.renderer,\n                                        callback: function($$v) {\n                                          _vm.$set(_vm.shared, \"renderer\", $$v)\n                                        },\n                                        expression: \"shared.renderer\"\n                                      }\n                                    },\n                                    [\n                                      _c(\"el-radio-button\", {\n                                        attrs: { label: \"svg\" }\n                                      }),\n                                      _vm._v(\" \"),\n                                      _c(\"el-radio-button\", {\n                                        attrs: { label: \"canvas\" }\n                                      })\n                                    ],\n                                    1\n                                  )\n                                ],\n                                1\n                              ),\n                              _vm._v(\" \"),\n                              _c(\n                                \"el-col\",\n                                { attrs: { span: 12 } },\n                                [\n                                  _vm.shared.renderer === \"canvas\"\n                                    ? _c(\"el-switch\", {\n                                        attrs: {\n                                          \"active-text\": _vm.$t(\n                                            \"editor.useDirtyRect\"\n                                          ),\n                                          \"inactive-text\": \"\"\n                                        },\n                                        model: {\n                                          value: _vm.shared.useDirtyRect,\n                                          callback: function($$v) {\n                                            _vm.$set(\n                                              _vm.shared,\n                                              \"useDirtyRect\",\n                                              $$v\n                                            )\n                                          },\n                                          expression: \"shared.useDirtyRect\"\n                                        }\n                                      })\n                                    : _vm._e()\n                                ],\n                                1\n                              )\n                            ],\n                            1\n                          )\n                        ],\n                        1\n                      ),\n                      _vm._v(\" \"),\n                      _c(\n                        \"span\",\n                        {\n                          staticClass: \"render-config-trigger\",\n                          attrs: { slot: \"reference\" },\n                          slot: \"reference\"\n                        },\n                        [\n                          _c(\"i\", {\n                            staticClass: \"el-icon-setting el-icon--left\"\n                          }),\n                          _vm._v(_vm._s(_vm.$t(\"editor.renderCfgTitle\")))\n                        ]\n                      )\n                    ]\n                  )\n                : _vm._e()\n            ],\n            1\n          ),\n          _vm._v(\" \"),\n          _vm.inEditor\n            ? [\n                !_vm.shared.isMobile\n                  ? _c(\n                      \"button\",\n                      {\n                        staticClass: \"download btn btn-sm\",\n                        on: { click: _vm.downloadExample }\n                      },\n                      [_vm._v(_vm._s(_vm.$t(\"editor.download\")))]\n                    )\n                  : _vm._e(),\n                _vm._v(\" \"),\n                _c(\n                  \"a\",\n                  {\n                    staticClass: \"screenshot\",\n                    attrs: { target: \"_blank\" },\n                    on: { click: _vm.screenshot }\n                  },\n                  [_c(\"i\", { staticClass: \"el-icon-camera-solid\" })]\n                )\n              ]\n            : _c(\n                \"a\",\n                {\n                  staticClass: \"edit btn btn-sm\",\n                  attrs: { href: _vm.editLink, target: \"_blank\" }\n                },\n                [_vm._v(_vm._s(_vm.$t(\"editor.edit\")))]\n              )\n        ],\n        2\n      )\n    ]\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"preview\")\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", { staticClass: \"example-list-item\" }, [\n    _c(\n      \"a\",\n      {\n        staticClass: \"example-link\",\n        attrs: { target: \"_blank\", href: _vm.exampleLink }\n      },\n      [\n        _c(\"img\", {\n          staticClass: \"chart-area\",\n          attrs: {\n            src: require(\"../asset/placeholder.jpg\"),\n            \"data-src\": _vm.screenshotURL\n          }\n        }),\n        _vm._v(\" \"),\n        _c(\"h4\", { staticClass: \"example-title\" }, [_vm._v(_vm._s(_vm.title))]),\n        _vm._v(\" \"),\n        _vm.showSubtitle\n          ? _c(\"h5\", { staticClass: \"example-subtitle\" }, [\n              _vm._v(_vm._s(_vm.subtitle))\n            ])\n          : _vm._e()\n      ]\n    )\n  ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", { attrs: { id: \"example-explore\" } }, [\n    _c(\"div\", { attrs: { id: \"left-container\" } }, [\n      _c(\n        \"div\",\n        { attrs: { id: \"left-chart-nav\" } },\n        [\n          _c(\n            \"scrollactive\",\n            {\n              attrs: {\n                \"active-class\": \"active\",\n                offset: 80,\n                duration: 500,\n                \"scroll-container-selector\": \"#example-explore\",\n                \"bezier-easing-value\": \".5,0,.35,1\"\n              },\n              on: { itemchanged: _vm.onActiveNavChanged }\n            },\n            [\n              _c(\n                \"ul\",\n                _vm._l(_vm.EXAMPLE_CATEGORIES, function(category) {\n                  return _c(\"li\", { key: category }, [\n                    _c(\n                      \"a\",\n                      {\n                        staticClass: \"left-chart-nav-link scrollactive-item\",\n                        attrs: {\n                          id: \"left-chart-nav-\" + category,\n                          href: \"#chart-type-\" + category\n                        }\n                      },\n                      [\n                        _c(\"span\", {\n                          staticClass: \"chart-icon\",\n                          domProps: { innerHTML: _vm._s(_vm.icons[category]) }\n                        }),\n                        _vm._v(\" \"),\n                        _c(\"span\", { staticClass: \"chart-name\" }, [\n                          _vm._v(_vm._s(_vm.$t(\"chartTypes.\" + category)))\n                        ])\n                      ]\n                    )\n                  ])\n                }),\n                0\n              )\n            ]\n          )\n        ],\n        1\n      )\n    ]),\n    _vm._v(\" \"),\n    _c(\"div\", { attrs: { id: \"explore-container\" } }, [\n      _c(\n        \"div\",\n        { staticClass: \"example-list-panel\" },\n        _vm._l(_vm.exampleList, function(categoryObj) {\n          return _c(\"div\", { key: categoryObj.category }, [\n            _c(\n              \"h3\",\n              {\n                staticClass: \"chart-type-head\",\n                attrs: { id: \"chart-type-\" + categoryObj.category }\n              },\n              [\n                _vm._v(\n                  \"\\n                    \" +\n                    _vm._s(_vm.$t(\"chartTypes.\" + categoryObj.category)) +\n                    \"\\n                    \"\n                ),\n                _c(\"span\", [_vm._v(_vm._s(categoryObj.category))])\n              ]\n            ),\n            _vm._v(\" \"),\n            _c(\n              \"div\",\n              {\n                staticClass: \"row\",\n                attrs: { id: \"chart-row-\" + categoryObj.category }\n              },\n              _vm._l(categoryObj.examples, function(exampleItem) {\n                return _c(\n                  \"div\",\n                  {\n                    key: exampleItem.id,\n                    staticClass: \"col-xl-2 col-lg-3 col-md-4 col-sm-6\"\n                  },\n                  [_c(\"ExampleCard\", { attrs: { example: exampleItem } })],\n                  1\n                )\n              }),\n              0\n            )\n          ])\n        }),\n        0\n      )\n    ]),\n    _vm._v(\" \"),\n    _c(\n      \"div\",\n      { attrs: { id: \"toolbar\" } },\n      [\n        _c(\"el-switch\", {\n          attrs: {\n            \"active-color\": \"#181432\",\n            \"active-text\": _vm.$t(\"editor.darkMode\"),\n            \"inactive-text\": \"\"\n          },\n          model: {\n            value: _vm.shared.darkMode,\n            callback: function($$v) {\n              _vm.$set(_vm.shared, \"darkMode\", $$v)\n            },\n            expression: \"shared.darkMode\"\n          }\n        })\n      ],\n      1\n    )\n  ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier, /* server only */\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () {\n        injectStyles.call(\n          this,\n          (options.functional ? this.parent : this).$root.$options.shadowRoot\n        )\n      }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functional component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n","!(function (t, e) {\n  'object' == typeof exports && 'object' == typeof module\n    ? (module.exports = e())\n    : 'function' == typeof define && define.amd\n    ? define([], e)\n    : 'object' == typeof exports\n    ? (exports['vue-scrollactive'] = e())\n    : (t.vueScrollactive = e());\n})('undefined' != typeof self ? self : this, function () {\n  return (function (t) {\n    var e = {};\n    function r(n) {\n      if (e[n]) return e[n].exports;\n      var o = (e[n] = { i: n, l: !1, exports: {} });\n      return t[n].call(o.exports, o, o.exports, r), (o.l = !0), o.exports;\n    }\n    return (\n      (r.m = t),\n      (r.c = e),\n      (r.d = function (t, e, n) {\n        r.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n });\n      }),\n      (r.r = function (t) {\n        'undefined' != typeof Symbol &&\n          Symbol.toStringTag &&\n          Object.defineProperty(t, Symbol.toStringTag, { value: 'Module' }),\n          Object.defineProperty(t, '__esModule', { value: !0 });\n      }),\n      (r.t = function (t, e) {\n        if ((1 & e && (t = r(t)), 8 & e)) return t;\n        if (4 & e && 'object' == typeof t && t && t.__esModule) return t;\n        var n = Object.create(null);\n        if (\n          (r.r(n),\n          Object.defineProperty(n, 'default', { enumerable: !0, value: t }),\n          2 & e && 'string' != typeof t)\n        )\n          for (var o in t)\n            r.d(\n              n,\n              o,\n              function (e) {\n                return t[e];\n              }.bind(null, o)\n            );\n        return n;\n      }),\n      (r.n = function (t) {\n        var e =\n          t && t.__esModule\n            ? function () {\n                return t.default;\n              }\n            : function () {\n                return t;\n              };\n        return r.d(e, 'a', e), e;\n      }),\n      (r.o = function (t, e) {\n        return Object.prototype.hasOwnProperty.call(t, e);\n      }),\n      (r.p = '/dist/'),\n      r((r.s = 1))\n    );\n  })([\n    function (t, e) {\n      var r = 'function' == typeof Float32Array;\n      function n(t, e) {\n        return 1 - 3 * e + 3 * t;\n      }\n      function o(t, e) {\n        return 3 * e - 6 * t;\n      }\n      function i(t) {\n        return 3 * t;\n      }\n      function s(t, e, r) {\n        return ((n(e, r) * t + o(e, r)) * t + i(e)) * t;\n      }\n      function l(t, e, r) {\n        return 3 * n(e, r) * t * t + 2 * o(e, r) * t + i(e);\n      }\n      function a(t) {\n        return t;\n      }\n      t.exports = function (t, e, n, o) {\n        if (!(0 <= t && t <= 1 && 0 <= n && n <= 1))\n          throw new Error('bezier x values must be in [0, 1] range');\n        if (t === e && n === o) return a;\n        for (var i = r ? new Float32Array(11) : new Array(11), c = 0; c < 11; ++c)\n          i[c] = s(0.1 * c, t, n);\n        function u(e) {\n          for (var r = 0, o = 1; 10 !== o && i[o] <= e; ++o) r += 0.1;\n          --o;\n          var a = r + 0.1 * ((e - i[o]) / (i[o + 1] - i[o])),\n            c = l(a, t, n);\n          return c >= 0.001\n            ? (function (t, e, r, n) {\n                for (var o = 0; o < 4; ++o) {\n                  var i = l(e, r, n);\n                  if (0 === i) return e;\n                  e -= (s(e, r, n) - t) / i;\n                }\n                return e;\n              })(e, a, t, n)\n            : 0 === c\n            ? a\n            : (function (t, e, r, n, o) {\n                var i,\n                  l,\n                  a = 0;\n                do {\n                  (i = s((l = e + (r - e) / 2), n, o) - t) > 0 ? (r = l) : (e = l);\n                } while (Math.abs(i) > 1e-7 && ++a < 10);\n                return l;\n              })(e, r, r + 0.1, t, n);\n        }\n        return function (t) {\n          return 0 === t ? 0 : 1 === t ? 1 : s(u(t), e, o);\n        };\n      };\n    },\n    function (t, e, r) {\n      'use strict';\n      r.r(e);\n      var n = function () {\n        var t = this.$createElement;\n        return (this._self._c || t)(\n          this.tag,\n          { ref: 'scrollactive-nav-wrapper', tag: 'component', staticClass: 'scrollactive-nav' },\n          [this._t('default')],\n          2\n        );\n      };\n      n._withStripped = !0;\n      var o = r(0),\n        i = r.n(o);\n      function s(t) {\n        return (\n          (function (t) {\n            if (Array.isArray(t)) return l(t);\n          })(t) ||\n          (function (t) {\n            if ('undefined' != typeof Symbol && Symbol.iterator in Object(t)) return Array.from(t);\n          })(t) ||\n          (function (t, e) {\n            if (!t) return;\n            if ('string' == typeof t) return l(t, e);\n            var r = Object.prototype.toString.call(t).slice(8, -1);\n            'Object' === r && t.constructor && (r = t.constructor.name);\n            if ('Map' === r || 'Set' === r) return Array.from(t);\n            if ('Arguments' === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))\n              return l(t, e);\n          })(t) ||\n          (function () {\n            throw new TypeError(\n              'Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'\n            );\n          })()\n        );\n      }\n      function l(t, e) {\n        (null == e || e > t.length) && (e = t.length);\n        for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r];\n        return n;\n      }\n      var a = (function (t, e, r, n, o, i, s, l) {\n        var a,\n          c = 'function' == typeof t ? t.options : t;\n        if (\n          (e && ((c.render = e), (c.staticRenderFns = r), (c._compiled = !0)),\n          n && (c.functional = !0),\n          i && (c._scopeId = 'data-v-' + i),\n          s\n            ? ((a = function (t) {\n                (t =\n                  t ||\n                  (this.$vnode && this.$vnode.ssrContext) ||\n                  (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext)) ||\n                  'undefined' == typeof __VUE_SSR_CONTEXT__ ||\n                  (t = __VUE_SSR_CONTEXT__),\n                  o && o.call(this, t),\n                  t && t._registeredComponents && t._registeredComponents.add(s);\n              }),\n              (c._ssrRegister = a))\n            : o &&\n              (a = l\n                ? function () {\n                    o.call(this, (c.functional ? this.parent : this).$root.$options.shadowRoot);\n                  }\n                : o),\n          a)\n        )\n          if (c.functional) {\n            c._injectStyles = a;\n            var u = c.render;\n            c.render = function (t, e) {\n              return a.call(e), u(t, e);\n            };\n          } else {\n            var f = c.beforeCreate;\n            c.beforeCreate = f ? [].concat(f, a) : [a];\n          }\n        return { exports: t, options: c };\n      })(\n        {\n          props: {\n            activeClass: { type: String, default: 'is-active' },\n            offset: { type: Number, default: 20 },\n            scrollOffset: { type: Number, default: null },\n            scrollContainerSelector: { type: String, default: '' },\n            clickToScroll: { type: Boolean, default: !0 },\n            duration: { type: Number, default: 600 },\n            alwaysTrack: { type: Boolean, default: !1 },\n            bezierEasingValue: { type: String, default: '.5,0,.35,1' },\n            modifyUrl: { type: Boolean, default: !0 },\n            exact: { type: Boolean, default: !1 },\n            highlightFirstItem: { type: Boolean, default: !1 },\n            tag: { type: String, default: 'nav' },\n            scrollOnStart: { type: Boolean, default: !0 },\n          },\n          data: function () {\n            return {\n              observer: null,\n              items: [],\n              currentItem: null,\n              lastActiveItem: null,\n              scrollAnimationFrame: null,\n              bezierEasing: i.a,\n            };\n          },\n          computed: {\n            cubicBezierArray: function () {\n              return this.bezierEasingValue.split(',');\n            },\n            scrollContainer: function () {\n              var t = window;\n              return (\n                this.scrollContainerSelector &&\n                  (t = document.querySelector(this.scrollContainerSelector) || window),\n                t\n              );\n            },\n          },\n          mounted: function () {\n            var t = window.MutationObserver || window.WebKitMutationObserver;\n            this.observer ||\n              ((this.observer = new t(this.initScrollactiveItems)),\n              this.observer.observe(this.$refs['scrollactive-nav-wrapper'], {\n                childList: !0,\n                subtree: !0,\n              })),\n              this.initScrollactiveItems(),\n              this.removeActiveClass(),\n              (this.currentItem = this.getItemInsideWindow()),\n              this.currentItem && this.currentItem.classList.add(this.activeClass),\n              this.scrollOnStart && this.scrollToHashElement(),\n              this.scrollContainer.addEventListener('scroll', this.onScroll);\n          },\n          updated: function () {\n            this.initScrollactiveItems();\n          },\n          beforeDestroy: function () {\n            this.scrollContainer.removeEventListener('scroll', this.onScroll),\n              window.cancelAnimationFrame(this.scrollAnimationFrame);\n          },\n          methods: {\n            onScroll: function (t) {\n              (this.currentItem = this.getItemInsideWindow()),\n                this.currentItem !== this.lastActiveItem &&\n                  (this.removeActiveClass(),\n                  this.$emit('itemchanged', t, this.currentItem, this.lastActiveItem),\n                  (this.lastActiveItem = this.currentItem)),\n                this.currentItem && this.currentItem.classList.add(this.activeClass);\n            },\n            getItemInsideWindow: function () {\n              var t,\n                e = this;\n              return (\n                [].forEach.call(this.items, function (r) {\n                  var n = r === e.items[0],\n                    o = document.getElementById(decodeURI(r.hash.substr(1)));\n                  if (o) {\n                    var i = e.scrollContainer.scrollTop || window.pageYOffset,\n                      s = i >= e.getOffsetTop(o) - e.offset,\n                      l = i < e.getOffsetTop(o) - e.offset + o.offsetHeight;\n                    n && e.highlightFirstItem && l && (t = r),\n                      e.exact && s && l && (t = r),\n                      !e.exact && s && (t = r);\n                  }\n                }),\n                t\n              );\n            },\n            initScrollactiveItems: function () {\n              var t = this;\n              (this.items = this.$el.querySelectorAll('.scrollactive-item')),\n                this.clickToScroll\n                  ? [].forEach.call(this.items, function (e) {\n                      e.addEventListener('click', t.handleClick);\n                    })\n                  : [].forEach.call(this.items, function (e) {\n                      e.removeEventListener('click', t.handleClick);\n                    });\n            },\n            setScrollactiveItems: function () {\n              this.initScrollactiveItems();\n            },\n            handleClick: function (t) {\n              var e = this;\n              t.preventDefault();\n              var r = t.currentTarget.hash,\n                n = document.getElementById(decodeURI(r.substr(1)));\n              n\n                ? (this.alwaysTrack ||\n                    (this.scrollContainer.removeEventListener('scroll', this.onScroll),\n                    window.cancelAnimationFrame(this.scrollAnimationFrame),\n                    this.removeActiveClass(),\n                    t.currentTarget.classList.add(this.activeClass)),\n                  this.scrollTo(n).then(function () {\n                    if (!e.alwaysTrack) {\n                      e.scrollContainer.addEventListener('scroll', e.onScroll);\n                      (e.currentItem = [].find.call(e.items, function (t) {\n                        return decodeURI(t.hash.substr(1)) === n.id;\n                      })),\n                        e.currentItem !== e.lastActiveItem &&\n                          (e.$emit('itemchanged', null, e.currentItem, e.lastActiveItem),\n                          (e.lastActiveItem = e.currentItem));\n                    }\n                    e.modifyUrl && e.pushHashToUrl(r);\n                  }))\n                : console.warn(\n                    \"[vue-scrollactive] Element '\".concat(\n                      r,\n                      \"' was not found. Make sure it is set in the DOM.\"\n                    )\n                  );\n            },\n            scrollTo: function (t) {\n              var e = this;\n              return new Promise(function (r) {\n                var n = e.getOffsetTop(t),\n                  o = e.scrollContainer.scrollTop || window.pageYOffset,\n                  i = n - o,\n                  l = e.bezierEasing.apply(e, s(e.cubicBezierArray)),\n                  a = null;\n                window.requestAnimationFrame(function t(n) {\n                  a || (a = n);\n                  var s = n - a,\n                    c = s / e.duration;\n                  s >= e.duration && (s = e.duration), c >= 1 && (c = 1);\n                  var u = e.scrollOffset || e.offset,\n                    f = o + l(c) * (i - u);\n                  e.scrollContainer.scrollTo(0, f),\n                    s < e.duration\n                      ? (e.scrollAnimationFrame = window.requestAnimationFrame(t))\n                      : r();\n                });\n              });\n            },\n            getOffsetTop: function (t) {\n              for (var e = 0, r = t; r; ) (e += r.offsetTop), (r = r.offsetParent);\n              return this.scrollContainer.offsetTop && (e -= this.scrollContainer.offsetTop), e;\n            },\n            removeActiveClass: function () {\n              var t = this;\n              [].forEach.call(this.items, function (e) {\n                e.classList.remove(t.activeClass);\n              });\n            },\n            scrollToHashElement: function () {\n              var t = this,\n                e = window.location.hash;\n              if (e) {\n                var r = document.querySelector(decodeURI(e));\n                r &&\n                  ((window.location.hash = ''),\n                  setTimeout(function () {\n                    var n = r.offsetTop - t.offset;\n                    t.scrollContainer.scrollTo(0, n), t.pushHashToUrl(e);\n                  }, 0));\n              }\n            },\n            pushHashToUrl: function (t) {\n              window.history.pushState\n                ? window.history.pushState(null, null, t)\n                : (window.location.hash = t);\n            },\n          },\n        },\n        n,\n        [],\n        !1,\n        null,\n        null,\n        null\n      );\n      a.options.__file = 'src/scrollactive.vue';\n      var c = a.exports,\n        u = {\n          install: function (t) {\n            u.install.installed || t.component('scrollactive', c);\n          },\n        };\n      'undefined' != typeof window && window.Vue && u.install(window.Vue);\n      e.default = u;\n    },\n  ]);\n});\n","var map = {\n\t\"./bar.svg\": \"./src/asset/icon/bar.svg\",\n\t\"./boxplot.svg\": \"./src/asset/icon/boxplot.svg\",\n\t\"./calendar.svg\": \"./src/asset/icon/calendar.svg\",\n\t\"./candlestick.svg\": \"./src/asset/icon/candlestick.svg\",\n\t\"./custom.svg\": \"./src/asset/icon/custom.svg\",\n\t\"./dataZoom.svg\": \"./src/asset/icon/dataZoom.svg\",\n\t\"./dataset.svg\": \"./src/asset/icon/dataset.svg\",\n\t\"./drag.svg\": \"./src/asset/icon/drag.svg\",\n\t\"./funnel.svg\": \"./src/asset/icon/funnel.svg\",\n\t\"./gauge.svg\": \"./src/asset/icon/gauge.svg\",\n\t\"./geo.svg\": \"./src/asset/icon/geo.svg\",\n\t\"./gl.svg\": \"./src/asset/icon/gl.svg\",\n\t\"./graph.svg\": \"./src/asset/icon/graph.svg\",\n\t\"./heatmap.svg\": \"./src/asset/icon/heatmap.svg\",\n\t\"./line.svg\": \"./src/asset/icon/line.svg\",\n\t\"./lines.svg\": \"./src/asset/icon/lines.svg\",\n\t\"./map.svg\": \"./src/asset/icon/map.svg\",\n\t\"./parallel.svg\": \"./src/asset/icon/parallel.svg\",\n\t\"./pictorialBar.svg\": \"./src/asset/icon/pictorialBar.svg\",\n\t\"./pie.svg\": \"./src/asset/icon/pie.svg\",\n\t\"./radar.svg\": \"./src/asset/icon/radar.svg\",\n\t\"./rich.svg\": \"./src/asset/icon/rich.svg\",\n\t\"./sankey.svg\": \"./src/asset/icon/sankey.svg\",\n\t\"./scatter.svg\": \"./src/asset/icon/scatter.svg\",\n\t\"./sunburst.svg\": \"./src/asset/icon/sunburst.svg\",\n\t\"./themeRiver.svg\": \"./src/asset/icon/themeRiver.svg\",\n\t\"./tree.svg\": \"./src/asset/icon/tree.svg\",\n\t\"./treemap.svg\": \"./src/asset/icon/treemap.svg\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./src/asset/icon sync recursive ^\\\\.\\\\/.*\\\\.svg$\";","module.exports = Vue;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => module['default'] :\n\t\t() => module;\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"./\";","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(\"./src/main.js\");\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/examples/zh/editor.html b/examples/zh/editor.html
index 1baa9d0..1d410f1 100644
--- a/examples/zh/editor.html
+++ b/examples/zh/editor.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -10,12 +10,12 @@
     /* position: sticky should not have overflow parents.*/
     overflow-x: hidden;
 }</style><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/theme-chalk/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/examples/css/example-bundle.css?_v_=4e03a5649f"><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
-<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav id="ec-example-nav" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div id="ec-example-main"></div><div id="v4-link" class="alert alert-info alert-dismissible"><a href="https://echarts.apache.org/v4/examples/">旧版本示例</a><button type="button" data-dismiss="alert" aria-label="Close" class="close"><span aria-hidden="true">&times;</span></button></div></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/examples/js/example-bundle.js?_v_=5e71298117"></script><script type="text/javascript">document.getElementById('nav-examples').className = 'active';
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav id="ec-example-nav" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div id="ec-example-main"></div><div id="v4-link" class="alert alert-info alert-dismissible"><a href="https://echarts.apache.org/v4/examples/">旧版本示例</a><button type="button" data-dismiss="alert" aria-label="Close" class="close"><span aria-hidden="true">&times;</span></button></div></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/examples/js/example-bundle.js?_v_=3020d4307e"></script><script type="text/javascript">document.getElementById('nav-examples').className = 'active';
 window.EC_WWW_CDN_PAY_ROOT = 'https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site';
 </script><script type="text/javascript">window.globalArgsExtra = {
     page: 'editor',
     locale: 'zh'
-};</script><script type="text/javascript">window.globalArgsExtra.version = '1620894510041';
+};</script><script type="text/javascript">window.globalArgsExtra.version = '1623211036275';
 window.globalArgsExtra.cdnRoot = EC_WWW_CDN_PAY_ROOT + '/examples';
 echartsExample.init('#ec-example-main', window.globalArgsExtra);</script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
diff --git a/examples/zh/index.html b/examples/zh/index.html
index dcfa59e..60e02c5 100644
--- a/examples/zh/index.html
+++ b/examples/zh/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -10,12 +10,12 @@
     /* position: sticky should not have overflow parents.*/
     overflow-x: hidden;
 }</style><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/theme-chalk/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/examples/css/example-bundle.css?_v_=4e03a5649f"><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
-<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav id="ec-example-nav" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div id="ec-example-main"></div><div id="v4-link" class="alert alert-info alert-dismissible"><a href="https://echarts.apache.org/v4/examples/">旧版本示例</a><button type="button" data-dismiss="alert" aria-label="Close" class="close"><span aria-hidden="true">&times;</span></button></div></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/examples/js/example-bundle.js?_v_=5e71298117"></script><script type="text/javascript">document.getElementById('nav-examples').className = 'active';
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav id="ec-example-nav" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div id="ec-example-main"></div><div id="v4-link" class="alert alert-info alert-dismissible"><a href="https://echarts.apache.org/v4/examples/">旧版本示例</a><button type="button" data-dismiss="alert" aria-label="Close" class="close"><span aria-hidden="true">&times;</span></button></div></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/examples/js/example-bundle.js?_v_=3020d4307e"></script><script type="text/javascript">document.getElementById('nav-examples').className = 'active';
 window.EC_WWW_CDN_PAY_ROOT = 'https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site';
 </script><script type="text/javascript">window.globalArgsExtra = {
     page: 'explore',
     locale: 'zh'
-};</script><script type="text/javascript">window.globalArgsExtra.version = '1620894510041';
+};</script><script type="text/javascript">window.globalArgsExtra.version = '1623211036275';
 window.globalArgsExtra.cdnRoot = EC_WWW_CDN_PAY_ROOT + '/examples';
 echartsExample.init('#ec-example-main', window.globalArgsExtra);</script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
diff --git a/examples/zh/view.html b/examples/zh/view.html
index 9657de4..9155b93 100644
--- a/examples/zh/view.html
+++ b/examples/zh/view.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -10,11 +10,11 @@
     /* position: sticky should not have overflow parents.*/
     overflow-x: hidden;
 }</style><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/theme-chalk/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/examples/css/example-bundle.css?_v_=4e03a5649f"><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
-<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><div id="ec-example-main"></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/examples/js/example-bundle.js?_v_=5e71298117"></script><script type="text/javascript">window.EC_WWW_CDN_PAY_ROOT = 'https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site';
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><div id="ec-example-main"></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/examples/js/example-bundle.js?_v_=3020d4307e"></script><script type="text/javascript">window.EC_WWW_CDN_PAY_ROOT = 'https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site';
 </script><script type="text/javascript">window.globalArgsExtra = {
     page: 'view',
     locale: 'zh'
-};</script><script type="text/javascript">window.globalArgsExtra.version = '1620894510041';
+};</script><script type="text/javascript">window.globalArgsExtra.version = '1623211036275';
 window.globalArgsExtra.cdnRoot = EC_WWW_CDN_PAY_ROOT + '/examples';
 echartsExample.init('#ec-example-main', window.globalArgsExtra);
 
diff --git a/faq.html b/faq.html
index 7f25fd8..012908c 100644
--- a/faq.html
+++ b/faq.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/faq.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/faq.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/feature.html b/feature.html
index f93fb91..42f0e67 100644
--- a/feature.html
+++ b/feature.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/feature.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/feature.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/index.html b/index.html
index e23658b..006af98 100644
--- a/index.html
+++ b/index.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/index.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/index.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/layouts/basic.html b/layouts/basic.html
index bc643bc..b1d5855 100644
--- a/layouts/basic.html
+++ b/layouts/basic.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/layouts/doc-old.html b/layouts/doc-old.html
index f820e0d..8f5eaef 100644
--- a/layouts/doc-old.html
+++ b/layouts/doc-old.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/layouts/doc.html b/layouts/doc.html
index 3417345..c467dd3 100644
--- a/layouts/doc.html
+++ b/layouts/doc.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -12,7 +12,7 @@
 }</style><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/theme-chalk/index.css"><link rel="stylesheet" href="https://echarts.apache.org/zh/css/doc-bundle.css?_v_=928953a425"><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://echarts.apache.org/zh/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
 <!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav id="ec-doc-nav" class="navbar navbar-default navbar-fixed-top doc-nav"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://echarts.apache.org/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div id="ec-doc-main"></div><div id="v4-link" class="alert alert-info alert-dismissible"><a href="https://echarts.apache.org/v4/zh/option.html">旧版本文档</a><button type="button" data-dismiss="alert" aria-label="Close" class="close"><span aria-hidden="true">&times;</span></button></div></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://cdn.jsdelivr.net/npm/codemirror@5.56.0/lib/codemirror.min.js"></script><script src="https://cdn.jsdelivr.net/npm/codemirror@5.56.0/mode/javascript/javascript.js"></script><script src="https://cdn.jsdelivr.net/npm/js-beautify@1.11.0/js/lib/beautifier.min.js"></script><script src="https://echarts.apache.org/zh/js/doc-bundle.js?_v_=ce87205a10"></script><script type="text/javascript">document.getElementById('nav-doc').className = 'active';
 window.EC_WWW_CDN_PAY_ROOT = 'https://echarts.apache.org';
-</script><script type="text/javascript">window.globalArgsExtra.version = '5572398971';
+</script><script type="text/javascript">window.globalArgsExtra.version = '047e49b373';
 echartsDoc.init('#ec-doc-main', window.globalArgsExtra);</script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
 var hm = document.createElement("script");
diff --git a/layouts/example-simple.html b/layouts/example-simple.html
index 2404803..ade6b80 100644
--- a/layouts/example-simple.html
+++ b/layouts/example-simple.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -10,8 +10,8 @@
     /* position: sticky should not have overflow parents.*/
     overflow-x: hidden;
 }</style><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/theme-chalk/index.css"><link rel="stylesheet" href="https://echarts.apache.org/examples/css/example-bundle.css?_v_=4e03a5649f"><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://echarts.apache.org/zh/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
-<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><div id="ec-example-main"></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://echarts.apache.org/examples/js/example-bundle.js?_v_=5e71298117"></script><script type="text/javascript">window.EC_WWW_CDN_PAY_ROOT = 'https://echarts.apache.org';
-</script><script type="text/javascript">window.globalArgsExtra.version = '1620894510041';
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><div id="ec-example-main"></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://echarts.apache.org/examples/js/example-bundle.js?_v_=3020d4307e"></script><script type="text/javascript">window.EC_WWW_CDN_PAY_ROOT = 'https://echarts.apache.org';
+</script><script type="text/javascript">window.globalArgsExtra.version = '1623211036275';
 window.globalArgsExtra.cdnRoot = EC_WWW_CDN_PAY_ROOT + '/examples';
 echartsExample.init('#ec-example-main', window.globalArgsExtra);
 
diff --git a/layouts/example.html b/layouts/example.html
index 03b9acf..68398e7 100644
--- a/layouts/example.html
+++ b/layouts/example.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -10,9 +10,9 @@
     /* position: sticky should not have overflow parents.*/
     overflow-x: hidden;
 }</style><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/theme-chalk/index.css"><link rel="stylesheet" href="https://echarts.apache.org/examples/css/example-bundle.css?_v_=4e03a5649f"><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://echarts.apache.org/zh/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
-<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav id="ec-example-nav" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://echarts.apache.org/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div id="ec-example-main"></div><div id="v4-link" class="alert alert-info alert-dismissible"><a href="https://echarts.apache.org/v4/examples/">旧版本示例</a><button type="button" data-dismiss="alert" aria-label="Close" class="close"><span aria-hidden="true">&times;</span></button></div></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://echarts.apache.org/examples/js/example-bundle.js?_v_=5e71298117"></script><script type="text/javascript">document.getElementById('nav-examples').className = 'active';
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav id="ec-example-nav" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://echarts.apache.org/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div id="ec-example-main"></div><div id="v4-link" class="alert alert-info alert-dismissible"><a href="https://echarts.apache.org/v4/examples/">旧版本示例</a><button type="button" data-dismiss="alert" aria-label="Close" class="close"><span aria-hidden="true">&times;</span></button></div></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.2/lib/index.js"></script><script src="https://echarts.apache.org/examples/js/example-bundle.js?_v_=3020d4307e"></script><script type="text/javascript">document.getElementById('nav-examples').className = 'active';
 window.EC_WWW_CDN_PAY_ROOT = 'https://echarts.apache.org';
-</script><script type="text/javascript">window.globalArgsExtra.version = '1620894510041';
+</script><script type="text/javascript">window.globalArgsExtra.version = '1623211036275';
 window.globalArgsExtra.cdnRoot = EC_WWW_CDN_PAY_ROOT + '/examples';
 echartsExample.init('#ec-example-main', window.globalArgsExtra);</script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
diff --git a/layouts/redirect.html b/layouts/redirect.html
index 4bae721..c93f929 100644
--- a/layouts/redirect.html
+++ b/layouts/redirect.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/layouts/tool-spa.html b/layouts/tool-spa.html
new file mode 100644
index 0000000..ea03c3e
--- /dev/null
+++ b/layouts/tool-spa.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://echarts.apache.org/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://echarts.apache.org/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
+</script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
+    var el = document.createElement('style');
+    el.innerHTML = ''
+        + '@font-face {font-family:"noto-thin";src:local("Microsoft Yahei");}'
+        + '@font-face {font-family:"noto-light";src:local("Microsoft Yahei");}';
+    document.head.insertBefore(el, document.getElementById('font-hack'));
+}
+</script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://echarts.apache.org/zh/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav id="ec-doc-nav" class="navbar navbar-default navbar-fixed-top doc-nav"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://echarts.apache.org/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div id="page-undefined" class="page-spa-container"></div></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://echarts.apache.org/zh/js/common.js?_v_=b5b8944fb9"></script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
+(function() {
+var hm = document.createElement("script");
+
+hm.src = "https://hm.baidu.com/hm.js?54b918eee37cb8a7045f0fd0f0b24395";
+
+var s = document.getElementsByTagName("script")[0];
+s.parentNode.insertBefore(hm, s);
+})();
+</script><!-- Google Analytics--><script type="text/javascript" async src="https://www.googletagmanager.com/gtag/js?id=UA-141228404-1"></script><script type="text/javascript">window.dataLayer = window.dataLayer || [];
+function gtag(){dataLayer.push(arguments);}
+gtag('js', new Date());
+gtag('config', 'UA-141228404-1');</script></html>
\ No newline at end of file
diff --git a/maillist.html b/maillist.html
index d369ebf..4ee8aec 100644
--- a/maillist.html
+++ b/maillist.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/maillist.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/maillist.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/option-gl.html b/option-gl.html
index 144a352..f812aaf 100644
--- a/option-gl.html
+++ b/option-gl.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/option-gl.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/option-gl.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/option.html b/option.html
index a9fcd7b..3ae0aba 100644
--- a/option.html
+++ b/option.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/option.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/option.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/option3.html b/option3.html
index e2e97d7..9ddca8c 100644
--- a/option3.html
+++ b/option3.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/option3.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/option3.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/resources.html b/resources.html
index a211c52..9d77856 100644
--- a/resources.html
+++ b/resources.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/resources.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/resources.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/security.html b/security.html
index a409408..ca6cd9f 100644
--- a/security.html
+++ b/security.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/security.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/security.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/spreadsheet.html b/spreadsheet.html
index 2b5021b..5ea3b0f 100644
--- a/spreadsheet.html
+++ b/spreadsheet.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/spreadsheet.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/spreadsheet.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/theme-builder.html b/theme-builder.html
index 4706eb9..5e44c43 100644
--- a/theme-builder.html
+++ b/theme-builder.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/theme-builder.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/theme-builder.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/tutorial.html b/tutorial.html
index f25b1a7..57c0044 100644
--- a/tutorial.html
+++ b/tutorial.html
@@ -1,6 +1,8 @@
-<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">var hash = (location.hash || '').replace('#', '');
-var search = (location.search || '').replace('?', '');
-var lang = navigator.language || navigator.userLanguage;
-lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
-location.href = 'https://echarts.apache.org/' + lang + '/tutorial.html'
-    + (search ? '?' + search : '') + (hash ? '#' + hash : '');</script></head></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(function () {
+    var hash = (location.hash || '').replace('#', '');
+    var search = (location.search || '').replace('?', '');
+    var lang = navigator.language || navigator.userLanguage;
+    lang = lang.indexOf('zh') > -1 ? 'zh' : 'en';
+    location.href = 'https://echarts.apache.org/' + lang + '/tutorial.html'
+        + (search ? '?' + search : '') + (hash ? '#' + hash : '');
+})();</script></head></html>
\ No newline at end of file
diff --git a/zh/404.html b/zh/404.html
index 524c2d7..ef8bc28 100644
--- a/zh/404.html
+++ b/zh/404.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/api.html b/zh/api.html
index af29427..85d4cec 100644
--- a/zh/api.html
+++ b/zh/api.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -19,7 +19,7 @@
 };
 if (window.EC_WWW_CDN_PAY_ROOT) {
     window.globalArgsExtra.cdnRoot = window.EC_WWW_CDN_PAY_ROOT + '/zh/' + window.globalArgsExtra.baseUrl
-}</script><script type="text/javascript">window.globalArgsExtra.version = '6e30baec41';
+}</script><script type="text/javascript">window.globalArgsExtra.version = '708849eb8f';
 echartsDoc.init('#ec-doc-main', window.globalArgsExtra);</script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
 var hm = document.createElement("script");
diff --git a/zh/bar-race/assets/element-icons.9c88a535.woff b/zh/bar-race/assets/element-icons.9c88a535.woff
new file mode 100644
index 0000000..c3fa4b9
--- /dev/null
+++ b/zh/bar-race/assets/element-icons.9c88a535.woff
Binary files differ
diff --git a/zh/bar-race/assets/element-icons.de5eb258.ttf b/zh/bar-race/assets/element-icons.de5eb258.ttf
new file mode 100644
index 0000000..c0e5e06
--- /dev/null
+++ b/zh/bar-race/assets/element-icons.de5eb258.ttf
Binary files differ
diff --git a/zh/bar-race/assets/main.79ef808e.js b/zh/bar-race/assets/main.79ef808e.js
new file mode 100644
index 0000000..3d2b9d1
--- /dev/null
+++ b/zh/bar-race/assets/main.79ef808e.js
@@ -0,0 +1 @@
+import{d as e,r as a,c as l,a as s,t as n,F as o,b as t,o as u,p as r,e as d,w as c,f as p,g as m,I as i}from"./vendor.82c46759.js";var v=e({expose:[],props:{msg:{type:String,required:!0}},setup(e){const r=a(10);return(a,d)=>{const c=t("el-input-number");return u(),l(o,null,[s("h1",null,n(e.msg),1),s(c,{modelValue:r.value,"onUpdate:modelValue":d[1]||(d[1]=e=>r.value=e)},null,8,["modelValue"]),s("p",null,"Input Number: "+n(r.value),1)],64)}}});v.__scopeId="data-v-4f9cc77c";const h=c();r("data-v-09a45116");const _=s("h3",null,"Side Nav",-1);d();var E=e({expose:[],setup:e=>(e,a)=>{const n=t("el-aside"),o=t("el-main"),r=t("el-container");return u(),l(r,null,{default:h((()=>[s(n,null,{default:h((()=>[_])),_:1}),s(o,null,{default:h((()=>[s(v,{msg:e.$t("helloWorld")},null,8,["msg"])])),_:1})])),_:1})}});E.__scopeId="data-v-09a45116";const A=window.ECHARTS_WEBSITE_LANGUAGE;void 0===A&&console.error("Can't find environment variable ECHARTS_WEBSITE_LANGUAGE");const f=p({locale:A,messages:{en:{helloWorld:"Hello Apache ECharts"},zh:{helloWorld:"你好 Apache ECharts"}}}),g=m(E);g.use(i),g.use(f),g.mount("#echarts-spa-app");
diff --git a/zh/bar-race/assets/main.80a6a299.css b/zh/bar-race/assets/main.80a6a299.css
new file mode 100644
index 0000000..0d742fe
--- /dev/null
+++ b/zh/bar-race/assets/main.80a6a299.css
@@ -0,0 +1 @@
+@charset "UTF-8";@font-face{font-family:element-icons;src:url(./element-icons.9c88a535.woff) format("woff"),url(./element-icons.de5eb258.ttf) format("truetype");font-weight:400;font-display:auto;font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:""}.el-icon-ice-cream-square:before{content:""}.el-icon-lollipop:before{content:""}.el-icon-potato-strips:before{content:""}.el-icon-milk-tea:before{content:""}.el-icon-ice-drink:before{content:""}.el-icon-ice-tea:before{content:""}.el-icon-coffee:before{content:""}.el-icon-orange:before{content:""}.el-icon-pear:before{content:""}.el-icon-apple:before{content:""}.el-icon-cherry:before{content:""}.el-icon-watermelon:before{content:""}.el-icon-grape:before{content:""}.el-icon-refrigerator:before{content:""}.el-icon-goblet-square-full:before{content:""}.el-icon-goblet-square:before{content:""}.el-icon-goblet-full:before{content:""}.el-icon-goblet:before{content:""}.el-icon-cold-drink:before{content:""}.el-icon-coffee-cup:before{content:""}.el-icon-water-cup:before{content:""}.el-icon-hot-water:before{content:""}.el-icon-ice-cream:before{content:""}.el-icon-dessert:before{content:""}.el-icon-sugar:before{content:""}.el-icon-tableware:before{content:""}.el-icon-burger:before{content:""}.el-icon-knife-fork:before{content:""}.el-icon-fork-spoon:before{content:""}.el-icon-chicken:before{content:""}.el-icon-food:before{content:""}.el-icon-dish-1:before{content:""}.el-icon-dish:before{content:""}.el-icon-moon-night:before{content:""}.el-icon-moon:before{content:""}.el-icon-cloudy-and-sunny:before{content:""}.el-icon-partly-cloudy:before{content:""}.el-icon-cloudy:before{content:""}.el-icon-sunny:before{content:""}.el-icon-sunset:before{content:""}.el-icon-sunrise-1:before{content:""}.el-icon-sunrise:before{content:""}.el-icon-heavy-rain:before{content:""}.el-icon-lightning:before{content:""}.el-icon-light-rain:before{content:""}.el-icon-wind-power:before{content:""}.el-icon-baseball:before{content:""}.el-icon-soccer:before{content:""}.el-icon-football:before{content:""}.el-icon-basketball:before{content:""}.el-icon-ship:before{content:""}.el-icon-truck:before{content:""}.el-icon-bicycle:before{content:""}.el-icon-mobile-phone:before{content:""}.el-icon-service:before{content:""}.el-icon-key:before{content:""}.el-icon-unlock:before{content:""}.el-icon-lock:before{content:""}.el-icon-watch:before{content:""}.el-icon-watch-1:before{content:""}.el-icon-timer:before{content:""}.el-icon-alarm-clock:before{content:""}.el-icon-map-location:before{content:""}.el-icon-delete-location:before{content:""}.el-icon-add-location:before{content:""}.el-icon-location-information:before{content:""}.el-icon-location-outline:before{content:""}.el-icon-location:before{content:""}.el-icon-place:before{content:""}.el-icon-discover:before{content:""}.el-icon-first-aid-kit:before{content:""}.el-icon-trophy-1:before{content:""}.el-icon-trophy:before{content:""}.el-icon-medal:before{content:""}.el-icon-medal-1:before{content:""}.el-icon-stopwatch:before{content:""}.el-icon-mic:before{content:""}.el-icon-copy-document:before{content:""}.el-icon-full-screen:before{content:""}.el-icon-switch-button:before{content:""}.el-icon-aim:before{content:""}.el-icon-crop:before{content:""}.el-icon-odometer:before{content:""}.el-icon-time:before{content:""}.el-icon-bangzhu:before{content:""}.el-icon-close-notification:before{content:""}.el-icon-microphone:before{content:""}.el-icon-turn-off-microphone:before{content:""}.el-icon-position:before{content:""}.el-icon-postcard:before{content:""}.el-icon-message:before{content:""}.el-icon-chat-line-square:before{content:""}.el-icon-chat-dot-square:before{content:""}.el-icon-chat-dot-round:before{content:""}.el-icon-chat-square:before{content:""}.el-icon-chat-line-round:before{content:""}.el-icon-chat-round:before{content:""}.el-icon-set-up:before{content:""}.el-icon-turn-off:before{content:""}.el-icon-open:before{content:""}.el-icon-connection:before{content:""}.el-icon-link:before{content:""}.el-icon-cpu:before{content:""}.el-icon-thumb:before{content:""}.el-icon-female:before{content:""}.el-icon-male:before{content:""}.el-icon-guide:before{content:""}.el-icon-news:before{content:""}.el-icon-price-tag:before{content:""}.el-icon-discount:before{content:""}.el-icon-wallet:before{content:""}.el-icon-coin:before{content:""}.el-icon-money:before{content:""}.el-icon-bank-card:before{content:""}.el-icon-box:before{content:""}.el-icon-present:before{content:""}.el-icon-sell:before{content:""}.el-icon-sold-out:before{content:""}.el-icon-shopping-bag-2:before{content:""}.el-icon-shopping-bag-1:before{content:""}.el-icon-shopping-cart-2:before{content:""}.el-icon-shopping-cart-1:before{content:""}.el-icon-shopping-cart-full:before{content:""}.el-icon-smoking:before{content:""}.el-icon-no-smoking:before{content:""}.el-icon-house:before{content:""}.el-icon-table-lamp:before{content:""}.el-icon-school:before{content:""}.el-icon-office-building:before{content:""}.el-icon-toilet-paper:before{content:""}.el-icon-notebook-2:before{content:""}.el-icon-notebook-1:before{content:""}.el-icon-files:before{content:""}.el-icon-collection:before{content:""}.el-icon-receiving:before{content:""}.el-icon-suitcase-1:before{content:""}.el-icon-suitcase:before{content:""}.el-icon-film:before{content:""}.el-icon-collection-tag:before{content:""}.el-icon-data-analysis:before{content:""}.el-icon-pie-chart:before{content:""}.el-icon-data-board:before{content:""}.el-icon-data-line:before{content:""}.el-icon-reading:before{content:""}.el-icon-magic-stick:before{content:""}.el-icon-coordinate:before{content:""}.el-icon-mouse:before{content:""}.el-icon-brush:before{content:""}.el-icon-headset:before{content:""}.el-icon-umbrella:before{content:""}.el-icon-scissors:before{content:""}.el-icon-mobile:before{content:""}.el-icon-attract:before{content:""}.el-icon-monitor:before{content:""}.el-icon-search:before{content:""}.el-icon-takeaway-box:before{content:""}.el-icon-paperclip:before{content:""}.el-icon-printer:before{content:""}.el-icon-document-add:before{content:""}.el-icon-document:before{content:""}.el-icon-document-checked:before{content:""}.el-icon-document-copy:before{content:""}.el-icon-document-delete:before{content:""}.el-icon-document-remove:before{content:""}.el-icon-tickets:before{content:""}.el-icon-folder-checked:before{content:""}.el-icon-folder-delete:before{content:""}.el-icon-folder-remove:before{content:""}.el-icon-folder-add:before{content:""}.el-icon-folder-opened:before{content:""}.el-icon-folder:before{content:""}.el-icon-edit-outline:before{content:""}.el-icon-edit:before{content:""}.el-icon-date:before{content:""}.el-icon-c-scale-to-original:before{content:""}.el-icon-view:before{content:""}.el-icon-loading:before{content:""}.el-icon-rank:before{content:""}.el-icon-sort-down:before{content:""}.el-icon-sort-up:before{content:""}.el-icon-sort:before{content:""}.el-icon-finished:before{content:""}.el-icon-refresh-left:before{content:""}.el-icon-refresh-right:before{content:""}.el-icon-refresh:before{content:""}.el-icon-video-play:before{content:""}.el-icon-video-pause:before{content:""}.el-icon-d-arrow-right:before{content:""}.el-icon-d-arrow-left:before{content:""}.el-icon-arrow-up:before{content:""}.el-icon-arrow-down:before{content:""}.el-icon-arrow-right:before{content:""}.el-icon-arrow-left:before{content:""}.el-icon-top-right:before{content:""}.el-icon-top-left:before{content:""}.el-icon-top:before{content:""}.el-icon-bottom:before{content:""}.el-icon-right:before{content:""}.el-icon-back:before{content:""}.el-icon-bottom-right:before{content:""}.el-icon-bottom-left:before{content:""}.el-icon-caret-top:before{content:""}.el-icon-caret-bottom:before{content:""}.el-icon-caret-right:before{content:""}.el-icon-caret-left:before{content:""}.el-icon-d-caret:before{content:""}.el-icon-share:before{content:""}.el-icon-menu:before{content:""}.el-icon-s-grid:before{content:""}.el-icon-s-check:before{content:""}.el-icon-s-data:before{content:""}.el-icon-s-opportunity:before{content:""}.el-icon-s-custom:before{content:""}.el-icon-s-claim:before{content:""}.el-icon-s-finance:before{content:""}.el-icon-s-comment:before{content:""}.el-icon-s-flag:before{content:""}.el-icon-s-marketing:before{content:""}.el-icon-s-shop:before{content:""}.el-icon-s-open:before{content:""}.el-icon-s-management:before{content:""}.el-icon-s-ticket:before{content:""}.el-icon-s-release:before{content:""}.el-icon-s-home:before{content:""}.el-icon-s-promotion:before{content:""}.el-icon-s-operation:before{content:""}.el-icon-s-unfold:before{content:""}.el-icon-s-fold:before{content:""}.el-icon-s-platform:before{content:""}.el-icon-s-order:before{content:""}.el-icon-s-cooperation:before{content:""}.el-icon-bell:before{content:""}.el-icon-message-solid:before{content:""}.el-icon-video-camera:before{content:""}.el-icon-video-camera-solid:before{content:""}.el-icon-camera:before{content:""}.el-icon-camera-solid:before{content:""}.el-icon-download:before{content:""}.el-icon-upload2:before{content:""}.el-icon-upload:before{content:""}.el-icon-picture-outline-round:before{content:""}.el-icon-picture-outline:before{content:""}.el-icon-picture:before{content:""}.el-icon-close:before{content:""}.el-icon-check:before{content:""}.el-icon-plus:before{content:""}.el-icon-minus:before{content:""}.el-icon-help:before{content:""}.el-icon-s-help:before{content:""}.el-icon-circle-close:before{content:""}.el-icon-circle-check:before{content:""}.el-icon-circle-plus-outline:before{content:""}.el-icon-remove-outline:before{content:""}.el-icon-zoom-out:before{content:""}.el-icon-zoom-in:before{content:""}.el-icon-error:before{content:""}.el-icon-success:before{content:""}.el-icon-circle-plus:before{content:""}.el-icon-remove:before{content:""}.el-icon-info:before{content:""}.el-icon-question:before{content:""}.el-icon-warning-outline:before{content:""}.el-icon-warning:before{content:""}.el-icon-goods:before{content:""}.el-icon-s-goods:before{content:""}.el-icon-star-off:before{content:""}.el-icon-star-on:before{content:""}.el-icon-more-outline:before{content:""}.el-icon-more:before{content:""}.el-icon-phone-outline:before{content:""}.el-icon-phone:before{content:""}.el-icon-user:before{content:""}.el-icon-user-solid:before{content:""}.el-icon-setting:before{content:""}.el-icon-s-tools:before{content:""}.el-icon-delete:before{content:""}.el-icon-delete-solid:before{content:""}.el-icon-eleme:before{content:""}.el-icon-platform-eleme:before{content:""}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}@keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination::after,.el-pagination::before{display:table;content:""}.el-pagination::after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;-webkit-box-sizing:border-box;box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;-webkit-transform:scale(.8);transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:#409eff}.el-pagination button:disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:center center no-repeat #fff;background-size:16px;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#c0c4cc;cursor:not-allowed}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .arrow.disabled{visibility:hidden}.el-pagination--small .more::before,.el-pagination--small li.more::before{line-height:22px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination--small .el-input--mini,.el-pagination--small .el-input__inner{height:22px!important;line-height:22px}.el-pagination--small .el-input__suffix,.el-pagination--small .el-input__suffix .el-input__suffix-inner,.el-pagination--small .el-input__suffix .el-input__suffix-inner i.el-select__caret{line-height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#409eff}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px}.el-pager,.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.disabled{color:#c0c4cc}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#409eff}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#409eff;color:#fff}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager,.el-pager li{vertical-align:top;margin:0;display:inline-block}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0}.el-pager .more::before{line-height:30px}.el-pager li{padding:0 4px;background:#fff;font-size:13px;min-width:35.5px;height:28px;line-height:28px;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center}.el-dialog,.el-dialog__footer{-webkit-box-sizing:border-box}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#c0c4cc}.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#409eff}.el-pager li.active{color:#409eff;cursor:default}@-webkit-keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{100%{opacity:0}}.el-dialog{position:relative;margin:0 auto 50px;background:#fff;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#409eff}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:10px 20px 20px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:modal-fade-in .3s!important;animation:modal-fade-in .3s!important}.dialog-fade-enter-active .el-dialog{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:modal-fade-out .3s;animation:modal-fade-out .3s}.dialog-fade-leave-active .el-dialog{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@-webkit-keyframes modal-fade-in{0%{opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes modal-fade-in{0%{opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}100%{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}100%{opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete__popper.el-popper[role=tooltip]{background:#fff;border:1px solid #e4e7ed;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-autocomplete__popper.el-popper[role=tooltip] .el-popper__arrow::before{border:1px solid #e4e7ed}.el-autocomplete__popper.el-popper[role=tooltip][data-popper-placement^=top] .el-popper__arrow::before{border-top-color:transparent;border-left-color:transparent}.el-autocomplete__popper.el-popper[role=tooltip][data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-autocomplete__popper.el-popper[role=tooltip][data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-autocomplete__popper.el-popper[role=tooltip][data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-autocomplete-suggestion{border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px;line-height:1}.el-dropdown__popper.el-popper[role=tooltip]{background:#fff;border:1px solid #e4e7ed;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown__popper.el-popper[role=tooltip] .el-popper__arrow::before{border:1px solid #e4e7ed}.el-dropdown__popper.el-popper[role=tooltip][data-popper-placement^=top] .el-popper__arrow::before{border-top-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[role=tooltip][data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[role=tooltip][data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-dropdown__popper.el-popper[role=tooltip][data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:0}.el-dropdown__popper .el-scrollbar__bar{z-index:11}.el-dropdown__popper .el-dropdown__list{list-style:none;padding:0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button::before{content:"";position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:rgba(255,255,255,.5)}.el-dropdown .el-dropdown__caret-button.el-button--default::before{background:rgba(220,223,230,.5)}.el-dropdown .el-dropdown__caret-button:hover::before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__list__icon{font-size:12px;margin:0 3px}.el-dropdown .el-dropdown-selfdefine{outline:0}.el-dropdown-menu{position:relative;top:0;left:0;z-index:10;padding:10px 0;margin:0;background-color:#fff;border:none;border-radius:4px;-webkit-box-shadow:none;box-shadow:none}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#606266;cursor:pointer;outline:0}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#ecf5ff;color:#66b1ff}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #ebeef5}.el-dropdown-menu__item--divided:before{content:"";height:6px;display:block;margin:0 -20px;background-color:#fff}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:#bbb}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:solid 1px #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0;background-color:#fff}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu::after,.el-menu::before{display:table;content:""}.el-breadcrumb__item:last-child .el-breadcrumb__separator,.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu::after{clear:both}.el-menu.el-menu--horizontal{border-bottom:solid 1px #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409eff;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu-item,.el-submenu__title{line-height:56px;-webkit-box-sizing:border-box;list-style:none}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409eff;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-submenu{min-width:200px}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid #e4e7ed;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup,.el-picker-panel .el-time-panel,.el-picker__popper.el-popper[role=tooltip],.el-popover.el-popper,.el-select__popper.el-popper[role=tooltip],.el-table-filter{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:none;transform:none}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu-item{height:56px;font-size:14px;color:#303133;padding:0 20px;cursor:pointer;position:relative;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409eff}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{height:56px;font-size:14px;color:#303133;padding:0 20px;cursor:pointer;position:relative;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box;white-space:nowrap}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-menu-item-group>ul,.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409eff}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.el-radio-button__inner,.el-radio-group{display:inline-block;line-height:1;vertical-align:middle}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{-webkit-transition:.2s;transition:.2s;opacity:0}.el-radio-group{font-size:0}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{white-space:nowrap;background:#fff;border:1px solid #dcdfe6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#409eff}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;-webkit-box-shadow:-1px 0 0 0 #409eff;box-shadow:-1px 0 0 0 #409eff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;-webkit-box-shadow:none;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){-webkit-box-shadow:0 0 2px 2px #409eff;box-shadow:0 0 2px 2px #409eff}.el-switch{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{-webkit-transition:.2s;transition:.2s;height:20px;font-size:14px;font-weight:500;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#409eff}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:0;border-radius:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#dcdfe6;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s;vertical-align:middle}.el-switch__core .el-switch__action{position:absolute;top:1px;left:1px;border-radius:100%;-webkit-transition:all .3s;transition:all .3s;width:16px;height:16px;background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#dcdfe6}.el-switch.is-checked .el-switch__core{border-color:#409eff;background-color:#409eff}.el-switch.is-checked .el-switch__core .el-switch__action{left:100%;margin-left:-17px;color:#409eff}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{z-index:1001;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#409eff;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after{position:absolute;right:20px;font-family:element-icons;content:"";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#409eff;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type)::after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#e4e7ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative;line-height:40px}.el-select__popper.el-popper[role=tooltip]{background:#fff;border:1px solid #e4e7ed;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-select__popper.el-popper[role=tooltip] .el-popper__arrow::before{border:1px solid #e4e7ed}.el-select__popper.el-popper[role=tooltip][data-popper-placement^=top] .el-popper__arrow::before{border-top-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[role=tooltip][data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[role=tooltip][data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[role=tooltip][data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-select:hover .el-input__inner,.el-slider__runway.disabled .el-slider__button{border-color:#c0c4cc}.el-select--mini{line-height:28px}.el-select--small{line-height:32px}.el-select--medium{line-height:36px}.el-select .el-select__tags>span{display:inline-block}.el-select .el-select__tags-text{text-overflow:ellipsis;display:inline-block;overflow-x:hidden;vertical-align:bottom}.el-select .el-input__inner{cursor:pointer;padding-right:35px;display:block}.el-select .el-input__inner:focus{border-color:#409eff}.el-select .el-input{display:block}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{-webkit-transform:rotateZ(0);transform:rotateZ(0)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg);border-radius:100%;color:#c0c4cc;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-range-editor.is-active,.el-range-editor.is-active:hover,.el-select .el-input.is-focus .el-input__inner{border-color:#409eff}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select .el-tag__close{margin-top:-2px}.el-select .el-select__tags .el-tag{-webkit-box-sizing:border-box;box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5}.el-select .el-select__tags .el-tag .el-icon-close{background-color:#c0c4cc;right:-7px;top:0;color:#fff}.el-select .el-select__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-table,.el-table__expanded-cell{background-color:#fff}.el-select .el-select__tags .el-tag .el-icon-close::before{display:block;-webkit-transform:translate(0,.5px);transform:translate(0,.5px)}.el-table{position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;font-size:12px;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table td,.el-table th,.el-table th>.cell{position:relative;-webkit-box-sizing:border-box;vertical-align:middle}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#f5f7fa}.el-table th,.el-table tr{background-color:#fff}.el-table td,.el-table th{padding:12px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;text-align:left}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table td.is-hidden>*,.el-table th.is-hidden>*{visibility:hidden}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small{font-size:12px}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini{font-size:12px}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #ebeef5}.el-table th.is-sortable{cursor:pointer}.el-table th{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table,.el-slider__button-wrapper,.el-time-panel{-moz-user-select:none;-ms-user-select:none}.el-table th>.cell{display:inline-block;box-sizing:border-box;width:100%}.el-table th>.cell.highlight{color:#409eff}.el-table th.required>div::before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{-webkit-box-sizing:border-box;box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-left:10px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #ebeef5}.el-table--border::after,.el-table--group::after,.el-table::before{content:"";position:absolute;background-color:#ebeef5;z-index:1}.el-table--border::after,.el-table--group::after{top:0;right:0;width:1px;height:100%}.el-table::before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border td,.el-table--border th,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ebeef5}.el-table--border td:first-child .cell,.el-table--border th:first-child .cell{padding-left:10px}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #ebeef5;border-bottom-width:1px}.el-table--border th,.el-table__fixed-right-patch{border-bottom:1px solid #ebeef5}.el-table--hidden{visibility:hidden}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;-webkit-box-shadow:0 0 10px rgba(0,0,0,.12);box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right::before,.el-table__fixed::before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#ebeef5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #ebeef5;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #ebeef5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{-webkit-box-shadow:none;box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ebeef5}.el-table .caret-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:-5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409eff}.el-table .descending .sort-caret.descending{border-top-color:#409eff}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td{background-color:#ecf5ff}.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#f5f7fa}.el-table__body tr.current-row>td{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #ebeef5;z-index:10}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;vertical-align:middle;-webkit-transform:scale(.75);transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #ebeef5;border-radius:2px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409eff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-date-table td.in-range div,.el-date-table td.in-range div:hover,.el-date-table.is-week-mode .el-date-table__row.current div,.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#f2f6fc}.el-table-filter__bottom button:hover{color:#409eff}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td{width:32px;height:30px;padding:4px 0;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td div{height:30px;padding:3px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#c0c4cc}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#409eff;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#409eff}.el-date-table td.current:not(.disabled) span{color:#fff;background-color:#409eff}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#409eff}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#c0c4cc}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#f2f6fc;border-radius:15px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#409eff;color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-month-table,.el-year-table{font-size:12px;border-collapse:collapse}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:solid 1px #ebeef5}.el-month-table{margin:-1px}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-month-table td.today .cell{color:#409eff;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-month-table td.disabled .cell:hover{color:#c0c4cc}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#606266;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#409eff}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:#409eff}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#409eff}.el-year-table{margin:-1px}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#409eff;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-year-table td.disabled .cell:hover{color:#c0c4cc}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#409eff}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{-webkit-box-sizing:border-box;box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px #ebeef5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#409eff}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#409eff;font-weight:700}.time-select-item.disabled{color:#e4e7ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.el-picker__popper.el-popper[role=tooltip]{background:#fff;border:1px solid #e4e7ed;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-picker__popper.el-popper[role=tooltip] .el-popper__arrow::before{border:1px solid #e4e7ed}.el-picker__popper.el-popper[role=tooltip][data-popper-placement^=top] .el-popper__arrow::before{border-top-color:transparent;border-left-color:transparent}.el-picker__popper.el-popper[role=tooltip][data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[role=tooltip][data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-picker__popper.el-popper[role=tooltip][data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#c0c4cc;float:left;line-height:32px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:100%;margin:0;padding:0;width:39%;text-align:center;font-size:14px;color:#606266}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-moz-placeholder{color:#c0c4cc}.el-date-editor .el-range-input:-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::placeholder{color:#c0c4cc}.el-date-editor .el-range-separator{display:inline-block;height:100%;padding:0 5px;margin:0;text-align:center;line-height:32px;font-size:14px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#c0c4cc;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label,.el-range-editor--medium{line-height:36px}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small{line-height:32px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini{line-height:28px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#e4e7ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-moz-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input:-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::placeholder{color:#c0c4cc}.el-range-editor.is-disabled .el-range-separator{color:#c0c4cc}.el-picker-panel{position:relative;color:#606266;background:#fff;border-radius:4px;line-height:30px}.el-picker-panel .el-time-panel{margin:5px 0;border:1px solid #e4e7ed;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-picker-panel__body-wrapper::after,.el-picker-panel__body::after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:#409eff}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#409eff}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#409eff}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__wrapper.is-arrow{-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{-webkit-transform:translateY(-32px);transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#409eff}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list::after,.el-time-spinner__list::before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#c0c4cc;cursor:not-allowed}.el-time-panel{border-radius:2px;position:relative;width:180px;left:0;z-index:1000;-webkit-user-select:none;user-select:none;-webkit-box-sizing:content-box;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content::after,.el-time-panel__content::before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.el-time-panel__content::after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content::before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds::after{left:calc(100% / 3 * 2)}.el-time-panel__content.has-seconds::before{padding-left:calc(100% / 3)}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#409eff}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.el-time-range-picker__cell{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-popover__title,.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-time-range-picker__body{border-radius:2px;border:1px solid #e4e7ed}.el-popover.el-popper{background:#fff;min-width:150px;border-radius:4px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover.el-popper--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{100%{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #ebeef5;font-size:18px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-overlay.is-message-box{text-align:center}.el-overlay.is-message-box::after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus,.el-message-box__input div.invalid>input,.el-message-box__input div.invalid>input:focus{border-color:#f56c6c}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409eff}.el-message-box__content{padding:10px 15px;color:#606266;font-size:14px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__status{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:24px!important}.el-message-box__status::before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67c23a}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#e6a23c}.el-message-box__status.el-icon-error{color:#f56c6c}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#f56c6c;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.fade-in-linear-enter-active .el-message-box{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.fade-in-linear-leave-active .el-message-box{animation:msgbox-fade-in .3s reverse}@-webkit-keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb::after,.el-breadcrumb::before{display:table;content:""}.el-breadcrumb::after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:#409eff;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:#606266;cursor:text}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content,.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-form-item{margin-bottom:22px}.el-form-item::after,.el-form-item::before{display:table;content:""}.el-form-item::after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content::after,.el-form-item__content::before{display:table;content:""}.el-form-item__content::after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409eff;z-index:1;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.el-tabs__new-tab .el-icon-plus{-webkit-transform:scale(.8,.8);transform:scale(.8,.8)}.el-tabs__new-tab:hover{color:#409eff}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed;z-index:1}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap::after,.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap::after{content:none}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{-webkit-transform:scale(.9);transform:scale(.9);display:inline-block}.el-tabs--card>.el-tabs__header .el-tabs__active-bar,.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#409eff}.el-tabs__item:hover{color:#409eff;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close{width:14px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409eff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409eff}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-cascader-menu:last-child .el-cascader-node,.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{-webkit-transform:rotateZ(90deg);transform:rotateZ(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left::after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left::after,.el-tabs--left .el-tabs__nav-wrap.is-right::after,.el-tabs--right .el-tabs__nav-wrap.is-left::after,.el-tabs--right .el-tabs__nav-wrap.is-right::after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-button-group>.el-button:not(:last-child),.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #e4e7ed;border-bottom:none;border-top:1px solid #e4e7ed;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #e4e7ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #e4e7ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right::after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #e4e7ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #e4e7ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}.el-tree{position:relative;cursor:default;background:#fff;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#909399;font-size:14px}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#409eff}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#409eff;color:#fff}.el-tree-node__content:hover,.el-upload-list__item:hover{background-color:#f5f7fa}.el-tree-node__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#c0c4cc;font-size:12px;-webkit-transform:rotate(0);transform:rotate(0);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#c0c4cc}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-alert,.el-notification{display:-ms-flexbox;display:-webkit-box}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#f0f7ff}.el-alert{width:100%;padding:8px 16px;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .2s;transition:opacity .2s}.el-notification,.el-slider__button{-webkit-box-sizing:border-box;background-color:#fff}.el-alert.is-light .el-alert__closebtn{color:#c0c4cc}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#fff}.el-alert.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-alert--success.is-light{background-color:#f0f9eb;color:#67c23a}.el-alert--success.is-light .el-alert__description{color:#67c23a}.el-alert--success.is-dark{background-color:#67c23a;color:#fff}.el-alert--info.is-light{background-color:#f4f4f5;color:#909399}.el-alert--info.is-dark{background-color:#909399;color:#fff}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning.is-light{background-color:#fdf6ec;color:#e6a23c}.el-alert--warning.is-light .el-alert__description{color:#e6a23c}.el-alert--warning.is-dark{background-color:#e6a23c;color:#fff}.el-alert--error.is-light{background-color:#fef0f0;color:#f56c6c}.el-alert--error.is-light .el-alert__description{color:#f56c6c}.el-alert--error.is-dark{background-color:#f56c6c;color:#fff}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{font-size:12px;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert-fade-enter-from,.el-alert-fade-leave-active,.el-loading-fade-enter-from,.el-loading-fade-leave-to,.el-notification-fade-leave-to,.el-upload iframe{opacity:0}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-notification{display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;box-sizing:border-box;border:1px solid #ebeef5;position:fixed;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;overflow-wrap:anywhere;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;line-height:24px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:24px;margin:6px 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#67c23a}.el-notification .el-icon-error{color:#f56c6c}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#e6a23c}.el-notification-fade-enter-from.right{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.el-notification-fade-enter-from.left{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#409eff}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #dcdfe6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #dcdfe6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#e4e7ed;color:#e4e7ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#e4e7ed;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.9);transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #dcdfe6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #dcdfe6;border-radius:0 0 4px}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow::after{content:" ";border-width:5px}.el-button-group::after,.el-button-group::before,.el-button.is-loading:before,.el-checkbox__inner::after,.el-checkbox__input.is-indeterminate .el-checkbox__inner::before,.el-color-dropdown__main-wrapper::after,.el-input__icon:after,.el-link.is-underline:hover:after,.el-page-header__left::after,.el-progress-bar__inner::after,.el-radio__inner::after,.el-row::after,.el-row::before,.el-slider::after,.el-slider::before,.el-slider__button-wrapper::after,.el-step.is-simple .el-step__arrow::after,.el-step.is-simple .el-step__arrow::before,.el-transfer-panel .el-transfer-panel__footer::after,.el-upload-cover::after,.el-upload-list--picture-card .el-upload-list__item-actions::after{content:""}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow::after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow::after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow::after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow::after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow::after{border-right-color:#fff}.el-slider::after,.el-slider::before{display:table}.el-slider::after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#e4e7ed;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{-webkit-transform:scale(1);transform:scale(1);cursor:not-allowed}.el-slider__button-wrapper,.el-slider__stop{-webkit-transform:translateX(-50%);position:absolute}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#409eff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;z-index:1;top:-15px;transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;user-select:none;line-height:normal;outline:0}.el-image-viewer__btn,.el-slider__button,.el-step__icon-inner{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-slider__button-wrapper::after{display:inline-block;height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{display:inline-block;width:20px;height:20px;vertical-align:middle;border:2px solid #409eff;border-radius:50%;box-sizing:border-box;-webkit-transition:.2s;transition:.2s;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{height:6px;width:6px;border-radius:100%;background-color:#fff;transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:14px;color:#909399;margin-top:15px}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px;-webkit-transform:translateY(50%);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{-webkit-transform:translateY(50%);transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #dcdfe6;line-height:20px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#c0c4cc}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#409eff}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;-webkit-transform:translateY(50%);transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:rgba(255,255,255,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-col-pull-0,.el-col-pull-1,.el-col-pull-10,.el-col-pull-11,.el-col-pull-12,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-2,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-push-0,.el-col-push-1,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-2,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-row,.el-upload-dragger,.el-upload-list__item{position:relative}.el-loading-spinner .el-loading-text{color:#409eff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409eff;stroke-linecap:round}.el-loading-spinner i{color:#409eff}@-webkit-keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-sizing:border-box;box-sizing:border-box}.el-row::after,.el-row::before{display:table}.el-row::after{clear:both}.el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}[class*=el-col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-0{max-width:0%;-webkit-box-flex:0;-ms-flex:0 0 0%;flex:0 0 0%}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{max-width:4.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 4.1666666667%;flex:0 0 4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{right:4.1666666667%}.el-col-push-1{left:4.1666666667%}.el-col-2{max-width:8.3333333333%;-webkit-box-flex:0;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{right:8.3333333333%}.el-col-push-2{left:8.3333333333%}.el-col-3{max-width:12.5%;-webkit-box-flex:0;-ms-flex:0 0 12.5%;flex:0 0 12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{max-width:16.6666666667%;-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{right:16.6666666667%}.el-col-push-4{left:16.6666666667%}.el-col-5{max-width:20.8333333333%;-webkit-box-flex:0;-ms-flex:0 0 20.8333333333%;flex:0 0 20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{right:20.8333333333%}.el-col-push-5{left:20.8333333333%}.el-col-6{max-width:25%;-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{max-width:29.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 29.1666666667%;flex:0 0 29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{right:29.1666666667%}.el-col-push-7{left:29.1666666667%}.el-col-8{max-width:33.3333333333%;-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{right:33.3333333333%}.el-col-push-8{left:33.3333333333%}.el-col-9{max-width:37.5%;-webkit-box-flex:0;-ms-flex:0 0 37.5%;flex:0 0 37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{max-width:41.6666666667%;-webkit-box-flex:0;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{right:41.6666666667%}.el-col-push-10{left:41.6666666667%}.el-col-11{max-width:45.8333333333%;-webkit-box-flex:0;-ms-flex:0 0 45.8333333333%;flex:0 0 45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{right:45.8333333333%}.el-col-push-11{left:45.8333333333%}.el-col-12{max-width:50%;-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{right:50%}.el-col-push-12{left:50%}.el-col-13{max-width:54.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 54.1666666667%;flex:0 0 54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{right:54.1666666667%}.el-col-push-13{left:54.1666666667%}.el-col-14{max-width:58.3333333333%;-webkit-box-flex:0;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{right:58.3333333333%}.el-col-push-14{left:58.3333333333%}.el-col-15{max-width:62.5%;-webkit-box-flex:0;-ms-flex:0 0 62.5%;flex:0 0 62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{max-width:66.6666666667%;-webkit-box-flex:0;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{right:66.6666666667%}.el-col-push-16{left:66.6666666667%}.el-col-17{max-width:70.8333333333%;-webkit-box-flex:0;-ms-flex:0 0 70.8333333333%;flex:0 0 70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{right:70.8333333333%}.el-col-push-17{left:70.8333333333%}.el-col-18{max-width:75%;-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{max-width:79.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 79.1666666667%;flex:0 0 79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{right:79.1666666667%}.el-col-push-19{left:79.1666666667%}.el-col-20{max-width:83.3333333333%;-webkit-box-flex:0;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{right:83.3333333333%}.el-col-push-20{left:83.3333333333%}.el-col-21{max-width:87.5%;-webkit-box-flex:0;-ms-flex:0 0 87.5%;flex:0 0 87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{max-width:91.6666666667%;-webkit-box-flex:0;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{right:91.6666666667%}.el-col-push-22{left:91.6666666667%}.el-col-23{max-width:95.8333333333%;-webkit-box-flex:0;-ms-flex:0 0 95.8333333333%;flex:0 0 95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{right:95.8333333333%}.el-col-push-23{left:95.8333333333%}.el-col-24{max-width:100%;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:768px){.el-col-xs-0,.el-col-xs-0.is-guttered{display:none}.el-col-xs-0{max-width:0%;-webkit-box-flex:0;-ms-flex:0 0 0%;flex:0 0 0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{display:block;max-width:4.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 4.1666666667%;flex:0 0 4.1666666667%}.el-col-xs-2,.el-col-xs-3{display:block;-webkit-box-flex:0}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{max-width:8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{max-width:12.5%;-ms-flex:0 0 12.5%;flex:0 0 12.5%}.el-col-xs-4,.el-col-xs-5{display:block;-webkit-box-flex:0}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{max-width:16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{max-width:20.8333333333%;-ms-flex:0 0 20.8333333333%;flex:0 0 20.8333333333%}.el-col-xs-6,.el-col-xs-7{display:block;-webkit-box-flex:0}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{max-width:29.1666666667%;-ms-flex:0 0 29.1666666667%;flex:0 0 29.1666666667%}.el-col-xs-8,.el-col-xs-9{display:block;-webkit-box-flex:0}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{max-width:33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{max-width:37.5%;-ms-flex:0 0 37.5%;flex:0 0 37.5%}.el-col-xs-10,.el-col-xs-11{display:block;-webkit-box-flex:0}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{max-width:41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{max-width:45.8333333333%;-ms-flex:0 0 45.8333333333%;flex:0 0 45.8333333333%}.el-col-xs-12,.el-col-xs-13{display:block;-webkit-box-flex:0}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{max-width:54.1666666667%;-ms-flex:0 0 54.1666666667%;flex:0 0 54.1666666667%}.el-col-xs-14,.el-col-xs-15{display:block;-webkit-box-flex:0}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{max-width:58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{max-width:62.5%;-ms-flex:0 0 62.5%;flex:0 0 62.5%}.el-col-xs-16,.el-col-xs-17{display:block;-webkit-box-flex:0}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{max-width:66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{max-width:70.8333333333%;-ms-flex:0 0 70.8333333333%;flex:0 0 70.8333333333%}.el-col-xs-18,.el-col-xs-19{display:block;-webkit-box-flex:0}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{max-width:79.1666666667%;-ms-flex:0 0 79.1666666667%;flex:0 0 79.1666666667%}.el-col-xs-20,.el-col-xs-21{display:block;-webkit-box-flex:0}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{max-width:83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{max-width:87.5%;-ms-flex:0 0 87.5%;flex:0 0 87.5%}.el-col-xs-22,.el-col-xs-23{-webkit-box-flex:0;display:block}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{max-width:91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{max-width:95.8333333333%;-ms-flex:0 0 95.8333333333%;flex:0 0 95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{display:block;max-width:100%;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0,.el-col-sm-0.is-guttered{display:none}.el-col-sm-0{max-width:0%;-webkit-box-flex:0;-ms-flex:0 0 0%;flex:0 0 0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{display:block;max-width:4.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 4.1666666667%;flex:0 0 4.1666666667%}.el-col-sm-2,.el-col-sm-3{display:block;-webkit-box-flex:0}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{max-width:8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{max-width:12.5%;-ms-flex:0 0 12.5%;flex:0 0 12.5%}.el-col-sm-4,.el-col-sm-5{display:block;-webkit-box-flex:0}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{max-width:16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{max-width:20.8333333333%;-ms-flex:0 0 20.8333333333%;flex:0 0 20.8333333333%}.el-col-sm-6,.el-col-sm-7{display:block;-webkit-box-flex:0}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{max-width:29.1666666667%;-ms-flex:0 0 29.1666666667%;flex:0 0 29.1666666667%}.el-col-sm-8,.el-col-sm-9{display:block;-webkit-box-flex:0}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{max-width:33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{max-width:37.5%;-ms-flex:0 0 37.5%;flex:0 0 37.5%}.el-col-sm-10,.el-col-sm-11{display:block;-webkit-box-flex:0}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{max-width:41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{max-width:45.8333333333%;-ms-flex:0 0 45.8333333333%;flex:0 0 45.8333333333%}.el-col-sm-12,.el-col-sm-13{display:block;-webkit-box-flex:0}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{max-width:54.1666666667%;-ms-flex:0 0 54.1666666667%;flex:0 0 54.1666666667%}.el-col-sm-14,.el-col-sm-15{display:block;-webkit-box-flex:0}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{max-width:58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{max-width:62.5%;-ms-flex:0 0 62.5%;flex:0 0 62.5%}.el-col-sm-16,.el-col-sm-17{display:block;-webkit-box-flex:0}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{max-width:66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{max-width:70.8333333333%;-ms-flex:0 0 70.8333333333%;flex:0 0 70.8333333333%}.el-col-sm-18,.el-col-sm-19{display:block;-webkit-box-flex:0}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{max-width:79.1666666667%;-ms-flex:0 0 79.1666666667%;flex:0 0 79.1666666667%}.el-col-sm-20,.el-col-sm-21{display:block;-webkit-box-flex:0}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{max-width:83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{max-width:87.5%;-ms-flex:0 0 87.5%;flex:0 0 87.5%}.el-col-sm-22,.el-col-sm-23{-webkit-box-flex:0;display:block}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{max-width:91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{max-width:95.8333333333%;-ms-flex:0 0 95.8333333333%;flex:0 0 95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{display:block;max-width:100%;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0,.el-col-md-0.is-guttered{display:none}.el-col-md-0{max-width:0%;-webkit-box-flex:0;-ms-flex:0 0 0%;flex:0 0 0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{display:block;max-width:4.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 4.1666666667%;flex:0 0 4.1666666667%}.el-col-md-2,.el-col-md-3{display:block;-webkit-box-flex:0}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{max-width:8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{max-width:12.5%;-ms-flex:0 0 12.5%;flex:0 0 12.5%}.el-col-md-4,.el-col-md-5{display:block;-webkit-box-flex:0}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{max-width:16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{max-width:20.8333333333%;-ms-flex:0 0 20.8333333333%;flex:0 0 20.8333333333%}.el-col-md-6,.el-col-md-7{display:block;-webkit-box-flex:0}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{max-width:29.1666666667%;-ms-flex:0 0 29.1666666667%;flex:0 0 29.1666666667%}.el-col-md-8,.el-col-md-9{display:block;-webkit-box-flex:0}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{max-width:33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{max-width:37.5%;-ms-flex:0 0 37.5%;flex:0 0 37.5%}.el-col-md-10,.el-col-md-11{display:block;-webkit-box-flex:0}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{max-width:41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{max-width:45.8333333333%;-ms-flex:0 0 45.8333333333%;flex:0 0 45.8333333333%}.el-col-md-12,.el-col-md-13{display:block;-webkit-box-flex:0}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{max-width:54.1666666667%;-ms-flex:0 0 54.1666666667%;flex:0 0 54.1666666667%}.el-col-md-14,.el-col-md-15{display:block;-webkit-box-flex:0}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{max-width:58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{max-width:62.5%;-ms-flex:0 0 62.5%;flex:0 0 62.5%}.el-col-md-16,.el-col-md-17{display:block;-webkit-box-flex:0}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{max-width:66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{max-width:70.8333333333%;-ms-flex:0 0 70.8333333333%;flex:0 0 70.8333333333%}.el-col-md-18,.el-col-md-19{display:block;-webkit-box-flex:0}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{max-width:79.1666666667%;-ms-flex:0 0 79.1666666667%;flex:0 0 79.1666666667%}.el-col-md-20,.el-col-md-21{display:block;-webkit-box-flex:0}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{max-width:83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{max-width:87.5%;-ms-flex:0 0 87.5%;flex:0 0 87.5%}.el-col-md-22,.el-col-md-23{-webkit-box-flex:0;display:block}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{max-width:91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{max-width:95.8333333333%;-ms-flex:0 0 95.8333333333%;flex:0 0 95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{display:block;max-width:100%;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0,.el-col-lg-0.is-guttered{display:none}.el-col-lg-0{max-width:0%;-webkit-box-flex:0;-ms-flex:0 0 0%;flex:0 0 0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{display:block;max-width:4.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 4.1666666667%;flex:0 0 4.1666666667%}.el-col-lg-2,.el-col-lg-3{display:block;-webkit-box-flex:0}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{max-width:8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{max-width:12.5%;-ms-flex:0 0 12.5%;flex:0 0 12.5%}.el-col-lg-4,.el-col-lg-5{display:block;-webkit-box-flex:0}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{max-width:16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{max-width:20.8333333333%;-ms-flex:0 0 20.8333333333%;flex:0 0 20.8333333333%}.el-col-lg-6,.el-col-lg-7{display:block;-webkit-box-flex:0}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{max-width:29.1666666667%;-ms-flex:0 0 29.1666666667%;flex:0 0 29.1666666667%}.el-col-lg-8,.el-col-lg-9{display:block;-webkit-box-flex:0}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{max-width:33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{max-width:37.5%;-ms-flex:0 0 37.5%;flex:0 0 37.5%}.el-col-lg-10,.el-col-lg-11{display:block;-webkit-box-flex:0}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{max-width:41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{max-width:45.8333333333%;-ms-flex:0 0 45.8333333333%;flex:0 0 45.8333333333%}.el-col-lg-12,.el-col-lg-13{display:block;-webkit-box-flex:0}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{max-width:54.1666666667%;-ms-flex:0 0 54.1666666667%;flex:0 0 54.1666666667%}.el-col-lg-14,.el-col-lg-15{display:block;-webkit-box-flex:0}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{max-width:58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{max-width:62.5%;-ms-flex:0 0 62.5%;flex:0 0 62.5%}.el-col-lg-16,.el-col-lg-17{display:block;-webkit-box-flex:0}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{max-width:66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{max-width:70.8333333333%;-ms-flex:0 0 70.8333333333%;flex:0 0 70.8333333333%}.el-col-lg-18,.el-col-lg-19{display:block;-webkit-box-flex:0}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{max-width:79.1666666667%;-ms-flex:0 0 79.1666666667%;flex:0 0 79.1666666667%}.el-col-lg-20,.el-col-lg-21{display:block;-webkit-box-flex:0}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{max-width:83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{max-width:87.5%;-ms-flex:0 0 87.5%;flex:0 0 87.5%}.el-col-lg-22,.el-col-lg-23{-webkit-box-flex:0;display:block}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{max-width:91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{max-width:95.8333333333%;-ms-flex:0 0 95.8333333333%;flex:0 0 95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{display:block;max-width:100%;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0,.el-col-xl-0.is-guttered{display:none}.el-col-xl-0{max-width:0%;-webkit-box-flex:0;-ms-flex:0 0 0%;flex:0 0 0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{display:block;max-width:4.1666666667%;-webkit-box-flex:0;-ms-flex:0 0 4.1666666667%;flex:0 0 4.1666666667%}.el-col-xl-2,.el-col-xl-3{display:block;-webkit-box-flex:0}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{max-width:8.3333333333%;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{max-width:12.5%;-ms-flex:0 0 12.5%;flex:0 0 12.5%}.el-col-xl-4,.el-col-xl-5{display:block;-webkit-box-flex:0}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{max-width:16.6666666667%;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{max-width:20.8333333333%;-ms-flex:0 0 20.8333333333%;flex:0 0 20.8333333333%}.el-col-xl-6,.el-col-xl-7{display:block;-webkit-box-flex:0}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{max-width:25%;-ms-flex:0 0 25%;flex:0 0 25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{max-width:29.1666666667%;-ms-flex:0 0 29.1666666667%;flex:0 0 29.1666666667%}.el-col-xl-8,.el-col-xl-9{display:block;-webkit-box-flex:0}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{max-width:33.3333333333%;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{max-width:37.5%;-ms-flex:0 0 37.5%;flex:0 0 37.5%}.el-col-xl-10,.el-col-xl-11{display:block;-webkit-box-flex:0}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{max-width:41.6666666667%;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{max-width:45.8333333333%;-ms-flex:0 0 45.8333333333%;flex:0 0 45.8333333333%}.el-col-xl-12,.el-col-xl-13{display:block;-webkit-box-flex:0}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{max-width:50%;-ms-flex:0 0 50%;flex:0 0 50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{max-width:54.1666666667%;-ms-flex:0 0 54.1666666667%;flex:0 0 54.1666666667%}.el-col-xl-14,.el-col-xl-15{display:block;-webkit-box-flex:0}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{max-width:58.3333333333%;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{max-width:62.5%;-ms-flex:0 0 62.5%;flex:0 0 62.5%}.el-col-xl-16,.el-col-xl-17{display:block;-webkit-box-flex:0}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{max-width:66.6666666667%;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{max-width:70.8333333333%;-ms-flex:0 0 70.8333333333%;flex:0 0 70.8333333333%}.el-col-xl-18,.el-col-xl-19{display:block;-webkit-box-flex:0}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{max-width:75%;-ms-flex:0 0 75%;flex:0 0 75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{max-width:79.1666666667%;-ms-flex:0 0 79.1666666667%;flex:0 0 79.1666666667%}.el-col-xl-20,.el-col-xl-21{display:block;-webkit-box-flex:0}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{max-width:83.3333333333%;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{max-width:87.5%;-ms-flex:0 0 87.5%;flex:0 0 87.5%}.el-col-xl-22,.el-col-xl-23{-webkit-box-flex:0;display:block}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{max-width:91.6666666667%;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{max-width:95.8333333333%;-ms-flex:0 0 95.8333333333%;flex:0 0 95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{display:block;max-width:100%;-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}@-webkit-keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}100%{left:100%}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;cursor:pointer;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#409eff;color:#409eff}.el-upload:focus .el-upload-dragger{border-color:#409eff}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:360px;height:180px;text-align:center;cursor:pointer;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#c0c4cc;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dcdfe6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#409eff;font-style:normal}.el-upload-dragger:hover{border-color:#409eff}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #409eff}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{-webkit-transition:all .5s cubic-bezier(.55,0,.1,1);transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#67c23a}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#409eff}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#409eff;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;-webkit-transition:color .3s;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#409eff}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);-webkit-transition:opacity .3s;transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions::after{display:inline-block;height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:0 0;-webkit-box-shadow:none;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px;background-color:#fff}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 1px 1px #ccc;box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover::after{display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn span{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{-webkit-transform:translateY(-13px);transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-progress__text{font-size:14px;color:#606266;margin-left:5px;min-width:50px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67c23a}.el-progress.is-success .el-progress__text{color:#67c23a}.el-progress.is-warning .el-progress-bar__inner{background-color:#e6a23c}.el-badge__content,.el-progress.is-exception .el-progress-bar__inner{background-color:#f56c6c}.el-progress.is-warning .el-progress__text{color:#e6a23c}.el-progress.is-exception .el-progress__text{color:#f56c6c}.el-progress-bar{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__header,.el-message{-webkit-box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#ebeef5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#409eff;text-align:right;border-radius:100px;line-height:1;white-space:nowrap;-webkit-transition:width .6s ease;transition:width .6s ease}.el-progress-bar__inner::after{display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}100%{left:100%}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;box-sizing:border-box;border-radius:4px;border-width:1px;border-style:solid;border-color:#ebeef5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,transform .4s,top .4s;transition:opacity .3s,transform .4s,top .4s,-webkit-transform .4s;overflow:hidden;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:focus{outline-width:0}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#409eff}.el-badge__content--success{background-color:#67c23a}.el-badge__content--warning{background-color:#e6a23c}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#f56c6c}.el-card{border-radius:4px;border:1px solid #ebeef5;background-color:#fff;overflow:hidden;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #ebeef5;box-sizing:border-box}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate:active,.el-rate:focus{outline-width:0}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#c0c4cc;-webkit-transition:.3s;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{-webkit-transform:scale(1.15);transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-step.is-vertical,.el-steps{display:-webkit-box;display:-ms-flexbox}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#f5f7fa}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column}.el-step{position:relative;-ms-flex-negative:1;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{-ms-flex-preferred-size:auto!important;flex-basis:auto!important;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.el-step__head.is-success{color:#67c23a;border-color:#67c23a}.el-step__head.is-error{color:#f56c6c;border-color:#f56c6c}.el-step__head.is-finish{color:#409eff;border-color:#409eff}.el-step__icon{position:relative;z-index:1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:24px;height:24px;font-size:14px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#fff;-webkit-transition:.15s ease-out;transition:.15s ease-out}.el-step.is-horizontal,.el-step__icon-inner{display:inline-block}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{-webkit-transform:translateY(1px);transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#c0c4cc}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;-webkit-transition:.15s ease-out;transition:.15s ease-out;-webkit-box-sizing:border-box;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#c0c4cc}.el-step__title.is-success{color:#67c23a}.el-step__title.is-error{color:#f56c6c}.el-step__title.is-finish{color:#409eff}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#c0c4cc}.el-step__description.is-success{color:#67c23a}.el-step__description.is-error{color:#f56c6c}.el-step__description.is-finish{color:#409eff}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{-webkit-transform:scale(.8) translateY(1px);transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-step.is-simple .el-step__arrow::after,.el-step.is-simple .el-step__arrow::before{display:inline-block;position:absolute;height:15px;width:1px;background:#c0c4cc}.el-step.is-simple .el-step__arrow::before{-webkit-transform:rotate(-45deg) translateY(-4px);transform:rotate(-45deg) translateY(-4px);-webkit-transform-origin:0 0;transform-origin:0 0}.el-step.is-simple .el-step__arrow::after{-webkit-transform:rotate(45deg) translateY(4px);transform:rotate(45deg) translateY(4px);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:36px;width:36px;cursor:pointer;-webkit-transition:.3s;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;-webkit-transform:none;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#c0c4cc;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;-webkit-transform:none;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{width:2px;height:15px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;-webkit-transition:.3s;transition:.3s}.el-carousel__item,.el-cascader,.el-tag{display:inline-block}.el-carousel__item,.el-carousel__mask{height:100%;top:0;position:absolute;left:0}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{-webkit-transform:translateY(-50%) translateX(-10px);transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{-webkit-transform:translateY(-50%) translateX(10px);transform:translateY(-50%) translateX(10px);opacity:0}.el-carousel__item{width:100%;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item.is-animating{-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card{width:50%;-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;background-color:#fff;opacity:.24;-webkit-transition:.2s;transition:.2s}.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45,.45);transform:scale(.45,.45)}.collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter-from,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #ebeef5;border-bottom:1px solid #ebeef5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:48px;line-height:48px;background-color:#fff;color:#303133;cursor:pointer;border-bottom:1px solid #ebeef5;font-size:13px;font-weight:500;-webkit-transition:border-bottom-color .3s;transition:border-bottom-color .3s;outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-weight:300}.el-collapse-item__arrow.is-active{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#409eff}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #ebeef5}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word;visibility:visible}.el-popper__arrow,.el-popper__arrow::before{width:10px;height:10px;z-index:-1;position:absolute}.el-popper.is-dark{color:#fff;background:#303133}.el-popper.is-dark .el-popper__arrow::before{background:#303133;right:0}.el-popper.is-light{background:#fff;border:1px solid #e4e7ed}.el-popper.is-light .el-popper__arrow::before{border:1px solid #e4e7ed;background:#fff;right:0}.el-popper.is-pure{padding:0}.el-popper__arrow::before{content:" ";-webkit-transform:rotate(45deg);transform:rotate(45deg);background:#303133;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader__search-input,.el-cascader__tags,.el-tag{-webkit-box-sizing:border-box}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper.is-light[data-popper-placement^=top] .el-popper__arrow::before{border-top-color:transparent;border-left-color:transparent}.el-popper.is-light[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-popper.is-light[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-popper.is-light[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-tag{background-color:#ecf5ff;border-color:#d9ecff;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409eff;border-width:1px;border-style:solid;border-radius:4px;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#409eff}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67c23a}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close::before{display:block}.el-tag--dark{background-color:#409eff;border-color:#409eff;color:#fff}.el-tag--dark.is-hit{border-color:#409eff}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67c23a}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409eff}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.el-cascader{position:relative;font-size:14px;line-height:40px;outline:0}.el-cascader:not(.is-disabled):hover .el-input__inner{cursor:pointer;border-color:#c0c4cc}.el-cascader .el-input .el-input__inner:focus,.el-cascader .el-input.is-focus .el-input__inner{border-color:#409eff}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-icon-arrow-down{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:14px}.el-cascader .el-input .el-icon-arrow-down.is-reverse{-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#c0c4cc}.el-cascader__dropdown{font-size:14px;border-radius:4px}.el-cascader__dropdown.el-popper[role=tooltip]{background:#fff;border:1px solid #e4e7ed;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader__dropdown.el-popper[role=tooltip] .el-popper__arrow::before{border:1px solid #e4e7ed}.el-cascader__dropdown.el-popper[role=tooltip][data-popper-placement^=top] .el-popper__arrow::before{border-top-color:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[role=tooltip][data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[role=tooltip][data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-cascader__dropdown.el-popper[role=tooltip][data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:#f0f2f5}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{-webkit-box-flex:0;-ms-flex:none;flex:none;background-color:#c0c4cc;color:#fff}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:4px}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:14px;color:#606266;text-align:center}.el-cascader__suggestion-item>span,.el-descriptions__label:not(.is-bordered-label){margin-right:10px}.el-cascader__suggestion-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#f5f7fa}.el-cascader__suggestion-item.is-checked{color:#409eff;font-weight:700}.el-cascader__empty-text{margin:10px 0;color:#c0c4cc}.el-cascader__search-input{-webkit-box-flex:1;-ms-flex:1;flex:1;height:24px;min-width:60px;margin:2px 0 2px 15px;padding:0;color:#606266;border:none;outline:0;box-sizing:border-box}.el-cascader__search-input::-webkit-input-placeholder{color:#c0c4cc}.el-cascader__search-input::-moz-placeholder{color:#c0c4cc}.el-cascader__search-input:-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::placeholder{color:#c0c4cc}.el-color-predefine{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{-webkit-box-shadow:0 0 3px 2px #409eff;box-shadow:0 0 3px 2px #409eff}.el-color-predefine__color-selector>div{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px;float:right}.el-color-hue-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:-webkit-gradient(linear,left top,right top,from(#fff),to(rgba(255,255,255,0)));background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:-webkit-gradient(linear,left bottom,left top,from(#000),to(rgba(0,0,0,0)));background:linear-gradient(to top,#000,rgba(0,0,0,0))}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;-webkit-box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,0)),to(white));background:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,0)),to(white));background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper::after{display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#409eff;border-color:#409eff}.el-color-dropdown__link-btn{cursor:pointer;color:#409eff;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#409eff,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:rgba(255,255,255,.7)}.el-color-picker__trigger{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty{font-size:12px;color:#999;position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{display:inline-block;position:absolute;width:100%;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);color:#fff;text-align:center;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;-webkit-box-sizing:content-box;box-sizing:content-box;background-color:#fff;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-color-picker__panel.el-popper{border:1px solid #ebeef5}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-input__inner,.el-textarea__inner{-webkit-box-sizing:border-box;font-size:inherit;width:100%}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;box-sizing:border-box;color:#606266;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:0;border-color:#409eff}.el-textarea .el-input__count{color:#909399;background:#fff;position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea.is-exceed .el-textarea__inner{border-color:#f56c6c}.el-textarea.is-exceed .el-input__count{color:#f56c6c}.el-input{position:relative;font-size:14px;display:inline-block;width:100%;line-height:40px}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner{background:#fff}.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;cursor:pointer;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#fff;line-height:initial;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;color:#606266;display:inline-block;height:40px;line-height:40px;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-input__prefix,.el-input__suffix{top:0;-webkit-transition:all .3s;height:100%;color:#c0c4cc;position:absolute;text-align:center}.el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409eff;outline:0}.el-input__suffix{right:5px;transition:all .3s;pointer-events:none}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px;transition:all .3s}.el-input__icon{width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.el-input__icon:after{height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#f56c6c}.el-input.is-exceed .el-input__suffix .el-input__count{color:#f56c6c}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px;line-height:36px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px;line-height:32px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px;line-height:28px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-button-group>.el-button+.el-button,.el-transfer-panel__item+.el-transfer-panel__item,.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-timeline,.el-transfer,.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-transfer-panel,.el-transfer__buttons{display:inline-block;vertical-align:middle}.el-transfer__buttons{padding:0 30px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #dcdfe6;background-color:#f5f7fa;color:#c0c4cc}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer-panel{border:1px solid #ebeef5;border-radius:4px;overflow:hidden;background:#fff;width:200px;max-height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block!important}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#409eff}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid #ebeef5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#000}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#fff;margin:0;padding:0;border-top:1px solid #ebeef5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer::after{display:inline-block;height:100%;vertical-align:middle}.el-container,.el-timeline-item__node{display:-webkit-box;display:-ms-flexbox}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner::after{height:6px;width:3px;left:4px}.el-container{display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:0}.el-container.is-vertical,.el-drawer{-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal}.el-container.is-vertical{flex-direction:column}.el-header{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-aside{overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-main{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box;padding:20px}.el-footer{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-timeline{margin:0;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid #e4e7ed}.el-timeline-item__icon{color:#fff;font-size:13px}.el-timeline-item__node{position:absolute;background-color:#e4e7ed;border-radius:50%;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-image__error,.el-timeline-item__dot{display:-webkit-box;display:-ms-flexbox;-webkit-box-pack:center}.el-timeline-item__node--normal{left:-1px;width:12px;height:12px}.el-timeline-item__node--large{left:-2px;width:14px;height:14px}.el-timeline-item__node--primary{background-color:#409eff}.el-timeline-item__node--success{background-color:#67c23a}.el-timeline-item__node--warning{background-color:#e6a23c}.el-timeline-item__node--danger{background-color:#f56c6c}.el-timeline-item__node--info{background-color:#909399}.el-timeline-item__dot{position:absolute;display:flex;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;line-height:1;font-size:13px}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:14px;font-weight:500}.el-link.is-underline:hover:after{position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #409eff}.el-link.el-link--default:after,.el-link.el-link--primary.is-underline:hover:after,.el-link.el-link--primary:after{border-color:#409eff}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#409eff}.el-link.el-link--default.is-disabled{color:#c0c4cc}.el-link.el-link--primary{color:#409eff}.el-link.el-link--primary:hover{color:#66b1ff}.el-link.el-link--primary.is-disabled{color:#a0cfff}.el-link.el-link--danger.is-underline:hover:after,.el-link.el-link--danger:after{border-color:#f56c6c}.el-link.el-link--danger{color:#f56c6c}.el-link.el-link--danger:hover{color:#f78989}.el-link.el-link--danger.is-disabled{color:#fab6b6}.el-link.el-link--success.is-underline:hover:after,.el-link.el-link--success:after{border-color:#67c23a}.el-link.el-link--success{color:#67c23a}.el-link.el-link--success:hover{color:#85ce61}.el-link.el-link--success.is-disabled{color:#b3e19d}.el-link.el-link--warning.is-underline:hover:after,.el-link.el-link--warning:after{border-color:#e6a23c}.el-link.el-link--warning{color:#e6a23c}.el-link.el-link--warning:hover{color:#ebb563}.el-link.el-link--warning.is-disabled{color:#f3d19e}.el-link.el-link--info.is-underline:hover:after,.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-divider{background-color:#dcdfe6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#fff;padding:0 20px;font-weight:500;color:#303133;font-size:14px}.el-image__error,.el-image__placeholder{background:#f5f7fa}.el-divider__text.is-left{left:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-divider__text.is-center{left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right,.el-image-viewer__next,.el-image-viewer__prev,.el-page-header__left::after{-webkit-transform:translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}@-webkit-keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-image__error,.el-image__inner,.el-image__placeholder{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top}.el-image__inner--center{position:relative;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:block}.el-image__error{display:flex;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;color:#c0c4cc;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;user-select:none}.el-button,.el-checkbox{-webkit-user-select:none;-moz-user-select:none}.el-button,.el-checkbox,.el-checkbox-button__inner,.el-empty__image img,.el-radio{-ms-user-select:none}.el-image-viewer__close{top:40px;right:40px}.el-image-viewer__canvas{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-image-viewer__actions{left:50%;bottom:30px;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:#606266;border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around}.el-image-viewer__close,.el-image-viewer__next,.el-image-viewer__prev{width:44px;height:44px;font-size:24px;background-color:#606266;border-color:#fff;color:#fff}.el-image-viewer__prev{top:50%;transform:translateY(-50%);left:40px}.el-image-viewer__next{top:50%;transform:translateY(-50%);right:40px;text-indent:2px}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in .3s;animation:viewer-fade-in .3s}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out .3s;animation:viewer-fade-out .3s}@keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes viewer-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-button{display:inline-block;line-height:1;min-height:40px;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button,.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-button:focus,.el-button:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#409eff;color:#409eff}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#fff;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:rgba(255,255,255,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#409eff;border-color:#409eff}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409eff;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409eff;border-color:#409eff;color:#fff}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#fff}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#fff}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67c23a;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67c23a;border-color:#67c23a;color:#fff}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#fff;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#fff}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#fff}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#e6a23c;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#e6a23c;border-color:#e6a23c;color:#fff}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#fff;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#fff}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#fff}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#f56c6c;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#f56c6c;border-color:#f56c6c;color:#fff}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#fff;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff;outline:0}.el-button--info.is-active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--medium{min-height:36px;padding:10px 20px;font-size:14px;border-radius:4px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small{min-height:32px;padding:9px 15px;font-size:12px;border-radius:3px}.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini{min-height:28px;font-size:12px;border-radius:3px}.el-button--mini.is-circle{padding:7px}.el-button--text{border-color:transparent;color:#409eff;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;border-color:transparent;background-color:transparent}.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover{border-color:transparent}.el-button-group .el-button--danger:last-child,.el-button-group .el-button--danger:not(:first-child):not(:last-child),.el-button-group .el-button--info:last-child,.el-button-group .el-button--info:not(:first-child):not(:last-child),.el-button-group .el-button--primary:last-child,.el-button-group .el-button--primary:not(:first-child):not(:last-child),.el-button-group .el-button--success:last-child,.el-button-group .el-button--success:not(:first-child):not(:last-child),.el-button-group .el-button--warning:last-child,.el-button-group .el-button--warning:not(:first-child):not(:last-child),.el-button-group>.el-dropdown>.el-button{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:first-child,.el-button-group .el-button--danger:not(:first-child):not(:last-child),.el-button-group .el-button--info:first-child,.el-button-group .el-button--info:not(:first-child):not(:last-child),.el-button-group .el-button--primary:first-child,.el-button-group .el-button--primary:not(:first-child):not(:last-child),.el-button-group .el-button--success:first-child,.el-button-group .el-button--success:not(:first-child):not(:last-child),.el-button-group .el-button--warning:first-child,.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-right-color:rgba(255,255,255,.5)}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group::after,.el-button-group::before{display:table}.el-button-group::after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button.is-active,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0}.el-calendar{background-color:#fff}.el-calendar__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #ebeef5}.el-calendar__title{color:#000;-ms-flex-item-align:center;align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:#606266;font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#c0c4cc}.el-backtop,.el-calendar-table td.is-today{color:#409eff}.el-calendar-table td{border-bottom:1px solid #ebeef5;border-right:1px solid #ebeef5;vertical-align:top;-webkit-transition:background-color .2s ease;transition:background-color .2s ease}.el-calendar-table td.is-selected{background-color:#f2f8fe}.el-calendar-table tr:first-child td{border-top:1px solid #ebeef5}.el-calendar-table tr td:first-child{border-left:1px solid #ebeef5}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px;height:85px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:#f2f8fe}.el-backtop{position:fixed;background-color:#fff;width:40px;height:40px;border-radius:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:20px;-webkit-box-shadow:0 0 6px rgba(0,0,0,.12);box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#f2f6fc}.el-page-header{display:-webkit-box;display:-ms-flexbox;display:flex;line-height:24px}.el-page-header__left{display:-webkit-box;display:-ms-flexbox;display:flex;cursor:pointer;margin-right:40px;position:relative}.el-page-header__left::after{position:absolute;width:1px;height:16px;right:-20px;top:50%;transform:translateY(-50%);background-color:#dcdfe6}.el-page-header__icon{font-size:18px;margin-right:6px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-checkbox,.el-checkbox__input{display:inline-block;position:relative;white-space:nowrap}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;user-select:none;margin-right:30px}.el-checkbox-button__inner,.el-empty__image img,.el-radio{-webkit-user-select:none;-moz-user-select:none}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409eff}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner::after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409eff;border-color:#409eff}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner::after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409eff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409eff}.el-checkbox__input.is-indeterminate .el-checkbox__inner::before{position:absolute;display:block;background-color:#fff;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409eff}.el-checkbox__inner::after{-webkit-box-sizing:content-box;box-sizing:content-box;border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s ease-in 50ms;transition:-webkit-transform .15s ease-in 50ms;transition:transform .15s ease-in 50ms;transition:transform .15s ease-in 50ms,-webkit-transform .15s ease-in 50ms;-webkit-transform-origin:center;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409eff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-radio,.el-radio__input{line-height:1;position:relative}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;-webkit-box-shadow:-1px 0 0 0 #8cc5ff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409eff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;-webkit-box-shadow:none;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409eff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-radio{color:#606266;font-weight:500;cursor:pointer;display:inline-block;white-space:nowrap;outline:0;font-size:14px;margin-right:30px}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#409eff}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#ebeef5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner::after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner::after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409eff;background:#409eff}.el-radio__input.is-checked .el-radio__inner::after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409eff}.el-radio__input.is-focus .el-radio__inner{border-color:#409eff}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;position:relative;cursor:pointer;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box}.el-radio__inner:hover{border-color:#409eff}.el-radio__inner::after{width:4px;height:4px;border-radius:100%;background-color:#fff;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s ease-in;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #409eff;box-shadow:0 0 2px 2px #409eff}.el-radio__label{font-size:14px;padding-left:10px}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{-webkit-transition:opacity 340ms ease-out;transition:opacity 340ms ease-out}.el-scrollbar-fade-leave-active{-webkit-transition:opacity 120ms ease-out;transition:opacity 120ms ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-cascader-panel{display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:4px;font-size:14px}.el-cascader-panel.is-bordered{border:1px solid #e4e7ed;border-radius:4px}.el-cascader-menu{min-width:180px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;border-right:solid 1px #e4e7ed}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center;color:#c0c4cc}.el-cascader-node{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#409eff;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#f5f7fa}.el-cascader-node.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:left;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden;color:#fff;background:#c0c4cc;width:40px;height:40px;line-height:40px;font-size:14px}.el-drawer,.el-drawer__body>*,.el-empty{-webkit-box-sizing:border-box}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-empty__image img,.el-empty__image svg{vertical-align:top;height:100%;width:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px}@-webkit-keyframes el-drawer-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes el-drawer-fade-in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes rtl-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(100%,0);transform:translate(100%,0)}}@keyframes rtl-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(100%,0);transform:translate(100%,0)}}@-webkit-keyframes ltr-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}}@keyframes ltr-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}}@-webkit-keyframes ttb-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}}@keyframes ttb-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}}@-webkit-keyframes btt-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,100%);transform:translate(0,100%)}}@keyframes btt-drawer-animation{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(0,100%);transform:translate(0,100%)}}.el-drawer{position:absolute;box-sizing:border-box;background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;flex-direction:column;-webkit-box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);overflow:hidden}.el-drawer__header,.el-popconfirm__main{display:-webkit-box;display:-ms-flexbox}.el-drawer-fade-enter-active .el-drawer.rtl{animation:rtl-drawer-animation .3s linear reverse}.el-drawer-fade-leave-active .el-drawer.rtl{-webkit-animation:rtl-drawer-animation .3s linear;animation:rtl-drawer-animation .3s linear}.el-drawer-fade-enter-active .el-drawer.ltr{animation:ltr-drawer-animation .3s linear reverse}.el-drawer-fade-leave-active .el-drawer.ltr{-webkit-animation:ltr-drawer-animation .3s linear;animation:ltr-drawer-animation .3s linear}.el-drawer-fade-enter-active .el-drawer.ttb{animation:ttb-drawer-animation .3s linear reverse}.el-drawer-fade-leave-active .el-drawer.ttb{-webkit-animation:ttb-drawer-animation .3s linear;animation:ttb-drawer-animation .3s linear}.el-drawer-fade-enter-active .el-drawer.btt{animation:btt-drawer-animation .3s linear reverse}.el-drawer-fade-leave-active .el-drawer.btt{-webkit-animation:btt-drawer-animation .3s linear;animation:btt-drawer-animation .3s linear}.el-drawer__header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:20px 20px 0}.el-drawer__header>:first-child{-webkit-box-flex:1;-ms-flex:1;flex:1}.el-drawer__title{margin:0;-webkit-box-flex:1;-ms-flex:1;flex:1;line-height:inherit;font-size:1rem}.el-drawer__close-btn{border:none;cursor:pointer;font-size:20px;color:inherit;background-color:transparent;outline:0}.el-drawer__close-btn:hover i{color:#409eff}.el-drawer__body{-webkit-box-flex:1;-ms-flex:1;flex:1}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active{-webkit-animation:el-drawer-fade-in .3s;animation:el-drawer-fade-in .3s;overflow:hidden!important}.el-drawer-fade-leave-active{overflow:hidden!important;animation:el-drawer-fade-in .3s reverse}.el-overlay,.el-vl__viewport{overflow:auto}.el-popconfirm__main{display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:rgba(0,0,0,.5)}.el-overlay .el-overlay-root{height:0}.el-vl__content{overflow:hidden;will-change:transform;position:relative}.el-vl__item-container{will-change:transform;display:-webkit-box;display:-ms-flexbox;display:flex}.el-vl__item-container[data-direction=v]{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.el-vl__item-container[data-direction=h]{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.el-empty,.el-result,.el-space--vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal}.el-space{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.el-space--vertical{-ms-flex-direction:column;flex-direction:column}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:#f2f2f2}.el-skeleton.is-animated .el-skeleton__item{background:-webkit-gradient(linear,left top,right top,color-stop(25%,#f2f2f2),color-stop(37%,#e6e6e6),color-stop(63%,#f2f2f2));background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.el-skeleton__item{background:#f2f2f2;display:inline-block;height:16px;border-radius:4px;width:100%}.el-skeleton__circle{border-radius:50%;width:36px;height:36px;line-height:36px}.el-skeleton__circle--lg{width:40px;height:40px;line-height:40px}.el-skeleton__circle--md{width:28px;height:28px;line-height:28px}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:13px}.el-skeleton__caption{height:12px}.el-skeleton__h1{height:20px}.el-skeleton__h3{height:18px}.el-skeleton__h5{height:16px}.el-skeleton__image{width:unset;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:0}.el-descriptions__header,.el-empty{display:-webkit-box;display:-ms-flexbox}.el-skeleton__image svg{fill:#dcdde0;width:22%;height:22%}.el-empty{display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-direction:column;flex-direction:column;text-align:center;box-sizing:border-box;padding:40px 0}.el-descriptions,.el-result{-webkit-box-sizing:border-box}.el-empty__image{width:160px}.el-empty__image img{user-select:none;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{fill:#dcdde0}.el-empty__description{margin-top:20px}.el-empty__description p{margin:0;font-size:14px;color:#909399}.el-empty__bottom,.el-result__title{margin-top:20px}.el-affix--fixed{position:fixed}.el-check-tag{background-color:#f5f7fa;border-radius:4px;color:#909399;cursor:pointer;display:inline-block;font-size:14px;line-height:14px;padding:7px 15px;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);font-weight:700}.el-check-tag:hover{background-color:#dcdfe6}.el-check-tag.is-checked{background-color:#deedfc;color:#53a8ff}.el-check-tag.is-checked:hover{background-color:#c6e2ff}.el-descriptions{box-sizing:border-box;font-size:14px;color:#303133}.el-descriptions__header{display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:20px}.el-descriptions__title{font-size:16px;font-weight:700}.el-descriptions--mini,.el-descriptions--small{font-size:12px}.el-descriptions__body{color:#606266;background-color:#fff}.el-descriptions__body table{border-collapse:collapse;width:100%}.el-descriptions__body table td,.el-descriptions__body table th{text-align:left;font-weight:400;line-height:1.5}.el-descriptions .is-bordered td,.el-descriptions .is-bordered th{border:1px solid #ebeef5;padding:12px 10px}.el-descriptions :not(.is-bordered) td,.el-descriptions :not(.is-bordered) th{padding-bottom:12px}.el-descriptions--medium.is-bordered td,.el-descriptions--medium.is-bordered th{padding:10px}.el-descriptions--medium:not(.is-bordered) td,.el-descriptions--medium:not(.is-bordered) th{padding-bottom:10px}.el-descriptions--small.is-bordered td,.el-descriptions--small.is-bordered th{padding:8px 10px}.el-descriptions--small:not(.is-bordered) td,.el-descriptions--small:not(.is-bordered) th{padding-bottom:8px}.el-descriptions--mini.is-bordered td,.el-descriptions--mini.is-bordered th{padding:6px 10px}.el-descriptions--mini:not(.is-bordered) td,.el-descriptions--mini:not(.is-bordered) th{padding-bottom:6px}.el-descriptions__label.is-bordered-label{font-weight:700;color:#909399;background:#fafafa}.el-result{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-direction:column;flex-direction:column;text-align:center;box-sizing:border-box;padding:40px 30px}.el-result__icon svg{width:64px;height:64px}.el-result__title p{margin:0;font-size:20px;color:#303133;line-height:1.3}.el-result__subtitle{margin-top:10px}.el-result__subtitle p{margin:0;font-size:14px;color:#606266;line-height:1.3}.el-result__extra{margin-top:30px}.el-result .icon-success{fill:#67c23a}.el-result .icon-error{fill:#f56c6c}.el-result .icon-info{fill:#909399}.el-result .icon-warning{fill:#e6a23c}a[data-v-4f9cc77c]{color:#42b983}label[data-v-4f9cc77c]{margin:0 .5em;font-weight:700}code[data-v-4f9cc77c]{background-color:#eee;padding:2px 4px;border-radius:4px;color:#304455}#echarts-spa-app[data-v-09a45116]{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50;position:absolute;left:0;right:0;top:0;bottom:0}
\ No newline at end of file
diff --git a/zh/bar-race/assets/vendor.82c46759.js b/zh/bar-race/assets/vendor.82c46759.js
new file mode 100644
index 0000000..d3b3c47
--- /dev/null
+++ b/zh/bar-race/assets/vendor.82c46759.js
@@ -0,0 +1,64 @@
+function e(e,t){const n=Object.create(null),l=e.split(",");for(let a=0;a<l.length;a++)n[l[a]]=!0;return t?e=>!!n[e.toLowerCase()]:e=>!!n[e]}const t=e("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt"),n=e("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function l(e){if(w(e)){const t={};for(let n=0;n<e.length;n++){const a=e[n],o=l(O(a)?r(a):a);if(o)for(const e in o)t[e]=o[e]}return t}if(D(e))return e}const a=/;(?![^(]*\))/g,o=/:(.+)/;function r(e){const t={};return e.split(a).forEach((e=>{if(e){const n=e.split(o);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function i(e){let t="";if(O(e))t=e;else if(w(e))for(let n=0;n<e.length;n++){const l=i(e[n]);l&&(t+=l+" ")}else if(D(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}function s(e,t){if(e===t)return!0;let n=E(e),l=E(t);if(n||l)return!(!n||!l)&&e.getTime()===t.getTime();if(n=w(e),l=w(t),n||l)return!(!n||!l)&&function(e,t){if(e.length!==t.length)return!1;let n=!0;for(let l=0;n&&l<e.length;l++)n=s(e[l],t[l]);return n}(e,t);if(n=D(e),l=D(t),n||l){if(!n||!l)return!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e){const l=e.hasOwnProperty(n),a=t.hasOwnProperty(n);if(l&&!a||!l&&a||!s(e[n],t[n]))return!1}}return String(e)===String(t)}function u(e,t){return e.findIndex((e=>s(e,t)))}const c=e=>null==e?"":D(e)?JSON.stringify(e,d,2):String(e),d=(e,t)=>C(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n])=>(e[`${t} =>`]=n,e)),{})}:S(t)?{[`Set(${t.size})`]:[...t.values()]}:!D(t)||w(t)||P(t)?t:String(t),p={},f=[],h=()=>{},v=()=>!1,m=/^on[^a-z]/,g=e=>m.test(e),y=e=>e.startsWith("onUpdate:"),b=Object.assign,_=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},k=Object.prototype.hasOwnProperty,x=(e,t)=>k.call(e,t),w=Array.isArray,C=e=>"[object Map]"===A(e),S=e=>"[object Set]"===A(e),E=e=>e instanceof Date,M=e=>"function"==typeof e,O=e=>"string"==typeof e,T=e=>"symbol"==typeof e,D=e=>null!==e&&"object"==typeof e,L=e=>D(e)&&M(e.then)&&M(e.catch),N=Object.prototype.toString,A=e=>N.call(e),P=e=>"[object Object]"===A(e),I=e=>O(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,F=e(",key,ref,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),V=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},B=/-(\w)/g,$=V((e=>e.replace(B,((e,t)=>t?t.toUpperCase():"")))),z=/\B([A-Z])/g,j=V((e=>e.replace(z,"-$1").toLowerCase())),R=V((e=>e.charAt(0).toUpperCase()+e.slice(1))),H=V((e=>e?`on${R(e)}`:"")),W=(e,t)=>e!==t&&(e==e||t==t),Y=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},q=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},K=e=>{const t=parseFloat(e);return isNaN(t)?e:t},U=new WeakMap,G=[];let X;const Z=Symbol(""),J=Symbol("");function Q(e,t=p){(function(e){return e&&!0===e._isEffect})(e)&&(e=e.raw);const n=function(e,t){const n=function(){if(!n.active)return t.scheduler?void 0:e();if(!G.includes(n)){ne(n);try{return ae.push(le),le=!0,G.push(n),X=n,e()}finally{G.pop(),re(),X=G[G.length-1]}}};return n.id=te++,n.allowRecurse=!!t.allowRecurse,n._isEffect=!0,n.active=!0,n.raw=e,n.deps=[],n.options=t,n}(e,t);return t.lazy||n(),n}function ee(e){e.active&&(ne(e),e.options.onStop&&e.options.onStop(),e.active=!1)}let te=0;function ne(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let le=!0;const ae=[];function oe(){ae.push(le),le=!1}function re(){const e=ae.pop();le=void 0===e||e}function ie(e,t,n){if(!le||void 0===X)return;let l=U.get(e);l||U.set(e,l=new Map);let a=l.get(n);a||l.set(n,a=new Set),a.has(X)||(a.add(X),X.deps.push(a))}function se(e,t,n,l,a,o){const r=U.get(e);if(!r)return;const i=new Set,s=e=>{e&&e.forEach((e=>{(e!==X||e.allowRecurse)&&i.add(e)}))};if("clear"===t)r.forEach(s);else if("length"===n&&w(e))r.forEach(((e,t)=>{("length"===t||t>=l)&&s(e)}));else switch(void 0!==n&&s(r.get(n)),t){case"add":w(e)?I(n)&&s(r.get("length")):(s(r.get(Z)),C(e)&&s(r.get(J)));break;case"delete":w(e)||(s(r.get(Z)),C(e)&&s(r.get(J)));break;case"set":C(e)&&s(r.get(Z))}i.forEach((e=>{e.options.scheduler?e.options.scheduler(e):e()}))}const ue=e("__proto__,__v_isRef,__isVue"),ce=new Set(Object.getOwnPropertyNames(Symbol).map((e=>Symbol[e])).filter(T)),de=me(),pe=me(!1,!0),fe=me(!0),he=me(!0,!0),ve={};function me(e=!1,t=!1){return function(n,l,a){if("__v_isReactive"===l)return!e;if("__v_isReadonly"===l)return e;if("__v_raw"===l&&a===(e?t?qe:Ye:t?We:He).get(n))return n;const o=w(n);if(!e&&o&&x(ve,l))return Reflect.get(ve,l,a);const r=Reflect.get(n,l,a);if(T(l)?ce.has(l):ue(l))return r;if(e||ie(n,0,l),t)return r;if(nt(r)){return!o||!I(l)?r.value:r}return D(r)?e?Ge(r):Ue(r):r}}["includes","indexOf","lastIndexOf"].forEach((e=>{const t=Array.prototype[e];ve[e]=function(...e){const n=et(this);for(let t=0,a=this.length;t<a;t++)ie(n,0,t+"");const l=t.apply(n,e);return-1===l||!1===l?t.apply(n,e.map(et)):l}})),["push","pop","shift","unshift","splice"].forEach((e=>{const t=Array.prototype[e];ve[e]=function(...e){oe();const n=t.apply(this,e);return re(),n}}));function ge(e=!1){return function(t,n,l,a){let o=t[n];if(!e&&(l=et(l),o=et(o),!w(t)&&nt(o)&&!nt(l)))return o.value=l,!0;const r=w(t)&&I(n)?Number(n)<t.length:x(t,n),i=Reflect.set(t,n,l,a);return t===et(a)&&(r?W(l,o)&&se(t,"set",n,l):se(t,"add",n,l)),i}}const ye={get:de,set:ge(),deleteProperty:function(e,t){const n=x(e,t);e[t];const l=Reflect.deleteProperty(e,t);return l&&n&&se(e,"delete",t,void 0),l},has:function(e,t){const n=Reflect.has(e,t);return T(t)&&ce.has(t)||ie(e,0,t),n},ownKeys:function(e){return ie(e,0,w(e)?"length":Z),Reflect.ownKeys(e)}},be={get:fe,set:(e,t)=>!0,deleteProperty:(e,t)=>!0},_e=b({},ye,{get:pe,set:ge(!0)});b({},be,{get:he});const ke=e=>D(e)?Ue(e):e,xe=e=>D(e)?Ge(e):e,we=e=>e,Ce=e=>Reflect.getPrototypeOf(e);function Se(e,t,n=!1,l=!1){const a=et(e=e.__v_raw),o=et(t);t!==o&&!n&&ie(a,0,t),!n&&ie(a,0,o);const{has:r}=Ce(a),i=l?we:n?xe:ke;return r.call(a,t)?i(e.get(t)):r.call(a,o)?i(e.get(o)):void 0}function Ee(e,t=!1){const n=this.__v_raw,l=et(n),a=et(e);return e!==a&&!t&&ie(l,0,e),!t&&ie(l,0,a),e===a?n.has(e):n.has(e)||n.has(a)}function Me(e,t=!1){return e=e.__v_raw,!t&&ie(et(e),0,Z),Reflect.get(e,"size",e)}function Oe(e){e=et(e);const t=et(this);return Ce(t).has.call(t,e)||(t.add(e),se(t,"add",e,e)),this}function Te(e,t){t=et(t);const n=et(this),{has:l,get:a}=Ce(n);let o=l.call(n,e);o||(e=et(e),o=l.call(n,e));const r=a.call(n,e);return n.set(e,t),o?W(t,r)&&se(n,"set",e,t):se(n,"add",e,t),this}function De(e){const t=et(this),{has:n,get:l}=Ce(t);let a=n.call(t,e);a||(e=et(e),a=n.call(t,e)),l&&l.call(t,e);const o=t.delete(e);return a&&se(t,"delete",e,void 0),o}function Le(){const e=et(this),t=0!==e.size,n=e.clear();return t&&se(e,"clear",void 0,void 0),n}function Ne(e,t){return function(n,l){const a=this,o=a.__v_raw,r=et(o),i=t?we:e?xe:ke;return!e&&ie(r,0,Z),o.forEach(((e,t)=>n.call(l,i(e),i(t),a)))}}function Ae(e,t,n){return function(...l){const a=this.__v_raw,o=et(a),r=C(o),i="entries"===e||e===Symbol.iterator&&r,s="keys"===e&&r,u=a[e](...l),c=n?we:t?xe:ke;return!t&&ie(o,0,s?J:Z),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:i?[c(e[0]),c(e[1])]:c(e),done:t}},[Symbol.iterator](){return this}}}}function Pe(e){return function(...t){return"delete"!==e&&this}}const Ie={get(e){return Se(this,e)},get size(){return Me(this)},has:Ee,add:Oe,set:Te,delete:De,clear:Le,forEach:Ne(!1,!1)},Fe={get(e){return Se(this,e,!1,!0)},get size(){return Me(this)},has:Ee,add:Oe,set:Te,delete:De,clear:Le,forEach:Ne(!1,!0)},Ve={get(e){return Se(this,e,!0)},get size(){return Me(this,!0)},has(e){return Ee.call(this,e,!0)},add:Pe("add"),set:Pe("set"),delete:Pe("delete"),clear:Pe("clear"),forEach:Ne(!0,!1)},Be={get(e){return Se(this,e,!0,!0)},get size(){return Me(this,!0)},has(e){return Ee.call(this,e,!0)},add:Pe("add"),set:Pe("set"),delete:Pe("delete"),clear:Pe("clear"),forEach:Ne(!0,!0)};function $e(e,t){const n=t?e?Be:Fe:e?Ve:Ie;return(t,l,a)=>"__v_isReactive"===l?!e:"__v_isReadonly"===l?e:"__v_raw"===l?t:Reflect.get(x(n,l)&&l in t?n:t,l,a)}["keys","values","entries",Symbol.iterator].forEach((e=>{Ie[e]=Ae(e,!1,!1),Ve[e]=Ae(e,!0,!1),Fe[e]=Ae(e,!1,!0),Be[e]=Ae(e,!0,!0)}));const ze={get:$e(!1,!1)},je={get:$e(!1,!0)},Re={get:$e(!0,!1)},He=new WeakMap,We=new WeakMap,Ye=new WeakMap,qe=new WeakMap;function Ke(e){return e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>A(e).slice(8,-1))(e))}function Ue(e){return e&&e.__v_isReadonly?e:Xe(e,!1,ye,ze,He)}function Ge(e){return Xe(e,!0,be,Re,Ye)}function Xe(e,t,n,l,a){if(!D(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const o=a.get(e);if(o)return o;const r=Ke(e);if(0===r)return e;const i=new Proxy(e,2===r?l:n);return a.set(e,i),i}function Ze(e){return Je(e)?Ze(e.__v_raw):!(!e||!e.__v_isReactive)}function Je(e){return!(!e||!e.__v_isReadonly)}function Qe(e){return Ze(e)||Je(e)}function et(e){return e&&et(e.__v_raw)||e}const tt=e=>D(e)?Ue(e):e;function nt(e){return Boolean(e&&!0===e.__v_isRef)}function lt(e){return rt(e)}function at(e){return rt(e,!0)}class ot{constructor(e,t=!1){this._rawValue=e,this._shallow=t,this.__v_isRef=!0,this._value=t?e:tt(e)}get value(){return ie(et(this),0,"value"),this._value}set value(e){W(et(e),this._rawValue)&&(this._rawValue=e,this._value=this._shallow?e:tt(e),se(et(this),"set","value",e))}}function rt(e,t=!1){return nt(e)?e:new ot(e,t)}function it(e){return nt(e)?e.value:e}const st={get:(e,t,n)=>it(Reflect.get(e,t,n)),set:(e,t,n,l)=>{const a=e[t];return nt(a)&&!nt(n)?(a.value=n,!0):Reflect.set(e,t,n,l)}};function ut(e){return Ze(e)?e:new Proxy(e,st)}function ct(e){const t=w(e)?new Array(e.length):{};for(const n in e)t[n]=pt(e,n);return t}class dt{constructor(e,t){this._object=e,this._key=t,this.__v_isRef=!0}get value(){return this._object[this._key]}set value(e){this._object[this._key]=e}}function pt(e,t){return nt(e[t])?e[t]:new dt(e,t)}class ft{constructor(e,t,n){this._setter=t,this._dirty=!0,this.__v_isRef=!0,this.effect=Q(e,{lazy:!0,scheduler:()=>{this._dirty||(this._dirty=!0,se(et(this),"set","value"))}}),this.__v_isReadonly=n}get value(){const e=et(this);return e._dirty&&(e._value=this.effect(),e._dirty=!1),ie(e,0,"value"),e._value}set value(e){this._setter(e)}}function ht(e,t,n,l){let a;try{a=l?e(...l):e()}catch(o){mt(o,t,n)}return a}function vt(e,t,n,l){if(M(e)){const a=ht(e,t,n,l);return a&&L(a)&&a.catch((e=>{mt(e,t,n)})),a}const a=[];for(let o=0;o<e.length;o++)a.push(vt(e[o],t,n,l));return a}function mt(e,t,n,l=!0){t&&t.vnode;if(t){let l=t.parent;const a=t.proxy,o=n;for(;l;){const t=l.ec;if(t)for(let n=0;n<t.length;n++)if(!1===t[n](e,a,o))return;l=l.parent}const r=t.appContext.config.errorHandler;if(r)return void ht(r,null,10,[e,a,o])}!function(e,t,n,l=!0){console.error(e)}(e,0,0,l)}let gt=!1,yt=!1;const bt=[];let _t=0;const kt=[];let xt=null,wt=0;const Ct=[];let St=null,Et=0;const Mt=Promise.resolve();let Ot=null,Tt=null;function Dt(e){const t=Ot||Mt;return e?t.then(this?e.bind(this):e):t}function Lt(e){if(!(bt.length&&bt.includes(e,gt&&e.allowRecurse?_t+1:_t)||e===Tt)){const t=function(e){let t=_t+1,n=bt.length;const l=Ft(e);for(;t<n;){const e=t+n>>>1;Ft(bt[e])<l?t=e+1:n=e}return t}(e);t>-1?bt.splice(t,0,e):bt.push(e),Nt()}}function Nt(){gt||yt||(yt=!0,Ot=Mt.then(Vt))}function At(e,t,n,l){w(e)?n.push(...e):t&&t.includes(e,e.allowRecurse?l+1:l)||n.push(e),Nt()}function Pt(e,t=null){if(kt.length){for(Tt=t,xt=[...new Set(kt)],kt.length=0,wt=0;wt<xt.length;wt++)xt[wt]();xt=null,wt=0,Tt=null,Pt(e,t)}}function It(e){if(Ct.length){const e=[...new Set(Ct)];if(Ct.length=0,St)return void St.push(...e);for(St=e,St.sort(((e,t)=>Ft(e)-Ft(t))),Et=0;Et<St.length;Et++)St[Et]();St=null,Et=0}}const Ft=e=>null==e.id?1/0:e.id;function Vt(e){yt=!1,gt=!0,Pt(e),bt.sort(((e,t)=>Ft(e)-Ft(t)));try{for(_t=0;_t<bt.length;_t++){const e=bt[_t];e&&ht(e,null,14)}}finally{_t=0,bt.length=0,It(),gt=!1,Ot=null,(bt.length||Ct.length)&&Vt(e)}}function Bt(e,t,...n){const l=e.vnode.props||p;let a=n;const o=t.startsWith("update:"),r=o&&t.slice(7);if(r&&r in l){const e=`${"modelValue"===r?"model":r}Modifiers`,{number:t,trim:o}=l[e]||p;o?a=n.map((e=>e.trim())):t&&(a=n.map(K))}let i,s=l[i=H(t)]||l[i=H($(t))];!s&&o&&(s=l[i=H(j(t))]),s&&vt(s,e,6,a);const u=l[i+"Once"];if(u){if(e.emitted){if(e.emitted[i])return}else(e.emitted={})[i]=!0;vt(u,e,6,a)}}function $t(e,t,n=!1){if(!t.deopt&&void 0!==e.__emits)return e.__emits;const l=e.emits;let a={},o=!1;if(!M(e)){const l=e=>{const n=$t(e,t,!0);n&&(o=!0,b(a,n))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return l||o?(w(l)?l.forEach((e=>a[e]=null)):b(a,l),e.__emits=a):e.__emits=null}function zt(e,t){return!(!e||!g(t))&&(t=t.slice(2).replace(/Once$/,""),x(e,t[0].toLowerCase()+t.slice(1))||x(e,j(t))||x(e,t))}let jt=0;const Rt=e=>jt+=e;function Ht(e,t,n={},l,a){let o=e[t];jt++,wl();const r=o&&Wt(o(n)),i=Sl(gl,{key:n.key||`_${t}`},r||(l?l():[]),r&&1===e._?64:-2);return!a&&i.scopeId&&(i.slotScopeIds=[i.scopeId+"-s"]),jt--,i}function Wt(e){return e.some((e=>!El(e)||e.type!==bl&&!(e.type===gl&&!Wt(e.children))))?e:null}let Yt=null,qt=null;function Kt(e){const t=Yt;return Yt=e,qt=e&&e.type.__scopeId||null,t}function Ut(e){qt=e}function Gt(){qt=null}const Xt=e=>Zt;function Zt(e,t=Yt){if(!t)return e;const n=(...n)=>{jt||wl(!0);const l=Kt(t),a=e(...n);return Kt(l),jt||Cl(),a};return n._c=!0,n}function Jt(e){const{type:t,vnode:n,proxy:l,withProxy:a,props:o,propsOptions:[r],slots:i,attrs:s,emit:u,render:c,renderCache:d,data:p,setupState:f,ctx:h}=e;let v;const m=Kt(e);try{let e;if(4&n.shapeFlag){const t=a||l;v=Il(c.call(t,t,d,o,f,p,h)),e=s}else{const n=t;0,v=Il(n.length>1?n(o,{attrs:s,slots:i,emit:u}):n(o,null)),e=t.props?s:en(s)}let m=v;if(!1!==t.inheritAttrs&&e){const t=Object.keys(e),{shapeFlag:n}=m;t.length&&(1&n||6&n)&&(r&&t.some(y)&&(e=tn(e,r)),m=Nl(m,e))}n.dirs&&(m.dirs=m.dirs?m.dirs.concat(n.dirs):n.dirs),n.transition&&(m.transition=n.transition),v=m}catch(g){kl.length=0,mt(g,e,1),v=Ll(bl)}return Kt(m),v}function Qt(e){let t;for(let n=0;n<e.length;n++){const l=e[n];if(!El(l))return;if(l.type!==bl||"v-if"===l.children){if(t)return;t=l}}return t}const en=e=>{let t;for(const n in e)("class"===n||"style"===n||g(n))&&((t||(t={}))[n]=e[n]);return t},tn=(e,t)=>{const n={};for(const l in e)y(l)&&l.slice(9)in t||(n[l]=e[l]);return n};function nn(e,t,n){const l=Object.keys(t);if(l.length!==Object.keys(e).length)return!0;for(let a=0;a<l.length;a++){const o=l[a];if(t[o]!==e[o]&&!zt(n,o))return!0}return!1}function ln(e){if(M(e)&&(e=e()),w(e)){e=Qt(e)}return Il(e)}function an(e,t,n,l=!1){const a={},o={};q(o,Ol,1),e.propsDefaults=Object.create(null),on(e,t,a,o),n?e.props=l?a:Xe(a,!1,_e,je,We):e.type.props?e.props=a:e.props=o,e.attrs=o}function on(e,t,n,l){const[a,o]=e.propsOptions;if(t)for(const r in t){const o=t[r];if(F(r))continue;let i;a&&x(a,i=$(r))?n[i]=o:zt(e.emitsOptions,r)||(l[r]=o)}if(o){const t=et(n);for(let l=0;l<o.length;l++){const r=o[l];n[r]=rn(a,t,r,t[r],e)}}}function rn(e,t,n,l,a){const o=e[n];if(null!=o){const e=x(o,"default");if(e&&void 0===l){const e=o.default;if(o.type!==Function&&M(e)){const{propsDefaults:o}=a;n in o?l=o[n]:(la(a),l=o[n]=e(t),la(null))}else l=e}o[0]&&(x(t,n)||e?!o[1]||""!==l&&l!==j(n)||(l=!0):l=!1)}return l}function sn(e,t,n=!1){if(!t.deopt&&e.__props)return e.__props;const l=e.props,a={},o=[];let r=!1;if(!M(e)){const l=e=>{r=!0;const[n,l]=sn(e,t,!0);b(a,n),l&&o.push(...l)};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}if(!l&&!r)return e.__props=f;if(w(l))for(let i=0;i<l.length;i++){const e=$(l[i]);un(e)&&(a[e]=p)}else if(l)for(const i in l){const e=$(i);if(un(e)){const t=l[i],n=a[e]=w(t)||M(t)?{type:t}:t;if(n){const t=pn(Boolean,n.type),l=pn(String,n.type);n[0]=t>-1,n[1]=l<0||t<l,(t>-1||x(n,"default"))&&o.push(e)}}}return e.__props=[a,o]}function un(e){return"$"!==e[0]}function cn(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:""}function dn(e,t){return cn(e)===cn(t)}function pn(e,t){return w(t)?t.findIndex((t=>dn(t,e))):M(t)&&dn(t,e)?0:-1}function fn(e,t,n=ta,l=!1){if(n){const a=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...l)=>{if(n.isUnmounted)return;oe(),la(n);const a=vt(t,n,e,l);return la(null),re(),a});return l?a.unshift(o):a.push(o),o}}const hn=e=>(t,n=ta)=>!oa&&fn(e,t,n),vn=hn("bm"),mn=hn("m"),gn=hn("bu"),yn=hn("u"),bn=hn("bum"),_n=hn("um"),kn=hn("rtg"),xn=hn("rtc");function wn(e,t){return En(e,null,t)}const Cn={};function Sn(e,t,n){return En(e,t,n)}function En(e,t,{immediate:n,deep:l,flush:a,onTrack:o,onTrigger:r}=p,i=ta){let s,u,c=!1;if(nt(e)?(s=()=>e.value,c=!!e._shallow):Ze(e)?(s=()=>e,l=!0):s=w(e)?()=>e.map((e=>nt(e)?e.value:Ze(e)?On(e):M(e)?ht(e,i,2,[i&&i.proxy]):void 0)):M(e)?t?()=>ht(e,i,2,[i&&i.proxy]):()=>{if(!i||!i.isUnmounted)return u&&u(),vt(e,i,3,[d])}:h,t&&l){const e=s;s=()=>On(e())}let d=e=>{u=g.options.onStop=()=>{ht(e,i,4)}},f=w(e)?[]:Cn;const v=()=>{if(g.active)if(t){const e=g();(l||c||W(e,f))&&(u&&u(),vt(t,i,3,[e,f===Cn?void 0:f,d]),f=e)}else g()};let m;v.allowRecurse=!!t,m="sync"===a?v:"post"===a?()=>tl(v,i&&i.suspense):()=>{!i||i.isMounted?function(e){At(e,xt,kt,wt)}(v):v()};const g=Q(s,{lazy:!0,onTrack:o,onTrigger:r,scheduler:m});return sa(g,i),t?n?v():f=g():"post"===a?tl(g,i&&i.suspense):g(),()=>{ee(g),i&&_(i.effects,g)}}function Mn(e,t,n){const l=this.proxy;return En(O(e)?()=>l[e]:e.bind(l),t.bind(l),n,this)}function On(e,t=new Set){if(!D(e)||t.has(e))return e;if(t.add(e),nt(e))On(e.value,t);else if(w(e))for(let n=0;n<e.length;n++)On(e[n],t);else if(S(e)||C(e))e.forEach((e=>{On(e,t)}));else for(const n in e)On(e[n],t);return e}function Tn(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return mn((()=>{e.isMounted=!0})),bn((()=>{e.isUnmounting=!0})),e}const Dn=[Function,Array],Ln={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Dn,onEnter:Dn,onAfterEnter:Dn,onEnterCancelled:Dn,onBeforeLeave:Dn,onLeave:Dn,onAfterLeave:Dn,onLeaveCancelled:Dn,onBeforeAppear:Dn,onAppear:Dn,onAfterAppear:Dn,onAppearCancelled:Dn},setup(e,{slots:t}){const n=na(),l=Tn();let a;return()=>{const o=t.default&&Vn(t.default(),!0);if(!o||!o.length)return;const r=et(e),{mode:i}=r,s=o[0];if(l.isLeaving)return Pn(s);const u=In(s);if(!u)return Pn(s);const c=An(u,r,l,n);Fn(u,c);const d=n.subTree,p=d&&In(d);let f=!1;const{getTransitionKey:h}=u.type;if(h){const e=h();void 0===a?a=e:e!==a&&(a=e,f=!0)}if(p&&p.type!==bl&&(!Ml(u,p)||f)){const e=An(p,r,l,n);if(Fn(p,e),"out-in"===i)return l.isLeaving=!0,e.afterLeave=()=>{l.isLeaving=!1,n.update()},Pn(s);"in-out"===i&&u.type!==bl&&(e.delayLeave=(e,t,n)=>{Nn(l,p)[String(p.key)]=p,e._leaveCb=()=>{t(),e._leaveCb=void 0,delete c.delayedLeave},c.delayedLeave=n})}return s}}};function Nn(e,t){const{leavingVNodes:n}=e;let l=n.get(t.type);return l||(l=Object.create(null),n.set(t.type,l)),l}function An(e,t,n,l){const{appear:a,mode:o,persisted:r=!1,onBeforeEnter:i,onEnter:s,onAfterEnter:u,onEnterCancelled:c,onBeforeLeave:d,onLeave:p,onAfterLeave:f,onLeaveCancelled:h,onBeforeAppear:v,onAppear:m,onAfterAppear:g,onAppearCancelled:y}=t,b=String(e.key),_=Nn(n,e),k=(e,t)=>{e&&vt(e,l,9,t)},x={mode:o,persisted:r,beforeEnter(t){let l=i;if(!n.isMounted){if(!a)return;l=v||i}t._leaveCb&&t._leaveCb(!0);const o=_[b];o&&Ml(e,o)&&o.el._leaveCb&&o.el._leaveCb(),k(l,[t])},enter(e){let t=s,l=u,o=c;if(!n.isMounted){if(!a)return;t=m||s,l=g||u,o=y||c}let r=!1;const i=e._enterCb=t=>{r||(r=!0,k(t?o:l,[e]),x.delayedLeave&&x.delayedLeave(),e._enterCb=void 0)};t?(t(e,i),t.length<=1&&i()):i()},leave(t,l){const a=String(e.key);if(t._enterCb&&t._enterCb(!0),n.isUnmounting)return l();k(d,[t]);let o=!1;const r=t._leaveCb=n=>{o||(o=!0,l(),k(n?h:f,[t]),t._leaveCb=void 0,_[a]===e&&delete _[a])};_[a]=e,p?(p(t,r),p.length<=1&&r()):r()},clone:e=>An(e,t,n,l)};return x}function Pn(e){if(Bn(e))return(e=Nl(e)).children=null,e}function In(e){return Bn(e)?e.children?e.children[0]:void 0:e}function Fn(e,t){6&e.shapeFlag&&e.component?Fn(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Vn(e,t=!1){let n=[],l=0;for(let a=0;a<e.length;a++){const o=e[a];o.type===gl?(128&o.patchFlag&&l++,n=n.concat(Vn(o.children,t))):(t||o.type!==bl)&&n.push(o)}if(l>1)for(let a=0;a<n.length;a++)n[a].patchFlag=-2;return n}const Bn=e=>e.type.__isKeepAlive;function $n(e,t){jn(e,"a",t)}function zn(e,t){jn(e,"da",t)}function jn(e,t,n=ta){const l=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}e()});if(fn(t,l,n),n){let e=n.parent;for(;e&&e.parent;)Bn(e.parent.vnode)&&Rn(l,t,n,e),e=e.parent}}function Rn(e,t,n,l){const a=fn(t,e,l,!0);_n((()=>{_(l[t],a)}),n)}const Hn=e=>"_"===e[0]||"$stable"===e,Wn=e=>w(e)?e.map(Il):[Il(e)],Yn=(e,t,n)=>Zt((e=>Wn(t(e))),n),qn=(e,t)=>{const n=e._ctx;for(const l in e){if(Hn(l))continue;const a=e[l];if(M(a))t[l]=Yn(0,a,n);else if(null!=a){const e=Wn(a);t[l]=()=>e}}},Kn=(e,t)=>{const n=Wn(t);e.slots.default=()=>n};function Un(e,t){if(null===Yt)return e;const n=Yt.proxy,l=e.dirs||(e.dirs=[]);for(let a=0;a<t.length;a++){let[e,o,r,i=p]=t[a];M(e)&&(e={mounted:e,updated:e}),l.push({dir:e,instance:n,value:o,oldValue:void 0,arg:r,modifiers:i})}return e}function Gn(e,t,n,l){const a=e.dirs,o=t&&t.dirs;for(let r=0;r<a.length;r++){const i=a[r];o&&(i.oldValue=o[r].value);const s=i.dir[l];s&&vt(s,n,8,[e.el,i,e,t])}}function Xn(){return{app:null,config:{isNativeTag:v,performance:!1,globalProperties:{},optionMergeStrategies:{},isCustomElement:v,errorHandler:void 0,warnHandler:void 0},mixins:[],components:{},directives:{},provides:Object.create(null)}}let Zn=0;function Jn(e,t){return function(n,l=null){null==l||D(l)||(l=null);const a=Xn(),o=new Set;let r=!1;const i=a.app={_uid:Zn++,_component:n,_props:l,_container:null,_context:a,version:va,get config(){return a.config},set config(e){},use:(e,...t)=>(o.has(e)||(e&&M(e.install)?(o.add(e),e.install(i,...t)):M(e)&&(o.add(e),e(i,...t))),i),mixin:e=>(a.mixins.includes(e)||(a.mixins.push(e),(e.props||e.emits)&&(a.deopt=!0)),i),component:(e,t)=>t?(a.components[e]=t,i):a.components[e],directive:(e,t)=>t?(a.directives[e]=t,i):a.directives[e],mount(o,s,u){if(!r){const c=Ll(n,l);return c.appContext=a,s&&t?t(c,o):e(c,o,u),r=!0,i._container=o,o.__vue_app__=i,c.component.proxy}},unmount(){r&&(e(null,i._container),delete i._container.__vue_app__)},provide:(e,t)=>(a.provides[e]=t,i)};return i}}function Qn(e){return M(e)?{setup:e,name:e.name}:e}const el={scheduler:Lt,allowRecurse:!0},tl=function(e,t){t&&t.pendingBranch?w(e)?t.effects.push(...e):t.effects.push(e):At(e,St,Ct,Et)},nl=(e,t,n,l)=>{if(w(e))return void e.forEach(((e,a)=>nl(e,t&&(w(t)?t[a]:t),n,l)));let a;if(l){if(l.type.__asyncLoader)return;a=4&l.shapeFlag?l.component.exposed||l.component.proxy:l.el}else a=null;const{i:o,r:r}=e,i=t&&t.r,s=o.refs===p?o.refs={}:o.refs,u=o.setupState;if(null!=i&&i!==r&&(O(i)?(s[i]=null,x(u,i)&&(u[i]=null)):nt(i)&&(i.value=null)),O(r)){const e=()=>{s[r]=a,x(u,r)&&(u[r]=a)};a?(e.id=-1,tl(e,n)):e()}else if(nt(r)){const e=()=>{r.value=a};a?(e.id=-1,tl(e,n)):e()}else M(r)&&ht(r,o,12,[a,s])};function ll(e){return function(e,t){const{insert:n,remove:l,patchProp:a,forcePatchProp:o,createElement:r,createText:i,createComment:s,setText:u,setElementText:c,parentNode:d,nextSibling:v,setScopeId:m=h,cloneNode:g,insertStaticContent:y}=e,_=(e,t,n,l=null,a=null,o=null,r=!1,i=null,s=!1)=>{e&&!Ml(e,t)&&(l=le(e),X(e,a,o,!0),e=null),-2===t.patchFlag&&(s=!1,t.dynamicChildren=null);const{type:u,ref:c,shapeFlag:d}=t;switch(u){case yl:k(e,t,n,l);break;case bl:w(e,t,n,l);break;case _l:null==e&&C(t,n,l,r);break;case gl:I(e,t,n,l,a,o,r,i,s);break;default:1&d?M(e,t,n,l,a,o,r,i,s):6&d?V(e,t,n,l,a,o,r,i,s):(64&d||128&d)&&u.process(e,t,n,l,a,o,r,i,s,ie)}null!=c&&a&&nl(c,e&&e.ref,o,t)},k=(e,t,l,a)=>{if(null==e)n(t.el=i(t.children),l,a);else{const n=t.el=e.el;t.children!==e.children&&u(n,t.children)}},w=(e,t,l,a)=>{null==e?n(t.el=s(t.children||""),l,a):t.el=e.el},C=(e,t,n,l)=>{[e.el,e.anchor]=y(e.children,t,n,l)},S=({el:e,anchor:t},l,a)=>{let o;for(;e&&e!==t;)o=v(e),n(e,l,a),e=o;n(t,l,a)},E=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=v(e),l(e),e=n;l(t)},M=(e,t,n,l,a,o,r,i,s)=>{r=r||"svg"===t.type,null==e?O(t,n,l,a,o,r,i,s):N(e,t,a,o,r,i,s)},O=(e,t,l,o,i,s,u,d)=>{let p,f;const{type:h,props:v,shapeFlag:m,transition:y,patchFlag:b,dirs:_}=e;if(e.el&&void 0!==g&&-1===b)p=e.el=g(e.el);else{if(p=e.el=r(e.type,s,v&&v.is,v),8&m?c(p,e.children):16&m&&D(e.children,p,null,o,i,s&&"foreignObject"!==h,u,d||!!e.dynamicChildren),_&&Gn(e,null,o,"created"),v){for(const t in v)F(t)||a(p,t,null,v[t],s,e.children,o,i,ne);(f=v.onVnodeBeforeMount)&&al(f,o,e)}T(p,e,e.scopeId,u,o)}_&&Gn(e,null,o,"beforeMount");const k=(!i||i&&!i.pendingBranch)&&y&&!y.persisted;k&&y.beforeEnter(p),n(p,t,l),((f=v&&v.onVnodeMounted)||k||_)&&tl((()=>{f&&al(f,o,e),k&&y.enter(p),_&&Gn(e,null,o,"mounted")}),i)},T=(e,t,n,l,a)=>{if(n&&m(e,n),l)for(let o=0;o<l.length;o++)m(e,l[o]);if(a){if(t===a.subTree){const t=a.vnode;T(e,t,t.scopeId,t.slotScopeIds,a.parent)}}},D=(e,t,n,l,a,o,r,i,s=0)=>{for(let u=s;u<e.length;u++){const s=e[u]=r?Fl(e[u]):Il(e[u]);_(null,s,t,n,l,a,o,r,i)}},N=(e,t,n,l,r,i,s)=>{const u=t.el=e.el;let{patchFlag:d,dynamicChildren:f,dirs:h}=t;d|=16&e.patchFlag;const v=e.props||p,m=t.props||p;let g;if((g=m.onVnodeBeforeUpdate)&&al(g,n,t,e),h&&Gn(t,e,n,"beforeUpdate"),d>0){if(16&d)P(u,t,v,m,n,l,r);else if(2&d&&v.class!==m.class&&a(u,"class",null,m.class,r),4&d&&a(u,"style",v.style,m.style,r),8&d){const i=t.dynamicProps;for(let t=0;t<i.length;t++){const s=i[t],c=v[s],d=m[s];(d!==c||o&&o(u,s))&&a(u,s,c,d,r,e.children,n,l,ne)}}1&d&&e.children!==t.children&&c(u,t.children)}else s||null!=f||P(u,t,v,m,n,l,r);const y=r&&"foreignObject"!==t.type;f?A(e.dynamicChildren,f,u,n,l,y,i):s||W(e,t,u,null,n,l,y,i,!1),((g=m.onVnodeUpdated)||h)&&tl((()=>{g&&al(g,n,t,e),h&&Gn(t,e,n,"updated")}),l)},A=(e,t,n,l,a,o,r)=>{for(let i=0;i<t.length;i++){const s=e[i],u=t[i],c=s.type===gl||!Ml(s,u)||6&s.shapeFlag||64&s.shapeFlag?d(s.el):n;_(s,u,c,null,l,a,o,r,!0)}},P=(e,t,n,l,r,i,s)=>{if(n!==l){for(const u in l){if(F(u))continue;const c=l[u],d=n[u];(c!==d||o&&o(e,u))&&a(e,u,d,c,s,t.children,r,i,ne)}if(n!==p)for(const o in n)F(o)||o in l||a(e,o,n[o],null,s,t.children,r,i,ne)}},I=(e,t,l,a,o,r,s,u,c)=>{const d=t.el=e?e.el:i(""),p=t.anchor=e?e.anchor:i("");let{patchFlag:f,dynamicChildren:h,slotScopeIds:v}=t;f>0&&(c=!0),v&&(u=u?u.concat(v):v),null==e?(n(d,l,a),n(p,l,a),D(t.children,l,p,o,r,s,u,c)):f>0&&64&f&&h&&e.dynamicChildren?(A(e.dynamicChildren,h,l,o,r,s,u),(null!=t.key||o&&t===o.subTree)&&ol(e,t,!0)):W(e,t,l,p,o,r,s,u,c)},V=(e,t,n,l,a,o,r,i,s)=>{t.slotScopeIds=i,null==e?512&t.shapeFlag?a.ctx.activate(t,n,l,r,s):B(t,n,l,a,o,r,s):z(e,t,s)},B=(e,t,n,l,a,o,r)=>{const i=e.component=function(e,t,n){const l=e.type,a=(t?t.appContext:e.appContext)||Ql,o={uid:ea++,vnode:e,type:l,parent:t,appContext:a,root:null,next:null,subTree:null,update:null,render:null,proxy:null,exposed:null,withProxy:null,effects:null,provides:t?t.provides:Object.create(a.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:sn(l,a),emitsOptions:$t(l,a),emit:null,emitted:null,propsDefaults:p,ctx:p,data:p,props:p,attrs:p,slots:p,refs:p,setupState:p,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null};return o.ctx={_:o},o.root=t?t.root:o,o.emit=Bt.bind(null,o),o}(e,l,a);if(Bn(e)&&(i.ctx.renderer=ie),function(e,t=!1){oa=t;const{props:n,children:l}=e.vnode,a=aa(e);an(e,n,a,t),((e,t)=>{if(32&e.vnode.shapeFlag){const n=t._;n?(e.slots=t,q(t,"_",n)):qn(t,e.slots={})}else e.slots={},t&&Kn(e,t);q(e.slots,Ol,1)})(e,l);const o=a?function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Zl);const{setup:l}=n;if(l){const n=e.setupContext=l.length>1?function(e){const t=t=>{e.exposed=ut(t)};return{attrs:e.attrs,slots:e.slots,emit:e.emit,expose:t}}(e):null;ta=e,oe();const a=ht(l,e,0,[e.props,n]);if(re(),ta=null,L(a)){if(t)return a.then((t=>{ra(e,t)})).catch((t=>{mt(t,e,0)}));e.asyncDep=a}else ra(e,a)}else ia(e)}(e,t):void 0;oa=!1}(i),i.asyncDep){if(a&&a.registerDep(i,R),!e.el){const e=i.subTree=Ll(bl);w(null,e,t,n)}}else R(i,e,t,n,a,o,r)},z=(e,t,n)=>{const l=t.component=e.component;if(function(e,t,n){const{props:l,children:a,component:o}=e,{props:r,children:i,patchFlag:s}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&s>=0))return!(!a&&!i||i&&i.$stable)||l!==r&&(l?!r||nn(l,r,u):!!r);if(1024&s)return!0;if(16&s)return l?nn(l,r,u):!!r;if(8&s){const e=t.dynamicProps;for(let t=0;t<e.length;t++){const n=e[t];if(r[n]!==l[n]&&!zt(u,n))return!0}}return!1}(e,t,n)){if(l.asyncDep&&!l.asyncResolved)return void H(l,t,n);l.next=t,function(e){const t=bt.indexOf(e);t>_t&&bt.splice(t,1)}(l.update),l.update()}else t.component=e.component,t.el=e.el,l.vnode=t},R=(e,t,n,l,a,o,r)=>{e.update=Q((function(){if(e.isMounted){let t,{next:n,bu:l,u:i,parent:s,vnode:u}=e,c=n;n?(n.el=u.el,H(e,n,r)):n=u,l&&Y(l),(t=n.props&&n.props.onVnodeBeforeUpdate)&&al(t,s,n,u);const p=Jt(e),f=e.subTree;e.subTree=p,_(f,p,d(f.el),le(f),e,a,o),n.el=p.el,null===c&&function({vnode:e,parent:t},n){for(;t&&t.subTree===e;)(e=t.vnode).el=n,t=t.parent}(e,p.el),i&&tl(i,a),(t=n.props&&n.props.onVnodeUpdated)&&tl((()=>{al(t,s,n,u)}),a)}else{let r;const{el:i,props:s}=t,{bm:u,m:c,parent:d}=e;u&&Y(u),(r=s&&s.onVnodeBeforeMount)&&al(r,d,t);const p=e.subTree=Jt(e);if(i&&ce?ce(t.el,p,e,a,null):(_(null,p,n,l,e,a,o),t.el=p.el),c&&tl(c,a),r=s&&s.onVnodeMounted){const e=t;tl((()=>{al(r,d,e)}),a)}const{a:f}=e;f&&256&t.shapeFlag&&tl(f,a),e.isMounted=!0,t=n=l=null}}),el)},H=(e,t,n)=>{t.component=e;const l=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,l){const{props:a,attrs:o,vnode:{patchFlag:r}}=e,i=et(a),[s]=e.propsOptions;if(!(l||r>0)||16&r){let l;on(e,t,a,o);for(const o in i)t&&(x(t,o)||(l=j(o))!==o&&x(t,l))||(s?!n||void 0===n[o]&&void 0===n[l]||(a[o]=rn(s,t||p,o,void 0,e)):delete a[o]);if(o!==i)for(const e in o)t&&x(t,e)||delete o[e]}else if(8&r){const n=e.vnode.dynamicProps;for(let l=0;l<n.length;l++){const r=n[l],u=t[r];if(s)if(x(o,r))o[r]=u;else{const t=$(r);a[t]=rn(s,i,t,u,e)}else o[r]=u}}se(e,"set","$attrs")}(e,t.props,l,n),((e,t,n)=>{const{vnode:l,slots:a}=e;let o=!0,r=p;if(32&l.shapeFlag){const e=t._;e?n&&1===e?o=!1:(b(a,t),n||1!==e||delete a._):(o=!t.$stable,qn(t,a)),r=t}else t&&(Kn(e,t),r={default:1});if(o)for(const i in a)Hn(i)||i in r||delete a[i]})(e,t.children,n),oe(),Pt(void 0,e.update),re()},W=(e,t,n,l,a,o,r,i,s=!1)=>{const u=e&&e.children,d=e?e.shapeFlag:0,p=t.children,{patchFlag:f,shapeFlag:h}=t;if(f>0){if(128&f)return void U(u,p,n,l,a,o,r,i,s);if(256&f)return void K(u,p,n,l,a,o,r,i,s)}8&h?(16&d&&ne(u,a,o),p!==u&&c(n,p)):16&d?16&h?U(u,p,n,l,a,o,r,i,s):ne(u,a,o,!0):(8&d&&c(n,""),16&h&&D(p,n,l,a,o,r,i,s))},K=(e,t,n,l,a,o,r,i,s)=>{t=t||f;const u=(e=e||f).length,c=t.length,d=Math.min(u,c);let p;for(p=0;p<d;p++){const l=t[p]=s?Fl(t[p]):Il(t[p]);_(e[p],l,n,null,a,o,r,i,s)}u>c?ne(e,a,o,!0,!1,d):D(t,n,l,a,o,r,i,s,d)},U=(e,t,n,l,a,o,r,i,s)=>{let u=0;const c=t.length;let d=e.length-1,p=c-1;for(;u<=d&&u<=p;){const l=e[u],c=t[u]=s?Fl(t[u]):Il(t[u]);if(!Ml(l,c))break;_(l,c,n,null,a,o,r,i,s),u++}for(;u<=d&&u<=p;){const l=e[d],u=t[p]=s?Fl(t[p]):Il(t[p]);if(!Ml(l,u))break;_(l,u,n,null,a,o,r,i,s),d--,p--}if(u>d){if(u<=p){const e=p+1,d=e<c?t[e].el:l;for(;u<=p;)_(null,t[u]=s?Fl(t[u]):Il(t[u]),n,d,a,o,r,i,s),u++}}else if(u>p)for(;u<=d;)X(e[u],a,o,!0),u++;else{const h=u,v=u,m=new Map;for(u=v;u<=p;u++){const e=t[u]=s?Fl(t[u]):Il(t[u]);null!=e.key&&m.set(e.key,u)}let g,y=0;const b=p-v+1;let k=!1,x=0;const w=new Array(b);for(u=0;u<b;u++)w[u]=0;for(u=h;u<=d;u++){const l=e[u];if(y>=b){X(l,a,o,!0);continue}let c;if(null!=l.key)c=m.get(l.key);else for(g=v;g<=p;g++)if(0===w[g-v]&&Ml(l,t[g])){c=g;break}void 0===c?X(l,a,o,!0):(w[c-v]=u+1,c>=x?x=c:k=!0,_(l,t[c],n,null,a,o,r,i,s),y++)}const C=k?function(e){const t=e.slice(),n=[0];let l,a,o,r,i;const s=e.length;for(l=0;l<s;l++){const s=e[l];if(0!==s){if(a=n[n.length-1],e[a]<s){t[l]=a,n.push(l);continue}for(o=0,r=n.length-1;o<r;)i=(o+r)/2|0,e[n[i]]<s?o=i+1:r=i;s<e[n[o]]&&(o>0&&(t[l]=n[o-1]),n[o]=l)}}o=n.length,r=n[o-1];for(;o-- >0;)n[o]=r,r=t[r];return n}(w):f;for(g=C.length-1,u=b-1;u>=0;u--){const e=v+u,d=t[e],p=e+1<c?t[e+1].el:l;0===w[u]?_(null,d,n,p,a,o,r,i,s):k&&(g<0||u!==C[g]?G(d,n,p,2):g--)}}},G=(e,t,l,a,o=null)=>{const{el:r,type:i,transition:s,children:u,shapeFlag:c}=e;if(6&c)return void G(e.component.subTree,t,l,a);if(128&c)return void e.suspense.move(t,l,a);if(64&c)return void i.move(e,t,l,ie);if(i===gl){n(r,t,l);for(let e=0;e<u.length;e++)G(u[e],t,l,a);return void n(e.anchor,t,l)}if(i===_l)return void S(e,t,l);if(2!==a&&1&c&&s)if(0===a)s.beforeEnter(r),n(r,t,l),tl((()=>s.enter(r)),o);else{const{leave:e,delayLeave:a,afterLeave:o}=s,i=()=>n(r,t,l),u=()=>{e(r,(()=>{i(),o&&o()}))};a?a(r,i,u):u()}else n(r,t,l)},X=(e,t,n,l=!1,a=!1)=>{const{type:o,props:r,ref:i,children:s,dynamicChildren:u,shapeFlag:c,patchFlag:d,dirs:p}=e;if(null!=i&&nl(i,null,n,null),256&c)return void t.ctx.deactivate(e);const f=1&c&&p;let h;if((h=r&&r.onVnodeBeforeUnmount)&&al(h,t,e),6&c)te(e.component,n,l);else{if(128&c)return void e.suspense.unmount(n,l);f&&Gn(e,null,t,"beforeUnmount"),64&c?e.type.remove(e,t,n,a,ie,l):u&&(o!==gl||d>0&&64&d)?ne(u,t,n,!1,!0):(o===gl&&(128&d||256&d)||!a&&16&c)&&ne(s,t,n),l&&Z(e)}((h=r&&r.onVnodeUnmounted)||f)&&tl((()=>{h&&al(h,t,e),f&&Gn(e,null,t,"unmounted")}),n)},Z=e=>{const{type:t,el:n,anchor:a,transition:o}=e;if(t===gl)return void J(n,a);if(t===_l)return void E(e);const r=()=>{l(n),o&&!o.persisted&&o.afterLeave&&o.afterLeave()};if(1&e.shapeFlag&&o&&!o.persisted){const{leave:t,delayLeave:l}=o,a=()=>t(n,r);l?l(e.el,r,a):a()}else r()},J=(e,t)=>{let n;for(;e!==t;)n=v(e),l(e),e=n;l(t)},te=(e,t,n)=>{const{bum:l,effects:a,update:o,subTree:r,um:i}=e;if(l&&Y(l),a)for(let s=0;s<a.length;s++)ee(a[s]);o&&(ee(o),X(r,e,t,n)),i&&tl(i,t),tl((()=>{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve())},ne=(e,t,n,l=!1,a=!1,o=0)=>{for(let r=o;r<e.length;r++)X(e[r],t,n,l,a)},le=e=>6&e.shapeFlag?le(e.component.subTree):128&e.shapeFlag?e.suspense.next():v(e.anchor||e.el),ae=(e,t,n)=>{null==e?t._vnode&&X(t._vnode,null,null,!0):_(t._vnode||null,e,t,null,null,null,n),It(),t._vnode=e},ie={p:_,um:X,m:G,r:Z,mt:B,mc:D,pc:W,pbc:A,n:le,o:e};let ue,ce;t&&([ue,ce]=t(ie));return{render:ae,hydrate:ue,createApp:Jn(ae,ue)}}(e)}function al(e,t,n,l=null){vt(e,t,7,[n,l])}function ol(e,t,n=!1){const l=e.children,a=t.children;if(w(l)&&w(a))for(let o=0;o<l.length;o++){const e=l[o];let t=a[o];1&t.shapeFlag&&!t.dynamicChildren&&((t.patchFlag<=0||32===t.patchFlag)&&(t=a[o]=Fl(a[o]),t.el=e.el),n||ol(e,t))}}const rl=e=>e&&(e.disabled||""===e.disabled),il=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,sl=(e,t)=>{const n=e&&e.to;if(O(n)){if(t){return t(n)}return null}return n};function ul(e,t,n,{o:{insert:l},m:a},o=2){0===o&&l(e.targetAnchor,t,n);const{el:r,anchor:i,shapeFlag:s,children:u,props:c}=e,d=2===o;if(d&&l(r,t,n),(!d||rl(c))&&16&s)for(let p=0;p<u.length;p++)a(u[p],t,n,2);d&&l(i,t,n)}const cl={__isTeleport:!0,process(e,t,n,l,a,o,r,i,s,u){const{mc:c,pc:d,pbc:p,o:{insert:f,querySelector:h,createText:v,createComment:m}}=u,g=rl(t.props),{shapeFlag:y,children:b}=t;if(null==e){const e=t.el=v(""),u=t.anchor=v("");f(e,n,l),f(u,n,l);const d=t.target=sl(t.props,h),p=t.targetAnchor=v("");d&&(f(p,d),r=r||il(d));const m=(e,t)=>{16&y&&c(b,e,t,a,o,r,i,s)};g?m(n,u):d&&m(d,p)}else{t.el=e.el;const l=t.anchor=e.anchor,c=t.target=e.target,f=t.targetAnchor=e.targetAnchor,v=rl(e.props),m=v?n:c,y=v?l:f;if(r=r||il(c),t.dynamicChildren?(p(e.dynamicChildren,t.dynamicChildren,m,a,o,r,i),ol(e,t,!0)):s||d(e,t,m,y,a,o,r,i,!1),g)v||ul(t,n,l,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const e=t.target=sl(t.props,h);e&&ul(t,e,null,u,0)}else v&&ul(t,c,f,u,1)}},remove(e,t,n,l,{um:a,o:{remove:o}},r){const{shapeFlag:i,children:s,anchor:u,targetAnchor:c,target:d,props:p}=e;if(d&&o(c),(r||!rl(p))&&(o(u),16&i))for(let f=0;f<s.length;f++)a(s[f],t,n,!0,l)},move:ul,hydrate:function(e,t,n,l,a,o,{o:{nextSibling:r,parentNode:i,querySelector:s}},u){const c=t.target=sl(t.props,s);if(c){const s=c._lpa||c.firstChild;16&t.shapeFlag&&(rl(t.props)?(t.anchor=u(r(e),t,i(e),n,l,a,o),t.targetAnchor=s):(t.anchor=r(e),t.targetAnchor=u(s,t,c,n,l,a,o)),c._lpa=t.targetAnchor&&r(t.targetAnchor))}return t.anchor&&r(t.anchor)}};function dl(e,t){return vl("components",e,!0,t)||e}const pl=Symbol();function fl(e){return O(e)?vl("components",e,!1)||e:e||pl}function hl(e){return vl("directives",e)}function vl(e,t,n=!0,l=!1){const a=Yt||ta;if(a){const n=a.type;if("components"===e){const e=ua(n);if(e&&(e===t||e===$(t)||e===R($(t))))return n}const o=ml(a[e]||n[e],t)||ml(a.appContext[e],t);return!o&&l?n:o}}function ml(e,t){return e&&(e[t]||e[$(t)]||e[R($(t))])}const gl=Symbol(void 0),yl=Symbol(void 0),bl=Symbol(void 0),_l=Symbol(void 0),kl=[];let xl=null;function wl(e=!1){kl.push(xl=e?null:[])}function Cl(){kl.pop(),xl=kl[kl.length-1]||null}function Sl(e,t,n,l,a){const o=Ll(e,t,n,l,a,!0);return o.dynamicChildren=xl||f,Cl(),xl&&xl.push(o),o}function El(e){return!!e&&!0===e.__v_isVNode}function Ml(e,t){return e.type===t.type&&e.key===t.key}const Ol="__vInternal",Tl=({key:e})=>null!=e?e:null,Dl=({ref:e})=>null!=e?O(e)||nt(e)||M(e)?{i:Yt,r:e}:e:null,Ll=function(e,t=null,n=null,a=0,o=null,r=!1){e&&e!==pl||(e=bl);if(El(e)){const l=Nl(e,t,!0);return n&&Vl(l,n),l}s=e,M(s)&&"__vccOpts"in s&&(e=e.__vccOpts);var s;if(t){(Qe(t)||Ol in t)&&(t=b({},t));let{class:e,style:n}=t;e&&!O(e)&&(t.class=i(e)),D(n)&&(Qe(n)&&!w(n)&&(n=b({},n)),t.style=l(n))}const u=O(e)?1:(e=>e.__isSuspense)(e)?128:(e=>e.__isTeleport)(e)?64:D(e)?4:M(e)?2:0,c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Tl(t),ref:t&&Dl(t),scopeId:qt,slotScopeIds:null,children:null,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:u,patchFlag:a,dynamicProps:o,dynamicChildren:null,appContext:null};if(Vl(c,n),128&u){const{content:e,fallback:t}=function(e){const{shapeFlag:t,children:n}=e;let l,a;return 32&t?(l=ln(n.default),a=ln(n.fallback)):(l=ln(n),a=Il(null)),{content:l,fallback:a}}(c);c.ssContent=e,c.ssFallback=t}!r&&xl&&(a>0||6&u)&&32!==a&&xl.push(c);return c};function Nl(e,t,n=!1){const{props:l,ref:a,patchFlag:o,children:r}=e,i=t?Bl(l||{},t):l;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:i,key:i&&Tl(i),ref:t&&t.ref?n&&a?w(a)?a.concat(Dl(t)):[a,Dl(t)]:Dl(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==gl?-1===o?16:16|o:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Nl(e.ssContent),ssFallback:e.ssFallback&&Nl(e.ssFallback),el:e.el,anchor:e.anchor}}function Al(e=" ",t=0){return Ll(yl,null,e,t)}function Pl(e="",t=!1){return t?(wl(),Sl(bl,null,e)):Ll(bl,null,e)}function Il(e){return null==e||"boolean"==typeof e?Ll(bl):w(e)?Ll(gl,null,e):"object"==typeof e?null===e.el?e:Nl(e):Ll(yl,null,String(e))}function Fl(e){return null===e.el?e:Nl(e)}function Vl(e,t){let n=0;const{shapeFlag:l}=e;if(null==t)t=null;else if(w(t))n=16;else if("object"==typeof t){if(1&l||64&l){const n=t.default;return void(n&&(n._c&&Rt(1),Vl(e,n()),n._c&&Rt(-1)))}{n=32;const l=t._;l||Ol in t?3===l&&Yt&&(1024&Yt.vnode.patchFlag?(t._=2,e.patchFlag|=1024):t._=1):t._ctx=Yt}}else M(t)?(t={default:t,_ctx:Yt},n=32):(t=String(t),64&l?(n=16,t=[Al(t)]):n=8);e.children=t,e.shapeFlag|=n}function Bl(...e){const t=b({},e[0]);for(let n=1;n<e.length;n++){const a=e[n];for(const e in a)if("class"===e)t.class!==a.class&&(t.class=i([t.class,a.class]));else if("style"===e)t.style=l([t.style,a.style]);else if(g(e)){const n=t[e],l=a[e];n!==l&&(t[e]=n?[].concat(n,a[e]):l)}else""!==e&&(t[e]=a[e])}return t}function $l(e,t){if(ta){let n=ta.provides;const l=ta.parent&&ta.parent.provides;l===n&&(n=ta.provides=Object.create(l)),n[e]=t}else;}function zl(e,t,n=!1){const l=ta||Yt;if(l){const a=null==l.parent?l.vnode.appContext&&l.vnode.appContext.provides:l.parent.provides;if(a&&e in a)return a[e];if(arguments.length>1)return n&&M(t)?t():t}}let jl=!0;function Rl(e,t,n=[],l=[],a=[],o=!1){const{mixins:r,extends:i,data:s,computed:u,methods:c,watch:d,provide:f,inject:v,components:m,directives:g,beforeMount:y,mounted:_,beforeUpdate:k,updated:x,activated:C,deactivated:S,beforeDestroy:E,beforeUnmount:O,destroyed:T,unmounted:L,render:N,renderTracked:A,renderTriggered:P,errorCaptured:I,expose:F}=t,V=e.proxy,B=e.ctx,$=e.appContext.mixins;if(o&&N&&e.render===h&&(e.render=N),o||(jl=!1,Hl("beforeCreate","bc",t,e,$),jl=!0,Yl(e,$,n,l,a)),i&&Rl(e,i,n,l,a,!0),r&&Yl(e,r,n,l,a),v)if(w(v))for(let p=0;p<v.length;p++){const e=v[p];B[e]=zl(e)}else for(const p in v){const e=v[p];D(e)?B[p]=zl(e.from||p,e.default,!0):B[p]=zl(e)}if(c)for(const p in c){const e=c[p];M(e)&&(B[p]=e.bind(V))}if(o?s&&n.push(s):(n.length&&n.forEach((t=>ql(e,t,V))),s&&ql(e,s,V)),u)for(const p in u){const e=u[p],t=ca({get:M(e)?e.bind(V,V):M(e.get)?e.get.bind(V,V):h,set:!M(e)&&M(e.set)?e.set.bind(V):h});Object.defineProperty(B,p,{enumerable:!0,configurable:!0,get:()=>t.value,set:e=>t.value=e})}if(d&&l.push(d),!o&&l.length&&l.forEach((e=>{for(const t in e)Kl(e[t],B,V,t)})),f&&a.push(f),!o&&a.length&&a.forEach((e=>{const t=M(e)?e.call(V):e;Reflect.ownKeys(t).forEach((e=>{$l(e,t[e])}))})),o&&(m&&b(e.components||(e.components=b({},e.type.components)),m),g&&b(e.directives||(e.directives=b({},e.type.directives)),g)),o||Hl("created","c",t,e,$),y&&vn(y.bind(V)),_&&mn(_.bind(V)),k&&gn(k.bind(V)),x&&yn(x.bind(V)),C&&$n(C.bind(V)),S&&zn(S.bind(V)),I&&((e,t=ta)=>{fn("ec",e,t)})(I.bind(V)),A&&xn(A.bind(V)),P&&kn(P.bind(V)),O&&bn(O.bind(V)),L&&_n(L.bind(V)),w(F)&&!o)if(F.length){const t=e.exposed||(e.exposed=ut({}));F.forEach((e=>{t[e]=pt(V,e)}))}else e.exposed||(e.exposed=p)}function Hl(e,t,n,l,a){for(let o=0;o<a.length;o++)Wl(e,t,a[o],l);Wl(e,t,n,l)}function Wl(e,t,n,l){const{extends:a,mixins:o}=n,r=n[e];if(a&&Wl(e,t,a,l),o)for(let i=0;i<o.length;i++)Wl(e,t,o[i],l);r&&vt(r.bind(l.proxy),l,t)}function Yl(e,t,n,l,a){for(let o=0;o<t.length;o++)Rl(e,t[o],n,l,a,!0)}function ql(e,t,n){jl=!1;const l=t.call(n,n);jl=!0,D(l)&&(e.data===p?e.data=Ue(l):b(e.data,l))}function Kl(e,t,n,l){const a=l.includes(".")?function(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}(n,l):()=>n[l];if(O(e)){const n=t[e];M(n)&&Sn(a,n)}else if(M(e))Sn(a,e.bind(n));else if(D(e))if(w(e))e.forEach((e=>Kl(e,t,n,l)));else{const l=M(e.handler)?e.handler.bind(n):t[e.handler];M(l)&&Sn(a,l,e)}}function Ul(e,t,n){const l=n.appContext.config.optionMergeStrategies,{mixins:a,extends:o}=t;o&&Ul(e,o,n),a&&a.forEach((t=>Ul(e,t,n)));for(const r in t)l&&x(l,r)?e[r]=l[r](e[r],t[r],n.proxy,r):e[r]=t[r]}const Gl=e=>e?aa(e)?e.exposed?e.exposed:e.proxy:Gl(e.parent):null,Xl=b(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Gl(e.parent),$root:e=>Gl(e.root),$emit:e=>e.emit,$options:e=>function(e){const t=e.type,{__merged:n,mixins:l,extends:a}=t;if(n)return n;const o=e.appContext.mixins;if(!o.length&&!l&&!a)return t;const r={};return o.forEach((t=>Ul(r,t,e))),Ul(r,t,e),t.__merged=r}(e),$forceUpdate:e=>()=>Lt(e.update),$nextTick:e=>Dt.bind(e.proxy),$watch:e=>Mn.bind(e)}),Zl={get({_:e},t){const{ctx:n,setupState:l,data:a,props:o,accessCache:r,type:i,appContext:s}=e;if("__v_skip"===t)return!0;let u;if("$"!==t[0]){const i=r[t];if(void 0!==i)switch(i){case 0:return l[t];case 1:return a[t];case 3:return n[t];case 2:return o[t]}else{if(l!==p&&x(l,t))return r[t]=0,l[t];if(a!==p&&x(a,t))return r[t]=1,a[t];if((u=e.propsOptions[0])&&x(u,t))return r[t]=2,o[t];if(n!==p&&x(n,t))return r[t]=3,n[t];jl&&(r[t]=4)}}const c=Xl[t];let d,f;return c?("$attrs"===t&&ie(e,0,t),c(e)):(d=i.__cssModules)&&(d=d[t])?d:n!==p&&x(n,t)?(r[t]=3,n[t]):(f=s.config.globalProperties,x(f,t)?f[t]:void 0)},set({_:e},t,n){const{data:l,setupState:a,ctx:o}=e;if(a!==p&&x(a,t))a[t]=n;else if(l!==p&&x(l,t))l[t]=n;else if(x(e.props,t))return!1;return("$"!==t[0]||!(t.slice(1)in e))&&(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:l,appContext:a,propsOptions:o}},r){let i;return void 0!==n[r]||e!==p&&x(e,r)||t!==p&&x(t,r)||(i=o[0])&&x(i,r)||x(l,r)||x(Xl,r)||x(a.config.globalProperties,r)}},Jl=b({},Zl,{get(e,t){if(t!==Symbol.unscopables)return Zl.get(e,t,e)},has:(e,n)=>"_"!==n[0]&&!t(n)}),Ql=Xn();let ea=0;let ta=null;const na=()=>ta||Yt,la=e=>{ta=e};function aa(e){return 4&e.vnode.shapeFlag}let oa=!1;function ra(e,t,n){M(t)?e.render=t:D(t)&&(e.setupState=ut(t)),ia(e)}function ia(e,t){const n=e.type;e.render||(e.render=n.render||h,e.render._rc&&(e.withProxy=new Proxy(e.ctx,Jl))),ta=e,oe(),Rl(e,n),re(),ta=null}function sa(e,t=ta){t&&(t.effects||(t.effects=[])).push(e)}function ua(e){return M(e)&&e.displayName||e.name}function ca(e){const t=function(e){let t,n;return M(e)?(t=e,n=h):(t=e.get,n=e.set),new ft(t,n,M(e)||!e.set)}(e);return sa(t.effect),t}function da(e,t,n){const l=arguments.length;return 2===l?D(t)&&!w(t)?El(t)?Ll(e,null,[t]):Ll(e,t):Ll(e,null,t):(l>3?n=Array.prototype.slice.call(arguments,2):3===l&&El(n)&&(n=[n]),Ll(e,t,n))}function pa(e,t){let n;if(w(e)||O(e)){n=new Array(e.length);for(let l=0,a=e.length;l<a;l++)n[l]=t(e[l],l)}else if("number"==typeof e){n=new Array(e);for(let l=0;l<e;l++)n[l]=t(l+1,l)}else if(D(e))if(e[Symbol.iterator])n=Array.from(e,t);else{const l=Object.keys(e);n=new Array(l.length);for(let a=0,o=l.length;a<o;a++){const o=l[a];n[a]=t(e[o],o,a)}}else n=[];return n}function fa(e){const t={};for(const n in e)t[H(n)]=e[n];return t}function ha(e,t){for(let n=0;n<t.length;n++){const l=t[n];if(w(l))for(let t=0;t<l.length;t++)e[l[t].name]=l[t].fn;else l&&(e[l.name]=l.fn)}return e}const va="3.0.11",ma="http://www.w3.org/2000/svg",ga="undefined"!=typeof document?document:null;let ya,ba;const _a={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,l)=>{const a=t?ga.createElementNS(ma,e):ga.createElement(e,n?{is:n}:void 0);return"select"===e&&l&&null!=l.multiple&&a.setAttribute("multiple",l.multiple),a},createText:e=>ga.createTextNode(e),createComment:e=>ga.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ga.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,l){const a=l?ba||(ba=ga.createElementNS(ma,"svg")):ya||(ya=ga.createElement("div"));a.innerHTML=e;const o=a.firstChild;let r=o,i=r;for(;r;)i=r,_a.insert(r,t,n),r=a.firstChild;return[o,i]}};const ka=/\s*!important$/;function xa(e,t,n){if(w(n))n.forEach((n=>xa(e,t,n)));else if(t.startsWith("--"))e.setProperty(t,n);else{const l=function(e,t){const n=Ca[t];if(n)return n;let l=$(t);if("filter"!==l&&l in e)return Ca[t]=l;l=R(l);for(let a=0;a<wa.length;a++){const n=wa[a]+l;if(n in e)return Ca[t]=n}return t}(e,t);ka.test(n)?e.setProperty(j(l),n.replace(ka,""),"important"):e[l]=n}}const wa=["Webkit","Moz","ms"],Ca={};const Sa="http://www.w3.org/1999/xlink";let Ea=Date.now,Ma=!1;if("undefined"!=typeof window){Ea()>document.createEvent("Event").timeStamp&&(Ea=()=>performance.now());const e=navigator.userAgent.match(/firefox\/(\d+)/i);Ma=!!(e&&Number(e[1])<=53)}let Oa=0;const Ta=Promise.resolve(),Da=()=>{Oa=0};function La(e,t,n,l){e.addEventListener(t,n,l)}function Na(e,t,n,l,a=null){const o=e._vei||(e._vei={}),r=o[t];if(l&&r)r.value=l;else{const[n,i]=function(e){let t;if(Aa.test(e)){let n;for(t={};n=e.match(Aa);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[j(e.slice(2)),t]}(t);if(l){La(e,n,o[t]=function(e,t){const n=e=>{const l=e.timeStamp||Ea();(Ma||l>=n.attached-1)&&vt(function(e,t){if(w(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e(t)))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=(()=>Oa||(Ta.then(Da),Oa=Ea()))(),n}(l,a),i)}else r&&(!function(e,t,n,l){e.removeEventListener(t,n,l)}(e,n,r,i),o[t]=void 0)}}const Aa=/(?:Once|Passive|Capture)$/;const Pa=/^on[a-z]/;const Ia=(e,{slots:t})=>da(Ln,Ba(e),t);Ia.displayName="Transition";const Fa={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Va=Ia.props=b({},Ln.props,Fa);function Ba(e){let{name:t="v",type:n,css:l=!0,duration:a,enterFromClass:o=`${t}-enter-from`,enterActiveClass:r=`${t}-enter-active`,enterToClass:i=`${t}-enter-to`,appearFromClass:s=o,appearActiveClass:u=r,appearToClass:c=i,leaveFromClass:d=`${t}-leave-from`,leaveActiveClass:p=`${t}-leave-active`,leaveToClass:f=`${t}-leave-to`}=e;const h={};for(const b in e)b in Fa||(h[b]=e[b]);if(!l)return h;const v=function(e){if(null==e)return null;if(D(e))return[$a(e.enter),$a(e.leave)];{const t=$a(e);return[t,t]}}(a),m=v&&v[0],g=v&&v[1],{onBeforeEnter:y,onEnter:_,onEnterCancelled:k,onLeave:x,onLeaveCancelled:w,onBeforeAppear:C=y,onAppear:S=_,onAppearCancelled:E=k}=h,M=(e,t,n)=>{ja(e,t?c:i),ja(e,t?u:r),n&&n()},O=(e,t)=>{ja(e,f),ja(e,p),t&&t()},T=e=>(t,l)=>{const a=e?S:_,r=()=>M(t,e,l);a&&a(t,r),Ra((()=>{ja(t,e?s:o),za(t,e?c:i),a&&a.length>1||Wa(t,n,m,r)}))};return b(h,{onBeforeEnter(e){y&&y(e),za(e,o),za(e,r)},onBeforeAppear(e){C&&C(e),za(e,s),za(e,u)},onEnter:T(!1),onAppear:T(!0),onLeave(e,t){const l=()=>O(e,t);za(e,d),Ua(),za(e,p),Ra((()=>{ja(e,d),za(e,f),x&&x.length>1||Wa(e,n,g,l)})),x&&x(e,l)},onEnterCancelled(e){M(e,!1),k&&k(e)},onAppearCancelled(e){M(e,!0),E&&E(e)},onLeaveCancelled(e){O(e),w&&w(e)}})}function $a(e){return K(e)}function za(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.add(t))),(e._vtc||(e._vtc=new Set)).add(t)}function ja(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.remove(t)));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function Ra(e){requestAnimationFrame((()=>{requestAnimationFrame(e)}))}let Ha=0;function Wa(e,t,n,l){const a=e._endId=++Ha,o=()=>{a===e._endId&&l()};if(n)return setTimeout(o,n);const{type:r,timeout:i,propCount:s}=Ya(e,t);if(!r)return l();const u=r+"end";let c=0;const d=()=>{e.removeEventListener(u,p),o()},p=t=>{t.target===e&&++c>=s&&d()};setTimeout((()=>{c<s&&d()}),i+1),e.addEventListener(u,p)}function Ya(e,t){const n=window.getComputedStyle(e),l=e=>(n[e]||"").split(", "),a=l("transitionDelay"),o=l("transitionDuration"),r=qa(a,o),i=l("animationDelay"),s=l("animationDuration"),u=qa(i,s);let c=null,d=0,p=0;"transition"===t?r>0&&(c="transition",d=r,p=o.length):"animation"===t?u>0&&(c="animation",d=u,p=s.length):(d=Math.max(r,u),c=d>0?r>u?"transition":"animation":null,p=c?"transition"===c?o.length:s.length:0);return{type:c,timeout:d,propCount:p,hasTransform:"transition"===c&&/\b(transform|all)(,|$)/.test(n.transitionProperty)}}function qa(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map(((t,n)=>Ka(t)+Ka(e[n]))))}function Ka(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function Ua(){return document.body.offsetHeight}const Ga=new WeakMap,Xa=new WeakMap,Za={name:"TransitionGroup",props:b({},Va,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=na(),l=Tn();let a,o;return yn((()=>{if(!a.length)return;const t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){const l=e.cloneNode();e._vtc&&e._vtc.forEach((e=>{e.split(/\s+/).forEach((e=>e&&l.classList.remove(e)))}));n.split(/\s+/).forEach((e=>e&&l.classList.add(e))),l.style.display="none";const a=1===t.nodeType?t:t.parentNode;a.appendChild(l);const{hasTransform:o}=Ya(l);return a.removeChild(l),o}(a[0].el,n.vnode.el,t))return;a.forEach(Ja),a.forEach(Qa);const l=a.filter(eo);Ua(),l.forEach((e=>{const n=e.el,l=n.style;za(n,t),l.transform=l.webkitTransform=l.transitionDuration="";const a=n._moveCb=e=>{e&&e.target!==n||e&&!/transform$/.test(e.propertyName)||(n.removeEventListener("transitionend",a),n._moveCb=null,ja(n,t))};n.addEventListener("transitionend",a)}))})),()=>{const r=et(e),i=Ba(r),s=r.tag||gl;a=o,o=t.default?Vn(t.default()):[];for(let e=0;e<o.length;e++){const t=o[e];null!=t.key&&Fn(t,An(t,i,l,n))}if(a)for(let e=0;e<a.length;e++){const t=a[e];Fn(t,An(t,i,l,n)),Ga.set(t,t.el.getBoundingClientRect())}return Ll(s,null,o)}}};function Ja(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function Qa(e){Xa.set(e,e.el.getBoundingClientRect())}function eo(e){const t=Ga.get(e),n=Xa.get(e),l=t.left-n.left,a=t.top-n.top;if(l||a){const t=e.el.style;return t.transform=t.webkitTransform=`translate(${l}px,${a}px)`,t.transitionDuration="0s",e}}const to=e=>{const t=e.props["onUpdate:modelValue"];return w(t)?e=>Y(t,e):t};function no(e){e.target.composing=!0}function lo(e){const t=e.target;t.composing&&(t.composing=!1,function(e,t){const n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}(t,"input"))}const ao={created(e,{modifiers:{lazy:t,trim:n,number:l}},a){e._assign=to(a);const o=l||"number"===e.type;La(e,t?"change":"input",(t=>{if(t.target.composing)return;let l=e.value;n?l=l.trim():o&&(l=K(l)),e._assign(l)})),n&&La(e,"change",(()=>{e.value=e.value.trim()})),t||(La(e,"compositionstart",no),La(e,"compositionend",lo),La(e,"change",lo))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,modifiers:{trim:n,number:l}},a){if(e._assign=to(a),e.composing)return;if(document.activeElement===e){if(n&&e.value.trim()===t)return;if((l||"number"===e.type)&&K(e.value)===t)return}const o=null==t?"":t;e.value!==o&&(e.value=o)}},oo={created(e,t,n){e._assign=to(n),La(e,"change",(()=>{const t=e._modelValue,n=so(e),l=e.checked,a=e._assign;if(w(t)){const e=u(t,n),o=-1!==e;if(l&&!o)a(t.concat(n));else if(!l&&o){const n=[...t];n.splice(e,1),a(n)}}else if(S(t)){const e=new Set(t);l?e.add(n):e.delete(n),a(e)}else a(uo(e,l))}))},mounted:ro,beforeUpdate(e,t,n){e._assign=to(n),ro(e,t,n)}};function ro(e,{value:t,oldValue:n},l){e._modelValue=t,w(t)?e.checked=u(t,l.props.value)>-1:S(t)?e.checked=t.has(l.props.value):t!==n&&(e.checked=s(t,uo(e,!0)))}const io={created(e,{value:t},n){e.checked=s(t,n.props.value),e._assign=to(n),La(e,"change",(()=>{e._assign(so(e))}))},beforeUpdate(e,{value:t,oldValue:n},l){e._assign=to(l),t!==n&&(e.checked=s(t,l.props.value))}};function so(e){return"_value"in e?e._value:e.value}function uo(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const co=["ctrl","shift","alt","meta"],po={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>co.some((n=>e[`${n}Key`]&&!t.includes(n)))},fo=(e,t)=>(n,...l)=>{for(let e=0;e<t.length;e++){const l=po[t[e]];if(l&&l(n,t))return}return e(n,...l)},ho={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},vo=(e,t)=>n=>{if(!("key"in n))return;const l=j(n.key);return t.some((e=>e===l||ho[e]===l))?e(n):void 0},mo={beforeMount(e,{value:t},{transition:n}){e._vod="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):go(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:l}){!t!=!n&&(l?t?(l.beforeEnter(e),go(e,!0),l.enter(e)):l.leave(e,(()=>{go(e,!1)})):go(e,t))},beforeUnmount(e,{value:t}){go(e,t)}};function go(e,t){e.style.display=t?e._vod:"none"}const yo=b({patchProp:(e,t,l,a,o=!1,r,i,s,u)=>{switch(t){case"class":!function(e,t,n){if(null==t&&(t=""),n)e.setAttribute("class",t);else{const n=e._vtc;n&&(t=(t?[t,...n]:[...n]).join(" ")),e.className=t}}(e,a,o);break;case"style":!function(e,t,n){const l=e.style;if(n)if(O(n)){if(t!==n){const t=l.display;l.cssText=n,"_vod"in e&&(l.display=t)}}else{for(const e in n)xa(l,e,n[e]);if(t&&!O(t))for(const e in t)null==n[e]&&xa(l,e,"")}else e.removeAttribute("style")}(e,l,a);break;default:g(t)?y(t)||Na(e,t,0,a,i):function(e,t,n,l){if(l)return"innerHTML"===t||!!(t in e&&Pa.test(t)&&M(n));if("spellcheck"===t||"draggable"===t)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if(Pa.test(t)&&O(n))return!1;return t in e}(e,t,a,o)?function(e,t,n,l,a,o,r){if("innerHTML"===t||"textContent"===t)return l&&r(l,a,o),void(e[t]=null==n?"":n);if("value"!==t||"PROGRESS"===e.tagName){if(""===n||null==n){const l=typeof e[t];if(""===n&&"boolean"===l)return void(e[t]=!0);if(null==n&&"string"===l)return e[t]="",void e.removeAttribute(t);if("number"===l)return e[t]=0,void e.removeAttribute(t)}try{e[t]=n}catch(Oc){}}else{e._value=n;const t=null==n?"":n;e.value!==t&&(e.value=t)}}(e,t,a,r,i,s,u):("true-value"===t?e._trueValue=a:"false-value"===t&&(e._falseValue=a),function(e,t,l,a){if(a&&t.startsWith("xlink:"))null==l?e.removeAttributeNS(Sa,t.slice(6,t.length)):e.setAttributeNS(Sa,t,l);else{const a=n(t);null==l||a&&!1===l?e.removeAttribute(t):e.setAttribute(t,a?"":l)}}(e,t,a,o))}},forcePatchProp:(e,t)=>"value"===t},_a);let bo;function _o(){return bo||(bo=ll(yo))}const ko=(...e)=>{_o().render(...e)},xo=(...e)=>{const t=_o().createApp(...e),{mount:n}=t;return t.mount=e=>{const l=function(e){if(O(e)){return document.querySelector(e)}return e}
+/*!
+  * @intlify/shared v9.1.6
+  * (c) 2021 kazuya kawaguchi
+  * Released under the MIT License.
+  */(e);if(!l)return;const a=t._component;M(a)||a.render||a.template||(a.template=l.innerHTML),l.innerHTML="";const o=n(l,!1,l instanceof SVGElement);return l instanceof Element&&(l.removeAttribute("v-cloak"),l.setAttribute("data-v-app","")),o},t};const wo="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,Co=e=>wo?Symbol(e):e,So=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Eo=e=>"number"==typeof e&&isFinite(e),Mo=e=>"[object RegExp]"===Ro(e),Oo=e=>Ho(e)&&0===Object.keys(e).length;function To(e,t){"undefined"!=typeof console&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Do=Object.assign;let Lo;const No=()=>Lo||(Lo="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{});function Ao(e){return e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}const Po=Object.prototype.hasOwnProperty;function Io(e,t){return Po.call(e,t)}const Fo=Array.isArray,Vo=e=>"function"==typeof e,Bo=e=>"string"==typeof e,$o=e=>"boolean"==typeof e,zo=e=>null!==e&&"object"==typeof e,jo=Object.prototype.toString,Ro=e=>jo.call(e),Ho=e=>"[object Object]"===Ro(e);function Wo(){const e=new Map;return{events:e,on(t,n){const l=e.get(t);l&&l.push(n)||e.set(t,[n])},off(t,n){const l=e.get(t);l&&l.splice(l.indexOf(n)>>>0,1)},emit(t,n){(e.get(t)||[]).slice().map((e=>e(n))),(e.get("*")||[]).slice().map((e=>e(t,n)))}}}
+/*!
+  * @intlify/message-resolver v9.1.6
+  * (c) 2021 kazuya kawaguchi
+  * Released under the MIT License.
+  */const Yo=Object.prototype.hasOwnProperty;function qo(e,t){return Yo.call(e,t)}const Ko=e=>null!==e&&"object"==typeof e,Uo=[];Uo[0]={w:[0],i:[3,0],"[":[4],o:[7]},Uo[1]={w:[1],".":[2],"[":[4],o:[7]},Uo[2]={w:[2],i:[3,0],0:[3,0]},Uo[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]},Uo[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]},Uo[5]={"'":[4,0],o:8,l:[5,0]},Uo[6]={'"':[4,0],o:8,l:[6,0]};const Go=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function Xo(e){if(null==e)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function Zo(e){const t=e.trim();return("0"!==e.charAt(0)||!isNaN(parseInt(e)))&&(n=t,Go.test(n)?function(e){const t=e.charCodeAt(0);return t!==e.charCodeAt(e.length-1)||34!==t&&39!==t?e:e.slice(1,-1)}(t):"*"+t);var n}const Jo=new Map;function Qo(e,t){if(!Ko(e))return null;let n=Jo.get(t);if(n||(n=function(e){const t=[];let n,l,a,o,r,i,s,u=-1,c=0,d=0;const p=[];function f(){const t=e[u+1];if(5===c&&"'"===t||6===c&&'"'===t)return u++,a="\\"+t,p[0](),!0}for(p[0]=()=>{void 0===l?l=a:l+=a},p[1]=()=>{void 0!==l&&(t.push(l),l=void 0)},p[2]=()=>{p[0](),d++},p[3]=()=>{if(d>0)d--,c=4,p[0]();else{if(d=0,void 0===l)return!1;if(l=Zo(l),!1===l)return!1;p[1]()}};null!==c;)if(u++,n=e[u],"\\"!==n||!f()){if(o=Xo(n),s=Uo[c],r=s[o]||s.l||8,8===r)return;if(c=r[0],void 0!==r[1]&&(i=p[r[1]],i&&(a=n,!1===i())))return;if(7===c)return t}}(t),n&&Jo.set(t,n)),!n)return null;const l=n.length;let a=e,o=0;for(;o<l;){const e=a[n[o]];if(void 0===e)return null;a=e,o++}return a}function er(e){if(!Ko(e))return e;for(const t in e)if(qo(e,t))if(t.includes(".")){const n=t.split("."),l=n.length-1;let a=e;for(let e=0;e<l;e++)n[e]in a||(a[n[e]]={}),a=a[n[e]];a[n[l]]=e[t],delete e[t],Ko(a[n[l]])&&er(a[n[l]])}else Ko(e[t])&&er(e[t]);return e}
+/*!
+  * @intlify/runtime v9.1.6
+  * (c) 2021 kazuya kawaguchi
+  * Released under the MIT License.
+  */const tr=e=>e,nr=e=>"",lr=e=>0===e.length?"":e.join(""),ar=e=>null==e?"":Fo(e)||Ho(e)&&e.toString===jo?JSON.stringify(e,null,2):String(e);function or(e,t){return e=Math.abs(e),2===t?e?e>1?1:0:1:e?Math.min(e,2):0}function rr(e={}){const t=e.locale,n=function(e){const t=Eo(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Eo(e.named.count)||Eo(e.named.n))?Eo(e.named.count)?e.named.count:Eo(e.named.n)?e.named.n:t:t}(e),l=zo(e.pluralRules)&&Bo(t)&&Vo(e.pluralRules[t])?e.pluralRules[t]:or,a=zo(e.pluralRules)&&Bo(t)&&Vo(e.pluralRules[t])?or:void 0,o=e.list||[],r=e.named||{};Eo(e.pluralIndex)&&function(e,t){t.count||(t.count=e),t.n||(t.n=e)}(n,r);function i(t){const n=Vo(e.messages)?e.messages(t):!!zo(e.messages)&&e.messages[t];return n||(e.parent?e.parent.message(t):nr)}const s=Ho(e.processor)&&Vo(e.processor.normalize)?e.processor.normalize:lr,u=Ho(e.processor)&&Vo(e.processor.interpolate)?e.processor.interpolate:ar,c={list:e=>o[e],named:e=>r[e],plural:e=>e[l(n,e.length,a)],linked:(t,n)=>{const l=i(t)(c);return Bo(n)?(a=n,e.modifiers?e.modifiers[a]:tr)(l):l;var a},message:i,type:Ho(e.processor)&&Bo(e.processor.type)?e.processor.type:"text",interpolate:u,normalize:s};return c}
+/*!
+  * @intlify/message-compiler v9.1.6
+  * (c) 2021 kazuya kawaguchi
+  * Released under the MIT License.
+  */function ir(e,t,n={}){const{domain:l,messages:a,args:o}=n,r=new SyntaxError(String(e));return r.code=e,t&&(r.location=t),r.domain=l,r}function sr(e){throw e}function ur(e,t,n){const l={start:e,end:t};return null!=n&&(l.source=n),l}const cr=String.fromCharCode(8232),dr=String.fromCharCode(8233);function pr(e){const t=e;let n=0,l=1,a=1,o=0;const r=e=>"\r"===t[e]&&"\n"===t[e+1],i=e=>t[e]===dr,s=e=>t[e]===cr,u=e=>r(e)||(e=>"\n"===t[e])(e)||i(e)||s(e),c=e=>r(e)||i(e)||s(e)?"\n":t[e];function d(){return o=0,u(n)&&(l++,a=0),r(n)&&n++,n++,a++,t[n]}return{index:()=>n,line:()=>l,column:()=>a,peekOffset:()=>o,charAt:c,currentChar:()=>c(n),currentPeek:()=>c(n+o),next:d,peek:function(){return r(n+o)&&o++,o++,t[n+o]},reset:function(){n=0,l=1,a=1,o=0},resetPeek:function(e=0){o=e},skipToPeek:function(){const e=n+o;for(;e!==n;)d();o=0}}}const fr=void 0;function hr(e,t={}){const n=!1!==t.location,l=pr(e),a=()=>l.index(),o=()=>{return e=l.line(),t=l.column(),n=l.index(),{line:e,column:t,offset:n};var e,t,n},r=o(),i=a(),s={currentType:14,offset:i,startLoc:r,endLoc:r,lastType:14,lastOffset:i,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},u=()=>s,{onError:c}=t;function d(e,t,n,...l){const a=u();if(t.column+=n,t.offset+=n,c){const n=ir(e,ur(a.startLoc,t),{domain:"tokenizer",args:l});c(n)}}function p(e,t,l){e.endLoc=o(),e.currentType=t;const a={type:t};return n&&(a.loc=ur(e.startLoc,e.endLoc)),null!=l&&(a.value=l),a}const f=e=>p(e,14);function h(e,t){return e.currentChar()===t?(e.next(),t):(d(0,o(),0,t),"")}function v(e){let t="";for(;" "===e.currentPeek()||"\n"===e.currentPeek();)t+=e.currentPeek(),e.peek();return t}function m(e){const t=v(e);return e.skipToPeek(),t}function g(e){if(e===fr)return!1;const t=e.charCodeAt(0);return t>=97&&t<=122||t>=65&&t<=90||95===t}function y(e,t){const{currentType:n}=t;if(2!==n)return!1;v(e);const l=function(e){if(e===fr)return!1;const t=e.charCodeAt(0);return t>=48&&t<=57}("-"===e.currentPeek()?e.peek():e.currentPeek());return e.resetPeek(),l}function b(e){v(e);const t="|"===e.currentPeek();return e.resetPeek(),t}function _(e,t=!0){const n=(t=!1,l="",a=!1)=>{const o=e.currentPeek();return"{"===o?"%"!==l&&t:"@"!==o&&o?"%"===o?(e.peek(),n(t,"%",!0)):"|"===o?!("%"!==l&&!a)||!(" "===l||"\n"===l):" "===o?(e.peek(),n(!0," ",a)):"\n"!==o||(e.peek(),n(!0,"\n",a)):"%"===l||t},l=n();return t&&e.resetPeek(),l}function k(e,t){const n=e.currentChar();return n===fr?fr:t(n)?(e.next(),n):null}function x(e){return k(e,(e=>{const t=e.charCodeAt(0);return t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||95===t||36===t}))}function w(e){return k(e,(e=>{const t=e.charCodeAt(0);return t>=48&&t<=57}))}function C(e){return k(e,(e=>{const t=e.charCodeAt(0);return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}))}function S(e){let t="",n="";for(;t=w(e);)n+=t;return n}function E(e){const t=e.currentChar();switch(t){case"\\":case"'":return e.next(),`\\${t}`;case"u":return M(e,t,4);case"U":return M(e,t,6);default:return d(3,o(),0,t),""}}function M(e,t,n){h(e,t);let l="";for(let a=0;a<n;a++){const n=C(e);if(!n){d(4,o(),0,`\\${t}${l}${e.currentChar()}`);break}l+=n}return`\\${t}${l}`}function O(e){m(e);const t=h(e,"|");return m(e),t}function T(e,t){let n=null;switch(e.currentChar()){case"{":return t.braceNest>=1&&d(8,o(),0),e.next(),n=p(t,2,"{"),m(e),t.braceNest++,n;case"}":return t.braceNest>0&&2===t.currentType&&d(7,o(),0),e.next(),n=p(t,3,"}"),t.braceNest--,t.braceNest>0&&m(e),t.inLinked&&0===t.braceNest&&(t.inLinked=!1),n;case"@":return t.braceNest>0&&d(6,o(),0),n=D(e,t)||f(t),t.braceNest=0,n;default:let l=!0,a=!0,r=!0;if(b(e))return t.braceNest>0&&d(6,o(),0),n=p(t,1,O(e)),t.braceNest=0,t.inLinked=!1,n;if(t.braceNest>0&&(5===t.currentType||6===t.currentType||7===t.currentType))return d(6,o(),0),t.braceNest=0,L(e,t);if(l=function(e,t){const{currentType:n}=t;if(2!==n)return!1;v(e);const l=g(e.currentPeek());return e.resetPeek(),l}(e,t))return n=p(t,5,function(e){m(e);let t="",n="";for(;t=x(e);)n+=t;return e.currentChar()===fr&&d(6,o(),0),n}(e)),m(e),n;if(a=y(e,t))return n=p(t,6,function(e){m(e);let t="";return"-"===e.currentChar()?(e.next(),t+=`-${S(e)}`):t+=S(e),e.currentChar()===fr&&d(6,o(),0),t}(e)),m(e),n;if(r=function(e,t){const{currentType:n}=t;if(2!==n)return!1;v(e);const l="'"===e.currentPeek();return e.resetPeek(),l}(e,t))return n=p(t,7,function(e){m(e),h(e,"'");let t="",n="";const l=e=>"'"!==e&&"\n"!==e;for(;t=k(e,l);)n+="\\"===t?E(e):t;const a=e.currentChar();return"\n"===a||a===fr?(d(2,o(),0),"\n"===a&&(e.next(),h(e,"'")),n):(h(e,"'"),n)}(e)),m(e),n;if(!l&&!a&&!r)return n=p(t,13,function(e){m(e);let t="",n="";const l=e=>"{"!==e&&"}"!==e&&" "!==e&&"\n"!==e;for(;t=k(e,l);)n+=t;return n}(e)),d(1,o(),0,n.value),m(e),n}return n}function D(e,t){const{currentType:n}=t;let l=null;const a=e.currentChar();switch(8!==n&&9!==n&&12!==n&&10!==n||"\n"!==a&&" "!==a||d(9,o(),0),a){case"@":return e.next(),l=p(t,8,"@"),t.inLinked=!0,l;case".":return m(e),e.next(),p(t,9,".");case":":return m(e),e.next(),p(t,10,":");default:return b(e)?(l=p(t,1,O(e)),t.braceNest=0,t.inLinked=!1,l):function(e,t){const{currentType:n}=t;if(8!==n)return!1;v(e);const l="."===e.currentPeek();return e.resetPeek(),l}(e,t)||function(e,t){const{currentType:n}=t;if(8!==n&&12!==n)return!1;v(e);const l=":"===e.currentPeek();return e.resetPeek(),l}(e,t)?(m(e),D(e,t)):function(e,t){const{currentType:n}=t;if(9!==n)return!1;v(e);const l=g(e.currentPeek());return e.resetPeek(),l}(e,t)?(m(e),p(t,12,function(e){let t="",n="";for(;t=x(e);)n+=t;return n}(e))):function(e,t){const{currentType:n}=t;if(10!==n)return!1;const l=()=>{const t=e.currentPeek();return"{"===t?g(e.peek()):!("@"===t||"%"===t||"|"===t||":"===t||"."===t||" "===t||!t)&&("\n"===t?(e.peek(),l()):g(t))},a=l();return e.resetPeek(),a}(e,t)?(m(e),"{"===a?T(e,t)||l:p(t,11,function(e){const t=(n=!1,l)=>{const a=e.currentChar();return"{"!==a&&"%"!==a&&"@"!==a&&"|"!==a&&a?" "===a?l:"\n"===a?(l+=a,e.next(),t(n,l)):(l+=a,e.next(),t(!0,l)):l};return t(!1,"")}(e))):(8===n&&d(9,o(),0),t.braceNest=0,t.inLinked=!1,L(e,t))}}function L(e,t){let n={type:14};if(t.braceNest>0)return T(e,t)||f(t);if(t.inLinked)return D(e,t)||f(t);const l=e.currentChar();switch(l){case"{":return T(e,t)||f(t);case"}":return d(5,o(),0),e.next(),p(t,3,"}");case"@":return D(e,t)||f(t);default:if(b(e))return n=p(t,1,O(e)),t.braceNest=0,t.inLinked=!1,n;if(_(e))return p(t,0,function(e){const t=n=>{const l=e.currentChar();return"{"!==l&&"}"!==l&&"@"!==l&&l?"%"===l?_(e)?(n+=l,e.next(),t(n)):n:"|"===l?n:" "===l||"\n"===l?_(e)?(n+=l,e.next(),t(n)):b(e)?n:(n+=l,e.next(),t(n)):(n+=l,e.next(),t(n)):n};return t("")}(e));if("%"===l)return e.next(),p(t,4,"%")}return n}return{nextToken:function(){const{currentType:e,offset:t,startLoc:n,endLoc:r}=s;return s.lastType=e,s.lastOffset=t,s.lastStartLoc=n,s.lastEndLoc=r,s.offset=a(),s.startLoc=o(),l.currentChar()===fr?p(s,14):L(l,s)},currentOffset:a,currentPosition:o,context:u}}const vr=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function mr(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const e=parseInt(t||n,16);return e<=55295||e>=57344?String.fromCodePoint(e):"�"}}}function gr(e={}){const t=!1!==e.location,{onError:n}=e;function l(e,t,l,a,...o){const r=e.currentPosition();if(r.offset+=a,r.column+=a,n){const e=ir(t,ur(l,r),{domain:"parser",args:o});n(e)}}function a(e,n,l){const a={type:e,start:n,end:n};return t&&(a.loc={start:l,end:l}),a}function o(e,n,l,a){e.end=n,a&&(e.type=a),t&&e.loc&&(e.loc.end=l)}function r(e,t){const n=e.context(),l=a(3,n.offset,n.startLoc);return l.value=t,o(l,e.currentOffset(),e.currentPosition()),l}function i(e,t){const n=e.context(),{lastOffset:l,lastStartLoc:r}=n,i=a(5,l,r);return i.index=parseInt(t,10),e.nextToken(),o(i,e.currentOffset(),e.currentPosition()),i}function s(e,t){const n=e.context(),{lastOffset:l,lastStartLoc:r}=n,i=a(4,l,r);return i.key=t,e.nextToken(),o(i,e.currentOffset(),e.currentPosition()),i}function u(e,t){const n=e.context(),{lastOffset:l,lastStartLoc:r}=n,i=a(9,l,r);return i.value=t.replace(vr,mr),e.nextToken(),o(i,e.currentOffset(),e.currentPosition()),i}function c(e){const t=e.context(),n=a(6,t.offset,t.startLoc);let r=e.nextToken();if(9===r.type){const t=function(e){const t=e.nextToken(),n=e.context(),{lastOffset:r,lastStartLoc:i}=n,s=a(8,r,i);return 12!==t.type?(l(e,11,n.lastStartLoc,0),s.value="",o(s,r,i),{nextConsumeToken:t,node:s}):(null==t.value&&l(e,13,n.lastStartLoc,0,yr(t)),s.value=t.value||"",o(s,e.currentOffset(),e.currentPosition()),{node:s})}(e);n.modifier=t.node,r=t.nextConsumeToken||e.nextToken()}switch(10!==r.type&&l(e,13,t.lastStartLoc,0,yr(r)),r=e.nextToken(),2===r.type&&(r=e.nextToken()),r.type){case 11:null==r.value&&l(e,13,t.lastStartLoc,0,yr(r)),n.key=function(e,t){const n=e.context(),l=a(7,n.offset,n.startLoc);return l.value=t,o(l,e.currentOffset(),e.currentPosition()),l}(e,r.value||"");break;case 5:null==r.value&&l(e,13,t.lastStartLoc,0,yr(r)),n.key=s(e,r.value||"");break;case 6:null==r.value&&l(e,13,t.lastStartLoc,0,yr(r)),n.key=i(e,r.value||"");break;case 7:null==r.value&&l(e,13,t.lastStartLoc,0,yr(r)),n.key=u(e,r.value||"");break;default:l(e,12,t.lastStartLoc,0);const c=e.context(),d=a(7,c.offset,c.startLoc);return d.value="",o(d,c.offset,c.startLoc),n.key=d,o(n,c.offset,c.startLoc),{nextConsumeToken:r,node:n}}return o(n,e.currentOffset(),e.currentPosition()),{node:n}}function d(e){const t=e.context(),n=a(2,1===t.currentType?e.currentOffset():t.offset,1===t.currentType?t.endLoc:t.startLoc);n.items=[];let d=null;do{const a=d||e.nextToken();switch(d=null,a.type){case 0:null==a.value&&l(e,13,t.lastStartLoc,0,yr(a)),n.items.push(r(e,a.value||""));break;case 6:null==a.value&&l(e,13,t.lastStartLoc,0,yr(a)),n.items.push(i(e,a.value||""));break;case 5:null==a.value&&l(e,13,t.lastStartLoc,0,yr(a)),n.items.push(s(e,a.value||""));break;case 7:null==a.value&&l(e,13,t.lastStartLoc,0,yr(a)),n.items.push(u(e,a.value||""));break;case 8:const o=c(e);n.items.push(o.node),d=o.nextConsumeToken||null}}while(14!==t.currentType&&1!==t.currentType);return o(n,1===t.currentType?t.lastOffset:e.currentOffset(),1===t.currentType?t.lastEndLoc:e.currentPosition()),n}function p(e){const t=e.context(),{offset:n,startLoc:r}=t,i=d(e);return 14===t.currentType?i:function(e,t,n,r){const i=e.context();let s=0===r.items.length;const u=a(1,t,n);u.cases=[],u.cases.push(r);do{const t=d(e);s||(s=0===t.items.length),u.cases.push(t)}while(14!==i.currentType);return s&&l(e,10,n,0),o(u,e.currentOffset(),e.currentPosition()),u}(e,n,r,i)}return{parse:function(n){const r=hr(n,Do({},e)),i=r.context(),s=a(0,i.offset,i.startLoc);return t&&s.loc&&(s.loc.source=n),s.body=p(r),14!==i.currentType&&l(r,13,i.lastStartLoc,0,n[i.offset]||""),o(s,r.currentOffset(),r.currentPosition()),s}}}function yr(e){if(14===e.type)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function br(e,t){for(let n=0;n<e.length;n++)_r(e[n],t)}function _r(e,t){switch(e.type){case 1:br(e.cases,t),t.helper("plural");break;case 2:br(e.items,t);break;case 6:_r(e.key,t),t.helper("linked");break;case 5:t.helper("interpolate"),t.helper("list");break;case 4:t.helper("interpolate"),t.helper("named")}}function kr(e,t={}){const n=function(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:e=>(n.helpers.add(e),e)}}(e);n.helper("normalize"),e.body&&_r(e.body,n);const l=n.context();e.helpers=Array.from(l.helpers)}function xr(e,t){const{helper:n}=e;switch(t.type){case 0:!function(e,t){t.body?xr(e,t.body):e.push("null")}(e,t);break;case 1:!function(e,t){const{helper:n,needIndent:l}=e;if(t.cases.length>1){e.push(`${n("plural")}([`),e.indent(l());const a=t.cases.length;for(let n=0;n<a&&(xr(e,t.cases[n]),n!==a-1);n++)e.push(", ");e.deindent(l()),e.push("])")}}(e,t);break;case 2:!function(e,t){const{helper:n,needIndent:l}=e;e.push(`${n("normalize")}([`),e.indent(l());const a=t.items.length;for(let o=0;o<a&&(xr(e,t.items[o]),o!==a-1);o++)e.push(", ");e.deindent(l()),e.push("])")}(e,t);break;case 6:!function(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),xr(e,t.key),t.modifier&&(e.push(", "),xr(e,t.modifier)),e.push(")")}(e,t);break;case 8:case 7:e.push(JSON.stringify(t.value),t);break;case 5:e.push(`${n("interpolate")}(${n("list")}(${t.index}))`,t);break;case 4:e.push(`${n("interpolate")}(${n("named")}(${JSON.stringify(t.key)}))`,t);break;case 9:case 3:e.push(JSON.stringify(t.value),t)}}function wr(e,t={}){const n=Do({},t),l=gr(n).parse(e);return kr(l,n),((e,t={})=>{const n=Bo(t.mode)?t.mode:"normal",l=Bo(t.filename)?t.filename:"message.intl",a=!!t.sourceMap,o=null!=t.breakLineCode?t.breakLineCode:"arrow"===n?";":"\n",r=t.needIndent?t.needIndent:"arrow"!==n,i=e.helpers||[],s=function(e,t){const{sourceMap:n,filename:l,breakLineCode:a,needIndent:o}=t,r={source:e.loc.source,filename:l,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:a,needIndent:o,indentLevel:0};function i(e,t){r.code+=e}function s(e,t=!0){const n=t?a:"";i(o?n+"  ".repeat(e):n)}return{context:()=>r,push:i,indent:function(e=!0){const t=++r.indentLevel;e&&s(t)},deindent:function(e=!0){const t=--r.indentLevel;e&&s(t)},newline:function(){s(r.indentLevel)},helper:e=>`_${e}`,needIndent:()=>r.needIndent}}(e,{mode:n,filename:l,sourceMap:a,breakLineCode:o,needIndent:r});s.push("normal"===n?"function __msg__ (ctx) {":"(ctx) => {"),s.indent(r),i.length>0&&(s.push(`const { ${i.map((e=>`${e}: _${e}`)).join(", ")} } = ctx`),s.newline()),s.push("return "),xr(s,e),s.deindent(r),s.push("}");const{code:u,map:c}=s.context();return{ast:e,code:u,map:c?c.toJSON():void 0}})(l,n)}
+/*!
+  * @intlify/devtools-if v9.1.6
+  * (c) 2021 kazuya kawaguchi
+  * Released under the MIT License.
+  */const Cr="i18n:init";
+/*!
+  * @intlify/core-base v9.1.6
+  * (c) 2021 kazuya kawaguchi
+  * Released under the MIT License.
+  */let Sr=null;const Er=Mr("function:translate");function Mr(e){return t=>Sr&&Sr.emit(e,t)}let Or;let Tr=null;const Dr=e=>{Tr=e};let Lr=0;function Nr(e={}){const t=Bo(e.version)?e.version:"9.1.6",n=Bo(e.locale)?e.locale:"en-US",l=Fo(e.fallbackLocale)||Ho(e.fallbackLocale)||Bo(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:n,a=Ho(e.messages)?e.messages:{[n]:{}},o=Ho(e.datetimeFormats)?e.datetimeFormats:{[n]:{}},r=Ho(e.numberFormats)?e.numberFormats:{[n]:{}},i=Do({},e.modifiers||{},{upper:e=>Bo(e)?e.toUpperCase():e,lower:e=>Bo(e)?e.toLowerCase():e,capitalize:e=>Bo(e)?`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`:e}),s=e.pluralRules||{},u=Vo(e.missing)?e.missing:null,c=!$o(e.missingWarn)&&!Mo(e.missingWarn)||e.missingWarn,d=!$o(e.fallbackWarn)&&!Mo(e.fallbackWarn)||e.fallbackWarn,p=!!e.fallbackFormat,f=!!e.unresolving,h=Vo(e.postTranslation)?e.postTranslation:null,v=Ho(e.processor)?e.processor:null,m=!$o(e.warnHtmlMessage)||e.warnHtmlMessage,g=!!e.escapeParameter,y=Vo(e.messageCompiler)?e.messageCompiler:Or,b=Vo(e.onWarn)?e.onWarn:To,_=e,k=zo(_.__datetimeFormatters)?_.__datetimeFormatters:new Map,x=zo(_.__numberFormatters)?_.__numberFormatters:new Map,w=zo(_.__meta)?_.__meta:{};Lr++;const C={version:t,cid:Lr,locale:n,fallbackLocale:l,messages:a,datetimeFormats:o,numberFormats:r,modifiers:i,pluralRules:s,missing:u,missingWarn:c,fallbackWarn:d,fallbackFormat:p,unresolving:f,postTranslation:h,processor:v,warnHtmlMessage:m,escapeParameter:g,messageCompiler:y,onWarn:b,__datetimeFormatters:k,__numberFormatters:x,__meta:w};return __INTLIFY_PROD_DEVTOOLS__&&function(e,t,n){Sr&&Sr.emit(Cr,{timestamp:Date.now(),i18n:e,version:t,meta:n})}(C,t,w),C}function Ar(e,t,n,l,a){const{missing:o,onWarn:r}=e;if(null!==o){const l=o(e,n,t,a);return Bo(l)?l:t}return t}function Pr(e,t,n){const l=e;l.__localeChainCache||(l.__localeChainCache=new Map);let a=l.__localeChainCache.get(n);if(!a){a=[];let e=[n];for(;Fo(e);)e=Ir(a,e,t);const o=Fo(t)?t:Ho(t)?t.default?t.default:null:t;e=Bo(o)?[o]:o,Fo(e)&&Ir(a,e,!1),l.__localeChainCache.set(n,a)}return a}function Ir(e,t,n){let l=!0;for(let a=0;a<t.length&&$o(l);a++){const o=t[a];Bo(o)&&(l=Fr(e,t[a],n))}return l}function Fr(e,t,n){let l;const a=t.split("-");do{l=Vr(e,a.join("-"),n),a.splice(-1,1)}while(a.length&&!0===l);return l}function Vr(e,t,n){let l=!1;if(!e.includes(t)&&(l=!0,t)){l="!"!==t[t.length-1];const a=t.replace(/!/g,"");e.push(a),(Fo(n)||Ho(n))&&n[a]&&(l=n[a])}return l}function Br(e,t,n){e.__localeChainCache=new Map,Pr(e,n,t)}const $r=e=>e;let zr=Object.create(null);function jr(e){return ir(e,null,void 0)}const Rr=()=>"",Hr=e=>Vo(e);function Wr(e,...t){const{fallbackFormat:n,postTranslation:l,unresolving:a,fallbackLocale:o,messages:r}=e,[i,s]=qr(...t),u=($o(s.missingWarn)?s.missingWarn:e.missingWarn,$o(s.fallbackWarn)?s.fallbackWarn:e.fallbackWarn,$o(s.escapeParameter)?s.escapeParameter:e.escapeParameter),c=!!s.resolvedMessage,d=Bo(s.default)||$o(s.default)?$o(s.default)?i:s.default:n?i:"",p=n||""!==d,f=Bo(s.locale)?s.locale:e.locale;u&&function(e){Fo(e.list)?e.list=e.list.map((e=>Bo(e)?Ao(e):e)):zo(e.named)&&Object.keys(e.named).forEach((t=>{Bo(e.named[t])&&(e.named[t]=Ao(e.named[t]))}))}(s);let[h,v,m]=c?[i,f,r[f]||{}]:function(e,t,n,l,a,o){const{messages:r,onWarn:i}=e,s=Pr(e,l,n);let u,c={},d=null;const p="translate";for(let f=0;f<s.length&&(u=s[f],c=r[u]||{},null===(d=Qo(c,t))&&(d=c[t]),!Bo(d)&&!Vo(d));f++){const n=Ar(e,t,u,0,p);n!==t&&(d=n)}return[d,u,c]}(e,i,f,o),g=i;if(c||Bo(h)||Hr(h)||p&&(h=d,g=h),!(c||(Bo(h)||Hr(h))&&Bo(v)))return a?-1:i;let y=!1;const b=Hr(h)?h:Yr(e,i,v,h,g,(()=>{y=!0}));if(y)return h;const _=function(e,t,n){return t(n)}(0,b,rr(function(e,t,n,l){const{modifiers:a,pluralRules:o}=e,r={locale:t,modifiers:a,pluralRules:o,messages:l=>{const a=Qo(n,l);if(Bo(a)){let n=!1;const o=Yr(e,l,t,a,l,(()=>{n=!0}));return n?Rr:o}return Hr(a)?a:Rr}};e.processor&&(r.processor=e.processor);l.list&&(r.list=l.list);l.named&&(r.named=l.named);Eo(l.plural)&&(r.pluralIndex=l.plural);return r}(e,v,m,s))),k=l?l(_):_;if(__INTLIFY_PROD_DEVTOOLS__){const t={timestamp:Date.now(),key:Bo(i)?i:Hr(h)?h.key:"",locale:v||(Hr(h)?h.locale:""),format:Bo(h)?h:Hr(h)?h.source:"",message:k};t.meta=Do({},e.__meta,Tr||{}),Er(t)}return k}function Yr(e,t,n,l,a,o){const{messageCompiler:r,warnHtmlMessage:i}=e;if(Hr(l)){const e=l;return e.locale=e.locale||n,e.key=e.key||t,e}const s=r(l,function(e,t,n,l,a,o){return{warnHtmlMessage:a,onError:e=>{throw o&&o(e),e},onCacheKey:e=>((e,t,n)=>So({l:e,k:t,s:n}))(t,n,e)}}(0,n,a,0,i,o));return s.locale=n,s.key=t,s.source=l,s}function qr(...e){const[t,n,l]=e,a={};if(!Bo(t)&&!Eo(t)&&!Hr(t))throw jr(14);const o=Eo(t)?String(t):(Hr(t),t);return Eo(n)?a.plural=n:Bo(n)?a.default=n:Ho(n)&&!Oo(n)?a.named=n:Fo(n)&&(a.list=n),Eo(l)?a.plural=l:Bo(l)?a.default=l:Ho(l)&&Do(a,l),[o,a]}function Kr(e,...t){const{datetimeFormats:n,unresolving:l,fallbackLocale:a,onWarn:o}=e,{__datetimeFormatters:r}=e,[i,s,u,c]=Ur(...t);$o(u.missingWarn)?u.missingWarn:e.missingWarn;$o(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const d=!!u.part,p=Bo(u.locale)?u.locale:e.locale,f=Pr(e,a,p);if(!Bo(i)||""===i)return new Intl.DateTimeFormat(p).format(s);let h,v={},m=null;for(let b=0;b<f.length&&(h=f[b],v=n[h]||{},m=v[i],!Ho(m));b++)Ar(e,i,h,0,"datetime format");if(!Ho(m)||!Bo(h))return l?-1:i;let g=`${h}__${i}`;Oo(c)||(g=`${g}__${JSON.stringify(c)}`);let y=r.get(g);return y||(y=new Intl.DateTimeFormat(h,Do({},m,c)),r.set(g,y)),d?y.formatToParts(s):y.format(s)}function Ur(...e){const[t,n,l,a]=e;let o,r={},i={};if(Bo(t)){if(!/\d{4}-\d{2}-\d{2}(T.*)?/.test(t))throw jr(16);o=new Date(t);try{o.toISOString()}catch(Oc){throw jr(16)}}else if("[object Date]"===Ro(t)){if(isNaN(t.getTime()))throw jr(15);o=t}else{if(!Eo(t))throw jr(14);o=t}return Bo(n)?r.key=n:Ho(n)&&(r=n),Bo(l)?r.locale=l:Ho(l)&&(i=l),Ho(a)&&(i=a),[r.key||"",o,r,i]}function Gr(e,t,n){const l=e;for(const a in n){const e=`${t}__${a}`;l.__datetimeFormatters.has(e)&&l.__datetimeFormatters.delete(e)}}function Xr(e,...t){const{numberFormats:n,unresolving:l,fallbackLocale:a,onWarn:o}=e,{__numberFormatters:r}=e,[i,s,u,c]=Zr(...t);$o(u.missingWarn)?u.missingWarn:e.missingWarn;$o(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const d=!!u.part,p=Bo(u.locale)?u.locale:e.locale,f=Pr(e,a,p);if(!Bo(i)||""===i)return new Intl.NumberFormat(p).format(s);let h,v={},m=null;for(let b=0;b<f.length&&(h=f[b],v=n[h]||{},m=v[i],!Ho(m));b++)Ar(e,i,h,0,"number format");if(!Ho(m)||!Bo(h))return l?-1:i;let g=`${h}__${i}`;Oo(c)||(g=`${g}__${JSON.stringify(c)}`);let y=r.get(g);return y||(y=new Intl.NumberFormat(h,Do({},m,c)),r.set(g,y)),d?y.formatToParts(s):y.format(s)}function Zr(...e){const[t,n,l,a]=e;let o={},r={};if(!Eo(t))throw jr(14);const i=t;return Bo(n)?o.key=n:Ho(n)&&(o=n),Bo(l)?o.locale=l:Ho(l)&&(r=l),Ho(a)&&(r=a),[o.key||"",i,o,r]}function Jr(e,t,n){const l=e;for(const a in n){const e=`${t}__${a}`;l.__numberFormatters.has(e)&&l.__numberFormatters.delete(e)}}function Qr(){return"undefined"!=typeof navigator?window:"undefined"!=typeof global?global:{}}function ei(e,t){const n=Qr().__VUE_DEVTOOLS_GLOBAL_HOOK__;if(n)n.emit("devtools-plugin:setup",e,t);else{const n=Qr();(n.__VUE_DEVTOOLS_PLUGINS__=n.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:e,setupFn:t})}}
+/*!
+  * @intlify/vue-devtools v9.1.6
+  * (c) 2021 kazuya kawaguchi
+  * Released under the MIT License.
+  */const ti={"vue-devtools-plugin-vue-i18n":"Vue I18n devtools","vue-i18n-resource-inspector":"I18n Resources","vue-i18n-timeline":"Vue I18n"},ni={"vue-i18n-resource-inspector":"Search for scopes ..."},li={"vue-i18n-timeline":16764185};function ai(e,...t){return ir(e,null,void 0)}const oi=Co("__transrateVNode"),ri=Co("__datetimeParts"),ii=Co("__numberParts"),si=Co("__enableEmitter"),ui=Co("__disableEmitter"),ci=Co("__setPluralRules");let di=0;function pi(e){return(t,n,l,a)=>e(n,l,na()||void 0,a)}function fi(e,t){const{messages:n,__i18n:l}=t,a=Ho(n)?n:Fo(l)?{}:{[e]:{}};if(Fo(l)&&l.forEach((({locale:e,resource:t})=>{e?(a[e]=a[e]||{},vi(t,a[e])):vi(t,a)})),t.flatJson)for(const o in a)Io(a,o)&&er(a[o]);return a}const hi=e=>!zo(e)||Fo(e);function vi(e,t){if(hi(e)||hi(t))throw ai(20);for(const n in e)Io(e,n)&&(hi(e[n])||hi(t[n])?t[n]=e[n]:vi(e[n],t[n]))}function mi(e={}){const{__root:t}=e,n=void 0===t;let l=!$o(e.inheritLocale)||e.inheritLocale;const a=lt(t&&l?t.locale.value:Bo(e.locale)?e.locale:"en-US"),o=lt(t&&l?t.fallbackLocale.value:Bo(e.fallbackLocale)||Fo(e.fallbackLocale)||Ho(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:a.value),r=lt(fi(a.value,e)),i=lt(Ho(e.datetimeFormats)?e.datetimeFormats:{[a.value]:{}}),s=lt(Ho(e.numberFormats)?e.numberFormats:{[a.value]:{}});let u=t?t.missingWarn:!$o(e.missingWarn)&&!Mo(e.missingWarn)||e.missingWarn,c=t?t.fallbackWarn:!$o(e.fallbackWarn)&&!Mo(e.fallbackWarn)||e.fallbackWarn,d=t?t.fallbackRoot:!$o(e.fallbackRoot)||e.fallbackRoot,p=!!e.fallbackFormat,f=Vo(e.missing)?e.missing:null,h=Vo(e.missing)?pi(e.missing):null,v=Vo(e.postTranslation)?e.postTranslation:null,m=!$o(e.warnHtmlMessage)||e.warnHtmlMessage,g=!!e.escapeParameter;const y=t?t.modifiers:Ho(e.modifiers)?e.modifiers:{};let b,_=e.pluralRules||t&&t.pluralRules;b=Nr({version:"9.1.6",locale:a.value,fallbackLocale:o.value,messages:r.value,datetimeFormats:i.value,numberFormats:s.value,modifiers:y,pluralRules:_,missing:null===h?void 0:h,missingWarn:u,fallbackWarn:c,fallbackFormat:p,unresolving:!0,postTranslation:null===v?void 0:v,warnHtmlMessage:m,escapeParameter:g,__datetimeFormatters:Ho(b)?b.__datetimeFormatters:void 0,__numberFormatters:Ho(b)?b.__numberFormatters:void 0,__v_emitter:Ho(b)?b.__v_emitter:void 0,__meta:{framework:"vue"}}),Br(b,a.value,o.value);const k=ca({get:()=>a.value,set:e=>{a.value=e,b.locale=a.value}}),x=ca({get:()=>o.value,set:e=>{o.value=e,b.fallbackLocale=o.value,Br(b,a.value,e)}}),w=ca((()=>r.value)),C=ca((()=>i.value)),S=ca((()=>s.value));function E(e,n,l,u,c,p){let f;if(a.value,o.value,r.value,i.value,s.value,__INTLIFY_PROD_DEVTOOLS__)try{Dr((()=>{const e=na();return e&&e.type.__INTLIFY_META__?{__INTLIFY_META__:e.type.__INTLIFY_META__}:null})()),f=e(b)}finally{Dr(null)}else f=e(b);if(Eo(f)&&-1===f){const[e,l]=n();return t&&d?u(t):c(e)}if(p(f))return f;throw ai(14)}function M(...e){return E((t=>Wr(t,...e)),(()=>qr(...e)),0,(t=>t.t(...e)),(e=>e),(e=>Bo(e)))}const O={normalize:function(e){return e.map((e=>Bo(e)?Ll(yl,null,e,0):e))},interpolate:e=>e,type:"vnode"};function T(e){return r.value[e]||{}}di++,t&&(Sn(t.locale,(e=>{l&&(a.value=e,b.locale=e,Br(b,a.value,o.value))})),Sn(t.fallbackLocale,(e=>{l&&(o.value=e,b.fallbackLocale=e,Br(b,a.value,o.value))})));return{id:di,locale:k,fallbackLocale:x,get inheritLocale(){return l},set inheritLocale(e){l=e,e&&t&&(a.value=t.locale.value,o.value=t.fallbackLocale.value,Br(b,a.value,o.value))},get availableLocales(){return Object.keys(r.value).sort()},messages:w,datetimeFormats:C,numberFormats:S,get modifiers(){return y},get pluralRules(){return _||{}},get isGlobal(){return n},get missingWarn(){return u},set missingWarn(e){u=e,b.missingWarn=u},get fallbackWarn(){return c},set fallbackWarn(e){c=e,b.fallbackWarn=c},get fallbackRoot(){return d},set fallbackRoot(e){d=e},get fallbackFormat(){return p},set fallbackFormat(e){p=e,b.fallbackFormat=p},get warnHtmlMessage(){return m},set warnHtmlMessage(e){m=e,b.warnHtmlMessage=e},get escapeParameter(){return g},set escapeParameter(e){g=e,b.escapeParameter=e},t:M,rt:function(...e){const[t,n,l]=e;if(l&&!zo(l))throw ai(15);return M(t,n,Do({resolvedMessage:!0},l||{}))},d:function(...e){return E((t=>Kr(t,...e)),(()=>Ur(...e)),0,(t=>t.d(...e)),(()=>""),(e=>Bo(e)))},n:function(...e){return E((t=>Xr(t,...e)),(()=>Zr(...e)),0,(t=>t.n(...e)),(()=>""),(e=>Bo(e)))},te:function(e,t){return null!==Qo(T(Bo(t)?t:a.value),e)},tm:function(e){const n=function(e){let t=null;const n=Pr(b,o.value,a.value);for(let l=0;l<n.length;l++){const a=Qo(r.value[n[l]]||{},e);if(null!=a){t=a;break}}return t}(e);return null!=n?n:t&&t.tm(e)||{}},getLocaleMessage:T,setLocaleMessage:function(e,t){r.value[e]=t,b.messages=r.value},mergeLocaleMessage:function(e,t){r.value[e]=r.value[e]||{},vi(t,r.value[e]),b.messages=r.value},getDateTimeFormat:function(e){return i.value[e]||{}},setDateTimeFormat:function(e,t){i.value[e]=t,b.datetimeFormats=i.value,Gr(b,e,t)},mergeDateTimeFormat:function(e,t){i.value[e]=Do(i.value[e]||{},t),b.datetimeFormats=i.value,Gr(b,e,t)},getNumberFormat:function(e){return s.value[e]||{}},setNumberFormat:function(e,t){s.value[e]=t,b.numberFormats=s.value,Jr(b,e,t)},mergeNumberFormat:function(e,t){s.value[e]=Do(s.value[e]||{},t),b.numberFormats=s.value,Jr(b,e,t)},getPostTranslationHandler:function(){return Vo(v)?v:null},setPostTranslationHandler:function(e){v=e,b.postTranslation=e},getMissingHandler:function(){return f},setMissingHandler:function(e){null!==e&&(h=pi(e)),f=e,b.missing=h},[oi]:function(...e){return E((t=>{let n;const l=t;try{l.processor=O,n=Wr(l,...e)}finally{l.processor=null}return n}),(()=>qr(...e)),0,(t=>t[oi](...e)),(e=>[Ll(yl,null,e,0)]),(e=>Fo(e)))},[ii]:function(...e){return E((t=>Xr(t,...e)),(()=>Zr(...e)),0,(t=>t[ii](...e)),(()=>[]),(e=>Bo(e)||Fo(e)))},[ri]:function(...e){return E((t=>Kr(t,...e)),(()=>Ur(...e)),0,(t=>t[ri](...e)),(()=>[]),(e=>Bo(e)||Fo(e)))},[ci]:function(e){_=e,b.pluralRules=_}}}function gi(e={}){const t=mi(function(e){const t=Bo(e.locale)?e.locale:"en-US",n=Bo(e.fallbackLocale)||Fo(e.fallbackLocale)||Ho(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:t,l=Vo(e.missing)?e.missing:void 0,a=!$o(e.silentTranslationWarn)&&!Mo(e.silentTranslationWarn)||!e.silentTranslationWarn,o=!$o(e.silentFallbackWarn)&&!Mo(e.silentFallbackWarn)||!e.silentFallbackWarn,r=!$o(e.fallbackRoot)||e.fallbackRoot,i=!!e.formatFallbackMessages,s=Ho(e.modifiers)?e.modifiers:{},u=e.pluralizationRules,c=Vo(e.postTranslation)?e.postTranslation:void 0,d=!Bo(e.warnHtmlInMessage)||"off"!==e.warnHtmlInMessage,p=!!e.escapeParameterHtml,f=!$o(e.sync)||e.sync;let h=e.messages;if(Ho(e.sharedMessages)){const t=e.sharedMessages;h=Object.keys(t).reduce(((e,n)=>{const l=e[n]||(e[n]={});return Do(l,t[n]),e}),h||{})}const{__i18n:v,__root:m}=e,g=e.datetimeFormats,y=e.numberFormats;return{locale:t,fallbackLocale:n,messages:h,flatJson:e.flatJson,datetimeFormats:g,numberFormats:y,missing:l,missingWarn:a,fallbackWarn:o,fallbackRoot:r,fallbackFormat:i,modifiers:s,pluralRules:u,postTranslation:c,warnHtmlMessage:d,escapeParameter:p,inheritLocale:f,__i18n:v,__root:m}}(e)),n={id:t.id,get locale(){return t.locale.value},set locale(e){t.locale.value=e},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(e){t.fallbackLocale.value=e},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get formatter(){return{interpolate:()=>[]}},set formatter(e){},get missing(){return t.getMissingHandler()},set missing(e){t.setMissingHandler(e)},get silentTranslationWarn(){return $o(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(e){t.missingWarn=$o(e)?!e:e},get silentFallbackWarn(){return $o(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(e){t.fallbackWarn=$o(e)?!e:e},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(e){t.fallbackFormat=e},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(e){t.setPostTranslationHandler(e)},get sync(){return t.inheritLocale},set sync(e){t.inheritLocale=e},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(e){t.warnHtmlMessage="off"!==e},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(e){t.escapeParameter=e},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(e){},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...e){const[n,l,a]=e,o={};let r=null,i=null;if(!Bo(n))throw ai(15);const s=n;return Bo(l)?o.locale=l:Fo(l)?r=l:Ho(l)&&(i=l),Fo(a)?r=a:Ho(a)&&(i=a),t.t(s,r||i||{},o)},rt:(...e)=>t.rt(...e),tc(...e){const[n,l,a]=e,o={plural:1};let r=null,i=null;if(!Bo(n))throw ai(15);const s=n;return Bo(l)?o.locale=l:Eo(l)?o.plural=l:Fo(l)?r=l:Ho(l)&&(i=l),Bo(a)?o.locale=a:Fo(a)?r=a:Ho(a)&&(i=a),t.t(s,r||i||{},o)},te:(e,n)=>t.te(e,n),tm:e=>t.tm(e),getLocaleMessage:e=>t.getLocaleMessage(e),setLocaleMessage(e,n){t.setLocaleMessage(e,n)},mergeLocaleMessage(e,n){t.mergeLocaleMessage(e,n)},d:(...e)=>t.d(...e),getDateTimeFormat:e=>t.getDateTimeFormat(e),setDateTimeFormat(e,n){t.setDateTimeFormat(e,n)},mergeDateTimeFormat(e,n){t.mergeDateTimeFormat(e,n)},n:(...e)=>t.n(...e),getNumberFormat:e=>t.getNumberFormat(e),setNumberFormat(e,n){t.setNumberFormat(e,n)},mergeNumberFormat(e,n){t.mergeNumberFormat(e,n)},getChoiceIndex:(e,t)=>-1,__onComponentInstanceCreated(t){const{componentInstanceCreatedListener:l}=e;l&&l(t,n)}};return n}const yi={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>"parent"===e||"global"===e,default:"parent"},i18n:{type:Object}},bi={name:"i18n-t",props:Do({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Eo(e)||!isNaN(e)}},yi),setup(e,t){const{slots:n,attrs:l}=t,a=e.i18n||Vi({useScope:e.scope}),o=Object.keys(n).filter((e=>"_"!==e));return()=>{const n={};e.locale&&(n.locale=e.locale),void 0!==e.plural&&(n.plural=Bo(e.plural)?+e.plural:e.plural);const r=function({slots:e},t){return 1===t.length&&"default"===t[0]?e.default?e.default():[]:t.reduce(((t,n)=>{const l=e[n];return l&&(t[n]=l()),t}),{})}(t,o),i=a[oi](e.keypath,r,n),s=Do({},l);return Bo(e.tag)||zo(e.tag)?da(e.tag,s,i):da(gl,s,i)}}};function _i(e,t,n,l){const{slots:a,attrs:o}=t;return()=>{const t={part:!0};let r={};e.locale&&(t.locale=e.locale),Bo(e.format)?t.key=e.format:zo(e.format)&&(Bo(e.format.key)&&(t.key=e.format.key),r=Object.keys(e.format).reduce(((t,l)=>n.includes(l)?Do({},t,{[l]:e.format[l]}):t),{}));const i=l(e.value,t,r);let s=[t.key];Fo(i)?s=i.map(((e,t)=>{const n=a[e.type];return n?n({[e.type]:e.value,index:t,parts:i}):[e.value]})):Bo(i)&&(s=[i]);const u=Do({},o);return Bo(e.tag)||zo(e.tag)?da(e.tag,u,s):da(gl,u,s)}}const ki=["localeMatcher","style","unit","unitDisplay","currency","currencyDisplay","useGrouping","numberingSystem","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","notation","formatMatcher"],xi={name:"i18n-n",props:Do({value:{type:Number,required:!0},format:{type:[String,Object]}},yi),setup(e,t){const n=e.i18n||Vi({useScope:"parent"});return _i(e,t,ki,((...e)=>n[ii](...e)))}},wi=["dateStyle","timeStyle","fractionalSecondDigits","calendar","dayPeriod","numberingSystem","localeMatcher","timeZone","hour12","hourCycle","formatMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName"],Ci={name:"i18n-d",props:Do({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},yi),setup(e,t){const n=e.i18n||Vi({useScope:"parent"});return _i(e,t,wi,((...e)=>n[ri](...e)))}};function Si(e){const t=(t,{instance:n,value:l,modifiers:a})=>{if(!n||!n.$)throw ai(22);const o=function(e,t){const n=e;if("composition"===e.mode)return n.__getInstance(t)||e.global;{const l=n.__getInstance(t);return null!=l?l.__composer:e.global.__composer}}(e,n.$),r=function(e){if(Bo(e))return{path:e};if(Ho(e)){if(!("path"in e))throw ai(19);return e}throw ai(20)}(l);t.textContent=o.t(...function(e){const{path:t,locale:n,args:l,choice:a,plural:o}=e,r={},i=l||{};Bo(n)&&(r.locale=n);Eo(a)&&(r.plural=a);Eo(o)&&(r.plural=o);return[t,i,r]}(r))};return{beforeMount:t,beforeUpdate:t}}let Ei;async function Mi(e,t){return new Promise(((n,l)=>{try{ei({id:"vue-devtools-plugin-vue-i18n",label:ti["vue-devtools-plugin-vue-i18n"],packageName:"vue-i18n",homepage:"https://vue-i18n.intlify.dev",logo:"https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png",componentStateTypes:["vue-i18n: composer properties"],app:e},(l=>{Ei=l,l.on.visitComponentTree((({componentInstance:e,treeNode:n})=>{!function(e,t,n){const l="composition"===n.mode?n.global:n.global.__composer;if(e&&e.vnode.el.__VUE_I18N__&&e.vnode.el.__VUE_I18N__!==l){const n={label:`i18n (${e.type.name||e.type.displayName||e.type.__file} Scope)`,textColor:0,backgroundColor:16764185};t.tags.push(n)}}(e,n,t)})),l.on.inspectComponent((({componentInstance:e,instanceData:n})=>{e.vnode.el.__VUE_I18N__&&n&&("legacy"===t.mode?e.vnode.el.__VUE_I18N__!==t.global.__composer&&Oi(n,e.vnode.el.__VUE_I18N__):Oi(n,e.vnode.el.__VUE_I18N__))})),l.addInspector({id:"vue-i18n-resource-inspector",label:ti["vue-i18n-resource-inspector"],icon:"language",treeFilterPlaceholder:ni["vue-i18n-resource-inspector"]}),l.on.getInspectorTree((n=>{n.app===e&&"vue-i18n-resource-inspector"===n.inspectorId&&function(e,t){e.rootNodes.push({id:"global",label:"Global Scope"});const n="composition"===t.mode?t.global:t.global.__composer;for(const[l,a]of t.__instances){const o="composition"===t.mode?a:a.__composer;if(n===o)continue;const r=l.type.name||l.type.displayName||l.type.__file;e.rootNodes.push({id:o.id.toString(),label:`${r} Scope`})}}(n,t)})),l.on.getInspectorState((n=>{n.app===e&&"vue-i18n-resource-inspector"===n.inspectorId&&function(e,t){const n=Ai(e.nodeId,t);n&&(e.state=function(e){const t={},n="Locale related info",l=[{type:n,key:"locale",editable:!0,value:e.locale.value},{type:n,key:"fallbackLocale",editable:!0,value:e.fallbackLocale.value},{type:n,key:"availableLocales",editable:!1,value:e.availableLocales},{type:n,key:"inheritLocale",editable:!0,value:e.inheritLocale}];t[n]=l;const a="Locale messages info",o=[{type:a,key:"messages",editable:!1,value:Ti(e.messages.value)}];t[a]=o;const r="Datetime formats info",i=[{type:r,key:"datetimeFormats",editable:!1,value:e.datetimeFormats.value}];t[r]=i;const s="Datetime formats info",u=[{type:s,key:"numberFormats",editable:!1,value:e.numberFormats.value}];return t[s]=u,t}(n))}(n,t)})),l.on.editInspectorState((n=>{n.app===e&&"vue-i18n-resource-inspector"===n.inspectorId&&function(e,t){const n=Ai(e.nodeId,t);if(n){const[t]=e.path;"locale"===t&&Bo(e.state.value)?n.locale.value=e.state.value:"fallbackLocale"===t&&(Bo(e.state.value)||Fo(e.state.value)||zo(e.state.value))?n.fallbackLocale.value=e.state.value:"inheritLocale"===t&&$o(e.state.value)&&(n.inheritLocale=e.state.value)}}(n,t)})),l.addTimelineLayer({id:"vue-i18n-timeline",label:ti["vue-i18n-timeline"],color:li["vue-i18n-timeline"]}),n(!0)}))}catch(Oc){console.error(Oc),l(!1)}}))}function Oi(e,t){const n="vue-i18n: composer properties";e.state.push({type:n,key:"locale",editable:!0,value:t.locale.value}),e.state.push({type:n,key:"availableLocales",editable:!1,value:t.availableLocales}),e.state.push({type:n,key:"fallbackLocale",editable:!0,value:t.fallbackLocale.value}),e.state.push({type:n,key:"inheritLocale",editable:!0,value:t.inheritLocale}),e.state.push({type:n,key:"messages",editable:!1,value:Ti(t.messages.value)}),e.state.push({type:n,key:"datetimeFormats",editable:!1,value:t.datetimeFormats.value}),e.state.push({type:n,key:"numberFormats",editable:!1,value:t.numberFormats.value})}function Ti(e){const t={};return Object.keys(e).forEach((n=>{const l=e[n];var a;Vo(l)&&"source"in l?t[n]={_custom:{type:"function",display:"<span>ƒ</span> "+((a=l).source?`("${Li(a.source)}")`:"(?)")}}:zo(l)?t[n]=Ti(l):t[n]=l})),t}const Di={"<":"&lt;",">":"&gt;",'"':"&quot;","&":"&amp;"};function Li(e){return e.replace(/[<>"&]/g,Ni)}function Ni(e){return Di[e]||e}function Ai(e,t){if("global"===e)return"composition"===t.mode?t.global:t.global.__composer;{const n=Array.from(t.__instances.values()).find((t=>t.id.toString()===e));return n?"composition"===t.mode?n:n.__composer:null}}function Pi(e,t){if(Ei){let n;t&&"groupId"in t&&(n=t.groupId,delete t.groupId),Ei.addTimelineEvent({layerId:"vue-i18n-timeline",event:{title:e,groupId:n,time:Date.now(),meta:{},data:t||{},logType:"compile-error"===e?"error":"fallback"===e||"missing"===e?"warning":"default"}})}}function Ii(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[ci](t.pluralizationRules||e.pluralizationRules);const n=fi(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach((t=>e.mergeLocaleMessage(t,n[t]))),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach((n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n]))),t.numberFormats&&Object.keys(t.numberFormats).forEach((n=>e.mergeNumberFormat(n,t.numberFormats[n]))),e}function Fi(e={}){const t=__VUE_I18N_LEGACY_API__&&$o(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=!!e.globalInjection,l=new Map,a=__VUE_I18N_LEGACY_API__&&t?gi(e):mi(e),o=Co(""),r={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},async install(e,...l){if(__VUE_I18N_PROD_DEVTOOLS__&&(e.__VUE_I18N__=r),e.__VUE_I18N_SYMBOL__=o,e.provide(e.__VUE_I18N_SYMBOL__,r),!t&&n&&function(e,t){const n=Object.create(null);Bi.forEach((e=>{const l=Object.getOwnPropertyDescriptor(t,e);if(!l)throw ai(22);const a=nt(l.value)?{get:()=>l.value.value,set(e){l.value.value=e}}:{get:()=>l.get&&l.get()};Object.defineProperty(n,e,a)})),e.config.globalProperties.$i18n=n,$i.forEach((n=>{const l=Object.getOwnPropertyDescriptor(t,n);if(!l||!l.value)throw ai(22);Object.defineProperty(e.config.globalProperties,`$${n}`,l)}))}(e,r.global),__VUE_I18N_FULL_INSTALL__&&function(e,t,...n){const l=Ho(n[0])?n[0]:{},a=!!l.useI18nComponentName;(!$o(l.globalInstall)||l.globalInstall)&&(e.component(a?"i18n":bi.name,bi),e.component(xi.name,xi),e.component(Ci.name,Ci)),e.directive("t",Si(t))}(e,r,...l),__VUE_I18N_LEGACY_API__&&t&&e.mixin(function(e,t,n){return{beforeCreate(){const l=na();if(!l)throw ai(22);const a=this.$options;if(a.i18n){const n=a.i18n;a.__i18n&&(n.__i18n=a.__i18n),n.__root=t,this===this.$root?this.$i18n=Ii(e,n):this.$i18n=gi(n)}else a.__i18n?this===this.$root?this.$i18n=Ii(e,a):this.$i18n=gi({__i18n:a.__i18n,__root:t}):this.$i18n=e;e.__onComponentInstanceCreated(this.$i18n),n.__setInstance(l,this.$i18n),this.$t=(...e)=>this.$i18n.t(...e),this.$rt=(...e)=>this.$i18n.rt(...e),this.$tc=(...e)=>this.$i18n.tc(...e),this.$te=(e,t)=>this.$i18n.te(e,t),this.$d=(...e)=>this.$i18n.d(...e),this.$n=(...e)=>this.$i18n.n(...e),this.$tm=e=>this.$i18n.tm(e)},mounted(){if(__VUE_I18N_PROD_DEVTOOLS__){this.$el.__VUE_I18N__=this.$i18n.__composer;const e=this.__v_emitter=Wo(),t=this.$i18n;t.__enableEmitter&&t.__enableEmitter(e),e.on("*",Pi)}},beforeUnmount(){const e=na();if(!e)throw ai(22);if(__VUE_I18N_PROD_DEVTOOLS__){this.__v_emitter&&(this.__v_emitter.off("*",Pi),delete this.__v_emitter);const e=this.$i18n;e.__disableEmitter&&e.__disableEmitter(),delete this.$el.__VUE_I18N__}delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,n.__deleteInstance(e),delete this.$i18n}}}(a,a.__composer,r)),__VUE_I18N_PROD_DEVTOOLS__){if(!(await Mi(e,r)))throw ai(21);const n=Wo();if(t){const e=a;e.__enableEmitter&&e.__enableEmitter(n)}else{const e=a;e[si]&&e[si](n)}n.on("*",Pi)}},get global(){return a},__instances:l,__getInstance:e=>l.get(e)||null,__setInstance(e,t){l.set(e,t)},__deleteInstance(e){l.delete(e)}};return r}function Vi(e={}){const t=na();if(null==t)throw ai(16);if(!t.appContext.app.__VUE_I18N_SYMBOL__)throw ai(17);const n=zl(t.appContext.app.__VUE_I18N_SYMBOL__);if(!n)throw ai(22);const l="composition"===n.mode?n.global:n.global.__composer,a=Oo(e)?"__i18n"in t.type?"local":"global":e.useScope?e.useScope:"local";if("global"===a){let n=zo(e.messages)?e.messages:{};"__i18nGlobal"in t.type&&(n=fi(l.locale.value,{messages:n,__i18n:t.type.__i18nGlobal}));const a=Object.keys(n);if(a.length&&a.forEach((e=>{l.mergeLocaleMessage(e,n[e])})),zo(e.datetimeFormats)){const t=Object.keys(e.datetimeFormats);t.length&&t.forEach((t=>{l.mergeDateTimeFormat(t,e.datetimeFormats[t])}))}if(zo(e.numberFormats)){const t=Object.keys(e.numberFormats);t.length&&t.forEach((t=>{l.mergeNumberFormat(t,e.numberFormats[t])}))}return l}if("parent"===a){let e=function(e,t){let n=null;const l=t.root;let a=t.parent;for(;null!=a;){const t=e;if("composition"===e.mode)n=t.__getInstance(a);else{const e=t.__getInstance(a);null!=e&&(n=e.__composer)}if(null!=n)break;if(l===a)break;a=a.parent}return n}(n,t);return null==e&&(e=l),e}if("legacy"===n.mode)throw ai(18);const o=n;let r=o.__getInstance(t);if(null==r){const n=t.type,a=Do({},e);n.__i18n&&(a.__i18n=n.__i18n),l&&(a.__root=l),r=mi(a),function(e,t,n){let l=null;mn((()=>{if(__VUE_I18N_PROD_DEVTOOLS__&&t.vnode.el){t.vnode.el.__VUE_I18N__=n,l=Wo();const e=n;e[si]&&e[si](l),l.on("*",Pi)}}),t),_n((()=>{if(__VUE_I18N_PROD_DEVTOOLS__&&t.vnode.el&&t.vnode.el.__VUE_I18N__){l&&l.off("*",Pi);const e=n;e[ui]&&e[ui](),delete t.vnode.el.__VUE_I18N__}e.__deleteInstance(t)}),t)}(o,t,r),o.__setInstance(t,r)}return r}const Bi=["locale","fallbackLocale","availableLocales"],$i=["t","rt","d","n","tm"];var zi;if(Or=function(e,t={}){{const n=(t.onCacheKey||$r)(e),l=zr[n];if(l)return l;let a=!1;const o=t.onError||sr;t.onError=e=>{a=!0,o(e)};const{code:r}=wr(e,t),i=new Function(`return ${r}`)();return a?i:zr[n]=i}},"boolean"!=typeof __VUE_I18N_FULL_INSTALL__&&(No().__VUE_I18N_FULL_INSTALL__=!0),"boolean"!=typeof __VUE_I18N_LEGACY_API__&&(No().__VUE_I18N_LEGACY_API__=!0),"boolean"!=typeof __VUE_I18N_PROD_DEVTOOLS__&&(No().__VUE_I18N_PROD_DEVTOOLS__=!1),"boolean"!=typeof __INTLIFY_PROD_DEVTOOLS__&&(No().__INTLIFY_PROD_DEVTOOLS__=!1),__INTLIFY_PROD_DEVTOOLS__){const e=No();e.__INTLIFY__=!0,zi=e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__,Sr=zi}var ji=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,l){return e[0]===t&&(n=l,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),l=this.__entries__[n];return l&&l[1]},t.prototype.set=function(t,n){var l=e(this.__entries__,t);~l?this.__entries__[l][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,l=e(n,t);~l&&n.splice(l,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,l=this.__entries__;n<l.length;n++){var a=l[n];e.call(t,a[1],a[0])}},t}()}(),Ri="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,Hi="undefined"!=typeof global&&global.Math===Math?global:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),Wi="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(Hi):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var Yi=["top","right","bottom","left","width","height","size","weight"],qi="undefined"!=typeof MutationObserver,Ki=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,l=!1,a=0;function o(){n&&(n=!1,e()),l&&i()}function r(){Wi(o)}function i(){var e=Date.now();if(n){if(e-a<2)return;l=!0}else n=!0,l=!1,setTimeout(r,t);a=e}return i}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){Ri&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),qi?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){Ri&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;Yi.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),Ui=function(e,t){for(var n=0,l=Object.keys(t);n<l.length;n++){var a=l[n];Object.defineProperty(e,a,{value:t[a],enumerable:!1,writable:!1,configurable:!0})}return e},Gi=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||Hi},Xi=ns(0,0,0,0);function Zi(e){return parseFloat(e)||0}function Ji(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+Zi(e["border-"+n+"-width"])}),0)}function Qi(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return Xi;var l=Gi(e).getComputedStyle(e),a=function(e){for(var t={},n=0,l=["top","right","bottom","left"];n<l.length;n++){var a=l[n],o=e["padding-"+a];t[a]=Zi(o)}return t}(l),o=a.left+a.right,r=a.top+a.bottom,i=Zi(l.width),s=Zi(l.height);if("border-box"===l.boxSizing&&(Math.round(i+o)!==t&&(i-=Ji(l,"left","right")+o),Math.round(s+r)!==n&&(s-=Ji(l,"top","bottom")+r)),!function(e){return e===Gi(e).document.documentElement}(e)){var u=Math.round(i+o)-t,c=Math.round(s+r)-n;1!==Math.abs(u)&&(i-=u),1!==Math.abs(c)&&(s-=c)}return ns(a.left,a.top,i,s)}var es="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof Gi(e).SVGGraphicsElement}:function(e){return e instanceof Gi(e).SVGElement&&"function"==typeof e.getBBox};function ts(e){return Ri?es(e)?function(e){var t=e.getBBox();return ns(0,0,t.width,t.height)}(e):Qi(e):Xi}function ns(e,t,n,l){return{x:e,y:t,width:n,height:l}}var ls=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=ns(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=ts(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),as=function(e,t){var n,l,a,o,r,i,s,u=(l=(n=t).x,a=n.y,o=n.width,r=n.height,i="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,s=Object.create(i.prototype),Ui(s,{x:l,y:a,width:o,height:r,top:a,right:l+o,bottom:r+a,left:l}),s);Ui(this,{target:e,contentRect:u})},os=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new ji,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof Gi(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new ls(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof Gi(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new as(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),rs="undefined"!=typeof WeakMap?new WeakMap:new ji,is=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=Ki.getInstance(),l=new os(t,n,this);rs.set(this,l)};["observe","unobserve","disconnect"].forEach((function(e){is.prototype[e]=function(){var t;return(t=rs.get(this))[e].apply(t,arguments)}}));var ss=void 0!==Hi.ResizeObserver?Hi.ResizeObserver:is,us="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var cs=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},ds="object"==typeof us&&us&&us.Object===Object&&us,ps=ds,fs="object"==typeof self&&self&&self.Object===Object&&self,hs=ps||fs||Function("return this")(),vs=hs,ms=function(){return vs.Date.now()},gs=/\s/;var ys=function(e){for(var t=e.length;t--&&gs.test(e.charAt(t)););return t},bs=/^\s+/;var _s=function(e){return e?e.slice(0,ys(e)+1).replace(bs,""):e},ks=hs.Symbol,xs=ks,ws=Object.prototype,Cs=ws.hasOwnProperty,Ss=ws.toString,Es=xs?xs.toStringTag:void 0;var Ms=function(e){var t=Cs.call(e,Es),n=e[Es];try{e[Es]=void 0;var l=!0}catch(Oc){}var a=Ss.call(e);return l&&(t?e[Es]=n:delete e[Es]),a},Os=Object.prototype.toString;var Ts=Ms,Ds=function(e){return Os.call(e)},Ls=ks?ks.toStringTag:void 0;var Ns=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Ls&&Ls in Object(e)?Ts(e):Ds(e)};var As=function(e){return null!=e&&"object"==typeof e},Ps=Ns,Is=As;var Fs=_s,Vs=cs,Bs=function(e){return"symbol"==typeof e||Is(e)&&"[object Symbol]"==Ps(e)},$s=/^[-+]0x[0-9a-f]+$/i,zs=/^0b[01]+$/i,js=/^0o[0-7]+$/i,Rs=parseInt;var Hs=cs,Ws=ms,Ys=function(e){if("number"==typeof e)return e;if(Bs(e))return NaN;if(Vs(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Vs(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Fs(e);var n=zs.test(e);return n||js.test(e)?Rs(e.slice(2),n?2:8):$s.test(e)?NaN:+e},qs=Math.max,Ks=Math.min;var Us,Gs,Xs,Zs,Js,Qs,eu,tu,nu,lu,au,ou,ru,iu,su,uu=function(e,t,n){var l,a,o,r,i,s,u=0,c=!1,d=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function f(t){var n=l,o=a;return l=a=void 0,u=t,r=e.apply(o,n)}function h(e){return u=e,i=setTimeout(m,t),c?f(e):r}function v(e){var n=e-s;return void 0===s||n>=t||n<0||d&&e-u>=o}function m(){var e=Ws();if(v(e))return g(e);i=setTimeout(m,function(e){var n=t-(e-s);return d?Ks(n,o-(e-u)):n}(e))}function g(e){return i=void 0,p&&l?f(e):(l=a=void 0,r)}function y(){var e=Ws(),n=v(e);if(l=arguments,a=this,s=e,n){if(void 0===i)return h(s);if(d)return clearTimeout(i),i=setTimeout(m,t),f(s)}return void 0===i&&(i=setTimeout(m,t)),r}return t=Ys(t)||0,Hs(n)&&(c=!!n.leading,o=(d="maxWait"in n)?qs(Ys(n.maxWait)||0,t):o,p="trailing"in n?!!n.trailing:p),y.cancel=function(){void 0!==i&&clearTimeout(i),u=0,l=s=a=i=void 0},y.flush=function(){return void 0===i?r:g(Ws())},y},cu=!1;function du(){if(!cu){cu=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(ou=/\b(iPhone|iP[ao]d)/.exec(e),ru=/\b(iP[ao]d)/.exec(e),lu=/Android/i.exec(e),iu=/FBAN\/\w+;/i.exec(e),su=/Mobile/i.exec(e),au=!!/Win64/.exec(e),t){(Us=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN)&&document&&document.documentMode&&(Us=document.documentMode);var l=/(?:Trident\/(\d+.\d+))/.exec(e);Qs=l?parseFloat(l[1])+4:Us,Gs=t[2]?parseFloat(t[2]):NaN,Xs=t[3]?parseFloat(t[3]):NaN,(Zs=t[4]?parseFloat(t[4]):NaN)?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),Js=t&&t[1]?parseFloat(t[1]):NaN):Js=NaN}else Us=Gs=Xs=Js=Zs=NaN;if(n){if(n[1]){var a=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);eu=!a||parseFloat(a[1].replace("_","."))}else eu=!1;tu=!!n[2],nu=!!n[3]}else eu=tu=nu=!1}}var pu,fu={ie:function(){return du()||Us},ieCompatibilityMode:function(){return du()||Qs>Us},ie64:function(){return fu.ie()&&au},firefox:function(){return du()||Gs},opera:function(){return du()||Xs},webkit:function(){return du()||Zs},safari:function(){return fu.webkit()},chrome:function(){return du()||Js},windows:function(){return du()||tu},osx:function(){return du()||eu},linux:function(){return du()||nu},iphone:function(){return du()||ou},mobile:function(){return du()||ou||ru||lu||su},nativeApp:function(){return du()||iu},android:function(){return du()||lu},ipad:function(){return du()||ru}},hu=fu,vu=!("undefined"==typeof window||!window.document||!window.document.createElement),mu={canUseDOM:vu,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:vu&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:vu&&!!window.screen,isInWorker:!vu};mu.canUseDOM&&(pu=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""))
+/**
+ * Checks if an event is supported in the current execution environment.
+ *
+ * NOTE: This will not work correctly for non-generic events such as `change`,
+ * `reset`, `load`, `error`, and `select`.
+ *
+ * Borrows from Modernizr.
+ *
+ * @param {string} eventNameSuffix Event name, e.g. "click".
+ * @param {?boolean} capture Check if the capture phase is supported.
+ * @return {boolean} True if the event is supported.
+ * @internal
+ * @license Modernizr 3.0.0pre (Custom Build) | MIT
+ */;var gu=hu,yu=function(e,t){if(!mu.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,l=n in document;if(!l){var a=document.createElement("div");a.setAttribute(n,"return;"),l="function"==typeof a[n]}return!l&&pu&&"wheel"===e&&(l=document.implementation.hasFeature("Events.wheel","3.0")),l};function bu(e){var t=0,n=0,l=0,a=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),l=10*t,a=10*n,"deltaY"in e&&(a=e.deltaY),"deltaX"in e&&(l=e.deltaX),(l||a)&&e.deltaMode&&(1==e.deltaMode?(l*=40,a*=40):(l*=800,a*=800)),l&&!t&&(t=l<1?-1:1),a&&!n&&(n=a<1?-1:1),{spinX:t,spinY:n,pixelX:l,pixelY:a}}bu.getEventType=function(){return gu.firefox()?"DOMMouseScroll":yu("wheel")?"wheel":"mousewheel"};var _u=bu;function ku(e){return{all:e=e||new Map,on:function(t,n){var l=e.get(t);l&&l.push(n)||e.set(t,[n])},off:function(t,n){var l=e.get(t);l&&l.splice(l.indexOf(n)>>>0,1)},emit:function(t,n){(e.get(t)||[]).slice().map((function(e){e(n)})),(e.get("*")||[]).slice().map((function(e){e(t,n)}))}}}var xu="top",wu="bottom",Cu="right",Su="left",Eu=[xu,wu,Cu,Su],Mu=Eu.reduce((function(e,t){return e.concat([t+"-start",t+"-end"])}),[]),Ou=[].concat(Eu,["auto"]).reduce((function(e,t){return e.concat([t,t+"-start",t+"-end"])}),[]),Tu=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Du(e){return e?(e.nodeName||"").toLowerCase():null}function Lu(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Nu(e){return e instanceof Lu(e).Element||e instanceof Element}function Au(e){return e instanceof Lu(e).HTMLElement||e instanceof HTMLElement}function Pu(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Lu(e).ShadowRoot||e instanceof ShadowRoot)}var Iu={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},l=t.attributes[e]||{},a=t.elements[e];Au(a)&&Du(a)&&(Object.assign(a.style,n),Object.keys(l).forEach((function(e){var t=l[e];!1===t?a.removeAttribute(e):a.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var l=t.elements[e],a=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});Au(l)&&Du(l)&&(Object.assign(l.style,o),Object.keys(a).forEach((function(e){l.removeAttribute(e)})))}))}},requires:["computeStyles"]};function Fu(e){return e.split("-")[0]}function Vu(e){var t=e.getBoundingClientRect();return{width:t.width,height:t.height,top:t.top,right:t.right,bottom:t.bottom,left:t.left,x:t.left,y:t.top}}function Bu(e){var t=Vu(e),n=e.offsetWidth,l=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-l)<=1&&(l=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:l}}function $u(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Pu(n)){var l=t;do{if(l&&e.isSameNode(l))return!0;l=l.parentNode||l.host}while(l)}return!1}function zu(e){return Lu(e).getComputedStyle(e)}function ju(e){return["table","td","th"].indexOf(Du(e))>=0}function Ru(e){return((Nu(e)?e.ownerDocument:e.document)||window.document).documentElement}function Hu(e){return"html"===Du(e)?e:e.assignedSlot||e.parentNode||(Pu(e)?e.host:null)||Ru(e)}function Wu(e){return Au(e)&&"fixed"!==zu(e).position?e.offsetParent:null}function Yu(e){for(var t=Lu(e),n=Wu(e);n&&ju(n)&&"static"===zu(n).position;)n=Wu(n);return n&&("html"===Du(n)||"body"===Du(n)&&"static"===zu(n).position)?t:n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Au(e)&&"fixed"===zu(e).position)return null;for(var n=Hu(e);Au(n)&&["html","body"].indexOf(Du(n))<0;){var l=zu(n);if("none"!==l.transform||"none"!==l.perspective||"paint"===l.contain||-1!==["transform","perspective"].indexOf(l.willChange)||t&&"filter"===l.willChange||t&&l.filter&&"none"!==l.filter)return n;n=n.parentNode}return null}(e)||t}function qu(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}var Ku=Math.max,Uu=Math.min,Gu=Math.round;function Xu(e,t,n){return Ku(e,Uu(t,n))}function Zu(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Ju(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var Qu={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ec(e){var t,n=e.popper,l=e.popperRect,a=e.placement,o=e.offsets,r=e.position,i=e.gpuAcceleration,s=e.adaptive,u=e.roundOffsets,c=!0===u?function(e){var t=e.x,n=e.y,l=window.devicePixelRatio||1;return{x:Gu(Gu(t*l)/l)||0,y:Gu(Gu(n*l)/l)||0}}(o):"function"==typeof u?u(o):o,d=c.x,p=void 0===d?0:d,f=c.y,h=void 0===f?0:f,v=o.hasOwnProperty("x"),m=o.hasOwnProperty("y"),g=Su,y=xu,b=window;if(s){var _=Yu(n),k="clientHeight",x="clientWidth";_===Lu(n)&&"static"!==zu(_=Ru(n)).position&&(k="scrollHeight",x="scrollWidth"),_=_,a===xu&&(y=wu,h-=_[k]-l.height,h*=i?1:-1),a===Su&&(g=Cu,p-=_[x]-l.width,p*=i?1:-1)}var w,C=Object.assign({position:r},s&&Qu);return i?Object.assign({},C,((w={})[y]=m?"0":"",w[g]=v?"0":"",w.transform=(b.devicePixelRatio||1)<2?"translate("+p+"px, "+h+"px)":"translate3d("+p+"px, "+h+"px, 0)",w)):Object.assign({},C,((t={})[y]=m?h+"px":"",t[g]=v?p+"px":"",t.transform="",t))}var tc={passive:!0};var nc={left:"right",right:"left",bottom:"top",top:"bottom"};function lc(e){return e.replace(/left|right|bottom|top/g,(function(e){return nc[e]}))}var ac={start:"end",end:"start"};function oc(e){return e.replace(/start|end/g,(function(e){return ac[e]}))}function rc(e){var t=Lu(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ic(e){return Vu(Ru(e)).left+rc(e).scrollLeft}function sc(e){var t=zu(e),n=t.overflow,l=t.overflowX,a=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+a+l)}function uc(e){return["html","body","#document"].indexOf(Du(e))>=0?e.ownerDocument.body:Au(e)&&sc(e)?e:uc(Hu(e))}function cc(e,t){var n;void 0===t&&(t=[]);var l=uc(e),a=l===(null==(n=e.ownerDocument)?void 0:n.body),o=Lu(l),r=a?[o].concat(o.visualViewport||[],sc(l)?l:[]):l,i=t.concat(r);return a?i:i.concat(cc(Hu(r)))}function dc(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function pc(e,t){return"viewport"===t?dc(function(e){var t=Lu(e),n=Ru(e),l=t.visualViewport,a=n.clientWidth,o=n.clientHeight,r=0,i=0;return l&&(a=l.width,o=l.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=l.offsetLeft,i=l.offsetTop)),{width:a,height:o,x:r+ic(e),y:i}}(e)):Au(t)?function(e){var t=Vu(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):dc(function(e){var t,n=Ru(e),l=rc(e),a=null==(t=e.ownerDocument)?void 0:t.body,o=Ku(n.scrollWidth,n.clientWidth,a?a.scrollWidth:0,a?a.clientWidth:0),r=Ku(n.scrollHeight,n.clientHeight,a?a.scrollHeight:0,a?a.clientHeight:0),i=-l.scrollLeft+ic(e),s=-l.scrollTop;return"rtl"===zu(a||n).direction&&(i+=Ku(n.clientWidth,a?a.clientWidth:0)-o),{width:o,height:r,x:i,y:s}}(Ru(e)))}function fc(e,t,n){var l="clippingParents"===t?function(e){var t=cc(Hu(e)),n=["absolute","fixed"].indexOf(zu(e).position)>=0&&Au(e)?Yu(e):e;return Nu(n)?t.filter((function(e){return Nu(e)&&$u(e,n)&&"body"!==Du(e)})):[]}(e):[].concat(t),a=[].concat(l,[n]),o=a[0],r=a.reduce((function(t,n){var l=pc(e,n);return t.top=Ku(l.top,t.top),t.right=Uu(l.right,t.right),t.bottom=Uu(l.bottom,t.bottom),t.left=Ku(l.left,t.left),t}),pc(e,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}function hc(e){return e.split("-")[1]}function vc(e){var t,n=e.reference,l=e.element,a=e.placement,o=a?Fu(a):null,r=a?hc(a):null,i=n.x+n.width/2-l.width/2,s=n.y+n.height/2-l.height/2;switch(o){case xu:t={x:i,y:n.y-l.height};break;case wu:t={x:i,y:n.y+n.height};break;case Cu:t={x:n.x+n.width,y:s};break;case Su:t={x:n.x-l.width,y:s};break;default:t={x:n.x,y:n.y}}var u=o?qu(o):null;if(null!=u){var c="y"===u?"height":"width";switch(r){case"start":t[u]=t[u]-(n[c]/2-l[c]/2);break;case"end":t[u]=t[u]+(n[c]/2-l[c]/2)}}return t}function mc(e,t){void 0===t&&(t={});var n=t,l=n.placement,a=void 0===l?e.placement:l,o=n.boundary,r=void 0===o?"clippingParents":o,i=n.rootBoundary,s=void 0===i?"viewport":i,u=n.elementContext,c=void 0===u?"popper":u,d=n.altBoundary,p=void 0!==d&&d,f=n.padding,h=void 0===f?0:f,v=Zu("number"!=typeof h?h:Ju(h,Eu)),m="popper"===c?"reference":"popper",g=e.elements.reference,y=e.rects.popper,b=e.elements[p?m:c],_=fc(Nu(b)?b:b.contextElement||Ru(e.elements.popper),r,s),k=Vu(g),x=vc({reference:k,element:y,strategy:"absolute",placement:a}),w=dc(Object.assign({},y,x)),C="popper"===c?w:k,S={top:_.top-C.top+v.top,bottom:C.bottom-_.bottom+v.bottom,left:_.left-C.left+v.left,right:C.right-_.right+v.right},E=e.modifiersData.offset;if("popper"===c&&E){var M=E[a];Object.keys(S).forEach((function(e){var t=[Cu,wu].indexOf(e)>=0?1:-1,n=[xu,wu].indexOf(e)>=0?"y":"x";S[e]+=M[n]*t}))}return S}function gc(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function yc(e){return[xu,Cu,wu,Su].some((function(t){return e[t]>=0}))}function bc(e,t,n){void 0===n&&(n=!1);var l,a,o=Ru(t),r=Vu(e),i=Au(t),s={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(i||!i&&!n)&&(("body"!==Du(t)||sc(o))&&(s=(l=t)!==Lu(l)&&Au(l)?{scrollLeft:(a=l).scrollLeft,scrollTop:a.scrollTop}:rc(l)),Au(t)?((u=Vu(t)).x+=t.clientLeft,u.y+=t.clientTop):o&&(u.x=ic(o))),{x:r.left+s.scrollLeft-u.x,y:r.top+s.scrollTop-u.y,width:r.width,height:r.height}}function _c(e){var t=new Map,n=new Set,l=[];function a(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var l=t.get(e);l&&a(l)}})),l.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||a(e)})),l}var kc={placement:"bottom",modifiers:[],strategy:"absolute"};function xc(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some((function(e){return!(e&&"function"==typeof e.getBoundingClientRect)}))}function wc(e){void 0===e&&(e={});var t=e,n=t.defaultModifiers,l=void 0===n?[]:n,a=t.defaultOptions,o=void 0===a?kc:a;return function(e,t,n){void 0===n&&(n=o);var a,r,i={placement:"bottom",orderedModifiers:[],options:Object.assign({},kc,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},s=[],u=!1,c={state:i,setOptions:function(n){d(),i.options=Object.assign({},o,i.options,n),i.scrollParents={reference:Nu(e)?cc(e):e.contextElement?cc(e.contextElement):[],popper:cc(t)};var a,r,u=function(e){var t=_c(e);return Tu.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}((a=[].concat(l,i.options.modifiers),r=a.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{}),Object.keys(r).map((function(e){return r[e]}))));return i.orderedModifiers=u.filter((function(e){return e.enabled})),i.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,l=void 0===n?{}:n,a=e.effect;if("function"==typeof a){var o=a({state:i,name:t,instance:c,options:l}),r=function(){};s.push(o||r)}})),c.update()},forceUpdate:function(){if(!u){var e=i.elements,t=e.reference,n=e.popper;if(xc(t,n)){i.rects={reference:bc(t,Yu(n),"fixed"===i.options.strategy),popper:Bu(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach((function(e){return i.modifiersData[e.name]=Object.assign({},e.data)}));for(var l=0;l<i.orderedModifiers.length;l++)if(!0!==i.reset){var a=i.orderedModifiers[l],o=a.fn,r=a.options,s=void 0===r?{}:r,d=a.name;"function"==typeof o&&(i=o({state:i,options:s,name:d,instance:c})||i)}else i.reset=!1,l=-1}}},update:(a=function(){return new Promise((function(e){c.forceUpdate(),e(i)}))},function(){return r||(r=new Promise((function(e){Promise.resolve().then((function(){r=void 0,e(a())}))}))),r}),destroy:function(){d(),u=!0}};if(!xc(e,t))return c;function d(){s.forEach((function(e){return e()})),s=[]}return c.setOptions(n).then((function(e){!u&&n.onFirstUpdate&&n.onFirstUpdate(e)})),c}}var Cc=wc({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,l=e.options,a=l.scroll,o=void 0===a||a,r=l.resize,i=void 0===r||r,s=Lu(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&u.forEach((function(e){e.addEventListener("scroll",n.update,tc)})),i&&s.addEventListener("resize",n.update,tc),function(){o&&u.forEach((function(e){e.removeEventListener("scroll",n.update,tc)})),i&&s.removeEventListener("resize",n.update,tc)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=vc({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,l=n.gpuAcceleration,a=void 0===l||l,o=n.adaptive,r=void 0===o||o,i=n.roundOffsets,s=void 0===i||i,u={placement:Fu(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:a};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,ec(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:r,roundOffsets:s})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,ec(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:s})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},Iu,{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,l=e.name,a=n.offset,o=void 0===a?[0,0]:a,r=Ou.reduce((function(e,n){return e[n]=function(e,t,n){var l=Fu(e),a=[Su,xu].indexOf(l)>=0?-1:1,o="function"==typeof n?n(Object.assign({},t,{placement:e})):n,r=o[0],i=o[1];return r=r||0,i=(i||0)*a,[Su,Cu].indexOf(l)>=0?{x:i,y:r}:{x:r,y:i}}(n,t.rects,o),e}),{}),i=r[t.placement],s=i.x,u=i.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=s,t.modifiersData.popperOffsets.y+=u),t.modifiersData[l]=r}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,l=e.name;if(!t.modifiersData[l]._skip){for(var a=n.mainAxis,o=void 0===a||a,r=n.altAxis,i=void 0===r||r,s=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,p=n.altBoundary,f=n.flipVariations,h=void 0===f||f,v=n.allowedAutoPlacements,m=t.options.placement,g=Fu(m),y=s||(g===m||!h?[lc(m)]:function(e){if("auto"===Fu(e))return[];var t=lc(e);return[oc(e),t,oc(t)]}(m)),b=[m].concat(y).reduce((function(e,n){return e.concat("auto"===Fu(n)?function(e,t){void 0===t&&(t={});var n=t,l=n.placement,a=n.boundary,o=n.rootBoundary,r=n.padding,i=n.flipVariations,s=n.allowedAutoPlacements,u=void 0===s?Ou:s,c=hc(l),d=c?i?Mu:Mu.filter((function(e){return hc(e)===c})):Eu,p=d.filter((function(e){return u.indexOf(e)>=0}));0===p.length&&(p=d);var f=p.reduce((function(t,n){return t[n]=mc(e,{placement:n,boundary:a,rootBoundary:o,padding:r})[Fu(n)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}(t,{placement:n,boundary:c,rootBoundary:d,padding:u,flipVariations:h,allowedAutoPlacements:v}):n)}),[]),_=t.rects.reference,k=t.rects.popper,x=new Map,w=!0,C=b[0],S=0;S<b.length;S++){var E=b[S],M=Fu(E),O="start"===hc(E),T=[xu,wu].indexOf(M)>=0,D=T?"width":"height",L=mc(t,{placement:E,boundary:c,rootBoundary:d,altBoundary:p,padding:u}),N=T?O?Cu:Su:O?wu:xu;_[D]>k[D]&&(N=lc(N));var A=lc(N),P=[];if(o&&P.push(L[M]<=0),i&&P.push(L[N]<=0,L[A]<=0),P.every((function(e){return e}))){C=E,w=!1;break}x.set(E,P)}if(w)for(var I=function(e){var t=b.find((function(t){var n=x.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return C=t,"break"},F=h?3:1;F>0;F--){if("break"===I(F))break}t.placement!==C&&(t.modifiersData[l]._skip=!0,t.placement=C,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,l=e.name,a=n.mainAxis,o=void 0===a||a,r=n.altAxis,i=void 0!==r&&r,s=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,p=n.tether,f=void 0===p||p,h=n.tetherOffset,v=void 0===h?0:h,m=mc(t,{boundary:s,rootBoundary:u,padding:d,altBoundary:c}),g=Fu(t.placement),y=hc(t.placement),b=!y,_=qu(g),k="x"===_?"y":"x",x=t.modifiersData.popperOffsets,w=t.rects.reference,C=t.rects.popper,S="function"==typeof v?v(Object.assign({},t.rects,{placement:t.placement})):v,E={x:0,y:0};if(x){if(o||i){var M="y"===_?xu:Su,O="y"===_?wu:Cu,T="y"===_?"height":"width",D=x[_],L=x[_]+m[M],N=x[_]-m[O],A=f?-C[T]/2:0,P="start"===y?w[T]:C[T],I="start"===y?-C[T]:-w[T],F=t.elements.arrow,V=f&&F?Bu(F):{width:0,height:0},B=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},$=B[M],z=B[O],j=Xu(0,w[T],V[T]),R=b?w[T]/2-A-j-$-S:P-j-$-S,H=b?-w[T]/2+A+j+z+S:I+j+z+S,W=t.elements.arrow&&Yu(t.elements.arrow),Y=W?"y"===_?W.clientTop||0:W.clientLeft||0:0,q=t.modifiersData.offset?t.modifiersData.offset[t.placement][_]:0,K=x[_]+R-q-Y,U=x[_]+H-q;if(o){var G=Xu(f?Uu(L,K):L,D,f?Ku(N,U):N);x[_]=G,E[_]=G-D}if(i){var X="x"===_?xu:Su,Z="x"===_?wu:Cu,J=x[k],Q=J+m[X],ee=J-m[Z],te=Xu(f?Uu(Q,K):Q,J,f?Ku(ee,U):ee);x[k]=te,E[k]=te-J}}t.modifiersData[l]=E}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,l=e.name,a=e.options,o=n.elements.arrow,r=n.modifiersData.popperOffsets,i=Fu(n.placement),s=qu(i),u=[Su,Cu].indexOf(i)>=0?"height":"width";if(o&&r){var c=function(e,t){return Zu("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Ju(e,Eu))}(a.padding,n),d=Bu(o),p="y"===s?xu:Su,f="y"===s?wu:Cu,h=n.rects.reference[u]+n.rects.reference[s]-r[s]-n.rects.popper[u],v=r[s]-n.rects.reference[s],m=Yu(o),g=m?"y"===s?m.clientHeight||0:m.clientWidth||0:0,y=h/2-v/2,b=c[p],_=g-d[u]-c[f],k=g/2-d[u]/2+y,x=Xu(b,k,_),w=s;n.modifiersData[l]=((t={})[w]=x,t.centerOffset=x-k,t)}},effect:function(e){var t=e.state,n=e.options.element,l=void 0===n?"[data-popper-arrow]":n;null!=l&&("string"!=typeof l||(l=t.elements.popper.querySelector(l)))&&$u(t.elements.popper,l)&&(t.elements.arrow=l)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,l=t.rects.reference,a=t.rects.popper,o=t.modifiersData.preventOverflow,r=mc(t,{elementContext:"reference"}),i=mc(t,{altBoundary:!0}),s=gc(r,l),u=gc(i,a,o),c=yc(s),d=yc(u);t.modifiersData[n]={referenceClippingOffsets:s,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}}]}),Sc=uu,Ec=cs;var Mc,Oc,Tc,Dc,Lc,Nc,Ac,Pc,Ic,Fc,Vc,Bc,$c,zc=function(e,t,n){var l=!0,a=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return Ec(n)&&(l="leading"in n?!!n.leading:l,a="trailing"in n?!!n.trailing:a),Sc(e,t,{leading:l,maxWait:t,trailing:a})},jc={exports:{}},Rc=jc.exports=function(){var e="millisecond",t="second",n="minute",l="hour",a="day",o="week",r="month",i="quarter",s="year",u="date",c=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,d=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,p={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},f=function(e,t,n){var l=String(e);return!l||l.length>=t?e:""+Array(t+1-l.length).join(n)+e},h={s:f,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),l=Math.floor(n/60),a=n%60;return(t<=0?"+":"-")+f(l,2,"0")+":"+f(a,2,"0")},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var l=12*(n.year()-t.year())+(n.month()-t.month()),a=t.clone().add(l,r),o=n-a<0,i=t.clone().add(l+(o?-1:1),r);return+(-(l+(n-a)/(o?a-i:i-a))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(c){return{M:r,y:s,w:o,d:a,D:u,h:l,m:n,s:t,ms:e,Q:i}[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},v="en",m={};m[v]=p;var g=function(e){return e instanceof k},y=function(e,t,n){var l;if(!e)return v;if("string"==typeof e)m[e]&&(l=e),t&&(m[e]=t,l=e);else{var a=e.name;m[a]=e,l=a}return!n&&l&&(v=l),l||!n&&v},b=function(e,t){if(g(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new k(n)},_=h;_.l=y,_.i=g,_.w=function(e,t){return b(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var k=function(){function p(e){this.$L=y(e.locale,null,!0),this.parse(e)}var f=p.prototype;return f.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(_.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var l=t.match(c);if(l){var a=l[2]-1||0,o=(l[7]||"0").substring(0,3);return n?new Date(Date.UTC(l[1],a,l[3]||1,l[4]||0,l[5]||0,l[6]||0,o)):new Date(l[1],a,l[3]||1,l[4]||0,l[5]||0,l[6]||0,o)}}return new Date(t)}(e),this.$x=e.x||{},this.init()},f.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},f.$utils=function(){return _},f.isValid=function(){return!("Invalid Date"===this.$d.toString())},f.isSame=function(e,t){var n=b(e);return this.startOf(t)<=n&&n<=this.endOf(t)},f.isAfter=function(e,t){return b(e)<this.startOf(t)},f.isBefore=function(e,t){return this.endOf(t)<b(e)},f.$g=function(e,t,n){return _.u(e)?this[t]:this.set(n,e)},f.unix=function(){return Math.floor(this.valueOf()/1e3)},f.valueOf=function(){return this.$d.getTime()},f.startOf=function(e,i){var c=this,d=!!_.u(i)||i,p=_.p(e),f=function(e,t){var n=_.w(c.$u?Date.UTC(c.$y,t,e):new Date(c.$y,t,e),c);return d?n:n.endOf(a)},h=function(e,t){return _.w(c.toDate()[e].apply(c.toDate("s"),(d?[0,0,0,0]:[23,59,59,999]).slice(t)),c)},v=this.$W,m=this.$M,g=this.$D,y="set"+(this.$u?"UTC":"");switch(p){case s:return d?f(1,0):f(31,11);case r:return d?f(1,m):f(0,m+1);case o:var b=this.$locale().weekStart||0,k=(v<b?v+7:v)-b;return f(d?g-k:g+(6-k),m);case a:case u:return h(y+"Hours",0);case l:return h(y+"Minutes",1);case n:return h(y+"Seconds",2);case t:return h(y+"Milliseconds",3);default:return this.clone()}},f.endOf=function(e){return this.startOf(e,!1)},f.$set=function(o,i){var c,d=_.p(o),p="set"+(this.$u?"UTC":""),f=(c={},c[a]=p+"Date",c[u]=p+"Date",c[r]=p+"Month",c[s]=p+"FullYear",c[l]=p+"Hours",c[n]=p+"Minutes",c[t]=p+"Seconds",c[e]=p+"Milliseconds",c)[d],h=d===a?this.$D+(i-this.$W):i;if(d===r||d===s){var v=this.clone().set(u,1);v.$d[f](h),v.init(),this.$d=v.set(u,Math.min(this.$D,v.daysInMonth())).$d}else f&&this.$d[f](h);return this.init(),this},f.set=function(e,t){return this.clone().$set(e,t)},f.get=function(e){return this[_.p(e)]()},f.add=function(e,i){var u,c=this;e=Number(e);var d=_.p(i),p=function(t){var n=b(c);return _.w(n.date(n.date()+Math.round(t*e)),c)};if(d===r)return this.set(r,this.$M+e);if(d===s)return this.set(s,this.$y+e);if(d===a)return p(1);if(d===o)return p(7);var f=(u={},u[n]=6e4,u[l]=36e5,u[t]=1e3,u)[d]||1,h=this.$d.getTime()+e*f;return _.w(h,this)},f.subtract=function(e,t){return this.add(-1*e,t)},f.format=function(e){var t=this;if(!this.isValid())return"Invalid Date";var n=e||"YYYY-MM-DDTHH:mm:ssZ",l=_.z(this),a=this.$locale(),o=this.$H,r=this.$m,i=this.$M,s=a.weekdays,u=a.months,c=function(e,l,a,o){return e&&(e[l]||e(t,n))||a[l].substr(0,o)},p=function(e){return _.s(o%12||12,e,"0")},f=a.meridiem||function(e,t,n){var l=e<12?"AM":"PM";return n?l.toLowerCase():l},h={YY:String(this.$y).slice(-2),YYYY:this.$y,M:i+1,MM:_.s(i+1,2,"0"),MMM:c(a.monthsShort,i,u,3),MMMM:c(u,i),D:this.$D,DD:_.s(this.$D,2,"0"),d:String(this.$W),dd:c(a.weekdaysMin,this.$W,s,2),ddd:c(a.weekdaysShort,this.$W,s,3),dddd:s[this.$W],H:String(o),HH:_.s(o,2,"0"),h:p(1),hh:p(2),a:f(o,r,!0),A:f(o,r,!1),m:String(r),mm:_.s(r,2,"0"),s:String(this.$s),ss:_.s(this.$s,2,"0"),SSS:_.s(this.$ms,3,"0"),Z:l};return n.replace(d,(function(e,t){return t||h[e]||l.replace(":","")}))},f.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},f.diff=function(e,u,c){var d,p=_.p(u),f=b(e),h=6e4*(f.utcOffset()-this.utcOffset()),v=this-f,m=_.m(this,f);return m=(d={},d[s]=m/12,d[r]=m,d[i]=m/3,d[o]=(v-h)/6048e5,d[a]=(v-h)/864e5,d[l]=v/36e5,d[n]=v/6e4,d[t]=v/1e3,d)[p]||v,c?m:_.a(m)},f.daysInMonth=function(){return this.endOf(r).$D},f.$locale=function(){return m[this.$L]},f.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),l=y(e,t,!0);return l&&(n.$L=l),n},f.clone=function(){return _.w(this.$d,this)},f.toDate=function(){return new Date(this.valueOf())},f.toJSON=function(){return this.isValid()?this.toISOString():null},f.toISOString=function(){return this.$d.toISOString()},f.toString=function(){return this.$d.toUTCString()},p}(),x=k.prototype;return b.prototype=x,[["$ms",e],["$s",t],["$m",n],["$H",l],["$W",a],["$M",r],["$y",s],["$D",u]].forEach((function(e){x[e[1]]=function(t){return this.$g(t,e[0],e[1])}})),b.extend=function(e,t){return e.$i||(e(t,k,b),e.$i=!0),b},b.locale=y,b.isDayjs=g,b.unix=function(e){return b(1e3*e)},b.en=m[v],b.Ls=m,b.p={},b}(),Hc={exports:{}},Wc=Hc.exports=function(e,t,n){var l=function(e){return e&&(e.indexOf?e:e.s)},a=function(e,t,n,a,o){var r=e.name?e:e.$locale(),i=l(r[t]),s=l(r[n]),u=i||s.map((function(e){return e.substr(0,a)}));if(!o)return u;var c=r.weekStart;return u.map((function(e,t){return u[(t+(c||0))%7]}))},o=function(){return n.Ls[n.locale()]},r=function(e,t){return e.formats[t]||e.formats[t.toUpperCase()].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))};t.prototype.localeData=function(){return function(){var e=this;return{months:function(t){return t?t.format("MMMM"):a(e,"months")},monthsShort:function(t){return t?t.format("MMM"):a(e,"monthsShort","months",3)},firstDayOfWeek:function(){return e.$locale().weekStart||0},weekdays:function(t){return t?t.format("dddd"):a(e,"weekdays")},weekdaysMin:function(t){return t?t.format("dd"):a(e,"weekdaysMin","weekdays",2)},weekdaysShort:function(t){return t?t.format("ddd"):a(e,"weekdaysShort","weekdays",3)},longDateFormat:function(t){return r(e.$locale(),t)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}}.bind(this)()},n.localeData=function(){var e=o();return{firstDayOfWeek:function(){return e.weekStart||0},weekdays:function(){return n.weekdays()},weekdaysShort:function(){return n.weekdaysShort()},weekdaysMin:function(){return n.weekdaysMin()},months:function(){return n.months()},monthsShort:function(){return n.monthsShort()},longDateFormat:function(t){return r(e,t)},meridiem:e.meridiem,ordinal:e.ordinal}},n.months=function(){return a(o(),"months")},n.monthsShort=function(){return a(o(),"monthsShort","months",3)},n.weekdays=function(e){return a(o(),"weekdays",null,null,e)},n.weekdaysShort=function(e){return a(o(),"weekdaysShort","weekdays",3,e)},n.weekdaysMin=function(e){return a(o(),"weekdaysMin","weekdays",2,e)}},Yc={exports:{}},qc=Yc.exports=(Mc={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Oc=function(e,t){return e.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,l){var a=l&&l.toUpperCase();return n||t[l]||Mc[l]||t[a].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))},Tc=/(\[[^[]*\])|([-:/.()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,Ac={},Ic=[/[+-]\d\d:?(\d\d)?/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e)}],Fc=function(e){var t=Ac[e];return t&&(t.indexOf?t:t.s.concat(t.f))},Vc=function(e,t){var n,l=Ac.meridiem;if(l){for(var a=1;a<=24;a+=1)if(e.indexOf(l(a,0,t))>-1){n=a>12;break}}else n=e===(t?"pm":"PM");return n},Bc={A:[Nc=/\d*[^\s\d-_:/()]+/,function(e){this.afternoon=Vc(e,!1)}],a:[Nc,function(e){this.afternoon=Vc(e,!0)}],S:[/\d/,function(e){this.milliseconds=100*+e}],SS:[Dc=/\d\d/,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[Lc=/\d\d?/,(Pc=function(e){return function(t){this[e]=+t}})("seconds")],ss:[Lc,Pc("seconds")],m:[Lc,Pc("minutes")],mm:[Lc,Pc("minutes")],H:[Lc,Pc("hours")],h:[Lc,Pc("hours")],HH:[Lc,Pc("hours")],hh:[Lc,Pc("hours")],D:[Lc,Pc("day")],DD:[Dc,Pc("day")],Do:[Nc,function(e){var t=Ac.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var l=1;l<=31;l+=1)t(l).replace(/\[|\]/g,"")===e&&(this.day=l)}],M:[Lc,Pc("month")],MM:[Dc,Pc("month")],MMM:[Nc,function(e){var t=Fc("months"),n=(Fc("monthsShort")||t.map((function(e){return e.substr(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[Nc,function(e){var t=Fc("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,Pc("year")],YY:[Dc,function(e){e=+e,this.year=e+(e>68?1900:2e3)}],YYYY:[/\d{4}/,Pc("year")],Z:Ic,ZZ:Ic},$c=function(e,t,n){try{var l=function(e){for(var t=(e=Oc(e,Ac&&Ac.formats)).match(Tc),n=t.length,l=0;l<n;l+=1){var a=t[l],o=Bc[a],r=o&&o[0],i=o&&o[1];t[l]=i?{regex:r,parser:i}:a.replace(/^\[|\]$/g,"")}return function(e){for(var l={},a=0,o=0;a<n;a+=1){var r=t[a];if("string"==typeof r)o+=r.length;else{var i=r.regex,s=r.parser,u=e.substr(o),c=i.exec(u)[0];s.call(l,c),e=e.replace(c,"")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(l),l}}(t)(e),a=l.year,o=l.month,r=l.day,i=l.hours,s=l.minutes,u=l.seconds,c=l.milliseconds,d=l.zone,p=new Date,f=r||(a||o?1:p.getDate()),h=a||p.getFullYear(),v=0;a&&!o||(v=o>0?o-1:p.getMonth());var m=i||0,g=s||0,y=u||0,b=c||0;return d?new Date(Date.UTC(h,v,f,m,g,y,b+60*d.offset*1e3)):n?new Date(Date.UTC(h,v,f,m,g,y,b)):new Date(h,v,f,m,g,y,b)}catch(_){return new Date("")}},function(e,t,n){n.p.customParseFormat=!0;var l=t.prototype,a=l.parse;l.parse=function(e){var t=e.date,l=e.utc,o=e.args;this.$u=l;var r=o[1];if("string"==typeof r){var i=!0===o[2],s=!0===o[3],u=i||s,c=o[2];s&&(c=o[2]),Ac=this.$locale(),!i&&c&&(Ac=n.Ls[c]),this.$d=$c(t,r,l),this.init(),c&&!0!==c&&(this.$L=this.locale(c).$L),u&&t!==this.format(r)&&(this.$d=new Date("")),Ac={}}else if(r instanceof Array)for(var d=r.length,p=1;p<=d;p+=1){o[1]=r[p-1];var f=n.apply(this,o);if(f.isValid()){this.$d=f.$d,this.$L=f.$L,this.init();break}p===d&&(this.$d=new Date(""))}else a.call(this,e)}});var Kc=function(e,t){for(var n=-1,l=t.length,a=e.length;++n<l;)e[a+n]=t[n];return e},Uc=Ns,Gc=As;var Xc=function(e){return Gc(e)&&"[object Arguments]"==Uc(e)},Zc=As,Jc=Object.prototype,Qc=Jc.hasOwnProperty,ed=Jc.propertyIsEnumerable,td=Xc(function(){return arguments}())?Xc:function(e){return Zc(e)&&Qc.call(e,"callee")&&!ed.call(e,"callee")},nd=Array.isArray,ld=td,ad=nd,od=ks?ks.isConcatSpreadable:void 0;var rd=Kc,id=function(e){return ad(e)||ld(e)||!!(od&&e&&e[od])};var sd=function e(t,n,l,a,o){var r=-1,i=t.length;for(l||(l=id),o||(o=[]);++r<i;){var s=t[r];n>0&&l(s)?n>1?e(s,n-1,l,a,o):rd(o,s):a||(o[o.length]=s)}return o};var ud=function(e){return e};var cd=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)},dd=Math.max;var pd=function(e,t,n){return t=dd(void 0===t?e.length-1:t,0),function(){for(var l=arguments,a=-1,o=dd(l.length-t,0),r=Array(o);++a<o;)r[a]=l[t+a];a=-1;for(var i=Array(t+1);++a<t;)i[a]=l[a];return i[t]=n(r),cd(e,this,i)}};var fd=function(e){return function(){return e}},hd=Ns,vd=cs;var md,gd=function(e){if(!vd(e))return!1;var t=hd(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},yd=hs["__core-js_shared__"],bd=(md=/[^.]+$/.exec(yd&&yd.keys&&yd.keys.IE_PROTO||""))?"Symbol(src)_1."+md:"";var _d=function(e){return!!bd&&bd in e},kd=Function.prototype.toString;var xd=function(e){if(null!=e){try{return kd.call(e)}catch(Oc){}try{return e+""}catch(Oc){}}return""},wd=gd,Cd=_d,Sd=cs,Ed=xd,Md=/^\[object .+?Constructor\]$/,Od=Function.prototype,Td=Object.prototype,Dd=Od.toString,Ld=Td.hasOwnProperty,Nd=RegExp("^"+Dd.call(Ld).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var Ad=function(e){return!(!Sd(e)||Cd(e))&&(wd(e)?Nd:Md).test(Ed(e))},Pd=function(e,t){return null==e?void 0:e[t]};var Id=function(e,t){var n=Pd(e,t);return Ad(n)?n:void 0},Fd=Id,Vd=function(){try{var e=Fd(Object,"defineProperty");return e({},"",{}),e}catch(Oc){}}(),Bd=fd,$d=Vd,zd=$d?function(e,t){return $d(e,"toString",{configurable:!0,enumerable:!1,value:Bd(t),writable:!0})}:ud,jd=Date.now;var Rd=function(e){var t=0,n=0;return function(){var l=jd(),a=16-(l-n);if(n=l,a>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(zd),Hd=ud,Wd=pd,Yd=Rd;var qd=function(e,t){return Yd(Wd(e,t,Hd),e+"")},Kd=Id(Object,"create"),Ud=Kd;var Gd=function(){this.__data__=Ud?Ud(null):{},this.size=0};var Xd=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Zd=Kd,Jd=Object.prototype.hasOwnProperty;var Qd=function(e){var t=this.__data__;if(Zd){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return Jd.call(t,e)?t[e]:void 0},ep=Kd,tp=Object.prototype.hasOwnProperty;var np=Kd;var lp=Gd,ap=Xd,op=Qd,rp=function(e){var t=this.__data__;return ep?void 0!==t[e]:tp.call(t,e)},ip=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=np&&void 0===t?"__lodash_hash_undefined__":t,this};function sp(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var l=e[t];this.set(l[0],l[1])}}sp.prototype.clear=lp,sp.prototype.delete=ap,sp.prototype.get=op,sp.prototype.has=rp,sp.prototype.set=ip;var up=sp;var cp=function(){this.__data__=[],this.size=0};var dp=function(e,t){return e===t||e!=e&&t!=t},pp=dp;var fp=function(e,t){for(var n=e.length;n--;)if(pp(e[n][0],t))return n;return-1},hp=fp,vp=Array.prototype.splice;var mp=fp;var gp=fp;var yp=fp;var bp=cp,_p=function(e){var t=this.__data__,n=hp(t,e);return!(n<0)&&(n==t.length-1?t.pop():vp.call(t,n,1),--this.size,!0)},kp=function(e){var t=this.__data__,n=mp(t,e);return n<0?void 0:t[n][1]},xp=function(e){return gp(this.__data__,e)>-1},wp=function(e,t){var n=this.__data__,l=yp(n,e);return l<0?(++this.size,n.push([e,t])):n[l][1]=t,this};function Cp(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var l=e[t];this.set(l[0],l[1])}}Cp.prototype.clear=bp,Cp.prototype.delete=_p,Cp.prototype.get=kp,Cp.prototype.has=xp,Cp.prototype.set=wp;var Sp=Cp,Ep=Id(hs,"Map"),Mp=up,Op=Sp,Tp=Ep;var Dp=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e};var Lp=function(e,t){var n=e.__data__;return Dp(t)?n["string"==typeof t?"string":"hash"]:n.map},Np=Lp;var Ap=Lp;var Pp=Lp;var Ip=Lp;var Fp=function(){this.size=0,this.__data__={hash:new Mp,map:new(Tp||Op),string:new Mp}},Vp=function(e){var t=Np(this,e).delete(e);return this.size-=t?1:0,t},Bp=function(e){return Ap(this,e).get(e)},$p=function(e){return Pp(this,e).has(e)},zp=function(e,t){var n=Ip(this,e),l=n.size;return n.set(e,t),this.size+=n.size==l?0:1,this};function jp(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var l=e[t];this.set(l[0],l[1])}}jp.prototype.clear=Fp,jp.prototype.delete=Vp,jp.prototype.get=Bp,jp.prototype.has=$p,jp.prototype.set=zp;var Rp=jp;var Hp=Rp,Wp=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Yp=function(e){return this.__data__.has(e)};function qp(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new Hp;++t<n;)this.add(e[t])}qp.prototype.add=qp.prototype.push=Wp,qp.prototype.has=Yp;var Kp=qp;var Up=function(e,t,n,l){for(var a=e.length,o=n+(l?1:-1);l?o--:++o<a;)if(t(e[o],o,e))return o;return-1},Gp=function(e){return e!=e},Xp=function(e,t,n){for(var l=n-1,a=e.length;++l<a;)if(e[l]===t)return l;return-1};var Zp=function(e,t,n){return t==t?Xp(e,t,n):Up(e,Gp,n)};var Jp=function(e,t){return!!(null==e?0:e.length)&&Zp(e,t,0)>-1};var Qp=function(e,t,n){for(var l=-1,a=null==e?0:e.length;++l<a;)if(n(t,e[l]))return!0;return!1};var ef=function(e,t){return e.has(t)},tf=Id(hs,"Set");var nf=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n},lf=tf,af=function(){},of=lf&&1/nf(new lf([,-0]))[1]==1/0?function(e){return new lf(e)}:af,rf=Kp,sf=Jp,uf=Qp,cf=ef,df=of,pf=nf;var ff=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991},hf=gd,vf=ff;var mf=function(e){return null!=e&&vf(e.length)&&!hf(e)},gf=mf,yf=As;var bf=sd,_f=function(e,t,n){var l=-1,a=sf,o=e.length,r=!0,i=[],s=i;if(n)r=!1,a=uf;else if(o>=200){var u=t?null:df(e);if(u)return pf(u);r=!1,a=cf,s=new rf}else s=t?[]:i;e:for(;++l<o;){var c=e[l],d=t?t(c):c;if(c=n||0!==c?c:0,r&&d==d){for(var p=s.length;p--;)if(s[p]===d)continue e;t&&s.push(d),i.push(c)}else a(s,d,n)||(s!==i&&s.push(d),i.push(c))}return i},kf=function(e){return yf(e)&&gf(e)},xf=qd((function(e){return _f(bf(e,1,kf,!0))})),wf=Sp;var Cf=Sp,Sf=Ep,Ef=Rp;var Mf=Sp,Of=function(){this.__data__=new wf,this.size=0},Tf=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Df=function(e){return this.__data__.get(e)},Lf=function(e){return this.__data__.has(e)},Nf=function(e,t){var n=this.__data__;if(n instanceof Cf){var l=n.__data__;if(!Sf||l.length<199)return l.push([e,t]),this.size=++n.size,this;n=this.__data__=new Ef(l)}return n.set(e,t),this.size=n.size,this};function Af(e){var t=this.__data__=new Mf(e);this.size=t.size}Af.prototype.clear=Of,Af.prototype.delete=Tf,Af.prototype.get=Df,Af.prototype.has=Lf,Af.prototype.set=Nf;var Pf=Af;var If=Kp,Ff=function(e,t){for(var n=-1,l=null==e?0:e.length;++n<l;)if(t(e[n],n,e))return!0;return!1},Vf=ef;var Bf=function(e,t,n,l,a,o){var r=1&n,i=e.length,s=t.length;if(i!=s&&!(r&&s>i))return!1;var u=o.get(e),c=o.get(t);if(u&&c)return u==t&&c==e;var d=-1,p=!0,f=2&n?new If:void 0;for(o.set(e,t),o.set(t,e);++d<i;){var h=e[d],v=t[d];if(l)var m=r?l(v,h,d,t,e,o):l(h,v,d,e,t,o);if(void 0!==m){if(m)continue;p=!1;break}if(f){if(!Ff(t,(function(e,t){if(!Vf(f,t)&&(h===e||a(h,e,n,l,o)))return f.push(t)}))){p=!1;break}}else if(h!==v&&!a(h,v,n,l,o)){p=!1;break}}return o.delete(e),o.delete(t),p},$f=hs.Uint8Array;var zf=$f,jf=dp,Rf=Bf,Hf=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,l){n[++t]=[l,e]})),n},Wf=nf,Yf=ks?ks.prototype:void 0,qf=Yf?Yf.valueOf:void 0;var Kf=function(e,t,n,l,a,o,r){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!o(new zf(e),new zf(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return jf(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var i=Hf;case"[object Set]":var s=1&l;if(i||(i=Wf),e.size!=t.size&&!s)return!1;var u=r.get(e);if(u)return u==t;l|=2,r.set(e,t);var c=Rf(i(e),i(t),l,a,o,r);return r.delete(e),c;case"[object Symbol]":if(qf)return qf.call(e)==qf.call(t)}return!1},Uf=Kc,Gf=nd;var Xf=function(e,t,n){var l=t(e);return Gf(e)?l:Uf(l,n(e))};var Zf=function(){return[]},Jf=function(e,t){for(var n=-1,l=null==e?0:e.length,a=0,o=[];++n<l;){var r=e[n];t(r,n,e)&&(o[a++]=r)}return o},Qf=Zf,eh=Object.prototype.propertyIsEnumerable,th=Object.getOwnPropertySymbols,nh=th?function(e){return null==e?[]:(e=Object(e),Jf(th(e),(function(t){return eh.call(e,t)})))}:Qf;var lh,ah,oh,rh,ih,sh,uh,ch,dh=function(e,t){for(var n=-1,l=Array(e);++n<e;)l[n]=t(n);return l},ph={exports:{}};lh=ph,oh=hs,rh=function(){return!1},ih=(ah=ph.exports)&&!ah.nodeType&&ah,sh=ih&&lh&&!lh.nodeType&&lh,uh=sh&&sh.exports===ih?oh.Buffer:void 0,ch=(uh?uh.isBuffer:void 0)||rh,lh.exports=ch;var fh=/^(?:0|[1-9]\d*)$/;var hh=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&fh.test(e))&&e>-1&&e%1==0&&e<t},vh=Ns,mh=ff,gh=As,yh={};yh["[object Float32Array]"]=yh["[object Float64Array]"]=yh["[object Int8Array]"]=yh["[object Int16Array]"]=yh["[object Int32Array]"]=yh["[object Uint8Array]"]=yh["[object Uint8ClampedArray]"]=yh["[object Uint16Array]"]=yh["[object Uint32Array]"]=!0,yh["[object Arguments]"]=yh["[object Array]"]=yh["[object ArrayBuffer]"]=yh["[object Boolean]"]=yh["[object DataView]"]=yh["[object Date]"]=yh["[object Error]"]=yh["[object Function]"]=yh["[object Map]"]=yh["[object Number]"]=yh["[object Object]"]=yh["[object RegExp]"]=yh["[object Set]"]=yh["[object String]"]=yh["[object WeakMap]"]=!1;var bh=function(e){return gh(e)&&mh(e.length)&&!!yh[vh(e)]};var _h=function(e){return function(t){return e(t)}},kh={exports:{}};!function(e,t){var n=ds,l=t&&!t.nodeType&&t,a=l&&e&&!e.nodeType&&e,o=a&&a.exports===l&&n.process,r=function(){try{var e=a&&a.require&&a.require("util").types;return e||o&&o.binding&&o.binding("util")}catch(Oc){}}();e.exports=r}(kh,kh.exports);var xh=bh,wh=_h,Ch=kh.exports,Sh=Ch&&Ch.isTypedArray,Eh=Sh?wh(Sh):xh,Mh=dh,Oh=td,Th=nd,Dh=ph.exports,Lh=hh,Nh=Eh,Ah=Object.prototype.hasOwnProperty;var Ph=function(e,t){var n=Th(e),l=!n&&Oh(e),a=!n&&!l&&Dh(e),o=!n&&!l&&!a&&Nh(e),r=n||l||a||o,i=r?Mh(e.length,String):[],s=i.length;for(var u in e)!t&&!Ah.call(e,u)||r&&("length"==u||a&&("offset"==u||"parent"==u)||o&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||Lh(u,s))||i.push(u);return i},Ih=Object.prototype;var Fh=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ih)};var Vh=function(e,t){return function(n){return e(t(n))}},Bh=Vh(Object.keys,Object),$h=Fh,zh=Bh,jh=Object.prototype.hasOwnProperty;var Rh=Ph,Hh=function(e){if(!$h(e))return zh(e);var t=[];for(var n in Object(e))jh.call(e,n)&&"constructor"!=n&&t.push(n);return t},Wh=mf;var Yh=function(e){return Wh(e)?Rh(e):Hh(e)},qh=Xf,Kh=nh,Uh=Yh;var Gh=function(e){return qh(e,Uh,Kh)},Xh=Gh,Zh=Object.prototype.hasOwnProperty;var Jh=function(e,t,n,l,a,o){var r=1&n,i=Xh(e),s=i.length;if(s!=Xh(t).length&&!r)return!1;for(var u=s;u--;){var c=i[u];if(!(r?c in t:Zh.call(t,c)))return!1}var d=o.get(e),p=o.get(t);if(d&&p)return d==t&&p==e;var f=!0;o.set(e,t),o.set(t,e);for(var h=r;++u<s;){var v=e[c=i[u]],m=t[c];if(l)var g=r?l(m,v,c,t,e,o):l(v,m,c,e,t,o);if(!(void 0===g?v===m||a(v,m,n,l,o):g)){f=!1;break}h||(h="constructor"==c)}if(f&&!h){var y=e.constructor,b=t.constructor;y==b||!("constructor"in e)||!("constructor"in t)||"function"==typeof y&&y instanceof y&&"function"==typeof b&&b instanceof b||(f=!1)}return o.delete(e),o.delete(t),f},Qh=Id(hs,"DataView"),ev=Ep,tv=Id(hs,"Promise"),nv=tf,lv=Id(hs,"WeakMap"),av=Ns,ov=xd,rv=ov(Qh),iv=ov(ev),sv=ov(tv),uv=ov(nv),cv=ov(lv),dv=av;(Qh&&"[object DataView]"!=dv(new Qh(new ArrayBuffer(1)))||ev&&"[object Map]"!=dv(new ev)||tv&&"[object Promise]"!=dv(tv.resolve())||nv&&"[object Set]"!=dv(new nv)||lv&&"[object WeakMap]"!=dv(new lv))&&(dv=function(e){var t=av(e),n="[object Object]"==t?e.constructor:void 0,l=n?ov(n):"";if(l)switch(l){case rv:return"[object DataView]";case iv:return"[object Map]";case sv:return"[object Promise]";case uv:return"[object Set]";case cv:return"[object WeakMap]"}return t});var pv=dv,fv=Pf,hv=Bf,vv=Kf,mv=Jh,gv=pv,yv=nd,bv=ph.exports,_v=Eh,kv=Object.prototype.hasOwnProperty;var xv=function(e,t,n,l,a,o){var r=yv(e),i=yv(t),s=r?"[object Array]":gv(e),u=i?"[object Array]":gv(t),c="[object Object]"==(s="[object Arguments]"==s?"[object Object]":s),d="[object Object]"==(u="[object Arguments]"==u?"[object Object]":u),p=s==u;if(p&&bv(e)){if(!bv(t))return!1;r=!0,c=!1}if(p&&!c)return o||(o=new fv),r||_v(e)?hv(e,t,n,l,a,o):vv(e,t,s,n,l,a,o);if(!(1&n)){var f=c&&kv.call(e,"__wrapped__"),h=d&&kv.call(t,"__wrapped__");if(f||h){var v=f?e.value():e,m=h?t.value():t;return o||(o=new fv),a(v,m,n,l,o)}}return!!p&&(o||(o=new fv),mv(e,t,n,l,a,o))},wv=As;var Cv=function e(t,n,l,a,o){return t===n||(null==t||null==n||!wv(t)&&!wv(n)?t!=t&&n!=n:xv(t,n,l,a,e,o))};var Sv=function(e,t){return Cv(e,t)},Ev={exports:{}},Mv=Ev.exports=function(e,t,n){var l=t.prototype,a=l.format;n.en.ordinal=function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"},l.format=function(e){var t=this,n=this.$locale(),l=this.$utils(),o=(e||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case"Q":return Math.ceil((t.$M+1)/3);case"Do":return n.ordinal(t.$D);case"gggg":return t.weekYear();case"GGGG":return t.isoWeekYear();case"wo":return n.ordinal(t.week(),"W");case"w":case"ww":return l.s(t.week(),"w"===e?1:2,"0");case"W":case"WW":return l.s(t.isoWeek(),"W"===e?1:2,"0");case"k":case"kk":return l.s(String(0===t.$H?24:t.$H),"k"===e?1:2,"0");case"X":return Math.floor(t.$d.getTime()/1e3);case"x":return t.$d.getTime();case"z":return"["+t.offsetName()+"]";case"zzz":return"["+t.offsetName("long")+"]";default:return e}}));return a.bind(this)(o)}},Ov={exports:{}},Tv=Ov.exports=function(){var e="week",t="year";return function(n,l,a){var o=l.prototype;o.week=function(n){if(void 0===n&&(n=null),null!==n)return this.add(7*(n-this.week()),"day");var l=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var o=a(this).startOf(t).add(1,t).date(l),r=a(this).endOf(e);if(o.isBefore(r))return 1}var i=a(this).startOf(t).date(l).startOf(e).subtract(1,"millisecond"),s=this.diff(i,e,!0);return s<0?a(this).startOf("week").week():Math.ceil(s)},o.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}(),Dv={exports:{}},Lv=Dv.exports=function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}},Nv={exports:{}},Av=Nv.exports=function(e,t){t.prototype.dayOfYear=function(e){var t=Math.round((this.startOf("day")-this.startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"day")}},Pv={exports:{}},Iv=Pv.exports=function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}},Fv={exports:{}},Vv=Fv.exports=function(e,t){t.prototype.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)}};function Bv(){return(Bv=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var l in n)Object.prototype.hasOwnProperty.call(n,l)&&(e[l]=n[l])}return e}).apply(this,arguments)}function $v(e){return($v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function zv(e,t){return(zv=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function jv(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(Oc){return!1}}function Rv(e,t,n){return(Rv=jv()?Reflect.construct:function(e,t,n){var l=[null];l.push.apply(l,t);var a=new(Function.bind.apply(e,l));return n&&zv(a,n.prototype),a}).apply(null,arguments)}function Hv(e){var t="function"==typeof Map?new Map:void 0;return(Hv=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,l)}function l(){return Rv(e,arguments,$v(this).constructor)}return l.prototype=Object.create(e.prototype,{constructor:{value:l,enumerable:!1,writable:!0,configurable:!0}}),zv(l,e)})(e)}var Wv=/%[sdj%]/g,Yv=function(){};function qv(e){if(!e||!e.length)return null;var t={};return e.forEach((function(e){var n=e.field;t[n]=t[n]||[],t[n].push(e)})),t}function Kv(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var l=1,a=t[0],o=t.length;if("function"==typeof a)return a.apply(null,t.slice(1));if("string"==typeof a){var r=String(a).replace(Wv,(function(e){if("%%"===e)return"%";if(l>=o)return e;switch(e){case"%s":return String(t[l++]);case"%d":return Number(t[l++]);case"%j":try{return JSON.stringify(t[l++])}catch(n){return"[Circular]"}break;default:return e}}));return r}return a}function Uv(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function Gv(e,t,n){var l=0,a=e.length;!function o(r){if(r&&r.length)n(r);else{var i=l;l+=1,i<a?t(e[i],o):n([])}}([])}"undefined"!=typeof process&&process.env;var Xv=function(e){var t,n;function l(t,n){var l;return(l=e.call(this,"Async Validation Error")||this).errors=t,l.fields=n,l}return n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,zv(t,n),l}(Hv(Error));function Zv(e,t,n,l){if(t.first){var a=new Promise((function(t,a){Gv(function(e){var t=[];return Object.keys(e).forEach((function(n){t.push.apply(t,e[n])})),t}(e),n,(function(e){return l(e),e.length?a(new Xv(e,qv(e))):t()}))}));return a.catch((function(e){return e})),a}var o=t.firstFields||[];!0===o&&(o=Object.keys(e));var r=Object.keys(e),i=r.length,s=0,u=[],c=new Promise((function(t,a){var c=function(e){if(u.push.apply(u,e),++s===i)return l(u),u.length?a(new Xv(u,qv(u))):t()};r.length||(l(u),t()),r.forEach((function(t){var l=e[t];-1!==o.indexOf(t)?Gv(l,n,c):function(e,t,n){var l=[],a=0,o=e.length;function r(e){l.push.apply(l,e),++a===o&&n(l)}e.forEach((function(e){t(e,r)}))}(l,n,c)}))}));return c.catch((function(e){return e})),c}function Jv(e){return function(t){return t&&t.message?(t.field=t.field||e.fullField,t):{message:"function"==typeof t?t():t,field:t.field||e.fullField}}}function Qv(e,t){if(t)for(var n in t)if(t.hasOwnProperty(n)){var l=t[n];"object"==typeof l&&"object"==typeof e[n]?e[n]=Bv({},e[n],l):e[n]=l}return e}function em(e,t,n,l,a,o){!e.required||n.hasOwnProperty(e.field)&&!Uv(t,o||e.type)||l.push(Kv(a.messages.required,e.fullField))}var tm={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},nm={integer:function(e){return nm.number(e)&&parseInt(e,10)===e},float:function(e){return nm.number(e)&&!nm.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(Oc){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"==typeof e&&!nm.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(tm.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(tm.url)},hex:function(e){return"string"==typeof e&&!!e.match(tm.hex)}};var lm={required:em,whitespace:function(e,t,n,l,a){(/^\s+$/.test(t)||""===t)&&l.push(Kv(a.messages.whitespace,e.fullField))},type:function(e,t,n,l,a){if(e.required&&void 0===t)em(e,t,n,l,a);else{var o=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(o)>-1?nm[o](t)||l.push(Kv(a.messages.types[o],e.fullField,e.type)):o&&typeof t!==e.type&&l.push(Kv(a.messages.types[o],e.fullField,e.type))}},range:function(e,t,n,l,a){var o="number"==typeof e.len,r="number"==typeof e.min,i="number"==typeof e.max,s=t,u=null,c="number"==typeof t,d="string"==typeof t,p=Array.isArray(t);if(c?u="number":d?u="string":p&&(u="array"),!u)return!1;p&&(s=t.length),d&&(s=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),o?s!==e.len&&l.push(Kv(a.messages[u].len,e.fullField,e.len)):r&&!i&&s<e.min?l.push(Kv(a.messages[u].min,e.fullField,e.min)):i&&!r&&s>e.max?l.push(Kv(a.messages[u].max,e.fullField,e.max)):r&&i&&(s<e.min||s>e.max)&&l.push(Kv(a.messages[u].range,e.fullField,e.min,e.max))},enum:function(e,t,n,l,a){e.enum=Array.isArray(e.enum)?e.enum:[],-1===e.enum.indexOf(t)&&l.push(Kv(a.messages.enum,e.fullField,e.enum.join(", ")))},pattern:function(e,t,n,l,a){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||l.push(Kv(a.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||l.push(Kv(a.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};function am(e,t,n,l,a){var o=e.type,r=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t,o)&&!e.required)return n();lm.required(e,t,l,r,a,o),Uv(t,o)||lm.type(e,t,l,r,a)}n(r)}var om={string:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t,"string")&&!e.required)return n();lm.required(e,t,l,o,a,"string"),Uv(t,"string")||(lm.type(e,t,l,o,a),lm.range(e,t,l,o,a),lm.pattern(e,t,l,o,a),!0===e.whitespace&&lm.whitespace(e,t,l,o,a))}n(o)},method:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),void 0!==t&&lm.type(e,t,l,o,a)}n(o)},number:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(""===t&&(t=void 0),Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),void 0!==t&&(lm.type(e,t,l,o,a),lm.range(e,t,l,o,a))}n(o)},boolean:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),void 0!==t&&lm.type(e,t,l,o,a)}n(o)},regexp:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),Uv(t)||lm.type(e,t,l,o,a)}n(o)},integer:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),void 0!==t&&(lm.type(e,t,l,o,a),lm.range(e,t,l,o,a))}n(o)},float:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),void 0!==t&&(lm.type(e,t,l,o,a),lm.range(e,t,l,o,a))}n(o)},array:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(null==t&&!e.required)return n();lm.required(e,t,l,o,a,"array"),null!=t&&(lm.type(e,t,l,o,a),lm.range(e,t,l,o,a))}n(o)},object:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),void 0!==t&&lm.type(e,t,l,o,a)}n(o)},enum:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a),void 0!==t&&lm.enum(e,t,l,o,a)}n(o)},pattern:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t,"string")&&!e.required)return n();lm.required(e,t,l,o,a),Uv(t,"string")||lm.pattern(e,t,l,o,a)}n(o)},date:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t,"date")&&!e.required)return n();var r;if(lm.required(e,t,l,o,a),!Uv(t,"date"))r=t instanceof Date?t:new Date(t),lm.type(e,r,l,o,a),r&&lm.range(e,r.getTime(),l,o,a)}n(o)},url:am,hex:am,email:am,required:function(e,t,n,l,a){var o=[],r=Array.isArray(t)?"array":typeof t;lm.required(e,t,l,o,a,r),n(o)},any:function(e,t,n,l,a){var o=[];if(e.required||!e.required&&l.hasOwnProperty(e.field)){if(Uv(t)&&!e.required)return n();lm.required(e,t,l,o,a)}n(o)}};function rm(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var im=rm();function sm(e){this.rules=null,this._messages=im,this.define(e)}sm.prototype={messages:function(e){return e&&(this._messages=Qv(rm(),e)),this._messages},define:function(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");var t,n;for(t in this.rules={},e)e.hasOwnProperty(t)&&(n=e[t],this.rules[t]=Array.isArray(n)?n:[n])},validate:function(e,t,n){var l=this;void 0===t&&(t={}),void 0===n&&(n=function(){});var a,o,r=e,i=t,s=n;if("function"==typeof i&&(s=i,i={}),!this.rules||0===Object.keys(this.rules).length)return s&&s(),Promise.resolve();if(i.messages){var u=this.messages();u===im&&(u=rm()),Qv(u,i.messages),i.messages=u}else i.messages=this.messages();var c={};(i.keys||Object.keys(this.rules)).forEach((function(t){a=l.rules[t],o=r[t],a.forEach((function(n){var a=n;"function"==typeof a.transform&&(r===e&&(r=Bv({},r)),o=r[t]=a.transform(o)),(a="function"==typeof a?{validator:a}:Bv({},a)).validator=l.getValidationMethod(a),a.field=t,a.fullField=a.fullField||t,a.type=l.getType(a),a.validator&&(c[t]=c[t]||[],c[t].push({rule:a,value:o,source:r,field:t}))}))}));var d={};return Zv(c,i,(function(e,t){var n,l=e.rule,a=!("object"!==l.type&&"array"!==l.type||"object"!=typeof l.fields&&"object"!=typeof l.defaultField);function o(e,t){return Bv({},t,{fullField:l.fullField+"."+e})}function r(n){void 0===n&&(n=[]);var r=n;if(Array.isArray(r)||(r=[r]),!i.suppressWarning&&r.length&&sm.warning("async-validator:",r),r.length&&void 0!==l.message&&(r=[].concat(l.message)),r=r.map(Jv(l)),i.first&&r.length)return d[l.field]=1,t(r);if(a){if(l.required&&!e.value)return void 0!==l.message?r=[].concat(l.message).map(Jv(l)):i.error&&(r=[i.error(l,Kv(i.messages.required,l.field))]),t(r);var s={};if(l.defaultField)for(var u in e.value)e.value.hasOwnProperty(u)&&(s[u]=l.defaultField);for(var c in s=Bv({},s,e.rule.fields))if(s.hasOwnProperty(c)){var p=Array.isArray(s[c])?s[c]:[s[c]];s[c]=p.map(o.bind(null,c))}var f=new sm(s);f.messages(i.messages),e.rule.options&&(e.rule.options.messages=i.messages,e.rule.options.error=i.error),f.validate(e.value,e.rule.options||i,(function(e){var n=[];r&&r.length&&n.push.apply(n,r),e&&e.length&&n.push.apply(n,e),t(n.length?n:null)}))}else t(r)}a=a&&(l.required||!l.required&&e.value),l.field=e.field,l.asyncValidator?n=l.asyncValidator(l,e.value,r,e.source,i):l.validator&&(!0===(n=l.validator(l,e.value,r,e.source,i))?r():!1===n?r(l.message||l.field+" fails"):n instanceof Array?r(n):n instanceof Error&&r(n.message)),n&&n.then&&n.then((function(){return r()}),(function(e){return r(e)}))}),(function(e){!function(e){var t,n=[],l={};function a(e){var t;Array.isArray(e)?n=(t=n).concat.apply(t,e):n.push(e)}for(t=0;t<e.length;t++)a(e[t]);n.length?l=qv(n):(n=null,l=null),s(n,l)}(e)}))},getType:function(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!om.hasOwnProperty(e.type))throw new Error(Kv("Unknown rule type %s",e.type));return e.type||"string"},getValidationMethod:function(e){if("function"==typeof e.validator)return e.validator;var t=Object.keys(e),n=t.indexOf("message");return-1!==n&&t.splice(n,1),1===t.length&&"required"===t[0]?om.required:om[this.getType(e)]||!1}},sm.register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");om[e]=t},sm.warning=Yv,sm.messages=im,sm.validators=om;var um=function(e,t){for(var n=-1,l=null==e?0:e.length;++n<l&&!1!==t(e[n],n,e););return e},cm=Vd;var dm=function(e,t,n){"__proto__"==t&&cm?cm(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n},pm=dm,fm=dp,hm=Object.prototype.hasOwnProperty;var vm=function(e,t,n){var l=e[t];hm.call(e,t)&&fm(l,n)&&(void 0!==n||t in e)||pm(e,t,n)},mm=vm,gm=dm;var ym=function(e,t,n,l){var a=!n;n||(n={});for(var o=-1,r=t.length;++o<r;){var i=t[o],s=l?l(n[i],e[i],i,n,e):void 0;void 0===s&&(s=e[i]),a?gm(n,i,s):mm(n,i,s)}return n},bm=ym,_m=Yh;var km=function(e,t){return e&&bm(t,_m(t),e)};var xm=cs,wm=Fh,Cm=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t},Sm=Object.prototype.hasOwnProperty;var Em=Ph,Mm=function(e){if(!xm(e))return Cm(e);var t=wm(e),n=[];for(var l in e)("constructor"!=l||!t&&Sm.call(e,l))&&n.push(l);return n},Om=mf;var Tm=function(e){return Om(e)?Em(e,!0):Mm(e)},Dm=ym,Lm=Tm;var Nm=function(e,t){return e&&Dm(t,Lm(t),e)},Am={exports:{}};!function(e,t){var n=hs,l=t&&!t.nodeType&&t,a=l&&e&&!e.nodeType&&e,o=a&&a.exports===l?n.Buffer:void 0,r=o?o.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,l=r?r(n):new e.constructor(n);return e.copy(l),l}}(Am,Am.exports);var Pm=function(e,t){var n=-1,l=e.length;for(t||(t=Array(l));++n<l;)t[n]=e[n];return t},Im=ym,Fm=nh;var Vm=function(e,t){return Im(e,Fm(e),t)},Bm=Vh(Object.getPrototypeOf,Object),$m=Kc,zm=Bm,jm=nh,Rm=Zf,Hm=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)$m(t,jm(e)),e=zm(e);return t}:Rm,Wm=ym,Ym=Hm;var qm=function(e,t){return Wm(e,Ym(e),t)},Km=Xf,Um=Hm,Gm=Tm;var Xm=function(e){return Km(e,Gm,Um)},Zm=Object.prototype.hasOwnProperty;var Jm=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&Zm.call(e,"index")&&(n.index=e.index,n.input=e.input),n},Qm=$f;var eg=function(e){var t=new e.constructor(e.byteLength);return new Qm(t).set(new Qm(e)),t},tg=eg;var ng=function(e,t){var n=t?tg(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)},lg=/\w*$/;var ag=function(e){var t=new e.constructor(e.source,lg.exec(e));return t.lastIndex=e.lastIndex,t},og=ks?ks.prototype:void 0,rg=og?og.valueOf:void 0;var ig=eg;var sg=eg,ug=ng,cg=ag,dg=function(e){return rg?Object(rg.call(e)):{}},pg=function(e,t){var n=t?ig(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)};var fg=function(e,t,n){var l=e.constructor;switch(t){case"[object ArrayBuffer]":return sg(e);case"[object Boolean]":case"[object Date]":return new l(+e);case"[object DataView]":return ug(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return pg(e,n);case"[object Map]":return new l;case"[object Number]":case"[object String]":return new l(e);case"[object RegExp]":return cg(e);case"[object Set]":return new l;case"[object Symbol]":return dg(e)}},hg=cs,vg=Object.create,mg=function(){function e(){}return function(t){if(!hg(t))return{};if(vg)return vg(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),gg=Bm,yg=Fh;var bg=function(e){return"function"!=typeof e.constructor||yg(e)?{}:mg(gg(e))},_g=pv,kg=As;var xg=function(e){return kg(e)&&"[object Map]"==_g(e)},wg=_h,Cg=kh.exports,Sg=Cg&&Cg.isMap,Eg=Sg?wg(Sg):xg,Mg=pv,Og=As;var Tg=function(e){return Og(e)&&"[object Set]"==Mg(e)},Dg=_h,Lg=kh.exports,Ng=Lg&&Lg.isSet,Ag=Ng?Dg(Ng):Tg,Pg=Pf,Ig=um,Fg=vm,Vg=km,Bg=Nm,$g=Am.exports,zg=Pm,jg=Vm,Rg=qm,Hg=Gh,Wg=Xm,Yg=pv,qg=Jm,Kg=fg,Ug=bg,Gg=nd,Xg=ph.exports,Zg=Eg,Jg=cs,Qg=Ag,ey=Yh,ty=Tm,ny={};ny["[object Arguments]"]=ny["[object Array]"]=ny["[object ArrayBuffer]"]=ny["[object DataView]"]=ny["[object Boolean]"]=ny["[object Date]"]=ny["[object Float32Array]"]=ny["[object Float64Array]"]=ny["[object Int8Array]"]=ny["[object Int16Array]"]=ny["[object Int32Array]"]=ny["[object Map]"]=ny["[object Number]"]=ny["[object Object]"]=ny["[object RegExp]"]=ny["[object Set]"]=ny["[object String]"]=ny["[object Symbol]"]=ny["[object Uint8Array]"]=ny["[object Uint8ClampedArray]"]=ny["[object Uint16Array]"]=ny["[object Uint32Array]"]=!0,ny["[object Error]"]=ny["[object Function]"]=ny["[object WeakMap]"]=!1;var ly=function e(t,n,l,a,o,r){var i,s=1&n,u=2&n,c=4&n;if(l&&(i=o?l(t,a,o,r):l(t)),void 0!==i)return i;if(!Jg(t))return t;var d=Gg(t);if(d){if(i=qg(t),!s)return zg(t,i)}else{var p=Yg(t),f="[object Function]"==p||"[object GeneratorFunction]"==p;if(Xg(t))return $g(t,s);if("[object Object]"==p||"[object Arguments]"==p||f&&!o){if(i=u||f?{}:Ug(t),!s)return u?Rg(t,Bg(i,t)):jg(t,Vg(i,t))}else{if(!ny[p])return o?t:{};i=Kg(t,p,s)}}r||(r=new Pg);var h=r.get(t);if(h)return h;r.set(t,i),Qg(t)?t.forEach((function(a){i.add(e(a,n,l,a,t,r))})):Zg(t)&&t.forEach((function(a,o){i.set(o,e(a,n,l,o,t,r))}));var v=d?void 0:(c?u?Wg:Hg:u?ty:ey)(t);return Ig(v||t,(function(a,o){v&&(a=t[o=a]),Fg(i,o,e(a,n,l,o,t,r))})),i};var ay=function(e){return ly(e,5)},oy="undefined"==typeof window;const ry=()=>{},iy=Object.assign,sy=Object.prototype.hasOwnProperty,uy=(e,t)=>sy.call(e,t),cy=Array.isArray,dy=e=>"function"==typeof e,py=e=>"string"==typeof e,fy=e=>null!==e&&"object"==typeof e,hy=e=>fy(e)&&dy(e.then)&&dy(e.catch),vy=Object.prototype.toString,my=e=>vy.call(e),gy=e=>my(e).slice(8,-1),yy=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},by=/-(\w)/g,_y=yy((e=>e.replace(by,((e,t)=>t?t.toUpperCase():"")))),ky=yy((e=>e.charAt(0).toUpperCase()+e.slice(1)));class xy extends Error{constructor(e){super(e),this.name="ElementPlusError"}}var wy=(e,t)=>{throw new xy(`[${e}] ${t}`)};const Cy=(e,t="")=>{let n=e;return t.split(".").map((e=>{n=null==n?void 0:n[e]})),n};function Sy(e,t,n){let l=e;const a=(t=(t=t.replace(/\[(\w+)\]/g,".$1")).replace(/^\./,"")).split(".");let o=0;for(;o<a.length-1&&(l||n);o++){const e=a[o];if(!(e in l)){if(n)throw new Error("please transfer a valid prop path to form item!");break}l=l[e]}return{o:l,k:a[o],v:null==l?void 0:l[a[o]]}}const Ey=()=>Math.floor(1e4*Math.random()),My=e=>e||0===e?Array.isArray(e)?e:[e]:[],Oy=e=>"boolean"==typeof e,Ty=e=>"number"==typeof e;function Dy(e){let t=!1;return function(...n){t||(t=!0,window.requestAnimationFrame((()=>{e.apply(this,n),t=!1})))}}const Ly=e=>{clearTimeout(e.value),e.value=null};function Ny(e){return Object.keys(e).map((t=>[t,e[t]]))}function Ay(){const e=na();return"$ELEMENT"in e.proxy?e.proxy.$ELEMENT:{}}const Py=function(e,t){return e.find(t)};function Iy(e){return!!(!e&&0!==e||cy(e)&&!e.length||fy(e)&&!Object.keys(e).length)}function Fy(e){return e.reduce(((e,t)=>{const n=Array.isArray(t)?Fy(t):t;return e.concat(n)}),[])}function Vy(e){return Array.from(new Set(e))}function By(e){return e.value}function $y(e){return py(e)?e:Ty(e)?e+"px":""}const zy=function(e,t,n,l=!1){e&&t&&n&&e.addEventListener(t,n,l)},jy=function(e,t,n,l=!1){e&&t&&n&&e.removeEventListener(t,n,l)};function Ry(e,t){if(!e||!t)return!1;if(-1!==t.indexOf(" "))throw new Error("className should not contain space.");return e.classList?e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1}function Hy(e,t){if(!e)return;let n=e.className;const l=(t||"").split(" ");for(let a=0,o=l.length;a<o;a++){const t=l[a];t&&(e.classList?e.classList.add(t):Ry(e,t)||(n+=" "+t))}e.classList||(e.className=n)}function Wy(e,t){if(!e||!t)return;const n=t.split(" ");let l=" "+e.className+" ";for(let a=0,o=n.length;a<o;a++){const t=n[a];t&&(e.classList?e.classList.remove(t):Ry(e,t)&&(l=l.replace(" "+t+" "," ")))}e.classList||(e.className=(l||"").replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g,""))}const Yy=function(e,t){if(!oy){if(!e||!t)return null;"float"===(t=_y(t))&&(t="cssFloat");try{const n=e.style[t];if(n)return n;const l=document.defaultView.getComputedStyle(e,"");return l?l[t]:""}catch(n){return e.style[t]}}},qy=(e,t)=>{if(!oy)return Yy(e,null==t?"overflow":t?"overflow-y":"overflow-x").match(/(scroll|auto)/)},Ky=(e,t)=>{if(oy)return;let n=e;for(;n;){if([window,document,document.documentElement].includes(n))return window;if(qy(n,t))return n;n=n.parentNode}return n},Uy=e=>{let t=0,n=e;for(;n;)t+=n.offsetTop,n=n.offsetParent;return t},Gy=e=>e.stopPropagation(),Xy=function(e){for(const t of e){const e=t.target.__resizeListeners__||[];e.length&&e.forEach((e=>{e()}))}},Zy=function(e,t){!oy&&e&&(e.__resizeListeners__||(e.__resizeListeners__=[],e.__ro__=new ss(Xy),e.__ro__.observe(e)),e.__resizeListeners__.push(t))},Jy=function(e,t){e&&e.__resizeListeners__&&(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),e.__resizeListeners__.length||e.__ro__.disconnect())};var Qy=Qn({name:"ElAffix",props:{zIndex:{type:Number,default:100},target:{type:String,default:""},offset:{type:Number,default:0},position:{type:String,default:"top"}},emits:["scroll","change"],setup(e,{emit:t}){const n=lt(null),l=lt(null),a=lt(null),o=Ue({fixed:!1,height:0,width:0,scrollTop:0,clientHeight:0,transform:0}),r=ca((()=>({height:o.fixed?o.height+"px":"",width:o.fixed?o.width+"px":""}))),i=ca((()=>{if(!o.fixed)return;const t=e.offset?e.offset+"px":0,n=o.transform?`translateY(${o.transform}px)`:"";return{height:o.height+"px",width:o.width+"px",top:"top"===e.position?t:"",bottom:"bottom"===e.position?t:"",transform:n,zIndex:e.zIndex}})),s=()=>{const t=l.value.getBoundingClientRect(),r=n.value.getBoundingClientRect();if(o.height=t.height,o.width=t.width,o.scrollTop=a.value===window?document.documentElement.scrollTop:a.value.scrollTop,o.clientHeight=document.documentElement.clientHeight,"top"===e.position)if(e.target){const n=r.bottom-e.offset-o.height;o.fixed=e.offset>t.top&&r.bottom>0,o.transform=n<0?n:0}else o.fixed=e.offset>t.top;else if(e.target){const n=o.clientHeight-r.top-e.offset-o.height;o.fixed=o.clientHeight-e.offset<t.bottom&&o.clientHeight>r.top,o.transform=n<0?-n:0}else o.fixed=o.clientHeight-e.offset<t.bottom},u=()=>{s(),t("scroll",{scrollTop:o.scrollTop,fixed:o.fixed})};return Sn((()=>o.fixed),(()=>{t("change",o.fixed)})),mn((()=>{if(e.target){if(n.value=document.querySelector(e.target),!n.value)throw new Error("target is not existed: "+e.target)}else n.value=document.documentElement;a.value=Ky(l.value),zy(a.value,"scroll",u),Zy(l.value,s)})),bn((()=>{jy(a.value,"scroll",u),Jy(l.value,s)})),{root:l,state:o,rootStyle:r,affixStyle:i}}});Qy.render=function(e,t,n,l,a,o){return wl(),Sl("div",{ref:"root",class:"el-affix",style:e.rootStyle},[Ll("div",{class:{"el-affix--fixed":e.state.fixed},style:e.affixStyle},[Ht(e.$slots,"default")],6)],4)},Qy.__file="packages/affix/src/index.vue",Qy.install=e=>{e.component(Qy.name,Qy)};const eb=Qy,tb={success:"el-icon-success",warning:"el-icon-warning",error:"el-icon-error"};var nb=Qn({name:"ElAlert",props:{title:{type:String,default:""},description:{type:String,default:""},type:{type:String,default:"info"},closable:{type:Boolean,default:!0},closeText:{type:String,default:""},showIcon:Boolean,center:Boolean,effect:{type:String,default:"light",validator:e=>["light","dark"].indexOf(e)>-1}},emits:["close"],setup(e,t){const n=lt(!0),l=ca((()=>"el-alert--"+e.type)),a=ca((()=>tb[e.type]||"el-icon-info")),o=ca((()=>e.description||t.slots.default?"is-big":"")),r=ca((()=>e.description||t.slots.default?"is-bold":""));return{visible:n,typeClass:l,iconClass:a,isBigIcon:o,isBoldTitle:r,close:e=>{n.value=!1,t.emit("close",e)}}}});const lb={class:"el-alert__content"},ab={key:1,class:"el-alert__description"};nb.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,{name:"el-alert-fade"},{default:Zt((()=>[Un(Ll("div",{class:["el-alert",[e.typeClass,e.center?"is-center":"","is-"+e.effect]],role:"alert"},[e.showIcon?(wl(),Sl("i",{key:0,class:["el-alert__icon",[e.iconClass,e.isBigIcon]]},null,2)):Pl("v-if",!0),Ll("div",lb,[e.title||e.$slots.title?(wl(),Sl("span",{key:0,class:["el-alert__title",[e.isBoldTitle]]},[Ht(e.$slots,"title",{},(()=>[Al(c(e.title),1)]))],2)):Pl("v-if",!0),e.$slots.default||e.description?(wl(),Sl("p",ab,[Ht(e.$slots,"default",{},(()=>[Al(c(e.description),1)]))])):Pl("v-if",!0),e.closable?(wl(),Sl("i",{key:2,class:["el-alert__closebtn",{"is-customed":""!==e.closeText,"el-icon-close":""===e.closeText}],onClick:t[1]||(t[1]=(...t)=>e.close&&e.close(...t))},c(e.closeText),3)):Pl("v-if",!0)])],2),[[mo,e.visible]])])),_:3})},nb.__file="packages/alert/src/index.vue",nb.install=e=>{e.component(nb.name,nb)};const ob=nb;var rb=Qn({name:"ElAside",props:{width:{type:String,default:"300px"}}});rb.render=function(e,t,n,l,a,o){return wl(),Sl("aside",{class:"el-aside",style:{width:e.width}},[Ht(e.$slots,"default")],4)},rb.__file="packages/container/src/aside.vue",rb.install=e=>{e.component(rb.name,rb)};const ib=rb,sb=["class","style"],ub=/^on[A-Z]/;var cb=(e={})=>{const{excludeListeners:t=!1,excludeKeys:n=[]}=e,l=na(),a=at({}),o=n.concat(sb);return l.attrs=Ue(l.attrs),wn((()=>{const e=Ny(l.attrs).reduce(((e,[n,l])=>(o.includes(n)||t&&ub.test(n)||(e[n]=l),e)),{});a.value=e})),a};let db;function pb(){if(oy)return 0;if(void 0!==db)return db;const e=document.createElement("div");e.className="el-scrollbar__wrap",e.style.visibility="hidden",e.style.width="100px",e.style.position="absolute",e.style.top="-9999px",document.body.appendChild(e);const t=e.offsetWidth;e.style.overflow="scroll";const n=document.createElement("div");n.style.width="100%",e.appendChild(n);const l=n.offsetWidth;return e.parentNode.removeChild(e),db=t-l,db}var fb=e=>{nt(e)||wy("[useLockScreen]","You need to pass a ref param to this function");let t=0,n=!1,l="0",a=0;_n((()=>{o()}));const o=()=>{Wy(document.body,"el-popup-parent--hidden"),n&&(document.body.style.paddingRight=l)};Sn(e,(e=>{if(e){n=!Ry(document.body,"el-popup-parent--hidden"),n&&(l=document.body.style.paddingRight,a=parseInt(Yy(document.body,"paddingRight"),10)),t=pb();const e=document.documentElement.clientHeight<document.body.scrollHeight,o=Yy(document.body,"overflowY");t>0&&(e||"scroll"===o)&&n&&(document.body.style.paddingRight=a+t+"px"),Hy(document.body,"el-popup-parent--hidden")}else o()}))},hb=(e,t)=>{let n;Sn((()=>e.value),(e=>{var l,a;e?(n=document.activeElement,nt(t)&&(null===(a=(l=t.value).focus)||void 0===a||a.call(l))):n.focus()}))};const vb={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace"},mb=e=>"fixed"!==getComputedStyle(e).position&&null!==e.offsetParent,gb=e=>Array.from(e.querySelectorAll('a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])')).filter(yb).filter(mb),yb=e=>{if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return!("hidden"===e.type||"file"===e.type);case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},bb=function(e,t,...n){let l;l=t.includes("mouse")||t.includes("click")?"MouseEvents":t.includes("key")?"KeyboardEvent":"HTMLEvents";const a=document.createEvent(l);return a.initEvent(t,...n),e.dispatchEvent(a),e},_b=[];var kb=(e,t)=>{Sn((()=>t.value),(t=>{t?_b.push(e):_b.splice(_b.findIndex((t=>t===e)),1)}))};oy||zy(document,"keydown",(e=>{0!==_b.length&&e.code===vb.esc&&(e.stopPropagation(),_b[_b.length-1].handleClose())}));const xb=new Map;let wb;function Cb(e,t){let n=[];return Array.isArray(t.arg)?n=t.arg:n.push(t.arg),function(l,a){const o=t.instance.popperRef,r=l.target,i=null==a?void 0:a.target,s=!t||!t.instance,u=!r||!i,c=e.contains(r)||e.contains(i),d=e===r,p=n.length&&n.some((e=>null==e?void 0:e.contains(r)))||n.length&&n.includes(i),f=o&&(o.contains(r)||o.contains(i));s||u||c||d||p||f||t.value()}}oy||(zy(document,"mousedown",(e=>wb=e)),zy(document,"mouseup",(e=>{for(const{documentHandler:t}of xb.values())t(e,wb)})));const Sb={beforeMount(e,t){xb.set(e,{documentHandler:Cb(e,t),bindingFn:t.value})},updated(e,t){xb.set(e,{documentHandler:Cb(e,t),bindingFn:t.value})},unmounted(e){xb.delete(e)}};var Eb={beforeMount(e,t){let n,l=null;const a=()=>t.value&&t.value(),o=()=>{Date.now()-n<100&&a(),clearInterval(l),l=null};zy(e,"mousedown",(e=>{0===e.button&&(n=Date.now(),function(e,t,n){const l=function(...a){n&&n.apply(this,a),jy(e,t,l)};zy(e,t,l)}(document,"mouseup",o),clearInterval(l),l=setInterval(a,100))}))}};const Mb=[],Ob=e=>{if(0===Mb.length)return;const t=Mb[Mb.length-1]["_trap-focus-children"];if(t.length>0&&e.code===vb.tab){if(1===t.length)return e.preventDefault(),void(document.activeElement!==t[0]&&t[0].focus());const n=e.shiftKey,l=e.target===t[0],a=e.target===t[t.length-1];l&&n&&(e.preventDefault(),t[t.length-1].focus()),a&&!n&&(e.preventDefault(),t[0].focus()),0}},Tb={beforeMount(e){e["_trap-focus-children"]=gb(e),Mb.push(e),Mb.length<=1&&zy(document,"keydown",Ob)},updated(e){Dt((()=>{e["_trap-focus-children"]=gb(e)}))},unmounted(){Mb.shift(),0===Mb.length&&jy(document,"keydown",Ob)}},Db="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>-1,Lb={beforeMount(e,t){!function(e,t){if(e&&e.addEventListener){const n=function(e){const n=_u(e);t&&t.apply(this,[e,n])};Db?e.addEventListener("DOMMouseScroll",n):e.onmousewheel=n}}(e,t.value)}},Nb="update:modelValue",Ab={validating:"el-icon-loading",success:"el-icon-circle-check",error:"el-icon-circle-close"};function Pb(e){return/([(\uAC00-\uD7AF)|(\u3130-\u318F)])+/gi.test(e)}const Ib=e=>["","large","medium","small","mini"].includes(e),Fb="el.form.addField",Vb="el.form.removeField";var Bb=Qn({name:"ElForm",props:{model:Object,rules:Object,labelPosition:String,labelWidth:String,labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:String,disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1}},emits:["validate"],setup(e,{emit:t}){const n=ku(),l=[];Sn((()=>e.rules),(()=>{l.forEach((e=>{e.removeValidateEvents(),e.addValidateEvents()})),e.validateOnRuleChange&&r((()=>({})))})),n.on(Fb,(e=>{e&&l.push(e)})),n.on(Vb,(e=>{e.prop&&l.splice(l.indexOf(e),1)}));const a=()=>{e.model?l.forEach((e=>{e.resetField()})):console.warn("[Element Warn][Form]model is required for resetFields to work.")},o=(e=[])=>{(e.length?"string"==typeof e?l.filter((t=>e===t.prop)):l.filter((t=>e.indexOf(t.prop)>-1)):l).forEach((e=>{e.clearValidate()}))},r=t=>{if(!e.model)return void console.warn("[Element Warn][Form]model is required for validate to work!");let n;"function"!=typeof t&&(n=new Promise(((e,n)=>{t=function(t,l){t?e(!0):n(l)}}))),0===l.length&&t(!0);let a=!0,o=0,r={};for(const e of l)e.validate("",((e,n)=>{e&&(a=!1),r=Object.assign(Object.assign({},r),n),++o===l.length&&t(a,r)}));return n},i=(e,t)=>{e=[].concat(e);const n=l.filter((t=>-1!==e.indexOf(t.prop)));l.length?n.forEach((e=>{e.validate("",t)})):console.warn("[Element Warn]please pass correct props!")};return $l("elForm",Ue(Object.assign(Object.assign(Object.assign({formMitt:n},ct(e)),{resetFields:a,clearValidate:o,validateField:i,emit:t}),function(){const e=lt([]);function t(t){const n=e.value.indexOf(t);return-1===n&&console.warn("[Element Warn][ElementForm]unexpected width "+t),n}return{autoLabelWidth:ca((()=>{if(!e.value.length)return"0";const t=Math.max(...e.value);return t?t+"px":""})),registerLabelWidth:function(n,l){if(n&&l){const a=t(l);e.value.splice(a,1,n)}else n&&e.value.push(n)},deregisterLabelWidth:function(n){const l=t(n);l>-1&&e.value.splice(l,1)}}}()))),{validate:r,resetFields:a,clearValidate:o,validateField:i}}});Bb.render=function(e,t,n,l,a,o){return wl(),Sl("form",{class:["el-form",[e.labelPosition?"el-form--label-"+e.labelPosition:"",{"el-form--inline":e.inline}]]},[Ht(e.$slots,"default")],2)},Bb.__file="packages/form/src/form.vue",Bb.install=e=>{e.component(Bb.name,Bb)};const $b=Bb;let zb;const jb=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function Rb(e,t=1,n=null){var l;zb||(zb=document.createElement("textarea"),document.body.appendChild(zb));const{paddingSize:a,borderSize:o,boxSizing:r,contextStyle:i}=function(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),l=parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),a=parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:jb.map((e=>`${e}:${t.getPropertyValue(e)}`)).join(";"),paddingSize:l,borderSize:a,boxSizing:n}}(e);zb.setAttribute("style",i+";\n  height:0 !important;\n  visibility:hidden !important;\n  overflow:hidden !important;\n  position:absolute !important;\n  z-index:-1000 !important;\n  top:0 !important;\n  right:0 !important;\n"),zb.value=e.value||e.placeholder||"";let s=zb.scrollHeight;const u={};"border-box"===r?s+=o:"content-box"===r&&(s-=a),zb.value="";const c=zb.scrollHeight-a;if(null!==t){let e=c*t;"border-box"===r&&(e=e+a+o),s=Math.max(e,s),u.minHeight=e+"px"}if(null!==n){let e=c*n;"border-box"===r&&(e=e+a+o),s=Math.min(e,s)}return u.height=s+"px",null===(l=zb.parentNode)||void 0===l||l.removeChild(zb),zb=null,u}const Hb={suffix:"append",prefix:"prepend"};var Wb=Qn({name:"ElInput",inheritAttrs:!1,props:{modelValue:{type:[String,Number],default:""},type:{type:String,default:"text"},size:{type:String,validator:Ib},resize:{type:String,validator:e=>["none","both","horizontal","vertical"].includes(e)},autosize:{type:[Boolean,Object],default:!1},autocomplete:{type:String,default:"off",validator:e=>["on","off"].includes(e)},placeholder:{type:String},form:{type:String,default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},suffixIcon:{type:String,default:""},prefixIcon:{type:String,default:""},label:{type:String},tabindex:{type:String},validateEvent:{type:Boolean,default:!0}},emits:[Nb,"input","change","focus","blur","clear","mouseleave","mouseenter","keydown"],setup(e,t){const n=na(),l=cb(),a=Ay(),o=zl("elForm",{}),r=zl("elFormItem",{}),i=lt(null),s=lt(null),u=lt(!1),c=lt(!1),d=lt(!1),p=lt(!1),f=at({}),h=ca((()=>i.value||s.value)),v=ca((()=>e.size||r.size||a.size)),m=ca((()=>o.statusIcon)),g=ca((()=>r.validateState||"")),y=ca((()=>Ab[g.value])),b=ca((()=>Object.assign(Object.assign({},f.value),{resize:e.resize}))),_=ca((()=>e.disabled||o.disabled)),k=ca((()=>null===e.modelValue||void 0===e.modelValue?"":String(e.modelValue))),x=ca((()=>t.attrs.maxlength)),w=ca((()=>e.clearable&&!_.value&&!e.readonly&&k.value&&(u.value||c.value))),C=ca((()=>e.showPassword&&!_.value&&!e.readonly&&(!!k.value||u.value))),S=ca((()=>e.showWordLimit&&t.attrs.maxlength&&("text"===e.type||"textarea"===e.type)&&!_.value&&!e.readonly&&!e.showPassword)),E=ca((()=>"number"==typeof e.modelValue?String(e.modelValue).length:(e.modelValue||"").length)),M=ca((()=>S.value&&E.value>x.value)),O=()=>{const{type:t,autosize:n}=e;if(!oy&&"textarea"===t)if(n){const e=fy(n)?n.minRows:void 0,t=fy(n)?n.maxRows:void 0;f.value=Rb(s.value,e,t)}else f.value={minHeight:Rb(s.value).minHeight}},T=()=>{const e=h.value;e&&e.value!==k.value&&(e.value=k.value)},D=e=>{const{el:l}=n.vnode,a=Array.from(l.querySelectorAll(".el-input__"+e)).find((e=>e.parentNode===l));if(!a)return;const o=Hb[e];t.slots[o]?a.style.transform=`translateX(${"suffix"===e?"-":""}${l.querySelector(".el-input-group__"+o).offsetWidth}px)`:a.removeAttribute("style")},L=()=>{D("prefix"),D("suffix")},N=e=>{const{value:n}=e.target;d.value||n!==k.value&&(t.emit(Nb,n),t.emit("input",n),Dt(T))},A=()=>{Dt((()=>{h.value.focus()}))};return Sn((()=>e.modelValue),(t=>{var n;Dt(O),e.validateEvent&&(null===(n=r.formItemMitt)||void 0===n||n.emit("el.form.change",[t]))})),Sn(k,(()=>{T()})),Sn((()=>e.type),(()=>{Dt((()=>{T(),O(),L()}))})),mn((()=>{T(),L(),Dt(O)})),yn((()=>{Dt(L)})),{input:i,textarea:s,attrs:l,inputSize:v,validateState:g,validateIcon:y,textareaStyle:b,resizeTextarea:O,inputDisabled:_,showClear:w,showPwdVisible:C,isWordLimitVisible:S,upperLimit:x,textLength:E,hovering:c,inputExceed:M,passwordVisible:p,inputOrTextarea:h,handleInput:N,handleChange:e=>{t.emit("change",e.target.value)},handleFocus:e=>{u.value=!0,t.emit("focus",e)},handleBlur:n=>{var l;u.value=!1,t.emit("blur",n),e.validateEvent&&(null===(l=r.formItemMitt)||void 0===l||l.emit("el.form.blur",[e.modelValue]))},handleCompositionStart:()=>{d.value=!0},handleCompositionUpdate:e=>{const t=e.target.value,n=t[t.length-1]||"";d.value=!Pb(n)},handleCompositionEnd:e=>{d.value&&(d.value=!1,N(e))},handlePasswordVisible:()=>{p.value=!p.value,A()},clear:()=>{t.emit(Nb,""),t.emit("change",""),t.emit("clear")},select:()=>{h.value.select()},focus:A,blur:()=>{h.value.blur()},getSuffixVisible:()=>t.slots.suffix||e.suffixIcon||w.value||e.showPassword||S.value||g.value&&m.value,onMouseLeave:e=>{c.value=!1,t.emit("mouseleave",e)},onMouseEnter:e=>{c.value=!0,t.emit("mouseenter",e)},handleKeydown:e=>{t.emit("keydown",e)}}}});const Yb={key:0,class:"el-input-group__prepend"},qb={key:2,class:"el-input__prefix"},Kb={key:3,class:"el-input__suffix"},Ub={class:"el-input__suffix-inner"},Gb={key:3,class:"el-input__count"},Xb={class:"el-input__count-inner"},Zb={key:4,class:"el-input-group__append"},Jb={key:2,class:"el-input__count"};Wb.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["textarea"===e.type?"el-textarea":"el-input",e.inputSize?"el-input--"+e.inputSize:"",{"is-disabled":e.inputDisabled,"is-exceed":e.inputExceed,"el-input-group":e.$slots.prepend||e.$slots.append,"el-input-group--append":e.$slots.append,"el-input-group--prepend":e.$slots.prepend,"el-input--prefix":e.$slots.prefix||e.prefixIcon,"el-input--suffix":e.$slots.suffix||e.suffixIcon||e.clearable||e.showPassword},e.$attrs.class],style:e.$attrs.style,onMouseenter:t[20]||(t[20]=(...t)=>e.onMouseEnter&&e.onMouseEnter(...t)),onMouseleave:t[21]||(t[21]=(...t)=>e.onMouseLeave&&e.onMouseLeave(...t))},["textarea"!==e.type?(wl(),Sl(gl,{key:0},[Pl(" 前置元素 "),e.$slots.prepend?(wl(),Sl("div",Yb,[Ht(e.$slots,"prepend")])):Pl("v-if",!0),"textarea"!==e.type?(wl(),Sl("input",Bl({key:1,ref:"input",class:"el-input__inner"},e.attrs,{type:e.showPassword?e.passwordVisible?"text":"password":e.type,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autocomplete,tabindex:e.tabindex,"aria-label":e.label,placeholder:e.placeholder,onCompositionstart:t[1]||(t[1]=(...t)=>e.handleCompositionStart&&e.handleCompositionStart(...t)),onCompositionupdate:t[2]||(t[2]=(...t)=>e.handleCompositionUpdate&&e.handleCompositionUpdate(...t)),onCompositionend:t[3]||(t[3]=(...t)=>e.handleCompositionEnd&&e.handleCompositionEnd(...t)),onInput:t[4]||(t[4]=(...t)=>e.handleInput&&e.handleInput(...t)),onFocus:t[5]||(t[5]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onBlur:t[6]||(t[6]=(...t)=>e.handleBlur&&e.handleBlur(...t)),onChange:t[7]||(t[7]=(...t)=>e.handleChange&&e.handleChange(...t)),onKeydown:t[8]||(t[8]=(...t)=>e.handleKeydown&&e.handleKeydown(...t))}),null,16,["type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder"])):Pl("v-if",!0),Pl(" 前置内容 "),e.$slots.prefix||e.prefixIcon?(wl(),Sl("span",qb,[Ht(e.$slots,"prefix"),e.prefixIcon?(wl(),Sl("i",{key:0,class:["el-input__icon",e.prefixIcon]},null,2)):Pl("v-if",!0)])):Pl("v-if",!0),Pl(" 后置内容 "),e.getSuffixVisible()?(wl(),Sl("span",Kb,[Ll("span",Ub,[e.showClear&&e.showPwdVisible&&e.isWordLimitVisible?Pl("v-if",!0):(wl(),Sl(gl,{key:0},[Ht(e.$slots,"suffix"),e.suffixIcon?(wl(),Sl("i",{key:0,class:["el-input__icon",e.suffixIcon]},null,2)):Pl("v-if",!0)],64)),e.showClear?(wl(),Sl("i",{key:1,class:"el-input__icon el-icon-circle-close el-input__clear",onMousedown:t[9]||(t[9]=fo((()=>{}),["prevent"])),onClick:t[10]||(t[10]=(...t)=>e.clear&&e.clear(...t))},null,32)):Pl("v-if",!0),e.showPwdVisible?(wl(),Sl("i",{key:2,class:"el-input__icon el-icon-view el-input__clear",onClick:t[11]||(t[11]=(...t)=>e.handlePasswordVisible&&e.handlePasswordVisible(...t))})):Pl("v-if",!0),e.isWordLimitVisible?(wl(),Sl("span",Gb,[Ll("span",Xb,c(e.textLength)+"/"+c(e.upperLimit),1)])):Pl("v-if",!0)]),e.validateState?(wl(),Sl("i",{key:0,class:["el-input__icon","el-input__validateIcon",e.validateIcon]},null,2)):Pl("v-if",!0)])):Pl("v-if",!0),Pl(" 后置元素 "),e.$slots.append?(wl(),Sl("div",Zb,[Ht(e.$slots,"append")])):Pl("v-if",!0)],64)):(wl(),Sl("textarea",Bl({key:1,ref:"textarea",class:"el-textarea__inner"},e.attrs,{tabindex:e.tabindex,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autocomplete,style:e.textareaStyle,"aria-label":e.label,placeholder:e.placeholder,onCompositionstart:t[12]||(t[12]=(...t)=>e.handleCompositionStart&&e.handleCompositionStart(...t)),onCompositionupdate:t[13]||(t[13]=(...t)=>e.handleCompositionUpdate&&e.handleCompositionUpdate(...t)),onCompositionend:t[14]||(t[14]=(...t)=>e.handleCompositionEnd&&e.handleCompositionEnd(...t)),onInput:t[15]||(t[15]=(...t)=>e.handleInput&&e.handleInput(...t)),onFocus:t[16]||(t[16]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onBlur:t[17]||(t[17]=(...t)=>e.handleBlur&&e.handleBlur(...t)),onChange:t[18]||(t[18]=(...t)=>e.handleChange&&e.handleChange(...t)),onKeydown:t[19]||(t[19]=(...t)=>e.handleKeydown&&e.handleKeydown(...t))}),"\n    ",16,["tabindex","disabled","readonly","autocomplete","aria-label","placeholder"])),e.isWordLimitVisible&&"textarea"===e.type?(wl(),Sl("span",Jb,c(e.textLength)+"/"+c(e.upperLimit),1)):Pl("v-if",!0)],38)},Wb.__file="packages/input/src/index.vue",Wb.install=e=>{e.component(Wb.name,Wb)};const Qb=Wb,e_={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}};var t_=Qn({name:"Bar",props:{vertical:Boolean,size:String,move:Number},setup(e){const t=lt(null),n=lt(null),l=zl("scrollbar",{}),a=zl("scrollbar-wrap",{}),o=ca((()=>e_[e.vertical?"vertical":"horizontal"])),r=lt({}),i=lt(null),s=lt(null),u=lt(!1);let c=null;const d=e=>{if(!1===i.value)return;const l=r.value[o.value.axis];if(!l)return;const s=100*(-1*(t.value.getBoundingClientRect()[o.value.direction]-e[o.value.client])-(n.value[o.value.offset]-l))/t.value[o.value.offset];a.value[o.value.scroll]=s*a.value[o.value.scrollSize]/100},p=()=>{i.value=!1,r.value[o.value.axis]=0,jy(document,"mousemove",d),document.onselectstart=c,s.value&&(u.value=!1)},f=ca((()=>function({move:e,size:t,bar:n}){const l={},a=`translate${n.axis}(${e}%)`;return l[n.size]=t,l.transform=a,l.msTransform=a,l.webkitTransform=a,l}({size:e.size,move:e.move,bar:o.value}))),h=()=>{s.value=!1,u.value=!!e.size},v=()=>{s.value=!0,u.value=i.value};return mn((()=>{zy(l.value,"mousemove",h),zy(l.value,"mouseleave",v)})),bn((()=>{jy(document,"mouseup",p),jy(l.value,"mousemove",h),jy(l.value,"mouseleave",v)})),{instance:t,thumb:n,bar:o,clickTrackHandler:e=>{const l=100*(Math.abs(e.target.getBoundingClientRect()[o.value.direction]-e[o.value.client])-n.value[o.value.offset]/2)/t.value[o.value.offset];a.value[o.value.scroll]=l*a.value[o.value.scrollSize]/100},clickThumbHandler:e=>{e.stopPropagation(),e.ctrlKey||[1,2].includes(e.button)||((e=>{e.stopImmediatePropagation(),i.value=!0,zy(document,"mousemove",d),zy(document,"mouseup",p),c=document.onselectstart,document.onselectstart=()=>!1})(e),r.value[o.value.axis]=e.currentTarget[o.value.offset]-(e[o.value.client]-e.currentTarget.getBoundingClientRect()[o.value.direction]))},thumbStyle:f,visible:u}}});t_.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,{name:"el-scrollbar-fade"},{default:Zt((()=>[Un(Ll("div",{ref:"instance",class:["el-scrollbar__bar","is-"+e.bar.key],onMousedown:t[2]||(t[2]=(...t)=>e.clickTrackHandler&&e.clickTrackHandler(...t))},[Ll("div",{ref:"thumb",class:"el-scrollbar__thumb",style:e.thumbStyle,onMousedown:t[1]||(t[1]=(...t)=>e.clickThumbHandler&&e.clickThumbHandler(...t))},null,36)],34),[[mo,e.visible]])])),_:1})},t_.__file="packages/scrollbar/src/bar.vue";var n_=Qn({name:"ElScrollbar",components:{Bar:t_},props:{height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:[String,Array],default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array],default:""},noresize:Boolean,tag:{type:String,default:"div"}},emits:["scroll"],setup(e,{emit:t}){const n=lt("0"),l=lt("0"),a=lt(0),o=lt(0),r=lt(null),i=lt(null),s=lt(null);$l("scrollbar",r),$l("scrollbar-wrap",i);const u=()=>{if(!i.value)return;const e=100*i.value.clientHeight/i.value.scrollHeight,t=100*i.value.clientWidth/i.value.scrollWidth;l.value=e<100?e+"%":"",n.value=t<100?t+"%":""},c=ca((()=>{let t=e.wrapStyle;return cy(t)?(t=function(e){const t={};for(let n=0;n<e.length;n++)e[n]&&iy(t,e[n]);return t}(t),t.height=$y(e.height),t.maxHeight=$y(e.maxHeight)):py(t)&&(t+=$y(e.height)?`height: ${$y(e.height)};`:"",t+=$y(e.maxHeight)?`max-height: ${$y(e.maxHeight)};`:""),t}));return mn((()=>{e.native||Dt(u),e.noresize||(Zy(s.value,u),addEventListener("resize",u))})),bn((()=>{e.noresize||(Jy(s.value,u),removeEventListener("resize",u))})),{moveX:a,moveY:o,sizeWidth:n,sizeHeight:l,style:c,scrollbar:r,wrap:i,resize:s,update:u,handleScroll:()=>{i.value&&(o.value=100*i.value.scrollTop/i.value.clientHeight,a.value=100*i.value.scrollLeft/i.value.clientWidth,t("scroll",{scrollLeft:a.value,scrollTop:o.value}))}}}});const l_={ref:"scrollbar",class:"el-scrollbar"};n_.render=function(e,t,n,l,a,o){const r=dl("bar");return wl(),Sl("div",l_,[Ll("div",{ref:"wrap",class:[e.wrapClass,"el-scrollbar__wrap",e.native?"":"el-scrollbar__wrap--hidden-default"],style:e.style,onScroll:t[1]||(t[1]=(...t)=>e.handleScroll&&e.handleScroll(...t))},[(wl(),Sl(fl(e.tag),{ref:"resize",class:["el-scrollbar__view",e.viewClass],style:e.viewStyle},{default:Zt((()=>[Ht(e.$slots,"default")])),_:3},8,["class","style"]))],38),e.native?Pl("v-if",!0):(wl(),Sl(gl,{key:0},[Ll(r,{move:e.moveX,size:e.sizeWidth},null,8,["move","size"]),Ll(r,{vertical:"",move:e.moveY,size:e.sizeHeight},null,8,["move","size"])],64))],512)},n_.__file="packages/scrollbar/src/index.vue",n_.install=e=>{e.component(n_.name,n_)};const a_=n_;var o_;!function(e){e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL"}(o_||(o_={}));const r_=e=>e.type===gl,i_=e=>e.type===bl;function s_(e,t){if(!i_(e))return r_(e)||"template"===e.type?t>0?u_(e.children,t-1):void 0:e}const u_=(e,t=3)=>Array.isArray(e)?s_(e[0],t):s_(e,t);function c_(e,t,n,l,a){return wl(),Sl(e,t,n,l,a)}let d_={};const p_=e=>{e.preventDefault(),e.stopPropagation()},f_=()=>{null==y_||y_.doOnModalClick()};let h_,v_=!1;const m_=function(){if(oy)return;let e=y_.modalDom;return e?v_=!0:(v_=!1,e=document.createElement("div"),y_.modalDom=e,zy(e,"touchmove",p_),zy(e,"click",f_)),e},g_={},y_={modalFade:!0,modalDom:void 0,zIndex:h_,getInstance:function(e){return g_[e]},register:function(e,t){e&&t&&(g_[e]=t)},deregister:function(e){e&&(g_[e]=null,delete g_[e])},nextZIndex:function(){return++y_.zIndex},modalStack:[],doOnModalClick:function(){const e=y_.modalStack[y_.modalStack.length-1];if(!e)return;const t=y_.getInstance(e.id);t&&t.closeOnClickModal.value&&t.close()},openModal:function(e,t,n,l,a){if(oy)return;if(!e||void 0===t)return;this.modalFade=a;const o=this.modalStack;for(let i=0,s=o.length;i<s;i++)if(o[i].id===e)return;const r=m_();Hy(r,"v-modal"),this.modalFade&&!v_&&Hy(r,"v-modal-enter"),l&&l.trim().split(/\s+/).forEach((e=>Hy(r,e))),setTimeout((()=>{Wy(r,"v-modal-enter")}),200),n&&n.parentNode&&11!==n.parentNode.nodeType?n.parentNode.appendChild(r):document.body.appendChild(r),t&&(r.style.zIndex=String(t)),r.tabIndex=0,r.style.display="",this.modalStack.push({id:e,zIndex:t,modalClass:l})},closeModal:function(e){const t=this.modalStack,n=m_();if(t.length>0){const l=t[t.length-1];if(l.id===e)l.modalClass&&l.modalClass.trim().split(/\s+/).forEach((e=>Wy(n,e))),t.pop(),t.length>0&&(n.style.zIndex=t[t.length-1].zIndex);else for(let n=t.length-1;n>=0;n--)if(t[n].id===e){t.splice(n,1);break}}0===t.length&&(this.modalFade&&Hy(n,"v-modal-leave"),setTimeout((()=>{0===t.length&&(n.parentNode&&n.parentNode.removeChild(n),n.style.display="none",y_.modalDom=void 0),Wy(n,"v-modal-leave")}),200))}};function b_(e,t=[]){const{arrow:n,arrowOffset:l,offset:a,gpuAcceleration:o}=e,r=[{name:"offset",options:{offset:[0,null!=a?a:12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{gpuAcceleration:o,adaptive:o}}];return n&&r.push({name:"arrow",options:{element:n,padding:null!=l?l:5}}),r.push(...t),r}var __;Object.defineProperty(y_,"zIndex",{configurable:!0,get:()=>(void 0===h_&&(h_=d_.zIndex||2e3),h_),set(e){h_=e}}),oy||zy(window,"keydown",(function(e){if(e.code===vb.esc){const e=function(){if(!oy&&y_.modalStack.length>0){const e=y_.modalStack[y_.modalStack.length-1];if(!e)return;return y_.getInstance(e.id)}}();e&&e.closeOnPressEscape.value&&(e.handleClose?e.handleClose():e.handleAction?e.handleAction("cancel"):e.close())}})),function(e){e.DARK="dark",e.LIGHT="light"}(__||(__={}));var k_={arrowOffset:{type:Number,default:5},appendToBody:{type:Boolean,default:!0},autoClose:{type:Number,default:0},boundariesPadding:{type:Number,default:0},content:{type:String,default:""},class:{type:String,default:""},style:Object,hideAfter:{type:Number,default:200},cutoff:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},effect:{type:String,default:__.DARK},enterable:{type:Boolean,default:!0},manualMode:{type:Boolean,default:!1},showAfter:{type:Number,default:0},offset:{type:Number,default:12},placement:{type:String,default:"bottom"},popperClass:{type:String,default:""},pure:{type:Boolean,default:!1},popperOptions:{type:Object,default:()=>null},showArrow:{type:Boolean,default:!0},strategy:{type:String,default:"fixed"},transition:{type:String,default:"el-fade-in-linear"},trigger:{type:[String,Array],default:"hover"},visible:{type:Boolean,default:void 0},stopPopperMouseEvent:{type:Boolean,default:!0},gpuAcceleration:{type:Boolean,default:!0}};function x_(e,{emit:t}){const n=lt(null),l=lt(null),a=lt(null),o="el-popper-"+Ey();let r=null,i=null,s=null,u=!1;const c=()=>e.manualMode||"manual"===e.trigger,d=lt({zIndex:y_.nextZIndex()}),p=(v=e,m={arrow:n},ca((()=>{var e;return Object.assign(Object.assign({placement:v.placement},v.popperOptions),{modifiers:b_({arrow:m.arrow.value,arrowOffset:v.arrowOffset,offset:v.offset,gpuAcceleration:v.gpuAcceleration},null===(e=v.popperOptions)||void 0===e?void 0:e.modifiers)})}))),f=Ue({visible:!!e.visible}),h=ca({get:()=>!e.disabled&&(Oy(e.visible)?e.visible:f.visible),set(n){c()||(Oy(e.visible)?t("update:visible",n):f.visible=n)}});var v,m;function g(){e.autoClose>0&&(s=window.setTimeout((()=>{y()}),e.autoClose)),h.value=!0}function y(){h.value=!1}function b(){clearTimeout(i),clearTimeout(s)}const _=()=>{c()||e.disabled||(b(),0===e.showAfter?g():i=window.setTimeout((()=>{g()}),e.showAfter))},k=()=>{c()||(b(),e.hideAfter>0?s=window.setTimeout((()=>{x()}),e.hideAfter):x())},x=()=>{y(),e.disabled&&C(!0)};function w(){if(!By(h))return;const e=By(l),t=gy(e).startsWith("HTML")?e:e.$el;r=Cc(t,By(a),By(p)),r.update()}function C(e){!r||By(h)&&!e||S()}function S(){var e;null===(e=null==r?void 0:r.destroy)||void 0===e||e.call(r),r=null}const E={};if(!c()){const t=()=>{By(h)?k():_()},n=e=>{switch(e.stopPropagation(),e.type){case"click":u?u=!1:t();break;case"mouseenter":_();break;case"mouseleave":k();break;case"focus":u=!0,_();break;case"blur":u=!1,k()}},l={click:["onClick"],hover:["onMouseenter","onMouseleave"],focus:["onFocus","onBlur"]},a=e=>{l[e].forEach((e=>{E[e]=n}))};cy(e.trigger)?Object.values(e.trigger).forEach(a):a(e.trigger)}return Sn(p,(e=>{r&&(r.setOptions(e),r.update())})),Sn(h,(function(e){e&&(d.value.zIndex=y_.nextZIndex(),w())})),{update:function(){By(h)&&(r?r.update():w())},doDestroy:C,show:_,hide:k,onPopperMouseEnter:function(){e.enterable&&"click"!==e.trigger&&clearTimeout(s)},onPopperMouseLeave:function(){const{trigger:t}=e;py(t)&&("click"===t||"focus"===t)||1===t.length&&("click"===t[0]||"focus"===t[0])||k()},onAfterEnter:()=>{t("after-enter")},onAfterLeave:()=>{S(),t("after-leave")},onBeforeEnter:()=>{t("before-enter")},onBeforeLeave:()=>{t("before-leave")},initializePopper:w,isManualMode:c,arrowRef:n,events:E,popperId:o,popperInstance:r,popperRef:a,popperStyle:d,triggerRef:l,visibility:h}}function w_(e,t){const{effect:n,name:l,stopPopperMouseEvent:a,popperClass:o,popperStyle:r,popperRef:i,pure:s,popperId:u,visibility:c,onMouseenter:d,onMouseleave:p,onAfterEnter:f,onAfterLeave:h,onBeforeEnter:v,onBeforeLeave:m}=e,g=[o,"el-popper","is-"+n,s?"is-pure":""],y=a?Gy:ry;return Ll(Ia,{name:l,onAfterEnter:f,onAfterLeave:h,onBeforeEnter:v,onBeforeLeave:m},{default:Zt((()=>[Un(Ll("div",{"aria-hidden":String(!c),class:g,style:null!=r?r:{},id:u,ref:null!=i?i:"popperRef",role:"tooltip",onMouseenter:d,onMouseleave:p,onClick:Gy,onMousedown:y,onMouseup:y},t,o_.CLASS|o_.STYLE|o_.PROPS|o_.HYDRATE_EVENTS,["aria-hidden","onMouseenter","onMouseleave","onMousedown","onMouseup","onClick","id"]),[[mo,c]])]))},o_.PROPS,["name","onAfterEnter","onAfterLeave","onBeforeEnter","onBeforeLeave"])}function C_(e,t){const n=u_(e,1);return n||wy("renderTrigger","trigger expects single rooted node"),Nl(n,t,!0)}function S_(e){return e?(wl(),Sl("div",{ref:"arrowRef",class:"el-popper__arrow","data-popper-arrow":""},null,o_.NEED_PATCH)):(wl(),Sl(bl,null,""))}var E_=Qn({name:"ElPopper",props:k_,emits:["update:visible","after-enter","after-leave","before-enter","before-leave"],setup(e,t){t.slots.trigger||wy("ElPopper","Trigger must be provided");const n=x_(e,t),l=()=>n.doDestroy(!0);return mn(n.initializePopper),bn(l),$n(n.initializePopper),zn(l),n},render(){var e;const{$slots:t,appendToBody:n,class:l,style:a,effect:o,hide:r,onPopperMouseEnter:i,onPopperMouseLeave:s,onAfterEnter:u,onAfterLeave:d,onBeforeEnter:p,onBeforeLeave:f,popperClass:h,popperId:v,popperStyle:m,pure:g,showArrow:y,transition:b,visibility:_,stopPopperMouseEvent:k}=this,x=this.isManualMode(),w=S_(y),C=w_({effect:o,name:b,popperClass:h,popperId:v,popperStyle:m,pure:g,stopPopperMouseEvent:k,onMouseenter:i,onMouseleave:s,onAfterEnter:u,onAfterLeave:d,onBeforeEnter:p,onBeforeLeave:f,visibility:_},[Ht(t,"default",{},(()=>[c(this.content)])),w]),S=null===(e=t.trigger)||void 0===e?void 0:e.call(t),E=Object.assign({ariaDescribedby:v,class:l,style:a,ref:"triggerRef"},this.events),M=x?C_(S,E):Un(C_(S,E),[[Sb,r]]);return c_(gl,null,[M,Ll(cl,{to:"body",disabled:!n},[C],o_.PROPS,["disabled"])])}});E_.__file="packages/popper/src/index.vue",E_.install=e=>{e.component(E_.name,E_)};const M_=E_;var O_=Qn({name:"ElAutocomplete",components:{ElPopper:M_,ElInput:Qb,ElScrollbar:a_},directives:{clickoutside:Sb},inheritAttrs:!1,props:{valueKey:{type:String,default:"value"},modelValue:{type:[String,Number],default:""},debounce:{type:Number,default:300},placement:{type:String,validator:e=>["top","top-start","top-end","bottom","bottom-start","bottom-end"].includes(e),default:"bottom-start"},fetchSuggestions:{type:Function,default:ry},popperClass:{type:String,default:""},triggerOnFocus:{type:Boolean,default:!0},selectWhenUnmatched:{type:Boolean,default:!1},hideLoading:{type:Boolean,default:!1},popperAppendToBody:{type:Boolean,default:!0},highlightFirstItem:{type:Boolean,default:!1}},emits:[Nb,"input","change","focus","blur","clear","select"],setup(e,t){const n=cb(),l=lt([]),a=lt(-1),o=lt(""),r=lt(!1),i=lt(!1),s=lt(!1),u=lt(null),c=lt(null),d=lt(null),p=ca((()=>"el-autocomplete-"+Ey())),f=ca((()=>(cy(l.value)&&l.value.length>0||s.value)&&r.value)),h=ca((()=>!e.hideLoading&&s.value)),v=()=>{Dt(d.value.update)};Sn(f,(()=>{o.value=u.value.$el.offsetWidth+"px"})),mn((()=>{u.value.inputOrTextarea.setAttribute("role","textbox"),u.value.inputOrTextarea.setAttribute("aria-autocomplete","list"),u.value.inputOrTextarea.setAttribute("aria-controls","id"),u.value.inputOrTextarea.setAttribute("aria-activedescendant",`${p.value}-item-${a.value}`);const e=c.value.querySelector(".el-autocomplete-suggestion__list");e.setAttribute("role","listbox"),e.setAttribute("id",p.value)})),yn(v);const m=t=>{i.value||(s.value=!0,v(),e.fetchSuggestions(t,(t=>{s.value=!1,i.value||(cy(t)?(l.value=t,a.value=e.highlightFirstItem?0:-1):wy("ElAutocomplete","autocomplete suggestions must be an array"))})))},g=uu(m,e.debounce),y=n=>{t.emit("input",n[e.valueKey]),t.emit(Nb,n[e.valueKey]),t.emit("select",n),Dt((()=>{l.value=[],a.value=-1}))};return{attrs:n,suggestions:l,highlightedIndex:a,dropdownWidth:o,activated:r,suggestionDisabled:i,loading:s,inputRef:u,regionRef:c,popper:d,id:p,suggestionVisible:f,suggestionLoading:h,getData:m,handleInput:n=>{if(t.emit("input",n),t.emit(Nb,n),i.value=!1,!e.triggerOnFocus&&!n)return i.value=!0,void(l.value=[]);g(n)},handleChange:e=>{t.emit("change",e)},handleFocus:n=>{r.value=!0,t.emit("focus",n),e.triggerOnFocus&&g(e.modelValue)},handleBlur:e=>{t.emit("blur",e)},handleClear:()=>{r.value=!1,t.emit(Nb,""),t.emit("clear")},handleKeyEnter:()=>{f.value&&a.value>=0&&a.value<l.value.length?y(l.value[a.value]):e.selectWhenUnmatched&&(t.emit("select",{value:e.modelValue}),Dt((()=>{l.value=[],a.value=-1})))},close:()=>{r.value=!1},focus:()=>{u.value.focus()},select:y,highlight:e=>{if(!f.value||s.value)return;if(e<0)return void(a.value=-1);e>=l.value.length&&(e=l.value.length-1);const t=c.value.querySelector(".el-autocomplete-suggestion__wrap"),n=t.querySelectorAll(".el-autocomplete-suggestion__list li")[e],o=t.scrollTop,r=n.offsetTop;r+n.scrollHeight>o+t.clientHeight&&(t.scrollTop+=n.scrollHeight),r<o&&(t.scrollTop-=n.scrollHeight),a.value=e,u.value.inputOrTextarea.setAttribute("aria-activedescendant",`${p.value}-item-${a.value}`)}}}});const T_={key:0},D_=Ll("i",{class:"el-icon-loading"},null,-1);O_.render=function(e,t,n,l,a,o){const r=dl("el-input"),i=dl("el-scrollbar"),s=dl("el-popper"),u=hl("clickoutside");return wl(),Sl(s,{ref:"popper",visible:e.suggestionVisible,"onUpdate:visible":t[3]||(t[3]=t=>e.suggestionVisible=t),placement:e.placement,"popper-class":"el-autocomplete__popper "+e.popperClass,"append-to-body":e.popperAppendToBody,pure:"","manual-mode":"",effect:"light",trigger:"click",transition:"el-zoom-in-top","gpu-acceleration":!1},{trigger:Zt((()=>[Un(Ll("div",{class:["el-autocomplete",e.$attrs.class],style:e.$attrs.style,role:"combobox","aria-haspopup":"listbox","aria-expanded":e.suggestionVisible,"aria-owns":e.id},[Ll(r,Bl({ref:"inputRef"},e.attrs,{"model-value":e.modelValue,onInput:e.handleInput,onChange:e.handleChange,onFocus:e.handleFocus,onBlur:e.handleBlur,onClear:e.handleClear,onKeydown:[t[1]||(t[1]=vo(fo((t=>e.highlight(e.highlightedIndex-1)),["prevent"]),["up"])),t[2]||(t[2]=vo(fo((t=>e.highlight(e.highlightedIndex+1)),["prevent"]),["down"])),vo(e.handleKeyEnter,["enter"]),vo(e.close,["tab"])]}),ha({_:2},[e.$slots.prepend?{name:"prepend",fn:Zt((()=>[Ht(e.$slots,"prepend")]))}:void 0,e.$slots.append?{name:"append",fn:Zt((()=>[Ht(e.$slots,"append")]))}:void 0,e.$slots.prefix?{name:"prefix",fn:Zt((()=>[Ht(e.$slots,"prefix")]))}:void 0,e.$slots.suffix?{name:"suffix",fn:Zt((()=>[Ht(e.$slots,"suffix")]))}:void 0]),1040,["model-value","onInput","onChange","onFocus","onBlur","onClear","onKeydown"])],14,["aria-expanded","aria-owns"]),[[u,e.close]])])),default:Zt((()=>[Ll("div",{ref:"regionRef",class:["el-autocomplete-suggestion",e.suggestionLoading&&"is-loading"],style:{width:e.dropdownWidth,outline:"none"},role:"region"},[Ll(i,{tag:"ul","wrap-class":"el-autocomplete-suggestion__wrap","view-class":"el-autocomplete-suggestion__list"},{default:Zt((()=>[e.suggestionLoading?(wl(),Sl("li",T_,[D_])):(wl(!0),Sl(gl,{key:1},pa(e.suggestions,((t,n)=>(wl(),Sl("li",{id:`${e.id}-item-${n}`,key:n,class:{highlighted:e.highlightedIndex===n},role:"option","aria-selected":e.highlightedIndex===n,onClick:n=>e.select(t)},[Ht(e.$slots,"default",{item:t},(()=>[Al(c(t[e.valueKey]),1)]))],10,["id","aria-selected","onClick"])))),128))])),_:3})],6)])),_:1},8,["visible","placement","popper-class","append-to-body"])},O_.__file="packages/autocomplete/src/index.vue",O_.install=e=>{e.component(O_.name,O_)};const L_=O_;var N_=Qn({name:"ElAvatar",props:{size:{type:[Number,String],validator:e=>"string"==typeof e?["large","medium","small"].includes(e):"number"==typeof e,default:"large"},shape:{type:String,default:"circle",validator:e=>["circle","square"].includes(e)},icon:String,src:{type:String,default:""},alt:String,srcSet:String,fit:{type:String,default:"cover"}},emits:["error"],setup(e,{emit:t}){const n=lt(!1);Sn(pt(e,"src"),(()=>{n.value=!1}));const l=ca((()=>{const{size:t,icon:n,shape:l}=e;let a=["el-avatar"];return t&&"string"==typeof t&&a.push("el-avatar--"+t),n&&a.push("el-avatar--icon"),l&&a.push("el-avatar--"+l),a})),a=ca((()=>{const{size:t}=e;return"number"==typeof t?{height:t+"px",width:t+"px",lineHeight:t+"px"}:{}})),o=ca((()=>({objectFit:e.fit})));return{hasLoadError:n,avatarClass:l,sizeStyle:a,handleError:function(e){n.value=!0,t("error",e)},fitStyle:o}}});N_.render=function(e,t,n,l,a,o){return wl(),Sl("span",{class:e.avatarClass,style:e.sizeStyle},[!e.src&&!e.srcSet||e.hasLoadError?e.icon?(wl(),Sl("i",{key:1,class:e.icon},null,2)):Ht(e.$slots,"default",{key:2}):(wl(),Sl("img",{key:0,src:e.src,alt:e.alt,srcset:e.srcSet,style:e.fitStyle,onError:t[1]||(t[1]=(...t)=>e.handleError&&e.handleError(...t))},null,44,["src","alt","srcset"]))],6)},N_.__file="packages/avatar/src/index.vue",N_.install=e=>{e.component(N_.name,N_)};const A_=N_,P_=e=>Math.pow(e,3);var I_=Qn({name:"ElBacktop",props:{visibilityHeight:{type:Number,default:200},target:{type:String,default:""},right:{type:Number,default:40},bottom:{type:Number,default:40}},emits:["click"],setup(e,t){const n=lt(null),l=lt(null),a=lt(!1),o=ca((()=>e.bottom+"px")),r=ca((()=>e.right+"px")),i=zc((()=>{a.value=n.value.scrollTop>=e.visibilityHeight}),300);return mn((()=>{if(l.value=document,n.value=document.documentElement,e.target){if(n.value=document.querySelector(e.target),!n.value)throw new Error("target is not existed: "+e.target);l.value=n.value}zy(l.value,"scroll",i)})),bn((()=>{jy(l.value,"scroll",i)})),{el:n,container:l,visible:a,styleBottom:o,styleRight:r,handleClick:e=>{(()=>{const e=Date.now(),t=n.value.scrollTop,l=window.requestAnimationFrame||(e=>setTimeout(e,16)),a=()=>{const o=(Date.now()-e)/500;var r;o<1?(n.value.scrollTop=t*(1-((r=o)<.5?P_(2*r)/2:1-P_(2*(1-r))/2)),l(a)):n.value.scrollTop=0};l(a)})(),t.emit("click",e)}}}});const F_=Ll("i",{class:"el-icon-caret-top"},null,-1);I_.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,{name:"el-fade-in"},{default:Zt((()=>[e.visible?(wl(),Sl("div",{key:0,style:{right:e.styleRight,bottom:e.styleBottom},class:"el-backtop",onClick:t[1]||(t[1]=fo(((...t)=>e.handleClick&&e.handleClick(...t)),["stop"]))},[Ht(e.$slots,"default",{},(()=>[F_]))],4)):Pl("v-if",!0)])),_:3})},I_.__file="packages/backtop/src/index.vue",I_.install=e=>{e.component(I_.name,I_)};const V_=I_;var B_=Qn({name:"ElBadge",props:{value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,default:"primary",validator:e=>["primary","success","warning","info","danger"].includes(e)}},setup:e=>({content:ca((()=>{if(!e.isDot)return"number"==typeof e.value&&"number"==typeof e.max&&e.max<e.value?e.max+"+":e.value}))})});const $_={class:"el-badge"};B_.render=function(e,t,n,l,a,o){return wl(),Sl("div",$_,[Ht(e.$slots,"default"),Ll(Ia,{name:"el-zoom-in-center"},{default:Zt((()=>[Un(Ll("sup",{class:["el-badge__content",["el-badge__content--"+e.type,{"is-fixed":e.$slots.default,"is-dot":e.isDot}]],textContent:c(e.content)},null,10,["textContent"]),[[mo,!e.hidden&&(e.content||0===e.content||e.isDot)]])])),_:1})])},B_.__file="packages/badge/src/index.vue",B_.install=e=>{e.component(B_.name,B_)};const z_=B_;var j_=Qn({name:"ElBreadcrumb",props:{separator:{type:String,default:"/"},separatorClass:{type:String,default:""}},setup(e){const t=lt(null);return $l("breadcrumb",e),mn((()=>{const e=t.value.querySelectorAll(".el-breadcrumb__item");e.length&&e[e.length-1].setAttribute("aria-current","page")})),{breadcrumb:t}}});const R_={ref:"breadcrumb",class:"el-breadcrumb","aria-label":"Breadcrumb",role:"navigation"};j_.render=function(e,t,n,l,a,o){return wl(),Sl("div",R_,[Ht(e.$slots,"default")],512)},j_.__file="packages/breadcrumb/src/index.vue",j_.install=e=>{e.component(j_.name,j_)};const H_=j_;var W_=Qn({name:"ElBreadcrumbItem",props:{to:{type:[String,Object],default:""},replace:{type:Boolean,default:!1}},setup(e){const t=lt(null),n=zl("breadcrumb"),l=na().appContext.config.globalProperties.$router;return mn((()=>{t.value.setAttribute("role","link"),t.value.addEventListener("click",(()=>{e.to&&l&&(e.replace?l.replace(e.to):l.push(e.to))}))})),{link:t,separator:null==n?void 0:n.separator,separatorClass:null==n?void 0:n.separatorClass}}});const Y_={class:"el-breadcrumb__item"},q_={key:1,class:"el-breadcrumb__separator",role:"presentation"};W_.render=function(e,t,n,l,a,o){return wl(),Sl("span",Y_,[Ll("span",{ref:"link",class:["el-breadcrumb__inner",e.to?"is-link":""],role:"link"},[Ht(e.$slots,"default")],2),e.separatorClass?(wl(),Sl("i",{key:0,class:["el-breadcrumb__separator",e.separatorClass]},null,2)):(wl(),Sl("span",q_,c(e.separator),1))])},W_.__file="packages/breadcrumb/src/item.vue",W_.install=e=>{e.component(W_.name,W_)};const K_=W_;var U_=Qn({name:"ElButton",props:{type:{type:String,default:"default",validator:e=>["default","primary","success","warning","info","danger","text"].includes(e)},size:{type:String,validator:Ib},icon:{type:String,default:""},nativeType:{type:String,default:"button",validator:e=>["button","submit","reset"].includes(e)},loading:Boolean,disabled:Boolean,plain:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean},emits:["click"],setup(e,{emit:t}){const n=Ay(),l=zl("elForm",{}),a=zl("elFormItem",{});return{buttonSize:ca((()=>e.size||a.size||n.size)),buttonDisabled:ca((()=>e.disabled||l.disabled)),handleClick:e=>{t("click",e)}}}});const G_={key:0,class:"el-icon-loading"},X_={key:2};U_.render=function(e,t,n,l,a,o){return wl(),Sl("button",{class:["el-button",e.type?"el-button--"+e.type:"",e.buttonSize?"el-button--"+e.buttonSize:"",{"is-disabled":e.buttonDisabled,"is-loading":e.loading,"is-plain":e.plain,"is-round":e.round,"is-circle":e.circle}],disabled:e.buttonDisabled||e.loading,autofocus:e.autofocus,type:e.nativeType,onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t))},[e.loading?(wl(),Sl("i",G_)):Pl("v-if",!0),e.icon&&!e.loading?(wl(),Sl("i",{key:1,class:e.icon},null,2)):Pl("v-if",!0),e.$slots.default?(wl(),Sl("span",X_,[Ht(e.$slots,"default")])):Pl("v-if",!0)],10,["disabled","autofocus","type"])},U_.__file="packages/button/src/button.vue",U_.install=e=>{e.component(U_.name,U_)};const Z_=U_;var J_=Qn({name:"ElButtonGroup"});const Q_={class:"el-button-group"};J_.render=function(e,t,n,l,a,o){return wl(),Sl("div",Q_,[Ht(e.$slots,"default")])},J_.__file="packages/button/src/button-group.vue",J_.install=e=>{e.component(J_.name,J_)};const ek=J_;let tk={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:""},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}},nk=null;function lk(e,t){return e&&t?e.replace(/\{(\w+)\}/g,((e,n)=>t[n])):e}const ak=(...e)=>{if(nk)return nk(...e);const[t,n]=e;let l;const a=t.split(".");let o=tk;for(let r=0,i=a.length;r<i;r++){if(l=o[a[r]],r===i-1)return lk(l,n);if(!l)return"";o=l}return""},ok={date:"YYYY-MM-DD",week:"gggg[w]ww",year:"YYYY",month:"YYYY-MM",datetime:"YYYY-MM-DD HH:mm:ss",monthrange:"YYYY-MM",daterange:"YYYY-MM-DD",datetimerange:"YYYY-MM-DD HH:mm:ss"},rk={name:{type:[Array,String],default:""},popperClass:{type:String,default:""},format:{type:String},type:{type:String,default:""},clearable:{type:Boolean,default:!0},clearIcon:{type:String,default:"el-icon-circle-close"},editable:{type:Boolean,default:!0},prefixIcon:{type:String,default:""},size:{type:String,validator:Ib},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},placeholder:{type:String,default:""},popperOptions:{type:Object,default:()=>({})},modelValue:{type:[Date,Array,String],default:""},rangeSeparator:{type:String,default:"-"},startPlaceholder:String,endPlaceholder:String,defaultValue:{type:[Date,Array]},defaultTime:{type:[Date,Array]},isRange:{type:Boolean,default:!1},disabledHours:{type:Function},disabledMinutes:{type:Function},disabledSeconds:{type:Function},disabledDate:{type:Function},cellClassName:{type:Function},shortcuts:{type:Array,default:()=>[]},arrowControl:{type:Boolean,default:!1},validateEvent:{type:Boolean,default:!0},unlinkPanels:Boolean},ik=function(e,t){const n=e instanceof Date,l=t instanceof Date;return n&&l?e.getTime()===t.getTime():!n&&!l&&e===t},sk=function(e,t){const n=e instanceof Array,l=t instanceof Array;return n&&l?e.length===t.length&&e.every(((e,n)=>ik(e,t[n]))):!n&&!l&&ik(e,t)};var uk=Qn({name:"Picker",components:{ElInput:Qb,ElPopper:M_},directives:{clickoutside:Sb},props:rk,emits:["update:modelValue","change","focus","blur"],setup(e,t){const n=Ay(),l=zl("elForm",{}),a=zl("elFormItem",{}),o=zl("ElPopperOptions",{}),r=lt(null),i=lt(!1),s=lt(!1),u=lt(null);Sn(i,(n=>{var l;n?u.value=e.modelValue:(S.value=null,Dt((()=>{c(e.modelValue)})),t.emit("blur"),M(),e.validateEvent&&(null===(l=a.formItemMitt)||void 0===l||l.emit("el.form.blur")))}));const c=(n,l)=>{var o;!l&&sk(n,u.value)||(t.emit("change",n),e.validateEvent&&(null===(o=a.formItemMitt)||void 0===o||o.emit("el.form.change",n)))},d=n=>{sk(e.modelValue,n)||t.emit("update:modelValue",n)},p=ca((()=>{if(r.value.triggerRef){const e=x.value?r.value.triggerRef:r.value.triggerRef.$el;return[].slice.call(e.querySelectorAll("input"))}return[]})),f=ca((()=>e.disabled||l.disabled)),h=ca((()=>{let t;return k.value?L.value.getDefaultValue&&(t=L.value.getDefaultValue()):t=Array.isArray(e.modelValue)?e.modelValue.map((e=>Rc(e))):Rc(e.modelValue),L.value.getRangeAvaliableTime&&(t=L.value.getRangeAvaliableTime(t)),t})),v=ca((()=>{if(!L.value.panelReady)return;const e=T(h.value);return Array.isArray(S.value)?[S.value[0]||e&&e[0]||"",S.value[1]||e&&e[1]||""]:null!==S.value?S.value:!g.value&&k.value||!i.value&&k.value?void 0:e?y.value?e.join(", "):e:""})),m=ca((()=>-1!==e.type.indexOf("time"))),g=ca((()=>0===e.type.indexOf("time"))),y=ca((()=>"dates"===e.type)),b=ca((()=>e.prefixIcon||(m.value?"el-icon-time":"el-icon-date"))),_=lt(!1),k=ca((()=>!e.modelValue||Array.isArray(e.modelValue)&&!e.modelValue.length)),x=ca((()=>e.type.indexOf("range")>-1)),w=ca((()=>e.size||a.size||n.size)),C=ca((()=>{var e;return null===(e=r.value)||void 0===e?void 0:e.popperRef})),S=lt(null),E=()=>{if(S.value){const e=O(v.value);e&&D(e)&&(d(Array.isArray(e)?e.map((e=>e.toDate())):e.toDate()),S.value=null)}""===S.value&&(d(null),c(null),S.value=null)},M=()=>{p.value.forEach((e=>e.blur()))},O=e=>e?L.value.parseUserInput(e):null,T=e=>e?L.value.formatToString(e):null,D=e=>L.value.isValidValue(e),L=lt({});return $l("EP_PICKER_BASE",{props:e}),{elPopperOptions:o,isDatesPicker:y,handleEndChange:()=>{const e=O(S.value&&S.value[1]);if(e&&e.isValid()){S.value=[v.value[0],T(e)];const t=[h.value&&h.value[0],e];D(t)&&(d(t),S.value=null)}},handleStartChange:()=>{const e=O(S.value&&S.value[0]);if(e&&e.isValid()){S.value=[T(e),v.value[1]];const t=[e,h.value&&h.value[1]];D(t)&&(d(t),S.value=null)}},handleStartInput:e=>{S.value?S.value=[e.target.value,S.value[1]]:S.value=[e.target.value,null]},handleEndInput:e=>{S.value?S.value=[S.value[0],e.target.value]:S.value=[null,e.target.value]},onUserInput:e=>{S.value=e},handleChange:E,handleKeydown:e=>{const t=e.code;return t===vb.esc?(i.value=!1,void e.stopPropagation()):t!==vb.tab?t===vb.enter?((""===S.value||D(O(v.value)))&&(E(),i.value=!1),void e.stopPropagation()):void(S.value?e.stopPropagation():L.value.handleKeydown&&L.value.handleKeydown(e)):void(x.value?setTimeout((()=>{-1===p.value.indexOf(document.activeElement)&&(i.value=!1,M())}),0):(E(),i.value=!1,e.stopPropagation()))},popperPaneRef:C,onClickOutside:()=>{i.value&&(i.value=!1)},pickerSize:w,isRangeInput:x,onMouseLeave:()=>{_.value=!1},onMouseEnter:()=>{e.readonly||f.value||!k.value&&e.clearable&&(_.value=!0)},onClearIconClick:t=>{e.readonly||f.value||_.value&&(t.stopPropagation(),d(null),c(null,!0),_.value=!1,i.value=!1,L.value.handleClear&&L.value.handleClear())},showClose:_,triggerClass:b,onPick:(e="",t=!1)=>{let n;i.value=t,n=Array.isArray(e)?e.map((e=>e.toDate())):e?e.toDate():e,S.value=null,d(n)},handleFocus:n=>{e.readonly||f.value||(i.value=!0,t.emit("focus",n))},pickerVisible:i,pickerActualVisible:s,displayValue:v,parsedValue:h,setSelectionRange:(e,t,n)=>{const l=p.value;l.length&&(n&&"min"!==n?"max"===n&&(l[1].setSelectionRange(e,t),l[1].focus()):(l[0].setSelectionRange(e,t),l[0].focus()))},refPopper:r,pickerDisabled:f,onSetPickerOption:e=>{L.value[e[0]]=e[1],L.value.panelReady=!0}}}});const ck={class:"el-range-separator"};uk.render=function(e,t,n,l,a,o){const r=dl("el-input"),i=dl("el-popper"),s=hl("clickoutside");return wl(),Sl(i,Bl({ref:"refPopper",visible:e.pickerVisible,"onUpdate:visible":t[18]||(t[18]=t=>e.pickerVisible=t),"manual-mode":"",effect:"light",pure:"",trigger:"click"},e.$attrs,{"popper-class":"el-picker__popper "+e.popperClass,"popper-options":e.elPopperOptions,transition:"el-zoom-in-top","gpu-acceleration":!1,"stop-popper-mouse-event":!1,"append-to-body":"",onBeforeEnter:t[19]||(t[19]=t=>e.pickerActualVisible=!0),onAfterLeave:t[20]||(t[20]=t=>e.pickerActualVisible=!1)}),{trigger:Zt((()=>[e.isRangeInput?Un((wl(),Sl("div",{key:1,class:["el-date-editor el-range-editor el-input__inner",["el-date-editor--"+e.type,e.pickerSize?"el-range-editor--"+e.pickerSize:"",e.pickerDisabled?"is-disabled":"",e.pickerVisible?"is-active":""]],onClick:t[10]||(t[10]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onMouseenter:t[11]||(t[11]=(...t)=>e.onMouseEnter&&e.onMouseEnter(...t)),onMouseleave:t[12]||(t[12]=(...t)=>e.onMouseLeave&&e.onMouseLeave(...t)),onKeydown:t[13]||(t[13]=(...t)=>e.handleKeydown&&e.handleKeydown(...t))},[Ll("i",{class:["el-input__icon","el-range__icon",e.triggerClass]},null,2),Ll("input",{autocomplete:"off",name:e.name&&e.name[0],placeholder:e.startPlaceholder,value:e.displayValue&&e.displayValue[0],disabled:e.pickerDisabled,readonly:!e.editable||e.readonly,class:"el-range-input",onInput:t[3]||(t[3]=(...t)=>e.handleStartInput&&e.handleStartInput(...t)),onChange:t[4]||(t[4]=(...t)=>e.handleStartChange&&e.handleStartChange(...t)),onFocus:t[5]||(t[5]=(...t)=>e.handleFocus&&e.handleFocus(...t))},null,40,["name","placeholder","value","disabled","readonly"]),Ht(e.$slots,"range-separator",{},(()=>[Ll("span",ck,c(e.rangeSeparator),1)])),Ll("input",{autocomplete:"off",name:e.name&&e.name[1],placeholder:e.endPlaceholder,value:e.displayValue&&e.displayValue[1],disabled:e.pickerDisabled,readonly:!e.editable||e.readonly,class:"el-range-input",onFocus:t[6]||(t[6]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onInput:t[7]||(t[7]=(...t)=>e.handleEndInput&&e.handleEndInput(...t)),onChange:t[8]||(t[8]=(...t)=>e.handleEndChange&&e.handleEndChange(...t))},null,40,["name","placeholder","value","disabled","readonly"]),Ll("i",{class:[[e.showClose?""+e.clearIcon:""],"el-input__icon el-range__close-icon"],onClick:t[9]||(t[9]=(...t)=>e.onClearIconClick&&e.onClearIconClick(...t))},null,2)],34)),[[s,e.onClickOutside,e.popperPaneRef]]):Un((wl(),Sl(r,{key:0,"model-value":e.displayValue,name:e.name,size:e.pickerSize,disabled:e.pickerDisabled,placeholder:e.placeholder,class:["el-date-editor","el-date-editor--"+e.type],readonly:!e.editable||e.readonly||e.isDatesPicker||"week"===e.type,onInput:e.onUserInput,onFocus:e.handleFocus,onKeydown:e.handleKeydown,onChange:e.handleChange,onMouseenter:e.onMouseEnter,onMouseleave:e.onMouseLeave},{prefix:Zt((()=>[Ll("i",{class:["el-input__icon",e.triggerClass],onClick:t[1]||(t[1]=(...t)=>e.handleFocus&&e.handleFocus(...t))},null,2)])),suffix:Zt((()=>[Ll("i",{class:["el-input__icon",[e.showClose?""+e.clearIcon:""]],onClick:t[2]||(t[2]=(...t)=>e.onClearIconClick&&e.onClearIconClick(...t))},null,2)])),_:1},8,["model-value","name","size","disabled","placeholder","class","readonly","onInput","onFocus","onKeydown","onChange","onMouseenter","onMouseleave"])),[[s,e.onClickOutside,e.popperPaneRef]])])),default:Zt((()=>[Ht(e.$slots,"default",{visible:e.pickerVisible,actualVisible:e.pickerActualVisible,parsedValue:e.parsedValue,format:e.format,unlinkPanels:e.unlinkPanels,type:e.type,defaultValue:e.defaultValue,onPick:t[14]||(t[14]=(...t)=>e.onPick&&e.onPick(...t)),onSelectRange:t[15]||(t[15]=(...t)=>e.setSelectionRange&&e.setSelectionRange(...t)),onSetPickerOption:t[16]||(t[16]=(...t)=>e.onSetPickerOption&&e.onSetPickerOption(...t)),onMousedown:t[17]||(t[17]=fo((()=>{}),["stop"]))})])),_:1},16,["visible","popper-class","popper-options"])},uk.__file="packages/time-picker/src/common/picker.vue";const dk=(e,t,n)=>{const l=[],a=t&&n();for(let o=0;o<e;o++)l[o]=!!a&&a.includes(o);return l},pk=e=>e.map(((e,t)=>e||t)).filter((e=>!0!==e)),fk=(e,t,n)=>({getHoursList:(t,n)=>dk(24,e,(()=>e(t,n))),getMinutesList:(e,n,l)=>dk(60,t,(()=>t(e,n,l))),getSecondsList:(e,t,l,a)=>dk(60,n,(()=>n(e,t,l,a)))}),hk=(e,t,n)=>{const{getHoursList:l,getMinutesList:a,getSecondsList:o}=fk(e,t,n);return{getAvaliableHours:(e,t)=>pk(l(e,t)),getAvaliableMinutes:(e,t,n)=>pk(a(e,t,n)),getAvaliableSeconds:(e,t,n,l)=>pk(o(e,t,n,l))}},vk=e=>{const t=lt(e.parsedValue);return Sn((()=>e.visible),(n=>{n||(t.value=e.parsedValue)})),t};var mk=Qn({directives:{repeatClick:Eb},components:{ElScrollbar:a_},props:{role:{type:String,required:!0},spinnerDate:{type:Object,required:!0},showSeconds:{type:Boolean,default:!0},arrowControl:Boolean,amPmMode:{type:String,default:""},disabledHours:{type:Function},disabledMinutes:{type:Function},disabledSeconds:{type:Function}},emits:["change","select-range","set-option"],setup(e,t){let n=!1;const l=uu((e=>{n=!1,w(e)}),200),a=lt(null),o=lt(null),r=lt(null),i=lt(null),s={hours:o,minutes:r,seconds:i},u=ca((()=>{const t=["hours","minutes","seconds"];return e.showSeconds?t:t.slice(0,2)})),c=ca((()=>e.spinnerDate.hour())),d=ca((()=>e.spinnerDate.minute())),p=ca((()=>e.spinnerDate.second())),f=ca((()=>({hours:c,minutes:d,seconds:p}))),h=ca((()=>D(e.role))),v=ca((()=>L(c.value,e.role))),m=ca((()=>N(c.value,d.value,e.role))),g=ca((()=>({hours:h,minutes:v,seconds:m}))),y=ca((()=>{const e=c.value;return[e>0?e-1:void 0,e,e<23?e+1:void 0]})),b=ca((()=>{const e=d.value;return[e>0?e-1:void 0,e,e<59?e+1:void 0]})),_=ca((()=>{const e=p.value;return[e>0?e-1:void 0,e,e<59?e+1:void 0]})),k=ca((()=>({hours:y,minutes:b,seconds:_}))),x=e=>{"hours"===e?t.emit("select-range",0,2):"minutes"===e?t.emit("select-range",3,5):"seconds"===e&&t.emit("select-range",6,8),a.value=e},w=e=>{S(e,f.value[e].value)},C=()=>{w("hours"),w("minutes"),w("seconds")},S=(t,n)=>{if(e.arrowControl)return;const l=s[t];l.value&&(l.value.$el.querySelector(".el-scrollbar__wrap").scrollTop=Math.max(0,n*E(t)))},E=e=>s[e].value.$el.querySelector("li").offsetHeight,M=e=>{a.value||x("hours");const t=a.value;let n=f.value[t].value;const l="hours"===a.value?24:60;n=(n+e+l)%l,O(t,n),S(t,n),Dt((()=>x(a.value)))},O=(n,l)=>{if(!g.value[n].value[l])switch(n){case"hours":t.emit("change",e.spinnerDate.hour(l).minute(d.value).second(p.value));break;case"minutes":t.emit("change",e.spinnerDate.hour(c.value).minute(l).second(p.value));break;case"seconds":t.emit("change",e.spinnerDate.hour(c.value).minute(d.value).second(l))}},T=()=>{const e=e=>{s[e].value&&(s[e].value.$el.querySelector(".el-scrollbar__wrap").onscroll=()=>{(e=>{n=!0,l(e);const t=Math.min(Math.round((s[e].value.$el.querySelector(".el-scrollbar__wrap").scrollTop-(.5*(e=>s[e].value.$el.offsetHeight)(e)-10)/E(e)+3)/E(e)),"hours"===e?23:59);O(e,t)})(e)})};e("hours"),e("minutes"),e("seconds")};mn((()=>{Dt((()=>{!e.arrowControl&&T(),C(),"start"===e.role&&x("hours")}))})),t.emit("set-option",[e.role+"_scrollDown",M]),t.emit("set-option",[e.role+"_emitSelectRange",x]);const{getHoursList:D,getMinutesList:L,getSecondsList:N}=fk(e.disabledHours,e.disabledMinutes,e.disabledSeconds);return Sn((()=>e.spinnerDate),(()=>{n||C()})),{getRefId:e=>`list${e.charAt(0).toUpperCase()+e.slice(1)}Ref`,spinnerItems:u,currentScrollbar:a,hours:c,minutes:d,seconds:p,hoursList:h,minutesList:v,arrowHourList:y,arrowMinuteList:b,arrowSecondList:_,getAmPmFlag:t=>{if(!e.amPmMode)return"";let n=t<12?" am":" pm";return"A"===e.amPmMode&&(n=n.toUpperCase()),n},emitSelectRange:x,adjustCurrentSpinner:w,typeItemHeight:E,listHoursRef:o,listMinutesRef:r,listSecondsRef:i,onIncreaseClick:()=>{M(1)},onDecreaseClick:()=>{M(-1)},handleClick:(e,{value:t,disabled:n})=>{n||(O(e,t),x(e),S(e,t))},secondsList:m,timePartsMap:f,arrowListMap:k,listMap:g}}});const gk={class:"el-time-spinner__arrow el-icon-arrow-up"},yk={class:"el-time-spinner__arrow el-icon-arrow-down"},bk={class:"el-time-spinner__list"};mk.render=function(e,t,n,l,a,o){const r=dl("el-scrollbar"),i=hl("repeat-click");return wl(),Sl("div",{class:["el-time-spinner",{"has-seconds":e.showSeconds}]},[e.arrowControl?Pl("v-if",!0):(wl(!0),Sl(gl,{key:0},pa(e.spinnerItems,(t=>(wl(),Sl(r,{key:t,ref:e.getRefId(t),class:"el-time-spinner__wrapper","wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list",noresize:"",tag:"ul",onMouseenter:n=>e.emitSelectRange(t),onMousemove:n=>e.adjustCurrentSpinner(t)},{default:Zt((()=>[(wl(!0),Sl(gl,null,pa(e.listMap[t].value,((n,l)=>(wl(),Sl("li",{key:l,class:["el-time-spinner__item",{active:l===e.timePartsMap[t].value,disabled:n}],onClick:a=>e.handleClick(t,{value:l,disabled:n})},["hours"===t?(wl(),Sl(gl,{key:0},[Al(c(("0"+(e.amPmMode?l%12||12:l)).slice(-2))+c(e.getAmPmFlag(l)),1)],2112)):(wl(),Sl(gl,{key:1},[Al(c(("0"+l).slice(-2)),1)],2112))],10,["onClick"])))),128))])),_:2},1032,["onMouseenter","onMousemove"])))),128)),e.arrowControl?(wl(!0),Sl(gl,{key:1},pa(e.spinnerItems,(t=>(wl(),Sl("div",{key:t,class:"el-time-spinner__wrapper is-arrow",onMouseenter:n=>e.emitSelectRange(t)},[Un(Ll("i",gk,null,512),[[i,e.onDecreaseClick]]),Un(Ll("i",yk,null,512),[[i,e.onIncreaseClick]]),Ll("ul",bk,[(wl(!0),Sl(gl,null,pa(e.arrowListMap[t].value,((n,l)=>(wl(),Sl("li",{key:l,class:["el-time-spinner__item",{active:n===e.timePartsMap[t].value,disabled:e.listMap[t].value[n]}]},c(void 0===n?"":("0"+(e.amPmMode?n%12||12:n)).slice(-2)+e.getAmPmFlag(n)),3)))),128))])],40,["onMouseenter"])))),128)):Pl("v-if",!0)],2)},mk.__file="packages/time-picker/src/time-picker-com/basic-time-spinner.vue";var _k=Qn({components:{TimeSpinner:mk},props:{visible:Boolean,actualVisible:{type:Boolean,default:void 0},datetimeRole:{type:String},parsedValue:{type:[Object,String]},format:{type:String,default:""}},emits:["pick","select-range","set-picker-option"],setup(e,t){const n=lt([0,2]),l=vk(e),a=ca((()=>void 0===e.actualVisible?"el-zoom-in-top":"")),o=ca((()=>e.format.includes("ss"))),r=ca((()=>e.format.includes("A")?"A":e.format.includes("a")?"a":"")),i=t=>{const n={hour:v,minute:m,second:g};let l=t;return["hour","minute","second"].forEach((t=>{if(n[t]){let a;const o=n[t];a="minute"===t?o(l.hour(),e.datetimeRole):"second"===t?o(l.hour(),l.minute(),e.datetimeRole):o(e.datetimeRole),a&&a.length&&!a.includes(l[t]())&&(l=l[t](a[0]))}})),l};t.emit("set-picker-option",["isValidValue",e=>{const t=Rc(e),n=i(t);return t.isSame(n)}]),t.emit("set-picker-option",["formatToString",t=>t?t.format(e.format):null]),t.emit("set-picker-option",["parseUserInput",t=>t?Rc(t,e.format):null]),t.emit("set-picker-option",["handleKeydown",e=>{const t=e.code;if(t===vb.left||t===vb.right)return(e=>{const t=[0,3].concat(o.value?[6]:[]),l=["hours","minutes"].concat(o.value?["seconds"]:[]),a=(t.indexOf(n.value[0])+e+t.length)%t.length;s.start_emitSelectRange(l[a])})(t===vb.left?-1:1),void e.preventDefault();if(t===vb.up||t===vb.down){const n=t===vb.up?-1:1;return s.start_scrollDown(n),void e.preventDefault()}}]),t.emit("set-picker-option",["getRangeAvaliableTime",i]),t.emit("set-picker-option",["getDefaultValue",()=>Rc(h)]);const s={},u=zl("EP_PICKER_BASE"),{arrowControl:c,disabledHours:d,disabledMinutes:p,disabledSeconds:f,defaultValue:h}=u.props,{getAvaliableHours:v,getAvaliableMinutes:m,getAvaliableSeconds:g}=hk(d,p,f);return{transitionName:a,arrowControl:c,onSetOption:e=>{s[e[0]]=e[1]},t:ak,handleConfirm:(n=!1,l)=>{l||t.emit("pick",e.parsedValue,n)},handleChange:n=>{if(!e.visible)return;const l=i(n).millisecond(0);t.emit("pick",l,!0)},setSelectionRange:(e,l)=>{t.emit("select-range",e,l),n.value=[e,l]},amPmMode:r,showSeconds:o,handleCancel:()=>{t.emit("pick",l.value,!1)},disabledHours:d,disabledMinutes:p,disabledSeconds:f}}});const kk={key:0,class:"el-time-panel"},xk={class:"el-time-panel__footer"};_k.render=function(e,t,n,l,a,o){const r=dl("time-spinner");return wl(),Sl(Ia,{name:e.transitionName},{default:Zt((()=>[e.actualVisible||e.visible?(wl(),Sl("div",kk,[Ll("div",{class:["el-time-panel__content",{"has-seconds":e.showSeconds}]},[Ll(r,{ref:"spinner",role:e.datetimeRole||"start","arrow-control":e.arrowControl,"show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,"spinner-date":e.parsedValue,"disabled-hours":e.disabledHours,"disabled-minutes":e.disabledMinutes,"disabled-seconds":e.disabledSeconds,onChange:e.handleChange,onSetOption:e.onSetOption,onSelectRange:e.setSelectionRange},null,8,["role","arrow-control","show-seconds","am-pm-mode","spinner-date","disabled-hours","disabled-minutes","disabled-seconds","onChange","onSetOption","onSelectRange"])],2),Ll("div",xk,[Ll("button",{type:"button",class:"el-time-panel__btn cancel",onClick:t[1]||(t[1]=(...t)=>e.handleCancel&&e.handleCancel(...t))},c(e.t("el.datepicker.cancel")),1),Ll("button",{type:"button",class:"el-time-panel__btn confirm",onClick:t[2]||(t[2]=t=>e.handleConfirm())},c(e.t("el.datepicker.confirm")),1)])])):Pl("v-if",!0)])),_:1},8,["name"])},_k.__file="packages/time-picker/src/time-picker-com/panel-time-pick.vue";const wk=(e,t)=>{const n=[];for(let l=e;l<=t;l++)n.push(l);return n};var Ck=Qn({components:{TimeSpinner:mk},props:{visible:Boolean,actualVisible:Boolean,parsedValue:{type:[Array,String]},format:{type:String,default:""}},emits:["pick","select-range","set-picker-option"],setup(e,t){const n=ca((()=>e.parsedValue[0])),l=ca((()=>e.parsedValue[1])),a=vk(e),o=ca((()=>e.format.includes("ss"))),r=ca((()=>e.format.includes("A")?"A":e.format.includes("a")?"a":"")),i=lt([]),s=lt([]),u=(e,n)=>{t.emit("pick",[e,n],!0)},c=ca((()=>n.value>l.value)),d=lt([0,2]),p=ca((()=>o.value?11:8)),f=(e,t)=>{const a=C?C(e):[],o="start"===e,r=(t||(o?l.value:n.value)).hour(),i=o?wk(r+1,23):wk(0,r-1);return xf(a,i)},h=(e,t,a)=>{const o=S?S(e,t):[],r="start"===t,i=a||(r?l.value:n.value);if(e!==i.hour())return o;const s=i.minute(),u=r?wk(s+1,59):wk(0,s-1);return xf(o,u)},v=(e,t,a,o)=>{const r=E?E(e,t,a):[],i="start"===a,s=o||(i?l.value:n.value),u=s.hour(),c=s.minute();if(e!==u||t!==c)return r;const d=s.second(),p=i?wk(d+1,59):wk(0,d-1);return xf(r,p)},m=e=>e.map(((t,n)=>_(e[0],e[1],0===n?"start":"end"))),{getAvaliableHours:g,getAvaliableMinutes:y,getAvaliableSeconds:b}=hk(f,h,v),_=(e,t,n)=>{const l={hour:g,minute:y,second:b},a="start"===n;let o=a?e:t;const r=a?t:e;return["hour","minute","second"].forEach((e=>{if(l[e]){let t;const i=l[e];if(t="minute"===e?i(o.hour(),n,r):"second"===e?i(o.hour(),o.minute(),n,r):i(n,r),t&&t.length&&!t.includes(o[e]())){const n=a?0:t.length-1;o=o[e](t[n])}}})),o};t.emit("set-picker-option",["formatToString",t=>t?Array.isArray(t)?t.map((t=>t.format(e.format))):t.format(e.format):null]),t.emit("set-picker-option",["parseUserInput",t=>t?Array.isArray(t)?t.map((t=>Rc(t,e.format))):Rc(t,e.format):null]),t.emit("set-picker-option",["isValidValue",e=>{const t=e.map((e=>Rc(e))),n=m(t);return t[0].isSame(n[0])&&t[1].isSame(n[1])}]),t.emit("set-picker-option",["handleKeydown",e=>{const t=e.code;if(t===vb.left||t===vb.right)return(e=>{const t=o.value?[0,3,6,11,14,17]:[0,3,8,11],n=["hours","minutes"].concat(o.value?["seconds"]:[]),l=(t.indexOf(d.value[0])+e+t.length)%t.length,a=t.length/2;l<a?k.start_emitSelectRange(n[l]):k.end_emitSelectRange(n[l-a])})(t===vb.left?-1:1),void e.preventDefault();if(t===vb.up||t===vb.down){const n=t===vb.up?-1:1,l=d.value[0]<p.value?"start":"end";return k[l+"_scrollDown"](n),void e.preventDefault()}}]),t.emit("set-picker-option",["getDefaultValue",()=>Array.isArray(M)?M.map((e=>Rc(e))):[Rc(M),Rc(M).add(60,"m")]]),t.emit("set-picker-option",["getRangeAvaliableTime",m]);const k={},x=zl("EP_PICKER_BASE"),{arrowControl:w,disabledHours:C,disabledMinutes:S,disabledSeconds:E,defaultValue:M}=x.props;return{arrowControl:w,onSetOption:e=>{k[e[0]]=e[1]},setMaxSelectionRange:(e,n)=>{t.emit("select-range",e,n,"max"),d.value=[e+p.value,n+p.value]},setMinSelectionRange:(e,n)=>{t.emit("select-range",e,n,"min"),d.value=[e,n]},btnConfirmDisabled:c,handleCancel:()=>{t.emit("pick",a.value,null)},handleConfirm:(e=!1)=>{t.emit("pick",[n.value,l.value],e)},t:ak,showSeconds:o,minDate:n,maxDate:l,amPmMode:r,handleMinChange:e=>{u(e.millisecond(0),l.value)},handleMaxChange:e=>{u(n.value,e.millisecond(0))},minSelectableRange:i,maxSelectableRange:s,disabledHours_:f,disabledMinutes_:h,disabledSeconds_:v}}});const Sk={key:0,class:"el-time-range-picker el-picker-panel"},Ek={class:"el-time-range-picker__content"},Mk={class:"el-time-range-picker__cell"},Ok={class:"el-time-range-picker__header"},Tk={class:"el-time-range-picker__cell"},Dk={class:"el-time-range-picker__header"},Lk={class:"el-time-panel__footer"};Ck.render=function(e,t,n,l,a,o){const r=dl("time-spinner");return e.actualVisible?(wl(),Sl("div",Sk,[Ll("div",Ek,[Ll("div",Mk,[Ll("div",Ok,c(e.t("el.datepicker.startTime")),1),Ll("div",{class:[{"has-seconds":e.showSeconds,"is-arrow":e.arrowControl},"el-time-range-picker__body el-time-panel__content"]},[Ll(r,{ref:"minSpinner",role:"start","show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,"arrow-control":e.arrowControl,"spinner-date":e.minDate,"disabled-hours":e.disabledHours_,"disabled-minutes":e.disabledMinutes_,"disabled-seconds":e.disabledSeconds_,onChange:e.handleMinChange,onSetOption:e.onSetOption,onSelectRange:e.setMinSelectionRange},null,8,["show-seconds","am-pm-mode","arrow-control","spinner-date","disabled-hours","disabled-minutes","disabled-seconds","onChange","onSetOption","onSelectRange"])],2)]),Ll("div",Tk,[Ll("div",Dk,c(e.t("el.datepicker.endTime")),1),Ll("div",{class:[{"has-seconds":e.showSeconds,"is-arrow":e.arrowControl},"el-time-range-picker__body el-time-panel__content"]},[Ll(r,{ref:"maxSpinner",role:"end","show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,"arrow-control":e.arrowControl,"spinner-date":e.maxDate,"disabled-hours":e.disabledHours_,"disabled-minutes":e.disabledMinutes_,"disabled-seconds":e.disabledSeconds_,onChange:e.handleMaxChange,onSetOption:e.onSetOption,onSelectRange:e.setMaxSelectionRange},null,8,["show-seconds","am-pm-mode","arrow-control","spinner-date","disabled-hours","disabled-minutes","disabled-seconds","onChange","onSetOption","onSelectRange"])],2)])]),Ll("div",Lk,[Ll("button",{type:"button",class:"el-time-panel__btn cancel",onClick:t[1]||(t[1]=t=>e.handleCancel())},c(e.t("el.datepicker.cancel")),1),Ll("button",{type:"button",class:"el-time-panel__btn confirm",disabled:e.btnConfirmDisabled,onClick:t[2]||(t[2]=t=>e.handleConfirm())},c(e.t("el.datepicker.confirm")),9,["disabled"])])])):Pl("v-if",!0)},Ck.__file="packages/time-picker/src/time-picker-com/panel-time-range.vue",Rc.extend(qc);var Nk=Qn({name:"ElTimePicker",install:null,props:Object.assign(Object.assign({},rk),{isRange:{type:Boolean,default:!1}}),emits:["update:modelValue"],setup(e,t){const n=lt(null),l=e.isRange?"timerange":"time",a=e.isRange?Ck:_k,o=Object.assign(Object.assign({},e),{focus:()=>{var e;null===(e=n.value)||void 0===e||e.handleFocus()}});return $l("ElPopperOptions",e.popperOptions),t.expose(o),()=>da(uk,Object.assign(Object.assign({format:"HH:mm:ss"},e),{type:l,ref:n,"onUpdate:modelValue":e=>t.emit("update:modelValue",e)}),{default:e=>da(a,e)})}});const Ak=e=>Array.from(Array(e).keys()),Pk=e=>e.replace(/\W?m{1,2}|\W?ZZ/g,"").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi,"").trim(),Ik=e=>e.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?Y{2,4}/g,"").trim(),Fk=Nk;Fk.install=e=>{e.component(Fk.name,Fk)},Rc.extend(Wc);var Vk=Qn({props:{selectedDay:{type:Object},range:{type:Array},date:{type:Object},hideHeader:{type:Boolean}},emits:["pick"],setup(e,t){const n=lt(Rc().localeData().weekdaysShort()),l=Rc(),a=l.$locale().weekStart||0,o=(t,n)=>{let l;return l="prev"===n?e.date.startOf("month").subtract(1,"month").date(t):"next"===n?e.date.startOf("month").add(1,"month").date(t):e.date.date(t),l},r=ca((()=>e.range&&e.range.length)),i=ca((()=>{let t=[];if(r.value){const[n,l]=e.range,a=Ak(l.date()-n.date()+1).map(((e,t)=>({text:n.date()+t,type:"current"})));let o=a.length%7;o=0===o?0:7-o;const r=Ak(o).map(((e,t)=>({text:t+1,type:"next"})));t=a.concat(r)}else{const n=e.date.startOf("month").day()||7;t=[...((e,t)=>{const n=e.subtract(1,"month").endOf("month").date();return Ak(t).map(((e,l)=>n-(t-l-1)))})(e.date,n-a).map((e=>({text:e,type:"prev"}))),...(e=>{const t=e.daysInMonth();return Ak(t).map(((e,t)=>t+1))})(e.date).map((e=>({text:e,type:"current"})))];const l=Ak(42-t.length).map(((e,t)=>({text:t+1,type:"next"})));t=t.concat(l)}return Ak((n=t).length/7).map(((e,t)=>{const l=7*t;return n.slice(l,l+7)}));var n})),s=ca((()=>{const e=a;return 0===e?n.value:n.value.slice(e).concat(n.value.slice(0,e))}));return{isInRange:r,weekDays:s,rows:i,getCellClass:({text:t,type:n})=>{const a=[n];if("current"===n){const r=o(t,n);r.isSame(e.selectedDay,"day")&&a.push("is-selected"),r.isSame(l,"day")&&a.push("is-today")}return a},pickDay:({text:e,type:n})=>{const l=o(e,n);t.emit("pick",l)},getSlotData:({text:t,type:n})=>{const l=o(t,n);return{isSelected:l.isSame(e.selectedDay),type:n+"-month",day:l.format("YYYY-MM-DD"),date:l.toDate()}}}}});const Bk={key:0},$k={class:"el-calendar-day"};Vk.render=function(e,t,n,l,a,o){return wl(),Sl("table",{class:{"el-calendar-table":!0,"is-range":e.isInRange},cellspacing:"0",cellpadding:"0"},[e.hideHeader?Pl("v-if",!0):(wl(),Sl("thead",Bk,[(wl(!0),Sl(gl,null,pa(e.weekDays,(e=>(wl(),Sl("th",{key:e},c(e),1)))),128))])),Ll("tbody",null,[(wl(!0),Sl(gl,null,pa(e.rows,((t,n)=>(wl(),Sl("tr",{key:n,class:{"el-calendar-table__row":!0,"el-calendar-table__row--hide-border":0===n&&e.hideHeader}},[(wl(!0),Sl(gl,null,pa(t,((t,n)=>(wl(),Sl("td",{key:n,class:e.getCellClass(t),onClick:n=>e.pickDay(t)},[Ll("div",$k,[Ht(e.$slots,"dateCell",{data:e.getSlotData(t)},(()=>[Ll("span",null,c(t.text),1)]))])],10,["onClick"])))),128))],2)))),128))])],2)},Vk.__file="packages/calendar/src/date-table.vue";var zk=Qn({name:"ElCalendar",components:{DateTable:Vk,ElButton:Z_,ElButtonGroup:ek},props:{modelValue:{type:Date},range:{type:Array,validator:e=>!!Array.isArray(e)&&2===e.length&&e.every((e=>e instanceof Date))}},emits:["input","update:modelValue"],setup(e,t){const n=lt(null),l=Rc(),a=ca((()=>u.value.subtract(1,"month"))),o=ca((()=>Rc(u.value).format("YYYY-MM"))),r=ca((()=>u.value.add(1,"month"))),i=ca((()=>{const e="el.datepicker.month"+u.value.format("M");return`${u.value.year()} ${ak("el.datepicker.year")} ${ak(e)}`})),s=ca({get:()=>e.modelValue?u.value:n.value,set(e){n.value=e;const l=e.toDate();t.emit("input",l),t.emit("update:modelValue",l)}}),u=ca((()=>e.modelValue?Rc(e.modelValue):s.value?s.value:c.value.length?c.value[0][0]:l)),c=ca((()=>{if(!e.range)return[];const t=e.range.map((e=>Rc(e))),[n,l]=t;if(n.isAfter(l))return console.warn("[ElementCalendar]end time should be greater than start time"),[];if(n.isSame(l,"month"))return[[n.startOf("week"),l.endOf("week")]];{if(n.add(1,"month").month()!==l.month())return console.warn("[ElementCalendar]start time and end time interval must not exceed two months"),[];const e=l.startOf("month"),t=e.startOf("week");let a=e;return e.isSame(t,"month")||(a=e.endOf("week").add(1,"day")),[[n.startOf("week"),n.endOf("month")],[a,l.endOf("week")]]}})),d=e=>{s.value=e};return{selectedDay:n,curMonthDatePrefix:o,i18nDate:i,realSelectedDay:s,date:u,validatedRange:c,pickDay:d,selectDate:e=>{let t;t="prev-month"===e?a.value:"next-month"===e?r.value:l,t.isSame(u.value,"day")||d(t)},t:ak}}});const jk={class:"el-calendar"},Rk={class:"el-calendar__header"},Hk={class:"el-calendar__title"},Wk={key:0,class:"el-calendar__button-group"},Yk={key:0,class:"el-calendar__body"},qk={key:1,class:"el-calendar__body"};zk.render=function(e,t,n,l,a,o){const r=dl("el-button"),i=dl("el-button-group"),s=dl("date-table");return wl(),Sl("div",jk,[Ll("div",Rk,[Ll("div",Hk,c(e.i18nDate),1),0===e.validatedRange.length?(wl(),Sl("div",Wk,[Ll(i,null,{default:Zt((()=>[Ll(r,{size:"mini",onClick:t[1]||(t[1]=t=>e.selectDate("prev-month"))},{default:Zt((()=>[Al(c(e.t("el.datepicker.prevMonth")),1)])),_:1}),Ll(r,{size:"mini",onClick:t[2]||(t[2]=t=>e.selectDate("today"))},{default:Zt((()=>[Al(c(e.t("el.datepicker.today")),1)])),_:1}),Ll(r,{size:"mini",onClick:t[3]||(t[3]=t=>e.selectDate("next-month"))},{default:Zt((()=>[Al(c(e.t("el.datepicker.nextMonth")),1)])),_:1})])),_:1})])):Pl("v-if",!0)]),0===e.validatedRange.length?(wl(),Sl("div",Yk,[Ll(s,{date:e.date,"selected-day":e.realSelectedDay,onPick:e.pickDay},ha({_:2},[e.$slots.dateCell?{name:"dateCell",fn:Zt((t=>[Ht(e.$slots,"dateCell",t)]))}:void 0]),1032,["date","selected-day","onPick"])])):(wl(),Sl("div",qk,[(wl(!0),Sl(gl,null,pa(e.validatedRange,((t,n)=>(wl(),Sl(s,{key:n,date:t[0],"selected-day":e.realSelectedDay,range:t,"hide-header":0!==n,onPick:e.pickDay},ha({_:2},[e.$slots.dateCell?{name:"dateCell",fn:Zt((t=>[Ht(e.$slots,"dateCell",t)]))}:void 0]),1032,["date","selected-day","range","hide-header","onPick"])))),128))]))])},zk.__file="packages/calendar/src/index.vue",zk.install=e=>{e.component(zk.name,zk)};const Kk=zk;var Uk=Qn({name:"ElCard",props:{header:{type:String,default:""},bodyStyle:{type:[String,Object,Array],default:""},shadow:{type:String,default:""}}});const Gk={key:0,class:"el-card__header"};Uk.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-card",e.shadow?"is-"+e.shadow+"-shadow":"is-always-shadow"]},[e.$slots.header||e.header?(wl(),Sl("div",Gk,[Ht(e.$slots,"header",{},(()=>[Al(c(e.header),1)]))])):Pl("v-if",!0),Ll("div",{class:"el-card__body",style:e.bodyStyle},[Ht(e.$slots,"default")],4)],2)},Uk.__file="packages/card/src/index.vue",Uk.install=e=>{e.component(Uk.name,Uk)};const Xk=Uk;var Zk=Qn({name:"ElCarousel",props:{initialIndex:{type:Number,default:0},height:{type:String,default:""},trigger:{type:String,default:"hover"},autoplay:{type:Boolean,default:!0},interval:{type:Number,default:3e3},indicatorPosition:{type:String,default:""},indicator:{type:Boolean,default:!0},arrow:{type:String,default:"hover"},type:{type:String,default:""},loop:{type:Boolean,default:!0},direction:{type:String,default:"horizontal",validator:e=>["horizontal","vertical"].includes(e)},pauseOnHover:{type:Boolean,default:!0}},emits:["change"],setup(e,{emit:t}){const n=Ue({activeIndex:-1,containerWidth:0,timer:null,hover:!1}),l=lt(null),a=lt([]),o=lt(0),r=lt(0),i=ca((()=>"never"!==e.arrow&&"vertical"!==e.direction)),s=ca((()=>a.value.some((e=>e.label.toString().length>0)))),u=ca((()=>{const t=["el-carousel","el-carousel--"+e.direction];return"card"===e.type&&t.push("el-carousel--card"),t})),c=ca((()=>{const t=["el-carousel__indicators","el-carousel__indicators--"+e.direction];return s.value&&t.push("el-carousel__indicators--labels"),"outside"!==e.indicatorPosition&&"card"!==e.type||t.push("el-carousel__indicators--outside"),t})),d=zc((e=>{m(e)}),300,{trailing:!0}),p=zc((t=>{var l;l=t,"hover"===e.trigger&&l!==n.activeIndex&&(n.activeIndex=l)}),300);function f(){n.timer&&(clearInterval(n.timer),n.timer=null)}function h(){e.interval<=0||!e.autoplay||n.timer||(n.timer=setInterval((()=>v()),e.interval))}const v=()=>{n.activeIndex<a.value.length-1?n.activeIndex=n.activeIndex+1:e.loop&&(n.activeIndex=0)};function m(t){if("string"==typeof t){const e=a.value.filter((e=>e.name===t));e.length>0&&(t=a.value.indexOf(e[0]))}if(t=Number(t),isNaN(t)||t!==Math.floor(t))return void console.warn("[Element Warn][Carousel]index must be an integer.");let l=a.value.length;const o=n.activeIndex;n.activeIndex=t<0?e.loop?l-1:0:t>=l?e.loop?0:l-1:t,o===n.activeIndex&&g(o)}function g(e){a.value.forEach(((t,l)=>{t.translateItem(l,n.activeIndex,e)}))}function y(){m(n.activeIndex+1)}return Sn((()=>n.activeIndex),((e,n)=>{g(n),n>-1&&t("change",e,n)})),Sn((()=>e.autoplay),(e=>{e?h():f()})),Sn((()=>e.loop),(()=>{m(n.activeIndex)})),mn((()=>{Dt((()=>{Zy(l.value,g),l.value&&(o.value=l.value.offsetWidth,r.value=l.value.offsetHeight),e.initialIndex<a.value.length&&e.initialIndex>=0&&(n.activeIndex=e.initialIndex),h()}))})),bn((()=>{l.value&&Jy(l.value,g),f()})),$l("injectCarouselScope",{direction:e.direction,offsetWidth:o,offsetHeight:r,type:e.type,items:a,loop:e.loop,addItem:function(e){a.value.push(e)},removeItem:function(e){const t=a.value.findIndex((t=>t.uid===e));-1!==t&&(a.value.splice(t,1),n.activeIndex===t&&y())},setActiveItem:m}),{data:n,props:e,items:a,arrowDisplay:i,carouselClasses:u,indicatorsClasses:c,hasLabel:s,handleMouseEnter:function(){n.hover=!0,e.pauseOnHover&&f()},handleMouseLeave:function(){n.hover=!1,h()},handleIndicatorClick:function(e){n.activeIndex=e},throttledArrowClick:d,throttledIndicatorHover:p,handleButtonEnter:function(t){"vertical"!==e.direction&&a.value.forEach(((e,n)=>{t===function(e,t){const n=a.value.length;return t===n-1&&e.inStage&&a.value[0].active||e.inStage&&a.value[t+1]&&a.value[t+1].active?"left":!!(0===t&&e.inStage&&a.value[n-1].active||e.inStage&&a.value[t-1]&&a.value[t-1].active)&&"right"}(e,n)&&(e.hover=!0)}))},handleButtonLeave:function(){"vertical"!==e.direction&&a.value.forEach((e=>{e.hover=!1}))},prev:function(){m(n.activeIndex-1)},next:y,setActiveItem:m,root:l}}});const Jk=Ll("i",{class:"el-icon-arrow-left"},null,-1),Qk=Ll("i",{class:"el-icon-arrow-right"},null,-1),ex={class:"el-carousel__button"},tx={key:0};Zk.render=function(e,t,n,l,a,o){return wl(),Sl("div",{ref:"root",class:e.carouselClasses,onMouseenter:t[7]||(t[7]=fo(((...t)=>e.handleMouseEnter&&e.handleMouseEnter(...t)),["stop"])),onMouseleave:t[8]||(t[8]=fo(((...t)=>e.handleMouseLeave&&e.handleMouseLeave(...t)),["stop"]))},[Ll("div",{class:"el-carousel__container",style:{height:e.height}},[e.arrowDisplay?(wl(),Sl(Ia,{key:0,name:"carousel-arrow-left"},{default:Zt((()=>[Un(Ll("button",{type:"button",class:"el-carousel__arrow el-carousel__arrow--left",onMouseenter:t[1]||(t[1]=t=>e.handleButtonEnter("left")),onMouseleave:t[2]||(t[2]=(...t)=>e.handleButtonLeave&&e.handleButtonLeave(...t)),onClick:t[3]||(t[3]=fo((t=>e.throttledArrowClick(e.data.activeIndex-1)),["stop"]))},[Jk],544),[[mo,("always"===e.arrow||e.data.hover)&&(e.props.loop||e.data.activeIndex>0)]])])),_:1})):Pl("v-if",!0),e.arrowDisplay?(wl(),Sl(Ia,{key:1,name:"carousel-arrow-right"},{default:Zt((()=>[Un(Ll("button",{type:"button",class:"el-carousel__arrow el-carousel__arrow--right",onMouseenter:t[4]||(t[4]=t=>e.handleButtonEnter("right")),onMouseleave:t[5]||(t[5]=(...t)=>e.handleButtonLeave&&e.handleButtonLeave(...t)),onClick:t[6]||(t[6]=fo((t=>e.throttledArrowClick(e.data.activeIndex+1)),["stop"]))},[Qk],544),[[mo,("always"===e.arrow||e.data.hover)&&(e.props.loop||e.data.activeIndex<e.items.length-1)]])])),_:1})):Pl("v-if",!0),Ht(e.$slots,"default")],4),"none"!==e.indicatorPosition?(wl(),Sl("ul",{key:0,class:e.indicatorsClasses},[(wl(!0),Sl(gl,null,pa(e.items,((t,n)=>(wl(),Sl("li",{key:n,class:["el-carousel__indicator","el-carousel__indicator--"+e.direction,{"is-active":n===e.data.activeIndex}],onMouseenter:t=>e.throttledIndicatorHover(n),onClick:fo((t=>e.handleIndicatorClick(n)),["stop"])},[Ll("button",ex,[e.hasLabel?(wl(),Sl("span",tx,c(t.label),1)):Pl("v-if",!0)])],42,["onMouseenter","onClick"])))),128))],2)):Pl("v-if",!0)],34)},Zk.__file="packages/carousel/src/main.vue",Zk.install=e=>{e.component(Zk.name,Zk)};const nx=Zk;var lx=Qn({name:"ElCarouselItem",props:{name:{type:String,default:""},label:{type:[String,Number],default:""}},setup(e){const t=na();t.uid;const n=Ue({hover:!1,translate:0,scale:1,active:!1,ready:!1,inStage:!1,animating:!1}),l=zl("injectCarouselScope"),a=ca((()=>l.direction)),o=ca((()=>function(e){const t=["ms-","webkit-"];return["transform","transition","animation"].forEach((n=>{const l=e[n];n&&l&&t.forEach((t=>{e[t+n]=l}))})),e}({transform:`${"vertical"===a.value?"translateY":"translateX"}(${n.translate}px) scale(${n.scale})`}))),r=(e,t,o)=>{const r=l.type,i=l.items.value.length;if("card"!==r&&void 0!==o&&(n.animating=e===t||e===o),e!==t&&i>2&&l.loop&&(s=e,c=i,e=0===(u=t)&&s===c-1?-1:u===c-1&&0===s?c:s<u-1&&u-s>=c/2?c+1:s>u+1&&s-u>=c/2?-2:s),"card"===r)"vertical"===a.value&&console.warn("[Element Warn][Carousel]vertical direction is not supported in card mode"),n.inStage=Math.round(Math.abs(e-t))<=1,n.active=e===t,n.translate=function(e,t){const a=l.offsetWidth.value;return n.inStage?a*(1.17*(e-t)+1)/4:e<t?-1.83*a/4:3.83*a/4}(e,t),n.scale=n.active?1:.83;else{n.active=e===t;const o="vertical"===a.value;n.translate=function(e,t,n){return l[n?"offsetHeight":"offsetWidth"].value*(e-t)}(e,t,o)}var s,u,c;n.ready=!0};return mn((()=>{l.addItem&&l.addItem(Object.assign(Object.assign(Object.assign({uid:t.uid},e),ct(n)),{translateItem:r}))})),_n((()=>{l.removeItem&&l.removeItem(t.uid)})),{data:n,itemStyle:o,translateItem:r,type:l.type,handleItemClick:function(){if(l&&"card"===l.type){const e=l.items.value.map((e=>e.uid)).indexOf(t.uid);l.setActiveItem(e)}}}}});const ax={key:0,class:"el-carousel__mask"};lx.render=function(e,t,n,l,a,o){return Un((wl(),Sl("div",{class:["el-carousel__item",{"is-active":e.data.active,"el-carousel__item--card":"card"===e.type,"is-in-stage":e.data.inStage,"is-hover":e.data.hover,"is-animating":e.data.animating}],style:e.itemStyle,onClick:t[1]||(t[1]=(...t)=>e.handleItemClick&&e.handleItemClick(...t))},["card"===e.type?Un((wl(),Sl("div",ax,null,512)),[[mo,!e.data.active]]):Pl("v-if",!0),Ht(e.$slots,"default")],6)),[[mo,e.data.ready]])},lx.__file="packages/carousel/src/item.vue",lx.install=e=>{e.component(lx.name,lx)};const ox=lx,rx=()=>{const e=Ay(),t=zl("elForm",{}),n=zl("elFormItem",{}),l=zl("CheckboxGroup",{}),a=ca((()=>l&&"ElCheckboxGroup"===(null==l?void 0:l.name))),o=ca((()=>n.size));return{isGroup:a,checkboxGroup:l,elForm:t,ELEMENT:e,elFormItemSize:o,elFormItem:n}},ix=e=>{const{model:t,isLimitExceeded:n}=(e=>{let t=!1;const{emit:n}=na(),{isGroup:l,checkboxGroup:a}=rx(),o=lt(!1),r=ca((()=>{var t;return a?null===(t=a.modelValue)||void 0===t?void 0:t.value:e.modelValue}));return{model:ca({get(){var n;return l.value?r.value:null!==(n=e.modelValue)&&void 0!==n?n:t},set(e){var r;l.value&&Array.isArray(e)?(o.value=!1,void 0!==a.min&&e.length<a.min.value&&(o.value=!0),void 0!==a.max&&e.length>a.max.value&&(o.value=!0),!1===o.value&&(null===(r=null==a?void 0:a.changeEvent)||void 0===r||r.call(a,e))):(n(Nb,e),t=e)}}),isLimitExceeded:o}})(e),{focus:l,size:a,isChecked:o,checkboxSize:r}=((e,{model:t})=>{const{isGroup:n,checkboxGroup:l,elFormItemSize:a,ELEMENT:o}=rx(),r=lt(!1),i=ca((()=>{var e;return(null===(e=null==l?void 0:l.checkboxGroupSize)||void 0===e?void 0:e.value)||a.value||o.size}));return{isChecked:ca((()=>{const n=t.value;return"[object Boolean]"===my(n)?n:Array.isArray(n)?n.includes(e.label):null!=n?n===e.trueLabel:void 0})),focus:r,size:i,checkboxSize:ca((()=>{var t;const r=e.size||a.value||o.size;return n.value&&(null===(t=null==l?void 0:l.checkboxGroupSize)||void 0===t?void 0:t.value)||r}))}})(e,{model:t}),{isDisabled:i}=((e,{model:t,isChecked:n})=>{const{elForm:l,isGroup:a,checkboxGroup:o}=rx(),r=ca((()=>{var e,l;const a=null===(e=o.max)||void 0===e?void 0:e.value,r=null===(l=o.min)||void 0===l?void 0:l.value;return!(!a&&!r)&&t.value.length>=a&&!n.value||t.value.length<=r&&n.value}));return{isDisabled:ca((()=>{var t;const n=e.disabled||l.disabled;return a.value?(null===(t=o.disabled)||void 0===t?void 0:t.value)||n||r.value:e.disabled||l.disabled})),isLimitDisabled:r}})(e,{model:t,isChecked:o}),{handleChange:s}=((e,{isLimitExceeded:t})=>{const{elFormItem:n}=rx(),{emit:l}=na();return Sn((()=>e.modelValue),(e=>{var t;null===(t=n.formItemMitt)||void 0===t||t.emit("el.form.change",[e])})),{handleChange:function(n){var a,o;if(t.value)return;const r=n.target.checked?null===(a=e.trueLabel)||void 0===a||a:null!==(o=e.falseLabel)&&void 0!==o&&o;l("change",r,n)}}})(e,{isLimitExceeded:n});return((e,{model:t})=>{e.checked&&(Array.isArray(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0)})(e,{model:t}),{isChecked:o,isDisabled:i,checkboxSize:r,model:t,handleChange:s,focus:l,size:a}};var sx=Qn({name:"ElCheckbox",props:{modelValue:{type:[Boolean,Number,String],default:()=>{}},label:{type:[Boolean,Number,String]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:{type:String,validator:Ib}},emits:[Nb,"change"],setup:e=>ix(e)});const ux=Ll("span",{class:"el-checkbox__inner"},null,-1),cx={key:0,class:"el-checkbox__label"};sx.render=function(e,t,n,l,a,o){return wl(),Sl("label",{id:e.id,class:["el-checkbox",[e.border&&e.checkboxSize?"el-checkbox--"+e.checkboxSize:"",{"is-disabled":e.isDisabled},{"is-bordered":e.border},{"is-checked":e.isChecked}]],"aria-controls":e.indeterminate?e.controls:null},[Ll("span",{class:["el-checkbox__input",{"is-disabled":e.isDisabled,"is-checked":e.isChecked,"is-indeterminate":e.indeterminate,"is-focus":e.focus}],tabindex:!!e.indeterminate&&0,role:!!e.indeterminate&&"checkbox","aria-checked":!!e.indeterminate&&"mixed"},[ux,e.trueLabel||e.falseLabel?Un((wl(),Sl("input",{key:0,"onUpdate:modelValue":t[1]||(t[1]=t=>e.model=t),checked:e.isChecked,class:"el-checkbox__original",type:"checkbox","aria-hidden":e.indeterminate?"true":"false",name:e.name,disabled:e.isDisabled,"true-value":e.trueLabel,"false-value":e.falseLabel,onChange:t[2]||(t[2]=(...t)=>e.handleChange&&e.handleChange(...t)),onFocus:t[3]||(t[3]=t=>e.focus=!0),onBlur:t[4]||(t[4]=t=>e.focus=!1)},null,40,["checked","aria-hidden","name","disabled","true-value","false-value"])),[[oo,e.model]]):Un((wl(),Sl("input",{key:1,"onUpdate:modelValue":t[5]||(t[5]=t=>e.model=t),class:"el-checkbox__original",type:"checkbox","aria-hidden":e.indeterminate?"true":"false",disabled:e.isDisabled,value:e.label,name:e.name,onChange:t[6]||(t[6]=(...t)=>e.handleChange&&e.handleChange(...t)),onFocus:t[7]||(t[7]=t=>e.focus=!0),onBlur:t[8]||(t[8]=t=>e.focus=!1)},null,40,["aria-hidden","disabled","value","name"])),[[oo,e.model]])],10,["tabindex","role","aria-checked"]),e.$slots.default||e.label?(wl(),Sl("span",cx,[Ht(e.$slots,"default"),e.$slots.default?Pl("v-if",!0):(wl(),Sl(gl,{key:0},[Al(c(e.label),1)],2112))])):Pl("v-if",!0)],10,["id","aria-controls"])},sx.__file="packages/checkbox/src/checkbox.vue",sx.install=e=>{e.component(sx.name,sx)};const dx=sx,px=()=>{const e=Ay(),t=zl("elForm",{}),n=zl("elFormItem",{}),l=zl("RadioGroup",{}),a=lt(!1),o=ca((()=>"ElRadioGroup"===(null==l?void 0:l.name))),r=ca((()=>n.size||e.size));return{isGroup:o,focus:a,radioGroup:l,elForm:t,ELEMENT:e,elFormItemSize:r}},fx=(e,{isGroup:t,radioGroup:n,elForm:l,model:a})=>{const o=ca((()=>t.value?n.disabled||e.disabled||l.disabled:e.disabled||l.disabled)),r=ca((()=>o.value||t.value&&a.value!==e.label?-1:0));return{isDisabled:o,tabIndex:r}};var hx=Qn({name:"ElRadio",componentName:"ElRadio",props:{modelValue:{type:[String,Number,Boolean],default:""},label:{type:[String,Number,Boolean],default:""},disabled:Boolean,name:{type:String,default:""},border:Boolean,size:{type:String,validator:Ib}},emits:[Nb,"change"],setup(e,t){const{isGroup:n,radioGroup:l,elFormItemSize:a,ELEMENT:o,focus:r,elForm:i}=px(),s=lt(),u=ca({get:()=>n.value?l.modelValue:e.modelValue,set(a){n.value?l.changeEvent(a):t.emit(Nb,a),s.value.checked=e.modelValue===e.label}}),{tabIndex:c,isDisabled:d}=fx(e,{isGroup:n,radioGroup:l,elForm:i,model:u}),p=ca((()=>{const t=e.size||a.value||o.size;return n.value&&l.radioGroupSize||t}));return{focus:r,isGroup:n,isDisabled:d,model:u,tabIndex:c,radioSize:p,handleChange:function(){Dt((()=>{t.emit("change",u.value)}))},radioRef:s}}});const vx=Ll("span",{class:"el-radio__inner"},null,-1);hx.render=function(e,t,n,l,a,o){return wl(),Sl("label",{class:["el-radio",{["el-radio--"+(e.radioSize||"")]:e.border&&e.radioSize,"is-disabled":e.isDisabled,"is-focus":e.focus,"is-bordered":e.border,"is-checked":e.model===e.label}],role:"radio","aria-checked":e.model===e.label,"aria-disabled":e.isDisabled,tabindex:e.tabIndex,onKeydown:t[6]||(t[6]=vo(fo((t=>e.model=e.isDisabled?e.model:e.label),["stop","prevent"]),["space"]))},[Ll("span",{class:["el-radio__input",{"is-disabled":e.isDisabled,"is-checked":e.model===e.label}]},[vx,Un(Ll("input",{ref:"radioRef","onUpdate:modelValue":t[1]||(t[1]=t=>e.model=t),class:"el-radio__original",value:e.label,type:"radio","aria-hidden":"true",name:e.name,disabled:e.isDisabled,tabindex:"-1",onFocus:t[2]||(t[2]=t=>e.focus=!0),onBlur:t[3]||(t[3]=t=>e.focus=!1),onChange:t[4]||(t[4]=(...t)=>e.handleChange&&e.handleChange(...t))},null,40,["value","name","disabled"]),[[io,e.model]])],2),Ll("span",{class:"el-radio__label",onKeydown:t[5]||(t[5]=fo((()=>{}),["stop"]))},[Ht(e.$slots,"default",{},(()=>[Al(c(e.label),1)]))],32)],42,["aria-checked","aria-disabled","tabindex"])},hx.__file="packages/radio/src/radio.vue",hx.install=e=>{e.component(hx.name,hx)};const mx=hx;var gx;!function(e){e.CLICK="click",e.HOVER="hover"}(gx||(gx={}));const yx=Symbol();var bx=Qn({name:"ElCascaderNode",components:{ElCheckbox:dx,ElRadio:mx,NodeContent:{render(){const{node:e,panel:t}=this.$parent,{data:n,label:l}=e,{renderLabelFn:a}=t;return da("span",{class:"el-cascader-node__label"},a?a({node:e,data:n}):l)}}},props:{node:{type:Object,required:!0},menuId:String},emits:["expand"],setup(e,{emit:t}){const n=zl(yx),l=ca((()=>n.isHoverMenu)),a=ca((()=>n.config.multiple)),o=ca((()=>n.config.checkStrictly)),r=ca((()=>{var e;return null===(e=n.checkedNodes[0])||void 0===e?void 0:e.uid})),i=ca((()=>e.node.isDisabled)),s=ca((()=>e.node.isLeaf)),u=ca((()=>o.value&&!s.value||!i.value)),c=ca((()=>p(n.expandingNode))),d=ca((()=>o.value&&n.checkedNodes.some(p))),p=t=>{var n;const{level:l,uid:a}=e.node;return(null===(n=null==t?void 0:t.pathNodes[l-1])||void 0===n?void 0:n.uid)===a},f=()=>{c.value||n.expandNode(e.node)},h=()=>{n.lazyLoad(e.node,(()=>{s.value||f()}))},v=()=>{const{node:t}=e;u.value&&!t.loading&&(t.loaded?f():h())},m=t=>{e.node.loaded?((t=>{const{node:l}=e;t!==l.checked&&n.handleCheckChange(l,t)})(t),!o.value&&f()):h()};return{panel:n,isHoverMenu:l,multiple:a,checkStrictly:o,checkedNodeId:r,isDisabled:i,isLeaf:s,expandable:u,inExpandingPath:c,inCheckedPath:d,handleHoverExpand:e=>{l.value&&(v(),!s.value&&t("expand",e))},handleExpand:v,handleClick:()=>{l.value&&!s.value||(!s.value||i.value||o.value||a.value?v():m(!0))},handleCheck:m}}});const _x=Ll("span",null,null,-1),kx={key:2,class:"el-icon-check el-cascader-node__prefix"},xx={key:0,class:"el-icon-loading el-cascader-node__postfix"},wx={key:1,class:"el-icon-arrow-right el-cascader-node__postfix"};bx.render=function(e,t,n,l,a,o){const r=dl("el-checkbox"),i=dl("el-radio"),s=dl("node-content");return wl(),Sl("li",{id:`${e.menuId}-${e.node.uid}`,role:"menuitem","aria-haspopup":!e.isLeaf,"aria-owns":e.isLeaf?null:e.menuId,"aria-expanded":e.inExpandingPath,tabindex:e.expandable?-1:null,class:["el-cascader-node",e.checkStrictly&&"is-selectable",e.inExpandingPath&&"in-active-path",e.inCheckedPath&&"in-checked-path",e.node.checked&&"is-active",!e.expandable&&"is-disabled"],onMouseenter:t[3]||(t[3]=(...t)=>e.handleHoverExpand&&e.handleHoverExpand(...t)),onFocus:t[4]||(t[4]=(...t)=>e.handleHoverExpand&&e.handleHoverExpand(...t)),onClick:t[5]||(t[5]=(...t)=>e.handleClick&&e.handleClick(...t))},[Pl(" prefix "),e.multiple?(wl(),Sl(r,{key:0,"model-value":e.node.checked,indeterminate:e.node.indeterminate,disabled:e.isDisabled,onClick:t[1]||(t[1]=fo((()=>{}),["stop"])),"onUpdate:modelValue":e.handleCheck},null,8,["model-value","indeterminate","disabled","onUpdate:modelValue"])):e.checkStrictly?(wl(),Sl(i,{key:1,"model-value":e.checkedNodeId,label:e.node.uid,disabled:e.isDisabled,"onUpdate:modelValue":e.handleCheck,onClick:t[2]||(t[2]=fo((()=>{}),["stop"]))},{default:Zt((()=>[Pl("\n        Add an empty element to avoid render label,\n        do not use empty fragment here for https://github.com/vuejs/vue-next/pull/2485\n      "),_x])),_:1},8,["model-value","label","disabled","onUpdate:modelValue"])):e.isLeaf&&e.node.checked?(wl(),Sl("i",kx)):Pl("v-if",!0),Pl(" content "),Ll(s),Pl(" postfix "),e.isLeaf?Pl("v-if",!0):(wl(),Sl(gl,{key:3},[e.node.loading?(wl(),Sl("i",xx)):(wl(),Sl("i",wx))],2112))],42,["id","aria-haspopup","aria-owns","aria-expanded","tabindex"])},bx.__file="packages/cascader-panel/src/node.vue";var Cx=Qn({name:"ElCascaderMenu",components:{ElScrollbar:a_,ElCascaderNode:bx},props:{nodes:{type:Array,required:!0},index:{type:Number,required:!0}},setup(e){const t=na(),n=Ey();let l=null,a=null;const o=zl(yx),r=lt(null),i=ca((()=>!e.nodes.length)),s=ca((()=>`cascader-menu-${n}-${e.index}`)),u=()=>{a&&(clearTimeout(a),a=null)},c=()=>{r.value&&(r.value.innerHTML="",u())};return{panel:o,hoverZone:r,isEmpty:i,menuId:s,t:ak,handleExpand:e=>{l=e.target},handleMouseMove:e=>{if(o.isHoverMenu&&l&&r.value)if(l.contains(e.target)){u();const n=t.vnode.el,{left:a}=n.getBoundingClientRect(),{offsetWidth:o,offsetHeight:i}=n,s=e.clientX-a,c=l.offsetTop,d=c+l.offsetHeight;r.value.innerHTML=`\n          <path style="pointer-events: auto;" fill="transparent" d="M${s} ${c} L${o} 0 V${c} Z" />\n          <path style="pointer-events: auto;" fill="transparent" d="M${s} ${d} L${o} ${i} V${d} Z" />\n        `}else a||(a=window.setTimeout(c,o.config.hoverThreshold))},clearHoverZone:c}}});const Sx={key:0,class:"el-cascader-menu__empty-text"},Ex={key:1,ref:"hoverZone",class:"el-cascader-menu__hover-zone"};Cx.render=function(e,t,n,l,a,o){const r=dl("el-cascader-node"),i=dl("el-scrollbar");return wl(),Sl(i,{id:e.menuId,tag:"ul",role:"menu",class:"el-cascader-menu","wrap-class":"el-cascader-menu__wrap","view-class":["el-cascader-menu__list",e.isEmpty&&"is-empty"],onMousemove:e.handleMouseMove,onMouseleave:e.clearHoverZone},{default:Zt((()=>[(wl(!0),Sl(gl,null,pa(e.nodes,(t=>(wl(),Sl(r,{key:t.uid,node:t,"menu-id":e.menuId,onExpand:e.handleExpand},null,8,["node","menu-id","onExpand"])))),128)),e.isEmpty?(wl(),Sl("div",Sx,c(e.t("el.cascader.noData")),1)):e.panel.isHoverMenu?(wl(),Sl("svg",Ex,null,512)):Pl("v-if",!0)])),_:1},8,["id","view-class","onMousemove","onMouseleave"])},Cx.__file="packages/cascader-panel/src/menu.vue";let Mx=0;class Ox{constructor(e,t,n,l=!1){this.data=e,this.config=t,this.parent=n,this.root=l,this.uid=Mx++,this.checked=!1,this.indeterminate=!1,this.loading=!1;const{value:a,label:o,children:r}=t,i=e[r],s=(e=>{const t=[e];let{parent:n}=e;for(;n;)t.unshift(n),n=n.parent;return t})(this);this.level=l?0:n?n.level+1:1,this.value=e[a],this.label=e[o],this.pathNodes=s,this.pathValues=s.map((e=>e.value)),this.pathLabels=s.map((e=>e.label)),this.childrenData=i,this.children=(i||[]).map((e=>new Ox(e,t,this))),this.loaded=!t.lazy||this.isLeaf||!Iy(i)}get isDisabled(){const{data:e,parent:t,config:n}=this,{disabled:l,checkStrictly:a}=n;return(dy(l)?l(e,this):!!e[l])||!a&&(null==t?void 0:t.isDisabled)}get isLeaf(){const{data:e,config:t,childrenData:n,loaded:l}=this,{lazy:a,leaf:o}=t,r=dy(o)?o(e,this):e[o];return void 0===r?!(a&&!l||Array.isArray(n)):!!r}get valueByOption(){return this.config.emitPath?this.pathValues:this.value}appendChild(e){const{childrenData:t,children:n}=this,l=new Ox(e,this.config,this);return Array.isArray(t)?t.push(e):this.childrenData=[e],n.push(l),l}calcText(e,t){const n=e?this.pathLabels.join(t):this.label;return this.text=n,n}broadcast(e,...t){const n="onParent"+ky(e);this.children.forEach((l=>{l&&(l.broadcast(e,...t),l[n]&&l[n](...t))}))}emit(e,...t){const{parent:n}=this,l="onChild"+ky(e);n&&(n[l]&&n[l](...t),n.emit(e,...t))}onParentCheck(e){this.isDisabled||this.setCheckState(e)}onChildCheck(){const{children:e}=this,t=e.filter((e=>!e.isDisabled)),n=!!t.length&&t.every((e=>e.checked));this.setCheckState(n)}setCheckState(e){const t=this.children.length,n=this.children.reduce(((e,t)=>e+(t.checked?1:t.indeterminate?.5:0)),0);this.checked=this.loaded&&this.children.every((e=>e.loaded&&e.checked))&&e,this.indeterminate=this.loaded&&n!==t&&n>0}doCheck(e){if(this.checked===e)return;const{checkStrictly:t,multiple:n}=this.config;t||!n?this.checked=e:(this.broadcast("check",e),this.setCheckState(e),this.emit("check"))}}const Tx=(e,t)=>e.reduce(((e,n)=>(n.isLeaf?e.push(n):(!t&&e.push(n),e=e.concat(Tx(n.children,t))),e)),[]);class Dx{constructor(e,t){this.config=t;const n=(e||[]).map((e=>new Ox(e,this.config)));this.nodes=n,this.allNodes=Tx(n,!1),this.leafNodes=Tx(n,!0)}getNodes(){return this.nodes}getFlattedNodes(e){return e?this.leafNodes:this.allNodes}appendNode(e,t){const n=t?t.appendChild(e):new Ox(e,this.config);t||this.nodes.push(n),this.allNodes.push(n),n.isLeaf&&this.leafNodes.push(n)}appendNodes(e,t){e.forEach((e=>this.appendNode(e,t)))}getNodeByValue(e,t=!1){return(e||0===e)&&this.getFlattedNodes(t).filter((t=>t.value===e||Sv(t.pathValues,e)))[0]||null}getSameNode(e){return e&&this.getFlattedNodes(!1).filter((({value:t,level:n})=>e.value===t&&e.level===n))[0]||null}}function Lx(e,t){if(oy)return;if(!t)return void(e.scrollTop=0);const n=[];let l=t.offsetParent;for(;null!==l&&e!==l&&e.contains(l);)n.push(l),l=l.offsetParent;const a=t.offsetTop+n.reduce(((e,t)=>e+t.offsetTop),0),o=a+t.offsetHeight,r=e.scrollTop,i=r+e.clientHeight;a<r?e.scrollTop=a:o>i&&(e.scrollTop=o-e.clientHeight)}const Nx={modelValue:[Number,String,Array],options:{type:Array,default:()=>[]},props:{type:Object,default:()=>({})}},Ax={expandTrigger:gx.CLICK,multiple:!1,checkStrictly:!1,emitPath:!0,lazy:!1,lazyLoad:ry,value:"value",label:"label",children:"children",leaf:"leaf",disabled:"disabled",hoverThreshold:500},Px=e=>!e.getAttribute("aria-owns"),Ix=e=>{if(!e)return 0;const t=e.id.split("-");return Number(t[t.length-2])},Fx=e=>{e&&(e.focus(),!Px(e)&&e.click())};var Vx=Qn({name:"ElCascaderPanel",components:{ElCascaderMenu:Cx},props:Object.assign(Object.assign({},Nx),{border:{type:Boolean,default:!0},renderLabel:Function}),emits:[Nb,"change","close","expand-change"],setup(e,{emit:t,slots:n}){let l=!0,a=!1;const o=(w=e,ca((()=>Object.assign(Object.assign({},Ax),w.props)))),r=lt(null),i=lt([]),s=lt(null),u=lt([]),c=lt(null),d=lt([]),p=ca((()=>o.value.expandTrigger===gx.HOVER)),f=ca((()=>e.renderLabel||n.default)),h=(e,t)=>{const n=o.value;(e=e||new Ox({},n,null,!0)).loading=!0,n.lazyLoad(e,(n=>{const l=e.root?null:e;n&&r.value.appendNodes(n,l),e.loading=!1,e.loaded=!0,t&&t(n)}))},v=(e,n)=>{var l;const{level:a}=e,o=u.value.slice(0,a);let r;e.isLeaf?r=e.pathNodes[a-2]:(r=e,o.push(e.children)),(null===(l=c.value)||void 0===l?void 0:l.uid)!==(null==r?void 0:r.uid)&&(c.value=e,u.value=o,!n&&t("expand-change",(null==e?void 0:e.pathValues)||[]))},m=(e,n,l=!0)=>{const{checkStrictly:r,multiple:i}=o.value,s=d.value[0];a=!0,!i&&(null==s||s.doCheck(!1)),e.doCheck(n),b(),l&&!i&&!r&&t("close")},g=e=>r.value.getFlattedNodes(e),y=e=>g(e).filter((e=>!1!==e.checked)),b=()=>{var e;const{checkStrictly:t,multiple:n}=o.value,l=((e,t)=>{const n=t.slice(0),l=n.map((e=>e.uid)),a=e.reduce(((e,t)=>{const a=l.indexOf(t.uid);return a>-1&&(e.push(t),n.splice(a,1),l.splice(a,1)),e}),[]);return a.push(...n),a})(d.value,y(!t)),a=l.map((e=>e.valueByOption));d.value=l,s.value=n?a:null!==(e=a[0])&&void 0!==e?e:null},_=(t=!1,n=!1)=>{const{modelValue:i}=e,{lazy:u,multiple:c,checkStrictly:d}=o.value,p=!d;if(l&&!a&&(n||!Sv(i,s.value)))if(u&&!t){const e=Vy(Fy(My(i))).map((e=>r.value.getNodeByValue(e))).filter((e=>!!e&&!e.loaded&&!e.loading));e.length?e.forEach((e=>{h(e,(()=>_(!1,n)))})):_(!0,n)}else{const e=Vy((c?My(i):[i]).map((e=>r.value.getNodeByValue(e,p))));k(e,!1),s.value=i}},k=(e,t=!0)=>{const{checkStrictly:n}=o.value,l=d.value,a=e.filter((e=>!!e&&(n||e.isLeaf))),i=r.value.getSameNode(c.value),s=t&&i||a[0];s?s.pathNodes.forEach((e=>v(e,!0))):c.value=null,l.forEach((e=>e.doCheck(!1))),a.forEach((e=>e.doCheck(!0))),d.value=a,Dt(x)},x=()=>{oy||i.value.forEach((e=>{const t=null==e?void 0:e.$el;t&&Lx(t.querySelector(".el-scrollbar__wrap"),t.querySelector(".el-cascader-node.is-active")||t.querySelector(".el-cascader-node.in-active-path"))}))};var w;return $l(yx,Ue({config:o,expandingNode:c,checkedNodes:d,isHoverMenu:p,renderLabelFn:f,lazyLoad:h,expandNode:v,handleCheckChange:m})),Sn([o,()=>e.options],(()=>{const{options:t}=e,n=o.value;a=!1,r.value=new Dx(t,n),u.value=[r.value.getNodes()],n.lazy&&Iy(e.options)?(l=!1,h(null,(()=>{l=!0,_(!1,!0)}))):_(!1,!0)}),{deep:!0,immediate:!0}),Sn((()=>e.modelValue),(()=>{a=!1,_()})),Sn(s,(n=>{Sv(n,e.modelValue)||(t(Nb,n),t("change",n))})),gn((()=>i.value=[])),mn((()=>!Iy(e.modelValue)&&_())),{menuList:i,menus:u,checkedNodes:d,handleKeyDown:e=>{const n=e.target,{code:l}=e;switch(l){case vb.up:case vb.down:const e=l===vb.up?-1:1;Fx(((e,t)=>{const{parentNode:n}=e;if(!n)return null;const l=n.querySelectorAll('.el-cascader-node[tabindex="-1"]');return l[Array.prototype.indexOf.call(l,e)+t]||null})(n,e));break;case vb.left:const a=i.value[Ix(n)-1],o=null==a?void 0:a.$el.querySelector('.el-cascader-node[aria-expanded="true"]');Fx(o);break;case vb.right:const r=i.value[Ix(n)+1],s=null==r?void 0:r.$el.querySelector('.el-cascader-node[tabindex="-1"]');Fx(s);break;case vb.enter:(e=>{if(!e)return;const t=e.querySelector("input");t?t.click():Px(e)&&e.click()})(n);break;case vb.esc:case vb.tab:t("close")}},handleCheckChange:m,getFlattedNodes:g,getCheckedNodes:y,clearCheckedNodes:()=>{d.value.forEach((e=>e.doCheck(!1))),b()},calculateCheckedValue:b,scrollToExpandingNode:x}}});Vx.render=function(e,t,n,l,a,o){const r=dl("el-cascader-menu");return wl(),Sl("div",{class:["el-cascader-panel",e.border&&"is-bordered"],onKeydown:t[1]||(t[1]=(...t)=>e.handleKeyDown&&e.handleKeyDown(...t))},[(wl(!0),Sl(gl,null,pa(e.menus,((t,n)=>(wl(),Sl(r,{key:n,ref:t=>e.menuList[n]=t,index:n,nodes:t},null,8,["index","nodes"])))),128))],34)},Vx.__file="packages/cascader-panel/src/index.vue",Vx.install=e=>{e.component(Vx.name,Vx)};const Bx=Vx;var $x=Qn({name:"ElTag",props:{closable:Boolean,type:{type:String,default:""},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:""},size:{type:String,validator:Ib},effect:{type:String,default:"light",validator:e=>-1!==["dark","light","plain"].indexOf(e)}},emits:["close","click"],setup(e,t){const n=Ay(),l=ca((()=>e.size||n.size)),a=ca((()=>{const{type:t,hit:n,effect:a}=e;return["el-tag",t?"el-tag--"+t:"",l.value?"el-tag--"+l.value:"",a?"el-tag--"+a:"",n&&"is-hit"]}));return{tagSize:l,classes:a,handleClose:e=>{e.stopPropagation(),t.emit("close",e)},handleClick:e=>{t.emit("click",e)}}}});$x.render=function(e,t,n,l,a,o){return e.disableTransitions?(wl(),Sl(Ia,{key:1,name:"el-zoom-in-center"},{default:Zt((()=>[Ll("span",{class:e.classes,style:{backgroundColor:e.color},onClick:t[4]||(t[4]=(...t)=>e.handleClick&&e.handleClick(...t))},[Ht(e.$slots,"default"),e.closable?(wl(),Sl("i",{key:0,class:"el-tag__close el-icon-close",onClick:t[3]||(t[3]=(...t)=>e.handleClose&&e.handleClose(...t))})):Pl("v-if",!0)],6)])),_:3})):(wl(),Sl("span",{key:0,class:e.classes,style:{backgroundColor:e.color},onClick:t[2]||(t[2]=(...t)=>e.handleClick&&e.handleClick(...t))},[Ht(e.$slots,"default"),e.closable?(wl(),Sl("i",{key:0,class:"el-tag__close el-icon-close",onClick:t[1]||(t[1]=(...t)=>e.handleClose&&e.handleClose(...t))})):Pl("v-if",!0)],6))},$x.__file="packages/tag/src/index.vue",$x.install=e=>{e.component($x.name,$x)};const zx=$x,jx={medium:36,small:32,mini:28},Rx={modifiers:[{name:"arrowPosition",enabled:!0,phase:"main",fn:({state:e})=>{const{modifiersData:t,elements:n}=e,{reference:l,arrow:a}=n;t.arrow.x=t.arrow.x-(l.clientWidth-a.clientWidth)/2+35},requires:["arrow"]}]};var Hx=Qn({name:"ElCascader",components:{ElCascaderPanel:Bx,ElInput:Qb,ElPopper:M_,ElScrollbar:a_,ElTag:zx},directives:{Clickoutside:Sb},props:Object.assign(Object.assign({},Nx),{size:{type:String,validator:Ib},placeholder:{type:String,default:()=>ak("el.cascader.placeholder")},disabled:Boolean,clearable:Boolean,filterable:Boolean,filterMethod:{type:Function,default:(e,t)=>e.text.includes(t)},separator:{type:String,default:" / "},showAllLevels:{type:Boolean,default:!0},collapseTags:Boolean,debounce:{type:Number,default:300},beforeFilter:{type:Function,default:()=>!0},popperClass:{type:String,default:""}}),emits:[Nb,"change","focus","blur","visible-change","expand-change","remove-tag"],setup(e,{emit:t}){let n=0,l=0;const a=Ay(),o=zl("elForm",{}),r=zl("elFormItem",{}),i=lt(null),s=lt(null),u=lt(null),c=lt(null),d=lt(null),p=lt(!1),f=lt(!1),h=lt(!1),v=lt(""),m=lt(""),g=lt([]),y=lt([]),b=ca((()=>e.disabled||o.disabled)),_=ca((()=>e.size||r.size||a.size)),k=ca((()=>["small","mini"].includes(_.value)?"mini":"small")),x=ca((()=>!!e.props.multiple)),w=ca((()=>!e.filterable||x.value)),C=ca((()=>x.value?m.value:v.value)),S=ca((()=>{var e;return(null===(e=c.value)||void 0===e?void 0:e.checkedNodes)||[]})),E=ca((()=>!(!e.clearable||b.value||h.value||!f.value||!S.value.length))),M=ca((()=>{const{showAllLevels:t,separator:n}=e,l=S.value;return l.length?x.value?" ":l[0].calcText(t,n):""})),O=ca({get:()=>e.modelValue,set(e){var n;t(Nb,e),t("change",e),null===(n=r.formItemMitt)||void 0===n||n.emit("el.form.change",[e])}}),T=ca((()=>{var e;return null===(e=i.value)||void 0===e?void 0:e.popperRef})),D=n=>{if(!b.value&&(n=null!=n?n:!p.value)!==p.value){if(p.value=n,s.value.input.setAttribute("aria-expanded",n),n)L(),Dt(c.value.scrollToExpandingNode);else if(e.filterable){const{value:e}=M;v.value=e,m.value=e}t("visible-change",n)}},L=()=>{Dt(i.value.update)},N=()=>{h.value=!1},A=t=>{const{showAllLevels:n,separator:l}=e;return{node:t,key:t.uid,text:t.calcText(n,l),hitState:!1,closable:!b.value&&!t.isDisabled}},P=e=>{const{node:n}=e;n.doCheck(!1),c.value.calculateCheckedValue(),t("remove-tag",n.valueByOption)},I=()=>{const{filterMethod:t,showAllLevels:n,separator:l}=e,a=c.value.getFlattedNodes(!e.props.checkStrictly).filter((e=>!e.isDisabled&&(e.calcText(n,l),t(e,C.value))));x.value&&g.value.forEach((e=>{e.hitState=!1})),h.value=!0,y.value=a,L()},F=()=>{var e;let t=null;t=h.value&&d.value?d.value.$el.querySelector(".el-cascader__suggestion-item"):null===(e=c.value)||void 0===e?void 0:e.$el.querySelector('.el-cascader-node[tabindex="-1"]'),t&&(t.focus(),!h.value&&t.click())},V=()=>{var e;const t=s.value.input,l=u.value,a=null===(e=d.value)||void 0===e?void 0:e.$el;if(!oy&&t&&(a&&(a.querySelector(".el-cascader__suggestion-list").style.minWidth=t.offsetWidth+"px"),l)){const{offsetHeight:e}=l,a=Math.max(e+6,n)+"px";t.style.height=a,L()}},B=uu((()=>{const{value:t}=C;if(!t)return;const n=e.beforeFilter(t);hy(n)?n.then(I).catch((()=>{})):!1!==n?I():N()}),e.debounce);return Sn(h,L),Sn([S,b],(()=>{if(!x.value)return;const t=S.value,n=[];if(t.length){const[l,...a]=t,o=a.length;n.push(A(l)),o&&(e.collapseTags?n.push({key:-1,text:"+ "+o,closable:!1}):a.forEach((e=>n.push(A(e)))))}g.value=n})),Sn(g,(()=>Dt(V))),Sn(M,(e=>v.value=e),{immediate:!0}),mn((()=>{const e=s.value.$el;n=(null==e?void 0:e.offsetHeight)||jx[_.value]||40,Zy(e,V)})),bn((()=>{Jy(s.value.$el,V)})),{popperOptions:Rx,popper:i,popperPaneRef:T,input:s,tagWrapper:u,panel:c,suggestionPanel:d,popperVisible:p,inputHover:f,filtering:h,presentText:M,checkedValue:O,inputValue:v,searchInputValue:m,presentTags:g,suggestions:y,isDisabled:b,realSize:_,tagSize:k,multiple:x,readonly:w,clearBtnVisible:E,t:ak,togglePopperVisible:D,hideSuggestionPanel:N,deleteTag:P,focusFirstNode:F,getCheckedNodes:e=>c.value.getCheckedNodes(e),handleExpandChange:e=>{L(),t("expand-change",e)},handleKeyDown:e=>{switch(e.code){case vb.enter:D();break;case vb.down:D(!0),Dt(F),event.preventDefault();break;case vb.esc:case vb.tab:D(!1)}},handleClear:()=>{c.value.clearCheckedNodes(),D(!1)},handleSuggestionClick:e=>{const{checked:t}=e;x.value?c.value.handleCheckChange(e,!t,!1):(!t&&c.value.handleCheckChange(e,!0,!1),D(!1))},handleDelete:()=>{const e=g.value,t=e[e.length-1];l=m.value?0:l+1,t&&l&&(t.hitState?P(t):t.hitState=!0)},handleInput:(e,t)=>{!p.value&&D(!0),(null==t?void 0:t.isComposing)||(e?B():N())}}}});const Wx={key:0,ref:"tagWrapper",class:"el-cascader__tags"},Yx={key:0,class:"el-icon-check"},qx={class:"el-cascader__empty-text"};Hx.render=function(e,t,n,l,a,o){const r=dl("el-input"),i=dl("el-tag"),s=dl("el-cascader-panel"),u=dl("el-scrollbar"),d=dl("el-popper"),p=hl("clickoutside");return wl(),Sl(d,{ref:"popper",visible:e.popperVisible,"onUpdate:visible":t[16]||(t[16]=t=>e.popperVisible=t),"manual-mode":"",placement:"bottom-start","popper-class":"el-cascader__dropdown "+e.popperClass,"popper-options":e.popperOptions,"stop-popper-mouse-event":!1,transition:"el-zoom-in-top","gpu-acceleration":!1,effect:"light",pure:"",onAfterLeave:e.hideSuggestionPanel},{trigger:Zt((()=>[Un(Ll("div",{class:["el-cascader",e.realSize&&"el-cascader--"+e.realSize,{"is-disabled":e.isDisabled}],onClick:t[10]||(t[10]=()=>e.togglePopperVisible(!e.readonly||void 0)),onKeydown:t[11]||(t[11]=(...t)=>e.handleKeyDown&&e.handleKeyDown(...t)),onMouseenter:t[12]||(t[12]=t=>e.inputHover=!0),onMouseleave:t[13]||(t[13]=t=>e.inputHover=!1)},[Ll(r,{ref:"input",modelValue:e.inputValue,"onUpdate:modelValue":t[3]||(t[3]=t=>e.inputValue=t),modelModifiers:{trim:!0},placeholder:e.placeholder,readonly:e.readonly,disabled:e.isDisabled,"validate-event":!1,size:e.realSize,class:{"is-focus":e.popperVisible},onFocus:t[4]||(t[4]=t=>e.$emit("focus",t)),onBlur:t[5]||(t[5]=t=>e.$emit("blur",t)),onInput:e.handleInput},{suffix:Zt((()=>[e.clearBtnVisible?(wl(),Sl("i",{key:"clear",class:"el-input__icon el-icon-circle-close",onClick:t[1]||(t[1]=fo(((...t)=>e.handleClear&&e.handleClear(...t)),["stop"]))})):(wl(),Sl("i",{key:"arrow-down",class:["el-input__icon","el-icon-arrow-down",e.popperVisible&&"is-reverse"],onClick:t[2]||(t[2]=fo((t=>e.togglePopperVisible()),["stop"]))},null,2))])),_:1},8,["modelValue","placeholder","readonly","disabled","size","class","onInput"]),e.multiple?(wl(),Sl("div",Wx,[(wl(!0),Sl(gl,null,pa(e.presentTags,(t=>(wl(),Sl(i,{key:t.key,type:"info",size:e.tagSize,hit:t.hitState,closable:t.closable,"disable-transitions":"",onClose:n=>e.deleteTag(t)},{default:Zt((()=>[Ll("span",null,c(t.text),1)])),_:2},1032,["size","hit","closable","onClose"])))),128)),e.filterable&&!e.isDisabled?Un((wl(),Sl("input",{key:0,"onUpdate:modelValue":t[6]||(t[6]=t=>e.searchInputValue=t),type:"text",class:"el-cascader__search-input",placeholder:e.presentText?"":e.placeholder,onInput:t[7]||(t[7]=t=>e.handleInput(e.searchInputValue,t)),onClick:t[8]||(t[8]=fo((t=>e.togglePopperVisible(!0)),["stop"])),onKeydown:t[9]||(t[9]=vo(((...t)=>e.handleDelete&&e.handleDelete(...t)),["delete"]))},null,40,["placeholder"])),[[ao,e.searchInputValue,void 0,{trim:!0}]]):Pl("v-if",!0)],512)):Pl("v-if",!0)],34),[[p,()=>e.togglePopperVisible(!1),e.popperPaneRef]])])),default:Zt((()=>[Un(Ll(s,{ref:"panel",modelValue:e.checkedValue,"onUpdate:modelValue":t[14]||(t[14]=t=>e.checkedValue=t),options:e.options,props:e.props,border:!1,"render-label":e.$slots.default,onExpandChange:e.handleExpandChange,onClose:t[15]||(t[15]=t=>e.togglePopperVisible(!1))},null,8,["modelValue","options","props","render-label","onExpandChange"]),[[mo,!e.filtering]]),e.filterable?Un((wl(),Sl(u,{key:0,ref:"suggestionPanel",tag:"ul",class:"el-cascader__suggestion-panel","view-class":"el-cascader__suggestion-list"},{default:Zt((()=>[e.suggestions.length?(wl(!0),Sl(gl,{key:0},pa(e.suggestions,(t=>(wl(),Sl("li",{key:t.uid,class:["el-cascader__suggestion-item",t.checked&&"is-checked"],tabindex:-1,onClick:n=>e.handleSuggestionClick(t)},[Ll("span",null,c(t.text),1),t.checked?(wl(),Sl("i",Yx)):Pl("v-if",!0)],10,["onClick"])))),128)):Ht(e.$slots,"empty",{key:1},(()=>[Ll("li",qx,c(e.t("el.cascader.noMatch")),1)]))])),_:3},512)),[[mo,e.filtering]]):Pl("v-if",!0)])),_:1},8,["visible","popper-class","popper-options","onAfterLeave"])},Hx.__file="packages/cascader/src/index.vue",Hx.install=e=>{e.component(Hx.name,Hx)};const Kx=Hx;var Ux=Qn({name:"ElCheckboxButton",props:{modelValue:{type:[Boolean,Number,String],default:()=>{}},label:{type:[Boolean,Number,String]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0}},emits:[Nb,"change"],setup(e){const{focus:t,isChecked:n,isDisabled:l,size:a,model:o,handleChange:r}=ix(e),{checkboxGroup:i}=rx();return{focus:t,isChecked:n,isDisabled:l,model:o,handleChange:r,activeStyle:ca((()=>{var e,t,n,l;const a=null!==(t=null===(e=null==i?void 0:i.fill)||void 0===e?void 0:e.value)&&void 0!==t?t:"";return{backgroundColor:a,borderColor:a,color:null!==(l=null===(n=null==i?void 0:i.textColor)||void 0===n?void 0:n.value)&&void 0!==l?l:"",boxShadow:a?"-1px 0 0 0 "+a:null}})),size:a}}});Ux.render=function(e,t,n,l,a,o){return wl(),Sl("label",{class:["el-checkbox-button",[e.size?"el-checkbox-button--"+e.size:"",{"is-disabled":e.isDisabled},{"is-checked":e.isChecked},{"is-focus":e.focus}]],role:"checkbox","aria-checked":e.isChecked,"aria-disabled":e.isDisabled},[e.trueLabel||e.falseLabel?Un((wl(),Sl("input",{key:0,"onUpdate:modelValue":t[1]||(t[1]=t=>e.model=t),checked:e.isChecked,class:"el-checkbox-button__original",type:"checkbox",name:e.name,disabled:e.isDisabled,"true-value":e.trueLabel,"false-value":e.falseLabel,onChange:t[2]||(t[2]=(...t)=>e.handleChange&&e.handleChange(...t)),onFocus:t[3]||(t[3]=t=>e.focus=!0),onBlur:t[4]||(t[4]=t=>e.focus=!1)},null,40,["checked","name","disabled","true-value","false-value"])),[[oo,e.model]]):Un((wl(),Sl("input",{key:1,"onUpdate:modelValue":t[5]||(t[5]=t=>e.model=t),class:"el-checkbox-button__original",type:"checkbox",name:e.name,disabled:e.isDisabled,value:e.label,onChange:t[6]||(t[6]=(...t)=>e.handleChange&&e.handleChange(...t)),onFocus:t[7]||(t[7]=t=>e.focus=!0),onBlur:t[8]||(t[8]=t=>e.focus=!1)},null,40,["name","disabled","value"])),[[oo,e.model]]),e.$slots.default||e.label?(wl(),Sl("span",{key:2,class:"el-checkbox-button__inner",style:e.isChecked?e.activeStyle:null},[Ht(e.$slots,"default",{},(()=>[Al(c(e.label),1)]))],4)):Pl("v-if",!0)],10,["aria-checked","aria-disabled"])},Ux.__file="packages/checkbox/src/checkbox-button.vue",Ux.install=e=>{e.component(Ux.name,Ux)};const Gx=Ux;var Xx=Qn({name:"ElCheckboxGroup",props:{modelValue:{type:[Object,Boolean,Array],default:()=>{}},disabled:Boolean,min:{type:Number,default:void 0},max:{type:Number,default:void 0},size:{type:String,validator:Ib},fill:{type:String,default:void 0},textColor:{type:String,default:void 0}},emits:[Nb,"change"],setup(e,t){const{elFormItem:n,elFormItemSize:l,ELEMENT:a}=rx(),o=ca((()=>e.size||l.value||a.size)),r=e=>{t.emit(Nb,e),Dt((()=>{t.emit("change",e)}))},i=ca({get:()=>e.modelValue,set(e){r(e)}});$l("CheckboxGroup",Object.assign(Object.assign({name:"ElCheckboxGroup",modelValue:i},ct(e)),{checkboxGroupSize:o,changeEvent:r})),Sn((()=>e.modelValue),(e=>{var t;null===(t=n.formItemMitt)||void 0===t||t.emit("el.form.change",[e])}))}});const Zx={class:"el-checkbox-group",role:"group","aria-label":"checkbox-group"};Xx.render=function(e,t,n,l,a,o){return wl(),Sl("div",Zx,[Ht(e.$slots,"default")])},Xx.__file="packages/checkbox/src/checkbox-group.vue",Xx.install=e=>{e.component(Xx.name,Xx)};const Jx=Xx,Qx=Qn({name:"ElCol",props:{tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:[Number,Object],default:()=>({})},sm:{type:[Number,Object],default:()=>({})},md:{type:[Number,Object],default:()=>({})},lg:{type:[Number,Object],default:()=>({})},xl:{type:[Number,Object],default:()=>({})}},setup(e,{slots:t}){const{gutter:n}=zl("ElRow",{gutter:{value:0}}),l=ca((()=>n.value?{paddingLeft:n.value/2+"px",paddingRight:n.value/2+"px"}:{})),a=ca((()=>{const t=[];return["span","offset","pull","push"].forEach((n=>{const l=e[n];"number"==typeof l&&l>0&&t.push("span"!==n?`el-col-${n}-${e[n]}`:"el-col-"+e[n])})),["xs","sm","md","lg","xl"].forEach((n=>{if("number"==typeof e[n])t.push(`el-col-${n}-${e[n]}`);else if("object"==typeof e[n]){const l=e[n];Object.keys(l).forEach((e=>{t.push("span"!==e?`el-col-${n}-${e}-${l[e]}`:`el-col-${n}-${l[e]}`)}))}})),n.value&&t.push("is-guttered"),t}));return()=>{var n;return da(e.tag,{class:["el-col",a.value],style:l.value},null===(n=t.default)||void 0===n?void 0:n.call(t))}}});Qx.install=e=>{e.component(Qx.name,Qx)};var ew=Qn({name:"ElCollapse",props:{accordion:Boolean,modelValue:{type:[Array,String,Number],default:()=>[]}},emits:[Nb,"change"],setup(e,{emit:t}){const n=lt([].concat(e.modelValue)),l=ku(),a=l=>{n.value=[].concat(l);const a=e.accordion?n.value[0]:n.value;t(Nb,a),t("change",a)},o=t=>{if(e.accordion)a(!n.value[0]&&0!==n.value[0]||n.value[0]!==t?t:"");else{let e=n.value.slice(0);const l=e.indexOf(t);l>-1?e.splice(l,1):e.push(t),a(e)}};return Sn((()=>e.modelValue),(()=>{n.value=[].concat(e.modelValue)})),l.on("item-click",o),_n((()=>{l.all.clear()})),$l("collapse",{activeNames:n,collapseMitt:l}),{activeNames:n,setActiveNames:a,handleItemClick:o}}});const tw={class:"el-collapse",role:"tablist","aria-multiselectable":"true"};ew.render=function(e,t,n,l,a,o){return wl(),Sl("div",tw,[Ht(e.$slots,"default")])},ew.__file="packages/collapse/src/collapse.vue",ew.install=e=>{e.component(ew.name,ew)};const nw=ew;var lw=Qn({name:"ElCollapseTransition",setup:()=>({on:{beforeEnter(e){Hy(e,"collapse-transition"),e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height="0",e.style.paddingTop=0,e.style.paddingBottom=0},enter(e){e.dataset.oldOverflow=e.style.overflow,0!==e.scrollHeight?(e.style.height=e.scrollHeight+"px",e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom):(e.style.height="",e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom),e.style.overflow="hidden"},afterEnter(e){Wy(e,"collapse-transition"),e.style.height="",e.style.overflow=e.dataset.oldOverflow},beforeLeave(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height=e.scrollHeight+"px",e.style.overflow="hidden"},leave(e){0!==e.scrollHeight&&(Hy(e,"collapse-transition"),e.style.transitionProperty="height",e.style.height=0,e.style.paddingTop=0,e.style.paddingBottom=0)},afterLeave(e){Wy(e,"collapse-transition"),e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom}}})});lw.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,fa(e.on),{default:Zt((()=>[Ht(e.$slots,"default")])),_:3},16)},lw.__file="packages/transition/collapse-transition/index.vue",lw.install=e=>{e.component(lw.name,lw)};const aw=lw;var ow=Qn({name:"ElCollapseItem",components:{ElCollapseTransition:aw},props:{title:{type:String,default:""},name:{type:[String,Number],default:()=>Ey()},disabled:Boolean},setup(e){const t=zl("collapse"),n=null==t?void 0:t.collapseMitt,l=lt({height:"auto",display:"block"}),a=lt(0),o=lt(!1),r=lt(!1),i=lt(Ey());return{isActive:ca((()=>(null==t?void 0:t.activeNames.value.indexOf(e.name))>-1)),contentWrapStyle:l,contentHeight:a,focusing:o,isClick:r,id:i,handleFocus:()=>{setTimeout((()=>{r.value?r.value=!1:o.value=!0}),50)},handleHeaderClick:()=>{e.disabled||(null==n||n.emit("item-click",e.name),o.value=!1,r.value=!0)},handleEnterClick:()=>{null==n||n.emit("item-click",e.name)},collapse:t}}});const rw={class:"el-collapse-item__content"};ow.render=function(e,t,n,l,a,o){const r=dl("el-collapse-transition");return wl(),Sl("div",{class:["el-collapse-item",{"is-active":e.isActive,"is-disabled":e.disabled}]},[Ll("div",{role:"tab","aria-expanded":e.isActive,"aria-controls":"el-collapse-content-"+e.id,"aria-describedby":"el-collapse-content-"+e.id},[Ll("div",{id:"el-collapse-head-"+e.id,class:["el-collapse-item__header",{focusing:e.focusing,"is-active":e.isActive}],role:"button",tabindex:e.disabled?-1:0,onClick:t[1]||(t[1]=(...t)=>e.handleHeaderClick&&e.handleHeaderClick(...t)),onKeyup:t[2]||(t[2]=vo(fo(((...t)=>e.handleEnterClick&&e.handleEnterClick(...t)),["stop"]),["space","enter"])),onFocus:t[3]||(t[3]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onBlur:t[4]||(t[4]=t=>e.focusing=!1)},[Ht(e.$slots,"title",{},(()=>[Al(c(e.title),1)])),Ll("i",{class:["el-collapse-item__arrow el-icon-arrow-right",{"is-active":e.isActive}]},null,2)],42,["id","tabindex"])],8,["aria-expanded","aria-controls","aria-describedby"]),Ll(r,null,{default:Zt((()=>[Un(Ll("div",{id:"el-collapse-content-"+e.id,class:"el-collapse-item__wrap",role:"tabpanel","aria-hidden":!e.isActive,"aria-labelledby":"el-collapse-head-"+e.id},[Ll("div",rw,[Ht(e.$slots,"default")])],8,["id","aria-hidden","aria-labelledby"]),[[mo,e.isActive]])])),_:3})],2)},ow.__file="packages/collapse/src/collapse-item.vue",ow.install=e=>{e.component(ow.name,ow)};const iw=ow,sw=function(e,t,n){return[e,t*n/((e=(2-t)*n)<1?e:2-e)||0,e/2]},uw=function(e,t){var n;"string"==typeof(n=e)&&-1!==n.indexOf(".")&&1===parseFloat(n)&&(e="100%");const l="string"==typeof(a=e)&&-1!==a.indexOf("%");var a;return e=Math.min(t,Math.max(0,parseFloat(e+""))),l&&(e=parseInt(e*t+"",10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)},cw={10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"},dw={A:10,B:11,C:12,D:13,E:14,F:15},pw=function(e){return 2===e.length?16*(dw[e[0].toUpperCase()]||+e[0])+(dw[e[1].toUpperCase()]||+e[1]):dw[e[1].toUpperCase()]||+e[1]},fw=function(e,t,n){e=uw(e,255),t=uw(t,255),n=uw(n,255);const l=Math.max(e,t,n),a=Math.min(e,t,n);let o;const r=l,i=l-a,s=0===l?0:i/l;if(l===a)o=0;else{switch(l){case e:o=(t-n)/i+(t<n?6:0);break;case t:o=(n-e)/i+2;break;case n:o=(e-t)/i+4}o/=6}return{h:360*o,s:100*s,v:100*r}},hw=function(e,t,n){e=6*uw(e,360),t=uw(t,100),n=uw(n,100);const l=Math.floor(e),a=e-l,o=n*(1-t),r=n*(1-a*t),i=n*(1-(1-a)*t),s=l%6,u=[n,r,o,o,i,n][s],c=[i,n,n,r,o,o][s],d=[o,o,i,n,n,r][s];return{r:Math.round(255*u),g:Math.round(255*c),b:Math.round(255*d)}};class vw{constructor(e){this._hue=0,this._saturation=100,this._value=100,this._alpha=100,this.enableAlpha=!1,this.format="hex",this.value="",e=e||{};for(const t in e)uy(e,t)&&(this[t]=e[t]);this.doOnChange()}set(e,t){if(1!==arguments.length||"object"!=typeof e)this["_"+e]=t,this.doOnChange();else for(const n in e)uy(e,n)&&this.set(n,e[n])}get(e){return this["_"+e]}toRgb(){return hw(this._hue,this._saturation,this._value)}fromString(e){if(!e)return this._hue=0,this._saturation=100,this._value=100,void this.doOnChange();const t=(e,t,n)=>{this._hue=Math.max(0,Math.min(360,e)),this._saturation=Math.max(0,Math.min(100,t)),this._value=Math.max(0,Math.min(100,n)),this.doOnChange()};if(-1!==e.indexOf("hsl")){const n=e.replace(/hsla|hsl|\(|\)/gm,"").split(/\s|,/g).filter((e=>""!==e)).map(((e,t)=>t>2?parseFloat(e):parseInt(e,10)));if(4===n.length?this._alpha=Math.floor(100*parseFloat(n[3])):3===n.length&&(this._alpha=100),n.length>=3){const{h:e,s:l,v:a}=function(e,t,n){n/=100;let l=t/=100;const a=Math.max(n,.01);return t*=(n*=2)<=1?n:2-n,l*=a<=1?a:2-a,{h:e,s:100*(0===n?2*l/(a+l):2*t/(n+t)),v:(n+t)/2*100}}(n[0],n[1],n[2]);t(e,l,a)}}else if(-1!==e.indexOf("hsv")){const n=e.replace(/hsva|hsv|\(|\)/gm,"").split(/\s|,/g).filter((e=>""!==e)).map(((e,t)=>t>2?parseFloat(e):parseInt(e,10)));4===n.length?this._alpha=Math.floor(100*parseFloat(n[3])):3===n.length&&(this._alpha=100),n.length>=3&&t(n[0],n[1],n[2])}else if(-1!==e.indexOf("rgb")){const n=e.replace(/rgba|rgb|\(|\)/gm,"").split(/\s|,/g).filter((e=>""!==e)).map(((e,t)=>t>2?parseFloat(e):parseInt(e,10)));if(4===n.length?this._alpha=Math.floor(100*parseFloat(n[3])):3===n.length&&(this._alpha=100),n.length>=3){const{h:e,s:l,v:a}=fw(n[0],n[1],n[2]);t(e,l,a)}}else if(-1!==e.indexOf("#")){const n=e.replace("#","").trim();if(!/^[0-9a-fA-F]{3}$|^[0-9a-fA-F]{6}$|^[0-9a-fA-F]{8}$/.test(n))return;let l,a,o;3===n.length?(l=pw(n[0]+n[0]),a=pw(n[1]+n[1]),o=pw(n[2]+n[2])):6!==n.length&&8!==n.length||(l=pw(n.substring(0,2)),a=pw(n.substring(2,4)),o=pw(n.substring(4,6))),8===n.length?this._alpha=Math.floor(pw(n.substring(6))/255*100):3!==n.length&&6!==n.length||(this._alpha=100);const{h:r,s:i,v:s}=fw(l,a,o);t(r,i,s)}}compare(e){return Math.abs(e._hue-this._hue)<2&&Math.abs(e._saturation-this._saturation)<1&&Math.abs(e._value-this._value)<1&&Math.abs(e._alpha-this._alpha)<1}doOnChange(){const{_hue:e,_saturation:t,_value:n,_alpha:l,format:a}=this;if(this.enableAlpha)switch(a){case"hsl":{const a=sw(e,t/100,n/100);this.value=`hsla(${e}, ${Math.round(100*a[1])}%, ${Math.round(100*a[2])}%, ${l/100})`;break}case"hsv":this.value=`hsva(${e}, ${Math.round(t)}%, ${Math.round(n)}%, ${l/100})`;break;default:{const{r:a,g:o,b:r}=hw(e,t,n);this.value=`rgba(${a}, ${o}, ${r}, ${l/100})`}}else switch(a){case"hsl":{const l=sw(e,t/100,n/100);this.value=`hsl(${e}, ${Math.round(100*l[1])}%, ${Math.round(100*l[2])}%)`;break}case"hsv":this.value=`hsv(${e}, ${Math.round(t)}%, ${Math.round(n)}%)`;break;case"rgb":{const{r:l,g:a,b:o}=hw(e,t,n);this.value=`rgb(${l}, ${a}, ${o})`;break}default:this.value=function({r:e,g:t,b:n}){const l=function(e){e=Math.min(Math.round(e),255);const t=Math.floor(e/16),n=e%16;return""+(cw[t]||t)+(cw[n]||n)};return isNaN(e)||isNaN(t)||isNaN(n)?"":"#"+l(e)+l(t)+l(n)}(hw(e,t,n))}}}let mw=!1;function gw(e,t){if(oy)return;const n=function(e){var n;null===(n=t.drag)||void 0===n||n.call(t,e)},l=function(e){var a;jy(document,"mousemove",n),jy(document,"mouseup",l),document.onselectstart=null,document.ondragstart=null,mw=!1,null===(a=t.end)||void 0===a||a.call(t,e)};zy(e,"mousedown",(function(e){var a;mw||(document.onselectstart=()=>!1,document.ondragstart=()=>!1,zy(document,"mousemove",n),zy(document,"mouseup",l),mw=!0,null===(a=t.start)||void 0===a||a.call(t,e))}))}var yw=Qn({name:"ElSlPanel",props:{color:{type:Object,required:!0}},setup(e){const t=na(),n=lt(0),l=lt(0),a=lt("hsl(0, 100%, 50%)"),o=ca((()=>({hue:e.color.get("hue"),value:e.color.get("value")})));function r(){const o=e.color.get("saturation"),r=e.color.get("value"),i=t.vnode.el;let{clientWidth:s,clientHeight:u}=i;l.value=o*s/100,n.value=(100-r)*u/100,a.value="hsl("+e.color.get("hue")+", 100%, 50%)"}function i(a){const o=t.vnode.el.getBoundingClientRect();let r=a.clientX-o.left,i=a.clientY-o.top;r=Math.max(0,r),r=Math.min(r,o.width),i=Math.max(0,i),i=Math.min(i,o.height),l.value=r,n.value=i,e.color.set({saturation:r/o.width*100,value:100-i/o.height*100})}return Sn((()=>o.value),(()=>{r()})),mn((()=>{gw(t.vnode.el,{drag:e=>{i(e)},end:e=>{i(e)}}),r()})),{cursorTop:n,cursorLeft:l,background:a,colorValue:o,handleDrag:i,update:r}}});const bw=Ll("div",{class:"el-color-svpanel__white"},null,-1),_w=Ll("div",{class:"el-color-svpanel__black"},null,-1),kw=Ll("div",null,null,-1);yw.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:"el-color-svpanel",style:{backgroundColor:e.background}},[bw,_w,Ll("div",{class:"el-color-svpanel__cursor",style:{top:e.cursorTop+"px",left:e.cursorLeft+"px"}},[kw],4)],4)},yw.__file="packages/color-picker/src/components/sv-panel.vue";var xw=Qn({name:"ElColorHueSlider",props:{color:{type:Object,required:!0},vertical:Boolean},setup(e){const t=na(),n=lt(null),l=lt(null),a=lt(0),o=lt(0),r=ca((()=>e.color.get("hue")));function i(l){const a=t.vnode.el.getBoundingClientRect();let o;if(e.vertical){let e=l.clientY-a.top;e=Math.min(e,a.height-n.value.offsetHeight/2),e=Math.max(n.value.offsetHeight/2,e),o=Math.round((e-n.value.offsetHeight/2)/(a.height-n.value.offsetHeight)*360)}else{let e=l.clientX-a.left;e=Math.min(e,a.width-n.value.offsetWidth/2),e=Math.max(n.value.offsetWidth/2,e),o=Math.round((e-n.value.offsetWidth/2)/(a.width-n.value.offsetWidth)*360)}e.color.set("hue",o)}function s(){a.value=function(){const l=t.vnode.el;if(e.vertical)return 0;const a=e.color.get("hue");return l?Math.round(a*(l.offsetWidth-n.value.offsetWidth/2)/360):0}(),o.value=function(){const l=t.vnode.el;if(!e.vertical)return 0;const a=e.color.get("hue");return l?Math.round(a*(l.offsetHeight-n.value.offsetHeight/2)/360):0}()}return Sn((()=>r.value),(()=>{s()})),mn((()=>{const e={drag:e=>{i(e)},end:e=>{i(e)}};gw(l.value,e),gw(n.value,e),s()})),{bar:l,thumb:n,thumbLeft:a,thumbTop:o,hueValue:r,handleClick:function(e){e.target!==n.value&&i(e)},update:s}}});xw.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-color-hue-slider",{"is-vertical":e.vertical}]},[Ll("div",{ref:"bar",class:"el-color-hue-slider__bar",onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t))},null,512),Ll("div",{ref:"thumb",class:"el-color-hue-slider__thumb",style:{left:e.thumbLeft+"px",top:e.thumbTop+"px"}},null,4)],2)},xw.__file="packages/color-picker/src/components/hue-slider.vue";var ww=Qn({name:"ElColorAlphaSlider",props:{color:{type:Object,required:!0},vertical:{type:Boolean,default:!1}},setup(e){const t=na(),n=lt(null),l=lt(null),a=lt(0),o=lt(0),r=lt(null);function i(l){const a=t.vnode.el.getBoundingClientRect();if(e.vertical){let t=l.clientY-a.top;t=Math.max(n.value.offsetHeight/2,t),t=Math.min(t,a.height-n.value.offsetHeight/2),e.color.set("alpha",Math.round((t-n.value.offsetHeight/2)/(a.height-n.value.offsetHeight)*100))}else{let t=l.clientX-a.left;t=Math.max(n.value.offsetWidth/2,t),t=Math.min(t,a.width-n.value.offsetWidth/2),e.color.set("alpha",Math.round((t-n.value.offsetWidth/2)/(a.width-n.value.offsetWidth)*100))}}function s(){a.value=function(){if(e.vertical)return 0;const l=t.vnode.el,a=e.color.get("alpha");return l?Math.round(a*(l.offsetWidth-n.value.offsetWidth/2)/100):0}(),o.value=function(){const l=t.vnode.el;if(!e.vertical)return 0;const a=e.color.get("alpha");return l?Math.round(a*(l.offsetHeight-n.value.offsetHeight/2)/100):0}(),r.value=function(){if(e.color&&e.color.value){const{r:t,g:n,b:l}=e.color.toRgb();return`linear-gradient(to right, rgba(${t}, ${n}, ${l}, 0) 0%, rgba(${t}, ${n}, ${l}, 1) 100%)`}return null}()}return Sn((()=>e.color.get("alpha")),(()=>{s()})),Sn((()=>e.color.value),(()=>{s()})),mn((()=>{const e={drag:e=>{i(e)},end:e=>{i(e)}};gw(l.value,e),gw(n.value,e),s()})),{thumb:n,bar:l,thumbLeft:a,thumbTop:o,background:r,handleClick:function(e){e.target!==n.value&&i(e)},update:s}}});ww.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-color-alpha-slider",{"is-vertical":e.vertical}]},[Ll("div",{ref:"bar",class:"el-color-alpha-slider__bar",style:{background:e.background},onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t))},null,4),Ll("div",{ref:"thumb",class:"el-color-alpha-slider__thumb",style:{left:e.thumbLeft+"px",top:e.thumbTop+"px"}},null,4)],2)},ww.__file="packages/color-picker/src/components/alpha-slider.vue";var Cw=Qn({props:{colors:{type:Array,required:!0},color:{type:Object,required:!0}},setup(e){const{currentColor:t}=Ow(),n=lt(l(e.colors,e.color));function l(e,t){return e.map((e=>{const n=new vw;return n.enableAlpha=!0,n.format="rgba",n.fromString(e),n.selected=n.value===t.value,n}))}return Sn((()=>t.value),(e=>{const t=new vw;t.fromString(e),n.value.forEach((e=>{e.selected=t.compare(e)}))})),wn((()=>{n.value=l(e.colors,e.color)})),{rgbaColors:n,handleSelect:function(t){e.color.fromString(e.colors[t])}}}});const Sw={class:"el-color-predefine"},Ew={class:"el-color-predefine__colors"};Cw.render=function(e,t,n,l,a,o){return wl(),Sl("div",Sw,[Ll("div",Ew,[(wl(!0),Sl(gl,null,pa(e.rgbaColors,((t,n)=>(wl(),Sl("div",{key:e.colors[n],class:["el-color-predefine__color-selector",{selected:t.selected,"is-alpha":t._alpha<100}],onClick:t=>e.handleSelect(n)},[Ll("div",{style:{"background-color":t.value}},null,4)],10,["onClick"])))),128))])])},Cw.__file="packages/color-picker/src/components/predefine.vue";const Mw=Symbol(),Ow=()=>zl(Mw);var Tw=Qn({name:"ElColorPicker",components:{ElPopper:M_,ElInput:Qb,SvPanel:yw,HueSlider:xw,AlphaSlider:ww,ElButton:Z_,Predefine:Cw},directives:{ClickOutside:Sb},props:{modelValue:String,showAlpha:Boolean,colorFormat:String,disabled:Boolean,size:{type:String,validator:Ib},popperClass:String,predefine:Array},emits:["change","active-change",Nb],setup(e,{emit:t}){const n=Ay(),l=zl("elForm",{}),a=zl("elFormItem",{}),o=lt(null),r=lt(null),i=lt(null),s=lt(null),u=Ue(new vw({enableAlpha:e.showAlpha,format:e.colorFormat})),c=lt(!1),d=lt(!1),p=lt(""),f=ca((()=>e.modelValue||d.value?function(e,t){if(!(e instanceof vw))throw Error("color should be instance of _color Class");const{r:n,g:l,b:a}=e.toRgb();return t?`rgba(${n}, ${l}, ${a}, ${e.get("alpha")/100})`:`rgb(${n}, ${l}, ${a})`}(u,e.showAlpha):"transparent")),h=ca((()=>e.size||a.size||n.size)),v=ca((()=>e.disabled||l.disabled)),m=ca((()=>e.modelValue||d.value?u.value:""));Sn((()=>e.modelValue),(e=>{e?e&&e!==u.value&&u.fromString(e):d.value=!1})),Sn((()=>m.value),(e=>{p.value=e,t("active-change",e)})),Sn((()=>u.value),(()=>{e.modelValue||d.value||(d.value=!0)}));const g=uu((function(e){c.value=e}),100);function y(){Dt((()=>{e.modelValue?u.fromString(e.modelValue):d.value=!1}))}return mn((()=>{e.modelValue&&(u.fromString(e.modelValue),p.value=m.value)})),Sn((()=>c.value),(()=>{Dt((()=>{var e,t,n;null===(e=o.value)||void 0===e||e.update(),null===(t=r.value)||void 0===t||t.update(),null===(n=i.value)||void 0===n||n.update()}))})),$l(Mw,{currentColor:m}),{color:u,colorDisabled:v,colorSize:h,displayedColor:f,showPanelColor:d,showPicker:c,customInput:p,handleConfirm:function(){u.fromString(p.value)},hide:function(){g(!1),y()},handleTrigger:function(){v.value||g(!c.value)},clear:function(){var n;g(!1),t(Nb,null),t("change",null),null!==e.modelValue&&(null===(n=a.formItemMitt)||void 0===n||n.emit("el.form.change",null)),y()},confirmValue:function(){var n;const l=u.value;t(Nb,l),t("change",l),null===(n=a.formItemMitt)||void 0===n||n.emit("el.form.change",l),g(!1),Dt((()=>{const t=new vw({enableAlpha:e.showAlpha,format:e.colorFormat});t.fromString(e.modelValue),u.compare(t)||y()}))},t:ak,hue:o,svPanel:r,alpha:i,popper:s}}});const Dw={class:"el-color-dropdown__main-wrapper"},Lw={class:"el-color-dropdown__btns"},Nw={class:"el-color-dropdown__value"},Aw={key:0,class:"el-color-picker__mask"},Pw={key:0,class:"el-color-picker__empty el-icon-close"},Iw={class:"el-color-picker__icon el-icon-arrow-down"};Tw.render=function(e,t,n,l,a,o){const r=dl("hue-slider"),i=dl("sv-panel"),s=dl("alpha-slider"),u=dl("predefine"),d=dl("el-input"),p=dl("el-button"),f=dl("el-popper"),h=hl("click-outside");return wl(),Sl(f,{ref:"popper",visible:e.showPicker,"onUpdate:visible":t[3]||(t[3]=t=>e.showPicker=t),effect:"light","manual-mode":"",trigger:"click","show-arrow":!1,offset:0,transition:"el-zoom-in-top","gpu-acceleration":!1,"popper-class":"el-color-picker__panel el-color-dropdown "+e.popperClass,"stop-popper-mouse-event":!1},{default:Zt((()=>[Un(Ll("div",null,[Ll("div",Dw,[Ll(r,{ref:"hue",class:"hue-slider",color:e.color,vertical:""},null,8,["color"]),Ll(i,{ref:"svPanel",color:e.color},null,8,["color"])]),e.showAlpha?(wl(),Sl(s,{key:0,ref:"alpha",color:e.color},null,8,["color"])):Pl("v-if",!0),e.predefine?(wl(),Sl(u,{key:1,ref:"predefine",color:e.color,colors:e.predefine},null,8,["color","colors"])):Pl("v-if",!0),Ll("div",Lw,[Ll("span",Nw,[Ll(d,{modelValue:e.customInput,"onUpdate:modelValue":t[1]||(t[1]=t=>e.customInput=t),"validate-event":!1,size:"mini",onKeyup:vo(e.handleConfirm,["enter"]),onBlur:e.handleConfirm},null,8,["modelValue","onKeyup","onBlur"])]),Ll(p,{size:"mini",type:"text",class:"el-color-dropdown__link-btn",onClick:e.clear},{default:Zt((()=>[Al(c(e.t("el.colorpicker.clear")),1)])),_:1},8,["onClick"]),Ll(p,{plain:"",size:"mini",class:"el-color-dropdown__btn",onClick:e.confirmValue},{default:Zt((()=>[Al(c(e.t("el.colorpicker.confirm")),1)])),_:1},8,["onClick"])])],512),[[h,e.hide]])])),trigger:Zt((()=>[Ll("div",{class:["el-color-picker",e.colorDisabled?"is-disabled":"",e.colorSize?"el-color-picker--"+e.colorSize:""]},[e.colorDisabled?(wl(),Sl("div",Aw)):Pl("v-if",!0),Ll("div",{class:"el-color-picker__trigger",onClick:t[2]||(t[2]=(...t)=>e.handleTrigger&&e.handleTrigger(...t))},[Ll("span",{class:["el-color-picker__color",{"is-alpha":e.showAlpha}]},[Ll("span",{class:"el-color-picker__color-inner",style:{backgroundColor:e.displayedColor}},null,4),e.modelValue||e.showPanelColor?Pl("v-if",!0):(wl(),Sl("span",Pw))],2),Un(Ll("span",Iw,null,512),[[mo,e.modelValue||e.showPanelColor]])])],2)])),_:1},8,["visible","popper-class"])},Tw.__file="packages/color-picker/src/index.vue",Tw.install=e=>{e.component(Tw.name,Tw)};const Fw=Tw;var Vw=Qn({name:"ElContainer",props:{direction:{type:String,default:""}},setup:(e,{slots:t})=>({isVertical:ca((()=>"vertical"===e.direction||"horizontal"!==e.direction&&(!(!t||!t.default)&&t.default().some((e=>{const t=e.type.name;return"ElHeader"===t||"ElFooter"===t})))))})});Vw.render=function(e,t,n,l,a,o){return wl(),Sl("section",{class:["el-container",{"is-vertical":e.isVertical}]},[Ht(e.$slots,"default")],2)},Vw.__file="packages/container/src/container.vue",Vw.install=e=>{e.component(Vw.name,Vw)};const Bw=Vw;var $w=Qn({props:{date:{type:Object},minDate:{type:Object},maxDate:{type:Object},parsedValue:{type:[Object,Array]},selectionMode:{type:String,default:"day"},showWeekNumber:{type:Boolean,default:!1},disabledDate:{type:Function},cellClassName:{type:Function},rangeState:{type:Object,default:()=>({endDate:null,selecting:!1})}},emits:["changerange","pick","select"],setup(e,t){const n=lt(null),l=lt(null),a=lt([[],[],[],[],[],[]]),o=e.date.$locale().weekStart||7,r=e.date.locale("en").localeData().weekdaysShort().map((e=>e.toLowerCase())),i=ca((()=>o>3?7-o:-o)),s=ca((()=>{const t=e.date.startOf("month");return t.subtract(t.day()||7,"day")})),u=ca((()=>r.concat(r).slice(o,o+7))),c=ca((()=>{var t;const n=e.date.startOf("month"),l=n.day()||7,o=n.daysInMonth(),r=n.subtract(1,"month").daysInMonth(),u=i.value,c=a.value;let d=1;const f="dates"===e.selectionMode?My(e.parsedValue):[],h=Rc().startOf("day");for(let a=0;a<6;a++){const n=c[a];e.showWeekNumber&&(n[0]||(n[0]={type:"week",text:s.value.add(7*a+1,"day").week()}));for(let i=0;i<7;i++){let c=n[e.showWeekNumber?i+1:i];c||(c={row:a,column:i,type:"normal",inRange:!1,start:!1,end:!1});const p=7*a+i,v=s.value.add(p-u,"day");c.type="normal";const m=e.rangeState.endDate||e.maxDate||e.rangeState.selecting&&e.minDate;if(c.inRange=e.minDate&&v.isSameOrAfter(e.minDate,"day")&&m&&v.isSameOrBefore(m,"day")||e.minDate&&v.isSameOrBefore(e.minDate,"day")&&m&&v.isSameOrAfter(m,"day"),(null===(t=e.minDate)||void 0===t?void 0:t.isSameOrAfter(m))?(c.start=m&&v.isSame(m,"day"),c.end=e.minDate&&v.isSame(e.minDate,"day")):(c.start=e.minDate&&v.isSame(e.minDate,"day"),c.end=m&&v.isSame(m,"day")),v.isSame(h,"day")&&(c.type="today"),a>=0&&a<=1){const e=l+u<0?7+l+u:l+u;i+7*a>=e?c.text=d++:(c.text=r-(e-i%7)+1+7*a,c.type="prev-month")}else d<=o?c.text=d++:(c.text=d++-o,c.type="next-month");const g=v.toDate();c.selected=f.find((e=>e.valueOf()===v.valueOf())),c.disabled=e.disabledDate&&e.disabledDate(g),c.customClass=e.cellClassName&&e.cellClassName(g),n[e.showWeekNumber?i+1:i]=c}if("week"===e.selectionMode){const t=e.showWeekNumber?1:0,l=e.showWeekNumber?7:6,a=p(n[t+1]);n[t].inRange=a,n[t].start=a,n[l].inRange=a,n[l].end=a}}return c})),d=(t,n)=>{const l=7*t+(n-(e.showWeekNumber?1:0))-i.value;return s.value.add(l,"day")},p=t=>{if("week"!==e.selectionMode)return!1;let n=e.date.startOf("day");if("prev-month"===t.type&&(n=n.subtract(1,"month")),"next-month"===t.type&&(n=n.add(1,"month")),n=n.date(parseInt(t.text,10)),e.parsedValue&&!Array.isArray(e.parsedValue)){const t=(e.parsedValue.day()-o+7)%7-1;return e.parsedValue.subtract(t,"day").isSame(n,"day")}return!1};return{handleMouseMove:a=>{if(!e.rangeState.selecting)return;let o=a.target;if("SPAN"===o.tagName&&(o=o.parentNode.parentNode),"DIV"===o.tagName&&(o=o.parentNode),"TD"!==o.tagName)return;const r=o.parentNode.rowIndex-1,i=o.cellIndex;c.value[r][i].disabled||r===n.value&&i===l.value||(n.value=r,l.value=i,t.emit("changerange",{selecting:!0,endDate:d(r,i)}))},t:ak,rows:c,isWeekActive:p,getCellClasses:t=>{let n=[];return"normal"!==t.type&&"today"!==t.type||t.disabled?n.push(t.type):(n.push("available"),"today"===t.type&&n.push("today")),"day"!==e.selectionMode||"normal"!==t.type&&"today"!==t.type||(l=t,!((a=e.parsedValue)&&Rc(a).isSame(e.date.date(Number(l.text)),"day")))||n.push("current"),!t.inRange||"normal"!==t.type&&"today"!==t.type&&"week"!==e.selectionMode||(n.push("in-range"),t.start&&n.push("start-date"),t.end&&n.push("end-date")),t.disabled&&n.push("disabled"),t.selected&&n.push("selected"),t.customClass&&n.push(t.customClass),n.join(" ");var l,a},WEEKS:u,handleClick:n=>{let l=n.target;if("SPAN"===l.tagName&&(l=l.parentNode.parentNode),"DIV"===l.tagName&&(l=l.parentNode),"TD"!==l.tagName)return;const a=l.parentNode.rowIndex-1,o=l.cellIndex,r=c.value[a][o];if(r.disabled||"week"===r.type)return;const i=d(a,o);if("range"===e.selectionMode)e.rangeState.selecting?(i>=e.minDate?t.emit("pick",{minDate:e.minDate,maxDate:i}):t.emit("pick",{minDate:i,maxDate:e.minDate}),t.emit("select",!1)):(t.emit("pick",{minDate:i,maxDate:null}),t.emit("select",!0));else if("day"===e.selectionMode)t.emit("pick",i);else if("week"===e.selectionMode){const e=i.week(),n=i.year()+"w"+e;t.emit("pick",{year:i.year(),week:e,value:n,date:i.startOf("week")})}else if("dates"===e.selectionMode){const n=r.selected?My(e.parsedValue).filter((e=>e.valueOf()!==i.valueOf())):My(e.parsedValue).concat([i]);t.emit("pick",n)}}}}});const zw={key:0};$w.render=function(e,t,n,l,a,o){return wl(),Sl("table",{cellspacing:"0",cellpadding:"0",class:["el-date-table",{"is-week-mode":"week"===e.selectionMode}],onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t)),onMousemove:t[2]||(t[2]=(...t)=>e.handleMouseMove&&e.handleMouseMove(...t))},[Ll("tbody",null,[Ll("tr",null,[e.showWeekNumber?(wl(),Sl("th",zw,c(e.t("el.datepicker.week")),1)):Pl("v-if",!0),(wl(!0),Sl(gl,null,pa(e.WEEKS,((t,n)=>(wl(),Sl("th",{key:n},c(e.t("el.datepicker.weeks."+t)),1)))),128))]),(wl(!0),Sl(gl,null,pa(e.rows,((t,n)=>(wl(),Sl("tr",{key:n,class:["el-date-table__row",{current:e.isWeekActive(t[1])}]},[(wl(!0),Sl(gl,null,pa(t,((t,n)=>(wl(),Sl("td",{key:n,class:e.getCellClasses(t)},[Ll("div",null,[Ll("span",null,c(t.text),1)])],2)))),128))],2)))),128))])],34)},$w.__file="packages/date-picker/src/date-picker-com/basic-date-table.vue";var jw=Qn({props:{disabledDate:{type:Function},selectionMode:{type:String,default:"month"},minDate:{type:Object},maxDate:{type:Object},date:{type:Object},parsedValue:{type:Object},rangeState:{type:Object,default:()=>({endDate:null,selecting:!1})}},emits:["changerange","pick","select"],setup(e,t){const n=lt(e.date.locale("en").localeData().monthsShort().map((e=>e.toLowerCase()))),l=lt([[],[],[]]),a=lt(null),o=lt(null),r=ca((()=>{var t;const n=l.value,a=Rc().startOf("month");for(let l=0;l<3;l++){const o=n[l];for(let n=0;n<4;n++){let r=o[n];r||(r={row:l,column:n,type:"normal",inRange:!1,start:!1,end:!1}),r.type="normal";const i=4*l+n,s=e.date.startOf("year").month(i),u=e.rangeState.endDate||e.maxDate||e.rangeState.selecting&&e.minDate;r.inRange=e.minDate&&s.isSameOrAfter(e.minDate,"month")&&u&&s.isSameOrBefore(u,"month")||e.minDate&&s.isSameOrBefore(e.minDate,"month")&&u&&s.isSameOrAfter(u,"month"),(null===(t=e.minDate)||void 0===t?void 0:t.isSameOrAfter(u))?(r.start=u&&s.isSame(u,"month"),r.end=e.minDate&&s.isSame(e.minDate,"month")):(r.start=e.minDate&&s.isSame(e.minDate,"month"),r.end=u&&s.isSame(u,"month")),a.isSame(s)&&(r.type="today"),r.text=i;let c=s.toDate();r.disabled=e.disabledDate&&e.disabledDate(c),o[n]=r}}return n}));return{handleMouseMove:n=>{if(!e.rangeState.selecting)return;let l=n.target;if("A"===l.tagName&&(l=l.parentNode.parentNode),"DIV"===l.tagName&&(l=l.parentNode),"TD"!==l.tagName)return;const i=l.parentNode.rowIndex,s=l.cellIndex;r.value[i][s].disabled||i===a.value&&s===o.value||(a.value=i,o.value=s,t.emit("changerange",{selecting:!0,endDate:e.date.startOf("year").month(4*i+s)}))},handleMonthTableClick:n=>{let l=n.target;if("A"===l.tagName&&(l=l.parentNode.parentNode),"DIV"===l.tagName&&(l=l.parentNode),"TD"!==l.tagName)return;if(Ry(l,"disabled"))return;const a=l.cellIndex,o=4*l.parentNode.rowIndex+a,r=e.date.startOf("year").month(o);"range"===e.selectionMode?e.rangeState.selecting?(r>=e.minDate?t.emit("pick",{minDate:e.minDate,maxDate:r}):t.emit("pick",{minDate:r,maxDate:e.minDate}),t.emit("select",!1)):(t.emit("pick",{minDate:r,maxDate:null}),t.emit("select",!0)):t.emit("pick",o)},rows:r,getCellStyle:t=>{const n={},l=e.date.year(),a=new Date,o=t.text;return n.disabled=!!e.disabledDate&&((e,t)=>{const n=Rc().startOf("month").month(t).year(e),l=n.daysInMonth();return Ak(l).map((e=>n.add(e,"day").toDate()))})(l,o).every(e.disabledDate),n.current=My(e.parsedValue).findIndex((e=>e.year()===l&&e.month()===o))>=0,n.today=a.getFullYear()===l&&a.getMonth()===o,t.inRange&&(n["in-range"]=!0,t.start&&(n["start-date"]=!0),t.end&&(n["end-date"]=!0)),n},t:ak,months:n}}});const Rw={class:"cell"};jw.render=function(e,t,n,l,a,o){return wl(),Sl("table",{class:"el-month-table",onClick:t[1]||(t[1]=(...t)=>e.handleMonthTableClick&&e.handleMonthTableClick(...t)),onMousemove:t[2]||(t[2]=(...t)=>e.handleMouseMove&&e.handleMouseMove(...t))},[Ll("tbody",null,[(wl(!0),Sl(gl,null,pa(e.rows,((t,n)=>(wl(),Sl("tr",{key:n},[(wl(!0),Sl(gl,null,pa(t,((t,n)=>(wl(),Sl("td",{key:n,class:e.getCellStyle(t)},[Ll("div",null,[Ll("a",Rw,c(e.t("el.datepicker.months."+e.months[t.text])),1)])],2)))),128))])))),128))])],32)},jw.__file="packages/date-picker/src/date-picker-com/basic-month-table.vue";var Hw=Qn({props:{disabledDate:{type:Function},parsedValue:{type:Object},date:{type:Object}},emits:["pick"],setup:(e,t)=>({startYear:ca((()=>10*Math.floor(e.date.year()/10))),getCellStyle:t=>{const n={},l=Rc();return n.disabled=!!e.disabledDate&&(e=>{const t=Rc(String(e)).startOf("year"),n=t.endOf("year").dayOfYear();return Ak(n).map((e=>t.add(e,"day").toDate()))})(t).every(e.disabledDate),n.current=My(e.parsedValue).findIndex((e=>e.year()===t))>=0,n.today=l.year()===t,n},handleYearTableClick:e=>{const n=e.target;if("A"===n.tagName){if(Ry(n.parentNode,"disabled"))return;const e=n.textContent||n.innerText;t.emit("pick",Number(e))}}})});const Ww={class:"cell"},Yw={class:"cell"},qw={class:"cell"},Kw={class:"cell"},Uw={class:"cell"},Gw={class:"cell"},Xw={class:"cell"},Zw={class:"cell"},Jw={class:"cell"},Qw={class:"cell"},eC=Ll("td",null,null,-1),tC=Ll("td",null,null,-1);Hw.render=function(e,t,n,l,a,o){return wl(),Sl("table",{class:"el-year-table",onClick:t[1]||(t[1]=(...t)=>e.handleYearTableClick&&e.handleYearTableClick(...t))},[Ll("tbody",null,[Ll("tr",null,[Ll("td",{class:["available",e.getCellStyle(e.startYear+0)]},[Ll("a",Ww,c(e.startYear),1)],2),Ll("td",{class:["available",e.getCellStyle(e.startYear+1)]},[Ll("a",Yw,c(e.startYear+1),1)],2),Ll("td",{class:["available",e.getCellStyle(e.startYear+2)]},[Ll("a",qw,c(e.startYear+2),1)],2),Ll("td",{class:["available",e.getCellStyle(e.startYear+3)]},[Ll("a",Kw,c(e.startYear+3),1)],2)]),Ll("tr",null,[Ll("td",{class:["available",e.getCellStyle(e.startYear+4)]},[Ll("a",Uw,c(e.startYear+4),1)],2),Ll("td",{class:["available",e.getCellStyle(e.startYear+5)]},[Ll("a",Gw,c(e.startYear+5),1)],2),Ll("td",{class:["available",e.getCellStyle(e.startYear+6)]},[Ll("a",Xw,c(e.startYear+6),1)],2),Ll("td",{class:["available",e.getCellStyle(e.startYear+7)]},[Ll("a",Zw,c(e.startYear+7),1)],2)]),Ll("tr",null,[Ll("td",{class:["available",e.getCellStyle(e.startYear+8)]},[Ll("a",Jw,c(e.startYear+8),1)],2),Ll("td",{class:["available",e.getCellStyle(e.startYear+9)]},[Ll("a",Qw,c(e.startYear+9),1)],2),eC,tC])])])},Hw.__file="packages/date-picker/src/date-picker-com/basic-year-table.vue";var nC=Qn({components:{DateTable:$w,ElInput:Qb,ElButton:Z_,TimePickPanel:_k,MonthTable:jw,YearTable:Hw},directives:{clickoutside:Sb},props:{visible:{type:Boolean,default:!1},parsedValue:{type:[Object,Array]},format:{type:String,default:""},type:{type:String,required:!0}},emits:["pick","set-picker-option"],setup(e,t){const n=lt(Rc()),l=ca((()=>n.value.month())),a=ca((()=>n.value.year())),o=lt([]),r=lt(null),i=lt(null),s=t=>!(o.value.length>0&&(o.value,e.format,0)),u=e=>v.value?e.millisecond(0):M?Rc(M).year(e.year()).month(e.month()).date(e.date()):e.startOf("day"),c=(e,...n)=>{if(e)if(Array.isArray(e)){const l=e.map(u);t.emit("pick",l,...n)}else t.emit("pick",u(e),...n);else t.emit("pick",e,...n);r.value=null,i.value=null},d=lt("date"),p=ca((()=>{const e=ak("el.datepicker.year");if("year"===d.value){const t=10*Math.floor(a.value/10);return e?t+" "+e+" - "+(t+9)+" "+e:t+" - "+(t+9)}return a.value+" "+e})),f=ca((()=>["week","month","year","dates"].includes(e.type)?e.type:"day"));Sn((()=>f.value),(e=>{["month","year"].includes(e)?d.value=e:d.value="date"}),{immediate:!0});const h=ca((()=>!!C.length)),v=ca((()=>"datetime"===e.type||"datetimerange"===e.type)),m=ca((()=>v.value||"dates"===f.value)),g=ca((()=>Ik(e.format))),y=ca((()=>Pk(e.format))),b=ca((()=>i.value?i.value:e.parsedValue||O?(e.parsedValue||n.value).format(g.value):void 0)),_=ca((()=>r.value?r.value:e.parsedValue||O?(e.parsedValue||n.value).format(y.value):void 0)),k=lt(!1),x=()=>Rc(O);t.emit("set-picker-option",["isValidValue",e=>e.isValid()&&(!S||!S(e.toDate()))]),t.emit("set-picker-option",["formatToString",t=>"dates"===f.value?t.map((t=>t.format(e.format))):t.format(e.format)]),t.emit("set-picker-option",["parseUserInput",t=>Rc(t,e.format)]),t.emit("set-picker-option",["handleKeydown",l=>{const{code:a,keyCode:o}=l,s=[vb.up,vb.down,vb.left,vb.right];e.visible&&!k.value&&(s.includes(a)&&((e=>{const l={year:{38:-4,40:4,37:-1,39:1,offset:(e,t)=>e.setFullYear(e.getFullYear()+t)},month:{38:-4,40:4,37:-1,39:1,offset:(e,t)=>e.setMonth(e.getMonth()+t)},week:{38:-1,40:1,37:-1,39:1,offset:(e,t)=>e.setDate(e.getDate()+7*t)},day:{38:-7,40:7,37:-1,39:1,offset:(e,t)=>e.setDate(e.getDate()+t)}},a=n.value.toDate();for(;Math.abs(n.value.diff(a,"year",!0))<1;){const o=l[f.value];if(o.offset(a,o[e]),S&&S(a))continue;const r=Rc(a);n.value=r,t.emit("pick",r,!0);break}})(o),l.stopPropagation(),l.preventDefault()),a===vb.enter&&null===r.value&&null===i.value&&c(n,!1))}]);const w=zl("EP_PICKER_BASE"),{shortcuts:C,disabledDate:S,cellClassName:E,defaultTime:M,defaultValue:O,arrowControl:T}=w.props;return Sn((()=>e.parsedValue),(e=>{if(e){if("dates"===f.value)return;if(Array.isArray(e))return;n.value=e}else n.value=x()}),{immediate:!0}),{handleTimePick:(t,l,a)=>{const o=e.parsedValue?e.parsedValue.hour(t.hour()).minute(t.minute()).second(t.second()):t;n.value=o,c(n.value,!0),a||(k.value=l)},handleTimePickClose:()=>{k.value=!1},onTimePickerInputFocus:()=>{k.value=!0},timePickerVisible:k,visibleTime:b,visibleDate:_,showTime:v,changeToNow:()=>{const e=Rc().toDate();S&&S(e)||!s()||(n.value=Rc(),c(n.value))},onConfirm:()=>{if("dates"===f.value)c(e.parsedValue);else{let t=e.parsedValue;if(!t){const e=Rc(M),n=x();t=e.year(n.year()).month(n.month()).date(n.date())}n.value=t,c(t)}},footerVisible:m,handleYearPick:e=>{"year"===f.value?(n.value=n.value.startOf("year").year(e),c(n.value)):(n.value=n.value.year(e),d.value="month")},showMonthPicker:()=>{d.value="month"},showYearPicker:()=>{d.value="year"},handleMonthPick:e=>{n.value=n.value.startOf("month").month(e),"month"===f.value?c(n.value):d.value="date"},hasShortcuts:h,shortcuts:C,arrowControl:T,disabledDate:S,cellClassName:E,selectionMode:f,handleShortcutClick:e=>{e.value?c(Rc(e.value)):e.onClick&&e.onClick(t)},prevYear_:()=>{"year"===d.value?n.value=n.value.subtract(10,"year"):n.value=n.value.subtract(1,"year")},nextYear_:()=>{"year"===d.value?n.value=n.value.add(10,"year"):n.value=n.value.add(1,"year")},prevMonth_:()=>{n.value=n.value.subtract(1,"month")},nextMonth_:()=>{n.value=n.value.add(1,"month")},innerDate:n,t:ak,yearLabel:p,currentView:d,month:l,handleDatePick:t=>{if("day"===f.value){let l=e.parsedValue?e.parsedValue.year(t.year()).month(t.month()).date(t.date()):t;s()||(l=o.value[0][0].year(t.year()).month(t.month()).date(t.date())),n.value=l,c(l,v.value)}else"week"===f.value?c(t.date):"dates"===f.value&&c(t,!0)},handleVisibleTimeChange:e=>{const t=Rc(e,g.value);t.isValid()&&s()&&(n.value=t.year(n.value.year()).month(n.value.month()).date(n.value.date()),i.value=null,k.value=!1,c(n.value,!0))},handleVisibleDateChange:e=>{const t=Rc(e,y.value);if(t.isValid()){if(S&&S(t.toDate()))return;n.value=t.hour(n.value.hour()).minute(n.value.minute()).second(n.value.second()),r.value=null,c(n.value,!0)}},timeFormat:g,userInputTime:i,userInputDate:r}}});const lC={class:"el-picker-panel__body-wrapper"},aC={key:0,class:"el-picker-panel__sidebar"},oC={class:"el-picker-panel__body"},rC={key:0,class:"el-date-picker__time-header"},iC={class:"el-date-picker__editor-wrap"},sC={class:"el-date-picker__editor-wrap"},uC={class:"el-picker-panel__content"},cC={class:"el-picker-panel__footer"};nC.render=function(e,t,n,l,a,o){const r=dl("el-input"),i=dl("time-pick-panel"),s=dl("date-table"),u=dl("year-table"),d=dl("month-table"),p=dl("el-button"),f=hl("clickoutside");return wl(),Sl("div",{class:["el-picker-panel el-date-picker",[{"has-sidebar":e.$slots.sidebar||e.hasShortcuts,"has-time":e.showTime}]]},[Ll("div",lC,[Ht(e.$slots,"sidebar",{class:"el-picker-panel__sidebar"}),e.hasShortcuts?(wl(),Sl("div",aC,[(wl(!0),Sl(gl,null,pa(e.shortcuts,((t,n)=>(wl(),Sl("button",{key:n,type:"button",class:"el-picker-panel__shortcut",onClick:n=>e.handleShortcutClick(t)},c(t.text),9,["onClick"])))),128))])):Pl("v-if",!0),Ll("div",oC,[e.showTime?(wl(),Sl("div",rC,[Ll("span",iC,[Ll(r,{placeholder:e.t("el.datepicker.selectDate"),"model-value":e.visibleDate,size:"small",onInput:t[1]||(t[1]=t=>e.userInputDate=t),onChange:e.handleVisibleDateChange},null,8,["placeholder","model-value","onChange"])]),Un(Ll("span",sC,[Ll(r,{placeholder:e.t("el.datepicker.selectTime"),"model-value":e.visibleTime,size:"small",onFocus:e.onTimePickerInputFocus,onInput:t[2]||(t[2]=t=>e.userInputTime=t),onChange:e.handleVisibleTimeChange},null,8,["placeholder","model-value","onFocus","onChange"]),Ll(i,{visible:e.timePickerVisible,format:e.timeFormat,"time-arrow-control":e.arrowControl,"parsed-value":e.innerDate,onPick:e.handleTimePick},null,8,["visible","format","time-arrow-control","parsed-value","onPick"])],512),[[f,e.handleTimePickClose]])])):Pl("v-if",!0),Un(Ll("div",{class:["el-date-picker__header",{"el-date-picker__header--bordered":"year"===e.currentView||"month"===e.currentView}]},[Ll("button",{type:"button","aria-label":e.t("el.datepicker.prevYear"),class:"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-d-arrow-left",onClick:t[3]||(t[3]=(...t)=>e.prevYear_&&e.prevYear_(...t))},null,8,["aria-label"]),Un(Ll("button",{type:"button","aria-label":e.t("el.datepicker.prevMonth"),class:"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-arrow-left",onClick:t[4]||(t[4]=(...t)=>e.prevMonth_&&e.prevMonth_(...t))},null,8,["aria-label"]),[[mo,"date"===e.currentView]]),Ll("span",{role:"button",class:"el-date-picker__header-label",onClick:t[5]||(t[5]=(...t)=>e.showYearPicker&&e.showYearPicker(...t))},c(e.yearLabel),1),Un(Ll("span",{role:"button",class:["el-date-picker__header-label",{active:"month"===e.currentView}],onClick:t[6]||(t[6]=(...t)=>e.showMonthPicker&&e.showMonthPicker(...t))},c(e.t("el.datepicker.month"+(e.month+1))),3),[[mo,"date"===e.currentView]]),Ll("button",{type:"button","aria-label":e.t("el.datepicker.nextYear"),class:"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-d-arrow-right",onClick:t[7]||(t[7]=(...t)=>e.nextYear_&&e.nextYear_(...t))},null,8,["aria-label"]),Un(Ll("button",{type:"button","aria-label":e.t("el.datepicker.nextMonth"),class:"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-arrow-right",onClick:t[8]||(t[8]=(...t)=>e.nextMonth_&&e.nextMonth_(...t))},null,8,["aria-label"]),[[mo,"date"===e.currentView]])],2),[[mo,"time"!==e.currentView]]),Ll("div",uC,["date"===e.currentView?(wl(),Sl(s,{key:0,"selection-mode":e.selectionMode,date:e.innerDate,"parsed-value":e.parsedValue,"disabled-date":e.disabledDate,onPick:e.handleDatePick},null,8,["selection-mode","date","parsed-value","disabled-date","onPick"])):Pl("v-if",!0),"year"===e.currentView?(wl(),Sl(u,{key:1,date:e.innerDate,"disabled-date":e.disabledDate,"parsed-value":e.parsedValue,onPick:e.handleYearPick},null,8,["date","disabled-date","parsed-value","onPick"])):Pl("v-if",!0),"month"===e.currentView?(wl(),Sl(d,{key:2,date:e.innerDate,"parsed-value":e.parsedValue,"disabled-date":e.disabledDate,onPick:e.handleMonthPick},null,8,["date","parsed-value","disabled-date","onPick"])):Pl("v-if",!0)])])]),Un(Ll("div",cC,[Un(Ll(p,{size:"mini",type:"text",class:"el-picker-panel__link-btn",onClick:e.changeToNow},{default:Zt((()=>[Al(c(e.t("el.datepicker.now")),1)])),_:1},8,["onClick"]),[[mo,"dates"!==e.selectionMode]]),Ll(p,{plain:"",size:"mini",class:"el-picker-panel__link-btn",onClick:e.onConfirm},{default:Zt((()=>[Al(c(e.t("el.datepicker.confirm")),1)])),_:1},8,["onClick"])],512),[[mo,e.footerVisible&&"date"===e.currentView]])],2)},nC.__file="packages/date-picker/src/date-picker-com/panel-date-pick.vue";var dC=Qn({directives:{clickoutside:Sb},components:{TimePickPanel:_k,DateTable:$w,ElInput:Qb,ElButton:Z_},props:{unlinkPanels:Boolean,parsedValue:{type:Array},type:{type:String,required:!0}},emits:["pick","set-picker-option"],setup(e,t){const n=lt(Rc()),l=lt(Rc().add(1,"month")),a=lt(null),o=lt(null),r=lt({min:null,max:null}),i=lt({min:null,max:null}),s=ca((()=>n.value.year()+" "+ak("el.datepicker.year")+" "+ak("el.datepicker.month"+(n.value.month()+1)))),u=ca((()=>l.value.year()+" "+ak("el.datepicker.year")+" "+ak("el.datepicker.month"+(l.value.month()+1)))),c=ca((()=>n.value.year())),d=ca((()=>n.value.month())),p=ca((()=>l.value.year())),f=ca((()=>l.value.month())),h=ca((()=>!!P.length)),v=ca((()=>null!==r.value.min?r.value.min:a.value?a.value.format(_.value):"")),m=ca((()=>null!==r.value.max?r.value.max:o.value||a.value?(o.value||a.value).format(_.value):"")),g=ca((()=>null!==i.value.min?i.value.min:a.value?a.value.format(b.value):"")),y=ca((()=>null!==i.value.max?i.value.max:o.value||a.value?(o.value||a.value).format(b.value):"")),b=ca((()=>Ik(V))),_=ca((()=>Pk(V))),k=ca((()=>{const t=(d.value+1)%12,n=d.value+1>=12?1:0;return e.unlinkPanels&&new Date(c.value+n,t)<new Date(p.value,f.value)})),x=ca((()=>e.unlinkPanels&&12*p.value+f.value-(12*c.value+d.value+1)>=12)),w=e=>Array.isArray(e)&&e[0]&&e[1]&&e[0].valueOf()<=e[1].valueOf(),C=lt({endDate:null,selecting:!1}),S=ca((()=>!(a.value&&o.value&&!C.value.selecting&&w([a.value,o.value])))),E=ca((()=>"datetime"===e.type||"datetimerange"===e.type)),M=(e=!1)=>{w([a.value,o.value])&&t.emit("pick",[a.value,o.value],e)},O=(e,t)=>{if(e)return B?Rc(B[t]||B).year(e.year()).month(e.month()).date(e.date()):e},T=lt(!1),D=lt(!1),L=()=>{n.value=N()[0],l.value=n.value.add(1,"month"),t.emit("pick",null)},N=()=>{let t;if(Array.isArray($)){const t=Rc($[0]);let n=Rc($[1]);return e.unlinkPanels||(n=t.add(1,"month")),[t,n]}return t=$?Rc($):Rc(),[t,t.add(1,"month")]};t.emit("set-picker-option",["isValidValue",w]),t.emit("set-picker-option",["parseUserInput",e=>Array.isArray(e)?e.map((e=>Rc(e,V))):Rc(e,V)]),t.emit("set-picker-option",["formatToString",e=>Array.isArray(e)?e.map((e=>e.format(V))):e.format(V)]),t.emit("set-picker-option",["handleClear",L]);const A=zl("EP_PICKER_BASE"),{shortcuts:P,disabledDate:I,cellClassName:F,format:V,defaultTime:B,defaultValue:$,arrowControl:z}=A.props;return Sn((()=>e.parsedValue),(t=>{if(t&&2===t.length)if(a.value=t[0],o.value=t[1],n.value=a.value,e.unlinkPanels&&o.value){const e=a.value.year(),t=a.value.month(),n=o.value.year(),r=o.value.month();l.value=e===n&&t===r?o.value.add(1,"month"):o.value}else l.value=n.value.add(1,"month");else{const e=N();a.value=null,o.value=null,n.value=e[0],l.value=e[1]}}),{immediate:!0}),{shortcuts:P,disabledDate:I,cellClassName:F,minTimePickerVisible:T,maxTimePickerVisible:D,handleMinTimeClose:()=>{T.value=!1},handleMaxTimeClose:()=>{D.value=!1},handleShortcutClick:e=>{e.value?t.emit("pick",[Rc(e.value[0]),Rc(e.value[1])]):e.onClick&&e.onClick(t)},rangeState:C,minDate:a,maxDate:o,handleRangePick:(e,t=!0)=>{const n=O(e.minDate,0),l=O(e.maxDate,1);o.value===l&&a.value===n||(o.value=l,a.value=n,t&&!E.value&&M())},onSelect:e=>{C.value.selecting=e,e||(C.value.endDate=null)},handleChangeRange:e=>{C.value=e},btnDisabled:S,enableYearArrow:x,enableMonthArrow:k,rightPrevMonth:()=>{l.value=l.value.subtract(1,"month")},rightPrevYear:()=>{l.value=l.value.subtract(1,"year")},rightNextMonth:()=>{e.unlinkPanels?l.value=l.value.add(1,"month"):(n.value=n.value.add(1,"month"),l.value=n.value.add(1,"month"))},rightNextYear:()=>{e.unlinkPanels?l.value=l.value.add(1,"year"):(n.value=n.value.add(1,"year"),l.value=n.value.add(1,"month"))},leftPrevMonth:()=>{n.value=n.value.subtract(1,"month"),e.unlinkPanels||(l.value=n.value.add(1,"month"))},leftPrevYear:()=>{n.value=n.value.subtract(1,"year"),e.unlinkPanels||(l.value=n.value.add(1,"month"))},leftNextMonth:()=>{n.value=n.value.add(1,"month")},leftNextYear:()=>{n.value=n.value.add(1,"year")},hasShortcuts:h,leftLabel:s,rightLabel:u,leftDate:n,rightDate:l,showTime:E,t:ak,minVisibleDate:v,maxVisibleDate:m,minVisibleTime:g,maxVisibleTime:y,arrowControl:z,handleDateInput:(t,i)=>{r.value[i]=t;const s=Rc(t,_.value);if(s.isValid()){if(I&&I(s.toDate()))return;"min"===i?(n.value=s,a.value=(a.value||n.value).year(s.year()).month(s.month()).date(s.date()),e.unlinkPanels||(l.value=s.add(1,"month"),o.value=a.value.add(1,"month"))):(l.value=s,o.value=(o.value||l.value).year(s.year()).month(s.month()).date(s.date()),e.unlinkPanels||(n.value=s.subtract(1,"month"),a.value=o.value.subtract(1,"month")))}},handleDateChange:(e,t)=>{r.value[t]=null},handleTimeInput:(e,t)=>{i.value[t]=e;const r=Rc(e,b.value);r.isValid()&&("min"===t?(T.value=!0,a.value=(a.value||n.value).hour(r.hour()).minute(r.minute()).second(r.second()),o.value&&!o.value.isBefore(a.value)||(o.value=a.value)):(D.value=!0,o.value=(o.value||l.value).hour(r.hour()).minute(r.minute()).second(r.second()),l.value=o.value,o.value&&o.value.isBefore(a.value)&&(a.value=o.value)))},handleTimeChange:(e,t)=>{i.value[t]=null,"min"===t?(n.value=a.value,T.value=!1):(l.value=o.value,D.value=!1)},handleMinTimePick:(e,t,l)=>{i.value.min||(e&&(n.value=e,a.value=(a.value||n.value).hour(e.hour()).minute(e.minute()).second(e.second())),l||(T.value=t),o.value&&!o.value.isBefore(a.value)||(o.value=a.value))},handleMaxTimePick:(e,t,n)=>{i.value.max||(e&&(l.value=e,o.value=(o.value||l.value).hour(e.hour()).minute(e.minute()).second(e.second())),n||(D.value=t),o.value&&o.value.isBefore(a.value)&&(a.value=o.value))},handleClear:L,handleConfirm:M,timeFormat:b}}});const pC={class:"el-picker-panel__body-wrapper"},fC={key:0,class:"el-picker-panel__sidebar"},hC={class:"el-picker-panel__body"},vC={key:0,class:"el-date-range-picker__time-header"},mC={class:"el-date-range-picker__editors-wrap"},gC={class:"el-date-range-picker__time-picker-wrap"},yC={class:"el-date-range-picker__time-picker-wrap"},bC=Ll("span",{class:"el-icon-arrow-right"},null,-1),_C={class:"el-date-range-picker__editors-wrap is-right"},kC={class:"el-date-range-picker__time-picker-wrap"},xC={class:"el-date-range-picker__time-picker-wrap"},wC={class:"el-picker-panel__content el-date-range-picker__content is-left"},CC={class:"el-date-range-picker__header"},SC={class:"el-picker-panel__content el-date-range-picker__content is-right"},EC={class:"el-date-range-picker__header"},MC={key:0,class:"el-picker-panel__footer"};dC.render=function(e,t,n,l,a,o){const r=dl("el-input"),i=dl("time-pick-panel"),s=dl("date-table"),u=dl("el-button"),d=hl("clickoutside");return wl(),Sl("div",{class:["el-picker-panel el-date-range-picker",[{"has-sidebar":e.$slots.sidebar||e.hasShortcuts,"has-time":e.showTime}]]},[Ll("div",pC,[Ht(e.$slots,"sidebar",{class:"el-picker-panel__sidebar"}),e.hasShortcuts?(wl(),Sl("div",fC,[(wl(!0),Sl(gl,null,pa(e.shortcuts,((t,n)=>(wl(),Sl("button",{key:n,type:"button",class:"el-picker-panel__shortcut",onClick:n=>e.handleShortcutClick(t)},c(t.text),9,["onClick"])))),128))])):Pl("v-if",!0),Ll("div",hC,[e.showTime?(wl(),Sl("div",vC,[Ll("span",mC,[Ll("span",gC,[Ll(r,{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.startDate"),class:"el-date-range-picker__editor","model-value":e.minVisibleDate,onInput:t[1]||(t[1]=t=>e.handleDateInput(t,"min")),onChange:t[2]||(t[2]=t=>e.handleDateChange(t,"min"))},null,8,["disabled","placeholder","model-value"])]),Un(Ll("span",yC,[Ll(r,{size:"small",class:"el-date-range-picker__editor",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.startTime"),"model-value":e.minVisibleTime,onFocus:t[3]||(t[3]=t=>e.minTimePickerVisible=!0),onInput:t[4]||(t[4]=t=>e.handleTimeInput(t,"min")),onChange:t[5]||(t[5]=t=>e.handleTimeChange(t,"min"))},null,8,["disabled","placeholder","model-value"]),Ll(i,{visible:e.minTimePickerVisible,format:e.timeFormat,"datetime-role":"start","time-arrow-control":e.arrowControl,"parsed-value":e.leftDate,onPick:e.handleMinTimePick},null,8,["visible","format","time-arrow-control","parsed-value","onPick"])],512),[[d,e.handleMinTimeClose]])]),bC,Ll("span",_C,[Ll("span",kC,[Ll(r,{size:"small",class:"el-date-range-picker__editor",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.endDate"),"model-value":e.maxVisibleDate,readonly:!e.minDate,onInput:t[6]||(t[6]=t=>e.handleDateInput(t,"max")),onChange:t[7]||(t[7]=t=>e.handleDateChange(t,"max"))},null,8,["disabled","placeholder","model-value","readonly"])]),Un(Ll("span",xC,[Ll(r,{size:"small",class:"el-date-range-picker__editor",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.endTime"),"model-value":e.maxVisibleTime,readonly:!e.minDate,onFocus:t[8]||(t[8]=t=>e.minDate&&(e.maxTimePickerVisible=!0)),onInput:t[9]||(t[9]=t=>e.handleTimeInput(t,"max")),onChange:t[10]||(t[10]=t=>e.handleTimeChange(t,"max"))},null,8,["disabled","placeholder","model-value","readonly"]),Ll(i,{"datetime-role":"end",visible:e.maxTimePickerVisible,format:e.timeFormat,"time-arrow-control":e.arrowControl,"parsed-value":e.rightDate,onPick:e.handleMaxTimePick},null,8,["visible","format","time-arrow-control","parsed-value","onPick"])],512),[[d,e.handleMaxTimeClose]])])])):Pl("v-if",!0),Ll("div",wC,[Ll("div",CC,[Ll("button",{type:"button",class:"el-picker-panel__icon-btn el-icon-d-arrow-left",onClick:t[11]||(t[11]=(...t)=>e.leftPrevYear&&e.leftPrevYear(...t))}),Ll("button",{type:"button",class:"el-picker-panel__icon-btn el-icon-arrow-left",onClick:t[12]||(t[12]=(...t)=>e.leftPrevMonth&&e.leftPrevMonth(...t))}),e.unlinkPanels?(wl(),Sl("button",{key:0,type:"button",disabled:!e.enableYearArrow,class:[{"is-disabled":!e.enableYearArrow},"el-picker-panel__icon-btn el-icon-d-arrow-right"],onClick:t[13]||(t[13]=(...t)=>e.leftNextYear&&e.leftNextYear(...t))},null,10,["disabled"])):Pl("v-if",!0),e.unlinkPanels?(wl(),Sl("button",{key:1,type:"button",disabled:!e.enableMonthArrow,class:[{"is-disabled":!e.enableMonthArrow},"el-picker-panel__icon-btn el-icon-arrow-right"],onClick:t[14]||(t[14]=(...t)=>e.leftNextMonth&&e.leftNextMonth(...t))},null,10,["disabled"])):Pl("v-if",!0),Ll("div",null,c(e.leftLabel),1)]),Ll(s,{"selection-mode":"range",date:e.leftDate,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,"cell-class-name":e.cellClassName,onChangerange:e.handleChangeRange,onPick:e.handleRangePick,onSelect:e.onSelect},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onPick","onSelect"])]),Ll("div",SC,[Ll("div",EC,[e.unlinkPanels?(wl(),Sl("button",{key:0,type:"button",disabled:!e.enableYearArrow,class:[{"is-disabled":!e.enableYearArrow},"el-picker-panel__icon-btn el-icon-d-arrow-left"],onClick:t[15]||(t[15]=(...t)=>e.rightPrevYear&&e.rightPrevYear(...t))},null,10,["disabled"])):Pl("v-if",!0),e.unlinkPanels?(wl(),Sl("button",{key:1,type:"button",disabled:!e.enableMonthArrow,class:[{"is-disabled":!e.enableMonthArrow},"el-picker-panel__icon-btn el-icon-arrow-left"],onClick:t[16]||(t[16]=(...t)=>e.rightPrevMonth&&e.rightPrevMonth(...t))},null,10,["disabled"])):Pl("v-if",!0),Ll("button",{type:"button",class:"el-picker-panel__icon-btn el-icon-d-arrow-right",onClick:t[17]||(t[17]=(...t)=>e.rightNextYear&&e.rightNextYear(...t))}),Ll("button",{type:"button",class:"el-picker-panel__icon-btn el-icon-arrow-right",onClick:t[18]||(t[18]=(...t)=>e.rightNextMonth&&e.rightNextMonth(...t))}),Ll("div",null,c(e.rightLabel),1)]),Ll(s,{"selection-mode":"range",date:e.rightDate,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,"cell-class-name":e.cellClassName,onChangerange:e.handleChangeRange,onPick:e.handleRangePick,onSelect:e.onSelect},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onPick","onSelect"])])])]),e.showTime?(wl(),Sl("div",MC,[Ll(u,{size:"mini",type:"text",class:"el-picker-panel__link-btn",onClick:e.handleClear},{default:Zt((()=>[Al(c(e.t("el.datepicker.clear")),1)])),_:1},8,["onClick"]),Ll(u,{plain:"",size:"mini",class:"el-picker-panel__link-btn",disabled:e.btnDisabled,onClick:t[19]||(t[19]=t=>e.handleConfirm(!1))},{default:Zt((()=>[Al(c(e.t("el.datepicker.confirm")),1)])),_:1},8,["disabled"])])):Pl("v-if",!0)],2)},dC.__file="packages/date-picker/src/date-picker-com/panel-date-range.vue";var OC=Qn({components:{MonthTable:jw},props:{unlinkPanels:Boolean,parsedValue:{type:Array}},emits:["pick","set-picker-option"],setup(e,t){const n=lt(Rc()),l=lt(Rc().add(1,"year")),a=ca((()=>!!h.length)),o=ca((()=>`${n.value.year()} ${ak("el.datepicker.year")}`)),r=ca((()=>`${l.value.year()} ${ak("el.datepicker.year")}`)),i=ca((()=>n.value.year())),s=ca((()=>l.value.year()===n.value.year()?n.value.year()+1:l.value.year())),u=ca((()=>e.unlinkPanels&&s.value>i.value+1)),c=lt(null),d=lt(null),p=lt({endDate:null,selecting:!1});t.emit("set-picker-option",["formatToString",e=>e.map((e=>e.format(m)))]);const f=zl("EP_PICKER_BASE"),{shortcuts:h,disabledDate:v,format:m,defaultValue:g}=f.props;return Sn((()=>e.parsedValue),(t=>{if(t&&2===t.length)if(c.value=t[0],d.value=t[1],n.value=c.value,e.unlinkPanels&&d.value){const e=c.value.year(),t=d.value.year();l.value=e===t?d.value.add(1,"year"):d.value}else l.value=n.value.add(1,"year");else{const t=(()=>{let t;if(Array.isArray(g)){const t=Rc(g[0]);let n=Rc(g[1]);return e.unlinkPanels||(n=t.add(1,"year")),[t,n]}return t=g?Rc(g):Rc(),[t,t.add(1,"year")]})();n.value=t[0],l.value=t[1]}}),{immediate:!0}),{shortcuts:h,disabledDate:v,onSelect:e=>{p.value.selecting=e,e||(p.value.endDate=null)},handleRangePick:(e,n=!0)=>{const l=e.minDate,a=e.maxDate;d.value===a&&c.value===l||(d.value=a,c.value=l,n&&((e=!1)=>{var n;n=[c.value,d.value],Array.isArray(n)&&n&&n[0]&&n[1]&&n[0].valueOf()<=n[1].valueOf()&&t.emit("pick",[c.value,d.value],e)})())},rangeState:p,handleChangeRange:e=>{p.value=e},minDate:c,maxDate:d,enableYearArrow:u,leftLabel:o,rightLabel:r,leftNextYear:()=>{n.value=n.value.add(1,"year")},leftPrevYear:()=>{n.value=n.value.subtract(1,"year"),e.unlinkPanels||(l.value=l.value.subtract(1,"year"))},rightNextYear:()=>{e.unlinkPanels||(n.value=n.value.add(1,"year")),l.value=l.value.add(1,"year")},rightPrevYear:()=>{l.value=l.value.subtract(1,"year")},t:ak,leftDate:n,rightDate:l,hasShortcuts:a,handleShortcutClick:e=>{e.value?t.emit("pick",[Rc(e.value[0]),Rc(e.value[1])]):e.onClick&&e.onClick(t)}}}});const TC={class:"el-picker-panel__body-wrapper"},DC={key:0,class:"el-picker-panel__sidebar"},LC={class:"el-picker-panel__body"},NC={class:"el-picker-panel__content el-date-range-picker__content is-left"},AC={class:"el-date-range-picker__header"},PC={class:"el-picker-panel__content el-date-range-picker__content is-right"},IC={class:"el-date-range-picker__header"};OC.render=function(e,t,n,l,a,o){const r=dl("month-table");return wl(),Sl("div",{class:["el-picker-panel el-date-range-picker",[{"has-sidebar":e.$slots.sidebar||e.hasShortcuts}]]},[Ll("div",TC,[Ht(e.$slots,"sidebar",{class:"el-picker-panel__sidebar"}),e.hasShortcuts?(wl(),Sl("div",DC,[(wl(!0),Sl(gl,null,pa(e.shortcuts,((t,n)=>(wl(),Sl("button",{key:n,type:"button",class:"el-picker-panel__shortcut",onClick:n=>e.handleShortcutClick(t)},c(t.text),9,["onClick"])))),128))])):Pl("v-if",!0),Ll("div",LC,[Ll("div",NC,[Ll("div",AC,[Ll("button",{type:"button",class:"el-picker-panel__icon-btn el-icon-d-arrow-left",onClick:t[1]||(t[1]=(...t)=>e.leftPrevYear&&e.leftPrevYear(...t))}),e.unlinkPanels?(wl(),Sl("button",{key:0,type:"button",disabled:!e.enableYearArrow,class:[{"is-disabled":!e.enableYearArrow},"el-picker-panel__icon-btn el-icon-d-arrow-right"],onClick:t[2]||(t[2]=(...t)=>e.leftNextYear&&e.leftNextYear(...t))},null,10,["disabled"])):Pl("v-if",!0),Ll("div",null,c(e.leftLabel),1)]),Ll(r,{"selection-mode":"range",date:e.leftDate,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,onChangerange:e.handleChangeRange,onPick:e.handleRangePick,onSelect:e.onSelect},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onPick","onSelect"])]),Ll("div",PC,[Ll("div",IC,[e.unlinkPanels?(wl(),Sl("button",{key:0,type:"button",disabled:!e.enableYearArrow,class:[{"is-disabled":!e.enableYearArrow},"el-picker-panel__icon-btn el-icon-d-arrow-left"],onClick:t[3]||(t[3]=(...t)=>e.rightPrevYear&&e.rightPrevYear(...t))},null,10,["disabled"])):Pl("v-if",!0),Ll("button",{type:"button",class:"el-picker-panel__icon-btn el-icon-d-arrow-right",onClick:t[4]||(t[4]=(...t)=>e.rightNextYear&&e.rightNextYear(...t))}),Ll("div",null,c(e.rightLabel),1)]),Ll(r,{"selection-mode":"range",date:e.rightDate,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,onChangerange:e.handleChangeRange,onPick:e.handleRangePick,onSelect:e.onSelect},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onPick","onSelect"])])])])],2)},OC.__file="packages/date-picker/src/date-picker-com/panel-month-range.vue",Rc.extend(Wc),Rc.extend(Mv),Rc.extend(qc),Rc.extend(Tv),Rc.extend(Lv),Rc.extend(Av),Rc.extend(Iv),Rc.extend(Vv);const FC=Qn({name:"ElDatePicker",install:null,props:Object.assign(Object.assign({},rk),{type:{type:String,default:"date"}}),emits:["update:modelValue"],setup(e,t){$l("ElPopperOptions",e.popperOptions);const n=lt(null),l=ok[e.type]||"YYYY-MM-DD",a=Object.assign(Object.assign({},e),{focus:()=>{var e;null===(e=n.value)||void 0===e||e.handleFocus()}});return t.expose(a),()=>da(uk,Object.assign(Object.assign({format:l},e),{type:e.type,ref:n,"onUpdate:modelValue":e=>t.emit("update:modelValue",e)}),{default:t=>{return da("daterange"===(n=e.type)||"datetimerange"===n?dC:"monthrange"===n?OC:nC,t);var n}})}});FC.install=e=>{e.component(FC.name,FC)};var VC=Qn({name:"ElOverlay",props:{mask:{type:Boolean,default:!0},overlayClass:{type:[String,Array,Object]},zIndex:{type:Number}},emits:["click"],setup(e,{slots:t,emit:n}){let l=!1,a=!1;const o=e=>{l&&a&&n("click",e),l=a=!1};return()=>e.mask?Ll("div",{class:["el-overlay",e.overlayClass],style:{zIndex:e.zIndex},onClick:o,onMousedown:t=>{e.mask&&(l=t.target===t.currentTarget)},onMouseup:t=>{e.mask&&(a=t.target===t.currentTarget)}},[Ht(t,"default")],o_.STYLE|o_.CLASS|o_.PROPS,["onClick","onMouseup","onMousedown"]):da("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Ht(t,"default")])}});function BC(e,t,n){const l=lt(!1),a=lt(!1),o=lt(null),r=lt(null),i=lt(null),s=lt(!1),u=lt(e.zIndex||y_.nextZIndex()),c=lt(null),d=ca((()=>{const t={};return e.fullscreen||(t.marginTop=e.top,e.width&&(t.width=Ty(e.width)?e.width+"px":e.width)),t}));function p(){Ly(i),Ly(r),e.openDelay&&e.openDelay>0?r.value=window.setTimeout((()=>{r.value=null,m()}),e.openDelay):m()}function f(){Ly(r),Ly(i),e.closeDelay&&e.closeDelay>0?i.value=window.setTimeout((()=>{i.value=null,g()}),e.closeDelay):g()}function h(e){e||(a.value=!0,l.value=!1)}function v(){e.beforeClose?e.beforeClose(h):f()}function m(){oy||(l.value=!0)}function g(){l.value=!1}return e.lockScroll&&fb(l),e.closeOnPressEscape&&kb({handleClose:v},l),hb(l),Sn((()=>e.modelValue),(o=>{o?(a.value=!1,p(),s.value=!0,t.emit("open"),u.value=e.zIndex?u.value++:y_.nextZIndex(),Dt((()=>{n.value&&(n.value.scrollTop=0)}))):l.value&&f()})),mn((()=>{e.modelValue&&(l.value=!0,s.value=!0,p())})),{afterEnter:function(){t.emit("opened")},afterLeave:function(){t.emit("closed"),t.emit(Nb,!1),e.destroyOnClose&&(s.value=!1)},beforeLeave:function(){t.emit("close")},handleClose:v,onModalClick:function(){e.closeOnClickModal&&v()},closed:a,dialogRef:o,style:d,rendered:s,modalRef:c,visible:l,zIndex:u}}VC.__file="packages/overlay/src/index.vue";var $C=Qn({name:"ElDialog",components:{"el-overlay":VC},directives:{TrapFocus:Tb},props:{appendToBody:{type:Boolean,default:!1},beforeClose:{type:Function},destroyOnClose:{type:Boolean,default:!1},center:{type:Boolean,default:!1},customClass:{type:String,default:""},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},fullscreen:{type:Boolean,default:!1},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},title:{type:String,default:""},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String,default:"15vh"},modelValue:{type:Boolean,required:!0},modalClass:String,width:{type:[String,Number],default:"50%",validator:e=>!!Ty(e)||["px","rem","em","vw","%","vmin","vmax"].some((t=>e.endsWith(t)))},zIndex:{type:Number}},emits:["open","opened","close","closed",Nb],setup(e,t){const n=lt(null);return Object.assign(Object.assign({},BC(e,t,n)),{dialogRef:n})}});const zC={class:"el-dialog__header"},jC={class:"el-dialog__title"},RC=Ll("i",{class:"el-dialog__close el-icon el-icon-close"},null,-1),HC={key:0,class:"el-dialog__body"},WC={key:1,class:"el-dialog__footer"};$C.render=function(e,t,n,l,a,o){const r=dl("el-overlay"),i=hl("trap-focus");return wl(),Sl(cl,{to:"body",disabled:!e.appendToBody},[Ll(Ia,{name:"dialog-fade",onAfterEnter:e.afterEnter,onAfterLeave:e.afterLeave,onBeforeLeave:e.beforeLeave},{default:Zt((()=>[Un(Ll(r,{mask:e.modal,"overlay-class":e.modalClass,"z-index":e.zIndex,onClick:e.onModalClick},{default:Zt((()=>[Un(Ll("div",{ref:"dialogRef",class:["el-dialog",{"is-fullscreen":e.fullscreen,"el-dialog--center":e.center},e.customClass],"aria-modal":"true",role:"dialog","aria-label":e.title||"dialog",style:e.style,onClick:t[2]||(t[2]=fo((()=>{}),["stop"]))},[Ll("div",zC,[Ht(e.$slots,"title",{},(()=>[Ll("span",jC,c(e.title),1)])),e.showClose?(wl(),Sl("button",{key:0,"aria-label":"close",class:"el-dialog__headerbtn",type:"button",onClick:t[1]||(t[1]=(...t)=>e.handleClose&&e.handleClose(...t))},[RC])):Pl("v-if",!0)]),e.rendered?(wl(),Sl("div",HC,[Ht(e.$slots,"default")])):Pl("v-if",!0),e.$slots.footer?(wl(),Sl("div",WC,[Ht(e.$slots,"footer")])):Pl("v-if",!0)],14,["aria-label"]),[[i]])])),_:3},8,["mask","overlay-class","z-index","onClick"]),[[mo,e.visible]])])),_:1},8,["onAfterEnter","onAfterLeave","onBeforeLeave"])],8,["disabled"])},$C.__file="packages/dialog/src/index.vue",$C.install=e=>{e.component($C.name,$C)};const YC=$C;var qC=Qn({name:"ElDivider",props:{direction:{type:String,default:"horizontal",validator:e=>-1!==["horizontal","vertical"].indexOf(e)},contentPosition:{type:String,default:"center",validator:e=>-1!==["left","center","right"].indexOf(e)}}});qC.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-divider","el-divider--"+e.direction]},[e.$slots.default&&"vertical"!==e.direction?(wl(),Sl("div",{key:0,class:["el-divider__text","is-"+e.contentPosition]},[Ht(e.$slots,"default")],2)):Pl("v-if",!0)],2)},qC.__file="packages/divider/src/index.vue",qC.install=e=>{e.component(qC.name,qC)};const KC=qC;var UC=Qn({name:"ElDrawer",components:{[VC.name]:VC},directives:{TrapFocus:Tb},props:{modelValue:{type:Boolean,required:!0},appendToBody:{type:Boolean,default:!1},beforeClose:Function,customClass:{type:String,default:""},direction:{type:String,default:"rtl",validator:e=>-1!==["ltr","rtl","ttb","btt"].indexOf(e)},showClose:{type:Boolean,default:!0},size:{type:[String,Number],default:"30%"},title:{type:String,default:""},closeOnClickModal:{type:Boolean,default:!0},withHeader:{type:Boolean,default:!0},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},zIndex:Number,modal:{type:Boolean,default:!0},modalFade:{type:Boolean,default:!0},modalClass:String,lockScroll:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!1}},emits:["open","opened","close","closed","update:modelValue"],setup(e,t){const n=lt(null);return Object.assign(Object.assign({},BC(e,t,n)),{drawerRef:n,isHorizontal:ca((()=>"rtl"===e.direction||"ltr"===e.direction)),drawerSize:ca((()=>"number"==typeof e.size?e.size+"px":e.size))})}});const GC={key:0,id:"el-drawer__title",class:"el-drawer__header"},XC=Ll("i",{class:"el-drawer__close el-icon el-icon-close"},null,-1),ZC={key:1,class:"el-drawer__body"};UC.render=function(e,t,n,l,a,o){const r=dl("el-overlay"),i=hl("trap-focus");return wl(),Sl(cl,{to:"body",disabled:!e.appendToBody},[Ll(Ia,{name:"el-drawer-fade",onAfterEnter:e.afterEnter,onAfterLeave:e.afterLeave,onBeforeLeave:e.beforeLeave},{default:Zt((()=>[Un(Ll(r,{mask:e.modal,"overlay-class":e.modalClass,"z-index":e.zIndex,onClick:e.onModalClick},{default:Zt((()=>[Un(Ll("div",{ref:"drawerRef","aria-modal":"true","aria-labelledby":"el-drawer__title","aria-label":e.title,class:["el-drawer",e.direction,e.customClass],style:e.isHorizontal?"width: "+e.drawerSize:"height: "+e.drawerSize,role:"dialog",onClick:t[2]||(t[2]=fo((()=>{}),["stop"]))},[e.withHeader?(wl(),Sl("header",GC,[Ht(e.$slots,"title",{},(()=>[Ll("span",{role:"heading",title:e.title},c(e.title),9,["title"])])),e.showClose?(wl(),Sl("button",{key:0,"aria-label":"close "+(e.title||"drawer"),class:"el-drawer__close-btn",type:"button",onClick:t[1]||(t[1]=(...t)=>e.handleClose&&e.handleClose(...t))},[XC],8,["aria-label"])):Pl("v-if",!0)])):Pl("v-if",!0),e.rendered?(wl(),Sl("section",ZC,[Ht(e.$slots,"default")])):Pl("v-if",!0)],14,["aria-label"]),[[i]])])),_:3},8,["mask","overlay-class","z-index","onClick"]),[[mo,e.visible]])])),_:1},8,["onAfterEnter","onAfterLeave","onBeforeLeave"])],8,["disabled"])},UC.__file="packages/drawer/src/index.vue",UC.install=e=>{e.component(UC.name,UC)};const JC=UC,QC=()=>{const e=Ay(),t=zl("elDropdown",{}),n=ca((()=>null==t?void 0:t.dropdownSize));return{ELEMENT:e,elDropdown:t,_elDropdownSize:n}};var eS=Qn({name:"ElDropdown",components:{ElButton:Z_,ElButtonGroup:ek,ElScrollbar:a_,ElPopper:M_},props:{trigger:{type:String,default:"hover"},type:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},placement:{type:String,default:"bottom"},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:Number,default:0},effect:{type:String,default:"light"},maxHeight:{type:[Number,String],default:""}},emits:["visible-change","click","command"],setup(e,{emit:t}){const n=na(),{ELEMENT:l}=QC(),a=lt(null),o=lt(!1),r=lt(null),i=ca((()=>"max-height: "+$y(e.maxHeight)));Sn((()=>o.value),(e=>{var n,l,a,o;e&&(null===(l=null===(n=c.value)||void 0===n?void 0:n.focus)||void 0===l||l.call(n)),e||null===(o=null===(a=c.value)||void 0===a?void 0:a.blur)||void 0===o||o.call(a),t("visible-change",e)}));const s=lt(!1);Sn((()=>s.value),(e=>{const t=c.value;t&&(e?Hy(t,"focusing"):Wy(t,"focusing"))}));const u=lt(null),c=ca((()=>{var t,n,l,a;const o=null!==(l=null===(n=null===(t=u.value)||void 0===t?void 0:t.$refs.triggerRef)||void 0===n?void 0:n.children[0])&&void 0!==l?l:{};return e.splitButton?null===(a=o.children)||void 0===a?void 0:a[1]:o}));function d(){var e;(null===(e=c.value)||void 0===e?void 0:e.disabled)||(o.value?f():p())}function p(){var t;(null===(t=c.value)||void 0===t?void 0:t.disabled)||(a.value&&clearTimeout(a.value),a.value=window.setTimeout((()=>{o.value=!0}),["click","contextmenu"].includes(e.trigger)?0:e.showTimeout))}function f(){var t;(null===(t=c.value)||void 0===t?void 0:t.disabled)||(h(),e.tabindex>=0&&v(c.value),clearTimeout(a.value),a.value=window.setTimeout((()=>{o.value=!1}),["click","contextmenu"].includes(e.trigger)?0:e.hideTimeout))}function h(){var e;null===(e=c.value)||void 0===e||e.setAttribute("tabindex","-1")}function v(e){h(),null==e||e.setAttribute("tabindex","0")}const m=ca((()=>e.size||l.size));return $l("elDropdown",{instance:n,dropdownSize:m,visible:o,handleClick:d,commandHandler:function(...e){t("command",...e)},show:p,hide:f,trigger:ca((()=>e.trigger)),hideOnClick:ca((()=>e.hideOnClick)),triggerElm:c}),mn((()=>{e.splitButton||(zy(c.value,"focus",(()=>{s.value=!0})),zy(c.value,"blur",(()=>{s.value=!1})),zy(c.value,"click",(()=>{s.value=!1}))),"hover"===e.trigger?(zy(c.value,"mouseenter",p),zy(c.value,"mouseleave",f)):"click"===e.trigger?zy(c.value,"click",d):"contextmenu"===e.trigger&&zy(c.value,"contextmenu",(e=>{e.preventDefault(),d()})),Object.assign(n,{handleClick:d,hide:f,resetTabindex:v})})),{visible:o,scrollbar:r,wrapStyle:i,dropdownSize:m,handlerMainButtonClick:e=>{t("click",e),f()},triggerVnode:u}}});const tS=Ll("i",{class:"el-dropdown__icon el-icon-arrow-down"},null,-1);eS.render=function(e,t,n,l,a,o){const r=dl("el-scrollbar"),i=dl("el-button"),s=dl("el-button-group"),u=dl("el-popper");return wl(),Sl(u,{ref:"triggerVnode",visible:e.visible,"onUpdate:visible":t[1]||(t[1]=t=>e.visible=t),placement:e.placement,effect:e.effect,pure:"","manual-mode":!0,trigger:[e.trigger],"popper-class":"el-dropdown__popper","append-to-body":"",transition:"el-zoom-in-top","stop-popper-mouse-event":!1,"gpu-acceleration":!1},{default:Zt((()=>[Ll(r,{ref:"scrollbar",tag:"ul","wrap-style":e.wrapStyle,"view-class":"el-dropdown__list"},{default:Zt((()=>[Ht(e.$slots,"dropdown")])),_:3},8,["wrap-style"])])),trigger:Zt((()=>[Ll("div",{class:["el-dropdown",e.dropdownSize?"el-dropdown--"+e.dropdownSize:""]},[e.splitButton?(wl(),Sl(s,{key:1},{default:Zt((()=>[Ll(i,{size:e.dropdownSize,type:e.type,onClick:e.handlerMainButtonClick},{default:Zt((()=>[Ht(e.$slots,"default")])),_:3},8,["size","type","onClick"]),Ll(i,{size:e.dropdownSize,type:e.type,class:"el-dropdown__caret-button"},{default:Zt((()=>[tS])),_:1},8,["size","type"])])),_:1})):Ht(e.$slots,"default",{key:0})],2)])),_:1},8,["visible","placement","effect","trigger"])},eS.__file="packages/dropdown/src/dropdown.vue",eS.install=e=>{e.component(eS.name,eS)};const nS=eS;var lS=Qn({name:"ElDropdownItem",props:{command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,icon:String},setup(e){const{elDropdown:t}=QC(),n=na();return{handleClick:function(l){var a,o;e.disabled?l.stopImmediatePropagation():(t.hideOnClick.value&&(null===(a=t.handleClick)||void 0===a||a.call(t)),null===(o=t.commandHandler)||void 0===o||o.call(t,e.command,n,l))}}}});lS.render=function(e,t,n,l,a,o){return wl(),Sl("li",{class:["el-dropdown-menu__item",{"is-disabled":e.disabled,"el-dropdown-menu__item--divided":e.divided}],"aria-disabled":e.disabled,tabindex:e.disabled?null:-1,onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t))},[e.icon?(wl(),Sl("i",{key:0,class:e.icon},null,2)):Pl("v-if",!0),Ht(e.$slots,"default")],10,["aria-disabled","tabindex"])},lS.__file="packages/dropdown/src/dropdown-item.vue",lS.install=e=>{e.component(lS.name,lS)};const aS=lS;var oS=Qn({name:"ElDropdownMenu",directives:{ClickOutside:Sb},setup(){const{_elDropdownSize:e,elDropdown:t}=QC(),n=e.value;function l(){var e;null===(e=t.hide)||void 0===e||e.call(t)}return mn((()=>{((e,t,n)=>{const l=lt(null),a=lt(null),o=lt(null),r=lt("dropdown-menu-"+Ey());function i(){var e;t.setAttribute("tabindex","-1"),null===(e=a.value)||void 0===e||e.forEach((e=>{e.setAttribute("tabindex","-1")}))}function s(e){i(),null==e||e.setAttribute("tabindex","0")}function u(){t.focus()}o.value=null==e?void 0:e.subTree.el,l.value=o.value.querySelectorAll("[tabindex='-1']"),a.value=[].slice.call(l.value),zy(t,"keydown",(function(e){const t=e.code;[vb.up,vb.down].includes(t)?(i(),s(l.value[0]),l.value[0].focus(),e.preventDefault(),e.stopPropagation()):t===vb.enter?n.handleClick():[vb.tab,vb.esc].includes(t)&&n.hide()})),zy(o.value,"keydown",(function(e){const t=e.code,o=e.target,r=a.value.indexOf(o),c=a.value.length-1;let d;[vb.up,vb.down].includes(t)?(d=t===vb.up?0!==r?r-1:0:r<c?r+1:c,i(),s(l.value[d]),l.value[d].focus(),e.preventDefault(),e.stopPropagation()):t===vb.enter?(u(),o.click(),n.props.hideOnClick&&n.hide()):[vb.tab,vb.esc].includes(t)&&(n.hide(),u())}),!0),o.value.setAttribute("id",r.value),t.setAttribute("aria-haspopup","list"),t.setAttribute("aria-controls",r.value),n.props.splitButton||(t.setAttribute("role","button"),t.setAttribute("tabindex",n.props.tabindex),Hy(t,"el-dropdown-selfdefine"))})(na(),t.triggerElm.value,t.instance)})),{size:n,show:function(){var e;["click","contextmenu"].includes(t.trigger.value)||null===(e=t.show)||void 0===e||e.call(t)},hide:function(){["click","contextmenu"].includes(t.trigger.value)||l()},innerHide:l,triggerElm:t.triggerElm}}});oS.render=function(e,t,n,l,a,o){const r=hl("clickOutside");return Un((wl(),Sl("ul",{class:[[e.size&&"el-dropdown-menu--"+e.size],"el-dropdown-menu"],onMouseenter:t[1]||(t[1]=fo(((...t)=>e.show&&e.show(...t)),["stop"])),onMouseleave:t[2]||(t[2]=fo(((...t)=>e.hide&&e.hide(...t)),["stop"]))},[Ht(e.$slots,"default")],34)),[[r,e.innerHide,e.triggerElm]])},oS.__file="packages/dropdown/src/dropdown-menu.vue",oS.install=e=>{e.component(oS.name,oS)};const rS=oS;let iS=0;var sS=Qn({name:"ImgEmpty",setup:()=>({id:++iS})});const uS={viewBox:"0 0 79 86",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},cS=Ll("stop",{"stop-color":"#FCFCFD",offset:"0%"},null,-1),dS=Ll("stop",{"stop-color":"#EEEFF3",offset:"100%"},null,-1),pS=Ll("stop",{"stop-color":"#FCFCFD",offset:"0%"},null,-1),fS=Ll("stop",{"stop-color":"#E9EBEF",offset:"100%"},null,-1),hS={id:"Illustrations",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},vS={id:"B-type",transform:"translate(-1268.000000, -535.000000)"},mS={id:"Group-2",transform:"translate(1268.000000, 535.000000)"},gS=Ll("path",{id:"Oval-Copy-2",d:"M39.5,86 C61.3152476,86 79,83.9106622 79,81.3333333 C79,78.7560045 57.3152476,78 35.5,78 C13.6847524,78 0,78.7560045 0,81.3333333 C0,83.9106622 17.6847524,86 39.5,86 Z",fill:"#F7F8FC"},null,-1),yS=Ll("polygon",{id:"Rectangle-Copy-14",fill:"#E5E7E9",transform:"translate(27.500000, 51.500000) scale(1, -1) translate(-27.500000, -51.500000) ",points:"13 58 53 58 42 45 2 45"},null,-1),bS={id:"Group-Copy",transform:"translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"},_S=Ll("polygon",{id:"Rectangle-Copy-10",fill:"#E5E7E9",transform:"translate(11.500000, 5.000000) scale(1, -1) translate(-11.500000, -5.000000) ",points:"2.84078316e-14 3 18 3 23 7 5 7"},null,-1),kS=Ll("polygon",{id:"Rectangle-Copy-11",fill:"#EDEEF2",points:"-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43"},null,-1),xS=Ll("polygon",{id:"Rectangle-Copy-13",fill:"#F8F9FB",transform:"translate(39.500000, 3.500000) scale(-1, 1) translate(-39.500000, -3.500000) ",points:"24 7 41 7 55 -3.63806207e-12 38 -3.63806207e-12"},null,-1),wS={id:"Rectangle-Copy-17",transform:"translate(53.000000, 45.000000)"},CS=Ll("polygon",{id:"Rectangle-Copy-18",fill:"#F8F9FB",transform:"translate(66.000000, 51.500000) scale(-1, 1) translate(-66.000000, -51.500000) ",points:"62 45 79 45 70 58 53 58"},null,-1);sS.render=function(e,t,n,l,a,o){return wl(),Sl("svg",uS,[Ll("defs",null,[Ll("linearGradient",{id:"linearGradient-1-"+e.id,x1:"38.8503086%",y1:"0%",x2:"61.1496914%",y2:"100%"},[cS,dS],8,["id"]),Ll("linearGradient",{id:"linearGradient-2-"+e.id,x1:"0%",y1:"9.5%",x2:"100%",y2:"90.5%"},[pS,fS],8,["id"]),Ll("rect",{id:"path-3-"+e.id,x:"0",y:"0",width:"17",height:"36"},null,8,["id"])]),Ll("g",hS,[Ll("g",vS,[Ll("g",mS,[gS,yS,Ll("g",bS,[_S,kS,Ll("rect",{id:"Rectangle-Copy-12",fill:`url(#linearGradient-1-${e.id})`,transform:"translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ",x:"38",y:"7",width:"17",height:"36"},null,8,["fill"]),xS]),Ll("rect",{id:"Rectangle-Copy-15",fill:`url(#linearGradient-2-${e.id})`,x:"13",y:"45",width:"40",height:"36"},null,8,["fill"]),Ll("g",wS,[Ll("mask",{id:"mask-4-"+e.id,fill:"white"},[Ll("use",{"xlink:href":"#path-3-"+e.id},null,8,["xlink:href"])],8,["id"]),Ll("use",{id:"Mask",fill:"#E0E3E9",transform:"translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ","xlink:href":"#path-3-"+e.id},null,8,["xlink:href"]),Ll("polygon",{id:"Rectangle-Copy",fill:"#D5D7DE",mask:`url(#mask-4-${e.id})`,transform:"translate(12.000000, 9.000000) scale(-1, 1) translate(-12.000000, -9.000000) ",points:"7 0 24 0 20 18 -1.70530257e-13 16"},null,8,["mask"])]),CS])])])])},sS.__file="packages/empty/src/img-empty.vue";var SS=Qn({name:"ElEmpty",components:{[sS.name]:sS},props:{image:{type:String,default:""},imageSize:Number,description:{type:String,default:""}},setup:e=>({emptyDescription:ca((()=>e.description||ak("el.table.emptyText"))),imageStyle:ca((()=>({width:e.imageSize?e.imageSize+"px":""})))})});const ES={class:"el-empty"},MS={class:"el-empty__description"},OS={key:1},TS={key:0,class:"el-empty__bottom"};SS.render=function(e,t,n,l,a,o){const r=dl("img-empty");return wl(),Sl("div",ES,[Ll("div",{class:"el-empty__image",style:e.imageStyle},[e.image?(wl(),Sl("img",{key:0,src:e.image,ondragstart:"return false"},null,8,["src"])):Ht(e.$slots,"image",{key:1},(()=>[Ll(r)]))],4),Ll("div",MS,[e.$slots.description?Ht(e.$slots,"description",{key:0}):(wl(),Sl("p",OS,c(e.emptyDescription),1))]),e.$slots.default?(wl(),Sl("div",TS,[Ht(e.$slots,"default")])):Pl("v-if",!0)])},SS.__file="packages/empty/src/index.vue",SS.install=e=>{e.component(SS.name,SS)};const DS=SS;var LS=Qn({name:"ElFooter",props:{height:{type:String,default:"60px"}}});LS.render=function(e,t,n,l,a,o){return wl(),Sl("footer",{class:"el-footer",style:{height:e.height}},[Ht(e.$slots,"default")],4)},LS.__file="packages/container/src/footer.vue",LS.install=e=>{e.component(LS.name,LS)};const NS=LS;var AS=Qn({name:"ElLabelWrap",props:{isAutoWidth:Boolean,updateAll:Boolean},setup(e,{slots:t}){const n=lt(null),l=zl("elForm"),a=zl("elFormItem"),o=lt(0);Sn(o,((t,n)=>{e.updateAll&&(l.registerLabelWidth(t,n),a.updateComputedLabelWidth(t))}));const r=(a="update")=>{Dt((()=>{t.default&&e.isAutoWidth&&("update"===a?o.value=(()=>{var e;if(null===(e=n.value)||void 0===e?void 0:e.firstElementChild){const e=window.getComputedStyle(n.value.firstElementChild).width;return Math.ceil(parseFloat(e))}return 0})():"remove"===a&&l.deregisterLabelWidth(o.value))}))},i=()=>r("update");return mn((()=>{Zy(n.value.firstElementChild,i),i()})),yn(i),bn((()=>{r("remove"),Jy(n.value.firstElementChild,i)})),function(){var a,r;if(!t)return null;if(e.isAutoWidth){const e=l.autoLabelWidth,r={};if(e&&"auto"!==e){const t=parseInt(e,10)-o.value;t&&(r.marginLeft=t+"px")}return da("div",{ref:n,class:["el-form-item__label-wrap"],style:r},null===(a=t.default)||void 0===a?void 0:a.call(t))}return da(gl,{ref:n},null===(r=t.default)||void 0===r?void 0:r.call(t))}}}),PS=Qn({name:"ElFormItem",componentName:"ElFormItem",components:{LabelWrap:AS},props:{label:String,labelWidth:String,prop:String,required:{type:Boolean,default:void 0},rules:[Object,Array],error:String,validateStatus:String,for:String,inlineMessage:{type:[String,Boolean],default:""},showMessage:{type:Boolean,default:!0},size:{types:String,validator:Ib}},setup(e){const t=ku(),n=Ay(),l=zl("elForm",{}),a=lt(""),o=lt(""),r=lt(!1),i=lt(""),s=na(),u=ca((()=>{let e=s.parent;for(;e&&"ElForm"!==e.type.name;){if("ElFormItem"===e.type.name)return!0;e=e.parent}return!1}));let c;Sn((()=>e.error),(e=>{o.value=e,a.value=e?"error":""}),{immediate:!0}),Sn((()=>e.validateStatus),(e=>{a.value=e}));const d=ca((()=>e.for||e.prop)),p=ca((()=>{if("top"===l.labelPosition)return{};const t=e.labelWidth||l.labelWidth;return t?{width:t}:{}})),f=ca((()=>{if("top"===l.labelPosition||l.inline)return{};if(!e.label&&!e.labelWidth&&u.value)return{};const t=e.labelWidth||l.labelWidth,n={};return"auto"===t?"auto"===e.labelWidth?n.marginLeft=i.value:"auto"===l.labelWidth&&(n.marginLeft=l.autoLabelWidth):n.marginLeft=t,n})),h=ca((()=>{const t=l.model;if(!t||!e.prop)return;let n=e.prop;return-1!==n.indexOf(":")&&(n=n.replace(/:/,".")),Sy(t,n,!0).v})),v=ca((()=>{let e=k(),t=!1;return e&&e.length&&e.every((e=>!e.required||(t=!0,!1))),t})),m=ca((()=>e.size||l.size)),g=ca((()=>m.value||n.size)),y=(t,n=ry)=>{r.value=!1;const i=x(t);if((!i||0===i.length)&&void 0===e.required)return void n();a.value="validating";const s={};i&&i.length>0&&i.forEach((e=>{delete e.trigger})),s[e.prop]=i;const u=new sm(s),c={};c[e.prop]=h.value,u.validate(c,{firstFields:!0},((t,r)=>{var i;a.value=t?"error":"success",o.value=t?t[0].message:"",n(o.value,r),null===(i=l.emit)||void 0===i||i.call(l,"validate",e.prop,!t,o.value||null)}))},b=()=>{a.value="",o.value="",r.value=!1},_=()=>{a.value="",o.value="";let t=l.model,n=h.value,i=e.prop;-1!==i.indexOf(":")&&(i=i.replace(/:/,"."));let s=Sy(t,i,!0);r.value=!0,Array.isArray(n)?s.o[s.k]=[].concat(c):s.o[s.k]=c,Dt((()=>{r.value=!1}))},k=()=>{const t=l.rules,n=e.rules,a=void 0!==e.required?{required:!!e.required}:[],o=Sy(t,e.prop||"",!1),r=t?o.o[e.prop||""]||o.v:[];return[].concat(n||r||[]).concat(a)},x=e=>k().filter((t=>!t.trigger||""===e||(Array.isArray(t.trigger)?t.trigger.indexOf(e)>-1:t.trigger===e))).map((e=>Object.assign({},e))),w=()=>{y("blur")},C=()=>{r.value?r.value=!1:y("change")},S=()=>{(k().length||void 0!==e.required)&&(t.on("el.form.blur",w),t.on("el.form.change",C))},E=Ue(Object.assign(Object.assign({},ct(e)),{size:g,validateState:a,removeValidateEvents:()=>{t.off("el.form.blur",w),t.off("el.form.change",C)},addValidateEvents:S,resetField:_,clearValidate:b,validate:y,formItemMitt:t,updateComputedLabelWidth:e=>{i.value=e?e+"px":""}}));return mn((()=>{var t;if(e.prop){null===(t=l.formMitt)||void 0===t||t.emit(Fb,E);let e=h.value;c=Array.isArray(e)?[...e]:e,S()}})),bn((()=>{var e;null===(e=l.formMitt)||void 0===e||e.emit(Vb,E)})),$l("elFormItem",E),{formItemClass:ca((()=>[{"el-form-item--feedback":l.statusIcon,"is-error":"error"===a.value,"is-validating":"validating"===a.value,"is-success":"success"===a.value,"is-required":v.value||e.required,"is-no-asterisk":l.hideRequiredAsterisk},g.value?"el-form-item--"+g.value:""])),shouldShowError:ca((()=>"error"===a.value&&e.showMessage&&l.showMessage)),elForm:l,labelStyle:p,contentStyle:f,validateMessage:o,labelFor:d,resetField:_,clearValidate:b}}});PS.render=function(e,t,n,l,a,o){const r=dl("LabelWrap");return wl(),Sl("div",{class:["el-form-item",e.formItemClass]},[Ll(r,{"is-auto-width":"auto"===e.labelStyle.width,"update-all":"auto"===e.elForm.labelWidth},{default:Zt((()=>[e.label||e.$slots.label?(wl(),Sl("label",{key:0,for:e.labelFor,class:"el-form-item__label",style:e.labelStyle},[Ht(e.$slots,"label",{},(()=>[Al(c(e.label+e.elForm.labelSuffix),1)]))],12,["for"])):Pl("v-if",!0)])),_:3},8,["is-auto-width","update-all"]),Ll("div",{class:"el-form-item__content",style:e.contentStyle},[Ht(e.$slots,"default"),Ll(Ia,{name:"el-zoom-in-top"},{default:Zt((()=>[e.shouldShowError?Ht(e.$slots,"error",{key:0,error:e.validateMessage},(()=>[Ll("div",{class:["el-form-item__error",{"el-form-item__error--inline":"boolean"==typeof e.inlineMessage?e.inlineMessage:e.elForm.inlineMessage||!1}]},c(e.validateMessage),3)])):Pl("v-if",!0)])),_:3})],4)],2)},PS.__file="packages/form/src/form-item.vue",PS.install=e=>{e.component(PS.name,PS)};const IS=PS;var FS=Qn({name:"ElHeader",props:{height:{type:String,default:"60px"}}});FS.render=function(e,t,n,l,a,o){return wl(),Sl("header",{class:"el-header",style:{height:e.height}},[Ht(e.$slots,"default")],4)},FS.__file="packages/container/src/header.vue",FS.install=e=>{e.component(FS.name,FS)};const VS=FS;var BS=Qn({name:"ElIcon",props:{name:{type:String,default:""}}});BS.render=function(e,t,n,l,a,o){return wl(),Sl("i",{class:"el-icon-"+e.name},null,2)},BS.__file="packages/icon/src/index.vue",BS.install=e=>{e.component(BS.name,BS)};const $S=BS,zS={CONTAIN:{name:"contain",icon:"el-icon-full-screen"},ORIGINAL:{name:"original",icon:"el-icon-c-scale-to-original"}},jS=!oy&&window.navigator.userAgent.match(/firefox/i)?"DOMMouseScroll":"mousewheel";var RS=Qn({name:"ElImageViewer",props:{urlList:{type:Array,default:[]},zIndex:{type:Number,default:2e3},initialIndex:{type:Number,default:0},infinite:{type:Boolean,default:!0},hideOnClickModal:{type:Boolean,default:!1}},emits:["close","switch"],setup(e,{emit:t}){let n=null,l=null,a=null;const o=lt(!0),r=lt(e.initialIndex),i=lt(null),s=lt(null),u=lt(zS.CONTAIN);let c=lt({scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1});const d=ca((()=>{const{urlList:t}=e;return t.length<=1})),p=ca((()=>0===r.value)),f=ca((()=>0===r.value)),h=ca((()=>e.urlList[r.value])),v=ca((()=>{const{scale:e,deg:t,offsetX:n,offsetY:l,enableTransition:a}=c.value,o={transform:`scale(${e}) rotate(${t}deg)`,transition:a?"transform .3s":"",marginLeft:n+"px",marginTop:l+"px"};return u.value.name===zS.CONTAIN.name&&(o.maxWidth=o.maxHeight="100%"),o}));function m(){jy(document,"keydown",n),jy(document,jS,l),n=null,l=null,t("close")}function g(){c.value={scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}}function y(){if(o.value)return;const e=Object.keys(zS),t=Object.values(zS),n=u.value.name,l=(t.findIndex((e=>e.name===n))+1)%e.length;u.value=zS[e[l]],g()}function b(){if(p.value&&!e.infinite)return;const t=e.urlList.length;r.value=(r.value-1+t)%t}function _(){if(f.value&&!e.infinite)return;const t=e.urlList.length;r.value=(r.value+1)%t}function k(e,t={}){if(o.value)return;const{zoomRate:n,rotateDeg:l,enableTransition:a}=Object.assign({zoomRate:.2,rotateDeg:90,enableTransition:!0},t);switch(e){case"zoomOut":c.value.scale>.2&&(c.value.scale=parseFloat((c.value.scale-n).toFixed(3)));break;case"zoomIn":c.value.scale=parseFloat((c.value.scale+n).toFixed(3));break;case"clocelise":c.value.deg+=l;break;case"anticlocelise":c.value.deg-=l}c.value.enableTransition=a}return Sn(h,(()=>{Dt((()=>{s.value.complete||(o.value=!0)}))})),Sn(r,(e=>{g(),t("switch",e)})),mn((()=>{var e,t;n=Dy((e=>{switch(e.code){case vb.esc:m();break;case vb.space:y();break;case vb.left:b();break;case vb.up:k("zoomIn");break;case vb.right:_();break;case vb.down:k("zoomOut")}})),l=Dy((e=>{k((e.wheelDelta?e.wheelDelta:-e.detail)>0?"zoomIn":"zoomOut",{zoomRate:.015,enableTransition:!1})})),zy(document,"keydown",n),zy(document,jS,l),null===(t=null===(e=i.value)||void 0===e?void 0:e.focus)||void 0===t||t.call(e)})),{index:r,wrapper:i,img:s,isSingle:d,isFirst:p,isLast:f,currentImg:h,imgStyle:v,mode:u,handleActions:k,prev:b,next:_,hide:m,toggleMode:y,handleImgLoad:function(){o.value=!1},handleImgError:function(e){o.value=!1,e.target.alt=ak("el.image.error")},handleMouseDown:function(e){if(o.value||0!==e.button)return;const{offsetX:t,offsetY:n}=c.value,l=e.pageX,r=e.pageY;a=Dy((e=>{c.value=Object.assign(Object.assign({},c.value),{offsetX:t+e.pageX-l,offsetY:n+e.pageY-r})})),zy(document,"mousemove",a),zy(document,"mouseup",(()=>{jy(document,"mousemove",a)})),e.preventDefault()}}}});const HS=Ll("i",{class:"el-icon-close"},null,-1),WS=Ll("i",{class:"el-icon-arrow-left"},null,-1),YS=Ll("i",{class:"el-icon-arrow-right"},null,-1),qS={class:"el-image-viewer__btn el-image-viewer__actions"},KS={class:"el-image-viewer__actions__inner"},US=Ll("i",{class:"el-image-viewer__actions__divider"},null,-1),GS=Ll("i",{class:"el-image-viewer__actions__divider"},null,-1),XS={class:"el-image-viewer__canvas"};RS.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,{name:"viewer-fade"},{default:Zt((()=>[Ll("div",{ref:"wrapper",tabindex:-1,class:"el-image-viewer__wrapper",style:{zIndex:e.zIndex}},[Ll("div",{class:"el-image-viewer__mask",onClick:t[1]||(t[1]=fo((t=>e.hideOnClickModal&&e.hide()),["self"]))}),Pl(" CLOSE "),Ll("span",{class:"el-image-viewer__btn el-image-viewer__close",onClick:t[2]||(t[2]=(...t)=>e.hide&&e.hide(...t))},[HS]),Pl(" ARROW "),e.isSingle?Pl("v-if",!0):(wl(),Sl(gl,{key:0},[Ll("span",{class:["el-image-viewer__btn el-image-viewer__prev",{"is-disabled":!e.infinite&&e.isFirst}],onClick:t[3]||(t[3]=(...t)=>e.prev&&e.prev(...t))},[WS],2),Ll("span",{class:["el-image-viewer__btn el-image-viewer__next",{"is-disabled":!e.infinite&&e.isLast}],onClick:t[4]||(t[4]=(...t)=>e.next&&e.next(...t))},[YS],2)],64)),Pl(" ACTIONS "),Ll("div",qS,[Ll("div",KS,[Ll("i",{class:"el-icon-zoom-out",onClick:t[5]||(t[5]=t=>e.handleActions("zoomOut"))}),Ll("i",{class:"el-icon-zoom-in",onClick:t[6]||(t[6]=t=>e.handleActions("zoomIn"))}),US,Ll("i",{class:e.mode.icon,onClick:t[7]||(t[7]=(...t)=>e.toggleMode&&e.toggleMode(...t))},null,2),GS,Ll("i",{class:"el-icon-refresh-left",onClick:t[8]||(t[8]=t=>e.handleActions("anticlocelise"))}),Ll("i",{class:"el-icon-refresh-right",onClick:t[9]||(t[9]=t=>e.handleActions("clocelise"))})])]),Pl(" CANVAS "),Ll("div",XS,[(wl(!0),Sl(gl,null,pa(e.urlList,((n,l)=>Un((wl(),Sl("img",{ref:"img",key:n,src:n,style:e.imgStyle,class:"el-image-viewer__img",onLoad:t[10]||(t[10]=(...t)=>e.handleImgLoad&&e.handleImgLoad(...t)),onError:t[11]||(t[11]=(...t)=>e.handleImgError&&e.handleImgError(...t)),onMousedown:t[12]||(t[12]=(...t)=>e.handleMouseDown&&e.handleMouseDown(...t))},null,44,["src"])),[[mo,l===e.index]]))),128))])],4)])),_:1})},RS.__file="packages/image-viewer/src/index.vue",RS.install=e=>{e.component(Image.name,Image)};const ZS=RS,JS=()=>void 0!==document.documentElement.style.objectFit,QS="contain";let eE="";var tE=Qn({name:"ElImage",components:{ImageViewer:ZS},inheritAttrs:!1,props:{appendToBody:{type:Boolean,default:!1},hideOnClickModal:{type:Boolean,default:!1},src:{type:String,default:""},fit:{type:String,default:""},lazy:{type:Boolean,default:!1},scrollContainer:{type:[String,Object],default:null},previewSrcList:{type:Array,default:()=>[]},zIndex:{type:Number,default:2e3}},emits:["error"],setup(e,{emit:t}){const n=cb(),l=lt(!1),a=lt(!0),o=lt(0),r=lt(0),i=lt(!1),s=lt(null);let u=null,c=null;const d=ca((()=>{const{fit:t}=e;return!oy&&t?JS()?{"object-fit":t}:function(e){const t=o.value,n=r.value;if(!s.value)return{};const{clientWidth:l,clientHeight:a}=s.value;if(!(t&&n&&l&&a))return{};const i=t/n,u=l/a;switch("scale-down"===e&&(e=t<l&&n<a?"none":QS),e){case"none":return{width:"auto",height:"auto"};case QS:return i<u?{width:"auto"}:{height:"auto"};case"cover":return i<u?{height:"auto"}:{width:"auto"};default:return{}}}(t):{}})),p=ca((()=>{const{fit:t}=e;return!oy&&!JS()&&"fill"!==t})),f=ca((()=>{const{previewSrcList:t}=e;return Array.isArray(t)&&t.length>0})),h=ca((()=>{const{src:t,previewSrcList:n}=e;let l=0;const a=n.indexOf(t);return a>=0&&(l=a),l})),v=()=>{if(oy)return;const t=n.value;a.value=!0,l.value=!1;const i=new Image;i.onload=e=>{return t=i,o.value=t.width,r.value=t.height,a.value=!1,void(l.value=!1);var t},i.onerror=m,Object.keys(t).forEach((e=>{if("onload"===e.toLowerCase())return;const n=t[e];i.setAttribute(e,n)})),i.src=e.src};function m(e){a.value=!1,l.value=!0,t("error",e)}function g(){((e,t)=>{if(oy||!e||!t)return!1;const n=e.getBoundingClientRect();let l;return l=[window,document,document.documentElement,null,void 0].includes(t)?{top:0,right:window.innerWidth,bottom:window.innerHeight,left:0}:t.getBoundingClientRect(),n.top<l.bottom&&n.bottom>l.top&&n.right>l.left&&n.left<l.right})(s.value,u)&&(v(),b())}function y(){if(oy)return;const{scrollContainer:t}=e;var n;u=(n=t)&&1===n.nodeType?t:py(t)&&""!==t?document.querySelector(t):Ky(s.value),u&&(c=zc(g,200),zy(u,"scroll",c),setTimeout((()=>g()),100))}function b(){!oy&&u&&c&&(jy(u,"scroll",c),u=null,c=null)}return Sn((()=>e.src),(()=>{v()})),mn((()=>{e.lazy?Dt(y):v()})),bn((()=>{e.lazy&&b()})),{attrs:n,loading:a,hasLoadError:l,showViewer:i,imgWidth:o,imgHeight:r,imageStyle:d,alignCenter:p,preview:f,imageIndex:h,clickHandler:function(){f.value&&(eE=document.body.style.overflow,document.body.style.overflow="hidden",i.value=!0)},closeViewer:function(){document.body.style.overflow=eE,i.value=!1},container:s,handleError:m,t:ak}}});const nE=Ll("div",{class:"el-image__placeholder"},null,-1),lE={class:"el-image__error"};tE.render=function(e,t,n,l,a,o){const r=dl("image-viewer");return wl(),Sl("div",{ref:"container",class:["el-image",e.$attrs.class],style:e.$attrs.style},[e.loading?Ht(e.$slots,"placeholder",{key:0},(()=>[nE])):e.hasLoadError?Ht(e.$slots,"error",{key:1},(()=>[Ll("div",lE,c(e.t("el.image.error")),1)])):(wl(),Sl("img",Bl({key:2,class:"el-image__inner"},e.attrs,{src:e.src,style:e.imageStyle,class:{"el-image__inner--center":e.alignCenter,"el-image__preview":e.preview},onClick:t[1]||(t[1]=(...t)=>e.clickHandler&&e.clickHandler(...t))}),null,16,["src"])),(wl(),Sl(cl,{to:"body",disabled:!e.appendToBody},[e.preview?(wl(),Sl(gl,{key:0},[e.showViewer?(wl(),Sl(r,{key:0,"z-index":e.zIndex,"initial-index":e.imageIndex,"url-list":e.previewSrcList,"hide-on-click-modal":e.hideOnClickModal,onClose:e.closeViewer},null,8,["z-index","initial-index","url-list","hide-on-click-modal","onClose"])):Pl("v-if",!0)],2112)):Pl("v-if",!0)],8,["disabled"]))],6)},tE.__file="packages/image/src/index.vue",tE.install=e=>{e.component(tE.name,tE)};const aE=tE;
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */function oE(e,t,n,l){return new(n||(n=Promise))((function(a,o){function r(e){try{s(l.next(e))}catch(t){o(t)}}function i(e){try{s(l.throw(e))}catch(t){o(t)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,i)}s((l=l.apply(e,t||[])).next())}))}const rE="ElInfiniteScroll",iE={delay:{type:Number,default:200},distance:{type:Number,default:0},disabled:{type:Boolean,default:!1},immediate:{type:Boolean,default:!0}},sE=(e,t)=>Ny(iE).reduce(((n,[l,a])=>{var o,r;const{type:i,default:s}=a,u=e.getAttribute("infinite-scroll-"+l);let c=null!==(r=null!==(o=t[u])&&void 0!==o?o:u)&&void 0!==r?r:s;return c="false"!==c&&c,c=i(c),n[l]=Number.isNaN(c)?s:c,n}),{}),uE=e=>{const{observer:t}=e[rE];t&&(t.disconnect(),delete e[rE].observer)},cE=(e,t)=>{const{container:n,containerEl:l,instance:a,observer:o,lastScrollTop:r}=e[rE],{disabled:i,distance:s}=sE(e,a),{clientHeight:u,scrollHeight:c,scrollTop:d}=l,p=d-r;if(e[rE].lastScrollTop=d,o||i||p<0)return;let f=!1;if(n===e)f=c-(u+d)<=s;else{const{clientTop:t,scrollHeight:n}=e;f=d+u>=(h=e,v=l,Math.abs(Uy(h)-Uy(v))+t+n-s)}var h,v;f&&t.call(a)};function dE(e,t){const{containerEl:n,instance:l}=e[rE],{disabled:a}=sE(e,l);a||(n.scrollHeight<=n.clientHeight?t.call(l):uE(e))}const pE={mounted(e,t){return oE(this,void 0,void 0,(function*(){const{instance:n,value:l}=t;dy(l)||wy(rE,"'v-infinite-scroll' binding value must be a function"),yield Dt();const{delay:a,immediate:o}=sE(e,n),r=Ky(e,!0),i=r===window?document.documentElement:r,s=zc(cE.bind(null,e,l),a);if(r){if(e[rE]={instance:n,container:r,containerEl:i,delay:a,cb:l,onScroll:s,lastScrollTop:i.scrollTop},o){const t=new MutationObserver(zc(dE.bind(null,e,l),50));e[rE].observer=t,t.observe(e,{childList:!0,subtree:!0}),dE(e,l)}r.addEventListener("scroll",s)}}))},unmounted(e){const{container:t,onScroll:n}=e[rE];null==t||t.removeEventListener("scroll",n),uE(e)},install:e=>{e.directive("InfiniteScroll",pE)}};var fE=Qn({name:"ElInputNumber",components:{ElInput:Qb},directives:{RepeatClick:Eb},props:{step:{type:Number,default:1},stepStrictly:{type:Boolean,default:!1},max:{type:Number,default:1/0},min:{type:Number,default:-1/0},modelValue:{required:!0,validator:e=>"Number"===gy(e)||void 0===e},disabled:{type:Boolean,default:!1},size:{type:String,validator:Ib},controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:""},name:String,label:String,placeholder:String,precision:{type:Number,validator:e=>e>=0&&e===parseInt(e+"",10)}},emits:["update:modelValue","change","input","blur","focus"],setup(e,{emit:t}){const n=Ay(),l=zl("elForm",{}),a=zl("elFormItem",{}),o=lt(null),r=Ue({currentValue:e.modelValue,userInput:null}),i=ca((()=>g(e.modelValue)<e.min)),s=ca((()=>m(e.modelValue)>e.max)),u=ca((()=>{const t=v(e.step);return void 0!==e.precision?(t>e.precision&&console.warn("[Element Warn][InputNumber]precision should not be less than the decimal places of step"),e.precision):Math.max(v(e.modelValue),t)})),c=ca((()=>e.controls&&"right"===e.controlsPosition)),d=ca((()=>e.size||a.size||n.size)),p=ca((()=>e.disabled||l.disabled)),f=ca((()=>{if(null!==r.userInput)return r.userInput;let t=r.currentValue;return"number"==typeof t&&void 0!==e.precision&&(t=t.toFixed(e.precision)),t})),h=(e,t)=>(void 0===t&&(t=u.value),parseFloat(Math.round(e*Math.pow(10,t))/Math.pow(10,t)+"")),v=e=>{if(void 0===e)return 0;const t=e.toString(),n=t.indexOf(".");let l=0;return-1!==n&&(l=t.length-n-1),l},m=t=>{if("number"!=typeof t&&void 0!==t)return r.currentValue;const n=Math.pow(10,u.value);return h((n*t+n*e.step)/n)},g=t=>{if("number"!=typeof t&&void 0!==t)return r.currentValue;const n=Math.pow(10,u.value);return h((n*t-n*e.step)/n)},y=n=>{const l=r.currentValue;"number"==typeof n&&void 0!==e.precision&&(n=h(n,e.precision)),void 0!==n&&n>=e.max&&(n=e.max),void 0!==n&&n<=e.min&&(n=e.min),l!==n&&(r.userInput=null,t("update:modelValue",n),t("input",n),t("change",n,l),r.currentValue=n)};return Sn((()=>e.modelValue),(n=>{let l=void 0===n?n:Number(n);if(void 0!==l){if(isNaN(l))return;if(e.stepStrictly){const t=v(e.step),n=Math.pow(10,t);l=Math.round(l/e.step)*n*e.step/n}void 0!==e.precision&&(l=h(l,e.precision))}void 0!==l&&l>=e.max&&(l=e.max,t("update:modelValue",l)),void 0!==l&&l<=e.min&&(l=e.min,t("update:modelValue",l)),r.currentValue=l,r.userInput=null}),{immediate:!0}),mn((()=>{let n=o.value.input;n.setAttribute("role","spinbutton"),n.setAttribute("aria-valuemax",e.max),n.setAttribute("aria-valuemin",e.min),n.setAttribute("aria-valuenow",r.currentValue),n.setAttribute("aria-disabled",p.value),"Number"!==gy(e.modelValue)&&void 0!==e.modelValue&&t("update:modelValue",void 0)})),yn((()=>{o.value.input.setAttribute("aria-valuenow",r.currentValue)})),{input:o,displayValue:f,handleInput:e=>r.userInput=e,handleInputChange:e=>{const t=""===e?void 0:Number(e);isNaN(t)&&""!==e||y(t),r.userInput=null},controlsAtRight:c,decrease:()=>{if(p.value||i.value)return;const t=e.modelValue||0,n=g(t);y(n)},increase:()=>{if(p.value||s.value)return;const t=e.modelValue||0,n=m(t);y(n)},inputNumberSize:d,inputNumberDisabled:p,maxDisabled:s,minDisabled:i}}});fE.render=function(e,t,n,l,a,o){const r=dl("el-input"),i=hl("repeat-click");return wl(),Sl("div",{class:["el-input-number",e.inputNumberSize?"el-input-number--"+e.inputNumberSize:"",{"is-disabled":e.inputNumberDisabled},{"is-without-controls":!e.controls},{"is-controls-right":e.controlsAtRight}],onDragstart:t[5]||(t[5]=fo((()=>{}),["prevent"]))},[e.controls?Un((wl(),Sl("span",{key:0,class:["el-input-number__decrease",{"is-disabled":e.minDisabled}],role:"button",onKeydown:t[1]||(t[1]=vo(((...t)=>e.decrease&&e.decrease(...t)),["enter"]))},[Ll("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-down":"minus")},null,2)],34)),[[i,e.decrease]]):Pl("v-if",!0),e.controls?Un((wl(),Sl("span",{key:1,class:["el-input-number__increase",{"is-disabled":e.maxDisabled}],role:"button",onKeydown:t[2]||(t[2]=vo(((...t)=>e.increase&&e.increase(...t)),["enter"]))},[Ll("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-up":"plus")},null,2)],34)),[[i,e.increase]]):Pl("v-if",!0),Ll(r,{ref:"input","model-value":e.displayValue,placeholder:e.placeholder,disabled:e.inputNumberDisabled,size:e.inputNumberSize,max:e.max,min:e.min,name:e.name,label:e.label,onKeydown:[vo(fo(e.increase,["prevent"]),["up"]),vo(fo(e.decrease,["prevent"]),["down"])],onBlur:t[3]||(t[3]=t=>e.$emit("blur",t)),onFocus:t[4]||(t[4]=t=>e.$emit("focus",t)),onInput:e.handleInput,onChange:e.handleInputChange},null,8,["model-value","placeholder","disabled","size","max","min","name","label","onKeydown","onInput","onChange"])],34)},fE.__file="packages/input-number/src/index.vue",fE.install=e=>{e.component(fE.name,fE)};const hE=fE;var vE=Qn({name:"ElLink",props:{type:{type:String,default:"default",validator:e=>["default","primary","success","warning","info","danger"].includes(e)},underline:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},href:{type:String,default:""},icon:{type:String,default:""}},emits:["click"],setup:(e,{emit:t})=>({handleClick:function(n){e.disabled||t("click",n)}})});const mE={key:1,class:"el-link--inner"};vE.render=function(e,t,n,l,a,o){return wl(),Sl("a",{class:["el-link",e.type?"el-link--"+e.type:"",e.disabled&&"is-disabled",e.underline&&!e.disabled&&"is-underline"],href:e.disabled?null:e.href,onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t))},[e.icon?(wl(),Sl("i",{key:0,class:e.icon},null,2)):Pl("v-if",!0),e.$slots.default?(wl(),Sl("span",mE,[Ht(e.$slots,"default")])):Pl("v-if",!0),e.$slots.icon?Ht(e.$slots,"icon",{key:2}):Pl("v-if",!0)],10,["href"])},vE.__file="packages/link/src/index.vue",vE.install=e=>{e.component(vE.name,vE)};const gE=vE,yE={parent:null,background:"",spinner:!1,text:null,fullscreen:!0,body:!1,lock:!1,customClass:""},bE={fullscreenLoading:null},_E=(e,t,n)=>{"absolute"!==n.originalPosition.value&&"fixed"!==n.originalPosition.value?Hy(t,"el-loading-parent--relative"):Wy(t,"el-loading-parent--relative"),e.fullscreen&&e.lock?Hy(t,"el-loading-parent--hidden"):Wy(t,"el-loading-parent--hidden")},kE=function(e={}){if(oy)return;"string"==typeof(e=Object.assign(Object.assign({},yE),e)).target&&(e.target=document.querySelector(e.target)),e.target=e.target||document.body,e.target!==document.body?e.fullscreen=!1:e.body=!0,e.fullscreen&&bE.fullscreenLoading&&bE.fullscreenLoading.close();const t=e.body?document.body:e.target;e.parent=t;const n=function({options:e,globalLoadingOption:t}){let n=null,l=null;const a=lt(!1),o=Ue(Object.assign(Object.assign({},e),{originalPosition:"",originalOverflow:"",visible:!1}));function r(){const e=o.parent;if(!e.vLoadingAddClassList){let t=e.getAttribute("loading-number");t=Number.parseInt(t)-1,t?e.setAttribute("loading-number",t.toString()):(Wy(e,"el-loading-parent--relative"),e.removeAttribute("loading-number")),Wy(e,"el-loading-parent--hidden")}n.el&&n.el.parentNode&&n.el.parentNode.removeChild(n.el)}const i=Object.assign(Object.assign({},ct(o)),{setText:function(e){o.text=e},close:function(){o.parent.vLoadingAddClassList=null,o.fullscreen&&(t.fullscreenLoading=void 0),a.value=!0,clearTimeout(l),l=window.setTimeout((()=>{a.value&&(a.value=!1,r())}),400),o.visible=!1},handleAfterLeave:function(){a.value&&(a.value=!1,r())}}),s={name:"ElLoading",setup:()=>i,render(){const e=da("svg",{class:"circular",viewBox:"25 25 50 50"},[da("circle",{class:"path",cx:"50",cy:"50",r:"20",fill:"none"})]),t=da("i",{class:this.spinner}),n=da("p",{class:"el-loading-text"},[this.text]);return da(Ia,{name:"el-loading-fade",onAfterLeave:this.handleAfterLeave},{default:Zt((()=>[Un(Ll("div",{style:{backgroundColor:this.background||""},class:["el-loading-mask",this.customClass,this.fullscreen?"is-fullscreen":""]},[da("div",{class:"el-loading-spinner"},[this.spinner?t:e,this.text?n:null])]),[[mo,this.visible]])]))})}};return n=Ll(s),ko(n,document.createElement("div")),Object.assign(Object.assign({},i),{vm:n,get $el(){return n.el}})}({options:e,globalLoadingOption:bE});var l,a,o;l=e,a=t,o=n,oE(void 0,void 0,void 0,(function*(){const e={};l.fullscreen?(o.originalPosition.value=Yy(document.body,"position"),o.originalOverflow.value=Yy(document.body,"overflow"),e.zIndex=String(y_.nextZIndex())):l.body?(o.originalPosition.value=Yy(document.body,"position"),yield Dt(),["top","left"].forEach((t=>{const n="top"===t?"scrollTop":"scrollLeft";e[t]=l.target.getBoundingClientRect()[t]+document.body[n]+document.documentElement[n]-parseInt(Yy(document.body,"margin-"+t),10)+"px"})),["height","width"].forEach((t=>{e[t]=l.target.getBoundingClientRect()[t]+"px"}))):o.originalPosition.value=Yy(a,"position"),Object.keys(e).forEach((t=>{o.$el.style[t]=e[t]}))})),_E(e,t,n),e.parent.vLoadingAddClassList=()=>{_E(e,t,n)};let r=t.getAttribute("loading-number");return r=r?Number.parseInt(r)+1:1,t.setAttribute("loading-number",r.toString()),t.appendChild(n.$el),Dt().then((()=>{n.visible.value=!uy(e,"visible")||e.visible})),e.fullscreen&&(bE.fullscreenLoading=n),n},xE=(e,t)=>{const n=e.getAttribute("element-loading-text"),l=e.getAttribute("element-loading-spinner"),a=e.getAttribute("element-loading-background"),o=e.getAttribute("element-loading-custom-class"),r=t.instance;e.instance=kE({text:r&&r[n]||n,spinner:r&&r[l]||l,background:r&&r[a]||a,customClass:r&&r[o]||o,fullscreen:!!t.modifiers.fullscreen,target:t.modifiers.fullscreen?null:e,body:!!t.modifiers.body,visible:!0,lock:!!t.modifiers.lock})},wE={mounted(e,t){t.value&&xE(e,t)},updated(e,t){const n=e.instance;t.oldValue!==t.value&&(t.value?xE(e,t):n.close())},unmounted(e){var t;null===(t=null==e?void 0:e.instance)||void 0===t||t.close()}};var CE={install(e){e.directive("loading",wE),e.config.globalProperties.$loading=kE},directive:wE,service:kE},SE=Qn({name:"ElMain"});const EE={class:"el-main"};SE.render=function(e,t,n,l,a,o){return wl(),Sl("main",EE,[Ht(e.$slots,"default")])},SE.__file="packages/container/src/main.vue",SE.install=e=>{e.component(SE.name,SE)};const ME=SE;class OE{constructor(e,t){this.parent=e,this.domNode=t,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(e){e===this.subMenuItems.length?e=0:e<0&&(e=this.subMenuItems.length-1),this.subMenuItems[e].focus(),this.subIndex=e}addListeners(){const e=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,(t=>{t.addEventListener("keydown",(t=>{let n=!1;switch(t.code){case vb.down:this.gotoSubIndex(this.subIndex+1),n=!0;break;case vb.up:this.gotoSubIndex(this.subIndex-1),n=!0;break;case vb.tab:bb(e,"mouseleave");break;case vb.enter:case vb.space:n=!0,t.currentTarget.click()}return n&&(t.preventDefault(),t.stopPropagation()),!1}))}))}}class TE{constructor(e){this.domNode=e,this.submenu=null,this.submenu=null,this.init()}init(){this.domNode.setAttribute("tabindex","0");const e=this.domNode.querySelector(".el-menu");e&&(this.submenu=new OE(this,e)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",(e=>{let t=!1;switch(e.code){case vb.down:bb(e.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),t=!0;break;case vb.up:bb(e.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),t=!0;break;case vb.tab:bb(e.currentTarget,"mouseleave");break;case vb.enter:case vb.space:t=!0,e.currentTarget.click()}t&&e.preventDefault()}))}}class DE{constructor(e){this.domNode=e,this.init()}init(){const e=this.domNode.childNodes;[].filter.call(e,(e=>1===e.nodeType)).forEach((e=>{new TE(e)}))}}var LE=Qn({name:"ElMenuCollapseTransition",setup:()=>({on:{beforeEnter(e){e.style.opacity=.2},enter(e,t){Hy(e,"el-opacity-transition"),e.style.opacity=1,t()},afterEnter(e){Wy(e,"el-opacity-transition"),e.style.opacity=""},beforeLeave(e){e.dataset||(e.dataset={}),Ry(e,"el-menu--collapse")?(Wy(e,"el-menu--collapse"),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth,Hy(e,"el-menu--collapse")):(Hy(e,"el-menu--collapse"),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth,Wy(e,"el-menu--collapse")),e.style.width=e.scrollWidth+"px",e.style.overflow="hidden"},leave(e){Hy(e,"horizontal-collapse-transition"),e.style.width=e.dataset.scrollWidth+"px"}}})});LE.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,Bl({mode:"out-in"},fa(e.on)),{default:Zt((()=>[Ht(e.$slots,"default")])),_:3},16)},LE.__file="packages/menu/src/menu-collapse-transition.vue";var NE=Qn({name:"ElMenu",componentName:"ElMenu",components:{ElMenuCollapseTransition:LE},props:{mode:{type:String,default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:Array,uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,default:"hover"},collapse:Boolean,backgroundColor:{type:String},textColor:{type:String},activeTextColor:{type:String},collapseTransition:{type:Boolean,default:!0}},emits:["close","open","select"],setup(e,t){const n=lt(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),l=na(),a=lt(e.defaultActive),o=lt({}),r=lt({}),i=lt(!1),s=ku(),u=l.appContext.config.globalProperties.$router,c=function(e=""){const t=lt("");return e?(t.value=function(e,t=.2){let{red:n,green:l,blue:a}=function(e){let t=e.replace("#","");if(/^[0-9a-fA-F]{3}$/.test(t)){const e=t.split("");for(let t=2;t>=0;t--)e.splice(t,0,e[t]);t=e.join("")}return/^[0-9a-fA-F]{6}$/.test(t)?{red:parseInt(t.slice(0,2),16),green:parseInt(t.slice(2,4),16),blue:parseInt(t.slice(4,6),16)}:{red:255,green:255,blue:255}}(e);return t>0?(n*=1-t,l*=1-t,a*=1-t):(n+=(255-n)*t,l+=(255-l)*t,a+=(255-a)*t),`rgb(${Math.round(n)}, ${Math.round(l)}, ${Math.round(a)})`}(e),t):t}(e.backgroundColor),d=ca((()=>"horizontal"===e.mode||"vertical"===e.mode&&e.collapse)),p=()=>{const t=a.value,n=o.value[t];n&&"horizontal"!==e.mode&&!e.collapse&&n.indexPath.forEach((e=>{let t=r.value[e];t&&v(e,null==t?void 0:t.indexPath)}))},f=e=>{r.value[e.index]=e},h=e=>{delete r.value[e.index]},v=(t,l)=>{n.value.includes(t)||(e.uniqueOpened&&(n.value=n.value.filter((e=>-1!==(nt(l)?l.value:l).indexOf(e)))),n.value.push(t))},m=e=>{const t=n.value.indexOf(e);-1!==t&&n.value.splice(t,1)},g=e=>{const{index:l,indexPath:a}=e;n.value.includes(l)?(m(l),t.emit("close",l,a.value)):(v(l,a),t.emit("open",l,a.value))},y=l=>{const{index:o,indexPath:r}=l,i=null!==l.index,s=a.value;i&&(a.value=l.index),t.emit("select",o,r.value,l),("horizontal"===e.mode||e.collapse)&&(n.value=[]),e.router&&u&&i&&b(l,(e=>{if(a.value=s,e){if("NavigationDuplicated"===e.name)return;console.error(e)}}))},b=(e,t)=>{let n=e.route||e.index;try{null==u||u.push(n,(()=>null),t)}catch(l){console.error(l)}},_=t=>{const n=o.value,l=n[t]||n[a.value]||n[e.defaultActive];l?(a.value=l.index,p()):i.value?i.value=!1:a.value=null};return Sn((()=>e.defaultActive),(e=>{o.value[e]||(a.value=""),_(e)})),Sn(o.value,(()=>{_()})),Sn((()=>e.collapse),((t,l)=>{t!==l&&(i.value=!0),t&&(n.value=[]),s.emit("rootMenu:toggle-collapse",Boolean(e.collapse))})),$l("rootMenu",{props:e,openedMenus:n,items:o,submenus:r,hoverBackground:c,activeIndex:a,isMenuPopup:d,methods:{addMenuItem:e=>{o.value[e.index]=e},removeMenuItem:e=>{delete o.value[e.index]},addSubMenu:f,removeSubMenu:h,openMenu:v,closeMenu:m},rootMenuEmit:s.emit,rootMenuOn:s.on}),$l("subMenu:"+l.uid,{addSubMenu:f,removeSubMenu:h}),mn((()=>{p(),s.on("menuItem:item-click",y),s.on("submenu:submenu-click",g),"horizontal"===e.mode&&new DE(l.vnode.el)})),{hoverBackground:c,isMenuPopup:d,props:e,open:e=>{const{indexPath:t}=r.value[e.toString()];t.forEach((e=>v(e,t)))},close:e=>{m(e)}}}});NE.render=function(e,t,n,l,a,o){const r=dl("el-menu-collapse-transition");return e.props.collapseTransition?(wl(),Sl(r,{key:0},{default:Zt((()=>[(wl(),Sl("ul",{key:+e.props.collapse,role:"menubar",style:{backgroundColor:e.props.backgroundColor||""},class:{"el-menu":!0,"el-menu--horizontal":"horizontal"===e.mode,"el-menu--collapse":e.props.collapse}},[Ht(e.$slots,"default")],6))])),_:3})):(wl(),Sl("ul",{key:+e.props.collapse,role:"menubar",style:{backgroundColor:e.props.backgroundColor||""},class:{"el-menu":!0,"el-menu--horizontal":"horizontal"===e.mode,"el-menu--collapse":e.props.collapse}},[Ht(e.$slots,"default")],6))},NE.__file="packages/menu/src/menu.vue",NE.install=e=>{e.component(NE.name,NE)};const AE=NE;function PE(e,t){const n=zl("rootMenu"),l=ca((()=>{let n=e.parent;const l=[t];for(;"ElMenu"!==n.type.name;)n.props.index&&l.unshift(n.props.index),n=n.parent;return l}));return{parentMenu:ca((()=>{let t=e.parent;for(;t&&-1===["ElMenu","ElSubmenu"].indexOf(t.type.name);)t=t.parent;return t})),paddingStyle:ca((()=>{let t=e.parent;if("vertical"!==n.props.mode)return{};let l=20;if(n.props.collapse)l=20;else for(;t&&"ElMenu"!==t.type.name;)"ElSubmenu"===t.type.name&&(l+=20),t=t.parent;return{paddingLeft:l+"px"}})),indexPath:l}}var IE=Qn({name:"ElTooltip",components:{ElPopper:M_},props:Object.assign(Object.assign({},k_),{manual:{type:Boolean,default:!1},modelValue:{type:Boolean,validator:e=>"boolean"==typeof e,default:void 0},openDelay:{type:Number,default:0},visibleArrow:{type:Boolean,default:!0},tabindex:{type:Number,default:0}}),emits:[Nb],setup(e,t){e.manual&&void 0===e.modelValue&&wy("[ElTooltip]","You need to pass a v-model to el-tooltip when `manual` is true");const n=lt(null);return{popper:n,onUpdateVisible:e=>{t.emit(Nb,e)},updatePopper:()=>n.value.update()}},render(){const{$slots:e,content:t,manual:n,openDelay:l,onUpdateVisible:a,showAfter:o,visibleArrow:r,modelValue:i,tabindex:s}=this,u=()=>{wy("[ElTooltip]","you need to provide a valid default slot.")};return da(M_,Object.assign(Object.assign({},Object.keys(k_).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:this[t]})),{})),{ref:"popper",manualMode:n,showAfter:l||o,showArrow:r,visible:i,"onUpdate:visible":a}),{default:()=>e.content?e.content():t,trigger:()=>{if(e.default){const t=u_(e.default(),1);return t||u(),Nl(t,{tabindex:s},!0)}u()}})}});IE.install=e=>{e.component(IE.name,IE)};const FE=IE;var VE=Qn({name:"ElMenuItem",componentName:"ElMenuItem",components:{ElTooltip:FE},props:{index:{default:null,validator:e=>"string"==typeof e||null===e},route:[String,Object],disabled:Boolean},emits:["click"],setup(e,{emit:t,slots:n}){const l=na(),a=zl("rootMenu"),{parentMenu:o,paddingStyle:r,indexPath:i}=PE(l,e.index),{addSubMenu:s,removeSubMenu:u}=zl("subMenu:"+o.value.uid),c=ca((()=>e.index===a.activeIndex.value)),d=ca((()=>a.hoverBackground.value)),p=ca((()=>a.props.backgroundColor||"")),f=ca((()=>a.props.activeTextColor||"")),h=ca((()=>a.props.textColor||"")),v=ca((()=>a.props.mode)),m=ca((()=>"ElMenu"!==o.value.type.name)),g=ca((()=>{const e={color:c.value?f.value:h.value,borderBottomColor:""};return"horizontal"!==v.value||m.value||(e.borderBottomColor=c.value?a.props.activeTextColor?f.value:"":"transparent"),e}));return mn((()=>{s({index:e.index,indexPath:i,active:c}),a.methods.addMenuItem({index:e.index,indexPath:i,active:c})})),bn((()=>{u({index:e.index,indexPath:i,active:c}),a.methods.removeMenuItem({index:e.index,indexPath:i,active:c})})),{parentMenu:o,rootMenu:a,slots:n,paddingStyle:r,itemStyle:g,backgroundColor:p,active:c,handleClick:()=>{e.disabled||(a.rootMenuEmit("menuItem:item-click",{index:e.index,indexPath:i,route:e.route}),t("click",{index:e.index,indexPath:i.value}))},onMouseEnter:()=>{("horizontal"!==v.value||a.props.backgroundColor)&&(l.vnode.el.style.backgroundColor=d.value)},onMouseLeave:()=>{("horizontal"!==v.value||a.props.backgroundColor)&&(l.vnode.el.style.backgroundColor=p.value)}}}});const BE={style:{position:"absolute",left:"0",top:"0",height:"100%",width:"100%",display:"inline-block","box-sizing":"border-box",padding:"0 20px"}};VE.render=function(e,t,n,l,a,o){const r=dl("el-tooltip");return wl(),Sl("li",{class:["el-menu-item",{"is-active":e.active,"is-disabled":e.disabled}],role:"menuitem",tabindex:"-1",style:[e.paddingStyle,e.itemStyle,{backgroundColor:e.backgroundColor}],onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t)),onMouseenter:t[2]||(t[2]=(...t)=>e.onMouseEnter&&e.onMouseEnter(...t)),onFocus:t[3]||(t[3]=(...t)=>e.onMouseEnter&&e.onMouseEnter(...t)),onBlur:t[4]||(t[4]=(...t)=>e.onMouseLeave&&e.onMouseLeave(...t)),onMouseleave:t[5]||(t[5]=(...t)=>e.onMouseLeave&&e.onMouseLeave(...t))},["ElMenu"===e.parentMenu.type.name&&e.rootMenu.props.collapse&&e.slots.title?(wl(),Sl(r,{key:0,effect:"dark",placement:"right"},{content:Zt((()=>[Ht(e.$slots,"title")])),default:Zt((()=>[Ll("div",BE,[Ht(e.$slots,"default")])])),_:3})):(wl(),Sl(gl,{key:1},[Ht(e.$slots,"default"),Ht(e.$slots,"title")],64))],38)},VE.__file="packages/menu/src/menuItem.vue",VE.install=e=>{e.component(VE.name,VE)};const $E=VE;var zE=Qn({name:"ElMenuItemGroup",componentName:"ElMenuItemGroup",props:{title:{type:String}},setup(e,{slots:t}){const n=Ue({paddingLeft:20}),l=na(),a=ca((()=>{let e=20,t=l.parent;if(o.collapse)return 20;for(;t&&"ElMenu"!==t.type.name;)"ElSubmenu"===t.type.name&&(e+=20),t=t.parent;return e})),{props:o}=zl("rootMenu");return{data:n,levelPadding:a,props:e,slots:t}}});const jE={class:"el-menu-item-group"};zE.render=function(e,t,n,l,a,o){return wl(),Sl("li",jE,[Ll("div",{class:"el-menu-item-group__title",style:{paddingLeft:e.levelPadding+"px"}},[e.slots.title?Ht(e.$slots,"title",{key:1}):(wl(),Sl(gl,{key:0},[Al(c(e.title),1)],2112))],4),Ll("ul",null,[Ht(e.$slots,"default")])])},zE.__file="packages/menu/src/menuItemGroup.vue",zE.install=e=>{e.component(zE.name,zE)};const RE=zE,HE={success:"success",info:"info",warning:"warning",error:"error"};var WE=Qn({name:"ElMessage",props:{customClass:{type:String,default:""},center:{type:Boolean,default:!1},dangerouslyUseHTMLString:{type:Boolean,default:!1},duration:{type:Number,default:3e3},iconClass:{type:String,default:""},id:{type:String,default:""},message:{type:[String,Object],default:""},onClose:{type:Function,required:!0},showClose:{type:Boolean,default:!1},type:{type:String,default:"info"},offset:{type:Number,default:20},zIndex:{type:Number,default:0}},emits:["destroy"],setup(e){const t=ca((()=>{const t=e.type;return t&&HE[t]?"el-message__icon el-icon-"+HE[t]:""})),n=ca((()=>({top:e.offset+"px",zIndex:e.zIndex}))),l=lt(!1);let a=null;function o(){e.duration>0&&(a=setTimeout((()=>{l.value&&r()}),e.duration))}function r(){l.value=!1}function i({code:e}){e===vb.esc?l.value&&r():o()}return mn((()=>{o(),l.value=!0,zy(document,"keydown",i)})),bn((()=>{jy(document,"keydown",i)})),{typeClass:t,customStyle:n,visible:l,close:r,clearTimer:function(){clearTimeout(a),a=null},startTimer:o}}});const YE={key:0,class:"el-message__content"};WE.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,{name:"el-message-fade",onBeforeLeave:e.onClose,onAfterLeave:t[4]||(t[4]=t=>e.$emit("destroy"))},{default:Zt((()=>[Un(Ll("div",{id:e.id,class:["el-message",e.type&&!e.iconClass?"el-message--"+e.type:"",e.center?"is-center":"",e.showClose?"is-closable":"",e.customClass],style:e.customStyle,role:"alert",onMouseenter:t[2]||(t[2]=(...t)=>e.clearTimer&&e.clearTimer(...t)),onMouseleave:t[3]||(t[3]=(...t)=>e.startTimer&&e.startTimer(...t))},[e.type||e.iconClass?(wl(),Sl("i",{key:0,class:[e.typeClass,e.iconClass]},null,2)):Pl("v-if",!0),Ht(e.$slots,"default",{},(()=>[e.dangerouslyUseHTMLString?(wl(),Sl(gl,{key:1},[Pl(" Caution here, message could've been compromised, never use user's input as message "),Pl("  eslint-disable-next-line "),Ll("p",{class:"el-message__content",innerHTML:e.message},null,8,["innerHTML"])],2112)):(wl(),Sl("p",YE,c(e.message),1))])),e.showClose?(wl(),Sl("div",{key:1,class:"el-message__closeBtn el-icon-close",onClick:t[1]||(t[1]=fo(((...t)=>e.close&&e.close(...t)),["stop"]))})):Pl("v-if",!0)],46,["id"]),[[mo,e.visible]])])),_:3},8,["onBeforeLeave"])},WE.__file="packages/message/src/index.vue";const qE=[];let KE=1;const UE=function(e={}){if(oy)return;"string"==typeof e&&(e={message:e});let t=e,n=e.offset||20;qE.forEach((({vm:e})=>{n+=(e.el.offsetHeight||0)+16})),n+=16;const l="message_"+KE++,a=t.onClose;t=Object.assign(Object.assign({},t),{onClose:()=>{!function(e,t){const n=qE.findIndex((({vm:t})=>{const{id:n}=t.component.props;return e===n}));if(-1===n)return;const{vm:l}=qE[n];if(!l)return;null==t||t(l);const a=l.el.offsetHeight;qE.splice(n,1);const o=qE.length;if(!(o<1))for(let r=n;r<o;r++){const e=parseInt(qE[r].vm.el.style.top,10)-a-16;qE[r].vm.component.props.offset=e}}(l,a)},offset:n,id:l,zIndex:y_.nextZIndex()});const o=document.createElement("div");o.className="container_"+l;const r=t.message,i=Ll(WE,t,El(t.message)?{default:()=>r}:null);return i.props.onDestroy=()=>{ko(null,o)},ko(i,o),qE.push({vm:i}),document.body.appendChild(o.firstElementChild),{close:()=>i.component.proxy.visible=!1}};["success","warning","info","error"].forEach((e=>{UE[e]=t=>("string"==typeof t?t={message:t,type:e}:t.type=e,UE(t))})),UE.closeAll=function(){for(let e=qE.length-1;e>=0;e--)qE[e].vm.component.ctx.close()};const GE=UE;GE.install=e=>{e.config.globalProperties.$message=GE};const XE={success:"success",info:"info",warning:"warning",error:"error"};var ZE=Qn({name:"ElMessageBox",directives:{TrapFocus:Tb},components:{ElButton:Z_,ElInput:Qb,ElOverlay:VC},inheritAttrs:!1,props:{buttonSize:{type:String,validator:Ib},modal:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},closeOnHashChange:{type:Boolean,default:!0},center:Boolean,roundButton:{default:!1,type:Boolean},container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(e,{emit:t}){const n=lt(!1),l=Ue({beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,iconClass:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:null,inputValidator:null,inputErrorMessage:"",message:null,modalFade:!0,modalClass:"",showCancelButton:!1,showConfirmButton:!0,type:"",title:void 0,showInput:!1,action:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonDisabled:!1,editorErrorMessage:"",validateError:!1,zIndex:y_.nextZIndex()}),a=ca((()=>l.iconClass||(l.type&&XE[l.type]?"el-icon-"+XE[l.type]:""))),o=ca((()=>!!l.message)),r=lt(null),i=lt(null),s=ca((()=>"el-button--primary "+l.confirmButtonClass));function u(){n.value&&(n.value=!1,Dt((()=>{l.action&&t("action",l.action)})))}Sn((()=>l.inputValue),(t=>oE(this,void 0,void 0,(function*(){yield Dt(),"prompt"===e.boxType&&null!==t&&d()}))),{immediate:!0}),Sn((()=>n.value),(t=>{t&&("alert"!==e.boxType&&"confirm"!==e.boxType||Dt().then((()=>{var e,t,n;null===(n=null===(t=null===(e=i.value)||void 0===e?void 0:e.$el)||void 0===t?void 0:t.focus)||void 0===n||n.call(t)})),l.zIndex=y_.nextZIndex()),"prompt"===e.boxType&&(t?Dt().then((()=>{r.value&&r.value.$el&&p().focus()})):(l.editorErrorMessage="",l.validateError=!1))})),mn((()=>oE(this,void 0,void 0,(function*(){yield Dt(),e.closeOnHashChange&&zy(window,"hashchange",u)})))),bn((()=>{e.closeOnHashChange&&jy(window,"hashchange",u)}));const c=t=>{var n;("prompt"!==e.boxType||"confirm"!==t||d())&&(l.action=t,l.beforeClose?null===(n=l.beforeClose)||void 0===n||n.call(l,t,l,u):u())},d=()=>{if("prompt"===e.boxType){const e=l.inputPattern;if(e&&!e.test(l.inputValue||""))return l.editorErrorMessage=l.inputErrorMessage||ak("el.messagebox.error"),l.validateError=!0,!1;const t=l.inputValidator;if("function"==typeof t){const e=t(l.inputValue);if(!1===e)return l.editorErrorMessage=l.inputErrorMessage||ak("el.messagebox.error"),l.validateError=!0,!1;if("string"==typeof e)return l.editorErrorMessage=e,l.validateError=!0,!1}}return l.editorErrorMessage="",l.validateError=!1,!0},p=()=>{const e=r.value.$refs;return e.input||e.textarea},f=()=>{c("close")};return e.closeOnPressEscape?kb({handleClose:f},n):((e,t,n)=>{const l=e=>{(e=>e.code===vb.esc)(e)&&e.stopImmediatePropagation()};Sn((()=>e.value),(e=>{e?zy(document,t,l,!0):jy(document,t,l,!0)}),{immediate:!0})})(n,"keydown"),e.lockScroll&&fb(n),hb(n),Object.assign(Object.assign({},ct(l)),{visible:n,hasMessage:o,icon:a,confirmButtonClasses:s,inputRef:r,confirmRef:i,doClose:u,handleClose:f,handleWrapperClick:()=>{e.closeOnClickModal&&c(l.distinguishCancelAndClose?"close":"cancel")},handleInputEnter:()=>{if("textarea"!==l.inputType)return c("confirm")},handleAction:c,t:ak})}});const JE={key:0,class:"el-message-box__header"},QE={class:"el-message-box__title"},eM=Ll("i",{class:"el-message-box__close el-icon-close"},null,-1),tM={class:"el-message-box__content"},nM={class:"el-message-box__container"},lM={key:1,class:"el-message-box__message"},aM={key:0},oM={class:"el-message-box__input"},rM={class:"el-message-box__btns"};ZE.render=function(e,t,n,l,a,o){const r=dl("el-input"),i=dl("el-button"),s=dl("el-overlay"),u=hl("trap-focus");return wl(),Sl(Ia,{name:"fade-in-linear",onAfterLeave:t[8]||(t[8]=t=>e.$emit("vanish"))},{default:Zt((()=>[Un(Ll(s,{"z-index":e.zIndex,"overlay-class":["is-message-box",e.modalClass],mask:e.modal,onClick:fo(e.handleWrapperClick,["self"])},{default:Zt((()=>[Un(Ll("div",{ref:"root","aria-label":e.title||"dialog","aria-modal":"true",class:["el-message-box",e.customClass,{"el-message-box--center":e.center}]},[null!==e.title&&void 0!==e.title?(wl(),Sl("div",JE,[Ll("div",QE,[e.icon&&e.center?(wl(),Sl("div",{key:0,class:["el-message-box__status",e.icon]},null,2)):Pl("v-if",!0),Ll("span",null,c(e.title),1)]),e.showClose?(wl(),Sl("button",{key:0,type:"button",class:"el-message-box__headerbtn","aria-label":"Close",onClick:t[1]||(t[1]=t=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),onKeydown:t[2]||(t[2]=vo((t=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),["enter"]))},[eM],32)):Pl("v-if",!0)])):Pl("v-if",!0),Ll("div",tM,[Ll("div",nM,[e.icon&&!e.center&&e.hasMessage?(wl(),Sl("div",{key:0,class:["el-message-box__status",e.icon]},null,2)):Pl("v-if",!0),e.hasMessage?(wl(),Sl("div",lM,[Ht(e.$slots,"default",{},(()=>[e.dangerouslyUseHTMLString?(wl(),Sl("p",{key:1,innerHTML:e.message},null,8,["innerHTML"])):(wl(),Sl("p",aM,c(e.message),1))]))])):Pl("v-if",!0)]),Un(Ll("div",oM,[Ll(r,{ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":t[3]||(t[3]=t=>e.inputValue=t),type:e.inputType,placeholder:e.inputPlaceholder,class:{invalid:e.validateError},onKeydown:vo(fo(e.handleInputEnter,["prevent"]),["enter"])},null,8,["modelValue","type","placeholder","class","onKeydown"]),Ll("div",{class:"el-message-box__errormsg",style:{visibility:e.editorErrorMessage?"visible":"hidden"}},c(e.editorErrorMessage),5)],512),[[mo,e.showInput]])]),Ll("div",rM,[e.showCancelButton?(wl(),Sl(i,{key:0,loading:e.cancelButtonLoading,class:[e.cancelButtonClass],round:e.roundButton,size:e.buttonSize||"small",onClick:t[4]||(t[4]=t=>e.handleAction("cancel")),onKeydown:t[5]||(t[5]=vo((t=>e.handleAction("cancel")),["enter"]))},{default:Zt((()=>[Al(c(e.cancelButtonText||e.t("el.messagebox.cancel")),1)])),_:1},8,["loading","class","round","size"])):Pl("v-if",!0),Un(Ll(i,{ref:"confirmRef",loading:e.confirmButtonLoading,class:[e.confirmButtonClasses],round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.buttonSize||"small",onClick:t[6]||(t[6]=t=>e.handleAction("confirm")),onKeydown:t[7]||(t[7]=vo((t=>e.handleAction("confirm")),["enter"]))},{default:Zt((()=>[Al(c(e.confirmButtonText||e.t("el.messagebox.confirm")),1)])),_:1},8,["loading","class","round","disabled","size"]),[[mo,e.showConfirmButton]])])],10,["aria-label"]),[[u]])])),_:3},8,["z-index","overlay-class","mask","onClick"]),[[mo,e.visible]])])),_:1})},ZE.__file="packages/message-box/src/index.vue";const iM=new Map;function sM(e){if(oy)return;let t;return py(e)||El(e)?e={message:e}:t=e.callback,new Promise(((n,l)=>{const a=(e=>{const t=document.createElement("div");e.onVanish=()=>{ko(null,t),iM.delete(l)},e.onAction=t=>{const a=iM.get(l);let o;o=e.showInput?{value:l.inputValue,action:t}:t,e.callback?e.callback(o,n.proxy):"cancel"===t||"close"===t?e.distinguishCancelAndClose&&"cancel"!==t?a.reject("close"):a.reject("cancel"):a.resolve(o)};const n=((e,t)=>{const n=da(ZE,e);return ko(n,t),document.body.appendChild(t.firstElementChild),n.component})(e,t),l=n.proxy;for(const a in e)uy(e,a)&&!uy(l.$props,a)&&(l[a]=e[a]);return Sn((()=>l.message),((e,t)=>{El(e)?n.slots.default=()=>[e]:El(t)&&!El(e)&&delete n.slots.default}),{immediate:!0}),l.visible=!0,l})(e);iM.set(a,{options:e,callback:t,resolve:n,reject:l})}))}sM.alert=(e,t,n)=>("object"==typeof t?(n=t,t=""):void 0===t&&(t=""),sM(Object.assign({title:t,message:e,type:"",closeOnPressEscape:!1,closeOnClickModal:!1},n,{boxType:"alert"}))),sM.confirm=(e,t,n)=>("object"==typeof t?(n=t,t=""):void 0===t&&(t=""),sM(Object.assign({title:t,message:e,type:"",showCancelButton:!0},n,{boxType:"confirm"}))),sM.prompt=(e,t,n)=>("object"==typeof t?(n=t,t=""):void 0===t&&(t=""),sM(Object.assign({title:t,message:e,showCancelButton:!0,showInput:!0,type:""},n,{boxType:"prompt"}))),sM.close=()=>{iM.forEach(((e,t)=>{t.doClose()})),iM.clear()};const uM=sM;uM.install=e=>{e.config.globalProperties.$msgbox=uM,e.config.globalProperties.$messageBox=uM,e.config.globalProperties.$alert=uM.alert,e.config.globalProperties.$confirm=uM.confirm,e.config.globalProperties.$prompt=uM.prompt};const cM={success:"success",info:"info",warning:"warning",error:"error"};var dM=Qn({name:"ElNotification",props:{customClass:{type:String,default:""},dangerouslyUseHTMLString:{type:Boolean,default:!1},duration:{type:Number,default:4500},iconClass:{type:String,default:""},id:{type:String,default:""},message:{type:[String,Object],default:""},offset:{type:Number,default:0},onClick:{type:Function,default:()=>{}},onClose:{type:Function,required:!0},position:{type:String,default:"top-right"},showClose:{type:Boolean,default:!0},title:{type:String,default:""},type:{type:String,default:""},zIndex:{type:Number,default:0}},emits:["destroy"],setup(e){const t=lt(!1);let n=null;const l=ca((()=>{const t=e.type;return t&&cM[t]?"el-icon-"+cM[t]:""})),a=ca((()=>e.position.indexOf("right")>1?"right":"left")),o=ca((()=>e.position.startsWith("top")?"top":"bottom")),r=ca((()=>({[o.value]:e.offset+"px"})));function i(){e.duration>0&&(n=setTimeout((()=>{t.value&&u()}),e.duration))}function s(){clearTimeout(n),n=null}function u(){t.value=!1}function c({code:e}){e===vb.delete||e===vb.backspace?s():e===vb.esc?t.value&&u():i()}return mn((()=>{i(),t.value=!0,zy(document,"keydown",c)})),bn((()=>{jy(document,"keydown",c)})),{horizontalClass:a,typeClass:l,positionStyle:r,visible:t,close:u,clearTimer:s,startTimer:i}}});const pM={key:0};dM.render=function(e,t,n,l,a,o){return wl(),Sl(Ia,{name:"el-notification-fade",onBeforeLeave:e.onClose,onAfterLeave:t[5]||(t[5]=t=>e.$emit("destroy"))},{default:Zt((()=>[Un(Ll("div",{id:e.id,class:["el-notification",e.customClass,e.horizontalClass],style:e.positionStyle,role:"alert",onMouseenter:t[2]||(t[2]=(...t)=>e.clearTimer&&e.clearTimer(...t)),onMouseleave:t[3]||(t[3]=(...t)=>e.startTimer&&e.startTimer(...t)),onClick:t[4]||(t[4]=(...t)=>e.onClick&&e.onClick(...t))},[e.type||e.iconClass?(wl(),Sl("i",{key:0,class:["el-notification__icon",[e.typeClass,e.iconClass]]},null,2)):Pl("v-if",!0),Ll("div",{class:["el-notification__group",{"is-with-icon":e.typeClass||e.iconClass}]},[Ll("h2",{class:"el-notification__title",textContent:c(e.title)},null,8,["textContent"]),Un(Ll("div",{class:"el-notification__content",style:e.title?null:"margin: 0"},[Ht(e.$slots,"default",{},(()=>[e.dangerouslyUseHTMLString?(wl(),Sl(gl,{key:1},[Pl(" Caution here, message could've been compromized, nerver use user's input as message "),Pl(" eslint-disable-next-line "),Ll("p",{innerHTML:e.message},null,8,["innerHTML"])],2112)):(wl(),Sl("p",pM,c(e.message),1))]))],4),[[mo,e.message]]),e.showClose?(wl(),Sl("div",{key:0,class:"el-notification__closeBtn el-icon-close",onClick:t[1]||(t[1]=fo(((...t)=>e.close&&e.close(...t)),["stop"]))})):Pl("v-if",!0)],2)],46,["id"]),[[mo,e.visible]])])),_:3},8,["onBeforeLeave"])},dM.__file="packages/notification/src/index.vue";const fM={"top-left":[],"top-right":[],"bottom-left":[],"bottom-right":[]};let hM=1;const vM=function(e={}){if(oy)return;const t=e.position||"top-right";let n=e.offset||0;fM[t].forEach((({vm:e})=>{n+=(e.el.offsetHeight||0)+16})),n+=16;const l="notification_"+hM++,a=e.onClose;e=Object.assign(Object.assign({},e),{onClose:()=>{!function(e,t,n){const l=fM[t],a=l.findIndex((({vm:t})=>t.component.props.id===e));if(-1===a)return;const{vm:o}=l[a];if(!o)return;null==n||n(o);const r=o.el.offsetHeight,i=t.split("-")[0];l.splice(a,1);const s=l.length;if(!(s<1))for(let u=a;u<s;u++){const{el:e,component:t}=l[u].vm,n=parseInt(e.style[i],10)-r-16;t.props.offset=n}}(l,t,a)},offset:n,id:l,zIndex:y_.nextZIndex()});const o=document.createElement("div"),r=Ll(dM,e,El(e.message)?{default:()=>e.message}:null);return r.props.onDestroy=()=>{ko(null,o)},ko(r,o),fM[t].push({vm:r}),document.body.appendChild(o.firstElementChild),{close:()=>{r.component.proxy.visible=!1}}};["success","warning","info","error"].forEach((e=>{Object.assign(vM,{[e]:(t={})=>(("string"==typeof t||El(t))&&(t={message:t}),t.type=e,vM(t))})}));const mM=vM;mM.install=e=>{e.config.globalProperties.$notify=mM};var gM=Qn({name:"ElOption",componentName:"ElOption",props:{value:{required:!0,type:[String,Number,Boolean,Object]},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},setup(e){const t=Ue({index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}),{currentLabel:n,itemSelected:l,isDisabled:a,select:o,hoverItem:r}=function(e,t){const n=zl("ElSelect"),l=zl("ElSelectGroup",{disabled:!1}),a=ca((()=>"[object object]"===Object.prototype.toString.call(e.value).toLowerCase())),o=ca((()=>n.props.multiple?d(n.props.modelValue,e.value):p(e.value,n.props.modelValue))),r=ca((()=>{if(n.props.multiple){const e=n.props.modelValue||[];return!o.value&&e.length>=n.props.multipleLimit&&n.props.multipleLimit>0}return!1})),i=ca((()=>e.label||(a.value?"":e.value))),s=ca((()=>e.value||e.label||"")),u=ca((()=>e.disabled||t.groupDisabled||r.value)),c=na(),d=(e=[],t)=>{if(a.value){const l=n.props.valueKey;return e&&e.some((e=>Cy(e,l)===Cy(t,l)))}return e&&e.indexOf(t)>-1},p=(e,t)=>{if(a.value){const{valueKey:l}=n.props;return Cy(e,l)===Cy(t,l)}return e===t};return Sn((()=>i.value),(()=>{e.created||n.props.remote||n.setSelected()})),Sn((()=>e.value),((t,l)=>{const{remote:a,valueKey:o}=n.props;if(!e.created&&!a){if(o&&"object"==typeof t&&"object"==typeof l&&t[o]===l[o])return;n.setSelected()}})),Sn((()=>l.disabled),(()=>{t.groupDisabled=l.disabled}),{immediate:!0}),n.selectEmitter.on("elOptionQueryChange",(l=>{const a=new RegExp(((e="")=>String(e).replace(/[|\\{}()[\]^$+*?.]/g,"\\$&"))(l),"i");t.visible=a.test(i.value)||e.created,t.visible||n.filteredOptionsCount--})),{select:n,currentLabel:i,currentValue:s,itemSelected:o,isDisabled:u,hoverItem:()=>{e.disabled||l.disabled||(n.hoverIndex=n.optionsArray.indexOf(c))}}}(e,t),{visible:i,hover:s}=ct(t),u=na().proxy;return o.onOptionCreate(u),bn((()=>{const{selected:t}=o;let n=o.props.multiple?t:[t];const l=o.cachedOptions.has(e.value),a=n.some((e=>e.value===u.value));l&&!a&&o.cachedOptions.delete(e.value),o.onOptionDestroy(e.value)})),{currentLabel:n,itemSelected:l,isDisabled:a,select:o,hoverItem:r,visible:i,hover:s,selectOptionClick:function(){!0!==e.disabled&&!0!==t.groupDisabled&&o.handleOptionSelect(u,!0)}}}});gM.render=function(e,t,n,l,a,o){return Un((wl(),Sl("li",{class:["el-select-dropdown__item",{selected:e.itemSelected,"is-disabled":e.isDisabled,hover:e.hover}],onMouseenter:t[1]||(t[1]=(...t)=>e.hoverItem&&e.hoverItem(...t)),onClick:t[2]||(t[2]=fo(((...t)=>e.selectOptionClick&&e.selectOptionClick(...t)),["stop"]))},[Ht(e.$slots,"default",{},(()=>[Ll("span",null,c(e.currentLabel),1)]))],34)),[[mo,e.visible]])},gM.__file="packages/select/src/option.vue";var yM=Qn({name:"ElSelectDropdown",componentName:"ElSelectDropdown",setup(){const e=zl("ElSelect"),t=ca((()=>e.props.popperClass)),n=ca((()=>e.props.multiple)),l=lt("");function a(){var t;l.value=(null===(t=e.selectWrapper)||void 0===t?void 0:t.getBoundingClientRect().width)+"px"}return mn((()=>{Zy(e.selectWrapper,a)})),bn((()=>{Jy(e.selectWrapper,a)})),{minWidth:l,popperClass:t,isMultiple:n}}});yM.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-select-dropdown",[{"is-multiple":e.isMultiple},e.popperClass]],style:{minWidth:e.minWidth}},[Ht(e.$slots,"default")],6)},yM.__file="packages/select/src/select-dropdown.vue";const bM=(e,t,n)=>{const l=Ay(),a=lt(null),o=lt(null),r=lt(null),i=lt(null),s=lt(null),u=lt(null),c=lt(-1),d=zl("elForm",{}),p=zl("elFormItem",{}),f=ca((()=>!e.filterable||e.multiple||!(!oy&&!isNaN(Number(document.documentMode)))&&!(!oy&&navigator.userAgent.indexOf("Edge")>-1)&&!t.visible)),h=ca((()=>e.disabled||d.disabled)),v=ca((()=>{const n=e.multiple?Array.isArray(e.modelValue)&&e.modelValue.length>0:void 0!==e.modelValue&&null!==e.modelValue&&""!==e.modelValue;return e.clearable&&!h.value&&t.inputHovering&&n})),m=ca((()=>e.remote&&e.filterable?"":t.visible?"arrow-up is-reverse":"arrow-up")),g=ca((()=>e.remote?300:0)),y=ca((()=>e.loading?e.loadingText||ak("el.select.loading"):(!e.remote||""!==t.query||0!==t.options.size)&&(e.filterable&&t.query&&t.options.size>0&&0===t.filteredOptionsCount?e.noMatchText||ak("el.select.noMatch"):0===t.options.size?e.noDataText||ak("el.select.noData"):null))),b=ca((()=>Array.from(t.options.values()))),_=ca((()=>Array.from(t.cachedOptions.values()))),k=ca((()=>{const n=b.value.filter((e=>!e.created)).some((e=>e.currentLabel===t.query));return e.filterable&&e.allowCreate&&""!==t.query&&!n})),x=ca((()=>e.size||p.size||l.size)),w=ca((()=>["small","mini"].indexOf(x.value)>-1?"mini":"small")),C=ca((()=>t.visible&&!1!==y.value));Sn((()=>h.value),(()=>{Dt((()=>{S()}))})),Sn((()=>e.placeholder),(e=>{t.cachedPlaceHolder=t.currentPlaceholder=e})),Sn((()=>e.modelValue),((n,l)=>{var a;e.multiple&&(S(),n&&n.length>0||o.value&&""!==t.query?t.currentPlaceholder="":t.currentPlaceholder=t.cachedPlaceHolder,e.filterable&&!e.reserveKeyword&&(t.query="",E(t.query))),T(),e.filterable&&!e.multiple&&(t.inputLength=20),Sv(n,l)||null===(a=p.formItemMitt)||void 0===a||a.emit("el.form.change",n)}),{flush:"post",deep:!0}),Sn((()=>t.visible),(l=>{var a,i;l?(null===(i=null===(a=r.value)||void 0===a?void 0:a.update)||void 0===i||i.call(a),e.filterable&&(t.filteredOptionsCount=t.optionsCount,t.query=e.remote?"":t.selectedLabel,e.multiple?o.value.focus():t.selectedLabel&&(t.currentPlaceholder=t.selectedLabel,t.selectedLabel=""),E(t.query),e.multiple||e.remote||(t.selectEmitter.emit("elOptionQueryChange",""),t.selectEmitter.emit("elOptionGroupQueryChange")))):(o.value&&o.value.blur(),t.query="",t.previousQuery=null,t.selectedLabel="",t.inputLength=20,t.menuVisibleOnFocus=!1,L(),Dt((()=>{o.value&&""===o.value.value&&0===t.selected.length&&(t.currentPlaceholder=t.cachedPlaceHolder)})),e.multiple||(t.selected&&(e.filterable&&e.allowCreate&&t.createdSelected&&t.createdLabel?t.selectedLabel=t.createdLabel:t.selectedLabel=t.selected.currentLabel,e.filterable&&(t.query=t.selectedLabel)),e.filterable&&(t.currentPlaceholder=t.cachedPlaceHolder))),n.emit("visible-change",l)})),Sn((()=>t.options.entries()),(()=>{var n,l,a;if(oy)return;null===(l=null===(n=r.value)||void 0===n?void 0:n.update)||void 0===l||l.call(n),e.multiple&&S();const o=(null===(a=s.value)||void 0===a?void 0:a.querySelectorAll("input"))||[];-1===[].indexOf.call(o,document.activeElement)&&T(),e.defaultFirstOption&&(e.filterable||e.remote)&&t.filteredOptionsCount&&O()}),{flush:"post"}),Sn((()=>t.hoverIndex),(e=>{"number"==typeof e&&e>-1&&(c.value=b.value[e]||{}),b.value.forEach((e=>{e.hover=c.value===e}))}));const S=()=>{e.collapseTags&&!e.filterable||Dt((()=>{var e,n;if(!a.value)return;const l=a.value.$el.childNodes,o=[].filter.call(l,(e=>"INPUT"===e.tagName))[0],s=i.value,u=t.initialInputHeight||40;o.style.height=0===t.selected.length?u+"px":Math.max(s?s.clientHeight+(s.clientHeight>u?6:0):0,u)+"px",t.tagInMultiLine=parseFloat(o.style.height)>u,t.visible&&!1!==y.value&&(null===(n=null===(e=r.value)||void 0===e?void 0:e.update)||void 0===n||n.call(e))}))},E=n=>{t.previousQuery===n||t.isOnComposition||(null!==t.previousQuery||"function"!=typeof e.filterMethod&&"function"!=typeof e.remoteMethod?(t.previousQuery=n,Dt((()=>{var e,n;t.visible&&(null===(n=null===(e=r.value)||void 0===e?void 0:e.update)||void 0===n||n.call(e))})),t.hoverIndex=-1,e.multiple&&e.filterable&&Dt((()=>{const n=15*o.value.length+20;t.inputLength=e.collapseTags?Math.min(50,n):n,M(),S()})),e.remote&&"function"==typeof e.remoteMethod?(t.hoverIndex=-1,e.remoteMethod(n)):"function"==typeof e.filterMethod?(e.filterMethod(n),t.selectEmitter.emit("elOptionGroupQueryChange")):(t.filteredOptionsCount=t.optionsCount,t.selectEmitter.emit("elOptionQueryChange",n),t.selectEmitter.emit("elOptionGroupQueryChange")),e.defaultFirstOption&&(e.filterable||e.remote)&&t.filteredOptionsCount&&O()):t.previousQuery=n)},M=()=>{""!==t.currentPlaceholder&&(t.currentPlaceholder=o.value.value?"":t.cachedPlaceHolder)},O=()=>{t.hoverIndex=-1;let e=!1;for(let n=t.options.size-1;n>=0;n--)if(b.value[n].created){e=!0,t.hoverIndex=n;break}if(!e)for(let n=0;n!==t.options.size;++n){const e=b.value[n];if(t.query){if(!e.disabled&&!e.groupDisabled&&e.visible){t.hoverIndex=n;break}}else if(e.itemSelected){t.hoverIndex=n;break}}},T=()=>{var n;if(!e.multiple){const l=D(e.modelValue);return(null===(n=l.props)||void 0===n?void 0:n.created)?(t.createdLabel=l.props.value,t.createdSelected=!0):t.createdSelected=!1,t.selectedLabel=l.currentLabel,t.selected=l,void(e.filterable&&(t.query=t.selectedLabel))}const l=[];Array.isArray(e.modelValue)&&e.modelValue.forEach((e=>{l.push(D(e))})),t.selected=l,Dt((()=>{S()}))},D=n=>{let l;const a="object"===gy(n).toLowerCase(),o="null"===gy(n).toLowerCase(),r="undefined"===gy(n).toLowerCase();for(let s=t.cachedOptions.size-1;s>=0;s--){const t=_.value[s];if(a?Cy(t.value,e.valueKey)===Cy(n,e.valueKey):t.value===n){l={value:n,currentLabel:t.currentLabel,isDisabled:t.isDisabled};break}}if(l)return l;const i={value:n,currentLabel:a||o||r?"":n};return e.multiple&&(i.hitState=!1),i},L=()=>{setTimeout((()=>{e.multiple?t.selected.length>0?t.hoverIndex=Math.min.apply(null,t.selected.map((e=>b.value.indexOf(e)))):t.hoverIndex=-1:t.hoverIndex=b.value.indexOf(t.selected)}),300)},N=uu((()=>{e.filterable&&t.query!==t.selectedLabel&&(t.query=t.selectedLabel,E(t.query))}),g.value),A=uu((e=>{E(e.target.value)}),g.value),P=t=>{Sv(e.modelValue,t)||n.emit("change",t)},I=l=>{l.stopPropagation();const a=e.multiple?[]:"";if("string"!=typeof a)for(const e of t.selected)e.isDisabled&&a.push(e.value);n.emit(Nb,a),P(a),t.visible=!1,n.emit("clear")},F=(l,a)=>{if(e.multiple){const a=(e.modelValue||[]).slice(),r=V(a,l.value);r>-1?a.splice(r,1):(e.multipleLimit<=0||a.length<e.multipleLimit)&&a.push(l.value),n.emit(Nb,a),P(a),l.created&&(t.query="",E(""),t.inputLength=20),e.filterable&&o.value.focus()}else n.emit(Nb,l.value),P(l.value),t.visible=!1;t.isSilentBlur=a,B(),t.visible||Dt((()=>{$(l)}))},V=(t=[],n)=>{if(!fy(n))return t.indexOf(n);const l=e.valueKey;let a=-1;return t.some(((e,t)=>Cy(e,l)===Cy(n,l)&&(a=t,!0))),a},B=()=>{t.softFocus=!0;const e=o.value||a.value;e&&e.focus()},$=e=>{var t,n,l,a;const o=Array.isArray(e)?e[0]:e;let i=null;if(null==o?void 0:o.value){const e=b.value.filter((e=>e.value===o.value));e.length>0&&(i=e[0].$el)}if(r.value&&i){const e=null===(l=null===(n=null===(t=r.value)||void 0===t?void 0:t.popperRef)||void 0===n?void 0:n.querySelector)||void 0===l?void 0:l.call(n,".el-select-dropdown__wrap");e&&Lx(e,i)}null===(a=u.value)||void 0===a||a.handleScroll()},z=e=>{if(!Array.isArray(t.selected))return;const n=t.selected[t.selected.length-1];return n?!0===e||!1===e?(n.hitState=e,e):(n.hitState=!n.hitState,n.hitState):void 0},j=()=>{e.automaticDropdown||h.value||(t.menuVisibleOnFocus?t.menuVisibleOnFocus=!1:t.visible=!t.visible,t.visible&&(o.value||a.value).focus())},R=ca((()=>b.value.filter((e=>e.visible)).every((e=>e.disabled)))),H=e=>{if(t.visible){if(0!==t.options.size&&0!==t.filteredOptionsCount&&!R.value){"next"===e?(t.hoverIndex++,t.hoverIndex===t.options.size&&(t.hoverIndex=0)):"prev"===e&&(t.hoverIndex--,t.hoverIndex<0&&(t.hoverIndex=t.options.size-1));const n=b.value[t.hoverIndex];!0!==n.disabled&&!0!==n.groupDisabled&&n.visible||H(e),Dt((()=>$(c.value)))}}else t.visible=!0};return{optionsArray:b,selectSize:x,handleResize:()=>{var n,l,o;t.inputWidth=null===(o=a.value)||void 0===o?void 0:o.$el.getBoundingClientRect().width,null===(l=null===(n=r.value)||void 0===n?void 0:n.update)||void 0===l||l.call(n),e.multiple&&S()},debouncedOnInputChange:N,debouncedQueryChange:A,deletePrevTag:l=>{if(l.target.value.length<=0&&!z()){const t=e.modelValue.slice();t.pop(),n.emit(Nb,t),P(t)}1===l.target.value.length&&0===e.modelValue.length&&(t.currentPlaceholder=t.cachedPlaceHolder)},deleteTag:(l,a)=>{const o=t.selected.indexOf(a);if(o>-1&&!h.value){const t=e.modelValue.slice();t.splice(o,1),n.emit(Nb,t),P(t),n.emit("remove-tag",a.value)}l.stopPropagation()},deleteSelected:I,handleOptionSelect:F,scrollToOption:$,readonly:f,resetInputHeight:S,showClose:v,iconClass:m,showNewOption:k,collapseTagSize:w,setSelected:T,managePlaceholder:M,selectDisabled:h,emptyText:y,toggleLastOptionHitState:z,resetInputState:e=>{e.code!==vb.backspace&&z(!1),t.inputLength=15*o.value.length+20,S()},handleComposition:e=>{const n=e.target.value;if("compositionend"===e.type)t.isOnComposition=!1,Dt((()=>E(n)));else{const e=n[n.length-1]||"";t.isOnComposition=!Pb(e)}},onOptionCreate:e=>{t.optionsCount++,t.filteredOptionsCount++,t.options.set(e.value,e),t.cachedOptions.set(e.value,e)},onOptionDestroy:e=>{t.optionsCount--,t.filteredOptionsCount--,t.options.delete(e)},handleMenuEnter:()=>{Dt((()=>$(t.selected)))},handleFocus:l=>{t.softFocus?t.softFocus=!1:((e.automaticDropdown||e.filterable)&&(t.visible=!0,e.filterable&&(t.menuVisibleOnFocus=!0)),n.emit("focus",l))},blur:()=>{t.visible=!1,a.value.blur()},handleBlur:e=>{Dt((()=>{t.isSilentBlur?t.isSilentBlur=!1:n.emit("blur",e)})),t.softFocus=!1},handleClearClick:e=>{I(e)},handleClose:()=>{t.visible=!1},toggleMenu:j,selectOption:()=>{t.visible?b.value[t.hoverIndex]&&F(b.value[t.hoverIndex],void 0):j()},getValueKey:t=>fy(t.value)?Cy(t.value,e.valueKey):t.value,navigateOptions:H,dropMenuVisible:C,reference:a,input:o,popper:r,tags:i,selectWrapper:s,scrollbar:u}};var _M=Qn({name:"ElSelect",componentName:"ElSelect",components:{ElInput:Qb,ElSelectMenu:yM,ElOption:gM,ElTag:zx,ElScrollbar:a_,ElPopper:M_},directives:{ClickOutside:Sb},props:{name:String,id:String,modelValue:[Array,String,Number,Boolean,Object],autocomplete:{type:String,default:"off"},automaticDropdown:Boolean,size:{type:String,validator:Ib},disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:{type:String,default:""},remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String},defaultFirstOption:Boolean,reserveKeyword:Boolean,valueKey:{type:String,default:"value"},collapseTags:Boolean,popperAppendToBody:{type:Boolean,default:!0},clearIcon:{type:String,default:"el-icon-circle-close"}},emits:[Nb,"change","remove-tag","clear","visible-change","focus","blur"],setup(e,t){const n=function(e){const t=ku();return Ue({options:new Map,cachedOptions:new Map,createdLabel:null,createdSelected:!1,selected:e.multiple?[]:{},inputLength:20,inputWidth:0,initialInputHeight:0,optionsCount:0,filteredOptionsCount:0,visible:!1,softFocus:!1,selectedLabel:"",hoverIndex:-1,query:"",previousQuery:null,inputHovering:!1,cachedPlaceHolder:"",currentPlaceholder:ak("el.select.placeholder"),menuVisibleOnFocus:!1,isOnComposition:!1,isSilentBlur:!1,selectEmitter:t,prefixWidth:null,tagInMultiLine:!1})}(e),{optionsArray:l,selectSize:a,readonly:o,handleResize:r,collapseTagSize:i,debouncedOnInputChange:s,debouncedQueryChange:u,deletePrevTag:c,deleteTag:d,deleteSelected:p,handleOptionSelect:f,scrollToOption:h,setSelected:v,resetInputHeight:m,managePlaceholder:g,showClose:y,selectDisabled:b,iconClass:_,showNewOption:k,emptyText:x,toggleLastOptionHitState:w,resetInputState:C,handleComposition:S,onOptionCreate:E,onOptionDestroy:M,handleMenuEnter:O,handleFocus:T,blur:D,handleBlur:L,handleClearClick:N,handleClose:A,toggleMenu:P,selectOption:I,getValueKey:F,navigateOptions:V,dropMenuVisible:B,reference:$,input:z,popper:j,tags:R,selectWrapper:H,scrollbar:W}=bM(e,n,t),{focus:Y}=(q=$,{focus:()=>{var e,t;null===(t=null===(e=q.value)||void 0===e?void 0:e.focus)||void 0===t||t.call(e)}});var q;const{inputWidth:K,selected:U,inputLength:G,filteredOptionsCount:X,visible:Z,softFocus:J,selectedLabel:Q,hoverIndex:ee,query:te,inputHovering:ne,currentPlaceholder:le,menuVisibleOnFocus:ae,isOnComposition:oe,isSilentBlur:re,options:ie,cachedOptions:se,optionsCount:ue,prefixWidth:ce,tagInMultiLine:de}=ct(n);$l("ElSelect",Ue({props:e,options:ie,optionsArray:l,cachedOptions:se,optionsCount:ue,filteredOptionsCount:X,hoverIndex:ee,handleOptionSelect:f,selectEmitter:n.selectEmitter,onOptionCreate:E,onOptionDestroy:M,selectWrapper:H,selected:U,setSelected:v})),mn((()=>{if(n.cachedPlaceHolder=le.value=e.placeholder||ak("el.select.placeholder"),e.multiple&&Array.isArray(e.modelValue)&&e.modelValue.length>0&&(le.value=""),Zy(H.value,r),$.value&&$.value.$el){const e={medium:36,small:32,mini:28},t=$.value.input;n.initialInputHeight=t.getBoundingClientRect().height||e[a.value]}e.remote&&e.multiple&&m(),Dt((()=>{if($.value.$el&&(K.value=$.value.$el.getBoundingClientRect().width),t.slots.prefix){const e=$.value.$el.childNodes,t=[].filter.call(e,(e=>"INPUT"===e.tagName))[0],l=$.value.$el.querySelector(".el-input__prefix");ce.value=Math.max(l.getBoundingClientRect().width+5,30),n.prefixWidth&&(t.style.paddingLeft=Math.max(n.prefixWidth,30)+"px")}})),v()})),bn((()=>{Jy(H.value,r)})),e.multiple&&!Array.isArray(e.modelValue)&&t.emit(Nb,[]),!e.multiple&&Array.isArray(e.modelValue)&&t.emit(Nb,"");const pe=ca((()=>{var e;return null===(e=j.value)||void 0===e?void 0:e.popperRef}));return{tagInMultiLine:de,prefixWidth:ce,selectSize:a,readonly:o,handleResize:r,collapseTagSize:i,debouncedOnInputChange:s,debouncedQueryChange:u,deletePrevTag:c,deleteTag:d,deleteSelected:p,handleOptionSelect:f,scrollToOption:h,inputWidth:K,selected:U,inputLength:G,filteredOptionsCount:X,visible:Z,softFocus:J,selectedLabel:Q,hoverIndex:ee,query:te,inputHovering:ne,currentPlaceholder:le,menuVisibleOnFocus:ae,isOnComposition:oe,isSilentBlur:re,options:ie,resetInputHeight:m,managePlaceholder:g,showClose:y,selectDisabled:b,iconClass:_,showNewOption:k,emptyText:x,toggleLastOptionHitState:w,resetInputState:C,handleComposition:S,handleMenuEnter:O,handleFocus:T,blur:D,handleBlur:L,handleClearClick:N,handleClose:A,toggleMenu:P,selectOption:I,getValueKey:F,navigateOptions:V,dropMenuVisible:B,focus:Y,reference:$,input:z,popper:j,popperPaneRef:pe,tags:R,selectWrapper:H,scrollbar:W}}});const kM={class:"select-trigger"},xM={key:0},wM={class:"el-select__tags-text"},CM={style:{height:"100%",display:"flex","justify-content":"center","align-items":"center"}},SM={key:1,class:"el-select-dropdown__empty"};_M.render=function(e,t,n,l,a,o){const r=dl("el-tag"),i=dl("el-input"),s=dl("el-option"),u=dl("el-scrollbar"),d=dl("el-select-menu"),p=dl("el-popper"),f=hl("click-outside");return Un((wl(),Sl("div",{ref:"selectWrapper",class:["el-select",[e.selectSize?"el-select--"+e.selectSize:""]],onClick:t[26]||(t[26]=fo(((...t)=>e.toggleMenu&&e.toggleMenu(...t)),["stop"]))},[Ll(p,{ref:"popper",visible:e.dropMenuVisible,"onUpdate:visible":t[25]||(t[25]=t=>e.dropMenuVisible=t),placement:"bottom-start","append-to-body":e.popperAppendToBody,"popper-class":"el-select__popper "+e.popperClass,"manual-mode":"",effect:"light",pure:"",trigger:"click",transition:"el-zoom-in-top","stop-popper-mouse-event":!1,"gpu-acceleration":!1,onBeforeEnter:e.handleMenuEnter},{trigger:Zt((()=>[Ll("div",kM,[e.multiple?(wl(),Sl("div",{key:0,ref:"tags",class:"el-select__tags",style:{"max-width":e.inputWidth-32+"px",width:"100%"}},[e.collapseTags&&e.selected.length?(wl(),Sl("span",xM,[Ll(r,{closable:!e.selectDisabled&&!e.selected[0].isDisabled,size:e.collapseTagSize,hit:e.selected[0].hitState,type:"info","disable-transitions":"",onClose:t[1]||(t[1]=t=>e.deleteTag(t,e.selected[0]))},{default:Zt((()=>[Ll("span",{class:"el-select__tags-text",style:{"max-width":e.inputWidth-123+"px"}},c(e.selected[0].currentLabel),5)])),_:1},8,["closable","size","hit"]),e.selected.length>1?(wl(),Sl(r,{key:0,closable:!1,size:e.collapseTagSize,type:"info","disable-transitions":""},{default:Zt((()=>[Ll("span",wM,"+ "+c(e.selected.length-1),1)])),_:1},8,["size"])):Pl("v-if",!0)])):Pl("v-if",!0),Pl(" <div> "),e.collapseTags?Pl("v-if",!0):(wl(),Sl(Ia,{key:1,onAfterLeave:e.resetInputHeight},{default:Zt((()=>[Ll("span",{style:{marginLeft:e.prefixWidth&&e.selected.length?e.prefixWidth+"px":null}},[(wl(!0),Sl(gl,null,pa(e.selected,(t=>(wl(),Sl(r,{key:e.getValueKey(t),closable:!e.selectDisabled&&!t.isDisabled,size:e.collapseTagSize,hit:t.hitState,type:"info","disable-transitions":"",onClose:n=>e.deleteTag(n,t)},{default:Zt((()=>[Ll("span",{class:"el-select__tags-text",style:{"max-width":e.inputWidth-75+"px"}},c(t.currentLabel),5)])),_:2},1032,["closable","size","hit","onClose"])))),128))],4)])),_:1},8,["onAfterLeave"])),Pl(" </div> "),e.filterable?Un((wl(),Sl("input",{key:2,ref:"input","onUpdate:modelValue":t[2]||(t[2]=t=>e.query=t),type:"text",class:["el-select__input",[e.selectSize?"is-"+e.selectSize:""]],disabled:e.selectDisabled,autocomplete:e.autocomplete,style:{marginLeft:e.prefixWidth&&!e.selected.length||e.tagInMultiLine?e.prefixWidth+"px":null,flexGrow:"1",width:e.inputLength/(e.inputWidth-32)+"%",maxWidth:e.inputWidth-42+"px"},onFocus:t[3]||(t[3]=(...t)=>e.handleFocus&&e.handleFocus(...t)),onBlur:t[4]||(t[4]=(...t)=>e.handleBlur&&e.handleBlur(...t)),onKeyup:t[5]||(t[5]=(...t)=>e.managePlaceholder&&e.managePlaceholder(...t)),onKeydown:[t[6]||(t[6]=(...t)=>e.resetInputState&&e.resetInputState(...t)),t[7]||(t[7]=vo(fo((t=>e.navigateOptions("next")),["prevent"]),["down"])),t[8]||(t[8]=vo(fo((t=>e.navigateOptions("prev")),["prevent"]),["up"])),t[9]||(t[9]=vo(fo((t=>e.visible=!1),["stop","prevent"]),["esc"])),t[10]||(t[10]=vo(fo(((...t)=>e.selectOption&&e.selectOption(...t)),["stop","prevent"]),["enter"])),t[11]||(t[11]=vo(((...t)=>e.deletePrevTag&&e.deletePrevTag(...t)),["delete"])),t[12]||(t[12]=vo((t=>e.visible=!1),["tab"]))],onCompositionstart:t[13]||(t[13]=(...t)=>e.handleComposition&&e.handleComposition(...t)),onCompositionupdate:t[14]||(t[14]=(...t)=>e.handleComposition&&e.handleComposition(...t)),onCompositionend:t[15]||(t[15]=(...t)=>e.handleComposition&&e.handleComposition(...t)),onInput:t[16]||(t[16]=(...t)=>e.debouncedQueryChange&&e.debouncedQueryChange(...t))},null,46,["disabled","autocomplete"])),[[ao,e.query]]):Pl("v-if",!0)],4)):Pl("v-if",!0),Ll(i,{id:e.id,ref:"reference",modelValue:e.selectedLabel,"onUpdate:modelValue":t[18]||(t[18]=t=>e.selectedLabel=t),type:"text",placeholder:e.currentPlaceholder,name:e.name,autocomplete:e.autocomplete,size:e.selectSize,disabled:e.selectDisabled,readonly:e.readonly,"validate-event":!1,class:{"is-focus":e.visible},tabindex:e.multiple&&e.filterable?"-1":null,onFocus:e.handleFocus,onBlur:e.handleBlur,onInput:e.debouncedOnInputChange,onPaste:e.debouncedOnInputChange,onKeydown:[t[19]||(t[19]=vo(fo((t=>e.navigateOptions("next")),["stop","prevent"]),["down"])),t[20]||(t[20]=vo(fo((t=>e.navigateOptions("prev")),["stop","prevent"]),["up"])),vo(fo(e.selectOption,["stop","prevent"]),["enter"]),t[21]||(t[21]=vo(fo((t=>e.visible=!1),["stop","prevent"]),["esc"])),t[22]||(t[22]=vo((t=>e.visible=!1),["tab"]))],onMouseenter:t[23]||(t[23]=t=>e.inputHovering=!0),onMouseleave:t[24]||(t[24]=t=>e.inputHovering=!1)},ha({suffix:Zt((()=>[Un(Ll("i",{class:["el-select__caret","el-input__icon","el-icon-"+e.iconClass]},null,2),[[mo,!e.showClose]]),e.showClose?(wl(),Sl("i",{key:0,class:"el-select__caret el-input__icon "+e.clearIcon,onClick:t[17]||(t[17]=(...t)=>e.handleClearClick&&e.handleClearClick(...t))},null,2)):Pl("v-if",!0)])),_:2},[e.$slots.prefix?{name:"prefix",fn:Zt((()=>[Ll("div",CM,[Ht(e.$slots,"prefix")])]))}:void 0]),1032,["id","modelValue","placeholder","name","autocomplete","size","disabled","readonly","class","tabindex","onFocus","onBlur","onInput","onPaste","onKeydown"])])])),default:Zt((()=>[Ll(d,null,{default:Zt((()=>[Un(Ll(u,{ref:"scrollbar",tag:"ul","wrap-class":"el-select-dropdown__wrap","view-class":"el-select-dropdown__list",class:{"is-empty":!e.allowCreate&&e.query&&0===e.filteredOptionsCount}},{default:Zt((()=>[e.showNewOption?(wl(),Sl(s,{key:0,value:e.query,created:!0},null,8,["value"])):Pl("v-if",!0),Ht(e.$slots,"default")])),_:3},8,["class"]),[[mo,e.options.size>0&&!e.loading]]),e.emptyText&&(!e.allowCreate||e.loading||e.allowCreate&&0===e.options.size)?(wl(),Sl(gl,{key:0},[e.$slots.empty?Ht(e.$slots,"empty",{key:0}):(wl(),Sl("p",SM,c(e.emptyText),1))],2112)):Pl("v-if",!0)])),_:3})])),_:1},8,["visible","append-to-body","popper-class","onBeforeEnter"])],2)),[[f,e.handleClose,e.popperPaneRef]])},_M.__file="packages/select/src/select.vue",_M.install=e=>{e.component(_M.name,_M)};const EM=_M,MM=gM;MM.install=e=>{e.component(MM.name,MM)};var OM=Qn({name:"ElOptionGroup",componentName:"ElOptionGroup",props:{label:String,disabled:{type:Boolean,default:!1}},setup(e){const t=lt(!0);$l("ElSelectGroup",Ue(Object.assign({},ct(e))));const n=zl("ElSelect");return n.selectEmitter.on("elOptionGroupQueryChange",(()=>{var e;t.value=null===(e=null==n?void 0:n.optionsArray)||void 0===e?void 0:e.some((e=>!0===e.visible))})),{visible:t}}});const TM={class:"el-select-group__wrap"},DM={class:"el-select-group__title"},LM={class:"el-select-group"};OM.render=function(e,t,n,l,a,o){return Un((wl(),Sl("ul",TM,[Ll("li",DM,c(e.label),1),Ll("li",null,[Ll("ul",LM,[Ht(e.$slots,"default")])])],512)),[[mo,e.visible]])},OM.__file="packages/select/src/option-group.vue",OM.install=e=>{e.component(OM.name,OM)};const NM=OM;var AM=Qn({name:"ElPageHeader",props:{icon:{type:String,default:"el-icon-back"},title:{type:String,default:()=>ak("el.pageHeader.title")},content:{type:String,default:""}},emits:["back"],setup:(e,{emit:t})=>({handleClick:function(){t("back")}})});const PM={class:"el-page-header"},IM={key:0,class:"el-page-header__icon"},FM={class:"el-page-header__title"},VM={class:"el-page-header__content"};AM.render=function(e,t,n,l,a,o){return wl(),Sl("div",PM,[Ll("div",{class:"el-page-header__left",onClick:t[1]||(t[1]=(...t)=>e.handleClick&&e.handleClick(...t))},[e.icon||e.$slots.icon?(wl(),Sl("div",IM,[Ht(e.$slots,"icon",{},(()=>[Ll("i",{class:e.icon},null,2)]))])):Pl("v-if",!0),Ll("div",FM,[Ht(e.$slots,"title",{},(()=>[Al(c(e.title),1)]))])]),Ll("div",VM,[Ht(e.$slots,"content",{},(()=>[Al(c(e.content),1)]))])])},AM.__file="packages/page-header/src/index.vue",AM.install=e=>{e.component(AM.name,AM)};const BM=AM;var $M=Qn({name:"Prev",props:{disabled:Boolean,currentPage:{type:Number,default:1},prevText:{type:String,default:""}},setup:e=>({internalDisabled:ca((()=>e.disabled||e.currentPage<=1))})});const zM={key:0},jM={key:1,class:"el-icon el-icon-arrow-left"};$M.render=function(e,t,n,l,a,o){return wl(),Sl("button",{type:"button",class:"btn-prev",disabled:e.internalDisabled,onClick:t[1]||(t[1]=fo((()=>{}),["self","prevent"]))},[e.prevText?(wl(),Sl("span",zM,c(e.prevText),1)):(wl(),Sl("i",jM))],8,["disabled"])},$M.__file="packages/pagination/src/prev.vue";var RM=Qn({name:"Next",props:{disabled:Boolean,currentPage:{type:Number,default:1},pageCount:{type:Number,default:50},nextText:{type:String,default:""}},setup:e=>({internalDisabled:ca((()=>e.disabled||e.currentPage===e.pageCount||0===e.pageCount))})});const HM={key:0},WM={key:1,class:"el-icon el-icon-arrow-right"};RM.render=function(e,t,n,l,a,o){return wl(),Sl("button",{type:"button",class:"btn-next",disabled:e.internalDisabled,onClick:t[1]||(t[1]=fo((()=>{}),["self","prevent"]))},[e.nextText?(wl(),Sl("span",HM,c(e.nextText),1)):(wl(),Sl("i",WM))],8,["disabled"])},RM.__file="packages/pagination/src/next.vue";const YM=()=>{const e=zl("pagination",{});return{pagination:e,pageCount:e.pageCount,disabled:e.disabled,currentPage:e.currentPage}};var qM=Qn({name:"Sizes",components:{ElSelect:EM,ElOption:MM},props:{pageSize:Number,pageSizes:{type:Array,default:()=>[10,20,30,40,50,100]},popperClass:{type:String,default:""},disabled:Boolean},emits:["page-size-change"],setup(e,{emit:t}){const{pagination:n}=YM(),l=lt(e.pageSize);Sn((()=>e.pageSizes),((n,l)=>{if(!Sv(n,l)&&Array.isArray(n)){const l=n.indexOf(e.pageSize)>-1?e.pageSize:e.pageSizes[0];t("page-size-change",l)}})),Sn((()=>e.pageSize),(e=>{l.value=e}));const a=ca((()=>e.pageSizes));return{t:ak,innerPagesizes:a,innerPageSize:l,handleChange:function(e){e!==l.value&&(l.value=e,null==n||n.handleSizesChange(Number(e)))}}}});const KM={class:"el-pagination__sizes"};qM.render=function(e,t,n,l,a,o){const r=dl("el-option"),i=dl("el-select");return wl(),Sl("span",KM,[Ll(i,{"model-value":e.innerPageSize,disabled:e.disabled,"popper-class":e.popperClass,size:"mini",onChange:e.handleChange},{default:Zt((()=>[(wl(!0),Sl(gl,null,pa(e.innerPagesizes,(t=>(wl(),Sl(r,{key:t,value:t,label:t+e.t("el.pagination.pagesize")},null,8,["value","label"])))),128))])),_:1},8,["model-value","disabled","popper-class","onChange"])])},qM.__file="packages/pagination/src/sizes.vue";var UM=Qn({components:{ElInput:Qb},setup(){const{pagination:e,pageCount:t,disabled:n,currentPage:l}=YM(),a=lt(null),o=ca((()=>{var e;return null!==(e=a.value)&&void 0!==e?e:l.value}));return{t:ak,userInput:a,pageCount:t,disabled:n,handleInput:function(e){a.value=Number(e)},handleChange:function(t){null==e||e.changeEvent(Number(t)),a.value=null},innerValue:o}}});const GM={class:"el-pagination__jump"};UM.render=function(e,t,n,l,a,o){const r=dl("el-input");return wl(),Sl("span",GM,[Al(c(e.t("el.pagination.goto"))+" ",1),Ll(r,{size:"mini",class:"el-pagination__editor is-in-pagination",min:1,max:e.pageCount,disabled:e.disabled,"model-value":e.innerValue,type:"number","onUpdate:modelValue":e.handleInput,onChange:e.handleChange},null,8,["max","disabled","model-value","onUpdate:modelValue","onChange"]),Al(" "+c(e.t("el.pagination.pageClassifier")),1)])},UM.__file="packages/pagination/src/jumper.vue";var XM=Qn({name:"Total",props:{total:{type:Number,default:1e3}},setup:()=>({t:ak})});const ZM={class:"el-pagination__total"};XM.render=function(e,t,n,l,a,o){return wl(),Sl("span",ZM,c(e.t("el.pagination.total",{total:e.total})),1)},XM.__file="packages/pagination/src/total.vue";var JM=Qn({name:"ElPager",props:{currentPage:{type:Number,default:1},pageCount:{type:Number},pagerCount:{type:Number,default:7},disabled:Boolean},emits:["change"],setup(e,{emit:t}){const n=lt(!1),l=lt(!1),a=lt("el-icon-more"),o=lt("el-icon-more"),r=ca((()=>{const t=e.pagerCount,n=(t-1)/2,l=Number(e.currentPage),a=Number(e.pageCount);let o=!1,r=!1;a>t&&(l>t-n&&(o=!0),l<a-n&&(r=!0));const i=[];if(o&&!r)for(let e=a-(t-2);e<a;e++)i.push(e);else if(!o&&r)for(let e=2;e<t;e++)i.push(e);else if(o&&r){const e=Math.floor(t/2)-1;for(let t=l-e;t<=l+e;t++)i.push(t)}else for(let e=2;e<a;e++)i.push(e);return i}));return wn((()=>{const t=(e.pagerCount-1)/2;n.value=!1,l.value=!1,e.pageCount>e.pagerCount&&(e.currentPage>e.pagerCount-t&&(n.value=!0),e.currentPage<e.pageCount-t&&(l.value=!0))})),wn((()=>{n.value||(o.value="el-icon-more")})),wn((()=>{l.value||(a.value="el-icon-more")})),{showPrevMore:n,showNextMore:l,quicknextIconClass:a,quickprevIconClass:o,pagers:r,onMouseenter:function(t){e.disabled||("left"===t?o.value="el-icon-d-arrow-left":a.value="el-icon-d-arrow-right")},onPagerClick:function(n){const l=n.target;if("ul"===l.tagName.toLowerCase()||e.disabled)return;let a=Number(l.textContent);const o=e.pageCount,r=e.currentPage,i=e.pagerCount-2;l.className.includes("more")&&(l.className.includes("quickprev")?a=r-i:l.className.includes("quicknext")&&(a=r+i)),isNaN(a)||(a<1&&(a=1),a>o&&(a=o)),a!==r&&t("change",a)}}}});JM.render=function(e,t,n,l,a,o){return wl(),Sl("ul",{class:"el-pager",onClick:t[5]||(t[5]=(...t)=>e.onPagerClick&&e.onPagerClick(...t))},[e.pageCount>0?(wl(),Sl("li",{key:0,class:[{active:1===e.currentPage,disabled:e.disabled},"number"]}," 1 ",2)):Pl("v-if",!0),e.showPrevMore?(wl(),Sl("li",{key:1,class:["el-icon more btn-quickprev",[e.quickprevIconClass,{disabled:e.disabled}]],onMouseenter:t[1]||(t[1]=t=>e.onMouseenter("left")),onMouseleave:t[2]||(t[2]=t=>e.quickprevIconClass="el-icon-more")},null,34)):Pl("v-if",!0),(wl(!0),Sl(gl,null,pa(e.pagers,(t=>(wl(),Sl("li",{key:t,class:[{active:e.currentPage===t,disabled:e.disabled},"number"]},c(t),3)))),128)),e.showNextMore?(wl(),Sl("li",{key:2,class:["el-icon more btn-quicknext",[e.quicknextIconClass,{disabled:e.disabled}]],onMouseenter:t[3]||(t[3]=t=>e.onMouseenter("right")),onMouseleave:t[4]||(t[4]=t=>e.quicknextIconClass="el-icon-more")},null,34)):Pl("v-if",!0),e.pageCount>1?(wl(),Sl("li",{key:3,class:[{active:e.currentPage===e.pageCount,disabled:e.disabled},"number"]},c(e.pageCount),3)):Pl("v-if",!0)])},JM.__file="packages/pagination/src/pager.vue";const QM=e=>Number.isNaN(e)?10:e,eO=Qn({name:"ElPagination",components:{Prev:$M,Next:RM,Sizes:qM,Jumper:UM,Total:XM,Pager:JM},props:{pageSize:{type:Number,default:10},small:Boolean,total:{type:Number},pageCount:{type:Number},pagerCount:{type:Number,validator:e=>(0|e)===e&&e>4&&e<22&&e%2==1,default:7},currentPage:{type:Number,default:1},layout:{type:String,default:"prev, pager, next, jumper, ->, total"},pageSizes:{type:Array,default:()=>[10,20,30,40,50,100]},popperClass:{type:String,default:""},prevText:{type:String,default:""},nextText:{type:String,default:""},background:Boolean,disabled:Boolean,hideOnSinglePage:Boolean},emits:["size-change","current-change","prev-click","next-click","update:currentPage","update:pageSize"],setup(e,{emit:t}){const n=lt(-1),l=lt(!1),a=lt(QM(e.pageSize)),o=ca((()=>"number"==typeof e.total?Math.max(1,Math.ceil(e.total/a.value)):"number"==typeof e.pageCount?Math.max(1,e.pageCount):null)),r=lt(u(e.currentPage));function i(){(r.value!==n.value||l.value)&&(n.value=r.value,l.value=!1,t("update:currentPage",r.value),t("current-change",r.value))}function s(e){r.value=u(e),l.value=!0,i()}function u(e){let t;return"string"==typeof e&&(e=parseInt(e,10)),isNaN(e)||e<1?t=1:o.value<e&&(t=o.value),null!=t?t:e}return Sn((()=>e.currentPage),(e=>{r.value=u(e)})),Sn((()=>e.pageSize),(e=>{a.value=QM(e)})),Sn((()=>o.value),(e=>{const t=r.value;e>0&&0===t?r.value=1:t>e&&(r.value=0===e?1:e,i())})),$l("pagination",{pageCount:ca((()=>e.pageCount)),disabled:ca((()=>e.disabled)),currentPage:ca((()=>r.value)),changeEvent:s,handleSizesChange:function(e){l.value=!0,a.value=e,t("update:pageSize",e),t("size-change",e)}}),{internalCurrentPage:r,internalPageSize:a,lastEmittedPage:n,userChangePageSize:l,internalPageCount:o,getValidCurrentPage:u,emitChange:i,handleCurrentChange:s,prev:function(){if(e.disabled)return;const n=r.value-1;r.value=u(n),t("prev-click",r.value),i()},next:function(){if(e.disabled)return;const n=r.value+1;r.value=u(n),t("next-click",r.value),i()}}},render(){var e,t,n;const l=this.layout;if(!l)return null;if(this.hideOnSinglePage&&this.internalPageCount<=1)return null;const a=da("div",{class:["el-pagination",{"is-background":this.background,"el-pagination--small":this.small}]}),o=[],r=[],i=da("div",{class:"el-pagination__rightwrapper"},r),s={prev:da($M,{disabled:this.disabled,currentPage:this.internalCurrentPage,prevText:this.prevText,onClick:this.prev}),jumper:da(UM),pager:da(JM,{currentPage:this.internalCurrentPage,pageCount:this.internalPageCount,pagerCount:this.pagerCount,onChange:this.handleCurrentChange,disabled:this.disabled}),next:da(RM,{disabled:this.disabled,currentPage:this.internalCurrentPage,pageCount:this.internalPageCount,nextText:this.nextText,onClick:this.next}),sizes:da(qM,{pageSize:this.pageSize,pageSizes:this.pageSizes,popperClass:this.popperClass,disabled:this.disabled}),slot:null!==(n=null===(t=null===(e=this.$slots)||void 0===e?void 0:e.default)||void 0===t?void 0:t.call(e))&&void 0!==n?n:null,total:da(XM,{total:this.total})},u=l.split(",").map((e=>e.trim()));let c=!1;return u.forEach((e=>{"->"!==e?c?r.push(s[e]):o.push(s[e]):c=!0})),c&&r.length>0&&o.unshift(i),da(a,{},o)}});eO.install=e=>{e.component(eO.name,eO)};var tO=Qn({name:"ElPopconfirm",components:{ElButton:Z_,ElPopper:M_},props:{title:{type:String},confirmButtonText:{type:String},cancelButtonText:{type:String},confirmButtonType:{type:String,default:"primary"},cancelButtonType:{type:String,default:"text"},icon:{type:String,default:"el-icon-question"},iconColor:{type:String,default:"#f90"},hideIcon:{type:Boolean,default:!1}},emits:["confirm","cancel"],setup(e,{emit:t}){const n=lt(!1),l=ca((()=>e.confirmButtonText||ak("el.popconfirm.confirmButtonText"))),a=ca((()=>e.cancelButtonText||ak("el.popconfirm.cancelButtonText")));return{visible:n,confirm:()=>{n.value=!1,t("confirm")},cancel:()=>{n.value=!1,t("cancel")},confirmButtonText_:l,cancelButtonText_:a}}});const nO={class:"el-popconfirm"},lO={class:"el-popconfirm__main"},aO={class:"el-popconfirm__action"};tO.render=function(e,t,n,l,a,o){const r=dl("el-button"),i=dl("el-popper");return wl(),Sl(i,{visible:e.visible,"onUpdate:visible":t[1]||(t[1]=t=>e.visible=t),trigger:"click",effect:"light","popper-class":"el-popover","append-to-body":""},{trigger:Zt((()=>[Ht(e.$slots,"reference")])),default:Zt((()=>[Ll("div",nO,[Ll("p",lO,[e.hideIcon?Pl("v-if",!0):(wl(),Sl("i",{key:0,class:[e.icon,"el-popconfirm__icon"],style:{color:e.iconColor}},null,6)),Al(" "+c(e.title),1)]),Ll("div",aO,[Ll(r,{size:"mini",type:e.cancelButtonType,onClick:e.cancel},{default:Zt((()=>[Al(c(e.cancelButtonText_),1)])),_:1},8,["type","onClick"]),Ll(r,{size:"mini",type:e.confirmButtonType,onClick:e.confirm},{default:Zt((()=>[Al(c(e.confirmButtonText_),1)])),_:1},8,["type","onClick"])])])])),_:1},8,["visible"])},tO.__file="packages/popconfirm/src/index.vue",tO.install=e=>{e.component(tO.name,tO)};const oO=tO,rO={key:0,class:"el-popover__title",role:"title"};var iO=Qn({name:"ElPopover",components:{ElPopper:M_},props:Object.assign(Object.assign({},k_),{content:{type:String},trigger:{type:String,default:"click"},title:{type:String},transition:{type:String,default:"fade-in-linear"},width:{type:[String,Number],default:150},appendToBody:{type:Boolean,default:!0},tabindex:Number}),emits:["update:visible","after-enter","after-leave","show","hide"],setup:(e,t)=>function(e,t){const n=lt(y_.nextZIndex()),l=ca((()=>py(e.width)?e.width:e.width+"px")),a=ca((()=>({width:l.value,zIndex:n.value}))),o=x_(e,t);return Sn(o.visibility,(e=>{e&&(n.value=y_.nextZIndex()),t.emit(e?"show":"hide")})),Object.assign(Object.assign({},o),{popperStyle:a})}(e,t),render(){const{$slots:e}=this,t=e.reference?e.reference():null,n=(l=this.title,"div",a=rO,o=c(this.title),r=o_.TEXT,l?c_("div",a,o,r,undefined):Pl("v-if",!0));var l,a,o,r;const i=Ht(e,"default",{},(()=>[Al(c(this.content),o_.TEXT)])),{events:s,onAfterEnter:u,onAfterLeave:d,onPopperMouseEnter:p,onPopperMouseLeave:f,popperStyle:h,popperId:v,popperClass:m,showArrow:g,transition:y,visibility:b,tabindex:_}=this,k=[this.content?"el-popover--plain":"","el-popover",m].join(" ");let x=w_({effect:__.LIGHT,name:y,popperClass:k,popperStyle:h,popperId:v,visibility:b,onMouseenter:p,onMouseleave:f,onAfterEnter:u,onAfterLeave:d,stopPopperMouseEvent:!1},[n,i,S_(g)]);const w=t?C_(t,Object.assign({ariaDescribedby:v,ref:"triggerRef",tabindex:_},s)):Pl("v-if",!0);return c_(gl,null,["click"===this.trigger?Un(w,[[Sb,this.hide]]):w,Ll(cl,{disabled:!this.appendToBody,to:"body"},[x],o_.PROPS,["disabled"])])}});iO.__file="packages/popover/src/index.vue";const sO=(e,t,n)=>{const l=t.arg||t.value,a=n.dirs[0].instance.$refs[l];a&&(a.triggerRef=e,e.setAttribute("tabindex",a.tabindex),Object.entries(a.events).forEach((([t,n])=>{zy(e,t.toLowerCase().slice(2),n)})))};var uO={mounted(e,t,n){sO(e,t,n)},updated(e,t,n){sO(e,t,n)}};iO.install=e=>{e.component(iO.name,iO),e.directive("popover",uO)},iO.directive=uO;const cO=iO;var dO=Qn({name:"ElProgress",props:{type:{type:String,default:"line",validator:e=>["line","circle","dashboard"].indexOf(e)>-1},percentage:{type:Number,default:0,required:!0,validator:e=>e>=0&&e<=100},status:{type:String,default:"",validator:e=>["","success","exception","warning"].indexOf(e)>-1},indeterminate:{type:Boolean,default:!1},duration:{type:Number,default:3},strokeWidth:{type:Number,default:6},strokeLinecap:{type:String,default:"round"},textInside:{type:Boolean,default:!1},width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:[String,Array,Function],default:""},format:{type:Function,default:e=>e+"%"}},setup(e){const t=ca((()=>({width:e.percentage+"%",animationDuration:e.duration+"s",backgroundColor:h(e.percentage)}))),n=ca((()=>(e.strokeWidth/e.width*100).toFixed(1))),l=ca((()=>"circle"===e.type||"dashboard"===e.type?parseInt(""+(50-parseFloat(n.value)/2),10):0)),a=ca((()=>{const t=l.value,n="dashboard"===e.type;return`\n          M 50 50\n          m 0 ${n?"":"-"}${t}\n          a ${t} ${t} 0 1 1 0 ${n?"-":""}${2*t}\n          a ${t} ${t} 0 1 1 0 ${n?"":"-"}${2*t}\n          `})),o=ca((()=>2*Math.PI*l.value)),r=ca((()=>"dashboard"===e.type?.75:1)),i=ca((()=>-1*o.value*(1-r.value)/2+"px")),s=ca((()=>({strokeDasharray:`${o.value*r.value}px, ${o.value}px`,strokeDashoffset:i.value}))),u=ca((()=>({strokeDasharray:`${o.value*r.value*(e.percentage/100)}px, ${o.value}px`,strokeDashoffset:i.value,transition:"stroke-dasharray 0.6s ease 0s, stroke 0.6s ease"}))),c=ca((()=>{let t;if(e.color)t=h(e.percentage);else switch(e.status){case"success":t="#13ce66";break;case"exception":t="#ff4949";break;case"warning":t="#e6a23c";break;default:t="#20a0ff"}return t})),d=ca((()=>"warning"===e.status?"el-icon-warning":"line"===e.type?"success"===e.status?"el-icon-circle-check":"el-icon-circle-close":"success"===e.status?"el-icon-check":"el-icon-close")),p=ca((()=>"line"===e.type?12+.4*e.strokeWidth:.111111*e.width+2)),f=ca((()=>e.format(e.percentage))),h=t=>{var n;const{color:l}=e;if("function"==typeof l)return l(t);if("string"==typeof l)return l;{const e=100/l.length,a=l.map(((t,n)=>"string"==typeof t?{color:t,percentage:(n+1)*e}:t)).sort(((e,t)=>e.percentage-t.percentage));for(let n=0;n<a.length;n++)if(a[n].percentage>t)return a[n].color;return null===(n=a[a.length-1])||void 0===n?void 0:n.color}},v=ca((()=>({percentage:e.percentage})));return{barStyle:t,relativeStrokeWidth:n,radius:l,trackPath:a,perimeter:o,rate:r,strokeDashoffset:i,trailPathStyle:s,circlePathStyle:u,stroke:c,iconClass:d,progressTextSize:p,content:f,getCurrentColor:h,slotData:v}}});const pO={key:0,class:"el-progress-bar"},fO={key:0,class:"el-progress-bar__innerText"},hO={viewBox:"0 0 100 100"},vO={key:0};dO.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-progress",["el-progress--"+e.type,e.status?"is-"+e.status:"",{"el-progress--without-text":!e.showText,"el-progress--text-inside":e.textInside}]],role:"progressbar","aria-valuenow":e.percentage,"aria-valuemin":"0","aria-valuemax":"100"},["line"===e.type?(wl(),Sl("div",pO,[Ll("div",{class:"el-progress-bar__outer",style:{height:e.strokeWidth+"px"}},[Ll("div",{class:["el-progress-bar__inner",{"el-progress-bar__inner--indeterminate":e.indeterminate}],style:e.barStyle},[(e.showText||e.$slots.default)&&e.textInside?(wl(),Sl("div",fO,[Ht(e.$slots,"default",e.slotData,(()=>[Ll("span",null,c(e.content),1)]))])):Pl("v-if",!0)],6)],4)])):(wl(),Sl("div",{key:1,class:"el-progress-circle",style:{height:e.width+"px",width:e.width+"px"}},[(wl(),Sl("svg",hO,[Ll("path",{class:"el-progress-circle__track",d:e.trackPath,stroke:"#e5e9f2","stroke-width":e.relativeStrokeWidth,fill:"none",style:e.trailPathStyle},null,12,["d","stroke-width"]),Ll("path",{class:"el-progress-circle__path",d:e.trackPath,stroke:e.stroke,fill:"none","stroke-linecap":e.strokeLinecap,"stroke-width":e.percentage?e.relativeStrokeWidth:0,style:e.circlePathStyle},null,12,["d","stroke","stroke-linecap","stroke-width"])]))],4)),!e.showText&&!e.$slots.default||e.textInside?Pl("v-if",!0):(wl(),Sl("div",{key:2,class:"el-progress__text",style:{fontSize:e.progressTextSize+"px"}},[Ht(e.$slots,"default",e.slotData,(()=>[e.status?(wl(),Sl("i",{key:1,class:e.iconClass},null,2)):(wl(),Sl("span",vO,c(e.content),1))]))],4))],10,["aria-valuenow"])},dO.__file="packages/progress/src/index.vue",dO.install=e=>{e.component(dO.name,dO)};const mO=dO;var gO=Qn({name:"ElRadioButton",props:{label:{type:[String,Number,Boolean],default:""},disabled:Boolean,name:{type:String,default:""}},setup(e){const{isGroup:t,radioGroup:n,elFormItemSize:l,ELEMENT:a,focus:o,elForm:r}=px(),i=ca((()=>n.radioGroupSize||l.value||a.size)),s=ca({get:()=>n.modelValue,set(e){n.changeEvent(e)}}),{isDisabled:u,tabIndex:c}=fx(e,{model:s,elForm:r,radioGroup:n,isGroup:t});return{isGroup:t,size:i,isDisabled:u,tabIndex:c,value:s,focus:o,activeStyle:ca((()=>({backgroundColor:n.fill||"",borderColor:n.fill||"",boxShadow:n.fill?"-1px 0 0 0 "+n.fill:"",color:n.textColor||""})))}}});gO.render=function(e,t,n,l,a,o){return wl(),Sl("label",{class:["el-radio-button",[e.size?"el-radio-button--"+e.size:"",{"is-active":e.value===e.label,"is-disabled":e.isDisabled,"is-focus":e.focus}]],role:"radio","aria-checked":e.value===e.label,"aria-disabled":e.isDisabled,tabindex:e.tabIndex,onKeydown:t[5]||(t[5]=vo(fo((t=>e.value=e.isDisabled?e.value:e.label),["stop","prevent"]),["space"]))},[Un(Ll("input",{"onUpdate:modelValue":t[1]||(t[1]=t=>e.value=t),class:"el-radio-button__orig-radio",value:e.label,type:"radio",name:e.name,disabled:e.isDisabled,tabindex:"-1",onFocus:t[2]||(t[2]=t=>e.focus=!0),onBlur:t[3]||(t[3]=t=>e.focus=!1)},null,40,["value","name","disabled"]),[[io,e.value]]),Ll("span",{class:"el-radio-button__inner",style:e.value===e.label?e.activeStyle:null,onKeydown:t[4]||(t[4]=fo((()=>{}),["stop"]))},[Ht(e.$slots,"default",{},(()=>[Al(c(e.label),1)]))],36)],42,["aria-checked","aria-disabled","tabindex"])},gO.__file="packages/radio/src/radio-button.vue",gO.install=e=>{e.component(gO.name,gO)};const yO=gO;var bO=Qn({name:"ElRadioGroup",componentName:"ElRadioGroup",props:{modelValue:{type:[String,Number,Boolean],default:""},size:{type:String,validator:Ib},fill:{type:String,default:""},textColor:{type:String,default:""},disabled:Boolean},emits:[Nb,"change"],setup(e,t){const n=lt(null),l=zl("elFormItem",{}),a=ca((()=>e.size||l.size));return $l("RadioGroup",Ue(Object.assign(Object.assign({name:"ElRadioGroup"},ct(e)),{radioGroupSize:a,changeEvent:e=>{t.emit(Nb,e),Dt((()=>{t.emit("change",e)}))}}))),Sn((()=>e.modelValue),(e=>{var t;null===(t=l.formItemMitt)||void 0===t||t.emit("el.form.change",[e])})),mn((()=>{const e=n.value.querySelectorAll("[type=radio]"),t=e[0];!Array.from(e).some((e=>e.checked))&&t&&(t.tabIndex=0)})),{handleKeydown:e=>{const t=e.target,l="INPUT"===t.nodeName?"[type=radio]":"[role=radio]",a=n.value.querySelectorAll(l),o=a.length,r=Array.from(a).indexOf(t),i=n.value.querySelectorAll("[role=radio]");let s=null;switch(e.code){case vb.left:case vb.up:e.stopPropagation(),e.preventDefault(),s=0===r?o-1:r-1;break;case vb.right:case vb.down:e.stopPropagation(),e.preventDefault(),s=r===o-1?0:r+1}null!==s&&(i[s].click(),i[s].focus())},radioGroupSize:a,radioGroup:n}}});bO.render=function(e,t,n,l,a,o){return wl(),Sl("div",{ref:"radioGroup",class:"el-radio-group",role:"radiogroup",onKeydown:t[1]||(t[1]=(...t)=>e.handleKeydown&&e.handleKeydown(...t))},[Ht(e.$slots,"default")],544)},bO.__file="packages/radio/src/radio-group.vue",bO.install=e=>{e.component(bO.name,bO)};const _O=bO;var kO=Qn({name:"ElRate",props:{modelValue:{type:Number,default:0},lowThreshold:{type:Number,default:2},highThreshold:{type:Number,default:4},max:{type:Number,default:5},colors:{type:[Array,Object],default:()=>["#F7BA2A","#F7BA2A","#F7BA2A"]},voidColor:{type:String,default:"#C6D1DE"},disabledVoidColor:{type:String,default:"#EFF2F7"},iconClasses:{type:[Array,Object],default:()=>["el-icon-star-on","el-icon-star-on","el-icon-star-on"]},voidIconClass:{type:String,default:"el-icon-star-off"},disabledVoidIconClass:{type:String,default:"el-icon-star-on"},disabled:{type:Boolean,default:!1},allowHalf:{type:Boolean,default:!1},showText:{type:Boolean,default:!1},showScore:{type:Boolean,default:!1},textColor:{type:String,default:"#1f2d3d"},texts:{type:Array,default:()=>["Extremely bad","Disappointed","Fair","Satisfied","Surprise"]},scoreTemplate:{type:String,default:"{value}"}},emits:["update:modelValue","change"],setup(e,{emit:t}){const n=zl("elForm",{}),l=lt(e.modelValue),a=ca((()=>e.disabled||n.disabled)),o=ca((()=>{let t="";return e.showScore?t=e.scoreTemplate.replace(/\{\s*value\s*\}/,a.value?""+e.modelValue:""+l.value):e.showText&&(t=e.texts[Math.ceil(l.value)-1]),t}));function r(e,t){const n=Object.keys(t).filter((n=>{const l=t[n];return fy(l)&&l.excluded?e<n:e<=n})).sort(((e,t)=>e-t)),l=t[n[0]];return fy(l)?l.value:l||""}const i=ca((()=>100*e.modelValue-100*Math.floor(e.modelValue))),s=ca((()=>cy(e.colors)?{[e.lowThreshold]:e.colors[0],[e.highThreshold]:{value:e.colors[1],excluded:!0},[e.max]:e.colors[2]}:e.colors)),u=ca((()=>r(l.value,s.value))),c=ca((()=>{let t="";return a.value?t=i.value+"%":e.allowHalf&&(t="50%"),{color:u.value,width:t}})),d=ca((()=>cy(e.iconClasses)?{[e.lowThreshold]:e.iconClasses[0],[e.highThreshold]:{value:e.iconClasses[1],excluded:!0},[e.max]:e.iconClasses[2]}:e.iconClasses)),p=ca((()=>r(e.modelValue,d.value))),f=ca((()=>a.value?e.disabledVoidIconClass:e.voidIconClass)),h=ca((()=>r(l.value,d.value))),v=ca((()=>{let t=Array(e.max),n=l.value;return t.fill(h.value,0,n),t.fill(f.value,n,e.max),t})),m=lt(!0);Sn((()=>e.modelValue),(t=>{l.value=t,m.value=e.modelValue!==Math.floor(e.modelValue)}));const g=lt(-1);return e.modelValue||t("update:modelValue",0),{hoverIndex:g,currentValue:l,rateDisabled:a,text:o,decimalStyle:c,decimalIconClass:p,classes:v,showDecimalIcon:function(t){let n=a.value&&i.value>0&&t-1<e.modelValue&&t>e.modelValue,o=e.allowHalf&&m.value&&t-.5<=l.value&&t>l.value;return n||o},getIconStyle:function(t){const n=a.value?e.disabledVoidColor:e.voidColor;return{color:t<=l.value?u.value:n}},selectValue:function(n){a.value||(e.allowHalf&&m.value?(t("update:modelValue",l.value),t("change",l.value)):(t("update:modelValue",n),t("change",n)))},handleKey:function(n){if(a.value)return;let o=l.value;const r=n.code;return r===vb.up||r===vb.right?(e.allowHalf?o+=.5:o+=1,n.stopPropagation(),n.preventDefault()):r!==vb.left&&r!==vb.down||(e.allowHalf?o-=.5:o-=1,n.stopPropagation(),n.preventDefault()),o=o<0?0:o,o=o>e.max?e.max:o,t("update:modelValue",o),t("change",o),o},setCurrentValue:function(t,n){if(!a.value){if(e.allowHalf){let e=n.target;Ry(e,"el-rate__item")&&(e=e.querySelector(".el-rate__icon")),Ry(e,"el-rate__decimal")&&(e=e.parentNode),m.value=2*n.offsetX<=e.clientWidth,l.value=m.value?t-.5:t}else l.value=t;g.value=t}},resetCurrentValue:function(){a.value||(e.allowHalf&&(m.value=e.modelValue!==Math.floor(e.modelValue)),l.value=e.modelValue,g.value=-1)}}}});kO.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:"el-rate",role:"slider","aria-valuenow":e.currentValue,"aria-valuetext":e.text,"aria-valuemin":"0","aria-valuemax":e.max,tabindex:"0",onKeydown:t[2]||(t[2]=(...t)=>e.handleKey&&e.handleKey(...t))},[(wl(!0),Sl(gl,null,pa(e.max,((n,l)=>(wl(),Sl("span",{key:l,class:"el-rate__item",style:{cursor:e.rateDisabled?"auto":"pointer"},onMousemove:t=>e.setCurrentValue(n,t),onMouseleave:t[1]||(t[1]=(...t)=>e.resetCurrentValue&&e.resetCurrentValue(...t)),onClick:t=>e.selectValue(n)},[Ll("i",{class:[[e.classes[n-1],{hover:e.hoverIndex===n}],"el-rate__icon"],style:e.getIconStyle(n)},[e.showDecimalIcon(n)?(wl(),Sl("i",{key:0,class:[e.decimalIconClass,"el-rate__decimal"],style:e.decimalStyle},null,6)):Pl("v-if",!0)],6)],44,["onMousemove","onClick"])))),128)),e.showText||e.showScore?(wl(),Sl("span",{key:0,class:"el-rate__text",style:{color:e.textColor}},c(e.text),5)):Pl("v-if",!0)],40,["aria-valuenow","aria-valuetext","aria-valuemax"])},kO.__file="packages/rate/src/index.vue",kO.install=e=>{e.component(kO.name,kO)};const xO=kO,wO=Qn({name:"ElRow",props:{tag:{type:String,default:"div"},gutter:{type:Number,default:0},type:{type:String,default:""},justify:{type:String,default:"start"},align:{type:String,default:"top"}},setup(e,{slots:t}){$l("ElRow",{gutter:ca((()=>e.gutter))});const n=ca((()=>{const t={marginLeft:"",marginRight:""};return e.gutter&&(t.marginLeft=`-${e.gutter/2}px`,t.marginRight=t.marginLeft),t}));return()=>{var l;return da(e.tag,{class:["el-row","start"!==e.justify?"is-justify-"+e.justify:"","top"!==e.align?"is-align-"+e.align:"","flex"===e.type?"el-row--flex":""],style:n.value},null===(l=t.default)||void 0===l?void 0:l.call(t))}}});wO.install=e=>{e.component(wO.name,wO)};const CO=(e,t,n)=>{const{disabled:l,min:a,max:o,step:r,showTooltip:i,precision:s,sliderSize:u,formatTooltip:c,emitChange:d,resetSize:p,updateDragging:f}=zl("SliderProvider"),{tooltip:h,tooltipVisible:v,formatValue:m,displayTooltip:g,hideTooltip:y}=((e,t,n)=>{const l=lt(null),a=lt(!1),o=ca((()=>t.value instanceof Function)),r=ca((()=>o.value&&t.value(e.modelValue)||e.modelValue)),i=uu((()=>{n.value&&(a.value=!0)}),50),s=uu((()=>{n.value&&(a.value=!1)}),50);return{tooltip:l,tooltipVisible:a,formatValue:r,displayTooltip:i,hideTooltip:s}})(e,c,i),b=ca((()=>(e.modelValue-a.value)/(o.value-a.value)*100+"%")),_=ca((()=>e.vertical?{bottom:b.value}:{left:b.value})),k=e=>{let t,n;return e.type.startsWith("touch")?(n=e.touches[0].clientY,t=e.touches[0].clientX):(n=e.clientY,t=e.clientX),{clientX:t,clientY:n}},x=n=>{if(t.dragging){let l;t.isClick=!1,g(),p();const{clientX:a,clientY:o}=k(n);e.vertical?(t.currentY=o,l=(t.startY-t.currentY)/u.value*100):(t.currentX=a,l=(t.currentX-t.startX)/u.value*100),t.newPosition=t.startPosition+l,C(t.newPosition)}},w=()=>{t.dragging&&(setTimeout((()=>{t.dragging=!1,t.hovering||y(),t.isClick||(C(t.newPosition),d())}),0),jy(window,"mousemove",x),jy(window,"touchmove",x),jy(window,"mouseup",w),jy(window,"touchend",w),jy(window,"contextmenu",w))},C=l=>oE(void 0,void 0,void 0,(function*(){if(null===l||isNaN(l))return;l<0?l=0:l>100&&(l=100);const i=100/((o.value-a.value)/r.value);let u=Math.round(l/i)*i*(o.value-a.value)*.01+a.value;u=parseFloat(u.toFixed(s.value)),n(Nb,u),t.dragging||e.modelValue===t.oldValue||(t.oldValue=e.modelValue),yield Dt(),t.dragging&&g(),h.value.updatePopper()}));return Sn((()=>t.dragging),(e=>{f(e)})),{tooltip:h,tooltipVisible:v,showTooltip:i,wrapperStyle:_,formatValue:m,handleMouseEnter:()=>{t.hovering=!0,g()},handleMouseLeave:()=>{t.hovering=!1,t.dragging||y()},onButtonDown:n=>{l.value||(n.preventDefault(),(n=>{t.dragging=!0,t.isClick=!0;const{clientX:l,clientY:a}=k(n);e.vertical?t.startY=a:t.startX=l,t.startPosition=parseFloat(b.value),t.newPosition=t.startPosition})(n),zy(window,"mousemove",x),zy(window,"touchmove",x),zy(window,"mouseup",w),zy(window,"touchend",w),zy(window,"contextmenu",w))},onLeftKeyDown:()=>{l.value||(t.newPosition=parseFloat(b.value)-r.value/(o.value-a.value)*100,C(t.newPosition),d())},onRightKeyDown:()=>{l.value||(t.newPosition=parseFloat(b.value)+r.value/(o.value-a.value)*100,C(t.newPosition),d())},setPosition:C}};var SO=Qn({name:"ElSliderButton",components:{ElTooltip:FE},props:{modelValue:{type:Number,default:0},vertical:{type:Boolean,default:!1},tooltipClass:{type:String,default:""}},emits:[Nb],setup(e,{emit:t}){const n=Ue({hovering:!1,dragging:!1,isClick:!1,startX:0,currentX:0,startY:0,currentY:0,startPosition:0,newPosition:0,oldValue:e.modelValue}),{tooltip:l,showTooltip:a,tooltipVisible:o,wrapperStyle:r,formatValue:i,handleMouseEnter:s,handleMouseLeave:u,onButtonDown:c,onLeftKeyDown:d,onRightKeyDown:p,setPosition:f}=CO(e,n,t),{hovering:h,dragging:v}=ct(n);return{tooltip:l,tooltipVisible:o,showTooltip:a,wrapperStyle:r,formatValue:i,handleMouseEnter:s,handleMouseLeave:u,onButtonDown:c,onLeftKeyDown:d,onRightKeyDown:p,setPosition:f,hovering:h,dragging:v}}});SO.render=function(e,t,n,l,a,o){const r=dl("el-tooltip");return wl(),Sl("div",{ref:"button",class:["el-slider__button-wrapper",{hover:e.hovering,dragging:e.dragging}],style:e.wrapperStyle,tabindex:"0",onMouseenter:t[2]||(t[2]=(...t)=>e.handleMouseEnter&&e.handleMouseEnter(...t)),onMouseleave:t[3]||(t[3]=(...t)=>e.handleMouseLeave&&e.handleMouseLeave(...t)),onMousedown:t[4]||(t[4]=(...t)=>e.onButtonDown&&e.onButtonDown(...t)),onTouchstart:t[5]||(t[5]=(...t)=>e.onButtonDown&&e.onButtonDown(...t)),onFocus:t[6]||(t[6]=(...t)=>e.handleMouseEnter&&e.handleMouseEnter(...t)),onBlur:t[7]||(t[7]=(...t)=>e.handleMouseLeave&&e.handleMouseLeave(...t)),onKeydown:[t[8]||(t[8]=vo(((...t)=>e.onLeftKeyDown&&e.onLeftKeyDown(...t)),["left"])),t[9]||(t[9]=vo(((...t)=>e.onRightKeyDown&&e.onRightKeyDown(...t)),["right"])),t[10]||(t[10]=vo(fo(((...t)=>e.onLeftKeyDown&&e.onLeftKeyDown(...t)),["prevent"]),["down"])),t[11]||(t[11]=vo(fo(((...t)=>e.onRightKeyDown&&e.onRightKeyDown(...t)),["prevent"]),["up"]))]},[Ll(r,{ref:"tooltip",modelValue:e.tooltipVisible,"onUpdate:modelValue":t[1]||(t[1]=t=>e.tooltipVisible=t),placement:"top","stop-popper-mouse-event":!1,"popper-class":e.tooltipClass,disabled:!e.showTooltip,manual:""},{content:Zt((()=>[Ll("span",null,c(e.formatValue),1)])),default:Zt((()=>[Ll("div",{class:["el-slider__button",{hover:e.hovering,dragging:e.dragging}]},null,2)])),_:1},8,["modelValue","popper-class","disabled"])],38)},SO.__file="packages/slider/src/button.vue";var EO=Qn({name:"ElMarker",props:{mark:{type:[String,Object],default:()=>{}}},setup:e=>({label:ca((()=>"string"==typeof e.mark?e.mark:e.mark.label))}),render(){var e;return da("div",{class:"el-slider__marks-text",style:null===(e=this.mark)||void 0===e?void 0:e.style},this.label)}});EO.__file="packages/slider/src/marker.vue";var MO=Qn({name:"ElSlider",components:{ElInputNumber:hE,SliderButton:SO,SliderMarker:EO},props:{modelValue:{type:[Number,Array],default:0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},showInput:{type:Boolean,default:!1},showInputControls:{type:Boolean,default:!0},inputSize:{type:String,default:"small"},showStops:{type:Boolean,default:!1},showTooltip:{type:Boolean,default:!0},formatTooltip:{type:Function,default:void 0},disabled:{type:Boolean,default:!1},range:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},height:{type:String,default:""},debounce:{type:Number,default:300},label:{type:String,default:void 0},tooltipClass:{type:String,default:void 0},marks:Object},emits:[Nb,"change","input"],setup(e,{emit:t}){const n=Ue({firstValue:0,secondValue:0,oldValue:0,dragging:!1,sliderSize:1}),{elFormItem:l,slider:a,firstButton:o,secondButton:r,sliderDisabled:i,minValue:s,maxValue:u,runwayStyle:c,barStyle:d,resetSize:p,emitChange:f,onSliderClick:h}=((e,t,n)=>{const l=zl("elForm",{}),a=zl("elFormItem",{}),o=lt(null),r=lt(null),i=lt(null),s={firstButton:r,secondButton:i},u=ca((()=>e.disabled||l.disabled||!1)),c=ca((()=>Math.min(t.firstValue,t.secondValue))),d=ca((()=>Math.max(t.firstValue,t.secondValue))),p=ca((()=>e.range?100*(d.value-c.value)/(e.max-e.min)+"%":100*(t.firstValue-e.min)/(e.max-e.min)+"%")),f=ca((()=>e.range?100*(c.value-e.min)/(e.max-e.min)+"%":"0%")),h=ca((()=>e.vertical?{height:e.height}:{})),v=ca((()=>e.vertical?{height:p.value,bottom:f.value}:{width:p.value,left:f.value})),m=()=>{o.value&&(t.sliderSize=o.value["client"+(e.vertical?"Height":"Width")])},g=n=>{const l=e.min+n*(e.max-e.min)/100;if(!e.range)return void r.value.setPosition(n);let a;a=Math.abs(c.value-l)<Math.abs(d.value-l)?t.firstValue<t.secondValue?"firstButton":"secondButton":t.firstValue>t.secondValue?"firstButton":"secondButton",s[a].value.setPosition(n)},y=()=>oE(void 0,void 0,void 0,(function*(){yield Dt(),n("change",e.range?[c.value,d.value]:e.modelValue)}));return{elFormItem:a,slider:o,firstButton:r,secondButton:i,sliderDisabled:u,minValue:c,maxValue:d,runwayStyle:h,barStyle:v,resetSize:m,setPosition:g,emitChange:y,onSliderClick:n=>{if(!u.value&&!t.dragging){if(m(),e.vertical){const e=o.value.getBoundingClientRect().bottom;g((e-n.clientY)/t.sliderSize*100)}else{const e=o.value.getBoundingClientRect().left;g((n.clientX-e)/t.sliderSize*100)}y()}}}})(e,n,t),{stops:v,getStopStyle:m}=((e,t,n,l)=>({stops:ca((()=>{if(!e.showStops||e.min>e.max)return[];if(0===e.step)return[];const a=(e.max-e.min)/e.step,o=100*e.step/(e.max-e.min),r=Array.from({length:a-1}).map(((e,t)=>(t+1)*o));return e.range?r.filter((t=>t<100*(n.value-e.min)/(e.max-e.min)||t>100*(l.value-e.min)/(e.max-e.min))):r.filter((n=>n>100*(t.firstValue-e.min)/(e.max-e.min)))})),getStopStyle:t=>e.vertical?{bottom:t+"%"}:{left:t+"%"}}))(e,n,s,u),g=(y=e,ca((()=>y.marks?Object.keys(y.marks).map(parseFloat).sort(((e,t)=>e-t)).filter((e=>e<=y.max&&e>=y.min)).map((e=>({point:e,position:100*(e-y.min)/(y.max-y.min),mark:y.marks[e]}))):[])));var y;OO(e,n,s,u,t,l);const b=ca((()=>{let t=[e.min,e.max,e.step].map((e=>{let t=(""+e).split(".")[1];return t?t.length:0}));return Math.max.apply(null,t)})),{sliderWrapper:_}=TO(e,n,p),{firstValue:k,secondValue:x,oldValue:w,dragging:C,sliderSize:S}=ct(n);return $l("SliderProvider",Object.assign(Object.assign({},ct(e)),{sliderSize:S,disabled:i,precision:b,emitChange:f,resetSize:p,updateDragging:e=>{n.dragging=e}})),{firstValue:k,secondValue:x,oldValue:w,dragging:C,sliderSize:S,slider:a,firstButton:o,secondButton:r,sliderDisabled:i,runwayStyle:c,barStyle:d,emitChange:f,onSliderClick:h,getStopStyle:m,stops:v,markList:g,sliderWrapper:_}}});const OO=(e,t,n,l,a,o)=>{const r=e=>{a(Nb,e),a("input",e)},i=()=>e.range?![n.value,l.value].every(((e,n)=>e===t.oldValue[n])):e.modelValue!==t.oldValue,s=()=>{var a,s;if(e.min>e.max)return void wy("Slider","min should not be greater than max.");const u=e.modelValue;e.range&&Array.isArray(u)?u[1]<e.min?r([e.min,e.min]):u[0]>e.max?r([e.max,e.max]):u[0]<e.min?r([e.min,u[1]]):u[1]>e.max?r([u[0],e.max]):(t.firstValue=u[0],t.secondValue=u[1],i()&&(null===(a=o.formItemMitt)||void 0===a||a.emit("el.form.change",[n.value,l.value]),t.oldValue=u.slice())):e.range||"number"!=typeof u||isNaN(u)||(u<e.min?r(e.min):u>e.max?r(e.max):(t.firstValue=u,i()&&(null===(s=o.formItemMitt)||void 0===s||s.emit("el.form.change",u),t.oldValue=u)))};s(),Sn((()=>t.dragging),(e=>{e||s()})),Sn((()=>t.firstValue),(t=>{e.range?r([n.value,l.value]):r(t)})),Sn((()=>t.secondValue),(()=>{e.range&&r([n.value,l.value])})),Sn((()=>e.modelValue),((e,n)=>{t.dragging||Array.isArray(e)&&Array.isArray(n)&&e.every(((e,t)=>e===n[t]))||s()})),Sn((()=>[e.min,e.max]),(()=>{s()}))},TO=(e,t,n)=>{const l=lt(null);return mn((()=>oE(void 0,void 0,void 0,(function*(){let a;e.range?(Array.isArray(e.modelValue)?(t.firstValue=Math.max(e.min,e.modelValue[0]),t.secondValue=Math.min(e.max,e.modelValue[1])):(t.firstValue=e.min,t.secondValue=e.max),t.oldValue=[t.firstValue,t.secondValue],a=`${t.firstValue}-${t.secondValue}`):("number"!=typeof e.modelValue||isNaN(e.modelValue)?t.firstValue=e.min:t.firstValue=Math.min(e.max,Math.max(e.min,e.modelValue)),t.oldValue=t.firstValue,a=t.firstValue),l.value.setAttribute("aria-valuetext",a),l.value.setAttribute("aria-label",e.label?e.label:`slider between ${e.min} and ${e.max}`),zy(window,"resize",n),yield Dt(),n()})))),bn((()=>{jy(window,"resize",n)})),{sliderWrapper:l}},DO={key:1},LO={class:"el-slider__marks"};MO.render=function(e,t,n,l,a,o){const r=dl("el-input-number"),i=dl("slider-button"),s=dl("slider-marker");return wl(),Sl("div",{ref:"sliderWrapper",class:["el-slider",{"is-vertical":e.vertical,"el-slider--with-input":e.showInput}],role:"slider","aria-valuemin":e.min,"aria-valuemax":e.max,"aria-orientation":e.vertical?"vertical":"horizontal","aria-disabled":e.sliderDisabled},[e.showInput&&!e.range?(wl(),Sl(r,{key:0,ref:"input",modelValue:e.firstValue,"onUpdate:modelValue":t[1]||(t[1]=t=>e.firstValue=t),class:"el-slider__input",step:e.step,disabled:e.sliderDisabled,controls:e.showInputControls,min:e.min,max:e.max,debounce:e.debounce,size:e.inputSize,onChange:e.emitChange},null,8,["modelValue","step","disabled","controls","min","max","debounce","size","onChange"])):Pl("v-if",!0),Ll("div",{ref:"slider",class:["el-slider__runway",{"show-input":e.showInput&&!e.range,disabled:e.sliderDisabled}],style:e.runwayStyle,onClick:t[4]||(t[4]=(...t)=>e.onSliderClick&&e.onSliderClick(...t))},[Ll("div",{class:"el-slider__bar",style:e.barStyle},null,4),Ll(i,{ref:"firstButton",modelValue:e.firstValue,"onUpdate:modelValue":t[2]||(t[2]=t=>e.firstValue=t),vertical:e.vertical,"tooltip-class":e.tooltipClass},null,8,["modelValue","vertical","tooltip-class"]),e.range?(wl(),Sl(i,{key:0,ref:"secondButton",modelValue:e.secondValue,"onUpdate:modelValue":t[3]||(t[3]=t=>e.secondValue=t),vertical:e.vertical,"tooltip-class":e.tooltipClass},null,8,["modelValue","vertical","tooltip-class"])):Pl("v-if",!0),e.showStops?(wl(),Sl("div",DO,[(wl(!0),Sl(gl,null,pa(e.stops,((t,n)=>(wl(),Sl("div",{key:n,class:"el-slider__stop",style:e.getStopStyle(t)},null,4)))),128))])):Pl("v-if",!0),e.markList.length>0?(wl(),Sl(gl,{key:2},[Ll("div",null,[(wl(!0),Sl(gl,null,pa(e.markList,((t,n)=>(wl(),Sl("div",{key:n,style:e.getStopStyle(t.position),class:"el-slider__stop el-slider__marks-stop"},null,4)))),128))]),Ll("div",LO,[(wl(!0),Sl(gl,null,pa(e.markList,((t,n)=>(wl(),Sl(s,{key:n,mark:t.mark,style:e.getStopStyle(t.position)},null,8,["mark","style"])))),128))])],64)):Pl("v-if",!0)],6)],10,["aria-valuemin","aria-valuemax","aria-orientation","aria-disabled"])},MO.__file="packages/slider/src/index.vue",MO.install=e=>{e.component(MO.name,MO)};const NO=MO;var AO=Qn({name:"ElStep",props:{title:{type:String,default:""},icon:{type:String,default:""},description:{type:String,default:""},status:{type:String,default:"",validator:e=>["","wait","process","finish","error","success"].includes(e)}},setup(e){const t=lt(-1),n=lt({}),l=lt(""),a=zl("ElSteps"),o=na();mn((()=>{Sn([()=>a.props.active,()=>a.props.processStatus,()=>a.props.finishStatus],(([e])=>{g(e)}),{immediate:!0})})),bn((()=>{a.steps.value=a.steps.value.filter((e=>e.uid!==o.uid))}));const r=ca((()=>e.status||l.value)),i=ca((()=>{const e=a.steps.value[t.value-1];return e?e.currentStatus:"wait"})),s=ca((()=>a.props.alignCenter)),u=ca((()=>"vertical"===a.props.direction)),c=ca((()=>a.props.simple)),d=ca((()=>a.steps.value.length)),p=ca((()=>{var e;return(null===(e=a.steps.value[d.value-1])||void 0===e?void 0:e.uid)===o.uid})),f=ca((()=>c.value?"":a.props.space)),h=ca((()=>{const e={flexBasis:"number"==typeof f.value?f.value+"px":f.value?f.value:100/(d.value-(s.value?0:1))+"%"};return u.value||p.value&&(e.maxWidth=100/d.value+"%"),e})),v=e=>{t.value=e},m=e=>{let l=100;const o={};o.transitionDelay=150*t.value+"ms",e===a.props.processStatus?l=0:"wait"===e&&(l=0,o.transitionDelay=-150*t.value+"ms"),o.borderWidth=l&&!c.value?"1px":0,o["vertical"===a.props.direction?"height":"width"]=l+"%",n.value=o},g=e=>{e>t.value?l.value=a.props.finishStatus:e===t.value&&"error"!==i.value?l.value=a.props.processStatus:l.value="wait";const n=a.steps.value[d.value-1];n&&n.calcProgress(l.value)},y=Ue({uid:ca((()=>o.uid)),currentStatus:r,setIndex:v,calcProgress:m});return a.steps.value=[...a.steps.value,y],{index:t,lineStyle:n,currentStatus:r,isCenter:s,isVertical:u,isSimple:c,isLast:p,space:f,style:h,parent:a,setIndex:v,calcProgress:m,updateStatus:g}}});const PO={class:"el-step__line"},IO={key:1,class:"el-step__icon-inner"},FO={class:"el-step__main"},VO={key:0,class:"el-step__arrow"};AO.render=function(e,t,n,l,a,o){return wl(),Sl("div",{style:e.style,class:["el-step",e.isSimple?"is-simple":"is-"+e.parent.props.direction,e.isLast&&!e.space&&!e.isCenter&&"is-flex",e.isCenter&&!e.isVertical&&!e.isSimple&&"is-center"]},[Pl(" icon & line "),Ll("div",{class:["el-step__head","is-"+e.currentStatus]},[Ll("div",PO,[Ll("i",{class:"el-step__line-inner",style:e.lineStyle},null,4)]),Ll("div",{class:["el-step__icon","is-"+(e.icon?"icon":"text")]},["success"!==e.currentStatus&&"error"!==e.currentStatus?Ht(e.$slots,"icon",{key:0},(()=>[e.icon?(wl(),Sl("i",{key:0,class:["el-step__icon-inner",e.icon]},null,2)):Pl("v-if",!0),e.icon||e.isSimple?Pl("v-if",!0):(wl(),Sl("div",IO,c(e.index+1),1))])):(wl(),Sl("i",{key:1,class:["el-step__icon-inner","is-status","el-icon-"+("success"===e.currentStatus?"check":"close")]},null,2))],2)],2),Pl(" title & description "),Ll("div",FO,[Ll("div",{class:["el-step__title","is-"+e.currentStatus]},[Ht(e.$slots,"title",{},(()=>[Al(c(e.title),1)]))],2),e.isSimple?(wl(),Sl("div",VO)):(wl(),Sl("div",{key:1,class:["el-step__description","is-"+e.currentStatus]},[Ht(e.$slots,"description",{},(()=>[Al(c(e.description),1)]))],2))])],6)},AO.__file="packages/steps/src/item.vue",AO.install=e=>{e.component(AO.name,AO)};const BO=AO;var $O=Qn({name:"ElSteps",props:{space:{type:[Number,String],default:""},active:{type:Number,default:0},direction:{type:String,default:"horizontal",validator:e=>["horizontal","vertical"].includes(e)},alignCenter:{type:Boolean,default:!1},simple:{type:Boolean,default:!1},finishStatus:{type:String,default:"finish",validator:e=>["wait","process","finish","error","success"].includes(e)},processStatus:{type:String,default:"process",validator:e=>["wait","process","finish","error","success"].includes(e)}},emits:["change"],setup(e,{emit:t}){const n=lt([]);return Sn(n,(()=>{n.value.forEach(((e,t)=>{e.setIndex(t)}))})),$l("ElSteps",{props:e,steps:n}),Sn((()=>e.active),((e,n)=>{t("change",e,n)})),{steps:n}}});$O.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-steps",e.simple?"el-steps--simple":"el-steps--"+e.direction]},[Ht(e.$slots,"default")],2)},$O.__file="packages/steps/src/index.vue",$O.install=e=>{e.component($O.name,$O)};const zO=$O;var jO=Qn({name:"ElSubmenu",componentName:"ElSubmenu",props:{index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0}},setup(e){const t=Ue({popperJS:null,timeout:null,items:{},submenus:{},currentPlacement:"",mouseInChild:!1,opened:!1}),n=lt(null),l=lt(null),a=na(),{paddingStyle:o,indexPath:r,parentMenu:i}=PE(a,e.index),{openedMenus:s,isMenuPopup:u,hoverBackground:c,methods:d,props:p,methods:{closeMenu:f},rootMenuOn:h,rootMenuEmit:v}=zl("rootMenu"),{addSubMenu:m,removeSubMenu:g,handleMouseleave:y}=zl("subMenu:"+i.value.uid),b=ca((()=>"horizontal"===O.value&&_.value||"vertical"===O.value&&!p.collapse?"el-icon-arrow-down":"el-icon-arrow-right")),_=ca((()=>{let e=!0,t=a.parent;for(;t&&"ElMenu"!==t.type.name;){if(["ElSubmenu","ElMenuItemGroup"].includes(t.type.name)){e=!1;break}t=t.parent}return e})),k=ca((()=>void 0===e.popperAppendToBody?_.value:Boolean(e.popperAppendToBody))),x=ca((()=>p.collapse?"el-zoom-in-left":"el-zoom-in-top")),w=ca((()=>s.value.includes(e.index))),C=ca((()=>{let e=!1;const n=t.submenus,l=t.items;return Object.keys(l).forEach((t=>{l[t].active&&(e=!0)})),Object.keys(n).forEach((t=>{n[t].active&&(e=!0)})),e})),S=ca((()=>p.backgroundColor||"")),E=ca((()=>p.activeTextColor||"")),M=ca((()=>p.textColor||"")),O=ca((()=>p.mode)),T=ca((()=>"horizontal"!==O.value?{color:M.value}:{borderBottomColor:C.value?p.activeTextColor?E.value:"":"transparent",color:C.value?E.value:M.value})),D=ku(),L=e=>{t.submenus[e.index]=e},N=e=>{delete t.submenus[e.index]},A=(n=!1)=>{"click"===p.menuTrigger&&"horizontal"===p.mode||!p.collapse&&"vertical"===p.mode||(D.emit("submenu:mouse-leave-child"),clearTimeout(t.timeout),t.timeout=setTimeout((()=>{!t.mouseInChild&&f(e.index)}),e.hideTimeout),k.value&&n&&"ElSubmenu"===a.parent.type.name&&y(!0))},P=()=>{t.currentPlacement="horizontal"===O.value&&_.value?"bottom-start":"right-start"};return $l("subMenu:"+a.uid,{addSubMenu:L,removeSubMenu:N,handleMouseleave:A}),vn((()=>{h("rootMenu:toggle-collapse",(e=>{(e=>{var t;e?P():null===(t=l.value)||void 0===t||t.doDestroy()})(e)})),D.on("submenu:mouse-enter-child",(()=>{t.mouseInChild=!0,clearTimeout(t.timeout)})),D.on("submenu:mouse-leave-child",(()=>{t.mouseInChild=!1,clearTimeout(t.timeout)}))})),mn((()=>{d.addSubMenu({index:e.index,indexPath:r,active:C}),m({index:e.index,indexPath:r,active:C}),P()})),bn((()=>{g({index:e.index,indexPath:r,active:C}),d.removeSubMenu({index:e.index,indexPath:r,active:C})})),{data:t,props:e,mode:O,active:C,isMenuPopup:u,opened:w,paddingStyle:o,titleStyle:T,backgroundColor:S,rootProps:p,menuTransitionName:x,submenuTitleIcon:b,appendToBody:k,handleClick:()=>{const t=e.disabled;"hover"===p.menuTrigger&&"horizontal"===p.mode||p.collapse&&"vertical"===p.mode||t||v("submenu:submenu-click",{index:e.index,indexPath:r})},handleMouseenter:(n,l=e.showTimeout)=>{if(!("ActiveXObject"in window)&&"focus"===n.type&&!n.relatedTarget)return;const a=e.disabled;"click"===p.menuTrigger&&"horizontal"===p.mode||!p.collapse&&"vertical"===p.mode||a||(D.emit("submenu:mouse-enter-child"),clearTimeout(t.timeout),t.timeout=setTimeout((()=>{d.openMenu(e.index,r)}),l),k.value&&i.value.vnode.el.dispatchEvent(new MouseEvent("mouseenter")))},handleMouseleave:A,handleTitleMouseenter:()=>{var e;if("horizontal"===O.value&&!p.backgroundColor)return;const t=(null===(e=l.value)||void 0===e?void 0:e.triggerRef)||n.value;t&&(t.style.backgroundColor=c.value)},handleTitleMouseleave:()=>{var e;if("horizontal"===O.value&&!p.backgroundColor)return;const t=(null===(e=l.value)||void 0===e?void 0:e.triggerRef)||n.value;t&&(t.style.backgroundColor=p.backgroundColor||"")},addItem:e=>{t.items[e.index]=e},removeItem:e=>{delete t.items[e.index]},addSubMenu:L,removeSubMenu:N,popperVnode:l,verticalTitleRef:n}},render(){var e,t;const n=[null===(t=(e=this.$slots).title)||void 0===t?void 0:t.call(e),da("i",{class:["el-submenu__icon-arrow",this.submenuTitleIcon]},null)],l={backgroundColor:this.rootProps.backgroundColor||""},a=this.isMenuPopup?da(M_,{ref:"popperVNode",manualMode:!0,visible:this.opened,"onUpdate:visible":e=>this.opened=e,effect:"light",pure:!0,offset:6,showArrow:!1,popperClass:this.popperClass,placement:this.data.currentPlacement,appendToBody:this.appendToBody,transition:this.menuTransitionName,gpuAcceleration:!1},{default:()=>{var e,t;return da("div",{ref:"menu",class:["el-menu--"+this.mode,this.popperClass],onMouseenter:e=>this.handleMouseenter(e,100),onMouseleave:()=>this.handleMouseleave(!0),onFocus:e=>this.handleMouseenter(e,100)},[da("ul",{class:["el-menu el-menu--popup","el-menu--popup-"+this.data.currentPlacement],style:l},[null===(t=(e=this.$slots).default)||void 0===t?void 0:t.call(e)])])},trigger:()=>da("div",{class:"el-submenu__title",style:[this.paddingStyle,this.titleStyle,{backgroundColor:this.backgroundColor}],onClick:this.handleClick,onMouseenter:this.handleTitleMouseenter,onMouseleave:this.handleTitleMouseleave},n)}):da(gl,{},[da("div",{class:"el-submenu__title",style:[this.paddingStyle,this.titleStyle,{backgroundColor:this.backgroundColor}],ref:"verticalTitleRef",onClick:this.handleClick,onMouseenter:this.handleTitleMouseenter,onMouseleave:this.handleTitleMouseleave},n),da(aw,{},{default:()=>{var e,t;return Un(da("ul",{role:"menu",class:"el-menu el-menu--inline",style:l},[null===(t=(e=this.$slots).default)||void 0===t?void 0:t.call(e)]),[[mo,this.opened]])}})]);return da("li",{class:["el-submenu",{"is-active":this.active,"is-opened":this.opened,"is-disabled":this.disabled}],role:"menuitem",ariaHaspopup:!0,ariaExpanded:this.opened,onMouseenter:this.handleMouseenter,onMouseleave:()=>this.handleMouseleave(!0),onFocus:this.handleMouseenter},[a])}});jO.__file="packages/menu/src/submenu.vue",jO.install=e=>{e.component(jO.name,jO)};const RO=jO;var HO=Qn({name:"ElSwitch",props:{modelValue:{type:[Boolean,String,Number],default:!1},value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:Number,default:40},activeIconClass:{type:String,default:""},inactiveIconClass:{type:String,default:""},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},id:String,loading:{type:Boolean,default:!1},beforeChange:Function},emits:["update:modelValue","change","input"],setup(e,t){const n=zl("elForm",{}),l=zl("elFormItem",{}),a=lt(!1!==e.modelValue),o=lt(null),r=lt(null);Sn((()=>e.modelValue),(()=>{a.value=!0})),Sn((()=>e.value),(()=>{a.value=!1}));const i=ca((()=>a.value?e.modelValue:e.value)),s=ca((()=>i.value===e.activeValue));~[e.activeValue,e.inactiveValue].indexOf(i.value)||(t.emit("update:modelValue",e.inactiveValue),t.emit("change",e.inactiveValue),t.emit("input",e.inactiveValue)),Sn(s,(()=>{var t;o.value.checked=s.value,(e.activeColor||e.inactiveColor)&&d(),e.validateEvent&&(null===(t=l.formItemMitt)||void 0===t||t.emit("el.form.change",[i.value]))}));const u=ca((()=>e.disabled||e.loading||(n||{}).disabled)),c=()=>{const n=s.value?e.inactiveValue:e.activeValue;t.emit("update:modelValue",n),t.emit("change",n),t.emit("input",n),Dt((()=>{o.value.checked=s.value}))},d=()=>{const t=s.value?e.activeColor:e.inactiveColor,n=r.value;n.style.borderColor=t,n.style.backgroundColor=t,n.children[0].style.color=t};return mn((()=>{(e.activeColor||e.inactiveColor)&&d(),o.value.checked=s.value})),{input:o,core:r,switchDisabled:u,checked:s,handleChange:c,switchValue:()=>{if(u.value)return;const{beforeChange:t}=e;if(!t)return void c();const n=t();[hy(n),Oy(n)].some((e=>e))||wy("ElSwitch","beforeChange must return type `Promise<boolean>` or `boolean`"),hy(n)?n.then((e=>{e&&c()})).catch((e=>{})):n&&c()},focus:()=>{var e,t;null===(t=null===(e=o.value)||void 0===e?void 0:e.focus)||void 0===t||t.call(e)}}}});const WO={class:"el-switch__action"},YO={key:0,class:"el-icon-loading"};HO.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-switch",{"is-disabled":e.switchDisabled,"is-checked":e.checked}],role:"switch","aria-checked":e.checked,"aria-disabled":e.switchDisabled,onClick:t[3]||(t[3]=fo(((...t)=>e.switchValue&&e.switchValue(...t)),["prevent"]))},[Ll("input",{id:e.id,ref:"input",class:"el-switch__input",type:"checkbox",name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:e.switchDisabled,onChange:t[1]||(t[1]=(...t)=>e.handleChange&&e.handleChange(...t)),onKeydown:t[2]||(t[2]=vo(((...t)=>e.switchValue&&e.switchValue(...t)),["enter"]))},null,40,["id","name","true-value","false-value","disabled"]),e.inactiveIconClass||e.inactiveText?(wl(),Sl("span",{key:0,class:["el-switch__label","el-switch__label--left",e.checked?"":"is-active"]},[e.inactiveIconClass?(wl(),Sl("i",{key:0,class:[e.inactiveIconClass]},null,2)):Pl("v-if",!0),!e.inactiveIconClass&&e.inactiveText?(wl(),Sl("span",{key:1,"aria-hidden":e.checked},c(e.inactiveText),9,["aria-hidden"])):Pl("v-if",!0)],2)):Pl("v-if",!0),Ll("span",{ref:"core",class:"el-switch__core",style:{width:(e.width||40)+"px"}},[Ll("div",WO,[e.loading?(wl(),Sl("i",YO)):Pl("v-if",!0)])],4),e.activeIconClass||e.activeText?(wl(),Sl("span",{key:1,class:["el-switch__label","el-switch__label--right",e.checked?"is-active":""]},[e.activeIconClass?(wl(),Sl("i",{key:0,class:[e.activeIconClass]},null,2)):Pl("v-if",!0),!e.activeIconClass&&e.activeText?(wl(),Sl("span",{key:1,"aria-hidden":!e.checked},c(e.activeText),9,["aria-hidden"])):Pl("v-if",!0)],2)):Pl("v-if",!0)],10,["aria-checked","aria-disabled"])},HO.__file="packages/switch/src/index.vue",HO.install=e=>{e.component(HO.name,HO)};const qO=HO;var KO=Qn({name:"ElTabPane",props:{label:{type:String,default:""},name:{type:String,default:""},closable:Boolean,disabled:Boolean,lazy:Boolean},setup(e){const t=lt(null),n=lt(!1),l=zl("rootTabs"),a=zl("updatePaneState");if(!l||!a)throw new Error("ElTabPane must use with ElTabs");const o=ca((()=>e.closable||l.props.closable)),r=ca((()=>{const a=l.currentName.value===(e.name||t.value);return a&&(n.value=!0),a})),i=ca((()=>e.name||t.value)),s=ca((()=>!e.lazy||n.value||r.value)),u=na();return a({uid:u.uid,instance:u,props:e,paneName:i,active:r,index:t,isClosable:o}),{index:t,loaded:n,isClosable:o,active:r,paneName:i,shouldBeRender:s}}});KO.render=function(e,t,n,l,a,o){return e.shouldBeRender?Un((wl(),Sl("div",{key:0,id:"pane-"+e.paneName,class:"el-tab-pane",role:"tabpanel","aria-hidden":!e.active,"aria-labelledby":"tab-"+e.paneName},[Ht(e.$slots,"default")],8,["id","aria-hidden","aria-labelledby"])),[[mo,e.active]]):Pl("v-if",!0)},KO.__file="packages/tabs/src/tab-pane.vue",KO.install=e=>{e.component(KO.name,KO)};const UO=KO,GO=function(e){let t=e.target;for(;t&&"HTML"!==t.tagName.toUpperCase();){if("TD"===t.tagName.toUpperCase())return t;t=t.parentNode}return null},XO=function(e){return null!==e&&"object"==typeof e},ZO=function(e,t){let n=null;return e.columns.forEach((function(e){e.id===t&&(n=e)})),n},JO=function(e,t){const n=(t.className||"").match(/el-table_[^\s]+/gm);return n?ZO(e,n[0]):null},QO=(e,t)=>{if(!e)throw new Error("row is required when get row identity");if("string"==typeof t){if(t.indexOf(".")<0)return e[t];const n=t.split(".");let l=e;for(let e=0;e<n.length;e++)l=l[n[e]];return l}if("function"==typeof t)return t.call(null,e)},eT=function(e,t){const n={};return(e||[]).forEach(((e,l)=>{n[QO(e,t)]={row:e,index:l}})),n};function tT(e){return void 0!==e&&(e=parseInt(e,10),isNaN(e)&&(e=null)),e}function nT(e){return"number"==typeof e?e:"string"==typeof e?/^\d+(?:px)?$/.test(e)?parseInt(e,10):e:null}function lT(e,t,n){let l=!1;const a=e.indexOf(t),o=-1!==a,r=()=>{e.push(t),l=!0},i=()=>{e.splice(a,1),l=!0};return"boolean"==typeof n?n&&!o?r():!n&&o&&i():o?i():r(),l}function aT(e,t,n="children",l="hasChildren"){const a=e=>!(Array.isArray(e)&&e.length);function o(e,r,i){t(e,r,i),r.forEach((e=>{if(e[l])return void t(e,null,i+1);const r=e[n];a(r)||o(e,r,i+1)}))}e.forEach((e=>{if(e[l])return void t(e,null,0);const r=e[n];a(r)||o(e,r,0)}))}let oT;const rT=e=>{const t=[];return e.forEach((e=>{e.children?t.push.apply(t,rT(e.children)):t.push(e)})),t};function iT(){const e=na(),t=lt(null),n=lt([]),l=lt([]),a=lt(!1),o=lt([]),r=lt([]),i=lt([]),s=lt([]),u=lt([]),c=lt([]),d=lt([]),p=lt([]),f=lt(0),h=lt(0),v=lt(0),m=lt(!1),g=lt([]),y=lt(!1),b=lt(!1),_=lt(null),k=lt({}),x=lt(null),w=lt(null),C=lt(null),S=lt(null),E=lt(null);Sn(n,(()=>e.state&&O(!1)),{deep:!0});const M=()=>{s.value=o.value.filter((e=>!0===e.fixed||"left"===e.fixed)),u.value=o.value.filter((e=>"right"===e.fixed)),s.value.length>0&&o.value[0]&&"selection"===o.value[0].type&&!o.value[0].fixed&&(o.value[0].fixed=!0,s.value.unshift(o.value[0]));const e=o.value.filter((e=>!e.fixed));r.value=[].concat(s.value).concat(e).concat(u.value);const t=rT(e),n=rT(s.value),l=rT(u.value);f.value=t.length,h.value=n.length,v.value=l.length,i.value=[].concat(n).concat(t).concat(l),a.value=s.value.length>0||u.value.length>0},O=(t,n=!1)=>{t&&M(),n?e.state.doLayout():e.state.debouncedUpdateLayout()},T=(e,t,n)=>{w.value&&w.value!==e&&(w.value.order=null),w.value=e,C.value=t,S.value=n},D=()=>{let e=it(l);Object.keys(k.value).forEach((t=>{const n=k.value[t];if(!n||0===n.length)return;const l=ZO({columns:i.value},t);l&&l.filterMethod&&(e=e.filter((e=>n.some((t=>l.filterMethod.call(null,t,e,l))))))})),x.value=e},L=()=>{n.value=((e,t)=>{const n=t.sortingColumn;return n&&"string"!=typeof n.sortable?function(e,t,n,l,a){if(!t&&!l&&(!a||Array.isArray(a)&&!a.length))return e;n="string"==typeof n?"descending"===n?-1:1:n&&n<0?-1:1;const o=l?null:function(n,l){return a?(Array.isArray(a)||(a=[a]),a.map((function(t){return"string"==typeof t?Cy(n,t):t(n,l,e)}))):("$key"!==t&&XO(n)&&"$value"in n&&(n=n.$value),[XO(n)?Cy(n,t):n])};return e.map((function(e,t){return{value:e,index:t,key:o?o(e,t):null}})).sort((function(e,t){let a=function(e,t){if(l)return l(e.value,t.value);for(let n=0,l=e.key.length;n<l;n++){if(e.key[n]<t.key[n])return-1;if(e.key[n]>t.key[n])return 1}return 0}(e,t);return a||(a=e.index-t.index),a*n})).map((e=>e.value))}(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy):e})(x.value,{sortingColumn:w.value,sortProp:C.value,sortOrder:S.value})},{setExpandRowKeys:N,toggleRowExpansion:A,updateExpandRows:P,states:I,isRowExpanded:F}=function(e){const t=na(),n=lt(!1),l=lt([]);return{updateExpandRows:()=>{const t=e.data.value||[],a=e.rowKey.value;if(n.value)l.value=t.slice();else if(a){const e=eT(l.value,a);l.value=t.reduce(((t,n)=>{const l=QO(n,a);return e[l]&&t.push(n),t}),[])}else l.value=[]},toggleRowExpansion:(e,n)=>{lT(l.value,e,n)&&(t.emit("expand-change",e,l.value.slice()),t.store.scheduleLayout())},setExpandRowKeys:n=>{t.store.assertRowKey();const a=e.data.value||[],o=e.rowKey.value,r=eT(a,o);l.value=n.reduce(((e,t)=>{const n=r[t];return n&&e.push(n.row),e}),[])},isRowExpanded:t=>{const n=e.rowKey.value;return n?!!eT(l.value,n)[QO(t,n)]:-1!==l.value.indexOf(t)},states:{expandRows:l,defaultExpandAll:n}}}({data:n,rowKey:t}),{updateTreeExpandKeys:V,toggleTreeExpansion:B,loadOrToggle:$,states:z}=function(e){const t=lt([]),n=lt({}),l=lt(16),a=lt(!1),o=lt({}),r=lt("hasChildren"),i=lt("children"),s=na(),u=ca((()=>{if(!e.rowKey.value)return{};const t=e.data.value||[];return d(t)})),c=ca((()=>{const t=e.rowKey.value,n=Object.keys(o.value),l={};return n.length?(n.forEach((e=>{if(o.value[e].length){const n={children:[]};o.value[e].forEach((e=>{const a=QO(e,t);n.children.push(a),e[r.value]&&!l[a]&&(l[a]={children:[]})})),l[e]=n}})),l):l})),d=t=>{const n=e.rowKey.value,l={};return aT(t,((e,t,o)=>{const r=QO(e,n);Array.isArray(t)?l[r]={children:t.map((e=>QO(e,n))),level:o}:a.value&&(l[r]={children:[],lazy:!0,level:o})}),i.value,r.value),l},p=()=>{var e,l;const o=u.value,r=c.value,i=Object.keys(o),d={};if(i.length){const l=it(n),u=null===(e=s.store)||void 0===e?void 0:e.states.defaultExpandAll.value,c=[],p=(e,n)=>{const l=u||t.value&&-1!==t.value.indexOf(n);return!!(e&&e.expanded||l)};i.forEach((e=>{const t=l[e],n=Object.assign({},o[e]);if(n.expanded=p(t,e),n.lazy){const{loaded:l=!1,loading:a=!1}=t||{};n.loaded=!!l,n.loading=!!a,c.push(e)}d[e]=n}));const f=Object.keys(r);a.value&&f.length&&c.length&&f.forEach((e=>{const t=l[e],n=r[e].children;if(-1!==c.indexOf(e)){if(0!==d[e].children.length)throw new Error("[ElTable]children must be an empty array.");d[e].children=n}else{const{loaded:l=!1,loading:a=!1}=t||{};d[e]={lazy:!0,loaded:!!l,loading:!!a,expanded:p(t,e),children:n,level:""}}}))}n.value=d,null===(l=s.store)||void 0===l||l.updateTableScrollY()};Sn((()=>u.value),p),Sn((()=>c.value),p);const f=(t,l)=>{s.store.assertRowKey();const a=e.rowKey.value,o=QO(t,a),r=o&&n.value[o];if(o&&r&&"expanded"in r){const e=r.expanded;l=void 0===l?!r.expanded:l,n.value[o].expanded=l,e!==l&&s.emit("expand-change",t,l),s.store.updateTableScrollY()}},h=(e,t,l)=>{const{load:a}=s.props;a&&!n.value[t].loaded&&(n.value[t].loading=!0,a(e,l,(l=>{if(!Array.isArray(l))throw new Error("[ElTable] data must be an array");n.value[t].loading=!1,n.value[t].loaded=!0,n.value[t].expanded=!0,l.length&&(o.value[t]=l),s.emit("expand-change",e,!0)})))};return{loadData:h,loadOrToggle:t=>{s.store.assertRowKey();const l=e.rowKey.value,o=QO(t,l),r=n.value[o];a.value&&r&&"loaded"in r&&!r.loaded?h(t,o,r):f(t,void 0)},toggleTreeExpansion:f,updateTreeExpandKeys:e=>{t.value=e,p()},updateTreeData:p,normalize:d,states:{expandRowKeys:t,treeData:n,indent:l,lazy:a,lazyTreeNodeMap:o,lazyColumnIdentifier:r,childrenColumnName:i}}}({data:n,rowKey:t}),{updateCurrentRowData:j,updateCurrentRow:R,setCurrentRowKey:H,states:W}=function(e){const t=na(),n=lt(null),l=lt(null),a=()=>{n.value=null},o=t=>{const{data:n=[],rowKey:a}=e;let o=null;a.value&&(o=Py(it(n),(e=>QO(e,a.value)===t))),l.value=o};return{setCurrentRowKey:e=>{t.store.assertRowKey(),n.value=e,o(e)},restoreCurrentRowKey:a,setCurrentRowByKey:o,updateCurrentRow:e=>{const n=l.value;if(e&&e!==n)return l.value=e,void t.emit("current-change",l.value,n);!e&&n&&(l.value=null,t.emit("current-change",null,n))},updateCurrentRowData:()=>{const r=e.rowKey.value,i=e.data.value||[],s=l.value;if(-1===i.indexOf(s)&&s){if(r){const e=QO(s,r);o(e)}else l.value=null;null===l.value&&t.emit("current-change",null,s)}else n.value&&(o(n.value),a())},states:{_currentRowKey:n,currentRow:l}}}({data:n,rowKey:t});return{assertRowKey:()=>{if(!t.value)throw new Error("[ElTable] prop row-key is required")},updateColumns:M,scheduleLayout:O,isSelected:e=>g.value.indexOf(e)>-1,clearSelection:()=>{m.value=!1,g.value.length&&(g.value=[],e.emit("selection-change",[]))},cleanSelection:()=>{let l;if(t.value){l=[];const e=eT(g.value,t.value),a=eT(n.value,t.value);for(const t in e)uy(e,t)&&!a[t]&&l.push(e[t].row)}else l=g.value.filter((e=>-1===n.value.indexOf(e)));if(l.length){const t=g.value.filter((e=>-1===l.indexOf(e)));g.value=t,e.emit("selection-change",t.slice())}},toggleRowSelection:(t,n,l=!0)=>{if(lT(g.value,t,n)){const n=(g.value||[]).slice();l&&e.emit("select",n,t),e.emit("selection-change",n)}},_toggleAllSelection:()=>{const t=b.value?!m.value:!(m.value||g.value.length);m.value=t;let l=!1;n.value.forEach(((e,n)=>{_.value?_.value.call(null,e,n)&&lT(g.value,e,t)&&(l=!0):lT(g.value,e,t)&&(l=!0)})),l&&e.emit("selection-change",g.value?g.value.slice():[]),e.emit("select-all",g.value)},updateSelectionByRowKey:()=>{const e=eT(g.value,t.value);n.value.forEach((n=>{const l=QO(n,t.value),a=e[l];a&&(g.value[a.index]=n)}))},updateAllSelected:()=>{var e;if(0===(null===(e=n.value)||void 0===e?void 0:e.length))return void(m.value=!1);let l;t.value&&(l=eT(g.value,t.value));let a=!0,o=0;for(let i=0,s=(n.value||[]).length;i<s;i++){const e=n.value[i],s=_.value&&_.value.call(null,e,i);if(r=e,l?l[QO(r,t.value)]:-1!==g.value.indexOf(r))o++;else if(!_.value||s){a=!1;break}}var r;0===o&&(a=!1),m.value=a},updateFilters:(e,t)=>{Array.isArray(e)||(e=[e]);const n={};return e.forEach((e=>{k.value[e.id]=t,n[e.columnKey||e.id]=t})),n},updateCurrentRow:R,updateSort:T,execFilter:D,execSort:L,execQuery:e=>{e&&e.filter||D(),L()},clearFilter:t=>{const{tableHeader:n,fixedTableHeader:l,rightFixedTableHeader:a}=e.refs;let o={};n&&(o=Object.assign(o,n.filterPanels)),l&&(o=Object.assign(o,l.filterPanels)),a&&(o=Object.assign(o,a.filterPanels));const r=Object.keys(o);if(r.length)if("string"==typeof t&&(t=[t]),Array.isArray(t)){const n=t.map((e=>function(e,t){let n=null;for(let l=0;l<e.columns.length;l++){const a=e.columns[l];if(a.columnKey===t){n=a;break}}return n}({columns:i.value},e)));r.forEach((e=>{const t=n.find((t=>t.id===e));t&&(t.filteredValue=[])})),e.store.commit("filterChange",{column:n,values:[],silent:!0,multi:!0})}else r.forEach((e=>{const t=i.value.find((t=>t.id===e));t&&(t.filteredValue=[])})),k.value={},e.store.commit("filterChange",{column:{},values:[],silent:!0})},clearSort:()=>{w.value&&(T(null,null,null),e.store.commit("changeSortCondition",{silent:!0}))},toggleRowExpansion:A,setExpandRowKeysAdapter:e=>{N(e),V(e)},setCurrentRowKey:H,toggleRowExpansionAdapter:(e,t)=>{i.value.some((({type:e})=>"expand"===e))?A(e,t):B(e,t)},isRowExpanded:F,updateExpandRows:P,updateCurrentRowData:j,loadOrToggle:$,states:Object.assign(Object.assign(Object.assign({rowKey:t,data:n,_data:l,isComplex:a,_columns:o,originColumns:r,columns:i,fixedColumns:s,rightFixedColumns:u,leafColumns:c,fixedLeafColumns:d,rightFixedLeafColumns:p,leafColumnsLength:f,fixedLeafColumnsLength:h,rightFixedLeafColumnsLength:v,isAllSelected:m,selection:g,reserveSelection:y,selectOnIndeterminate:b,selectable:_,filters:k,filteredData:x,sortingColumn:w,sortProp:C,sortOrder:S,hoverRow:E},I),z),W)}}function sT(e,t){return e.map((e=>{var n;return e.id===t.id?t:((null===(n=e.children)||void 0===n?void 0:n.length)&&(e.children=sT(e.children,t)),e)}))}function uT(e){e.forEach((e=>{var t,n;e.no=null===(t=e.getColumnIndex)||void 0===t?void 0:t.call(e),(null===(n=e.children)||void 0===n?void 0:n.length)&&uT(e.children)})),e.sort(((e,t)=>e.no-t.no))}function cT(){const e=na(),t={setData(t,n){const l=it(t.data)!==n;t.data.value=n,t._data.value=n,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),it(t.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):l?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(t,n,l){const a=it(t._columns);let o=[];l?(l&&!l.children&&(l.children=[]),l.children.push(n),o=sT(a,l)):(a.push(n),o=a),uT(o),t._columns.value=o,"selection"===n.type&&(t.selectable.value=n.selectable,t.reserveSelection.value=n.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},removeColumn(t,n,l){const a=it(t._columns)||[];if(l)l.children.splice(l.children.findIndex((e=>e.id===n.id)),1),0===l.children.length&&delete l.children,t._columns.value=sT(a,l);else{const e=a.indexOf(n);e>-1&&(a.splice(e,1),t._columns.value=a)}e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(t,n){const{prop:l,order:a,init:o}=n;if(l){const n=Py(it(t.columns),(e=>e.property===l));n&&(n.order=a,e.store.updateSort(n,l,a),e.store.commit("changeSortCondition",{init:o}))}},changeSortCondition(t,n){const{sortingColumn:l,sortProp:a,sortOrder:o}=t;null===it(o)&&(t.sortingColumn.value=null,t.sortProp.value=null),e.store.execQuery({filter:!0}),n&&(n.silent||n.init)||e.emit("sort-change",{column:it(l),prop:it(a),order:it(o)}),e.store.updateTableScrollY()},filterChange(t,n){const{column:l,values:a,silent:o}=n,r=e.store.updateFilters(l,a);e.store.execQuery(),o||e.emit("filter-change",r),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(t,n){e.store.toggleRowSelection(n),e.store.updateAllSelected()},setHoverRow(e,t){e.hoverRow.value=t},setCurrentRow(t,n){e.store.updateCurrentRow(n)}},n=iT();return Object.assign(Object.assign({},n),{mutations:t,commit:function(t,...n){const l=e.store.mutations;if(!l[t])throw new Error("Action not found: "+t);l[t].apply(e,[e.store.states].concat(n))},updateTableScrollY:function(){Dt((()=>e.layout.updateScrollY.apply(e.layout)))}})}class dT{constructor(e){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=lt(null),this.scrollX=lt(!1),this.scrollY=lt(!1),this.bodyWidth=lt(null),this.fixedWidth=lt(null),this.rightFixedWidth=lt(null),this.tableHeight=lt(null),this.headerHeight=lt(44),this.appendHeight=lt(0),this.footerHeight=lt(44),this.viewportHeight=lt(null),this.bodyHeight=lt(null),this.fixedBodyHeight=lt(null),this.gutterWidth=pb();for(const t in e)uy(e,t)&&(nt(this[t])?this[t].value=e[t]:this[t]=e[t]);if(!this.table)throw new Error("table is required for Table Layout");if(!this.store)throw new Error("store is required for Table Layout")}updateScrollY(){if(null===this.height.value)return!1;const e=this.table.refs.bodyWrapper;if(this.table.vnode.el&&e){let t=!0;const n=this.scrollY.value;return t=null!==this.bodyHeight.value&&e.querySelector(".el-table__body").offsetHeight>this.bodyHeight.value,this.scrollY.value=t,n!==t}return!1}setHeight(e,t="height"){if(oy)return;const n=this.table.vnode.el;if(e=nT(e),this.height.value=Number(e),!n&&(e||0===e))return Dt((()=>this.setHeight(e,t)));"number"==typeof e?(n.style[t]=e+"px",this.updateElsHeight()):"string"==typeof e&&(n.style[t]=e,this.updateElsHeight())}setMaxHeight(e){this.setHeight(e,"max-height")}getFlattenColumns(){const e=[];return this.table.store.states.columns.value.forEach((t=>{t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)})),e}updateElsHeight(){if(!this.table.$ready)return Dt((()=>this.updateElsHeight()));const{headerWrapper:e,appendWrapper:t,footerWrapper:n}=this.table.refs,l=t,a=e,o=n;if(this.appendHeight.value=l?l.offsetHeight:0,this.showHeader&&!a)return;const r=a?a.querySelector(".el-table__header tr"):null,i=this.headerDisplayNone(r),s=this.headerHeight.value=this.showHeader?a.offsetHeight:0;if(this.showHeader&&!i&&a.offsetWidth>0&&(this.table.store.states.columns.value||[]).length>0&&s<2)return Dt((()=>this.updateElsHeight()));const u=this.tableHeight.value=this.table.vnode.el.clientHeight,c=this.footerHeight.value=o?o.offsetHeight:0;null!==this.height.value&&(this.bodyHeight.value=u-s-c+(o?1:0)),this.fixedBodyHeight.value=this.scrollX.value?this.bodyHeight.value-this.gutterWidth:this.bodyHeight.value,this.viewportHeight.value=this.scrollX.value?u-this.gutterWidth:u,this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(e){if(!e)return!0;let t=e;for(;"DIV"!==t.tagName;){if("none"===getComputedStyle(t).display)return!0;t=t.parentElement}return!1}updateColumnsWidth(){if(oy)return;const e=this.fit,t=this.table.vnode.el.clientWidth;let n=0;const l=this.getFlattenColumns(),a=l.filter((e=>"number"!=typeof e.width));if(l.forEach((e=>{"number"==typeof e.width&&e.realWidth&&(e.realWidth=null)})),a.length>0&&e){l.forEach((e=>{n+=e.width||e.minWidth||80}));const e=this.scrollY.value?this.gutterWidth:0;if(n<=t-e){this.scrollX.value=!1;const l=t-e-n;if(1===a.length)a[0].realWidth=(a[0].minWidth||80)+l;else{const e=l/a.reduce(((e,t)=>e+(t.minWidth||80)),0);let t=0;a.forEach(((n,l)=>{if(0===l)return;const a=Math.floor((n.minWidth||80)*e);t+=a,n.realWidth=(n.minWidth||80)+a})),a[0].realWidth=(a[0].minWidth||80)+l-t}}else this.scrollX.value=!0,a.forEach((function(e){e.realWidth=e.minWidth}));this.bodyWidth.value=Math.max(n,t),this.table.state.resizeState.value.width=this.bodyWidth.value}else l.forEach((e=>{e.width||e.minWidth?e.realWidth=e.width||e.minWidth:e.realWidth=80,n+=e.realWidth})),this.scrollX.value=n>t,this.bodyWidth.value=n;const o=this.store.states.fixedColumns.value;if(o.length>0){let e=0;o.forEach((function(t){e+=t.realWidth||t.width})),this.fixedWidth.value=e}const r=this.store.states.rightFixedColumns.value;if(r.length>0){let e=0;r.forEach((function(t){e+=t.realWidth||t.width})),this.rightFixedWidth.value=e}this.notifyObservers("columns")}addObserver(e){this.observers.push(e)}removeObserver(e){const t=this.observers.indexOf(e);-1!==t&&this.observers.splice(t,1)}notifyObservers(e){this.observers.forEach((t=>{var n,l;switch(e){case"columns":null===(n=t.state)||void 0===n||n.onColumnsChange(this);break;case"scrollable":null===(l=t.state)||void 0===l||l.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${e}.`)}}))}}var pT=Qn({name:"ElTableFilterPanel",components:{ElCheckbox:dx,ElCheckboxGroup:Jx,ElScrollbar:a_,ElPopper:M_},directives:{ClickOutside:Sb},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=na(),n=t.parent;n.filterPanels.value[e.column.id]||(n.filterPanels.value[e.column.id]=t);const l=lt(!1),a=lt(null),o=ca((()=>e.column&&e.column.filters)),r=ca({get:()=>(e.column.filteredValue||[])[0],set:e=>{i.value&&(null!=e?i.value.splice(0,1,e):i.value.splice(0,1))}}),i=ca({get:()=>e.column&&e.column.filteredValue||[],set(t){e.column&&e.upDataColumn("filteredValue",t)}}),s=ca((()=>!e.column||e.column.filterMultiple)),u=()=>{l.value=!1},c=t=>{e.store.commit("filterChange",{column:e.column,values:t}),e.store.updateAllSelected()};Sn(l,(t=>{e.column&&e.upDataColumn("filterOpened",t)}),{immediate:!0});const d=ca((()=>{var e;return null===(e=a.value)||void 0===e?void 0:e.popperRef}));return{tooltipVisible:l,multiple:s,filteredValue:i,filterValue:r,filters:o,handleConfirm:()=>{c(i.value),u()},handleReset:()=>{i.value=[],c(i.value),u()},handleSelect:e=>{r.value=e,c(null!=e?i.value:[]),u()},isActive:e=>e.value===r.value,t:ak,showFilterPanel:e=>{e.stopPropagation(),l.value=!l.value},hideFilterPanel:()=>{l.value=!1},popperPaneRef:d,tooltip:a}}});const fT={key:0},hT={class:"el-table-filter__content"},vT={class:"el-table-filter__bottom"},mT={key:1,class:"el-table-filter__list"};function gT(e){const t=na();vn((()=>{n.value.addObserver(t)})),mn((()=>{l(n.value),a(n.value)})),yn((()=>{l(n.value),a(n.value)})),_n((()=>{n.value.removeObserver(t)}));const n=ca((()=>{const t=e.layout;if(!t)throw new Error("Can not find table layout.");return t})),l=t=>{var n;const l=(null===(n=e.vnode.el)||void 0===n?void 0:n.querySelectorAll("colgroup > col"))||[];if(!l.length)return;const a=t.getFlattenColumns(),o={};a.forEach((e=>{o[e.id]=e}));for(let e=0,r=l.length;e<r;e++){const t=l[e],n=t.getAttribute("name"),a=o[n];a&&t.setAttribute("width",a.realWidth||a.width)}},a=t=>{const n=e.vnode.el.querySelectorAll("colgroup > col[name=gutter]");for(let e=0,a=n.length;e<a;e++)n[e].setAttribute("width",t.scrollY.value?t.gutterWidth:"0");const l=e.vnode.el.querySelectorAll("th.gutter");for(let e=0,a=l.length;e<a;e++){const n=l[e];n.style.width=t.scrollY.value?t.gutterWidth+"px":"0",n.style.display=t.scrollY.value?"":"none"}};return{tableLayout:n.value,onColumnsChange:l,onScrollableChange:a}}pT.render=function(e,t,n,l,a,o){const r=dl("el-checkbox"),i=dl("el-checkbox-group"),s=dl("el-scrollbar"),u=dl("el-popper"),d=hl("click-outside");return wl(),Sl(u,{ref:"tooltip",visible:e.tooltipVisible,"onUpdate:visible":t[6]||(t[6]=t=>e.tooltipVisible=t),offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,effect:"light",pure:"","manual-mode":"","popper-class":"el-table-filter","append-to-body":""},{default:Zt((()=>[e.multiple?(wl(),Sl("div",fT,[Ll("div",hT,[Ll(s,{"wrap-class":"el-table-filter__wrap"},{default:Zt((()=>[Ll(i,{modelValue:e.filteredValue,"onUpdate:modelValue":t[1]||(t[1]=t=>e.filteredValue=t),class:"el-table-filter__checkbox-group"},{default:Zt((()=>[(wl(!0),Sl(gl,null,pa(e.filters,(e=>(wl(),Sl(r,{key:e.value,label:e.value},{default:Zt((()=>[Al(c(e.text),1)])),_:2},1032,["label"])))),128))])),_:1},8,["modelValue"])])),_:1})]),Ll("div",vT,[Ll("button",{class:{"is-disabled":0===e.filteredValue.length},disabled:0===e.filteredValue.length,type:"",onClick:t[2]||(t[2]=(...t)=>e.handleConfirm&&e.handleConfirm(...t))},c(e.t("el.table.confirmFilter")),11,["disabled"]),Ll("button",{type:"",onClick:t[3]||(t[3]=(...t)=>e.handleReset&&e.handleReset(...t))},c(e.t("el.table.resetFilter")),1)])])):(wl(),Sl("ul",mT,[Ll("li",{class:[{"is-active":void 0===e.filterValue||null===e.filterValue},"el-table-filter__list-item"],onClick:t[4]||(t[4]=t=>e.handleSelect(null))},c(e.t("el.table.clearFilter")),3),(wl(!0),Sl(gl,null,pa(e.filters,(t=>(wl(),Sl("li",{key:t.value,class:[{"is-active":e.isActive(t)},"el-table-filter__list-item"],label:t.value,onClick:n=>e.handleSelect(t.value)},c(t.text),11,["label","onClick"])))),128))]))])),trigger:Zt((()=>[Un(Ll("span",{class:"el-table__column-filter-trigger el-none-outline",onClick:t[5]||(t[5]=(...t)=>e.showFilterPanel&&e.showFilterPanel(...t))},[Ll("i",{class:["el-icon-arrow-down",e.column.filterOpened?"el-icon-arrow-up":""]},null,2)],512),[[d,e.hideFilterPanel,e.popperPaneRef]])])),_:1},8,["visible","placement"])},pT.__file="packages/table/src/filter-panel.vue";const yT=e=>{const t=[];return e.forEach((e=>{e.children?(t.push(e),t.push.apply(t,yT(e.children))):t.push(e)})),t};function bT(){return da("col",{name:"gutter"})}function _T(e,t=!1){return da("colgroup",{},[...e.map((e=>da("col",{name:e.id,key:e.id}))),t&&bT()])}var kT=Qn({name:"ElTableHeader",components:{ElCheckbox:dx},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const n=na(),l=n.parent,a=l.store.states,o=lt({}),{tableLayout:r,onColumnsChange:i,onScrollableChange:s}=gT(l),u=ca((()=>!e.fixed&&r.gutterWidth));mn((()=>{Dt((()=>{const{prop:t,order:n}=e.defaultSort;l.store.commit("sort",{prop:t,order:n,init:!0})}))}));const{handleHeaderClick:c,handleHeaderContextMenu:d,handleMouseDown:p,handleMouseMove:f,handleMouseOut:h,handleSortClick:v,handleFilterClick:m}=function(e,t){const n=na(),l=n.parent,a=e=>{e.stopPropagation()},o=lt(null),r=lt(!1),i=lt({}),s=(t,n,a)=>{t.stopPropagation();const o=n.order===a?null:a||(({order:e,sortOrders:t})=>{if(""===e)return t[0];const n=t.indexOf(e||null);return t[n>t.length-2?0:n+1]})(n);let r=t.target;for(;r&&"TH"!==r.tagName;)r=r.parentNode;if(r&&"TH"===r.tagName&&Ry(r,"noclick"))return void Wy(r,"noclick");if(!n.sortable)return;const i=e.store.states;let s,u=i.sortProp.value;const c=i.sortingColumn.value;(c!==n||c===n&&null===c.order)&&(c&&(c.order=null),i.sortingColumn.value=n,u=n.property),s=n.order=o||null,i.sortProp.value=u,i.sortOrder.value=s,l.store.commit("changeSortCondition")};return{handleHeaderClick:(e,t)=>{!t.filters&&t.sortable?s(e,t,!1):t.filterable&&!t.sortable&&a(e),l.emit("header-click",t,e)},handleHeaderContextMenu:(e,t)=>{l.emit("header-contextmenu",t,e)},handleMouseDown:(a,s)=>{if(!oy&&!(s.children&&s.children.length>0)&&o.value&&e.border){r.value=!0;const u=l;t("set-drag-visible",!0);const c=u.vnode.el.getBoundingClientRect().left,d=n.vnode.el.querySelector("th."+s.id),p=d.getBoundingClientRect(),f=p.left-c+30;Hy(d,"noclick"),i.value={startMouseLeft:a.clientX,startLeft:p.right-c,startColumnLeft:p.left-c,tableLeft:c};const h=u.refs.resizeProxy;h.style.left=i.value.startLeft+"px",document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const v=e=>{const t=e.clientX-i.value.startMouseLeft,n=i.value.startLeft+t;h.style.left=Math.max(f,n)+"px"},m=()=>{if(r.value){const{startColumnLeft:n,startLeft:l}=i.value,c=parseInt(h.style.left,10)-n;s.width=s.realWidth=c,u.emit("header-dragend",s.width,l-n,s,a),e.store.scheduleLayout(!1,!0),document.body.style.cursor="",r.value=!1,o.value=null,i.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",v),document.removeEventListener("mouseup",m),document.onselectstart=null,document.ondragstart=null,setTimeout((function(){Wy(d,"noclick")}),0)};document.addEventListener("mousemove",v),document.addEventListener("mouseup",m)}},handleMouseMove:(t,n)=>{if(n.children&&n.children.length>0)return;let l=t.target;for(;l&&"TH"!==l.tagName;)l=l.parentNode;if(n&&n.resizable&&!r.value&&e.border){const e=l.getBoundingClientRect(),a=document.body.style;e.width>12&&e.right-t.pageX<8?(a.cursor="col-resize",Ry(l,"is-sortable")&&(l.style.cursor="col-resize"),o.value=n):r.value||(a.cursor="",Ry(l,"is-sortable")&&(l.style.cursor="pointer"),o.value=null)}},handleMouseOut:()=>{oy||(document.body.style.cursor="")},handleSortClick:s,handleFilterClick:a}}(e,t),{getHeaderRowStyle:g,getHeaderRowClass:y,getHeaderCellStyle:b,getHeaderCellClass:_}=function(e){const t=na().parent,n=t.store.states;return{getHeaderRowStyle:e=>{const n=t.props.headerRowStyle;return"function"==typeof n?n.call(null,{rowIndex:e}):n},getHeaderRowClass:e=>{const n=[],l=t.props.headerRowClassName;return"string"==typeof l?n.push(l):"function"==typeof l&&n.push(l.call(null,{rowIndex:e})),n.join(" ")},getHeaderCellStyle:(e,n,l,a)=>{const o=t.props.headerCellStyle;return"function"==typeof o?o.call(null,{rowIndex:e,columnIndex:n,row:l,column:a}):o},getHeaderCellClass:(l,a,o,r)=>{const i=[r.id,r.order,r.headerAlign,r.className,r.labelClassName];0===l&&((t,l)=>{let a=0;for(let e=0;e<t;e++)a+=l[e].colSpan;const o=a+l[t].colSpan-1;return"left"===e.fixed?o>=n.fixedLeafColumnsLength.value:"right"===e.fixed?a<n.columns.value.length-n.rightFixedLeafColumnsLength.value:o<n.fixedLeafColumnsLength.value||a>=n.columns.value.length-n.rightFixedLeafColumnsLength.value})(a,o)&&i.push("is-hidden"),r.children||i.push("is-leaf"),r.sortable&&i.push("is-sortable");const s=t.props.headerCellClassName;return"string"==typeof s?i.push(s):"function"==typeof s&&i.push(s.call(null,{rowIndex:l,columnIndex:a,row:o,column:r})),i.join(" ")}}}(e),{isGroup:k,toggleAllSelection:x,columnRows:w}=function(e){const t=na().parent,n=ca((()=>(e=>{let t=1;const n=(e,l)=>{if(l&&(e.level=l.level+1,t<e.level&&(t=e.level)),e.children){let t=0;e.children.forEach((l=>{n(l,e),t+=l.colSpan})),e.colSpan=t}else e.colSpan=1};e.forEach((e=>{e.level=1,n(e,void 0)}));const l=[];for(let a=0;a<t;a++)l.push([]);return yT(e).forEach((e=>{e.children?e.rowSpan=1:e.rowSpan=t-e.level+1,l[e.level-1].push(e)})),l})(e.store.states.originColumns.value)));return{isGroup:ca((()=>{const e=n.value.length>1;return e&&(t.state.isGroup.value=!0),e})),toggleAllSelection:e=>{e.stopPropagation(),t.store.commit("toggleAllSelection")},columnRows:n}}(e);return n.state={onColumnsChange:i,onScrollableChange:s},n.filterPanels=o,{columns:a.columns,filterPanels:o,hasGutter:u,onColumnsChange:i,onScrollableChange:s,columnRows:w,getHeaderRowClass:y,getHeaderRowStyle:g,getHeaderCellClass:_,getHeaderCellStyle:b,handleHeaderClick:c,handleHeaderContextMenu:d,handleMouseDown:p,handleMouseMove:f,handleMouseOut:h,handleSortClick:v,handleFilterClick:m,isGroup:k,toggleAllSelection:x}},render(){return da("table",{border:"0",cellpadding:"0",cellspacing:"0",class:"el-table__header"},[_T(this.columns,this.hasGutter),da("thead",{class:{"is-group":this.isGroup,"has-gutter":this.hasGutter}},this.columnRows.map(((e,t)=>da("tr",{class:this.getHeaderRowClass(t),key:t,style:this.getHeaderRowStyle(t)},e.map(((n,l)=>da("th",{class:this.getHeaderCellClass(t,l,e,n),colspan:n.colSpan,key:n.id+"-thead",rowSpan:n.rowSpan,style:this.getHeaderCellStyle(t,l,e,n),onClick:e=>this.handleHeaderClick(e,n),onContextmenu:e=>this.handleHeaderContextMenu(e,n),onMousedown:e=>this.handleMouseDown(e,n),onMousemove:e=>this.handleMouseMove(e,n),onMouseout:this.handleMouseOut},[da("div",{class:["cell",n.filteredValue&&n.filteredValue.length>0?"highlight":"",n.labelClassName]},[n.renderHeader?n.renderHeader({column:n,$index:l,store:this.store,_self:this.$parent}):n.label,n.sortable&&da("span",{onClick:e=>this.handleSortClick(e,n),class:"caret-wrapper"},[da("i",{onClick:e=>this.handleSortClick(e,n,"ascending"),class:"sort-caret ascending"}),da("i",{onClick:e=>this.handleSortClick(e,n,"descending"),class:"sort-caret descending"})]),n.filterable&&da(pT,{store:this.$parent.store,placement:n.filterPlacement||"bottom-start",column:n,upDataColumn:(e,t)=>{n[e]=t}})])])))))))])}});function xT(e){const t=na().parent,{handleDoubleClick:n,handleClick:l,handleContextMenu:a,handleMouseEnter:o,handleMouseLeave:r,handleCellMouseEnter:i,handleCellMouseLeave:s,tooltipContent:u,tooltipTrigger:c}=function(e){const t=na().parent,n=lt(""),l=lt(da("div")),a=(n,l,a)=>{const o=t,r=GO(n);let i;r&&(i=JO({columns:e.store.states.columns.value},r),i&&o.emit("cell-"+a,l,i,r,n)),o.emit("row-"+a,l,i,n)};return{handleDoubleClick:(e,t)=>{a(e,t,"dblclick")},handleClick:(t,n)=>{e.store.commit("setCurrentRow",n),a(t,n,"click")},handleContextMenu:(e,t)=>{a(e,t,"contextmenu")},handleMouseEnter:uu((function(t){e.store.commit("setHoverRow",t)}),30),handleMouseLeave:uu((function(){e.store.commit("setHoverRow",null)}),30),handleCellMouseEnter:(n,l)=>{const a=t,o=GO(n);if(o){const t=JO({columns:e.store.states.columns.value},o),r=a.hoverState={cell:o,column:t,row:l};a.emit("cell-mouse-enter",r.row,r.column,r.cell,n)}const r=n.target.querySelector(".cell");if(!Ry(r,"el-tooltip")||!r.childNodes.length)return;const i=document.createRange();i.setStart(r,0),i.setEnd(r,r.childNodes.length),(i.getBoundingClientRect().width+((parseInt(Yy(r,"paddingLeft"),10)||0)+(parseInt(Yy(r,"paddingRight"),10)||0))>r.offsetWidth||r.scrollWidth>r.offsetWidth)&&function(e,t,n,l){function a(){o&&o.update()}oT=function t(){try{o&&o.destroy(),r&&document.body.removeChild(r),jy(e,"mouseenter",a),jy(e,"mouseleave",t)}catch(n){}};let o=null;const r=function(){const e="light"===l,n=document.createElement("div");return n.className="el-popper "+(e?"is-light":"is-dark"),n.innerHTML=t,n.style.zIndex=String(y_.nextZIndex()),document.body.appendChild(n),n}(),i=function(){const e=document.createElement("div");return e.className="el-popper__arrow",e.style.bottom="-4px",e}();r.appendChild(i),o=Cc(e,r,Object.assign({modifiers:[{name:"offset",options:{offset:[0,8]}},{name:"arrow",options:{element:i,padding:10}}]},{placement:"top",strategy:"fixed"})),zy(e,"mouseenter",a),zy(e,"mouseleave",oT)}(o,o.innerText||o.textContent,0,l.tooltipEffect)},handleCellMouseLeave:e=>{if(!GO(e))return;const n=t.hoverState;t.emit("cell-mouse-leave",null==n?void 0:n.row,null==n?void 0:n.column,null==n?void 0:n.cell,e)},tooltipContent:n,tooltipTrigger:l}}(e),{getRowStyle:d,getRowClass:p,getCellStyle:f,getCellClass:h,getSpan:v,getColspanRealWidth:m}=function(e){const t=na().parent,n=t=>"left"===e.fixed?t>=e.store.states.fixedLeafColumnsLength.value:"right"===e.fixed?t<e.store.states.columns.value.length-e.store.states.rightFixedLeafColumnsLength.value:t<e.store.states.fixedLeafColumnsLength.value||t>=e.store.states.columns.value.length-e.store.states.rightFixedLeafColumnsLength.value;return{getRowStyle:(e,n)=>{const l=t.props.rowStyle;return"function"==typeof l?l.call(null,{row:e,rowIndex:n}):l||null},getRowClass:(n,l)=>{const a=["el-table__row"];t.props.highlightCurrentRow&&n===e.store.states.currentRow.value&&a.push("current-row"),e.stripe&&l%2==1&&a.push("el-table__row--striped");const o=t.props.rowClassName;return"string"==typeof o?a.push(o):"function"==typeof o&&a.push(o.call(null,{row:n,rowIndex:l})),e.store.states.expandRows.value.indexOf(n)>-1&&a.push("expanded"),a},getCellStyle:(e,n,l,a)=>{const o=t.props.cellStyle;return"function"==typeof o?o.call(null,{rowIndex:e,columnIndex:n,row:l,column:a}):o},getCellClass:(e,l,a,o)=>{const r=[o.id,o.align,o.className];n(l)&&r.push("is-hidden");const i=t.props.cellClassName;return"string"==typeof i?r.push(i):"function"==typeof i&&r.push(i.call(null,{rowIndex:e,columnIndex:l,row:a,column:o})),r.join(" ")},getSpan:(e,n,l,a)=>{let o=1,r=1;const i=t.props.spanMethod;if("function"==typeof i){const t=i({row:e,column:n,rowIndex:l,columnIndex:a});Array.isArray(t)?(o=t[0],r=t[1]):"object"==typeof t&&(o=t.rowspan,r=t.colspan)}return{rowspan:o,colspan:r}},getColspanRealWidth:(e,t,n)=>t<1?e[n].realWidth:e.map((({realWidth:e,width:t})=>e||t)).slice(n,n+t).reduce(((e,t)=>e+t),-1),isColumnHidden:n}}(e),g=ca((()=>{return t=({type:e})=>"default"===e,e.store.states.columns.value.findIndex(t);var t})),y=(e,n)=>{const l=t.props.rowKey;return l?QO(e,l):n},b=(u,c,b)=>{const{tooltipEffect:_,store:k}=e,{indent:x,columns:w}=k.states,C=p(u,c);let S=!0;return b&&(C.push("el-table__row--level-"+b.level),S=b.display),da("tr",{style:[S?null:{display:"none"},d(u,c)],class:C,key:y(u,c),onDblclick:e=>n(e,u),onClick:e=>l(e,u),onContextmenu:e=>a(e,u),onMouseenter:()=>o(c),onMouseleave:r},w.value.map(((n,l)=>{const{rowspan:a,colspan:o}=v(u,n,c,l);if(!a||!o)return null;const r=Object.assign({},n);r.realWidth=m(w.value,o,l);const d={store:e.store,_self:e.context||t,column:r,row:u,$index:c};l===g.value&&b&&(d.treeNode={indent:b.level*x.value,level:b.level},"boolean"==typeof b.expanded&&(d.treeNode.expanded=b.expanded,"loading"in b&&(d.treeNode.loading=b.loading),"noLazyChildren"in b&&(d.treeNode.noLazyChildren=b.noLazyChildren)));const p=`${c},${l}`;return da("td",{style:f(c,l,u,n),class:h(c,l,u,n),key:p,rowspan:a,colspan:o,onMouseenter:e=>i(e,Object.assign(Object.assign({},u),{tooltipEffect:_})),onMouseleave:s},[n.renderCell(d)])})))};return{wrappedRowRender:(n,l)=>{const a=e.store,{isRowExpanded:o,assertRowKey:r}=a,{treeData:i,lazyTreeNodeMap:s,childrenColumnName:u,rowKey:c}=a.states;if(a.states.columns.value.some((({type:e})=>"expand"===e))&&o(n)){const e=t.renderExpanded,o=b(n,l,void 0);return e?[o,da("tr",{key:"expanded-row__"+o.key},[da("td",{colspan:a.states.columns.value.length,class:"el-table__expanded-cell"},[e({row:n,$index:l,store:a})])])]:(console.error("[Element Error]renderExpanded is required."),o)}if(Object.keys(i.value).length){r();const e=QO(n,c.value);let t=i.value[e],a=null;t&&(a={expanded:t.expanded,level:t.level,display:!0},"boolean"==typeof t.lazy&&("boolean"==typeof t.loaded&&t.loaded&&(a.noLazyChildren=!(t.children&&t.children.length)),a.loading=t.loading));const o=[b(n,l,a)];if(t){let a=0;const r=(e,n)=>{e&&e.length&&n&&e.forEach((e=>{const d={display:n.display&&n.expanded,level:n.level+1,expanded:!1,noLazyChildren:!1,loading:!1},p=QO(e,c.value);if(null==p)throw new Error("for nested data item, row-key is required.");if(t=Object.assign({},i.value[p]),t&&(d.expanded=t.expanded,t.level=t.level||d.level,t.display=!(!t.expanded||!d.display),"boolean"==typeof t.lazy&&("boolean"==typeof t.loaded&&t.loaded&&(d.noLazyChildren=!(t.children&&t.children.length)),d.loading=t.loading)),a++,o.push(b(e,l+a,d)),t){const n=s.value[p]||e[u.value];r(n,t)}}))};t.display=!0;const d=s.value[e]||n[u.value];r(d,t)}return o}return b(n,l,void 0)},tooltipContent:u,tooltipTrigger:c}}var wT=Qn({name:"ElTableBody",props:{store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean},setup(e){const t=na(),n=t.parent,{wrappedRowRender:l,tooltipContent:a,tooltipTrigger:o}=xT(e),{onColumnsChange:r,onScrollableChange:i}=gT(n);return Sn(e.store.states.hoverRow,((n,l)=>{if(!e.store.states.isComplex.value||oy)return;let a=window.requestAnimationFrame;a||(a=e=>window.setTimeout(e,16)),a((()=>{const e=t.vnode.el.querySelectorAll(".el-table__row"),a=e[l],o=e[n];a&&Wy(a,"hover-row"),o&&Hy(o,"hover-row")}))})),_n((()=>{null==oT||oT()})),yn((()=>{null==oT||oT()})),{onColumnsChange:r,onScrollableChange:i,wrappedRowRender:l,tooltipContent:a,tooltipTrigger:o}},render(){const e=this.store.states.data.value||[];return da("table",{class:"el-table__body",cellspacing:"0",cellpadding:"0",border:"0"},[_T(this.store.states.columns.value),da("tbody",{},[e.reduce(((e,t)=>e.concat(this.wrappedRowRender(t,e.length))),[])])])}});var CT=Qn({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{hasGutter:t,getRowClasses:n,columns:l}=function(e){const t=na().parent,n=t.store,{leftFixedLeafCount:l,rightFixedLeafCount:a,columnsCount:o,leftFixedCount:r,rightFixedCount:i,columns:s}=function(){const e=na().parent.store;return{leftFixedLeafCount:ca((()=>e.states.fixedLeafColumnsLength.value)),rightFixedLeafCount:ca((()=>e.states.rightFixedColumns.value.length)),columnsCount:ca((()=>e.states.columns.value.length)),leftFixedCount:ca((()=>e.states.fixedColumns.value.length)),rightFixedCount:ca((()=>e.states.rightFixedColumns.value.length)),columns:e.states.columns}}();return{hasGutter:ca((()=>!e.fixed&&t.layout.gutterWidth)),getRowClasses:(t,s)=>{const u=[t.id,t.align,t.labelClassName];return t.className&&u.push(t.className),((t,n,s)=>{if(e.fixed||"left"===e.fixed)return t>=l.value;if("right"===e.fixed){let e=0;for(let l=0;l<t;l++)e+=n[l].colSpan;return e<o.value-a.value}return!(e.fixed||!s.fixed)||t<r.value||t>=o.value-i.value})(s,n.states.columns.value,t)&&u.push("is-hidden"),t.children||u.push("is-leaf"),u},columns:s}}(e);return{getRowClasses:n,hasGutter:t,columns:l}},render(){let e=[];return this.summaryMethod?e=this.summaryMethod({columns:this.columns,data:this.store.states.data.value}):this.columns.forEach(((t,n)=>{if(0===n)return void(e[n]=this.sumText);const l=this.store.states.data.value.map((e=>Number(e[t.property]))),a=[];let o=!0;l.forEach((e=>{if(!isNaN(e)){o=!1;const t=(""+e).split(".")[1];a.push(t?t.length:0)}}));const r=Math.max.apply(null,a);e[n]=o?"":l.reduce(((e,t)=>{const n=Number(t);return isNaN(n)?e:parseFloat((e+t).toFixed(Math.min(r,20)))}),0)})),da("table",{class:"el-table__footer",cellspacing:"0",cellpadding:"0",border:"0"},[_T(this.columns,this.hasGutter),da("tbody",{class:[{"has-gutter":this.hasGutter}]},[da("tr",{},[...this.columns.map(((t,n)=>da("td",{key:n,colspan:t.colSpan,rowspan:t.rowSpan,class:this.getRowClasses(t,n)},[da("div",{class:["cell",t.labelClassName]},[e[n]])]))),this.hasGutter&&bT()])])])}});let ST=1;var ET=Qn({name:"ElTable",directives:{Mousewheel:Lb},components:{TableHeader:kT,TableBody:wT,TableFooter:CT},props:{data:{type:Array,default:function(){return[]}},size:String,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function},emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){let t=na();const n=function(e,t={}){if(!e)throw new Error("Table is required.");const n=cT();return n.toggleAllSelection=uu(n._toggleAllSelection,10),Object.keys(t).forEach((e=>{n.states[e].value=t[e]})),n}(t,{rowKey:e.rowKey,defaultExpandAll:e.defaultExpandAll,selectOnIndeterminate:e.selectOnIndeterminate,indent:e.indent,lazy:e.lazy,lazyColumnIdentifier:e.treeProps.hasChildren||"hasChildren",childrenColumnName:e.treeProps.children||"children",data:e.data});t.store=n;const l=new dT({store:t.store,table:t,fit:e.fit,showHeader:e.showHeader});t.layout=l;const{setCurrentRow:a,toggleRowSelection:o,clearSelection:r,clearFilter:i,toggleAllSelection:s,toggleRowExpansion:u,clearSort:c,sort:d}=function(e){return{setCurrentRow:t=>{e.commit("setCurrentRow",t)},toggleRowSelection:(t,n)=>{e.toggleRowSelection(t,n,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:t=>{e.clearFilter(t)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(t,n)=>{e.toggleRowExpansionAdapter(t,n)},clearSort:()=>{e.clearSort()},sort:(t,n)=>{e.commit("sort",{prop:t,order:n})}}}(n),{isHidden:p,renderExpanded:f,setDragVisible:h,isGroup:v,handleMouseLeave:m,handleHeaderFooterMousewheel:g,tableSize:y,bodyHeight:b,emptyBlockStyle:_,handleFixedMousewheel:k,fixedHeight:x,fixedBodyHeight:w,resizeProxyVisible:C,bodyWidth:S,resizeState:E,doLayout:M}=function(e,t,n,l){const a=Ay(),o=lt(!1),r=lt(null),i=lt(!1),s=lt({width:null,height:null}),u=lt(!1);wn((()=>{t.setHeight(e.height)})),wn((()=>{t.setMaxHeight(e.maxHeight)})),wn((()=>{n.states.rowKey.value&&n.setCurrentRowKey(e.currentRowKey)})),Sn((()=>e.data),(()=>{l.store.commit("setData",e.data)}),{immediate:!0,deep:!0}),wn((()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)}));const c=ca((()=>e.height||e.maxHeight||n.states.fixedColumns.value.length>0||n.states.rightFixedColumns.value.length>0)),d=()=>{c.value&&t.updateElsHeight(),t.updateColumnsWidth(),f()};mn((()=>{p("is-scrolling-left"),h(),n.updateColumns(),d(),s.value={width:l.vnode.el.offsetWidth,height:l.vnode.el.offsetHeight},n.states.columns.value.forEach((e=>{e.filteredValue&&e.filteredValue.length&&l.store.commit("filterChange",{column:e,values:e.filteredValue,silent:!0})})),l.$ready=!0}));const p=e=>{const{bodyWrapper:n}=l.refs;((e,n)=>{if(!e)return;const l=Array.from(e.classList).filter((e=>!e.startsWith("is-scrolling-")));l.push(t.scrollX.value?n:"is-scrolling-none"),e.className=l.join(" ")})(n,e)},f=zc((function(){if(!l.refs.bodyWrapper)return;const{scrollLeft:e,scrollTop:t,offsetWidth:n,scrollWidth:a}=l.refs.bodyWrapper,{headerWrapper:o,footerWrapper:r,fixedBodyWrapper:i,rightFixedBodyWrapper:s}=l.refs;o&&(o.scrollLeft=e),r&&(r.scrollLeft=e),i&&(i.scrollTop=t),s&&(s.scrollTop=t),p(e>=a-n-1?"is-scrolling-right":0===e?"is-scrolling-left":"is-scrolling-middle")}),10),h=()=>{window.addEventListener("resize",d),l.refs.bodyWrapper.addEventListener("scroll",f,{passive:!0}),e.fit&&Zy(l.vnode.el,m)};_n((()=>{v()}));const v=()=>{var t;null===(t=l.refs.bodyWrapper)||void 0===t||t.removeEventListener("scroll",f,!0),window.removeEventListener("resize",d),e.fit&&Jy(l.vnode.el,m)},m=()=>{if(!l.$ready)return;let t=!1;const n=l.vnode.el,{width:a,height:o}=s.value,r=n.offsetWidth;a!==r&&(t=!0);const i=n.offsetHeight;(e.height||c.value)&&o!==i&&(t=!0),t&&(s.value={width:r,height:i},d())},g=ca((()=>e.size||a.size)),y=ca((()=>{const{bodyWidth:e,scrollY:n,gutterWidth:l}=t;return e.value?e.value-(n.value?l:0)+"px":""}));return{isHidden:o,renderExpanded:r,setDragVisible:e=>{i.value=e},isGroup:u,handleMouseLeave:()=>{l.store.commit("setHoverRow",null),l.hoverState&&(l.hoverState=null)},handleHeaderFooterMousewheel:(e,t)=>{const{pixelX:n,pixelY:a}=t;Math.abs(n)>=Math.abs(a)&&(l.refs.bodyWrapper.scrollLeft+=t.pixelX/5)},tableSize:g,bodyHeight:ca((()=>{const n=t.headerHeight.value||0,l=t.bodyHeight.value,a=t.footerHeight.value||0;if(e.height)return{height:l?l+"px":""};if(e.maxHeight){const t=nT(e.maxHeight);if("number"==typeof t)return{"max-height":t-a-(e.showHeader?n:0)+"px"}}return{}})),emptyBlockStyle:ca((()=>{if(e.data&&e.data.length)return null;let n="100%";return t.appendHeight.value&&(n=`calc(100% - ${t.appendHeight.value}px)`),{width:y.value,height:n}})),handleFixedMousewheel:(e,t)=>{const n=l.refs.bodyWrapper;if(Math.abs(t.spinY)>0){const l=n.scrollTop;t.pixelY<0&&0!==l&&e.preventDefault(),t.pixelY>0&&n.scrollHeight-n.clientHeight>l&&e.preventDefault(),n.scrollTop+=Math.ceil(t.pixelY/5)}else n.scrollLeft+=Math.ceil(t.pixelX/5)},fixedHeight:ca((()=>e.maxHeight?e.showSummary?{bottom:0}:{bottom:t.scrollX.value&&e.data.length?t.gutterWidth+"px":""}:e.showSummary?{height:t.tableHeight.value?t.tableHeight.value+"px":""}:{height:t.viewportHeight.value?t.viewportHeight.value+"px":""})),fixedBodyHeight:ca((()=>{if(e.height)return{height:t.fixedBodyHeight.value?t.fixedBodyHeight.value+"px":""};if(e.maxHeight){let n=nT(e.maxHeight);if("number"==typeof n)return n=t.scrollX.value?n-t.gutterWidth:n,e.showHeader&&(n-=t.headerHeight.value),n-=t.footerHeight.value,{"max-height":n+"px"}}return{}})),resizeProxyVisible:i,bodyWidth:y,resizeState:s,doLayout:d}}(e,l,n,t),O=uu((()=>M()),50),T="el-table_"+ST++;return t.tableId=T,t.state={isGroup:v,resizeState:E,doLayout:M,debouncedUpdateLayout:O},{layout:l,store:n,handleHeaderFooterMousewheel:g,handleMouseLeave:m,tableId:T,tableSize:y,isHidden:p,renderExpanded:f,resizeProxyVisible:C,resizeState:E,isGroup:v,bodyWidth:S,bodyHeight:b,emptyBlockStyle:_,debouncedUpdateLayout:O,handleFixedMousewheel:k,fixedHeight:x,fixedBodyHeight:w,setCurrentRow:a,toggleRowSelection:o,clearSelection:r,clearFilter:i,toggleAllSelection:s,toggleRowExpansion:u,clearSort:c,doLayout:M,sort:d,t:ak,setDragVisible:h,context:t}}});const MT={ref:"hiddenColumns",class:"hidden-columns"},OT={key:0,ref:"headerWrapper",class:"el-table__header-wrapper"},TT={class:"el-table__empty-text"},DT={key:1,ref:"appendWrapper",class:"el-table__append-wrapper"},LT={key:1,ref:"footerWrapper",class:"el-table__footer-wrapper"},NT={key:0,ref:"fixedHeaderWrapper",class:"el-table__fixed-header-wrapper"},AT={key:1,ref:"fixedFooterWrapper",class:"el-table__fixed-footer-wrapper"},PT={key:0,ref:"rightFixedHeaderWrapper",class:"el-table__fixed-header-wrapper"},IT={key:1,ref:"rightFixedFooterWrapper",class:"el-table__fixed-footer-wrapper"},FT={ref:"resizeProxy",class:"el-table__column-resize-proxy"};ET.render=function(e,t,n,l,a,o){const r=dl("table-header"),i=dl("table-body"),s=dl("table-footer"),u=hl("mousewheel");return wl(),Sl("div",{class:[[{"el-table--fit":e.fit,"el-table--striped":e.stripe,"el-table--border":e.border||e.isGroup,"el-table--hidden":e.isHidden,"el-table--group":e.isGroup,"el-table--fluid-height":e.maxHeight,"el-table--scrollable-x":e.layout.scrollX.value,"el-table--scrollable-y":e.layout.scrollY.value,"el-table--enable-row-hover":!e.store.states.isComplex.value,"el-table--enable-row-transition":0!==(e.store.states.data.value||[]).length&&(e.store.states.data.value||[]).length<100},e.tableSize?"el-table--"+e.tableSize:""],"el-table"],onMouseleave:t[1]||(t[1]=t=>e.handleMouseLeave())},[Ll("div",MT,[Ht(e.$slots,"default")],512),e.showHeader?Un((wl(),Sl("div",OT,[Ll(r,{ref:"tableHeader",border:e.border,"default-sort":e.defaultSort,store:e.store,style:{width:e.layout.bodyWidth.value?e.layout.bodyWidth.value+"px":""},onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","style","onSetDragVisible"])],512)),[[u,e.handleHeaderFooterMousewheel]]):Pl("v-if",!0),Ll("div",{ref:"bodyWrapper",style:[e.bodyHeight],class:"el-table__body-wrapper"},[Ll(i,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"row-style":e.rowStyle,store:e.store,stripe:e.stripe,style:{width:e.bodyWidth}},null,8,["context","highlight","row-class-name","tooltip-effect","row-style","store","stripe","style"]),e.data&&0!==e.data.length?Pl("v-if",!0):(wl(),Sl("div",{key:0,ref:"emptyBlock",style:e.emptyBlockStyle,class:"el-table__empty-block"},[Ll("span",TT,[Ht(e.$slots,"empty",{},(()=>[Al(c(e.emptyText||e.t("el.table.emptyText")),1)]))])],4)),e.$slots.append?(wl(),Sl("div",DT,[Ht(e.$slots,"append")],512)):Pl("v-if",!0)],4),e.showSummary?Un((wl(),Sl("div",LT,[Ll(s,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:{width:e.layout.bodyWidth.value?e.layout.bodyWidth.value+"px":""},"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],512)),[[mo,e.data&&e.data.length>0],[u,e.handleHeaderFooterMousewheel]]):Pl("v-if",!0),e.store.states.fixedColumns.value.length>0?Un((wl(),Sl("div",{key:2,ref:"fixedWrapper",style:[{width:e.layout.fixedWidth.value?e.layout.fixedWidth.value+"px":""},e.fixedHeight],class:"el-table__fixed"},[e.showHeader?(wl(),Sl("div",NT,[Ll(r,{ref:"fixedTableHeader",border:e.border,store:e.store,style:{width:e.bodyWidth},fixed:"left",onSetDragVisible:e.setDragVisible},null,8,["border","store","style","onSetDragVisible"])],512)):Pl("v-if",!0),Ll("div",{ref:"fixedBodyWrapper",style:[{top:e.layout.headerHeight.value+"px"},e.fixedBodyHeight],class:"el-table__fixed-body-wrapper"},[Ll(i,{highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"row-style":e.rowStyle,store:e.store,stripe:e.stripe,style:{width:e.bodyWidth},fixed:"left"},null,8,["highlight","row-class-name","tooltip-effect","row-style","store","stripe","style"]),e.$slots.append?(wl(),Sl("div",{key:0,style:{height:e.layout.appendHeight.value+"px"},class:"el-table__append-gutter"},null,4)):Pl("v-if",!0)],4),e.showSummary?Un((wl(),Sl("div",AT,[Ll(s,{border:e.border,store:e.store,style:{width:e.bodyWidth},"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,fixed:"left"},null,8,["border","store","style","sum-text","summary-method"])],512)),[[mo,e.data&&e.data.length>0]]):Pl("v-if",!0)],4)),[[u,e.handleFixedMousewheel]]):Pl("v-if",!0),e.store.states.rightFixedColumns.value.length>0?Un((wl(),Sl("div",{key:3,ref:"rightFixedWrapper",style:[{width:e.layout.rightFixedWidth.value?e.layout.rightFixedWidth.value+"px":"",right:e.layout.scrollY.value?(e.border?e.layout.gutterWidth:e.layout.gutterWidth||0)+"px":""},e.fixedHeight],class:"el-table__fixed-right"},[e.showHeader?(wl(),Sl("div",PT,[Ll(r,{ref:"rightFixedTableHeader",border:e.border,store:e.store,style:{width:e.bodyWidth},fixed:"right",onSetDragVisible:e.setDragVisible},null,8,["border","store","style","onSetDragVisible"])],512)):Pl("v-if",!0),Ll("div",{ref:"rightFixedBodyWrapper",style:[{top:e.layout.headerHeight.value+"px"},e.fixedBodyHeight],class:"el-table__fixed-body-wrapper"},[Ll(i,{highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"row-style":e.rowStyle,store:e.store,stripe:e.stripe,style:{width:e.bodyWidth},fixed:"right"},null,8,["highlight","row-class-name","tooltip-effect","row-style","store","stripe","style"]),e.$slots.append?(wl(),Sl("div",{key:0,style:{height:e.layout.appendHeight.value+"px"},class:"el-table__append-gutter"},null,4)):Pl("v-if",!0)],4),e.showSummary?Un((wl(),Sl("div",IT,[Ll(s,{border:e.border,store:e.store,style:{width:e.bodyWidth},"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,fixed:"right"},null,8,["border","store","style","sum-text","summary-method"])],512)),[[mo,e.data&&e.data.length>0]]):Pl("v-if",!0)],4)),[[u,e.handleFixedMousewheel]]):Pl("v-if",!0),e.store.states.rightFixedColumns.value.length>0?(wl(),Sl("div",{key:4,ref:"rightFixedPatch",style:{width:e.layout.scrollY.value?e.layout.gutterWidth+"px":"0",height:e.layout.headerHeight.value+"px"},class:"el-table__fixed-right-patch"},null,4)):Pl("v-if",!0),Un(Ll("div",FT,null,512),[[mo,e.resizeProxyVisible]])],34)},ET.__file="packages/table/src/table.vue",ET.install=e=>{e.component(ET.name,ET)};const VT=ET,BT={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:"",className:"el-table-column--selection"},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},$T={selection:{renderHeader:function({store:e}){const t=e;return da(dx,{disabled:t.states.data.value&&0===t.states.data.value.length,indeterminate:t.states.selection.value.length>0&&!t.states.isAllSelected.value,"onUpdate:modelValue":t.toggleAllSelection,modelValue:t.states.isAllSelected.value})},renderCell:function({row:e,column:t,store:n,$index:l}){return da(dx,{disabled:!!t.selectable&&!t.selectable.call(null,e,l),onChange:()=>{n.commit("rowSelectedChanged",e)},onClick:e=>e.stopPropagation(),modelValue:n.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader:function({column:e}){return e.label||"#"},renderCell:function({column:e,$index:t}){let n=t+1;const l=e.index;return"number"==typeof l?n=t+l:"function"==typeof l&&(n=l(t)),da("div",{},[n])},sortable:!1},expand:{renderHeader:function({column:e}){return e.label||""},renderCell:function({row:e,store:t}){const n=t,l=e,a=["el-table__expand-icon"];return n.states.expandRows.value.indexOf(l)>-1&&a.push("el-table__expand-icon--expanded"),da("div",{class:a,onClick:function(e){e.stopPropagation(),n.toggleRowExpansion(l)}},[da("i",{class:"el-icon el-icon-arrow-right"})])},sortable:!1,resizable:!1,className:"el-table__expand-column"}};function zT({row:e,column:t,$index:n}){var l;const a=t.property,o=a&&Sy(e,a,!1).v;return t&&t.formatter?t.formatter(e,t,o,n):(null===(l=null==o?void 0:o.toString)||void 0===l?void 0:l.call(o))||""}let jT=1;const RT=Qn({name:"ElTableColumn",components:{ElCheckbox:dx},props:{type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[Object,Number,String],default:()=>({})},minWidth:{type:[Object,Number,String],default:()=>({})},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showTooltipWhenOverflow:Boolean,showOverflowTooltip:Boolean,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every((e=>["ascending","descending",null].indexOf(e)>-1))}},setup(e,{slots:t}){const n=na(),l=lt({}),a=e,o=ca((()=>{let e=n.parent;for(;e&&!e.tableId;)e=e.parent;return e})),{registerNormalWatchers:r,registerComplexWatchers:i}=function(e,t){const n=na();return{registerComplexWatchers:()=>{const l={realWidth:"width",realMinWidth:"minWidth"},a=["fixed"].reduce(((e,t)=>(e[t]=t,e)),l);Object.keys(a).forEach((a=>{const o=l[a];uy(t,o)&&Sn((()=>t[o]),(t=>{n.columnConfig.value[o]=t,n.columnConfig.value[a]=t;const l="fixed"===o;e.value.store.scheduleLayout(l)}))}))},registerNormalWatchers:()=>{const e={prop:"property",realAlign:"align",realHeaderAlign:"headerAlign"},l=["label","property","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"].reduce(((e,t)=>(e[t]=t,e)),e);Object.keys(l).forEach((l=>{const a=e[l];uy(t,a)&&Sn((()=>t[a]),(e=>{n.columnConfig.value[a]=e}))}))}}}(o,a),{columnId:s,isSubColumn:u,realHeaderAlign:c,columnOrTableParent:d,setColumnWidth:p,setColumnForcedProps:f,setColumnRenders:h,getPropsData:v,getColumnElIndex:m,realAlign:g}=function(e,t,n){const l=na(),a=lt(""),o=lt(!1),r=lt(),i=lt();wn((()=>{r.value=e.align?"is-"+e.align:null,r.value})),wn((()=>{i.value=e.headerAlign?"is-"+e.headerAlign:r.value,i.value}));const s=ca((()=>{let e=l.vnode.vParent||l.parent;for(;e&&!e.tableId&&!e.columnId;)e=e.vnode.vParent||e.parent;return e})),u=lt(tT(e.width)),c=lt((void 0!==(d=e.minWidth)&&(d=tT(d),isNaN(d)&&(d=80)),d));var d;return{columnId:a,realAlign:r,isSubColumn:o,realHeaderAlign:i,columnOrTableParent:s,setColumnWidth:e=>(u.value&&(e.width=u.value),c.value&&(e.minWidth=c.value),e.minWidth||(e.minWidth=80),e.realWidth=void 0===e.width?e.minWidth:e.width,e),setColumnForcedProps:e=>{const t=e.type,n=$T[t]||{};return Object.keys(n).forEach((t=>{const l=n[t];void 0!==l&&(e[t]="className"===t?`${e[t]} ${l}`:l)})),e},setColumnRenders:a=>{e.renderHeader?console.warn("[Element Warn][TableColumn]Comparing to render-header, scoped-slot header is easier to use. We recommend users to use scoped-slot header."):"selection"!==a.type&&(a.renderHeader=e=>{l.columnConfig.value.label;const n=t.header;return n?n(e):a.label});let o=a.renderCell;return"expand"===a.type?(a.renderCell=e=>da("div",{class:"cell"},[o(e)]),n.value.renderExpanded=e=>t.default?t.default(e):t.default):(o=o||zT,a.renderCell=e=>{let n=null;n=t.default?t.default(e):o(e);const r=function({row:e,treeNode:t,store:n}){const l=e,a=n,o=t;if(!o)return null;const r=[],i=function(e){e.stopPropagation(),a.loadOrToggle(l)};if(o.indent&&r.push(da("span",{class:"el-table__indent",style:{"padding-left":o.indent+"px"}})),"boolean"!=typeof o.expanded||o.noLazyChildren)r.push(da("span",{class:"el-table__placeholder"}));else{const e=["el-table__expand-icon",o.expanded?"el-table__expand-icon--expanded":""];let t=["el-icon-arrow-right"];o.loading&&(t=["el-icon-loading"]),r.push(da("div",{class:e,onClick:i},[da("i",{class:t})]))}return r}(e),i={class:"cell",style:{}};return a.showOverflowTooltip&&(i.class+=" el-tooltip",i.style={width:(e.column.realWidth||e.column.width)-1+"px"}),(e=>{function t(e){var t;"ElTableColumn"===(null===(t=null==e?void 0:e.type)||void 0===t?void 0:t.name)&&(e.vParent=l)}e instanceof Array?e.forEach((e=>t(e))):t(e)})(n),da("div",i,[r,n])}),a},getPropsData:(...t)=>t.reduce(((t,n)=>(Array.isArray(n)&&n.forEach((n=>{t[n]=e[n]})),t)),{}),getColumnElIndex:(e,t)=>[].indexOf.call(e,t)}}(a,t,o),y=d.value;s.value=(y.tableId||y.columnId)+"_column_"+jT++,vn((()=>{u.value=o.value!==y;const e=a.type||"default",t=""===a.sortable||a.sortable,n=Object.assign(Object.assign({},BT[e]),{id:s.value,type:e,property:a.prop||a.property,align:g,headerAlign:c,showOverflowTooltip:a.showOverflowTooltip||a.showTooltipWhenOverflow,filterable:a.filters||a.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,filterOpened:!1,sortable:t,index:a.index});let d=v(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);d=function(e,t){const n={};let l;for(l in e)n[l]=e[l];for(l in t)if(uy(t,l)){const e=t[l];void 0!==e&&(n[l]=e)}return n}(n,d),d=function(...e){return 0===e.length?e=>e:1===e.length?e[0]:e.reduce(((e,t)=>(...n)=>e(t(...n))))}(h,p,f)(d),l.value=d,r(),i()})),mn((()=>{var e;const t=d.value,a=u.value?t.vnode.el.children:null===(e=t.refs.hiddenColumns)||void 0===e?void 0:e.children,r=()=>m(a||[],n.vnode.el);l.value.getColumnIndex=r,r()>-1&&o.value.store.commit("insertColumn",l.value,u.value?t.columnConfig.value:null)})),bn((()=>{o.value.store.commit("removeColumn",l.value,u.value?y.columnConfig.value:null)})),n.columnId=s.value,n.columnConfig=l},render(){var e,t,n;let l=[];try{const a=null===(t=(e=this.$slots).default)||void 0===t?void 0:t.call(e,{row:{},column:{},$index:-1});if(a instanceof Array)for(const e of a)"ElTableColumn"===(null===(n=e.type)||void 0===n?void 0:n.name)||36!==e.shapeFlag?l.push(e):e.type===gl&&e.children instanceof Array&&a.push(...e.children)}catch(a){l=[]}return da("div",l)}});RT.install=e=>{e.component(RT.name,RT)};var HT=Qn({name:"ElTabBar",props:{tabs:{type:Array,default:()=>[]}},setup(e){const t=zl("rootTabs");if(!t)throw new Error("ElTabBar must use with ElTabs");const n=na(),l=()=>{let l={},a=0,o=0;const r=["top","bottom"].includes(t.props.tabPosition)?"width":"height",i="width"===r?"x":"y";e.tabs.every((t=>{var l;let i=null===(l=n.parent.refs)||void 0===l?void 0:l["tab-"+t.paneName];if(!i)return!1;if(t.active){o=i["client"+ky(r)];const t=window.getComputedStyle(i);return"width"===r&&(e.tabs.length>1&&(o-=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight)),a+=parseFloat(t.paddingLeft)),!1}return a+=i["client"+ky(r)],!0}));const s=`translate${ky(i)}(${a}px)`;return l[r]=o+"px",l.transform=s,l.msTransform=s,l.webkitTransform=s,l},a=lt(l());return Sn((()=>e.tabs),(()=>{Dt((()=>{a.value=l()}))})),{rootTabs:t,barStyle:a}}});HT.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:["el-tabs__active-bar","is-"+e.rootTabs.props.tabPosition],style:e.barStyle},null,6)},HT.__file="packages/tabs/src/tab-bar.vue";var WT=Qn({name:"ElTabNav",components:{TabBar:HT},props:{panes:{type:Array,default:()=>[]},currentName:{type:String,default:""},editable:Boolean,onTabClick:{type:Function,default:ry},onTabRemove:{type:Function,default:ry},type:{type:String,default:""},stretch:Boolean},setup(){const e=zl("rootTabs");if(!e)throw new Error("ElTabNav must use with ElTabs");const t=lt(!1),n=lt(0),l=lt(!1),a=lt(!0),o=lt(null),r=lt(null),i=lt(null),s=ca((()=>["top","bottom"].includes(e.props.tabPosition)?"width":"height")),u=ca((()=>({transform:`translate${"width"===s.value?"X":"Y"}(-${n.value}px)`}))),c=()=>{if(!t.value)return;const l=r.value,a=i.value.querySelector(".is-active");if(!a)return;const s=o.value,u=["top","bottom"].includes(e.props.tabPosition),c=a.getBoundingClientRect(),d=s.getBoundingClientRect(),p=u?l.offsetWidth-d.width:l.offsetHeight-d.height,f=n.value;let h=f;u?(c.left<d.left&&(h=f-(d.left-c.left)),c.right>d.right&&(h=f+c.right-d.right)):(c.top<d.top&&(h=f-(d.top-c.top)),c.bottom>d.bottom&&(h=f+(c.bottom-d.bottom))),h=Math.max(h,0),n.value=Math.min(h,p)},d=()=>{if(!r.value)return;const e=r.value["offset"+ky(s.value)],l=o.value["offset"+ky(s.value)],a=n.value;if(l<e){const a=n.value;t.value=t.value||{},t.value.prev=a,t.value.next=a+l<e,e-a<l&&(n.value=e-l)}else t.value=!1,a>0&&(n.value=0)},p=()=>{a.value&&(l.value=!0)},f=()=>{const e=document.visibilityState;"hidden"===e?a.value=!1:"visible"===e&&setTimeout((()=>{a.value=!0}),50)},h=()=>{a.value=!1},v=()=>{setTimeout((()=>{a.value=!0}),50)};return yn((()=>{d()})),mn((()=>{Zy(i.value,d),zy(document,"visibilitychange",f),zy(window,"blur",h),zy(window,"focus",v),setTimeout((()=>{c()}),0)})),bn((()=>{i.value&&Jy(i.value,d),jy(document,"visibilitychange",f),jy(window,"blur",h),jy(window,"focus",v)})),{rootTabs:e,scrollable:t,navOffset:n,isFocus:l,focusable:a,navScroll$:o,nav$:r,el$:i,sizeName:s,navStyle:u,scrollPrev:()=>{const e=o.value["offset"+ky(s.value)],t=n.value;if(!t)return;let l=t>e?t-e:0;n.value=l},scrollNext:()=>{const e=r.value["offset"+ky(s.value)],t=o.value["offset"+ky(s.value)],l=n.value;if(e-l<=t)return;let a=e-l>2*t?l+t:e-t;n.value=a},scrollToActiveTab:c,update:d,changeTab:e=>{const t=e.code;let n,l,a;const{up:o,down:r,left:i,right:s}=vb;-1!==[o,r,i,s].indexOf(t)&&(a=e.currentTarget.querySelectorAll("[role=tab]"),l=Array.prototype.indexOf.call(a,e.target),n=t===i||t===o?0===l?a.length-1:l-1:l<a.length-1?l+1:0,a[n].focus(),a[n].click(),p())},setFocus:p,removeFocus:()=>{l.value=!1},visibilityChangeHandler:f,windowBlurHandler:h,windowFocusHandler:v}},render(){const{type:e,panes:t,editable:n,stretch:l,onTabClick:a,onTabRemove:o,navStyle:r,scrollable:i,scrollNext:s,scrollPrev:u,changeTab:c,setFocus:d,removeFocus:p,rootTabs:f,isFocus:h}=this,v=i?[da("span",{class:["el-tabs__nav-prev",i.prev?"":"is-disabled"],onClick:u},[da("i",{class:"el-icon-arrow-left"})]),da("span",{class:["el-tabs__nav-next",i.next?"":"is-disabled"],onClick:s},[da("i",{class:"el-icon-arrow-right"})])]:null,m=t.map(((e,t)=>{var l,r;let i=e.props.name||e.index||""+t;const s=e.isClosable||n;e.index=""+t;const u=s?da("span",{class:"el-icon-close",onClick:t=>{o(e,t)}}):null,c=(null===(r=(l=e.instance.slots).label)||void 0===r?void 0:r.call(l))||e.props.label,v=e.active?0:-1;return da("div",{class:{"el-tabs__item":!0,["is-"+f.props.tabPosition]:!0,"is-active":e.active,"is-disabled":e.props.disabled,"is-closable":s,"is-focus":h},id:"tab-"+i,key:"tab-"+i,"aria-controls":"pane-"+i,role:"tab","aria-selected":e.active,ref:"tab-"+i,tabindex:v,onFocus:()=>{d()},onBlur:()=>{p()},onClick:t=>{p(),a(e,i,t)},onKeydown:t=>{!s||t.code!==vb.delete&&t.code!==vb.backspace||o(e,t)}},[c,u])}));return da("div",{ref:"el$",class:["el-tabs__nav-wrap",i?"is-scrollable":"","is-"+f.props.tabPosition]},[v,da("div",{class:"el-tabs__nav-scroll",ref:"navScroll$"},[da("div",{class:["el-tabs__nav","is-"+f.props.tabPosition,l&&["top","bottom"].includes(f.props.tabPosition)?"is-stretch":""],ref:"nav$",style:r,role:"tablist",onKeydown:c},[e?null:da(HT,{tabs:t}),m])])])}});WT.__file="packages/tabs/src/tab-nav.vue";var YT=Qn({name:"ElTabs",components:{TabNav:WT},props:{type:{type:String,default:""},activeName:{type:String,default:""},closable:Boolean,addable:Boolean,modelValue:{type:String,default:""},editable:Boolean,tabPosition:{type:String,default:"top"},beforeLeave:{type:Function,default:null},stretch:Boolean},emits:["tab-click","edit","tab-remove","tab-add","input","update:modelValue"],setup(e,t){const n=lt(null),l=lt(e.modelValue||e.activeName||"0"),a=lt([]),o=na(),r={};$l("rootTabs",{props:e,currentName:l}),$l("updatePaneState",(e=>{r[e.uid]=e})),Sn((()=>e.activeName),(e=>{c(e)})),Sn((()=>e.modelValue),(e=>{c(e)})),Sn(l,(()=>{n.value&&Dt((()=>{n.value.$nextTick((()=>{n.value.scrollToActiveTab()}))})),s(!0)}));const i=(e,t=[])=>(Array.from(e.children||[]).forEach((e=>{let n=e.type;n=n.name||n,"ElTabPane"===n&&e.component?t.push(e.component):n!==gl&&"template"!==n||i(e,t)})),t),s=(e=!1)=>{if(t.slots.default){const t=o.subTree.children,n=Array.from(t).find((({props:e})=>"el-tabs__content"===e.class));if(!n)return;const l=i(n).map((e=>r[e.uid])),s=!(l.length===a.value.length&&l.every(((e,t)=>e.uid===a.value[t].uid)));(e||s)&&(a.value=l)}else 0!==a.value.length&&(a.value=[])},u=e=>{l.value=e,t.emit("input",e),t.emit("update:modelValue",e)},c=t=>{if(l.value!==t&&e.beforeLeave){const a=e.beforeLeave(t,l.value);a&&a.then?a.then((()=>{u(t),n.value&&n.value.removeFocus()}),(()=>{})):!1!==a&&u(t)}else u(t)};return yn((()=>{s()})),mn((()=>{s()})),{nav$:n,handleTabClick:(e,n,l)=>{e.props.disabled||(c(n),t.emit("tab-click",e,l))},handleTabRemove:(e,n)=>{e.props.disabled||(n.stopPropagation(),t.emit("edit",e.props.name,"remove"),t.emit("tab-remove",e.props.name))},handleTabAdd:()=>{t.emit("edit",null,"add"),t.emit("tab-add")},currentName:l,panes:a}},render(){var e;let{type:t,handleTabClick:n,handleTabRemove:l,handleTabAdd:a,currentName:o,panes:r,editable:i,addable:s,tabPosition:u,stretch:c}=this;const d=i||s?da("span",{class:"el-tabs__new-tab",tabindex:"0",onClick:a,onKeydown:e=>{e.code===vb.enter&&a()}},[da("i",{class:"el-icon-plus"})]):null,p=da("div",{class:["el-tabs__header","is-"+u]},[d,da(WT,{currentName:o,editable:i,type:t,panes:r,stretch:c,ref:"nav$",onTabClick:n,onTabRemove:l})]),f=da("div",{class:"el-tabs__content"},null===(e=this.$slots)||void 0===e?void 0:e.default());return da("div",{class:{"el-tabs":!0,"el-tabs--card":"card"===t,["el-tabs--"+u]:!0,"el-tabs--border-card":"border-card"===t}},"bottom"!==u?[p,f]:[f,p])}});YT.__file="packages/tabs/src/tabs.vue",YT.install=e=>{e.component(YT.name,YT)};const qT=YT,KT=e=>{const t=(e||"").split(":");return t.length>=2?{hours:parseInt(t[0],10),minutes:parseInt(t[1],10)}:null},UT=(e,t)=>{const n=KT(e),l=KT(t),a=n.minutes+60*n.hours,o=l.minutes+60*l.hours;return a===o?0:a>o?1:-1},GT=(e,t)=>{const n=KT(e),l=KT(t),a={hours:n.hours,minutes:n.minutes};return a.minutes+=l.minutes,a.hours+=l.hours,a.hours+=Math.floor(a.minutes/60),a.minutes=a.minutes%60,((o=a).hours<10?"0"+o.hours:o.hours)+":"+(o.minutes<10?"0"+o.minutes:o.minutes);var o};var XT=Qn({name:"ElTimeSelect",components:{ElSelect:EM,ElOption:MM},model:{prop:"value",event:"change"},props:{modelValue:String,editable:{type:Boolean,default:!0},clearable:{type:Boolean,default:!0},size:{type:String,default:"",validator:e=>!e||-1!==["medium","small","mini"].indexOf(e)},placeholder:{type:String,default:""},start:{type:String,default:"09:00"},end:{type:String,default:"18:00"},step:{type:String,default:"00:30"},minTime:{type:String,default:""},maxTime:{type:String,default:""},name:{type:String,default:""},prefixIcon:{type:String,default:"el-icon-time"},clearIcon:{type:String,default:"el-icon-circle-close"}},emits:["change","blur","focus","update:modelValue"],setup:e=>({value:ca((()=>e.modelValue)),items:ca((()=>{const t=[];if(e.start&&e.end&&e.step){let n=e.start;for(;UT(n,e.end)<=0;)t.push({value:n,disabled:UT(n,e.minTime||"-1:-1")<=0||UT(n,e.maxTime||"100:100")>=0}),n=GT(n,e.step)}return t}))})});XT.render=function(e,t,n,l,a,o){const r=dl("el-option"),i=dl("el-select");return wl(),Sl(i,{"model-value":e.value,disabled:!e.editable,clearable:e.clearable,"clear-icon":e.clearIcon,size:e.size,placeholder:e.placeholder,"default-first-option":"",filterable:"","onUpdate:modelValue":t[1]||(t[1]=t=>e.$emit("update:modelValue",t)),onChange:t[2]||(t[2]=t=>e.$emit("change",t)),onBlur:t[3]||(t[3]=t=>e.$emit("blur",t)),onFocus:t[4]||(t[4]=t=>e.$emit("focus",t))},{prefix:Zt((()=>[Ll("i",{class:"el-input__icon "+e.prefixIcon},null,2)])),default:Zt((()=>[(wl(!0),Sl(gl,null,pa(e.items,(e=>(wl(),Sl(r,{key:e.value,label:e.value,value:e.value,disabled:e.disabled},null,8,["label","value","disabled"])))),128))])),_:1},8,["model-value","disabled","clearable","clear-icon","size","placeholder"])},XT.__file="packages/time-select/src/time-select.vue",XT.install=e=>{e.component(XT.name,XT)};const ZT=XT;var JT=Qn({name:"ElTimeline",setup:(e,t)=>($l("timeline",t),()=>{var e,n;return da("ul",{class:{"el-timeline":!0}},null===(n=(e=t.slots).default)||void 0===n?void 0:n.call(e))})});JT.__file="packages/timeline/src/index.vue",JT.install=e=>{e.component(JT.name,JT)};const QT=JT;var eD=Qn({name:"ElTimelineItem",props:{timestamp:{type:String,default:""},hideTimestamp:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},type:{type:String,default:""},color:{type:String,default:""},size:{type:String,default:"normal"},icon:{type:String,default:""}},setup(){zl("timeline")}});const tD={class:"el-timeline-item"},nD=Ll("div",{class:"el-timeline-item__tail"},null,-1),lD={key:1,class:"el-timeline-item__dot"},aD={class:"el-timeline-item__wrapper"},oD={key:0,class:"el-timeline-item__timestamp is-top"},rD={class:"el-timeline-item__content"},iD={key:1,class:"el-timeline-item__timestamp is-bottom"};eD.render=function(e,t,n,l,a,o){return wl(),Sl("li",tD,[nD,e.$slots.dot?Pl("v-if",!0):(wl(),Sl("div",{key:0,class:["el-timeline-item__node",["el-timeline-item__node--"+(e.size||""),"el-timeline-item__node--"+(e.type||"")]],style:{backgroundColor:e.color}},[e.icon?(wl(),Sl("i",{key:0,class:["el-timeline-item__icon",e.icon]},null,2)):Pl("v-if",!0)],6)),e.$slots.dot?(wl(),Sl("div",lD,[Ht(e.$slots,"dot")])):Pl("v-if",!0),Ll("div",aD,[e.hideTimestamp||"top"!==e.placement?Pl("v-if",!0):(wl(),Sl("div",oD,c(e.timestamp),1)),Ll("div",rD,[Ht(e.$slots,"default")]),e.hideTimestamp||"bottom"!==e.placement?Pl("v-if",!0):(wl(),Sl("div",iD,c(e.timestamp),1))])])},eD.__file="packages/timeline/src/item.vue",eD.install=e=>{e.component(eD.name,eD)};const sD=eD;var uD=Qn({name:"ElTransferPanel",components:{ElCheckboxGroup:Jx,ElCheckbox:dx,ElInput:Qb,OptionContent:({option:e})=>e},props:{data:{type:Array,default:()=>[]},optionRender:Function,placeholder:String,title:String,filterable:Boolean,format:Object,filterMethod:Function,defaultChecked:Array,props:Object},emits:["checked-change"],setup(e,{emit:t,slots:n}){const l=Ue({checked:[],allChecked:!1,query:"",inputHover:!1,checkChangeByUser:!0}),{labelProp:a,keyProp:o,disabledProp:r,filteredData:i,checkedSummary:s,isIndeterminate:u,handleAllCheckedChange:c}=((e,t,n)=>{const l=ca((()=>e.props.label||"label")),a=ca((()=>e.props.key||"key")),o=ca((()=>e.props.disabled||"disabled")),r=ca((()=>e.data.filter((n=>"function"==typeof e.filterMethod?e.filterMethod(t.query,n):(n[l.value]||n[a.value].toString()).toLowerCase().includes(t.query.toLowerCase()))))),i=ca((()=>r.value.filter((e=>!e[o.value])))),s=ca((()=>{const n=t.checked.length,l=e.data.length,{noChecked:a,hasChecked:o}=e.format;return a&&o?n>0?o.replace(/\${checked}/g,n.toString()).replace(/\${total}/g,l.toString()):a.replace(/\${total}/g,l.toString()):`${n}/${l}`})),u=ca((()=>{const e=t.checked.length;return e>0&&e<i.value.length})),c=()=>{const e=i.value.map((e=>e[a.value]));t.allChecked=e.length>0&&e.every((e=>t.checked.includes(e)))};return Sn((()=>t.checked),((e,l)=>{if(c(),t.checkChangeByUser){const t=e.concat(l).filter((t=>!e.includes(t)||!l.includes(t)));n("checked-change",e,t)}else n("checked-change",e),t.checkChangeByUser=!0})),Sn(i,(()=>{c()})),Sn((()=>e.data),(()=>{const e=[],n=r.value.map((e=>e[a.value]));t.checked.forEach((t=>{n.includes(t)&&e.push(t)})),t.checkChangeByUser=!1,t.checked=e})),Sn((()=>e.defaultChecked),((e,n)=>{if(n&&e.length===n.length&&e.every((e=>n.includes(e))))return;const l=[],o=i.value.map((e=>e[a.value]));e.forEach((e=>{o.includes(e)&&l.push(e)})),t.checkChangeByUser=!1,t.checked=l}),{immediate:!0}),{labelProp:l,keyProp:a,disabledProp:o,filteredData:r,checkableData:i,checkedSummary:s,isIndeterminate:u,updateAllChecked:c,handleAllCheckedChange:e=>{t.checked=e?i.value.map((e=>e[a.value])):[]}}})(e,l,t),d=ca((()=>l.query.length>0&&0===i.value.length)),p=ca((()=>l.query.length>0&&l.inputHover?"circle-close":"search")),f=ca((()=>!!n.default()[0].children.length)),{checked:h,allChecked:v,query:m,inputHover:g,checkChangeByUser:y}=ct(l);return{labelProp:a,keyProp:o,disabledProp:r,filteredData:i,checkedSummary:s,isIndeterminate:u,handleAllCheckedChange:c,checked:h,allChecked:v,query:m,inputHover:g,checkChangeByUser:y,hasNoMatch:d,inputIcon:p,hasFooter:f,clearQuery:()=>{"circle-close"===p.value&&(l.query="")},t:ak}}});const cD={class:"el-transfer-panel"},dD={class:"el-transfer-panel__header"},pD={key:0,class:"el-transfer-panel__footer"};uD.render=function(e,t,n,l,a,o){const r=dl("el-checkbox"),i=dl("el-input"),s=dl("option-content"),u=dl("el-checkbox-group");return wl(),Sl("div",cD,[Ll("p",dD,[Ll(r,{modelValue:e.allChecked,"onUpdate:modelValue":t[1]||(t[1]=t=>e.allChecked=t),indeterminate:e.isIndeterminate,onChange:e.handleAllCheckedChange},{default:Zt((()=>[Al(c(e.title)+" ",1),Ll("span",null,c(e.checkedSummary),1)])),_:1},8,["modelValue","indeterminate","onChange"])]),Ll("div",{class:["el-transfer-panel__body",e.hasFooter?"is-with-footer":""]},[e.filterable?(wl(),Sl(i,{key:0,modelValue:e.query,"onUpdate:modelValue":t[3]||(t[3]=t=>e.query=t),class:"el-transfer-panel__filter",size:"small",placeholder:e.placeholder,onMouseenter:t[4]||(t[4]=t=>e.inputHover=!0),onMouseleave:t[5]||(t[5]=t=>e.inputHover=!1)},{prefix:Zt((()=>[Ll("i",{class:["el-input__icon","el-icon-"+e.inputIcon],onClick:t[2]||(t[2]=(...t)=>e.clearQuery&&e.clearQuery(...t))},null,2)])),_:1},8,["modelValue","placeholder"])):Pl("v-if",!0),Un(Ll(u,{modelValue:e.checked,"onUpdate:modelValue":t[6]||(t[6]=t=>e.checked=t),class:[{"is-filterable":e.filterable},"el-transfer-panel__list"]},{default:Zt((()=>[(wl(!0),Sl(gl,null,pa(e.filteredData,(t=>(wl(),Sl(r,{key:t[e.keyProp],class:"el-transfer-panel__item",label:t[e.keyProp],disabled:t[e.disabledProp]},{default:Zt((()=>[Ll(s,{option:e.optionRender(t)},null,8,["option"])])),_:2},1032,["label","disabled"])))),128))])),_:1},8,["modelValue","class"]),[[mo,!e.hasNoMatch&&e.data.length>0]]),Un(Ll("p",{class:"el-transfer-panel__empty"},c(e.hasNoMatch?e.t("el.transfer.noMatch"):e.t("el.transfer.noData")),513),[[mo,e.hasNoMatch||0===e.data.length]])],2),e.hasFooter?(wl(),Sl("p",pD,[Ht(e.$slots,"default")])):Pl("v-if",!0)])},uD.__file="packages/transfer/src/transfer-panel.vue";var fD=Qn({name:"ElTransfer",components:{TransferPanel:uD,ElButton:Z_},props:{data:{type:Array,default:()=>[]},titles:{type:Array,default:()=>[]},buttonTexts:{type:Array,default:()=>[]},filterPlaceholder:{type:String,default:""},filterMethod:Function,leftDefaultChecked:{type:Array,default:()=>[]},rightDefaultChecked:{type:Array,default:()=>[]},renderContent:Function,modelValue:{type:Array,default:()=>[]},format:{type:Object,default:()=>({})},filterable:{type:Boolean,default:!1},props:{type:Object,default:()=>({label:"label",key:"key",disabled:"disabled"})},targetOrder:{type:String,default:"original",validator:e=>["original","push","unshift"].includes(e)}},emits:[Nb,"change","left-check-change","right-check-change"],setup(e,{emit:t,slots:n}){const l=zl("elFormItem",{}),a=Ue({leftChecked:[],rightChecked:[]}),{propsKey:o,sourceData:r,targetData:i}=(e=>{const t=ca((()=>e.props.key)),n=ca((()=>e.data.reduce(((e,n)=>(e[n[t.value]]=n)&&e),{}))),l=ca((()=>e.data.filter((n=>!e.modelValue.includes(n[t.value]))))),a=ca((()=>"original"===e.targetOrder?e.data.filter((n=>e.modelValue.includes(n[t.value]))):e.modelValue.reduce(((e,t)=>{const l=n.value[t];return l&&e.push(l),e}),[])));return{propsKey:t,sourceData:l,targetData:a}})(e),{onSourceCheckedChange:s,onTargetCheckedChange:u}=(y=a,b=t,{onSourceCheckedChange:(e,t)=>{y.leftChecked=e,void 0!==t&&b("left-check-change",e,t)},onTargetCheckedChange:(e,t)=>{y.rightChecked=e,void 0!==t&&b("right-check-change",e,t)}}),{addToLeft:c,addToRight:d}=((e,t,n,l)=>{const a=(e,t,n)=>{l(Nb,e),l("change",e,t,n)};return{addToLeft:()=>{const n=e.modelValue.slice();t.rightChecked.forEach((e=>{const t=n.indexOf(e);t>-1&&n.splice(t,1)})),a(n,"left",t.rightChecked)},addToRight:()=>{let l=e.modelValue.slice();const o=e.data.filter((l=>{const a=l[n.value];return t.leftChecked.includes(a)&&!e.modelValue.includes(a)})).map((e=>e[n.value]));l="unshift"===e.targetOrder?o.concat(l):l.concat(o),a(l,"right",t.leftChecked)}}})(e,a,o,t),p=lt(null),f=lt(null),h=ca((()=>2===e.buttonTexts.length)),v=ca((()=>e.titles[0]||ak("el.transfer.titles.0"))),m=ca((()=>e.titles[1]||ak("el.transfer.titles.1"))),g=ca((()=>e.filterPlaceholder||ak("el.transfer.filterPlaceholder")));var y,b;Sn((()=>e.modelValue),(e=>{var t;null===(t=l.formItemMitt)||void 0===t||t.emit("el.form.change",e)}));const _=ca((()=>t=>e.renderContent?e.renderContent(da,t):n.default?n.default({option:t}):da("span",t[e.props.label]||t[e.props.key])));return Object.assign(Object.assign({sourceData:r,targetData:i,onSourceCheckedChange:s,onTargetCheckedChange:u,addToLeft:c,addToRight:d},ct(a)),{hasButtonTexts:h,leftPanelTitle:v,rightPanelTitle:m,panelFilterPlaceholder:g,clearQuery:e=>{"left"===e?p.value.query="":"right"===e&&(f.value.query="")},optionRender:_})}});const hD={class:"el-transfer"},vD={class:"el-transfer__buttons"},mD=Ll("i",{class:"el-icon-arrow-left"},null,-1),gD={key:0},yD={key:0},bD=Ll("i",{class:"el-icon-arrow-right"},null,-1);fD.render=function(e,t,n,l,a,o){const r=dl("transfer-panel"),i=dl("el-button");return wl(),Sl("div",hD,[Ll(r,{ref:"leftPanel",data:e.sourceData,"option-render":e.optionRender,placeholder:e.panelFilterPlaceholder,title:e.leftPanelTitle,filterable:e.filterable,format:e.format,"filter-method":e.filterMethod,"default-checked":e.leftDefaultChecked,props:e.props,onCheckedChange:e.onSourceCheckedChange},{default:Zt((()=>[Ht(e.$slots,"left-footer")])),_:3},8,["data","option-render","placeholder","title","filterable","format","filter-method","default-checked","props","onCheckedChange"]),Ll("div",vD,[Ll(i,{type:"primary",class:["el-transfer__button",e.hasButtonTexts?"is-with-texts":""],disabled:0===e.rightChecked.length,onClick:e.addToLeft},{default:Zt((()=>[mD,void 0!==e.buttonTexts[0]?(wl(),Sl("span",gD,c(e.buttonTexts[0]),1)):Pl("v-if",!0)])),_:1},8,["class","disabled","onClick"]),Ll(i,{type:"primary",class:["el-transfer__button",e.hasButtonTexts?"is-with-texts":""],disabled:0===e.leftChecked.length,onClick:e.addToRight},{default:Zt((()=>[void 0!==e.buttonTexts[1]?(wl(),Sl("span",yD,c(e.buttonTexts[1]),1)):Pl("v-if",!0),bD])),_:1},8,["class","disabled","onClick"])]),Ll(r,{ref:"rightPanel",data:e.targetData,"option-render":e.optionRender,placeholder:e.panelFilterPlaceholder,filterable:e.filterable,format:e.format,"filter-method":e.filterMethod,title:e.rightPanelTitle,"default-checked":e.rightDefaultChecked,props:e.props,onCheckedChange:e.onTargetCheckedChange},{default:Zt((()=>[Ht(e.$slots,"right-footer")])),_:3},8,["data","option-render","placeholder","filterable","format","filter-method","title","default-checked","props","onCheckedChange"])])},fD.__file="packages/transfer/src/index.vue",fD.install=e=>{e.component(fD.name,fD)};const _D=fD,kD="$treeNodeId",xD=function(e,t){t&&!t[kD]&&Object.defineProperty(t,kD,{value:e.id,enumerable:!1,configurable:!1,writable:!1})},wD=function(e,t){return e?t[e]:t[kD]},CD=e=>{let t=!0,n=!0,l=!0;for(let a=0,o=e.length;a<o;a++){const o=e[a];(!0!==o.checked||o.indeterminate)&&(t=!1,o.disabled||(l=!1)),(!1!==o.checked||o.indeterminate)&&(n=!1)}return{all:t,none:n,allWithoutDisable:l,half:!t&&!n}},SD=function(e){if(0===e.childNodes.length)return;const{all:t,none:n,half:l}=CD(e.childNodes);t?(e.checked=!0,e.indeterminate=!1):l?(e.checked=!1,e.indeterminate=!0):n&&(e.checked=!1,e.indeterminate=!1);const a=e.parent;a&&0!==a.level&&(e.store.checkStrictly||SD(a))},ED=function(e,t){const n=e.store.props,l=e.data||{},a=n[t];if("function"==typeof a)return a(l,e);if("string"==typeof a)return l[a];if(void 0===a){const e=l[t];return void 0===e?"":e}};let MD=0;class OD{constructor(e){this.id=MD++,this.text=null,this.checked=!1,this.indeterminate=!1,this.data=null,this.expanded=!1,this.parent=null,this.visible=!0,this.isCurrent=!1,this.canFocus=!1;for(const t in e)uy(e,t)&&(this[t]=e[t]);this.level=0,this.loaded=!1,this.childNodes=[],this.loading=!1,this.parent&&(this.level=this.parent.level+1)}initialize(){const e=this.store;if(!e)throw new Error("[Node]store is required!");e.registerNode(this);const t=e.props;if(t&&void 0!==t.isLeaf){const e=ED(this,"isLeaf");"boolean"==typeof e&&(this.isLeafByUser=e)}if(!0!==e.lazy&&this.data?(this.setData(this.data),e.defaultExpandAll&&(this.expanded=!0,this.canFocus=!0)):this.level>0&&e.lazy&&e.defaultExpandAll&&this.expand(),Array.isArray(this.data)||xD(this,this.data),!this.data)return;const n=e.defaultExpandedKeys,l=e.key;l&&n&&-1!==n.indexOf(this.key)&&this.expand(null,e.autoExpandParent),l&&void 0!==e.currentNodeKey&&this.key===e.currentNodeKey&&(e.currentNode=this,e.currentNode.isCurrent=!0),e.lazy&&e._initDefaultCheckedNode(this),this.updateLeafState(),!this.parent||1!==this.level&&!0!==this.parent.expanded||(this.canFocus=!0)}setData(e){let t;Array.isArray(e)||xD(this,e),this.data=e,this.childNodes=[],t=0===this.level&&this.data instanceof Array?this.data:ED(this,"children")||[];for(let n=0,l=t.length;n<l;n++)this.insertChild({data:t[n]})}get label(){return ED(this,"label")}get key(){const e=this.store.key;return this.data?this.data[e]:null}get disabled(){return ED(this,"disabled")}get nextSibling(){const e=this.parent;if(e){const t=e.childNodes.indexOf(this);if(t>-1)return e.childNodes[t+1]}return null}get previousSibling(){const e=this.parent;if(e){const t=e.childNodes.indexOf(this);if(t>-1)return t>0?e.childNodes[t-1]:null}return null}contains(e,t=!0){return(this.childNodes||[]).some((n=>n===e||t&&n.contains(e)))}remove(){const e=this.parent;e&&e.removeChild(this)}insertChild(e,t,n){if(!e)throw new Error("insertChild error: child is required.");if(!(e instanceof OD)){if(!n){const n=this.getChildren(!0);-1===n.indexOf(e.data)&&(void 0===t||t<0?n.push(e.data):n.splice(t,0,e.data))}Object.assign(e,{parent:this,store:this.store}),(e=Ue(new OD(e)))instanceof OD&&e.initialize()}e.level=this.level+1,void 0===t||t<0?this.childNodes.push(e):this.childNodes.splice(t,0,e),this.updateLeafState()}insertBefore(e,t){let n;t&&(n=this.childNodes.indexOf(t)),this.insertChild(e,n)}insertAfter(e,t){let n;t&&(n=this.childNodes.indexOf(t),-1!==n&&(n+=1)),this.insertChild(e,n)}removeChild(e){const t=this.getChildren()||[],n=t.indexOf(e.data);n>-1&&t.splice(n,1);const l=this.childNodes.indexOf(e);l>-1&&(this.store&&this.store.deregisterNode(e),e.parent=null,this.childNodes.splice(l,1)),this.updateLeafState()}removeChildByData(e){let t=null;for(let n=0;n<this.childNodes.length;n++)if(this.childNodes[n].data===e){t=this.childNodes[n];break}t&&this.removeChild(t)}expand(e,t){const n=()=>{if(t){let e=this.parent;for(;e.level>0;)e.expanded=!0,e=e.parent}this.expanded=!0,e&&e(),this.childNodes.forEach((e=>{e.canFocus=!0}))};this.shouldLoadData()?this.loadData((e=>{Array.isArray(e)&&(this.checked?this.setChecked(!0,!0):this.store.checkStrictly||SD(this),n())})):n()}doCreateChildren(e,t={}){e.forEach((e=>{this.insertChild(Object.assign({data:e},t),void 0,!0)}))}collapse(){this.expanded=!1,this.childNodes.forEach((e=>{e.canFocus=!1}))}shouldLoadData(){return!0===this.store.lazy&&this.store.load&&!this.loaded}updateLeafState(){if(!0===this.store.lazy&&!0!==this.loaded&&void 0!==this.isLeafByUser)return void(this.isLeaf=this.isLeafByUser);const e=this.childNodes;!this.store.lazy||!0===this.store.lazy&&!0===this.loaded?this.isLeaf=!e||0===e.length:this.isLeaf=!1}setChecked(e,t,n,l){if(this.indeterminate="half"===e,this.checked=!0===e,this.store.checkStrictly)return;if(!this.shouldLoadData()||this.store.checkDescendants){const{all:n,allWithoutDisable:a}=CD(this.childNodes);this.isLeaf||n||!a||(this.checked=!1,e=!1);const o=()=>{if(t){const n=this.childNodes;for(let r=0,i=n.length;r<i;r++){const a=n[r];l=l||!1!==e;const o=a.disabled?a.checked:l;a.setChecked(o,t,!0,l)}const{half:a,all:o}=CD(n);o||(this.checked=o,this.indeterminate=a)}};if(this.shouldLoadData())return void this.loadData((()=>{o(),SD(this)}),{checked:!1!==e});o()}const a=this.parent;a&&0!==a.level&&(n||SD(a))}getChildren(e=!1){if(0===this.level)return this.data;const t=this.data;if(!t)return null;const n=this.store.props;let l="children";return n&&(l=n.children||"children"),void 0===t[l]&&(t[l]=null),e&&!t[l]&&(t[l]=[]),t[l]}updateChildren(){const e=this.getChildren()||[],t=this.childNodes.map((e=>e.data)),n={},l=[];e.forEach(((e,a)=>{const o=e[kD];o&&t.findIndex((e=>e[kD]===o))>=0?n[o]={index:a,data:e}:l.push({index:a,data:e})})),this.store.lazy||t.forEach((e=>{n[e[kD]]||this.removeChildByData(e)})),l.forEach((({index:e,data:t})=>{this.insertChild({data:t},e)})),this.updateLeafState()}loadData(e,t={}){if(!0!==this.store.lazy||!this.store.load||this.loaded||this.loading&&!Object.keys(t).length)e&&e.call(this);else{this.loading=!0;const n=n=>{this.loaded=!0,this.loading=!1,this.childNodes=[],this.doCreateChildren(n,t),this.updateLeafState(),e&&e.call(this,n)};this.store.load(this,n)}}}class TD{constructor(e){this.currentNode=null,this.currentNodeKey=null;for(const t in e)uy(e,t)&&(this[t]=e[t]);this.nodesMap={}}initialize(){this.root=new OD({data:this.data,store:this}),this.root.initialize(),this.lazy&&this.load?(0,this.load)(this.root,(e=>{this.root.doCreateChildren(e),this._initDefaultCheckedNodes()})):this._initDefaultCheckedNodes()}filter(e){const t=this.filterNodeMethod,n=this.lazy,l=function(a){const o=a.root?a.root.childNodes:a.childNodes;if(o.forEach((n=>{n.visible=t.call(n,e,n.data,n),l(n)})),!a.visible&&o.length){let e=!0;e=!o.some((e=>e.visible)),a.root?a.root.visible=!1===e:a.visible=!1===e}e&&(!a.visible||a.isLeaf||n||a.expand())};l(this)}setData(e){e!==this.root.data?(this.root.setData(e),this._initDefaultCheckedNodes()):this.root.updateChildren()}getNode(e){if(e instanceof OD)return e;const t="object"!=typeof e?e:wD(this.key,e);return this.nodesMap[t]||null}insertBefore(e,t){const n=this.getNode(t);n.parent.insertBefore({data:e},n)}insertAfter(e,t){const n=this.getNode(t);n.parent.insertAfter({data:e},n)}remove(e){const t=this.getNode(e);t&&t.parent&&(t===this.currentNode&&(this.currentNode=null),t.parent.removeChild(t))}append(e,t){const n=t?this.getNode(t):this.root;n&&n.insertChild({data:e})}_initDefaultCheckedNodes(){const e=this.defaultCheckedKeys||[],t=this.nodesMap;e.forEach((e=>{const n=t[e];n&&n.setChecked(!0,!this.checkStrictly)}))}_initDefaultCheckedNode(e){-1!==(this.defaultCheckedKeys||[]).indexOf(e.key)&&e.setChecked(!0,!this.checkStrictly)}setDefaultCheckedKey(e){e!==this.defaultCheckedKeys&&(this.defaultCheckedKeys=e,this._initDefaultCheckedNodes())}registerNode(e){const t=this.key;e&&e.data&&(t?void 0!==e.key&&(this.nodesMap[e.key]=e):this.nodesMap[e.id]=e)}deregisterNode(e){this.key&&e&&e.data&&(e.childNodes.forEach((e=>{this.deregisterNode(e)})),delete this.nodesMap[e.key])}getCheckedNodes(e=!1,t=!1){const n=[],l=function(a){(a.root?a.root.childNodes:a.childNodes).forEach((a=>{(a.checked||t&&a.indeterminate)&&(!e||e&&a.isLeaf)&&n.push(a.data),l(a)}))};return l(this),n}getCheckedKeys(e=!1){return this.getCheckedNodes(e).map((e=>(e||{})[this.key]))}getHalfCheckedNodes(){const e=[],t=function(n){(n.root?n.root.childNodes:n.childNodes).forEach((n=>{n.indeterminate&&e.push(n.data),t(n)}))};return t(this),e}getHalfCheckedKeys(){return this.getHalfCheckedNodes().map((e=>(e||{})[this.key]))}_getAllNodes(){const e=[],t=this.nodesMap;for(const n in t)uy(t,n)&&e.push(t[n]);return e}updateChildren(e,t){const n=this.nodesMap[e];if(!n)return;const l=n.childNodes;for(let a=l.length-1;a>=0;a--){const e=l[a];this.remove(e.data)}for(let a=0,o=t.length;a<o;a++){const e=t[a];this.append(e,n.data)}}_setCheckedKeys(e,t=!1,n){const l=this._getAllNodes().sort(((e,t)=>t.level-e.level)),a=Object.create(null),o=Object.keys(n);l.forEach((e=>e.setChecked(!1,!1)));for(let r=0,i=l.length;r<i;r++){const n=l[r],i=n.data[e].toString();if(!(o.indexOf(i)>-1)){n.checked&&!a[i]&&n.setChecked(!1,!1);continue}let s=n.parent;for(;s&&s.level>0;)a[s.data[e]]=!0,s=s.parent;if(n.isLeaf||this.checkStrictly)n.setChecked(!0,!1);else if(n.setChecked(!0,!0),t){n.setChecked(!1,!1);const e=function(t){t.childNodes.forEach((t=>{t.isLeaf||t.setChecked(!1,!1),e(t)}))};e(n)}}}setCheckedNodes(e,t=!1){const n=this.key,l={};e.forEach((e=>{l[(e||{})[n]]=!0})),this._setCheckedKeys(n,t,l)}setCheckedKeys(e,t=!1){this.defaultCheckedKeys=e;const n=this.key,l={};e.forEach((e=>{l[e]=!0})),this._setCheckedKeys(n,t,l)}setDefaultExpandedKeys(e){e=e||[],this.defaultExpandedKeys=e,e.forEach((e=>{const t=this.getNode(e);t&&t.expand(null,this.autoExpandParent)}))}setChecked(e,t,n){const l=this.getNode(e);l&&l.setChecked(!!t,n)}getCurrentNode(){return this.currentNode}setCurrentNode(e){const t=this.currentNode;t&&(t.isCurrent=!1),this.currentNode=e,this.currentNode.isCurrent=!0}setUserCurrentNode(e,t=!0){const n=e[this.key],l=this.nodesMap[n];this.setCurrentNode(l),t&&this.currentNode.level>1&&this.currentNode.parent.expand(null,!0)}setCurrentNodeKey(e,t=!0){if(null==e)return this.currentNode&&(this.currentNode.isCurrent=!1),void(this.currentNode=null);const n=this.getNode(e);n&&(this.setCurrentNode(n),t&&this.currentNode.level>1&&this.currentNode.parent.expand(null,!0))}}var DD=Qn({name:"ElTreeNodeContent",props:{node:{type:Object,required:!0},renderContent:Function},setup(e){const t=zl("NodeInstance"),n=zl("RootTree");return()=>{const l=e.node,{data:a,store:o}=l;return e.renderContent?e.renderContent(da,{_self:t,node:l,data:a,store:o}):n.ctx.slots.default?n.ctx.slots.default({node:l,data:a}):da("span",{class:"el-tree-node__label"},[l.label])}}});function LD(e){const t=zl("TreeNodeMap",null),n={treeNodeExpand:t=>{e.node!==t&&e.node.collapse()},children:[]};return t&&t.children.push(n),$l("TreeNodeMap",n),{broadcastExpanded:t=>{if(e.accordion)for(const e of n.children)e.treeNodeExpand(t)}}}DD.__file="packages/tree/src/tree-node-content.vue";var ND=Qn({name:"ElTreeNode",components:{ElCollapseTransition:aw,ElCheckbox:dx,NodeContent:DD},props:{node:{type:OD,default:()=>({})},props:{type:Object,default:()=>({})},renderContent:Function,renderAfterExpand:Boolean,showCheckbox:{type:Boolean,default:!1}},emits:["node-expand"],setup(e,t){const{broadcastExpanded:n}=LD(e),l=zl("RootTree"),a=lt(!1),o=lt(!1),r=lt(null),i=lt(null),s=lt(null),{emitter:u}={emitter:zl("DragNodeEmitter")},c=na();$l("NodeInstance",c),l||console.warn("Can not find node's tree."),e.node.expanded&&(a.value=!0,o.value=!0);const d=l.props.children||"children";Sn((()=>{const t=e.node.data[d];return t&&[...t]}),(()=>{e.node.updateChildren()})),Sn((()=>e.node.indeterminate),(t=>{p(e.node.checked,t)})),Sn((()=>e.node.checked),(t=>{p(t,e.node.indeterminate)})),Sn((()=>e.node.expanded),(e=>{Dt((()=>a.value=e)),e&&(o.value=!0)}));const p=(t,n)=>{r.value===t&&i.value===n||l.ctx.emit("check-change",e.node.data,t,n),r.value=t,i.value=n},f=()=>{e.node.isLeaf||(a.value?(l.ctx.emit("node-collapse",e.node.data,e.node,c),e.node.collapse()):(e.node.expand(),t.emit("node-expand",e.node.data,e.node,c)))},h=(t,n)=>{e.node.setChecked(n.target.checked,!l.props.checkStrictly),Dt((()=>{const t=l.store.value;l.ctx.emit("check",e.node.data,{checkedNodes:t.getCheckedNodes(),checkedKeys:t.getCheckedKeys(),halfCheckedNodes:t.getHalfCheckedNodes(),halfCheckedKeys:t.getHalfCheckedKeys()})}))};return{node$:s,tree:l,expanded:a,childNodeRendered:o,oldChecked:r,oldIndeterminate:i,emitter:u,parent:parent,getNodeKey:e=>wD(l.props.nodeKey,e.data),handleSelectChange:p,handleClick:()=>{const t=l.store.value;t.setCurrentNode(e.node),l.ctx.emit("current-change",t.currentNode?t.currentNode.data:null,t.currentNode),l.currentNode.value=e.node,l.props.expandOnClickNode&&f(),l.props.checkOnClickNode&&!e.node.disabled&&h(0,{target:{checked:!e.node.checked}}),l.ctx.emit("node-click",e.node.data,e.node,c)},handleContextMenu:t=>{l.instance.vnode.props.onNodeContextmenu&&(t.stopPropagation(),t.preventDefault()),l.ctx.emit("node-contextmenu",t,e.node.data,e.node,c)},handleExpandIconClick:f,handleCheckChange:h,handleChildNodeExpand:(e,t,a)=>{n(t),l.ctx.emit("node-expand",e,t,a)},handleDragStart:t=>{l.props.draggable&&u.emit("tree-node-drag-start",{event:t,treeNode:e})},handleDragOver:t=>{l.props.draggable&&(u.emit("tree-node-drag-over",{event:t,treeNode:{$el:s.value,node:e.node}}),t.preventDefault())},handleDrop:e=>{e.preventDefault()},handleDragEnd:e=>{l.props.draggable&&u.emit("tree-node-drag-end",e)}}}});const AD={key:1,class:"el-tree-node__loading-icon el-icon-loading"};ND.render=function(e,t,n,l,a,o){const r=dl("el-checkbox"),i=dl("node-content"),s=dl("el-tree-node"),u=dl("el-collapse-transition");return Un((wl(),Sl("div",{ref:"node$",class:["el-tree-node",{"is-expanded":e.expanded,"is-current":e.node.isCurrent,"is-hidden":!e.node.visible,"is-focusable":!e.node.disabled,"is-checked":!e.node.disabled&&e.node.checked}],role:"treeitem",tabindex:"-1","aria-expanded":e.expanded,"aria-disabled":e.node.disabled,"aria-checked":e.node.checked,draggable:e.tree.props.draggable,"data-key":e.getNodeKey(e.node),onClick:t[3]||(t[3]=fo(((...t)=>e.handleClick&&e.handleClick(...t)),["stop"])),onContextmenu:t[4]||(t[4]=(...t)=>e.handleContextMenu&&e.handleContextMenu(...t)),onDragstart:t[5]||(t[5]=fo(((...t)=>e.handleDragStart&&e.handleDragStart(...t)),["stop"])),onDragover:t[6]||(t[6]=fo(((...t)=>e.handleDragOver&&e.handleDragOver(...t)),["stop"])),onDragend:t[7]||(t[7]=fo(((...t)=>e.handleDragEnd&&e.handleDragEnd(...t)),["stop"])),onDrop:t[8]||(t[8]=fo(((...t)=>e.handleDrop&&e.handleDrop(...t)),["stop"]))},[Ll("div",{class:"el-tree-node__content",style:{"padding-left":(e.node.level-1)*e.tree.props.indent+"px"}},[Ll("span",{class:[{"is-leaf":e.node.isLeaf,expanded:!e.node.isLeaf&&e.expanded},"el-tree-node__expand-icon",e.tree.props.iconClass?e.tree.props.iconClass:"el-icon-caret-right"],onClick:t[1]||(t[1]=fo(((...t)=>e.handleExpandIconClick&&e.handleExpandIconClick(...t)),["stop"]))},null,2),e.showCheckbox?(wl(),Sl(r,{key:0,"model-value":e.node.checked,indeterminate:e.node.indeterminate,disabled:!!e.node.disabled,onClick:t[2]||(t[2]=fo((()=>{}),["stop"])),onChange:e.handleCheckChange},null,8,["model-value","indeterminate","disabled","onChange"])):Pl("v-if",!0),e.node.loading?(wl(),Sl("span",AD)):Pl("v-if",!0),Ll(i,{node:e.node,"render-content":e.renderContent},null,8,["node","render-content"])],4),Ll(u,null,{default:Zt((()=>[!e.renderAfterExpand||e.childNodeRendered?Un((wl(),Sl("div",{key:0,class:"el-tree-node__children",role:"group","aria-expanded":e.expanded},[(wl(!0),Sl(gl,null,pa(e.node.childNodes,(t=>(wl(),Sl(s,{key:e.getNodeKey(t),"render-content":e.renderContent,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,node:t,onNodeExpand:e.handleChildNodeExpand},null,8,["render-content","render-after-expand","show-checkbox","node","onNodeExpand"])))),128))],8,["aria-expanded"])),[[mo,e.expanded]]):Pl("v-if",!0)])),_:1})],42,["aria-expanded","aria-disabled","aria-checked","draggable","data-key"])),[[mo,e.node.visible]])},ND.__file="packages/tree/src/tree-node.vue";var PD=Qn({name:"ElTree",components:{ElTreeNode:ND},props:{data:{type:Array},emptyText:{type:String,default:()=>ak("el.tree.emptyText")},renderAfterExpand:{type:Boolean,default:!0},nodeKey:String,checkStrictly:Boolean,defaultExpandAll:Boolean,expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:Boolean,checkDescendants:{type:Boolean,default:!1},autoExpandParent:{type:Boolean,default:!0},defaultCheckedKeys:Array,defaultExpandedKeys:Array,currentNodeKey:[String,Number],renderContent:Function,showCheckbox:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},allowDrag:Function,allowDrop:Function,props:{type:Object,default:()=>({children:"children",label:"label",disabled:"disabled"})},lazy:{type:Boolean,default:!1},highlightCurrent:Boolean,load:Function,filterNodeMethod:Function,accordion:Boolean,indent:{type:Number,default:18},iconClass:String},emits:["check-change","current-change","node-click","node-contextmenu","node-collapse","node-expand","check","node-drag-start","node-drag-end","node-drop","node-drag-leave","node-drag-enter","node-drag-over"],setup(e,t){const n=lt(new TD({key:e.nodeKey,data:e.data,lazy:e.lazy,props:e.props,load:e.load,currentNodeKey:e.currentNodeKey,checkStrictly:e.checkStrictly,checkDescendants:e.checkDescendants,defaultCheckedKeys:e.defaultCheckedKeys,defaultExpandedKeys:e.defaultExpandedKeys,autoExpandParent:e.autoExpandParent,defaultExpandAll:e.defaultExpandAll,filterNodeMethod:e.filterNodeMethod}));n.value.initialize();const l=lt(n.value.root),a=lt(null),o=lt(null),r=lt(null),{broadcastExpanded:i}=LD(e),{dragState:s}=function({props:e,ctx:t,el$:n,dropIndicator$:l,store:a}){const o=ku();$l("DragNodeEmitter",o);const r=lt({showDropIndicator:!1,draggingNode:null,dropNode:null,allowDrop:!0,dropType:null});return o.on("tree-node-drag-start",(({event:n,treeNode:l})=>{if(console.log(n,l),"function"==typeof e.allowDrag&&!e.allowDrag(l.node))return n.preventDefault(),!1;n.dataTransfer.effectAllowed="move";try{n.dataTransfer.setData("text/plain","")}catch(a){}r.value.draggingNode=l,t.emit("node-drag-start",l.node,n)})),o.on("tree-node-drag-over",(({event:a,treeNode:o})=>{const i=o,s=r.value.dropNode;s&&s!==i&&Wy(s.$el,"is-drop-inner");const u=r.value.draggingNode;if(!u||!i)return;let c=!0,d=!0,p=!0,f=!0;"function"==typeof e.allowDrop&&(c=e.allowDrop(u.node,i.node,"prev"),f=d=e.allowDrop(u.node,i.node,"inner"),p=e.allowDrop(u.node,i.node,"next")),a.dataTransfer.dropEffect=d?"move":"none",(c||d||p)&&s!==i&&(s&&t.emit("node-drag-leave",u.node,s.node,a),t.emit("node-drag-enter",u.node,i.node,a)),(c||d||p)&&(r.value.dropNode=i),i.node.nextSibling===u.node&&(p=!1),i.node.previousSibling===u.node&&(c=!1),i.node.contains(u.node,!1)&&(d=!1),(u.node===i.node||u.node.contains(i.node))&&(c=!1,d=!1,p=!1);const h=i.$el.getBoundingClientRect(),v=n.value.getBoundingClientRect();let m;const g=c?d?.25:p?.45:1:-1,y=p?d?.75:c?.55:0:1;let b=-9999;const _=a.clientY-h.top;m=_<h.height*g?"before":_>h.height*y?"after":d?"inner":"none";const k=i.$el.querySelector(".el-tree-node__expand-icon").getBoundingClientRect(),x=l.value;"before"===m?b=k.top-v.top:"after"===m&&(b=k.bottom-v.top),x.style.top=b+"px",x.style.left=k.right-v.left+"px","inner"===m?Hy(i.$el,"is-drop-inner"):Wy(i.$el,"is-drop-inner"),r.value.showDropIndicator="before"===m||"after"===m,r.value.allowDrop=r.value.showDropIndicator||f,r.value.dropType=m,t.emit("node-drag-over",u.node,i.node,a)})),o.on("tree-node-drag-end",(e=>{const{draggingNode:n,dropType:l,dropNode:o}=r.value;if(e.preventDefault(),e.dataTransfer.dropEffect="move",n&&o){const r={data:n.node.data};"none"!==l&&n.node.remove(),"before"===l?o.node.parent.insertBefore(r,o.node):"after"===l?o.node.parent.insertAfter(r,o.node):"inner"===l&&o.node.insertChild(r),"none"!==l&&a.value.registerNode(r),Wy(o.$el,"is-drop-inner"),t.emit("node-drag-end",n.node,o.node,l,e),"none"!==l&&t.emit("node-drop",n.node,o.node,l,e)}n&&!o&&t.emit("node-drag-end",n.node,null,l,e),r.value.showDropIndicator=!1,r.value.draggingNode=null,r.value.dropNode=null,r.value.allowDrop=!0})),{dragState:r}}({props:e,ctx:t,el$:o,dropIndicator$:r,store:n});!function({el$:e},t){const n=lt([]),l=lt([]);mn((()=>{o(),zy(e.value,"keydown",a)})),bn((()=>{jy(e.value,"keydown",a)})),yn((()=>{n.value=Array.from(e.value.querySelectorAll("[role=treeitem]")),l.value=Array.from(e.value.querySelectorAll("input[type=checkbox]"))})),Sn(l,(e=>{e.forEach((e=>{e.setAttribute("tabindex","-1")}))}));const a=l=>{const a=l.target;if(-1===a.className.indexOf("el-tree-node"))return;const o=l.code;n.value=Array.from(e.value.querySelectorAll(".is-focusable[role=treeitem]"));const r=n.value.indexOf(a);let i;if([vb.up,vb.down].indexOf(o)>-1){if(l.preventDefault(),o===vb.up){i=-1===r?0:0!==r?r-1:n.value.length-1;const e=i;for(;!t.value.getNode(n.value[i].dataset.key).canFocus;){if(i--,i===e){i=-1;break}i<0&&(i=n.value.length-1)}}else{i=-1===r?0:r<n.value.length-1?r+1:0;const e=i;for(;!t.value.getNode(n.value[i].dataset.key).canFocus;){if(i++,i===e){i=-1;break}i>=n.value.length&&(i=0)}}-1!==i&&n.value[i].focus()}[vb.left,vb.right].indexOf(o)>-1&&(l.preventDefault(),a.click());const s=a.querySelector('[type="checkbox"]');[vb.enter,vb.space].indexOf(o)>-1&&s&&(l.preventDefault(),s.click())},o=()=>{var t;n.value=Array.from(e.value.querySelectorAll(".is-focusable[role=treeitem]")),l.value=Array.from(e.value.querySelectorAll("input[type=checkbox]"));const a=e.value.querySelectorAll(".is-checked[role=treeitem]");a.length?a[0].setAttribute("tabindex","0"):null===(t=n.value[0])||void 0===t||t.setAttribute("tabindex","0")}}({el$:o},n);const u=ca((()=>{const{childNodes:e}=l.value;return!e||0===e.length||e.every((({visible:e})=>!e))}));Sn((()=>e.defaultCheckedKeys),(e=>{n.value.setDefaultCheckedKey(e)})),Sn((()=>e.defaultExpandedKeys),(e=>{n.value.defaultExpandedKeys=e,n.value.setDefaultExpandedKeys(e)})),Sn((()=>e.data),(e=>{n.value.setData(e)}),{deep:!0}),Sn((()=>e.checkStrictly),(e=>{n.value.checkStrictly=e}));const c=()=>{const e=n.value.getCurrentNode();return e?e.data:null};return $l("RootTree",{ctx:t,props:e,store:n,root:l,currentNode:a,instance:na()}),{store:n,root:l,currentNode:a,dragState:s,el$:o,dropIndicator$:r,isEmpty:u,filter:t=>{if(!e.filterNodeMethod)throw new Error("[Tree] filterNodeMethod is required when filter");n.value.filter(t)},getNodeKey:t=>wD(e.nodeKey,t.data),getNodePath:t=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in getNodePath");const a=n.value.getNode(t);if(!a)return[];const o=[a.data];let r=a.parent;for(;r&&r!==l.value;)o.push(r.data),r=r.parent;return o.reverse()},getCheckedNodes:(e,t)=>n.value.getCheckedNodes(e,t),getCheckedKeys:e=>n.value.getCheckedKeys(e),getCurrentNode:c,getCurrentKey:()=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in getCurrentKey");const t=c();return t?t[e.nodeKey]:null},setCheckedNodes:(t,l)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedNodes");n.value.setCheckedNodes(t,l)},setCheckedKeys:(t,l)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedKeys");n.value.setCheckedKeys(t,l)},setChecked:(e,t,l)=>{n.value.setChecked(e,t,l)},getHalfCheckedNodes:()=>n.value.getHalfCheckedNodes(),getHalfCheckedKeys:()=>n.value.getHalfCheckedKeys(),setCurrentNode:(t,l=!0)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentNode");n.value.setUserCurrentNode(t,l)},setCurrentKey:(t,l=!0)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentKey");n.value.setCurrentNodeKey(t,l)},getNode:e=>n.value.getNode(e),remove:e=>{n.value.remove(e)},append:(e,t)=>{n.value.append(e,t)},insertBefore:(e,t)=>{n.value.insertBefore(e,t)},insertAfter:(e,t)=>{n.value.insertAfter(e,t)},handleNodeExpand:(e,n,l)=>{i(n),t.emit("node-expand",e,n,l)},updateKeyChildren:(t,l)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in updateKeyChild");n.value.updateChildren(t,l)}}}});const ID={key:0,class:"el-tree__empty-block"},FD={class:"el-tree__empty-text"},VD={ref:"dropIndicator$",class:"el-tree__drop-indicator"};PD.render=function(e,t,n,l,a,o){const r=dl("el-tree-node");return wl(),Sl("div",{ref:"el$",class:["el-tree",{"el-tree--highlight-current":e.highlightCurrent,"is-dragging":!!e.dragState.draggingNode,"is-drop-not-allow":!e.dragState.allowDrop,"is-drop-inner":"inner"===e.dragState.dropType}],role:"tree"},[(wl(!0),Sl(gl,null,pa(e.root.childNodes,(t=>(wl(),Sl(r,{key:e.getNodeKey(t),node:t,props:e.props,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,"render-content":e.renderContent,onNodeExpand:e.handleNodeExpand},null,8,["node","props","render-after-expand","show-checkbox","render-content","onNodeExpand"])))),128)),e.isEmpty?(wl(),Sl("div",ID,[Ll("span",FD,c(e.emptyText),1)])):Pl("v-if",!0),Un(Ll("div",VD,null,512),[[mo,e.dragState.showDropIndicator]])],2)},PD.__file="packages/tree/src/tree.vue",PD.install=e=>{e.component(PD.name,PD)};const BD=PD;function $D(e,t,n){let l;l=n.response?""+(n.response.error||n.response):n.responseText?""+n.responseText:`fail to post ${e} ${n.status}`;const a=new Error(l);return a.status=n.status,a.method="post",a.url=e,a}function zD(e){if("undefined"==typeof XMLHttpRequest)return;const t=new XMLHttpRequest,n=e.action;t.upload&&(t.upload.onprogress=function(t){t.total>0&&(t.percent=t.loaded/t.total*100),e.onProgress(t)});const l=new FormData;e.data&&Object.keys(e.data).forEach((t=>{l.append(t,e.data[t])})),l.append(e.filename,e.file,e.file.name),t.onerror=function(){e.onError($D(n,0,t))},t.onload=function(){if(t.status<200||t.status>=300)return e.onError($D(n,0,t));e.onSuccess(function(e){const t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch(n){return t}}(t))},t.open("post",n,!0),e.withCredentials&&"withCredentials"in t&&(t.withCredentials=!0);const a=e.headers||{};for(const o in a)uy(a,o)&&null!==a[o]&&t.setRequestHeader(o,a[o]);return t.send(l),t}var jD=Qn({name:"ElUploadList",components:{ElProgress:mO},props:{files:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1},handlePreview:{type:Function,default:()=>ry},listType:{type:String,default:"text"}},emits:["remove"],setup:(e,{emit:t})=>({focusing:lt(!1),parsePercentage:e=>parseInt(e,10),handleClick:t=>{e.handlePreview(t)},handleRemove:(e,n)=>{t("remove",n)},onFileClicked:e=>{e.target.focus()},t:ak})});const RD=Ll("i",{class:"el-icon-document"},null,-1),HD={class:"el-upload-list__item-status-label"},WD={key:2,class:"el-icon-close-tip"},YD={key:4,class:"el-upload-list__item-actions"},qD=Ll("i",{class:"el-icon-zoom-in"},null,-1),KD=Ll("i",{class:"el-icon-delete"},null,-1);jD.render=function(e,t,n,l,a,o){const r=dl("el-progress");return wl(),Sl(Za,{tag:"ul",class:["el-upload-list","el-upload-list--"+e.listType,{"is-disabled":e.disabled}],name:"el-list"},{default:Zt((()=>[(wl(!0),Sl(gl,null,pa(e.files,(n=>(wl(),Sl("li",{key:n,class:["el-upload-list__item","is-"+n.status,e.focusing?"focusing":""],tabindex:"0",onKeydown:vo((t=>!e.disabled&&e.handleRemove(t,n)),["delete"]),onFocus:t[1]||(t[1]=t=>e.focusing=!0),onBlur:t[2]||(t[2]=t=>e.focusing=!1),onClick:t[3]||(t[3]=(...t)=>e.onFileClicked&&e.onFileClicked(...t))},[Ht(e.$slots,"default",{file:n},(()=>["uploading"!==n.status&&["picture-card","picture"].includes(e.listType)?(wl(),Sl("img",{key:0,class:"el-upload-list__item-thumbnail",src:n.url,alt:""},null,8,["src"])):Pl("v-if",!0),Ll("a",{class:"el-upload-list__item-name",onClick:t=>e.handleClick(n)},[RD,Al(c(n.name),1)],8,["onClick"]),Ll("label",HD,[Ll("i",{class:{"el-icon-upload-success":!0,"el-icon-circle-check":"text"===e.listType,"el-icon-check":["picture-card","picture"].includes(e.listType)}},null,2)]),e.disabled?Pl("v-if",!0):(wl(),Sl("i",{key:1,class:"el-icon-close",onClick:t=>e.handleRemove(t,n)},null,8,["onClick"])),Pl(" Due to close btn only appears when li gets focused disappears after li gets blurred, thus keyboard navigation can never reach close btn"),Pl(" This is a bug which needs to be fixed "),Pl(" TODO: Fix the incorrect navigation interaction "),e.disabled?Pl("v-if",!0):(wl(),Sl("i",WD,c(e.t("el.upload.deleteTip")),1)),"uploading"===n.status?(wl(),Sl(r,{key:3,type:"picture-card"===e.listType?"circle":"line","stroke-width":"picture-card"===e.listType?6:2,percentage:e.parsePercentage(n.percentage)},null,8,["type","stroke-width","percentage"])):Pl("v-if",!0),"picture-card"===e.listType?(wl(),Sl("span",YD,[Ll("span",{class:"el-upload-list__item-preview",onClick:t=>e.handlePreview(n)},[qD],8,["onClick"]),e.disabled?Pl("v-if",!0):(wl(),Sl("span",{key:0,class:"el-upload-list__item-delete",onClick:t=>e.handleRemove(t,n)},[KD],8,["onClick"]))])):Pl("v-if",!0)]))],42,["onKeydown"])))),128))])),_:3},8,["class"])},jD.__file="packages/upload/src/upload-list.vue";var UD=Qn({name:"ElUploadDrag",props:{disabled:{type:Boolean,default:!1}},emits:["file"],setup(e,{emit:t}){const n=zl("uploader",{}),l=lt(!1);return{dragover:l,onDrop:function(a){if(e.disabled||!n)return;const o=n.accept;l.value=!1,t("file",o?Array.from(a.dataTransfer.files).filter((e=>{const{type:t,name:n}=e,l=n.indexOf(".")>-1?"."+n.split(".").pop():"",a=t.replace(/\/.*$/,"");return o.split(",").map((e=>e.trim())).filter((e=>e)).some((e=>e.startsWith(".")?l===e:/\/\*$/.test(e)?a===e.replace(/\/\*$/,""):!!/^[^\/]+\/[^\/]+$/.test(e)&&t===e))})):a.dataTransfer.files)},onDragover:function(){e.disabled||(l.value=!0)}}}});UD.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:{"el-upload-dragger":!0,"is-dragover":e.dragover},onDrop:t[1]||(t[1]=fo(((...t)=>e.onDrop&&e.onDrop(...t)),["prevent"])),onDragover:t[2]||(t[2]=fo(((...t)=>e.onDragover&&e.onDragover(...t)),["prevent"])),onDragleave:t[3]||(t[3]=fo((t=>e.dragover=!1),["prevent"]))},[Ht(e.$slots,"default")],34)},UD.__file="packages/upload/src/upload-dragger.vue";var GD=Qn({components:{UploadDragger:UD},props:{type:{type:String,default:""},action:{type:String,required:!0},name:{type:String,default:"file"},data:{type:Object,default:()=>null},headers:{type:Object,default:()=>null},withCredentials:{type:Boolean,default:!1},multiple:{type:Boolean,default:null},accept:{type:String,default:""},onStart:{type:Function,default:ry},onProgress:{type:Function,default:ry},onSuccess:{type:Function,default:ry},onError:{type:Function,default:ry},beforeUpload:{type:Function,default:ry},drag:{type:Boolean,default:!1},onPreview:{type:Function,default:ry},onRemove:{type:Function,default:ry},fileList:{type:Array,default:()=>[]},autoUpload:{type:Boolean,default:!0},listType:{type:String,default:"text"},httpRequest:{type:Function,default:()=>zD},disabled:Boolean,limit:{type:Number,default:null},onExceed:{type:Function,default:ry}},setup(e){const t=lt({}),n=lt(!1),l=lt(null);function a(t){if(e.limit&&e.fileList.length+t.length>e.limit)return void e.onExceed(t,e.fileList);let n=Array.from(t);e.multiple||(n=n.slice(0,1)),0!==n.length&&n.forEach((t=>{e.onStart(t),e.autoUpload&&o(t)}))}function o(t){if(l.value.value=null,!e.beforeUpload)return r(t);const n=e.beforeUpload(t);n instanceof Promise?n.then((e=>{const n=Object.prototype.toString.call(e);if("[object File]"===n||"[object Blob]"===n){"[object Blob]"===n&&(e=new File([e],t.name,{type:t.type}));for(const n in t)uy(t,n)&&(e[n]=t[n]);r(e)}else r(t)})).catch((()=>{e.onRemove(null,t)})):!1!==n?r(t):e.onRemove(null,t)}function r(n){const{uid:l}=n,a={headers:e.headers,withCredentials:e.withCredentials,file:n,data:e.data,filename:e.name,action:e.action,onProgress:t=>{e.onProgress(t,n)},onSuccess:a=>{e.onSuccess(a,n),delete t.value[l]},onError:a=>{e.onError(a,n),delete t.value[l]}},o=e.httpRequest(a);t.value[l]=o,o instanceof Promise&&o.then(a.onSuccess,a.onError)}function i(){e.disabled||(l.value.value=null,l.value.click())}return{reqs:t,mouseover:n,inputRef:l,abort:function(e){const n=t.value;if(e){let t=e;e.uid&&(t=e.uid),n[t]&&n[t].abort()}else Object.keys(n).forEach((e=>{n[e]&&n[e].abort(),delete n[e]}))},post:r,handleChange:function(e){const t=e.target.files;t&&a(t)},handleClick:i,handleKeydown:function(){i()},upload:o,uploadFiles:a}}});function XD(e,t){return t.find((t=>t.uid===e.uid))}function ZD(e){return Date.now()+e}GD.render=function(e,t,n,l,a,o){const r=dl("upload-dragger");return wl(),Sl("div",{class:["el-upload","el-upload--"+e.listType],tabindex:"0",onClick:t[2]||(t[2]=(...t)=>e.handleClick&&e.handleClick(...t)),onKeydown:t[3]||(t[3]=vo(fo(((...t)=>e.handleKeydown&&e.handleKeydown(...t)),["self"]),["enter","space"]))},[e.drag?(wl(),Sl(r,{key:0,disabled:e.disabled,onFile:e.uploadFiles},{default:Zt((()=>[Ht(e.$slots,"default")])),_:3},8,["disabled","onFile"])):Ht(e.$slots,"default",{key:1}),Ll("input",{ref:"inputRef",class:"el-upload__input",type:"file",name:e.name,multiple:e.multiple,accept:e.accept,onChange:t[1]||(t[1]=(...t)=>e.handleChange&&e.handleChange(...t))},null,40,["name","multiple","accept"])],34)},GD.__file="packages/upload/src/upload.vue";var JD=Qn({name:"ElUpload",components:{Upload:GD,UploadList:jD},props:{action:{type:String,required:!0},headers:{type:Object,default:()=>({})},data:{type:Object,default:()=>({})},multiple:{type:Boolean,default:!1},name:{type:String,default:"file"},drag:{type:Boolean,default:!1},withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:{type:String,default:""},type:{type:String,default:"select"},beforeUpload:{type:Function,default:ry},beforeRemove:{type:Function,default:ry},onRemove:{type:Function,default:ry},onChange:{type:Function,default:ry},onPreview:{type:Function,default:ry},onSuccess:{type:Function,default:ry},onProgress:{type:Function,default:ry},onError:{type:Function,default:ry},fileList:{type:Array,default:()=>[]},autoUpload:{type:Boolean,default:!0},listType:{type:String,default:"text"},httpRequest:{type:Function,default:zD},disabled:Boolean,limit:{type:Number,default:null},onExceed:{type:Function,default:()=>ry}},setup(e){const t=zl("elForm",{}),n=ca((()=>e.disabled||t.disabled)),{abort:l,clearFiles:a,handleError:o,handleProgress:r,handleStart:i,handleSuccess:s,handleRemove:u,submit:c,uploadRef:d,uploadFiles:p}=(e=>{let t=[];const n=lt([]),l=lt(null);let a=1;function o(e){l.value.abort(e)}return Sn((()=>e.listType),(t=>{"picture-card"!==t&&"picture"!==t||(n.value=n.value.map((t=>{if(!t.url&&t.raw)try{t.url=URL.createObjectURL(t.raw)}catch(l){e.onError(l,t,n.value)}return t})))})),Sn((()=>e.fileList),(e=>{Sv(t,e)||(t=[],n.value=e.map((e=>{const n=ay(e);return t.push(n),Object.assign(Object.assign({},n),{uid:e.uid||ZD(a++),status:e.status||"success"})})))}),{immediate:!0,deep:!0}),{abort:o,clearFiles:function(){n.value=[]},handleError:function(t,l){const a=XD(l,n.value);a.status="fail",n.value.splice(n.value.indexOf(a),1),e.onError(t,a,n.value),e.onChange(a,n.value)},handleProgress:function(t,l){const a=XD(l,n.value);e.onProgress(t,a,n.value),a.status="uploading",a.percentage=t.percent||0},handleStart:function(t){const l=ZD(a++);t.uid=l;const o={name:t.name,percentage:0,status:"ready",size:t.size,raw:t,uid:l};if("picture-card"===e.listType||"picture"===e.listType)try{o.url=URL.createObjectURL(t)}catch(r){console.error("[Element Error][Upload]",r),e.onError(r,o,n.value)}n.value.push(o),e.onChange(o,n.value)},handleSuccess:function(t,l){const a=XD(l,n.value);a&&(a.status="success",a.response=t,e.onSuccess(t,a,n.value),e.onChange(a,n.value))},handleRemove:function(t,l){l&&(t=XD(l,n.value));const a=()=>{o(t);const l=n.value;l.splice(l.indexOf(t),1),e.onRemove(t,l)};if(e.beforeRemove){if("function"==typeof e.beforeRemove){const l=e.beforeRemove(t,n.value);l instanceof Promise?l.then((()=>{a()})).catch(ry):!1!==l&&a()}}else a()},submit:function(){n.value.filter((e=>"ready"===e.status)).forEach((e=>{l.value.upload(e.raw)}))},uploadFiles:n,uploadRef:l}})(e);return $l("uploader",na()),bn((()=>{p.value.forEach((e=>{e.url&&0===e.url.indexOf("blob:")&&URL.revokeObjectURL(e.url)}))})),{abort:l,dragOver:lt(!1),draging:lt(!1),handleError:o,handleProgress:r,handleRemove:u,handleStart:i,handleSuccess:s,uploadDisabled:n,uploadFiles:p,uploadRef:d,submit:c,clearFiles:a}},render(){var e,t;let n;n=this.showFileList?da(jD,{disabled:this.uploadDisabled,listType:this.listType,files:this.uploadFiles,onRemove:this.handleRemove,handlePreview:this.onPreview},this.$slots.file?{default:e=>this.$slots.file({file:e.file})}:null):null;const l={type:this.type,drag:this.drag,action:this.action,multiple:this.multiple,"before-upload":this.beforeUpload,"with-credentials":this.withCredentials,headers:this.headers,name:this.name,data:this.data,accept:this.accept,fileList:this.uploadFiles,autoUpload:this.autoUpload,listType:this.listType,disabled:this.uploadDisabled,limit:this.limit,"on-exceed":this.onExceed,"on-start":this.handleStart,"on-progress":this.handleProgress,"on-success":this.handleSuccess,"on-error":this.handleError,"on-preview":this.onPreview,"on-remove":this.handleRemove,"http-request":this.httpRequest,ref:"uploadRef"},a=this.$slots.trigger||this.$slots.default,o=da(GD,l,{default:()=>null==a?void 0:a()});return da("div",["picture-card"===this.listType?n:null,this.$slots.trigger?[o,this.$slots.default()]:o,null===(t=(e=this.$slots).tip)||void 0===t?void 0:t.call(e),"picture-card"!==this.listType?n:null])}});JD.__file="packages/upload/src/index.vue",JD.install=e=>{e.component(JD.name,JD)};const QD=JD;var eL=Qn({props:{prefixCls:{type:String,default:"el-space"}},setup:e=>({classes:ca((()=>e.prefixCls+"__item"))})});eL.render=function(e,t,n,l,a,o){return wl(),Sl("div",{class:e.classes},[Ht(e.$slots,"default")],2)},eL.__file="packages/space/src/item.vue";const tL={mini:4,small:8,medium:12,large:16},nL=Qn({name:"ElSpace",props:{direction:{type:String,default:"horizontal"},class:{type:[String,Object,Array],default:""},style:{type:[String,Array,Object]},alignment:{type:String,default:"center"},prefixCls:{type:String},spacer:{type:[Object,String,Number],default:null,validator:e=>El(e)||Ty(e)||py(e)},wrap:{type:Boolean,default:!1},size:{type:[String,Array,Number],validator:e=>Ib(e)||Ty(e)||cy(e)}},setup:e=>function(e){const t=ca((()=>["el-space","el-space--"+e.direction,e.class])),n=lt(0),l=lt(0);return Sn((()=>[e.size,e.wrap,e.direction]),(([e="small",t,a])=>{if(cy(e)){const[t=0,a=0]=e;n.value=t,l.value=a}else{let o;o=Ty(e)?e:tL[e]||tL.small,t&&"horizontal"===a?n.value=l.value=o:"horizontal"===a?(n.value=o,l.value=0):(l.value=o,n.value=0)}}),{immediate:!0}),{classes:t,containerStyle:ca((()=>[e.wrap?{flexWrap:"wrap",marginBottom:`-${l.value}px`}:null,{alignItems:e.alignment},e.style])),itemStyle:ca((()=>({paddingBottom:l.value+"px",marginRight:n.value+"px"})))}}(e),render(e){const{classes:t,$slots:n,containerStyle:l,itemStyle:a,spacer:o,prefixCls:r,direction:i}=e,s=Ht(n,"default",{key:0},(()=>[]));if(0===s.children.length)return null;if(cy(s.children)){let e=[];if(s.children.forEach(((t,n)=>{var l;r_(t)?cy(t.children)&&t.children.forEach(((t,n)=>{e.push(Ll(eL,{style:a,prefixCls:r,key:"nested-"+n},{default:()=>[t]},o_.PROPS|o_.STYLE,["style","prefixCls"]))})):r_(l=t)||i_(l)||e.push(Ll(eL,{style:a,prefixCls:r,key:"LoopKey"+n},{default:()=>[t]},o_.PROPS|o_.STYLE,["style","prefixCls"]))})),o){const t=e.length-1;e=e.reduce(((e,n,l)=>l===t?[...e,n]:[...e,n,Ll("span",{style:[a,"vertical"===i?"width: 100%":null],key:l},[El(o)?o:Al(o,o_.TEXT)],o_.STYLE)]),[])}return Ll("div",{class:t,style:l},e,o_.STYLE|o_.CLASS)}return s.children}});nL.install=e=>{e.component(nL.name,nL)};var lL=Qn({name:"ImgPlaceholder"});const aL={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},oL=Ll("path",{d:"M64 896V128h896v768H64z m64-128l192-192 116.352 116.352L640 448l256 307.2V192H128v576z m224-480a96 96 0 1 1-0.064 192.064A96 96 0 0 1 352 288z"},null,-1);lL.render=function(e,t,n,l,a,o){return wl(),Sl("svg",aL,[oL])},lL.__file="packages/skeleton-item/src/img-placeholder.vue";var rL=Qn({name:"ElSkeletonItem",components:{[lL.name]:lL},props:{variant:{type:String,default:"text"}}});rL.render=function(e,t,n,l,a,o){const r=dl("img-placeholder");return wl(),Sl("div",{class:["el-skeleton__item","el-skeleton__"+e.variant]},["image"===e.variant?(wl(),Sl(r,{key:0})):Pl("v-if",!0)],2)},rL.__file="packages/skeleton-item/src/index.vue",rL.install=e=>{e.component(rL.name,rL)};const iL=rL;var sL=Qn({name:"ElSkeleton",components:{[iL.name]:iL},props:{animated:{type:Boolean,default:!1},count:{type:Number,default:1},rows:{type:Number,default:3},loading:{type:Boolean,default:!0},throttle:{type:Number}},setup:e=>({uiLoading:function(e,t=0){if(0===t)return e;const n=lt(!1);let l=0;const a=()=>{l&&clearTimeout(l),l=window.setTimeout((()=>{n.value=e.value}),t)};return mn(a),Sn((()=>e.value),(e=>{e?a():n.value=e})),n}(ca((()=>e.loading)),e.throttle)})});sL.render=function(e,t,n,l,a,o){const r=dl("el-skeleton-item");return e.uiLoading?(wl(),Sl("div",Bl({key:0,class:["el-skeleton",e.animated?"is-animated":""]},e.$attrs),[(wl(!0),Sl(gl,null,pa(e.count,(t=>(wl(),Sl(gl,{key:t},[e.loading?Ht(e.$slots,"template",{key:0},(()=>[Ll(r,{class:"is-first",variant:"p"}),(wl(!0),Sl(gl,null,pa(e.rows,(t=>(wl(),Sl(r,{key:t,class:{"el-skeleton__paragraph":!0,"is-last":t===e.rows&&e.rows>1},variant:"p"},null,8,["class"])))),128))])):Pl("v-if",!0)],64)))),128))],16)):Ht(e.$slots,"default",Bl({key:1},e.$attrs))},sL.__file="packages/skeleton/src/index.vue",sL.install=e=>{e.component(sL.name,sL)};const uL=sL;var cL=Qn({name:"ElCheckTag",props:{checked:Boolean},emits:["change"],setup:(e,{emit:t})=>({onChange:()=>{t("change",!e.checked)}})});cL.render=function(e,t,n,l,a,o){return wl(),Sl("span",{class:{"el-check-tag":!0,"is-checked":e.checked},onClick:t[1]||(t[1]=(...t)=>e.onChange&&e.onChange(...t))},[Ht(e.$slots,"default")],2)},cL.__file="packages/check-tag/src/index.vue",cL.install=e=>{e.component(cL.name,cL)};const dL=cL;var pL=Qn({name:"ElDescriptionsItem"});pL.install=e=>{e.component(pL.name,pL)};const fL=pL;var hL=Qn({name:"ElDescriptionsCell",props:{cell:{type:Object},tag:{type:String},type:{type:String}},setup:e=>({descriptions:zl("elDescriptions",{}),label:ca((()=>{var t,n,l,a,o;return(null===(l=null===(n=null===(t=e.cell)||void 0===t?void 0:t.children)||void 0===n?void 0:n.label)||void 0===l?void 0:l.call(n))||(null===(o=null===(a=e.cell)||void 0===a?void 0:a.props)||void 0===o?void 0:o.label)})),content:ca((()=>{var t,n,l;return null===(l=null===(n=null===(t=e.cell)||void 0===t?void 0:t.children)||void 0===n?void 0:n.default)||void 0===l?void 0:l.call(n)})),span:ca((()=>{var t,n;return(null===(n=null===(t=e.cell)||void 0===t?void 0:t.props)||void 0===n?void 0:n.span)||1}))}),render(){switch(this.type){case"label":return da(this.tag,{class:["el-descriptions__label",{"is-bordered-label":this.descriptions.border}],colSpan:"vertical"===this.descriptions.direction?this.span:1},this.label);case"content":return da(this.tag,{class:"el-descriptions__content",colSpan:"vertical"===this.descriptions.direction?this.span:2*this.span-1},this.content);default:return da("td",{colSpan:this.span},[da("span",{class:["el-descriptions__label",{"is-bordered-label":this.descriptions.border}]},this.label),da("span",{class:"el-descriptions__content"},this.content)])}}}),vL=Qn({name:"ElDescriptionsRow",components:{[hL.name]:hL},props:{row:{type:Array}},setup:()=>({descriptions:zl("elDescriptions",{})})});const mL={key:1};vL.render=function(e,t,n,l,a,o){const r=dl("el-descriptions-cell");return"vertical"===e.descriptions.direction?(wl(),Sl(gl,{key:0},[Ll("tr",null,[(wl(!0),Sl(gl,null,pa(e.row,((e,t)=>(wl(),Sl(r,{key:"tr1-"+t,cell:e,tag:"th",type:"label"},null,8,["cell"])))),128))]),Ll("tr",null,[(wl(!0),Sl(gl,null,pa(e.row,((e,t)=>(wl(),Sl(r,{key:"tr2-"+t,cell:e,tag:"td",type:"content"},null,8,["cell"])))),128))])],64)):(wl(),Sl("tr",mL,[(wl(!0),Sl(gl,null,pa(e.row,((t,n)=>(wl(),Sl(gl,{key:"tr3-"+n},[e.descriptions.border?(wl(),Sl(gl,{key:0},[Ll(r,{cell:t,tag:"td",type:"label"},null,8,["cell"]),Ll(r,{cell:t,tag:"td",type:"content"},null,8,["cell"])],64)):(wl(),Sl(r,{key:1,cell:t,tag:"td",type:"both"},null,8,["cell"]))],64)))),128))]))},vL.__file="packages/descriptions/src/descriptions-row.vue";var gL=Qn({name:"ElDescriptions",components:{[fL.name]:fL,[vL.name]:vL},props:{border:{type:Boolean,default:!1},column:{type:Number,default:3},direction:{type:String,default:"horizontal"},size:{type:String,validator:Ib},title:{type:String,default:""},extra:{type:String,default:""}},setup(e,{slots:t}){$l("elDescriptions",e);const n=Ay(),l=ca((()=>e.size||n.size)),a=e=>{const t=Array.isArray(e)?e:[e],n=[];return t.forEach((e=>{Array.isArray(e.children)?n.push(...a(e.children)):n.push(e)})),n},o=(t,n,l,a=!1)=>(t.props||(t.props={}),n>l&&(t.props.span=l),a&&(t.props.span=e.column),t);return{descriptionsSize:l,rows:ca((()=>{var n;const l=a(null===(n=t.default)||void 0===n?void 0:n.call(t)).filter((e=>{var t;return"ElDescriptionsItem"===(null===(t=null==e?void 0:e.type)||void 0===t?void 0:t.name)})),r=[];let i=[],s=e.column;return l.forEach(((t,n)=>{var a;const u=(null===(a=t.props)||void 0===a?void 0:a.span)||1;if(n===l.length-1)return i.push(o(t,u,s,!0)),void r.push(i);u<s?(s-=u,i.push(t)):(i.push(o(t,u,s)),r.push(i),s=e.column,i=[])})),r}))}}});const yL={class:"el-descriptions"},bL={key:0,class:"el-descriptions__header"},_L={class:"el-descriptions__title"},kL={class:"el-descriptions__extra"},xL={class:"el-descriptions__body"};gL.render=function(e,t,n,l,a,o){const r=dl("el-descriptions-row");return wl(),Sl("div",yL,[e.title||e.extra||e.$slots.title||e.$slots.extra?(wl(),Sl("div",bL,[Ll("div",_L,[Ht(e.$slots,"title",{},(()=>[Al(c(e.title),1)]))]),Ll("div",kL,[Ht(e.$slots,"extra",{},(()=>[Al(c(e.extra),1)]))])])):Pl("v-if",!0),Ll("div",xL,[Ll("table",{class:[{"is-bordered":e.border},e.descriptionsSize?"el-descriptions--"+e.descriptionsSize:""]},[Ll("tbody",null,[(wl(!0),Sl(gl,null,pa(e.rows,((e,t)=>(wl(),Sl(r,{key:t,row:e},null,8,["row"])))),128))])],2)])])},gL.__file="packages/descriptions/src/index.vue",gL.install=e=>{e.component(gL.name,gL)};const wL=gL;var CL=Qn({name:"IconSuccess"});const SL={viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg"},EL=Ll("path",{d:"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M34.5548098,16.4485711 C33.9612228,15.8504763 32.9988282,15.8504763 32.4052412,16.4485711 L32.4052412,16.4485711 L21.413757,27.5805811 L21.413757,27.5805811 L21.4034642,27.590855 C21.0097542,27.9781674 20.3766105,27.9729811 19.9892981,27.5792711 L19.9892981,27.5792711 L15.5947588,23.1121428 C15.0011718,22.514048 14.0387772,22.514048 13.4451902,23.1121428 C12.8516033,23.7102376 12.8516033,24.6799409 13.4451902,25.2780357 L13.4451902,25.2780357 L19.6260786,31.5514289 C20.2196656,32.1495237 21.1820602,32.1495237 21.7756472,31.5514289 L21.7756472,31.5514289 L34.5548098,18.614464 C35.1483967,18.0163692 35.1483967,17.0466659 34.5548098,16.4485711 Z"},null,-1);CL.render=function(e,t,n,l,a,o){return wl(),Sl("svg",SL,[EL])},CL.__file="packages/result/src/icon-success.vue";var ML=Qn({name:"IconError"});const OL={viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg"},TL=Ll("path",{d:"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M32.57818,15.42182 C32.0157534,14.8593933 31.1038797,14.8593933 30.541453,15.42182 L30.541453,15.42182 L24.0006789,21.9625941 L17.458547,15.42182 C16.8961203,14.8593933 15.9842466,14.8593933 15.42182,15.42182 C14.8593933,15.9842466 14.8593933,16.8961203 15.42182,17.458547 L15.42182,17.458547 L21.9639519,23.9993211 L15.42182,30.541453 C14.8593933,31.1038797 14.8593933,32.0157534 15.42182,32.57818 C15.9842466,33.1406067 16.8961203,33.1406067 17.458547,32.57818 L17.458547,32.57818 L24.0006789,26.0360481 L30.541453,32.57818 C31.1038797,33.1406067 32.0157534,33.1406067 32.57818,32.57818 C33.1406067,32.0157534 33.1406067,31.1038797 32.57818,30.541453 L32.57818,30.541453 L26.0374059,23.9993211 L32.57818,17.458547 C33.1406067,16.8961203 33.1406067,15.9842466 32.57818,15.42182 Z"},null,-1);ML.render=function(e,t,n,l,a,o){return wl(),Sl("svg",OL,[TL])},ML.__file="packages/result/src/icon-error.vue";var DL=Qn({name:"IconWarning"});const LL={viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg"},NL=Ll("path",{d:"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M24,31 C22.8954305,31 22,31.8954305 22,33 C22,34.1045695 22.8954305,35 24,35 C25.1045695,35 26,34.1045695 26,33 C26,31.8954305 25.1045695,31 24,31 Z M24,14 C23.1715729,14 22.5,14.6715729 22.5,15.5 L22.5,15.5 L22.5,27.5 C22.5,28.3284271 23.1715729,29 24,29 C24.8284271,29 25.5,28.3284271 25.5,27.5 L25.5,27.5 L25.5,15.5 C25.5,14.6715729 24.8284271,14 24,14 Z"},null,-1);DL.render=function(e,t,n,l,a,o){return wl(),Sl("svg",LL,[NL])},DL.__file="packages/result/src/icon-warning.vue";var AL=Qn({name:"IconInfo"});const PL={viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg"},IL=Ll("path",{d:"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M24,19 L21,19 C20.1715729,19 19.5,19.6715729 19.5,20.5 C19.5,21.3284271 20.1715729,22 21,22 L21,22 L22.5,22 L22.5,31 L21,31 C20.1715729,31 19.5,31.6715729 19.5,32.5 C19.5,33.3284271 20.1715729,34 21,34 L21,34 L27,34 C27.8284271,34 28.5,33.3284271 28.5,32.5 C28.5,31.6715729 27.8284271,31 27,31 L27,31 L25.5,31 L25.5,20.5 C25.5,19.6715729 24.8284271,19 24,19 L24,19 Z M24,13 C22.8954305,13 22,13.8954305 22,15 C22,16.1045695 22.8954305,17 24,17 C25.1045695,17 26,16.1045695 26,15 C26,13.8954305 25.1045695,13 24,13 Z"},null,-1);AL.render=function(e,t,n,l,a,o){return wl(),Sl("svg",PL,[IL])},AL.__file="packages/result/src/icon-info.vue";const FL={success:"icon-success",warning:"icon-warning",error:"icon-error",info:"icon-info"};var VL=Qn({name:"ElResult",components:{[CL.name]:CL,[ML.name]:ML,[DL.name]:DL,[AL.name]:AL},props:{title:{type:String,default:""},subTitle:{type:String,default:""},icon:{type:String,default:"info"}},setup:e=>({iconElement:ca((()=>{const t=e.icon;return t&&FL[t]?FL[t]:"icon-info"}))})});const BL={class:"el-result"},$L={class:"el-result__icon"},zL={key:0,class:"el-result__title"},jL={key:1,class:"el-result__subtitle"},RL={key:2,class:"el-result__extra"};VL.render=function(e,t,n,l,a,o){return wl(),Sl("div",BL,[Ll("div",$L,[Ht(e.$slots,"icon",{},(()=>[(wl(),Sl(fl(e.iconElement),{class:e.iconElement},null,8,["class"]))]))]),e.title||e.$slots.title?(wl(),Sl("div",zL,[Ht(e.$slots,"title",{},(()=>[Ll("p",null,c(e.title),1)]))])):Pl("v-if",!0),e.subTitle||e.$slots.subTitle?(wl(),Sl("div",jL,[Ht(e.$slots,"subTitle",{},(()=>[Ll("p",null,c(e.subTitle),1)]))])):Pl("v-if",!0),e.$slots.extra?(wl(),Sl("div",RL,[Ht(e.$slots,"extra")])):Pl("v-if",!0)])},VL.__file="packages/result/src/index.vue",VL.install=e=>{e.component(VL.name,VL)};const HL=VL;if(!oy){const e=window;e.dayjs||(e.dayjs=Rc)}const WL={size:"",zIndex:2e3},YL=[eb,ob,ib,L_,A_,V_,z_,H_,K_,Z_,ek,Kk,Xk,nx,ox,Kx,Bx,dx,Gx,Jx,dL,Qx,nw,iw,aw,Fw,Bw,FC,YC,KC,JC,nS,aS,rS,DS,NS,$b,IS,VS,$S,aE,ZS,Qb,hE,gE,ME,AE,$E,RE,MM,NM,BM,eO,oO,cO,M_,mO,mx,yO,_O,xO,wO,a_,EM,NO,BO,zO,RO,qO,UO,VT,RT,qT,zx,Fk,ZT,QT,sD,FE,_D,BD,QD,nL,uL,iL,wL,fL,HL],qL=[pE,CE,GE,uM,mM];var KL={version:"1.0.2-beta.44",install:(e,t)=>{const n=Object.assign(WL,t);var l;(e=>{tk=e||tk,tk.name&&Rc.locale(tk.name)})(n.locale),n.i18n&&(l=n.i18n,nk=l),e.config.globalProperties.$ELEMENT=n,d_=n,YL.forEach((t=>{e.component(t.name,t)})),qL.forEach((t=>{e.use(t)}))}};export{gl as F,KL as I,Ll as a,dl as b,Sl as c,Qn as d,Gt as e,Fi as f,xo as g,wl as o,Ut as p,lt as r,c as t,Xt as w};
diff --git a/zh/bar-race/body.html b/zh/bar-race/body.html
new file mode 100644
index 0000000..b842d50
--- /dev/null
+++ b/zh/bar-race/body.html
@@ -0,0 +1,6 @@
+<script type="module" crossorigin src="./assets/main.79ef808e.js"></script>
+  <link rel="modulepreload" href="./assets/vendor.82c46759.js">
+  <link rel="stylesheet" href="./assets/main.80a6a299.css">
+<!-- Body HTML that will be final deployed -->
+<div id="echarts-spa-app"></div>
+
diff --git a/zh/builder.html b/zh/builder.html
index 7385ddc..d1fc031 100644
--- a/zh/builder.html
+++ b/zh/builder.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/builder/echarts.html b/zh/builder/echarts.html
index 023224f..dcef92e 100644
--- a/zh/builder/echarts.html
+++ b/zh/builder/echarts.html
@@ -54,7 +54,7 @@
                 'rollup': 'lib/rollup.browser',
                 'transformDev': 'lib/transform-dev-bundle'
             },
-            urlArgs: 'v=1620894510041'
+            urlArgs: 'v=1623211036275'
         });
 
         require(['build']);
diff --git a/zh/builder3.html b/zh/builder3.html
index 98c02d0..6899d84 100644
--- a/zh/builder3.html
+++ b/zh/builder3.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/changelog.html b/zh/changelog.html
index c0acb1e..d802024 100644
--- a/zh/changelog.html
+++ b/zh/changelog.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -7,7 +7,40 @@
     document.head.insertBefore(el, document.getElementById('font-hack'));
 }
 </script><title>版本记录 - Apache ECharts</title><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
-<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div class="page-info"><h1>版本记录</h1><p class="page-info-echarts">Apache ECharts<sup>TM</sup></p></div><div class="page-content single-page"><div class="page-nav"><a class="slide-btn">收起目录</a><h4>版本记录</h4><ul></ul></div><div class="page-detail"><h2 id="v5-1-1">v5.1.1</h2>
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div class="page-info"><h1>版本记录</h1><p class="page-info-echarts">Apache ECharts<sup>TM</sup></p></div><div class="page-content single-page"><div class="page-nav"><a class="slide-btn">收起目录</a><h4>版本记录</h4><ul></ul></div><div class="page-detail"><h2 id="v5-1-2">v5.1.2</h2>
+<div class="time">2021-06-04</div>
+
+<ul>
+<li>[Feature] [geo/map] 在 transform 和 svg解析器中支持 skew。<a href="https://github.com/ecomfe/zrender/issues/755">#755</a> (<a href="https://github.com/pissang">pissang</a>)</li>
+<li>[Feature] [tree] 在工具提示中添加树的路径信息。<a href="https://github.com/apache/echarts/issues/14957">#14957</a> (<a href="https://github.com/stephenLYZ">stephenLYZ</a>)</li>
+<li>[Feature] [i18n] 增加斯洛文尼亚语翻译。<a href="https://github.com/apache/echarts/issues/14758">#14758</a> (<a href="https://github.com/dkrat7">dkrat7</a>)</li>
+<li>[Fix] [tooltip] 修正位置回调的返回类型。修复 <a href="https://github.com/apache/echarts/issues/15030">#15030</a>。<a href="https://github.com/apache/echarts/issues/15031">#15031</a> (<a href="https://github.com/congjiujiu">congjiujiu</a>)</li>
+<li>[Fix] [canvas] 修复 dirty rect 中引起的额外 save。<a href="https://github.com/ecomfe/zrender/issues/765">#765</a> (<a href="https://github.com/pissang">pissang</a>)</li>
+<li>[Fix] [pattern] 从 PatternObject 中删除非必须的属性,并修复一些类型问题。<a href="https://github.com/ecomfe/zrender/issues/759">#759</a> (<a href="https://github.com/plainheart">Plainheart</a>)</li>
+<li>[Fix] [path] 优化小线段时,小的子路径可能被忽略。<a href="https://github.com/ecomfe/zrender/issues/760">#760</a> (<a href="https://github.com/pissang">pissang</a>)</li>
+<li>[Fix] [tooltip] 当没指定组件 <code>tooltip.formatter</code> 时,用一个特定的默认 <code>formatter</code>,而不再用全局的 <code>tooltip.formatter</code> 作为默认。修复 <a href="https://github.com/apache/echarts/issues/14939">#14939</a>。<a href="https://github.com/apache/echarts/issues/14972">#14972</a> (<a href="https://github.com/100pah">100pah</a>)</li>
+<li>[Fix] [resize] 以 <code>lazyUpdate: true</code> 模式调用 <code>setOption</code> 后,调用 <code>resize</code>,会产生错误。修复 <a href="https://github.com/apache/echarts/issues/14846">#14846</a>,修复 <a href="https://github.com/apache/echarts/issues/11395">#11395</a>。<a href="https://github.com/apache/echarts/issues/14934">#14934</a> (<a href="https://github.com/100pah">100pah</a>)</li>
+<li>[Fix] [treemap] 用不同数据运行 <code>setOption</code> 第二次时出现错误。<a href="https://github.com/apache/echarts/issues/14930">#14930</a> (<a href="https://github.com/Map1en">Map1en</a>)</li>
+<li>[Fix] [tree] 用不同数据运行 <code>setOption</code> 第二次时出现错误。<a href="https://github.com/apache/echarts/issues/14905">#14905</a> (<a href="https://github.com/Map1en">Map1en</a>)</li>
+<li>[Fix] [types] 导出 cbs 及其参数类型。<a href="https://github.com/apache/echarts/issues/14871">#14871</a> (<a href="https://github.com/dougalg">dougalg</a>)</li>
+<li>[Fix] [option] 在合并主题前检查缺少的组件。<a href="https://github.com/apache/echarts/issues/14966">#14966</a> (<a href="https://github.com/pissang">pissang</a>)</li>
+<li>[Fix] [text] 修复 gradient text background 导致的渲染错误。<a href="https://github.com/ecomfe/zrender/issues/756">#756</a> (<a href="https://github.com/pissang">pissang</a>)</li>
+<li>[Fix] [clip] 修复了,当 <code>clip:false</code> 时,line 系列会报错。<a href="https://github.com/apache/echarts/issues/14813">#14813</a> (<a href="https://github.com/plainheart">Plainheart</a>)</li>
+<li>[Fix] [legend] 修改兼容性不好的 JS API 使用。<a href="https://github.com/apache/echarts/issues/14810">#14810</a> (<a href="https://github.com/plainheart">plainheart</a>)</li>
+<li>[Fix] [label] 把 <code>LineEndLabelOption.valueAnimation</code> 改为可选。<a href="https://github.com/apache/echarts/issues/14806">#14806</a> (<a href="https://github.com/Bilge">Bilge</a>)</li>
+<li>[Fix] [dataZoom] startValue 和 endValue 的类型修复。修复 <a href="https://github.com/apache/echarts/issues/14412">#14412</a>。<a href="https://github.com/apache/echarts/issues/14775">#14775</a> (<a href="https://github.com/dileepyelleti">dileepyelleti</a>)</li>
+<li>[Fix] [label] 保证临时 symbol 的标签在线和区域多边形的前面。<a href="https://github.com/apache/echarts/issues/14993">#14993</a> (<a href="https://github.com/plainheart">Plainheart</a>)</li>
+<li>[Fix] [stack] 修复数字 <code>getPrecisionSafe</code> 在科学符号如 <code>3.45e-1</code> 上执行不正确。消除 stack 功能中浮点数计算精度问题。<a href="https://github.com/apache/echarts/issues/15015">#15015</a> (<a href="https://github.com/100pah">100pah</a>)</li>
+<li>[Fix] [dataZoom] 当 <code>toolbox.feature.dataZoom</code> 没有声明时,不应该有数据过滤。<a href="https://github.com/apache/echarts/issues/15015">#15015</a> (<a href="https://github.com/100pah">100pah</a>)</li>
+<li>[Fix] [linear-gradient] 避免在 <code>linearMap</code> 利用中出现无限值。<a href="https://github.com/apache/echarts/issues/14602">#14602</a> (<a href="https://github.com/plainheart">Plainheart</a>)</li>
+<li>[Fix] [timeline] 当播放到最后时才触发 <code>timelineplaychange</code> 事件。<a href="https://github.com/apache/echarts/issues/14620">#14620</a> (<a href="https://github.com/Ovilia">Ovilia</a>)</li>
+<li>[Fix] [custom] 修复自定义系列中的渐进式渲染。<a href="https://github.com/apache/echarts/issues/14920">#14920</a> (<a href="https://github.com/pissang">pissang</a>)</li>
+<li>[Fix] [brush] 修改 brush 的 clip 范围。<a href="https://github.com/apache/echarts/issues/14569">#14569</a> (<a href="https://github.com/susiwen8">susiwen8</a>)</li>
+<li>[Fix] [label] 修复标签不在最上的错误。<a href="https://github.com/apache/echarts/issues/14542">#14542</a> (<a href="https://github.com/plainheart">素心</a>)</li>
+<li>[Fix] [toolbox] 修复自定义工具箱按钮的 <code>show</code> 选项不起作用。<a href="https://github.com/apache/echarts/issues/14408">#14408</a> (<a href="https://github.com/plainheart">plainheart</a>)</li>
+</ul>
+<p>通过<a href="http://www.DeepL.com/Translator(免费版)翻译">www.DeepL.com/Translator(免费版)翻译</a></p>
+<h2 id="v5-1-1">v5.1.1</h2>
 <div class="time">2021-04-27</div>
 
 <ul>
diff --git a/zh/cheat-sheet.html b/zh/cheat-sheet.html
index a25e7eb..014ae66 100644
--- a/zh/cheat-sheet.html
+++ b/zh/cheat-sheet.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/coding-standard.html b/zh/coding-standard.html
index 6241ddc..bf5eae5 100644
--- a/zh/coding-standard.html
+++ b/zh/coding-standard.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/committers.html b/zh/committers.html
index 1ba15e9..ee45525 100644
--- a/zh/committers.html
+++ b/zh/committers.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/contributing.html b/zh/contributing.html
index 0fec764..b4f7fbb 100644
--- a/zh/contributing.html
+++ b/zh/contributing.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/css/main.css b/zh/css/main.css
index e45b7e1..a6beee2 100644
--- a/zh/css/main.css
+++ b/zh/css/main.css
@@ -1 +1 @@
-@font-face{font-family:'iconfont';src:url("font/iconfont.eot");src:url("font/iconfont.eot?#iefix") format("embedded-opentype"),url("font/iconfont.woff") format("woff"),url("font/iconfont.ttf") format("truetype"),url("font/iconfont.svg#iconfont") format("svg")}.iconfont{font-family:"iconfont" !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:url(font/OpenSans-Regular.ttf) format("truetype")}@font-face{font-family:'Open Sans';font-style:bold;font-weight:800;src:url(font/OpenSans-Bold.ttf) format("truetype")}html{height:100%}body{font-family:'Open Sans', "PingFang SC", Helvetica, Arial, sans-serif}#lowie-main{display:none}.lower-ie #main{display:none}.lower-ie #lowie-main{display:block;height:100%;width:100%;padding:200px 0 100px;background-color:#2a3c54}.lower-ie #lowie-main img{display:block;width:60%;margin:0 auto}#v4-link{position:fixed;bottom:0;left:50%;width:200px;margin-left:-100px;text-align:center;z-index:1000;padding:5px 30px}.navbar-default{border:none;background-color:#fff;z-index:10000;-webkit-transition:background-color 0.5s linear;-o-transition:background-color 0.5s linear;transition:background-color 0.5s linear;height:50px;-webkit-box-shadow:0 0 20px rgba(0,0,0,0.2);box-shadow:0 0 20px rgba(0,0,0,0.2)}.navbar-default .navbar-nav{-webkit-transition:background-color 0.5s linear;-o-transition:background-color 0.5s linear;transition:background-color 0.5s linear}.navbar-default .navbar-nav li{position:relative}.navbar-default .navbar-nav li a{color:#081642;background-color:none !important;padding:15px 20px;-webkit-transition:0.5s background-color;-o-transition:0.5s background-color;transition:0.5s background-color;font-size:14px}.navbar-default .navbar-nav li a:before{content:'';position:absolute;left:50%;right:50%;top:0;background:#081642;height:3px;-webkit-transition-property:'left, right';-o-transition-property:'left, right';transition-property:'left, right';-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.navbar-default .navbar-nav li a:hover,.navbar-default .navbar-nav li a:focus{color:#081642;background-color:#f9f9f9}.navbar-default .navbar-nav li a:hover:before,.navbar-default .navbar-nav li a:focus:before{left:0;right:0}.navbar-default .navbar-nav li a .iconfont{font-size:12px}.navbar-default .navbar-nav li a .new{display:inline-block;padding:0 5px;background-color:#F72C5B;color:#fff;font-size:12px;border-radius:3px;vertical-align:middle;-webkit-transform:scale(0.8);-ms-transform:scale(0.8);transform:scale(0.8)}.navbar-default .navbar-nav li.open{background-color:#f9f9f9;color:#fff}.navbar-default .navbar-nav li.open>a:focus,.navbar-default .navbar-nav li.open>a:hover{color:#081642;background-color:#f9f9f9}.navbar-default .navbar-nav li.active>a{padding-top:11px;border-top:3px solid #F72C5B;color:#F72C5B;background-color:#fff;-webkit-transition:0.5s background-color;-o-transition:0.5s background-color;transition:0.5s background-color}.navbar-default .navbar-nav li.active>a:before{display:none}.navbar-default .navbar-nav li.active>a:hover,.navbar-default .navbar-nav li.active>a:focus{color:#FF6D8F;background-color:#f9f9f9}.navbar-default .navbar-nav li .dropdown-menu{width:250px;padding:0;border:none}.navbar-default .navbar-nav li .dropdown-menu li{background-color:#fff;border-top:none}.navbar-default .navbar-nav li .dropdown-menu li a{padding:13px 20px}.navbar-default .navbar-nav li .dropdown-menu li:hover,.navbar-default .navbar-nav li .dropdown-menu li:focus{background-color:#f9f9f9}.navbar-default .navbar-nav li .dropdown-menu li:hover a,.navbar-default .navbar-nav li .dropdown-menu li:focus a{color:#344C9B;background-color:#f9f9f9}.navbar-default .navbar-nav li ul{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.1);box-shadow:0 0 20px rgba(0,0,0,0.1);border-radius:0 0 10px 10px;overflow:hidden}.navbar-default .navbar-nav li ul a:before{display:none}.navbar-default .navbar-logo{height:32px;margin-top:-6px;margin-left:-2px}.navbar-default #navbar-collapse{border-top:none;background:#fff;margin-left:-25px;margin-right:-15px}.navbar-default .navbar-toggle{padding:1px 5px;margin:7px 16px 0 0;border-color:#ddd;background-color:#fff}.navbar-default .navbar-toggle .icon-bar{margin:7px 0 !important;height:1px;background-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{border-color:#ddd;background-color:#f9f9f9}.container-fluid{padding:0 25px}#menu-btn{display:none;float:right;height:45px;line-height:45px;margin:5px 20px 0 0;font-size:30px;color:#fff;cursor:pointer}.navbar-bg{background-color:#fff;-webkit-transition-duration:0.3s;-o-transition-duration:0.3s;transition-duration:0.3s;-webkit-transition-property:background-color, opacity;-o-transition-property:background-color, opacity;transition-property:background-color, opacity}.navbar-bg .navbar-nav li a{color:#081642}.navbar-bg .navbar-nav li.active a{color:#F72C5B;background-color:transparent}#nav-apache{margin-left:10px;margin-right:10px;position:relative;top:1px}#nav-apache a{padding:10px 15px}#nav-apache a img{height:30px}#nav-github{height:50px;overflow:hidden}#nav-github a{padding-top:13px}.nav-circle{height:50px}.nav-circle-inner{width:22px;height:22px;margin:14px 20px;text-align:center;overflow:hidden;border:1px solid;border-radius:50%}.navbar-default .navbar-nav li .nav-circle-inner a{height:100%;padding:0;font-size:12px}.navbar-default .navbar-nav li .nav-circle-inner a:hover{text-decoration:none}.icon-external-link{position:relative;top:2px;left:5px;opacity:0.5}@media (max-width: 768px){.navbar-default .navbar-nav{-webkit-transition:background-color 0.5s linear;-o-transition:background-color 0.5s linear;transition:background-color 0.5s linear;margin-top:0;margin-bottom:0}.navbar-default .navbar-nav li.active>a{border-left:3px solid #081642;border-top:none;padding:10px 15px 10px 11px}#menu-btn{display:block}#nav-download{display:none}.dropdown-menu{width:100% !important}}@media (max-width: 1280px) and (min-width: 1192px){.navbar-default .navbar-nav li a{padding:15px 15px}}@media (max-width: 1192px) and (min-width: 900px){.navbar-default .navbar-nav li a{padding:15px 8px}}@media (max-width: 900px) and (min-width: 768px){.navbar-default .navbar-nav li a{padding:15px 3px;font-size:12px}}@media (max-width: 1065px){#nav-apache{display:none}}.page-main{position:absolute;left:0;right:0;top:50px;bottom:0;overflow-y:auto}.doc-version-change{position:absolute;top:70px;right:50px;z-index:100}.doc-version-change a{display:inline-block;margin-left:20px}.section-bg{background:#F4F7FC;padding:10px 0}.d-section.last-section{margin-bottom:30px;border-bottom:0}.page-info{margin-bottom:30px;text-align:center;padding:40px;color:#4e6167;background:#F4F7FC}.page-info h1{margin-bottom:5px;font-size:40px;font-weight:bold;color:#333}.page-info p{font-size:16px}.page-info-echarts{font-size:12px;margin-top:15px;color:#8E99AB}.page-content{min-height:300px;padding-bottom:40px;font-size:16px;line-height:22px}.page-content h2{color:#C42E51;padding-bottom:15px;border-bottom:1px solid #ddd;margin-top:40px;margin-bottom:20px}.page-content h2:first-child{margin-top:0}.page-content h3{margin:30px 0 10px 0}.page-content p{margin:10px 0}.page-content section{padding:40px 0;text-align:center}.page-content td,.page-content th{padding:5px 10px;border:1px solid #ddd}.page-content td ol,.page-content th ol{padding-left:1em}.page-content ul{padding-left:30px}.page-content ul li{list-style:disc}.page-content ol li{list-style:decimal}.page-content li{margin:5px 0}.page-nav{position:-webkit-sticky;position:sticky;overflow:auto;float:left;width:200px;top:20px;height:-webkit-calc(100vh - 100px);height:calc(100vh - 100px);margin:0 0 0 30px;padding:0 0 20px 0}.page-nav h4{margin:10px 0;color:#666;font-size:14px;padding-left:10px}.page-nav h4:first-child{margin-top:0}.page-nav h4.inner{margin:0;padding-left:0;font-size:18px}.page-nav a{border-left:1px solid rgba(78,97,103,0.25);color:#999;padding:7px 10px;display:block;position:relative}.page-nav a:before{content:'';position:absolute;top:50%;bottom:50%;background:#F72C5B;width:3px;left:-1px;-webkit-transition-property:'top, bottom';-o-transition-property:'top, bottom';transition-property:'top, bottom';-webkit-transition-duration:0.3s;-o-transition-duration:0.3s;transition-duration:0.3s;-webkit-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.page-nav a:hover{text-decoration:none;color:#333}.page-nav a:hover:before{top:0;bottom:0}.page-nav a.active{color:#F72C5B}.page-nav .slide-btn{display:none}.page-detail{margin-left:220px;margin-bottom:20px;padding:0 40px 0 40px;overflow-x:hidden}.page-detail h2{margin:10px 0;padding-top:20px;font-size:22px}.page-detail h2:first-child{margin-top:0;padding-top:0}.page-detail h2+h3{margin-top:20px}.page-detail h3{margin:40px 0 15px 0;font-size:18px}.page-detail p{margin:15px 0}.page-detail li{padding-left:0}.page-detail li li{margin:5px 0}.page-detail .time{float:right;position:relative;top:-35px}@media screen and (max-device-width: 600px){.page-content.single-page{position:static}.page-content.slide-up .page-nav ul{display:none}.page-info{text-align:left;padding:15px;margin-bottom:10px}.page-info h1{margin-bottom:10px}.page-nav{position:static}.page-nav .slide-btn{display:block;color:#F72C5B;position:absolute;right:20px;margin-top:10px}.page-detail{position:static;margin-left:0;padding:0 15px}.page-detail h2{padding-top:20px}.page-detail h2:first-child{padding-top:0}}#download-extension-container{max-width:800px}#download-extension-container .row{margin-top:40px;margin-bottom:40px}#reference{padding:90px 0 140px 0;text-align:center}footer{min-height:190px;background-color:#202D42;color:#808795;font-size:14px}footer.inner-footer{background-color:transparent;border-top:1px solid #eee;margin-top:40px;color:#aaa;font-size:12px}footer.inner-footer .container{padding:0}footer.inner-footer p{line-height:20px}footer.inner-footer .row{margin-top:20px !important}footer.inner-footer #footer-icon-panel{text-align:right}footer.inner-footer #footer-icon-panel img{margin-top:20px;width:250px}footer .row{margin-top:50px !important;margin-bottom:0 !important}footer .logo img{display:block;margin-bottom:20px;width:109px}footer .footer-apache-logo{width:300px;max-width:80%;margin:0 0 10px 0}footer #echarts-copyright{color:rgba(255,255,255,0.4);margin:65px 0 20px 0;font-size:1.2rem}footer h3{color:#fff;font-size:1.5rem;margin:10px 0}footer ul{height:150px}footer ul dt{width:50%;float:left;font-weight:300}footer ul li{font-weight:300}footer ul a{color:rgba(255,255,255,0.4);font-size:1.2rem;margin:5px 0}footer ul a:hover{color:rgba(255,255,255,0.8)}footer .icon-panel{margin-top:20px}footer .footer-icon{display:inline-block;width:40px;height:40px;border-radius:50px;margin-right:10px;padding:8px 10px;border:1px solid white;opacity:0.5;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}footer .footer-icon:hover{opacity:1}@media (max-width: 992px){footer .footer-apache-logo{-webkit-transform:scale(0.7);-ms-transform:scale(0.7);transform:scale(0.7)}footer .icon-panel{margin:20px 0}footer #echarts-copyright{margin:20px 0;text-align:center}}@media (max-width: 768px){footer .logo img{margin:0 auto}footer #footer-icon-panel{text-align:center}footer #echarts-copyright{text-align:center}}html{overflow-x:hidden}body{width:100%;background-color:#fff}#main-content{overflow:hidden;color:#949CB1}#main-content a{color:#5E7AD9}#main-content .more{text-align:center;display:block}#main-content footer{font-weight:400 !important}#main-content footer h3{color:white}#main-content #home-section{width:100%;height:100vh;overflow:hidden}#main-content .home-brand-panel{margin:0 auto;height:100%;padding:0 30px;position:relative}#main-content .home-info{margin-top:20vh}#main-content .home-brand{font-size:75px;font-weight:800;color:#081642;line-height:1.2em}#main-content .home-subtitle{font-size:21px;color:#1d2b5a;margin-top:15px}#main-content .home-btn-panel{margin-top:40px}#main-content .btn-index-home{min-width:150px;padding:15px 10px;border-radius:30px;background-color:#fff;border:1px solid #F72C5B;color:#F72C5B;opacity:0.8;font-size:16px}#main-content .btn-index-home:first-child{background-color:#F72C5B;color:#fff;opacity:1}#main-content .btn-index-home:first-child .index-home-svg{left:-3px;top:3px}#main-content .btn-index-home:hover,#main-content .btn-index-home:focus{-webkit-box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2);box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2)}#main-content .btn-index-github{min-width:56px;height:56px;background:transparent;border:none;opacity:0.5}#main-content .btn-index-github:hover{opacity:1}#main-content .index-home-svg{position:relative;top:4px;left:-6px}#main-content .home-chart{height:60%;top:16%;position:absolute;right:50px;z-index:-100}#main-content .home-chart img{max-height:100%}#main-content #events-section{margin:20px 0 60px 0}#main-content .banner-section{position:relative;margin-top:-5px}#main-content .banner-section a{display:block;text-align:center}#main-content .banner-img{width:100%}#main-content h2{margin:35px 0 5px 0}#main-content .row{margin-top:20px;margin-bottom:20px}#main-content section.normal{padding-top:50px;padding-bottom:165px;text-align:center}#reference{font-size:1.6rem;font-weight:400;line-height:2.4rem;text-align:center;background-image:url("../images/map.png");background-repeat:no-repeat;background-position:center center;background-size:contain;color:#333}#reference #recommends{height:160px;position:relative;max-width:90%;width:600px;margin:0 auto;text-align:center}#reference .recommend{display:none;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s;position:absolute;bottom:0;width:100%}#reference .recommend.active{display:block}#reference .recommend p{margin:10px auto;font-size:20px;font-weight:400;color:#333}#reference .recommend p:before{display:inline-block;content:'';width:41px;height:37px;background-image:url("../images/yinhao.png");background-size:100%;margin-right:20px}#reference .person{margin:10px 0 20px 0;color:#949CB1}#reference .person .name{margin-top:-5px}#reference .people{height:100px}#reference .people img{width:70px;border-radius:50%;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s;border-color:white;opacity:0.5;display:inline-block;margin:15px 10px}#reference .people img.active{width:100px;margin:0;-webkit-box-shadow:1px 4px 8px 0 rgba(46,37,37,0.3);box-shadow:1px 4px 8px 0 rgba(46,37,37,0.3);border:4px solid white;opacity:1}#main-content #reference{margin-top:100px}#feature-section hr{display:inline-block;text-align:center;width:36px;margin:15px 0;height:2px;border:0;background-color:#5E7AD9}.index-features{margin-top:20px;text-align:center;color:#949CB1}.index-features h2{font-size:35px;font-weight:800;color:#090909}.index-feature{margin:30px 0}.index-feature-left{display:inline-block;position:absolute;width:107px;height:99px}.index-feature-icon{position:absolute;width:50%;left:28%;top:22.5%}.index-feature-right{display:inline-block;margin-left:127px}.index-feature-right h3{margin-top:10px;font-size:16px;font-weight:bold;color:#06133B}.index-feature-right p{margin-top:14px;line-height:1.75em}#publication{overflow:hidden;height:720px;opacity:0;-webkit-transition:1s;-o-transition:1s;transition:1s}#publication #start-line{position:relative;left:500px;top:95px;width:200px;z-index:-10}#publication #end-line{position:relative;left:1015px;top:-84px;width:257px;z-index:-10}#publication .container .paper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}#publication .container .paper .content{width:528px}#publication .container .paper .content h2{line-height:36px;font-weight:600;font-size:25px;color:#090909}#publication .container .paper .icon #paper-icon{width:530px}#publication p.note{margin-top:10px}#publication .pdf{display:inline-block;margin-top:20px;height:45px;width:237px;text-align:center;background:#5E7AD9;border-radius:22.5px;padding:13px 0;color:#fff;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}#publication .pdf:hover,#publication .pdf:focus{text-decoration:none;-webkit-box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2);box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2)}#gongzhonghao{margin:40px 0}#gongzhonghao img{width:150px;-webkit-box-shadow:0px 6px 12px 0 #eee;box-shadow:0px 6px 12px 0 #eee}#about-section{padding-top:40px;padding-bottom:90px;background-color:#fff}#about-section h3{font-weight:600;font-size:35px;color:#06133B}#about-section hr{display:inline-block;text-align:center;width:36px;height:2px;background-color:#8EE3A9;color:#8EE3A9;margin-top:24px;border:0px}#about-section p{font-size:12px;color:#949CB1;letter-spacing:0}#about-section .btn-panel{text-align:center;margin-top:30px}#about-section .btn-panel a{height:78px}#about-section .btn-panel a:hover{text-decoration:none}#about-section .btn-content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;height:100%;margin:20px 0;padding:9px 22px 9px 24px;text-indent:10px;position:relative;z-index:100;-webkit-transition:0.3s;-o-transition:0.3s;transition:0.3s;line-height:60px;-webkit-box-shadow:2px 4px 14px 4px rgba(112,114,124,0.2);box-shadow:2px 4px 14px 4px rgba(112,114,124,0.2);border-radius:8px}#about-section .btn-content .btn-logo{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}#about-section .btn-content .btn-logo span{margin-left:14px;font-size:20px;color:#06133B}#about-section .btn-content .btn-logo svg{height:41px;width:41px}#about-section .btn-content .icon-v-right{width:12px;height:12px;border:2px solid rgba(148,156,177,0.4);border-width:2px 2px 0 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);margin:0;line-height:60px}#about-section .btn-content .weixin-code{width:60px}#about-section .btn-content img{margin-right:10px;position:relative;top:-2px}@media (max-width: 992px){#main-content .home-info{width:100%;left:0;margin-left:0;text-align:center}#main-content .home-brand{font-size:55px}#main-content .home-chart{margin:0 auto;width:100%;left:0;text-align:center;top:15vh;opacity:0.3;right:auto}.single-btn-panel{text-align:center}#start-line,#paper-icon,#end-line{display:none}#publication{height:auto;margin:80px 10px}#publication .container .paper .content{width:100%}#publication .home-chart{top:140px}}@media (max-width: 768px){#main-content .home-brand{font-size:48px}#main-content .home-btn-panel{margin:40px auto}#main-content .home-subtitle{font-size:14px;margin-top:10px}#main-content .btn-index-home{display:block;margin:15px auto;width:220px}#main-content .feature-btn{margin:0 auto;margin-top:50px;text-align:center}#main-content .container .paper .content h2{font-size:20px;line-height:25px}#main-content .index-feature{margin:50px 0}#reference{background-size:cover}#reference .people{height:180px}}@media (max-width: 480px){#home-section .home-brand-panel{text-align:center}#home-section .home-brand-panel .btn{display:block;margin:10px auto}}.ch-main{position:relative;margin-top:100px;margin-left:100px}.ch-pc-chart{width:90%;height:280px;border-radius:12px;-webkit-box-shadow:6px 6px 22px #ccc;box-shadow:6px 6px 22px #ccc}.ch-pc-chart div{z-index:50 !important}.ch-mobile{position:absolute;right:0;width:180px;top:-30px;z-index:300}.ch-mobile-box{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ch-mobile-content{position:absolute;overflow:hidden;border-bottom-left-radius:5px;border-bottom-right-radius:5px;left:12%;right:12%;top:16%;bottom:15.5%;background:#333;z-index:300;padding:0;margin:0}.ch-mobile-chart{width:200%;height:200%;-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scale(0.5);-ms-transform:scale(0.5);transform:scale(0.5);padding:0;margin:0}.ch-mobile-chart div div{z-index:50 !important}.ch-on-touch .ch-pc-chart{width:auto}.ch-on-touch .ch-mobile{display:none}@media (max-width: 768px){.ch-main{margin-left:0}}@media (max-width: 480px){.ch-main{margin-top:0}}#ec-example-main #toolbar{top:81px}#ec-doc-main .ec-doc-tutorial .page-description h4{margin:1.33em 0;padding:0;font-weight:bold}#ec-doc-main .ec-doc-tutorial .page-description h5{margin:1.67em 0;padding:0;font-weight:bold}h1,h2,h3,h4,h5,h6,h7,p{font-weight:400;margin:0;padding:0}ul{list-style:none;padding:0;margin:0}img{max-width:100%}.clear :after{display:block;content:'';clear:both}iframe{border:1px solid #ccc}#download-table{margin:20px 0}#download-table td{padding:8px;text-align:left}#download-main{max-width:800px}#download-main .d-section{margin-top:20px;padding-top:20px}#download-main h2{font-size:25px;border-bottom:0;text-align:center;color:#5E7AD9;text-align:left}#download-main h3{margin-top:40px;font-size:18px;font-weight:bold;text-align:left}#download-main h3.first{margin-top:-20px}#download-main p{text-align:left}#download-main .center{text-align:center}#download-main h4{margin:10px auto;margin-top:20px;font-size:16px;font-weight:bold;text-align:left}#download-main h4 .warn{color:#A9334C}#download-main .list-wrap{margin:20px 0 0 0}#download-main .d-section-version h2{margin-top:-30px}#download-main .checksum{text-align:left;margin:20px 0;border-left:0;padding:0}#download-main .checksum p,#download-main .checksum li{font-size:14px}#download-main li{list-style:inherit;margin:5px 0}.download-note{margin-top:12px;line-height:20px;font-size:14px;color:#999;text-align:left}.paper-desc{text-align:left;margin:20px -20px;padding:20px;background-color:#f5f7fd}.paper-desc .paper-title{font-size:16px;margin-top:5px;font-weight:bold}.paper-desc .paper-author{font-size:12px;margin:10px 0px;color:#999}.paper-desc .paper-journal{font-size:14px}#download-row{text-align:center}.d-section{padding-top:50px;padding-bottom:25px;text-align:center;border-bottom:1px solid rgba(78,97,118,0.25);color:#6b7a89}.d-section{*zoom:1}.d-section:before,.d-section:after{display:table;line-height:0;content:""}.d-section:after{clear:both}.download-theme img{-webkit-box-shadow:0 0 1px rgba(0,0,0,0.3);box-shadow:0 0 1px rgba(0,0,0,0.3);-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}.download-theme img:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.3);box-shadow:0 0 20px rgba(0,0,0,0.3)}#download-main .d-section-version a,#download-main .d-section-gl a{text-decoration:none}#download-main .d-section-version a:hover .circle-wrap,#download-main .d-section-gl a:hover .circle-wrap{color:#fff;background-color:#45B4E8;-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);border-color:transparent}#download-main .d-section-version a:active .circle-wrap,#download-main .d-section-version a:focus .circle-wrap,#download-main .d-section-gl a:active .circle-wrap,#download-main .d-section-gl a:focus .circle-wrap{color:#fff;background-color:#2997D6;-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);border-color:transparent}#download-main .d-section-version .mode,#download-main .d-section-gl .mode{display:block;margin:38px 0 2px;font-size:17px}#download-main .d-section-version .text,#download-main .d-section-gl .text{margin-left:-10px;text-align:center;color:#333}#download-main .d-section-version .text span,#download-main .d-section-gl .text span{color:#333;opacity:0.7}.d-section-version{padding-bottom:50px}.d-section-version .row>div{height:220px}#download-main .circle-wrap{width:120px;height:120px;border-radius:50%;background-color:white;border:1px solid rgba(78,97,118,0.2);margin:0 auto;margin-bottom:15px;color:#5E7AD9;-webkit-transition:0.2s;-o-transition:0.2s;transition:0.2s}.more-btn{position:relative;display:block;margin:20px auto;margin-bottom:10px}.more-btn:after{display:block;content:'';width:19px;height:18px;background-image:url("../images/btn-arrow.png");background-size:80% 80%;position:absolute;background-repeat:no-repeat;right:20px;top:13px}.more-btn+p{color:#6b7a89}.btn-two{margin-left:15px;margin-right:15px;margin-bottom:10px;position:relative;text-align:left;padding-left:45px !important}.d-section-map ul,.d-section-theme ul{*zoom:1}.d-section-map ul:before,.d-section-map ul:after,.d-section-theme ul:before,.d-section-theme ul:after{display:table;line-height:0;content:""}.d-section-map ul:after,.d-section-theme ul:after{clear:both}.d-section-map li,.d-section-theme li{float:left;width:260px}.d-section-map .first-item,.d-section-theme .first-item{margin-right:160px}.hover-shadow{-webkit-box-shadow:0 0 1px rgba(0,0,0,0.3);box-shadow:0 0 1px rgba(0,0,0,0.3);-webkit-transition:0.5s ease-out;-o-transition:0.5s ease-out;transition:0.5s ease-out}.hover-shadow:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.3);box-shadow:0 0 20px rgba(0,0,0,0.3)}#download-extension-container h2{color:#5E7AD9;margin-bottom:5px}#download-extension-container p{margin:5px 0}#builder .warn{color:#F72C5B;margin-top:10px;font-size:16px;line-height:25px}#builder ul{margin:0px;padding:0px}#builder li{list-style:none}#title h1 span{margin-left:20px;font-size:34px;color:#888;font-weight:100}#title .download-version{margin:15px;font-size:18px;font-weight:bold}#title .download-version select{margin-left:10px}#configuration{width:1000px;margin:0 auto}#configuration p.desc{color:#6b7a89;font-size:16px}#configuration h3{font-family:noto-thin;margin:26px 0}#configuration>section{border-bottom:1px solid #e5e5e5;text-align:left}#configuration>section p{margin:20px 0}#configuration h3{margin:10px 0;color:#3c485c;font-size:26px;font-weight:normal}#configuration h3 span{font-size:16px;margin-left:5px}#configuration ul{margin:10px}#configuration li{display:inline-block;vertical-align:top;margin:20px 18px;text-align:center;width:120px;border:2px solid rgba(0,0,0,0);cursor:pointer;-webkit-transition:all 0.4s;-o-transition:all 0.4s;transition:all 0.4s}#configuration li input{display:none}#configuration li img{margin-top:5px;width:90px;height:90px;padding:5px 10px}#configuration li h5{color:#000;font-weight:normal;margin:10px 0;padding:0;line-height:18px;position:relative}#configuration li h5 span{font-size:12px;margin-left:3px}#configuration li:hover{-webkit-box-shadow:0px 0px 10px rgba(0,0,0,0.1);box-shadow:0px 0px 10px rgba(0,0,0,0.1)}#configuration li.checked{-webkit-box-shadow:0px 0px 15px rgba(41,60,85,0.2);box-shadow:0px 0px 15px rgba(41,60,85,0.2);border-radius:5px}#configuration li.checked h5::before{content:'';width:15px;height:15px;background-size:15px 15px;background-image:url(../images/builder/checked.png);display:inline-block;position:absolute;right:-2px;top:-107px;border-radius:0 3px 0 0}#other input{margin:0 10px 0 0;vertical-align:middle}#other label{font-size:16px}#other p.desc{font-size:14px;padding-left:10px}#other a{color:black}#other .other-option{margin-left:15px}#action{margin-top:50px;margin-bottom:100px;text-align:center}#email{border:1px solid #ccc;border-radius:20px;line-height:2em;width:250px;padding:5px 20px;outline:none;margin-top:20px}#build{margin-top:20px}.clear{clear:both}#about-page{margin-bottom:20px;text-align:center}#about-page section{padding:40px 15px}#about-page .contributor{max-width:800px}#about-page h3{margin-bottom:20px}#about-page p{color:#888;margin:5px 0}#about-page h4.group{text-align:left;border-left:4px solid;padding-left:15px}#about-page h4.group.pmc{margin:0px 0 10px 0;border-color:#E86C4B}#about-page h4.group.committer{margin:40px 0 40px 0;border-color:#40A7DC}#about-page h4.group.contributor{margin:40px 0 40px 0;border-color:#58A77C}#about-page h5{margin:5px 0;font-weight:bold}#about-page .about-person{margin:20px 0;height:150px}#about-page .about-person>a{display:inline-block;height:90px}#about-page .about-person>a img{height:88px}#about-page .about-person>a:hover img{-webkit-box-shadow:0 4px 9px 0 rgba(46,37,37,0.3);box-shadow:0 4px 9px 0 rgba(46,37,37,0.3);border-color:white}#about-page .about-person img{display:block;margin:0 auto;margin-bottom:10px;width:90px;border-radius:50%;border:4px solid white;border-color:transparent;-webkit-box-shadow:0 4px 9px 0 rgba(46,37,37,0);box-shadow:0 4px 9px 0 rgba(46,37,37,0);-webkit-transition-duration:0.5s;-o-transition-duration:0.5s;transition-duration:0.5s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}#about-page .about-person .about-desc{color:#888}#about-page .about-person.wait-for-you img{border:1px solid #ececec;padding:10px;margin-bottom:20px}#about-page .company{border-top:1px solid rgba(78,97,118,0.25);max-width:800px}#about-page .company h3{margin-bottom:40px}#about-page .company .col-md-3{height:80px}#about-send-logo{margin:20px 0 50px 0}#about-send-logo p{margin-top:10px}.not-found{padding:150px 0 160px;height:100%;background-color:#2a3c54;overflow:hidden}.not-found img{display:block;width:60%;margin:0 auto}.not-found .text{margin-top:50px;text-align:center;font-size:20px;color:#fff}.not-found .link{margin-left:10px;color:#3183c6}@media (max-width: 768px){.not-found .text{padding:0 15px;font-size:14px}}#maps .links{text-align:center}#maps .links a{display:inline-block;margin:0 5px}#maps h3{margin-top:20px}#maps h3 span{font-size:0.7em;display:inline-block;margin:0 4px}#maps h5{text-align:center}#maps .province{margin-top:10px;margin-bottom:10px}#maps #map-list{padding-bottom:40px}#maps section p{margin-bottom:0;color:#6b7a89}#map-example{margin-top:30px;margin-bottom:100px;line-height:2em;font-size:14px}#map-example h4{margin:20px 0 10px 0}#map-example .prettyprint{padding:10px;border:#ccc 1px solid}#themes{max-width:800px}#themes p.desc{color:#888}#themes h1{text-align:center}#themes h3 span{font-size:16px;margin-left:5px}#themes .theme{text-align:center}#themes .theme img{margin-top:20px;width:285px;-webkit-box-shadow:0 0 1px rgba(0,0,0,0.3);box-shadow:0 0 1px rgba(0,0,0,0.3);-webkit-transition:0.5s ease-out;-o-transition:0.5s ease-out;transition:0.5s ease-out;cursor:pointer}#themes .theme img:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.3);box-shadow:0 0 20px rgba(0,0,0,0.3)}#theme-configure-section{margin-top:40px}#theme-example{margin:50px 0 80px 0;line-height:2em;font-size:14px}#theme-example h4{margin:20px 0 10px 0}#theme-example .prettyprint{padding:10px;border:#ccc 1px solid}#theme-builder{margin:30px 0;text-align:center}#changelog{width:700px;margin:0 auto;margin-top:100px;margin-bottom:100px;font-family:'Microsoft Yahei'}#changelog p.desc{margin:10px 0}#changelog p{font-weight:normal}#changelog .time{color:#888;float:right;margin-top:-35px;margin-right:10px}#changelog h2{margin-top:50px;border-bottom:1px solid #ccc;padding-bottom:5px;margin-bottom:10px}#changelog strong{color:#c12c2c}#changelog strong a{color:#3cafa4}#changelog>ul{margin-left:-10px}#changelog li{margin:10px 0;padding:0 20px}#changelog pre{margin:10px 20px;border:none}#ec-doc-main{position:absolute;left:0;right:0;top:0;bottom:0}@media (max-width: 600px){#ec-doc-main{-webkit-overflow-scrolling:touch;position:static}#ec-doc-nav{position:static;margin-bottom:0}}#extension{margin-bottom:-40px}#extension .nav-container{text-align:center;border-bottom:1px solid rgba(78,97,118,0.25);height:52px}#extension .nav-tabs{display:inline-block;border-bottom:none}#extension .nav-tabs li>a{border:none;color:#5E7AD9}#extension .nav-tabs li>a:hover{background:transparent}#extension .nav-tabs li.active>a{color:#F72C5B;border-bottom:4px solid #F72C5B}#extension .tab-content{margin:40px 0}.extension{margin:10px 0 40px 0}.extension-content{-webkit-box-shadow:0 1px 4px 0 rgba(0,0,0,0.05);box-shadow:0 1px 4px 0 rgba(0,0,0,0.05);border:1px solid rgba(0,0,0,0.1);border-radius:4px}.extension-head{display:block}.extension-img{width:100%}.extension-info{padding:10px 15px;height:132px;overflow:hidden}@media (min-width: 992px){.extension-info:lang(en){height:195px}.extension-info:lang(zh){height:155px}}@media (min-width: 768px){.extension-info:lang(en){height:215px}}.extension-name{font-size:18px}.extension-author{margin-bottom:5px}.extension-author-name{display:inline-block;margin-right:5px}.extension-author-name+.extension-author-name{opacity:0.5}#submit-extension{text-align:center;padding-top:60px;padding-bottom:40px;background:#F4F7FC}#submit-extension h3{margin-bottom:10px}#submit-extension p{margin:2px 0;color:#6b7a89}#submit-extension a.btn{margin:20px 0 5px 0}#faq-page .page-detail li{margin:10px 0;list-style:circle}#maillist ul{list-style:circle;font-size:16px;padding-left:40px}#maillist li{margin:10px 0}#cheat-selector{margin-bottom:20px}#cheat-selector .selected .btn{background-color:#5E7AD9;border-color:#4B65BD;color:white}#cheat-chart{width:100%;height:400px}#cheat-detail{min-height:100px}#cheat-detail .desc{margin:10px 0 20px 0;font-size:14px;color:#555}.page-cheatsheet h2{font-size:22px;margin-top:30px;margin-bottom:10px}.page-cheatsheet h2:first-child{margin-top:0}.cheat-chart-item{display:inline-block;vertical-align:top;margin:20px 11px;text-align:center;width:120.5px;border:2px solid rgba(0,0,0,0);cursor:pointer;-webkit-transition:all 0.4s;-o-transition:all 0.4s;transition:all 0.4s}.cheat-chart-item:hover{-webkit-box-shadow:0px 0px 10px rgba(0,0,0,0.2);box-shadow:0px 0px 10px rgba(0,0,0,0.2)}.cheat-chart-item a{text-decoration:none}.cheat-chart-item img{margin-top:5px;width:90px;height:90px;padding:5px 10px}.cheat-chart-item h5{color:#000;font-weight:normal;margin:10px 0;padding:0;line-height:18px;position:relative}#page-events .page-content h2{border-bottom:none;margin-bottom:0;margin-top:80px}#page-events .page-content h2:first-child{margin-top:20px}.event{display:block;margin:15px 0;width:100%;border-radius:10px;-webkit-box-shadow:0 0 20px rgba(0,0,0,0.1);box-shadow:0 0 20px rgba(0,0,0,0.1);-webkit-transition:0.3s;-o-transition:0.3s;transition:0.3s;overflow:hidden}.event:hover{-webkit-box-shadow:0 10px 20px rgba(0,0,0,0.2);box-shadow:0 10px 20px rgba(0,0,0,0.2)}.event.event-detail-img:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.1);box-shadow:0 0 20px rgba(0,0,0,0.1)}#apache-banner{position:fixed;left:0;right:0;bottom:0;padding:20px 40px 0;z-index:10000;background-color:rgba(0,0,0,0.6);color:#fff;display:none}#apache-banner .txt{width:80%;height:100%;display:inline-block}#apache-banner p{margin:5px 0}#apache-banner p a{color:#fff;text-decoration:underline}#apache-banner .btn{position:relative;bottom:20px;width:20%;height:100%;display:inline-block;background-color:#F72C5B;border-radius:6px;color:#fff;padding:10px}#apache-banner .btn:hover{-webkit-box-shadow:none;box-shadow:none}#apache-banner .close-btn{position:absolute;padding:5px;right:15px;top:15px;color:#fff}#apache-banner .close-btn:hover{text-decoration:none}@media (max-width: 768px){#apache-banner{padding:15px}#apache-banner .txt{width:100%;height:auto;display:block;margin-top:20px}#apache-banner .btn{width:100%;height:auto;display:block;top:0}#apache-banner .close-btn{top:10px}}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#F72C5B;position:fixed;z-index:100000;top:0;right:100%;width:100%;height:2px}.pace .pace-progress-inner{display:block;position:absolute;right:0px;width:100px;height:100%;-webkit-box-shadow:0 0 10px #F72C5B,0 0 5px #F72C5B;box-shadow:0 0 10px #F72C5B,0 0 5px #F72C5B;opacity:1.0;-webkit-transform:rotate(3deg) translate(0px, -4px);-ms-transform:rotate(3deg) translate(0px, -4px);transform:rotate(3deg) translate(0px, -4px)}.btn-main{border-radius:20px;padding:8px 50px;-webkit-transition-duration:0.5s;-o-transition-duration:0.5s;transition-duration:0.5s}.btn-main+.btn{margin-left:15px}.btn-main img{width:20px;margin-right:10px;margin-top:-2px;margin-left:-5px}.btn-main:hover{-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5)}.btn-main:focus,.btn-main:active{-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5)}.btn-thirdary{width:180px;-webkit-box-shadow:1px 3px 8px 0 rgba(25,119,173,0.4);box-shadow:1px 3px 8px 0 rgba(25,119,173,0.4);background-color:#3FA5DC;padding:9px 10px;color:white;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}.btn-thirdary:hover{color:white;background-color:#45B4E8}.btn-thirdary:focus,.btn-thirdary:active{color:white;background-color:#2997D6}.btn-blue{background-color:#47ACE3;color:white;-webkit-box-shadow:1px 4px 8px 0 rgba(25,119,173,0.4);box-shadow:1px 4px 8px 0 rgba(25,119,173,0.4)}.btn-blue:hover{background-color:#46B5F1;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5)}.btn-blue:focus{background-color:#2E9FDC;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5)}.btn-red{background-color:#FF424F;color:white;-webkit-box-shadow:1px 4px 8px 0 rgba(174,44,53,0.4);box-shadow:1px 4px 8px 0 rgba(174,44,53,0.4)}.btn-red:hover{background-color:#FF4F4B;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5);box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5)}.btn-red:focus{background-color:#EE2A38;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5);box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5)}.btn-green{background-color:#80BB6A;color:white}.btn-green:hover,.btn-green:focus{background-color:#95CC81;color:white;-webkit-box-shadow:1px 3px 8px 0 rgba(76,151,47,0.4);box-shadow:1px 3px 8px 0 rgba(76,151,47,0.4)}.btn-default{background-color:white;color:#40A7DC;border:1px solid #40A7DC}.btn-default:hover,.btn-default:focus{background-color:#40A7DC;color:white;border:1px solid #40A7DC}.btn-group{margin:0 5px}.btn-group .caret{margin-left:5px}::-webkit-scrollbar{height:8px;width:8px;-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;border-radius:2px}::-webkit-scrollbar-button{display:none}::-webkit-scrollbar-thumb{width:8px;min-height:15px;background:rgba(50,50,50,0.3) !important;-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.5) !important}
+@font-face{font-family:'iconfont';src:url("font/iconfont.eot");src:url("font/iconfont.eot?#iefix") format("embedded-opentype"),url("font/iconfont.woff") format("woff"),url("font/iconfont.ttf") format("truetype"),url("font/iconfont.svg#iconfont") format("svg")}.iconfont{font-family:"iconfont" !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:url(font/OpenSans-Regular.ttf) format("truetype")}@font-face{font-family:'Open Sans';font-style:bold;font-weight:800;src:url(font/OpenSans-Bold.ttf) format("truetype")}html{height:100%}body{font-family:'Open Sans', "PingFang SC", Helvetica, Arial, sans-serif}#lowie-main{display:none}.lower-ie #main{display:none}.lower-ie #lowie-main{display:block;height:100%;width:100%;padding:200px 0 100px;background-color:#2a3c54}.lower-ie #lowie-main img{display:block;width:60%;margin:0 auto}#v4-link{position:fixed;bottom:0;left:50%;width:200px;margin-left:-100px;text-align:center;z-index:1000;padding:5px 30px}.navbar-default{border:none;background-color:#fff;z-index:10000;-webkit-transition:background-color 0.5s linear;-o-transition:background-color 0.5s linear;transition:background-color 0.5s linear;height:50px;-webkit-box-shadow:0 0 20px rgba(0,0,0,0.2);box-shadow:0 0 20px rgba(0,0,0,0.2)}.navbar-default .navbar-nav{-webkit-transition:background-color 0.5s linear;-o-transition:background-color 0.5s linear;transition:background-color 0.5s linear}.navbar-default .navbar-nav li{position:relative}.navbar-default .navbar-nav li a{color:#081642;background-color:none !important;padding:15px 20px;-webkit-transition:0.5s background-color;-o-transition:0.5s background-color;transition:0.5s background-color;font-size:14px}.navbar-default .navbar-nav li a:before{content:'';position:absolute;left:50%;right:50%;top:0;background:#081642;height:3px;-webkit-transition-property:'left, right';-o-transition-property:'left, right';transition-property:'left, right';-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.navbar-default .navbar-nav li a:hover,.navbar-default .navbar-nav li a:focus{color:#081642;background-color:#f9f9f9}.navbar-default .navbar-nav li a:hover:before,.navbar-default .navbar-nav li a:focus:before{left:0;right:0}.navbar-default .navbar-nav li a .iconfont{font-size:12px}.navbar-default .navbar-nav li a .new{display:inline-block;padding:0 5px;background-color:#F72C5B;color:#fff;font-size:12px;border-radius:3px;vertical-align:middle;-webkit-transform:scale(0.8);-ms-transform:scale(0.8);transform:scale(0.8)}.navbar-default .navbar-nav li.open{background-color:#f9f9f9;color:#fff}.navbar-default .navbar-nav li.open>a:focus,.navbar-default .navbar-nav li.open>a:hover{color:#081642;background-color:#f9f9f9}.navbar-default .navbar-nav li.active>a{padding-top:11px;border-top:3px solid #F72C5B;color:#F72C5B;background-color:#fff;-webkit-transition:0.5s background-color;-o-transition:0.5s background-color;transition:0.5s background-color}.navbar-default .navbar-nav li.active>a:before{display:none}.navbar-default .navbar-nav li.active>a:hover,.navbar-default .navbar-nav li.active>a:focus{color:#FF6D8F;background-color:#f9f9f9}.navbar-default .navbar-nav li .dropdown-menu{width:250px;padding:0;border:none}.navbar-default .navbar-nav li .dropdown-menu li{background-color:#fff;border-top:none}.navbar-default .navbar-nav li .dropdown-menu li a{padding:13px 20px}.navbar-default .navbar-nav li .dropdown-menu li:hover,.navbar-default .navbar-nav li .dropdown-menu li:focus{background-color:#f9f9f9}.navbar-default .navbar-nav li .dropdown-menu li:hover a,.navbar-default .navbar-nav li .dropdown-menu li:focus a{color:#344C9B;background-color:#f9f9f9}.navbar-default .navbar-nav li ul{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.1);box-shadow:0 0 20px rgba(0,0,0,0.1);border-radius:0 0 10px 10px;overflow:hidden}.navbar-default .navbar-nav li ul a:before{display:none}.navbar-default .navbar-logo{height:32px;margin-top:-6px;margin-left:-2px}.navbar-default #navbar-collapse{border-top:none;background:#fff;margin-left:-25px;margin-right:-15px}.navbar-default .navbar-toggle{padding:1px 5px;margin:7px 16px 0 0;border-color:#ddd;background-color:#fff}.navbar-default .navbar-toggle .icon-bar{margin:7px 0 !important;height:1px;background-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{border-color:#ddd;background-color:#f9f9f9}.container-fluid{padding:0 25px}#menu-btn{display:none;float:right;height:45px;line-height:45px;margin:5px 20px 0 0;font-size:30px;color:#fff;cursor:pointer}.navbar-bg{background-color:#fff;-webkit-transition-duration:0.3s;-o-transition-duration:0.3s;transition-duration:0.3s;-webkit-transition-property:background-color, opacity;-o-transition-property:background-color, opacity;transition-property:background-color, opacity}.navbar-bg .navbar-nav li a{color:#081642}.navbar-bg .navbar-nav li.active a{color:#F72C5B;background-color:transparent}#nav-apache{margin-left:10px;margin-right:10px;position:relative;top:1px}#nav-apache a{padding:10px 15px}#nav-apache a img{height:30px}#nav-github{height:50px;overflow:hidden}#nav-github a{padding-top:13px}.nav-circle{height:50px}.nav-circle-inner{width:22px;height:22px;margin:14px 20px;text-align:center;overflow:hidden;border:1px solid;border-radius:50%}.navbar-default .navbar-nav li .nav-circle-inner a{height:100%;padding:0;font-size:12px}.navbar-default .navbar-nav li .nav-circle-inner a:hover{text-decoration:none}.icon-external-link{position:relative;top:2px;left:5px;opacity:0.5}@media (max-width: 768px){.navbar-default .navbar-nav{-webkit-transition:background-color 0.5s linear;-o-transition:background-color 0.5s linear;transition:background-color 0.5s linear;margin-top:0;margin-bottom:0}.navbar-default .navbar-nav li.active>a{border-left:3px solid #081642;border-top:none;padding:10px 15px 10px 11px}#menu-btn{display:block}#nav-download{display:none}.dropdown-menu{width:100% !important}}@media (max-width: 1280px) and (min-width: 1192px){.navbar-default .navbar-nav li a{padding:15px 15px}}@media (max-width: 1192px) and (min-width: 900px){.navbar-default .navbar-nav li a{padding:15px 8px}}@media (max-width: 900px) and (min-width: 768px){.navbar-default .navbar-nav li a{padding:15px 3px;font-size:12px}}@media (max-width: 1065px){#nav-apache{display:none}}.page-main{position:absolute;left:0;right:0;top:50px;bottom:0;overflow-y:auto}.doc-version-change{position:absolute;top:70px;right:50px;z-index:100}.doc-version-change a{display:inline-block;margin-left:20px}.section-bg{background:#F4F7FC;padding:10px 0}.d-section.last-section{margin-bottom:30px;border-bottom:0}.page-info{margin-bottom:30px;text-align:center;padding:40px;color:#4e6167;background:#F4F7FC}.page-info h1{margin-bottom:5px;font-size:40px;font-weight:bold;color:#333}.page-info p{font-size:16px}.page-info-echarts{font-size:12px;margin-top:15px;color:#8E99AB}.page-content{min-height:300px;padding-bottom:40px;font-size:16px;line-height:22px}.page-content h2{color:#C42E51;padding-bottom:15px;border-bottom:1px solid #ddd;margin-top:40px;margin-bottom:20px}.page-content h2:first-child{margin-top:0}.page-content h3{margin:30px 0 10px 0}.page-content p{margin:10px 0}.page-content section{padding:40px 0;text-align:center}.page-content td,.page-content th{padding:5px 10px;border:1px solid #ddd}.page-content td ol,.page-content th ol{padding-left:1em}.page-content ul{padding-left:30px}.page-content ul li{list-style:disc}.page-content ol li{list-style:decimal}.page-content li{margin:5px 0}.page-nav{position:-webkit-sticky;position:sticky;overflow:auto;float:left;width:200px;top:20px;height:-webkit-calc(100vh - 100px);height:calc(100vh - 100px);margin:0 0 0 30px;padding:0 0 20px 0}.page-nav h4{margin:10px 0;color:#666;font-size:14px;padding-left:10px}.page-nav h4:first-child{margin-top:0}.page-nav h4.inner{margin:0;padding-left:0;font-size:18px}.page-nav a{border-left:1px solid rgba(78,97,103,0.25);color:#999;padding:7px 10px;display:block;position:relative}.page-nav a:before{content:'';position:absolute;top:50%;bottom:50%;background:#F72C5B;width:3px;left:-1px;-webkit-transition-property:'top, bottom';-o-transition-property:'top, bottom';transition-property:'top, bottom';-webkit-transition-duration:0.3s;-o-transition-duration:0.3s;transition-duration:0.3s;-webkit-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.page-nav a:hover{text-decoration:none;color:#333}.page-nav a:hover:before{top:0;bottom:0}.page-nav a.active{color:#F72C5B}.page-nav .slide-btn{display:none}.page-detail{margin-left:220px;margin-bottom:20px;padding:0 40px 0 40px;overflow-x:hidden}.page-detail h2{margin:10px 0;padding-top:20px;font-size:22px}.page-detail h2:first-child{margin-top:0;padding-top:0}.page-detail h2+h3{margin-top:20px}.page-detail h3{margin:40px 0 15px 0;font-size:18px}.page-detail p{margin:15px 0}.page-detail li{padding-left:0}.page-detail li li{margin:5px 0}.page-detail .time{float:right;position:relative;top:-35px}@media screen and (max-device-width: 600px){.page-content.single-page{position:static}.page-content.slide-up .page-nav ul{display:none}.page-info{text-align:left;padding:15px;margin-bottom:10px}.page-info h1{margin-bottom:10px}.page-nav{position:static}.page-nav .slide-btn{display:block;color:#F72C5B;position:absolute;right:20px;margin-top:10px}.page-detail{position:static;margin-left:0;padding:0 15px}.page-detail h2{padding-top:20px}.page-detail h2:first-child{padding-top:0}}#download-extension-container{max-width:800px}#download-extension-container .row{margin-top:40px;margin-bottom:40px}#reference{padding:90px 0 140px 0;text-align:center}footer{min-height:190px;background-color:#202D42;color:#808795;font-size:14px}footer.inner-footer{background-color:transparent;border-top:1px solid #eee;margin-top:40px;color:#aaa;font-size:12px}footer.inner-footer .container{padding:0}footer.inner-footer p{line-height:20px}footer.inner-footer .row{margin-top:20px !important}footer.inner-footer #footer-icon-panel{text-align:right}footer.inner-footer #footer-icon-panel img{margin-top:20px;width:250px}footer .row{margin-top:50px !important;margin-bottom:0 !important}footer .logo img{display:block;margin-bottom:20px;width:109px}footer .footer-apache-logo{width:300px;max-width:80%;margin:0 0 10px 0}footer #echarts-copyright{color:rgba(255,255,255,0.4);margin:65px 0 20px 0;font-size:1.2rem}footer h3{color:#fff;font-size:1.5rem;margin:10px 0}footer ul{height:150px}footer ul dt{width:50%;float:left;font-weight:300}footer ul li{font-weight:300}footer ul a{color:rgba(255,255,255,0.4);font-size:1.2rem;margin:5px 0}footer ul a:hover{color:rgba(255,255,255,0.8)}footer .icon-panel{margin-top:20px}footer .footer-icon{display:inline-block;width:40px;height:40px;border-radius:50px;margin-right:10px;padding:8px 10px;border:1px solid white;opacity:0.5;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}footer .footer-icon:hover{opacity:1}@media (max-width: 992px){footer .footer-apache-logo{-webkit-transform:scale(0.7);-ms-transform:scale(0.7);transform:scale(0.7)}footer .icon-panel{margin:20px 0}footer #echarts-copyright{margin:20px 0;text-align:center}}@media (max-width: 768px){footer .logo img{margin:0 auto}footer #footer-icon-panel{text-align:center}footer #echarts-copyright{text-align:center}}html{overflow-x:hidden}body{width:100%;background-color:#fff}#main-content{overflow:hidden;color:#949CB1}#main-content a{color:#5E7AD9}#main-content .more{text-align:center;display:block}#main-content footer{font-weight:400 !important}#main-content footer h3{color:white}#main-content #home-section{width:100%;height:100vh;overflow:hidden}#main-content .home-brand-panel{margin:0 auto;height:100%;padding:0 30px;position:relative}#main-content .home-info{margin-top:20vh}#main-content .home-brand{font-size:75px;font-weight:800;color:#081642;line-height:1.2em}#main-content .home-subtitle{font-size:21px;color:#1d2b5a;margin-top:15px}#main-content .home-btn-panel{margin-top:40px}#main-content .btn-index-home{min-width:150px;padding:15px 10px;border-radius:30px;background-color:#fff;border:1px solid #F72C5B;color:#F72C5B;opacity:0.8;font-size:16px}#main-content .btn-index-home:first-child{background-color:#F72C5B;color:#fff;opacity:1}#main-content .btn-index-home:first-child .index-home-svg{left:-3px;top:3px}#main-content .btn-index-home:hover,#main-content .btn-index-home:focus{-webkit-box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2);box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2)}#main-content .btn-index-github{min-width:56px;height:56px;background:transparent;border:none;opacity:0.5}#main-content .btn-index-github:hover{opacity:1}#main-content .index-home-svg{position:relative;top:4px;left:-6px}#main-content .home-chart{height:60%;top:16%;position:absolute;right:50px;z-index:-100}#main-content .home-chart img{max-height:100%}#main-content #events-section{margin:20px 0 60px 0}#main-content .banner-section{position:relative;margin-top:-5px}#main-content .banner-section a{display:block;text-align:center}#main-content .banner-img{width:100%}#main-content h2{margin:35px 0 5px 0}#main-content .row{margin-top:20px;margin-bottom:20px}#main-content section.normal{padding-top:50px;padding-bottom:165px;text-align:center}#reference{font-size:1.6rem;font-weight:400;line-height:2.4rem;text-align:center;background-image:url("../images/map.png");background-repeat:no-repeat;background-position:center center;background-size:contain;color:#333}#reference #recommends{height:160px;position:relative;max-width:90%;width:600px;margin:0 auto;text-align:center}#reference .recommend{display:none;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s;position:absolute;bottom:0;width:100%}#reference .recommend.active{display:block}#reference .recommend p{margin:10px auto;font-size:20px;font-weight:400;color:#333}#reference .recommend p:before{display:inline-block;content:'';width:41px;height:37px;background-image:url("../images/yinhao.png");background-size:100%;margin-right:20px}#reference .person{margin:10px 0 20px 0;color:#949CB1}#reference .person .name{margin-top:-5px}#reference .people{height:100px}#reference .people img{width:70px;border-radius:50%;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s;border-color:white;opacity:0.5;display:inline-block;margin:15px 10px}#reference .people img.active{width:100px;margin:0;-webkit-box-shadow:1px 4px 8px 0 rgba(46,37,37,0.3);box-shadow:1px 4px 8px 0 rgba(46,37,37,0.3);border:4px solid white;opacity:1}#main-content #reference{margin-top:100px}#feature-section hr{display:inline-block;text-align:center;width:36px;margin:15px 0;height:2px;border:0;background-color:#5E7AD9}.index-features{margin-top:20px;text-align:center;color:#949CB1}.index-features h2{font-size:35px;font-weight:800;color:#090909}.index-feature{margin:30px 0}.index-feature-left{display:inline-block;position:absolute;width:107px;height:99px}.index-feature-icon{position:absolute;width:50%;left:28%;top:22.5%}.index-feature-right{display:inline-block;margin-left:127px}.index-feature-right h3{margin-top:10px;font-size:16px;font-weight:bold;color:#06133B}.index-feature-right p{margin-top:14px;line-height:1.75em}#publication{overflow:hidden;height:720px;opacity:0;-webkit-transition:1s;-o-transition:1s;transition:1s}#publication #start-line{position:relative;left:500px;top:95px;width:200px;z-index:-10}#publication #end-line{position:relative;left:1015px;top:-84px;width:257px;z-index:-10}#publication .container .paper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}#publication .container .paper .content{width:528px}#publication .container .paper .content h2{line-height:36px;font-weight:600;font-size:25px;color:#090909}#publication .container .paper .icon #paper-icon{width:530px}#publication p.note{margin-top:10px}#publication .pdf{display:inline-block;margin-top:20px;height:45px;width:237px;text-align:center;background:#5E7AD9;border-radius:22.5px;padding:13px 0;color:#fff;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}#publication .pdf:hover,#publication .pdf:focus{text-decoration:none;-webkit-box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2);box-shadow:0px 5px 10px 0 rgba(0,0,0,0.2)}#gongzhonghao{margin:40px 0}#gongzhonghao img{width:150px;-webkit-box-shadow:0px 6px 12px 0 #eee;box-shadow:0px 6px 12px 0 #eee}#about-section{padding-top:40px;padding-bottom:90px;background-color:#fff}#about-section h3{font-weight:600;font-size:35px;color:#06133B}#about-section hr{display:inline-block;text-align:center;width:36px;height:2px;background-color:#8EE3A9;color:#8EE3A9;margin-top:24px;border:0px}#about-section p{font-size:12px;color:#949CB1;letter-spacing:0}#about-section .btn-panel{text-align:center;margin-top:30px}#about-section .btn-panel a{height:78px}#about-section .btn-panel a:hover{text-decoration:none}#about-section .btn-content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;height:100%;margin:20px 0;padding:9px 22px 9px 24px;text-indent:10px;position:relative;z-index:100;-webkit-transition:0.3s;-o-transition:0.3s;transition:0.3s;line-height:60px;-webkit-box-shadow:2px 4px 14px 4px rgba(112,114,124,0.2);box-shadow:2px 4px 14px 4px rgba(112,114,124,0.2);border-radius:8px}#about-section .btn-content .btn-logo{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}#about-section .btn-content .btn-logo span{margin-left:14px;font-size:20px;color:#06133B}#about-section .btn-content .btn-logo svg{height:41px;width:41px}#about-section .btn-content .icon-v-right{width:12px;height:12px;border:2px solid rgba(148,156,177,0.4);border-width:2px 2px 0 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);margin:0;line-height:60px}#about-section .btn-content .weixin-code{width:60px}#about-section .btn-content img{margin-right:10px;position:relative;top:-2px}@media (max-width: 992px){#main-content .home-info{width:100%;left:0;margin-left:0;text-align:center}#main-content .home-brand{font-size:55px}#main-content .home-chart{margin:0 auto;width:100%;left:0;text-align:center;top:15vh;opacity:0.3;right:auto}.single-btn-panel{text-align:center}#start-line,#paper-icon,#end-line{display:none}#publication{height:auto;margin:80px 10px}#publication .container .paper .content{width:100%}#publication .home-chart{top:140px}}@media (max-width: 768px){#main-content .home-brand{font-size:48px}#main-content .home-btn-panel{margin:40px auto}#main-content .home-subtitle{font-size:14px;margin-top:10px}#main-content .btn-index-home{display:block;margin:15px auto;width:220px}#main-content .feature-btn{margin:0 auto;margin-top:50px;text-align:center}#main-content .container .paper .content h2{font-size:20px;line-height:25px}#main-content .index-feature{margin:50px 0}#reference{background-size:cover}#reference .people{height:180px}}@media (max-width: 480px){#home-section .home-brand-panel{text-align:center}#home-section .home-brand-panel .btn{display:block;margin:10px auto}}.ch-main{position:relative;margin-top:100px;margin-left:100px}.ch-pc-chart{width:90%;height:280px;border-radius:12px;-webkit-box-shadow:6px 6px 22px #ccc;box-shadow:6px 6px 22px #ccc}.ch-pc-chart div{z-index:50 !important}.ch-mobile{position:absolute;right:0;width:180px;top:-30px;z-index:300}.ch-mobile-box{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ch-mobile-content{position:absolute;overflow:hidden;border-bottom-left-radius:5px;border-bottom-right-radius:5px;left:12%;right:12%;top:16%;bottom:15.5%;background:#333;z-index:300;padding:0;margin:0}.ch-mobile-chart{width:200%;height:200%;-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scale(0.5);-ms-transform:scale(0.5);transform:scale(0.5);padding:0;margin:0}.ch-mobile-chart div div{z-index:50 !important}.ch-on-touch .ch-pc-chart{width:auto}.ch-on-touch .ch-mobile{display:none}@media (max-width: 768px){.ch-main{margin-left:0}}@media (max-width: 480px){.ch-main{margin-top:0}}#ec-example-main #toolbar{top:81px}#ec-doc-main .ec-doc-tutorial .page-description h4{margin:1.33em 0;padding:0;font-weight:bold}#ec-doc-main .ec-doc-tutorial .page-description h5{margin:1.67em 0;padding:0;font-weight:bold}h1,h2,h3,h4,h5,h6,h7,p{font-weight:400;margin:0;padding:0}ul{list-style:none;padding:0;margin:0}img{max-width:100%}.clear :after{display:block;content:'';clear:both}iframe{border:1px solid #ccc}#download-table{margin:20px 0}#download-table td{padding:8px;text-align:left}#download-main{max-width:800px}#download-main .d-section{margin-top:20px;padding-top:20px}#download-main h2{font-size:25px;border-bottom:0;text-align:center;color:#5E7AD9;text-align:left}#download-main h3{margin-top:40px;font-size:18px;font-weight:bold;text-align:left}#download-main h3.first{margin-top:-20px}#download-main p{text-align:left}#download-main .center{text-align:center}#download-main h4{margin:10px auto;margin-top:20px;font-size:16px;font-weight:bold;text-align:left}#download-main h4 .warn{color:#A9334C}#download-main .list-wrap{margin:20px 0 0 0}#download-main .d-section-version h2{margin-top:-30px}#download-main .checksum{text-align:left;margin:20px 0;border-left:0;padding:0}#download-main .checksum p,#download-main .checksum li{font-size:14px}#download-main li{list-style:inherit;margin:5px 0}.download-note{margin-top:12px;line-height:20px;font-size:14px;color:#999;text-align:left}.paper-desc{text-align:left;margin:20px -20px;padding:20px;background-color:#f5f7fd}.paper-desc .paper-title{font-size:16px;margin-top:5px;font-weight:bold}.paper-desc .paper-author{font-size:12px;margin:10px 0px;color:#999}.paper-desc .paper-journal{font-size:14px}#download-row{text-align:center}.d-section{padding-top:50px;padding-bottom:25px;text-align:center;border-bottom:1px solid rgba(78,97,118,0.25);color:#6b7a89}.d-section{*zoom:1}.d-section:before,.d-section:after{display:table;line-height:0;content:""}.d-section:after{clear:both}.download-theme img{-webkit-box-shadow:0 0 1px rgba(0,0,0,0.3);box-shadow:0 0 1px rgba(0,0,0,0.3);-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}.download-theme img:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.3);box-shadow:0 0 20px rgba(0,0,0,0.3)}#download-main .d-section-version a,#download-main .d-section-gl a{text-decoration:none}#download-main .d-section-version a:hover .circle-wrap,#download-main .d-section-gl a:hover .circle-wrap{color:#fff;background-color:#45B4E8;-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);border-color:transparent}#download-main .d-section-version a:active .circle-wrap,#download-main .d-section-version a:focus .circle-wrap,#download-main .d-section-gl a:active .circle-wrap,#download-main .d-section-gl a:focus .circle-wrap{color:#fff;background-color:#2997D6;-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);border-color:transparent}#download-main .d-section-version .mode,#download-main .d-section-gl .mode{display:block;margin:38px 0 2px;font-size:17px}#download-main .d-section-version .text,#download-main .d-section-gl .text{margin-left:-10px;text-align:center;color:#333}#download-main .d-section-version .text span,#download-main .d-section-gl .text span{color:#333;opacity:0.7}.d-section-version{padding-bottom:50px}.d-section-version .row>div{height:220px}#download-main .circle-wrap{width:120px;height:120px;border-radius:50%;background-color:white;border:1px solid rgba(78,97,118,0.2);margin:0 auto;margin-bottom:15px;color:#5E7AD9;-webkit-transition:0.2s;-o-transition:0.2s;transition:0.2s}.more-btn{position:relative;display:block;margin:20px auto;margin-bottom:10px}.more-btn:after{display:block;content:'';width:19px;height:18px;background-image:url("../images/btn-arrow.png");background-size:80% 80%;position:absolute;background-repeat:no-repeat;right:20px;top:13px}.more-btn+p{color:#6b7a89}.btn-two{margin-left:15px;margin-right:15px;margin-bottom:10px;position:relative;text-align:left;padding-left:45px !important}.d-section-map ul,.d-section-theme ul{*zoom:1}.d-section-map ul:before,.d-section-map ul:after,.d-section-theme ul:before,.d-section-theme ul:after{display:table;line-height:0;content:""}.d-section-map ul:after,.d-section-theme ul:after{clear:both}.d-section-map li,.d-section-theme li{float:left;width:260px}.d-section-map .first-item,.d-section-theme .first-item{margin-right:160px}.hover-shadow{-webkit-box-shadow:0 0 1px rgba(0,0,0,0.3);box-shadow:0 0 1px rgba(0,0,0,0.3);-webkit-transition:0.5s ease-out;-o-transition:0.5s ease-out;transition:0.5s ease-out}.hover-shadow:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.3);box-shadow:0 0 20px rgba(0,0,0,0.3)}#download-extension-container h2{color:#5E7AD9;margin-bottom:5px}#download-extension-container p{margin:5px 0}#builder .warn{color:#F72C5B;margin-top:10px;font-size:16px;line-height:25px}#builder ul{margin:0px;padding:0px}#builder li{list-style:none}#title h1 span{margin-left:20px;font-size:34px;color:#888;font-weight:100}#title .download-version{margin:15px;font-size:18px;font-weight:bold}#title .download-version select{margin-left:10px}#configuration{width:1000px;margin:0 auto}#configuration p.desc{color:#6b7a89;font-size:16px}#configuration h3{font-family:noto-thin;margin:26px 0}#configuration>section{border-bottom:1px solid #e5e5e5;text-align:left}#configuration>section p{margin:20px 0}#configuration h3{margin:10px 0;color:#3c485c;font-size:26px;font-weight:normal}#configuration h3 span{font-size:16px;margin-left:5px}#configuration ul{margin:10px}#configuration li{display:inline-block;vertical-align:top;margin:20px 18px;text-align:center;width:120px;border:2px solid rgba(0,0,0,0);cursor:pointer;-webkit-transition:all 0.4s;-o-transition:all 0.4s;transition:all 0.4s}#configuration li input{display:none}#configuration li img{margin-top:5px;width:90px;height:90px;padding:5px 10px}#configuration li h5{color:#000;font-weight:normal;margin:10px 0;padding:0;line-height:18px;position:relative}#configuration li h5 span{font-size:12px;margin-left:3px}#configuration li:hover{-webkit-box-shadow:0px 0px 10px rgba(0,0,0,0.1);box-shadow:0px 0px 10px rgba(0,0,0,0.1)}#configuration li.checked{-webkit-box-shadow:0px 0px 15px rgba(41,60,85,0.2);box-shadow:0px 0px 15px rgba(41,60,85,0.2);border-radius:5px}#configuration li.checked h5::before{content:'';width:15px;height:15px;background-size:15px 15px;background-image:url(../images/builder/checked.png);display:inline-block;position:absolute;right:-2px;top:-107px;border-radius:0 3px 0 0}#other input{margin:0 10px 0 0;vertical-align:middle}#other label{font-size:16px}#other p.desc{font-size:14px;padding-left:10px}#other a{color:black}#other .other-option{margin-left:15px}#action{margin-top:50px;margin-bottom:100px;text-align:center}#email{border:1px solid #ccc;border-radius:20px;line-height:2em;width:250px;padding:5px 20px;outline:none;margin-top:20px}#build{margin-top:20px}.clear{clear:both}#about-page{margin-bottom:20px;text-align:center}#about-page section{padding:40px 15px}#about-page .contributor{max-width:800px}#about-page h3{margin-bottom:20px}#about-page p{color:#888;margin:5px 0}#about-page h4.group{text-align:left;border-left:4px solid;padding-left:15px}#about-page h4.group.pmc{margin:0px 0 10px 0;border-color:#E86C4B}#about-page h4.group.committer{margin:40px 0 40px 0;border-color:#40A7DC}#about-page h4.group.contributor{margin:40px 0 40px 0;border-color:#58A77C}#about-page h5{margin:5px 0;font-weight:bold}#about-page .about-person{margin:20px 0;height:150px}#about-page .about-person>a{display:inline-block;height:90px}#about-page .about-person>a img{height:88px}#about-page .about-person>a:hover img{-webkit-box-shadow:0 4px 9px 0 rgba(46,37,37,0.3);box-shadow:0 4px 9px 0 rgba(46,37,37,0.3);border-color:white}#about-page .about-person img{display:block;margin:0 auto;margin-bottom:10px;width:90px;border-radius:50%;border:4px solid white;border-color:transparent;-webkit-box-shadow:0 4px 9px 0 rgba(46,37,37,0);box-shadow:0 4px 9px 0 rgba(46,37,37,0);-webkit-transition-duration:0.5s;-o-transition-duration:0.5s;transition-duration:0.5s;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}#about-page .about-person .about-desc{color:#888}#about-page .about-person.wait-for-you img{border:1px solid #ececec;padding:10px;margin-bottom:20px}#about-page .company{border-top:1px solid rgba(78,97,118,0.25);max-width:800px}#about-page .company h3{margin-bottom:40px}#about-page .company .col-md-3{height:80px}#about-send-logo{margin:20px 0 50px 0}#about-send-logo p{margin-top:10px}.not-found{padding:150px 0 160px;height:100%;background-color:#2a3c54;overflow:hidden}.not-found img{display:block;width:60%;margin:0 auto}.not-found .text{margin-top:50px;text-align:center;font-size:20px;color:#fff}.not-found .link{margin-left:10px;color:#3183c6}@media (max-width: 768px){.not-found .text{padding:0 15px;font-size:14px}}#maps .links{text-align:center}#maps .links a{display:inline-block;margin:0 5px}#maps h3{margin-top:20px}#maps h3 span{font-size:0.7em;display:inline-block;margin:0 4px}#maps h5{text-align:center}#maps .province{margin-top:10px;margin-bottom:10px}#maps #map-list{padding-bottom:40px}#maps section p{margin-bottom:0;color:#6b7a89}#map-example{margin-top:30px;margin-bottom:100px;line-height:2em;font-size:14px}#map-example h4{margin:20px 0 10px 0}#map-example .prettyprint{padding:10px;border:#ccc 1px solid}#themes{max-width:800px}#themes p.desc{color:#888}#themes h1{text-align:center}#themes h3 span{font-size:16px;margin-left:5px}#themes .theme{text-align:center}#themes .theme img{margin-top:20px;width:285px;-webkit-box-shadow:0 0 1px rgba(0,0,0,0.3);box-shadow:0 0 1px rgba(0,0,0,0.3);-webkit-transition:0.5s ease-out;-o-transition:0.5s ease-out;transition:0.5s ease-out;cursor:pointer}#themes .theme img:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.3);box-shadow:0 0 20px rgba(0,0,0,0.3)}#theme-configure-section{margin-top:40px}#theme-example{margin:50px 0 80px 0;line-height:2em;font-size:14px}#theme-example h4{margin:20px 0 10px 0}#theme-example .prettyprint{padding:10px;border:#ccc 1px solid}#theme-builder{margin:30px 0;text-align:center}#changelog{width:700px;margin:0 auto;margin-top:100px;margin-bottom:100px;font-family:'Microsoft Yahei'}#changelog p.desc{margin:10px 0}#changelog p{font-weight:normal}#changelog .time{color:#888;float:right;margin-top:-35px;margin-right:10px}#changelog h2{margin-top:50px;border-bottom:1px solid #ccc;padding-bottom:5px;margin-bottom:10px}#changelog strong{color:#c12c2c}#changelog strong a{color:#3cafa4}#changelog>ul{margin-left:-10px}#changelog li{margin:10px 0;padding:0 20px}#changelog pre{margin:10px 20px;border:none}#ec-doc-main{position:absolute;left:0;right:0;top:0;bottom:0}@media (max-width: 600px){#ec-doc-main{-webkit-overflow-scrolling:touch;position:static}#ec-doc-nav{position:static;margin-bottom:0}}#extension{margin-bottom:-40px}#extension .nav-container{text-align:center;border-bottom:1px solid rgba(78,97,118,0.25);height:52px}#extension .nav-tabs{display:inline-block;border-bottom:none}#extension .nav-tabs li>a{border:none;color:#5E7AD9}#extension .nav-tabs li>a:hover{background:transparent}#extension .nav-tabs li.active>a{color:#F72C5B;border-bottom:4px solid #F72C5B}#extension .tab-content{margin:40px 0}.extension{margin:10px 0 40px 0}.extension-content{-webkit-box-shadow:0 1px 4px 0 rgba(0,0,0,0.05);box-shadow:0 1px 4px 0 rgba(0,0,0,0.05);border:1px solid rgba(0,0,0,0.1);border-radius:4px}.extension-head{display:block}.extension-img{width:100%}.extension-info{padding:10px 15px;height:132px;overflow:hidden}@media (min-width: 992px){.extension-info:lang(en){height:195px}.extension-info:lang(zh){height:155px}}@media (min-width: 768px){.extension-info:lang(en){height:215px}}.extension-name{font-size:18px}.extension-author{margin-bottom:5px}.extension-author-name{display:inline-block;margin-right:5px}.extension-author-name+.extension-author-name{opacity:0.5}#submit-extension{text-align:center;padding-top:60px;padding-bottom:40px;background:#F4F7FC}#submit-extension h3{margin-bottom:10px}#submit-extension p{margin:2px 0;color:#6b7a89}#submit-extension a.btn{margin:20px 0 5px 0}#faq-page .page-detail li{margin:10px 0;list-style:circle}#maillist ul{list-style:circle;font-size:16px;padding-left:40px}#maillist li{margin:10px 0}#cheat-selector{margin-bottom:20px}#cheat-selector .selected .btn{background-color:#5E7AD9;border-color:#4B65BD;color:white}#cheat-chart{width:100%;height:400px}#cheat-detail{min-height:100px}#cheat-detail .desc{margin:10px 0 20px 0;font-size:14px;color:#555}.page-cheatsheet h2{font-size:22px;margin-top:30px;margin-bottom:10px}.page-cheatsheet h2:first-child{margin-top:0}.cheat-chart-item{display:inline-block;vertical-align:top;margin:20px 11px;text-align:center;width:120.5px;border:2px solid rgba(0,0,0,0);cursor:pointer;-webkit-transition:all 0.4s;-o-transition:all 0.4s;transition:all 0.4s}.cheat-chart-item:hover{-webkit-box-shadow:0px 0px 10px rgba(0,0,0,0.2);box-shadow:0px 0px 10px rgba(0,0,0,0.2)}.cheat-chart-item a{text-decoration:none}.cheat-chart-item img{margin-top:5px;width:90px;height:90px;padding:5px 10px}.cheat-chart-item h5{color:#000;font-weight:normal;margin:10px 0;padding:0;line-height:18px;position:relative}#page-events .page-content h2{border-bottom:none;margin-bottom:0;margin-top:80px}#page-events .page-content h2:first-child{margin-top:20px}.event{display:block;margin:15px 0;width:100%;border-radius:10px;-webkit-box-shadow:0 0 20px rgba(0,0,0,0.1);box-shadow:0 0 20px rgba(0,0,0,0.1);-webkit-transition:0.3s;-o-transition:0.3s;transition:0.3s;overflow:hidden}.event:hover{-webkit-box-shadow:0 10px 20px rgba(0,0,0,0.2);box-shadow:0 10px 20px rgba(0,0,0,0.2)}.event.event-detail-img:hover{-webkit-box-shadow:0 0 20px rgba(0,0,0,0.1);box-shadow:0 0 20px rgba(0,0,0,0.1)}.page-spa-container{position:absolute;top:51px;bottom:0;left:0;right:0}#apache-banner{position:fixed;left:0;right:0;bottom:0;padding:20px 40px 0;z-index:10000;background-color:rgba(0,0,0,0.6);color:#fff;display:none}#apache-banner .txt{width:80%;height:100%;display:inline-block}#apache-banner p{margin:5px 0}#apache-banner p a{color:#fff;text-decoration:underline}#apache-banner .btn{position:relative;bottom:20px;width:20%;height:100%;display:inline-block;background-color:#F72C5B;border-radius:6px;color:#fff;padding:10px}#apache-banner .btn:hover{-webkit-box-shadow:none;box-shadow:none}#apache-banner .close-btn{position:absolute;padding:5px;right:15px;top:15px;color:#fff}#apache-banner .close-btn:hover{text-decoration:none}@media (max-width: 768px){#apache-banner{padding:15px}#apache-banner .txt{width:100%;height:auto;display:block;margin-top:20px}#apache-banner .btn{width:100%;height:auto;display:block;top:0}#apache-banner .close-btn{top:10px}}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#F72C5B;position:fixed;z-index:100000;top:0;right:100%;width:100%;height:2px}.pace .pace-progress-inner{display:block;position:absolute;right:0px;width:100px;height:100%;-webkit-box-shadow:0 0 10px #F72C5B,0 0 5px #F72C5B;box-shadow:0 0 10px #F72C5B,0 0 5px #F72C5B;opacity:1.0;-webkit-transform:rotate(3deg) translate(0px, -4px);-ms-transform:rotate(3deg) translate(0px, -4px);transform:rotate(3deg) translate(0px, -4px)}.btn-main{border-radius:20px;padding:8px 50px;-webkit-transition-duration:0.5s;-o-transition-duration:0.5s;transition-duration:0.5s}.btn-main+.btn{margin-left:15px}.btn-main img{width:20px;margin-right:10px;margin-top:-2px;margin-left:-5px}.btn-main:hover{-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5)}.btn-main:focus,.btn-main:active{-webkit-box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 12px 0 rgba(25,119,173,0.5)}.btn-thirdary{width:180px;-webkit-box-shadow:1px 3px 8px 0 rgba(25,119,173,0.4);box-shadow:1px 3px 8px 0 rgba(25,119,173,0.4);background-color:#3FA5DC;padding:9px 10px;color:white;-webkit-transition:0.5s;-o-transition:0.5s;transition:0.5s}.btn-thirdary:hover{color:white;background-color:#45B4E8}.btn-thirdary:focus,.btn-thirdary:active{color:white;background-color:#2997D6}.btn-blue{background-color:#47ACE3;color:white;-webkit-box-shadow:1px 4px 8px 0 rgba(25,119,173,0.4);box-shadow:1px 4px 8px 0 rgba(25,119,173,0.4)}.btn-blue:hover{background-color:#46B5F1;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5)}.btn-blue:focus{background-color:#2E9FDC;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5);box-shadow:1px 4px 11px 0 rgba(25,119,173,0.5)}.btn-red{background-color:#FF424F;color:white;-webkit-box-shadow:1px 4px 8px 0 rgba(174,44,53,0.4);box-shadow:1px 4px 8px 0 rgba(174,44,53,0.4)}.btn-red:hover{background-color:#FF4F4B;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5);box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5)}.btn-red:focus{background-color:#EE2A38;color:white;-webkit-box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5);box-shadow:1px 4px 11px 0 rgba(174,44,53,0.5)}.btn-green{background-color:#80BB6A;color:white}.btn-green:hover,.btn-green:focus{background-color:#95CC81;color:white;-webkit-box-shadow:1px 3px 8px 0 rgba(76,151,47,0.4);box-shadow:1px 3px 8px 0 rgba(76,151,47,0.4)}.btn-default{background-color:white;color:#40A7DC;border:1px solid #40A7DC}.btn-default:hover,.btn-default:focus{background-color:#40A7DC;color:white;border:1px solid #40A7DC}.btn-group{margin:0 5px}.btn-group .caret{margin-left:5px}::-webkit-scrollbar{height:8px;width:8px;-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;border-radius:2px}::-webkit-scrollbar-button{display:none}::-webkit-scrollbar-thumb{width:8px;min-height:15px;background:rgba(50,50,50,0.3) !important;-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.5) !important}
diff --git a/zh/css/only_for_cdn_ready_check.css b/zh/css/only_for_cdn_ready_check.css
index fcf85c2..c81e775 100644
--- a/zh/css/only_for_cdn_ready_check.css
+++ b/zh/css/only_for_cdn_ready_check.css
@@ -1 +1 @@
-/* 1620894510041 OK */
\ No newline at end of file
+/* 1623211036275 OK */
\ No newline at end of file
diff --git a/zh/demo.html b/zh/demo.html
index fe3df4d..a54697d 100644
--- a/zh/demo.html
+++ b/zh/demo.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/dependencies.html b/zh/dependencies.html
index cf86658..5b1b310 100644
--- a/zh/dependencies.html
+++ b/zh/dependencies.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/documents/tutorial-parts/tutorial.js b/zh/documents/tutorial-parts/tutorial.js
index ef76dfc..093fdb8 100644
--- a/zh/documents/tutorial-parts/tutorial.js
+++ b/zh/documents/tutorial-parts/tutorial.js
@@ -63,7 +63,7 @@
     "desc": "<p>Apache ECharts<sup>TM</sup> 可以在服务端进行渲染。例如 <a href=\"https://echarts.apache.org/examples/zh/index.html\" target=\"_blank\">官方示例</a> 里的一个个小截图,就是在服务端预生成出来的。</p>\n<p>服务端渲染可以使用流行的 headless 环境,例如 <a href=\"https://github.com/GoogleChrome/puppeteer\" target=\"_blank\">puppeteer</a>、<a href=\"https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md\" target=\"_blank\">headless chrome</a>、<a href=\"https://github.com/Automattic/node-canvas\" target=\"_blank\">node-canvas</a>、<a href=\"https://github.com/jsdom/jsdom\" target=\"_blank\">jsdom</a>、<a href=\"http://phantomjs.org/\" target=\"_blank\">PhantomJS</a> 等。</p>\n<p>这是一些社区贡献的 echarts 服务端渲染方案:</p>\n<ul>\n<li><a href=\"https://github.com/hellosean1025/node-echarts\" target=\"_blank\">https://github.com/hellosean1025/node-echarts</a></li>\n<li><a href=\"https://github.com/chfw/echarts-scrappeteer\" target=\"_blank\">https://github.com/chfw/echarts-scrappeteer</a></li>\n<li><a href=\"https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js\" target=\"_blank\">https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js</a></li>\n<li><a href=\"https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73\" target=\"_blank\">https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73</a></li>\n</ul>\n"
   },
   "使用 Canvas 或者 SVG 渲染": {
-    "desc": "<p>浏览器端图表库大多会选择 SVG 或者 Canvas 进行渲染。对于绘制图表来说,这两种技术往往是可替换的,效果相近。但是在一些场景中,他们的表现和能力又有一定差异。于是,对它们的选择取舍,就成为了一个一直存在的不易有标准答案的话题。</p>\n<p>Apache ECharts<sup>TM</sup> 从初始一直使用 Canvas 绘制图表(除了对 IE8- 使用 VML)。而 <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">ECharts v4.0</a> 发布了 SVG 渲染器,从而提供了一种新的选择。只须在初始化一个图表实例时,设置 <a href=\"api.html#echarts.init\" target=\"_blank\">renderer 参数</a> 为 <code class=\"codespan\">&#39;canvas&#39;</code> 或 <code class=\"codespan\">&#39;svg&#39;</code> 即可指定渲染器,比较方便。</p>\n<blockquote>\n<p>SVG 和 Canvas 这两种使用方式差异很大的技术,能够做到同时被透明支持,主要归功于 ECharts 底层库 <a href=\"https://github.com/ecomfe/zrender\" target=\"_blank\">ZRender</a> 的抽象和实现,形成可互换的 SVG 渲染器和 Canvas 渲染器。</p>\n</blockquote>\n<h2 id=\"-\">选择哪种渲染器</h2>\n<p>一般来说,Canvas 更适合绘制图形元素数量非常大(这一般是由数据量大导致)的图表(如热力图、地理坐标系或平行坐标系上的大规模线图或散点图等),也利于实现某些视觉 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=lines-bmap-effect\" target=\"_blank\">特效</a>。但是,在不少场景中,SVG 具有重要的优势:它的内存占用更低(这对移动端尤其重要)、渲染性能略高、并且用户使用浏览器内置的缩放功能时不会模糊。例如,我们在一些硬件环境中分别使用 Canvas 渲染器和 SVG 渲染器绘制中等数据量的折、柱、饼,统计初始动画阶段的帧率,得到了一个性能对比图:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/canvas-vs-svg&reset=1\" width=\"90%\" height=\"400\" ></iframe>\n\n\n<p>上图显示出,在这些场景中,SVG 渲染器相比 Canvas 渲染器在移动端的总体表现更好。当然,这个实验并非是全面的评测,在另一些数据量较大或者有图表交互动画的场景中,目前的 SVG 渲染器的性能还比不过 Canvas 渲染器。但是同时有这两个选项,为开发者们根据自己的情况优化性能提供了更广阔的空间。</p>\n<p>选择哪种渲染器,我们可以根据软硬件环境、数据量、功能需求综合考虑。</p>\n<ul>\n<li>在软硬件环境较好,数据量不大的场景下(例如 PC 端做商务报表),两种渲染器都可以适用,并不需要太多纠结。</li>\n<li>在环境较差,出现性能问题需要优化的场景下,可以通过试验来确定使用哪种渲染器。比如有这些经验:<ul>\n<li>在须要创建很多 ECharts 实例且浏览器易崩溃的情况下(可能是因为 Canvas 数量多导致内存占用超出手机承受能力),可以使用 SVG 渲染器来进行改善。大略得说,如果图表运行在低端安卓机,或者我们在使用一些特定图表如 <a href=\"https://ecomfe.github.io/echarts-liquidfill/example/\" target=\"_blank\">水球图</a> 等,SVG 渲染器可能效果更好。</li>\n<li>数据量很大、较多交互时,可以选用 Canvas 渲染器。</li>\n</ul>\n</li>\n</ul>\n<p>我们强烈欢迎开发者们 <a href=\"https://github.com/apache/echarts/issues/new\" target=\"_blank\">反馈</a> 给我们使用的体验和场景,帮助我们更好的做优化。</p>\n<p>注:除了某些特殊的渲染可能依赖 Canvas:如<a href=\"option.html#series-lines.effect\" target=\"_blank\">炫光尾迹特效</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=heatmap-bmap\" target=\"_blank\">带有混合效果的热力图</a>等,绝大部分功能 SVG 都是支持的。此外,目前的 SVG 版中,富文本、材质功能尚未实现。</p>\n<h2 id=\"-\">如何使用渲染器</h2>\n<p>ECharts 默认使用 Canvas 渲染。如果想使用 SVG 渲染,ECharts 代码中须包括有 SVG 渲染器模块。</p>\n<ul>\n<li>ECharts 的 <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">预构建文件</a> 中,<a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.common.min.js\" target=\"_blank\">常用版</a> 和 <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js\" target=\"_blank\">完整版</a> 已经包含了 SVG 渲染器,可直接使用。而 <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.simple.min.js\" target=\"_blank\">精简版</a> 没有包括。</li>\n<li>如果 <a href=\"https://echarts.apache.org/zh/builder.html\" target=\"_blank\">在线自定义构建 ECharts</a>,则需要勾上页面下方的 “SVG 渲染”。</li>\n<li>如果 <a href=\"tutorial.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9E%84%E5%BB%BA%20ECharts\" target=\"_blank\">线下自定义构建 ECharts</a>,则须引入 SVG 渲染器模块,即:</li>\n</ul>\n<pre><code class=\"lang-js\">import &#39;zrender/lib/svg/svg&#39;;\n</code></pre>\n<p>然后,我们就可以在代码中,初始化图表实例时,<a href=\"api.html#echarts.init\" target=\"_blank\">传入参数</a> 选择渲染器类型:</p>\n<pre><code class=\"lang-js\">// 使用 Canvas 渲染器(默认)\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n// 等价于:\nvar chart = echarts.init(containerDom);\n\n// 使用 SVG 渲染器\nvar chart = echarts.init(containerDom, null, {renderer: &#39;svg&#39;});\n</code></pre>\n"
+    "desc": "<p>浏览器端图表库大多会选择 SVG 或者 Canvas 进行渲染。对于绘制图表来说,这两种技术往往是可替换的,效果相近。但是在一些场景中,他们的表现和能力又有一定差异。于是,对它们的选择取舍,就成为了一个一直存在的不易有标准答案的话题。</p>\n<p>Apache ECharts<sup>TM</sup> 从初始一直使用 Canvas 绘制图表(除了对 IE8- 使用 VML)。而 <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">ECharts v4.0</a> 发布了 SVG 渲染器,从而提供了一种新的选择。只须在初始化一个图表实例时,设置 <a href=\"api.html#echarts.init\" target=\"_blank\">renderer 参数</a> 为 <code class=\"codespan\">&#39;canvas&#39;</code> 或 <code class=\"codespan\">&#39;svg&#39;</code> 即可指定渲染器,比较方便。</p>\n<blockquote>\n<p>SVG 和 Canvas 这两种使用方式差异很大的技术,能够做到同时被透明支持,主要归功于 ECharts 底层库 <a href=\"https://github.com/ecomfe/zrender\" target=\"_blank\">ZRender</a> 的抽象和实现,形成可互换的 SVG 渲染器和 Canvas 渲染器。</p>\n</blockquote>\n<h2 id=\"-\">选择哪种渲染器</h2>\n<p>一般来说,Canvas 更适合绘制图形元素数量非常大(这一般是由数据量大导致)的图表(如热力图、地理坐标系或平行坐标系上的大规模线图或散点图等),也利于实现某些视觉 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=lines-bmap-effect\" target=\"_blank\">特效</a>。但是,在不少场景中,SVG 具有重要的优势:它的内存占用更低(这对移动端尤其重要)、渲染性能略高、并且用户使用浏览器内置的缩放功能时不会模糊。</p>\n<p>选择哪种渲染器,我们可以根据软硬件环境、数据量、功能需求综合考虑。</p>\n<ul>\n<li>在软硬件环境较好,数据量不大的场景下(例如 PC 端做商务报表),两种渲染器都可以适用,并不需要太多纠结。</li>\n<li>在环境较差,出现性能问题需要优化的场景下,可以通过试验来确定使用哪种渲染器。比如有这些经验:<ul>\n<li>在须要创建很多 ECharts 实例且浏览器易崩溃的情况下(可能是因为 Canvas 数量多导致内存占用超出手机承受能力),可以使用 SVG 渲染器来进行改善。大略得说,如果图表运行在低端安卓机,或者我们在使用一些特定图表如 <a href=\"https://ecomfe.github.io/echarts-liquidfill/example/\" target=\"_blank\">水球图</a> 等,SVG 渲染器可能效果更好。</li>\n<li>数据量很大、较多交互时,可以选用 Canvas 渲染器。</li>\n</ul>\n</li>\n</ul>\n<p>我们强烈欢迎开发者们 <a href=\"https://github.com/apache/echarts/issues/new\" target=\"_blank\">反馈</a> 给我们使用的体验和场景,帮助我们更好的做优化。</p>\n<p>注:除了某些特殊的渲染可能依赖 Canvas:如<a href=\"option.html#series-lines.effect\" target=\"_blank\">炫光尾迹特效</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=heatmap-bmap\" target=\"_blank\">带有混合效果的热力图</a>等,绝大部分功能 SVG 都是支持的。</p>\n<h2 id=\"-\">如何使用渲染器</h2>\n<p>ECharts 默认使用 Canvas 渲染。如果想使用 SVG 渲染,ECharts 代码中须包括有 SVG 渲染器模块。</p>\n<ul>\n<li>ECharts 的 <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">预构建文件</a> 中,<a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.common.min.js\" target=\"_blank\">常用版</a> 和 <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js\" target=\"_blank\">完整版</a> 已经包含了 SVG 渲染器,可直接使用。而 <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.simple.min.js\" target=\"_blank\">精简版</a> 没有包括。</li>\n<li>如果 <a href=\"https://echarts.apache.org/zh/builder.html\" target=\"_blank\">在线自定义构建 ECharts</a>,则需要勾上页面下方的 “SVG 渲染”。</li>\n<li>如果 <a href=\"tutorial.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9E%84%E5%BB%BA%20ECharts\" target=\"_blank\">线下自定义构建 ECharts</a>,则须引入 SVG 渲染器模块,即:</li>\n</ul>\n<pre><code class=\"lang-js\">import &#39;zrender/lib/svg/svg&#39;;\n</code></pre>\n<p>然后,我们就可以在代码中,初始化图表实例时,<a href=\"api.html#echarts.init\" target=\"_blank\">传入参数</a> 选择渲染器类型:</p>\n<pre><code class=\"lang-js\">// 使用 Canvas 渲染器(默认)\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n// 等价于:\nvar chart = echarts.init(containerDom);\n\n// 使用 SVG 渲染器\nvar chart = echarts.init(containerDom, null, {renderer: &#39;svg&#39;});\n</code></pre>\n"
   },
   "地理坐标系和地图系列的 SVG 底图": {
     "desc": "<p>从 <code class=\"codespan\">v5.1.0</code> 开始,ECharts 支持在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 和 <a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a> 中使用 SVG 作为底图。之前只支持 <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a> 格式的底图。</p>\n<p>有了这个功能,ECharts 能在任一种渲染模式(<code class=\"codespan\">canvas</code> 渲染模式和 <code class=\"codespan\">svg</code> 渲染模式)中绘制 SVG 底图,并且能够只用简单的 ECharts 配置项(option)就带来 <a href=\"option.html#geo.roam\" target=\"_blank\">放大</a>、<a href=\"option.html#geo.roam\" target=\"_blank\">平移</a>、<a href=\"option.html#geo.select\" target=\"_blank\">点选(select)</a>、<a href=\"option.html#geo.roam\" target=\"_blank\">高亮强调(emphasis)</a>、<a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">聚焦-淡出(focus-blur)</a>、<a href=\"option.html#geo.label\" target=\"_blank\">标签(label)</a>、<a href=\"option.html#series-map.labelLayout\" target=\"_blank\">标签布局(labelLayout)</a>、<a href=\"option.html#geo.tooltip\" target=\"_blank\">提示框(tooltip)</a> 等特性。ECharts 中的所有在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中可用系列(如 <a href=\"option.html#series-scatter\" target=\"_blank\">散点图(scatter)</a>、<a href=\"option.html#series-effectScatter\" target=\"_blank\">特效散点图(effectScatter)</a>,<a href=\"option.html#series-lines\" target=\"_blank\">路径图(lines)</a>,<a href=\"option.html#series-custom\" target=\"_blank\">自定义系列(custom)</a>)也能显示在 SVG 底图上。</p>\n<p>这些是使用 SVG 底图的例子:</p>\n<p><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-beef-cuts\" target=\"_blank\">庖丁解牛</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-organ\" target=\"_blank\">内脏数据</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-seatmap-flight\" target=\"_blank\">航班选座</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-map\" target=\"_blank\">地图</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">散点图</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-lines\" target=\"_blank\">路径图</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-traffic\" target=\"_blank\">交通</a></p>\n<h2 id=\"-\">基本用法</h2>\n<p>SVG 底图的用法与 <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a> 底图的用法相同。</p>\n<p>如果在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中使用:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/organ.svg&#39;, function (svg) {\n    // 首先向 echarts 注册 SVG 字符串或解析过的 SVG DOM\n    echarts.registerMap(&#39;organ_diagram&#39;, {svg: svg});\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;))。\n    chart.setOption({\n        geo: [{\n            // 引用注册过的底图。\n            map: &#39;organ_diagram&#39;,\n            ...\n        }]\n    });\n});\n</code></pre>\n<p>如果在 <a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a> 中使用:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/beef_cuts.svg&#39;, function (svg) {\n    // 首先向 echarts 注册 SVG 字符串或解析过的 SVG DOM\n    echarts.registerMap(&#39;beef_cuts_diagram&#39;, {svg: svg})。\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;))。\n    chart.setOption({\n        series: {\n            type: &#39;map&#39;,\n            // 引用注册过的底图。\n            map: &#39;beef_cuts_diagram&#39;,\n            ...\n        }\n    });\n});\n</code></pre>\n<h2 id=\"-\">缩放和平移</h2>\n<p><a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a></p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        // 启用缩放和平移。\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p><a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a></p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;map&#39;,\n        // 启用缩放和平移。\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p>参见例子 <a href=\"option.html#geo.roam\" target=\"_blank\">roam</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-map\" target=\"_blank\">SVG 地图</a>。</p>\n<h2 id=\"-\">具名元素</h2>\n<p>如果要控制 SVG 中的某些元素,或者让某些元素能交互,我们首先要在 SVG 中标记这些元素:在这些元素上添加 <code class=\"codespan\">name</code> 属性(下文称此类添加过 <code class=\"codespan\">name</code> 属性的元素为:“具名元素”)。许多功能(如 <a href=\"option.html#geo.select\" target=\"_blank\">select</a>、<a href=\"option.html#geo.emphasis\" target=\"_blank\">emphasis</a>、<a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">focus-blur</a>、<a href=\"option.html#geo.label\" target=\"_blank\">label</a>、<a href=\"option.html#series-map.labelLayout\" target=\"_blank\">labelLayout</a> 和 <a href=\"option.html#geo.tooltip\" target=\"_blank\">tooltip</a> 这类交互相关的功能)都依赖于对元素的命名。</p>\n<p>如下例,我们只在左边的 SVG <code class=\"codespan\">path</code> 上添加名称属性 <code class=\"codespan\">name=&quot;named_rect&quot;</code>:</p>\n<pre><code class=\"lang-xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;\n&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.2&quot; fill-rule=&quot;evenodd&quot; xml:space=&quot;preserve&quot;&gt;\n    &lt;path name=&quot;named_rect&quot; d=&quot;M 0,0 L 0,100 100,100 100,0 Z&quot; fill=&quot;#765&quot; /&gt;\n    &lt;path d=&quot;M 150,0 L 150,100 250,100 250,0 Z&quot; fill=&quot;#567&quot; /&gt;\n&lt;/svg&gt;\n</code></pre>\n<p>这样,鼠标 hover 时能高亮左边的矩形,但是右边的不行。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/geo-svg-named-basic&edit=1&reset=1\" width=\"500\" height=\"200\" ></iframe>\n\n\n<p>我们还可以在 <a href=\"option.html#geo.regions\" target=\"_blank\">geo.regions</a> 中为具名元素指定一些专属配置项:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        regions: [{\n            name: &#39;element_name_1&#39;,\n            itemStyle: { ... }\n        }, {\n            name: &#39;element_name_2&#39;,\n            itemStyle: { ... }\n        }]\n    }\n};\n</code></pre>\n<p>注意:</p>\n<ul>\n<li>只有这些 SVG 元素可以被命名:\n<code class=\"codespan\">rect</code>、<code class=\"codespan\">circle</code>、<code class=\"codespan\">line</code>、<code class=\"codespan\">ellipse</code>、<code class=\"codespan\">polygon</code>、<code class=\"codespan\">polyline</code>、<code class=\"codespan\">path</code>、<code class=\"codespan\">text</code>、<code class=\"codespan\">tspan</code>、<code class=\"codespan\">g</code>。</li>\n<li>支持多个元素以相同的名称命名,这样它们能被同时高亮、选中。</li>\n</ul>\n<h2 id=\"-\">自定义样式</h2>\n<p>虽然 SVG 元素的样式(如颜色、字体、线宽等等)都能直接在 SVG 文件中定义,但 ECharts 也支持在 <code class=\"codespan\">option</code> 中为具名元素定制样式,这能提供不少便利。</p>\n<p>可以在 <a href=\"option.html#geo.itemStyle\" target=\"_blank\">geo.itemStyle</a> 或 <a href=\"option.html#series-map.itemStyle\" target=\"_blank\">series-map.itemStyle</a> 中设置样式(也包括 <code class=\"codespan\">emphasis.itemStyle</code>、<code class=\"codespan\">select.itemStyle</code>、<code class=\"codespan\">blur.itemStyle</code>、<code class=\"codespan\">regions[i].itemStyle</code>、<code class=\"codespan\">regions[i].emphasis.itemStyle</code>、<code class=\"codespan\">regions[i].select.itemStyle</code>、<code class=\"codespan\">regions[i].blur.itemStyle</code>)。也能在这里删除一些具名元素的默认样式(例如,设置 <code class=\"codespan\">emphasis.itemStyle.color: null</code> 后,鼠标 hover 时填充色就不会改变)。</p>\n<p>此外,使用 <a href=\"option.html#series-map\" target=\"_blank\">series-map</a> 时,也可以用 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap 组件</a> 为具名元素赋予样式。参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-beef-cuts\" target=\"_blank\">庖丁解牛</a>。</p>\n<p>注意:\n只有这些具名元素可以在 <code class=\"codespan\">itemStyle</code> 中设置样式:\n<code class=\"codespan\">rect</code>、<code class=\"codespan\">circle</code>、<code class=\"codespan\">line</code>、<code class=\"codespan\">ellipse</code>、<code class=\"codespan\">polygon</code>、<code class=\"codespan\">polyline</code>、<code class=\"codespan\">path</code>。</p>\n<h2 id=\"-select-\">元素的“选中”能力(select)</h2>\n<p>如果想使具名元素能被“选中”,把 <a href=\"option.html#geo.selectedMode\" target=\"_blank\">geo.selectedMode</a> 或 <a href=\"option.html#series-map.selectedMode\" target=\"_blank\">series-map.selectedMode</a> 设置为 <code class=\"codespan\">&#39;single&#39;</code> 或者 <code class=\"codespan\">&#39;multiple&#39;</code> 即可。元素被选中时的样式可以在 <a href=\"option.html#geo.select\" target=\"_blank\">geo.select</a> 或 <a href=\"option.html#series-map.select\" target=\"_blank\">series-map.select</a> 中设定。</p>\n<p>可以通过 <a href=\"api.html#event.geoselectchanged\" target=\"_blank\">geoselectchanged</a> 事件获得所有被选中者的名称,例如:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;geoselectchanged&#39;, function (params) {\n    var selectedNames = params.allSelected[0].name;\n    console.log(&#39;selected&#39;, selectedNames);\n});\n</code></pre>\n<p>参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-seatmap-flight\" target=\"_blank\">航班选座</a>。</p>\n<h2 id=\"-emphasis-focus-blur-\">元素的“高亮强调”(emphasis)和“聚焦-淡出”(focus-blur)</h2>\n<p>具名元素可以自动在鼠标 hover 时有“高亮强调”(emphasis)的能力。</p>\n<p>此外,可以把 <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">geo.emphasis.focus</a> 设置为 <code class=\"codespan\">&#39;self&#39;</code> 来启用 “聚焦-淡出”(focus-blur)功能。也就是,当鼠标 hover 在一个具名元素上时,所有其他元素都会被淡出。</p>\n<p>参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a>。</p>\n<h2 id=\"-tooltip-\">提示框(tooltip)</h2>\n<p>可以在具名元素上启用或禁用提示框(tooltip)功能。</p>\n<pre><code class=\"lang-js\">option = {\n    // 在 option 根部声明 tooltip 以整体开启 tooltip 功能。\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            // 用 `show` 来启用/禁用 geo 上的 tooltip。\n            show: true\n        },\n        regions: [{\n            name: &#39;some_name1&#39;,\n            // 如果需要的话,可以对特定具名元素指定 tooltip 参数。\n            tooltip: {\n                formatter: &#39;一些特殊的提示 1&#39;\n            }\n        }, {\n            name: &#39;some_name2&#39;,\n            tooltip: {\n                formatter: &#39;一些特殊的提示 2&#39;\n            }\n        }]\n    }\n};\n</code></pre>\n<p>如果想单独禁用 geo 上的 tooltip,只需:</p>\n<pre><code class=\"lang-js\">option = {\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            show: false\n        }\n    }\n};\n</code></pre>\n<p>参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-map\" target=\"_blank\">SVG 地图</a>。</p>\n<h2 id=\"-label-\">标签(label)</h2>\n<p>虽然可以直接在 SVG 中定义 <code class=\"codespan\">&lt;text&gt;</code>/<code class=\"codespan\">&lt;tspan&gt;</code> 来显示文本标签,但 ECharts 也支持用 <a href=\"option.html#geo.label\" target=\"_blank\">geo.label</a> 或 <a href=\"option.html#series-map.label\" target=\"_blank\">series-map.label</a> 来设置底图上的标签。</p>\n<p>标签功能默认在鼠标 hover 时是启用的。如果想禁用标签,只需:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        emphasis: {\n            label: {\n                show: false\n            }\n        }\n    }\n};\n</code></pre>\n<p>当想要多个元素共享一个标签时,我们有两种选择:</p>\n<ul>\n<li>将这些元素包裹在一个具名的 <code class=\"codespan\">&lt;g&gt;</code> 中(如 <code class=\"codespan\">&lt;g=&quot;name_a&quot;&gt;</code>)中,这样只会显示一个标签,并且基于 <code class=\"codespan\">&lt;g&gt;</code> 的 <code class=\"codespan\">boundingRect</code> 定位。</li>\n<li>给这些元素起相同的名字(如 <code class=\"codespan\">&lt;path name=&quot;name_b&quot;/&gt;&lt;path name=&quot;name_b&quot;/&gt;</code>),这样每个元素都会显示一个标签,并且会根据每个元素自身显示和定位。</li>\n</ul>\n<p>例如(将鼠标 hover 到元素上能显示标签):</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/geo-svg-label-basic&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n<p>注意:只有这些具名元素可以设置 <code class=\"codespan\">label</code>:\n<code class=\"codespan\">rect</code>、<code class=\"codespan\">circle</code>、<code class=\"codespan\">line</code>、<code class=\"codespan\">ellipse</code>、<code class=\"codespan\">polygon</code>、<code class=\"codespan\">polyline</code>、<code class=\"codespan\">path</code>、<code class=\"codespan\">g</code>。</p>\n<p>标签的用法也参见示例 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a>。</p>\n<h2 id=\"-\">事件</h2>\n<p>可以用如下方式监听具名元素的鼠标事件或者触摸事件:</p>\n<pre><code class=\"lang-js\">// &#39;name1&#39; 是一个 SVG 元素的名字。\nmyChart.on(&#39;click&#39;, { geoIndex: 0, name: &#39;name1&#39; }, function (params) {\n    console.log(params);\n});\n</code></pre>\n<h2 id=\"svg-\">SVG 底图的布局</h2>\n<p>在默认情况下,ECharts 会将 SVG 底图放置在画布的中心。如果需要调整的话,一般只调整 <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>/<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>,偶尔也可能要调整 <code class=\"codespan\">&lt;svg viewBox=&quot;...&quot;&gt;</code>/<a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a>(它们两个的区别是:是否产生剪裁)。在大多数情况下,用这些已经足够了。</p>\n<p>如果要做一些精确的位置定制,那么还得了解下面这些概念。</p>\n<p><a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 和 <a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a> 的布局规则和选项都是一样的。所以下面我们只讲 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a>。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/geo-svg-layout-basic&edit=1&reset=1\" width=\"700\" height=\"550\" ></iframe>\n\n\n<p>上面的例子只有一个 ECharts 画布,其中三个 SVG 展示在六个 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中。同一列中的两个 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 使用相同的 SVG。</p>\n<p>首先,形状的外观是由 SVG 文件本身决定的。也就是说,在上例中,由 <code class=\"codespan\">&lt;circle&gt;</code> 和 <code class=\"codespan\">viewBox</code> 属性决定(<code class=\"codespan\">viewBox</code> 会切割圆形)。可以注意,每一列的形状轮廓都一样(不管它们的位置、大小是否不同和是否被拉伸),因为它们使用的是同一个 SVG。</p>\n<p>其次,用户可以用下面任一组选项,指定 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 的视口(<code class=\"codespan\">view port</code>)的位置和大小(它们的单位都是 echarts 画布的像素,或者百分比值):</p>\n<ul>\n<li><a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>、<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>(最常用)。</li>\n<li><a href=\"option.html#geo.top\" target=\"_blank\">top</a>、<a href=\"option.html#geo.right\" target=\"_blank\">right</a>、<a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>、<a href=\"option.html#geo.left\" target=\"_blank\">left</a>(在上例中使用的是这组)。</li>\n</ul>\n<p>在上例中,六个 <code class=\"codespan\">geo view port</code> 用六个黑色方块表示。</p>\n<p>第三,确定 SVG 的 <code class=\"codespan\">bounding rect</code>。<code class=\"codespan\">bounding rect</code> 由以下方法决定(它们的单位都是 SVG 内部元素的度量单位):</p>\n<ol>\n<li>如果设定了 <a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a>,则用它作 <code class=\"codespan\">bounding rect</code>。</li>\n<li>否则,如果设定了 <code class=\"codespan\">&lt;svg width=&quot;...&quot; height=&quot;...&quot;&gt;</code>,则用 <code class=\"codespan\">[0, 0, width, height]</code> 作为 <code class=\"codespan\">bounding rect</code>。(如果只设定了 <code class=\"codespan\">width</code> 或 <code class=\"codespan\">height</code>,则只使用 <code class=\"codespan\">[0, width]</code> 或 <code class=\"codespan\">[0, height]</code>)。</li>\n<li>否则,如果设定了 <code class=\"codespan\">&lt;svg viewBox=&quot;...&quot;&gt;</code>,则用 <code class=\"codespan\">viewBox</code> 作 <code class=\"codespan\">bounding rect</code>。</li>\n<li>否则,由整个 SVG 所有元素 <code class=\"codespan\">bounding rect</code> 的并集得到最终 <code class=\"codespan\">bounding rect</code>。</li>\n<li>如果设定了 <a href=\"option.html#geo.center\" target=\"_blank\">geo.center</a> 或 <a href=\"option.html#geo.zoom\" target=\"_blank\">geo.zoom</a>,则把上述 <code class=\"codespan\">1~4</code> 得到的 <code class=\"codespan\">bounding rect</code> 进行相应的 <code class=\"codespan\">transform</code>。</li>\n</ol>\n<p><code class=\"codespan\">bounding rect</code> 确定后,会放置到相应的 <code class=\"codespan\">geo view port</code> 里:</p>\n<ul>\n<li>如果用的是 <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>、<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>,<code class=\"codespan\">bounding rect</code> 会置于 <code class=\"codespan\">geo view port</code> 的中心,并尽量填满 <code class=\"codespan\">geo view port</code>(保持长宽比)。</li>\n<li>如果用的是 <a href=\"option.html#geo.top\" target=\"_blank\">top</a>、<a href=\"option.html#geo.right\" target=\"_blank\">right</a>、<a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>、<a href=\"option.html#geo.left\" target=\"_blank\">left</a>,<code class=\"codespan\">bounding rect</code> 会被拉伸,完全填充 <code class=\"codespan\">geo view port</code>。</li>\n</ul>\n<h2 id=\"-svg-\">在 SVG 底图上绘制系列</h2>\n<p><a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>、<a href=\"option.html#series-effectScatter\" target=\"_blank\">effectScatter</a>、<a href=\"option.html#series-lines\" target=\"_blank\">lines</a>、<a href=\"option.html#series-custom\" target=\"_blank\">custom</a> 这些在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中可用的系列都可以在 SVG 底图上定位和显示。</p>\n<p>在这种用法中,<code class=\"codespan\">series.data</code> 的值的单位即为是 SVG 内部元素的度量单位。比如说:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;\n    },\n    series: {\n        type: &#39;effectScatter&#39;,\n        coordinateSystem: &#39;geo&#39;,\n        geoIndex: 0,\n        data: [\n            // SVG local coords.\n            [488.2358421078053, 459.70913833075736],\n            [770.3415644319939, 757.9672194986475],\n            [1180.0329284196291, 743.6141808346214],\n        ]\n    }\n};\n</code></pre>\n<p>另外,有种简便方法可以获得 SVG 的坐标。</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    geo: {\n        map: &#39;some_svg&#39;\n    }\n});\nmyChart.getZr().on(&#39;click&#39;, function (params) {\n    var pixelPoint = [params.offsetX, params.offsetY];\n    var dataPoint = myChart.convertFromPixel({ geoIndex: 0 }, pixelPoint);\n    // 在 SVG 上点击时,坐标会被打印。\n    // 这些坐标可以在 `series.data` 里使用。\n    console.log(dataPoint);\n});\n</code></pre>\n<p>参见示例 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">SVG Scatter</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-lines\" target=\"_blank\">SVG Lines</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-traffic\" target=\"_blank\">SVG Traffic</a>。</p>\n<h2 id=\"-svg-\">暂不支持的 SVG 功能</h2>\n<p>实现一个完整的 SVG 解析器有点困难。虽然已经支持了常用的 SVG 功能,但至少下面列出的这些还没支持:</p>\n<ul>\n<li>翻转(flip)和倾斜(skew)(将在 <code class=\"codespan\">v5.1.2</code> 支持):<ul>\n<li>不支持 <code class=\"codespan\">transform: skew(...)</code>(包括包含 skew 的 <code class=\"codespan\">transform: matrix(...)</code>)。</li>\n<li>不支持当 <code class=\"codespan\">transform: scale(x, y)</code> 中 <code class=\"codespan\">x</code>/<code class=\"codespan\">y</code> 正负不同且有 <code class=\"codespan\">rotate</code>(例如,<code class=\"codespan\">scale: (1, -1), rotate(90)</code>)。</li>\n</ul>\n</li>\n<li>不支持 <code class=\"codespan\">&lt;style&gt;</code> 标签。<ul>\n<li>但内联样式是支持的(例如支持 <code class=\"codespan\">&lt;path style=&quot;color:red&quot; /&gt;</code>)。</li>\n</ul>\n</li>\n<li>单位:<ul>\n<li>只支持 <code class=\"codespan\">px</code>。不支持其他单位如 <code class=\"codespan\">width=&quot;231.65mm&quot;</code>。</li>\n<li>不支持百分比值,如不支持 <code class=\"codespan\">&lt;svg width=&quot;30%&quot; height=&quot;40%&quot;&gt;</code>。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;defs&gt;</code> 标签:<ul>\n<li>只支持 <code class=\"codespan\">&lt;linearGradient&gt;</code>、<code class=\"codespan\">&lt;radialGradient&gt;</code>。</li>\n<li>还不支持在 <code class=\"codespan\">&lt;defs&gt;</code> 中定义其他元素(如 <code class=\"codespan\">&lt;pattern&gt;</code>、<code class=\"codespan\">&lt;path&gt;</code>、...)。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;linearGradient&gt;</code>、<code class=\"codespan\">&lt;radialGradient&gt;</code>:<ul>\n<li>不支持 <code class=\"codespan\">fx</code>、<code class=\"codespan\">fy</code>。</li>\n<li>不支持 <code class=\"codespan\">gradientTransform</code>。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">fill:url(..)</code>, <code class=\"codespan\">stroke:utl(..)</code>:<ul>\n<li>只支持 <code class=\"codespan\">url(#someId)</code>。</li>\n<li>不支持其他 URL 模式,例如不支持:<ul>\n<li><code class=\"codespan\">url(https://example.com/images/myImg.jpg)</code>。</li>\n<li><code class=\"codespan\">url(data:image/png;base64,iRxVB0...)</code>。</li>\n<li><code class=\"codespan\">url(myFont.woff)</code>。</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;switch&gt;</code> 标签:<ul>\n<li><code class=\"codespan\">&lt;switch&gt;</code> 标签内的所有内容都会显示。不支持“切换”功能。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;text&gt;</code>。<ul>\n<li>不支持 <code class=\"codespan\">textPath</code>。</li>\n<li>不支持 <a href=\"https://www.w3.org/TR/SVG/text.html#TermAddressableCharacter\" target=\"_blank\">Addressable character</a>,也就是说:<pre><code class=\"lang-xml\">&lt;!-- 不支持: --&gt;\n&lt;tspan x=&quot;0 4.94 9.89&quot;&gt;abc&lt;/tspan&gt;。\n&lt;!-- 支持: --&gt;\n&lt;tspan x=&quot;0&quot;&gt;A&lt;/tspan&gt;\n&lt;tspan x=&quot;4.94&quot;&gt;b&lt;/tspan&gt;\n&lt;tspan x=&quot;9.89&quot;&gt;C&lt;/tspan&gt;\n</code></pre>\n</li>\n</ul>\n</li>\n</ul>\n"
diff --git a/zh/documents/tutorial-parts/tutorial.json b/zh/documents/tutorial-parts/tutorial.json
index 42c74da..63ac6f4 100644
--- a/zh/documents/tutorial-parts/tutorial.json
+++ b/zh/documents/tutorial-parts/tutorial.json
@@ -63,7 +63,7 @@
     "desc": "<p>Apache ECharts<sup>TM</sup> 可以在服务端进行渲染。例如 <a href=\"https://echarts.apache.org/examples/zh/index.html\" target=\"_blank\">官方示例</a> 里的一个个小截图,就是在服务端预生成出来的。</p>\n<p>服务端渲染可以使用流行的 headless 环境,例如 <a href=\"https://github.com/GoogleChrome/puppeteer\" target=\"_blank\">puppeteer</a>、<a href=\"https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md\" target=\"_blank\">headless chrome</a>、<a href=\"https://github.com/Automattic/node-canvas\" target=\"_blank\">node-canvas</a>、<a href=\"https://github.com/jsdom/jsdom\" target=\"_blank\">jsdom</a>、<a href=\"http://phantomjs.org/\" target=\"_blank\">PhantomJS</a> 等。</p>\n<p>这是一些社区贡献的 echarts 服务端渲染方案:</p>\n<ul>\n<li><a href=\"https://github.com/hellosean1025/node-echarts\" target=\"_blank\">https://github.com/hellosean1025/node-echarts</a></li>\n<li><a href=\"https://github.com/chfw/echarts-scrappeteer\" target=\"_blank\">https://github.com/chfw/echarts-scrappeteer</a></li>\n<li><a href=\"https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js\" target=\"_blank\">https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js</a></li>\n<li><a href=\"https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73\" target=\"_blank\">https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73</a></li>\n</ul>\n"
   },
   "使用 Canvas 或者 SVG 渲染": {
-    "desc": "<p>浏览器端图表库大多会选择 SVG 或者 Canvas 进行渲染。对于绘制图表来说,这两种技术往往是可替换的,效果相近。但是在一些场景中,他们的表现和能力又有一定差异。于是,对它们的选择取舍,就成为了一个一直存在的不易有标准答案的话题。</p>\n<p>Apache ECharts<sup>TM</sup> 从初始一直使用 Canvas 绘制图表(除了对 IE8- 使用 VML)。而 <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">ECharts v4.0</a> 发布了 SVG 渲染器,从而提供了一种新的选择。只须在初始化一个图表实例时,设置 <a href=\"api.html#echarts.init\" target=\"_blank\">renderer 参数</a> 为 <code class=\"codespan\">&#39;canvas&#39;</code> 或 <code class=\"codespan\">&#39;svg&#39;</code> 即可指定渲染器,比较方便。</p>\n<blockquote>\n<p>SVG 和 Canvas 这两种使用方式差异很大的技术,能够做到同时被透明支持,主要归功于 ECharts 底层库 <a href=\"https://github.com/ecomfe/zrender\" target=\"_blank\">ZRender</a> 的抽象和实现,形成可互换的 SVG 渲染器和 Canvas 渲染器。</p>\n</blockquote>\n<h2 id=\"-\">选择哪种渲染器</h2>\n<p>一般来说,Canvas 更适合绘制图形元素数量非常大(这一般是由数据量大导致)的图表(如热力图、地理坐标系或平行坐标系上的大规模线图或散点图等),也利于实现某些视觉 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=lines-bmap-effect\" target=\"_blank\">特效</a>。但是,在不少场景中,SVG 具有重要的优势:它的内存占用更低(这对移动端尤其重要)、渲染性能略高、并且用户使用浏览器内置的缩放功能时不会模糊。例如,我们在一些硬件环境中分别使用 Canvas 渲染器和 SVG 渲染器绘制中等数据量的折、柱、饼,统计初始动画阶段的帧率,得到了一个性能对比图:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/canvas-vs-svg&reset=1\" width=\"90%\" height=\"400\" ></iframe>\n\n\n<p>上图显示出,在这些场景中,SVG 渲染器相比 Canvas 渲染器在移动端的总体表现更好。当然,这个实验并非是全面的评测,在另一些数据量较大或者有图表交互动画的场景中,目前的 SVG 渲染器的性能还比不过 Canvas 渲染器。但是同时有这两个选项,为开发者们根据自己的情况优化性能提供了更广阔的空间。</p>\n<p>选择哪种渲染器,我们可以根据软硬件环境、数据量、功能需求综合考虑。</p>\n<ul>\n<li>在软硬件环境较好,数据量不大的场景下(例如 PC 端做商务报表),两种渲染器都可以适用,并不需要太多纠结。</li>\n<li>在环境较差,出现性能问题需要优化的场景下,可以通过试验来确定使用哪种渲染器。比如有这些经验:<ul>\n<li>在须要创建很多 ECharts 实例且浏览器易崩溃的情况下(可能是因为 Canvas 数量多导致内存占用超出手机承受能力),可以使用 SVG 渲染器来进行改善。大略得说,如果图表运行在低端安卓机,或者我们在使用一些特定图表如 <a href=\"https://ecomfe.github.io/echarts-liquidfill/example/\" target=\"_blank\">水球图</a> 等,SVG 渲染器可能效果更好。</li>\n<li>数据量很大、较多交互时,可以选用 Canvas 渲染器。</li>\n</ul>\n</li>\n</ul>\n<p>我们强烈欢迎开发者们 <a href=\"https://github.com/apache/echarts/issues/new\" target=\"_blank\">反馈</a> 给我们使用的体验和场景,帮助我们更好的做优化。</p>\n<p>注:除了某些特殊的渲染可能依赖 Canvas:如<a href=\"option.html#series-lines.effect\" target=\"_blank\">炫光尾迹特效</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=heatmap-bmap\" target=\"_blank\">带有混合效果的热力图</a>等,绝大部分功能 SVG 都是支持的。此外,目前的 SVG 版中,富文本、材质功能尚未实现。</p>\n<h2 id=\"-\">如何使用渲染器</h2>\n<p>ECharts 默认使用 Canvas 渲染。如果想使用 SVG 渲染,ECharts 代码中须包括有 SVG 渲染器模块。</p>\n<ul>\n<li>ECharts 的 <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">预构建文件</a> 中,<a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.common.min.js\" target=\"_blank\">常用版</a> 和 <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js\" target=\"_blank\">完整版</a> 已经包含了 SVG 渲染器,可直接使用。而 <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.simple.min.js\" target=\"_blank\">精简版</a> 没有包括。</li>\n<li>如果 <a href=\"https://echarts.apache.org/zh/builder.html\" target=\"_blank\">在线自定义构建 ECharts</a>,则需要勾上页面下方的 “SVG 渲染”。</li>\n<li>如果 <a href=\"tutorial.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9E%84%E5%BB%BA%20ECharts\" target=\"_blank\">线下自定义构建 ECharts</a>,则须引入 SVG 渲染器模块,即:</li>\n</ul>\n<pre><code class=\"lang-js\">import &#39;zrender/lib/svg/svg&#39;;\n</code></pre>\n<p>然后,我们就可以在代码中,初始化图表实例时,<a href=\"api.html#echarts.init\" target=\"_blank\">传入参数</a> 选择渲染器类型:</p>\n<pre><code class=\"lang-js\">// 使用 Canvas 渲染器(默认)\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n// 等价于:\nvar chart = echarts.init(containerDom);\n\n// 使用 SVG 渲染器\nvar chart = echarts.init(containerDom, null, {renderer: &#39;svg&#39;});\n</code></pre>\n"
+    "desc": "<p>浏览器端图表库大多会选择 SVG 或者 Canvas 进行渲染。对于绘制图表来说,这两种技术往往是可替换的,效果相近。但是在一些场景中,他们的表现和能力又有一定差异。于是,对它们的选择取舍,就成为了一个一直存在的不易有标准答案的话题。</p>\n<p>Apache ECharts<sup>TM</sup> 从初始一直使用 Canvas 绘制图表(除了对 IE8- 使用 VML)。而 <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">ECharts v4.0</a> 发布了 SVG 渲染器,从而提供了一种新的选择。只须在初始化一个图表实例时,设置 <a href=\"api.html#echarts.init\" target=\"_blank\">renderer 参数</a> 为 <code class=\"codespan\">&#39;canvas&#39;</code> 或 <code class=\"codespan\">&#39;svg&#39;</code> 即可指定渲染器,比较方便。</p>\n<blockquote>\n<p>SVG 和 Canvas 这两种使用方式差异很大的技术,能够做到同时被透明支持,主要归功于 ECharts 底层库 <a href=\"https://github.com/ecomfe/zrender\" target=\"_blank\">ZRender</a> 的抽象和实现,形成可互换的 SVG 渲染器和 Canvas 渲染器。</p>\n</blockquote>\n<h2 id=\"-\">选择哪种渲染器</h2>\n<p>一般来说,Canvas 更适合绘制图形元素数量非常大(这一般是由数据量大导致)的图表(如热力图、地理坐标系或平行坐标系上的大规模线图或散点图等),也利于实现某些视觉 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=lines-bmap-effect\" target=\"_blank\">特效</a>。但是,在不少场景中,SVG 具有重要的优势:它的内存占用更低(这对移动端尤其重要)、渲染性能略高、并且用户使用浏览器内置的缩放功能时不会模糊。</p>\n<p>选择哪种渲染器,我们可以根据软硬件环境、数据量、功能需求综合考虑。</p>\n<ul>\n<li>在软硬件环境较好,数据量不大的场景下(例如 PC 端做商务报表),两种渲染器都可以适用,并不需要太多纠结。</li>\n<li>在环境较差,出现性能问题需要优化的场景下,可以通过试验来确定使用哪种渲染器。比如有这些经验:<ul>\n<li>在须要创建很多 ECharts 实例且浏览器易崩溃的情况下(可能是因为 Canvas 数量多导致内存占用超出手机承受能力),可以使用 SVG 渲染器来进行改善。大略得说,如果图表运行在低端安卓机,或者我们在使用一些特定图表如 <a href=\"https://ecomfe.github.io/echarts-liquidfill/example/\" target=\"_blank\">水球图</a> 等,SVG 渲染器可能效果更好。</li>\n<li>数据量很大、较多交互时,可以选用 Canvas 渲染器。</li>\n</ul>\n</li>\n</ul>\n<p>我们强烈欢迎开发者们 <a href=\"https://github.com/apache/echarts/issues/new\" target=\"_blank\">反馈</a> 给我们使用的体验和场景,帮助我们更好的做优化。</p>\n<p>注:除了某些特殊的渲染可能依赖 Canvas:如<a href=\"option.html#series-lines.effect\" target=\"_blank\">炫光尾迹特效</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=heatmap-bmap\" target=\"_blank\">带有混合效果的热力图</a>等,绝大部分功能 SVG 都是支持的。</p>\n<h2 id=\"-\">如何使用渲染器</h2>\n<p>ECharts 默认使用 Canvas 渲染。如果想使用 SVG 渲染,ECharts 代码中须包括有 SVG 渲染器模块。</p>\n<ul>\n<li>ECharts 的 <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">预构建文件</a> 中,<a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.common.min.js\" target=\"_blank\">常用版</a> 和 <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js\" target=\"_blank\">完整版</a> 已经包含了 SVG 渲染器,可直接使用。而 <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.simple.min.js\" target=\"_blank\">精简版</a> 没有包括。</li>\n<li>如果 <a href=\"https://echarts.apache.org/zh/builder.html\" target=\"_blank\">在线自定义构建 ECharts</a>,则需要勾上页面下方的 “SVG 渲染”。</li>\n<li>如果 <a href=\"tutorial.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9E%84%E5%BB%BA%20ECharts\" target=\"_blank\">线下自定义构建 ECharts</a>,则须引入 SVG 渲染器模块,即:</li>\n</ul>\n<pre><code class=\"lang-js\">import &#39;zrender/lib/svg/svg&#39;;\n</code></pre>\n<p>然后,我们就可以在代码中,初始化图表实例时,<a href=\"api.html#echarts.init\" target=\"_blank\">传入参数</a> 选择渲染器类型:</p>\n<pre><code class=\"lang-js\">// 使用 Canvas 渲染器(默认)\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n// 等价于:\nvar chart = echarts.init(containerDom);\n\n// 使用 SVG 渲染器\nvar chart = echarts.init(containerDom, null, {renderer: &#39;svg&#39;});\n</code></pre>\n"
   },
   "地理坐标系和地图系列的 SVG 底图": {
     "desc": "<p>从 <code class=\"codespan\">v5.1.0</code> 开始,ECharts 支持在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 和 <a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a> 中使用 SVG 作为底图。之前只支持 <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a> 格式的底图。</p>\n<p>有了这个功能,ECharts 能在任一种渲染模式(<code class=\"codespan\">canvas</code> 渲染模式和 <code class=\"codespan\">svg</code> 渲染模式)中绘制 SVG 底图,并且能够只用简单的 ECharts 配置项(option)就带来 <a href=\"option.html#geo.roam\" target=\"_blank\">放大</a>、<a href=\"option.html#geo.roam\" target=\"_blank\">平移</a>、<a href=\"option.html#geo.select\" target=\"_blank\">点选(select)</a>、<a href=\"option.html#geo.roam\" target=\"_blank\">高亮强调(emphasis)</a>、<a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">聚焦-淡出(focus-blur)</a>、<a href=\"option.html#geo.label\" target=\"_blank\">标签(label)</a>、<a href=\"option.html#series-map.labelLayout\" target=\"_blank\">标签布局(labelLayout)</a>、<a href=\"option.html#geo.tooltip\" target=\"_blank\">提示框(tooltip)</a> 等特性。ECharts 中的所有在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中可用系列(如 <a href=\"option.html#series-scatter\" target=\"_blank\">散点图(scatter)</a>、<a href=\"option.html#series-effectScatter\" target=\"_blank\">特效散点图(effectScatter)</a>,<a href=\"option.html#series-lines\" target=\"_blank\">路径图(lines)</a>,<a href=\"option.html#series-custom\" target=\"_blank\">自定义系列(custom)</a>)也能显示在 SVG 底图上。</p>\n<p>这些是使用 SVG 底图的例子:</p>\n<p><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-beef-cuts\" target=\"_blank\">庖丁解牛</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-organ\" target=\"_blank\">内脏数据</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-seatmap-flight\" target=\"_blank\">航班选座</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-map\" target=\"_blank\">地图</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">散点图</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-lines\" target=\"_blank\">路径图</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-traffic\" target=\"_blank\">交通</a></p>\n<h2 id=\"-\">基本用法</h2>\n<p>SVG 底图的用法与 <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a> 底图的用法相同。</p>\n<p>如果在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中使用:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/organ.svg&#39;, function (svg) {\n    // 首先向 echarts 注册 SVG 字符串或解析过的 SVG DOM\n    echarts.registerMap(&#39;organ_diagram&#39;, {svg: svg});\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;))。\n    chart.setOption({\n        geo: [{\n            // 引用注册过的底图。\n            map: &#39;organ_diagram&#39;,\n            ...\n        }]\n    });\n});\n</code></pre>\n<p>如果在 <a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a> 中使用:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/beef_cuts.svg&#39;, function (svg) {\n    // 首先向 echarts 注册 SVG 字符串或解析过的 SVG DOM\n    echarts.registerMap(&#39;beef_cuts_diagram&#39;, {svg: svg})。\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;))。\n    chart.setOption({\n        series: {\n            type: &#39;map&#39;,\n            // 引用注册过的底图。\n            map: &#39;beef_cuts_diagram&#39;,\n            ...\n        }\n    });\n});\n</code></pre>\n<h2 id=\"-\">缩放和平移</h2>\n<p><a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a></p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        // 启用缩放和平移。\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p><a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a></p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;map&#39;,\n        // 启用缩放和平移。\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p>参见例子 <a href=\"option.html#geo.roam\" target=\"_blank\">roam</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-map\" target=\"_blank\">SVG 地图</a>。</p>\n<h2 id=\"-\">具名元素</h2>\n<p>如果要控制 SVG 中的某些元素,或者让某些元素能交互,我们首先要在 SVG 中标记这些元素:在这些元素上添加 <code class=\"codespan\">name</code> 属性(下文称此类添加过 <code class=\"codespan\">name</code> 属性的元素为:“具名元素”)。许多功能(如 <a href=\"option.html#geo.select\" target=\"_blank\">select</a>、<a href=\"option.html#geo.emphasis\" target=\"_blank\">emphasis</a>、<a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">focus-blur</a>、<a href=\"option.html#geo.label\" target=\"_blank\">label</a>、<a href=\"option.html#series-map.labelLayout\" target=\"_blank\">labelLayout</a> 和 <a href=\"option.html#geo.tooltip\" target=\"_blank\">tooltip</a> 这类交互相关的功能)都依赖于对元素的命名。</p>\n<p>如下例,我们只在左边的 SVG <code class=\"codespan\">path</code> 上添加名称属性 <code class=\"codespan\">name=&quot;named_rect&quot;</code>:</p>\n<pre><code class=\"lang-xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;\n&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.2&quot; fill-rule=&quot;evenodd&quot; xml:space=&quot;preserve&quot;&gt;\n    &lt;path name=&quot;named_rect&quot; d=&quot;M 0,0 L 0,100 100,100 100,0 Z&quot; fill=&quot;#765&quot; /&gt;\n    &lt;path d=&quot;M 150,0 L 150,100 250,100 250,0 Z&quot; fill=&quot;#567&quot; /&gt;\n&lt;/svg&gt;\n</code></pre>\n<p>这样,鼠标 hover 时能高亮左边的矩形,但是右边的不行。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/geo-svg-named-basic&edit=1&reset=1\" width=\"500\" height=\"200\" ></iframe>\n\n\n<p>我们还可以在 <a href=\"option.html#geo.regions\" target=\"_blank\">geo.regions</a> 中为具名元素指定一些专属配置项:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        regions: [{\n            name: &#39;element_name_1&#39;,\n            itemStyle: { ... }\n        }, {\n            name: &#39;element_name_2&#39;,\n            itemStyle: { ... }\n        }]\n    }\n};\n</code></pre>\n<p>注意:</p>\n<ul>\n<li>只有这些 SVG 元素可以被命名:\n<code class=\"codespan\">rect</code>、<code class=\"codespan\">circle</code>、<code class=\"codespan\">line</code>、<code class=\"codespan\">ellipse</code>、<code class=\"codespan\">polygon</code>、<code class=\"codespan\">polyline</code>、<code class=\"codespan\">path</code>、<code class=\"codespan\">text</code>、<code class=\"codespan\">tspan</code>、<code class=\"codespan\">g</code>。</li>\n<li>支持多个元素以相同的名称命名,这样它们能被同时高亮、选中。</li>\n</ul>\n<h2 id=\"-\">自定义样式</h2>\n<p>虽然 SVG 元素的样式(如颜色、字体、线宽等等)都能直接在 SVG 文件中定义,但 ECharts 也支持在 <code class=\"codespan\">option</code> 中为具名元素定制样式,这能提供不少便利。</p>\n<p>可以在 <a href=\"option.html#geo.itemStyle\" target=\"_blank\">geo.itemStyle</a> 或 <a href=\"option.html#series-map.itemStyle\" target=\"_blank\">series-map.itemStyle</a> 中设置样式(也包括 <code class=\"codespan\">emphasis.itemStyle</code>、<code class=\"codespan\">select.itemStyle</code>、<code class=\"codespan\">blur.itemStyle</code>、<code class=\"codespan\">regions[i].itemStyle</code>、<code class=\"codespan\">regions[i].emphasis.itemStyle</code>、<code class=\"codespan\">regions[i].select.itemStyle</code>、<code class=\"codespan\">regions[i].blur.itemStyle</code>)。也能在这里删除一些具名元素的默认样式(例如,设置 <code class=\"codespan\">emphasis.itemStyle.color: null</code> 后,鼠标 hover 时填充色就不会改变)。</p>\n<p>此外,使用 <a href=\"option.html#series-map\" target=\"_blank\">series-map</a> 时,也可以用 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap 组件</a> 为具名元素赋予样式。参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-beef-cuts\" target=\"_blank\">庖丁解牛</a>。</p>\n<p>注意:\n只有这些具名元素可以在 <code class=\"codespan\">itemStyle</code> 中设置样式:\n<code class=\"codespan\">rect</code>、<code class=\"codespan\">circle</code>、<code class=\"codespan\">line</code>、<code class=\"codespan\">ellipse</code>、<code class=\"codespan\">polygon</code>、<code class=\"codespan\">polyline</code>、<code class=\"codespan\">path</code>。</p>\n<h2 id=\"-select-\">元素的“选中”能力(select)</h2>\n<p>如果想使具名元素能被“选中”,把 <a href=\"option.html#geo.selectedMode\" target=\"_blank\">geo.selectedMode</a> 或 <a href=\"option.html#series-map.selectedMode\" target=\"_blank\">series-map.selectedMode</a> 设置为 <code class=\"codespan\">&#39;single&#39;</code> 或者 <code class=\"codespan\">&#39;multiple&#39;</code> 即可。元素被选中时的样式可以在 <a href=\"option.html#geo.select\" target=\"_blank\">geo.select</a> 或 <a href=\"option.html#series-map.select\" target=\"_blank\">series-map.select</a> 中设定。</p>\n<p>可以通过 <a href=\"api.html#event.geoselectchanged\" target=\"_blank\">geoselectchanged</a> 事件获得所有被选中者的名称,例如:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;geoselectchanged&#39;, function (params) {\n    var selectedNames = params.allSelected[0].name;\n    console.log(&#39;selected&#39;, selectedNames);\n});\n</code></pre>\n<p>参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-seatmap-flight\" target=\"_blank\">航班选座</a>。</p>\n<h2 id=\"-emphasis-focus-blur-\">元素的“高亮强调”(emphasis)和“聚焦-淡出”(focus-blur)</h2>\n<p>具名元素可以自动在鼠标 hover 时有“高亮强调”(emphasis)的能力。</p>\n<p>此外,可以把 <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">geo.emphasis.focus</a> 设置为 <code class=\"codespan\">&#39;self&#39;</code> 来启用 “聚焦-淡出”(focus-blur)功能。也就是,当鼠标 hover 在一个具名元素上时,所有其他元素都会被淡出。</p>\n<p>参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a>。</p>\n<h2 id=\"-tooltip-\">提示框(tooltip)</h2>\n<p>可以在具名元素上启用或禁用提示框(tooltip)功能。</p>\n<pre><code class=\"lang-js\">option = {\n    // 在 option 根部声明 tooltip 以整体开启 tooltip 功能。\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            // 用 `show` 来启用/禁用 geo 上的 tooltip。\n            show: true\n        },\n        regions: [{\n            name: &#39;some_name1&#39;,\n            // 如果需要的话,可以对特定具名元素指定 tooltip 参数。\n            tooltip: {\n                formatter: &#39;一些特殊的提示 1&#39;\n            }\n        }, {\n            name: &#39;some_name2&#39;,\n            tooltip: {\n                formatter: &#39;一些特殊的提示 2&#39;\n            }\n        }]\n    }\n};\n</code></pre>\n<p>如果想单独禁用 geo 上的 tooltip,只需:</p>\n<pre><code class=\"lang-js\">option = {\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            show: false\n        }\n    }\n};\n</code></pre>\n<p>参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-map\" target=\"_blank\">SVG 地图</a>。</p>\n<h2 id=\"-label-\">标签(label)</h2>\n<p>虽然可以直接在 SVG 中定义 <code class=\"codespan\">&lt;text&gt;</code>/<code class=\"codespan\">&lt;tspan&gt;</code> 来显示文本标签,但 ECharts 也支持用 <a href=\"option.html#geo.label\" target=\"_blank\">geo.label</a> 或 <a href=\"option.html#series-map.label\" target=\"_blank\">series-map.label</a> 来设置底图上的标签。</p>\n<p>标签功能默认在鼠标 hover 时是启用的。如果想禁用标签,只需:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        emphasis: {\n            label: {\n                show: false\n            }\n        }\n    }\n};\n</code></pre>\n<p>当想要多个元素共享一个标签时,我们有两种选择:</p>\n<ul>\n<li>将这些元素包裹在一个具名的 <code class=\"codespan\">&lt;g&gt;</code> 中(如 <code class=\"codespan\">&lt;g=&quot;name_a&quot;&gt;</code>)中,这样只会显示一个标签,并且基于 <code class=\"codespan\">&lt;g&gt;</code> 的 <code class=\"codespan\">boundingRect</code> 定位。</li>\n<li>给这些元素起相同的名字(如 <code class=\"codespan\">&lt;path name=&quot;name_b&quot;/&gt;&lt;path name=&quot;name_b&quot;/&gt;</code>),这样每个元素都会显示一个标签,并且会根据每个元素自身显示和定位。</li>\n</ul>\n<p>例如(将鼠标 hover 到元素上能显示标签):</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/geo-svg-label-basic&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n<p>注意:只有这些具名元素可以设置 <code class=\"codespan\">label</code>:\n<code class=\"codespan\">rect</code>、<code class=\"codespan\">circle</code>、<code class=\"codespan\">line</code>、<code class=\"codespan\">ellipse</code>、<code class=\"codespan\">polygon</code>、<code class=\"codespan\">polyline</code>、<code class=\"codespan\">path</code>、<code class=\"codespan\">g</code>。</p>\n<p>标签的用法也参见示例 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a>。</p>\n<h2 id=\"-\">事件</h2>\n<p>可以用如下方式监听具名元素的鼠标事件或者触摸事件:</p>\n<pre><code class=\"lang-js\">// &#39;name1&#39; 是一个 SVG 元素的名字。\nmyChart.on(&#39;click&#39;, { geoIndex: 0, name: &#39;name1&#39; }, function (params) {\n    console.log(params);\n});\n</code></pre>\n<h2 id=\"svg-\">SVG 底图的布局</h2>\n<p>在默认情况下,ECharts 会将 SVG 底图放置在画布的中心。如果需要调整的话,一般只调整 <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>/<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>,偶尔也可能要调整 <code class=\"codespan\">&lt;svg viewBox=&quot;...&quot;&gt;</code>/<a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a>(它们两个的区别是:是否产生剪裁)。在大多数情况下,用这些已经足够了。</p>\n<p>如果要做一些精确的位置定制,那么还得了解下面这些概念。</p>\n<p><a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 和 <a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a> 的布局规则和选项都是一样的。所以下面我们只讲 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a>。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/geo-svg-layout-basic&edit=1&reset=1\" width=\"700\" height=\"550\" ></iframe>\n\n\n<p>上面的例子只有一个 ECharts 画布,其中三个 SVG 展示在六个 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中。同一列中的两个 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 使用相同的 SVG。</p>\n<p>首先,形状的外观是由 SVG 文件本身决定的。也就是说,在上例中,由 <code class=\"codespan\">&lt;circle&gt;</code> 和 <code class=\"codespan\">viewBox</code> 属性决定(<code class=\"codespan\">viewBox</code> 会切割圆形)。可以注意,每一列的形状轮廓都一样(不管它们的位置、大小是否不同和是否被拉伸),因为它们使用的是同一个 SVG。</p>\n<p>其次,用户可以用下面任一组选项,指定 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 的视口(<code class=\"codespan\">view port</code>)的位置和大小(它们的单位都是 echarts 画布的像素,或者百分比值):</p>\n<ul>\n<li><a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>、<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>(最常用)。</li>\n<li><a href=\"option.html#geo.top\" target=\"_blank\">top</a>、<a href=\"option.html#geo.right\" target=\"_blank\">right</a>、<a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>、<a href=\"option.html#geo.left\" target=\"_blank\">left</a>(在上例中使用的是这组)。</li>\n</ul>\n<p>在上例中,六个 <code class=\"codespan\">geo view port</code> 用六个黑色方块表示。</p>\n<p>第三,确定 SVG 的 <code class=\"codespan\">bounding rect</code>。<code class=\"codespan\">bounding rect</code> 由以下方法决定(它们的单位都是 SVG 内部元素的度量单位):</p>\n<ol>\n<li>如果设定了 <a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a>,则用它作 <code class=\"codespan\">bounding rect</code>。</li>\n<li>否则,如果设定了 <code class=\"codespan\">&lt;svg width=&quot;...&quot; height=&quot;...&quot;&gt;</code>,则用 <code class=\"codespan\">[0, 0, width, height]</code> 作为 <code class=\"codespan\">bounding rect</code>。(如果只设定了 <code class=\"codespan\">width</code> 或 <code class=\"codespan\">height</code>,则只使用 <code class=\"codespan\">[0, width]</code> 或 <code class=\"codespan\">[0, height]</code>)。</li>\n<li>否则,如果设定了 <code class=\"codespan\">&lt;svg viewBox=&quot;...&quot;&gt;</code>,则用 <code class=\"codespan\">viewBox</code> 作 <code class=\"codespan\">bounding rect</code>。</li>\n<li>否则,由整个 SVG 所有元素 <code class=\"codespan\">bounding rect</code> 的并集得到最终 <code class=\"codespan\">bounding rect</code>。</li>\n<li>如果设定了 <a href=\"option.html#geo.center\" target=\"_blank\">geo.center</a> 或 <a href=\"option.html#geo.zoom\" target=\"_blank\">geo.zoom</a>,则把上述 <code class=\"codespan\">1~4</code> 得到的 <code class=\"codespan\">bounding rect</code> 进行相应的 <code class=\"codespan\">transform</code>。</li>\n</ol>\n<p><code class=\"codespan\">bounding rect</code> 确定后,会放置到相应的 <code class=\"codespan\">geo view port</code> 里:</p>\n<ul>\n<li>如果用的是 <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>、<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>,<code class=\"codespan\">bounding rect</code> 会置于 <code class=\"codespan\">geo view port</code> 的中心,并尽量填满 <code class=\"codespan\">geo view port</code>(保持长宽比)。</li>\n<li>如果用的是 <a href=\"option.html#geo.top\" target=\"_blank\">top</a>、<a href=\"option.html#geo.right\" target=\"_blank\">right</a>、<a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>、<a href=\"option.html#geo.left\" target=\"_blank\">left</a>,<code class=\"codespan\">bounding rect</code> 会被拉伸,完全填充 <code class=\"codespan\">geo view port</code>。</li>\n</ul>\n<h2 id=\"-svg-\">在 SVG 底图上绘制系列</h2>\n<p><a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>、<a href=\"option.html#series-effectScatter\" target=\"_blank\">effectScatter</a>、<a href=\"option.html#series-lines\" target=\"_blank\">lines</a>、<a href=\"option.html#series-custom\" target=\"_blank\">custom</a> 这些在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中可用的系列都可以在 SVG 底图上定位和显示。</p>\n<p>在这种用法中,<code class=\"codespan\">series.data</code> 的值的单位即为是 SVG 内部元素的度量单位。比如说:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;\n    },\n    series: {\n        type: &#39;effectScatter&#39;,\n        coordinateSystem: &#39;geo&#39;,\n        geoIndex: 0,\n        data: [\n            // SVG local coords.\n            [488.2358421078053, 459.70913833075736],\n            [770.3415644319939, 757.9672194986475],\n            [1180.0329284196291, 743.6141808346214],\n        ]\n    }\n};\n</code></pre>\n<p>另外,有种简便方法可以获得 SVG 的坐标。</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    geo: {\n        map: &#39;some_svg&#39;\n    }\n});\nmyChart.getZr().on(&#39;click&#39;, function (params) {\n    var pixelPoint = [params.offsetX, params.offsetY];\n    var dataPoint = myChart.convertFromPixel({ geoIndex: 0 }, pixelPoint);\n    // 在 SVG 上点击时,坐标会被打印。\n    // 这些坐标可以在 `series.data` 里使用。\n    console.log(dataPoint);\n});\n</code></pre>\n<p>参见示例 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">SVG Scatter</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-lines\" target=\"_blank\">SVG Lines</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-traffic\" target=\"_blank\">SVG Traffic</a>。</p>\n<h2 id=\"-svg-\">暂不支持的 SVG 功能</h2>\n<p>实现一个完整的 SVG 解析器有点困难。虽然已经支持了常用的 SVG 功能,但至少下面列出的这些还没支持:</p>\n<ul>\n<li>翻转(flip)和倾斜(skew)(将在 <code class=\"codespan\">v5.1.2</code> 支持):<ul>\n<li>不支持 <code class=\"codespan\">transform: skew(...)</code>(包括包含 skew 的 <code class=\"codespan\">transform: matrix(...)</code>)。</li>\n<li>不支持当 <code class=\"codespan\">transform: scale(x, y)</code> 中 <code class=\"codespan\">x</code>/<code class=\"codespan\">y</code> 正负不同且有 <code class=\"codespan\">rotate</code>(例如,<code class=\"codespan\">scale: (1, -1), rotate(90)</code>)。</li>\n</ul>\n</li>\n<li>不支持 <code class=\"codespan\">&lt;style&gt;</code> 标签。<ul>\n<li>但内联样式是支持的(例如支持 <code class=\"codespan\">&lt;path style=&quot;color:red&quot; /&gt;</code>)。</li>\n</ul>\n</li>\n<li>单位:<ul>\n<li>只支持 <code class=\"codespan\">px</code>。不支持其他单位如 <code class=\"codespan\">width=&quot;231.65mm&quot;</code>。</li>\n<li>不支持百分比值,如不支持 <code class=\"codespan\">&lt;svg width=&quot;30%&quot; height=&quot;40%&quot;&gt;</code>。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;defs&gt;</code> 标签:<ul>\n<li>只支持 <code class=\"codespan\">&lt;linearGradient&gt;</code>、<code class=\"codespan\">&lt;radialGradient&gt;</code>。</li>\n<li>还不支持在 <code class=\"codespan\">&lt;defs&gt;</code> 中定义其他元素(如 <code class=\"codespan\">&lt;pattern&gt;</code>、<code class=\"codespan\">&lt;path&gt;</code>、...)。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;linearGradient&gt;</code>、<code class=\"codespan\">&lt;radialGradient&gt;</code>:<ul>\n<li>不支持 <code class=\"codespan\">fx</code>、<code class=\"codespan\">fy</code>。</li>\n<li>不支持 <code class=\"codespan\">gradientTransform</code>。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">fill:url(..)</code>, <code class=\"codespan\">stroke:utl(..)</code>:<ul>\n<li>只支持 <code class=\"codespan\">url(#someId)</code>。</li>\n<li>不支持其他 URL 模式,例如不支持:<ul>\n<li><code class=\"codespan\">url(https://example.com/images/myImg.jpg)</code>。</li>\n<li><code class=\"codespan\">url(data:image/png;base64,iRxVB0...)</code>。</li>\n<li><code class=\"codespan\">url(myFont.woff)</code>。</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;switch&gt;</code> 标签:<ul>\n<li><code class=\"codespan\">&lt;switch&gt;</code> 标签内的所有内容都会显示。不支持“切换”功能。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;text&gt;</code>。<ul>\n<li>不支持 <code class=\"codespan\">textPath</code>。</li>\n<li>不支持 <a href=\"https://www.w3.org/TR/SVG/text.html#TermAddressableCharacter\" target=\"_blank\">Addressable character</a>,也就是说:<pre><code class=\"lang-xml\">&lt;!-- 不支持: --&gt;\n&lt;tspan x=&quot;0 4.94 9.89&quot;&gt;abc&lt;/tspan&gt;。\n&lt;!-- 支持: --&gt;\n&lt;tspan x=&quot;0&quot;&gt;A&lt;/tspan&gt;\n&lt;tspan x=&quot;4.94&quot;&gt;b&lt;/tspan&gt;\n&lt;tspan x=&quot;9.89&quot;&gt;C&lt;/tspan&gt;\n</code></pre>\n</li>\n</ul>\n</li>\n</ul>\n"
diff --git a/zh/documents/tutorial.json b/zh/documents/tutorial.json
index 0b9084c..8f12432 100644
--- a/zh/documents/tutorial.json
+++ b/zh/documents/tutorial.json
@@ -1 +1 @@
-{"$schema":"https://echarts.apache.org/doc/json-schem","option":{"type":"Object","properties":{"5 分钟上手 ECharts":{"type":["*"],"description":"<h2 id=\"-echarts\">获取 ECharts</h2>\n<p>你可以通过以下几种方式获取 Apache ECharts<sup>TM</sup>。</p>\n<ul>\n<li><p>从 <a href=\"https://echarts.apache.org/zh/download.html\" target=\"_blank\">Apache ECharts 官网下载界面</a> 获取官方源码包后构建。</p>\n</li>\n<li><p>在 ECharts 的 <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">GitHub</a> 获取。</p>\n</li>\n<li><p>通过 npm 获取 echarts,<code class=\"codespan\">npm install echarts --save</code>,详见“<a href=\"tutorial.html#%E5%9C%A8%20webpack%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20ECharts\" target=\"_blank\">在 webpack 中使用 echarts</a>”</p>\n</li>\n<li><p>通过 <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">jsDelivr</a> 等 CDN 引入</p>\n</li>\n</ul>\n<h2 id=\"-echarts\">引入 ECharts</h2>\n<p>通过标签方式直接引入构建好的 echarts 文件</p>\n<pre><code class=\"lang-html\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;!-- 引入 ECharts 文件 --&gt;\n    &lt;script src=&quot;echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;/head&gt;\n&lt;/html&gt;\n</code></pre>\n<h2 id=\"-\">绘制一个简单的图表</h2>\n<p>在绘图前我们需要为 ECharts 准备一个具备高宽的 DOM 容器。</p>\n<pre><code>&lt;body&gt;\n    &lt;!-- 为 ECharts 准备一个具备大小(宽高)的 DOM --&gt;\n    &lt;div id=&quot;main&quot; style=&quot;width: 600px;height:400px;&quot;&gt;&lt;/div&gt;\n&lt;/body&gt;\n</code></pre><p>然后就可以通过 <a href=\"api.html#echarts.init\" target=\"_blank\">echarts.init</a> 方法初始化一个 echarts 实例并通过 <a href=\"api.html#echartsInstance.setOption\" target=\"_blank\">setOption</a> 方法生成一个简单的柱状图,下面是完整代码。</p>\n<pre><code class=\"lang-html\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;title&gt;ECharts&lt;/title&gt;\n    &lt;!-- 引入 echarts.js --&gt;\n    &lt;script src=&quot;echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;/head&gt;\n&lt;body&gt;\n    &lt;!-- 为ECharts准备一个具备大小(宽高)的Dom --&gt;\n    &lt;div id=&quot;main&quot; style=&quot;width: 600px;height:400px;&quot;&gt;&lt;/div&gt;\n    &lt;script type=&quot;text/javascript&quot;&gt;\n        // 基于准备好的dom,初始化echarts实例\n        var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n        // 指定图表的配置项和数据\n        var option = {\n            title: {\n                text: &#39;ECharts 入门示例&#39;\n            },\n            tooltip: {},\n            legend: {\n                data:[&#39;销量&#39;]\n            },\n            xAxis: {\n                data: [&quot;衬衫&quot;,&quot;羊毛衫&quot;,&quot;雪纺衫&quot;,&quot;裤子&quot;,&quot;高跟鞋&quot;,&quot;袜子&quot;]\n            },\n            yAxis: {},\n            series: [{\n                name: &#39;销量&#39;,\n                type: &#39;bar&#39;,\n                data: [5, 20, 36, 10, 10, 20]\n            }]\n        };\n\n        // 使用刚指定的配置项和数据显示图表。\n        myChart.setOption(option);\n    &lt;/script&gt;\n&lt;/body&gt;\n&lt;/html&gt;\n</code></pre>\n<p>这样你的第一个图表就诞生了!</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/getting-started&reset=1&edit=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n<p>你也可以直接进入 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=doc-example/getting-started\" target=\"_blank\">ECharts Gallery</a> 中查看编辑示例</p>\n"},"ECharts 5 新特性":{"type":["*"],"description":"<p>数据可视化在过去的几年中得到了长足的发展。开发者对于可视化产品的期待不再是简单的图表创建工具,而在交互、性能、数据处理等方面有了更高级的需求。</p>\n<p>Apache ECharts 始终致力于让开发者以更方便的方式创造灵活丰富的可视化作品。在最新推出的 Apache ECharts 5,我们着力加强了图表的叙事能力,让开发者可以以更简单的方式,讲述数据背后的故事。</p>\n<p><img src=\"documents/asset/img/feature-v5/echarts-5.png\" width=\"800px\" /></p>\n<p>“表·达”是 Apache ECharts 5 的核心,通过五大模块、十五项特性的全面升级,围绕可视化作品的叙事表达能力,让图“表”更能传“达”数据背后的故事,帮助开发者更轻松地创造满足各种场景需求的可视化作品。</p>\n<h2 id=\"-\">动态叙事</h2>\n<p>动画对于人类认知的重要性不言而喻。在之前的作品中,我们会通过初始化动画和过渡动画帮助用户理解数据变换之间的联系,让图表的出现和变换显得不那么生硬。这次,我们更是大幅度增强了我们的动画叙事能力,。希望能够进一步发挥动画对于用户认知的帮助作用,借助图表的动态叙事功能,帮助用户更容易理解图表背后表达的故事。</p>\n<h4 id=\"-\">动态排序图</h4>\n<p>Apache ECharts 5 新增支持动态排序柱状图(bar-racing)以及动态排序折线图(line-racing),帮助开发者方便地创建带有时序性的图表,展现数据随着时间维度上的变化,讲述数据的演变过程。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=bar-race-country&edit=1&reset=1\" width=\"700\" height=\"400\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=line-race&edit=1&reset=1\" width=\"700\" height=\"400\" ></iframe>\n\n\n<p>动态排序图展现了不同的类目随着时间在排名上的衍变。而开发者只需要通过几行简单的配置项就可以在 ECharts 中开启这样的效果。</p>\n<h4 id=\"-\">自定义系列动画</h4>\n<p>除了动态排序图,Apache ECharts 5 在自定义系列中提供了更加丰富强大的动画效果,支持标签数值文本的插值动画,图形的形变(morph)、分裂(separate)、合并(combine)等效果的过渡动画。</p>\n<p>想象一下,用这些动态效果,你可以创造出多么令人称奇的可视化作品!</p>\n<h2 id=\"-\">视觉设计</h2>\n<p>视觉设计的作用并不仅仅是为了让图表更好看,更重要的是,符合可视化原理的设计可以帮用户更快速地理解图表想表达的内容,并且尽可能消除不良设计带来的误解。</p>\n<h4 id=\"-\">默认设计</h4>\n<p>我们发现,有很大一部分开发者使用了 ECharts 默认的主题样式,因而设计优雅、符合可视化原理的默认主题设计是非常重要的。在 Apache ECharts 5 中,我们重新设计了默认的主题样式,针对不同的系列和组件分别做了优化调整。以主题色为例,我们考量了颜色之间的区分度、与背景色的对比度、相邻颜色的和谐度等因素,并且确保色觉辨识障碍人士也能清楚地区分数据。</p>\n<p><img src=\"documents/asset/img/feature-v5/theme-color.png\" width=\"400px\" /></p>\n<p>我们以最常用的柱状图为例,来看看新版本浅色主题和深色主题的样式:</p>\n<p><img src=\"documents/asset/img/feature-v5/new-theme-light.png\" width=\"500px\" />\n<img src=\"documents/asset/img/feature-v5/new-theme-dark.png\" width=\"500px\" /></p>\n<p>对于数据区域缩放,时间轴等交互组件,我们也设计了全新的样式并且提供了更好的交互体验:</p>\n<p><img src=\"documents/asset/img/feature-v5/dataZoom.png\" width=\"500px\" /></p>\n<p><img src=\"documents/asset/img/feature-v5/timeline.png\" width=\"500px\" /></p>\n<h4 id=\"-\">标签</h4>\n<p>标签是图表中的核心元素之一,清晰而明确的标签可以帮助用户对数据有更准确的理解。Apache ECharts 5 提供了多种新的标签功能,让密集的标签能清晰显示、准确表意。</p>\n<p>Apache ECharts 5 可以通过一个配置项开启自动隐藏重叠的标签。对于超出显示区域的标签,可以选择自动截断或者换行。密集的饼图标签,现在有了更美观的自动排布。</p>\n<p>这些功能可以帮助避免文字过于密集影响可读性。并且,无需开发者编写额外的代码就能默认生效,大大简化了开发者的开发成本。</p>\n<p>我们也提供了多个配置项来让开发者主动控制标签的布局策略,例如标签拖动、整体显示在画布边缘,用引导线和图形元素连接,并且仍可联动高亮表达关联关系。</p>\n<p>新的标签功能可以让你在移动端这样局限的空间内也可以有很优雅的标签展示:</p>\n<p><img src=\"documents/asset/img/feature-v5/pie-label.png\" height=\"150px\" />\n<img src=\"documents/asset/img/feature-v5/pie-label-2.png\" height=\"150px\" /></p>\n<h4 id=\"-\">时间轴</h4>\n<p>Apache ECharts 5 带来了适于表达时间标签刻度的时间轴。时间轴的默认设计更突出重要的信息,并且提供了更灵活的定制化能力,让开发者根据不同的需求定制时间轴的标签内容。</p>\n<p>首先,时间轴不再如之前般绝对平均分割,而是选取年、月、日、整点这类更有意义的点来展示,并且能同时显示不同层级的刻度。标签的 <code class=\"codespan\">formatter</code> 支持了时间模版(例如 <code class=\"codespan\">{yyyy}-{MM}-{dd}</code>),并且可以为不同时间粒度的标签指定不同的 <code class=\"codespan\">formatter</code>,结合已有的富文本标签,可以定制出醒目而多样的时间效果。</p>\n<p>不同的 dataZoom 粒度下时间刻度的显示:</p>\n<p><img src=\"documents/asset/img/feature-v5/time-axis.png\" width=\"600px\" /></p>\n<p><img src=\"documents/asset/img/feature-v5/time-axis-2.png\" width=\"600px\" /></p>\n<h4 id=\"-\">提示框</h4>\n<p>提示框(Tooltip)是一种最常用的可视化组件,可以帮助用户交互式地了解数据的详细信息。在 Apache ECharts 5 中,我们对提示框的样式进行了优化,通过对字体样式,颜色的调整,指向图形的箭头,跟随图形颜色的边框色等功能,让提示框的默认展示优雅又清晰。并且改进了富文本的渲染逻辑,确保显示效果与 HTML 方式一致,让用户在不同场景下可以选择不同的技术方案实现同样的效果。</p>\n<p><img src=\"documents/asset/img/feature-v5/new-tooltip.png\" height=\"200px\" />\n<img src=\"documents/asset/img/feature-v5/new-tooltip-2.png\" height=\"200px\" /></p>\n<p>除此之外,我们这次也加上了提示框内的列表按照数值大小或者类目顺序排序的功能。</p>\n<h4 id=\"-\">仪表盘</h4>\n<p>我们看到社区用户创建了很多酷炫的仪表盘图表,但是他们的配置方式往往比较复杂而取巧。因此,我们对仪表盘的功能作了全面升级,支持了图片或者矢量路径绘制指针、也支持了锚点(anchor)配置项、进度条(progress)、圆角效果等等配置项。</p>\n<p>不同样式的仪表盘指针:</p>\n<p><img src=\"documents/asset/img/feature-v5/gauge-pointer.png\" width=\"600px\" /></p>\n<p>这些升级,不仅可以让开发者用更简单的配置项实现酷炫的效果,而且带来了更丰富的定制能力。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=gauge-clock&edit=1&reset=1\" width=\"600\" height=\"600\" ></iframe>\n\n\n<h4 id=\"-\">扇形圆角</h4>\n<p>圆角可以带来更美观而柔和的视觉,也能够赋予更多的创造力。Apache ECharts 5 支持了饼图、旭日图、矩形树图的扇形圆角。可不要小看了简单的圆角配置项,合理地搭配其他的效果,就可以形成更具个性的的可视化作品。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=sunburst-borderRadius&edit=1&reset=1\" width=\"400\" height=\"400\" ></iframe>\n\n\n\n\n<h2 id=\"-\">交互能力</h2>\n<p>可视化作品的交互能力帮助用户探索了解作品,加深对于图表主旨的理解。</p>\n<h4 id=\"-\">状态管理</h4>\n<p>在 ECharts 4 中有高亮(emphasis)和普通(normal)两个交互的状态,在鼠标移到图形上的时候会进入高亮状态以区分该数据,开发者可以分别设置这两个状态的颜色,阴影等样式。</p>\n<p>这次在 Apache ECharts 5 中,我们在原先的鼠标 hover 高亮的基础上,新增加了<strong>淡出</strong>其它非相关元素的效果,从而可以达到聚焦目标数据的目的。</p>\n<p>比如在这个<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=bar-y-category-stack\" target=\"_blank\">柱状图</a>的例子中,鼠标移到一个系列上的时候,其它非相关的系列就会淡出,从而可以更清晰的突出聚焦系列中数据的对比。在关系图,树图,旭日图,桑基等更复杂数据结构的图上,也可以通过淡出非相关元素来观察数据之间的联系。而且颜色,阴影等在高亮(emphasis)中可以设置的样式,现在也可以在淡出(blur)状态中设置了。</p>\n<p>除此之外,我们为所有系列还添加了<strong>点击选中</strong>这个之前只有在饼图、地图等少数系列中才能开启的交互,开发者可以设置为单选或多选模式,并且通过监听 <code class=\"codespan\">selectchanged</code> 事件获取到选中的所有图形然后进行更进一步的处理。与高亮和淡出一样,选中的样式也可以在 <code class=\"codespan\">select</code> 中配置。</p>\n<h4 id=\"-\">性能提升</h4>\n<h5 id=\"-\">脏矩形渲染</h5>\n<p>Apache ECharts 5 新支持了脏矩形渲染,解决只有局部变化的场景下的性能瓶颈。在使用 Canvas 渲染器时,脏矩形渲染技术探测并只更新视图变化的部分,而不是任何变动都引起画布完全重绘。这能在一些特殊场景下帮助提高渲染帧率,例如在图形很多时候,鼠标频繁触发一些图形高亮的场景。以往这类场景,会使用额外的 Canvas 层以优化性能,但是这种方式不是所有场景都通用,而且对于复杂的样式的效果并不理想。脏矩形渲染很好地同时满足了性能和显示正确。</p>\n<p>脏矩形的可视化演示,红色框选部分为该帧重绘区域:</p>\n<p><img src=\"documents/asset/img/feature-v5/dirty-rect.gif\" width=\"500px\" /></p>\n<p>大家在新的示例页面选择开启脏矩形优化就可以看到该效果。</p>\n<h5 id=\"-\">实时时序数据的折线图性能优化</h5>\n<p>除此之外,海量数据下折线图的性能也有了大幅度的性能提升。我们经常碰到大量的实时时序数据的高性能绘制的需求,这些数据可能需要几百或者几十毫秒更新一次。</p>\n<p>Apache ECharts 5 对这些场景下的 CPU 消耗、内存占用、初始化时间都进行了深度的优化,使得百万量级的数据也能做到实时的更新(每次更新耗时少于 30ms),甚至对于千万级的数据,也可以在 1s 内渲染完,并且保持很小的内存占用以及流畅的提示框(tooltip)等交互。</p>\n<h2 id=\"-\">开发体验</h2>\n<p>我们希望如此强大的可视化工具可以被更多开发者以更简单的方式使用,因而开发者的开发体验也是我们非常关注的方面。</p>\n<h4 id=\"-\">数据集</h4>\n<p>ECharts 5 加强了数据集的数据转换能力,让开发者可以使用简单的方式实现常用的数据处理,如:数据过滤(filter)、排序(sort)、聚合(aggregate)、直方图(histogram)、简单聚类(clustering)、回归线计算(regression)等。开发者可以用统一的声明式方式来使用这些功能,可以方便地实现常用的数据操作。</p>\n<h4 id=\"-\">国际化</h4>\n<p>ECharts 原有的国际化方案,采用的是根据不同的语言参数打包出不同的部署文件的形式。​这种方式,使动态的语言和静态的代码包绑定在一起,使用的时候只能通过重新加载不同语言版本的 ECharts 代码来达到切换语言的目的。</p>\n<p>因此,从 Apache ECharts 5 开始,动态的语言包和静态的代码包分离开。切换语言的时候,只需要加载相应语言包​,通过类似挂载主题的方式,使用 <code class=\"codespan\">registerLocale</code> 函数挂载语言包对象​,重新初始化后就完成了语言的切换​。</p>\n<pre><code class=\"lang-js\">// import the lang object and set when init​\necharts.registerLocale(&#39;DE&#39;, lang);​\necharts.init(DomElement, null, {​\n   locale: &#39;DE&#39;​\n});\n</code></pre>\n<h4 id=\"typescript-\">TypeScript 重构</h4>\n<p>在近 8 年的时间里,Apache ECharts 已经发展成一个非常复杂的可视化库了,为了续可以更安全高效的进行重构和新功能的开发,我们在 Apache ECharts 5 的开发之初,使用 TypeScript 对代码进行了重写,TypeScript 所带来的强类型让我们更有信心地在 ECharts 5 开发的时候对代码进行大刀阔斧的重构以实现更多令人激动人心的特性。</p>\n<p>对于开发者,我们也可以从 TypeScript 代码直接生成更好更符合代码的<code class=\"codespan\">DTS</code>类型描述文件。在此之前,ECharts 的类型描述文件一直是由社区开发者帮我们维护并发布到<a href=\"https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/echarts\" target=\"_blank\">DefinityTyped</a>,这个有着不小的工作量,非常感谢大家的贡献。</p>\n<p>除此之外,如果开发者的组件是按需引入的,我们还提供了一个 <code class=\"codespan\">ComposeOption</code> 类型方法,可以组合出一个只包含了引入组件的配置项类型,可以带来更严格的类型检查,帮助你提前检测到未引入的组件类型。</p>\n<h2 id=\"-\">可访问性</h2>\n<p>Apache ECharts 一直非常重视无障碍设计,我们希望让视觉障碍人士也能平等了解图表传递的信息。并且也希望图表的开发者能以极低的开发成本实现这一点,因而有利于让开发者更愿意为视觉障碍人士提供支持。</p>\n<p>在上一个大版本中,我们支持了根据不同的图表类型和数据自动一键智能生成图表描述的功能,帮助开发者非常方便地支持图表的 DOM 描述信息。在 ECharts 5 中,我们也做了更多提高可访问性的设计,帮助视觉障碍人士更好地理解图表内容。</p>\n<h4 id=\"-\">主题配色</h4>\n<p>我们在设计新版默认主题样式的时候,将无障碍设计作为一个重要的考量依据,对颜色的明度和色值都进行反复测试,帮助视觉辨识障碍用户清楚地识别图表数据。​</p>\n<p>并且,针对有更进一步无障碍需求的开发者,我们还提供了特殊的高对比度主题,以更高对比度颜色的主题将数据作进一步区分。</p>\n<h4 id=\"-\">贴花图案</h4>\n<p>ECharts 5 还新增提供了贴花的功能,用图案辅助颜色表达,进一步帮助用户区分数据。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/aria-decal-simple&edit=1&reset=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n<p>此外,贴花图案还能在一些其他的场景下提供帮助,比如:在报纸、书籍之类只有单色或者非常少的颜色的印刷品中,帮助更好地区分数据;用图形元素方便用户对数据产生更直观的理解等。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/aria-decal-newspaper&edit=1&reset=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n\n<h2 id=\"-\">小结</h2>\n<p>除了以上介绍的功能,Apache ECharts 还在非常多的细节中做了改进,帮助开发者更轻松地创建默认好用、配置灵活的图表,用图表讲述数据背后的故事。</p>\n<p>感谢所有使用过 ECharts,甚至参与过社区贡献的开发者,正是你们才使得 Apache ECharts 5 成为可能。我们会以更大的热情投入到未来的开发中,Apache ECharts 也会以更大的诚意和大家在 6 相见!</p>\n"},"ECharts 5 升级指南":{"type":["*"],"description":"<p>本指南面向那些希望将 echarts 4.x(以下简称 <code class=\"codespan\">v4</code>)升级到 echarts 5.x(以下简称 <code class=\"codespan\">v5</code>)的用户。大家可以在 <a href=\"tutorial.html#ECharts%205%20新特性\" target=\"_blank\">ECharts 5 新特性</a> 中了解这次<code class=\"codespan\">v5</code>带来了哪些值得升级的新特性。在绝大多数情况下,开发者用不着为这个升级做什么额外的事,因为 echarts 一直尽可能地保持 API 的稳定和向后兼容。但是,<code class=\"codespan\">v5</code> 仍然带来了一些非兼容改动,需要特别关注。此外,在一些情况下,<code class=\"codespan\">v5</code> 提供了更好的 API 用来取代之前的 API,这些被取代的 API 将不再被推荐使用(当然,我们尽量兼容了这些改动)。我们会在这篇文档里尽量详尽得解释这些改动。</p>\n<p>因为我们在 <code class=\"codespan\">v5.0.1</code> 增加了新的<a href=\"tutorial.html#%E5%9C%A8%E6%89%93%E5%8C%85%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8%20ECharts\" target=\"_blank\">按需引入接口</a>,所以本文档基于 <code class=\"codespan\">v5.0.1</code> 或者更高的版本。</p>\n<h2 id=\"-\">非兼容性改变</h2>\n<h4 id=\"-theme-\">默认主题(theme)</h4>\n<p>首先是默认主题的改动,<code class=\"codespan\">v5</code> 在配色等主题设计上做了很多的优化来达到更好的视觉效果。如果大家依旧想保留旧版本的颜色,可以手动声明颜色,如下:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    color: [\n        &#39;#c23531&#39;, &#39;#2f4554&#39;, &#39;#61a0a8&#39;, &#39;#d48265&#39;, &#39;#91c7ae&#39;, &#39;#749f83&#39;,\n        &#39;#ca8622&#39;, &#39;#bda29a&#39;, &#39;#6e7074&#39;, &#39;#546570&#39;, &#39;#c4ccd3&#39;\n    ],\n    // ...\n});\n</code></pre>\n<p>或者,做一个简单的 <code class=\"codespan\">v4</code> 主题:</p>\n<pre><code class=\"lang-js\">var themeEC4 = {\n    color: [\n        &#39;#c23531&#39;, &#39;#2f4554&#39;, &#39;#61a0a8&#39;, &#39;#d48265&#39;, &#39;#91c7ae&#39;, &#39;#749f83&#39;,\n        &#39;#ca8622&#39;, &#39;#bda29a&#39;, &#39;#6e7074&#39;, &#39;#546570&#39;, &#39;#c4ccd3&#39;\n    ]\n};\nvar chart = echarts.init(dom, themeEC4);\nchart.setOption(/* ... */);\n</code></pre>\n<h4 id=\"-echarts\">引用 ECharts</h4>\n<h5 id=\"-default-exports-\">去除 default exports 的支持</h5>\n<p>如果使用者在 <code class=\"codespan\">v4</code> 中这样引用了 echarts:</p>\n<pre><code class=\"lang-js\">import echarts from &#39;echarts&#39;;\n// 或者按需引入\nimport echarts from &#39;echarts/lib/echarts&#39;;\n</code></pre>\n<p>这两种方式,<code class=\"codespan\">v5</code> 中不再支持了。</p>\n<p>使用者需要如下更改代码解决这个问题:</p>\n<pre><code class=\"lang-js\">import * as echarts from &#39;echarts&#39;;\n// 按需引入\nimport * as echarts from &#39;echarts/lib/echarts&#39;;\n</code></pre>\n<h5 id=\"-\">按需引入</h5>\n<p>在 5.0.1 中,我们引入了新的<a href=\"tutorial.html#%E5%9C%A8%E6%89%93%E5%8C%85%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8%20ECharts\" target=\"_blank\">按需引入接口</a></p>\n<pre><code class=\"lang-js\">import * as echarts from &#39;echarts/core&#39;;\nimport { BarChart } from &#39;echarts/charts&#39;;\nimport { GridComponent } from &#39;echarts/components&#39;;\n// 注意,新的接口中默认不再包含 Canvas 渲染器,需要显示引入,如果需要使用 SVG 渲染模式则使用 SVGRenderer\nimport { CanvasRenderer } from &#39;echarts/renderers&#39;;\n\necharts.use([BarChart, GridComponent, CanvasRenderer]);\n</code></pre>\n<p>如果之前是使用<code class=\"codespan\">import &#39;echarts/lib/chart/bar&#39;</code>引入,新的接口对应的是<code class=\"codespan\">import {BarChart} from &#39;echarts/charts&#39;</code>;</p>\n<p>为了方便大家了解自己的配置项需要引入哪些模块,我们新的示例编辑页面添加了生成按需引入代码的功能,大家可以在示例编辑页的<code class=\"codespan\">完整代码</code>标签下选中按需引入后查看需要引入的模块以及相关代码。</p>\n<p>在大部分情况下,我们都推荐大家尽可能用这套新的按需引入接口,它可以最大程度的利用打包工具 tree-shaking 的能力,并且可以有效解决命名空间冲突的问题而且防止了内部结构的暴露。如果你依旧在使用 CommonJS 的模块写法,之前的方式我们也依旧是支持的:</p>\n<pre><code class=\"lang-js\">const echarts = require(&#39;echarts/lib/echarts&#39;);\nrequire(&#39;echarts/lib/chart/bar&#39;);\nrequire(&#39;echarts/lib/component/grid&#39;);\n</code></pre>\n<p>其次,因为我们的源代码已使用 TypeScript 重写,<code class=\"codespan\">v5</code> 将不再支持从 <code class=\"codespan\">echarts/src</code> 引用文件,需要改为从<code class=\"codespan\">echarts/lib</code>引入。</p>\n<h5 id=\"-\">依赖调整</h5>\n<blockquote>\n<p>注意:该部分只针对为了保证较小的打包体积而是用按需引入接口的开发者,如果是全量引入的不需要关注</p>\n</blockquote>\n<p>为了保证 tree-shaking 后的体积足够小,我们去除了一些之前会默认被打包进来的依赖。比如前面提到的在使用新的按需引入接口的时候,<code class=\"codespan\">CanvasRenderer</code>将不再被默认引入,这样可以保证只需要使用 SVG 渲染模式的时候不会把不需要的 Canvas 渲染代码也一起打包进来,除此之外,还有下面这些依赖的改动:</p>\n<ul>\n<li>在使用折线图,柱状图中不再默认引入直角坐标系组件,因此之前使用下面的引入方式<pre><code class=\"lang-js\">const echarts = require(&#39;echarts/lib/echarts&#39;);\nrequire(&#39;echarts/lib/chart/bar&#39;);\nrequire(&#39;echarts/lib/chart/line&#39;);\n</code></pre>\n需要再单独引入<code class=\"codespan\">grid</code>组件<pre><code class=\"lang-js\">require(&#39;echarts/lib/component/grid&#39;);\n</code></pre>\n</li>\n</ul>\n<p>参考 issue:<a href=\"https://github.com/apache/echarts/issues/14080\" target=\"_blank\">#14080</a>, <a href=\"https://github.com/apache/echarts/issues/13764\" target=\"_blank\">#13764</a></p>\n<ul>\n<li>默认不再引入<code class=\"codespan\">aria</code>组件,如果需要的话可以手动引入。<pre><code class=\"lang-js\">import { AriaComponent } from &#39;echarts/components&#39;;\necharts.use(AriaComponent);\n</code></pre>\n或者:<pre><code class=\"lang-js\">require(&#39;echarts/lib/component/aria&#39;);\n</code></pre>\n</li>\n</ul>\n<h4 id=\"-geojson\">去除内置的 geoJSON</h4>\n<p><code class=\"codespan\">v5</code> 移除了内置的 geoJSON(原先在 <code class=\"codespan\">echarts/map</code> 文件夹下)。这些 geoJSON 文件本就一直来源于第三方。如果使用者仍然需要他们,可以去从老版本中得到,或者自己寻找更合适的数据然后通过 registerMap 接口注册到 ECharts 中。</p>\n<h4 id=\"-\">浏览器兼容性</h4>\n<p><code class=\"codespan\">v5</code> 不再支持 IE8 浏览器。我们不再继续维护和升级之前的 <a href=\"https://github.com/ecomfe/zrender/tree/4.3.2/src/vml\" target=\"_blank\">VML 渲染器</a> 来着实现 IE8 的兼容。如果使用者确实有很强的需求,那么欢迎提 pull request 来升级 VML 渲染器,或者单独维护一个第三方 VML 渲染器,我们从 <code class=\"codespan\">v5.0.1</code> 开始支持注册独立的渲染器了。</p>\n<h4 id=\"echarts-\">ECharts 配置项调整</h4>\n<h5 id=\"-\">视觉样式设置的优先级改变</h5>\n<p><code class=\"codespan\">v5</code> 对调了 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap 组件</a> 和 <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a> 的视觉样式优先级。</p>\n<p>具体来说,<code class=\"codespan\">v4</code> 中,<a href=\"option.html#visualMap\" target=\"_blank\">visualMap 组件</a> 中生成的视觉样式(如,颜色、图形类型、图形尺寸等)的优先级,比开发者在 <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a> 中设置的样式的优先级高,也就是说如果他们同时设置的话,前者会生效而后者不会生效。这带来了些麻烦:假如使用者在使用 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap 组件</a> 时,又想针对某个数据项对应的图形,设置 <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> 样式,则做不到。<code class=\"codespan\">v5</code> 中于是提高了 <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a> 的优先级,使他们能生效。</p>\n<p>在绝大多处情况下,这个变化并不会带来什么影响。但是为保险起见,使用者在升级 <code class=\"codespan\">v4</code> 到 <code class=\"codespan\">v5</code> 时,还是可以检查下,是否有同时使用 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> 和 <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a> 的情况。</p>\n<h5 id=\"-padding\">富文本的 <code class=\"codespan\">padding</code></h5>\n<p><code class=\"codespan\">v5</code> 调整了 <a href=\"option.html#series-scatter.label.rich.&lt;style_name&gt;.padding\" target=\"_blank\">rich.?.padding</a> 的格式使其更符合 CSS 的规范。<code class=\"codespan\">v4</code> 里,例如 <code class=\"codespan\">rich.?.padding: [11, 22, 33, 44]</code> 表示 <code class=\"codespan\">padding-top</code> 是 <code class=\"codespan\">33</code> 且 <code class=\"codespan\">padding-bottom</code> 是 <code class=\"codespan\">11</code>。在 <code class=\"codespan\">v5</code> 中调整了上下的位置,<code class=\"codespan\">rich.?.padding: [11, 22, 33, 44]</code> 表示  <code class=\"codespan\">padding-top</code> 是 <code class=\"codespan\">11</code> 且 <code class=\"codespan\">padding-bottom</code> 是 <code class=\"codespan\">33</code>。</p>\n<p>如果使用者有在使用 <a href=\"option.html#series-scatter.label.rich.&lt;style_name&gt;.padding\" target=\"_blank\">rich.?.padding</a>,需要注意调整下这个顺序。</p>\n<h2 id=\"echarts-\">ECharts 的相关扩展</h2>\n<p>如果想要升级到 <code class=\"codespan\">v5</code> ,下面这些扩展需要升级到最新的版本实现兼容。</p>\n<ul>\n<li><a href=\"https://github.com/ecomfe/echarts-gl\" target=\"_blank\">echarts-gl</a></li>\n<li><a href=\"https://github.com/ecomfe/echarts-wordcloud\" target=\"_blank\">echarts-wordcloud</a></li>\n<li><a href=\"https://github.com/ecomfe/echarts-liquidfill\" target=\"_blank\">echarts-liquidfill</a></li>\n</ul>\n<h2 id=\"-api\">不再推荐使用的 API</h2>\n<p>一些 API(包括接口调用,事件监听和配置项)在 <code class=\"codespan\">v5</code> 中不再推荐使用。当然,使用者仍然可以用他们,只是会在 dev 模式下,在 console 中打印一些 warning,并不会影响功能。但是从长远维护考虑,我们还是推荐升级成新的 API。</p>\n<p>下面是不再推荐使用的 API 以及推荐的新 API:</p>\n<ul>\n<li>图形元素 transform 相关的属性被改变了:<ul>\n<li>变更点:<ul>\n<li><code class=\"codespan\">position: [number, number]</code> 改为 <code class=\"codespan\">x: number</code> / <code class=\"codespan\">y: number</code>。</li>\n<li><code class=\"codespan\">scale: [number, number]</code> 改为 <code class=\"codespan\">scaleX: number</code> / <code class=\"codespan\">scaleY: number</code>。</li>\n<li><code class=\"codespan\">origin: [number, number]</code> 改为 <code class=\"codespan\">originX: number</code> / <code class=\"codespan\">originY: number</code>。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">position</code>、<code class=\"codespan\">scale</code> 和 <code class=\"codespan\">origin</code> 仍然支持,但已不推荐使用。</li>\n<li>它影响到这些地方:<ul>\n<li>在<code class=\"codespan\">graphic</code>组件中:每个元素的声明。</li>\n<li>在 <code class=\"codespan\">custom series</code> 中:<code class=\"codespan\">renderItem</code> 返回的每个元素的声明。</li>\n<li>直接使用 zrender 图形元素时。</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>Text 相关的属性被改变:<ul>\n<li>变更点:<ul>\n<li>图形元素附带的文本的声明方式被改变:<ul>\n<li>除了 <code class=\"codespan\">Text</code> 元素之外,其他元素中的属性 <code class=\"codespan\">style.text</code> 都不推荐使用了。取而代之的是新属性 <code class=\"codespan\">textContent</code> 和 <code class=\"codespan\">textConfig</code>,他们能带来更丰富的功能。</li>\n<li>其中,下面左边部分的这些属性已不推荐使用或废弃。请使用下面的右边部分的属性:<ul>\n<li>textPosition =&gt; textConfig.position</li>\n<li>textOffset =&gt; textConfig.offset</li>\n<li>textRotation =&gt; textConfig.rotation</li>\n<li>textDistance =&gt; textConfig.distance</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>下面左边部分的属性在 <code class=\"codespan\">style</code> 和 <code class=\"codespan\">style.rich.?</code> 中已不推荐使用或废弃。请使用下面右边的属性:<ul>\n<li>textFill =&gt; fill</li>\n<li>textStroke =&gt; stroke</li>\n<li>textFont =&gt; font</li>\n<li>textStrokeWidth =&gt; lineWidth</li>\n<li>textAlign =&gt; align</li>\n<li>textVerticalAlign =&gt; verticalAlign</li>\n<li>textLineHeight =&gt;</li>\n<li>textWidth =&gt; width</li>\n<li>textHeight =&gt; hight</li>\n<li>textBackgroundColor =&gt; backgroundColor</li>\n<li>textPadding =&gt; padding</li>\n<li>textBorderColor =&gt; borderColor</li>\n<li>textBorderWidth =&gt; borderWidth</li>\n<li>textBorderRadius =&gt; borderRadius</li>\n<li>textBoxShadowColor =&gt; shadowColor</li>\n<li>textBoxShadowBlur =&gt; shadowBlur</li>\n<li>textBoxShadowOffsetX =&gt; shadowOffsetX</li>\n<li>textBoxShadowOffsetY =&gt; shadowOffsetY</li>\n</ul>\n</li>\n<li>注:这些属性并没有变化:<ul>\n<li>textShadowColor</li>\n<li>textShadowBlur</li>\n<li>textShadowOffsetX</li>\n<li>textShadowOffsetY</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>它影响到这些地方:<ul>\n<li>在 <code class=\"codespan\">graphic</code> 组件中:每个元素的声明。(原来的写法仍兼容,但在一些很复杂的情况下,可能效果不完全一致。)</li>\n<li>在自定义系列(<code class=\"codespan\">custom series</code>)中:<code class=\"codespan\">renderItem</code> 返回中的每个元素的声明。(原来的写法仍兼容,但在一些很复杂的情况下,可能效果不完全一致。)</li>\n<li>直接使用 zrender API 创建图形元素。(不再兼容,原写法被废弃。)</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>图表实例上的 API:<ul>\n<li><code class=\"codespan\">chart.one(...)</code> 已不推荐使用。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">label</code>。<ul>\n<li>属性 <code class=\"codespan\">color</code>、<code class=\"codespan\">textBorderColor</code>、<code class=\"codespan\">backgroundColor</code>、<code class=\"codespan\">borderColor</code> 中,值 <code class=\"codespan\">auto</code> 已不推荐使用,而推荐使用 <code class=\"codespan\">&#39;inherit&#39;</code> 代替。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">hoverAnimation</code>:<ul>\n<li>选项 <code class=\"codespan\">series.hoverAnimation</code> 已不推荐使用,使用 <code class=\"codespan\">series.emphasis.scale</code> 代替之。</li>\n</ul>\n</li>\n<li>折线图(<code class=\"codespan\">line series</code>):<ul>\n<li>选项 <code class=\"codespan\">series.clipOverflow</code> 已不推荐使用,使用 <code class=\"codespan\">series.clip</code> 代替之。</li>\n</ul>\n</li>\n<li>自定义系列(<code class=\"codespan\">custom series</code>)。<ul>\n<li>在 <code class=\"codespan\">renderItem</code> 中,<code class=\"codespan\">api.style(...)</code> 和 <code class=\"codespan\">api.styleEmphasis(...)</code> 已不推荐使用。因为这两个接口其实并不真正必要,也很难保证向后兼容。用户可以通过 <code class=\"codespan\">api.visual(...)</code> 获取系统自动分配的视觉信息。</li>\n</ul>\n</li>\n<li>旭日图(<code class=\"codespan\">sunburst</code>):<ul>\n<li>动作类型 <code class=\"codespan\">highlight</code> 已被弃用,请使用 <code class=\"codespan\">sunburstHighlight</code> 代替。</li>\n<li>动作类型 <code class=\"codespan\">downplay</code> 已被弃用,请使用 <code class=\"codespan\">sunburstUnhighlight</code> 代替。</li>\n<li>选项 <code class=\"codespan\">series.downplay</code> 已被弃用,请使用 <code class=\"codespan\">series.blur</code> 代替。</li>\n<li>选项 <code class=\"codespan\">series.highlightPolicy</code> 已不适用,请使用 <code class=\"codespan\">series.emphasis.focus</code> 代替。</li>\n</ul>\n</li>\n<li>饼图(<code class=\"codespan\">pie</code>):<ul>\n<li>下面左边部分的 action 名已经不推荐使用。请使用右边的 action 名。<ul>\n<li><code class=\"codespan\">pieToggleSelect</code> =&gt; <code class=\"codespan\">toggleSelect</code>。</li>\n<li><code class=\"codespan\">pieSelect</code> =&gt; <code class=\"codespan\">select</code>。</li>\n<li><code class=\"codespan\">pieUnSelect</code> =&gt; <code class=\"codespan\">unselect</code>。</li>\n</ul>\n</li>\n<li>下面左边部分的事件名已经不推荐使用。请使用右边的事件名。<ul>\n<li><code class=\"codespan\">pieselectchanged</code> =&gt; <code class=\"codespan\">selectchanged</code>。</li>\n<li><code class=\"codespan\">pieselected</code> =&gt; <code class=\"codespan\">selected</code>。</li>\n<li><code class=\"codespan\">pieunselected</code> =&gt; <code class=\"codespan\">unselected</code>。</li>\n</ul>\n</li>\n<li>选项 <code class=\"codespan\">series.label.margin</code> 已经不推荐使用。使用 <code class=\"codespan\">series.label.edgeDistance</code> 代替。</li>\n<li>选项 <code class=\"codespan\">series.clockWise</code> 已经不推荐使用。使用 <code class=\"codespan\">series.clockwise</code> 代替。</li>\n<li>选项 <code class=\"codespan\">series.hoverOffset</code> 已经不推荐使用。使用 <code class=\"codespan\">series.emphasis.scaleSize</code> 代替。</li>\n</ul>\n</li>\n<li>地图(<code class=\"codespan\">map series</code>):<ul>\n<li>下文左边部分的 action 名已经不推荐使用。请使用右边的 action 名。<ul>\n<li><code class=\"codespan\">mapToggleSelect</code> =&gt; <code class=\"codespan\">toggleSelect</code>。</li>\n<li><code class=\"codespan\">mapSelect</code> =&gt; <code class=\"codespan\">select</code>。</li>\n<li><code class=\"codespan\">mapUnSelect</code> =&gt; <code class=\"codespan\">unselect</code>。</li>\n</ul>\n</li>\n<li>下面左边部分的事件名已经不推荐使用。请使用右边的事件名。<ul>\n<li><code class=\"codespan\">mapselectchanged</code> =&gt; <code class=\"codespan\">selectchanged</code>。</li>\n<li><code class=\"codespan\">mapselected</code> =&gt; <code class=\"codespan\">selected</code>。</li>\n<li><code class=\"codespan\">mapunselected</code> =&gt; <code class=\"codespan\">unselected</code>。</li>\n</ul>\n</li>\n<li>选项 <code class=\"codespan\">series.mapType</code> 已经不推荐使用。使用 <code class=\"codespan\">series.map</code> 代替。</li>\n<li>选项 <code class=\"codespan\">series.mapLocation</code> 已经不推荐使用。</li>\n</ul>\n</li>\n<li>关系图(<code class=\"codespan\">graph series</code>):<ul>\n<li>选项 <code class=\"codespan\">series.focusNodeAdjacency</code> 已经不推荐使用。使用 <code class=\"codespan\">series.emphasis: { focus: &#39;adjacency&#39;}</code> 代替。</li>\n</ul>\n</li>\n<li>仪表盘(<code class=\"codespan\">gauge series</code>):<ul>\n<li>选项 <code class=\"codespan\">series.clockWise</code> 已经不推荐使用。使用 <code class=\"codespan\">series.clockwise</code> 代替。</li>\n<li>选项 <code class=\"codespan\">series.hoverOffset</code> 已经不推荐使用。使用 <code class=\"codespan\">series.emphasis.scaleSize</code> 代替。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">dataZoom</code> 组件:<ul>\n<li>选项 <code class=\"codespan\">dataZoom.handleIcon</code> 如果使用 <code class=\"codespan\">SVGPath</code>,需要前缀 <code class=\"codespan\">path://</code>。</li>\n</ul>\n</li>\n<li>雷达图(<code class=\"codespan\">radar</code>):<ul>\n<li>选项 <code class=\"codespan\">radar.name</code> 已经不推荐使用。使用 <code class=\"codespan\">radar.axisName</code> 代替。</li>\n<li>选项 <code class=\"codespan\">radar.nameGap</code> 已经不推荐使用。使用 <code class=\"codespan\">radar.axisNameGap</code> 代替。</li>\n</ul>\n</li>\n<li>Parse and format:<ul>\n<li><code class=\"codespan\">echarts.format.formatTime</code> 已经不推荐使用。使用 <code class=\"codespan\">echarts.time.format</code> 代替。</li>\n<li><code class=\"codespan\">echarts.number.parseDate</code> 已经不推荐使用。使用 <code class=\"codespan\">echarts.time.parse</code> 代替。</li>\n<li><code class=\"codespan\">echarts.format.getTextRect</code> 已经不推荐使用。</li>\n</ul>\n</li>\n</ul>\n"},"在打包环境中使用 ECharts":{"type":["*"],"description":"<p>假如你的开发环境使用了<code class=\"codespan\">npm</code>或者<code class=\"codespan\">yarn</code>等包管理工具,并且使用 Webpack 等打包工具进行构建,本文将会介绍如何引入 Apache ECharts<sup>TM</sup> 并通过 treeshaking 只打包需要的模块。</p>\n<h2 id=\"npm-echarts\">NPM 安装 ECharts</h2>\n<p>你可以使用如下命令通过 npm 安装 ECharts</p>\n<pre><code class=\"lang-shell\">npm install echarts --save\n</code></pre>\n<h2 id=\"-echarts\">引入 ECharts</h2>\n<pre><code class=\"lang-js\">import * as echarts from &#39;echarts&#39;;\n\n// 基于准备好的dom,初始化echarts实例\nvar myChart = echarts.init(document.getElementById(&#39;main&#39;));\n// 绘制图表\nmyChart.setOption({\n    title: {\n        text: &#39;ECharts 入门示例&#39;\n    },\n    tooltip: {},\n    xAxis: {\n        data: [&#39;衬衫&#39;, &#39;羊毛衫&#39;, &#39;雪纺衫&#39;, &#39;裤子&#39;, &#39;高跟鞋&#39;, &#39;袜子&#39;]\n    },\n    yAxis: {},\n    series: [{\n        name: &#39;销量&#39;,\n        type: &#39;bar&#39;,\n        data: [5, 20, 36, 10, 10, 20]\n    }]\n});\n</code></pre>\n<h2 id=\"-echarts-\">按需引入 ECharts 图表和组件</h2>\n<p>上面的代码会引入所有 ECharts 中所有的图表和组件,但是假如你不想引入所有组件,也可以使用 ECharts 提供的按需引入的接口来打包必须的组件。</p>\n<pre><code class=\"lang-js\">// 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。\nimport * as echarts from &#39;echarts/core&#39;;\n// 引入柱状图图表,图表后缀都为 Chart\nimport {\n    BarChart\n} from &#39;echarts/charts&#39;;\n// 引入提示框,标题,直角坐标系组件,组件后缀都为 Component\nimport {\n    TitleComponent,\n    TooltipComponent,\n    GridComponent\n} from &#39;echarts/components&#39;;\n// 引入 Canvas 渲染器,注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步\nimport {\n    CanvasRenderer\n} from &#39;echarts/renderers&#39;;\n\n// 注册必须的组件\necharts.use(\n    [TitleComponent, TooltipComponent, GridComponent, BarChart, CanvasRenderer]\n);\n\n// 接下来的使用就跟之前一样,初始化图表,设置配置项\nvar myChart = echarts.init(document.getElementById(&#39;main&#39;));\nmyChart.setOption({\n    ...\n});\n</code></pre>\n<blockquote>\n<p>需要注意的是注意为了保证打包的体积是最小的,ECharts 按需引入的时候不再提供任何渲染器,所以需要选择引入<code class=\"codespan\">CanvasRenderer</code>或者<code class=\"codespan\">SVGRenderer</code>作为渲染器。这样的好处是假如你只需要使用 svg 渲染模式,打包的结果中就不会再包含无需使用的<code class=\"codespan\">CanvasRenderer</code>模块。</p>\n</blockquote>\n<p>我们在示例编辑页的“完整代码”标签提供了非常方便的生成按需引入代码的功能。这个功能会根据当前的配置项动态生成最小的按需引入的代码。你可以直接在你的项目中使用。</p>\n<h2 id=\"-typescript-\">在 TypeScript 中按需引入</h2>\n<p>对于使用了 TypeScript 来开发 ECharts 的开发者,我们提供了类型接口来组合出最小的<code class=\"codespan\">EChartsOption</code>类型。这个更严格的类型可以有效帮助你检查出是否少加载了组件或者图表。</p>\n<pre><code class=\"lang-ts\">import * as echarts from &#39;echarts/core&#39;;\nimport {\n    BarChart,\n    // 系列类型的定义后缀都为 SeriesOption\n    BarSeriesOption,\n    LineChart,\n    LineSeriesOption\n} from &#39;echarts/charts&#39;;\nimport {\n    TitleComponent,\n    // 组件类型的定义后缀都为 ComponentOption\n    TitleComponentOption,\n    GridComponent,\n    GridComponentOption\n} from &#39;echarts/components&#39;;\nimport {\n    CanvasRenderer\n} from &#39;echarts/renderers&#39;;\n\n// 通过 ComposeOption 来组合出一个只有必须组件和图表的 Option 类型\ntype ECOption = echarts.ComposeOption&lt;\n  BarSeriesOption | LineSeriesOption | TitleComponentOption | GridComponentOption\n&gt;;\n\n// 注册必须的组件\necharts.use(\n    [TitleComponent, TooltipComponent, GridComponent, BarChart, CanvasRenderer]\n);\n\nvar option: ECOption = {\n    ...\n}\n</code></pre>\n"},"ECharts 基础概念概览":{"type":["*"],"description":"<p>本文介绍 Apache ECharts<sup>TM</sup> 最基本的名词和概念。</p>\n<h2 id=\"echarts-\">echarts 实例</h2>\n<p>一个网页中可以创建多个 <code class=\"codespan\">echarts 实例</code>。每个 <code class=\"codespan\">echarts 实例</code> 中可以创建多个图表和坐标系等等(用 <code class=\"codespan\">option</code> 来描述)。准备一个 DOM 节点(作为 echarts 的渲染容器),就可以在上面创建一个 echarts 实例。每个 echarts 实例独占一个 DOM 节点。</p>\n<p><br></p>\n<p><img width=\"500\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/multiple-ec-instance.jpg\"></p>\n<h2 id=\"-series-\">系列(series)</h2>\n<p><code class=\"codespan\">系列</code>(<a href=\"option.html#series\" target=\"_blank\">series</a>)是很常见的名词。在 echarts 里,<code class=\"codespan\">系列</code>(<a href=\"option.html#series\" target=\"_blank\">series</a>)是指:一组数值以及他们映射成的图。“系列”这个词原本可能来源于“一系列的数据”,而在 echarts 中取其扩展的概念,不仅表示数据,也表示数据映射成为的图。所以,一个 <code class=\"codespan\">系列</code> 包含的要素至少有:一组数值、图表类型(<code class=\"codespan\">series.type</code>)、以及其他的关于这些数据如何映射成图的参数。</p>\n<p>echarts 里系列类型(<code class=\"codespan\">series.type</code>)就是图表类型。系列类型(<code class=\"codespan\">series.type</code>)至少有:<a href=\"option.html#series-line\" target=\"_blank\">line</a>(折线图)、<a href=\"option.html#series-bar\" target=\"_blank\">bar</a>(柱状图)、<a href=\"option.html#series-pie\" target=\"_blank\">pie</a>(饼图)、<a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>(散点图)、<a href=\"option.html#series-graph\" target=\"_blank\">graph</a>(关系图)、<a href=\"option.html#series-tree\" target=\"_blank\">tree</a>(树图)、...</p>\n<p>如下图,右侧的 <code class=\"codespan\">option</code> 中声明了三个 <code class=\"codespan\">系列</code>(<a href=\"option.html#series\" target=\"_blank\">series</a>):<a href=\"option.html#series-pie\" target=\"_blank\">pie</a>(饼图系列)、<a href=\"option.html#series-line\" target=\"_blank\">line</a>(折线图系列)、<a href=\"option.html#series-bar\" target=\"_blank\">bar</a>(柱状图系列),每个系列中有他所需要的数据(<a href=\"option.html#series.data\" target=\"_blank\">series.data</a>)。</p>\n<p><br></p>\n<p><img width=\"700\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/series-all-a.jpg\"></p>\n<p><br></p>\n<p>类同地,下图中是另一种配置方式,系列的数据从 <a href=\"option.html#dataset\" target=\"_blank\">dataset</a> 中取:</p>\n<p><br></p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/series-all-b.jpg\"></p>\n<h2 id=\"-component-\">组件(component)</h2>\n<p>在系列之上,echarts 中各种内容,被抽象为“组件”。例如,echarts 中至少有这些组件:<a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a>(直角坐标系 X 轴)、<a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a>(直角坐标系 Y 轴)、<a href=\"option.html#grid\" target=\"_blank\">grid</a>(直角坐标系底板)、<a href=\"option.html#angleAxis\" target=\"_blank\">angleAxis</a>(极坐标系角度轴)、<a href=\"option.html#radiusAxis\" target=\"_blank\">radiusAxis</a>(极坐标系半径轴)、<a href=\"option.html#polar\" target=\"_blank\">polar</a>(极坐标系底板)、<a href=\"option.html#geo\" target=\"_blank\">geo</a>(地理坐标系)、<a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a>(数据区缩放组件)、<a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a>(视觉映射组件)、<a href=\"option.html#tooltip\" target=\"_blank\">tooltip</a>(提示框组件)、<a href=\"option.html#toolbox\" target=\"_blank\">toolbox</a>(工具栏组件)、<a href=\"option.html#series\" target=\"_blank\">series</a>(系列)、...</p>\n<p>我们注意到,其实系列(<a href=\"option.html#series\" target=\"_blank\">series</a>)也是一种组件,可以理解为:系列是专门绘制“图”的组件。</p>\n<p>如下图,右侧的 <code class=\"codespan\">option</code> 中声明了各个组件(包括系列),各个组件就出现在图中。</p>\n<p><br></p>\n<p><img width=\"800\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/components.jpg\"></p>\n<p><br></p>\n<p>注:因为系列是一种特殊的组件,所以有时候也会出现 “组件和系列” 这样的描述,这种语境下的 “组件” 是指:除了 “系列” 以外的其他组件。</p>\n<h2 id=\"-option-\">用 option 描述图表</h2>\n<p>上面已经出现了 <code class=\"codespan\">option</code> 这个概念。echarts 的使用者,使用 <code class=\"codespan\">option</code> 来描述其对图表的各种需求,包括:有什么数据、要画什么图表、图表长什么样子、含有什么组件、组件能操作什么事情等等。简而言之,<code class=\"codespan\">option</code> 表述了:<code class=\"codespan\">数据</code>、<code class=\"codespan\">数据如何映射成图形</code>、<code class=\"codespan\">交互行为</code>。</p>\n<pre><code class=\"lang-js\">// 创建 echarts 实例。\nvar dom = document.getElementById(&#39;dom-id&#39;);\nvar chart = echarts.init(dom);\n\n// 用 option 描述 `数据`、`数据如何映射成图形`、`交互行为` 等。\n// option 是个大的 JavaScript 对象。\nvar option = {\n    // option 每个属性是一类组件。\n    legend: {...},\n    grid: {...},\n    tooltip: {...},\n    toolbox: {...},\n    dataZoom: {...},\n    visualMap: {...},\n    // 如果有多个同类组件,那么就是个数组。例如这里有三个 X 轴。\n    xAxis: [\n        // 数组每项表示一个组件实例,用 type 描述“子类型”。\n        {type: &#39;category&#39;, ...},\n        {type: &#39;category&#39;, ...},\n        {type: &#39;value&#39;, ...}\n    ],\n    yAxis: [{...}, {...}],\n    // 这里有多个系列,也是构成一个数组。\n    series: [\n        // 每个系列,也有 type 描述“子类型”,即“图表类型”。\n        {type: &#39;line&#39;, data: [[&#39;AA&#39;, 332], [&#39;CC&#39;, 124], [&#39;FF&#39;, 412], ... ]},\n        {type: &#39;line&#39;, data: [2231, 1234, 552, ... ]},\n        {type: &#39;line&#39;, data: [[4, 51], [8, 12], ... ]}\n    }]\n};\n\n// 调用 setOption 将 option 输入 echarts,然后 echarts 渲染图表。\nchart.setOption(option);\n</code></pre>\n<p>系列里的 <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> 是本系列的数据。而另一种描述方式,系列数据从 <a href=\"option.html#dataset\" target=\"_blank\">dataset</a> 中取:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: {\n        source: [\n            [121, &#39;XX&#39;, 442, 43.11],\n            [663, &#39;ZZ&#39;, 311, 91.14],\n            [913, &#39;ZZ&#39;, 312, 92.12],\n            ...\n        ]\n    },\n    xAxis: {},\n    yAxis: {},\n    series: [\n        // 数据从 dataset 中取,encode 中的数值是 dataset.source 的维度 index (即第几列)\n        {type: &#39;bar&#39;, encode: {x: 1, y: 0}},\n        {type: &#39;bar&#39;, encode: {x: 1, y: 2}},\n        {type: &#39;scatter&#39;, encode: {x: 1, y: 3}},\n        ...\n    ]\n};\n</code></pre>\n<h2 id=\"-\">组件的定位</h2>\n<p>不同的组件、系列,常有不同的定位方式。</p>\n<p><br></p>\n<p><strong>[类 CSS 的绝对定位]</strong></p>\n<p><br></p>\n<p>多数组件和系列,都能够基于 <code class=\"codespan\">top</code> / <code class=\"codespan\">right</code> / <code class=\"codespan\">down</code> / <code class=\"codespan\">left</code> / <code class=\"codespan\">width</code> / <code class=\"codespan\">height</code> 绝对定位。\n这种绝对定位的方式,类似于 <code class=\"codespan\">CSS</code> 的绝对定位(<code class=\"codespan\">position: absolute</code>)。绝对定位基于的是 echarts 容器 DOM 节点。</p>\n<p>其中,他们每个值都可以是:</p>\n<ul>\n<li>绝对数值(例如 <code class=\"codespan\">bottom: 54</code> 表示:距离 echarts 容器底边界 <code class=\"codespan\">54</code> 像素)。</li>\n<li>或者基于 echarts 容器高宽的百分比(例如 <code class=\"codespan\">right: &#39;20%&#39;</code> 表示:距离 echarts 容器右边界的距离是 echarts 容器宽度的 <code class=\"codespan\">20%</code>)。</li>\n</ul>\n<p>如下图的例子,对 <a href=\"option.html#grid\" target=\"_blank\">grid</a> 组件(也就是直角坐标系的底板)设置 <code class=\"codespan\">left</code>、<code class=\"codespan\">right</code>、<code class=\"codespan\">height</code>、<code class=\"codespan\">bottom</code> 达到的效果。</p>\n<p><br></p>\n<p><img width=\"800\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/locate.jpg\"></p>\n<p><br></p>\n<p>我们可以注意到,<code class=\"codespan\">left</code> <code class=\"codespan\">right</code> <code class=\"codespan\">width</code> 是一组(横向)、<code class=\"codespan\">top</code> <code class=\"codespan\">bottom</code> <code class=\"codespan\">height</code> 是另一组(纵向)。这两组没有什么关联。每组中,至多设置两项就可以了,第三项会被自动算出。例如,设置了 <code class=\"codespan\">left</code> 和 <code class=\"codespan\">right</code> 就可以了,<code class=\"codespan\">width</code> 会被自动算出。</p>\n<p><br></p>\n<p><strong>[中心半径定位]</strong></p>\n<p><br></p>\n<p>少数圆形的组件或系列,可以使用“中心半径定位”,例如,<a href=\"option.html#series-pie\" target=\"_blank\">pie</a>(饼图)、<a href=\"option.html#series-sunburst\" target=\"_blank\">sunburst</a>(旭日图)、<a href=\"option.html#polar\" target=\"_blank\">polar</a>(极坐标系)。</p>\n<p>中心半径定位,往往依据 <a href=\"option.html#series-pie.center\" target=\"_blank\">center</a>(中心)、<a href=\"option.html#series-pie.radius\" target=\"_blank\">radius</a>(半径)来决定位置。</p>\n<p><br></p>\n<p><strong>[其他定位]</strong></p>\n<p><br></p>\n<p>少数组件和系列可能有自己的特殊的定位方式。在他们的文档中会有说明。</p>\n<h2 id=\"-\">坐标系</h2>\n<p>很多系列,例如 <a href=\"option.html#series-line\" target=\"_blank\">line</a>(折线图)、<a href=\"option.html#series-bar\" target=\"_blank\">bar</a>(柱状图)、<a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>(散点图)、<a href=\"option.html#series-heatmap\" target=\"_blank\">heatmap</a>(热力图)等等,需要运行在 “坐标系” 上。坐标系用于布局这些图,以及显示数据的刻度等等。例如 echarts 中至少支持这些坐标系:<a href=\"option.html#grid\" target=\"_blank\">直角坐标系</a>、<a href=\"option.html#polar\" target=\"_blank\">极坐标系</a>、<a href=\"option.html#geo\" target=\"_blank\">地理坐标系(GEO)</a>、<a href=\"option.html#singleAxis\" target=\"_blank\">单轴坐标系</a>、<a href=\"option.html#calendar\" target=\"_blank\">日历坐标系</a> 等。其他一些系列,例如 <a href=\"option.html#series-pie\" target=\"_blank\">pie</a>(饼图)、<a href=\"option.html#series-tree\" target=\"_blank\">tree</a>(树图)等等,并不依赖坐标系,能独立存在。还有一些图,例如 <a href=\"option.html#series-graph\" target=\"_blank\">graph</a>(关系图)等,既能独立存在,也能布局在坐标系中,依据用户的设定而来。</p>\n<p>一个坐标系,可能由多个组件协作而成。我们以最常见的直角坐标系来举例。直角坐标系中,包括有 <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a>(直角坐标系 X 轴)、<a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a>(直角坐标系 Y 轴)、<a href=\"option.html#grid\" target=\"_blank\">grid</a>(直角坐标系底板)三种组件。<code class=\"codespan\">xAxis</code>、<code class=\"codespan\">yAxis</code> 被 <code class=\"codespan\">grid</code> 自动引用并组织起来,共同工作。</p>\n<p>我们来看下图,这是最简单的使用直角坐标系的方式:只声明了 <code class=\"codespan\">xAxis</code>、<code class=\"codespan\">yAxis</code> 和一个 <code class=\"codespan\">scatter</code>(散点图系列),echarts 暗自为他们创建了 <code class=\"codespan\">grid</code> 并关联起他们:</p>\n<p><br></p>\n<p><img width=\"450\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/coord-sys-0.jpg\"></p>\n<p><br></p>\n<p>再来看下图,两个 <code class=\"codespan\">yAxis</code>,共享了一个 <code class=\"codespan\">xAxis</code>。两个 <code class=\"codespan\">series</code>,也共享了这个 <code class=\"codespan\">xAxis</code>,但是分别使用不同的 <code class=\"codespan\">yAxis</code>,使用 <a href=\"option.html#series-line.yAxisIndex\" target=\"_blank\">yAxisIndex</a> 来指定它自己使用的是哪个 <code class=\"codespan\">yAxis</code>:</p>\n<p><br></p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/coord-sys-1.jpg\"></p>\n<p><br></p>\n<p>再来看下图,一个 echarts 实例中,有多个 <code class=\"codespan\">grid</code>,每个 <code class=\"codespan\">grid</code> 分别有 <code class=\"codespan\">xAxis</code>、<code class=\"codespan\">yAxis</code>,他们使用 <code class=\"codespan\">xAxisIndex</code>、<code class=\"codespan\">yAxisIndex</code>、<code class=\"codespan\">gridIndex</code> 来指定引用关系:</p>\n<p><br></p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/coord-sys-2.jpg\"></p>\n<p><br></p>\n<p>另外,一个系列,往往能运行在不同的坐标系中。例如,一个 <a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>(散点图)能运行在 <a href=\"option.html#grid\" target=\"_blank\">直角坐标系</a>、<a href=\"option.html#polar\" target=\"_blank\">极坐标系</a> 、<a href=\"option.html#geo\" target=\"_blank\">地理坐标系(GEO)</a> 等各种坐标系中。同样,一个坐标系,也能承载不同的系列,如上面出现的各种例子,<a href=\"option.html#grid\" target=\"_blank\">直角坐标系</a> 里承载了 <a href=\"option.html#series-line\" target=\"_blank\">line</a>(折线图)、<a href=\"option.html#series-bar\" target=\"_blank\">bar</a>(柱状图)等等。</p>\n"},"个性化图表的样式":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> 提供了丰富的自定义配置选项,并且能够从全局、系列、数据三个层级去设置数据图形的样式。下面我们来看如何使用 ECharts 实现下面这个南丁格尔图:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-styling-step5&edit=1&reset=1\" width=\"500\" height=\"400\" ></iframe>\n\n\n<h2 id=\"-\">绘制南丁格尔图</h2>\n<p><a href=\"#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts\">5分钟上手ECharts</a> 中讲了如何绘制一个简单的柱状图,这次要画的是饼图,饼图主要是通过扇形的弧度表现不同类目的数据在总和中的占比,它的数据格式比柱状图更简单,只有一维的数值,不需要给类目。因为不在直角坐标系上,所以也不需要<code class=\"codespan\">xAxis</code>,<code class=\"codespan\">yAxis</code>。</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    series : [\n        {\n            name: &#39;访问来源&#39;,\n            type: &#39;pie&#39;,\n            radius: &#39;55%&#39;,\n            data:[\n                {value:235, name:&#39;视频广告&#39;},\n                {value:274, name:&#39;联盟广告&#39;},\n                {value:310, name:&#39;邮件营销&#39;},\n                {value:335, name:&#39;直接访问&#39;},\n                {value:400, name:&#39;搜索引擎&#39;}\n            ]\n        }\n    ]\n})\n</code></pre>\n<p>上面代码就能画出一个简单的饼图:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-styling-step0&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>这里<code class=\"codespan\">data</code>属性值不像入门教程里那样每一项都是单个数值,而是一个包含 <code class=\"codespan\">name</code> 和 <code class=\"codespan\">value</code> 属性的对象,ECharts 中的数据项都是既可以只设成数值,也可以设成一个包含有名称、该数据图形的样式配置、标签配置的对象,具体见 <a href=\"option.html#series-pie.data\" target=\"_blank\">data</a> 文档。</p>\n<p>ECharts 中的<a href=\"option.html#series-pie\" target=\"_blank\">饼图</a>也支持通过设置 <a href=\"option.html#series-pie.roseType\" target=\"_blank\">roseType</a> 显示成南丁格尔图。</p>\n<pre><code class=\"lang-js\">roseType: &#39;angle&#39;\n</code></pre>\n<p>南丁格尔图会通过半径表示数据的大小。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-styling-step1&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<h2 id=\"-\">阴影的配置</h2>\n<p>ECharts 中有一些通用的样式,诸如阴影、透明度、颜色、边框颜色、边框宽度等,这些样式一般都会在系列的 <a href=\"#series-pie.itemStyle\">itemStyle</a> 里设置。例如阴影的样式可以通过下面几个配置项设置:</p>\n<pre><code class=\"lang-js\">itemStyle: {\n    // 阴影的大小\n    shadowBlur: 200,\n    // 阴影水平方向上的偏移\n    shadowOffsetX: 0,\n    // 阴影垂直方向上的偏移\n    shadowOffsetY: 0,\n    // 阴影颜色\n    shadowColor: &#39;rgba(0, 0, 0, 0.5)&#39;\n}\n</code></pre>\n<p>加上阴影后的效果:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-styling-step2&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p><code class=\"codespan\">itemStyle</code>的<code class=\"codespan\">emphasis</code>是鼠标 hover 时候的高亮样式。这个示例里是正常的样式下加阴影,但是可能更多的时候是 hover 的时候通过阴影突出。</p>\n<pre><code class=\"lang-js\">itemStyle: {\n    emphasis: {\n        shadowBlur: 200,\n        shadowColor: &#39;rgba(0, 0, 0, 0.5)&#39;\n    }\n}\n</code></pre>\n<h2 id=\"-\">深色背景和浅色标签</h2>\n<p>现在我们需要把整个主题改成开始的示例中那样的深色主题,这就需要改背景色和文本颜色。</p>\n<p>背景色是全局的,所以直接在 option 下设置 <a href=\"option.html#backgroundColor\" target=\"_blank\">backgroundColor</a></p>\n<pre><code class=\"lang-js\">setOption({\n    backgroundColor: &#39;#2c343c&#39;\n})\n</code></pre>\n<p>文本的样式可以设置全局的 <a href=\"option.html#textStyle\" target=\"_blank\">textStyle</a>。</p>\n<pre><code class=\"lang-js\">setOption({\n    textStyle: {\n        color: &#39;rgba(255, 255, 255, 0.3)&#39;\n    }\n})\n</code></pre>\n<p>也可以每个系列分别设置,每个系列的文本设置在 <a href=\"option.html#series-pie.label.textStyle\" target=\"_blank\">label.textStyle</a>。</p>\n<pre><code class=\"lang-js\">label: {\n    textStyle: {\n        color: &#39;rgba(255, 255, 255, 0.3)&#39;\n    }\n}\n</code></pre>\n<p>饼图的话还要将标签的视觉引导线的颜色设为浅色。</p>\n<pre><code class=\"lang-js\">labelLine: {\n    lineStyle: {\n        color: &#39;rgba(255, 255, 255, 0.3)&#39;\n    }\n}\n</code></pre>\n<p>如下:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-styling-step3&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>跟<code class=\"codespan\">itemStyle</code>一样,<code class=\"codespan\">label</code>和<code class=\"codespan\">labelLine</code>的样式也有<code class=\"codespan\">emphasis</code>状态。</p>\n<h2 id=\"-\">设置扇形的颜色</h2>\n<p>扇形的颜色也是在 itemStyle 中设置:</p>\n<pre><code class=\"lang-js\">itemStyle: {\n    // 设置扇形的颜色\n    color: &#39;#c23531&#39;,\n    shadowBlur: 200,\n    shadowColor: &#39;rgba(0, 0, 0, 0.5)&#39;\n}\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-styling-step4&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>跟我们要实现的效果已经挺像了,除了每个扇形的颜色,效果中阴影下面的扇形颜色更深,有种光线被遮住的感觉,从而会出现层次感和空间感。</p>\n<p>ECharts 中每个扇形颜色的可以通过分别设置 data 下的数据项实现。</p>\n<pre><code class=\"lang-js\">data: [{\n    value:400,\n    name:&#39;搜索引擎&#39;,\n    itemStyle: {\n        color: &#39;#c23531&#39;\n    }\n}, ...]\n</code></pre>\n<p>但是这次因为只有明暗度的变化,所以有一种更快捷的方式是通过 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> 组件将数值的大小映射到明暗度。</p>\n<pre><code class=\"lang-js\">visualMap: {\n    // 不显示 visualMap 组件,只用于明暗度的映射\n    show: false,\n    // 映射的最小值为 80\n    min: 80,\n    // 映射的最大值为 600\n    max: 600,\n    inRange: {\n        // 明暗度的范围是 0 到 1\n        colorLightness: [0, 1]\n    }\n}\n</code></pre>\n<p>最终效果:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-styling-step5&edit=1&reset=1\" width=\"500\" height=\"400\" ></iframe>\n\n\n\n\n\n"},"ECharts 中的样式简介":{"type":["*"],"description":"<p>本文主要是大略概述,用哪些方法,可以在 Apache ECharts<sup>TM</sup> 中设置样式,改变图形元素或者文字的颜色、明暗、大小等。</p>\n<blockquote>\n<p>之所以用“样式”这种可能不很符合数据可视化思维的词,是因为,比较通俗易懂。</p>\n</blockquote>\n<p>本文介绍这几种方式,他们的功能范畴可能会有交叉(即同一种细节的效果可能可以用不同的方式实现),但是他们各有各的场景偏好。</p>\n<ul>\n<li>颜色主题(Theme)</li>\n<li>调色盘</li>\n<li>直接样式设置(itemStyle、lineStyle、areaStyle、label、...)</li>\n<li>视觉映射(visualMap)</li>\n</ul>\n<p>其他关于样式的文章,参见:<a href=\"#%E4%B8%AA%E6%80%A7%E5%8C%96%E5%9B%BE%E8%A1%A8%E7%9A%84%E6%A0%B7%E5%BC%8F\">个性化图表的样式</a>,<a href=\"#%E6%95%B0%E6%8D%AE%E7%9A%84%E8%A7%86%E8%A7%89%E6%98%A0%E5%B0%84\">数据的视觉映射</a>。</p>\n<h2 id=\"-theme-\">颜色主题(Theme)</h2>\n<p>最简单的更改全局样式的方式,是直接采用颜色主题(theme)。例如,在 <a href=\"https://echarts.apache.org/examples/zh/index.html\" target=\"_blank\">示例集合</a> 中,可以选择 “Theme”,直接看到采用主题的效果。</p>\n<p>ECharts4 开始,除了一贯的默认主题外,新内置了两套主题,分别为 <code class=\"codespan\">&#39;light&#39;</code> 和 <code class=\"codespan\">&#39;dark&#39;</code>。可以这么来使用它们:</p>\n<pre><code class=\"lang-js\">var chart = echarts.init(dom, &#39;light&#39;);\n</code></pre>\n<p>或者</p>\n<pre><code class=\"lang-js\">var chart = echarts.init(dom, &#39;dark&#39;);\n</code></pre>\n<p>其他的主题,没有内置在 ECharts 中,需要自己加载。这些主题可以在 <a href=\"https://echarts.apache.org/zh/theme-builder.html\" target=\"_blank\">主题编辑器</a> 里访问到。也可以使用这个主题编辑器,自己编辑主题。下载下来的主题可以这样使用:</p>\n<p>如果主题保存为 JSON 文件,那么可以自行加载和注册,例如:</p>\n<pre><code class=\"lang-js\">// 假设主题名称是 &quot;vintage&quot;\n$.getJSON(&#39;xxx/xxx/vintage.json&#39;, function (themeJSON) {\n    echarts.registerTheme(&#39;vintage&#39;, JSON.parse(themeJSON))\n    var chart = echarts.init(dom, &#39;vintage&#39;);\n});\n</code></pre>\n<p>如果保存为 UMD 格式的 JS 文件,那么支持了自注册,直接引入 JS 文件即可:</p>\n<pre><code class=\"lang-js\">// HTML 引入 vintage.js 文件后(假设主题名称是 &quot;vintage&quot;)\nvar chart = echarts.init(dom, &#39;vintage&#39;);\n// ...\n</code></pre>\n<h2 id=\"-\">调色盘</h2>\n<p>调色盘,可以在 option 中设置。它给定了一组颜色,图形、系列会自动从其中选择颜色。\n可以设置全局的调色盘,也可以设置系列自己专属的调色盘。</p>\n<pre><code class=\"lang-js\">option = {\n    // 全局调色盘。\n    color: [&#39;#c23531&#39;,&#39;#2f4554&#39;, &#39;#61a0a8&#39;, &#39;#d48265&#39;, &#39;#91c7ae&#39;,&#39;#749f83&#39;,  &#39;#ca8622&#39;, &#39;#bda29a&#39;,&#39;#6e7074&#39;, &#39;#546570&#39;, &#39;#c4ccd3&#39;],\n\n    series: [{\n        type: &#39;bar&#39;,\n        // 此系列自己的调色盘。\n        color: [&#39;#dd6b66&#39;,&#39;#759aa0&#39;,&#39;#e69d87&#39;,&#39;#8dc1a9&#39;,&#39;#ea7e53&#39;,&#39;#eedd78&#39;,&#39;#73a373&#39;,&#39;#73b9bc&#39;,&#39;#7289ab&#39;, &#39;#91ca8c&#39;,&#39;#f49f42&#39;],\n        ...\n    }, {\n        type: &#39;pie&#39;,\n        // 此系列自己的调色盘。\n        color: [&#39;#37A2DA&#39;, &#39;#32C5E9&#39;, &#39;#67E0E3&#39;, &#39;#9FE6B8&#39;, &#39;#FFDB5C&#39;,&#39;#ff9f7f&#39;, &#39;#fb7293&#39;, &#39;#E062AE&#39;, &#39;#E690D1&#39;, &#39;#e7bcf3&#39;, &#39;#9d96f5&#39;, &#39;#8378EA&#39;, &#39;#96BFFF&#39;],\n        ...\n    }]\n}\n</code></pre>\n<h2 id=\"-itemstyle-linestyle-areastyle-label-\">直接的样式设置 itemStyle, lineStyle, areaStyle, label, ...</h2>\n<p>直接的样式设置是比较常用设置方式。纵观 ECharts 的 <a href=\"option.html\" target=\"_blank\">option</a> 中,很多地方可以设置 <a href=\"option.html#series.itemStyle\" target=\"_blank\">itemStyle</a>、<a href=\"option.html#series-line.lineStyle\" target=\"_blank\">lineStyle</a>、<a href=\"option.html#series-line.areaStyle\" target=\"_blank\">areaStyle</a>、<a href=\"option.html#series.label\" target=\"_blank\">label</a> 等等。这些的地方可以直接设置图形元素的颜色、线宽、点的大小、标签的文字、标签的样式等等。</p>\n<p>一般来说,ECharts 的各个系列和组件,都遵从这些命名习惯,虽然不同图表和组件中,<code class=\"codespan\">itemStyle</code>、<code class=\"codespan\">label</code> 等可能出现在不同的地方。</p>\n<p>直接样式设置的另一篇介绍,参见 <a href=\"#%E4%B8%AA%E6%80%A7%E5%8C%96%E5%9B%BE%E8%A1%A8%E7%9A%84%E6%A0%B7%E5%BC%8F\">个性化图表的样式</a>。</p>\n<h2 id=\"-emphasis\">高亮的样式:emphasis</h2>\n<p>在鼠标悬浮到图形元素上时,一般会出现高亮的样式。默认情况下,高亮的样式是根据普通样式自动生成的。但是高亮的样式也可以自己定义,主要是通过 <a href=\"option.html#series-scatter.emphasis\" target=\"_blank\">emphasis</a> 属性来定制。<a href=\"option.html#series-scatter.emphasis\" target=\"_blank\">emphsis</a> 中的结构,和普通样式的结构相同,例如:</p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;scatter&#39;,\n\n        // 普通样式。\n        itemStyle: {\n            // 点的颜色。\n            color: &#39;red&#39;\n        },\n        label: {\n            show: true,\n            // 标签的文字。\n            formatter: &#39;This is a normal label.&#39;\n        },\n\n        // 高亮样式。\n        emphasis: {\n            itemStyle: {\n                // 高亮时点的颜色。\n                color: &#39;blue&#39;\n            },\n            label: {\n                show: true,\n                // 高亮时标签的文字。\n                formatter: &#39;This is a emphasis label.&#39;\n            }\n        }\n    }\n}\n</code></pre>\n<p>注意:在 ECharts4 以前,高亮和普通样式的写法,是这样的:</p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;scatter&#39;,\n\n        itemStyle: {\n            // 普通样式。\n            normal: {\n                // 点的颜色。\n                color: &#39;red&#39;\n            },\n            // 高亮样式。\n            emphasis: {\n                // 高亮时点的颜色。\n                color: &#39;blue&#39;\n            }\n        },\n\n        label: {\n            // 普通样式。\n            normal: {\n                show: true,\n                // 标签的文字。\n                formatter: &#39;This is a normal label.&#39;\n            },\n            // 高亮样式。\n            emphasis: {\n                show: true,\n                // 高亮时标签的文字。\n                formatter: &#39;This is a emphasis label.&#39;\n            }\n        }\n    }\n}\n</code></pre>\n<p>这种写法 <strong>仍然被兼容</strong>,但是,不再推荐。事实上,多数情况下,使用者只会配置普通状态下的样式,而使用默认的高亮样式。所以在 ECharts4 中,支持不写 <code class=\"codespan\">normal</code> 的配置方法(即本文开头的那种写法),使得配置项更扁平简单。</p>\n<h2 id=\"-visualmap-\">通过 visualMap 组件设定样式</h2>\n<p><a href=\"option.html#visualMap\" target=\"_blank\">visualMap 组件</a> 能指定数据到颜色、图形尺寸的映射规则,详见 <a href=\"#%E6%95%B0%E6%8D%AE%E7%9A%84%E8%A7%86%E8%A7%89%E6%98%A0%E5%B0%84\">数据的视觉映射</a>。</p>\n"},"异步数据加载和更新":{"type":["*"],"description":"<h2 id=\"-\">异步加载</h2>\n<p><a href=\"#getting-started\">入门示例</a>中的数据是在初始化后 <code class=\"codespan\">setOption</code> 中直接填入的,但是很多时候可能数据需要异步加载后再填入。Apache ECharts<sup>TM</sup> 中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要通过 jQuery 等工具异步获取数据后通过 <code class=\"codespan\">setOption</code> 填入数据和配置项就行。</p>\n<pre><code class=\"lang-js\">var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n$.get(&#39;data.json&#39;).done(function (data) {\n    myChart.setOption({\n        title: {\n            text: &#39;异步数据加载示例&#39;\n        },\n        tooltip: {},\n        legend: {\n            data:[&#39;销量&#39;]\n        },\n        xAxis: {\n            data: data.categories\n        },\n        yAxis: {},\n        series: [{\n            name: &#39;销量&#39;,\n            type: &#39;bar&#39;,\n            data: data.data\n        }]\n    });\n});\n</code></pre>\n<p>或者先设置完其它的样式,显示一个空的直角坐标轴,然后获取数据后填入数据。</p>\n<pre><code class=\"lang-js\">var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n// 显示标题,图例和空的坐标轴\nmyChart.setOption({\n    title: {\n        text: &#39;异步数据加载示例&#39;\n    },\n    tooltip: {},\n    legend: {\n        data:[&#39;销量&#39;]\n    },\n    xAxis: {\n        data: []\n    },\n    yAxis: {},\n    series: [{\n        name: &#39;销量&#39;,\n        type: &#39;bar&#39;,\n        data: []\n    }]\n});\n\n// 异步加载数据\n$.get(&#39;data.json&#39;).done(function (data) {\n    // 填入数据\n    myChart.setOption({\n        xAxis: {\n            data: data.categories\n        },\n        series: [{\n            // 根据名字对应到相应的系列\n            name: &#39;销量&#39;,\n            data: data.data\n        }]\n    });\n});\n</code></pre>\n<p>如下:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-async&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>ECharts 中在更新数据的时候需要通过<code class=\"codespan\">name</code>属性对应到相应的系列,上面示例中如果<code class=\"codespan\">name</code>不存在也可以根据系列的顺序正常更新,但是更多时候推荐更新数据的时候加上系列的<code class=\"codespan\">name</code>数据。</p>\n<h2 id=\"loading-\">loading 动画</h2>\n<p>如果数据加载时间较长,一个空的坐标轴放在画布上也会让用户觉得是不是产生 bug 了,因此需要一个 loading 的动画来提示用户数据正在加载。</p>\n<p>ECharts 默认有提供了一个简单的加载动画。只需要调用 <a href=\"api.html#echartsInstance.showLoading\" target=\"_blank\">showLoading</a> 方法显示。数据加载完成后再调用 <a href=\"api.html#echartsInstance.hideLoading\" target=\"_blank\">hideLoading</a> 方法隐藏加载动画。</p>\n<pre><code class=\"lang-js\">myChart.showLoading();\n$.get(&#39;data.json&#39;).done(function (data) {\n    myChart.hideLoading();\n    myChart.setOption(...);\n});\n</code></pre>\n<p>效果如下:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-loading&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<h2 id=\"-\">数据的动态更新</h2>\n<p>ECharts 由数据驱动,数据的改变驱动图表展现的改变,因此动态数据的实现也变得异常简单。</p>\n<p>所有数据的更新都通过 <a href=\"#api.html#echartsInstance.setOption\">setOption</a>实现,你只需要定时获取数据,<a href=\"#api.html#echartsInstance.setOption\">setOption</a> 填入数据,而不用考虑数据到底产生了那些变化,ECharts 会找到两组数据之间的差异然后通过合适的动画去表现数据的变化。</p>\n<blockquote>\n<p>ECharts 3 中移除了 ECharts 2 中的 addData 方法。如果只需要加入单个数据,可以先 data.push(value) 后 setOption</p>\n</blockquote>\n<p>具体可以看下面示例:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-dynamic-data&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n\n"},"使用 dataset 管理数据":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> 4 开始支持了 <code class=\"codespan\">dataset</code> 组件用于单独的数据集声明,从而数据可以单独管理,被多个组件复用,并且可以基于数据指定数据到视觉的映射。这在不少场景下能带来使用上的方便。</p>\n<p>ECharts 4 以前,数据只能声明在各个“系列(series)”中,例如:</p>\n<pre><code class=\"lang-js\">option = {\n    xAxis: {\n        type: &#39;category&#39;,\n        data: [&#39;Matcha Latte&#39;, &#39;Milk Tea&#39;, &#39;Cheese Cocoa&#39;, &#39;Walnut Brownie&#39;]\n    },\n    yAxis: {},\n    series: [\n        {\n            type: &#39;bar&#39;,\n            name: &#39;2015&#39;,\n            data: [89.3, 92.1, 94.4, 85.4]\n        },\n        {\n            type: &#39;bar&#39;,\n            name: &#39;2016&#39;,\n            data: [95.8, 89.4, 91.2, 76.9]\n        },\n        {\n            type: &#39;bar&#39;,\n            name: &#39;2017&#39;,\n            data: [97.7, 83.1, 92.5, 78.1]\n        }\n    ]\n}\n</code></pre>\n<p>这种方式的优点是,直观易理解,以及适于对一些特殊图表类型进行一定的数据类型定制。但是缺点是,为匹配这种数据输入形式,常需要有数据处理的过程,把数据分割设置到各个系列(和类目轴)中。此外,不利于多个系列共享一份数据,也不利于基于原始数据进行图表类型、系列的映射安排。</p>\n<p>于是,ECharts 4 提供了 <code class=\"codespan\">数据集</code>(<code class=\"codespan\">dataset</code>)组件来单独声明数据,它带来了这些效果:</p>\n<ul>\n<li>能够贴近这样的数据可视化常见思维方式:(I) 提供数据,(II) 指定数据到视觉的映射,从而形成图表。</li>\n<li>数据和其他配置可以被分离开来。数据常变,其他配置常不变。分开易于分别管理。</li>\n<li>数据可以被多个系列或者组件复用,对于大数据量的场景,不必为每个系列创建一份数据。</li>\n<li>支持更多的数据的常用格式,例如二维数组、对象数组等,一定程度上避免使用者为了数据格式而进行转换。</li>\n</ul>\n<h2 id=\"-\">入门例子</h2>\n<p>下面是一个最简单的 <code class=\"codespan\">dataset</code> 的例子:</p>\n<pre><code class=\"lang-js\">option = {\n    legend: {},\n    tooltip: {},\n    dataset: {\n        // 提供一份数据。\n        source: [\n            [&#39;product&#39;, &#39;2015&#39;, &#39;2016&#39;, &#39;2017&#39;],\n            [&#39;Matcha Latte&#39;, 43.3, 85.8, 93.7],\n            [&#39;Milk Tea&#39;, 83.1, 73.4, 55.1],\n            [&#39;Cheese Cocoa&#39;, 86.4, 65.2, 82.5],\n            [&#39;Walnut Brownie&#39;, 72.4, 53.9, 39.1]\n        ]\n    },\n    // 声明一个 X 轴,类目轴(category)。默认情况下,类目轴对应到 dataset 第一列。\n    xAxis: {type: &#39;category&#39;},\n    // 声明一个 Y 轴,数值轴。\n    yAxis: {},\n    // 声明多个 bar 系列,默认情况下,每个系列会自动对应到 dataset 的每一列。\n    series: [\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;}\n    ]\n}\n</code></pre>\n<p>效果如下:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=dataset-simple0&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n<p>或者也可以使用常见的对象数组的格式:</p>\n<pre><code class=\"lang-js\">option = {\n    legend: {},\n    tooltip: {},\n    dataset: {\n        // 用 dimensions 指定了维度的顺序。直角坐标系中,\n        // 默认把第一个维度映射到 X 轴上,第二个维度映射到 Y 轴上。\n        // 如果不指定 dimensions,也可以通过指定 series.encode\n        // 完成映射,参见后文。\n        dimensions: [&#39;product&#39;, &#39;2015&#39;, &#39;2016&#39;, &#39;2017&#39;],\n        source: [\n            {product: &#39;Matcha Latte&#39;, &#39;2015&#39;: 43.3, &#39;2016&#39;: 85.8, &#39;2017&#39;: 93.7},\n            {product: &#39;Milk Tea&#39;, &#39;2015&#39;: 83.1, &#39;2016&#39;: 73.4, &#39;2017&#39;: 55.1},\n            {product: &#39;Cheese Cocoa&#39;, &#39;2015&#39;: 86.4, &#39;2016&#39;: 65.2, &#39;2017&#39;: 82.5},\n            {product: &#39;Walnut Brownie&#39;, &#39;2015&#39;: 72.4, &#39;2016&#39;: 53.9, &#39;2017&#39;: 39.1}\n        ]\n    },\n    xAxis: {type: &#39;category&#39;},\n    yAxis: {},\n    series: [\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;}\n    ]\n};\n</code></pre>\n<h2 id=\"-\">数据到图形的映射</h2>\n<p>本篇里,我们制作数据可视化图表的逻辑是这样的:基于数据,在配置项中指定如何映射到图形。</p>\n<p>概略而言,可以进行这些映射:</p>\n<ul>\n<li>指定 dataset 的列(column)还是行(row)映射为图形系列(series)。这件事可以使用 <a href=\"option.html#series.seriesLayoutBy\" target=\"_blank\">series.seriesLayoutBy</a> 属性来配置。默认是按照列(column)来映射。</li>\n<li>指定维度映射的规则:如何从 dataset 的维度(一个“维度”的意思是一行/列)映射到坐标轴(如 X、Y 轴)、提示框(tooltip)、标签(label)、图形元素大小颜色等(visualMap)。这件事可以使用 <a href=\"option.html#series.encode\" target=\"_blank\">series.encode</a> 属性,以及 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> 组件(如果有需要映射颜色大小等视觉维度的话)来配置。上面的例子中,没有给出这种映射配置,那么 ECharts 就按最常见的理解进行默认映射:X 坐标轴声明为类目轴,默认情况下会自动对应到 dataset.source 中的第一列;三个柱图系列,一一对应到 dataset.source 中后面每一列。</li>\n</ul>\n<p>下面详细解释。</p>\n<h2 id=\"-dataset-series-\">把数据集( dataset )的行或列映射为系列(series)</h2>\n<p>有了数据表之后,使用者可以灵活得配置:数据如何对应到轴和图形系列。</p>\n<p>用户可以使用 <code class=\"codespan\">seriesLayoutBy</code> 配置项,改变图表对于行列的理解。<code class=\"codespan\">seriesLayoutBy</code> 可取值:</p>\n<ul>\n<li>&#39;column&#39;: 默认值。系列被安放到 <code class=\"codespan\">dataset</code> 的列上面。</li>\n<li>&#39;row&#39;: 系列被安放到 <code class=\"codespan\">dataset</code> 的行上面。</li>\n</ul>\n<p>看这个例子:</p>\n<pre><code class=\"lang-js\">option = {\n    legend: {},\n    tooltip: {},\n    dataset: {\n        source: [\n            [&#39;product&#39;, &#39;2012&#39;, &#39;2013&#39;, &#39;2014&#39;, &#39;2015&#39;],\n            [&#39;Matcha Latte&#39;, 41.1, 30.4, 65.1, 53.3],\n            [&#39;Milk Tea&#39;, 86.5, 92.1, 85.7, 83.1],\n            [&#39;Cheese Cocoa&#39;, 24.1, 67.2, 79.5, 86.4]\n        ]\n    },\n    xAxis: [\n        {type: &#39;category&#39;, gridIndex: 0},\n        {type: &#39;category&#39;, gridIndex: 1}\n    ],\n    yAxis: [\n        {gridIndex: 0},\n        {gridIndex: 1}\n    ],\n    grid: [\n        {bottom: &#39;55%&#39;},\n        {top: &#39;55%&#39;}\n    ],\n    series: [\n        // 这几个系列会在第一个直角坐标系中,每个系列对应到 dataset 的每一行。\n        {type: &#39;bar&#39;, seriesLayoutBy: &#39;row&#39;},\n        {type: &#39;bar&#39;, seriesLayoutBy: &#39;row&#39;},\n        {type: &#39;bar&#39;, seriesLayoutBy: &#39;row&#39;},\n        // 这几个系列会在第二个直角坐标系中,每个系列对应到 dataset 的每一列。\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1},\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1},\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1},\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1}\n    ]\n}\n</code></pre>\n<p>效果如下:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=dataset-series-layout-by&edit=1&reset=1\" width=\"800\" height=\"600\" ></iframe>\n\n\n\n<h2 id=\"-dimension-\">维度(dimension)</h2>\n<p>介绍 <code class=\"codespan\">encode</code> 之前,首先要介绍“维度(dimension)”的概念。</p>\n<p>常用图表所描述的数据大部分是“二维表”结构,上述的例子中,我们都使用二维数组来容纳二维表。现在,当我们把系列(series)对应到“列”的时候,那么每一列就称为一个“维度(dimension)”,而每一行称为数据项(item)。反之,如果我们把系列(series)对应到表行,那么每一行就是“维度(dimension)”,每一列就是数据项(item)。</p>\n<p>维度可以有单独的名字,便于在图表中显示。维度名(dimension name)可以在定义在 dataset 的第一行(或者第一列)。例如上面的例子中,<code class=\"codespan\">&#39;score&#39;</code>、<code class=\"codespan\">&#39;amount&#39;</code>、<code class=\"codespan\">&#39;product&#39;</code> 就是维度名。从第二行开始,才是正式的数据。<code class=\"codespan\">dataset.source</code> 中第一行(列)到底包含不包含维度名,ECharts 默认会自动探测。当然也可以设置 <code class=\"codespan\">dataset.sourceHeader: true</code> 显示声明第一行(列)就是维度,或者 <code class=\"codespan\">dataset.sourceHeader: false</code> 表明第一行(列)开始就直接是数据。</p>\n<p>维度的定义,也可以使用单独的 <code class=\"codespan\">dataset.dimensions</code> 或者 <code class=\"codespan\">series.dimensions</code> 来定义,这样可以同时指定维度名,和维度的类型(dimension type):</p>\n<pre><code class=\"lang-js\">var option1 = {\n    dataset: {\n        dimensions: [\n            {name: &#39;score&#39;},\n            // 可以简写为 string,表示维度名。\n            &#39;amount&#39;,\n            // 可以在 type 中指定维度类型。\n            {name: &#39;product&#39;, type: &#39;ordinal&#39;}\n        ],\n        source: [...]\n    },\n    ...\n};\n\nvar option2 = {\n    dataset: {\n        source: [...]\n    },\n    series: {\n        type: &#39;line&#39;,\n        // 在系列中设置的 dimensions 会更优先采纳。\n        dimensions: [\n            null, // 可以设置为 null 表示不想设置维度名\n            &#39;amount&#39;,\n            {name: &#39;product&#39;, type: &#39;ordinal&#39;}\n        ]\n    },\n    ...\n};\n</code></pre>\n<p>大多数情况下,我们并不需要去设置维度类型,因为会自动判断。但是如果因为数据为空之类原因导致判断不足够准确时,可以手动设置维度类型。</p>\n<p>维度类型(dimension type)可以取这些值:</p>\n<ul>\n<li><code class=\"codespan\">&#39;number&#39;</code>: 默认,表示普通数据。</li>\n<li><code class=\"codespan\">&#39;ordinal&#39;</code>: 对于类目、文本这些 string 类型的数据,如果需要能在数轴上使用,须是 &#39;ordinal&#39; 类型。ECharts 默认会自动判断这个类型。但是自动判断也是不可能很完备的,所以使用者也可以手动强制指定。</li>\n<li><code class=\"codespan\">&#39;time&#39;</code>: 表示时间数据。设置成 <code class=\"codespan\">&#39;time&#39;</code> 则能支持自动解析数据成时间戳(timestamp),比如该维度的数据是 &#39;2017-05-10&#39;,会自动被解析。如果这个维度被用在时间数轴(<a href=\"option.html#xAxis.type\" target=\"_blank\">axis.type</a> 为 <code class=\"codespan\">&#39;time&#39;</code>)上,那么会被自动设置为 <code class=\"codespan\">&#39;time&#39;</code> 类型。时间类型的支持参见 <a href=\"option.html#series.data\" target=\"_blank\">data</a>。</li>\n<li><code class=\"codespan\">&#39;float&#39;</code>: 如果设置成 <code class=\"codespan\">&#39;float&#39;</code>,在存储时候会使用 <code class=\"codespan\">TypedArray</code>,对性能优化有好处。</li>\n<li><code class=\"codespan\">&#39;int&#39;</code>: 如果设置成 <code class=\"codespan\">&#39;int&#39;</code>,在存储时候会使用 <code class=\"codespan\">TypedArray</code>,对性能优化有好处。</li>\n</ul>\n<h2 id=\"-series-encode-\">数据到图形的映射( series.encode )</h2>\n<p>了解了维度的概念后,我们就可以使用 <a href=\"option.html#series.encode\" target=\"_blank\">encode</a> 来做映射。总体是这样的感觉:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: {\n        source: [\n            [&#39;score&#39;, &#39;amount&#39;, &#39;product&#39;],\n            [89.3, 58212, &#39;Matcha Latte&#39;],\n            [57.1, 78254, &#39;Milk Tea&#39;],\n            [74.4, 41032, &#39;Cheese Cocoa&#39;],\n            [50.1, 12755, &#39;Cheese Brownie&#39;],\n            [89.7, 20145, &#39;Matcha Cocoa&#39;],\n            [68.1, 79146, &#39;Tea&#39;],\n            [19.6, 91852, &#39;Orange Juice&#39;],\n            [10.6, 101852, &#39;Lemon Juice&#39;],\n            [32.7, 20112, &#39;Walnut Brownie&#39;]\n        ]\n    },\n    xAxis: {},\n    yAxis: {type: &#39;category&#39;},\n    series: [\n        {\n            type: &#39;bar&#39;,\n            encode: {\n                // 将 &quot;amount&quot; 列映射到 X 轴。\n                x: &#39;amount&#39;,\n                // 将 &quot;product&quot; 列映射到 Y 轴。\n                y: &#39;product&#39;\n            }\n        }\n    ]\n};\n</code></pre>\n<p>效果如下:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/dataset-encode-simple0&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n\n<p><code class=\"codespan\">series.encode</code> 声明的基本结构如下,其中冒号左边是坐标系、标签等特定名称,如 <code class=\"codespan\">&#39;x&#39;</code>, <code class=\"codespan\">&#39;y&#39;</code>, <code class=\"codespan\">&#39;tooltip&#39;</code> 等,冒号右边是数据中的维度名(string 格式)或者维度的序号(number 格式,从 0 开始计数),可以指定一个或多个维度(使用数组)。通常情况下,下面各种信息不需要所有的都写,按需写即可。</p>\n<p>下面是 <code class=\"codespan\">series.encode</code> 支持的属性:</p>\n<pre><code class=\"lang-js\">// 在任何坐标系和系列中,都支持:\nencode: {\n    // 使用 “名为 product 的维度” 和 “名为 score 的维度” 的值在 tooltip 中显示\n    tooltip: [&#39;product&#39;, &#39;score&#39;]\n    // 使用 “维度 1” 和 “维度 3” 的维度名连起来作为系列名。(有时候名字比较长,这可以避免在 series.name 重复输入这些名字)\n    seriesName: [1, 3],\n    // 表示使用 “维度2” 中的值作为 id。这在使用 setOption 动态更新数据时有用处,可以使新老数据用 id 对应起来,从而能够产生合适的数据更新动画。\n    itemId: 2,\n    // 指定数据项的名称使用 “维度3” 在饼图等图表中有用,可以使这个名字显示在图例(legend)中。\n    itemName: 3\n}\n\n// 直角坐标系(grid/cartesian)特有的属性:\nencode: {\n    // 把 “维度1”、“维度5”、“名为 score 的维度” 映射到 X 轴:\n    x: [1, 5, &#39;score&#39;],\n    // 把“维度0”映射到 Y 轴。\n    y: 0\n}\n\n// 单轴(singleAxis)特有的属性:\nencode: {\n    single: 3\n}\n\n// 极坐标系(polar)特有的属性:\nencode: {\n    radius: 3,\n    angle: 2\n}\n\n// 地理坐标系(geo)特有的属性:\nencode: {\n    lng: 3,\n    lat: 2\n}\n\n// 对于一些没有坐标系的图表,例如饼图、漏斗图等,可以是:\nencode: {\n    value: 3\n}\n</code></pre>\n<p>下面给出个更丰富的 <code class=\"codespan\">series.encode</code> 的示例:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=dataset-encode1&edit=1&reset=1\" width=\"800\" height=\"600\" ></iframe>\n\n\n\n<h2 id=\"-\">视觉通道(颜色、尺寸等)的映射</h2>\n<p>我们可以使用 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> 组件进行视觉通道的映射。详见 <code class=\"codespan\">visualMap</code> 文档的介绍。这是一个示例:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=dataset-encode0&edit=1&reset=1\" width=\"500\" height=\"400\" ></iframe>\n\n\n\n<h2 id=\"-encode\">默认的 encode</h2>\n<p>值得一提的是,当 <code class=\"codespan\">series.encode</code> 并没有指定时,ECharts 针对最常见直角坐标系中的图表(折线图、柱状图、散点图、K线图等)、饼图、漏斗图,会采用一些默认的映射规则。默认的映射规则比较简单,大体是:</p>\n<ul>\n<li>在坐标系中(如直角坐标系、极坐标系等)<ul>\n<li>如果有类目轴(axis.type 为 &#39;category&#39;),则将第一列(行)映射到这个轴上,后续每一列(行)对应一个系列。</li>\n<li>如果没有类目轴,假如坐标系有两个轴(例如直角坐标系的 X Y 轴),则每两列对应一个系列,这两列分别映射到这两个轴上。</li>\n</ul>\n</li>\n<li>如果没有坐标系(如饼图)<ul>\n<li>取第一列(行)为名字,第二列(行)为数值(如果只有一列,则取第一列为数值)。</li>\n</ul>\n</li>\n</ul>\n<p>默认的规则不能满足要求时,就可以自己来配置 <code class=\"codespan\">encode</code>,也并不复杂。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=dataset-default&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n\n<h2 id=\"-series-encode-\">几个常见的 series.encode 设置方式举例</h2>\n<p>问:如何把第三列设置为 X 轴,第五列设置为 Y 轴?</p>\n<p>答:</p>\n<pre><code class=\"lang-js\">series: {\n    // 注意维度序号(dimensionIndex)从 0 开始计数,第三列是 dimensions[2]。\n    encode: {x: 2, y: 4},\n    ...\n}\n</code></pre>\n<p>问:如何把第三行设置为 X 轴,第五行设置为 Y 轴?</p>\n<p>答:</p>\n<pre><code class=\"lang-js\">series: {\n    encode: {x: 2, y: 4},\n    seriesLayoutBy: &#39;row&#39;,\n    ...\n}\n</code></pre>\n<p>问:如何把第二列设置为标签?</p>\n<p>答:\n关于标签的显示 <a href=\"option.html#series.label.formatter\" target=\"_blank\">label.formatter</a>,现在支持引用特定维度的值,例如:</p>\n<pre><code class=\"lang-js\">series: {\n    label: {\n        // `&#39;{@score}&#39;` 表示 “名为 score” 的维度里的值。\n        // `&#39;{@[4]}&#39;` 表示引用序号为 4 的维度里的值。\n        formatter: &#39;aaa{@product}bbb{@score}ccc{@[4]}ddd&#39;\n    }\n}\n</code></pre>\n<p>问:如何让第 2 列和第 3 列显示在提示框(tooltip)中?</p>\n<p>答:</p>\n<pre><code class=\"lang-js\">series: {\n    encode: {\n        tooltip: [1, 2]\n        ...\n    },\n    ...\n}\n</code></pre>\n<p>问:数据里没有维度名,那么怎么给出维度名?</p>\n<p>答:</p>\n<pre><code class=\"lang-js\">dataset: {\n    dimensions: [&#39;score&#39;, &#39;amount&#39;],\n    source: [\n        [89.3, 3371],\n        [92.1, 8123],\n        [94.4, 1954],\n        [85.4, 829]\n    ]\n}\n</code></pre>\n<p>问:如何把第三列映射为气泡图的点的大小?</p>\n<p>答:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: {\n        source: [\n            [12, 323, 11.2],\n            [23, 167, 8.3],\n            [81, 284, 12],\n            [91, 413, 4.1],\n            [13, 287, 13.5]\n        ]\n    },\n    visualMap: {\n        show: false,\n        dimension: 2, // 指向第三列(列序号从 0 开始记,所以设置为 2)。\n        min: 2, // 需要给出数值范围,最小数值。\n        max: 15, // 需要给出数值范围,最大数值。\n        inRange: {\n            // 气泡尺寸:5 像素到 60 像素。\n            symbolSize: [5, 60]\n        }\n    },\n    xAxis: {},\n    yAxis: {},\n    series: {\n        type: &#39;scatter&#39;\n    }\n};\n</code></pre>\n<p>问:encode 里指定了映射,但是不管用?</p>\n<p>答:可以查查有没有拼错,比如,维度名是:<code class=\"codespan\">&#39;Life Expectancy&#39;</code>,encode 中拼成了 <code class=\"codespan\">&#39;Life Expectency&#39;</code>。</p>\n<h2 id=\"-\">数据的各种格式</h2>\n<p>多数常见图表中,数据适于用二维表的形式描述。广为使用的数据表格软件(如 MS Excel、Numbers)或者关系数据数据库都是二维表。他们的数据可以导出成 JSON 格式,输入到 <code class=\"codespan\">dataset.source</code> 中,在不少情况下可以免去一些数据处理的步骤。</p>\n<blockquote>\n<p>假如数据导出成 csv 文件,那么可以使用一些 csv 工具如 <a href=\"https://github.com/d3/d3-dsv\" target=\"_blank\">dsv</a> 或者 <a href=\"https://github.com/mholt/PapaParse\" target=\"_blank\">PapaParse</a> 将 csv 转成 JSON。</p>\n</blockquote>\n<p>在 JavaScript 常用的数据传输格式中,二维数组可以比较直观的存储二维表。前面的示例都是使用二维数组表示。</p>\n<p>除了二维数组以外,dataset 也支持例如下面 key-value 方式的数据格式,这类格式也非常常见。但是这类格式中,目前并不支持 <a href=\"option.html#series.seriesLayoutBy\" target=\"_blank\">seriesLayoutBy</a> 参数。</p>\n<pre><code class=\"lang-js\">dataset: [{\n    // 按行的 key-value 形式(对象数组),这是个比较常见的格式。\n    source: [\n        {product: &#39;Matcha Latte&#39;, count: 823, score: 95.8},\n        {product: &#39;Milk Tea&#39;, count: 235, score: 81.4},\n        {product: &#39;Cheese Cocoa&#39;, count: 1042, score: 91.2},\n        {product: &#39;Walnut Brownie&#39;, count: 988, score: 76.9}\n    ]\n}, {\n    // 按列的 key-value 形式。\n    source: {\n        &#39;product&#39;: [&#39;Matcha Latte&#39;, &#39;Milk Tea&#39;, &#39;Cheese Cocoa&#39;, &#39;Walnut Brownie&#39;],\n        &#39;count&#39;: [823, 235, 1042, 988],\n        &#39;score&#39;: [95.8, 81.4, 91.2, 76.9]\n    }\n}]\n</code></pre>\n<h2 id=\"-dataset-\">多个 dataset 以及如何引用他们</h2>\n<p>可以同时定义多个 dataset。系列可以通过 <a href=\"option.html#series.datasetIndex\" target=\"_blank\">series.datasetIndex</a> 来指定引用哪个 dataset。例如:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: [{\n        // 序号为 0 的 dataset。\n        source: [...],\n    }, {\n        // 序号为 1 的 dataset。\n        source: [...]\n    }, {\n        // 序号为 2 的 dataset。\n        source: [...]\n    }],\n    series: [{\n        // 使用序号为 2 的 dataset。\n        datasetIndex: 2\n    }, {\n        // 使用序号为 1 的 dataset。\n        datasetIndex: 1\n    }]\n}\n</code></pre>\n<h2 id=\"echarts-3-series-data-\">ECharts 3 的数据设置方式(series.data)仍正常使用</h2>\n<p>ECharts 4 之前一直以来的数据声明方式仍然被正常支持,如果系列已经声明了 <a href=\"option.html#series.data\" target=\"_blank\">series.data</a>, 那么就会使用 <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> 而非 <code class=\"codespan\">dataset</code>。</p>\n<pre><code class=\"lang-js\">{\n    xAxis: {\n        type: &#39;category&#39;\n        data: [&#39;Matcha Latte&#39;, &#39;Milk Tea&#39;, &#39;Cheese Cocoa&#39;, &#39;Walnut Brownie&#39;]\n    },\n    yAxis: {},\n    series: [{\n        type: &#39;bar&#39;,\n        name: &#39;2015&#39;,\n        data: [89.3, 92.1, 94.4, 85.4]\n    }, {\n        type: &#39;bar&#39;,\n        name: &#39;2016&#39;,\n        data: [95.8, 89.4, 91.2, 76.9]\n    }, {\n        type: &#39;bar&#39;,\n        name: &#39;2017&#39;,\n        data: [97.7, 83.1, 92.5, 78.1]\n    }]\n}\n</code></pre>\n<p>其实,<a href=\"option.html#series.data\" target=\"_blank\">series.data</a> 也是种会一直存在的重要设置方式。一些特殊的非 table 格式的图表,如 <a href=\"option.html#series-treemap\" target=\"_blank\">treemap</a>、<a href=\"option.html#series-graph\" target=\"_blank\">graph</a>、<a href=\"option.html#series-lines\" target=\"_blank\">lines</a> 等,现在仍不支持在 dataset 中设置,仍然需要使用 <a href=\"option.html#series.data\" target=\"_blank\">series.data</a>。另外,对于巨大数据量的渲染(如百万以上的数据量),需要使用 <a href=\"api.html#echartsInstance.appendData\" target=\"_blank\">appendData</a> 进行增量加载,这种情况不支持使用 <code class=\"codespan\">dataset</code>。</p>\n<h2 id=\"-data-transform-\">数据转换器( data transform )</h2>\n<p>参见 <a href=\"#%E4%BD%BF%E7%94%A8%20transform%20%E8%BF%9B%E8%A1%8C%E6%95%B0%E6%8D%AE%E8%BD%AC%E6%8D%A2\">data transform</a>。</p>\n<h2 id=\"-\">其他</h2>\n<p>目前并非所有图表都支持 dataset。支持 dataset 的图表有:\n<code class=\"codespan\">line</code>、<code class=\"codespan\">bar</code>、<code class=\"codespan\">pie</code>、<code class=\"codespan\">scatter</code>、<code class=\"codespan\">effectScatter</code>、<code class=\"codespan\">parallel</code>、<code class=\"codespan\">candlestick</code>、<code class=\"codespan\">map</code>、<code class=\"codespan\">funnel</code>、<code class=\"codespan\">custom</code>。\n后续会有更多的图表进行支持。</p>\n<p>最后,给出一个示例,多个图表共享一个 <code class=\"codespan\">dataset</code>,并带有联动交互:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=dataset-link&edit=1&reset=1\" width=\"800\" height=\"500\" ></iframe>\n\n\n\n\n"},"使用 transform 进行数据转换":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> 5 开始支持了“数据转换”( data transform )功能。在 echarts 中,“数据转换” 这个词指的是,给定一个已有的“数据集”(<a href=\"option.html#dataset\" target=\"_blank\">dataset</a>)和一个“转换方法”(<a href=\"option.html#dataset.transform\" target=\"_blank\">transform</a>),echarts 能生成一个新的“数据集”,然后可以使用这个新的“数据集”绘制图表。这些工作都可以声明式地完成。</p>\n<p>抽象地来说,数据转换是这样一种公式:<code class=\"codespan\">outData = f(inputData)</code>。<code class=\"codespan\">f</code> 是转换方法,例如:<code class=\"codespan\">filter</code>、<code class=\"codespan\">sort</code>、<code class=\"codespan\">regression</code>、<code class=\"codespan\">boxplot</code>、<code class=\"codespan\">cluster</code>、<code class=\"codespan\">aggregate</code>(todo) 等等。有了数据转换能力后,我们就至少可以做到这些事情:</p>\n<ul>\n<li>把数据分成多份用不同的饼图展现。</li>\n<li>进行一些数据统计运算,并展示结果。</li>\n<li>用某些数据可视化算法处理数据,并展示结果。</li>\n<li>数据排序。</li>\n<li>去除或直选择数据项。</li>\n<li>...</li>\n</ul>\n<h2 id=\"-\">数据转换基础使用</h2>\n<p>在 echarts 中,数据转换是依托于数据集(<a href=\"#dataset\">dataset</a>)来实现的. 我们可以设置 <a href=\"option.html#dataset.transform\" target=\"_blank\">dataset.transform</a> 来表示,此 dataset 的数据,来自于此 transform 的结果。例如。</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: [{\n        // 这个 dataset 的 index 是 `0`。\n        source: [\n            [&#39;Product&#39;, &#39;Sales&#39;, &#39;Price&#39;, &#39;Year&#39;],\n            [&#39;Cake&#39;, 123, 32, 2011],\n            [&#39;Cereal&#39;, 231, 14, 2011],\n            [&#39;Tofu&#39;, 235, 5, 2011],\n            [&#39;Dumpling&#39;, 341, 25, 2011],\n            [&#39;Biscuit&#39;, 122, 29, 2011],\n            [&#39;Cake&#39;, 143, 30, 2012],\n            [&#39;Cereal&#39;, 201, 19, 2012],\n            [&#39;Tofu&#39;, 255, 7, 2012],\n            [&#39;Dumpling&#39;, 241, 27, 2012],\n            [&#39;Biscuit&#39;, 102, 34, 2012],\n            [&#39;Cake&#39;, 153, 28, 2013],\n            [&#39;Cereal&#39;, 181, 21, 2013],\n            [&#39;Tofu&#39;, 395, 4, 2013],\n            [&#39;Dumpling&#39;, 281, 31, 2013],\n            [&#39;Biscuit&#39;, 92, 39, 2013],\n            [&#39;Cake&#39;, 223, 29, 2014],\n            [&#39;Cereal&#39;, 211, 17, 2014],\n            [&#39;Tofu&#39;, 345, 3, 2014],\n            [&#39;Dumpling&#39;, 211, 35, 2014],\n            [&#39;Biscuit&#39;, 72, 24, 2014],\n        ],\n        // id: &#39;a&#39;\n    }, {\n        // 这个 dataset 的 index 是 `1`。\n        // 这个 `transform` 配置,表示,此 dataset 的数据,来自于此 transform 的结果。\n        transform: {\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Year&#39;, value: 2011 }\n        },\n        // 我们还可以设置这些可选的属性: `fromDatasetIndex` 或 `fromDatasetId`。\n        // 这些属性,指定了,transform 的输入,来自于哪个 dataset。例如,\n        // `fromDatasetIndex: 0` 表示输入来自于 index 为 `0` 的 dataset 。又例如,\n        // `fromDatasetId: &#39;a&#39;` 表示输入来自于 `id: &#39;a&#39;` 的 dataset。\n        // 当这些属性都不指定时,默认认为,输入来自于 index 为 `0` 的 dataset 。\n    }, {\n        // 这个 dataset 的 index 是 `2`。\n        // 同样,这里因为 `fromDatasetIndex` 和 `fromDatasetId` 都没有被指定,\n        // 那么输入默认来自于 index 为 `0` 的 dataset 。\n        transform: {\n            // 这个类型为 &quot;filter&quot; 的 transform 能够遍历并筛选出满足条件的数据项。\n            type: &#39;filter&#39;,\n            // 每个 transform 如果需要有配置参数的话,都须配置在 `config` 里。\n            // 在这个 &quot;filter&quot; transform 中,`config` 用于指定筛选条件。\n            // 下面这个筛选条件是:选出维度( dimension )&#39;Year&#39; 中值为 2012 的所有\n            // 数据项。\n            config: { dimension: &#39;Year&#39;, value: 2012 }\n        }\n    }, {\n        // 这个 dataset 的 index 是 `3`。\n        transform: {\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Year&#39;, value: 2013 }\n        }\n    }],\n    series: [{\n        type: &#39;pie&#39;, radius: 50, center: [&#39;25%&#39;, &#39;50%&#39;],\n        // 这个饼图系列,引用了 index 为 `1` 的 dataset 。也就是,引用了上述\n        // 2011 年那个 &quot;filter&quot; transform 的结果。\n        datasetIndex: 1\n    }, {\n        type: &#39;pie&#39;, radius: 50, center: [&#39;50%&#39;, &#39;50%&#39;],\n        datasetIndex: 2\n    }, {\n        type: &#39;pie&#39;, radius: 50, center: [&#39;75%&#39;, &#39;50%&#39;],\n        datasetIndex: 3\n    }]\n};\n</code></pre>\n<p>下面是上述例子的效果,三个饼图分别显示了 2011、2012、2013 年的数据。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=data-transform-multiple-pie&reset=1&edit=1\" width=\"800\" height=\"300\" ></iframe>\n\n\n<p>现在我们简单总结下,使用 transform 时的几个要点:</p>\n<ul>\n<li>在一个空的 dataset 中声明 <code class=\"codespan\">transform</code>, <code class=\"codespan\">fromDatasetIndex</code>/<code class=\"codespan\">fromDatasetId</code> 来表示我们要生成新的数据。</li>\n<li>系列引用这个 dataset 。</li>\n</ul>\n<h2 id=\"-\">数据转换的进阶使用</h2>\n<h4 id=\"-transform\">链式声明 transform</h4>\n<p><code class=\"codespan\">transform</code> 可以被链式声明,这是一个语法糖。</p>\n<pre><code class=\"lang-js\">option: {\n    dataset: [{\n        source: [ ... ] // 原始数据\n    }, {\n        // 几个 transform 被声明成 array ,他们构成了一个链,\n        // 前一个 transform 的输出是后一个 transform 的输入。\n        transform: [{\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Product&#39;, value: &#39;Tofu&#39; }\n        }, {\n            type: &#39;sort&#39;,\n            config: { dimension: &#39;Year&#39;, order: &#39;desc&#39; }\n        }]\n    }],\n    series: {\n        type: &#39;pie&#39;,\n        // 这个系列引用上述 transform 的结果。\n        datasetIndex: 1\n    }\n}\n</code></pre>\n<blockquote>\n<p>注意:理论上,任何 transform 都可能有多个输入或多个输出。但是,如果一个 transform 被链式声明,它只能获取前一个 transform 的第一个输出作为输入(第一个 transform 除外),以及它只能把自己的第一个输出给到后一个 transform (最后一个 transform 除外)。</p>\n</blockquote>\n<h4 id=\"-transform-data\">一个 transform 输出多个 data</h4>\n<p>在大多数场景下,transform 只需输出一个 data 。但是也有一些场景,需要输出多个 data ,每个 data 可以被不同的 series 或者 dataset 所使用。</p>\n<p>例如,在内置的 &quot;boxplot&quot; transform 中,除了 boxplot 系列所需要的 data 外,离群点( outlier )也会被生成,并且可以用例如散点图系列显示出来。例如,<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=boxplot-light-velocity&amp;edit=1&amp;reset=1\" target=\"_blank\">example</a>。</p>\n<p>我们提供配置 <a href=\"option.html#dataset.fromTransformResult\" target=\"_blank\">dataset.fromTransformResult</a> 来满足这种情况,例如:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        // 这个 dataset 的 index 为 `0`。\n        source: [...] // 原始数据\n    }, {\n        // 这个 dataset 的 index 为 `1`。\n        transform: {\n            type: &#39;boxplot&#39;\n        }\n        // 这个 &quot;boxplot&quot; transform 生成了两个数据:\n        // result[0]: boxplot series 所需的数据。\n        // result[1]: 离群点数据。\n        // 当其他 series 或者 dataset 引用这个 dataset 时,他们默认只能得到\n        // result[0] 。\n        // 如果想要他们得到 result[1] ,需要额外声明如下这样一个 dataset :\n    }, {\n        // 这个 dataset 的 index 为 `2`。\n        // 这个额外的 dataset 指定了数据来源于 index 为 `1` 的 dataset。\n        fromDatasetIndex: 1,\n        // 并且指定了获取 transform result[1] 。\n        fromTransformResult: 1\n    }],\n    xAxis: {\n        type: &#39;category&#39;\n    },\n    yAxis: {\n    },\n    series: [{\n        name: &#39;boxplot&#39;,\n        type: &#39;boxplot&#39;,\n        // Reference the data from result[0].\n        // 这个 series 引用 index 为 `1` 的 dataset 。\n        datasetIndex: 1\n    }, {\n        name: &#39;outlier&#39;,\n        type: &#39;scatter&#39;,\n        // 这个 series 引用 index 为 `2` 的 dataset 。\n        // 从而也就得到了上述的 transform result[1] (即离群点数据)\n        datasetIndex: 2\n    }]\n};\n</code></pre>\n<p>另外,<a href=\"option.html#dataset.fromTransformResult\" target=\"_blank\">dataset.fromTransformResult</a> 和 <a href=\"option.html#dataset.transform\" target=\"_blank\">dataset.transform</a> 能同时出现在一个 dataset 中,这表示,这个 transform 的输入,是上游的结果中以 <code class=\"codespan\">fromTransformResult</code> 获取的结果。例如:</p>\n<pre><code class=\"lang-js\">{\n    fromDatasetIndex: 1,\n    fromTransformResult: 1,\n    transform: {\n        type: &#39;sort&#39;,\n        config: { dimension: 2, order: &#39;desc&#39; }\n    }\n}\n</code></pre>\n<h4 id=\"-debug\">在开发环境中 debug</h4>\n<p>使用 transform 时,有时候我们会配不对,显示不出来结果,并且不知道哪里错了。所以,这里提供了一个配置项 <code class=\"codespan\">transform.print</code> 方便 debug 。这个配置项只在开发环境中生效。如下例:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [ ... ]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: { ... }\n            // 配置为 `true` 后, transform 的结果\n            // 会被 console.log 打印出来。\n            print: true\n        }\n    }],\n    ...\n}\n</code></pre>\n<h2 id=\"-filter\">数据转换器 &quot;filter&quot;</h2>\n<p>echarts 内置提供了能起过滤作用的数据转换器。我们只需声明 <code class=\"codespan\">transform.type: &quot;filter&quot;</code>,以及给出数据筛选条件。如下例:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [\n            [&#39;Product&#39;, &#39;Sales&#39;, &#39;Price&#39;, &#39;Year&#39;],\n            [&#39;Cake&#39;, 123, 32, 2011],\n            [&#39;Latte&#39;, 231, 14, 2011],\n            [&#39;Tofu&#39;, 235, 5, 2011],\n            [&#39;Milk Tee&#39;, 341, 25, 2011],\n            [&#39;Porridge&#39;, 122, 29, 2011],\n            [&#39;Cake&#39;, 143, 30, 2012],\n            [&#39;Latte&#39;, 201, 19, 2012],\n            [&#39;Tofu&#39;, 255, 7, 2012],\n            [&#39;Milk Tee&#39;, 241, 27, 2012],\n            [&#39;Porridge&#39;, 102, 34, 2012],\n            [&#39;Cake&#39;, 153, 28, 2013],\n            [&#39;Latte&#39;, 181, 21, 2013],\n            [&#39;Tofu&#39;, 395, 4, 2013],\n            [&#39;Milk Tee&#39;, 281, 31, 2013],\n            [&#39;Porridge&#39;, 92, 39, 2013],\n            [&#39;Cake&#39;, 223, 29, 2014],\n            [&#39;Latte&#39;, 211, 17, 2014],\n            [&#39;Tofu&#39;, 345, 3, 2014],\n            [&#39;Milk Tee&#39;, 211, 35, 2014],\n            [&#39;Porridge&#39;, 72, 24, 2014]\n        ]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Year&#39;, &#39;=&#39;: 2011 }\n            // 这个筛选条件表示,遍历数据,筛选出维度( dimension )\n            // &#39;Year&#39; 上值为 2011 的所有数据项。\n        }\n    }],\n    series: {\n        type: &#39;pie&#39;,\n        datasetIndex: 1\n    }\n};\n</code></pre>\n<p><br>\n<br>\n这是 filter 的另一个例子的效果:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=data-transform-filter&reset=1&edit=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n<p>在 &quot;filter&quot; transform 中,有这些要素:</p>\n<p><strong>关于维度( dimension ):</strong></p>\n<p><code class=\"codespan\">config.dimension</code> 指定了维度,能设成这样的值:</p>\n<ul>\n<li>设定成声明在 dataset 中的维度名,例如 <code class=\"codespan\">config: { dimension: &#39;Year&#39;, &#39;=&#39;: 2011 }</code>。不过, dataset 中维度名的声明并非强制,所以我们也可以</li>\n<li>设定成 dataset 中的维度 index (index 值从 0 开始)例如 <code class=\"codespan\">config: { dimension: 3, &#39;=&#39;: 2011 }</code>。</li>\n</ul>\n<p><strong>关于关系比较操作符:</strong></p>\n<p>关系操作符,可以设定这些:\n<code class=\"codespan\">&gt;</code>(<code class=\"codespan\">gt</code>)、<code class=\"codespan\">&gt;=</code>(<code class=\"codespan\">gte</code>)、<code class=\"codespan\">&lt;</code>(<code class=\"codespan\">lt</code>)、<code class=\"codespan\">&lt;=</code>(<code class=\"codespan\">lte</code>)、<code class=\"codespan\">=</code>(<code class=\"codespan\">eq</code>)、<code class=\"codespan\">!=</code>(<code class=\"codespan\">ne</code>、<code class=\"codespan\">&lt;&gt;</code>)、<code class=\"codespan\">reg</code>。(小括号中的符号或名字,是别名,设置起来作用相同)。他们首先基本地能基于数值大小进行比较,然后也有些额外的功能特性:</p>\n<ul>\n<li>多个关系操作符能声明在一个 {} 中,例如 <code class=\"codespan\">{ dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 20, &#39;&lt;&#39;: 30 }</code>。这表示“与”的关系,即,筛选出价格大于等于 20 小于 30 的数据项。</li>\n<li>data 里的值,不仅可以是数值( number ),也可以是“类数值的字符串”(“ numeric string ”)。“类数值的字符串”本身是一个字符串,但是可以被转换为字面所描述的数值,例如 <code class=\"codespan\">&#39; 123 &#39;</code>。转换过程中,空格(全角半角空格)和换行符都能被消除( trim )。</li>\n<li>如果我们需要对日期对象(JS <code class=\"codespan\">Date</code>)或者日期字符串(如 &#39;2012-05-12&#39;)进行比较,我们需要手动指定 <code class=\"codespan\">parser: &#39;time&#39;</code>,例如 <code class=\"codespan\">config: { dimension: 3, lt: &#39;2012-05-12&#39;, parser: &#39;time&#39; }</code>。</li>\n<li>纯字符串比较也被支持,但是只能用在 <code class=\"codespan\">=</code> 或 <code class=\"codespan\">!=</code> 上。而 <code class=\"codespan\">&gt;</code>, <code class=\"codespan\">&gt;=</code>, <code class=\"codespan\">&lt;</code>, <code class=\"codespan\">&lt;=</code> 并不支持纯字符串比较,也就是说,这四个操作符的右值,不能是字符串。</li>\n<li><code class=\"codespan\">reg</code> 操作符能提供正则表达式比较。例如, <code class=\"codespan\">{ dimension: &#39;Name&#39;, reg: /\\s+Müller\\s*$/ }</code> 能在 <code class=\"codespan\">&#39;Name&#39;</code> 维度上选出姓 <code class=\"codespan\">&#39;Müller&#39;</code> 的数据项。</li>\n</ul>\n<p><strong>关于逻辑比较:</strong></p>\n<p>我们也支持了逻辑比较操作符 <strong>与或非</strong>( <code class=\"codespan\">and</code> | <code class=\"codespan\">or</code> | <code class=\"codespan\">not</code> ):</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [...]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: {\n                // 使用 and 操作符。\n                // 类似地,同样的位置也可以使用 “or” 或 “not”。\n                // 但是注意 “not” 后应该跟一个 {...} 而非 [...] 。\n                and: [\n                    { dimension: &#39;Year&#39;, &#39;=&#39;: 2011 },\n                    { dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 20, &#39;&lt;&#39;: 30 }\n                ]\n            }\n            // 这个表达的是,选出 2011 年价格大于等于 20 但小于 30 的数据项。\n        }\n    }],\n    series: {\n        type: &#39;pie&#39;,\n        datasetIndex: 1\n    }\n};\n</code></pre>\n<p><code class=\"codespan\">and</code>/<code class=\"codespan\">or</code>/<code class=\"codespan\">not</code> 自然可以被嵌套,例如:</p>\n<pre><code class=\"lang-js\">transform: {\n    type: &#39;filter&#39;,\n    config: {\n        or: [{\n            and: [{\n                dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 10, &#39;&lt;&#39;: 20\n            }, {\n                dimension: &#39;Sales&#39;, &#39;&lt;&#39;: 100\n            }, {\n                not: { dimension: &#39;Product&#39;, &#39;=&#39;: &#39;Tofu&#39; }\n            }]\n        }, {\n            and: [{\n                dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 10, &#39;&lt;&#39;: 20\n            }, {\n                dimension: &#39;Sales&#39;, &#39;&lt;&#39;: 100\n            }, {\n                not: { dimension: &#39;Product&#39;, &#39;=&#39;: &#39;Cake&#39; }\n            }]\n        }]\n    }\n}\n</code></pre>\n<p><strong>关于解析器( parser ):</strong></p>\n<p>还可以指定“解析器”( parser )来对值进行解析后再做比较。现在支持的解析器有:</p>\n<ul>\n<li><code class=\"codespan\">parser: &#39;time&#39;</code>:把原始值解析成时间戳( timestamp )后再做比较。这个解析器的行为,和 <code class=\"codespan\">echarts.time.parse</code> 相同,即,当原始值为时间对象( JS <code class=\"codespan\">Date</code> 实例),或者是时间戳,或者是描述时间的字符串(例如 <code class=\"codespan\">&#39;2012-05-12 03:11:22&#39;</code> ),都可以被解析为时间戳,然后就可以基于数值大小进行比较。如果原始数据是其他不可解析为时间戳的值,那么会被解析为 NaN。</li>\n<li><code class=\"codespan\">parser: &#39;trim&#39;</code>:如果原始数据是字符串,则把字符串两端的空格(全角半角)和换行符去掉。如果不是字符串,还保持为原始数据。</li>\n<li><code class=\"codespan\">parser: &#39;number&#39;</code>:强制把原始数据转成数值。如果不能转成有意义的数值,那么转成 <code class=\"codespan\">NaN</code>。在大多数场景下,我们并不需要这个解析器,因为按默认策略,“像数值的字符串”就会被转成数值。但是默认策略比较严格,这个解析器比较宽松,如果我们遇到含有尾缀的字符串(例如 <code class=\"codespan\">&#39;33%&#39;</code>, <code class=\"codespan\">12px</code>),我们需要手动指定 <code class=\"codespan\">parser: &#39;number&#39;</code>,从而去掉尾缀转为数值才能比较。</li>\n</ul>\n<p>这个例子显示了如何使用 <code class=\"codespan\">parser: &#39;time&#39;</code>:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [\n            [&#39;Product&#39;, &#39;Sales&#39;, &#39;Price&#39;, &#39;Date&#39;],\n            [&#39;Milk Tee&#39;, 311, 21, &#39;2012-05-12&#39;],\n            [&#39;Cake&#39;, 135, 28, &#39;2012-05-22&#39;],\n            [&#39;Latte&#39;, 262, 36, &#39;2012-06-02&#39;],\n            [&#39;Milk Tee&#39;, 359, 21, &#39;2012-06-22&#39;],\n            [&#39;Cake&#39;, 121, 28, &#39;2012-07-02&#39;],\n            [&#39;Latte&#39;, 271, 36, &#39;2012-06-22&#39;],\n            ...\n        ]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: {\n                { dimension: &#39;Date&#39;, &#39;&gt;=&#39;: &#39;2012-05&#39;, &#39;&lt;&#39;: &#39;2012-06&#39;, parser: &#39;time&#39; }\n            }\n        }\n    }]\n}\n</code></pre>\n<p><strong>形式化定义:</strong></p>\n<p>最后,我们给出,数据转换器 &quot;filter&quot; 的 config 的形式化定义:</p>\n<pre><code class=\"lang-ts\">type FilterTransform = {\n    type: &#39;filter&#39;;\n    config: ConditionalExpressionOption;\n};\ntype ConditionalExpressionOption =\n    true | false | RelationalExpressionOption | LogicalExpressionOption;\ntype RelationalExpressionOption = {\n    dimension: DimensionName | DimensionIndex;\n    parser?: &#39;time&#39; | &#39;trim&#39; | &#39;number&#39;;\n    lt?: DataValue; // less than\n    lte?: DataValue; // less than or equal\n    gt?: DataValue; // greater than\n    gte?: DataValue; // greater than or equal\n    eq?: DataValue; // equal\n    ne?: DataValue; // not equal\n    &#39;&lt;&#39;?: DataValue; // lt\n    &#39;&lt;=&#39;?: DataValue; // lte\n    &#39;&gt;&#39;?: DataValue; // gt\n    &#39;&gt;=&#39;?: DataValue; // gte\n    &#39;=&#39;?: DataValue; // eq\n    &#39;!=&#39;?: DataValue; // ne\n    &#39;&lt;&gt;&#39;?: DataValue; // ne (SQL style)\n    reg?: RegExp | string; // RegExp\n};\ntype LogicalExpressionOption = {\n    and?: ConditionalExpressionOption[];\n    or?: ConditionalExpressionOption[];\n    not?: ConditionalExpressionOption;\n};\ntype DataValue = string | number | Date;\ntype DimensionName = string;\ntype DimensionIndex = number;\n</code></pre>\n<h2 id=\"-sort\">数据转换器 &quot;sort&quot;</h2>\n<p>&quot;sort&quot; 是另一个内置的数据转换器,用于排序数据。目前主要能用于在类目轴( <code class=\"codespan\">axis.type: &#39;category&#39;</code> )中显示排过序的数据。例如:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        dimensions: [&#39;name&#39;, &#39;age&#39;, &#39;profession&#39;, &#39;score&#39;, &#39;date&#39;],\n        source: [\n            [&#39; Hannah Krause &#39;, 41, &#39;Engineer&#39;, 314, &#39;2011-02-12&#39;],\n            [&#39;Zhao Qian &#39;, 20, &#39;Teacher&#39;, 351, &#39;2011-03-01&#39;],\n            [&#39; Jasmin Krause &#39;, 52, &#39;Musician&#39;, 287, &#39;2011-02-14&#39;],\n            [&#39;Li Lei&#39;, 37, &#39;Teacher&#39;, 219, &#39;2011-02-18&#39;],\n            [&#39; Karle Neumann &#39;, 25, &#39;Engineer&#39;, 253, &#39;2011-04-02&#39;],\n            [&#39; Adrian Groß&#39;, 19, &#39;Teacher&#39;, null, &#39;2011-01-16&#39;],\n            [&#39;Mia Neumann&#39;, 71, &#39;Engineer&#39;, 165, &#39;2011-03-19&#39;],\n            [&#39; Böhm Fuchs&#39;, 36, &#39;Musician&#39;, 318, &#39;2011-02-24&#39;],\n            [&#39;Han Meimei &#39;, 67, &#39;Engineer&#39;, 366, &#39;2011-03-12&#39;],\n        ]\n    }, {\n        transform: {\n            type: &#39;sort&#39;,\n            // 按分数排序\n            config: { dimension: &#39;score&#39;, order: &#39;asc&#39; }\n        }\n    }],\n    series: {\n        type: &#39;bar&#39;,\n        datasetIndex: 1\n    },\n    ...\n};\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=data-transform-sort-bar&reset=1&edit=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n<p>数据转换器 &quot;sort&quot; 还有一些额外的功能:</p>\n<ul>\n<li>可以多重排序,多个维度一起排序。见下面的例子。</li>\n<li>排序规则是这样的:<ul>\n<li>默认按照数值大小排序。其中,“可转为数值的字符串”也被转换成数值,和其他数值一起按大小排序。</li>\n<li>对于其他“不能转为数值的字符串”,也能在它们之间按字符串进行排序。这个特性有助于这种场景:把相同标签的数据项排到一起,尤其是当多个维度共同排序时。见下面的例子。</li>\n<li>当“数值及可转为数值的字符串”和“不能转为数值的字符串”进行排序时,或者它们和“其他类型的值”进行比较时,它们本身是不知如何进行比较的。那么我们称呼“后者”为“incomparable”,并且可以设置 <code class=\"codespan\">incomparable: &#39;min&#39; | &#39;max&#39;</code> 来指定一个“incomparable”在这个比较中是最大还是最小,从而能使它们能产生比较结果。这个设定的用途,比如可以是,决定空值(例如 <code class=\"codespan\">null</code>, <code class=\"codespan\">undefined</code>, <code class=\"codespan\">NaN</code>, <code class=\"codespan\">&#39;&#39;</code>, <code class=\"codespan\">&#39;-&#39;</code>)在排序的头还是尾。</li>\n</ul>\n</li>\n<li>过滤器 <code class=\"codespan\">filter: &#39;time&#39; | &#39;trim&#39; | &#39;number&#39;</code> 可以被使用,和数据转换器 &quot;filter&quot; 中的情况一样。<ul>\n<li>如果要对时间进行排序(例如,值为 JS <code class=\"codespan\">Date</code> 实例或者时间字符串如 <code class=\"codespan\">&#39;2012-03-12 11:13:54&#39;</code>),我们需要声明 <code class=\"codespan\">parser: &#39;time&#39;</code>。</li>\n<li>如果需要对有后缀的数值进行排序(如 <code class=\"codespan\">&#39;33%&#39;</code>, <code class=\"codespan\">&#39;16px&#39;</code>)我们需要声明 <code class=\"codespan\">parser: &#39;number&#39;</code>。</li>\n</ul>\n</li>\n</ul>\n<p>这是一个“多维度排序”的例子。</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        dimensions: [&#39;name&#39;, &#39;age&#39;, &#39;profession&#39;, &#39;score&#39;, &#39;date&#39;],\n        source: [\n            [&#39; Hannah Krause &#39;, 41, &#39;Engineer&#39;, 314, &#39;2011-02-12&#39;],\n            [&#39;Zhao Qian &#39;, 20, &#39;Teacher&#39;, 351, &#39;2011-03-01&#39;],\n            [&#39; Jasmin Krause &#39;, 52, &#39;Musician&#39;, 287, &#39;2011-02-14&#39;],\n            [&#39;Li Lei&#39;, 37, &#39;Teacher&#39;, 219, &#39;2011-02-18&#39;],\n            [&#39; Karle Neumann &#39;, 25, &#39;Engineer&#39;, 253, &#39;2011-04-02&#39;],\n            [&#39; Adrian Groß&#39;, 19, &#39;Teacher&#39;, null, &#39;2011-01-16&#39;],\n            [&#39;Mia Neumann&#39;, 71, &#39;Engineer&#39;, 165, &#39;2011-03-19&#39;],\n            [&#39; Böhm Fuchs&#39;, 36, &#39;Musician&#39;, 318, &#39;2011-02-24&#39;],\n            [&#39;Han Meimei &#39;, 67, &#39;Engineer&#39;, 366, &#39;2011-03-12&#39;],\n        ]\n    }, {\n        transform: {\n            type: &#39;sort&#39;,\n            config: [\n                // 对两个维度按声明的优先级分别排序。\n                { dimension: &#39;profession&#39;, order: &#39;desc&#39; },\n                { dimension: &#39;score&#39;, order: &#39;desc&#39; }\n            ]\n        }\n    }],\n    series: {\n        type: &#39;bar&#39;,\n        datasetIndex: 1\n    },\n    ...\n};\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/data-transform-multiple-sort-bar&reset=1&edit=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n<p>最后,我们给出数据转换器 &quot;sort&quot; 的 config 的形式化定义。</p>\n<pre><code class=\"lang-ts\">type SortTransform = {\n    type: &#39;filter&#39;;\n    config: OrderExpression | OrderExpression[];\n};\ntype OrderExpression = {\n    dimension: DimensionName | DimensionIndex;\n    order: &#39;asc&#39; | &#39;desc&#39;;\n    incomparable?: &#39;min&#39; | &#39;max&#39;;\n    parser?: &#39;time&#39; | &#39;trim&#39; | &#39;number&#39;;\n};\ntype DimensionName = string;\ntype DimensionIndex = number;\n</code></pre>\n<h2 id=\"-\">使用外部的数据转换器</h2>\n<p>除了上述的内置的数据转换器外,我们也可以使用外部的数据转换器。外部数据转换器能提供或自己定制更丰富的功能。下面的例子中,我们使用第三方库 <a href=\"https://github.com/ecomfe/echarts-stat\" target=\"_blank\">ecStat</a> 提供的数据转换器。</p>\n<p>生成数据的回归线:</p>\n<pre><code class=\"lang-js\">// 首先要注册外部数据转换器。\necharts.registerTransform(ecStatTransform(ecStat).regression);\n</code></pre>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: rawData\n    }, {\n        transform: {\n            // 引用注册的数据转换器。\n            // 注意,每个外部的数据转换器,都有名空间(如 &#39;ecStat:xxx&#39;,&#39;ecStat&#39; 是名空间)。\n            // 而内置数据转换器(如 &#39;filter&#39;, &#39;sort&#39;)没有名空间。\n            type: &#39;ecStat:regression&#39;,\n            config: {\n                // 这里是此外部数据转换器所需的参数。\n                method: &#39;exponential&#39;\n            }\n        }\n    }],\n    xAxis: { type: &#39;category&#39; },\n    yAxis: {},\n    series: [{\n        name: &#39;scatter&#39;,\n        type: &#39;scatter&#39;,\n        datasetIndex: 0\n    }, {\n        name: &#39;regression&#39;,\n        type: &#39;line&#39;,\n        symbol: &#39;none&#39;,\n        datasetIndex: 1\n    }]\n};\n</code></pre>\n<p>一些使用外部转换器的例子:</p>\n<ul>\n<li><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=data-transform-aggregate&amp;edit=1&amp;reset=1\" target=\"_blank\">聚集</a></li>\n<li><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=bar-histogram&amp;edit=1&amp;reset=1\" target=\"_blank\">直方图</a></li>\n<li><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=scatter-clustering&amp;edit=1&amp;reset=1\" target=\"_blank\">简单聚类</a></li>\n<li><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=scatter-linear-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">线性回归线</a></li>\n<li><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=scatter-exponential-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">指数回归线</a></li>\n<li><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=scatter-logarithmic-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">对数回归线</a></li>\n<li><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=scatter-polynomial-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">多项式回归线</a></li>\n</ul>\n"},"在图表中加入交互组件":{"type":["*"],"description":"<p>除了图表外 Apache ECharts<sup>TM</sup> 中,提供了很多交互组件。例如:</p>\n<p><code class=\"codespan\">图例组件</code> <a href=\"option.html#legend\" target=\"_blank\">legend</a>、<code class=\"codespan\">标题组件</code> <a href=\"option.html#title\" target=\"_blank\">title</a>、<code class=\"codespan\">视觉映射组件</code> <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a>、<code class=\"codespan\">数据区域缩放组件</code> <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a>、<code class=\"codespan\">时间线组件</code> <a href=\"option.html#timeline\" target=\"_blank\">timeline</a></p>\n<p>下面以 <code class=\"codespan\">数据区域缩放组件</code> <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a> 为例,介绍如何加入这种组件。</p>\n<h2 id=\"-datazoom-\">数据区域缩放组件(dataZoom)介绍</h2>\n<p>『概览数据整体,按需关注数据细节』是数据可视化的基本交互需求。<code class=\"codespan\">dataZoom</code> 组件能够在直角坐标系(<a href=\"option.html#grid\" target=\"_blank\">grid</a>)、极坐标系(<a href=\"option.html#polar\" target=\"_blank\">polar</a>)中实现这一功能。</p>\n<p><strong>如下例子:</strong></p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/scatter-dataZoom-all&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n<p><br></p>\n<ul>\n<li><code class=\"codespan\">dataZoom</code> 组件是对 <code class=\"codespan\">数轴(axis)</code> 进行『数据窗口缩放』『数据窗口平移』操作。</li>\n</ul>\n<blockquote>\n<p>可以通过 <a href=\"option.html#dataZoom.xAxisIndex\" target=\"_blank\">dataZoom.xAxisIndex</a> 或 <a href=\"option.html#dataZoom.yAxisIndex\" target=\"_blank\">dataZoom.yAxisIndex</a> 来指定 <code class=\"codespan\">dataZoom</code> 控制哪个或哪些数轴。</p>\n</blockquote>\n<ul>\n<li><p><code class=\"codespan\">dataZoom</code> 组件可同时存在多个,起到共同控制的作用。控制同一个数轴的组件,会自动联动。下面例子中会详细说明。</p>\n</li>\n<li><p><code class=\"codespan\">dataZoom</code> 的运行原理是通过『数据过滤』来达到『数据窗口缩放』的效果。</p>\n<p>  数据过滤模式的设置不同,效果也不同,参见:<a href=\"option.html#dataZoom.filterMode\" target=\"_blank\">dataZoom.filterMode</a>。</p>\n</li>\n<li><p><code class=\"codespan\">dataZoom</code> 的数据窗口范围的设置,目前支持两种形式:</p>\n<ul>\n<li><p>百分比形式:参见 <a href=\"option.html#dataZoom.start\" target=\"_blank\">dataZoom.start</a> 和 <a href=\"option.html#dataZoom.end\" target=\"_blank\">dataZoom.end</a>。</p>\n</li>\n<li><p>绝对数值形式:参见 <a href=\"option.html#dataZoom.startValue\" target=\"_blank\">dataZoom.startValue</a> 和 <a href=\"option.html#dataZoom.endValue\" target=\"_blank\">dataZoom.endValue</a>。</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>dataZoom 组件现在支持几种子组件:</strong></p>\n<ul>\n<li><p><a href=\"option.html#dataZoom-inside\" target=\"_blank\">内置型数据区域缩放组件(dataZoomInside)</a>:内置于坐标系中。</p>\n</li>\n<li><p><a href=\"option.html#dataZoom-slider\" target=\"_blank\">滑动条型数据区域缩放组件(dataZoomSlider)</a>:有单独的滑动条操作。</p>\n</li>\n<li><p><a href=\"option.html#toolbox.feature.dataZoom\" target=\"_blank\">框选型数据区域缩放组件(dataZoomSelect)</a>:全屏的选框进行数据区域缩放。入口和配置项均在 <code class=\"codespan\">toolbox</code>中。</p>\n</li>\n</ul>\n<h2 id=\"-datazoom-\">在代码加入 dataZoom 组件</h2>\n<p>先只在对单独一个横轴,加上 dataZoom 组件,代码示例如下:</p>\n<pre><code class=\"lang-javascript\">\noption = {\n    xAxis: {\n        type: &#39;value&#39;\n    },\n    yAxis: {\n        type: &#39;value&#39;\n    },\n    dataZoom: [\n        {   // 这个dataZoom组件,默认控制x轴。\n            type: &#39;slider&#39;, // 这个 dataZoom 组件是 slider 型 dataZoom 组件\n            start: 10,      // 左边在 10% 的位置。\n            end: 60         // 右边在 60% 的位置。\n        }\n    ],\n    series: [\n        {\n            type: &#39;scatter&#39;, // 这是个『散点图』\n            itemStyle: {\n                opacity: 0.8\n            },\n            symbolSize: function (val) {\n                return val[2] * 40;\n            },\n            data: [[&quot;14.616&quot;,&quot;7.241&quot;,&quot;0.896&quot;],[&quot;3.958&quot;,&quot;5.701&quot;,&quot;0.955&quot;],[&quot;2.768&quot;,&quot;8.971&quot;,&quot;0.669&quot;],[&quot;9.051&quot;,&quot;9.710&quot;,&quot;0.171&quot;],[&quot;14.046&quot;,&quot;4.182&quot;,&quot;0.536&quot;],[&quot;12.295&quot;,&quot;1.429&quot;,&quot;0.962&quot;],[&quot;4.417&quot;,&quot;8.167&quot;,&quot;0.113&quot;],[&quot;0.492&quot;,&quot;4.771&quot;,&quot;0.785&quot;],[&quot;7.632&quot;,&quot;2.605&quot;,&quot;0.645&quot;],[&quot;14.242&quot;,&quot;5.042&quot;,&quot;0.368&quot;]]\n        }\n    ]\n}\n</code></pre>\n<p>可以看到如下结果:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/scatter-tutorial-dataZoom-1&edit=1&reset=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n<p><br></p>\n<p>上面的图只能拖动 dataZoom 组件导致窗口变化。如果想在坐标系内进行拖动,以及用滚轮(或移动触屏上的两指滑动)进行缩放,那么要再加上一个 inside 型的 dataZoom组件。直接在上面的 <code class=\"codespan\">option.dataZoom</code> 中增加即可:</p>\n<pre><code class=\"lang-javascript\">option = {\n    ...,\n    dataZoom: [\n        {   // 这个dataZoom组件,默认控制x轴。\n            type: &#39;slider&#39;, // 这个 dataZoom 组件是 slider 型 dataZoom 组件\n            start: 10,      // 左边在 10% 的位置。\n            end: 60         // 右边在 60% 的位置。\n        },\n        {   // 这个dataZoom组件,也控制x轴。\n            type: &#39;inside&#39;, // 这个 dataZoom 组件是 inside 型 dataZoom 组件\n            start: 10,      // 左边在 10% 的位置。\n            end: 60         // 右边在 60% 的位置。\n        }\n    ],\n    ...\n}\n</code></pre>\n<p>可以看到如下结果(能在坐标系中进行滑动,以及使用滚轮缩放了):</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/scatter-tutorial-dataZoom-2&edit=1&reset=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n\n<p><br></p>\n<p>如果想 y 轴也能够缩放,那么在 y 轴上也加上 dataZoom 组件:</p>\n<pre><code class=\"lang-javascript\">option = {\n    ...,\n    dataZoom: [\n        {\n            type: &#39;slider&#39;,\n            xAxisIndex: 0,\n            start: 10,\n            end: 60\n        },\n        {\n            type: &#39;inside&#39;,\n            xAxisIndex: 0,\n            start: 10,\n            end: 60\n        },\n        {\n            type: &#39;slider&#39;,\n            yAxisIndex: 0,\n            start: 30,\n            end: 80\n        },\n        {\n            type: &#39;inside&#39;,\n            yAxisIndex: 0,\n            start: 30,\n            end: 80\n        }\n    ],\n    ...\n}\n</code></pre>\n<p>可以看到如下结果:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/scatter-tutorial-dataZoom-3&edit=1&reset=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n\n\n\n\n\n"},"移动端自适应":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> 工作在用户指定高宽的 DOM 节点(容器)中。ECharts 的『组件』和『系列』都在这个 DOM 节点中,每个节点都可以由用户指定位置。图表库内部并不适宜实现 DOM 文档流布局,因此采用类似绝对布局的简单容易理解的布局方式。但是有时候容器尺寸极端时,这种方式并不能自动避免组件重叠的情况,尤其在移动端小屏的情况下。</p>\n<p>另外,有时会出现一个图表需要同时在PC、移动端上展现的场景。这需要 ECharts 内部组件随着容器尺寸变化而变化的能力。</p>\n<p>为了解决这个问题,ECharts 完善了组件的定位设置,并且实现了类似 <a href=\"https://www.w3.org/TR/css3-mediaqueries/\" target=\"_blank\">CSS Media Query</a> 的自适应能力。</p>\n<h2 id=\"echarts-\">ECharts组件的定位和布局</h2>\n<p>大部分『组件』和『系列』会遵循两种定位方式:</p>\n<p><br>\n<strong>left/right/top/bottom/width/height 定位方式:</strong></p>\n<p>这六个量中,每个量都可以是『绝对值』或者『百分比』或者『位置描述』。</p>\n<ul>\n<li><p>绝对值</p>\n<p>  单位是浏览器像素(px),用 <code class=\"codespan\">number</code> 形式书写(不写单位)。例如 <code class=\"codespan\">{left: 23, height: 400}</code>。</p>\n</li>\n<li><p>百分比</p>\n<p>  表示占 DOM 容器高宽的百分之多少,用 <code class=\"codespan\">string</code> 形式书写。例如 <code class=\"codespan\">{right: &#39;30%&#39;, bottom: &#39;40%&#39;}</code>。</p>\n</li>\n<li><p>位置描述</p>\n<ul>\n<li>可以设置 <code class=\"codespan\">left: &#39;center&#39;</code>,表示水平居中。</li>\n<li>可以设置 <code class=\"codespan\">top: &#39;middle&#39;</code>,表示垂直居中。</li>\n</ul>\n</li>\n</ul>\n<p>这六个量的概念,和 CSS 中六个量的概念类似:</p>\n<ul>\n<li>left:距离 DOM 容器左边界的距离。</li>\n<li>right:距离 DOM 容器右边界的距离。</li>\n<li>top:距离 DOM 容器上边界的距离。</li>\n<li>bottom:距离 DOM 容器下边界的距离。</li>\n<li>width:宽度。</li>\n<li>height:高度。</li>\n</ul>\n<p>在横向,<code class=\"codespan\">left</code>、<code class=\"codespan\">right</code>、<code class=\"codespan\">width</code> 三个量中,只需两个量有值即可,因为任两个量可以决定组件的位置和大小,例如 <code class=\"codespan\">left</code> 和 <code class=\"codespan\">right</code> 或者 <code class=\"codespan\">right</code> 和 <code class=\"codespan\">width</code> 都可以决定组件的位置和大小。\n纵向,<code class=\"codespan\">top</code>、<code class=\"codespan\">bottom</code>、<code class=\"codespan\">height</code> 三个量,和横向类同不赘述。</p>\n<p><br>\n<strong><code class=\"codespan\">center</code> / <code class=\"codespan\">radius</code> 定位方式:</strong></p>\n<ul>\n<li><p><code class=\"codespan\">center</code></p>\n<p>  是一个数组,表示 <code class=\"codespan\">[x, y]</code>,其中,<code class=\"codespan\">x</code>、<code class=\"codespan\">y</code>可以是『绝对值』或者『百分比』,含义和前述相同。</p>\n</li>\n<li><p><code class=\"codespan\">radius</code></p>\n<p>  是一个数组,表示 <code class=\"codespan\">[内半径, 外半径]</code>,其中,内外半径可以是『绝对值』或者『百分比』,含义和前述相同。</p>\n<p>  在自适应容器大小时,百分比设置是很有用的。</p>\n</li>\n</ul>\n<p><br>\n<strong>横向(horizontal)和纵向(vertical)</strong></p>\n<p>ECharts的『外观狭长』型的组件(如 <code class=\"codespan\">legend</code>、<code class=\"codespan\">visualMap</code>、<code class=\"codespan\">dataZoom</code>、<code class=\"codespan\">timeline</code>等),大多提供了『横向布局』『纵向布局』的选择。例如,在细长的移动端屏幕上,可能适合使用『纵向布局』;在PC宽屏上,可能适合使用『横向布局』。</p>\n<p>横纵向布局的设置,一般在『组件』或者『系列』的 <code class=\"codespan\">orient</code> 或者 <code class=\"codespan\">layout</code> 配置项上,设置为 <code class=\"codespan\">&#39;horizontal&#39;</code> 或者 <code class=\"codespan\">&#39;vertical&#39;</code>。</p>\n<p><br>\n<strong>与 ECharts2 的兼容:</strong></p>\n<p>ECharts2 中的 <code class=\"codespan\">x/x2/y/y2</code> 的命名方式仍被兼容,对应于 <code class=\"codespan\">left/right/top/bottom</code>。但是建议写 <code class=\"codespan\">left/right/top/bottom</code>。</p>\n<p>位置描述中,为兼容 ECharts2,可以支持一些看起来略奇怪的设置:<code class=\"codespan\">left: &#39;right&#39;</code>、<code class=\"codespan\">left: &#39;left&#39;</code>、<code class=\"codespan\">top: &#39;bottom&#39;</code>、<code class=\"codespan\">top: &#39;top&#39;</code>。这些语句分别等效于:<code class=\"codespan\">right: 0</code>、<code class=\"codespan\">left: 0</code>、<code class=\"codespan\">bottom: 0</code>、<code class=\"codespan\">top: 0</code>,写成后者就不奇怪了。</p>\n<h2 id=\"media-query\">Media Query</h2>\n<p><a href=\"https://www.w3.org/TR/css3-mediaqueries/#media1\" target=\"_blank\">Media Query</a> 提供了『随着容器尺寸改变而改变』的能力。</p>\n<p>如下例子,可尝试拖动<strong>右下角的圆点</strong>,随着尺寸变化,legend 和 系列会自动改变布局位置和方式。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/pie-media&edit=1&reset=1\" width=\"750\" height=\"600\" ></iframe>\n\n\n<p>要在 option 中设置 Media Query 须遵循如下格式:</p>\n<pre><code class=\"lang-javascript\">option = {\n    // 这里是基本的『原子option』。\n    title: {...},\n    legend: {...},\n    series: [{...}, {...}, ...],\n    ...,\n    media: [ // 这里定义了 media query 的逐条规则。\n        {\n            query: {...},   // 这里写规则。\n            option: {       // 这里写此规则满足下的option。\n                legend: {...},\n                ...\n            }\n        },\n        {\n            query: {...},   // 第二个规则。\n            option: {       // 第二个规则对应的option。\n                legend: {...},\n                ...\n            }\n        },\n        {                   // 这条里没有写规则,表示『默认』,\n            option: {       // 即所有规则都不满足时,采纳这个option。\n                legend: {...},\n                ...\n            }\n        }\n    ]\n};\n</code></pre>\n<p>上面的例子中,<code class=\"codespan\">baseOption</code>、以及 <code class=\"codespan\">media</code> 每个 option 都是『原子 option』,即普通的含有各组件、系列定义的 option。而由『原子option』组合成的整个 option,我们称为『复合 option』。<code class=\"codespan\">baseOption</code> 是必然被使用的,此外,满足了某个 <code class=\"codespan\">query</code> 条件时,对应的 option 会被使用 <code class=\"codespan\">chart.mergeOption()</code> 来 merge 进去。</p>\n<p><strong>query:</strong></p>\n<p>每个 <code class=\"codespan\">query</code> 类似于这样:</p>\n<pre><code class=\"lang-javascript\">{\n    minWidth: 200,\n    maxHeight: 300,\n    minAspectRatio: 1.3\n}\n</code></pre>\n<p>现在支持三个属性:<code class=\"codespan\">width</code>、<code class=\"codespan\">height</code>、<code class=\"codespan\">aspectRatio</code>(长宽比)。每个属性都可以加上 <code class=\"codespan\">min</code> 或 <code class=\"codespan\">max</code> 前缀。比如,<code class=\"codespan\">minWidth: 200</code> 表示『大于等于200px宽度』。两个属性一起写表示『并且』,比如:<code class=\"codespan\">{minWidth: 200, maxHeight: 300}</code> 表示『大于等于200px宽度,并且小于等于300px高度』。</p>\n<p><strong>option:</strong></p>\n<p><code class=\"codespan\">media</code>中的 option 既然是『原子 option』,理论上可以写任何 option 的配置项。但是一般我们只写跟布局定位相关的,例如截取上面例子中的一部分 query option:</p>\n<pre><code class=\"lang-javascript\">media: [\n    ...,\n    {\n        query: {\n            maxAspectRatio: 1           // 当长宽比小于1时。\n        },\n        option: {\n            legend: {                   // legend 放在底部中间。\n                right: &#39;center&#39;,\n                bottom: 0,\n                orient: &#39;horizontal&#39;    // legend 横向布局。\n            },\n            series: [                   // 两个饼图左右布局。\n                {\n                    radius: [20, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;30%&#39;]\n                },\n                {\n                    radius: [30, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;70%&#39;]\n                }\n            ]\n        }\n    },\n    {\n        query: {\n            maxWidth: 500               // 当容器宽度小于 500 时。\n        },\n        option: {\n            legend: {\n                right: 10,              // legend 放置在右侧中间。\n                top: &#39;15%&#39;,\n                orient: &#39;vertical&#39;      // 纵向布局。\n            },\n            series: [                   // 两个饼图上下布局。\n                {\n                    radius: [20, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;30%&#39;]\n                },\n                {\n                    radius: [30, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;75%&#39;]\n                }\n            ]\n        }\n    },\n    ...\n]\n</code></pre>\n<p><strong>多个 query 被满足时的优先级:</strong></p>\n<p>注意,可以有多个 <code class=\"codespan\">query</code> 同时被满足,会都被 <code class=\"codespan\">mergeOption</code>,定义在后的后被 merge(即优先级更高)。</p>\n<p><strong>默认 query:</strong></p>\n<p>如果 <code class=\"codespan\">media</code> 中有某项不写 <code class=\"codespan\">query</code>,则表示『默认值』,即所有规则都不满足时,采纳这个option。</p>\n<p><strong>容器大小实时变化时的注意事项:</strong></p>\n<p>在不少情况下,并不需要容器DOM节点任意随着拖拽变化大小,而是只是根据不同终端设置几个典型尺寸。</p>\n<p>但是如果容器DOM节点需要能任意随着拖拽变化大小,那么目前使用时需要注意这件事:某个配置项,如果在某一个 <code class=\"codespan\">query option</code> 中出现,那么在其他 <code class=\"codespan\">query option</code> 中也必须出现,否则不能够回归到原来的状态。(<code class=\"codespan\">left/right/top/bottom/width/height</code> 不受这个限制。)</p>\n<p><strong>『复合 option』 中的 <code class=\"codespan\">media</code> 不支持 merge</strong></p>\n<p>也就是说,当第二(或三、四、五 ...)次 <code class=\"codespan\">chart.setOption(rawOption)</code> 时,如果 <code class=\"codespan\">rawOption</code> 是 <code class=\"codespan\">复合option</code>(即包含 <code class=\"codespan\">media</code> 列表),那么新的 <code class=\"codespan\">rawOption.media</code> 列表不会和老的 <code class=\"codespan\">media</code> 列表进行 merge,而是简单替代。当然,<code class=\"codespan\">baseOption</code> 仍然会正常和老的 option 进行merge。</p>\n<p>其实,很少有场景需要使用『复合 option』来多次 <code class=\"codespan\">setOption</code>,而我们推荐的做法是,使用 mediaQuery 时,第一次setOption使用『复合 option』,后面 <code class=\"codespan\">setOption</code> 时仅使用 『原子 option』,也就是仅仅用 setOption 来改变 <code class=\"codespan\">baseOption</code>。</p>\n<p><br>\n最后看一个和时间轴结合的例子:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/bar-media-timeline&edit=1&reset=1\" width=\"750\" height=\"700\" ></iframe>\n\n\n\n\n"},"数据的视觉映射":{"type":["*"],"description":"<p>数据可视化是 <strong>数据</strong> 到 <strong>视觉元素</strong> 的映射过程(这个过程也可称为视觉编码,视觉元素也可称为视觉通道)。</p>\n<p>Apache ECharts<sup>TM</sup> 的每种图表本身就内置了这种映射过程,比如折线图把数据映射到『线』,柱状图把数据映射到『长度』。一些更复杂的图表,如 <code class=\"codespan\">graph</code>、<code class=\"codespan\">事件河流图</code>、<code class=\"codespan\">treemap</code> 也都会做出他们内置的映射。</p>\n<p>此外,ECharts 还提供了 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap 组件</a> 来提供通用的视觉映射。<code class=\"codespan\">visualMap</code> 组件中可以使用的视觉元素有:<br>\n<code class=\"codespan\">图形类别(symbol)</code>、<code class=\"codespan\">图形大小(symbolSize)</code><br>\n<code class=\"codespan\">颜色(color)</code>、<code class=\"codespan\">透明度(opacity)</code>、<code class=\"codespan\">颜色透明度(colorAlpha)</code>、<br>\n<code class=\"codespan\">颜色明暗度(colorLightness)</code>、<code class=\"codespan\">颜色饱和度(colorSaturation)</code>、<code class=\"codespan\">色调(colorHue)</code></p>\n<p>下面对 <code class=\"codespan\">visualMap</code> 组件的使用方式进行简要的介绍。</p>\n<h2 id=\"-\">数据和维度</h2>\n<p>ECharts中的数据,一般存放于 <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> 中。根据图表类型不同,数据的具体形式也可能有些许差异。比如可能是『线性表』、『树』、『图』等。但他们都有个共性:都是『数据项(dataItem)』的集合。每个数据项含有『数据值(value)』和其他信息(如果需要的话)。每个数据值,可以是单一的数值(一维)或者一个数组(多维)。</p>\n<p>例如,<a href=\"option.html#series.data\" target=\"_blank\">series.data</a> 最常见的形式,是『线性表』,即一个普通数组:</p>\n<pre><code class=\"lang-javascript\">series: {\n    data: [\n        {       // 这里每一个项就是数据项(dataItem)\n            value: 2323, // 这是数据项的数据值(value)\n            itemStyle: {...}\n        },\n        1212,   // 也可以直接是 dataItem 的 value,这更常见。\n        2323,   // 每个 value 都是『一维』的。\n        4343,\n        3434\n    ]\n}\n</code></pre>\n<pre><code class=\"lang-javascript\">series: {\n    data: [\n        {                        // 这里每一个项就是数据项(dataItem)\n            value: [3434, 129,  &#39;圣马力诺&#39;], // 这是数据项的数据值(value)\n            itemStyle: {...}\n        },\n        [1212, 5454, &#39;梵蒂冈&#39;],   // 也可以直接是 dataItem 的 value,这更常见。\n        [2323, 3223, &#39;瑙鲁&#39;],     // 每个 value 都是『三维』的,每列是一个维度。\n        [4343, 23,   &#39;图瓦卢&#39;]    // 假如是『气泡图』,常见第一维度映射到x轴,\n                                 // 第二维度映射到y轴,\n                                 // 第三维度映射到气泡半径(symbolSize)\n    ]\n}\n</code></pre>\n<p>在图表中,往往默认把 value 的前一两个维度进行映射,比如取第一个维度映射到x轴,取第二个维度映射到y轴。如果想要把更多的维度展现出来,可以借助 <code class=\"codespan\">visualMap</code> 。最常见的情况,<a href=\"option.html#series-scatter\" target=\"_blank\">气泡图(scatter)</a> 使用半径展现了第三个维度。</p>\n<h2 id=\"visualmap-\">visualMap 组件</h2>\n<p>visualMap 组件定义了把数据的『哪个维度』映射到『什么视觉元素上』。</p>\n<p>现在提供如下两种类型的visualMap组件,通过 <a href=\"option.html#visualMap.type\" target=\"_blank\">visualMap.type</a> 来区分。</p>\n<p>其定义结构例如:</p>\n<pre><code class=\"lang-javascript\">option = {\n    visualMap: [ // 可以同时定义多个 visualMap 组件。\n        { // 第一个 visualMap 组件\n            type: &#39;continuous&#39;, // 定义为连续型 visualMap\n            ...\n        },\n        { // 第二个 visualMap 组件\n            type: &#39;piecewise&#39;, // 定义为分段型 visualMap\n            ...\n        }\n    ],\n    ...\n};\n</code></pre>\n<p><a href=\"option.html#visualMap-continuous\" target=\"_blank\">连续型(visualMapContinuous)</a></p>\n<p><a href=\"option.html#visualMap-piecewise\" target=\"_blank\">分段型(visualMapPiecewise)</a>:</p>\n<p>分段型视觉映射组件(visualMapPiecewise),有三种模式:</p>\n<ul>\n<li>连续型数据平均分段: 依据 <a href=\"option.html#visualMap-piecewise.splitNumber\" target=\"_blank\">visualMap-piecewise.splitNumber</a> 来自动平均分割成若干块。</li>\n<li>连续型数据自定义分段: 依据 <a href=\"option.html#visualMap-piecewise.pieces\" target=\"_blank\">visualMap-piecewise.pieces</a> 来定义每块范围。</li>\n<li>离散数据(类别性数据): 类别定义在 <a href=\"option.html#visualMap-piecewise.categories\" target=\"_blank\">visualMap-piecewise.categories</a> 中。</li>\n</ul>\n<p><br>\n<strong>视觉映射方式的配置</strong></p>\n<p>既然是『数据』到『视觉元素』的映射,<code class=\"codespan\">visualMap</code> 中可以指定数据的『哪个维度』(参见<a href=\"#visualMap.dimension\">visualMap.dimension</a>)映射到哪些『视觉元素』(参见 <a href=\"option.html#visualMap.inRange\" target=\"_blank\">visualMap.inRange</a> 和 <a href=\"option.html#visualMap.outOfRange\" target=\"_blank\">visualMap.outOfRange</a>)中。</p>\n<p>例一:</p>\n<pre><code class=\"lang-javascript\">option = {\n    visualMap: [\n        {\n            type: &#39;piecewise&#39;,\n            min: 0,\n            max: 5000,\n            dimension: 3,       // series.data 的第四个维度(即 value[3])被映射\n            seriesIndex: 4,     // 对第四个系列进行映射。\n            inRange: {          // 选中范围中的视觉配置\n                color: [&#39;blue&#39;, &#39;#121122&#39;, &#39;red&#39;], // 定义了图形颜色映射的颜色列表,\n                                                    // 数据最小值映射到&#39;blue&#39;上,\n                                                    // 最大值映射到&#39;red&#39;上,\n                                                    // 其余自动线性计算。\n                symbolSize: [30, 100]               // 定义了图形尺寸的映射范围,\n                                                    // 数据最小值映射到30上,\n                                                    // 最大值映射到100上,\n                                                    // 其余自动线性计算。\n            },\n            outOfRange: {       // 选中范围外的视觉配置\n                symbolSize: [30, 100]\n            }\n        },\n        ...\n    ]\n};\n</code></pre>\n<p>例二:</p>\n<pre><code class=\"lang-javascript\">option = {\n    visualMap: [\n        {\n            ...,\n            inRange: {          // 选中范围中的视觉配置\n                colorLightness: [0.2, 1], // 映射到明暗度上。也就是对本来的颜色进行明暗度处理。\n                                          // 本来的颜色可能是从全局色板中选取的颜色,visualMap组件并不关心。\n                symbolSize: [30, 100]\n            },\n            ...\n        },\n        ...\n    ]\n};\n</code></pre>\n<p>更多详情,参见 <a href=\"option.html#visualMap.inRange\" target=\"_blank\">visualMap.inRange</a> 和 <a href=\"option.html#visualMap.outOfRange\" target=\"_blank\">visualMap.outOfRange</a>。</p>\n"},"ECharts 中的事件和行为":{"type":["*"],"description":"<p>在 Apache ECharts<sup>TM</sup> 的图表中用户的操作将会触发相应的事件。开发者可以监听这些事件,然后通过回调函数做相应的处理,比如跳转到一个地址,或者弹出对话框,或者做数据下钻等等。</p>\n<p>在 ECharts 3 中绑定事件跟 2 一样都是通过 <a href=\"api.html#EChartsInstance.on\" target=\"_blank\">on</a> 方法,但是事件名称比 2 更加简单了。ECharts 3 中,事件名称对应 DOM 事件名称,均为小写的字符串,如下是一个绑定点击操作的示例。</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;click&#39;, function (params) {\n    // 控制台打印数据的名称\n    console.log(params.name);\n});\n</code></pre>\n<p>在 ECharts 中事件分为两种类型,一种是用户鼠标操作点击,或者 hover 图表的图形时触发的事件,还有一种是用户在使用可以交互的组件后触发的行为事件,例如在切换图例开关时触发的 <a href=\"api.html#events.legendselectchanged\" target=\"_blank\">&#39;legendselectchanged&#39;</a> 事件(这里需要注意切换图例开关是不会触发<code class=\"codespan\">&#39;legendselected&#39;</code>事件的),数据区域缩放时触发的 <a href=\"api.html#events.legendselectchanged\" target=\"_blank\">&#39;datazoom&#39;</a> 事件等等。</p>\n<h2 id=\"-\">鼠标事件的处理</h2>\n<p>ECharts 支持常规的鼠标事件类型,包括 <code class=\"codespan\">&#39;click&#39;</code>、<code class=\"codespan\">&#39;dblclick&#39;</code>、<code class=\"codespan\">&#39;mousedown&#39;</code>、<code class=\"codespan\">&#39;mousemove&#39;</code>、<code class=\"codespan\">&#39;mouseup&#39;</code>、<code class=\"codespan\">&#39;mouseover&#39;</code>、<code class=\"codespan\">&#39;mouseout&#39;</code>、<code class=\"codespan\">&#39;globalout&#39;</code>、<code class=\"codespan\">&#39;contextmenu&#39;</code> 事件。下面先来看一个简单的点击柱状图后打开相应的百度搜索页面的示例。</p>\n<pre><code class=\"lang-js\">// 基于准备好的dom,初始化ECharts实例\nvar myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n// 指定图表的配置项和数据\nvar option = {\n    xAxis: {\n        data: [&quot;衬衫&quot;,&quot;羊毛衫&quot;,&quot;雪纺衫&quot;,&quot;裤子&quot;,&quot;高跟鞋&quot;,&quot;袜子&quot;]\n    },\n    yAxis: {},\n    series: [{\n        name: &#39;销量&#39;,\n        type: &#39;bar&#39;,\n        data: [5, 20, 36, 10, 10, 20]\n    }]\n};\n// 使用刚指定的配置项和数据显示图表。\nmyChart.setOption(option);\n// 处理点击事件并且跳转到相应的百度搜索页面\nmyChart.on(&#39;click&#39;, function (params) {\n    window.open(&#39;https://www.baidu.com/s?wd=&#39; + encodeURIComponent(params.name));\n});\n</code></pre>\n<p>所有的鼠标事件包含参数 <code class=\"codespan\">params</code>,这是一个包含点击图形的数据信息的对象,如下格式:</p>\n<pre><code class=\"lang-js\">{\n    // 当前点击的图形元素所属的组件名称,\n    // 其值如 &#39;series&#39;、&#39;markLine&#39;、&#39;markPoint&#39;、&#39;timeLine&#39; 等。\n    componentType: string,\n    // 系列类型。值可能为:&#39;line&#39;、&#39;bar&#39;、&#39;pie&#39; 等。当 componentType 为 &#39;series&#39; 时有意义。\n    seriesType: string,\n    // 系列在传入的 option.series 中的 index。当 componentType 为 &#39;series&#39; 时有意义。\n    seriesIndex: number,\n    // 系列名称。当 componentType 为 &#39;series&#39; 时有意义。\n    seriesName: string,\n    // 数据名,类目名\n    name: string,\n    // 数据在传入的 data 数组中的 index\n    dataIndex: number,\n    // 传入的原始数据项\n    data: Object,\n    // sankey、graph 等图表同时含有 nodeData 和 edgeData 两种 data,\n    // dataType 的值会是 &#39;node&#39; 或者 &#39;edge&#39;,表示当前点击在 node 还是 edge 上。\n    // 其他大部分图表中只有一种 data,dataType 无意义。\n    dataType: string,\n    // 传入的数据值\n    value: number|Array\n    // 数据图形的颜色。当 componentType 为 &#39;series&#39; 时有意义。\n    color: string\n}\n</code></pre>\n<p>如何区分鼠标点击到了哪里:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;click&#39;, function (params) {\n    if (params.componentType === &#39;markPoint&#39;) {\n        // 点击到了 markPoint 上\n        if (params.seriesIndex === 5) {\n            // 点击到了 index 为 5 的 series 的 markPoint 上。\n        }\n    }\n    else if (params.componentType === &#39;series&#39;) {\n        if (params.seriesType === &#39;graph&#39;) {\n            if (params.dataType === &#39;edge&#39;) {\n                // 点击到了 graph 的 edge(边)上。\n            }\n            else {\n                // 点击到了 graph 的 node(节点)上。\n            }\n        }\n    }\n});\n</code></pre>\n<p>使用 <code class=\"codespan\">query</code> 只对指定的组件的图形元素的触发回调:</p>\n<pre><code class=\"lang-js\">chart.on(eventName, query, handler);\n</code></pre>\n<p><code class=\"codespan\">query</code> 可为 <code class=\"codespan\">string</code> 或者 <code class=\"codespan\">Object</code>。</p>\n<p>如果为 <code class=\"codespan\">string</code> 表示组件类型。格式可以是 &#39;mainType&#39; 或者 &#39;mainType.subType&#39;。例如:</p>\n<pre><code class=\"lang-js\">chart.on(&#39;click&#39;, &#39;series&#39;, function () {...});\nchart.on(&#39;click&#39;, &#39;series.line&#39;, function () {...});\nchart.on(&#39;click&#39;, &#39;dataZoom&#39;, function () {...});\nchart.on(&#39;click&#39;, &#39;xAxis.category&#39;, function () {...});\n</code></pre>\n<p>如果为 <code class=\"codespan\">Object</code>,可以包含以下一个或多个属性,每个属性都是可选的:</p>\n<pre><code class=\"lang-js\">{\n    &lt;mainType&gt;Index: number // 组件 index\n    &lt;mainType&gt;Name: string // 组件 name\n    &lt;mainType&gt;Id: string // 组件 id\n    dataIndex: number // 数据项 index\n    name: string // 数据项 name\n    dataType: string // 数据项 type,如关系图中的 &#39;node&#39;, &#39;edge&#39;\n    element: string // 自定义系列中的 el 的 name\n}\n</code></pre>\n<p>例如:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: [{\n        name: &#39;uuu&#39;\n        // ...\n    }]\n});\nchart.on(&#39;mouseover&#39;, {seriesName: &#39;uuu&#39;}, function () {\n    // series name 为 &#39;uuu&#39; 的系列中的图形元素被 &#39;mouseover&#39; 时,此方法被回调。\n});\n</code></pre>\n<p>例如:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: [{\n        // ...\n    }, {\n        // ...\n        data: [\n            {name: &#39;xx&#39;, value: 121},\n            {name: &#39;yy&#39;, value: 33}\n        ]\n    }]\n});\nchart.on(&#39;mouseover&#39;, {seriesIndex: 1, name: &#39;xx&#39;}, function () {\n    // series index 1 的系列中的 name 为 &#39;xx&#39; 的元素被 &#39;mouseover&#39; 时,此方法被回调。\n});\n</code></pre>\n<p>例如:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: [{\n        type: &#39;graph&#39;,\n        nodes: [{name: &#39;a&#39;, value: 10}, {name: &#39;b&#39;, value: 20}],\n        edges: [{source: 0, target: 1}]\n    }]\n});\nchart.on(&#39;click&#39;, {dataType: &#39;node&#39;}, function () {\n    // 关系图的节点被点击时此方法被回调。\n});\nchart.on(&#39;click&#39;, {dataType: &#39;edge&#39;}, function () {\n    // 关系图的边被点击时此方法被回调。\n});\n</code></pre>\n<p>例如:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: {\n        // ...\n        type: &#39;custom&#39;,\n        renderItem: function (params, api) {\n            return {\n                type: &#39;group&#39;,\n                children: [{\n                    type: &#39;circle&#39;,\n                    name: &#39;my_el&#39;,\n                    // ...\n                }, {\n                    // ...\n                }]\n            }\n        },\n        data: [[12, 33]]\n    }\n})\nchart.on(&#39;mouseup&#39;, {element: &#39;my_el&#39;}, function () {\n    // name 为 &#39;my_el&#39; 的元素被 &#39;mouseup&#39; 时,此方法被回调。\n});\n</code></pre>\n<p>你可以在回调函数中获得这个对象中的数据名、系列名称后在自己的数据仓库中索引得到其它的信息候更新图表,显示浮层等等,如下示例代码:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;click&#39;, function (parmas) {\n    $.get(&#39;detail?q=&#39; + params.name, function (detail) {\n        myChart.setOption({\n            series: [{\n                name: &#39;pie&#39;,\n                // 通过饼图表现单个柱子中的数据分布\n                data: [detail.data]\n            }]\n        });\n    });\n});\n</code></pre>\n<h2 id=\"-\">组件交互的行为事件</h2>\n<p>在 ECharts 中基本上所有的组件交互行为都会触发相应的事件,常用的事件和事件对应参数在 <a href=\"api.html#events\" target=\"_blank\">events</a> 文档中有列出。</p>\n<p>下面是监听一个图例开关的示例:</p>\n<pre><code class=\"lang-js\">// 图例开关的行为只会触发 legendselectchanged 事件\nmyChart.on(&#39;legendselectchanged&#39;, function (params) {\n    // 获取点击图例的选中状态\n    var isSelected = params.selected[params.name];\n    // 在控制台中打印\n    console.log((isSelected ? &#39;选中了&#39; : &#39;取消选中了&#39;) + &#39;图例&#39; + params.name);\n    // 打印所有图例的状态\n    console.log(params.selected);\n});\n</code></pre>\n<h2 id=\"-echarts-\">代码触发 ECharts 中组件的行为</h2>\n<p>上面提到诸如<code class=\"codespan\">&#39;legendselectchanged&#39;</code>事件会由组件交互的行为触发,那除了用户的交互操作,有时候也会有需要在程序里调用方法触发图表的行为,诸如显示 tooltip,选中图例。</p>\n<p>在 ECharts 2.x 是通过 <code class=\"codespan\">myChart.component.tooltip.showTip</code> 这种形式调用相应的接口触发图表行为,入口很深,而且涉及到内部组件的组织。相对地,在 ECharts 3 里改为通过调用 <code class=\"codespan\">myChart.dispatchAction({ type: &#39;&#39; })</code> 触发图表行为,统一管理了所有动作,也可以方便地根据需要去记录用户的行为路径。</p>\n<p>常用的动作和动作对应参数在 <a href=\"api.html#action\" target=\"_blank\">action</a> 文档中有列出。</p>\n<p>下面示例演示了如何通过<code class=\"codespan\">dispatchAction</code>去轮流高亮饼图的每个扇形。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/pie-highlight&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n\n<h2 id=\"-\">监听“空白处”的事件</h2>\n<p>有时候,开发者需要监听画布的“空白处”所触发的事件。比如,当需要在用户点击“空白处”的时候重置图表时。</p>\n<p>在讨论这个功能之前,我们需要先明确两种事件。<code class=\"codespan\">zrender 事件</code>和<code class=\"codespan\">echarts 事件</code>。</p>\n<pre><code class=\"lang-js\">myChart.getZr().on(&#39;click&#39;, function (event) {\n    // 该监听器正在监听一个`zrender 事件`。\n});\nmyChart.on(&#39;click&#39;, function (event) {\n    // 该监听器正在监听一个`echarts 事件`。\n});\n</code></pre>\n<p><code class=\"codespan\">zrender 事件</code>与<code class=\"codespan\">echarts 事件</code>不同。前者是当鼠标在任何地方都会被触发,而后者是只有当鼠标在图形元素上时才能被触发。事实上,<code class=\"codespan\">echarts 事件</code> 是在 <code class=\"codespan\">zrender 事件</code> 的基础上实现的,也就是说,当一个 <code class=\"codespan\">zrender 事件</code> 在图形元素上被触发时,<code class=\"codespan\">echarts</code> 将触发一个 <code class=\"codespan\">echarts 事件</code> 给开发者。</p>\n<p>有了 <code class=\"codespan\">zrender事件</code>,我们就可以实现 “监听空白处的事件”,具体如下:</p>\n<pre><code class=\"lang-js\">myChart.getZr().on(&#39;click&#39;, function (event) {\n    // 没有 target 意味着鼠标/指针不在任何一个图形元素上,它是从“空白处”触发的。\n    if (!event.target) {\n        // 点击在了空白处,做些什么。\n    }\n});\n</code></pre>\n"},"动态排序柱状图":{"type":["*"],"description":"<p>动态排序柱状图是一种展示随时间变化的数据排名变化的图表,从 ECharts 5 开始内置支持。</p>\n<blockquote>\n<p>动态排序柱状图通常是横向的柱条,如果想要采用纵向的柱条,只要把本教程中的 X 轴和 Y 轴相反设置即可。</p>\n</blockquote>\n<ol>\n<li><code class=\"codespan\">yAxis.realtimeSort</code> 设为 <code class=\"codespan\">true</code>,表示开启 Y 轴的动态排序效果</li>\n<li><code class=\"codespan\">yAxis.inverse</code> 设为 <code class=\"codespan\">true</code>,表示 Y 轴从下往上是从小到大的排列</li>\n<li><code class=\"codespan\">yAxis.animationDuration</code> 建议设为 <code class=\"codespan\">300</code>,表示第一次柱条排序动画的时长</li>\n<li><code class=\"codespan\">yAxis.animationDurationUpdate</code> 建议设为 <code class=\"codespan\">300</code>,表示第一次后柱条排序动画的时长</li>\n<li>如果想只显示前 <em>n</em> 名,将 <code class=\"codespan\">yAxis.max</code> 设为 <em>n - 1</em>,否则显示所有柱条</li>\n<li><code class=\"codespan\">xAxis.max</code> 建议设为 <code class=\"codespan\">&#39;dataMax&#39;</code> 表示用数据的最大值作为 X 轴最大值,视觉效果更好</li>\n<li>如果想要实时改变标签,需要将 <code class=\"codespan\">series.label.valueAnimation</code> 设为 <code class=\"codespan\">true</code></li>\n<li><code class=\"codespan\">animationDuration</code> 设为 <code class=\"codespan\">0</code>,表示第一份数据不需要从 <code class=\"codespan\">0</code> 开始动画(如果希望从 <code class=\"codespan\">0</code> 开始则设为和 <code class=\"codespan\">animationDurationUpdate</code> 相同的值)</li>\n<li><code class=\"codespan\">animationDurationUpdate</code> 建议设为 <code class=\"codespan\">3000</code> 表示每次更新动画时长,这一数值应与调用 <code class=\"codespan\">setOption</code> 改变数据的频率相同</li>\n<li>以 <code class=\"codespan\">animationDurationUpdate</code> 的频率调用 <code class=\"codespan\">setInterval</code>,更新数据值,显示下一个时间点对应的柱条排序</li>\n</ol>\n<p>完整的例子如下:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=bar-race&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n<p>以上的设置项比较多,如果手动设置比较繁琐,之后我们也会推出不用写代码就能实现动态排序柱状图的工具,敬请期待!</p>\n"},"小例子:自己实现拖拽":{"type":["*"],"description":"<p>介绍一个实现拖拽的小例子。这个例子是在原生 Apache ECharts<sup>TM</sup> 基础上做了些小小扩展,带有一定的交互性。通过这个例子,我们可以了解到,如何使用 ECharts 提供的 API 实现定制化的富交互的功能。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=line-draggable&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n<p>这个例子主要做到了这样一件事,用鼠标可以拖拽曲线的点,从而改变曲线的形状。例子很简单,但是有了这个基础我们还可以做更多的事情,比如在图中可视化得编辑。所以我们从这个简单的例子开始。</p>\n<p>echarts 本身没有提供封装好的『拖拽改变图表』功能,因为现在认为这个功能并不足够有通用性。那么这个功能就留给开发者用 API 实现,这也有助于开发者按自己的需要个性定制。</p>\n<h2 id=\"-\">(一)实现基本的拖拽功能</h2>\n<p>在这个例子中,基础的图表是一个 <a href=\"option.html#series-line\" target=\"_blank\">折线图 (series-line)</a>。参见如下配置:</p>\n<pre><code class=\"lang-js\">var symbolSize = 20;\n\n// 这个 data 变量在这里单独声明,在后面也会用到。\nvar data = [[15, 0], [-50, 10], [-56.5, 20], [-46.5, 30], [-22.1, 40]];\n\nmyChart.setOption({\n    xAxis: {\n        min: -100,\n        max: 80,\n        type: &#39;value&#39;,\n        axisLine: {onZero: false}\n    },\n    yAxis: {\n        min: -30,\n        max: 60,\n        type: &#39;value&#39;,\n        axisLine: {onZero: false}\n    },\n    series: [\n        {\n            id: &#39;a&#39;,\n            type: &#39;line&#39;,\n            smooth: true,\n            symbolSize: symbolSize, // 为了方便拖拽,把 symbolSize 尺寸设大了。\n            data: data\n        }\n    ]\n});\n</code></pre>\n<p>既然折线中原生的点没有拖拽功能,我们就为它加上拖拽功能:用 <a href=\"option.html#graphic\" target=\"_blank\">graphic</a> 组件,在每个点上面,覆盖一个隐藏的可拖拽的圆点。</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    // 声明一个 graphic component,里面有若干个 type 为 &#39;circle&#39; 的 graphic elements。\n    // 这里使用了 echarts.util.map 这个帮助方法,其行为和 Array.prototype.map 一样,但是兼容 es5 以下的环境。\n    // 用 map 方法遍历 data 的每项,为每项生成一个圆点。\n    graphic: echarts.util.map(data, function (dataItem, dataIndex) {\n        return {\n            // &#39;circle&#39; 表示这个 graphic element 的类型是圆点。\n            type: &#39;circle&#39;,\n\n            shape: {\n                // 圆点的半径。\n                r: symbolSize / 2\n            },\n            // 用 transform 的方式对圆点进行定位。position: [x, y] 表示将圆点平移到 [x, y] 位置。\n            // 这里使用了 convertToPixel 这个 API 来得到每个圆点的位置,下面介绍。\n            position: myChart.convertToPixel(&#39;grid&#39;, dataItem),\n\n            // 这个属性让圆点不可见(但是不影响他响应鼠标事件)。\n            invisible: true,\n            // 这个属性让圆点可以被拖拽。\n            draggable: true,\n            // 把 z 值设得比较大,表示这个圆点在最上方,能覆盖住已有的折线图的圆点。\n            z: 100,\n            // 此圆点的拖拽的响应事件,在拖拽过程中会不断被触发。下面介绍详情。\n            // 这里使用了 echarts.util.curry 这个帮助方法,意思是生成一个与 onPointDragging\n            // 功能一样的新的函数,只不过第一个参数永远为此时传入的 dataIndex 的值。\n            ondrag: echarts.util.curry(onPointDragging, dataIndex)\n        };\n    })\n});\n</code></pre>\n<p>上面的代码中,使用 <a href=\"api.html#echartsInstance.convertToPixel\" target=\"_blank\">convertToPixel</a> 这个 API,进行了从 data 到『像素坐标』的转换,从而得到了每个圆点应该在的位置,从而能绘制这些圆点。<code class=\"codespan\">myChart.convertToPixel(&#39;grid&#39;, dataItem)</code> 这句话中,第一个参数 <code class=\"codespan\">&#39;grid&#39;</code> 表示 <code class=\"codespan\">dataItem</code> 在 <a href=\"option.html#grid\" target=\"_blank\">grid</a> 这个组件中(即直角坐标系)中进行转换。所谓『像素坐标』,就是以 echarts 容器 dom element 的左上角为零点的以像素为单位的坐标系中的坐标。</p>\n<p>注意这件事需要在第一次 setOption 后再进行,也就是说,须在坐标系(<a href=\"option.html#grid\" target=\"_blank\">grid</a>)初始化后才能调用 <code class=\"codespan\">myChart.convertToPixel(&#39;grid&#39;, dataItem)</code>。</p>\n<p>有了这段代码后,就有了诸个能拖拽的点。接下来要为每个点,加上拖拽响应的事件:</p>\n<pre><code class=\"lang-js\">// 拖拽某个圆点的过程中会不断调用此函数。\n// 此函数中会根据拖拽后的新位置,改变 data 中的值,并用新的 data 值,重绘折线图,从而使折线图同步于被拖拽的隐藏圆点。\nfunction onPointDragging(dataIndex) {\n    // 这里的 data 就是本文最初的代码块中声明的 data,在这里会被更新。\n    // 这里的 this 就是被拖拽的圆点。this.position 就是圆点当前的位置。\n    data[dataIndex] = myChart.convertFromPixel(&#39;grid&#39;, this.position);\n    // 用更新后的 data,重绘折线图。\n    myChart.setOption({\n        series: [{\n            id: &#39;a&#39;,\n            data: data\n        }]\n    });\n}\n</code></pre>\n<p>上面的代码中,使用了 <a href=\"api.html#echartsInstance.convertFromPixel\" target=\"_blank\">convertFromPixel</a> 这个 API。它是 <a href=\"api.html#echartsInstance.convertToPixel\" target=\"_blank\">convertToPixel</a> 的逆向过程。<code class=\"codespan\">myChart.convertFromPixel(&#39;grid&#39;, this.position)</code> 表示把当前像素坐标转换成 <a href=\"option.html#grid\" target=\"_blank\">grid</a> 组件中直角坐标系的 dataItem 值。</p>\n<p>最后,为了使 dom 尺寸改变时,图中的元素能自适应得变化,加上这些代码:</p>\n<pre><code class=\"lang-js\">window.addEventListener(&#39;resize&#39;, function () {\n    // 对每个拖拽圆点重新计算位置,并用 setOption 更新。\n    myChart.setOption({\n        graphic: echarts.util.map(data, function (item, dataIndex) {\n            return {\n                position: myChart.convertToPixel(&#39;grid&#39;, item)\n            };\n        })\n    });\n});\n\n</code></pre>\n<h2 id=\"-tooltip-\">(二)添加 tooltip 组件</h2>\n<p>到此,拖拽的基本功能就完成了。但是想要更进一步得实时看到拖拽过程中,被拖拽的点的 data 值的变化状况,我们可以使用 <a href=\"option.html#tooltip\" target=\"_blank\">tooltip</a> 组件来实时显示这个值。但是,tooltip 有其默认的『显示』『隐藏』触发规则,在我们拖拽的场景中并不适用,所以我们还要手动定制 tooltip 的『显示』『隐藏』行为。</p>\n<p>在上述代码中分别添加如下定义:</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    ...,\n    tooltip: {\n        // 表示不使用默认的『显示』『隐藏』触发规则。\n        triggerOn: &#39;none&#39;,\n        formatter: function (params) {\n            return &#39;X: &#39; + params.data[0].toFixed(2) + &#39;&lt;br&gt;Y: &#39; + params.data[1].toFixed(2);\n        }\n    }\n});\n</code></pre>\n<pre><code class=\"lang-js\">myChart.setOption({\n    graphic: echarts.util.map(data, function (item, dataIndex) {\n        return {\n            type: &#39;circle&#39;,\n            ...,\n            // 在 mouseover 的时候显示,在 mouseout 的时候隐藏。\n            onmousemove: echarts.util.curry(showTooltip, dataIndex),\n            onmouseout: echarts.util.curry(hideTooltip, dataIndex),\n        };\n    })\n});\n\nfunction showTooltip(dataIndex) {\n    myChart.dispatchAction({\n        type: &#39;showTip&#39;,\n        seriesIndex: 0,\n        dataIndex: dataIndex\n    });\n}\n\nfunction hideTooltip(dataIndex) {\n    myChart.dispatchAction({\n        type: &#39;hideTip&#39;\n    });\n}\n</code></pre>\n<p>这里使用了 <a href=\"api.html#echartsInstance.dispatchAction\" target=\"_blank\">dispatchAction</a> 来显示隐藏 tooltip。用到了 <a href=\"api.html#action.tooltip.showTip\" target=\"_blank\">showTip</a>、<a href=\"api.html#action.tooltip.hideTip\" target=\"_blank\">hideTip</a>。</p>\n<h2 id=\"-\">(三)全部代码</h2>\n<p>总结一下,全部的代码如下:</p>\n<pre><code>&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;script src=&quot;dist/echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;/head&gt;\n&lt;body&gt;\n    &lt;div id=&quot;main&quot; style=&quot;width: 600px;height:400px;&quot;&gt;&lt;/div&gt;\n    &lt;script type=&quot;text/javascript&quot;&gt;\n\n    var symbolSize = 20;\n    var data = [[15, 0], [-50, 10], [-56.5, 20], [-46.5, 30], [-22.1, 40]];\n\n    var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n    myChart.setOption({\n        tooltip: {\n            triggerOn: &#39;none&#39;,\n            formatter: function (params) {\n                return &#39;X: &#39; + params.data[0].toFixed(2) + &#39;&lt;br&gt;Y: &#39; + params.data[1].toFixed(2);\n            }\n        },\n        xAxis: {\n            min: -100,\n            max: 80,\n            type: &#39;value&#39;,\n            axisLine: {onZero: false}\n        },\n        yAxis: {\n            min: -30,\n            max: 60,\n            type: &#39;value&#39;,\n            axisLine: {onZero: false}\n        },\n        series: [\n            {\n                id: &#39;a&#39;,\n                type: &#39;line&#39;,\n                smooth: true,\n                symbolSize: symbolSize,\n                data: data\n            }\n        ],\n    });\n\n    myChart.setOption({\n        graphic: echarts.util.map(data, function (item, dataIndex) {\n            return {\n                type: &#39;circle&#39;,\n                position: myChart.convertToPixel(&#39;grid&#39;, item),\n                shape: {\n                    r: symbolSize / 2\n                },\n                invisible: true,\n                draggable: true,\n                ondrag: echarts.util.curry(onPointDragging, dataIndex),\n                onmousemove: echarts.util.curry(showTooltip, dataIndex),\n                onmouseout: echarts.util.curry(hideTooltip, dataIndex),\n                z: 100\n            };\n        })\n    });\n\n    window.addEventListener(&#39;resize&#39;, function () {\n        myChart.setOption({\n            graphic: echarts.util.map(data, function (item, dataIndex) {\n                return {\n                    position: myChart.convertToPixel(&#39;grid&#39;, item)\n                };\n            })\n        });\n    });\n\n    function showTooltip(dataIndex) {\n        myChart.dispatchAction({\n            type: &#39;showTip&#39;,\n            seriesIndex: 0,\n            dataIndex: dataIndex\n        });\n    }\n\n    function hideTooltip(dataIndex) {\n        myChart.dispatchAction({\n            type: &#39;hideTip&#39;\n        });\n    }\n\n    function onPointDragging(dataIndex, dx, dy) {\n        data[dataIndex] = myChart.convertFromPixel(&#39;grid&#39;, this.position);\n        myChart.setOption({\n            series: [{\n                id: &#39;a&#39;,\n                data: data\n            }]\n        });\n    }\n\n&lt;/script&gt;\n&lt;/body&gt;\n&lt;/html&gt;\n</code></pre><p><br></p>\n<p>有了这些基础,就可以定制更多的功能了。可以加 <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a> 组件,可以制作一个直角坐标系上的绘图板等等。可以发挥想象力。</p>\n"},"小例子:实现日历图":{"type":["*"],"description":"<p>在 Apache ECharts<sup>TM</sup> 中,我们新增了日历坐标系,如何快速写出一个日历图呢?</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=calendar-simple&edit=1&reset=1\" width=\"800\" height=\"300\" ></iframe>\n\n\n<p>通过以下三个步骤即可实现上述效果:</p>\n<h2 id=\"-js-\">第一步:引入js文件</h2>\n<p>下载的最新完整版本 echarts.min.js 即可,无需再单独引入其他文件哦</p>\n<pre><code class=\"lang-html\">&lt;script src=&quot;echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;script&gt;\n    // ...\n&lt;/script&gt;\n</code></pre>\n<h2 id=\"-dom-\">第二步:指定DOM元素作为图表容器</h2>\n<p>和ECharts中的其他图表一样,创建一个DOM来作为绘制图表的容器</p>\n<pre><code class=\"lang-html\">&lt;div id=&quot;main&quot; style=&quot;width=100%; height = 400px&quot;&gt;&lt;/div&gt;\n</code></pre>\n<p>使用ECharts进行初始化</p>\n<pre><code class=\"lang-js\">var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n</code></pre>\n<h2 id=\"-\">第三步:配置参数</h2>\n<p>以常见的日历图为例: calendar坐标 + heatmap图</p>\n<pre><code class=\"lang-js\">var option = {\n    visualMap: {\n        show: false\n        min: 0,\n        max: 1000\n    },\n    calendar: {\n        range: &#39;2017&#39;\n    },\n    series: {\n        type: &#39;heatmap&#39;,\n        coordinateSystem: &#39;calendar&#39;,\n        data: [[&#39;2017-01-02&#39;, 900], [&#39;2017-01-02&#39;, 877], [&#39;2017-01-02&#39;, 699], ...]\n    }\n}\nmyChart.setOption(option);\n</code></pre>\n<p>在heatmap图的基础上,加上<code class=\"codespan\">coordinateSystem: &#39;calendar&#39;,</code>和<code class=\"codespan\">calendar: { range: &#39;2017&#39; }</code>heatmap图就秒变为日历图了。</p>\n<blockquote>\n<p>若发现图表没有正确显示,你可以检查以下几种可能:</p>\n<ul>\n<li>JS文件是否正确加载;</li>\n<li><code class=\"codespan\">echarts</code> 变量是否存在;</li>\n<li>控制台是否报错;</li>\n<li>DOM 元素在 <code class=\"codespan\">echarts.init</code> 的时候是否有高度和宽度。</li>\n<li>若为 <code class=\"codespan\">type: heatmap</code>,检查是否配置了 <code class=\"codespan\">visualMap</code>。</li>\n</ul>\n</blockquote>\n<p><strong>附完整示例代码</strong></p>\n<pre><code class=\"lang-html\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;title&gt;ECharts&lt;/title&gt;\n    &lt;script src=&quot;echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;/head&gt;\n&lt;body&gt;\n    &lt;div id=&quot;main&quot; style=&quot;width:100%;height:400px;&quot;&gt;&lt;/div&gt;\n    &lt;script type=&quot;text/javascript&quot;&gt;\n        var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n        // 模拟数据\n        function getVirtulData(year) {\n            year = year || &#39;2017&#39;;\n            var date = +echarts.number.parseDate(year + &#39;-01-01&#39;);\n            var end = +echarts.number.parseDate(year + &#39;-12-31&#39;);\n            var dayTime = 3600 * 24 * 1000;\n            var data = [];\n            for (var time = date; time &lt;= end; time += dayTime) {\n                data.push([\n                    echarts.format.formatTime(&#39;yyyy-MM-dd&#39;, time),\n                    Math.floor(Math.random() * 10000)\n                ]);\n            }\n            return data;\n        }\n        var option = {\n            visualMap: {\n                show: false,\n                min: 0,\n                max: 10000\n            },\n            calendar: {\n                range: &#39;2017&#39;\n            },\n            series: {\n                type: &#39;heatmap&#39;,\n                coordinateSystem: &#39;calendar&#39;,\n                data: getVirtulData(2017)\n            }\n        };\n        myChart.setOption(option);\n    &lt;/script&gt;\n&lt;/body&gt;\n&lt;/html&gt;\n\n</code></pre>\n<p>以上就是绘制最简日历图的步骤了,如若还想进一步私人定制,还可以通过自定义配置参数来实现</p>\n<h2 id=\"-\">自定义配置参数</h2>\n<p>使用日历坐标绘制日历图时,支持自定义各项属性:</p>\n<ul>\n<li><p><a href=\"option.html#calendar.range\" target=\"_blank\">range</a>: <code class=\"codespan\">设置时间的范围,可支持某年、某月、某天,还可支持跨年</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.cellSize\" target=\"_blank\">cellSize</a>: <code class=\"codespan\">设置日历格的大小,可支持设置不同高宽,还可支持自适应auto</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.width\" target=\"_blank\">width</a>、<a href=\"http://xxx\" target=\"_blank\">height</a>: <code class=\"codespan\">也可以直接设置改日历图的整体高宽,让其基于已有的高宽全部自适应</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.orient\" target=\"_blank\">orient</a>: <code class=\"codespan\">设置坐标的方向,既可以横着也可以竖着</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.splitLine\" target=\"_blank\">splitLine</a>: <code class=\"codespan\">设置分隔线样式,也可以直接不显示</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.itemStyle\" target=\"_blank\">itemStyle</a>: <code class=\"codespan\">设置日历格的样式,背景色、方框线颜色大小类型、透明度均可自定义,甚至还能加阴影</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.dayLabel\" target=\"_blank\">dayLabel</a>: <code class=\"codespan\">设置坐标中 星期样式,可以设置星期从第几天开始,快捷设置中英文、甚至是自定义中英文混搭、或局部不显示、通过formatter 可以想怎么显示就怎么显示;</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.monthLabel\" target=\"_blank\">monthLabel</a>: <code class=\"codespan\">设置坐标中 月样式,和星期一样,可快捷设置中英文和自定义混搭</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.yearLabel\" target=\"_blank\">yearLabel</a>: <code class=\"codespan\">设置坐标中 年样式,默认显示一年,通过formatter 文字可以想显示什么就能通过string function任性自定义,上下左右方位随便选;</code></p>\n</li>\n</ul>\n<p>完整的配置项参数参见:<a href=\"option.html#calendar\" target=\"_blank\">calendar API</a></p>\n<h2 id=\"-\">日历坐标系的其他形式</h2>\n<p>日历坐标系是一种新的 <code class=\"codespan\">ECharts</code> 坐标系,提供了在日历上绘制图表的能力; 所以除了制作常用的日历图外,我们可以在热力图、散点图、关系图中使用日历坐标系。</p>\n<p>在日历坐标系中使用热力图:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=calendar-heatmap&edit=1&reset=1\" width=\"800\" height=\"300\" ></iframe>\n\n\n<p>在日历坐标系中使用散点图:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=calendar-effectscatter&edit=1&reset=1\" width=\"800\" height=\"600\" ></iframe>\n\n\n<p>还可以混合放置不同的图表,例如下例子,同时放置了热力图和关系图:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=calendar-graph&edit=1&reset=1\" width=\"800\" height=\"600\" ></iframe>\n\n\n<p><strong>其他更丰富的效果</strong></p>\n<p>灵活利用 <code class=\"codespan\">ECharts</code> 图表和坐标系的组合,以及 API,还可以实现更丰富的效果。</p>\n<p>例如,制作农历:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=calendar-lunar&edit=1&reset=1\" width=\"600\" height=\"500\" ></iframe>\n\n\n<p>例如,使用 <code class=\"codespan\">chart.convertToPixel</code> 接口,在日历坐标系绘制饼图。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=calendar-pie&edit=1&reset=1\" width=\"800\" height=\"640\" ></iframe>\n\n\n\n\n\n\n\n"},"旭日图":{"type":["*"],"description":"<p><a href=\"https://en.wikipedia.org/wiki/Pie_chart#Ring_chart_/_Sunburst_chart_/_Multilevel_pie_chart\" target=\"_blank\">旭日图(Sunburst)</a>由多层的环形图组成,在数据结构上,内圈是外圈的父节点。因此,它既能像<a href=\"option.html#series-pie\" target=\"_blank\">饼图</a>一样表现局部和整体的占比,又能像<a href=\"option.html#series-treemap\" target=\"_blank\">矩形树图</a>一样表现层级关系。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=sunburst-monochrome&edit=1&reset=1\" width=\"700\" height=\"500\" ></iframe>\n\n\n<h2 id=\"-\">引入相关文件</h2>\n<p>旭日图是 Apache ECharts<sup>TM</sup> 4.0 新增的图表类型,从 <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">CDN</a> 引入完整版的 <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js\" target=\"_blank\">echarts.min.js</a></p>\n<h2 id=\"-\">最简单的旭日图</h2>\n<p>创建旭日图需要在 <code class=\"codespan\">series</code> 配置项中声明类型为 <code class=\"codespan\">&#39;sunburst&#39;</code> 的系列,并且以树形结构声明其 <code class=\"codespan\">data</code>:</p>\n<pre><code class=\"lang-js\">var option = {\n    series: {\n        type: &#39;sunburst&#39;,\n        data: [{\n            name: &#39;A&#39;,\n            value: 10,\n            children: [{\n                value: 3,\n                name: &#39;Aa&#39;\n            }, {\n                value: 5,\n                name: &#39;Ab&#39;\n            }]\n        }, {\n            name: &#39;B&#39;,\n            children: [{\n                name: &#39;Ba&#39;,\n                value: 4\n            }, {\n                name: &#39;Bb&#39;,\n                value: 2\n            }]\n        }, {\n            name: &#39;C&#39;,\n            value: 3\n        }]\n    }\n};\n</code></pre>\n<p>得到以下结果:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/sunburst-simple&edit=1&reset=1\" width=\"700\" height=\"400\" ></iframe>\n\n\n<h2 id=\"-\">颜色等样式调整</h2>\n<p>默认情况下会使用全局调色盘 <a href=\"option.html#color\" target=\"_blank\">color</a> 分配最内层的颜色,其余层则与其父元素同色。在旭日图中,扇形块的颜色有以下三种设置方式:</p>\n<ul>\n<li>在 <a href=\"option.html#series-sunburst.data.itemStyle\" target=\"_blank\">series.data.itemStyle</a> 中设置每个扇形块的样式;</li>\n<li>在 <a href=\"option.html#series-sunburst.levels.itemStyle\" target=\"_blank\">series.levels.itemStyle</a> 中设置每一层的样式;</li>\n<li>在 <a href=\"option.html#series-sunburst.itemStyle\" target=\"_blank\">series.itemStyle</a> 中设置整个旭日图的样式。</li>\n</ul>\n<p>上述三者的优先级是从高到低的,也就是说,配置了 <code class=\"codespan\">series.data.itemStyle</code> 的扇形块将会覆盖 <code class=\"codespan\">series.levels.itemStyle</code> 和 <code class=\"codespan\">series.itemStyle</code> 的设置。</p>\n<p>下面,我们将整体的颜色设为灰色 <code class=\"codespan\">&#39;#aaa&#39;</code>,将最内层的颜色设为蓝色 <code class=\"codespan\">&#39;blue&#39;</code>,将 <code class=\"codespan\">Aa</code>、<code class=\"codespan\">B</code> 这两块设为红色 <code class=\"codespan\">&#39;red&#39;</code>。</p>\n<pre><code class=\"lang-js\">var option = {\n    series: {\n        type: &#39;sunburst&#39;,\n        data: [{\n            name: &#39;A&#39;,\n            value: 10,\n            children: [{\n                value: 3,\n                name: &#39;Aa&#39;,\n                itemStyle: {\n                    color: &#39;red&#39;\n                }\n            }, {\n                value: 5,\n                name: &#39;Ab&#39;\n            }]\n        }, {\n            name: &#39;B&#39;,\n            children: [{\n                name: &#39;Ba&#39;,\n                value: 4\n            }, {\n                name: &#39;Bb&#39;,\n                value: 2\n            }],\n            itemStyle: {\n                color: &#39;red&#39;\n            }\n        }, {\n            name: &#39;C&#39;,\n            value: 3\n        }],\n        itemStyle: {\n            color: &#39;#aaa&#39;\n        },\n        levels: [{\n            // 留给数据下钻的节点属性\n        }, {\n            itemStyle: {\n                color: &#39;blue&#39;\n            }\n        }]\n    }\n};\n</code></pre>\n<p>效果为:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/sunburst-color&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n\n<h2 id=\"-\">按层配置样式</h2>\n<p>旭日图是一种有层次的结构,为了方便同一层样式的配置,我们提供了 <a href=\"option.html#series-sunburst.levels\" target=\"_blank\">levels</a> 配置项。它是一个数组,其中的第 0 项表示数据下钻后返回上级的图形,其后的每一项分别表示从圆心向外层的层级。</p>\n<p>例如,假设我们没有数据下钻功能,并且希望将最内层的扇形块的颜色设为红色,文字设为蓝色,可以这样设置:</p>\n<pre><code class=\"lang-js\">series: {\n    // ...\n    levels: [\n        {\n            // 留给数据下钻点的空白配置\n        },\n        {\n            // 最靠内测的第一层\n            itemStyle: {\n                color: &#39;red&#39;\n            },\n            label: {\n                color: &#39;blue&#39;\n            }\n        },\n        {\n            // 第二层 ...\n        }\n    ]\n}\n</code></pre>\n<p>在实际使用的过程中,你会发现按层配置样式是一个很常用的功能,能够很大程度上提高配置的效率。</p>\n<h2 id=\"-\">数据下钻</h2>\n<p>旭日图默认支持数据下钻,也就是说,当点击了扇形块之后,将以该扇形块的数据作为根节点,便于进一步了解该数据的细节。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=sunburst-simple&edit=1&reset=1\" width=\"700\" height=\"500\" ></iframe>\n\n\n<p>当数据下钻后,中间会出现一个用于返回上一层的图形,该图形的样式可以通过 <a href=\"option.html#series-sunburst.levels\" target=\"_blank\">levels[0]</a> 配置。</p>\n<p>如果不需要数据下钻功能,可以通过将 <a href=\"option.html#series-sunburst.nodeClick\" target=\"_blank\">nodeClick</a> 设置为 <code class=\"codespan\">false</code> 关闭;或者将其设为 <code class=\"codespan\">&#39;link&#39;</code>,并将 <a href=\"option.html#series-sunburst.data.link\" target=\"_blank\">data.link</a> 设为点击扇形块对应打开的链接。</p>\n<h2 id=\"-\">高亮相关扇形块</h2>\n<p>旭日图支持鼠标移动到某扇形块时,高亮相关数据块的操作,可以通过设置 <a href=\"option.html#series-sunburst.highlightPolicy\" target=\"_blank\">highlightPolicy</a>,包括以下几种高亮方式:</p>\n<ul>\n<li><code class=\"codespan\">&#39;descendant&#39;</code>(默认值):高亮鼠标移动所在扇形块与其后代元素;</li>\n<li><code class=\"codespan\">&#39;ancestor&#39;</code>:高亮鼠标所在扇形块与其祖先元素;</li>\n<li><code class=\"codespan\">&#39;self&#39;</code>:仅高亮鼠标所在扇形块;</li>\n<li><code class=\"codespan\">&#39;none&#39;</code>:不会淡化(downplay)其他元素。</li>\n</ul>\n<p>上面提到的“高亮”,对于鼠标所在的扇形块,会使用 <code class=\"codespan\">emphasis</code> 样式;对于其他相关扇形块,则会使用 <code class=\"codespan\">highlight</code> 样式。通过这种方式,可以很方便地实现突出显示相关数据的需求。</p>\n<p>具体来说,对于配置项:</p>\n<pre><code class=\"lang-js\">itemStyle: {\n    color: &#39;yellow&#39;,\n    borderWidth: 2,\n    emphasis: {\n        color: &#39;red&#39;\n    },\n    highlight: {\n        color: &#39;orange&#39;\n    },\n    downplay: {\n        color: &#39;#ccc&#39;\n    }\n}\n</code></pre>\n<p><code class=\"codespan\">highlightPolicy</code> 为 <code class=\"codespan\">&#39;descendant&#39;</code> 或 <code class=\"codespan\">&#39;ancestor&#39;</code> 的效果分别为:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/sunburst-highlight-descendant&edit=1&reset=1\" width=\"700\" height=\"350\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/sunburst-highlight-ancestor&edit=1&reset=1\" width=\"700\" height=\"350\" ></iframe>\n\n\n<h2 id=\"-\">总结</h2>\n<p>上面的教程主要讲述的是如何入门使用旭日图,感兴趣的用户可以在 <a href=\"option.html#series-sunburst\" target=\"_blank\">配置项手册</a> 查看更完整的文档。在灵活应用这些配置项之后,就能做出丰富多彩的旭日图了!</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=sunburst-book&edit=1&reset=1\" width=\"700\" height=\"600\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=sunburst-drink&edit=1&reset=1\" width=\"700\" height=\"600\" ></iframe>\n\n\n\n\n\n\n\n\n\n"},"自定义系列":{"type":["*"],"description":"<p><a href=\"option.html#series-custom\" target=\"_blank\">自定义系列(custom series)</a>,是一种系列的类型。它把绘制图形元素这一步留给开发者去做,从而开发者能在坐标系中自由绘制出自己需要的图表。</p>\n<p>Apache ECharts<sup>TM</sup> 为什么会要支持 <code class=\"codespan\">自定义系列</code> 呢?</p>\n<p>ECharts 内置支持的图表类型是最常见的图表类型,但是图表类型是难于穷举的,有很多小众的需求 echarts 并不能内置的支持。那么就需要提供一种方式来让开发者自己扩展。另一方面,所提供的扩展方式要尽可能得简单,例如图形元素创建和释放、过渡动画、tooltip、<a href=\"option.html#dataZoom\" target=\"_blank\">数据区域缩放(dataZoom)</a>、<a href=\"option.html#visualMap\" target=\"_blank\">视觉映射(visualMap)</a>等功能,尽量在 ECharts 中内置得处理,使开发者不必纠结于这些细节。综上考虑形成了 <a href=\"option.html#series-custom\" target=\"_blank\">自定义系列(custom series)</a>。</p>\n<p><strong>例如,下面的例子使用 custom series 扩展出了 x-range 图:</strong></p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=custom-profile&reset=1&edit=1\" width=\"800\" height=\"500\" ></iframe>\n\n\n<p><strong>更多的例子参见:<a href=\"https://echarts.apache.org/examples/zh/index.html#chart-type-custom\" target=\"_blank\">custom examples</a></strong></p>\n<p>下面来介绍开发者怎么使用 <a href=\"option.html#series-custom\" target=\"_blank\">自定义系列(custom series)</a>。</p>\n<h2 id=\"-renderitem-\">(一)renderItem 方法</h2>\n<p>开发者自定义的图形元素渲染逻辑,是通过书写 <code class=\"codespan\">renderItem</code> 函数实现的,例如:</p>\n<pre><code class=\"lang-js\">var option = {\n    ...,\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function (params, api) {\n            // ...\n        },\n        data: data\n    }]\n}\n</code></pre>\n<p>在渲染阶段,对于 <a href=\"option.html#series-custom.data\" target=\"_blank\">series.data</a> 中的每个数据项(为方便描述,这里称为 <code class=\"codespan\">dataItem</code>),会调用此 <a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> 函数。这个 <code class=\"codespan\">renderItem</code> 函数的职责,就是返回一个(或者一组)<code class=\"codespan\">图形元素定义</code>,<code class=\"codespan\">图形元素定义</code> 中包括图形元素的类型、位置、尺寸、样式等。echarts 会根据这些 <code class=\"codespan\">图形元素定义</code> 来渲染出图形元素。如下的示意:</p>\n<pre><code class=\"lang-js\">var option = {\n    ...,\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function (params, api) {\n            // 对于 data 中的每个 dataItem,都会调用这个 renderItem 函数。\n            // (但是注意,并不一定是按照 data 的顺序调用)\n\n            // 这里进行一些处理,例如,坐标转换。\n            // 这里使用 api.value(0) 取出当前 dataItem 中第一个维度的数值。\n            var categoryIndex = api.value(0);\n            // 这里使用 api.coord(...) 将数值在当前坐标系中转换成为屏幕上的点的像素值。\n            var startPoint = api.coord([api.value(1), categoryIndex]);\n            var endPoint = api.coord([api.value(2), categoryIndex]);\n            // 这里使用 api.size(...) 获得 Y 轴上数值范围为 1 的一段所对应的像素长度。\n            var height = api.size([0, 1])[1] * 0.6;\n\n            // shape 属性描述了这个矩形的像素位置和大小。\n            // 其中特殊得用到了 echarts.graphic.clipRectByRect,意思是,\n            // 如果矩形超出了当前坐标系的包围盒,则剪裁这个矩形。\n            // 如果矩形完全被剪掉,会返回 undefined.\n            var rectShape = echarts.graphic.clipRectByRect({\n                // 矩形的位置和大小。\n                x: startPoint[0],\n                y: startPoint[1] - height / 2,\n                width: endPoint[0] - startPoint[0],\n                height: height\n            }, {\n                // 当前坐标系的包围盒。\n                x: params.coordSys.x,\n                y: params.coordSys.y,\n                width: params.coordSys.width,\n                height: params.coordSys.height\n            });\n\n            // 这里返回为这个 dataItem 构建的图形元素定义。\n            return rectShape &amp;&amp; {\n                // 表示这个图形元素是矩形。还可以是 &#39;circle&#39;, &#39;sector&#39;, &#39;polygon&#39; 等等。\n                type: &#39;rect&#39;,\n                shape: rectShape,\n                // 用 api.style(...) 得到默认的样式设置。这个样式设置包含了\n                // option 中 itemStyle 的配置和视觉映射得到的颜色。\n                style: api.style()\n            };\n        },\n        data: [\n            [12, 44, 55, 60], // 这是第一个 dataItem\n            [53, 31, 21, 56], // 这是第二个 dataItem\n            [71, 33, 10, 20], // 这是第三个 dataItem\n            ...\n        ]\n    }]\n}\n</code></pre>\n<p><a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> 函数提供了两个参数:</p>\n<ul>\n<li><a href=\"option.html#series-custom.renderItem.arguments.params\" target=\"_blank\">params</a>:包含了当前数据信息(如 <code class=\"codespan\">seriesIndex</code>、<code class=\"codespan\">dataIndex</code> 等等)和坐标系的信息(如坐标系包围盒的位置和尺寸)。</li>\n<li><a href=\"option.html#series-custom.renderItem.arguments.api\" target=\"_blank\">api</a>:是一些开发者可调用的方法集合(如 <code class=\"codespan\">api.value()</code>、<code class=\"codespan\">api.coord()</code>)。</li>\n</ul>\n<p><a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> 函数须返回根据此 <code class=\"codespan\">dataItem</code> 绘制出的图形元素的定义信息,参见 <a href=\"option.html#series-custom.renderItem.return\" target=\"_blank\">renderItem.return</a>。</p>\n<p>一般来说,<a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> 函数的主要逻辑,是将 <code class=\"codespan\">dataItem</code> 里的值映射到坐标系上的图形元素。这一般需要用到 <a href=\"option.html#series-custom.renderItem.arguments.api\" target=\"_blank\">renderItem.arguments.api</a> 中的两个函数:</p>\n<ul>\n<li><a href=\"option.html#series-custom.renderItem.arguments.api.value\" target=\"_blank\">api.value(...)</a>,意思是取出 <code class=\"codespan\">dataItem</code> 中的数值。例如 <code class=\"codespan\">api.value(0)</code> 表示取出当前 <code class=\"codespan\">dataItem</code> 中第一个维度的数值。</li>\n<li><a href=\"option.html#series-custom.renderItem.arguments.api.coord\" target=\"_blank\">api.coord(...)</a>,意思是进行坐标转换计算。例如 <code class=\"codespan\">var point = api.coord([api.value(0), api.value(1)])</code> 表示 <code class=\"codespan\">dataItem</code> 中的数值转换成坐标系上的点。</li>\n</ul>\n<p>有时候还需要用到 <a href=\"option.html#series-custom.renderItem.arguments.api.size\" target=\"_blank\">api.size(...)</a> 函数,表示得到坐标系上一段数值范围对应的长度。</p>\n<p>返回值中样式的设置可以使用 <a href=\"option.html#series-custom.renderItem.arguments.api.style\" target=\"_blank\">api.style(...)</a> 函数,他能得到 <a href=\"option.html#series-custom.itemStyle\" target=\"_blank\">series.itemStyle</a> 中定义的样式信息,以及视觉映射的样式信息。也可以用这种方式覆盖这些样式信息:<code class=\"codespan\">api.style({fill: &#39;green&#39;, stroke: &#39;yellow&#39;})</code>。</p>\n<p>书写完 <code class=\"codespan\">renderItem</code> 方法后,自定义系列的 90% 工作就做完了。剩下的是一些精化工作。</p>\n<h2 id=\"-\">(二)使坐标轴的范围自适应数据范围</h2>\n<p>在 <a href=\"option.html#grid\" target=\"_blank\">直角坐标系(grid)</a>、<a href=\"option.html#polar\" target=\"_blank\">极坐标系(polar)</a> 中都有坐标轴。坐标轴的刻度范围需要自适应当前显示出的数据的范围,否则绘制出的图形会超出去。所以,例如,在 <a href=\"option.html#grid\" target=\"_blank\">直角坐标系(grid)</a> 中,使用自定义系列的开发者,需要设定,<code class=\"codespan\">data</code> 中的哪些维度会对应到 <code class=\"codespan\">x</code> 轴上,哪些维度会对应到 <code class=\"codespan\">y</code> 轴上。这件事通过 <a href=\"option.html#series-custom.encode\" target=\"_blank\">encode</a> 来设定。例如:</p>\n<pre><code class=\"lang-js\">option = {\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            ...\n        },\n        encode: {\n            // data 中『维度1』和『维度2』对应到 X 轴\n            x: [1, 2],\n            // data 中『维度0』对应到 Y 轴\n            y: 0\n        },\n        data: [\n            // 维度0  维度1  维度2  维度3\n            [   12,   44,   55,   60   ], // 这是第一个 dataItem\n            [   53,   31,   21,   56   ], // 这是第二个 dataItem\n            [   71,   33,   10,   20   ], // 这是第三个 dataItem\n            ...\n        ]\n    }]\n};\n</code></pre>\n<h2 id=\"-tooltip\">(三)设定 tooltip</h2>\n<p>当然,使用 <a href=\"option.html#tooltip.formatter\" target=\"_blank\">tooltip.formatter</a> 可以任意定制 tooltip 中的内容。但是还有更简单的方法,通过<a href=\"option.html#series-custom.encode\" target=\"_blank\">encode</a> 和 <a href=\"option.html#series-custom.dimensions\" target=\"_blank\">dimensions</a> 来设定:</p>\n<pre><code class=\"lang-js\">option = {\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            ...\n        },\n        encode: {\n            x: [1, 2],\n            y: 0,\n            // 表示『维度2』和『维度3』要显示到 tooltip 中。\n            tooltip: [2, 3]\n        },\n        // 表示给『维度2』和『维度3』分别取名为『年龄』和『满意度』,显示到 tooltip 中。\n        dimensions: [null, null, &#39;年龄&#39;, &#39;满意度&#39;],\n        data: [\n            // 维度0  维度1  维度2  维度3\n            [   12,   44,   55,   60   ], // 这是第一个 dataItem\n            [   53,   31,   21,   56   ], // 这是第二个 dataItem\n            [   71,   33,   10,   20   ], // 这是第三个 dataItem\n            ...\n        ]\n    }]\n};\n</code></pre>\n<p><br>\n<br>\n<br></p>\n<hr>\n<p>上面,一个简单的 custome series 例子完成了。</p>\n<p>下面介绍几个其他细节要点。</p>\n<h2 id=\"-\">(四)超出坐标系范围的截取</h2>\n<p>与 <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a> 结合使用的时候,常常使用会设置 <a href=\"option.html#dataZoom.filterMode\" target=\"_blank\">dataZoom.filterMode</a> 为 &#39;weakFilter&#39;。这个设置的意思是:当 <code class=\"codespan\">dataItem</code> 部分超出坐标系边界的时候,<code class=\"codespan\">dataItem</code> 不会整体被过滤掉。例如:</p>\n<pre><code class=\"lang-js\">option = {\n    dataZoom: {\n        xAxisIndex: 0,\n        filterMode: &#39;weakFilter&#39;\n    },\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            ...\n        },\n        encode: {\n            // data 中『维度1』和『维度2』对应到 X 轴\n            x: [1, 2],\n            y: 0\n        },\n        data: [\n            // 维度0  维度1  维度2  维度3\n            [   12,   44,   55,   60   ], // 这是第一个 dataItem\n            [   53,   31,   21,   56   ], // 这是第二个 dataItem\n            [   71,   33,   10,   20   ], // 这是第三个 dataItem\n            ...\n        ]\n    }]\n};\n</code></pre>\n<p>在这个例子中,『维度1』和『维度2』对应到 X 轴,<code class=\"codespan\">dataZoom</code> 组件控制 X 轴的缩放。假如在缩放的过程中,某个 dataItem 的『维度1』超出了 X 轴的范围,『维度2』还在 X 轴的范围中,那么只要设置 <code class=\"codespan\">dataZoom.filterMode = &#39;weakFilter&#39;</code>,这个 dataItem 就不会被过滤掉,从而还能够使用 <code class=\"codespan\">renderItem</code> 绘制图形(可以使用上面提到过的 <code class=\"codespan\">echarts.graphic.clipRectByRect</code> 把图形绘制成被坐标系剪裁过的样子)。参见上面提到过的例子:<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=custom-profile\" target=\"_blank\">Profile</a></p>\n<h2 id=\"-dataindex\">(五)关于 dataIndex</h2>\n<p>开发者如果使用到的话应注意,<a href=\"option.html#series-custom.renderItem.arguments.params\" target=\"_blank\">renderItem.arguments.params</a> 中的 <code class=\"codespan\">dataIndex</code> 和 <code class=\"codespan\">dataIndexInside</code> 是有区别的:</p>\n<ul>\n<li><code class=\"codespan\">dataIndex</code> 指的 <code class=\"codespan\">dataItem</code> 在原始数据中的 index。</li>\n<li><code class=\"codespan\">dataIndexInside</code> 指的是 <code class=\"codespan\">dataItem</code> 在当前数据窗口(参见 <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a>)中的 index。</li>\n</ul>\n<p><a href=\"option.html#series-custom.renderItem.arguments.api\" target=\"_blank\">renderItem.arguments.api</a> 中使用的参数都是 <code class=\"codespan\">dataIndexInside</code> 而非 <code class=\"codespan\">dataIndex</code>,因为从 <code class=\"codespan\">dataIndex</code> 转换成 <code class=\"codespan\">dataIndexInside</code> 需要时间开销。</p>\n<h2 id=\"-\">(六)事件监听</h2>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: {\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            // ...\n            return {\n                type: &#39;group&#39;,\n                children: [{\n                    type: &#39;circle&#39;\n                    // ...\n                }, {\n                    type: &#39;circle&#39;,\n                    name: &#39;aaa&#39;,\n                    // 用户指定的信息,可以在 event handler 访问到。\n                    info: 12345,\n                    // ...\n                }]\n            };\n        }\n    }\n});\nchart.on(&#39;click&#39;, {element: &#39;aaa&#39;}, function (params) {\n    // 当 name 为 &#39;aaa&#39; 的图形元素被点击时,此回调被触发。\n    console.log(params.info);\n});\n</code></pre>\n<h2 id=\"-\">(七)自定义矢量图形</h2>\n<p>自定义系列能支持使用 <a href=\"http://www.w3.org/TR/SVG/paths.html#PathData\" target=\"_blank\">SVG PathData</a> 定义矢量路径。从而可以使用矢量图工具中做出的图形。参见:<a href=\"option.html#series-custom.renderItem.return_path\" target=\"_blank\">path</a>,以及例子:<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=custom-calendar-icon\" target=\"_blank\">icons</a> 和 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=custom-gantt-flight\" target=\"_blank\">shapes</a>。</p>\n<p><br></p>\n<p><strong>更多的自定义系列的例子参见:<a href=\"https://echarts.apache.org/examples/zh/index.html#chart-type-custom\" target=\"_blank\">custom examples</a></strong></p>\n"},"富文本标签":{"type":["*"],"description":"<p>在许多地方(如图、轴的标签等)都可以使用富文本标签。例如:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=pie-rich-text&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=treemap-obama&edit=1&reset=1\" width=\"800\" height=\"550\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=bar-rich-text&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n<p><br></p>\n<p>其他一些例子:\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=map-labels&amp;edit=1&amp;reset=1\" target=\"_blank\">Map Labels</a>,\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=pie-nest&amp;edit=1&amp;reset=1\" target=\"_blank\">Pie Labels</a>,\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=gauge-car&amp;edit=1&amp;reset=1\" target=\"_blank\">Gauge</a>.</p>\n<p><br></p>\n<p>原先 Apache ECharts<sup>TM</sup> 中的文本标签,只能对整块统一进行样式设置,并且仅仅支持颜色和字体的设置,从而导致不易于制作表达能力更强的文字描述信息。</p>\n<p>echarts v3.7 以后,支持了富文本标签,能够:</p>\n<ul>\n<li>定制文本块整体的样式(如背景、边框、阴影等)、位置、旋转等。</li>\n<li>对文本块中个别片段定义样式(如颜色、字体、高宽、背景、阴影等)、对齐方式等。</li>\n<li>在文本中使用图片做小图标或者背景。</li>\n<li>特定组合以上的规则,可以做出简单表格、分割线等效果。</li>\n</ul>\n<p>开始下面的介绍之前,先说明一下下面会使用的两个名词的含义:</p>\n<ul>\n<li>文本块(Text Block):文本标签块整体。</li>\n<li>文本片段(Text fragment):文本标签块中的部分文本。</li>\n</ul>\n<p>如下图示例:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/text-block-fragment&edit=1&reset=1\" width=\"340\" height=\"240\" ></iframe>\n\n\n\n<h2 id=\"-\">文本样式相关的配置项</h2>\n<p>echarts 提供了丰富的文本标签配置项,包括:</p>\n<ul>\n<li>字体基本样式设置:<code class=\"codespan\">fontStyle</code>、<code class=\"codespan\">fontWeight</code>、<code class=\"codespan\">fontSize</code>、<code class=\"codespan\">fontFamily</code>。</li>\n<li>文字颜色:<code class=\"codespan\">color</code>。</li>\n<li>文字描边:<code class=\"codespan\">textBorderColor</code>、<code class=\"codespan\">textBorderWidth</code>。</li>\n<li>文字阴影:<code class=\"codespan\">textShadowColor</code>、<code class=\"codespan\">textShadowBlur</code>、<code class=\"codespan\">textShadowOffsetX</code>、<code class=\"codespan\">textShadowOffsetY</code>。</li>\n<li>文本块或文本片段大小:<code class=\"codespan\">lineHeight</code>、<code class=\"codespan\">width</code>、<code class=\"codespan\">height</code>、<code class=\"codespan\">padding</code>。</li>\n<li>文本块或文本片段的对齐:<code class=\"codespan\">align</code>、<code class=\"codespan\">verticalAlign</code>。</li>\n<li>文本块或文本片段的边框、背景(颜色或图片):<code class=\"codespan\">backgroundColor</code>、<code class=\"codespan\">borderColor</code>、<code class=\"codespan\">borderWidth</code>、<code class=\"codespan\">borderRadius</code>。</li>\n<li>文本块或文本片段的阴影:<code class=\"codespan\">shadowColor</code>、<code class=\"codespan\">shadowBlur</code>、<code class=\"codespan\">shadowOffsetX</code>、<code class=\"codespan\">shadowOffsetY</code>。</li>\n<li>文本块的位置和旋转:<code class=\"codespan\">position</code>、<code class=\"codespan\">distance</code>、<code class=\"codespan\">rotate</code>。</li>\n</ul>\n<p>可以在各处的 <code class=\"codespan\">rich</code> 属性中定义文本片段样式。例如 <a href=\"option.html#series-bar.label.rich\" target=\"_blank\">series-bar.label.rich</a></p>\n<p>例如:</p>\n<pre><code class=\"lang-js\">label: {\n    // 在文本中,可以对部分文本采用 rich 中定义样式。\n    // 这里需要在文本中使用标记符号:\n    // `{styleName|text content text content}` 标记样式名。\n    // 注意,换行仍是使用 &#39;\\n&#39;。\n    formatter: [\n        &#39;{a|这段文本采用样式a}&#39;,\n        &#39;{b|这段文本采用样式b}这段用默认样式{x|这段用样式x}&#39;\n    ].join(&#39;\\n&#39;),\n\n    // 这里是文本块的样式设置:\n    color: &#39;#333&#39;,\n    fontSize: 5,\n    fontFamily: &#39;Arial&#39;,\n    borderWidth: 3,\n    backgroundColor: &#39;#984455&#39;,\n    padding: [3, 10, 10, 5],\n    lineHeight: 20,\n\n    // rich 里是文本片段的样式设置:\n    rich: {\n        a: {\n            color: &#39;red&#39;,\n            lineHeight: 10\n        },\n        b: {\n            backgroundColor: {\n                image: &#39;xxx/xxx.jpg&#39;\n            },\n            height: 40\n        },\n        x: {\n            fontSize: 18,\n            fontFamily: &#39;Microsoft YaHei&#39;,\n            borderColor: &#39;#449933&#39;,\n            borderRadius: 4\n        },\n        ...\n    }\n}\n</code></pre>\n<blockquote>\n<p>注意:如果不定义 <code class=\"codespan\">rich</code>,不能指定文字块的 <code class=\"codespan\">width</code> 和 <code class=\"codespan\">height</code>。</p>\n</blockquote>\n<h2 id=\"-\">文本、文本框、文本片段的基本样式和装饰</h2>\n<p>每个文本可以设置基本的字体样式:<code class=\"codespan\">fontStyle</code>、<code class=\"codespan\">fontWeight</code>、<code class=\"codespan\">fontSize</code>、<code class=\"codespan\">fontFamily</code>。</p>\n<p>可以设置文字的颜色 <code class=\"codespan\">color</code> 和边框的颜色 <code class=\"codespan\">textBorderColor</code>、<code class=\"codespan\">textBorderWidth</code>。</p>\n<p>文本框可以设置边框和背景的样式:<code class=\"codespan\">borderColor</code>、<code class=\"codespan\">borderWidth</code>、<code class=\"codespan\">backgroundColor</code>、<code class=\"codespan\">padding</code>。</p>\n<p>文本片段也可以设置边框和背景的样式:<code class=\"codespan\">borderColor</code>、<code class=\"codespan\">borderWidth</code>、<code class=\"codespan\">backgroundColor</code>、<code class=\"codespan\">padding</code>。</p>\n<p>例如:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/text-options&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n\n<h2 id=\"-\">标签的位置</h2>\n<p>对于折线图、柱状图、散点图等,均可以使用 <code class=\"codespan\">label</code> 来设置标签。标签的相对于图形元素的位置,一般使用 <a href=\"option.html#series-scatter.label.position\" target=\"_blank\">label.position</a>、<a href=\"option.html#series-scatter.label.distance\" target=\"_blank\">label.distance</a> 来配置。</p>\n<p>例如:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/label-position&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n<blockquote>\n<p>注意:<code class=\"codespan\">position</code> 在不同的图中可取值有所不同。<code class=\"codespan\">distance</code> 并不是在每个图中都支持。详情请参见 <a href=\"option.html\" target=\"_blank\">option 文档</a>。</p>\n</blockquote>\n<h2 id=\"-\">标签的旋转</h2>\n<p>某些图中,为了能有足够长的空间来显示标签,需要对标签进行旋转。例如:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=bar-label-rotation&edit=1&reset=1\" width=\"900\" height=\"500\" ></iframe>\n\n\n<p>这种场景下,可以结合 <a href=\"option.html#series-bar.label.align\" target=\"_blank\">align</a> 和 <a href=\"option.html#series-bar.label.verticalAlign\" target=\"_blank\">verticalAlign</a> 来调整标签位置。</p>\n<p>注意,逻辑是,先使用 <code class=\"codespan\">align</code> 和 <code class=\"codespan\">verticalAlign</code> 定位,再旋转。</p>\n<h2 id=\"-\">文本片段的排版和对齐</h2>\n<p>关于排版方式,每个文本片段,可以想象成 CSS 中的 <code class=\"codespan\">inline-block</code>,在文档流中按行放置。</p>\n<p>每个文本片段的内容盒尺寸(<code class=\"codespan\">content box size</code>),默认是根据文字大小决定的。但是,也可以设置 <code class=\"codespan\">width</code>、<code class=\"codespan\">height</code> 来强制指定,虽然一般不会这么做(参见下文)。文本片段的边框盒尺寸(<code class=\"codespan\">border box size</code>),由上述本身尺寸,加上文本片段的 <code class=\"codespan\">padding</code> 来得到。</p>\n<p>只有 <code class=\"codespan\">&#39;\\n&#39;</code> 是换行符,能导致换行。</p>\n<p>一行内,会有多个文本片段。每行的实际高度,由 <code class=\"codespan\">lineHeight</code> 最大的文本片段决定。文本片段的 <code class=\"codespan\">lineHeight</code> 可直接在 <code class=\"codespan\">rich</code> 中指定,也可以在 <code class=\"codespan\">rich</code> 的父层级中统一指定而采用到 <code class=\"codespan\">rich</code> 的所有项中,如果都不指定,则取文本片段的边框盒尺寸(<code class=\"codespan\">border box size</code>)。</p>\n<p>在一行的 <code class=\"codespan\">lineHeight</code> 被决定后,一行内,文本片段的竖直位置,由文本片段的 <code class=\"codespan\">verticalAlign</code> 来指定(这里和 CSS 中的规则稍有不同):</p>\n<ul>\n<li><code class=\"codespan\">&#39;bottom&#39;</code>:文本片段的盒的底边贴住行底。</li>\n<li><code class=\"codespan\">&#39;top&#39;</code>:文本片段的盒的顶边贴住行顶。</li>\n<li><code class=\"codespan\">&#39;middle&#39;</code>:居行中。</li>\n</ul>\n<p>文本块的宽度,可以直接由文本块的 <code class=\"codespan\">width</code> 指定,否则,由最长的行决定。宽度决定后,在一行中进行文本片段的放置。文本片段的 <code class=\"codespan\">align</code> 决定了文本片段在行中的水平位置:</p>\n<ul>\n<li>首先,从左向右连续紧靠放置 <code class=\"codespan\">align</code> 为 <code class=\"codespan\">&#39;left&#39;</code> 的文本片段盒。</li>\n<li>然后,从右向左连续紧靠放置 <code class=\"codespan\">align</code> 为 <code class=\"codespan\">&#39;right&#39;</code> 的文本片段盒。</li>\n<li>最后,剩余的没处理的文本片段盒,紧贴着,在中间剩余的区域中居中放置。</li>\n</ul>\n<p>关于文字在文本片段盒中的位置:</p>\n<ul>\n<li>如果 <code class=\"codespan\">align</code> 为 <code class=\"codespan\">&#39;center&#39;</code>,则文字在文本片段盒中是居中的。</li>\n<li>如果 <code class=\"codespan\">align</code> 为 <code class=\"codespan\">&#39;left&#39;</code>,则文字在文本片段盒中是居左的。</li>\n<li>如果 <code class=\"codespan\">align</code> 为 <code class=\"codespan\">&#39;right&#39;</code>,则文字在文本片段盒中是居右的。</li>\n</ul>\n<p>例如:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/text-fragment-align&edit=1&reset=1\" width=\"800\" height=\"220\" ></iframe>\n\n\n\n<h2 id=\"-\">特殊效果:图标、分割线、标题块、简单表格</h2>\n<p>看下面的例子:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/title-block&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n<p>文本片段的 <code class=\"codespan\">backgroundColor</code> 可以指定为图片后,就可以在文本中使用图标了:</p>\n<pre><code class=\"lang-js\">rich: {\n    Sunny: {\n        // 这样设定 backgroundColor 就可以是图片了。\n        backgroundColor: {\n            image: &#39;./data/asset/img/weather/sunny_128.png&#39;\n        },\n        // 可以只指定图片的高度,从而图片的宽度根据图片的长宽比自动得到。\n        height: 30\n    }\n}\n</code></pre>\n<p>分割线实际是用 border 实现的:</p>\n<pre><code class=\"lang-js\">rich: {\n    hr: {\n        borderColor: &#39;#777&#39;,\n        // 这里把 width 设置为 &#39;100%&#39;,表示分割线的长度充满文本块。\n        // 注意,这里是文本块内容盒(content box)的 100%,而不包含 padding。\n        // 虽然这和 CSS 相关的定义有所不同,但是在这类场景中更加方便。\n        width: &#39;100%&#39;,\n        borderWidth: 0.5,\n        height: 0\n    }\n}\n</code></pre>\n<p>标题块是使用 <code class=\"codespan\">backgroundColor</code> 实现的:</p>\n<pre><code class=\"lang-js\">// 标题文字居左\nformatter: &#39;{titleBg|Left Title}&#39;,\nrich: {\n    titleBg: {\n        backgroundColor: &#39;#000&#39;,\n        height: 30,\n        borderRadius: [5, 5, 0, 0],\n        padding: [0, 10, 0, 10],\n        width: &#39;100%&#39;,\n        color: &#39;#eee&#39;\n    }\n}\n\n// 标题文字居中。\n// 这个实现有些 tricky,但是,能够不引入更复杂的排版规则而实现这个效果。\nformatter: &#39;{tc|Center Title}{titleBg|}&#39;,\nrich: {\n    titleBg: {\n        align: &#39;right&#39;,\n        backgroundColor: &#39;#000&#39;,\n        height: 30,\n        borderRadius: [5, 5, 0, 0],\n        padding: [0, 10, 0, 10],\n        width: &#39;100%&#39;,\n        color: &#39;#eee&#39;\n    }\n}\n</code></pre>\n<p>简单表格的设定,其实就是给不同行上纵向对应的文本片段设定同样的宽度就可以了。参见本文最开始的 <a href=\"https://echarts.apache.org/examples/zh/view.html?c=pie-rich-text&amp;edit=1&amp;reset=1\" target=\"_blank\">例子</a>。</p>\n"},"服务端渲染":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> 可以在服务端进行渲染。例如 <a href=\"https://echarts.apache.org/examples/zh/index.html\" target=\"_blank\">官方示例</a> 里的一个个小截图,就是在服务端预生成出来的。</p>\n<p>服务端渲染可以使用流行的 headless 环境,例如 <a href=\"https://github.com/GoogleChrome/puppeteer\" target=\"_blank\">puppeteer</a>、<a href=\"https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md\" target=\"_blank\">headless chrome</a>、<a href=\"https://github.com/Automattic/node-canvas\" target=\"_blank\">node-canvas</a>、<a href=\"https://github.com/jsdom/jsdom\" target=\"_blank\">jsdom</a>、<a href=\"http://phantomjs.org/\" target=\"_blank\">PhantomJS</a> 等。</p>\n<p>这是一些社区贡献的 echarts 服务端渲染方案:</p>\n<ul>\n<li><a href=\"https://github.com/hellosean1025/node-echarts\" target=\"_blank\">https://github.com/hellosean1025/node-echarts</a></li>\n<li><a href=\"https://github.com/chfw/echarts-scrappeteer\" target=\"_blank\">https://github.com/chfw/echarts-scrappeteer</a></li>\n<li><a href=\"https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js\" target=\"_blank\">https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js</a></li>\n<li><a href=\"https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73\" target=\"_blank\">https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73</a></li>\n</ul>\n"},"使用 Canvas 或者 SVG 渲染":{"type":["*"],"description":"<p>浏览器端图表库大多会选择 SVG 或者 Canvas 进行渲染。对于绘制图表来说,这两种技术往往是可替换的,效果相近。但是在一些场景中,他们的表现和能力又有一定差异。于是,对它们的选择取舍,就成为了一个一直存在的不易有标准答案的话题。</p>\n<p>Apache ECharts<sup>TM</sup> 从初始一直使用 Canvas 绘制图表(除了对 IE8- 使用 VML)。而 <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">ECharts v4.0</a> 发布了 SVG 渲染器,从而提供了一种新的选择。只须在初始化一个图表实例时,设置 <a href=\"api.html#echarts.init\" target=\"_blank\">renderer 参数</a> 为 <code class=\"codespan\">&#39;canvas&#39;</code> 或 <code class=\"codespan\">&#39;svg&#39;</code> 即可指定渲染器,比较方便。</p>\n<blockquote>\n<p>SVG 和 Canvas 这两种使用方式差异很大的技术,能够做到同时被透明支持,主要归功于 ECharts 底层库 <a href=\"https://github.com/ecomfe/zrender\" target=\"_blank\">ZRender</a> 的抽象和实现,形成可互换的 SVG 渲染器和 Canvas 渲染器。</p>\n</blockquote>\n<h2 id=\"-\">选择哪种渲染器</h2>\n<p>一般来说,Canvas 更适合绘制图形元素数量非常大(这一般是由数据量大导致)的图表(如热力图、地理坐标系或平行坐标系上的大规模线图或散点图等),也利于实现某些视觉 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=lines-bmap-effect\" target=\"_blank\">特效</a>。但是,在不少场景中,SVG 具有重要的优势:它的内存占用更低(这对移动端尤其重要)、渲染性能略高、并且用户使用浏览器内置的缩放功能时不会模糊。例如,我们在一些硬件环境中分别使用 Canvas 渲染器和 SVG 渲染器绘制中等数据量的折、柱、饼,统计初始动画阶段的帧率,得到了一个性能对比图:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/canvas-vs-svg&reset=1\" width=\"90%\" height=\"400\" ></iframe>\n\n\n<p>上图显示出,在这些场景中,SVG 渲染器相比 Canvas 渲染器在移动端的总体表现更好。当然,这个实验并非是全面的评测,在另一些数据量较大或者有图表交互动画的场景中,目前的 SVG 渲染器的性能还比不过 Canvas 渲染器。但是同时有这两个选项,为开发者们根据自己的情况优化性能提供了更广阔的空间。</p>\n<p>选择哪种渲染器,我们可以根据软硬件环境、数据量、功能需求综合考虑。</p>\n<ul>\n<li>在软硬件环境较好,数据量不大的场景下(例如 PC 端做商务报表),两种渲染器都可以适用,并不需要太多纠结。</li>\n<li>在环境较差,出现性能问题需要优化的场景下,可以通过试验来确定使用哪种渲染器。比如有这些经验:<ul>\n<li>在须要创建很多 ECharts 实例且浏览器易崩溃的情况下(可能是因为 Canvas 数量多导致内存占用超出手机承受能力),可以使用 SVG 渲染器来进行改善。大略得说,如果图表运行在低端安卓机,或者我们在使用一些特定图表如 <a href=\"https://ecomfe.github.io/echarts-liquidfill/example/\" target=\"_blank\">水球图</a> 等,SVG 渲染器可能效果更好。</li>\n<li>数据量很大、较多交互时,可以选用 Canvas 渲染器。</li>\n</ul>\n</li>\n</ul>\n<p>我们强烈欢迎开发者们 <a href=\"https://github.com/apache/echarts/issues/new\" target=\"_blank\">反馈</a> 给我们使用的体验和场景,帮助我们更好的做优化。</p>\n<p>注:除了某些特殊的渲染可能依赖 Canvas:如<a href=\"option.html#series-lines.effect\" target=\"_blank\">炫光尾迹特效</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=heatmap-bmap\" target=\"_blank\">带有混合效果的热力图</a>等,绝大部分功能 SVG 都是支持的。此外,目前的 SVG 版中,富文本、材质功能尚未实现。</p>\n<h2 id=\"-\">如何使用渲染器</h2>\n<p>ECharts 默认使用 Canvas 渲染。如果想使用 SVG 渲染,ECharts 代码中须包括有 SVG 渲染器模块。</p>\n<ul>\n<li>ECharts 的 <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">预构建文件</a> 中,<a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.common.min.js\" target=\"_blank\">常用版</a> 和 <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js\" target=\"_blank\">完整版</a> 已经包含了 SVG 渲染器,可直接使用。而 <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.simple.min.js\" target=\"_blank\">精简版</a> 没有包括。</li>\n<li>如果 <a href=\"https://echarts.apache.org/zh/builder.html\" target=\"_blank\">在线自定义构建 ECharts</a>,则需要勾上页面下方的 “SVG 渲染”。</li>\n<li>如果 <a href=\"tutorial.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9E%84%E5%BB%BA%20ECharts\" target=\"_blank\">线下自定义构建 ECharts</a>,则须引入 SVG 渲染器模块,即:</li>\n</ul>\n<pre><code class=\"lang-js\">import &#39;zrender/lib/svg/svg&#39;;\n</code></pre>\n<p>然后,我们就可以在代码中,初始化图表实例时,<a href=\"api.html#echarts.init\" target=\"_blank\">传入参数</a> 选择渲染器类型:</p>\n<pre><code class=\"lang-js\">// 使用 Canvas 渲染器(默认)\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n// 等价于:\nvar chart = echarts.init(containerDom);\n\n// 使用 SVG 渲染器\nvar chart = echarts.init(containerDom, null, {renderer: &#39;svg&#39;});\n</code></pre>\n"},"地理坐标系和地图系列的 SVG 底图":{"type":["*"],"description":"<p>从 <code class=\"codespan\">v5.1.0</code> 开始,ECharts 支持在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 和 <a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a> 中使用 SVG 作为底图。之前只支持 <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a> 格式的底图。</p>\n<p>有了这个功能,ECharts 能在任一种渲染模式(<code class=\"codespan\">canvas</code> 渲染模式和 <code class=\"codespan\">svg</code> 渲染模式)中绘制 SVG 底图,并且能够只用简单的 ECharts 配置项(option)就带来 <a href=\"option.html#geo.roam\" target=\"_blank\">放大</a>、<a href=\"option.html#geo.roam\" target=\"_blank\">平移</a>、<a href=\"option.html#geo.select\" target=\"_blank\">点选(select)</a>、<a href=\"option.html#geo.roam\" target=\"_blank\">高亮强调(emphasis)</a>、<a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">聚焦-淡出(focus-blur)</a>、<a href=\"option.html#geo.label\" target=\"_blank\">标签(label)</a>、<a href=\"option.html#series-map.labelLayout\" target=\"_blank\">标签布局(labelLayout)</a>、<a href=\"option.html#geo.tooltip\" target=\"_blank\">提示框(tooltip)</a> 等特性。ECharts 中的所有在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中可用系列(如 <a href=\"option.html#series-scatter\" target=\"_blank\">散点图(scatter)</a>、<a href=\"option.html#series-effectScatter\" target=\"_blank\">特效散点图(effectScatter)</a>,<a href=\"option.html#series-lines\" target=\"_blank\">路径图(lines)</a>,<a href=\"option.html#series-custom\" target=\"_blank\">自定义系列(custom)</a>)也能显示在 SVG 底图上。</p>\n<p>这些是使用 SVG 底图的例子:</p>\n<p><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-beef-cuts\" target=\"_blank\">庖丁解牛</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-organ\" target=\"_blank\">内脏数据</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-seatmap-flight\" target=\"_blank\">航班选座</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-map\" target=\"_blank\">地图</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">散点图</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-lines\" target=\"_blank\">路径图</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-traffic\" target=\"_blank\">交通</a></p>\n<h2 id=\"-\">基本用法</h2>\n<p>SVG 底图的用法与 <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a> 底图的用法相同。</p>\n<p>如果在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中使用:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/organ.svg&#39;, function (svg) {\n    // 首先向 echarts 注册 SVG 字符串或解析过的 SVG DOM\n    echarts.registerMap(&#39;organ_diagram&#39;, {svg: svg});\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;))。\n    chart.setOption({\n        geo: [{\n            // 引用注册过的底图。\n            map: &#39;organ_diagram&#39;,\n            ...\n        }]\n    });\n});\n</code></pre>\n<p>如果在 <a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a> 中使用:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/beef_cuts.svg&#39;, function (svg) {\n    // 首先向 echarts 注册 SVG 字符串或解析过的 SVG DOM\n    echarts.registerMap(&#39;beef_cuts_diagram&#39;, {svg: svg})。\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;))。\n    chart.setOption({\n        series: {\n            type: &#39;map&#39;,\n            // 引用注册过的底图。\n            map: &#39;beef_cuts_diagram&#39;,\n            ...\n        }\n    });\n});\n</code></pre>\n<h2 id=\"-\">缩放和平移</h2>\n<p><a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a></p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        // 启用缩放和平移。\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p><a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a></p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;map&#39;,\n        // 启用缩放和平移。\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p>参见例子 <a href=\"option.html#geo.roam\" target=\"_blank\">roam</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-map\" target=\"_blank\">SVG 地图</a>。</p>\n<h2 id=\"-\">具名元素</h2>\n<p>如果要控制 SVG 中的某些元素,或者让某些元素能交互,我们首先要在 SVG 中标记这些元素:在这些元素上添加 <code class=\"codespan\">name</code> 属性(下文称此类添加过 <code class=\"codespan\">name</code> 属性的元素为:“具名元素”)。许多功能(如 <a href=\"option.html#geo.select\" target=\"_blank\">select</a>、<a href=\"option.html#geo.emphasis\" target=\"_blank\">emphasis</a>、<a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">focus-blur</a>、<a href=\"option.html#geo.label\" target=\"_blank\">label</a>、<a href=\"option.html#series-map.labelLayout\" target=\"_blank\">labelLayout</a> 和 <a href=\"option.html#geo.tooltip\" target=\"_blank\">tooltip</a> 这类交互相关的功能)都依赖于对元素的命名。</p>\n<p>如下例,我们只在左边的 SVG <code class=\"codespan\">path</code> 上添加名称属性 <code class=\"codespan\">name=&quot;named_rect&quot;</code>:</p>\n<pre><code class=\"lang-xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;\n&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.2&quot; fill-rule=&quot;evenodd&quot; xml:space=&quot;preserve&quot;&gt;\n    &lt;path name=&quot;named_rect&quot; d=&quot;M 0,0 L 0,100 100,100 100,0 Z&quot; fill=&quot;#765&quot; /&gt;\n    &lt;path d=&quot;M 150,0 L 150,100 250,100 250,0 Z&quot; fill=&quot;#567&quot; /&gt;\n&lt;/svg&gt;\n</code></pre>\n<p>这样,鼠标 hover 时能高亮左边的矩形,但是右边的不行。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/geo-svg-named-basic&edit=1&reset=1\" width=\"500\" height=\"200\" ></iframe>\n\n\n<p>我们还可以在 <a href=\"option.html#geo.regions\" target=\"_blank\">geo.regions</a> 中为具名元素指定一些专属配置项:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        regions: [{\n            name: &#39;element_name_1&#39;,\n            itemStyle: { ... }\n        }, {\n            name: &#39;element_name_2&#39;,\n            itemStyle: { ... }\n        }]\n    }\n};\n</code></pre>\n<p>注意:</p>\n<ul>\n<li>只有这些 SVG 元素可以被命名:\n<code class=\"codespan\">rect</code>、<code class=\"codespan\">circle</code>、<code class=\"codespan\">line</code>、<code class=\"codespan\">ellipse</code>、<code class=\"codespan\">polygon</code>、<code class=\"codespan\">polyline</code>、<code class=\"codespan\">path</code>、<code class=\"codespan\">text</code>、<code class=\"codespan\">tspan</code>、<code class=\"codespan\">g</code>。</li>\n<li>支持多个元素以相同的名称命名,这样它们能被同时高亮、选中。</li>\n</ul>\n<h2 id=\"-\">自定义样式</h2>\n<p>虽然 SVG 元素的样式(如颜色、字体、线宽等等)都能直接在 SVG 文件中定义,但 ECharts 也支持在 <code class=\"codespan\">option</code> 中为具名元素定制样式,这能提供不少便利。</p>\n<p>可以在 <a href=\"option.html#geo.itemStyle\" target=\"_blank\">geo.itemStyle</a> 或 <a href=\"option.html#series-map.itemStyle\" target=\"_blank\">series-map.itemStyle</a> 中设置样式(也包括 <code class=\"codespan\">emphasis.itemStyle</code>、<code class=\"codespan\">select.itemStyle</code>、<code class=\"codespan\">blur.itemStyle</code>、<code class=\"codespan\">regions[i].itemStyle</code>、<code class=\"codespan\">regions[i].emphasis.itemStyle</code>、<code class=\"codespan\">regions[i].select.itemStyle</code>、<code class=\"codespan\">regions[i].blur.itemStyle</code>)。也能在这里删除一些具名元素的默认样式(例如,设置 <code class=\"codespan\">emphasis.itemStyle.color: null</code> 后,鼠标 hover 时填充色就不会改变)。</p>\n<p>此外,使用 <a href=\"option.html#series-map\" target=\"_blank\">series-map</a> 时,也可以用 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap 组件</a> 为具名元素赋予样式。参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-beef-cuts\" target=\"_blank\">庖丁解牛</a>。</p>\n<p>注意:\n只有这些具名元素可以在 <code class=\"codespan\">itemStyle</code> 中设置样式:\n<code class=\"codespan\">rect</code>、<code class=\"codespan\">circle</code>、<code class=\"codespan\">line</code>、<code class=\"codespan\">ellipse</code>、<code class=\"codespan\">polygon</code>、<code class=\"codespan\">polyline</code>、<code class=\"codespan\">path</code>。</p>\n<h2 id=\"-select-\">元素的“选中”能力(select)</h2>\n<p>如果想使具名元素能被“选中”,把 <a href=\"option.html#geo.selectedMode\" target=\"_blank\">geo.selectedMode</a> 或 <a href=\"option.html#series-map.selectedMode\" target=\"_blank\">series-map.selectedMode</a> 设置为 <code class=\"codespan\">&#39;single&#39;</code> 或者 <code class=\"codespan\">&#39;multiple&#39;</code> 即可。元素被选中时的样式可以在 <a href=\"option.html#geo.select\" target=\"_blank\">geo.select</a> 或 <a href=\"option.html#series-map.select\" target=\"_blank\">series-map.select</a> 中设定。</p>\n<p>可以通过 <a href=\"api.html#event.geoselectchanged\" target=\"_blank\">geoselectchanged</a> 事件获得所有被选中者的名称,例如:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;geoselectchanged&#39;, function (params) {\n    var selectedNames = params.allSelected[0].name;\n    console.log(&#39;selected&#39;, selectedNames);\n});\n</code></pre>\n<p>参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-seatmap-flight\" target=\"_blank\">航班选座</a>。</p>\n<h2 id=\"-emphasis-focus-blur-\">元素的“高亮强调”(emphasis)和“聚焦-淡出”(focus-blur)</h2>\n<p>具名元素可以自动在鼠标 hover 时有“高亮强调”(emphasis)的能力。</p>\n<p>此外,可以把 <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">geo.emphasis.focus</a> 设置为 <code class=\"codespan\">&#39;self&#39;</code> 来启用 “聚焦-淡出”(focus-blur)功能。也就是,当鼠标 hover 在一个具名元素上时,所有其他元素都会被淡出。</p>\n<p>参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a>。</p>\n<h2 id=\"-tooltip-\">提示框(tooltip)</h2>\n<p>可以在具名元素上启用或禁用提示框(tooltip)功能。</p>\n<pre><code class=\"lang-js\">option = {\n    // 在 option 根部声明 tooltip 以整体开启 tooltip 功能。\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            // 用 `show` 来启用/禁用 geo 上的 tooltip。\n            show: true\n        },\n        regions: [{\n            name: &#39;some_name1&#39;,\n            // 如果需要的话,可以对特定具名元素指定 tooltip 参数。\n            tooltip: {\n                formatter: &#39;一些特殊的提示 1&#39;\n            }\n        }, {\n            name: &#39;some_name2&#39;,\n            tooltip: {\n                formatter: &#39;一些特殊的提示 2&#39;\n            }\n        }]\n    }\n};\n</code></pre>\n<p>如果想单独禁用 geo 上的 tooltip,只需:</p>\n<pre><code class=\"lang-js\">option = {\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            show: false\n        }\n    }\n};\n</code></pre>\n<p>参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-map\" target=\"_blank\">SVG 地图</a>。</p>\n<h2 id=\"-label-\">标签(label)</h2>\n<p>虽然可以直接在 SVG 中定义 <code class=\"codespan\">&lt;text&gt;</code>/<code class=\"codespan\">&lt;tspan&gt;</code> 来显示文本标签,但 ECharts 也支持用 <a href=\"option.html#geo.label\" target=\"_blank\">geo.label</a> 或 <a href=\"option.html#series-map.label\" target=\"_blank\">series-map.label</a> 来设置底图上的标签。</p>\n<p>标签功能默认在鼠标 hover 时是启用的。如果想禁用标签,只需:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        emphasis: {\n            label: {\n                show: false\n            }\n        }\n    }\n};\n</code></pre>\n<p>当想要多个元素共享一个标签时,我们有两种选择:</p>\n<ul>\n<li>将这些元素包裹在一个具名的 <code class=\"codespan\">&lt;g&gt;</code> 中(如 <code class=\"codespan\">&lt;g=&quot;name_a&quot;&gt;</code>)中,这样只会显示一个标签,并且基于 <code class=\"codespan\">&lt;g&gt;</code> 的 <code class=\"codespan\">boundingRect</code> 定位。</li>\n<li>给这些元素起相同的名字(如 <code class=\"codespan\">&lt;path name=&quot;name_b&quot;/&gt;&lt;path name=&quot;name_b&quot;/&gt;</code>),这样每个元素都会显示一个标签,并且会根据每个元素自身显示和定位。</li>\n</ul>\n<p>例如(将鼠标 hover 到元素上能显示标签):</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/geo-svg-label-basic&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n<p>注意:只有这些具名元素可以设置 <code class=\"codespan\">label</code>:\n<code class=\"codespan\">rect</code>、<code class=\"codespan\">circle</code>、<code class=\"codespan\">line</code>、<code class=\"codespan\">ellipse</code>、<code class=\"codespan\">polygon</code>、<code class=\"codespan\">polyline</code>、<code class=\"codespan\">path</code>、<code class=\"codespan\">g</code>。</p>\n<p>标签的用法也参见示例 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a>。</p>\n<h2 id=\"-\">事件</h2>\n<p>可以用如下方式监听具名元素的鼠标事件或者触摸事件:</p>\n<pre><code class=\"lang-js\">// &#39;name1&#39; 是一个 SVG 元素的名字。\nmyChart.on(&#39;click&#39;, { geoIndex: 0, name: &#39;name1&#39; }, function (params) {\n    console.log(params);\n});\n</code></pre>\n<h2 id=\"svg-\">SVG 底图的布局</h2>\n<p>在默认情况下,ECharts 会将 SVG 底图放置在画布的中心。如果需要调整的话,一般只调整 <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>/<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>,偶尔也可能要调整 <code class=\"codespan\">&lt;svg viewBox=&quot;...&quot;&gt;</code>/<a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a>(它们两个的区别是:是否产生剪裁)。在大多数情况下,用这些已经足够了。</p>\n<p>如果要做一些精确的位置定制,那么还得了解下面这些概念。</p>\n<p><a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 和 <a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a> 的布局规则和选项都是一样的。所以下面我们只讲 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a>。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/geo-svg-layout-basic&edit=1&reset=1\" width=\"700\" height=\"550\" ></iframe>\n\n\n<p>上面的例子只有一个 ECharts 画布,其中三个 SVG 展示在六个 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中。同一列中的两个 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 使用相同的 SVG。</p>\n<p>首先,形状的外观是由 SVG 文件本身决定的。也就是说,在上例中,由 <code class=\"codespan\">&lt;circle&gt;</code> 和 <code class=\"codespan\">viewBox</code> 属性决定(<code class=\"codespan\">viewBox</code> 会切割圆形)。可以注意,每一列的形状轮廓都一样(不管它们的位置、大小是否不同和是否被拉伸),因为它们使用的是同一个 SVG。</p>\n<p>其次,用户可以用下面任一组选项,指定 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 的视口(<code class=\"codespan\">view port</code>)的位置和大小(它们的单位都是 echarts 画布的像素,或者百分比值):</p>\n<ul>\n<li><a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>、<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>(最常用)。</li>\n<li><a href=\"option.html#geo.top\" target=\"_blank\">top</a>、<a href=\"option.html#geo.right\" target=\"_blank\">right</a>、<a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>、<a href=\"option.html#geo.left\" target=\"_blank\">left</a>(在上例中使用的是这组)。</li>\n</ul>\n<p>在上例中,六个 <code class=\"codespan\">geo view port</code> 用六个黑色方块表示。</p>\n<p>第三,确定 SVG 的 <code class=\"codespan\">bounding rect</code>。<code class=\"codespan\">bounding rect</code> 由以下方法决定(它们的单位都是 SVG 内部元素的度量单位):</p>\n<ol>\n<li>如果设定了 <a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a>,则用它作 <code class=\"codespan\">bounding rect</code>。</li>\n<li>否则,如果设定了 <code class=\"codespan\">&lt;svg width=&quot;...&quot; height=&quot;...&quot;&gt;</code>,则用 <code class=\"codespan\">[0, 0, width, height]</code> 作为 <code class=\"codespan\">bounding rect</code>。(如果只设定了 <code class=\"codespan\">width</code> 或 <code class=\"codespan\">height</code>,则只使用 <code class=\"codespan\">[0, width]</code> 或 <code class=\"codespan\">[0, height]</code>)。</li>\n<li>否则,如果设定了 <code class=\"codespan\">&lt;svg viewBox=&quot;...&quot;&gt;</code>,则用 <code class=\"codespan\">viewBox</code> 作 <code class=\"codespan\">bounding rect</code>。</li>\n<li>否则,由整个 SVG 所有元素 <code class=\"codespan\">bounding rect</code> 的并集得到最终 <code class=\"codespan\">bounding rect</code>。</li>\n<li>如果设定了 <a href=\"option.html#geo.center\" target=\"_blank\">geo.center</a> 或 <a href=\"option.html#geo.zoom\" target=\"_blank\">geo.zoom</a>,则把上述 <code class=\"codespan\">1~4</code> 得到的 <code class=\"codespan\">bounding rect</code> 进行相应的 <code class=\"codespan\">transform</code>。</li>\n</ol>\n<p><code class=\"codespan\">bounding rect</code> 确定后,会放置到相应的 <code class=\"codespan\">geo view port</code> 里:</p>\n<ul>\n<li>如果用的是 <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>、<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>,<code class=\"codespan\">bounding rect</code> 会置于 <code class=\"codespan\">geo view port</code> 的中心,并尽量填满 <code class=\"codespan\">geo view port</code>(保持长宽比)。</li>\n<li>如果用的是 <a href=\"option.html#geo.top\" target=\"_blank\">top</a>、<a href=\"option.html#geo.right\" target=\"_blank\">right</a>、<a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>、<a href=\"option.html#geo.left\" target=\"_blank\">left</a>,<code class=\"codespan\">bounding rect</code> 会被拉伸,完全填充 <code class=\"codespan\">geo view port</code>。</li>\n</ul>\n<h2 id=\"-svg-\">在 SVG 底图上绘制系列</h2>\n<p><a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>、<a href=\"option.html#series-effectScatter\" target=\"_blank\">effectScatter</a>、<a href=\"option.html#series-lines\" target=\"_blank\">lines</a>、<a href=\"option.html#series-custom\" target=\"_blank\">custom</a> 这些在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中可用的系列都可以在 SVG 底图上定位和显示。</p>\n<p>在这种用法中,<code class=\"codespan\">series.data</code> 的值的单位即为是 SVG 内部元素的度量单位。比如说:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;\n    },\n    series: {\n        type: &#39;effectScatter&#39;,\n        coordinateSystem: &#39;geo&#39;,\n        geoIndex: 0,\n        data: [\n            // SVG local coords.\n            [488.2358421078053, 459.70913833075736],\n            [770.3415644319939, 757.9672194986475],\n            [1180.0329284196291, 743.6141808346214],\n        ]\n    }\n};\n</code></pre>\n<p>另外,有种简便方法可以获得 SVG 的坐标。</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    geo: {\n        map: &#39;some_svg&#39;\n    }\n});\nmyChart.getZr().on(&#39;click&#39;, function (params) {\n    var pixelPoint = [params.offsetX, params.offsetY];\n    var dataPoint = myChart.convertFromPixel({ geoIndex: 0 }, pixelPoint);\n    // 在 SVG 上点击时,坐标会被打印。\n    // 这些坐标可以在 `series.data` 里使用。\n    console.log(dataPoint);\n});\n</code></pre>\n<p>参见示例 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">SVG Scatter</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-lines\" target=\"_blank\">SVG Lines</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-traffic\" target=\"_blank\">SVG Traffic</a>。</p>\n<h2 id=\"-svg-\">暂不支持的 SVG 功能</h2>\n<p>实现一个完整的 SVG 解析器有点困难。虽然已经支持了常用的 SVG 功能,但至少下面列出的这些还没支持:</p>\n<ul>\n<li>翻转(flip)和倾斜(skew)(将在 <code class=\"codespan\">v5.1.2</code> 支持):<ul>\n<li>不支持 <code class=\"codespan\">transform: skew(...)</code>(包括包含 skew 的 <code class=\"codespan\">transform: matrix(...)</code>)。</li>\n<li>不支持当 <code class=\"codespan\">transform: scale(x, y)</code> 中 <code class=\"codespan\">x</code>/<code class=\"codespan\">y</code> 正负不同且有 <code class=\"codespan\">rotate</code>(例如,<code class=\"codespan\">scale: (1, -1), rotate(90)</code>)。</li>\n</ul>\n</li>\n<li>不支持 <code class=\"codespan\">&lt;style&gt;</code> 标签。<ul>\n<li>但内联样式是支持的(例如支持 <code class=\"codespan\">&lt;path style=&quot;color:red&quot; /&gt;</code>)。</li>\n</ul>\n</li>\n<li>单位:<ul>\n<li>只支持 <code class=\"codespan\">px</code>。不支持其他单位如 <code class=\"codespan\">width=&quot;231.65mm&quot;</code>。</li>\n<li>不支持百分比值,如不支持 <code class=\"codespan\">&lt;svg width=&quot;30%&quot; height=&quot;40%&quot;&gt;</code>。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;defs&gt;</code> 标签:<ul>\n<li>只支持 <code class=\"codespan\">&lt;linearGradient&gt;</code>、<code class=\"codespan\">&lt;radialGradient&gt;</code>。</li>\n<li>还不支持在 <code class=\"codespan\">&lt;defs&gt;</code> 中定义其他元素(如 <code class=\"codespan\">&lt;pattern&gt;</code>、<code class=\"codespan\">&lt;path&gt;</code>、...)。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;linearGradient&gt;</code>、<code class=\"codespan\">&lt;radialGradient&gt;</code>:<ul>\n<li>不支持 <code class=\"codespan\">fx</code>、<code class=\"codespan\">fy</code>。</li>\n<li>不支持 <code class=\"codespan\">gradientTransform</code>。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">fill:url(..)</code>, <code class=\"codespan\">stroke:utl(..)</code>:<ul>\n<li>只支持 <code class=\"codespan\">url(#someId)</code>。</li>\n<li>不支持其他 URL 模式,例如不支持:<ul>\n<li><code class=\"codespan\">url(https://example.com/images/myImg.jpg)</code>。</li>\n<li><code class=\"codespan\">url(data:image/png;base64,iRxVB0...)</code>。</li>\n<li><code class=\"codespan\">url(myFont.woff)</code>。</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;switch&gt;</code> 标签:<ul>\n<li><code class=\"codespan\">&lt;switch&gt;</code> 标签内的所有内容都会显示。不支持“切换”功能。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;text&gt;</code>。<ul>\n<li>不支持 <code class=\"codespan\">textPath</code>。</li>\n<li>不支持 <a href=\"https://www.w3.org/TR/SVG/text.html#TermAddressableCharacter\" target=\"_blank\">Addressable character</a>,也就是说:<pre><code class=\"lang-xml\">&lt;!-- 不支持: --&gt;\n&lt;tspan x=&quot;0 4.94 9.89&quot;&gt;abc&lt;/tspan&gt;。\n&lt;!-- 支持: --&gt;\n&lt;tspan x=&quot;0&quot;&gt;A&lt;/tspan&gt;\n&lt;tspan x=&quot;4.94&quot;&gt;b&lt;/tspan&gt;\n&lt;tspan x=&quot;9.89&quot;&gt;C&lt;/tspan&gt;\n</code></pre>\n</li>\n</ul>\n</li>\n</ul>\n"},"在图表中支持无障碍访问":{"type":["*"],"description":"<p>W3C 制定了无障碍富互联网应用规范集(<a href=\"https://www.w3.org/WAI/intro/aria\" target=\"_blank\">WAI-ARIA</a>,the Accessible Rich Internet Applications Suite),致力于使得网页内容和网页应用能够被更多残障人士访问。Apache ECharts<sup>TM</sup> 4.0 遵从这一规范,支持自动根据图表配置项智能生成描述,使得盲人可以在朗读设备的帮助下了解图表内容,让图表可以被更多人群访问。</p>\n<p>默认关闭,需要通过将 <a href=\"option.html#aria.enabled\" target=\"_blank\">aria.enabled</a> 设置为 <code class=\"codespan\">true</code> 开启。开启后,会根据图表、数据、标题等情况,自动智能生成关于图表的描述,用户也可以通过配置项修改描述。</p>\n<p>对于配置项:</p>\n<pre><code class=\"lang-js\">option = {\n    aria: {\n        enabled: true\n    },\n    title: {\n        text: &#39;某站点用户访问来源&#39;,\n        x: &#39;center&#39;\n    },\n    series: [\n        {\n            name: &#39;访问来源&#39;,\n            type: &#39;pie&#39;,\n            data: [\n                { value: 335, name: &#39;直接访问&#39; },\n                { value: 310, name: &#39;邮件营销&#39; },\n                { value: 234, name: &#39;联盟广告&#39; },\n                { value: 135, name: &#39;视频广告&#39; },\n                { value: 1548, name: &#39;搜索引擎&#39; }\n            ]\n        }\n    ]\n};\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/aria-pie&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n<p>生成的图表 DOM 上,会有一个 <code class=\"codespan\">aria-label</code> 属性,在朗读设备的帮助下,盲人能够了解图表的内容。其值为:</p>\n<pre><code>这是一个关于“某站点用户访问来源”的图表。图表类型是饼图,表示访问来源。其数据是——直接访问的数据是335,邮件营销的数据是310,联盟广告的数据是234,视频广告的数据是135,搜索引擎的数据是1548。\n</code></pre><p>默认语言会根据语言包(默认中文)选择,也可以使用配置项自定义模板。</p>\n<p>除此之外,Apache ECharts 5 新增支持贴花纹理,作为颜色的辅助表达,进一步用以区分数据。在 <code class=\"codespan\">aria.enabled</code> 为 <code class=\"codespan\">true</code> 的前提下,将 <code class=\"codespan\">aria.decal.show</code> 设为 <code class=\"codespan\">true</code> 即可采用默认的贴花样式。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/aria-decal-simple&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n<p>下面,我们更具体地介绍这两种无障碍设计的配置方式。</p>\n<h2 id=\"-\">图表描述</h2>\n<h4 id=\"-\">采用整体描述</h4>\n<p>对于有些图表,默认生成的数据点的描述并不足以表现整体的信息。比如下图的散点图,默认生成的描述可以包含数据点的坐标值,但是知道几百几千个点的坐标并不能帮助我们有效地理解图表表达的信息。</p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/aria-example.png\"></p>\n<p>这时候,用户可以通过 <a href=\"option.html#aria.label.description\" target=\"_blank\">aria.label.description</a> 配置项指定图表的整体描述。</p>\n<h4 id=\"-\">定制模板描述</h4>\n<p>除了整体性修改描述之外,我们还提供了生成描述的模板,可以方便地进行细粒度的修改。</p>\n<p>生成描述的基本流程为,如果 <a href=\"option.html#aria.label.show\" target=\"_blank\">aria.label.show</a> 设置为 <code class=\"codespan\">true</code>,则生成无障碍访问描述,否则不生成。如果定义了 <a href=\"option.html#aria.label.description\" target=\"_blank\">aria.label.description</a>,则将其作为图表的完整描述,否则根据模板拼接生成描述。我们提供了默认的生成描述的算法,仅当生成的描述不太合适时,才需要修改这些模板,甚至使用 <code class=\"codespan\">aria.description</code> 完全覆盖。</p>\n<p>使用模板拼接时,先根据是否存在标题 <a href=\"#title.text\">title.text</a> 决定使用 <a href=\"option.html#aria.label.general.withTitle\" target=\"_blank\">aria.label.general.withTitle</a> 还是 <a href=\"option.html#aria.label.general.withoutTitle\" target=\"_blank\">aria.label.general.withoutTitle</a> 作为整体性描述。其中,<code class=\"codespan\">aria.general.withTitle</code> 配置项包括模板变量 <code class=\"codespan\">&#39;{title}&#39;</code>,将会被替换成图表标题。也就是说,如果 <code class=\"codespan\">aria.general.withTitle</code> 被设置为 <code class=\"codespan\">&#39;图表的标题是:{title}。&#39;</code>,则如果包含标题 <code class=\"codespan\">&#39;价格分布图&#39;</code>,这部分的描述为 <code class=\"codespan\">&#39;图表的标题是:价格分布图。&#39;</code>。</p>\n<p>拼接完标题之后,会依次拼接系列的描述(<a href=\"option.html#aria.label.series\" target=\"_blank\">aria.label.series</a>),和每个系列的数据的描述(<a href=\"option.html#aria.label.data\" target=\"_blank\">aria.label.data</a>)。同样,每个模板都有可能包括模板变量,用以替换实际的值。</p>\n<h2 id=\"-\">贴花图案</h2>\n<p>上文介绍了使用默认的贴花图案的方式。如果需要自定义贴花图案,可以使用 <a href=\"option.html#aria.decal.decals\" target=\"_blank\">aria.decal.decals</a> 配置出灵活多变的图案。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/aria-decal&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n<p>更具体的信息请参见 <a href=\"option.html#aria\" target=\"_blank\">ARIA 文档</a>。</p>\n"},"使用 ECharts GL 实现基础的三维可视化":{"type":["*"],"description":"<p>ECharts GL (后面统一简称 GL)为 Apache ECharts<sup>TM</sup> 补充了丰富的三维可视化组件,这篇文章我们会简单介绍如何基于 GL 实现一些常见的三维可视化作品。实际上如果你对 ECharts 有一定了解的话,也可以很快的上手 GL,GL 的配置项完全是按照 ECharts 的标准和上手难度来设计的。</p>\n<p>在看完文章之后,你可以前往 <a href=\"https://echarts.apache.org/examples/zh/index.html#chart-type-globe\" target=\"_blank\">官方示例</a> 和 <a href=\"https://gallery.echartsjs.com/explore.html#tags=echarts-gl\" target=\"_blank\">Gallery</a> 去了解更多使用 GL 制作的示例,对于文章中我们没法解释到的代码,也可以前往 <a href=\"option-gl.html\" target=\"_blank\">GL 配置项手册</a> 查看具体的配置项使用方法。</p>\n<h2 id=\"-echarts-gl\">如何下载和引入 ECharts GL</h2>\n<p>为了不再增加已经很大了的 ECharts 完整版的体积,我们将 GL 作为扩展包的形式提供,和诸如水球图这样的扩展类似,如果要使用 GL 里的各种组件,只需要在引入<code class=\"codespan\">echarts.min.js</code>的基础上再引入一个<code class=\"codespan\">echarts-gl.min.js</code>。你可以从 <a href=\"https://echarts.apache.org/zh/download.html\" target=\"_blank\">官网</a> 下载最新版的 GL,然后在页面中通过标签引入:</p>\n<pre><code class=\"lang-html\">&lt;script src=&quot;lib/echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;script src=&quot;lib/echarts-gl.min.js&quot;&gt;&lt;/script&gt;\n</code></pre>\n<p>如果你的项目使用 webpack 或者 rollup 来打包代码的话,也可以通过 npm 安装后引入</p>\n<pre><code class=\"lang-bash\">npm install echarts\nnpm install echarts-gl\n</code></pre>\n<pre><code class=\"lang-js\">// 通过 ES6 的 import 语法引入 ECharts 和 ECharts GL\nimport echarts from &#39;echarts&#39;;\nimport &#39;echarts-gl&#39;;\n</code></pre>\n<h2 id=\"-\">声明一个基础的三维笛卡尔坐标系</h2>\n<p>引入 ECharts 和 ECharts GL 后,我们先来声明一个基础的三维笛卡尔坐标系用于绘制三维的散点图,柱状图,曲面图等常见的统计图。</p>\n<p>在 ECharts 中我们有 <a href=\"option.html#grid\" target=\"_blank\">grid</a> 组件用于提供一个矩形的区域放置一个二维的笛卡尔坐标系,以及笛卡尔坐标系上上的 x 轴(<a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a>)和 y 轴(<a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a>)。对于三维的笛卡尔坐标系,我们在 GL 中提供了 <a href=\"option-gl.html#grid3D\" target=\"_blank\">grid3D</a> 组件用于划分一块三维的笛卡尔空间,以及放置在这个 <a href=\"option-gl.html#grid3D\" target=\"_blank\">grid3D</a> 上的 <a href=\"option-gl.html#xAxis3D\" target=\"_blank\">xAxis3D</a>, <a href=\"option-gl.html#yAxis3D\" target=\"_blank\">yAxis3D</a>, <a href=\"option-gl.html#zAxis3D\" target=\"_blank\">zAxis3D</a>。</p>\n<blockquote>\n<p>小提示:在 GL 中我们对除了 globe 之外所有的三维组件和系列都加了 3D 的后缀用以区分,例如三维的散点图就是 scatter3D,三维的地图就是 map3D 等等。</p>\n</blockquote>\n<p>下面这段代码就声明了一个最简单的三维笛卡尔坐标系</p>\n<pre><code class=\"lang-js\">var option = {\n    // 需要注意的是我们不能跟 grid 一样省略 grid3D\n    grid3D: {},\n    // 默认情况下, x, y, z 分别是从 0 到 1 的数值轴\n    xAxis3D: {},\n    yAxis3D: {},\n    zAxis3D: {}\n}\n</code></pre>\n<p>效果如下:</p>\n<p><img width=\"\" height=\"auto\" src=\"documents/asset/img/gl/grid3D-basic.png\"></p>\n<p>跟二维的笛卡尔坐标系一样,每个轴都会有多种类型,默认是数值轴,如果需要是类目轴的话,简单的设置为 <code class=\"codespan\">type: &#39;category&#39;</code>就行了。</p>\n<h2 id=\"-\">绘制三维的散点图</h2>\n<p>声明好笛卡尔坐标系后,我们先试试用一份程序生成的正态分布数据在这个三维的笛卡尔坐标系中画散点图。</p>\n<p>下面这段是生成正态分布数据的代码,你可以先不用关心这段代码是怎么工作的,只需要知道它生成了一份三维的正态分布数据放在<code class=\"codespan\">data</code>数组中。</p>\n<pre><code class=\"lang-js\">function makeGaussian(amplitude, x0, y0, sigmaX, sigmaY) {\n    return function (amplitude, x0, y0, sigmaX, sigmaY, x, y) {\n        var exponent = -(\n                ( Math.pow(x - x0, 2) / (2 * Math.pow(sigmaX, 2)))\n                + ( Math.pow(y - y0, 2) / (2 * Math.pow(sigmaY, 2)))\n            );\n        return amplitude * Math.pow(Math.E, exponent);\n    }.bind(null, amplitude, x0, y0, sigmaX, sigmaY);\n}\n// 创建一个高斯分布函数\nvar gaussian = makeGaussian(50, 0, 0, 20, 20);\n\nvar data = [];\nfor (var i = 0; i &lt; 1000; i++) {\n    // x, y 随机分布\n    var x = Math.random() * 100 - 50;\n    var y = Math.random() * 100 - 50;\n    var z = gaussian(x, y);\n    data.push([x, y, z]);\n}\n</code></pre>\n<p>生成的正态分布的数据大概长这样:</p>\n<pre><code class=\"lang-js\">[\n  [46.74395071259907, -33.88391024738553, 0.7754030099768191],\n  [-18.45302873809771, 16.88114775416834, 22.87772504105404],\n  [2.9908128281121336, -0.027699444453467947, 49.44400635911886],\n  ...\n]\n</code></pre>\n<p>每一项都包含了<code class=\"codespan\">x</code>, <code class=\"codespan\">y</code>, <code class=\"codespan\">z</code>三个值,这三个值会分别被映射到笛卡尔坐标系的 x 轴,y 轴和 z 轴上。</p>\n<p>然后我们可以使用 GL 提供的 <a href=\"option-gl.html#series-scatter3D\" target=\"_blank\">scatter3D</a> 系列类型把这些数据画成三维空间中正态分布的点。</p>\n<pre><code class=\"lang-js\">option = {\n    grid3D: {},\n    xAxis3D: {},\n    yAxis3D: {},\n    zAxis3D: { max: 100 },\n    series: [{\n        type: &#39;scatter3D&#39;,\n        data: data\n    }]\n}\n</code></pre>\n<p><img width=\"\" height=\"auto\" src=\"documents/asset/img/gl/scatter3D-gaussian.png\"></p>\n<h2 id=\"-\">使用真实数据的三维散点图</h2>\n<p>接下来我们来看一个使用真实多维数据的三维散点图例子。</p>\n<p>可以先从 <a href=\"https://echarts.apache.org/examples/data/asset/data/life-expectancy-table.json\" target=\"_blank\">https://echarts.apache.org/examples/data/asset/data/life-expectancy-table.json</a> 获取这份数据。</p>\n<p>格式化一下可以看到这份数据是很传统转成 JSON 后的表格格式。第一行是每一列数据的属性名,可以从这个属性名看出来每一列数据的含义,分别是人均收入,人均寿命,人口数量,国家和年份。</p>\n<pre><code class=\"lang-js\">[\n    [&quot;Income&quot;, &quot;Life Expectancy&quot;, &quot;Population&quot;, &quot;Country&quot;, &quot;Year&quot;],\n    [815, 34.05, 351014, &quot;Australia&quot;, 1800],\n    [1314, 39, 645526, &quot;Canada&quot;, 1800],\n    [985, 32, 321675013, &quot;China&quot;, 1800],\n    [864, 32.2, 345043, &quot;Cuba&quot;, 1800],\n    [1244, 36.5731262, 977662, &quot;Finland&quot;, 1800],\n    ...\n]\n</code></pre>\n<p>在 ECharts 4 中我们可以使用 dataset 组件非常方便地引入这份数据。如果对 dataset 还不熟悉的话可以看<a href=\"tutorial.html#%E4%BD%BF%E7%94%A8%20dataset%20%E7%AE%A1%E7%90%86%E6%95%B0%E6%8D%AE\" target=\"_blank\">dataset使用教程</a></p>\n<pre><code class=\"lang-js\">$.get(&#39;data/asset/data/life-expectancy-table.json&#39;, function (data) {\n    myChart.setOption({\n        grid3D: {},\n        xAxis3D: {},\n        yAxis3D: {},\n        zAxis3D: {},\n        dataset: {\n            source: data\n        },\n        series: [\n            {\n                type: &#39;scatter3D&#39;,\n                symbolSize: 2.5\n            }\n        ]\n    })\n});\n</code></pre>\n<p><img width=\"\" height=\"auto\" src=\"documents/asset/img/gl/scatter3D-life.png\"></p>\n<p>默认会把前三列,也就是收入(Income),人均寿命(Life Expectancy),人口(Population)分别放到 x、 y、 z 轴上。</p>\n<p>使用 encode 属性我们还可以将指定列的数据映射到指定的坐标轴上,从而省去很多繁琐的数据转换代码。例如我们将 x 轴换成是国家(Country),y 轴换成年份(Year),z 轴换成收入(Income),可以看到不同国家不同年份的人均收入分布。</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    grid3D: {},\n    xAxis3D: {\n        // 因为 x 轴和 y 轴都是类目数据,所以需要设置 type: &#39;category&#39; 保证正确显示数据。\n        type: &#39;category&#39;\n    },\n    yAxis3D: {\n        type: &#39;category&#39;\n    },\n    zAxis3D: {},\n    dataset: {\n        source: data\n    },\n    series: [\n        {\n            type: &#39;scatter3D&#39;,\n            symbolSize: 2.5,\n            encode: {\n                // 维度的名字默认就是表头的属性名\n                x: &#39;Country&#39;,\n                y: &#39;Year&#39;,\n                z: &#39;Income&#39;,\n                tooltip: [0, 1, 2, 3, 4]\n            }\n        }\n    ]\n});\n</code></pre>\n<h2 id=\"-visualmap-\">利用 visualMap 组件对三维散点图进行视觉编码</h2>\n<p>刚才多维数据的例子中,我们还有几个维度(列)没能表达出来,利用 ECharts 内置的 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> 组件我们可以继续将第四个维度编码成颜色。</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    grid3D: {\n        viewControl: {\n            // 使用正交投影。\n            projection: &#39;orthographic&#39;\n        }\n    },\n    xAxis3D: {\n        // 因为 x 轴和 y 轴都是类目数据,所以需要设置 type: &#39;category&#39; 保证正确显示数据。\n        type: &#39;category&#39;\n    },\n    yAxis3D: {\n        type: &#39;log&#39;\n    },\n    zAxis3D: {},\n    visualMap: {\n        calculable: true,\n        max: 100,\n        // 维度的名字默认就是表头的属性名\n        dimension: &#39;Life Expectancy&#39;,\n        inRange: {\n            color: [&#39;#313695&#39;, &#39;#4575b4&#39;, &#39;#74add1&#39;, &#39;#abd9e9&#39;, &#39;#e0f3f8&#39;, &#39;#ffffbf&#39;, &#39;#fee090&#39;, &#39;#fdae61&#39;, &#39;#f46d43&#39;, &#39;#d73027&#39;, &#39;#a50026&#39;]\n        }\n    },\n    dataset: {\n        source: data\n    },\n    series: [\n        {\n            type: &#39;scatter3D&#39;,\n            symbolSize: 5,\n            encode: {\n                // 维度的名字默认就是表头的属性名\n                x: &#39;Country&#39;,\n                y: &#39;Population&#39;,\n                z: &#39;Income&#39;,\n                tooltip: [0, 1, 2, 3, 4]\n            }\n        }\n    ]\n})\n</code></pre>\n<p>这段代码中我们又在刚才的例子基础上加入了 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> 组件,将<code class=\"codespan\">Life Expectancy</code>这一列数据映射到了不同的颜色。</p>\n<p>除此之外我们还把原来默认的透视投影改成了正交投影。正交投影在某些场景中可以避免因为近大远小所造成的表达错误。</p>\n<p><img width=\"\" height=\"auto\" src=\"documents/asset/img/gl/scatter3D-color.png\"></p>\n<p>当然,除了 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> 组件,还可以利用其它的 ECharts 内置组件并且充分利用这些组件的交互效果,比如 <a href=\"option.html#legend\" target=\"_blank\">legend</a>。也可以像 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=scatter3d-scatter&amp;gl=1\" target=\"_blank\">三维散点图和散点矩阵结合使用</a> 这个例子一样实现二维和三维的系列混搭。</p>\n<p>在实现 GL 的时候我们尽可能地把 WebGL 和 Canvas 之间的差异屏蔽了到最小,从而让 GL 的使用可以更加方便自然。</p>\n<h2 id=\"-\">在笛卡尔坐标系上显示其它类型的三维图表</h2>\n<p>除了散点图,我们也可以通过 GL 在三维的笛卡尔坐标系上绘制其它类型的三维图表。比如刚才例子中将 <code class=\"codespan\">scatter3D</code> 类型改成 <code class=\"codespan\">bar3D</code> 就可以变成一个三维的柱状图。</p>\n<p><img width=\"\" height=\"auto\" src=\"documents/asset/img/gl/bar3D.png\"></p>\n<p>还有机器学习中会用到的三维曲面图 <a href=\"option-gl.html#series-surface\" target=\"_blank\">surface</a>,三维曲面图常用来表达平面上的数据走势,刚才的正态分布数据我们也可以像下面这样画成曲面图。</p>\n<pre><code class=\"lang-js\">var data = [];\n// 曲面图要求给入的数据是网格形式按顺序分布。\nfor (var y = -50; y &lt;= 50; y++) {\n    for (var x = -50; x &lt;= 50; x++) {\n        var z = gaussian(x, y);\n        data.push([x, y, z]);\n    }\n}\noption = {\n    grid3D: {},\n    xAxis3D: {},\n    yAxis3D: {},\n    zAxis3D: { max: 60 },\n    series: [{\n        type: &#39;surface&#39;,\n        data: data\n    }]\n}\n</code></pre>\n<p><img width=\"\" height=\"auto\" src=\"documents/asset/img/gl/surface.png\"></p>\n<h2 id=\"-\">老板想要立体的柱状图效果</h2>\n<p>最后,我们经常会被问到如何用 ECharts 画只有二维数据的立体柱状图效果。一般来说我们是不推荐这么做的,因为这种不必要的立体柱状图很容易造成错误的表达,具体可以见我们 <a href=\"https://vis.baidu.com/chartusage/bar/\" target=\"_blank\">柱状图使用指南</a> 中的解释。</p>\n<p>但是如果有一些其他因素导致必须得画成立体的柱状图的话,用 GL 也可以实现。<a href=\"https://gallery.echartsjs.com/explore.html?u=bd-3056387051\" target=\"_blank\">丶灬豆奶</a> 和 <a href=\"https://gallery.echartsjs.com/explore.html?u=bd-809368804\" target=\"_blank\">阿洛儿啊</a> 在 Gallery 已经写了类似的例子,大家可以参考。</p>\n<p><a href=\"https://gallery.echartsjs.com/explore.html?u=bd-3056387051\" target=\"_blank\">3D堆积柱状图</a></p>\n<p><a href=\"https://gallery.echartsjs.com/editor.html?c=xryQDPYK0b\" target=\"_blank\">3D柱状图</a></p>\n<p><img width=\"\" height=\"auto\" src=\"documents/asset/img/gl/bar3D-2d-data.png\"></p>\n"},"在微信小程序中使用 ECharts":{"type":["*"],"description":"<p>我们接到了很多微信小程序开发者的反馈,表示他们强烈需要像 Apache ECharts<sup>TM</sup> 这样的可视化工具。但是微信小程序是不支持 DOM 操作的,Canvas 接口也和浏览器不尽相同。</p>\n<p>因此,我们和微信小程序官方团队合作,提供了 ECharts 的微信小程序版本。开发者可以通过熟悉的 ECharts 配置方式,快速开发图表,满足各种可视化需求。</p>\n<h2 id=\"-\">体验示例小程序</h2>\n<p>在微信中扫描下面的二维码即可体验 ECharts Demo:</p>\n<p><img width=\"auto\" height=\"auto\" src=\"https://cdn.jsdelivr.net/gh/ecomfe/echarts-for-weixin/img/weixin-app.jpg\"></p>\n<h2 id=\"-\">下载</h2>\n<p>为了兼容小程序 Canvas,我们提供了一个小程序的组件,用这种方式可以方便地使用 ECharts。</p>\n<p>首先,下载 GitHub 上的 <a href=\"https://github.com/ecomfe/echarts-for-weixin\" target=\"_blank\">ecomfe/echarts-for-weixin</a> 项目。</p>\n<p>其中,<code class=\"codespan\">ec-canvas</code> 是我们提供的组件,其他文件是如何使用该组件的示例。</p>\n<p><code class=\"codespan\">ec-canvas</code> 目录下有一个 <code class=\"codespan\">echarts.js</code>,默认我们会在每次 <code class=\"codespan\">echarts-for-weixin</code> 项目发版的时候替换成最新版的 ECharts。如有必要,可以自行从 ECharts 项目中下载<a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">最新发布版</a>,或者从<a href=\"https://echarts.apache.org/builder.html\" target=\"_blank\">官网自定义构建</a>以减小文件大小。</p>\n<h2 id=\"-\">引入组件</h2>\n<p>微信小程序的项目创建可以参见<a href=\"https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/\" target=\"_blank\">微信公众平台官方文档</a>。</p>\n<p>在创建项目之后,可以将下载的 <a href=\"https://github.com/ecomfe/echarts-for-weixin\" target=\"_blank\">ecomfe/echarts-for-weixin</a> 项目完全替换新建的项目,然后将修改代码;或者仅拷贝 <code class=\"codespan\">ec-canvas</code> 目录到新建的项目下,然后做相应的调整。</p>\n<p>如果采用完全替换的方式,需要将 <code class=\"codespan\">project.config.json</code> 中的 <code class=\"codespan\">appid</code> 替换成在公众平台申请的项目 id。<code class=\"codespan\">pages</code> 目录下的每个文件夹是一个页面,可以根据情况删除不需要的页面,并且在 <code class=\"codespan\">app.json</code> 中删除对应页面。</p>\n<p>如果仅拷贝 <code class=\"codespan\">ec-canvas</code> 目录,则可以参考 <code class=\"codespan\">pages/bar</code> 目录下的几个文件的写法。下面,我们具体地说明。</p>\n<h2 id=\"-\">创建图表</h2>\n<p>首先,在 <code class=\"codespan\">pages/bar</code> 目录下新建以下几个文件:<code class=\"codespan\">index.js</code>、 <code class=\"codespan\">index.json</code>、 <code class=\"codespan\">index.wxml</code>、 <code class=\"codespan\">index.wxss</code>。并且在 <code class=\"codespan\">app.json</code> 的 <code class=\"codespan\">pages</code> 中增加 <code class=\"codespan\">&#39;pages/bar/index&#39;</code>。</p>\n<p><code class=\"codespan\">index.json</code> 配置如下:</p>\n<pre><code class=\"lang-json\">{\n  &quot;usingComponents&quot;: {\n    &quot;ec-canvas&quot;: &quot;../../ec-canvas/ec-canvas&quot;\n  }\n}\n</code></pre>\n<p>这一配置的作用是,允许我们在 <code class=\"codespan\">pages/bar/index.wxml</code> 中使用 <code class=\"codespan\">&lt;ec-canvas&gt;</code> 组件。注意路径的相对位置要写对,如果目录结构和本例相同,就应该像上面这样配置。</p>\n<p><code class=\"codespan\">index.wxml</code> 中,我们创建了一个 <code class=\"codespan\">&lt;ec-canvas&gt;</code> 组件,内容如下:</p>\n<pre><code class=\"lang-xml\">&lt;view class=&quot;container&quot;&gt;\n  &lt;ec-canvas id=&quot;mychart-dom-bar&quot; canvas-id=&quot;mychart-bar&quot; ec=&quot;{{ ec }}&quot;&gt;&lt;/ec-canvas&gt;\n&lt;/view&gt;\n</code></pre>\n<p>其中 <code class=\"codespan\">ec</code> 是一个我们在 <code class=\"codespan\">index.js</code> 中定义的对象,它使得图表能够在页面加载后被初始化并设置。<code class=\"codespan\">index.js</code> 的结构如下:</p>\n<pre><code class=\"lang-js\">function initChart(canvas, width, height) {\n  const chart = echarts.init(canvas, null, {\n    width: width,\n    height: height\n  });\n  canvas.setChart(chart);\n\n  var option = {\n    ...\n  };\n  chart.setOption(option);\n  return chart;\n}\n\nPage({\n  data: {\n    ec: {\n      onInit: initChart\n    }\n  }\n});\n</code></pre>\n<p>这对于所有 ECharts 图表都是通用的,用户只需要修改上面 <code class=\"codespan\">option</code> 的内容,即可改变图表。<code class=\"codespan\">option</code> 的使用方法参见 <a href=\"option.html\" target=\"_blank\">ECharts 配置项文档</a>。对于不熟悉 ECharts 的用户,可以参见 <a href=\"tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts\" target=\"_blank\">5 分钟上手 ECharts</a> 教程。</p>\n<p>完整的例子请参见 <a href=\"https://github.com/ecomfe/echarts-for-weixin\" target=\"_blank\">ecomfe/echarts-for-weixin</a> 项目。</p>\n<h2 id=\"-\">暂不支持的功能</h2>\n<p>ECharts 中的绝大部分功能都支持小程序版本,因此这里仅说明不支持的功能,以及存在的问题。</p>\n<p>以下功能尚不支持,如果有相关需求请在 <a href=\"https://github.com/ecomfe/echarts-for-weixin/issues\" target=\"_blank\">issue</a> 中向我们反馈,对于反馈人数多的需求将优先支持:</p>\n<ul>\n<li>Tooltip</li>\n<li>图片</li>\n<li>多个 zlevel 分层</li>\n</ul>\n<p>此外,目前还有一些 bug 尚未修复,部分需要小程序团队配合上线支持,但不影响基本的使用。已知的 bug 包括:</p>\n<ul>\n<li>安卓平台:transform 的问题(会影响关系图边两端的标记位置、旭日图文字位置等)</li>\n<li>iOS 平台:半透明略有变深的问题</li>\n<li>iOS 平台:渐变色出现在定义区域之外的地方</li>\n</ul>\n<p>如有其它问题,也欢迎在 <a href=\"https://github.com/ecomfe/echarts-for-weixin/issues\" target=\"_blank\">issue</a> 中向我们反馈,谢谢!</p>\n"}}}}
\ No newline at end of file
+{"$schema":"https://echarts.apache.org/doc/json-schem","option":{"type":"Object","properties":{"5 分钟上手 ECharts":{"type":["*"],"description":"<h2 id=\"-echarts\">获取 ECharts</h2>\n<p>你可以通过以下几种方式获取 Apache ECharts<sup>TM</sup>。</p>\n<ul>\n<li><p>从 <a href=\"https://echarts.apache.org/zh/download.html\" target=\"_blank\">Apache ECharts 官网下载界面</a> 获取官方源码包后构建。</p>\n</li>\n<li><p>在 ECharts 的 <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">GitHub</a> 获取。</p>\n</li>\n<li><p>通过 npm 获取 echarts,<code class=\"codespan\">npm install echarts --save</code>,详见“<a href=\"tutorial.html#%E5%9C%A8%20webpack%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20ECharts\" target=\"_blank\">在 webpack 中使用 echarts</a>”</p>\n</li>\n<li><p>通过 <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">jsDelivr</a> 等 CDN 引入</p>\n</li>\n</ul>\n<h2 id=\"-echarts\">引入 ECharts</h2>\n<p>通过标签方式直接引入构建好的 echarts 文件</p>\n<pre><code class=\"lang-html\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;!-- 引入 ECharts 文件 --&gt;\n    &lt;script src=&quot;echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;/head&gt;\n&lt;/html&gt;\n</code></pre>\n<h2 id=\"-\">绘制一个简单的图表</h2>\n<p>在绘图前我们需要为 ECharts 准备一个具备高宽的 DOM 容器。</p>\n<pre><code>&lt;body&gt;\n    &lt;!-- 为 ECharts 准备一个具备大小(宽高)的 DOM --&gt;\n    &lt;div id=&quot;main&quot; style=&quot;width: 600px;height:400px;&quot;&gt;&lt;/div&gt;\n&lt;/body&gt;\n</code></pre><p>然后就可以通过 <a href=\"api.html#echarts.init\" target=\"_blank\">echarts.init</a> 方法初始化一个 echarts 实例并通过 <a href=\"api.html#echartsInstance.setOption\" target=\"_blank\">setOption</a> 方法生成一个简单的柱状图,下面是完整代码。</p>\n<pre><code class=\"lang-html\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;title&gt;ECharts&lt;/title&gt;\n    &lt;!-- 引入 echarts.js --&gt;\n    &lt;script src=&quot;echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;/head&gt;\n&lt;body&gt;\n    &lt;!-- 为ECharts准备一个具备大小(宽高)的Dom --&gt;\n    &lt;div id=&quot;main&quot; style=&quot;width: 600px;height:400px;&quot;&gt;&lt;/div&gt;\n    &lt;script type=&quot;text/javascript&quot;&gt;\n        // 基于准备好的dom,初始化echarts实例\n        var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n        // 指定图表的配置项和数据\n        var option = {\n            title: {\n                text: &#39;ECharts 入门示例&#39;\n            },\n            tooltip: {},\n            legend: {\n                data:[&#39;销量&#39;]\n            },\n            xAxis: {\n                data: [&quot;衬衫&quot;,&quot;羊毛衫&quot;,&quot;雪纺衫&quot;,&quot;裤子&quot;,&quot;高跟鞋&quot;,&quot;袜子&quot;]\n            },\n            yAxis: {},\n            series: [{\n                name: &#39;销量&#39;,\n                type: &#39;bar&#39;,\n                data: [5, 20, 36, 10, 10, 20]\n            }]\n        };\n\n        // 使用刚指定的配置项和数据显示图表。\n        myChart.setOption(option);\n    &lt;/script&gt;\n&lt;/body&gt;\n&lt;/html&gt;\n</code></pre>\n<p>这样你的第一个图表就诞生了!</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/getting-started&reset=1&edit=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n<p>你也可以直接进入 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=doc-example/getting-started\" target=\"_blank\">ECharts Gallery</a> 中查看编辑示例</p>\n"},"ECharts 5 新特性":{"type":["*"],"description":"<p>数据可视化在过去的几年中得到了长足的发展。开发者对于可视化产品的期待不再是简单的图表创建工具,而在交互、性能、数据处理等方面有了更高级的需求。</p>\n<p>Apache ECharts 始终致力于让开发者以更方便的方式创造灵活丰富的可视化作品。在最新推出的 Apache ECharts 5,我们着力加强了图表的叙事能力,让开发者可以以更简单的方式,讲述数据背后的故事。</p>\n<p><img src=\"documents/asset/img/feature-v5/echarts-5.png\" width=\"800px\" /></p>\n<p>“表·达”是 Apache ECharts 5 的核心,通过五大模块、十五项特性的全面升级,围绕可视化作品的叙事表达能力,让图“表”更能传“达”数据背后的故事,帮助开发者更轻松地创造满足各种场景需求的可视化作品。</p>\n<h2 id=\"-\">动态叙事</h2>\n<p>动画对于人类认知的重要性不言而喻。在之前的作品中,我们会通过初始化动画和过渡动画帮助用户理解数据变换之间的联系,让图表的出现和变换显得不那么生硬。这次,我们更是大幅度增强了我们的动画叙事能力,。希望能够进一步发挥动画对于用户认知的帮助作用,借助图表的动态叙事功能,帮助用户更容易理解图表背后表达的故事。</p>\n<h4 id=\"-\">动态排序图</h4>\n<p>Apache ECharts 5 新增支持动态排序柱状图(bar-racing)以及动态排序折线图(line-racing),帮助开发者方便地创建带有时序性的图表,展现数据随着时间维度上的变化,讲述数据的演变过程。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=bar-race-country&edit=1&reset=1\" width=\"700\" height=\"400\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=line-race&edit=1&reset=1\" width=\"700\" height=\"400\" ></iframe>\n\n\n<p>动态排序图展现了不同的类目随着时间在排名上的衍变。而开发者只需要通过几行简单的配置项就可以在 ECharts 中开启这样的效果。</p>\n<h4 id=\"-\">自定义系列动画</h4>\n<p>除了动态排序图,Apache ECharts 5 在自定义系列中提供了更加丰富强大的动画效果,支持标签数值文本的插值动画,图形的形变(morph)、分裂(separate)、合并(combine)等效果的过渡动画。</p>\n<p>想象一下,用这些动态效果,你可以创造出多么令人称奇的可视化作品!</p>\n<h2 id=\"-\">视觉设计</h2>\n<p>视觉设计的作用并不仅仅是为了让图表更好看,更重要的是,符合可视化原理的设计可以帮用户更快速地理解图表想表达的内容,并且尽可能消除不良设计带来的误解。</p>\n<h4 id=\"-\">默认设计</h4>\n<p>我们发现,有很大一部分开发者使用了 ECharts 默认的主题样式,因而设计优雅、符合可视化原理的默认主题设计是非常重要的。在 Apache ECharts 5 中,我们重新设计了默认的主题样式,针对不同的系列和组件分别做了优化调整。以主题色为例,我们考量了颜色之间的区分度、与背景色的对比度、相邻颜色的和谐度等因素,并且确保色觉辨识障碍人士也能清楚地区分数据。</p>\n<p><img src=\"documents/asset/img/feature-v5/theme-color.png\" width=\"400px\" /></p>\n<p>我们以最常用的柱状图为例,来看看新版本浅色主题和深色主题的样式:</p>\n<p><img src=\"documents/asset/img/feature-v5/new-theme-light.png\" width=\"500px\" />\n<img src=\"documents/asset/img/feature-v5/new-theme-dark.png\" width=\"500px\" /></p>\n<p>对于数据区域缩放,时间轴等交互组件,我们也设计了全新的样式并且提供了更好的交互体验:</p>\n<p><img src=\"documents/asset/img/feature-v5/dataZoom.png\" width=\"500px\" /></p>\n<p><img src=\"documents/asset/img/feature-v5/timeline.png\" width=\"500px\" /></p>\n<h4 id=\"-\">标签</h4>\n<p>标签是图表中的核心元素之一,清晰而明确的标签可以帮助用户对数据有更准确的理解。Apache ECharts 5 提供了多种新的标签功能,让密集的标签能清晰显示、准确表意。</p>\n<p>Apache ECharts 5 可以通过一个配置项开启自动隐藏重叠的标签。对于超出显示区域的标签,可以选择自动截断或者换行。密集的饼图标签,现在有了更美观的自动排布。</p>\n<p>这些功能可以帮助避免文字过于密集影响可读性。并且,无需开发者编写额外的代码就能默认生效,大大简化了开发者的开发成本。</p>\n<p>我们也提供了多个配置项来让开发者主动控制标签的布局策略,例如标签拖动、整体显示在画布边缘,用引导线和图形元素连接,并且仍可联动高亮表达关联关系。</p>\n<p>新的标签功能可以让你在移动端这样局限的空间内也可以有很优雅的标签展示:</p>\n<p><img src=\"documents/asset/img/feature-v5/pie-label.png\" height=\"150px\" />\n<img src=\"documents/asset/img/feature-v5/pie-label-2.png\" height=\"150px\" /></p>\n<h4 id=\"-\">时间轴</h4>\n<p>Apache ECharts 5 带来了适于表达时间标签刻度的时间轴。时间轴的默认设计更突出重要的信息,并且提供了更灵活的定制化能力,让开发者根据不同的需求定制时间轴的标签内容。</p>\n<p>首先,时间轴不再如之前般绝对平均分割,而是选取年、月、日、整点这类更有意义的点来展示,并且能同时显示不同层级的刻度。标签的 <code class=\"codespan\">formatter</code> 支持了时间模版(例如 <code class=\"codespan\">{yyyy}-{MM}-{dd}</code>),并且可以为不同时间粒度的标签指定不同的 <code class=\"codespan\">formatter</code>,结合已有的富文本标签,可以定制出醒目而多样的时间效果。</p>\n<p>不同的 dataZoom 粒度下时间刻度的显示:</p>\n<p><img src=\"documents/asset/img/feature-v5/time-axis.png\" width=\"600px\" /></p>\n<p><img src=\"documents/asset/img/feature-v5/time-axis-2.png\" width=\"600px\" /></p>\n<h4 id=\"-\">提示框</h4>\n<p>提示框(Tooltip)是一种最常用的可视化组件,可以帮助用户交互式地了解数据的详细信息。在 Apache ECharts 5 中,我们对提示框的样式进行了优化,通过对字体样式,颜色的调整,指向图形的箭头,跟随图形颜色的边框色等功能,让提示框的默认展示优雅又清晰。并且改进了富文本的渲染逻辑,确保显示效果与 HTML 方式一致,让用户在不同场景下可以选择不同的技术方案实现同样的效果。</p>\n<p><img src=\"documents/asset/img/feature-v5/new-tooltip.png\" height=\"200px\" />\n<img src=\"documents/asset/img/feature-v5/new-tooltip-2.png\" height=\"200px\" /></p>\n<p>除此之外,我们这次也加上了提示框内的列表按照数值大小或者类目顺序排序的功能。</p>\n<h4 id=\"-\">仪表盘</h4>\n<p>我们看到社区用户创建了很多酷炫的仪表盘图表,但是他们的配置方式往往比较复杂而取巧。因此,我们对仪表盘的功能作了全面升级,支持了图片或者矢量路径绘制指针、也支持了锚点(anchor)配置项、进度条(progress)、圆角效果等等配置项。</p>\n<p>不同样式的仪表盘指针:</p>\n<p><img src=\"documents/asset/img/feature-v5/gauge-pointer.png\" width=\"600px\" /></p>\n<p>这些升级,不仅可以让开发者用更简单的配置项实现酷炫的效果,而且带来了更丰富的定制能力。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=gauge-clock&edit=1&reset=1\" width=\"600\" height=\"600\" ></iframe>\n\n\n<h4 id=\"-\">扇形圆角</h4>\n<p>圆角可以带来更美观而柔和的视觉,也能够赋予更多的创造力。Apache ECharts 5 支持了饼图、旭日图、矩形树图的扇形圆角。可不要小看了简单的圆角配置项,合理地搭配其他的效果,就可以形成更具个性的的可视化作品。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=sunburst-borderRadius&edit=1&reset=1\" width=\"400\" height=\"400\" ></iframe>\n\n\n\n\n<h2 id=\"-\">交互能力</h2>\n<p>可视化作品的交互能力帮助用户探索了解作品,加深对于图表主旨的理解。</p>\n<h4 id=\"-\">状态管理</h4>\n<p>在 ECharts 4 中有高亮(emphasis)和普通(normal)两个交互的状态,在鼠标移到图形上的时候会进入高亮状态以区分该数据,开发者可以分别设置这两个状态的颜色,阴影等样式。</p>\n<p>这次在 Apache ECharts 5 中,我们在原先的鼠标 hover 高亮的基础上,新增加了<strong>淡出</strong>其它非相关元素的效果,从而可以达到聚焦目标数据的目的。</p>\n<p>比如在这个<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=bar-y-category-stack\" target=\"_blank\">柱状图</a>的例子中,鼠标移到一个系列上的时候,其它非相关的系列就会淡出,从而可以更清晰的突出聚焦系列中数据的对比。在关系图,树图,旭日图,桑基等更复杂数据结构的图上,也可以通过淡出非相关元素来观察数据之间的联系。而且颜色,阴影等在高亮(emphasis)中可以设置的样式,现在也可以在淡出(blur)状态中设置了。</p>\n<p>除此之外,我们为所有系列还添加了<strong>点击选中</strong>这个之前只有在饼图、地图等少数系列中才能开启的交互,开发者可以设置为单选或多选模式,并且通过监听 <code class=\"codespan\">selectchanged</code> 事件获取到选中的所有图形然后进行更进一步的处理。与高亮和淡出一样,选中的样式也可以在 <code class=\"codespan\">select</code> 中配置。</p>\n<h4 id=\"-\">性能提升</h4>\n<h5 id=\"-\">脏矩形渲染</h5>\n<p>Apache ECharts 5 新支持了脏矩形渲染,解决只有局部变化的场景下的性能瓶颈。在使用 Canvas 渲染器时,脏矩形渲染技术探测并只更新视图变化的部分,而不是任何变动都引起画布完全重绘。这能在一些特殊场景下帮助提高渲染帧率,例如在图形很多时候,鼠标频繁触发一些图形高亮的场景。以往这类场景,会使用额外的 Canvas 层以优化性能,但是这种方式不是所有场景都通用,而且对于复杂的样式的效果并不理想。脏矩形渲染很好地同时满足了性能和显示正确。</p>\n<p>脏矩形的可视化演示,红色框选部分为该帧重绘区域:</p>\n<p><img src=\"documents/asset/img/feature-v5/dirty-rect.gif\" width=\"500px\" /></p>\n<p>大家在新的示例页面选择开启脏矩形优化就可以看到该效果。</p>\n<h5 id=\"-\">实时时序数据的折线图性能优化</h5>\n<p>除此之外,海量数据下折线图的性能也有了大幅度的性能提升。我们经常碰到大量的实时时序数据的高性能绘制的需求,这些数据可能需要几百或者几十毫秒更新一次。</p>\n<p>Apache ECharts 5 对这些场景下的 CPU 消耗、内存占用、初始化时间都进行了深度的优化,使得百万量级的数据也能做到实时的更新(每次更新耗时少于 30ms),甚至对于千万级的数据,也可以在 1s 内渲染完,并且保持很小的内存占用以及流畅的提示框(tooltip)等交互。</p>\n<h2 id=\"-\">开发体验</h2>\n<p>我们希望如此强大的可视化工具可以被更多开发者以更简单的方式使用,因而开发者的开发体验也是我们非常关注的方面。</p>\n<h4 id=\"-\">数据集</h4>\n<p>ECharts 5 加强了数据集的数据转换能力,让开发者可以使用简单的方式实现常用的数据处理,如:数据过滤(filter)、排序(sort)、聚合(aggregate)、直方图(histogram)、简单聚类(clustering)、回归线计算(regression)等。开发者可以用统一的声明式方式来使用这些功能,可以方便地实现常用的数据操作。</p>\n<h4 id=\"-\">国际化</h4>\n<p>ECharts 原有的国际化方案,采用的是根据不同的语言参数打包出不同的部署文件的形式。​这种方式,使动态的语言和静态的代码包绑定在一起,使用的时候只能通过重新加载不同语言版本的 ECharts 代码来达到切换语言的目的。</p>\n<p>因此,从 Apache ECharts 5 开始,动态的语言包和静态的代码包分离开。切换语言的时候,只需要加载相应语言包​,通过类似挂载主题的方式,使用 <code class=\"codespan\">registerLocale</code> 函数挂载语言包对象​,重新初始化后就完成了语言的切换​。</p>\n<pre><code class=\"lang-js\">// import the lang object and set when init​\necharts.registerLocale(&#39;DE&#39;, lang);​\necharts.init(DomElement, null, {​\n   locale: &#39;DE&#39;​\n});\n</code></pre>\n<h4 id=\"typescript-\">TypeScript 重构</h4>\n<p>在近 8 年的时间里,Apache ECharts 已经发展成一个非常复杂的可视化库了,为了续可以更安全高效的进行重构和新功能的开发,我们在 Apache ECharts 5 的开发之初,使用 TypeScript 对代码进行了重写,TypeScript 所带来的强类型让我们更有信心地在 ECharts 5 开发的时候对代码进行大刀阔斧的重构以实现更多令人激动人心的特性。</p>\n<p>对于开发者,我们也可以从 TypeScript 代码直接生成更好更符合代码的<code class=\"codespan\">DTS</code>类型描述文件。在此之前,ECharts 的类型描述文件一直是由社区开发者帮我们维护并发布到<a href=\"https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/echarts\" target=\"_blank\">DefinityTyped</a>,这个有着不小的工作量,非常感谢大家的贡献。</p>\n<p>除此之外,如果开发者的组件是按需引入的,我们还提供了一个 <code class=\"codespan\">ComposeOption</code> 类型方法,可以组合出一个只包含了引入组件的配置项类型,可以带来更严格的类型检查,帮助你提前检测到未引入的组件类型。</p>\n<h2 id=\"-\">可访问性</h2>\n<p>Apache ECharts 一直非常重视无障碍设计,我们希望让视觉障碍人士也能平等了解图表传递的信息。并且也希望图表的开发者能以极低的开发成本实现这一点,因而有利于让开发者更愿意为视觉障碍人士提供支持。</p>\n<p>在上一个大版本中,我们支持了根据不同的图表类型和数据自动一键智能生成图表描述的功能,帮助开发者非常方便地支持图表的 DOM 描述信息。在 ECharts 5 中,我们也做了更多提高可访问性的设计,帮助视觉障碍人士更好地理解图表内容。</p>\n<h4 id=\"-\">主题配色</h4>\n<p>我们在设计新版默认主题样式的时候,将无障碍设计作为一个重要的考量依据,对颜色的明度和色值都进行反复测试,帮助视觉辨识障碍用户清楚地识别图表数据。​</p>\n<p>并且,针对有更进一步无障碍需求的开发者,我们还提供了特殊的高对比度主题,以更高对比度颜色的主题将数据作进一步区分。</p>\n<h4 id=\"-\">贴花图案</h4>\n<p>ECharts 5 还新增提供了贴花的功能,用图案辅助颜色表达,进一步帮助用户区分数据。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/aria-decal-simple&edit=1&reset=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n<p>此外,贴花图案还能在一些其他的场景下提供帮助,比如:在报纸、书籍之类只有单色或者非常少的颜色的印刷品中,帮助更好地区分数据;用图形元素方便用户对数据产生更直观的理解等。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/aria-decal-newspaper&edit=1&reset=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n\n<h2 id=\"-\">小结</h2>\n<p>除了以上介绍的功能,Apache ECharts 还在非常多的细节中做了改进,帮助开发者更轻松地创建默认好用、配置灵活的图表,用图表讲述数据背后的故事。</p>\n<p>感谢所有使用过 ECharts,甚至参与过社区贡献的开发者,正是你们才使得 Apache ECharts 5 成为可能。我们会以更大的热情投入到未来的开发中,Apache ECharts 也会以更大的诚意和大家在 6 相见!</p>\n"},"ECharts 5 升级指南":{"type":["*"],"description":"<p>本指南面向那些希望将 echarts 4.x(以下简称 <code class=\"codespan\">v4</code>)升级到 echarts 5.x(以下简称 <code class=\"codespan\">v5</code>)的用户。大家可以在 <a href=\"tutorial.html#ECharts%205%20新特性\" target=\"_blank\">ECharts 5 新特性</a> 中了解这次<code class=\"codespan\">v5</code>带来了哪些值得升级的新特性。在绝大多数情况下,开发者用不着为这个升级做什么额外的事,因为 echarts 一直尽可能地保持 API 的稳定和向后兼容。但是,<code class=\"codespan\">v5</code> 仍然带来了一些非兼容改动,需要特别关注。此外,在一些情况下,<code class=\"codespan\">v5</code> 提供了更好的 API 用来取代之前的 API,这些被取代的 API 将不再被推荐使用(当然,我们尽量兼容了这些改动)。我们会在这篇文档里尽量详尽得解释这些改动。</p>\n<p>因为我们在 <code class=\"codespan\">v5.0.1</code> 增加了新的<a href=\"tutorial.html#%E5%9C%A8%E6%89%93%E5%8C%85%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8%20ECharts\" target=\"_blank\">按需引入接口</a>,所以本文档基于 <code class=\"codespan\">v5.0.1</code> 或者更高的版本。</p>\n<h2 id=\"-\">非兼容性改变</h2>\n<h4 id=\"-theme-\">默认主题(theme)</h4>\n<p>首先是默认主题的改动,<code class=\"codespan\">v5</code> 在配色等主题设计上做了很多的优化来达到更好的视觉效果。如果大家依旧想保留旧版本的颜色,可以手动声明颜色,如下:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    color: [\n        &#39;#c23531&#39;, &#39;#2f4554&#39;, &#39;#61a0a8&#39;, &#39;#d48265&#39;, &#39;#91c7ae&#39;, &#39;#749f83&#39;,\n        &#39;#ca8622&#39;, &#39;#bda29a&#39;, &#39;#6e7074&#39;, &#39;#546570&#39;, &#39;#c4ccd3&#39;\n    ],\n    // ...\n});\n</code></pre>\n<p>或者,做一个简单的 <code class=\"codespan\">v4</code> 主题:</p>\n<pre><code class=\"lang-js\">var themeEC4 = {\n    color: [\n        &#39;#c23531&#39;, &#39;#2f4554&#39;, &#39;#61a0a8&#39;, &#39;#d48265&#39;, &#39;#91c7ae&#39;, &#39;#749f83&#39;,\n        &#39;#ca8622&#39;, &#39;#bda29a&#39;, &#39;#6e7074&#39;, &#39;#546570&#39;, &#39;#c4ccd3&#39;\n    ]\n};\nvar chart = echarts.init(dom, themeEC4);\nchart.setOption(/* ... */);\n</code></pre>\n<h4 id=\"-echarts\">引用 ECharts</h4>\n<h5 id=\"-default-exports-\">去除 default exports 的支持</h5>\n<p>如果使用者在 <code class=\"codespan\">v4</code> 中这样引用了 echarts:</p>\n<pre><code class=\"lang-js\">import echarts from &#39;echarts&#39;;\n// 或者按需引入\nimport echarts from &#39;echarts/lib/echarts&#39;;\n</code></pre>\n<p>这两种方式,<code class=\"codespan\">v5</code> 中不再支持了。</p>\n<p>使用者需要如下更改代码解决这个问题:</p>\n<pre><code class=\"lang-js\">import * as echarts from &#39;echarts&#39;;\n// 按需引入\nimport * as echarts from &#39;echarts/lib/echarts&#39;;\n</code></pre>\n<h5 id=\"-\">按需引入</h5>\n<p>在 5.0.1 中,我们引入了新的<a href=\"tutorial.html#%E5%9C%A8%E6%89%93%E5%8C%85%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8%20ECharts\" target=\"_blank\">按需引入接口</a></p>\n<pre><code class=\"lang-js\">import * as echarts from &#39;echarts/core&#39;;\nimport { BarChart } from &#39;echarts/charts&#39;;\nimport { GridComponent } from &#39;echarts/components&#39;;\n// 注意,新的接口中默认不再包含 Canvas 渲染器,需要显示引入,如果需要使用 SVG 渲染模式则使用 SVGRenderer\nimport { CanvasRenderer } from &#39;echarts/renderers&#39;;\n\necharts.use([BarChart, GridComponent, CanvasRenderer]);\n</code></pre>\n<p>如果之前是使用<code class=\"codespan\">import &#39;echarts/lib/chart/bar&#39;</code>引入,新的接口对应的是<code class=\"codespan\">import {BarChart} from &#39;echarts/charts&#39;</code>;</p>\n<p>为了方便大家了解自己的配置项需要引入哪些模块,我们新的示例编辑页面添加了生成按需引入代码的功能,大家可以在示例编辑页的<code class=\"codespan\">完整代码</code>标签下选中按需引入后查看需要引入的模块以及相关代码。</p>\n<p>在大部分情况下,我们都推荐大家尽可能用这套新的按需引入接口,它可以最大程度的利用打包工具 tree-shaking 的能力,并且可以有效解决命名空间冲突的问题而且防止了内部结构的暴露。如果你依旧在使用 CommonJS 的模块写法,之前的方式我们也依旧是支持的:</p>\n<pre><code class=\"lang-js\">const echarts = require(&#39;echarts/lib/echarts&#39;);\nrequire(&#39;echarts/lib/chart/bar&#39;);\nrequire(&#39;echarts/lib/component/grid&#39;);\n</code></pre>\n<p>其次,因为我们的源代码已使用 TypeScript 重写,<code class=\"codespan\">v5</code> 将不再支持从 <code class=\"codespan\">echarts/src</code> 引用文件,需要改为从<code class=\"codespan\">echarts/lib</code>引入。</p>\n<h5 id=\"-\">依赖调整</h5>\n<blockquote>\n<p>注意:该部分只针对为了保证较小的打包体积而是用按需引入接口的开发者,如果是全量引入的不需要关注</p>\n</blockquote>\n<p>为了保证 tree-shaking 后的体积足够小,我们去除了一些之前会默认被打包进来的依赖。比如前面提到的在使用新的按需引入接口的时候,<code class=\"codespan\">CanvasRenderer</code>将不再被默认引入,这样可以保证只需要使用 SVG 渲染模式的时候不会把不需要的 Canvas 渲染代码也一起打包进来,除此之外,还有下面这些依赖的改动:</p>\n<ul>\n<li>在使用折线图,柱状图中不再默认引入直角坐标系组件,因此之前使用下面的引入方式<pre><code class=\"lang-js\">const echarts = require(&#39;echarts/lib/echarts&#39;);\nrequire(&#39;echarts/lib/chart/bar&#39;);\nrequire(&#39;echarts/lib/chart/line&#39;);\n</code></pre>\n需要再单独引入<code class=\"codespan\">grid</code>组件<pre><code class=\"lang-js\">require(&#39;echarts/lib/component/grid&#39;);\n</code></pre>\n</li>\n</ul>\n<p>参考 issue:<a href=\"https://github.com/apache/echarts/issues/14080\" target=\"_blank\">#14080</a>, <a href=\"https://github.com/apache/echarts/issues/13764\" target=\"_blank\">#13764</a></p>\n<ul>\n<li>默认不再引入<code class=\"codespan\">aria</code>组件,如果需要的话可以手动引入。<pre><code class=\"lang-js\">import { AriaComponent } from &#39;echarts/components&#39;;\necharts.use(AriaComponent);\n</code></pre>\n或者:<pre><code class=\"lang-js\">require(&#39;echarts/lib/component/aria&#39;);\n</code></pre>\n</li>\n</ul>\n<h4 id=\"-geojson\">去除内置的 geoJSON</h4>\n<p><code class=\"codespan\">v5</code> 移除了内置的 geoJSON(原先在 <code class=\"codespan\">echarts/map</code> 文件夹下)。这些 geoJSON 文件本就一直来源于第三方。如果使用者仍然需要他们,可以去从老版本中得到,或者自己寻找更合适的数据然后通过 registerMap 接口注册到 ECharts 中。</p>\n<h4 id=\"-\">浏览器兼容性</h4>\n<p><code class=\"codespan\">v5</code> 不再支持 IE8 浏览器。我们不再继续维护和升级之前的 <a href=\"https://github.com/ecomfe/zrender/tree/4.3.2/src/vml\" target=\"_blank\">VML 渲染器</a> 来着实现 IE8 的兼容。如果使用者确实有很强的需求,那么欢迎提 pull request 来升级 VML 渲染器,或者单独维护一个第三方 VML 渲染器,我们从 <code class=\"codespan\">v5.0.1</code> 开始支持注册独立的渲染器了。</p>\n<h4 id=\"echarts-\">ECharts 配置项调整</h4>\n<h5 id=\"-\">视觉样式设置的优先级改变</h5>\n<p><code class=\"codespan\">v5</code> 对调了 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap 组件</a> 和 <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a> 的视觉样式优先级。</p>\n<p>具体来说,<code class=\"codespan\">v4</code> 中,<a href=\"option.html#visualMap\" target=\"_blank\">visualMap 组件</a> 中生成的视觉样式(如,颜色、图形类型、图形尺寸等)的优先级,比开发者在 <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a> 中设置的样式的优先级高,也就是说如果他们同时设置的话,前者会生效而后者不会生效。这带来了些麻烦:假如使用者在使用 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap 组件</a> 时,又想针对某个数据项对应的图形,设置 <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> 样式,则做不到。<code class=\"codespan\">v5</code> 中于是提高了 <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a> 的优先级,使他们能生效。</p>\n<p>在绝大多处情况下,这个变化并不会带来什么影响。但是为保险起见,使用者在升级 <code class=\"codespan\">v4</code> 到 <code class=\"codespan\">v5</code> 时,还是可以检查下,是否有同时使用 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> 和 <a href=\"option.html#series-scatter.itemStyle\" target=\"_blank\">itemStyle</a> | <a href=\"option.html#series-scatter.lineStyle\" target=\"_blank\">lineStyle</a> | <a href=\"option.html#series-scatter.areaStyle\" target=\"_blank\">areaStyle</a> 的情况。</p>\n<h5 id=\"-padding\">富文本的 <code class=\"codespan\">padding</code></h5>\n<p><code class=\"codespan\">v5</code> 调整了 <a href=\"option.html#series-scatter.label.rich.&lt;style_name&gt;.padding\" target=\"_blank\">rich.?.padding</a> 的格式使其更符合 CSS 的规范。<code class=\"codespan\">v4</code> 里,例如 <code class=\"codespan\">rich.?.padding: [11, 22, 33, 44]</code> 表示 <code class=\"codespan\">padding-top</code> 是 <code class=\"codespan\">33</code> 且 <code class=\"codespan\">padding-bottom</code> 是 <code class=\"codespan\">11</code>。在 <code class=\"codespan\">v5</code> 中调整了上下的位置,<code class=\"codespan\">rich.?.padding: [11, 22, 33, 44]</code> 表示  <code class=\"codespan\">padding-top</code> 是 <code class=\"codespan\">11</code> 且 <code class=\"codespan\">padding-bottom</code> 是 <code class=\"codespan\">33</code>。</p>\n<p>如果使用者有在使用 <a href=\"option.html#series-scatter.label.rich.&lt;style_name&gt;.padding\" target=\"_blank\">rich.?.padding</a>,需要注意调整下这个顺序。</p>\n<h2 id=\"echarts-\">ECharts 的相关扩展</h2>\n<p>如果想要升级到 <code class=\"codespan\">v5</code> ,下面这些扩展需要升级到最新的版本实现兼容。</p>\n<ul>\n<li><a href=\"https://github.com/ecomfe/echarts-gl\" target=\"_blank\">echarts-gl</a></li>\n<li><a href=\"https://github.com/ecomfe/echarts-wordcloud\" target=\"_blank\">echarts-wordcloud</a></li>\n<li><a href=\"https://github.com/ecomfe/echarts-liquidfill\" target=\"_blank\">echarts-liquidfill</a></li>\n</ul>\n<h2 id=\"-api\">不再推荐使用的 API</h2>\n<p>一些 API(包括接口调用,事件监听和配置项)在 <code class=\"codespan\">v5</code> 中不再推荐使用。当然,使用者仍然可以用他们,只是会在 dev 模式下,在 console 中打印一些 warning,并不会影响功能。但是从长远维护考虑,我们还是推荐升级成新的 API。</p>\n<p>下面是不再推荐使用的 API 以及推荐的新 API:</p>\n<ul>\n<li>图形元素 transform 相关的属性被改变了:<ul>\n<li>变更点:<ul>\n<li><code class=\"codespan\">position: [number, number]</code> 改为 <code class=\"codespan\">x: number</code> / <code class=\"codespan\">y: number</code>。</li>\n<li><code class=\"codespan\">scale: [number, number]</code> 改为 <code class=\"codespan\">scaleX: number</code> / <code class=\"codespan\">scaleY: number</code>。</li>\n<li><code class=\"codespan\">origin: [number, number]</code> 改为 <code class=\"codespan\">originX: number</code> / <code class=\"codespan\">originY: number</code>。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">position</code>、<code class=\"codespan\">scale</code> 和 <code class=\"codespan\">origin</code> 仍然支持,但已不推荐使用。</li>\n<li>它影响到这些地方:<ul>\n<li>在<code class=\"codespan\">graphic</code>组件中:每个元素的声明。</li>\n<li>在 <code class=\"codespan\">custom series</code> 中:<code class=\"codespan\">renderItem</code> 返回的每个元素的声明。</li>\n<li>直接使用 zrender 图形元素时。</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>Text 相关的属性被改变:<ul>\n<li>变更点:<ul>\n<li>图形元素附带的文本的声明方式被改变:<ul>\n<li>除了 <code class=\"codespan\">Text</code> 元素之外,其他元素中的属性 <code class=\"codespan\">style.text</code> 都不推荐使用了。取而代之的是新属性 <code class=\"codespan\">textContent</code> 和 <code class=\"codespan\">textConfig</code>,他们能带来更丰富的功能。</li>\n<li>其中,下面左边部分的这些属性已不推荐使用或废弃。请使用下面的右边部分的属性:<ul>\n<li>textPosition =&gt; textConfig.position</li>\n<li>textOffset =&gt; textConfig.offset</li>\n<li>textRotation =&gt; textConfig.rotation</li>\n<li>textDistance =&gt; textConfig.distance</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>下面左边部分的属性在 <code class=\"codespan\">style</code> 和 <code class=\"codespan\">style.rich.?</code> 中已不推荐使用或废弃。请使用下面右边的属性:<ul>\n<li>textFill =&gt; fill</li>\n<li>textStroke =&gt; stroke</li>\n<li>textFont =&gt; font</li>\n<li>textStrokeWidth =&gt; lineWidth</li>\n<li>textAlign =&gt; align</li>\n<li>textVerticalAlign =&gt; verticalAlign</li>\n<li>textLineHeight =&gt;</li>\n<li>textWidth =&gt; width</li>\n<li>textHeight =&gt; hight</li>\n<li>textBackgroundColor =&gt; backgroundColor</li>\n<li>textPadding =&gt; padding</li>\n<li>textBorderColor =&gt; borderColor</li>\n<li>textBorderWidth =&gt; borderWidth</li>\n<li>textBorderRadius =&gt; borderRadius</li>\n<li>textBoxShadowColor =&gt; shadowColor</li>\n<li>textBoxShadowBlur =&gt; shadowBlur</li>\n<li>textBoxShadowOffsetX =&gt; shadowOffsetX</li>\n<li>textBoxShadowOffsetY =&gt; shadowOffsetY</li>\n</ul>\n</li>\n<li>注:这些属性并没有变化:<ul>\n<li>textShadowColor</li>\n<li>textShadowBlur</li>\n<li>textShadowOffsetX</li>\n<li>textShadowOffsetY</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>它影响到这些地方:<ul>\n<li>在 <code class=\"codespan\">graphic</code> 组件中:每个元素的声明。(原来的写法仍兼容,但在一些很复杂的情况下,可能效果不完全一致。)</li>\n<li>在自定义系列(<code class=\"codespan\">custom series</code>)中:<code class=\"codespan\">renderItem</code> 返回中的每个元素的声明。(原来的写法仍兼容,但在一些很复杂的情况下,可能效果不完全一致。)</li>\n<li>直接使用 zrender API 创建图形元素。(不再兼容,原写法被废弃。)</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>图表实例上的 API:<ul>\n<li><code class=\"codespan\">chart.one(...)</code> 已不推荐使用。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">label</code>。<ul>\n<li>属性 <code class=\"codespan\">color</code>、<code class=\"codespan\">textBorderColor</code>、<code class=\"codespan\">backgroundColor</code>、<code class=\"codespan\">borderColor</code> 中,值 <code class=\"codespan\">auto</code> 已不推荐使用,而推荐使用 <code class=\"codespan\">&#39;inherit&#39;</code> 代替。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">hoverAnimation</code>:<ul>\n<li>选项 <code class=\"codespan\">series.hoverAnimation</code> 已不推荐使用,使用 <code class=\"codespan\">series.emphasis.scale</code> 代替之。</li>\n</ul>\n</li>\n<li>折线图(<code class=\"codespan\">line series</code>):<ul>\n<li>选项 <code class=\"codespan\">series.clipOverflow</code> 已不推荐使用,使用 <code class=\"codespan\">series.clip</code> 代替之。</li>\n</ul>\n</li>\n<li>自定义系列(<code class=\"codespan\">custom series</code>)。<ul>\n<li>在 <code class=\"codespan\">renderItem</code> 中,<code class=\"codespan\">api.style(...)</code> 和 <code class=\"codespan\">api.styleEmphasis(...)</code> 已不推荐使用。因为这两个接口其实并不真正必要,也很难保证向后兼容。用户可以通过 <code class=\"codespan\">api.visual(...)</code> 获取系统自动分配的视觉信息。</li>\n</ul>\n</li>\n<li>旭日图(<code class=\"codespan\">sunburst</code>):<ul>\n<li>动作类型 <code class=\"codespan\">highlight</code> 已被弃用,请使用 <code class=\"codespan\">sunburstHighlight</code> 代替。</li>\n<li>动作类型 <code class=\"codespan\">downplay</code> 已被弃用,请使用 <code class=\"codespan\">sunburstUnhighlight</code> 代替。</li>\n<li>选项 <code class=\"codespan\">series.downplay</code> 已被弃用,请使用 <code class=\"codespan\">series.blur</code> 代替。</li>\n<li>选项 <code class=\"codespan\">series.highlightPolicy</code> 已不适用,请使用 <code class=\"codespan\">series.emphasis.focus</code> 代替。</li>\n</ul>\n</li>\n<li>饼图(<code class=\"codespan\">pie</code>):<ul>\n<li>下面左边部分的 action 名已经不推荐使用。请使用右边的 action 名。<ul>\n<li><code class=\"codespan\">pieToggleSelect</code> =&gt; <code class=\"codespan\">toggleSelect</code>。</li>\n<li><code class=\"codespan\">pieSelect</code> =&gt; <code class=\"codespan\">select</code>。</li>\n<li><code class=\"codespan\">pieUnSelect</code> =&gt; <code class=\"codespan\">unselect</code>。</li>\n</ul>\n</li>\n<li>下面左边部分的事件名已经不推荐使用。请使用右边的事件名。<ul>\n<li><code class=\"codespan\">pieselectchanged</code> =&gt; <code class=\"codespan\">selectchanged</code>。</li>\n<li><code class=\"codespan\">pieselected</code> =&gt; <code class=\"codespan\">selected</code>。</li>\n<li><code class=\"codespan\">pieunselected</code> =&gt; <code class=\"codespan\">unselected</code>。</li>\n</ul>\n</li>\n<li>选项 <code class=\"codespan\">series.label.margin</code> 已经不推荐使用。使用 <code class=\"codespan\">series.label.edgeDistance</code> 代替。</li>\n<li>选项 <code class=\"codespan\">series.clockWise</code> 已经不推荐使用。使用 <code class=\"codespan\">series.clockwise</code> 代替。</li>\n<li>选项 <code class=\"codespan\">series.hoverOffset</code> 已经不推荐使用。使用 <code class=\"codespan\">series.emphasis.scaleSize</code> 代替。</li>\n</ul>\n</li>\n<li>地图(<code class=\"codespan\">map series</code>):<ul>\n<li>下文左边部分的 action 名已经不推荐使用。请使用右边的 action 名。<ul>\n<li><code class=\"codespan\">mapToggleSelect</code> =&gt; <code class=\"codespan\">toggleSelect</code>。</li>\n<li><code class=\"codespan\">mapSelect</code> =&gt; <code class=\"codespan\">select</code>。</li>\n<li><code class=\"codespan\">mapUnSelect</code> =&gt; <code class=\"codespan\">unselect</code>。</li>\n</ul>\n</li>\n<li>下面左边部分的事件名已经不推荐使用。请使用右边的事件名。<ul>\n<li><code class=\"codespan\">mapselectchanged</code> =&gt; <code class=\"codespan\">selectchanged</code>。</li>\n<li><code class=\"codespan\">mapselected</code> =&gt; <code class=\"codespan\">selected</code>。</li>\n<li><code class=\"codespan\">mapunselected</code> =&gt; <code class=\"codespan\">unselected</code>。</li>\n</ul>\n</li>\n<li>选项 <code class=\"codespan\">series.mapType</code> 已经不推荐使用。使用 <code class=\"codespan\">series.map</code> 代替。</li>\n<li>选项 <code class=\"codespan\">series.mapLocation</code> 已经不推荐使用。</li>\n</ul>\n</li>\n<li>关系图(<code class=\"codespan\">graph series</code>):<ul>\n<li>选项 <code class=\"codespan\">series.focusNodeAdjacency</code> 已经不推荐使用。使用 <code class=\"codespan\">series.emphasis: { focus: &#39;adjacency&#39;}</code> 代替。</li>\n</ul>\n</li>\n<li>仪表盘(<code class=\"codespan\">gauge series</code>):<ul>\n<li>选项 <code class=\"codespan\">series.clockWise</code> 已经不推荐使用。使用 <code class=\"codespan\">series.clockwise</code> 代替。</li>\n<li>选项 <code class=\"codespan\">series.hoverOffset</code> 已经不推荐使用。使用 <code class=\"codespan\">series.emphasis.scaleSize</code> 代替。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">dataZoom</code> 组件:<ul>\n<li>选项 <code class=\"codespan\">dataZoom.handleIcon</code> 如果使用 <code class=\"codespan\">SVGPath</code>,需要前缀 <code class=\"codespan\">path://</code>。</li>\n</ul>\n</li>\n<li>雷达图(<code class=\"codespan\">radar</code>):<ul>\n<li>选项 <code class=\"codespan\">radar.name</code> 已经不推荐使用。使用 <code class=\"codespan\">radar.axisName</code> 代替。</li>\n<li>选项 <code class=\"codespan\">radar.nameGap</code> 已经不推荐使用。使用 <code class=\"codespan\">radar.axisNameGap</code> 代替。</li>\n</ul>\n</li>\n<li>Parse and format:<ul>\n<li><code class=\"codespan\">echarts.format.formatTime</code> 已经不推荐使用。使用 <code class=\"codespan\">echarts.time.format</code> 代替。</li>\n<li><code class=\"codespan\">echarts.number.parseDate</code> 已经不推荐使用。使用 <code class=\"codespan\">echarts.time.parse</code> 代替。</li>\n<li><code class=\"codespan\">echarts.format.getTextRect</code> 已经不推荐使用。</li>\n</ul>\n</li>\n</ul>\n"},"在打包环境中使用 ECharts":{"type":["*"],"description":"<p>假如你的开发环境使用了<code class=\"codespan\">npm</code>或者<code class=\"codespan\">yarn</code>等包管理工具,并且使用 Webpack 等打包工具进行构建,本文将会介绍如何引入 Apache ECharts<sup>TM</sup> 并通过 treeshaking 只打包需要的模块。</p>\n<h2 id=\"npm-echarts\">NPM 安装 ECharts</h2>\n<p>你可以使用如下命令通过 npm 安装 ECharts</p>\n<pre><code class=\"lang-shell\">npm install echarts --save\n</code></pre>\n<h2 id=\"-echarts\">引入 ECharts</h2>\n<pre><code class=\"lang-js\">import * as echarts from &#39;echarts&#39;;\n\n// 基于准备好的dom,初始化echarts实例\nvar myChart = echarts.init(document.getElementById(&#39;main&#39;));\n// 绘制图表\nmyChart.setOption({\n    title: {\n        text: &#39;ECharts 入门示例&#39;\n    },\n    tooltip: {},\n    xAxis: {\n        data: [&#39;衬衫&#39;, &#39;羊毛衫&#39;, &#39;雪纺衫&#39;, &#39;裤子&#39;, &#39;高跟鞋&#39;, &#39;袜子&#39;]\n    },\n    yAxis: {},\n    series: [{\n        name: &#39;销量&#39;,\n        type: &#39;bar&#39;,\n        data: [5, 20, 36, 10, 10, 20]\n    }]\n});\n</code></pre>\n<h2 id=\"-echarts-\">按需引入 ECharts 图表和组件</h2>\n<p>上面的代码会引入所有 ECharts 中所有的图表和组件,但是假如你不想引入所有组件,也可以使用 ECharts 提供的按需引入的接口来打包必须的组件。</p>\n<pre><code class=\"lang-js\">// 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。\nimport * as echarts from &#39;echarts/core&#39;;\n// 引入柱状图图表,图表后缀都为 Chart\nimport {\n    BarChart\n} from &#39;echarts/charts&#39;;\n// 引入提示框,标题,直角坐标系组件,组件后缀都为 Component\nimport {\n    TitleComponent,\n    TooltipComponent,\n    GridComponent\n} from &#39;echarts/components&#39;;\n// 引入 Canvas 渲染器,注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步\nimport {\n    CanvasRenderer\n} from &#39;echarts/renderers&#39;;\n\n// 注册必须的组件\necharts.use(\n    [TitleComponent, TooltipComponent, GridComponent, BarChart, CanvasRenderer]\n);\n\n// 接下来的使用就跟之前一样,初始化图表,设置配置项\nvar myChart = echarts.init(document.getElementById(&#39;main&#39;));\nmyChart.setOption({\n    ...\n});\n</code></pre>\n<blockquote>\n<p>需要注意的是注意为了保证打包的体积是最小的,ECharts 按需引入的时候不再提供任何渲染器,所以需要选择引入<code class=\"codespan\">CanvasRenderer</code>或者<code class=\"codespan\">SVGRenderer</code>作为渲染器。这样的好处是假如你只需要使用 svg 渲染模式,打包的结果中就不会再包含无需使用的<code class=\"codespan\">CanvasRenderer</code>模块。</p>\n</blockquote>\n<p>我们在示例编辑页的“完整代码”标签提供了非常方便的生成按需引入代码的功能。这个功能会根据当前的配置项动态生成最小的按需引入的代码。你可以直接在你的项目中使用。</p>\n<h2 id=\"-typescript-\">在 TypeScript 中按需引入</h2>\n<p>对于使用了 TypeScript 来开发 ECharts 的开发者,我们提供了类型接口来组合出最小的<code class=\"codespan\">EChartsOption</code>类型。这个更严格的类型可以有效帮助你检查出是否少加载了组件或者图表。</p>\n<pre><code class=\"lang-ts\">import * as echarts from &#39;echarts/core&#39;;\nimport {\n    BarChart,\n    // 系列类型的定义后缀都为 SeriesOption\n    BarSeriesOption,\n    LineChart,\n    LineSeriesOption\n} from &#39;echarts/charts&#39;;\nimport {\n    TitleComponent,\n    // 组件类型的定义后缀都为 ComponentOption\n    TitleComponentOption,\n    GridComponent,\n    GridComponentOption\n} from &#39;echarts/components&#39;;\nimport {\n    CanvasRenderer\n} from &#39;echarts/renderers&#39;;\n\n// 通过 ComposeOption 来组合出一个只有必须组件和图表的 Option 类型\ntype ECOption = echarts.ComposeOption&lt;\n  BarSeriesOption | LineSeriesOption | TitleComponentOption | GridComponentOption\n&gt;;\n\n// 注册必须的组件\necharts.use(\n    [TitleComponent, TooltipComponent, GridComponent, BarChart, CanvasRenderer]\n);\n\nvar option: ECOption = {\n    ...\n}\n</code></pre>\n"},"ECharts 基础概念概览":{"type":["*"],"description":"<p>本文介绍 Apache ECharts<sup>TM</sup> 最基本的名词和概念。</p>\n<h2 id=\"echarts-\">echarts 实例</h2>\n<p>一个网页中可以创建多个 <code class=\"codespan\">echarts 实例</code>。每个 <code class=\"codespan\">echarts 实例</code> 中可以创建多个图表和坐标系等等(用 <code class=\"codespan\">option</code> 来描述)。准备一个 DOM 节点(作为 echarts 的渲染容器),就可以在上面创建一个 echarts 实例。每个 echarts 实例独占一个 DOM 节点。</p>\n<p><br></p>\n<p><img width=\"500\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/multiple-ec-instance.jpg\"></p>\n<h2 id=\"-series-\">系列(series)</h2>\n<p><code class=\"codespan\">系列</code>(<a href=\"option.html#series\" target=\"_blank\">series</a>)是很常见的名词。在 echarts 里,<code class=\"codespan\">系列</code>(<a href=\"option.html#series\" target=\"_blank\">series</a>)是指:一组数值以及他们映射成的图。“系列”这个词原本可能来源于“一系列的数据”,而在 echarts 中取其扩展的概念,不仅表示数据,也表示数据映射成为的图。所以,一个 <code class=\"codespan\">系列</code> 包含的要素至少有:一组数值、图表类型(<code class=\"codespan\">series.type</code>)、以及其他的关于这些数据如何映射成图的参数。</p>\n<p>echarts 里系列类型(<code class=\"codespan\">series.type</code>)就是图表类型。系列类型(<code class=\"codespan\">series.type</code>)至少有:<a href=\"option.html#series-line\" target=\"_blank\">line</a>(折线图)、<a href=\"option.html#series-bar\" target=\"_blank\">bar</a>(柱状图)、<a href=\"option.html#series-pie\" target=\"_blank\">pie</a>(饼图)、<a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>(散点图)、<a href=\"option.html#series-graph\" target=\"_blank\">graph</a>(关系图)、<a href=\"option.html#series-tree\" target=\"_blank\">tree</a>(树图)、...</p>\n<p>如下图,右侧的 <code class=\"codespan\">option</code> 中声明了三个 <code class=\"codespan\">系列</code>(<a href=\"option.html#series\" target=\"_blank\">series</a>):<a href=\"option.html#series-pie\" target=\"_blank\">pie</a>(饼图系列)、<a href=\"option.html#series-line\" target=\"_blank\">line</a>(折线图系列)、<a href=\"option.html#series-bar\" target=\"_blank\">bar</a>(柱状图系列),每个系列中有他所需要的数据(<a href=\"option.html#series.data\" target=\"_blank\">series.data</a>)。</p>\n<p><br></p>\n<p><img width=\"700\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/series-all-a.jpg\"></p>\n<p><br></p>\n<p>类同地,下图中是另一种配置方式,系列的数据从 <a href=\"option.html#dataset\" target=\"_blank\">dataset</a> 中取:</p>\n<p><br></p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/series-all-b.jpg\"></p>\n<h2 id=\"-component-\">组件(component)</h2>\n<p>在系列之上,echarts 中各种内容,被抽象为“组件”。例如,echarts 中至少有这些组件:<a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a>(直角坐标系 X 轴)、<a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a>(直角坐标系 Y 轴)、<a href=\"option.html#grid\" target=\"_blank\">grid</a>(直角坐标系底板)、<a href=\"option.html#angleAxis\" target=\"_blank\">angleAxis</a>(极坐标系角度轴)、<a href=\"option.html#radiusAxis\" target=\"_blank\">radiusAxis</a>(极坐标系半径轴)、<a href=\"option.html#polar\" target=\"_blank\">polar</a>(极坐标系底板)、<a href=\"option.html#geo\" target=\"_blank\">geo</a>(地理坐标系)、<a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a>(数据区缩放组件)、<a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a>(视觉映射组件)、<a href=\"option.html#tooltip\" target=\"_blank\">tooltip</a>(提示框组件)、<a href=\"option.html#toolbox\" target=\"_blank\">toolbox</a>(工具栏组件)、<a href=\"option.html#series\" target=\"_blank\">series</a>(系列)、...</p>\n<p>我们注意到,其实系列(<a href=\"option.html#series\" target=\"_blank\">series</a>)也是一种组件,可以理解为:系列是专门绘制“图”的组件。</p>\n<p>如下图,右侧的 <code class=\"codespan\">option</code> 中声明了各个组件(包括系列),各个组件就出现在图中。</p>\n<p><br></p>\n<p><img width=\"800\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/components.jpg\"></p>\n<p><br></p>\n<p>注:因为系列是一种特殊的组件,所以有时候也会出现 “组件和系列” 这样的描述,这种语境下的 “组件” 是指:除了 “系列” 以外的其他组件。</p>\n<h2 id=\"-option-\">用 option 描述图表</h2>\n<p>上面已经出现了 <code class=\"codespan\">option</code> 这个概念。echarts 的使用者,使用 <code class=\"codespan\">option</code> 来描述其对图表的各种需求,包括:有什么数据、要画什么图表、图表长什么样子、含有什么组件、组件能操作什么事情等等。简而言之,<code class=\"codespan\">option</code> 表述了:<code class=\"codespan\">数据</code>、<code class=\"codespan\">数据如何映射成图形</code>、<code class=\"codespan\">交互行为</code>。</p>\n<pre><code class=\"lang-js\">// 创建 echarts 实例。\nvar dom = document.getElementById(&#39;dom-id&#39;);\nvar chart = echarts.init(dom);\n\n// 用 option 描述 `数据`、`数据如何映射成图形`、`交互行为` 等。\n// option 是个大的 JavaScript 对象。\nvar option = {\n    // option 每个属性是一类组件。\n    legend: {...},\n    grid: {...},\n    tooltip: {...},\n    toolbox: {...},\n    dataZoom: {...},\n    visualMap: {...},\n    // 如果有多个同类组件,那么就是个数组。例如这里有三个 X 轴。\n    xAxis: [\n        // 数组每项表示一个组件实例,用 type 描述“子类型”。\n        {type: &#39;category&#39;, ...},\n        {type: &#39;category&#39;, ...},\n        {type: &#39;value&#39;, ...}\n    ],\n    yAxis: [{...}, {...}],\n    // 这里有多个系列,也是构成一个数组。\n    series: [\n        // 每个系列,也有 type 描述“子类型”,即“图表类型”。\n        {type: &#39;line&#39;, data: [[&#39;AA&#39;, 332], [&#39;CC&#39;, 124], [&#39;FF&#39;, 412], ... ]},\n        {type: &#39;line&#39;, data: [2231, 1234, 552, ... ]},\n        {type: &#39;line&#39;, data: [[4, 51], [8, 12], ... ]}\n    }]\n};\n\n// 调用 setOption 将 option 输入 echarts,然后 echarts 渲染图表。\nchart.setOption(option);\n</code></pre>\n<p>系列里的 <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> 是本系列的数据。而另一种描述方式,系列数据从 <a href=\"option.html#dataset\" target=\"_blank\">dataset</a> 中取:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: {\n        source: [\n            [121, &#39;XX&#39;, 442, 43.11],\n            [663, &#39;ZZ&#39;, 311, 91.14],\n            [913, &#39;ZZ&#39;, 312, 92.12],\n            ...\n        ]\n    },\n    xAxis: {},\n    yAxis: {},\n    series: [\n        // 数据从 dataset 中取,encode 中的数值是 dataset.source 的维度 index (即第几列)\n        {type: &#39;bar&#39;, encode: {x: 1, y: 0}},\n        {type: &#39;bar&#39;, encode: {x: 1, y: 2}},\n        {type: &#39;scatter&#39;, encode: {x: 1, y: 3}},\n        ...\n    ]\n};\n</code></pre>\n<h2 id=\"-\">组件的定位</h2>\n<p>不同的组件、系列,常有不同的定位方式。</p>\n<p><br></p>\n<p><strong>[类 CSS 的绝对定位]</strong></p>\n<p><br></p>\n<p>多数组件和系列,都能够基于 <code class=\"codespan\">top</code> / <code class=\"codespan\">right</code> / <code class=\"codespan\">down</code> / <code class=\"codespan\">left</code> / <code class=\"codespan\">width</code> / <code class=\"codespan\">height</code> 绝对定位。\n这种绝对定位的方式,类似于 <code class=\"codespan\">CSS</code> 的绝对定位(<code class=\"codespan\">position: absolute</code>)。绝对定位基于的是 echarts 容器 DOM 节点。</p>\n<p>其中,他们每个值都可以是:</p>\n<ul>\n<li>绝对数值(例如 <code class=\"codespan\">bottom: 54</code> 表示:距离 echarts 容器底边界 <code class=\"codespan\">54</code> 像素)。</li>\n<li>或者基于 echarts 容器高宽的百分比(例如 <code class=\"codespan\">right: &#39;20%&#39;</code> 表示:距离 echarts 容器右边界的距离是 echarts 容器宽度的 <code class=\"codespan\">20%</code>)。</li>\n</ul>\n<p>如下图的例子,对 <a href=\"option.html#grid\" target=\"_blank\">grid</a> 组件(也就是直角坐标系的底板)设置 <code class=\"codespan\">left</code>、<code class=\"codespan\">right</code>、<code class=\"codespan\">height</code>、<code class=\"codespan\">bottom</code> 达到的效果。</p>\n<p><br></p>\n<p><img width=\"800\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/locate.jpg\"></p>\n<p><br></p>\n<p>我们可以注意到,<code class=\"codespan\">left</code> <code class=\"codespan\">right</code> <code class=\"codespan\">width</code> 是一组(横向)、<code class=\"codespan\">top</code> <code class=\"codespan\">bottom</code> <code class=\"codespan\">height</code> 是另一组(纵向)。这两组没有什么关联。每组中,至多设置两项就可以了,第三项会被自动算出。例如,设置了 <code class=\"codespan\">left</code> 和 <code class=\"codespan\">right</code> 就可以了,<code class=\"codespan\">width</code> 会被自动算出。</p>\n<p><br></p>\n<p><strong>[中心半径定位]</strong></p>\n<p><br></p>\n<p>少数圆形的组件或系列,可以使用“中心半径定位”,例如,<a href=\"option.html#series-pie\" target=\"_blank\">pie</a>(饼图)、<a href=\"option.html#series-sunburst\" target=\"_blank\">sunburst</a>(旭日图)、<a href=\"option.html#polar\" target=\"_blank\">polar</a>(极坐标系)。</p>\n<p>中心半径定位,往往依据 <a href=\"option.html#series-pie.center\" target=\"_blank\">center</a>(中心)、<a href=\"option.html#series-pie.radius\" target=\"_blank\">radius</a>(半径)来决定位置。</p>\n<p><br></p>\n<p><strong>[其他定位]</strong></p>\n<p><br></p>\n<p>少数组件和系列可能有自己的特殊的定位方式。在他们的文档中会有说明。</p>\n<h2 id=\"-\">坐标系</h2>\n<p>很多系列,例如 <a href=\"option.html#series-line\" target=\"_blank\">line</a>(折线图)、<a href=\"option.html#series-bar\" target=\"_blank\">bar</a>(柱状图)、<a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>(散点图)、<a href=\"option.html#series-heatmap\" target=\"_blank\">heatmap</a>(热力图)等等,需要运行在 “坐标系” 上。坐标系用于布局这些图,以及显示数据的刻度等等。例如 echarts 中至少支持这些坐标系:<a href=\"option.html#grid\" target=\"_blank\">直角坐标系</a>、<a href=\"option.html#polar\" target=\"_blank\">极坐标系</a>、<a href=\"option.html#geo\" target=\"_blank\">地理坐标系(GEO)</a>、<a href=\"option.html#singleAxis\" target=\"_blank\">单轴坐标系</a>、<a href=\"option.html#calendar\" target=\"_blank\">日历坐标系</a> 等。其他一些系列,例如 <a href=\"option.html#series-pie\" target=\"_blank\">pie</a>(饼图)、<a href=\"option.html#series-tree\" target=\"_blank\">tree</a>(树图)等等,并不依赖坐标系,能独立存在。还有一些图,例如 <a href=\"option.html#series-graph\" target=\"_blank\">graph</a>(关系图)等,既能独立存在,也能布局在坐标系中,依据用户的设定而来。</p>\n<p>一个坐标系,可能由多个组件协作而成。我们以最常见的直角坐标系来举例。直角坐标系中,包括有 <a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a>(直角坐标系 X 轴)、<a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a>(直角坐标系 Y 轴)、<a href=\"option.html#grid\" target=\"_blank\">grid</a>(直角坐标系底板)三种组件。<code class=\"codespan\">xAxis</code>、<code class=\"codespan\">yAxis</code> 被 <code class=\"codespan\">grid</code> 自动引用并组织起来,共同工作。</p>\n<p>我们来看下图,这是最简单的使用直角坐标系的方式:只声明了 <code class=\"codespan\">xAxis</code>、<code class=\"codespan\">yAxis</code> 和一个 <code class=\"codespan\">scatter</code>(散点图系列),echarts 暗自为他们创建了 <code class=\"codespan\">grid</code> 并关联起他们:</p>\n<p><br></p>\n<p><img width=\"450\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/coord-sys-0.jpg\"></p>\n<p><br></p>\n<p>再来看下图,两个 <code class=\"codespan\">yAxis</code>,共享了一个 <code class=\"codespan\">xAxis</code>。两个 <code class=\"codespan\">series</code>,也共享了这个 <code class=\"codespan\">xAxis</code>,但是分别使用不同的 <code class=\"codespan\">yAxis</code>,使用 <a href=\"option.html#series-line.yAxisIndex\" target=\"_blank\">yAxisIndex</a> 来指定它自己使用的是哪个 <code class=\"codespan\">yAxis</code>:</p>\n<p><br></p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/coord-sys-1.jpg\"></p>\n<p><br></p>\n<p>再来看下图,一个 echarts 实例中,有多个 <code class=\"codespan\">grid</code>,每个 <code class=\"codespan\">grid</code> 分别有 <code class=\"codespan\">xAxis</code>、<code class=\"codespan\">yAxis</code>,他们使用 <code class=\"codespan\">xAxisIndex</code>、<code class=\"codespan\">yAxisIndex</code>、<code class=\"codespan\">gridIndex</code> 来指定引用关系:</p>\n<p><br></p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/basic-concepts-overview/coord-sys-2.jpg\"></p>\n<p><br></p>\n<p>另外,一个系列,往往能运行在不同的坐标系中。例如,一个 <a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>(散点图)能运行在 <a href=\"option.html#grid\" target=\"_blank\">直角坐标系</a>、<a href=\"option.html#polar\" target=\"_blank\">极坐标系</a> 、<a href=\"option.html#geo\" target=\"_blank\">地理坐标系(GEO)</a> 等各种坐标系中。同样,一个坐标系,也能承载不同的系列,如上面出现的各种例子,<a href=\"option.html#grid\" target=\"_blank\">直角坐标系</a> 里承载了 <a href=\"option.html#series-line\" target=\"_blank\">line</a>(折线图)、<a href=\"option.html#series-bar\" target=\"_blank\">bar</a>(柱状图)等等。</p>\n"},"个性化图表的样式":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> 提供了丰富的自定义配置选项,并且能够从全局、系列、数据三个层级去设置数据图形的样式。下面我们来看如何使用 ECharts 实现下面这个南丁格尔图:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-styling-step5&edit=1&reset=1\" width=\"500\" height=\"400\" ></iframe>\n\n\n<h2 id=\"-\">绘制南丁格尔图</h2>\n<p><a href=\"#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts\">5分钟上手ECharts</a> 中讲了如何绘制一个简单的柱状图,这次要画的是饼图,饼图主要是通过扇形的弧度表现不同类目的数据在总和中的占比,它的数据格式比柱状图更简单,只有一维的数值,不需要给类目。因为不在直角坐标系上,所以也不需要<code class=\"codespan\">xAxis</code>,<code class=\"codespan\">yAxis</code>。</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    series : [\n        {\n            name: &#39;访问来源&#39;,\n            type: &#39;pie&#39;,\n            radius: &#39;55%&#39;,\n            data:[\n                {value:235, name:&#39;视频广告&#39;},\n                {value:274, name:&#39;联盟广告&#39;},\n                {value:310, name:&#39;邮件营销&#39;},\n                {value:335, name:&#39;直接访问&#39;},\n                {value:400, name:&#39;搜索引擎&#39;}\n            ]\n        }\n    ]\n})\n</code></pre>\n<p>上面代码就能画出一个简单的饼图:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-styling-step0&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>这里<code class=\"codespan\">data</code>属性值不像入门教程里那样每一项都是单个数值,而是一个包含 <code class=\"codespan\">name</code> 和 <code class=\"codespan\">value</code> 属性的对象,ECharts 中的数据项都是既可以只设成数值,也可以设成一个包含有名称、该数据图形的样式配置、标签配置的对象,具体见 <a href=\"option.html#series-pie.data\" target=\"_blank\">data</a> 文档。</p>\n<p>ECharts 中的<a href=\"option.html#series-pie\" target=\"_blank\">饼图</a>也支持通过设置 <a href=\"option.html#series-pie.roseType\" target=\"_blank\">roseType</a> 显示成南丁格尔图。</p>\n<pre><code class=\"lang-js\">roseType: &#39;angle&#39;\n</code></pre>\n<p>南丁格尔图会通过半径表示数据的大小。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-styling-step1&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<h2 id=\"-\">阴影的配置</h2>\n<p>ECharts 中有一些通用的样式,诸如阴影、透明度、颜色、边框颜色、边框宽度等,这些样式一般都会在系列的 <a href=\"#series-pie.itemStyle\">itemStyle</a> 里设置。例如阴影的样式可以通过下面几个配置项设置:</p>\n<pre><code class=\"lang-js\">itemStyle: {\n    // 阴影的大小\n    shadowBlur: 200,\n    // 阴影水平方向上的偏移\n    shadowOffsetX: 0,\n    // 阴影垂直方向上的偏移\n    shadowOffsetY: 0,\n    // 阴影颜色\n    shadowColor: &#39;rgba(0, 0, 0, 0.5)&#39;\n}\n</code></pre>\n<p>加上阴影后的效果:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-styling-step2&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p><code class=\"codespan\">itemStyle</code>的<code class=\"codespan\">emphasis</code>是鼠标 hover 时候的高亮样式。这个示例里是正常的样式下加阴影,但是可能更多的时候是 hover 的时候通过阴影突出。</p>\n<pre><code class=\"lang-js\">itemStyle: {\n    emphasis: {\n        shadowBlur: 200,\n        shadowColor: &#39;rgba(0, 0, 0, 0.5)&#39;\n    }\n}\n</code></pre>\n<h2 id=\"-\">深色背景和浅色标签</h2>\n<p>现在我们需要把整个主题改成开始的示例中那样的深色主题,这就需要改背景色和文本颜色。</p>\n<p>背景色是全局的,所以直接在 option 下设置 <a href=\"option.html#backgroundColor\" target=\"_blank\">backgroundColor</a></p>\n<pre><code class=\"lang-js\">setOption({\n    backgroundColor: &#39;#2c343c&#39;\n})\n</code></pre>\n<p>文本的样式可以设置全局的 <a href=\"option.html#textStyle\" target=\"_blank\">textStyle</a>。</p>\n<pre><code class=\"lang-js\">setOption({\n    textStyle: {\n        color: &#39;rgba(255, 255, 255, 0.3)&#39;\n    }\n})\n</code></pre>\n<p>也可以每个系列分别设置,每个系列的文本设置在 <a href=\"option.html#series-pie.label.textStyle\" target=\"_blank\">label.textStyle</a>。</p>\n<pre><code class=\"lang-js\">label: {\n    textStyle: {\n        color: &#39;rgba(255, 255, 255, 0.3)&#39;\n    }\n}\n</code></pre>\n<p>饼图的话还要将标签的视觉引导线的颜色设为浅色。</p>\n<pre><code class=\"lang-js\">labelLine: {\n    lineStyle: {\n        color: &#39;rgba(255, 255, 255, 0.3)&#39;\n    }\n}\n</code></pre>\n<p>如下:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-styling-step3&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>跟<code class=\"codespan\">itemStyle</code>一样,<code class=\"codespan\">label</code>和<code class=\"codespan\">labelLine</code>的样式也有<code class=\"codespan\">emphasis</code>状态。</p>\n<h2 id=\"-\">设置扇形的颜色</h2>\n<p>扇形的颜色也是在 itemStyle 中设置:</p>\n<pre><code class=\"lang-js\">itemStyle: {\n    // 设置扇形的颜色\n    color: &#39;#c23531&#39;,\n    shadowBlur: 200,\n    shadowColor: &#39;rgba(0, 0, 0, 0.5)&#39;\n}\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-styling-step4&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>跟我们要实现的效果已经挺像了,除了每个扇形的颜色,效果中阴影下面的扇形颜色更深,有种光线被遮住的感觉,从而会出现层次感和空间感。</p>\n<p>ECharts 中每个扇形颜色的可以通过分别设置 data 下的数据项实现。</p>\n<pre><code class=\"lang-js\">data: [{\n    value:400,\n    name:&#39;搜索引擎&#39;,\n    itemStyle: {\n        color: &#39;#c23531&#39;\n    }\n}, ...]\n</code></pre>\n<p>但是这次因为只有明暗度的变化,所以有一种更快捷的方式是通过 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> 组件将数值的大小映射到明暗度。</p>\n<pre><code class=\"lang-js\">visualMap: {\n    // 不显示 visualMap 组件,只用于明暗度的映射\n    show: false,\n    // 映射的最小值为 80\n    min: 80,\n    // 映射的最大值为 600\n    max: 600,\n    inRange: {\n        // 明暗度的范围是 0 到 1\n        colorLightness: [0, 1]\n    }\n}\n</code></pre>\n<p>最终效果:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-styling-step5&edit=1&reset=1\" width=\"500\" height=\"400\" ></iframe>\n\n\n\n\n\n"},"ECharts 中的样式简介":{"type":["*"],"description":"<p>本文主要是大略概述,用哪些方法,可以在 Apache ECharts<sup>TM</sup> 中设置样式,改变图形元素或者文字的颜色、明暗、大小等。</p>\n<blockquote>\n<p>之所以用“样式”这种可能不很符合数据可视化思维的词,是因为,比较通俗易懂。</p>\n</blockquote>\n<p>本文介绍这几种方式,他们的功能范畴可能会有交叉(即同一种细节的效果可能可以用不同的方式实现),但是他们各有各的场景偏好。</p>\n<ul>\n<li>颜色主题(Theme)</li>\n<li>调色盘</li>\n<li>直接样式设置(itemStyle、lineStyle、areaStyle、label、...)</li>\n<li>视觉映射(visualMap)</li>\n</ul>\n<p>其他关于样式的文章,参见:<a href=\"#%E4%B8%AA%E6%80%A7%E5%8C%96%E5%9B%BE%E8%A1%A8%E7%9A%84%E6%A0%B7%E5%BC%8F\">个性化图表的样式</a>,<a href=\"#%E6%95%B0%E6%8D%AE%E7%9A%84%E8%A7%86%E8%A7%89%E6%98%A0%E5%B0%84\">数据的视觉映射</a>。</p>\n<h2 id=\"-theme-\">颜色主题(Theme)</h2>\n<p>最简单的更改全局样式的方式,是直接采用颜色主题(theme)。例如,在 <a href=\"https://echarts.apache.org/examples/zh/index.html\" target=\"_blank\">示例集合</a> 中,可以选择 “Theme”,直接看到采用主题的效果。</p>\n<p>ECharts4 开始,除了一贯的默认主题外,新内置了两套主题,分别为 <code class=\"codespan\">&#39;light&#39;</code> 和 <code class=\"codespan\">&#39;dark&#39;</code>。可以这么来使用它们:</p>\n<pre><code class=\"lang-js\">var chart = echarts.init(dom, &#39;light&#39;);\n</code></pre>\n<p>或者</p>\n<pre><code class=\"lang-js\">var chart = echarts.init(dom, &#39;dark&#39;);\n</code></pre>\n<p>其他的主题,没有内置在 ECharts 中,需要自己加载。这些主题可以在 <a href=\"https://echarts.apache.org/zh/theme-builder.html\" target=\"_blank\">主题编辑器</a> 里访问到。也可以使用这个主题编辑器,自己编辑主题。下载下来的主题可以这样使用:</p>\n<p>如果主题保存为 JSON 文件,那么可以自行加载和注册,例如:</p>\n<pre><code class=\"lang-js\">// 假设主题名称是 &quot;vintage&quot;\n$.getJSON(&#39;xxx/xxx/vintage.json&#39;, function (themeJSON) {\n    echarts.registerTheme(&#39;vintage&#39;, JSON.parse(themeJSON))\n    var chart = echarts.init(dom, &#39;vintage&#39;);\n});\n</code></pre>\n<p>如果保存为 UMD 格式的 JS 文件,那么支持了自注册,直接引入 JS 文件即可:</p>\n<pre><code class=\"lang-js\">// HTML 引入 vintage.js 文件后(假设主题名称是 &quot;vintage&quot;)\nvar chart = echarts.init(dom, &#39;vintage&#39;);\n// ...\n</code></pre>\n<h2 id=\"-\">调色盘</h2>\n<p>调色盘,可以在 option 中设置。它给定了一组颜色,图形、系列会自动从其中选择颜色。\n可以设置全局的调色盘,也可以设置系列自己专属的调色盘。</p>\n<pre><code class=\"lang-js\">option = {\n    // 全局调色盘。\n    color: [&#39;#c23531&#39;,&#39;#2f4554&#39;, &#39;#61a0a8&#39;, &#39;#d48265&#39;, &#39;#91c7ae&#39;,&#39;#749f83&#39;,  &#39;#ca8622&#39;, &#39;#bda29a&#39;,&#39;#6e7074&#39;, &#39;#546570&#39;, &#39;#c4ccd3&#39;],\n\n    series: [{\n        type: &#39;bar&#39;,\n        // 此系列自己的调色盘。\n        color: [&#39;#dd6b66&#39;,&#39;#759aa0&#39;,&#39;#e69d87&#39;,&#39;#8dc1a9&#39;,&#39;#ea7e53&#39;,&#39;#eedd78&#39;,&#39;#73a373&#39;,&#39;#73b9bc&#39;,&#39;#7289ab&#39;, &#39;#91ca8c&#39;,&#39;#f49f42&#39;],\n        ...\n    }, {\n        type: &#39;pie&#39;,\n        // 此系列自己的调色盘。\n        color: [&#39;#37A2DA&#39;, &#39;#32C5E9&#39;, &#39;#67E0E3&#39;, &#39;#9FE6B8&#39;, &#39;#FFDB5C&#39;,&#39;#ff9f7f&#39;, &#39;#fb7293&#39;, &#39;#E062AE&#39;, &#39;#E690D1&#39;, &#39;#e7bcf3&#39;, &#39;#9d96f5&#39;, &#39;#8378EA&#39;, &#39;#96BFFF&#39;],\n        ...\n    }]\n}\n</code></pre>\n<h2 id=\"-itemstyle-linestyle-areastyle-label-\">直接的样式设置 itemStyle, lineStyle, areaStyle, label, ...</h2>\n<p>直接的样式设置是比较常用设置方式。纵观 ECharts 的 <a href=\"option.html\" target=\"_blank\">option</a> 中,很多地方可以设置 <a href=\"option.html#series.itemStyle\" target=\"_blank\">itemStyle</a>、<a href=\"option.html#series-line.lineStyle\" target=\"_blank\">lineStyle</a>、<a href=\"option.html#series-line.areaStyle\" target=\"_blank\">areaStyle</a>、<a href=\"option.html#series.label\" target=\"_blank\">label</a> 等等。这些的地方可以直接设置图形元素的颜色、线宽、点的大小、标签的文字、标签的样式等等。</p>\n<p>一般来说,ECharts 的各个系列和组件,都遵从这些命名习惯,虽然不同图表和组件中,<code class=\"codespan\">itemStyle</code>、<code class=\"codespan\">label</code> 等可能出现在不同的地方。</p>\n<p>直接样式设置的另一篇介绍,参见 <a href=\"#%E4%B8%AA%E6%80%A7%E5%8C%96%E5%9B%BE%E8%A1%A8%E7%9A%84%E6%A0%B7%E5%BC%8F\">个性化图表的样式</a>。</p>\n<h2 id=\"-emphasis\">高亮的样式:emphasis</h2>\n<p>在鼠标悬浮到图形元素上时,一般会出现高亮的样式。默认情况下,高亮的样式是根据普通样式自动生成的。但是高亮的样式也可以自己定义,主要是通过 <a href=\"option.html#series-scatter.emphasis\" target=\"_blank\">emphasis</a> 属性来定制。<a href=\"option.html#series-scatter.emphasis\" target=\"_blank\">emphsis</a> 中的结构,和普通样式的结构相同,例如:</p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;scatter&#39;,\n\n        // 普通样式。\n        itemStyle: {\n            // 点的颜色。\n            color: &#39;red&#39;\n        },\n        label: {\n            show: true,\n            // 标签的文字。\n            formatter: &#39;This is a normal label.&#39;\n        },\n\n        // 高亮样式。\n        emphasis: {\n            itemStyle: {\n                // 高亮时点的颜色。\n                color: &#39;blue&#39;\n            },\n            label: {\n                show: true,\n                // 高亮时标签的文字。\n                formatter: &#39;This is a emphasis label.&#39;\n            }\n        }\n    }\n}\n</code></pre>\n<p>注意:在 ECharts4 以前,高亮和普通样式的写法,是这样的:</p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;scatter&#39;,\n\n        itemStyle: {\n            // 普通样式。\n            normal: {\n                // 点的颜色。\n                color: &#39;red&#39;\n            },\n            // 高亮样式。\n            emphasis: {\n                // 高亮时点的颜色。\n                color: &#39;blue&#39;\n            }\n        },\n\n        label: {\n            // 普通样式。\n            normal: {\n                show: true,\n                // 标签的文字。\n                formatter: &#39;This is a normal label.&#39;\n            },\n            // 高亮样式。\n            emphasis: {\n                show: true,\n                // 高亮时标签的文字。\n                formatter: &#39;This is a emphasis label.&#39;\n            }\n        }\n    }\n}\n</code></pre>\n<p>这种写法 <strong>仍然被兼容</strong>,但是,不再推荐。事实上,多数情况下,使用者只会配置普通状态下的样式,而使用默认的高亮样式。所以在 ECharts4 中,支持不写 <code class=\"codespan\">normal</code> 的配置方法(即本文开头的那种写法),使得配置项更扁平简单。</p>\n<h2 id=\"-visualmap-\">通过 visualMap 组件设定样式</h2>\n<p><a href=\"option.html#visualMap\" target=\"_blank\">visualMap 组件</a> 能指定数据到颜色、图形尺寸的映射规则,详见 <a href=\"#%E6%95%B0%E6%8D%AE%E7%9A%84%E8%A7%86%E8%A7%89%E6%98%A0%E5%B0%84\">数据的视觉映射</a>。</p>\n"},"异步数据加载和更新":{"type":["*"],"description":"<h2 id=\"-\">异步加载</h2>\n<p><a href=\"#getting-started\">入门示例</a>中的数据是在初始化后 <code class=\"codespan\">setOption</code> 中直接填入的,但是很多时候可能数据需要异步加载后再填入。Apache ECharts<sup>TM</sup> 中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要通过 jQuery 等工具异步获取数据后通过 <code class=\"codespan\">setOption</code> 填入数据和配置项就行。</p>\n<pre><code class=\"lang-js\">var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n$.get(&#39;data.json&#39;).done(function (data) {\n    myChart.setOption({\n        title: {\n            text: &#39;异步数据加载示例&#39;\n        },\n        tooltip: {},\n        legend: {\n            data:[&#39;销量&#39;]\n        },\n        xAxis: {\n            data: data.categories\n        },\n        yAxis: {},\n        series: [{\n            name: &#39;销量&#39;,\n            type: &#39;bar&#39;,\n            data: data.data\n        }]\n    });\n});\n</code></pre>\n<p>或者先设置完其它的样式,显示一个空的直角坐标轴,然后获取数据后填入数据。</p>\n<pre><code class=\"lang-js\">var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n// 显示标题,图例和空的坐标轴\nmyChart.setOption({\n    title: {\n        text: &#39;异步数据加载示例&#39;\n    },\n    tooltip: {},\n    legend: {\n        data:[&#39;销量&#39;]\n    },\n    xAxis: {\n        data: []\n    },\n    yAxis: {},\n    series: [{\n        name: &#39;销量&#39;,\n        type: &#39;bar&#39;,\n        data: []\n    }]\n});\n\n// 异步加载数据\n$.get(&#39;data.json&#39;).done(function (data) {\n    // 填入数据\n    myChart.setOption({\n        xAxis: {\n            data: data.categories\n        },\n        series: [{\n            // 根据名字对应到相应的系列\n            name: &#39;销量&#39;,\n            data: data.data\n        }]\n    });\n});\n</code></pre>\n<p>如下:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-async&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<p>ECharts 中在更新数据的时候需要通过<code class=\"codespan\">name</code>属性对应到相应的系列,上面示例中如果<code class=\"codespan\">name</code>不存在也可以根据系列的顺序正常更新,但是更多时候推荐更新数据的时候加上系列的<code class=\"codespan\">name</code>数据。</p>\n<h2 id=\"loading-\">loading 动画</h2>\n<p>如果数据加载时间较长,一个空的坐标轴放在画布上也会让用户觉得是不是产生 bug 了,因此需要一个 loading 的动画来提示用户数据正在加载。</p>\n<p>ECharts 默认有提供了一个简单的加载动画。只需要调用 <a href=\"api.html#echartsInstance.showLoading\" target=\"_blank\">showLoading</a> 方法显示。数据加载完成后再调用 <a href=\"api.html#echartsInstance.hideLoading\" target=\"_blank\">hideLoading</a> 方法隐藏加载动画。</p>\n<pre><code class=\"lang-js\">myChart.showLoading();\n$.get(&#39;data.json&#39;).done(function (data) {\n    myChart.hideLoading();\n    myChart.setOption(...);\n});\n</code></pre>\n<p>效果如下:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-loading&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n<h2 id=\"-\">数据的动态更新</h2>\n<p>ECharts 由数据驱动,数据的改变驱动图表展现的改变,因此动态数据的实现也变得异常简单。</p>\n<p>所有数据的更新都通过 <a href=\"#api.html#echartsInstance.setOption\">setOption</a>实现,你只需要定时获取数据,<a href=\"#api.html#echartsInstance.setOption\">setOption</a> 填入数据,而不用考虑数据到底产生了那些变化,ECharts 会找到两组数据之间的差异然后通过合适的动画去表现数据的变化。</p>\n<blockquote>\n<p>ECharts 3 中移除了 ECharts 2 中的 addData 方法。如果只需要加入单个数据,可以先 data.push(value) 后 setOption</p>\n</blockquote>\n<p>具体可以看下面示例:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/tutorial-dynamic-data&edit=1&reset=1\" width=\"400\" height=\"300\" ></iframe>\n\n\n\n"},"使用 dataset 管理数据":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> 4 开始支持了 <code class=\"codespan\">dataset</code> 组件用于单独的数据集声明,从而数据可以单独管理,被多个组件复用,并且可以基于数据指定数据到视觉的映射。这在不少场景下能带来使用上的方便。</p>\n<p>ECharts 4 以前,数据只能声明在各个“系列(series)”中,例如:</p>\n<pre><code class=\"lang-js\">option = {\n    xAxis: {\n        type: &#39;category&#39;,\n        data: [&#39;Matcha Latte&#39;, &#39;Milk Tea&#39;, &#39;Cheese Cocoa&#39;, &#39;Walnut Brownie&#39;]\n    },\n    yAxis: {},\n    series: [\n        {\n            type: &#39;bar&#39;,\n            name: &#39;2015&#39;,\n            data: [89.3, 92.1, 94.4, 85.4]\n        },\n        {\n            type: &#39;bar&#39;,\n            name: &#39;2016&#39;,\n            data: [95.8, 89.4, 91.2, 76.9]\n        },\n        {\n            type: &#39;bar&#39;,\n            name: &#39;2017&#39;,\n            data: [97.7, 83.1, 92.5, 78.1]\n        }\n    ]\n}\n</code></pre>\n<p>这种方式的优点是,直观易理解,以及适于对一些特殊图表类型进行一定的数据类型定制。但是缺点是,为匹配这种数据输入形式,常需要有数据处理的过程,把数据分割设置到各个系列(和类目轴)中。此外,不利于多个系列共享一份数据,也不利于基于原始数据进行图表类型、系列的映射安排。</p>\n<p>于是,ECharts 4 提供了 <code class=\"codespan\">数据集</code>(<code class=\"codespan\">dataset</code>)组件来单独声明数据,它带来了这些效果:</p>\n<ul>\n<li>能够贴近这样的数据可视化常见思维方式:(I) 提供数据,(II) 指定数据到视觉的映射,从而形成图表。</li>\n<li>数据和其他配置可以被分离开来。数据常变,其他配置常不变。分开易于分别管理。</li>\n<li>数据可以被多个系列或者组件复用,对于大数据量的场景,不必为每个系列创建一份数据。</li>\n<li>支持更多的数据的常用格式,例如二维数组、对象数组等,一定程度上避免使用者为了数据格式而进行转换。</li>\n</ul>\n<h2 id=\"-\">入门例子</h2>\n<p>下面是一个最简单的 <code class=\"codespan\">dataset</code> 的例子:</p>\n<pre><code class=\"lang-js\">option = {\n    legend: {},\n    tooltip: {},\n    dataset: {\n        // 提供一份数据。\n        source: [\n            [&#39;product&#39;, &#39;2015&#39;, &#39;2016&#39;, &#39;2017&#39;],\n            [&#39;Matcha Latte&#39;, 43.3, 85.8, 93.7],\n            [&#39;Milk Tea&#39;, 83.1, 73.4, 55.1],\n            [&#39;Cheese Cocoa&#39;, 86.4, 65.2, 82.5],\n            [&#39;Walnut Brownie&#39;, 72.4, 53.9, 39.1]\n        ]\n    },\n    // 声明一个 X 轴,类目轴(category)。默认情况下,类目轴对应到 dataset 第一列。\n    xAxis: {type: &#39;category&#39;},\n    // 声明一个 Y 轴,数值轴。\n    yAxis: {},\n    // 声明多个 bar 系列,默认情况下,每个系列会自动对应到 dataset 的每一列。\n    series: [\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;}\n    ]\n}\n</code></pre>\n<p>效果如下:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=dataset-simple0&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n<p>或者也可以使用常见的对象数组的格式:</p>\n<pre><code class=\"lang-js\">option = {\n    legend: {},\n    tooltip: {},\n    dataset: {\n        // 用 dimensions 指定了维度的顺序。直角坐标系中,\n        // 默认把第一个维度映射到 X 轴上,第二个维度映射到 Y 轴上。\n        // 如果不指定 dimensions,也可以通过指定 series.encode\n        // 完成映射,参见后文。\n        dimensions: [&#39;product&#39;, &#39;2015&#39;, &#39;2016&#39;, &#39;2017&#39;],\n        source: [\n            {product: &#39;Matcha Latte&#39;, &#39;2015&#39;: 43.3, &#39;2016&#39;: 85.8, &#39;2017&#39;: 93.7},\n            {product: &#39;Milk Tea&#39;, &#39;2015&#39;: 83.1, &#39;2016&#39;: 73.4, &#39;2017&#39;: 55.1},\n            {product: &#39;Cheese Cocoa&#39;, &#39;2015&#39;: 86.4, &#39;2016&#39;: 65.2, &#39;2017&#39;: 82.5},\n            {product: &#39;Walnut Brownie&#39;, &#39;2015&#39;: 72.4, &#39;2016&#39;: 53.9, &#39;2017&#39;: 39.1}\n        ]\n    },\n    xAxis: {type: &#39;category&#39;},\n    yAxis: {},\n    series: [\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;},\n        {type: &#39;bar&#39;}\n    ]\n};\n</code></pre>\n<h2 id=\"-\">数据到图形的映射</h2>\n<p>本篇里,我们制作数据可视化图表的逻辑是这样的:基于数据,在配置项中指定如何映射到图形。</p>\n<p>概略而言,可以进行这些映射:</p>\n<ul>\n<li>指定 dataset 的列(column)还是行(row)映射为图形系列(series)。这件事可以使用 <a href=\"option.html#series.seriesLayoutBy\" target=\"_blank\">series.seriesLayoutBy</a> 属性来配置。默认是按照列(column)来映射。</li>\n<li>指定维度映射的规则:如何从 dataset 的维度(一个“维度”的意思是一行/列)映射到坐标轴(如 X、Y 轴)、提示框(tooltip)、标签(label)、图形元素大小颜色等(visualMap)。这件事可以使用 <a href=\"option.html#series.encode\" target=\"_blank\">series.encode</a> 属性,以及 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> 组件(如果有需要映射颜色大小等视觉维度的话)来配置。上面的例子中,没有给出这种映射配置,那么 ECharts 就按最常见的理解进行默认映射:X 坐标轴声明为类目轴,默认情况下会自动对应到 dataset.source 中的第一列;三个柱图系列,一一对应到 dataset.source 中后面每一列。</li>\n</ul>\n<p>下面详细解释。</p>\n<h2 id=\"-dataset-series-\">把数据集( dataset )的行或列映射为系列(series)</h2>\n<p>有了数据表之后,使用者可以灵活得配置:数据如何对应到轴和图形系列。</p>\n<p>用户可以使用 <code class=\"codespan\">seriesLayoutBy</code> 配置项,改变图表对于行列的理解。<code class=\"codespan\">seriesLayoutBy</code> 可取值:</p>\n<ul>\n<li>&#39;column&#39;: 默认值。系列被安放到 <code class=\"codespan\">dataset</code> 的列上面。</li>\n<li>&#39;row&#39;: 系列被安放到 <code class=\"codespan\">dataset</code> 的行上面。</li>\n</ul>\n<p>看这个例子:</p>\n<pre><code class=\"lang-js\">option = {\n    legend: {},\n    tooltip: {},\n    dataset: {\n        source: [\n            [&#39;product&#39;, &#39;2012&#39;, &#39;2013&#39;, &#39;2014&#39;, &#39;2015&#39;],\n            [&#39;Matcha Latte&#39;, 41.1, 30.4, 65.1, 53.3],\n            [&#39;Milk Tea&#39;, 86.5, 92.1, 85.7, 83.1],\n            [&#39;Cheese Cocoa&#39;, 24.1, 67.2, 79.5, 86.4]\n        ]\n    },\n    xAxis: [\n        {type: &#39;category&#39;, gridIndex: 0},\n        {type: &#39;category&#39;, gridIndex: 1}\n    ],\n    yAxis: [\n        {gridIndex: 0},\n        {gridIndex: 1}\n    ],\n    grid: [\n        {bottom: &#39;55%&#39;},\n        {top: &#39;55%&#39;}\n    ],\n    series: [\n        // 这几个系列会在第一个直角坐标系中,每个系列对应到 dataset 的每一行。\n        {type: &#39;bar&#39;, seriesLayoutBy: &#39;row&#39;},\n        {type: &#39;bar&#39;, seriesLayoutBy: &#39;row&#39;},\n        {type: &#39;bar&#39;, seriesLayoutBy: &#39;row&#39;},\n        // 这几个系列会在第二个直角坐标系中,每个系列对应到 dataset 的每一列。\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1},\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1},\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1},\n        {type: &#39;bar&#39;, xAxisIndex: 1, yAxisIndex: 1}\n    ]\n}\n</code></pre>\n<p>效果如下:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=dataset-series-layout-by&edit=1&reset=1\" width=\"800\" height=\"600\" ></iframe>\n\n\n\n<h2 id=\"-dimension-\">维度(dimension)</h2>\n<p>介绍 <code class=\"codespan\">encode</code> 之前,首先要介绍“维度(dimension)”的概念。</p>\n<p>常用图表所描述的数据大部分是“二维表”结构,上述的例子中,我们都使用二维数组来容纳二维表。现在,当我们把系列(series)对应到“列”的时候,那么每一列就称为一个“维度(dimension)”,而每一行称为数据项(item)。反之,如果我们把系列(series)对应到表行,那么每一行就是“维度(dimension)”,每一列就是数据项(item)。</p>\n<p>维度可以有单独的名字,便于在图表中显示。维度名(dimension name)可以在定义在 dataset 的第一行(或者第一列)。例如上面的例子中,<code class=\"codespan\">&#39;score&#39;</code>、<code class=\"codespan\">&#39;amount&#39;</code>、<code class=\"codespan\">&#39;product&#39;</code> 就是维度名。从第二行开始,才是正式的数据。<code class=\"codespan\">dataset.source</code> 中第一行(列)到底包含不包含维度名,ECharts 默认会自动探测。当然也可以设置 <code class=\"codespan\">dataset.sourceHeader: true</code> 显示声明第一行(列)就是维度,或者 <code class=\"codespan\">dataset.sourceHeader: false</code> 表明第一行(列)开始就直接是数据。</p>\n<p>维度的定义,也可以使用单独的 <code class=\"codespan\">dataset.dimensions</code> 或者 <code class=\"codespan\">series.dimensions</code> 来定义,这样可以同时指定维度名,和维度的类型(dimension type):</p>\n<pre><code class=\"lang-js\">var option1 = {\n    dataset: {\n        dimensions: [\n            {name: &#39;score&#39;},\n            // 可以简写为 string,表示维度名。\n            &#39;amount&#39;,\n            // 可以在 type 中指定维度类型。\n            {name: &#39;product&#39;, type: &#39;ordinal&#39;}\n        ],\n        source: [...]\n    },\n    ...\n};\n\nvar option2 = {\n    dataset: {\n        source: [...]\n    },\n    series: {\n        type: &#39;line&#39;,\n        // 在系列中设置的 dimensions 会更优先采纳。\n        dimensions: [\n            null, // 可以设置为 null 表示不想设置维度名\n            &#39;amount&#39;,\n            {name: &#39;product&#39;, type: &#39;ordinal&#39;}\n        ]\n    },\n    ...\n};\n</code></pre>\n<p>大多数情况下,我们并不需要去设置维度类型,因为会自动判断。但是如果因为数据为空之类原因导致判断不足够准确时,可以手动设置维度类型。</p>\n<p>维度类型(dimension type)可以取这些值:</p>\n<ul>\n<li><code class=\"codespan\">&#39;number&#39;</code>: 默认,表示普通数据。</li>\n<li><code class=\"codespan\">&#39;ordinal&#39;</code>: 对于类目、文本这些 string 类型的数据,如果需要能在数轴上使用,须是 &#39;ordinal&#39; 类型。ECharts 默认会自动判断这个类型。但是自动判断也是不可能很完备的,所以使用者也可以手动强制指定。</li>\n<li><code class=\"codespan\">&#39;time&#39;</code>: 表示时间数据。设置成 <code class=\"codespan\">&#39;time&#39;</code> 则能支持自动解析数据成时间戳(timestamp),比如该维度的数据是 &#39;2017-05-10&#39;,会自动被解析。如果这个维度被用在时间数轴(<a href=\"option.html#xAxis.type\" target=\"_blank\">axis.type</a> 为 <code class=\"codespan\">&#39;time&#39;</code>)上,那么会被自动设置为 <code class=\"codespan\">&#39;time&#39;</code> 类型。时间类型的支持参见 <a href=\"option.html#series.data\" target=\"_blank\">data</a>。</li>\n<li><code class=\"codespan\">&#39;float&#39;</code>: 如果设置成 <code class=\"codespan\">&#39;float&#39;</code>,在存储时候会使用 <code class=\"codespan\">TypedArray</code>,对性能优化有好处。</li>\n<li><code class=\"codespan\">&#39;int&#39;</code>: 如果设置成 <code class=\"codespan\">&#39;int&#39;</code>,在存储时候会使用 <code class=\"codespan\">TypedArray</code>,对性能优化有好处。</li>\n</ul>\n<h2 id=\"-series-encode-\">数据到图形的映射( series.encode )</h2>\n<p>了解了维度的概念后,我们就可以使用 <a href=\"option.html#series.encode\" target=\"_blank\">encode</a> 来做映射。总体是这样的感觉:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: {\n        source: [\n            [&#39;score&#39;, &#39;amount&#39;, &#39;product&#39;],\n            [89.3, 58212, &#39;Matcha Latte&#39;],\n            [57.1, 78254, &#39;Milk Tea&#39;],\n            [74.4, 41032, &#39;Cheese Cocoa&#39;],\n            [50.1, 12755, &#39;Cheese Brownie&#39;],\n            [89.7, 20145, &#39;Matcha Cocoa&#39;],\n            [68.1, 79146, &#39;Tea&#39;],\n            [19.6, 91852, &#39;Orange Juice&#39;],\n            [10.6, 101852, &#39;Lemon Juice&#39;],\n            [32.7, 20112, &#39;Walnut Brownie&#39;]\n        ]\n    },\n    xAxis: {},\n    yAxis: {type: &#39;category&#39;},\n    series: [\n        {\n            type: &#39;bar&#39;,\n            encode: {\n                // 将 &quot;amount&quot; 列映射到 X 轴。\n                x: &#39;amount&#39;,\n                // 将 &quot;product&quot; 列映射到 Y 轴。\n                y: &#39;product&#39;\n            }\n        }\n    ]\n};\n</code></pre>\n<p>效果如下:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/dataset-encode-simple0&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n\n<p><code class=\"codespan\">series.encode</code> 声明的基本结构如下,其中冒号左边是坐标系、标签等特定名称,如 <code class=\"codespan\">&#39;x&#39;</code>, <code class=\"codespan\">&#39;y&#39;</code>, <code class=\"codespan\">&#39;tooltip&#39;</code> 等,冒号右边是数据中的维度名(string 格式)或者维度的序号(number 格式,从 0 开始计数),可以指定一个或多个维度(使用数组)。通常情况下,下面各种信息不需要所有的都写,按需写即可。</p>\n<p>下面是 <code class=\"codespan\">series.encode</code> 支持的属性:</p>\n<pre><code class=\"lang-js\">// 在任何坐标系和系列中,都支持:\nencode: {\n    // 使用 “名为 product 的维度” 和 “名为 score 的维度” 的值在 tooltip 中显示\n    tooltip: [&#39;product&#39;, &#39;score&#39;]\n    // 使用 “维度 1” 和 “维度 3” 的维度名连起来作为系列名。(有时候名字比较长,这可以避免在 series.name 重复输入这些名字)\n    seriesName: [1, 3],\n    // 表示使用 “维度2” 中的值作为 id。这在使用 setOption 动态更新数据时有用处,可以使新老数据用 id 对应起来,从而能够产生合适的数据更新动画。\n    itemId: 2,\n    // 指定数据项的名称使用 “维度3” 在饼图等图表中有用,可以使这个名字显示在图例(legend)中。\n    itemName: 3\n}\n\n// 直角坐标系(grid/cartesian)特有的属性:\nencode: {\n    // 把 “维度1”、“维度5”、“名为 score 的维度” 映射到 X 轴:\n    x: [1, 5, &#39;score&#39;],\n    // 把“维度0”映射到 Y 轴。\n    y: 0\n}\n\n// 单轴(singleAxis)特有的属性:\nencode: {\n    single: 3\n}\n\n// 极坐标系(polar)特有的属性:\nencode: {\n    radius: 3,\n    angle: 2\n}\n\n// 地理坐标系(geo)特有的属性:\nencode: {\n    lng: 3,\n    lat: 2\n}\n\n// 对于一些没有坐标系的图表,例如饼图、漏斗图等,可以是:\nencode: {\n    value: 3\n}\n</code></pre>\n<p>下面给出个更丰富的 <code class=\"codespan\">series.encode</code> 的示例:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=dataset-encode1&edit=1&reset=1\" width=\"800\" height=\"600\" ></iframe>\n\n\n\n<h2 id=\"-\">视觉通道(颜色、尺寸等)的映射</h2>\n<p>我们可以使用 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> 组件进行视觉通道的映射。详见 <code class=\"codespan\">visualMap</code> 文档的介绍。这是一个示例:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=dataset-encode0&edit=1&reset=1\" width=\"500\" height=\"400\" ></iframe>\n\n\n\n<h2 id=\"-encode\">默认的 encode</h2>\n<p>值得一提的是,当 <code class=\"codespan\">series.encode</code> 并没有指定时,ECharts 针对最常见直角坐标系中的图表(折线图、柱状图、散点图、K线图等)、饼图、漏斗图,会采用一些默认的映射规则。默认的映射规则比较简单,大体是:</p>\n<ul>\n<li>在坐标系中(如直角坐标系、极坐标系等)<ul>\n<li>如果有类目轴(axis.type 为 &#39;category&#39;),则将第一列(行)映射到这个轴上,后续每一列(行)对应一个系列。</li>\n<li>如果没有类目轴,假如坐标系有两个轴(例如直角坐标系的 X Y 轴),则每两列对应一个系列,这两列分别映射到这两个轴上。</li>\n</ul>\n</li>\n<li>如果没有坐标系(如饼图)<ul>\n<li>取第一列(行)为名字,第二列(行)为数值(如果只有一列,则取第一列为数值)。</li>\n</ul>\n</li>\n</ul>\n<p>默认的规则不能满足要求时,就可以自己来配置 <code class=\"codespan\">encode</code>,也并不复杂。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=dataset-default&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n\n<h2 id=\"-series-encode-\">几个常见的 series.encode 设置方式举例</h2>\n<p>问:如何把第三列设置为 X 轴,第五列设置为 Y 轴?</p>\n<p>答:</p>\n<pre><code class=\"lang-js\">series: {\n    // 注意维度序号(dimensionIndex)从 0 开始计数,第三列是 dimensions[2]。\n    encode: {x: 2, y: 4},\n    ...\n}\n</code></pre>\n<p>问:如何把第三行设置为 X 轴,第五行设置为 Y 轴?</p>\n<p>答:</p>\n<pre><code class=\"lang-js\">series: {\n    encode: {x: 2, y: 4},\n    seriesLayoutBy: &#39;row&#39;,\n    ...\n}\n</code></pre>\n<p>问:如何把第二列设置为标签?</p>\n<p>答:\n关于标签的显示 <a href=\"option.html#series.label.formatter\" target=\"_blank\">label.formatter</a>,现在支持引用特定维度的值,例如:</p>\n<pre><code class=\"lang-js\">series: {\n    label: {\n        // `&#39;{@score}&#39;` 表示 “名为 score” 的维度里的值。\n        // `&#39;{@[4]}&#39;` 表示引用序号为 4 的维度里的值。\n        formatter: &#39;aaa{@product}bbb{@score}ccc{@[4]}ddd&#39;\n    }\n}\n</code></pre>\n<p>问:如何让第 2 列和第 3 列显示在提示框(tooltip)中?</p>\n<p>答:</p>\n<pre><code class=\"lang-js\">series: {\n    encode: {\n        tooltip: [1, 2]\n        ...\n    },\n    ...\n}\n</code></pre>\n<p>问:数据里没有维度名,那么怎么给出维度名?</p>\n<p>答:</p>\n<pre><code class=\"lang-js\">dataset: {\n    dimensions: [&#39;score&#39;, &#39;amount&#39;],\n    source: [\n        [89.3, 3371],\n        [92.1, 8123],\n        [94.4, 1954],\n        [85.4, 829]\n    ]\n}\n</code></pre>\n<p>问:如何把第三列映射为气泡图的点的大小?</p>\n<p>答:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: {\n        source: [\n            [12, 323, 11.2],\n            [23, 167, 8.3],\n            [81, 284, 12],\n            [91, 413, 4.1],\n            [13, 287, 13.5]\n        ]\n    },\n    visualMap: {\n        show: false,\n        dimension: 2, // 指向第三列(列序号从 0 开始记,所以设置为 2)。\n        min: 2, // 需要给出数值范围,最小数值。\n        max: 15, // 需要给出数值范围,最大数值。\n        inRange: {\n            // 气泡尺寸:5 像素到 60 像素。\n            symbolSize: [5, 60]\n        }\n    },\n    xAxis: {},\n    yAxis: {},\n    series: {\n        type: &#39;scatter&#39;\n    }\n};\n</code></pre>\n<p>问:encode 里指定了映射,但是不管用?</p>\n<p>答:可以查查有没有拼错,比如,维度名是:<code class=\"codespan\">&#39;Life Expectancy&#39;</code>,encode 中拼成了 <code class=\"codespan\">&#39;Life Expectency&#39;</code>。</p>\n<h2 id=\"-\">数据的各种格式</h2>\n<p>多数常见图表中,数据适于用二维表的形式描述。广为使用的数据表格软件(如 MS Excel、Numbers)或者关系数据数据库都是二维表。他们的数据可以导出成 JSON 格式,输入到 <code class=\"codespan\">dataset.source</code> 中,在不少情况下可以免去一些数据处理的步骤。</p>\n<blockquote>\n<p>假如数据导出成 csv 文件,那么可以使用一些 csv 工具如 <a href=\"https://github.com/d3/d3-dsv\" target=\"_blank\">dsv</a> 或者 <a href=\"https://github.com/mholt/PapaParse\" target=\"_blank\">PapaParse</a> 将 csv 转成 JSON。</p>\n</blockquote>\n<p>在 JavaScript 常用的数据传输格式中,二维数组可以比较直观的存储二维表。前面的示例都是使用二维数组表示。</p>\n<p>除了二维数组以外,dataset 也支持例如下面 key-value 方式的数据格式,这类格式也非常常见。但是这类格式中,目前并不支持 <a href=\"option.html#series.seriesLayoutBy\" target=\"_blank\">seriesLayoutBy</a> 参数。</p>\n<pre><code class=\"lang-js\">dataset: [{\n    // 按行的 key-value 形式(对象数组),这是个比较常见的格式。\n    source: [\n        {product: &#39;Matcha Latte&#39;, count: 823, score: 95.8},\n        {product: &#39;Milk Tea&#39;, count: 235, score: 81.4},\n        {product: &#39;Cheese Cocoa&#39;, count: 1042, score: 91.2},\n        {product: &#39;Walnut Brownie&#39;, count: 988, score: 76.9}\n    ]\n}, {\n    // 按列的 key-value 形式。\n    source: {\n        &#39;product&#39;: [&#39;Matcha Latte&#39;, &#39;Milk Tea&#39;, &#39;Cheese Cocoa&#39;, &#39;Walnut Brownie&#39;],\n        &#39;count&#39;: [823, 235, 1042, 988],\n        &#39;score&#39;: [95.8, 81.4, 91.2, 76.9]\n    }\n}]\n</code></pre>\n<h2 id=\"-dataset-\">多个 dataset 以及如何引用他们</h2>\n<p>可以同时定义多个 dataset。系列可以通过 <a href=\"option.html#series.datasetIndex\" target=\"_blank\">series.datasetIndex</a> 来指定引用哪个 dataset。例如:</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: [{\n        // 序号为 0 的 dataset。\n        source: [...],\n    }, {\n        // 序号为 1 的 dataset。\n        source: [...]\n    }, {\n        // 序号为 2 的 dataset。\n        source: [...]\n    }],\n    series: [{\n        // 使用序号为 2 的 dataset。\n        datasetIndex: 2\n    }, {\n        // 使用序号为 1 的 dataset。\n        datasetIndex: 1\n    }]\n}\n</code></pre>\n<h2 id=\"echarts-3-series-data-\">ECharts 3 的数据设置方式(series.data)仍正常使用</h2>\n<p>ECharts 4 之前一直以来的数据声明方式仍然被正常支持,如果系列已经声明了 <a href=\"option.html#series.data\" target=\"_blank\">series.data</a>, 那么就会使用 <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> 而非 <code class=\"codespan\">dataset</code>。</p>\n<pre><code class=\"lang-js\">{\n    xAxis: {\n        type: &#39;category&#39;\n        data: [&#39;Matcha Latte&#39;, &#39;Milk Tea&#39;, &#39;Cheese Cocoa&#39;, &#39;Walnut Brownie&#39;]\n    },\n    yAxis: {},\n    series: [{\n        type: &#39;bar&#39;,\n        name: &#39;2015&#39;,\n        data: [89.3, 92.1, 94.4, 85.4]\n    }, {\n        type: &#39;bar&#39;,\n        name: &#39;2016&#39;,\n        data: [95.8, 89.4, 91.2, 76.9]\n    }, {\n        type: &#39;bar&#39;,\n        name: &#39;2017&#39;,\n        data: [97.7, 83.1, 92.5, 78.1]\n    }]\n}\n</code></pre>\n<p>其实,<a href=\"option.html#series.data\" target=\"_blank\">series.data</a> 也是种会一直存在的重要设置方式。一些特殊的非 table 格式的图表,如 <a href=\"option.html#series-treemap\" target=\"_blank\">treemap</a>、<a href=\"option.html#series-graph\" target=\"_blank\">graph</a>、<a href=\"option.html#series-lines\" target=\"_blank\">lines</a> 等,现在仍不支持在 dataset 中设置,仍然需要使用 <a href=\"option.html#series.data\" target=\"_blank\">series.data</a>。另外,对于巨大数据量的渲染(如百万以上的数据量),需要使用 <a href=\"api.html#echartsInstance.appendData\" target=\"_blank\">appendData</a> 进行增量加载,这种情况不支持使用 <code class=\"codespan\">dataset</code>。</p>\n<h2 id=\"-data-transform-\">数据转换器( data transform )</h2>\n<p>参见 <a href=\"#%E4%BD%BF%E7%94%A8%20transform%20%E8%BF%9B%E8%A1%8C%E6%95%B0%E6%8D%AE%E8%BD%AC%E6%8D%A2\">data transform</a>。</p>\n<h2 id=\"-\">其他</h2>\n<p>目前并非所有图表都支持 dataset。支持 dataset 的图表有:\n<code class=\"codespan\">line</code>、<code class=\"codespan\">bar</code>、<code class=\"codespan\">pie</code>、<code class=\"codespan\">scatter</code>、<code class=\"codespan\">effectScatter</code>、<code class=\"codespan\">parallel</code>、<code class=\"codespan\">candlestick</code>、<code class=\"codespan\">map</code>、<code class=\"codespan\">funnel</code>、<code class=\"codespan\">custom</code>。\n后续会有更多的图表进行支持。</p>\n<p>最后,给出一个示例,多个图表共享一个 <code class=\"codespan\">dataset</code>,并带有联动交互:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=dataset-link&edit=1&reset=1\" width=\"800\" height=\"500\" ></iframe>\n\n\n\n\n"},"使用 transform 进行数据转换":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> 5 开始支持了“数据转换”( data transform )功能。在 echarts 中,“数据转换” 这个词指的是,给定一个已有的“数据集”(<a href=\"option.html#dataset\" target=\"_blank\">dataset</a>)和一个“转换方法”(<a href=\"option.html#dataset.transform\" target=\"_blank\">transform</a>),echarts 能生成一个新的“数据集”,然后可以使用这个新的“数据集”绘制图表。这些工作都可以声明式地完成。</p>\n<p>抽象地来说,数据转换是这样一种公式:<code class=\"codespan\">outData = f(inputData)</code>。<code class=\"codespan\">f</code> 是转换方法,例如:<code class=\"codespan\">filter</code>、<code class=\"codespan\">sort</code>、<code class=\"codespan\">regression</code>、<code class=\"codespan\">boxplot</code>、<code class=\"codespan\">cluster</code>、<code class=\"codespan\">aggregate</code>(todo) 等等。有了数据转换能力后,我们就至少可以做到这些事情:</p>\n<ul>\n<li>把数据分成多份用不同的饼图展现。</li>\n<li>进行一些数据统计运算,并展示结果。</li>\n<li>用某些数据可视化算法处理数据,并展示结果。</li>\n<li>数据排序。</li>\n<li>去除或直选择数据项。</li>\n<li>...</li>\n</ul>\n<h2 id=\"-\">数据转换基础使用</h2>\n<p>在 echarts 中,数据转换是依托于数据集(<a href=\"#dataset\">dataset</a>)来实现的. 我们可以设置 <a href=\"option.html#dataset.transform\" target=\"_blank\">dataset.transform</a> 来表示,此 dataset 的数据,来自于此 transform 的结果。例如。</p>\n<pre><code class=\"lang-js\">var option = {\n    dataset: [{\n        // 这个 dataset 的 index 是 `0`。\n        source: [\n            [&#39;Product&#39;, &#39;Sales&#39;, &#39;Price&#39;, &#39;Year&#39;],\n            [&#39;Cake&#39;, 123, 32, 2011],\n            [&#39;Cereal&#39;, 231, 14, 2011],\n            [&#39;Tofu&#39;, 235, 5, 2011],\n            [&#39;Dumpling&#39;, 341, 25, 2011],\n            [&#39;Biscuit&#39;, 122, 29, 2011],\n            [&#39;Cake&#39;, 143, 30, 2012],\n            [&#39;Cereal&#39;, 201, 19, 2012],\n            [&#39;Tofu&#39;, 255, 7, 2012],\n            [&#39;Dumpling&#39;, 241, 27, 2012],\n            [&#39;Biscuit&#39;, 102, 34, 2012],\n            [&#39;Cake&#39;, 153, 28, 2013],\n            [&#39;Cereal&#39;, 181, 21, 2013],\n            [&#39;Tofu&#39;, 395, 4, 2013],\n            [&#39;Dumpling&#39;, 281, 31, 2013],\n            [&#39;Biscuit&#39;, 92, 39, 2013],\n            [&#39;Cake&#39;, 223, 29, 2014],\n            [&#39;Cereal&#39;, 211, 17, 2014],\n            [&#39;Tofu&#39;, 345, 3, 2014],\n            [&#39;Dumpling&#39;, 211, 35, 2014],\n            [&#39;Biscuit&#39;, 72, 24, 2014],\n        ],\n        // id: &#39;a&#39;\n    }, {\n        // 这个 dataset 的 index 是 `1`。\n        // 这个 `transform` 配置,表示,此 dataset 的数据,来自于此 transform 的结果。\n        transform: {\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Year&#39;, value: 2011 }\n        },\n        // 我们还可以设置这些可选的属性: `fromDatasetIndex` 或 `fromDatasetId`。\n        // 这些属性,指定了,transform 的输入,来自于哪个 dataset。例如,\n        // `fromDatasetIndex: 0` 表示输入来自于 index 为 `0` 的 dataset 。又例如,\n        // `fromDatasetId: &#39;a&#39;` 表示输入来自于 `id: &#39;a&#39;` 的 dataset。\n        // 当这些属性都不指定时,默认认为,输入来自于 index 为 `0` 的 dataset 。\n    }, {\n        // 这个 dataset 的 index 是 `2`。\n        // 同样,这里因为 `fromDatasetIndex` 和 `fromDatasetId` 都没有被指定,\n        // 那么输入默认来自于 index 为 `0` 的 dataset 。\n        transform: {\n            // 这个类型为 &quot;filter&quot; 的 transform 能够遍历并筛选出满足条件的数据项。\n            type: &#39;filter&#39;,\n            // 每个 transform 如果需要有配置参数的话,都须配置在 `config` 里。\n            // 在这个 &quot;filter&quot; transform 中,`config` 用于指定筛选条件。\n            // 下面这个筛选条件是:选出维度( dimension )&#39;Year&#39; 中值为 2012 的所有\n            // 数据项。\n            config: { dimension: &#39;Year&#39;, value: 2012 }\n        }\n    }, {\n        // 这个 dataset 的 index 是 `3`。\n        transform: {\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Year&#39;, value: 2013 }\n        }\n    }],\n    series: [{\n        type: &#39;pie&#39;, radius: 50, center: [&#39;25%&#39;, &#39;50%&#39;],\n        // 这个饼图系列,引用了 index 为 `1` 的 dataset 。也就是,引用了上述\n        // 2011 年那个 &quot;filter&quot; transform 的结果。\n        datasetIndex: 1\n    }, {\n        type: &#39;pie&#39;, radius: 50, center: [&#39;50%&#39;, &#39;50%&#39;],\n        datasetIndex: 2\n    }, {\n        type: &#39;pie&#39;, radius: 50, center: [&#39;75%&#39;, &#39;50%&#39;],\n        datasetIndex: 3\n    }]\n};\n</code></pre>\n<p>下面是上述例子的效果,三个饼图分别显示了 2011、2012、2013 年的数据。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=data-transform-multiple-pie&reset=1&edit=1\" width=\"800\" height=\"300\" ></iframe>\n\n\n<p>现在我们简单总结下,使用 transform 时的几个要点:</p>\n<ul>\n<li>在一个空的 dataset 中声明 <code class=\"codespan\">transform</code>, <code class=\"codespan\">fromDatasetIndex</code>/<code class=\"codespan\">fromDatasetId</code> 来表示我们要生成新的数据。</li>\n<li>系列引用这个 dataset 。</li>\n</ul>\n<h2 id=\"-\">数据转换的进阶使用</h2>\n<h4 id=\"-transform\">链式声明 transform</h4>\n<p><code class=\"codespan\">transform</code> 可以被链式声明,这是一个语法糖。</p>\n<pre><code class=\"lang-js\">option: {\n    dataset: [{\n        source: [ ... ] // 原始数据\n    }, {\n        // 几个 transform 被声明成 array ,他们构成了一个链,\n        // 前一个 transform 的输出是后一个 transform 的输入。\n        transform: [{\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Product&#39;, value: &#39;Tofu&#39; }\n        }, {\n            type: &#39;sort&#39;,\n            config: { dimension: &#39;Year&#39;, order: &#39;desc&#39; }\n        }]\n    }],\n    series: {\n        type: &#39;pie&#39;,\n        // 这个系列引用上述 transform 的结果。\n        datasetIndex: 1\n    }\n}\n</code></pre>\n<blockquote>\n<p>注意:理论上,任何 transform 都可能有多个输入或多个输出。但是,如果一个 transform 被链式声明,它只能获取前一个 transform 的第一个输出作为输入(第一个 transform 除外),以及它只能把自己的第一个输出给到后一个 transform (最后一个 transform 除外)。</p>\n</blockquote>\n<h4 id=\"-transform-data\">一个 transform 输出多个 data</h4>\n<p>在大多数场景下,transform 只需输出一个 data 。但是也有一些场景,需要输出多个 data ,每个 data 可以被不同的 series 或者 dataset 所使用。</p>\n<p>例如,在内置的 &quot;boxplot&quot; transform 中,除了 boxplot 系列所需要的 data 外,离群点( outlier )也会被生成,并且可以用例如散点图系列显示出来。例如,<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=boxplot-light-velocity&amp;edit=1&amp;reset=1\" target=\"_blank\">example</a>。</p>\n<p>我们提供配置 <a href=\"option.html#dataset.fromTransformResult\" target=\"_blank\">dataset.fromTransformResult</a> 来满足这种情况,例如:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        // 这个 dataset 的 index 为 `0`。\n        source: [...] // 原始数据\n    }, {\n        // 这个 dataset 的 index 为 `1`。\n        transform: {\n            type: &#39;boxplot&#39;\n        }\n        // 这个 &quot;boxplot&quot; transform 生成了两个数据:\n        // result[0]: boxplot series 所需的数据。\n        // result[1]: 离群点数据。\n        // 当其他 series 或者 dataset 引用这个 dataset 时,他们默认只能得到\n        // result[0] 。\n        // 如果想要他们得到 result[1] ,需要额外声明如下这样一个 dataset :\n    }, {\n        // 这个 dataset 的 index 为 `2`。\n        // 这个额外的 dataset 指定了数据来源于 index 为 `1` 的 dataset。\n        fromDatasetIndex: 1,\n        // 并且指定了获取 transform result[1] 。\n        fromTransformResult: 1\n    }],\n    xAxis: {\n        type: &#39;category&#39;\n    },\n    yAxis: {\n    },\n    series: [{\n        name: &#39;boxplot&#39;,\n        type: &#39;boxplot&#39;,\n        // Reference the data from result[0].\n        // 这个 series 引用 index 为 `1` 的 dataset 。\n        datasetIndex: 1\n    }, {\n        name: &#39;outlier&#39;,\n        type: &#39;scatter&#39;,\n        // 这个 series 引用 index 为 `2` 的 dataset 。\n        // 从而也就得到了上述的 transform result[1] (即离群点数据)\n        datasetIndex: 2\n    }]\n};\n</code></pre>\n<p>另外,<a href=\"option.html#dataset.fromTransformResult\" target=\"_blank\">dataset.fromTransformResult</a> 和 <a href=\"option.html#dataset.transform\" target=\"_blank\">dataset.transform</a> 能同时出现在一个 dataset 中,这表示,这个 transform 的输入,是上游的结果中以 <code class=\"codespan\">fromTransformResult</code> 获取的结果。例如:</p>\n<pre><code class=\"lang-js\">{\n    fromDatasetIndex: 1,\n    fromTransformResult: 1,\n    transform: {\n        type: &#39;sort&#39;,\n        config: { dimension: 2, order: &#39;desc&#39; }\n    }\n}\n</code></pre>\n<h4 id=\"-debug\">在开发环境中 debug</h4>\n<p>使用 transform 时,有时候我们会配不对,显示不出来结果,并且不知道哪里错了。所以,这里提供了一个配置项 <code class=\"codespan\">transform.print</code> 方便 debug 。这个配置项只在开发环境中生效。如下例:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [ ... ]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: { ... }\n            // 配置为 `true` 后, transform 的结果\n            // 会被 console.log 打印出来。\n            print: true\n        }\n    }],\n    ...\n}\n</code></pre>\n<h2 id=\"-filter\">数据转换器 &quot;filter&quot;</h2>\n<p>echarts 内置提供了能起过滤作用的数据转换器。我们只需声明 <code class=\"codespan\">transform.type: &quot;filter&quot;</code>,以及给出数据筛选条件。如下例:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [\n            [&#39;Product&#39;, &#39;Sales&#39;, &#39;Price&#39;, &#39;Year&#39;],\n            [&#39;Cake&#39;, 123, 32, 2011],\n            [&#39;Latte&#39;, 231, 14, 2011],\n            [&#39;Tofu&#39;, 235, 5, 2011],\n            [&#39;Milk Tee&#39;, 341, 25, 2011],\n            [&#39;Porridge&#39;, 122, 29, 2011],\n            [&#39;Cake&#39;, 143, 30, 2012],\n            [&#39;Latte&#39;, 201, 19, 2012],\n            [&#39;Tofu&#39;, 255, 7, 2012],\n            [&#39;Milk Tee&#39;, 241, 27, 2012],\n            [&#39;Porridge&#39;, 102, 34, 2012],\n            [&#39;Cake&#39;, 153, 28, 2013],\n            [&#39;Latte&#39;, 181, 21, 2013],\n            [&#39;Tofu&#39;, 395, 4, 2013],\n            [&#39;Milk Tee&#39;, 281, 31, 2013],\n            [&#39;Porridge&#39;, 92, 39, 2013],\n            [&#39;Cake&#39;, 223, 29, 2014],\n            [&#39;Latte&#39;, 211, 17, 2014],\n            [&#39;Tofu&#39;, 345, 3, 2014],\n            [&#39;Milk Tee&#39;, 211, 35, 2014],\n            [&#39;Porridge&#39;, 72, 24, 2014]\n        ]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: { dimension: &#39;Year&#39;, &#39;=&#39;: 2011 }\n            // 这个筛选条件表示,遍历数据,筛选出维度( dimension )\n            // &#39;Year&#39; 上值为 2011 的所有数据项。\n        }\n    }],\n    series: {\n        type: &#39;pie&#39;,\n        datasetIndex: 1\n    }\n};\n</code></pre>\n<p><br>\n<br>\n这是 filter 的另一个例子的效果:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=data-transform-filter&reset=1&edit=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n<p>在 &quot;filter&quot; transform 中,有这些要素:</p>\n<p><strong>关于维度( dimension ):</strong></p>\n<p><code class=\"codespan\">config.dimension</code> 指定了维度,能设成这样的值:</p>\n<ul>\n<li>设定成声明在 dataset 中的维度名,例如 <code class=\"codespan\">config: { dimension: &#39;Year&#39;, &#39;=&#39;: 2011 }</code>。不过, dataset 中维度名的声明并非强制,所以我们也可以</li>\n<li>设定成 dataset 中的维度 index (index 值从 0 开始)例如 <code class=\"codespan\">config: { dimension: 3, &#39;=&#39;: 2011 }</code>。</li>\n</ul>\n<p><strong>关于关系比较操作符:</strong></p>\n<p>关系操作符,可以设定这些:\n<code class=\"codespan\">&gt;</code>(<code class=\"codespan\">gt</code>)、<code class=\"codespan\">&gt;=</code>(<code class=\"codespan\">gte</code>)、<code class=\"codespan\">&lt;</code>(<code class=\"codespan\">lt</code>)、<code class=\"codespan\">&lt;=</code>(<code class=\"codespan\">lte</code>)、<code class=\"codespan\">=</code>(<code class=\"codespan\">eq</code>)、<code class=\"codespan\">!=</code>(<code class=\"codespan\">ne</code>、<code class=\"codespan\">&lt;&gt;</code>)、<code class=\"codespan\">reg</code>。(小括号中的符号或名字,是别名,设置起来作用相同)。他们首先基本地能基于数值大小进行比较,然后也有些额外的功能特性:</p>\n<ul>\n<li>多个关系操作符能声明在一个 {} 中,例如 <code class=\"codespan\">{ dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 20, &#39;&lt;&#39;: 30 }</code>。这表示“与”的关系,即,筛选出价格大于等于 20 小于 30 的数据项。</li>\n<li>data 里的值,不仅可以是数值( number ),也可以是“类数值的字符串”(“ numeric string ”)。“类数值的字符串”本身是一个字符串,但是可以被转换为字面所描述的数值,例如 <code class=\"codespan\">&#39; 123 &#39;</code>。转换过程中,空格(全角半角空格)和换行符都能被消除( trim )。</li>\n<li>如果我们需要对日期对象(JS <code class=\"codespan\">Date</code>)或者日期字符串(如 &#39;2012-05-12&#39;)进行比较,我们需要手动指定 <code class=\"codespan\">parser: &#39;time&#39;</code>,例如 <code class=\"codespan\">config: { dimension: 3, lt: &#39;2012-05-12&#39;, parser: &#39;time&#39; }</code>。</li>\n<li>纯字符串比较也被支持,但是只能用在 <code class=\"codespan\">=</code> 或 <code class=\"codespan\">!=</code> 上。而 <code class=\"codespan\">&gt;</code>, <code class=\"codespan\">&gt;=</code>, <code class=\"codespan\">&lt;</code>, <code class=\"codespan\">&lt;=</code> 并不支持纯字符串比较,也就是说,这四个操作符的右值,不能是字符串。</li>\n<li><code class=\"codespan\">reg</code> 操作符能提供正则表达式比较。例如, <code class=\"codespan\">{ dimension: &#39;Name&#39;, reg: /\\s+Müller\\s*$/ }</code> 能在 <code class=\"codespan\">&#39;Name&#39;</code> 维度上选出姓 <code class=\"codespan\">&#39;Müller&#39;</code> 的数据项。</li>\n</ul>\n<p><strong>关于逻辑比较:</strong></p>\n<p>我们也支持了逻辑比较操作符 <strong>与或非</strong>( <code class=\"codespan\">and</code> | <code class=\"codespan\">or</code> | <code class=\"codespan\">not</code> ):</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [...]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: {\n                // 使用 and 操作符。\n                // 类似地,同样的位置也可以使用 “or” 或 “not”。\n                // 但是注意 “not” 后应该跟一个 {...} 而非 [...] 。\n                and: [\n                    { dimension: &#39;Year&#39;, &#39;=&#39;: 2011 },\n                    { dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 20, &#39;&lt;&#39;: 30 }\n                ]\n            }\n            // 这个表达的是,选出 2011 年价格大于等于 20 但小于 30 的数据项。\n        }\n    }],\n    series: {\n        type: &#39;pie&#39;,\n        datasetIndex: 1\n    }\n};\n</code></pre>\n<p><code class=\"codespan\">and</code>/<code class=\"codespan\">or</code>/<code class=\"codespan\">not</code> 自然可以被嵌套,例如:</p>\n<pre><code class=\"lang-js\">transform: {\n    type: &#39;filter&#39;,\n    config: {\n        or: [{\n            and: [{\n                dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 10, &#39;&lt;&#39;: 20\n            }, {\n                dimension: &#39;Sales&#39;, &#39;&lt;&#39;: 100\n            }, {\n                not: { dimension: &#39;Product&#39;, &#39;=&#39;: &#39;Tofu&#39; }\n            }]\n        }, {\n            and: [{\n                dimension: &#39;Price&#39;, &#39;&gt;=&#39;: 10, &#39;&lt;&#39;: 20\n            }, {\n                dimension: &#39;Sales&#39;, &#39;&lt;&#39;: 100\n            }, {\n                not: { dimension: &#39;Product&#39;, &#39;=&#39;: &#39;Cake&#39; }\n            }]\n        }]\n    }\n}\n</code></pre>\n<p><strong>关于解析器( parser ):</strong></p>\n<p>还可以指定“解析器”( parser )来对值进行解析后再做比较。现在支持的解析器有:</p>\n<ul>\n<li><code class=\"codespan\">parser: &#39;time&#39;</code>:把原始值解析成时间戳( timestamp )后再做比较。这个解析器的行为,和 <code class=\"codespan\">echarts.time.parse</code> 相同,即,当原始值为时间对象( JS <code class=\"codespan\">Date</code> 实例),或者是时间戳,或者是描述时间的字符串(例如 <code class=\"codespan\">&#39;2012-05-12 03:11:22&#39;</code> ),都可以被解析为时间戳,然后就可以基于数值大小进行比较。如果原始数据是其他不可解析为时间戳的值,那么会被解析为 NaN。</li>\n<li><code class=\"codespan\">parser: &#39;trim&#39;</code>:如果原始数据是字符串,则把字符串两端的空格(全角半角)和换行符去掉。如果不是字符串,还保持为原始数据。</li>\n<li><code class=\"codespan\">parser: &#39;number&#39;</code>:强制把原始数据转成数值。如果不能转成有意义的数值,那么转成 <code class=\"codespan\">NaN</code>。在大多数场景下,我们并不需要这个解析器,因为按默认策略,“像数值的字符串”就会被转成数值。但是默认策略比较严格,这个解析器比较宽松,如果我们遇到含有尾缀的字符串(例如 <code class=\"codespan\">&#39;33%&#39;</code>, <code class=\"codespan\">12px</code>),我们需要手动指定 <code class=\"codespan\">parser: &#39;number&#39;</code>,从而去掉尾缀转为数值才能比较。</li>\n</ul>\n<p>这个例子显示了如何使用 <code class=\"codespan\">parser: &#39;time&#39;</code>:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: [\n            [&#39;Product&#39;, &#39;Sales&#39;, &#39;Price&#39;, &#39;Date&#39;],\n            [&#39;Milk Tee&#39;, 311, 21, &#39;2012-05-12&#39;],\n            [&#39;Cake&#39;, 135, 28, &#39;2012-05-22&#39;],\n            [&#39;Latte&#39;, 262, 36, &#39;2012-06-02&#39;],\n            [&#39;Milk Tee&#39;, 359, 21, &#39;2012-06-22&#39;],\n            [&#39;Cake&#39;, 121, 28, &#39;2012-07-02&#39;],\n            [&#39;Latte&#39;, 271, 36, &#39;2012-06-22&#39;],\n            ...\n        ]\n    }, {\n        transform: {\n            type: &#39;filter&#39;,\n            config: {\n                { dimension: &#39;Date&#39;, &#39;&gt;=&#39;: &#39;2012-05&#39;, &#39;&lt;&#39;: &#39;2012-06&#39;, parser: &#39;time&#39; }\n            }\n        }\n    }]\n}\n</code></pre>\n<p><strong>形式化定义:</strong></p>\n<p>最后,我们给出,数据转换器 &quot;filter&quot; 的 config 的形式化定义:</p>\n<pre><code class=\"lang-ts\">type FilterTransform = {\n    type: &#39;filter&#39;;\n    config: ConditionalExpressionOption;\n};\ntype ConditionalExpressionOption =\n    true | false | RelationalExpressionOption | LogicalExpressionOption;\ntype RelationalExpressionOption = {\n    dimension: DimensionName | DimensionIndex;\n    parser?: &#39;time&#39; | &#39;trim&#39; | &#39;number&#39;;\n    lt?: DataValue; // less than\n    lte?: DataValue; // less than or equal\n    gt?: DataValue; // greater than\n    gte?: DataValue; // greater than or equal\n    eq?: DataValue; // equal\n    ne?: DataValue; // not equal\n    &#39;&lt;&#39;?: DataValue; // lt\n    &#39;&lt;=&#39;?: DataValue; // lte\n    &#39;&gt;&#39;?: DataValue; // gt\n    &#39;&gt;=&#39;?: DataValue; // gte\n    &#39;=&#39;?: DataValue; // eq\n    &#39;!=&#39;?: DataValue; // ne\n    &#39;&lt;&gt;&#39;?: DataValue; // ne (SQL style)\n    reg?: RegExp | string; // RegExp\n};\ntype LogicalExpressionOption = {\n    and?: ConditionalExpressionOption[];\n    or?: ConditionalExpressionOption[];\n    not?: ConditionalExpressionOption;\n};\ntype DataValue = string | number | Date;\ntype DimensionName = string;\ntype DimensionIndex = number;\n</code></pre>\n<h2 id=\"-sort\">数据转换器 &quot;sort&quot;</h2>\n<p>&quot;sort&quot; 是另一个内置的数据转换器,用于排序数据。目前主要能用于在类目轴( <code class=\"codespan\">axis.type: &#39;category&#39;</code> )中显示排过序的数据。例如:</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        dimensions: [&#39;name&#39;, &#39;age&#39;, &#39;profession&#39;, &#39;score&#39;, &#39;date&#39;],\n        source: [\n            [&#39; Hannah Krause &#39;, 41, &#39;Engineer&#39;, 314, &#39;2011-02-12&#39;],\n            [&#39;Zhao Qian &#39;, 20, &#39;Teacher&#39;, 351, &#39;2011-03-01&#39;],\n            [&#39; Jasmin Krause &#39;, 52, &#39;Musician&#39;, 287, &#39;2011-02-14&#39;],\n            [&#39;Li Lei&#39;, 37, &#39;Teacher&#39;, 219, &#39;2011-02-18&#39;],\n            [&#39; Karle Neumann &#39;, 25, &#39;Engineer&#39;, 253, &#39;2011-04-02&#39;],\n            [&#39; Adrian Groß&#39;, 19, &#39;Teacher&#39;, null, &#39;2011-01-16&#39;],\n            [&#39;Mia Neumann&#39;, 71, &#39;Engineer&#39;, 165, &#39;2011-03-19&#39;],\n            [&#39; Böhm Fuchs&#39;, 36, &#39;Musician&#39;, 318, &#39;2011-02-24&#39;],\n            [&#39;Han Meimei &#39;, 67, &#39;Engineer&#39;, 366, &#39;2011-03-12&#39;],\n        ]\n    }, {\n        transform: {\n            type: &#39;sort&#39;,\n            // 按分数排序\n            config: { dimension: &#39;score&#39;, order: &#39;asc&#39; }\n        }\n    }],\n    series: {\n        type: &#39;bar&#39;,\n        datasetIndex: 1\n    },\n    ...\n};\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=data-transform-sort-bar&reset=1&edit=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n<p>数据转换器 &quot;sort&quot; 还有一些额外的功能:</p>\n<ul>\n<li>可以多重排序,多个维度一起排序。见下面的例子。</li>\n<li>排序规则是这样的:<ul>\n<li>默认按照数值大小排序。其中,“可转为数值的字符串”也被转换成数值,和其他数值一起按大小排序。</li>\n<li>对于其他“不能转为数值的字符串”,也能在它们之间按字符串进行排序。这个特性有助于这种场景:把相同标签的数据项排到一起,尤其是当多个维度共同排序时。见下面的例子。</li>\n<li>当“数值及可转为数值的字符串”和“不能转为数值的字符串”进行排序时,或者它们和“其他类型的值”进行比较时,它们本身是不知如何进行比较的。那么我们称呼“后者”为“incomparable”,并且可以设置 <code class=\"codespan\">incomparable: &#39;min&#39; | &#39;max&#39;</code> 来指定一个“incomparable”在这个比较中是最大还是最小,从而能使它们能产生比较结果。这个设定的用途,比如可以是,决定空值(例如 <code class=\"codespan\">null</code>, <code class=\"codespan\">undefined</code>, <code class=\"codespan\">NaN</code>, <code class=\"codespan\">&#39;&#39;</code>, <code class=\"codespan\">&#39;-&#39;</code>)在排序的头还是尾。</li>\n</ul>\n</li>\n<li>过滤器 <code class=\"codespan\">filter: &#39;time&#39; | &#39;trim&#39; | &#39;number&#39;</code> 可以被使用,和数据转换器 &quot;filter&quot; 中的情况一样。<ul>\n<li>如果要对时间进行排序(例如,值为 JS <code class=\"codespan\">Date</code> 实例或者时间字符串如 <code class=\"codespan\">&#39;2012-03-12 11:13:54&#39;</code>),我们需要声明 <code class=\"codespan\">parser: &#39;time&#39;</code>。</li>\n<li>如果需要对有后缀的数值进行排序(如 <code class=\"codespan\">&#39;33%&#39;</code>, <code class=\"codespan\">&#39;16px&#39;</code>)我们需要声明 <code class=\"codespan\">parser: &#39;number&#39;</code>。</li>\n</ul>\n</li>\n</ul>\n<p>这是一个“多维度排序”的例子。</p>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        dimensions: [&#39;name&#39;, &#39;age&#39;, &#39;profession&#39;, &#39;score&#39;, &#39;date&#39;],\n        source: [\n            [&#39; Hannah Krause &#39;, 41, &#39;Engineer&#39;, 314, &#39;2011-02-12&#39;],\n            [&#39;Zhao Qian &#39;, 20, &#39;Teacher&#39;, 351, &#39;2011-03-01&#39;],\n            [&#39; Jasmin Krause &#39;, 52, &#39;Musician&#39;, 287, &#39;2011-02-14&#39;],\n            [&#39;Li Lei&#39;, 37, &#39;Teacher&#39;, 219, &#39;2011-02-18&#39;],\n            [&#39; Karle Neumann &#39;, 25, &#39;Engineer&#39;, 253, &#39;2011-04-02&#39;],\n            [&#39; Adrian Groß&#39;, 19, &#39;Teacher&#39;, null, &#39;2011-01-16&#39;],\n            [&#39;Mia Neumann&#39;, 71, &#39;Engineer&#39;, 165, &#39;2011-03-19&#39;],\n            [&#39; Böhm Fuchs&#39;, 36, &#39;Musician&#39;, 318, &#39;2011-02-24&#39;],\n            [&#39;Han Meimei &#39;, 67, &#39;Engineer&#39;, 366, &#39;2011-03-12&#39;],\n        ]\n    }, {\n        transform: {\n            type: &#39;sort&#39;,\n            config: [\n                // 对两个维度按声明的优先级分别排序。\n                { dimension: &#39;profession&#39;, order: &#39;desc&#39; },\n                { dimension: &#39;score&#39;, order: &#39;desc&#39; }\n            ]\n        }\n    }],\n    series: {\n        type: &#39;bar&#39;,\n        datasetIndex: 1\n    },\n    ...\n};\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/data-transform-multiple-sort-bar&reset=1&edit=1\" width=\"600\" height=\"350\" ></iframe>\n\n\n\n<p>最后,我们给出数据转换器 &quot;sort&quot; 的 config 的形式化定义。</p>\n<pre><code class=\"lang-ts\">type SortTransform = {\n    type: &#39;filter&#39;;\n    config: OrderExpression | OrderExpression[];\n};\ntype OrderExpression = {\n    dimension: DimensionName | DimensionIndex;\n    order: &#39;asc&#39; | &#39;desc&#39;;\n    incomparable?: &#39;min&#39; | &#39;max&#39;;\n    parser?: &#39;time&#39; | &#39;trim&#39; | &#39;number&#39;;\n};\ntype DimensionName = string;\ntype DimensionIndex = number;\n</code></pre>\n<h2 id=\"-\">使用外部的数据转换器</h2>\n<p>除了上述的内置的数据转换器外,我们也可以使用外部的数据转换器。外部数据转换器能提供或自己定制更丰富的功能。下面的例子中,我们使用第三方库 <a href=\"https://github.com/ecomfe/echarts-stat\" target=\"_blank\">ecStat</a> 提供的数据转换器。</p>\n<p>生成数据的回归线:</p>\n<pre><code class=\"lang-js\">// 首先要注册外部数据转换器。\necharts.registerTransform(ecStatTransform(ecStat).regression);\n</code></pre>\n<pre><code class=\"lang-js\">option = {\n    dataset: [{\n        source: rawData\n    }, {\n        transform: {\n            // 引用注册的数据转换器。\n            // 注意,每个外部的数据转换器,都有名空间(如 &#39;ecStat:xxx&#39;,&#39;ecStat&#39; 是名空间)。\n            // 而内置数据转换器(如 &#39;filter&#39;, &#39;sort&#39;)没有名空间。\n            type: &#39;ecStat:regression&#39;,\n            config: {\n                // 这里是此外部数据转换器所需的参数。\n                method: &#39;exponential&#39;\n            }\n        }\n    }],\n    xAxis: { type: &#39;category&#39; },\n    yAxis: {},\n    series: [{\n        name: &#39;scatter&#39;,\n        type: &#39;scatter&#39;,\n        datasetIndex: 0\n    }, {\n        name: &#39;regression&#39;,\n        type: &#39;line&#39;,\n        symbol: &#39;none&#39;,\n        datasetIndex: 1\n    }]\n};\n</code></pre>\n<p>一些使用外部转换器的例子:</p>\n<ul>\n<li><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=data-transform-aggregate&amp;edit=1&amp;reset=1\" target=\"_blank\">聚集</a></li>\n<li><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=bar-histogram&amp;edit=1&amp;reset=1\" target=\"_blank\">直方图</a></li>\n<li><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=scatter-clustering&amp;edit=1&amp;reset=1\" target=\"_blank\">简单聚类</a></li>\n<li><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=scatter-linear-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">线性回归线</a></li>\n<li><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=scatter-exponential-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">指数回归线</a></li>\n<li><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=scatter-logarithmic-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">对数回归线</a></li>\n<li><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=scatter-polynomial-regression&amp;edit=1&amp;reset=1\" target=\"_blank\">多项式回归线</a></li>\n</ul>\n"},"在图表中加入交互组件":{"type":["*"],"description":"<p>除了图表外 Apache ECharts<sup>TM</sup> 中,提供了很多交互组件。例如:</p>\n<p><code class=\"codespan\">图例组件</code> <a href=\"option.html#legend\" target=\"_blank\">legend</a>、<code class=\"codespan\">标题组件</code> <a href=\"option.html#title\" target=\"_blank\">title</a>、<code class=\"codespan\">视觉映射组件</code> <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a>、<code class=\"codespan\">数据区域缩放组件</code> <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a>、<code class=\"codespan\">时间线组件</code> <a href=\"option.html#timeline\" target=\"_blank\">timeline</a></p>\n<p>下面以 <code class=\"codespan\">数据区域缩放组件</code> <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a> 为例,介绍如何加入这种组件。</p>\n<h2 id=\"-datazoom-\">数据区域缩放组件(dataZoom)介绍</h2>\n<p>『概览数据整体,按需关注数据细节』是数据可视化的基本交互需求。<code class=\"codespan\">dataZoom</code> 组件能够在直角坐标系(<a href=\"option.html#grid\" target=\"_blank\">grid</a>)、极坐标系(<a href=\"option.html#polar\" target=\"_blank\">polar</a>)中实现这一功能。</p>\n<p><strong>如下例子:</strong></p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/scatter-dataZoom-all&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n<p><br></p>\n<ul>\n<li><code class=\"codespan\">dataZoom</code> 组件是对 <code class=\"codespan\">数轴(axis)</code> 进行『数据窗口缩放』『数据窗口平移』操作。</li>\n</ul>\n<blockquote>\n<p>可以通过 <a href=\"option.html#dataZoom.xAxisIndex\" target=\"_blank\">dataZoom.xAxisIndex</a> 或 <a href=\"option.html#dataZoom.yAxisIndex\" target=\"_blank\">dataZoom.yAxisIndex</a> 来指定 <code class=\"codespan\">dataZoom</code> 控制哪个或哪些数轴。</p>\n</blockquote>\n<ul>\n<li><p><code class=\"codespan\">dataZoom</code> 组件可同时存在多个,起到共同控制的作用。控制同一个数轴的组件,会自动联动。下面例子中会详细说明。</p>\n</li>\n<li><p><code class=\"codespan\">dataZoom</code> 的运行原理是通过『数据过滤』来达到『数据窗口缩放』的效果。</p>\n<p>  数据过滤模式的设置不同,效果也不同,参见:<a href=\"option.html#dataZoom.filterMode\" target=\"_blank\">dataZoom.filterMode</a>。</p>\n</li>\n<li><p><code class=\"codespan\">dataZoom</code> 的数据窗口范围的设置,目前支持两种形式:</p>\n<ul>\n<li><p>百分比形式:参见 <a href=\"option.html#dataZoom.start\" target=\"_blank\">dataZoom.start</a> 和 <a href=\"option.html#dataZoom.end\" target=\"_blank\">dataZoom.end</a>。</p>\n</li>\n<li><p>绝对数值形式:参见 <a href=\"option.html#dataZoom.startValue\" target=\"_blank\">dataZoom.startValue</a> 和 <a href=\"option.html#dataZoom.endValue\" target=\"_blank\">dataZoom.endValue</a>。</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>dataZoom 组件现在支持几种子组件:</strong></p>\n<ul>\n<li><p><a href=\"option.html#dataZoom-inside\" target=\"_blank\">内置型数据区域缩放组件(dataZoomInside)</a>:内置于坐标系中。</p>\n</li>\n<li><p><a href=\"option.html#dataZoom-slider\" target=\"_blank\">滑动条型数据区域缩放组件(dataZoomSlider)</a>:有单独的滑动条操作。</p>\n</li>\n<li><p><a href=\"option.html#toolbox.feature.dataZoom\" target=\"_blank\">框选型数据区域缩放组件(dataZoomSelect)</a>:全屏的选框进行数据区域缩放。入口和配置项均在 <code class=\"codespan\">toolbox</code>中。</p>\n</li>\n</ul>\n<h2 id=\"-datazoom-\">在代码加入 dataZoom 组件</h2>\n<p>先只在对单独一个横轴,加上 dataZoom 组件,代码示例如下:</p>\n<pre><code class=\"lang-javascript\">\noption = {\n    xAxis: {\n        type: &#39;value&#39;\n    },\n    yAxis: {\n        type: &#39;value&#39;\n    },\n    dataZoom: [\n        {   // 这个dataZoom组件,默认控制x轴。\n            type: &#39;slider&#39;, // 这个 dataZoom 组件是 slider 型 dataZoom 组件\n            start: 10,      // 左边在 10% 的位置。\n            end: 60         // 右边在 60% 的位置。\n        }\n    ],\n    series: [\n        {\n            type: &#39;scatter&#39;, // 这是个『散点图』\n            itemStyle: {\n                opacity: 0.8\n            },\n            symbolSize: function (val) {\n                return val[2] * 40;\n            },\n            data: [[&quot;14.616&quot;,&quot;7.241&quot;,&quot;0.896&quot;],[&quot;3.958&quot;,&quot;5.701&quot;,&quot;0.955&quot;],[&quot;2.768&quot;,&quot;8.971&quot;,&quot;0.669&quot;],[&quot;9.051&quot;,&quot;9.710&quot;,&quot;0.171&quot;],[&quot;14.046&quot;,&quot;4.182&quot;,&quot;0.536&quot;],[&quot;12.295&quot;,&quot;1.429&quot;,&quot;0.962&quot;],[&quot;4.417&quot;,&quot;8.167&quot;,&quot;0.113&quot;],[&quot;0.492&quot;,&quot;4.771&quot;,&quot;0.785&quot;],[&quot;7.632&quot;,&quot;2.605&quot;,&quot;0.645&quot;],[&quot;14.242&quot;,&quot;5.042&quot;,&quot;0.368&quot;]]\n        }\n    ]\n}\n</code></pre>\n<p>可以看到如下结果:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/scatter-tutorial-dataZoom-1&edit=1&reset=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n<p><br></p>\n<p>上面的图只能拖动 dataZoom 组件导致窗口变化。如果想在坐标系内进行拖动,以及用滚轮(或移动触屏上的两指滑动)进行缩放,那么要再加上一个 inside 型的 dataZoom组件。直接在上面的 <code class=\"codespan\">option.dataZoom</code> 中增加即可:</p>\n<pre><code class=\"lang-javascript\">option = {\n    ...,\n    dataZoom: [\n        {   // 这个dataZoom组件,默认控制x轴。\n            type: &#39;slider&#39;, // 这个 dataZoom 组件是 slider 型 dataZoom 组件\n            start: 10,      // 左边在 10% 的位置。\n            end: 60         // 右边在 60% 的位置。\n        },\n        {   // 这个dataZoom组件,也控制x轴。\n            type: &#39;inside&#39;, // 这个 dataZoom 组件是 inside 型 dataZoom 组件\n            start: 10,      // 左边在 10% 的位置。\n            end: 60         // 右边在 60% 的位置。\n        }\n    ],\n    ...\n}\n</code></pre>\n<p>可以看到如下结果(能在坐标系中进行滑动,以及使用滚轮缩放了):</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/scatter-tutorial-dataZoom-2&edit=1&reset=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n\n<p><br></p>\n<p>如果想 y 轴也能够缩放,那么在 y 轴上也加上 dataZoom 组件:</p>\n<pre><code class=\"lang-javascript\">option = {\n    ...,\n    dataZoom: [\n        {\n            type: &#39;slider&#39;,\n            xAxisIndex: 0,\n            start: 10,\n            end: 60\n        },\n        {\n            type: &#39;inside&#39;,\n            xAxisIndex: 0,\n            start: 10,\n            end: 60\n        },\n        {\n            type: &#39;slider&#39;,\n            yAxisIndex: 0,\n            start: 30,\n            end: 80\n        },\n        {\n            type: &#39;inside&#39;,\n            yAxisIndex: 0,\n            start: 30,\n            end: 80\n        }\n    ],\n    ...\n}\n</code></pre>\n<p>可以看到如下结果:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/scatter-tutorial-dataZoom-3&edit=1&reset=1\" width=\"600\" height=\"300\" ></iframe>\n\n\n\n\n\n\n\n"},"移动端自适应":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> 工作在用户指定高宽的 DOM 节点(容器)中。ECharts 的『组件』和『系列』都在这个 DOM 节点中,每个节点都可以由用户指定位置。图表库内部并不适宜实现 DOM 文档流布局,因此采用类似绝对布局的简单容易理解的布局方式。但是有时候容器尺寸极端时,这种方式并不能自动避免组件重叠的情况,尤其在移动端小屏的情况下。</p>\n<p>另外,有时会出现一个图表需要同时在PC、移动端上展现的场景。这需要 ECharts 内部组件随着容器尺寸变化而变化的能力。</p>\n<p>为了解决这个问题,ECharts 完善了组件的定位设置,并且实现了类似 <a href=\"https://www.w3.org/TR/css3-mediaqueries/\" target=\"_blank\">CSS Media Query</a> 的自适应能力。</p>\n<h2 id=\"echarts-\">ECharts组件的定位和布局</h2>\n<p>大部分『组件』和『系列』会遵循两种定位方式:</p>\n<p><br>\n<strong>left/right/top/bottom/width/height 定位方式:</strong></p>\n<p>这六个量中,每个量都可以是『绝对值』或者『百分比』或者『位置描述』。</p>\n<ul>\n<li><p>绝对值</p>\n<p>  单位是浏览器像素(px),用 <code class=\"codespan\">number</code> 形式书写(不写单位)。例如 <code class=\"codespan\">{left: 23, height: 400}</code>。</p>\n</li>\n<li><p>百分比</p>\n<p>  表示占 DOM 容器高宽的百分之多少,用 <code class=\"codespan\">string</code> 形式书写。例如 <code class=\"codespan\">{right: &#39;30%&#39;, bottom: &#39;40%&#39;}</code>。</p>\n</li>\n<li><p>位置描述</p>\n<ul>\n<li>可以设置 <code class=\"codespan\">left: &#39;center&#39;</code>,表示水平居中。</li>\n<li>可以设置 <code class=\"codespan\">top: &#39;middle&#39;</code>,表示垂直居中。</li>\n</ul>\n</li>\n</ul>\n<p>这六个量的概念,和 CSS 中六个量的概念类似:</p>\n<ul>\n<li>left:距离 DOM 容器左边界的距离。</li>\n<li>right:距离 DOM 容器右边界的距离。</li>\n<li>top:距离 DOM 容器上边界的距离。</li>\n<li>bottom:距离 DOM 容器下边界的距离。</li>\n<li>width:宽度。</li>\n<li>height:高度。</li>\n</ul>\n<p>在横向,<code class=\"codespan\">left</code>、<code class=\"codespan\">right</code>、<code class=\"codespan\">width</code> 三个量中,只需两个量有值即可,因为任两个量可以决定组件的位置和大小,例如 <code class=\"codespan\">left</code> 和 <code class=\"codespan\">right</code> 或者 <code class=\"codespan\">right</code> 和 <code class=\"codespan\">width</code> 都可以决定组件的位置和大小。\n纵向,<code class=\"codespan\">top</code>、<code class=\"codespan\">bottom</code>、<code class=\"codespan\">height</code> 三个量,和横向类同不赘述。</p>\n<p><br>\n<strong><code class=\"codespan\">center</code> / <code class=\"codespan\">radius</code> 定位方式:</strong></p>\n<ul>\n<li><p><code class=\"codespan\">center</code></p>\n<p>  是一个数组,表示 <code class=\"codespan\">[x, y]</code>,其中,<code class=\"codespan\">x</code>、<code class=\"codespan\">y</code>可以是『绝对值』或者『百分比』,含义和前述相同。</p>\n</li>\n<li><p><code class=\"codespan\">radius</code></p>\n<p>  是一个数组,表示 <code class=\"codespan\">[内半径, 外半径]</code>,其中,内外半径可以是『绝对值』或者『百分比』,含义和前述相同。</p>\n<p>  在自适应容器大小时,百分比设置是很有用的。</p>\n</li>\n</ul>\n<p><br>\n<strong>横向(horizontal)和纵向(vertical)</strong></p>\n<p>ECharts的『外观狭长』型的组件(如 <code class=\"codespan\">legend</code>、<code class=\"codespan\">visualMap</code>、<code class=\"codespan\">dataZoom</code>、<code class=\"codespan\">timeline</code>等),大多提供了『横向布局』『纵向布局』的选择。例如,在细长的移动端屏幕上,可能适合使用『纵向布局』;在PC宽屏上,可能适合使用『横向布局』。</p>\n<p>横纵向布局的设置,一般在『组件』或者『系列』的 <code class=\"codespan\">orient</code> 或者 <code class=\"codespan\">layout</code> 配置项上,设置为 <code class=\"codespan\">&#39;horizontal&#39;</code> 或者 <code class=\"codespan\">&#39;vertical&#39;</code>。</p>\n<p><br>\n<strong>与 ECharts2 的兼容:</strong></p>\n<p>ECharts2 中的 <code class=\"codespan\">x/x2/y/y2</code> 的命名方式仍被兼容,对应于 <code class=\"codespan\">left/right/top/bottom</code>。但是建议写 <code class=\"codespan\">left/right/top/bottom</code>。</p>\n<p>位置描述中,为兼容 ECharts2,可以支持一些看起来略奇怪的设置:<code class=\"codespan\">left: &#39;right&#39;</code>、<code class=\"codespan\">left: &#39;left&#39;</code>、<code class=\"codespan\">top: &#39;bottom&#39;</code>、<code class=\"codespan\">top: &#39;top&#39;</code>。这些语句分别等效于:<code class=\"codespan\">right: 0</code>、<code class=\"codespan\">left: 0</code>、<code class=\"codespan\">bottom: 0</code>、<code class=\"codespan\">top: 0</code>,写成后者就不奇怪了。</p>\n<h2 id=\"media-query\">Media Query</h2>\n<p><a href=\"https://www.w3.org/TR/css3-mediaqueries/#media1\" target=\"_blank\">Media Query</a> 提供了『随着容器尺寸改变而改变』的能力。</p>\n<p>如下例子,可尝试拖动<strong>右下角的圆点</strong>,随着尺寸变化,legend 和 系列会自动改变布局位置和方式。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/pie-media&edit=1&reset=1\" width=\"750\" height=\"600\" ></iframe>\n\n\n<p>要在 option 中设置 Media Query 须遵循如下格式:</p>\n<pre><code class=\"lang-javascript\">option = {\n    // 这里是基本的『原子option』。\n    title: {...},\n    legend: {...},\n    series: [{...}, {...}, ...],\n    ...,\n    media: [ // 这里定义了 media query 的逐条规则。\n        {\n            query: {...},   // 这里写规则。\n            option: {       // 这里写此规则满足下的option。\n                legend: {...},\n                ...\n            }\n        },\n        {\n            query: {...},   // 第二个规则。\n            option: {       // 第二个规则对应的option。\n                legend: {...},\n                ...\n            }\n        },\n        {                   // 这条里没有写规则,表示『默认』,\n            option: {       // 即所有规则都不满足时,采纳这个option。\n                legend: {...},\n                ...\n            }\n        }\n    ]\n};\n</code></pre>\n<p>上面的例子中,<code class=\"codespan\">baseOption</code>、以及 <code class=\"codespan\">media</code> 每个 option 都是『原子 option』,即普通的含有各组件、系列定义的 option。而由『原子option』组合成的整个 option,我们称为『复合 option』。<code class=\"codespan\">baseOption</code> 是必然被使用的,此外,满足了某个 <code class=\"codespan\">query</code> 条件时,对应的 option 会被使用 <code class=\"codespan\">chart.mergeOption()</code> 来 merge 进去。</p>\n<p><strong>query:</strong></p>\n<p>每个 <code class=\"codespan\">query</code> 类似于这样:</p>\n<pre><code class=\"lang-javascript\">{\n    minWidth: 200,\n    maxHeight: 300,\n    minAspectRatio: 1.3\n}\n</code></pre>\n<p>现在支持三个属性:<code class=\"codespan\">width</code>、<code class=\"codespan\">height</code>、<code class=\"codespan\">aspectRatio</code>(长宽比)。每个属性都可以加上 <code class=\"codespan\">min</code> 或 <code class=\"codespan\">max</code> 前缀。比如,<code class=\"codespan\">minWidth: 200</code> 表示『大于等于200px宽度』。两个属性一起写表示『并且』,比如:<code class=\"codespan\">{minWidth: 200, maxHeight: 300}</code> 表示『大于等于200px宽度,并且小于等于300px高度』。</p>\n<p><strong>option:</strong></p>\n<p><code class=\"codespan\">media</code>中的 option 既然是『原子 option』,理论上可以写任何 option 的配置项。但是一般我们只写跟布局定位相关的,例如截取上面例子中的一部分 query option:</p>\n<pre><code class=\"lang-javascript\">media: [\n    ...,\n    {\n        query: {\n            maxAspectRatio: 1           // 当长宽比小于1时。\n        },\n        option: {\n            legend: {                   // legend 放在底部中间。\n                right: &#39;center&#39;,\n                bottom: 0,\n                orient: &#39;horizontal&#39;    // legend 横向布局。\n            },\n            series: [                   // 两个饼图左右布局。\n                {\n                    radius: [20, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;30%&#39;]\n                },\n                {\n                    radius: [30, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;70%&#39;]\n                }\n            ]\n        }\n    },\n    {\n        query: {\n            maxWidth: 500               // 当容器宽度小于 500 时。\n        },\n        option: {\n            legend: {\n                right: 10,              // legend 放置在右侧中间。\n                top: &#39;15%&#39;,\n                orient: &#39;vertical&#39;      // 纵向布局。\n            },\n            series: [                   // 两个饼图上下布局。\n                {\n                    radius: [20, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;30%&#39;]\n                },\n                {\n                    radius: [30, &#39;50%&#39;],\n                    center: [&#39;50%&#39;, &#39;75%&#39;]\n                }\n            ]\n        }\n    },\n    ...\n]\n</code></pre>\n<p><strong>多个 query 被满足时的优先级:</strong></p>\n<p>注意,可以有多个 <code class=\"codespan\">query</code> 同时被满足,会都被 <code class=\"codespan\">mergeOption</code>,定义在后的后被 merge(即优先级更高)。</p>\n<p><strong>默认 query:</strong></p>\n<p>如果 <code class=\"codespan\">media</code> 中有某项不写 <code class=\"codespan\">query</code>,则表示『默认值』,即所有规则都不满足时,采纳这个option。</p>\n<p><strong>容器大小实时变化时的注意事项:</strong></p>\n<p>在不少情况下,并不需要容器DOM节点任意随着拖拽变化大小,而是只是根据不同终端设置几个典型尺寸。</p>\n<p>但是如果容器DOM节点需要能任意随着拖拽变化大小,那么目前使用时需要注意这件事:某个配置项,如果在某一个 <code class=\"codespan\">query option</code> 中出现,那么在其他 <code class=\"codespan\">query option</code> 中也必须出现,否则不能够回归到原来的状态。(<code class=\"codespan\">left/right/top/bottom/width/height</code> 不受这个限制。)</p>\n<p><strong>『复合 option』 中的 <code class=\"codespan\">media</code> 不支持 merge</strong></p>\n<p>也就是说,当第二(或三、四、五 ...)次 <code class=\"codespan\">chart.setOption(rawOption)</code> 时,如果 <code class=\"codespan\">rawOption</code> 是 <code class=\"codespan\">复合option</code>(即包含 <code class=\"codespan\">media</code> 列表),那么新的 <code class=\"codespan\">rawOption.media</code> 列表不会和老的 <code class=\"codespan\">media</code> 列表进行 merge,而是简单替代。当然,<code class=\"codespan\">baseOption</code> 仍然会正常和老的 option 进行merge。</p>\n<p>其实,很少有场景需要使用『复合 option』来多次 <code class=\"codespan\">setOption</code>,而我们推荐的做法是,使用 mediaQuery 时,第一次setOption使用『复合 option』,后面 <code class=\"codespan\">setOption</code> 时仅使用 『原子 option』,也就是仅仅用 setOption 来改变 <code class=\"codespan\">baseOption</code>。</p>\n<p><br>\n最后看一个和时间轴结合的例子:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/bar-media-timeline&edit=1&reset=1\" width=\"750\" height=\"700\" ></iframe>\n\n\n\n\n"},"数据的视觉映射":{"type":["*"],"description":"<p>数据可视化是 <strong>数据</strong> 到 <strong>视觉元素</strong> 的映射过程(这个过程也可称为视觉编码,视觉元素也可称为视觉通道)。</p>\n<p>Apache ECharts<sup>TM</sup> 的每种图表本身就内置了这种映射过程,比如折线图把数据映射到『线』,柱状图把数据映射到『长度』。一些更复杂的图表,如 <code class=\"codespan\">graph</code>、<code class=\"codespan\">事件河流图</code>、<code class=\"codespan\">treemap</code> 也都会做出他们内置的映射。</p>\n<p>此外,ECharts 还提供了 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap 组件</a> 来提供通用的视觉映射。<code class=\"codespan\">visualMap</code> 组件中可以使用的视觉元素有:<br>\n<code class=\"codespan\">图形类别(symbol)</code>、<code class=\"codespan\">图形大小(symbolSize)</code><br>\n<code class=\"codespan\">颜色(color)</code>、<code class=\"codespan\">透明度(opacity)</code>、<code class=\"codespan\">颜色透明度(colorAlpha)</code>、<br>\n<code class=\"codespan\">颜色明暗度(colorLightness)</code>、<code class=\"codespan\">颜色饱和度(colorSaturation)</code>、<code class=\"codespan\">色调(colorHue)</code></p>\n<p>下面对 <code class=\"codespan\">visualMap</code> 组件的使用方式进行简要的介绍。</p>\n<h2 id=\"-\">数据和维度</h2>\n<p>ECharts中的数据,一般存放于 <a href=\"option.html#series.data\" target=\"_blank\">series.data</a> 中。根据图表类型不同,数据的具体形式也可能有些许差异。比如可能是『线性表』、『树』、『图』等。但他们都有个共性:都是『数据项(dataItem)』的集合。每个数据项含有『数据值(value)』和其他信息(如果需要的话)。每个数据值,可以是单一的数值(一维)或者一个数组(多维)。</p>\n<p>例如,<a href=\"option.html#series.data\" target=\"_blank\">series.data</a> 最常见的形式,是『线性表』,即一个普通数组:</p>\n<pre><code class=\"lang-javascript\">series: {\n    data: [\n        {       // 这里每一个项就是数据项(dataItem)\n            value: 2323, // 这是数据项的数据值(value)\n            itemStyle: {...}\n        },\n        1212,   // 也可以直接是 dataItem 的 value,这更常见。\n        2323,   // 每个 value 都是『一维』的。\n        4343,\n        3434\n    ]\n}\n</code></pre>\n<pre><code class=\"lang-javascript\">series: {\n    data: [\n        {                        // 这里每一个项就是数据项(dataItem)\n            value: [3434, 129,  &#39;圣马力诺&#39;], // 这是数据项的数据值(value)\n            itemStyle: {...}\n        },\n        [1212, 5454, &#39;梵蒂冈&#39;],   // 也可以直接是 dataItem 的 value,这更常见。\n        [2323, 3223, &#39;瑙鲁&#39;],     // 每个 value 都是『三维』的,每列是一个维度。\n        [4343, 23,   &#39;图瓦卢&#39;]    // 假如是『气泡图』,常见第一维度映射到x轴,\n                                 // 第二维度映射到y轴,\n                                 // 第三维度映射到气泡半径(symbolSize)\n    ]\n}\n</code></pre>\n<p>在图表中,往往默认把 value 的前一两个维度进行映射,比如取第一个维度映射到x轴,取第二个维度映射到y轴。如果想要把更多的维度展现出来,可以借助 <code class=\"codespan\">visualMap</code> 。最常见的情况,<a href=\"option.html#series-scatter\" target=\"_blank\">气泡图(scatter)</a> 使用半径展现了第三个维度。</p>\n<h2 id=\"visualmap-\">visualMap 组件</h2>\n<p>visualMap 组件定义了把数据的『哪个维度』映射到『什么视觉元素上』。</p>\n<p>现在提供如下两种类型的visualMap组件,通过 <a href=\"option.html#visualMap.type\" target=\"_blank\">visualMap.type</a> 来区分。</p>\n<p>其定义结构例如:</p>\n<pre><code class=\"lang-javascript\">option = {\n    visualMap: [ // 可以同时定义多个 visualMap 组件。\n        { // 第一个 visualMap 组件\n            type: &#39;continuous&#39;, // 定义为连续型 visualMap\n            ...\n        },\n        { // 第二个 visualMap 组件\n            type: &#39;piecewise&#39;, // 定义为分段型 visualMap\n            ...\n        }\n    ],\n    ...\n};\n</code></pre>\n<p><a href=\"option.html#visualMap-continuous\" target=\"_blank\">连续型(visualMapContinuous)</a></p>\n<p><a href=\"option.html#visualMap-piecewise\" target=\"_blank\">分段型(visualMapPiecewise)</a>:</p>\n<p>分段型视觉映射组件(visualMapPiecewise),有三种模式:</p>\n<ul>\n<li>连续型数据平均分段: 依据 <a href=\"option.html#visualMap-piecewise.splitNumber\" target=\"_blank\">visualMap-piecewise.splitNumber</a> 来自动平均分割成若干块。</li>\n<li>连续型数据自定义分段: 依据 <a href=\"option.html#visualMap-piecewise.pieces\" target=\"_blank\">visualMap-piecewise.pieces</a> 来定义每块范围。</li>\n<li>离散数据(类别性数据): 类别定义在 <a href=\"option.html#visualMap-piecewise.categories\" target=\"_blank\">visualMap-piecewise.categories</a> 中。</li>\n</ul>\n<p><br>\n<strong>视觉映射方式的配置</strong></p>\n<p>既然是『数据』到『视觉元素』的映射,<code class=\"codespan\">visualMap</code> 中可以指定数据的『哪个维度』(参见<a href=\"#visualMap.dimension\">visualMap.dimension</a>)映射到哪些『视觉元素』(参见 <a href=\"option.html#visualMap.inRange\" target=\"_blank\">visualMap.inRange</a> 和 <a href=\"option.html#visualMap.outOfRange\" target=\"_blank\">visualMap.outOfRange</a>)中。</p>\n<p>例一:</p>\n<pre><code class=\"lang-javascript\">option = {\n    visualMap: [\n        {\n            type: &#39;piecewise&#39;,\n            min: 0,\n            max: 5000,\n            dimension: 3,       // series.data 的第四个维度(即 value[3])被映射\n            seriesIndex: 4,     // 对第四个系列进行映射。\n            inRange: {          // 选中范围中的视觉配置\n                color: [&#39;blue&#39;, &#39;#121122&#39;, &#39;red&#39;], // 定义了图形颜色映射的颜色列表,\n                                                    // 数据最小值映射到&#39;blue&#39;上,\n                                                    // 最大值映射到&#39;red&#39;上,\n                                                    // 其余自动线性计算。\n                symbolSize: [30, 100]               // 定义了图形尺寸的映射范围,\n                                                    // 数据最小值映射到30上,\n                                                    // 最大值映射到100上,\n                                                    // 其余自动线性计算。\n            },\n            outOfRange: {       // 选中范围外的视觉配置\n                symbolSize: [30, 100]\n            }\n        },\n        ...\n    ]\n};\n</code></pre>\n<p>例二:</p>\n<pre><code class=\"lang-javascript\">option = {\n    visualMap: [\n        {\n            ...,\n            inRange: {          // 选中范围中的视觉配置\n                colorLightness: [0.2, 1], // 映射到明暗度上。也就是对本来的颜色进行明暗度处理。\n                                          // 本来的颜色可能是从全局色板中选取的颜色,visualMap组件并不关心。\n                symbolSize: [30, 100]\n            },\n            ...\n        },\n        ...\n    ]\n};\n</code></pre>\n<p>更多详情,参见 <a href=\"option.html#visualMap.inRange\" target=\"_blank\">visualMap.inRange</a> 和 <a href=\"option.html#visualMap.outOfRange\" target=\"_blank\">visualMap.outOfRange</a>。</p>\n"},"ECharts 中的事件和行为":{"type":["*"],"description":"<p>在 Apache ECharts<sup>TM</sup> 的图表中用户的操作将会触发相应的事件。开发者可以监听这些事件,然后通过回调函数做相应的处理,比如跳转到一个地址,或者弹出对话框,或者做数据下钻等等。</p>\n<p>在 ECharts 3 中绑定事件跟 2 一样都是通过 <a href=\"api.html#EChartsInstance.on\" target=\"_blank\">on</a> 方法,但是事件名称比 2 更加简单了。ECharts 3 中,事件名称对应 DOM 事件名称,均为小写的字符串,如下是一个绑定点击操作的示例。</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;click&#39;, function (params) {\n    // 控制台打印数据的名称\n    console.log(params.name);\n});\n</code></pre>\n<p>在 ECharts 中事件分为两种类型,一种是用户鼠标操作点击,或者 hover 图表的图形时触发的事件,还有一种是用户在使用可以交互的组件后触发的行为事件,例如在切换图例开关时触发的 <a href=\"api.html#events.legendselectchanged\" target=\"_blank\">&#39;legendselectchanged&#39;</a> 事件(这里需要注意切换图例开关是不会触发<code class=\"codespan\">&#39;legendselected&#39;</code>事件的),数据区域缩放时触发的 <a href=\"api.html#events.legendselectchanged\" target=\"_blank\">&#39;datazoom&#39;</a> 事件等等。</p>\n<h2 id=\"-\">鼠标事件的处理</h2>\n<p>ECharts 支持常规的鼠标事件类型,包括 <code class=\"codespan\">&#39;click&#39;</code>、<code class=\"codespan\">&#39;dblclick&#39;</code>、<code class=\"codespan\">&#39;mousedown&#39;</code>、<code class=\"codespan\">&#39;mousemove&#39;</code>、<code class=\"codespan\">&#39;mouseup&#39;</code>、<code class=\"codespan\">&#39;mouseover&#39;</code>、<code class=\"codespan\">&#39;mouseout&#39;</code>、<code class=\"codespan\">&#39;globalout&#39;</code>、<code class=\"codespan\">&#39;contextmenu&#39;</code> 事件。下面先来看一个简单的点击柱状图后打开相应的百度搜索页面的示例。</p>\n<pre><code class=\"lang-js\">// 基于准备好的dom,初始化ECharts实例\nvar myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n// 指定图表的配置项和数据\nvar option = {\n    xAxis: {\n        data: [&quot;衬衫&quot;,&quot;羊毛衫&quot;,&quot;雪纺衫&quot;,&quot;裤子&quot;,&quot;高跟鞋&quot;,&quot;袜子&quot;]\n    },\n    yAxis: {},\n    series: [{\n        name: &#39;销量&#39;,\n        type: &#39;bar&#39;,\n        data: [5, 20, 36, 10, 10, 20]\n    }]\n};\n// 使用刚指定的配置项和数据显示图表。\nmyChart.setOption(option);\n// 处理点击事件并且跳转到相应的百度搜索页面\nmyChart.on(&#39;click&#39;, function (params) {\n    window.open(&#39;https://www.baidu.com/s?wd=&#39; + encodeURIComponent(params.name));\n});\n</code></pre>\n<p>所有的鼠标事件包含参数 <code class=\"codespan\">params</code>,这是一个包含点击图形的数据信息的对象,如下格式:</p>\n<pre><code class=\"lang-js\">{\n    // 当前点击的图形元素所属的组件名称,\n    // 其值如 &#39;series&#39;、&#39;markLine&#39;、&#39;markPoint&#39;、&#39;timeLine&#39; 等。\n    componentType: string,\n    // 系列类型。值可能为:&#39;line&#39;、&#39;bar&#39;、&#39;pie&#39; 等。当 componentType 为 &#39;series&#39; 时有意义。\n    seriesType: string,\n    // 系列在传入的 option.series 中的 index。当 componentType 为 &#39;series&#39; 时有意义。\n    seriesIndex: number,\n    // 系列名称。当 componentType 为 &#39;series&#39; 时有意义。\n    seriesName: string,\n    // 数据名,类目名\n    name: string,\n    // 数据在传入的 data 数组中的 index\n    dataIndex: number,\n    // 传入的原始数据项\n    data: Object,\n    // sankey、graph 等图表同时含有 nodeData 和 edgeData 两种 data,\n    // dataType 的值会是 &#39;node&#39; 或者 &#39;edge&#39;,表示当前点击在 node 还是 edge 上。\n    // 其他大部分图表中只有一种 data,dataType 无意义。\n    dataType: string,\n    // 传入的数据值\n    value: number|Array\n    // 数据图形的颜色。当 componentType 为 &#39;series&#39; 时有意义。\n    color: string\n}\n</code></pre>\n<p>如何区分鼠标点击到了哪里:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;click&#39;, function (params) {\n    if (params.componentType === &#39;markPoint&#39;) {\n        // 点击到了 markPoint 上\n        if (params.seriesIndex === 5) {\n            // 点击到了 index 为 5 的 series 的 markPoint 上。\n        }\n    }\n    else if (params.componentType === &#39;series&#39;) {\n        if (params.seriesType === &#39;graph&#39;) {\n            if (params.dataType === &#39;edge&#39;) {\n                // 点击到了 graph 的 edge(边)上。\n            }\n            else {\n                // 点击到了 graph 的 node(节点)上。\n            }\n        }\n    }\n});\n</code></pre>\n<p>使用 <code class=\"codespan\">query</code> 只对指定的组件的图形元素的触发回调:</p>\n<pre><code class=\"lang-js\">chart.on(eventName, query, handler);\n</code></pre>\n<p><code class=\"codespan\">query</code> 可为 <code class=\"codespan\">string</code> 或者 <code class=\"codespan\">Object</code>。</p>\n<p>如果为 <code class=\"codespan\">string</code> 表示组件类型。格式可以是 &#39;mainType&#39; 或者 &#39;mainType.subType&#39;。例如:</p>\n<pre><code class=\"lang-js\">chart.on(&#39;click&#39;, &#39;series&#39;, function () {...});\nchart.on(&#39;click&#39;, &#39;series.line&#39;, function () {...});\nchart.on(&#39;click&#39;, &#39;dataZoom&#39;, function () {...});\nchart.on(&#39;click&#39;, &#39;xAxis.category&#39;, function () {...});\n</code></pre>\n<p>如果为 <code class=\"codespan\">Object</code>,可以包含以下一个或多个属性,每个属性都是可选的:</p>\n<pre><code class=\"lang-js\">{\n    &lt;mainType&gt;Index: number // 组件 index\n    &lt;mainType&gt;Name: string // 组件 name\n    &lt;mainType&gt;Id: string // 组件 id\n    dataIndex: number // 数据项 index\n    name: string // 数据项 name\n    dataType: string // 数据项 type,如关系图中的 &#39;node&#39;, &#39;edge&#39;\n    element: string // 自定义系列中的 el 的 name\n}\n</code></pre>\n<p>例如:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: [{\n        name: &#39;uuu&#39;\n        // ...\n    }]\n});\nchart.on(&#39;mouseover&#39;, {seriesName: &#39;uuu&#39;}, function () {\n    // series name 为 &#39;uuu&#39; 的系列中的图形元素被 &#39;mouseover&#39; 时,此方法被回调。\n});\n</code></pre>\n<p>例如:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: [{\n        // ...\n    }, {\n        // ...\n        data: [\n            {name: &#39;xx&#39;, value: 121},\n            {name: &#39;yy&#39;, value: 33}\n        ]\n    }]\n});\nchart.on(&#39;mouseover&#39;, {seriesIndex: 1, name: &#39;xx&#39;}, function () {\n    // series index 1 的系列中的 name 为 &#39;xx&#39; 的元素被 &#39;mouseover&#39; 时,此方法被回调。\n});\n</code></pre>\n<p>例如:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: [{\n        type: &#39;graph&#39;,\n        nodes: [{name: &#39;a&#39;, value: 10}, {name: &#39;b&#39;, value: 20}],\n        edges: [{source: 0, target: 1}]\n    }]\n});\nchart.on(&#39;click&#39;, {dataType: &#39;node&#39;}, function () {\n    // 关系图的节点被点击时此方法被回调。\n});\nchart.on(&#39;click&#39;, {dataType: &#39;edge&#39;}, function () {\n    // 关系图的边被点击时此方法被回调。\n});\n</code></pre>\n<p>例如:</p>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: {\n        // ...\n        type: &#39;custom&#39;,\n        renderItem: function (params, api) {\n            return {\n                type: &#39;group&#39;,\n                children: [{\n                    type: &#39;circle&#39;,\n                    name: &#39;my_el&#39;,\n                    // ...\n                }, {\n                    // ...\n                }]\n            }\n        },\n        data: [[12, 33]]\n    }\n})\nchart.on(&#39;mouseup&#39;, {element: &#39;my_el&#39;}, function () {\n    // name 为 &#39;my_el&#39; 的元素被 &#39;mouseup&#39; 时,此方法被回调。\n});\n</code></pre>\n<p>你可以在回调函数中获得这个对象中的数据名、系列名称后在自己的数据仓库中索引得到其它的信息候更新图表,显示浮层等等,如下示例代码:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;click&#39;, function (parmas) {\n    $.get(&#39;detail?q=&#39; + params.name, function (detail) {\n        myChart.setOption({\n            series: [{\n                name: &#39;pie&#39;,\n                // 通过饼图表现单个柱子中的数据分布\n                data: [detail.data]\n            }]\n        });\n    });\n});\n</code></pre>\n<h2 id=\"-\">组件交互的行为事件</h2>\n<p>在 ECharts 中基本上所有的组件交互行为都会触发相应的事件,常用的事件和事件对应参数在 <a href=\"api.html#events\" target=\"_blank\">events</a> 文档中有列出。</p>\n<p>下面是监听一个图例开关的示例:</p>\n<pre><code class=\"lang-js\">// 图例开关的行为只会触发 legendselectchanged 事件\nmyChart.on(&#39;legendselectchanged&#39;, function (params) {\n    // 获取点击图例的选中状态\n    var isSelected = params.selected[params.name];\n    // 在控制台中打印\n    console.log((isSelected ? &#39;选中了&#39; : &#39;取消选中了&#39;) + &#39;图例&#39; + params.name);\n    // 打印所有图例的状态\n    console.log(params.selected);\n});\n</code></pre>\n<h2 id=\"-echarts-\">代码触发 ECharts 中组件的行为</h2>\n<p>上面提到诸如<code class=\"codespan\">&#39;legendselectchanged&#39;</code>事件会由组件交互的行为触发,那除了用户的交互操作,有时候也会有需要在程序里调用方法触发图表的行为,诸如显示 tooltip,选中图例。</p>\n<p>在 ECharts 2.x 是通过 <code class=\"codespan\">myChart.component.tooltip.showTip</code> 这种形式调用相应的接口触发图表行为,入口很深,而且涉及到内部组件的组织。相对地,在 ECharts 3 里改为通过调用 <code class=\"codespan\">myChart.dispatchAction({ type: &#39;&#39; })</code> 触发图表行为,统一管理了所有动作,也可以方便地根据需要去记录用户的行为路径。</p>\n<p>常用的动作和动作对应参数在 <a href=\"api.html#action\" target=\"_blank\">action</a> 文档中有列出。</p>\n<p>下面示例演示了如何通过<code class=\"codespan\">dispatchAction</code>去轮流高亮饼图的每个扇形。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/pie-highlight&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n\n<h2 id=\"-\">监听“空白处”的事件</h2>\n<p>有时候,开发者需要监听画布的“空白处”所触发的事件。比如,当需要在用户点击“空白处”的时候重置图表时。</p>\n<p>在讨论这个功能之前,我们需要先明确两种事件。<code class=\"codespan\">zrender 事件</code>和<code class=\"codespan\">echarts 事件</code>。</p>\n<pre><code class=\"lang-js\">myChart.getZr().on(&#39;click&#39;, function (event) {\n    // 该监听器正在监听一个`zrender 事件`。\n});\nmyChart.on(&#39;click&#39;, function (event) {\n    // 该监听器正在监听一个`echarts 事件`。\n});\n</code></pre>\n<p><code class=\"codespan\">zrender 事件</code>与<code class=\"codespan\">echarts 事件</code>不同。前者是当鼠标在任何地方都会被触发,而后者是只有当鼠标在图形元素上时才能被触发。事实上,<code class=\"codespan\">echarts 事件</code> 是在 <code class=\"codespan\">zrender 事件</code> 的基础上实现的,也就是说,当一个 <code class=\"codespan\">zrender 事件</code> 在图形元素上被触发时,<code class=\"codespan\">echarts</code> 将触发一个 <code class=\"codespan\">echarts 事件</code> 给开发者。</p>\n<p>有了 <code class=\"codespan\">zrender事件</code>,我们就可以实现 “监听空白处的事件”,具体如下:</p>\n<pre><code class=\"lang-js\">myChart.getZr().on(&#39;click&#39;, function (event) {\n    // 没有 target 意味着鼠标/指针不在任何一个图形元素上,它是从“空白处”触发的。\n    if (!event.target) {\n        // 点击在了空白处,做些什么。\n    }\n});\n</code></pre>\n"},"动态排序柱状图":{"type":["*"],"description":"<p>动态排序柱状图是一种展示随时间变化的数据排名变化的图表,从 ECharts 5 开始内置支持。</p>\n<blockquote>\n<p>动态排序柱状图通常是横向的柱条,如果想要采用纵向的柱条,只要把本教程中的 X 轴和 Y 轴相反设置即可。</p>\n</blockquote>\n<ol>\n<li><code class=\"codespan\">yAxis.realtimeSort</code> 设为 <code class=\"codespan\">true</code>,表示开启 Y 轴的动态排序效果</li>\n<li><code class=\"codespan\">yAxis.inverse</code> 设为 <code class=\"codespan\">true</code>,表示 Y 轴从下往上是从小到大的排列</li>\n<li><code class=\"codespan\">yAxis.animationDuration</code> 建议设为 <code class=\"codespan\">300</code>,表示第一次柱条排序动画的时长</li>\n<li><code class=\"codespan\">yAxis.animationDurationUpdate</code> 建议设为 <code class=\"codespan\">300</code>,表示第一次后柱条排序动画的时长</li>\n<li>如果想只显示前 <em>n</em> 名,将 <code class=\"codespan\">yAxis.max</code> 设为 <em>n - 1</em>,否则显示所有柱条</li>\n<li><code class=\"codespan\">xAxis.max</code> 建议设为 <code class=\"codespan\">&#39;dataMax&#39;</code> 表示用数据的最大值作为 X 轴最大值,视觉效果更好</li>\n<li>如果想要实时改变标签,需要将 <code class=\"codespan\">series.label.valueAnimation</code> 设为 <code class=\"codespan\">true</code></li>\n<li><code class=\"codespan\">animationDuration</code> 设为 <code class=\"codespan\">0</code>,表示第一份数据不需要从 <code class=\"codespan\">0</code> 开始动画(如果希望从 <code class=\"codespan\">0</code> 开始则设为和 <code class=\"codespan\">animationDurationUpdate</code> 相同的值)</li>\n<li><code class=\"codespan\">animationDurationUpdate</code> 建议设为 <code class=\"codespan\">3000</code> 表示每次更新动画时长,这一数值应与调用 <code class=\"codespan\">setOption</code> 改变数据的频率相同</li>\n<li>以 <code class=\"codespan\">animationDurationUpdate</code> 的频率调用 <code class=\"codespan\">setInterval</code>,更新数据值,显示下一个时间点对应的柱条排序</li>\n</ol>\n<p>完整的例子如下:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=bar-race&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n<p>以上的设置项比较多,如果手动设置比较繁琐,之后我们也会推出不用写代码就能实现动态排序柱状图的工具,敬请期待!</p>\n"},"小例子:自己实现拖拽":{"type":["*"],"description":"<p>介绍一个实现拖拽的小例子。这个例子是在原生 Apache ECharts<sup>TM</sup> 基础上做了些小小扩展,带有一定的交互性。通过这个例子,我们可以了解到,如何使用 ECharts 提供的 API 实现定制化的富交互的功能。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=line-draggable&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n<p>这个例子主要做到了这样一件事,用鼠标可以拖拽曲线的点,从而改变曲线的形状。例子很简单,但是有了这个基础我们还可以做更多的事情,比如在图中可视化得编辑。所以我们从这个简单的例子开始。</p>\n<p>echarts 本身没有提供封装好的『拖拽改变图表』功能,因为现在认为这个功能并不足够有通用性。那么这个功能就留给开发者用 API 实现,这也有助于开发者按自己的需要个性定制。</p>\n<h2 id=\"-\">(一)实现基本的拖拽功能</h2>\n<p>在这个例子中,基础的图表是一个 <a href=\"option.html#series-line\" target=\"_blank\">折线图 (series-line)</a>。参见如下配置:</p>\n<pre><code class=\"lang-js\">var symbolSize = 20;\n\n// 这个 data 变量在这里单独声明,在后面也会用到。\nvar data = [[15, 0], [-50, 10], [-56.5, 20], [-46.5, 30], [-22.1, 40]];\n\nmyChart.setOption({\n    xAxis: {\n        min: -100,\n        max: 80,\n        type: &#39;value&#39;,\n        axisLine: {onZero: false}\n    },\n    yAxis: {\n        min: -30,\n        max: 60,\n        type: &#39;value&#39;,\n        axisLine: {onZero: false}\n    },\n    series: [\n        {\n            id: &#39;a&#39;,\n            type: &#39;line&#39;,\n            smooth: true,\n            symbolSize: symbolSize, // 为了方便拖拽,把 symbolSize 尺寸设大了。\n            data: data\n        }\n    ]\n});\n</code></pre>\n<p>既然折线中原生的点没有拖拽功能,我们就为它加上拖拽功能:用 <a href=\"option.html#graphic\" target=\"_blank\">graphic</a> 组件,在每个点上面,覆盖一个隐藏的可拖拽的圆点。</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    // 声明一个 graphic component,里面有若干个 type 为 &#39;circle&#39; 的 graphic elements。\n    // 这里使用了 echarts.util.map 这个帮助方法,其行为和 Array.prototype.map 一样,但是兼容 es5 以下的环境。\n    // 用 map 方法遍历 data 的每项,为每项生成一个圆点。\n    graphic: echarts.util.map(data, function (dataItem, dataIndex) {\n        return {\n            // &#39;circle&#39; 表示这个 graphic element 的类型是圆点。\n            type: &#39;circle&#39;,\n\n            shape: {\n                // 圆点的半径。\n                r: symbolSize / 2\n            },\n            // 用 transform 的方式对圆点进行定位。position: [x, y] 表示将圆点平移到 [x, y] 位置。\n            // 这里使用了 convertToPixel 这个 API 来得到每个圆点的位置,下面介绍。\n            position: myChart.convertToPixel(&#39;grid&#39;, dataItem),\n\n            // 这个属性让圆点不可见(但是不影响他响应鼠标事件)。\n            invisible: true,\n            // 这个属性让圆点可以被拖拽。\n            draggable: true,\n            // 把 z 值设得比较大,表示这个圆点在最上方,能覆盖住已有的折线图的圆点。\n            z: 100,\n            // 此圆点的拖拽的响应事件,在拖拽过程中会不断被触发。下面介绍详情。\n            // 这里使用了 echarts.util.curry 这个帮助方法,意思是生成一个与 onPointDragging\n            // 功能一样的新的函数,只不过第一个参数永远为此时传入的 dataIndex 的值。\n            ondrag: echarts.util.curry(onPointDragging, dataIndex)\n        };\n    })\n});\n</code></pre>\n<p>上面的代码中,使用 <a href=\"api.html#echartsInstance.convertToPixel\" target=\"_blank\">convertToPixel</a> 这个 API,进行了从 data 到『像素坐标』的转换,从而得到了每个圆点应该在的位置,从而能绘制这些圆点。<code class=\"codespan\">myChart.convertToPixel(&#39;grid&#39;, dataItem)</code> 这句话中,第一个参数 <code class=\"codespan\">&#39;grid&#39;</code> 表示 <code class=\"codespan\">dataItem</code> 在 <a href=\"option.html#grid\" target=\"_blank\">grid</a> 这个组件中(即直角坐标系)中进行转换。所谓『像素坐标』,就是以 echarts 容器 dom element 的左上角为零点的以像素为单位的坐标系中的坐标。</p>\n<p>注意这件事需要在第一次 setOption 后再进行,也就是说,须在坐标系(<a href=\"option.html#grid\" target=\"_blank\">grid</a>)初始化后才能调用 <code class=\"codespan\">myChart.convertToPixel(&#39;grid&#39;, dataItem)</code>。</p>\n<p>有了这段代码后,就有了诸个能拖拽的点。接下来要为每个点,加上拖拽响应的事件:</p>\n<pre><code class=\"lang-js\">// 拖拽某个圆点的过程中会不断调用此函数。\n// 此函数中会根据拖拽后的新位置,改变 data 中的值,并用新的 data 值,重绘折线图,从而使折线图同步于被拖拽的隐藏圆点。\nfunction onPointDragging(dataIndex) {\n    // 这里的 data 就是本文最初的代码块中声明的 data,在这里会被更新。\n    // 这里的 this 就是被拖拽的圆点。this.position 就是圆点当前的位置。\n    data[dataIndex] = myChart.convertFromPixel(&#39;grid&#39;, this.position);\n    // 用更新后的 data,重绘折线图。\n    myChart.setOption({\n        series: [{\n            id: &#39;a&#39;,\n            data: data\n        }]\n    });\n}\n</code></pre>\n<p>上面的代码中,使用了 <a href=\"api.html#echartsInstance.convertFromPixel\" target=\"_blank\">convertFromPixel</a> 这个 API。它是 <a href=\"api.html#echartsInstance.convertToPixel\" target=\"_blank\">convertToPixel</a> 的逆向过程。<code class=\"codespan\">myChart.convertFromPixel(&#39;grid&#39;, this.position)</code> 表示把当前像素坐标转换成 <a href=\"option.html#grid\" target=\"_blank\">grid</a> 组件中直角坐标系的 dataItem 值。</p>\n<p>最后,为了使 dom 尺寸改变时,图中的元素能自适应得变化,加上这些代码:</p>\n<pre><code class=\"lang-js\">window.addEventListener(&#39;resize&#39;, function () {\n    // 对每个拖拽圆点重新计算位置,并用 setOption 更新。\n    myChart.setOption({\n        graphic: echarts.util.map(data, function (item, dataIndex) {\n            return {\n                position: myChart.convertToPixel(&#39;grid&#39;, item)\n            };\n        })\n    });\n});\n\n</code></pre>\n<h2 id=\"-tooltip-\">(二)添加 tooltip 组件</h2>\n<p>到此,拖拽的基本功能就完成了。但是想要更进一步得实时看到拖拽过程中,被拖拽的点的 data 值的变化状况,我们可以使用 <a href=\"option.html#tooltip\" target=\"_blank\">tooltip</a> 组件来实时显示这个值。但是,tooltip 有其默认的『显示』『隐藏』触发规则,在我们拖拽的场景中并不适用,所以我们还要手动定制 tooltip 的『显示』『隐藏』行为。</p>\n<p>在上述代码中分别添加如下定义:</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    ...,\n    tooltip: {\n        // 表示不使用默认的『显示』『隐藏』触发规则。\n        triggerOn: &#39;none&#39;,\n        formatter: function (params) {\n            return &#39;X: &#39; + params.data[0].toFixed(2) + &#39;&lt;br&gt;Y: &#39; + params.data[1].toFixed(2);\n        }\n    }\n});\n</code></pre>\n<pre><code class=\"lang-js\">myChart.setOption({\n    graphic: echarts.util.map(data, function (item, dataIndex) {\n        return {\n            type: &#39;circle&#39;,\n            ...,\n            // 在 mouseover 的时候显示,在 mouseout 的时候隐藏。\n            onmousemove: echarts.util.curry(showTooltip, dataIndex),\n            onmouseout: echarts.util.curry(hideTooltip, dataIndex),\n        };\n    })\n});\n\nfunction showTooltip(dataIndex) {\n    myChart.dispatchAction({\n        type: &#39;showTip&#39;,\n        seriesIndex: 0,\n        dataIndex: dataIndex\n    });\n}\n\nfunction hideTooltip(dataIndex) {\n    myChart.dispatchAction({\n        type: &#39;hideTip&#39;\n    });\n}\n</code></pre>\n<p>这里使用了 <a href=\"api.html#echartsInstance.dispatchAction\" target=\"_blank\">dispatchAction</a> 来显示隐藏 tooltip。用到了 <a href=\"api.html#action.tooltip.showTip\" target=\"_blank\">showTip</a>、<a href=\"api.html#action.tooltip.hideTip\" target=\"_blank\">hideTip</a>。</p>\n<h2 id=\"-\">(三)全部代码</h2>\n<p>总结一下,全部的代码如下:</p>\n<pre><code>&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;script src=&quot;dist/echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;/head&gt;\n&lt;body&gt;\n    &lt;div id=&quot;main&quot; style=&quot;width: 600px;height:400px;&quot;&gt;&lt;/div&gt;\n    &lt;script type=&quot;text/javascript&quot;&gt;\n\n    var symbolSize = 20;\n    var data = [[15, 0], [-50, 10], [-56.5, 20], [-46.5, 30], [-22.1, 40]];\n\n    var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n    myChart.setOption({\n        tooltip: {\n            triggerOn: &#39;none&#39;,\n            formatter: function (params) {\n                return &#39;X: &#39; + params.data[0].toFixed(2) + &#39;&lt;br&gt;Y: &#39; + params.data[1].toFixed(2);\n            }\n        },\n        xAxis: {\n            min: -100,\n            max: 80,\n            type: &#39;value&#39;,\n            axisLine: {onZero: false}\n        },\n        yAxis: {\n            min: -30,\n            max: 60,\n            type: &#39;value&#39;,\n            axisLine: {onZero: false}\n        },\n        series: [\n            {\n                id: &#39;a&#39;,\n                type: &#39;line&#39;,\n                smooth: true,\n                symbolSize: symbolSize,\n                data: data\n            }\n        ],\n    });\n\n    myChart.setOption({\n        graphic: echarts.util.map(data, function (item, dataIndex) {\n            return {\n                type: &#39;circle&#39;,\n                position: myChart.convertToPixel(&#39;grid&#39;, item),\n                shape: {\n                    r: symbolSize / 2\n                },\n                invisible: true,\n                draggable: true,\n                ondrag: echarts.util.curry(onPointDragging, dataIndex),\n                onmousemove: echarts.util.curry(showTooltip, dataIndex),\n                onmouseout: echarts.util.curry(hideTooltip, dataIndex),\n                z: 100\n            };\n        })\n    });\n\n    window.addEventListener(&#39;resize&#39;, function () {\n        myChart.setOption({\n            graphic: echarts.util.map(data, function (item, dataIndex) {\n                return {\n                    position: myChart.convertToPixel(&#39;grid&#39;, item)\n                };\n            })\n        });\n    });\n\n    function showTooltip(dataIndex) {\n        myChart.dispatchAction({\n            type: &#39;showTip&#39;,\n            seriesIndex: 0,\n            dataIndex: dataIndex\n        });\n    }\n\n    function hideTooltip(dataIndex) {\n        myChart.dispatchAction({\n            type: &#39;hideTip&#39;\n        });\n    }\n\n    function onPointDragging(dataIndex, dx, dy) {\n        data[dataIndex] = myChart.convertFromPixel(&#39;grid&#39;, this.position);\n        myChart.setOption({\n            series: [{\n                id: &#39;a&#39;,\n                data: data\n            }]\n        });\n    }\n\n&lt;/script&gt;\n&lt;/body&gt;\n&lt;/html&gt;\n</code></pre><p><br></p>\n<p>有了这些基础,就可以定制更多的功能了。可以加 <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a> 组件,可以制作一个直角坐标系上的绘图板等等。可以发挥想象力。</p>\n"},"小例子:实现日历图":{"type":["*"],"description":"<p>在 Apache ECharts<sup>TM</sup> 中,我们新增了日历坐标系,如何快速写出一个日历图呢?</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=calendar-simple&edit=1&reset=1\" width=\"800\" height=\"300\" ></iframe>\n\n\n<p>通过以下三个步骤即可实现上述效果:</p>\n<h2 id=\"-js-\">第一步:引入js文件</h2>\n<p>下载的最新完整版本 echarts.min.js 即可,无需再单独引入其他文件哦</p>\n<pre><code class=\"lang-html\">&lt;script src=&quot;echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;script&gt;\n    // ...\n&lt;/script&gt;\n</code></pre>\n<h2 id=\"-dom-\">第二步:指定DOM元素作为图表容器</h2>\n<p>和ECharts中的其他图表一样,创建一个DOM来作为绘制图表的容器</p>\n<pre><code class=\"lang-html\">&lt;div id=&quot;main&quot; style=&quot;width=100%; height = 400px&quot;&gt;&lt;/div&gt;\n</code></pre>\n<p>使用ECharts进行初始化</p>\n<pre><code class=\"lang-js\">var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n</code></pre>\n<h2 id=\"-\">第三步:配置参数</h2>\n<p>以常见的日历图为例: calendar坐标 + heatmap图</p>\n<pre><code class=\"lang-js\">var option = {\n    visualMap: {\n        show: false\n        min: 0,\n        max: 1000\n    },\n    calendar: {\n        range: &#39;2017&#39;\n    },\n    series: {\n        type: &#39;heatmap&#39;,\n        coordinateSystem: &#39;calendar&#39;,\n        data: [[&#39;2017-01-02&#39;, 900], [&#39;2017-01-02&#39;, 877], [&#39;2017-01-02&#39;, 699], ...]\n    }\n}\nmyChart.setOption(option);\n</code></pre>\n<p>在heatmap图的基础上,加上<code class=\"codespan\">coordinateSystem: &#39;calendar&#39;,</code>和<code class=\"codespan\">calendar: { range: &#39;2017&#39; }</code>heatmap图就秒变为日历图了。</p>\n<blockquote>\n<p>若发现图表没有正确显示,你可以检查以下几种可能:</p>\n<ul>\n<li>JS文件是否正确加载;</li>\n<li><code class=\"codespan\">echarts</code> 变量是否存在;</li>\n<li>控制台是否报错;</li>\n<li>DOM 元素在 <code class=\"codespan\">echarts.init</code> 的时候是否有高度和宽度。</li>\n<li>若为 <code class=\"codespan\">type: heatmap</code>,检查是否配置了 <code class=\"codespan\">visualMap</code>。</li>\n</ul>\n</blockquote>\n<p><strong>附完整示例代码</strong></p>\n<pre><code class=\"lang-html\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=&quot;utf-8&quot;&gt;\n    &lt;title&gt;ECharts&lt;/title&gt;\n    &lt;script src=&quot;echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;/head&gt;\n&lt;body&gt;\n    &lt;div id=&quot;main&quot; style=&quot;width:100%;height:400px;&quot;&gt;&lt;/div&gt;\n    &lt;script type=&quot;text/javascript&quot;&gt;\n        var myChart = echarts.init(document.getElementById(&#39;main&#39;));\n\n        // 模拟数据\n        function getVirtulData(year) {\n            year = year || &#39;2017&#39;;\n            var date = +echarts.number.parseDate(year + &#39;-01-01&#39;);\n            var end = +echarts.number.parseDate(year + &#39;-12-31&#39;);\n            var dayTime = 3600 * 24 * 1000;\n            var data = [];\n            for (var time = date; time &lt;= end; time += dayTime) {\n                data.push([\n                    echarts.format.formatTime(&#39;yyyy-MM-dd&#39;, time),\n                    Math.floor(Math.random() * 10000)\n                ]);\n            }\n            return data;\n        }\n        var option = {\n            visualMap: {\n                show: false,\n                min: 0,\n                max: 10000\n            },\n            calendar: {\n                range: &#39;2017&#39;\n            },\n            series: {\n                type: &#39;heatmap&#39;,\n                coordinateSystem: &#39;calendar&#39;,\n                data: getVirtulData(2017)\n            }\n        };\n        myChart.setOption(option);\n    &lt;/script&gt;\n&lt;/body&gt;\n&lt;/html&gt;\n\n</code></pre>\n<p>以上就是绘制最简日历图的步骤了,如若还想进一步私人定制,还可以通过自定义配置参数来实现</p>\n<h2 id=\"-\">自定义配置参数</h2>\n<p>使用日历坐标绘制日历图时,支持自定义各项属性:</p>\n<ul>\n<li><p><a href=\"option.html#calendar.range\" target=\"_blank\">range</a>: <code class=\"codespan\">设置时间的范围,可支持某年、某月、某天,还可支持跨年</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.cellSize\" target=\"_blank\">cellSize</a>: <code class=\"codespan\">设置日历格的大小,可支持设置不同高宽,还可支持自适应auto</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.width\" target=\"_blank\">width</a>、<a href=\"http://xxx\" target=\"_blank\">height</a>: <code class=\"codespan\">也可以直接设置改日历图的整体高宽,让其基于已有的高宽全部自适应</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.orient\" target=\"_blank\">orient</a>: <code class=\"codespan\">设置坐标的方向,既可以横着也可以竖着</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.splitLine\" target=\"_blank\">splitLine</a>: <code class=\"codespan\">设置分隔线样式,也可以直接不显示</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.itemStyle\" target=\"_blank\">itemStyle</a>: <code class=\"codespan\">设置日历格的样式,背景色、方框线颜色大小类型、透明度均可自定义,甚至还能加阴影</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.dayLabel\" target=\"_blank\">dayLabel</a>: <code class=\"codespan\">设置坐标中 星期样式,可以设置星期从第几天开始,快捷设置中英文、甚至是自定义中英文混搭、或局部不显示、通过formatter 可以想怎么显示就怎么显示;</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.monthLabel\" target=\"_blank\">monthLabel</a>: <code class=\"codespan\">设置坐标中 月样式,和星期一样,可快捷设置中英文和自定义混搭</code></p>\n</li>\n<li><p><a href=\"option.html#calendar.yearLabel\" target=\"_blank\">yearLabel</a>: <code class=\"codespan\">设置坐标中 年样式,默认显示一年,通过formatter 文字可以想显示什么就能通过string function任性自定义,上下左右方位随便选;</code></p>\n</li>\n</ul>\n<p>完整的配置项参数参见:<a href=\"option.html#calendar\" target=\"_blank\">calendar API</a></p>\n<h2 id=\"-\">日历坐标系的其他形式</h2>\n<p>日历坐标系是一种新的 <code class=\"codespan\">ECharts</code> 坐标系,提供了在日历上绘制图表的能力; 所以除了制作常用的日历图外,我们可以在热力图、散点图、关系图中使用日历坐标系。</p>\n<p>在日历坐标系中使用热力图:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=calendar-heatmap&edit=1&reset=1\" width=\"800\" height=\"300\" ></iframe>\n\n\n<p>在日历坐标系中使用散点图:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=calendar-effectscatter&edit=1&reset=1\" width=\"800\" height=\"600\" ></iframe>\n\n\n<p>还可以混合放置不同的图表,例如下例子,同时放置了热力图和关系图:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=calendar-graph&edit=1&reset=1\" width=\"800\" height=\"600\" ></iframe>\n\n\n<p><strong>其他更丰富的效果</strong></p>\n<p>灵活利用 <code class=\"codespan\">ECharts</code> 图表和坐标系的组合,以及 API,还可以实现更丰富的效果。</p>\n<p>例如,制作农历:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=calendar-lunar&edit=1&reset=1\" width=\"600\" height=\"500\" ></iframe>\n\n\n<p>例如,使用 <code class=\"codespan\">chart.convertToPixel</code> 接口,在日历坐标系绘制饼图。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=calendar-pie&edit=1&reset=1\" width=\"800\" height=\"640\" ></iframe>\n\n\n\n\n\n\n\n"},"旭日图":{"type":["*"],"description":"<p><a href=\"https://en.wikipedia.org/wiki/Pie_chart#Ring_chart_/_Sunburst_chart_/_Multilevel_pie_chart\" target=\"_blank\">旭日图(Sunburst)</a>由多层的环形图组成,在数据结构上,内圈是外圈的父节点。因此,它既能像<a href=\"option.html#series-pie\" target=\"_blank\">饼图</a>一样表现局部和整体的占比,又能像<a href=\"option.html#series-treemap\" target=\"_blank\">矩形树图</a>一样表现层级关系。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=sunburst-monochrome&edit=1&reset=1\" width=\"700\" height=\"500\" ></iframe>\n\n\n<h2 id=\"-\">引入相关文件</h2>\n<p>旭日图是 Apache ECharts<sup>TM</sup> 4.0 新增的图表类型,从 <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">CDN</a> 引入完整版的 <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js\" target=\"_blank\">echarts.min.js</a></p>\n<h2 id=\"-\">最简单的旭日图</h2>\n<p>创建旭日图需要在 <code class=\"codespan\">series</code> 配置项中声明类型为 <code class=\"codespan\">&#39;sunburst&#39;</code> 的系列,并且以树形结构声明其 <code class=\"codespan\">data</code>:</p>\n<pre><code class=\"lang-js\">var option = {\n    series: {\n        type: &#39;sunburst&#39;,\n        data: [{\n            name: &#39;A&#39;,\n            value: 10,\n            children: [{\n                value: 3,\n                name: &#39;Aa&#39;\n            }, {\n                value: 5,\n                name: &#39;Ab&#39;\n            }]\n        }, {\n            name: &#39;B&#39;,\n            children: [{\n                name: &#39;Ba&#39;,\n                value: 4\n            }, {\n                name: &#39;Bb&#39;,\n                value: 2\n            }]\n        }, {\n            name: &#39;C&#39;,\n            value: 3\n        }]\n    }\n};\n</code></pre>\n<p>得到以下结果:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/sunburst-simple&edit=1&reset=1\" width=\"700\" height=\"400\" ></iframe>\n\n\n<h2 id=\"-\">颜色等样式调整</h2>\n<p>默认情况下会使用全局调色盘 <a href=\"option.html#color\" target=\"_blank\">color</a> 分配最内层的颜色,其余层则与其父元素同色。在旭日图中,扇形块的颜色有以下三种设置方式:</p>\n<ul>\n<li>在 <a href=\"option.html#series-sunburst.data.itemStyle\" target=\"_blank\">series.data.itemStyle</a> 中设置每个扇形块的样式;</li>\n<li>在 <a href=\"option.html#series-sunburst.levels.itemStyle\" target=\"_blank\">series.levels.itemStyle</a> 中设置每一层的样式;</li>\n<li>在 <a href=\"option.html#series-sunburst.itemStyle\" target=\"_blank\">series.itemStyle</a> 中设置整个旭日图的样式。</li>\n</ul>\n<p>上述三者的优先级是从高到低的,也就是说,配置了 <code class=\"codespan\">series.data.itemStyle</code> 的扇形块将会覆盖 <code class=\"codespan\">series.levels.itemStyle</code> 和 <code class=\"codespan\">series.itemStyle</code> 的设置。</p>\n<p>下面,我们将整体的颜色设为灰色 <code class=\"codespan\">&#39;#aaa&#39;</code>,将最内层的颜色设为蓝色 <code class=\"codespan\">&#39;blue&#39;</code>,将 <code class=\"codespan\">Aa</code>、<code class=\"codespan\">B</code> 这两块设为红色 <code class=\"codespan\">&#39;red&#39;</code>。</p>\n<pre><code class=\"lang-js\">var option = {\n    series: {\n        type: &#39;sunburst&#39;,\n        data: [{\n            name: &#39;A&#39;,\n            value: 10,\n            children: [{\n                value: 3,\n                name: &#39;Aa&#39;,\n                itemStyle: {\n                    color: &#39;red&#39;\n                }\n            }, {\n                value: 5,\n                name: &#39;Ab&#39;\n            }]\n        }, {\n            name: &#39;B&#39;,\n            children: [{\n                name: &#39;Ba&#39;,\n                value: 4\n            }, {\n                name: &#39;Bb&#39;,\n                value: 2\n            }],\n            itemStyle: {\n                color: &#39;red&#39;\n            }\n        }, {\n            name: &#39;C&#39;,\n            value: 3\n        }],\n        itemStyle: {\n            color: &#39;#aaa&#39;\n        },\n        levels: [{\n            // 留给数据下钻的节点属性\n        }, {\n            itemStyle: {\n                color: &#39;blue&#39;\n            }\n        }]\n    }\n};\n</code></pre>\n<p>效果为:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/sunburst-color&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n\n<h2 id=\"-\">按层配置样式</h2>\n<p>旭日图是一种有层次的结构,为了方便同一层样式的配置,我们提供了 <a href=\"option.html#series-sunburst.levels\" target=\"_blank\">levels</a> 配置项。它是一个数组,其中的第 0 项表示数据下钻后返回上级的图形,其后的每一项分别表示从圆心向外层的层级。</p>\n<p>例如,假设我们没有数据下钻功能,并且希望将最内层的扇形块的颜色设为红色,文字设为蓝色,可以这样设置:</p>\n<pre><code class=\"lang-js\">series: {\n    // ...\n    levels: [\n        {\n            // 留给数据下钻点的空白配置\n        },\n        {\n            // 最靠内测的第一层\n            itemStyle: {\n                color: &#39;red&#39;\n            },\n            label: {\n                color: &#39;blue&#39;\n            }\n        },\n        {\n            // 第二层 ...\n        }\n    ]\n}\n</code></pre>\n<p>在实际使用的过程中,你会发现按层配置样式是一个很常用的功能,能够很大程度上提高配置的效率。</p>\n<h2 id=\"-\">数据下钻</h2>\n<p>旭日图默认支持数据下钻,也就是说,当点击了扇形块之后,将以该扇形块的数据作为根节点,便于进一步了解该数据的细节。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=sunburst-simple&edit=1&reset=1\" width=\"700\" height=\"500\" ></iframe>\n\n\n<p>当数据下钻后,中间会出现一个用于返回上一层的图形,该图形的样式可以通过 <a href=\"option.html#series-sunburst.levels\" target=\"_blank\">levels[0]</a> 配置。</p>\n<p>如果不需要数据下钻功能,可以通过将 <a href=\"option.html#series-sunburst.nodeClick\" target=\"_blank\">nodeClick</a> 设置为 <code class=\"codespan\">false</code> 关闭;或者将其设为 <code class=\"codespan\">&#39;link&#39;</code>,并将 <a href=\"option.html#series-sunburst.data.link\" target=\"_blank\">data.link</a> 设为点击扇形块对应打开的链接。</p>\n<h2 id=\"-\">高亮相关扇形块</h2>\n<p>旭日图支持鼠标移动到某扇形块时,高亮相关数据块的操作,可以通过设置 <a href=\"option.html#series-sunburst.highlightPolicy\" target=\"_blank\">highlightPolicy</a>,包括以下几种高亮方式:</p>\n<ul>\n<li><code class=\"codespan\">&#39;descendant&#39;</code>(默认值):高亮鼠标移动所在扇形块与其后代元素;</li>\n<li><code class=\"codespan\">&#39;ancestor&#39;</code>:高亮鼠标所在扇形块与其祖先元素;</li>\n<li><code class=\"codespan\">&#39;self&#39;</code>:仅高亮鼠标所在扇形块;</li>\n<li><code class=\"codespan\">&#39;none&#39;</code>:不会淡化(downplay)其他元素。</li>\n</ul>\n<p>上面提到的“高亮”,对于鼠标所在的扇形块,会使用 <code class=\"codespan\">emphasis</code> 样式;对于其他相关扇形块,则会使用 <code class=\"codespan\">highlight</code> 样式。通过这种方式,可以很方便地实现突出显示相关数据的需求。</p>\n<p>具体来说,对于配置项:</p>\n<pre><code class=\"lang-js\">itemStyle: {\n    color: &#39;yellow&#39;,\n    borderWidth: 2,\n    emphasis: {\n        color: &#39;red&#39;\n    },\n    highlight: {\n        color: &#39;orange&#39;\n    },\n    downplay: {\n        color: &#39;#ccc&#39;\n    }\n}\n</code></pre>\n<p><code class=\"codespan\">highlightPolicy</code> 为 <code class=\"codespan\">&#39;descendant&#39;</code> 或 <code class=\"codespan\">&#39;ancestor&#39;</code> 的效果分别为:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/sunburst-highlight-descendant&edit=1&reset=1\" width=\"700\" height=\"350\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/sunburst-highlight-ancestor&edit=1&reset=1\" width=\"700\" height=\"350\" ></iframe>\n\n\n<h2 id=\"-\">总结</h2>\n<p>上面的教程主要讲述的是如何入门使用旭日图,感兴趣的用户可以在 <a href=\"option.html#series-sunburst\" target=\"_blank\">配置项手册</a> 查看更完整的文档。在灵活应用这些配置项之后,就能做出丰富多彩的旭日图了!</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=sunburst-book&edit=1&reset=1\" width=\"700\" height=\"600\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=sunburst-drink&edit=1&reset=1\" width=\"700\" height=\"600\" ></iframe>\n\n\n\n\n\n\n\n\n\n"},"自定义系列":{"type":["*"],"description":"<p><a href=\"option.html#series-custom\" target=\"_blank\">自定义系列(custom series)</a>,是一种系列的类型。它把绘制图形元素这一步留给开发者去做,从而开发者能在坐标系中自由绘制出自己需要的图表。</p>\n<p>Apache ECharts<sup>TM</sup> 为什么会要支持 <code class=\"codespan\">自定义系列</code> 呢?</p>\n<p>ECharts 内置支持的图表类型是最常见的图表类型,但是图表类型是难于穷举的,有很多小众的需求 echarts 并不能内置的支持。那么就需要提供一种方式来让开发者自己扩展。另一方面,所提供的扩展方式要尽可能得简单,例如图形元素创建和释放、过渡动画、tooltip、<a href=\"option.html#dataZoom\" target=\"_blank\">数据区域缩放(dataZoom)</a>、<a href=\"option.html#visualMap\" target=\"_blank\">视觉映射(visualMap)</a>等功能,尽量在 ECharts 中内置得处理,使开发者不必纠结于这些细节。综上考虑形成了 <a href=\"option.html#series-custom\" target=\"_blank\">自定义系列(custom series)</a>。</p>\n<p><strong>例如,下面的例子使用 custom series 扩展出了 x-range 图:</strong></p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=custom-profile&reset=1&edit=1\" width=\"800\" height=\"500\" ></iframe>\n\n\n<p><strong>更多的例子参见:<a href=\"https://echarts.apache.org/examples/zh/index.html#chart-type-custom\" target=\"_blank\">custom examples</a></strong></p>\n<p>下面来介绍开发者怎么使用 <a href=\"option.html#series-custom\" target=\"_blank\">自定义系列(custom series)</a>。</p>\n<h2 id=\"-renderitem-\">(一)renderItem 方法</h2>\n<p>开发者自定义的图形元素渲染逻辑,是通过书写 <code class=\"codespan\">renderItem</code> 函数实现的,例如:</p>\n<pre><code class=\"lang-js\">var option = {\n    ...,\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function (params, api) {\n            // ...\n        },\n        data: data\n    }]\n}\n</code></pre>\n<p>在渲染阶段,对于 <a href=\"option.html#series-custom.data\" target=\"_blank\">series.data</a> 中的每个数据项(为方便描述,这里称为 <code class=\"codespan\">dataItem</code>),会调用此 <a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> 函数。这个 <code class=\"codespan\">renderItem</code> 函数的职责,就是返回一个(或者一组)<code class=\"codespan\">图形元素定义</code>,<code class=\"codespan\">图形元素定义</code> 中包括图形元素的类型、位置、尺寸、样式等。echarts 会根据这些 <code class=\"codespan\">图形元素定义</code> 来渲染出图形元素。如下的示意:</p>\n<pre><code class=\"lang-js\">var option = {\n    ...,\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function (params, api) {\n            // 对于 data 中的每个 dataItem,都会调用这个 renderItem 函数。\n            // (但是注意,并不一定是按照 data 的顺序调用)\n\n            // 这里进行一些处理,例如,坐标转换。\n            // 这里使用 api.value(0) 取出当前 dataItem 中第一个维度的数值。\n            var categoryIndex = api.value(0);\n            // 这里使用 api.coord(...) 将数值在当前坐标系中转换成为屏幕上的点的像素值。\n            var startPoint = api.coord([api.value(1), categoryIndex]);\n            var endPoint = api.coord([api.value(2), categoryIndex]);\n            // 这里使用 api.size(...) 获得 Y 轴上数值范围为 1 的一段所对应的像素长度。\n            var height = api.size([0, 1])[1] * 0.6;\n\n            // shape 属性描述了这个矩形的像素位置和大小。\n            // 其中特殊得用到了 echarts.graphic.clipRectByRect,意思是,\n            // 如果矩形超出了当前坐标系的包围盒,则剪裁这个矩形。\n            // 如果矩形完全被剪掉,会返回 undefined.\n            var rectShape = echarts.graphic.clipRectByRect({\n                // 矩形的位置和大小。\n                x: startPoint[0],\n                y: startPoint[1] - height / 2,\n                width: endPoint[0] - startPoint[0],\n                height: height\n            }, {\n                // 当前坐标系的包围盒。\n                x: params.coordSys.x,\n                y: params.coordSys.y,\n                width: params.coordSys.width,\n                height: params.coordSys.height\n            });\n\n            // 这里返回为这个 dataItem 构建的图形元素定义。\n            return rectShape &amp;&amp; {\n                // 表示这个图形元素是矩形。还可以是 &#39;circle&#39;, &#39;sector&#39;, &#39;polygon&#39; 等等。\n                type: &#39;rect&#39;,\n                shape: rectShape,\n                // 用 api.style(...) 得到默认的样式设置。这个样式设置包含了\n                // option 中 itemStyle 的配置和视觉映射得到的颜色。\n                style: api.style()\n            };\n        },\n        data: [\n            [12, 44, 55, 60], // 这是第一个 dataItem\n            [53, 31, 21, 56], // 这是第二个 dataItem\n            [71, 33, 10, 20], // 这是第三个 dataItem\n            ...\n        ]\n    }]\n}\n</code></pre>\n<p><a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> 函数提供了两个参数:</p>\n<ul>\n<li><a href=\"option.html#series-custom.renderItem.arguments.params\" target=\"_blank\">params</a>:包含了当前数据信息(如 <code class=\"codespan\">seriesIndex</code>、<code class=\"codespan\">dataIndex</code> 等等)和坐标系的信息(如坐标系包围盒的位置和尺寸)。</li>\n<li><a href=\"option.html#series-custom.renderItem.arguments.api\" target=\"_blank\">api</a>:是一些开发者可调用的方法集合(如 <code class=\"codespan\">api.value()</code>、<code class=\"codespan\">api.coord()</code>)。</li>\n</ul>\n<p><a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> 函数须返回根据此 <code class=\"codespan\">dataItem</code> 绘制出的图形元素的定义信息,参见 <a href=\"option.html#series-custom.renderItem.return\" target=\"_blank\">renderItem.return</a>。</p>\n<p>一般来说,<a href=\"option.html#series-custom.renderItem\" target=\"_blank\">renderItem</a> 函数的主要逻辑,是将 <code class=\"codespan\">dataItem</code> 里的值映射到坐标系上的图形元素。这一般需要用到 <a href=\"option.html#series-custom.renderItem.arguments.api\" target=\"_blank\">renderItem.arguments.api</a> 中的两个函数:</p>\n<ul>\n<li><a href=\"option.html#series-custom.renderItem.arguments.api.value\" target=\"_blank\">api.value(...)</a>,意思是取出 <code class=\"codespan\">dataItem</code> 中的数值。例如 <code class=\"codespan\">api.value(0)</code> 表示取出当前 <code class=\"codespan\">dataItem</code> 中第一个维度的数值。</li>\n<li><a href=\"option.html#series-custom.renderItem.arguments.api.coord\" target=\"_blank\">api.coord(...)</a>,意思是进行坐标转换计算。例如 <code class=\"codespan\">var point = api.coord([api.value(0), api.value(1)])</code> 表示 <code class=\"codespan\">dataItem</code> 中的数值转换成坐标系上的点。</li>\n</ul>\n<p>有时候还需要用到 <a href=\"option.html#series-custom.renderItem.arguments.api.size\" target=\"_blank\">api.size(...)</a> 函数,表示得到坐标系上一段数值范围对应的长度。</p>\n<p>返回值中样式的设置可以使用 <a href=\"option.html#series-custom.renderItem.arguments.api.style\" target=\"_blank\">api.style(...)</a> 函数,他能得到 <a href=\"option.html#series-custom.itemStyle\" target=\"_blank\">series.itemStyle</a> 中定义的样式信息,以及视觉映射的样式信息。也可以用这种方式覆盖这些样式信息:<code class=\"codespan\">api.style({fill: &#39;green&#39;, stroke: &#39;yellow&#39;})</code>。</p>\n<p>书写完 <code class=\"codespan\">renderItem</code> 方法后,自定义系列的 90% 工作就做完了。剩下的是一些精化工作。</p>\n<h2 id=\"-\">(二)使坐标轴的范围自适应数据范围</h2>\n<p>在 <a href=\"option.html#grid\" target=\"_blank\">直角坐标系(grid)</a>、<a href=\"option.html#polar\" target=\"_blank\">极坐标系(polar)</a> 中都有坐标轴。坐标轴的刻度范围需要自适应当前显示出的数据的范围,否则绘制出的图形会超出去。所以,例如,在 <a href=\"option.html#grid\" target=\"_blank\">直角坐标系(grid)</a> 中,使用自定义系列的开发者,需要设定,<code class=\"codespan\">data</code> 中的哪些维度会对应到 <code class=\"codespan\">x</code> 轴上,哪些维度会对应到 <code class=\"codespan\">y</code> 轴上。这件事通过 <a href=\"option.html#series-custom.encode\" target=\"_blank\">encode</a> 来设定。例如:</p>\n<pre><code class=\"lang-js\">option = {\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            ...\n        },\n        encode: {\n            // data 中『维度1』和『维度2』对应到 X 轴\n            x: [1, 2],\n            // data 中『维度0』对应到 Y 轴\n            y: 0\n        },\n        data: [\n            // 维度0  维度1  维度2  维度3\n            [   12,   44,   55,   60   ], // 这是第一个 dataItem\n            [   53,   31,   21,   56   ], // 这是第二个 dataItem\n            [   71,   33,   10,   20   ], // 这是第三个 dataItem\n            ...\n        ]\n    }]\n};\n</code></pre>\n<h2 id=\"-tooltip\">(三)设定 tooltip</h2>\n<p>当然,使用 <a href=\"option.html#tooltip.formatter\" target=\"_blank\">tooltip.formatter</a> 可以任意定制 tooltip 中的内容。但是还有更简单的方法,通过<a href=\"option.html#series-custom.encode\" target=\"_blank\">encode</a> 和 <a href=\"option.html#series-custom.dimensions\" target=\"_blank\">dimensions</a> 来设定:</p>\n<pre><code class=\"lang-js\">option = {\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            ...\n        },\n        encode: {\n            x: [1, 2],\n            y: 0,\n            // 表示『维度2』和『维度3』要显示到 tooltip 中。\n            tooltip: [2, 3]\n        },\n        // 表示给『维度2』和『维度3』分别取名为『年龄』和『满意度』,显示到 tooltip 中。\n        dimensions: [null, null, &#39;年龄&#39;, &#39;满意度&#39;],\n        data: [\n            // 维度0  维度1  维度2  维度3\n            [   12,   44,   55,   60   ], // 这是第一个 dataItem\n            [   53,   31,   21,   56   ], // 这是第二个 dataItem\n            [   71,   33,   10,   20   ], // 这是第三个 dataItem\n            ...\n        ]\n    }]\n};\n</code></pre>\n<p><br>\n<br>\n<br></p>\n<hr>\n<p>上面,一个简单的 custome series 例子完成了。</p>\n<p>下面介绍几个其他细节要点。</p>\n<h2 id=\"-\">(四)超出坐标系范围的截取</h2>\n<p>与 <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a> 结合使用的时候,常常使用会设置 <a href=\"option.html#dataZoom.filterMode\" target=\"_blank\">dataZoom.filterMode</a> 为 &#39;weakFilter&#39;。这个设置的意思是:当 <code class=\"codespan\">dataItem</code> 部分超出坐标系边界的时候,<code class=\"codespan\">dataItem</code> 不会整体被过滤掉。例如:</p>\n<pre><code class=\"lang-js\">option = {\n    dataZoom: {\n        xAxisIndex: 0,\n        filterMode: &#39;weakFilter&#39;\n    },\n    series: [{\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            ...\n        },\n        encode: {\n            // data 中『维度1』和『维度2』对应到 X 轴\n            x: [1, 2],\n            y: 0\n        },\n        data: [\n            // 维度0  维度1  维度2  维度3\n            [   12,   44,   55,   60   ], // 这是第一个 dataItem\n            [   53,   31,   21,   56   ], // 这是第二个 dataItem\n            [   71,   33,   10,   20   ], // 这是第三个 dataItem\n            ...\n        ]\n    }]\n};\n</code></pre>\n<p>在这个例子中,『维度1』和『维度2』对应到 X 轴,<code class=\"codespan\">dataZoom</code> 组件控制 X 轴的缩放。假如在缩放的过程中,某个 dataItem 的『维度1』超出了 X 轴的范围,『维度2』还在 X 轴的范围中,那么只要设置 <code class=\"codespan\">dataZoom.filterMode = &#39;weakFilter&#39;</code>,这个 dataItem 就不会被过滤掉,从而还能够使用 <code class=\"codespan\">renderItem</code> 绘制图形(可以使用上面提到过的 <code class=\"codespan\">echarts.graphic.clipRectByRect</code> 把图形绘制成被坐标系剪裁过的样子)。参见上面提到过的例子:<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=custom-profile\" target=\"_blank\">Profile</a></p>\n<h2 id=\"-dataindex\">(五)关于 dataIndex</h2>\n<p>开发者如果使用到的话应注意,<a href=\"option.html#series-custom.renderItem.arguments.params\" target=\"_blank\">renderItem.arguments.params</a> 中的 <code class=\"codespan\">dataIndex</code> 和 <code class=\"codespan\">dataIndexInside</code> 是有区别的:</p>\n<ul>\n<li><code class=\"codespan\">dataIndex</code> 指的 <code class=\"codespan\">dataItem</code> 在原始数据中的 index。</li>\n<li><code class=\"codespan\">dataIndexInside</code> 指的是 <code class=\"codespan\">dataItem</code> 在当前数据窗口(参见 <a href=\"option.html#dataZoom\" target=\"_blank\">dataZoom</a>)中的 index。</li>\n</ul>\n<p><a href=\"option.html#series-custom.renderItem.arguments.api\" target=\"_blank\">renderItem.arguments.api</a> 中使用的参数都是 <code class=\"codespan\">dataIndexInside</code> 而非 <code class=\"codespan\">dataIndex</code>,因为从 <code class=\"codespan\">dataIndex</code> 转换成 <code class=\"codespan\">dataIndexInside</code> 需要时间开销。</p>\n<h2 id=\"-\">(六)事件监听</h2>\n<pre><code class=\"lang-js\">chart.setOption({\n    // ...\n    series: {\n        type: &#39;custom&#39;,\n        renderItem: function () {\n            // ...\n            return {\n                type: &#39;group&#39;,\n                children: [{\n                    type: &#39;circle&#39;\n                    // ...\n                }, {\n                    type: &#39;circle&#39;,\n                    name: &#39;aaa&#39;,\n                    // 用户指定的信息,可以在 event handler 访问到。\n                    info: 12345,\n                    // ...\n                }]\n            };\n        }\n    }\n});\nchart.on(&#39;click&#39;, {element: &#39;aaa&#39;}, function (params) {\n    // 当 name 为 &#39;aaa&#39; 的图形元素被点击时,此回调被触发。\n    console.log(params.info);\n});\n</code></pre>\n<h2 id=\"-\">(七)自定义矢量图形</h2>\n<p>自定义系列能支持使用 <a href=\"http://www.w3.org/TR/SVG/paths.html#PathData\" target=\"_blank\">SVG PathData</a> 定义矢量路径。从而可以使用矢量图工具中做出的图形。参见:<a href=\"option.html#series-custom.renderItem.return_path\" target=\"_blank\">path</a>,以及例子:<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=custom-calendar-icon\" target=\"_blank\">icons</a> 和 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=custom-gantt-flight\" target=\"_blank\">shapes</a>。</p>\n<p><br></p>\n<p><strong>更多的自定义系列的例子参见:<a href=\"https://echarts.apache.org/examples/zh/index.html#chart-type-custom\" target=\"_blank\">custom examples</a></strong></p>\n"},"富文本标签":{"type":["*"],"description":"<p>在许多地方(如图、轴的标签等)都可以使用富文本标签。例如:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=pie-rich-text&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=treemap-obama&edit=1&reset=1\" width=\"800\" height=\"550\" ></iframe>\n\n\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=bar-rich-text&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n<p><br></p>\n<p>其他一些例子:\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=map-labels&amp;edit=1&amp;reset=1\" target=\"_blank\">Map Labels</a>,\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=pie-nest&amp;edit=1&amp;reset=1\" target=\"_blank\">Pie Labels</a>,\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=gauge-car&amp;edit=1&amp;reset=1\" target=\"_blank\">Gauge</a>.</p>\n<p><br></p>\n<p>原先 Apache ECharts<sup>TM</sup> 中的文本标签,只能对整块统一进行样式设置,并且仅仅支持颜色和字体的设置,从而导致不易于制作表达能力更强的文字描述信息。</p>\n<p>echarts v3.7 以后,支持了富文本标签,能够:</p>\n<ul>\n<li>定制文本块整体的样式(如背景、边框、阴影等)、位置、旋转等。</li>\n<li>对文本块中个别片段定义样式(如颜色、字体、高宽、背景、阴影等)、对齐方式等。</li>\n<li>在文本中使用图片做小图标或者背景。</li>\n<li>特定组合以上的规则,可以做出简单表格、分割线等效果。</li>\n</ul>\n<p>开始下面的介绍之前,先说明一下下面会使用的两个名词的含义:</p>\n<ul>\n<li>文本块(Text Block):文本标签块整体。</li>\n<li>文本片段(Text fragment):文本标签块中的部分文本。</li>\n</ul>\n<p>如下图示例:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/text-block-fragment&edit=1&reset=1\" width=\"340\" height=\"240\" ></iframe>\n\n\n\n<h2 id=\"-\">文本样式相关的配置项</h2>\n<p>echarts 提供了丰富的文本标签配置项,包括:</p>\n<ul>\n<li>字体基本样式设置:<code class=\"codespan\">fontStyle</code>、<code class=\"codespan\">fontWeight</code>、<code class=\"codespan\">fontSize</code>、<code class=\"codespan\">fontFamily</code>。</li>\n<li>文字颜色:<code class=\"codespan\">color</code>。</li>\n<li>文字描边:<code class=\"codespan\">textBorderColor</code>、<code class=\"codespan\">textBorderWidth</code>。</li>\n<li>文字阴影:<code class=\"codespan\">textShadowColor</code>、<code class=\"codespan\">textShadowBlur</code>、<code class=\"codespan\">textShadowOffsetX</code>、<code class=\"codespan\">textShadowOffsetY</code>。</li>\n<li>文本块或文本片段大小:<code class=\"codespan\">lineHeight</code>、<code class=\"codespan\">width</code>、<code class=\"codespan\">height</code>、<code class=\"codespan\">padding</code>。</li>\n<li>文本块或文本片段的对齐:<code class=\"codespan\">align</code>、<code class=\"codespan\">verticalAlign</code>。</li>\n<li>文本块或文本片段的边框、背景(颜色或图片):<code class=\"codespan\">backgroundColor</code>、<code class=\"codespan\">borderColor</code>、<code class=\"codespan\">borderWidth</code>、<code class=\"codespan\">borderRadius</code>。</li>\n<li>文本块或文本片段的阴影:<code class=\"codespan\">shadowColor</code>、<code class=\"codespan\">shadowBlur</code>、<code class=\"codespan\">shadowOffsetX</code>、<code class=\"codespan\">shadowOffsetY</code>。</li>\n<li>文本块的位置和旋转:<code class=\"codespan\">position</code>、<code class=\"codespan\">distance</code>、<code class=\"codespan\">rotate</code>。</li>\n</ul>\n<p>可以在各处的 <code class=\"codespan\">rich</code> 属性中定义文本片段样式。例如 <a href=\"option.html#series-bar.label.rich\" target=\"_blank\">series-bar.label.rich</a></p>\n<p>例如:</p>\n<pre><code class=\"lang-js\">label: {\n    // 在文本中,可以对部分文本采用 rich 中定义样式。\n    // 这里需要在文本中使用标记符号:\n    // `{styleName|text content text content}` 标记样式名。\n    // 注意,换行仍是使用 &#39;\\n&#39;。\n    formatter: [\n        &#39;{a|这段文本采用样式a}&#39;,\n        &#39;{b|这段文本采用样式b}这段用默认样式{x|这段用样式x}&#39;\n    ].join(&#39;\\n&#39;),\n\n    // 这里是文本块的样式设置:\n    color: &#39;#333&#39;,\n    fontSize: 5,\n    fontFamily: &#39;Arial&#39;,\n    borderWidth: 3,\n    backgroundColor: &#39;#984455&#39;,\n    padding: [3, 10, 10, 5],\n    lineHeight: 20,\n\n    // rich 里是文本片段的样式设置:\n    rich: {\n        a: {\n            color: &#39;red&#39;,\n            lineHeight: 10\n        },\n        b: {\n            backgroundColor: {\n                image: &#39;xxx/xxx.jpg&#39;\n            },\n            height: 40\n        },\n        x: {\n            fontSize: 18,\n            fontFamily: &#39;Microsoft YaHei&#39;,\n            borderColor: &#39;#449933&#39;,\n            borderRadius: 4\n        },\n        ...\n    }\n}\n</code></pre>\n<blockquote>\n<p>注意:如果不定义 <code class=\"codespan\">rich</code>,不能指定文字块的 <code class=\"codespan\">width</code> 和 <code class=\"codespan\">height</code>。</p>\n</blockquote>\n<h2 id=\"-\">文本、文本框、文本片段的基本样式和装饰</h2>\n<p>每个文本可以设置基本的字体样式:<code class=\"codespan\">fontStyle</code>、<code class=\"codespan\">fontWeight</code>、<code class=\"codespan\">fontSize</code>、<code class=\"codespan\">fontFamily</code>。</p>\n<p>可以设置文字的颜色 <code class=\"codespan\">color</code> 和边框的颜色 <code class=\"codespan\">textBorderColor</code>、<code class=\"codespan\">textBorderWidth</code>。</p>\n<p>文本框可以设置边框和背景的样式:<code class=\"codespan\">borderColor</code>、<code class=\"codespan\">borderWidth</code>、<code class=\"codespan\">backgroundColor</code>、<code class=\"codespan\">padding</code>。</p>\n<p>文本片段也可以设置边框和背景的样式:<code class=\"codespan\">borderColor</code>、<code class=\"codespan\">borderWidth</code>、<code class=\"codespan\">backgroundColor</code>、<code class=\"codespan\">padding</code>。</p>\n<p>例如:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/text-options&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n\n<h2 id=\"-\">标签的位置</h2>\n<p>对于折线图、柱状图、散点图等,均可以使用 <code class=\"codespan\">label</code> 来设置标签。标签的相对于图形元素的位置,一般使用 <a href=\"option.html#series-scatter.label.position\" target=\"_blank\">label.position</a>、<a href=\"option.html#series-scatter.label.distance\" target=\"_blank\">label.distance</a> 来配置。</p>\n<p>例如:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/label-position&edit=1&reset=1\" width=\"800\" height=\"400\" ></iframe>\n\n\n<blockquote>\n<p>注意:<code class=\"codespan\">position</code> 在不同的图中可取值有所不同。<code class=\"codespan\">distance</code> 并不是在每个图中都支持。详情请参见 <a href=\"option.html\" target=\"_blank\">option 文档</a>。</p>\n</blockquote>\n<h2 id=\"-\">标签的旋转</h2>\n<p>某些图中,为了能有足够长的空间来显示标签,需要对标签进行旋转。例如:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=bar-label-rotation&edit=1&reset=1\" width=\"900\" height=\"500\" ></iframe>\n\n\n<p>这种场景下,可以结合 <a href=\"option.html#series-bar.label.align\" target=\"_blank\">align</a> 和 <a href=\"option.html#series-bar.label.verticalAlign\" target=\"_blank\">verticalAlign</a> 来调整标签位置。</p>\n<p>注意,逻辑是,先使用 <code class=\"codespan\">align</code> 和 <code class=\"codespan\">verticalAlign</code> 定位,再旋转。</p>\n<h2 id=\"-\">文本片段的排版和对齐</h2>\n<p>关于排版方式,每个文本片段,可以想象成 CSS 中的 <code class=\"codespan\">inline-block</code>,在文档流中按行放置。</p>\n<p>每个文本片段的内容盒尺寸(<code class=\"codespan\">content box size</code>),默认是根据文字大小决定的。但是,也可以设置 <code class=\"codespan\">width</code>、<code class=\"codespan\">height</code> 来强制指定,虽然一般不会这么做(参见下文)。文本片段的边框盒尺寸(<code class=\"codespan\">border box size</code>),由上述本身尺寸,加上文本片段的 <code class=\"codespan\">padding</code> 来得到。</p>\n<p>只有 <code class=\"codespan\">&#39;\\n&#39;</code> 是换行符,能导致换行。</p>\n<p>一行内,会有多个文本片段。每行的实际高度,由 <code class=\"codespan\">lineHeight</code> 最大的文本片段决定。文本片段的 <code class=\"codespan\">lineHeight</code> 可直接在 <code class=\"codespan\">rich</code> 中指定,也可以在 <code class=\"codespan\">rich</code> 的父层级中统一指定而采用到 <code class=\"codespan\">rich</code> 的所有项中,如果都不指定,则取文本片段的边框盒尺寸(<code class=\"codespan\">border box size</code>)。</p>\n<p>在一行的 <code class=\"codespan\">lineHeight</code> 被决定后,一行内,文本片段的竖直位置,由文本片段的 <code class=\"codespan\">verticalAlign</code> 来指定(这里和 CSS 中的规则稍有不同):</p>\n<ul>\n<li><code class=\"codespan\">&#39;bottom&#39;</code>:文本片段的盒的底边贴住行底。</li>\n<li><code class=\"codespan\">&#39;top&#39;</code>:文本片段的盒的顶边贴住行顶。</li>\n<li><code class=\"codespan\">&#39;middle&#39;</code>:居行中。</li>\n</ul>\n<p>文本块的宽度,可以直接由文本块的 <code class=\"codespan\">width</code> 指定,否则,由最长的行决定。宽度决定后,在一行中进行文本片段的放置。文本片段的 <code class=\"codespan\">align</code> 决定了文本片段在行中的水平位置:</p>\n<ul>\n<li>首先,从左向右连续紧靠放置 <code class=\"codespan\">align</code> 为 <code class=\"codespan\">&#39;left&#39;</code> 的文本片段盒。</li>\n<li>然后,从右向左连续紧靠放置 <code class=\"codespan\">align</code> 为 <code class=\"codespan\">&#39;right&#39;</code> 的文本片段盒。</li>\n<li>最后,剩余的没处理的文本片段盒,紧贴着,在中间剩余的区域中居中放置。</li>\n</ul>\n<p>关于文字在文本片段盒中的位置:</p>\n<ul>\n<li>如果 <code class=\"codespan\">align</code> 为 <code class=\"codespan\">&#39;center&#39;</code>,则文字在文本片段盒中是居中的。</li>\n<li>如果 <code class=\"codespan\">align</code> 为 <code class=\"codespan\">&#39;left&#39;</code>,则文字在文本片段盒中是居左的。</li>\n<li>如果 <code class=\"codespan\">align</code> 为 <code class=\"codespan\">&#39;right&#39;</code>,则文字在文本片段盒中是居右的。</li>\n</ul>\n<p>例如:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/text-fragment-align&edit=1&reset=1\" width=\"800\" height=\"220\" ></iframe>\n\n\n\n<h2 id=\"-\">特殊效果:图标、分割线、标题块、简单表格</h2>\n<p>看下面的例子:</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/title-block&edit=1&reset=1\" width=\"600\" height=\"400\" ></iframe>\n\n\n<p>文本片段的 <code class=\"codespan\">backgroundColor</code> 可以指定为图片后,就可以在文本中使用图标了:</p>\n<pre><code class=\"lang-js\">rich: {\n    Sunny: {\n        // 这样设定 backgroundColor 就可以是图片了。\n        backgroundColor: {\n            image: &#39;./data/asset/img/weather/sunny_128.png&#39;\n        },\n        // 可以只指定图片的高度,从而图片的宽度根据图片的长宽比自动得到。\n        height: 30\n    }\n}\n</code></pre>\n<p>分割线实际是用 border 实现的:</p>\n<pre><code class=\"lang-js\">rich: {\n    hr: {\n        borderColor: &#39;#777&#39;,\n        // 这里把 width 设置为 &#39;100%&#39;,表示分割线的长度充满文本块。\n        // 注意,这里是文本块内容盒(content box)的 100%,而不包含 padding。\n        // 虽然这和 CSS 相关的定义有所不同,但是在这类场景中更加方便。\n        width: &#39;100%&#39;,\n        borderWidth: 0.5,\n        height: 0\n    }\n}\n</code></pre>\n<p>标题块是使用 <code class=\"codespan\">backgroundColor</code> 实现的:</p>\n<pre><code class=\"lang-js\">// 标题文字居左\nformatter: &#39;{titleBg|Left Title}&#39;,\nrich: {\n    titleBg: {\n        backgroundColor: &#39;#000&#39;,\n        height: 30,\n        borderRadius: [5, 5, 0, 0],\n        padding: [0, 10, 0, 10],\n        width: &#39;100%&#39;,\n        color: &#39;#eee&#39;\n    }\n}\n\n// 标题文字居中。\n// 这个实现有些 tricky,但是,能够不引入更复杂的排版规则而实现这个效果。\nformatter: &#39;{tc|Center Title}{titleBg|}&#39;,\nrich: {\n    titleBg: {\n        align: &#39;right&#39;,\n        backgroundColor: &#39;#000&#39;,\n        height: 30,\n        borderRadius: [5, 5, 0, 0],\n        padding: [0, 10, 0, 10],\n        width: &#39;100%&#39;,\n        color: &#39;#eee&#39;\n    }\n}\n</code></pre>\n<p>简单表格的设定,其实就是给不同行上纵向对应的文本片段设定同样的宽度就可以了。参见本文最开始的 <a href=\"https://echarts.apache.org/examples/zh/view.html?c=pie-rich-text&amp;edit=1&amp;reset=1\" target=\"_blank\">例子</a>。</p>\n"},"服务端渲染":{"type":["*"],"description":"<p>Apache ECharts<sup>TM</sup> 可以在服务端进行渲染。例如 <a href=\"https://echarts.apache.org/examples/zh/index.html\" target=\"_blank\">官方示例</a> 里的一个个小截图,就是在服务端预生成出来的。</p>\n<p>服务端渲染可以使用流行的 headless 环境,例如 <a href=\"https://github.com/GoogleChrome/puppeteer\" target=\"_blank\">puppeteer</a>、<a href=\"https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md\" target=\"_blank\">headless chrome</a>、<a href=\"https://github.com/Automattic/node-canvas\" target=\"_blank\">node-canvas</a>、<a href=\"https://github.com/jsdom/jsdom\" target=\"_blank\">jsdom</a>、<a href=\"http://phantomjs.org/\" target=\"_blank\">PhantomJS</a> 等。</p>\n<p>这是一些社区贡献的 echarts 服务端渲染方案:</p>\n<ul>\n<li><a href=\"https://github.com/hellosean1025/node-echarts\" target=\"_blank\">https://github.com/hellosean1025/node-echarts</a></li>\n<li><a href=\"https://github.com/chfw/echarts-scrappeteer\" target=\"_blank\">https://github.com/chfw/echarts-scrappeteer</a></li>\n<li><a href=\"https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js\" target=\"_blank\">https://github.com/chfw/pyecharts-snapshot/blob/master/pyecharts_snapshot/phantomjs/snapshot.js</a></li>\n<li><a href=\"https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73\" target=\"_blank\">https://gist.github.com/pissang/4c32ee30e35c91336af72b129a1a4a73</a></li>\n</ul>\n"},"使用 Canvas 或者 SVG 渲染":{"type":["*"],"description":"<p>浏览器端图表库大多会选择 SVG 或者 Canvas 进行渲染。对于绘制图表来说,这两种技术往往是可替换的,效果相近。但是在一些场景中,他们的表现和能力又有一定差异。于是,对它们的选择取舍,就成为了一个一直存在的不易有标准答案的话题。</p>\n<p>Apache ECharts<sup>TM</sup> 从初始一直使用 Canvas 绘制图表(除了对 IE8- 使用 VML)。而 <a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">ECharts v4.0</a> 发布了 SVG 渲染器,从而提供了一种新的选择。只须在初始化一个图表实例时,设置 <a href=\"api.html#echarts.init\" target=\"_blank\">renderer 参数</a> 为 <code class=\"codespan\">&#39;canvas&#39;</code> 或 <code class=\"codespan\">&#39;svg&#39;</code> 即可指定渲染器,比较方便。</p>\n<blockquote>\n<p>SVG 和 Canvas 这两种使用方式差异很大的技术,能够做到同时被透明支持,主要归功于 ECharts 底层库 <a href=\"https://github.com/ecomfe/zrender\" target=\"_blank\">ZRender</a> 的抽象和实现,形成可互换的 SVG 渲染器和 Canvas 渲染器。</p>\n</blockquote>\n<h2 id=\"-\">选择哪种渲染器</h2>\n<p>一般来说,Canvas 更适合绘制图形元素数量非常大(这一般是由数据量大导致)的图表(如热力图、地理坐标系或平行坐标系上的大规模线图或散点图等),也利于实现某些视觉 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=lines-bmap-effect\" target=\"_blank\">特效</a>。但是,在不少场景中,SVG 具有重要的优势:它的内存占用更低(这对移动端尤其重要)、渲染性能略高、并且用户使用浏览器内置的缩放功能时不会模糊。</p>\n<p>选择哪种渲染器,我们可以根据软硬件环境、数据量、功能需求综合考虑。</p>\n<ul>\n<li>在软硬件环境较好,数据量不大的场景下(例如 PC 端做商务报表),两种渲染器都可以适用,并不需要太多纠结。</li>\n<li>在环境较差,出现性能问题需要优化的场景下,可以通过试验来确定使用哪种渲染器。比如有这些经验:<ul>\n<li>在须要创建很多 ECharts 实例且浏览器易崩溃的情况下(可能是因为 Canvas 数量多导致内存占用超出手机承受能力),可以使用 SVG 渲染器来进行改善。大略得说,如果图表运行在低端安卓机,或者我们在使用一些特定图表如 <a href=\"https://ecomfe.github.io/echarts-liquidfill/example/\" target=\"_blank\">水球图</a> 等,SVG 渲染器可能效果更好。</li>\n<li>数据量很大、较多交互时,可以选用 Canvas 渲染器。</li>\n</ul>\n</li>\n</ul>\n<p>我们强烈欢迎开发者们 <a href=\"https://github.com/apache/echarts/issues/new\" target=\"_blank\">反馈</a> 给我们使用的体验和场景,帮助我们更好的做优化。</p>\n<p>注:除了某些特殊的渲染可能依赖 Canvas:如<a href=\"option.html#series-lines.effect\" target=\"_blank\">炫光尾迹特效</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=heatmap-bmap\" target=\"_blank\">带有混合效果的热力图</a>等,绝大部分功能 SVG 都是支持的。</p>\n<h2 id=\"-\">如何使用渲染器</h2>\n<p>ECharts 默认使用 Canvas 渲染。如果想使用 SVG 渲染,ECharts 代码中须包括有 SVG 渲染器模块。</p>\n<ul>\n<li>ECharts 的 <a href=\"https://www.jsdelivr.com/package/npm/echarts\" target=\"_blank\">预构建文件</a> 中,<a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.common.min.js\" target=\"_blank\">常用版</a> 和 <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js\" target=\"_blank\">完整版</a> 已经包含了 SVG 渲染器,可直接使用。而 <a href=\"https://cdn.jsdelivr.net/npm/echarts/dist/echarts.simple.min.js\" target=\"_blank\">精简版</a> 没有包括。</li>\n<li>如果 <a href=\"https://echarts.apache.org/zh/builder.html\" target=\"_blank\">在线自定义构建 ECharts</a>,则需要勾上页面下方的 “SVG 渲染”。</li>\n<li>如果 <a href=\"tutorial.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9E%84%E5%BB%BA%20ECharts\" target=\"_blank\">线下自定义构建 ECharts</a>,则须引入 SVG 渲染器模块,即:</li>\n</ul>\n<pre><code class=\"lang-js\">import &#39;zrender/lib/svg/svg&#39;;\n</code></pre>\n<p>然后,我们就可以在代码中,初始化图表实例时,<a href=\"api.html#echarts.init\" target=\"_blank\">传入参数</a> 选择渲染器类型:</p>\n<pre><code class=\"lang-js\">// 使用 Canvas 渲染器(默认)\nvar chart = echarts.init(containerDom, null, {renderer: &#39;canvas&#39;});\n// 等价于:\nvar chart = echarts.init(containerDom);\n\n// 使用 SVG 渲染器\nvar chart = echarts.init(containerDom, null, {renderer: &#39;svg&#39;});\n</code></pre>\n"},"地理坐标系和地图系列的 SVG 底图":{"type":["*"],"description":"<p>从 <code class=\"codespan\">v5.1.0</code> 开始,ECharts 支持在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 和 <a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a> 中使用 SVG 作为底图。之前只支持 <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a> 格式的底图。</p>\n<p>有了这个功能,ECharts 能在任一种渲染模式(<code class=\"codespan\">canvas</code> 渲染模式和 <code class=\"codespan\">svg</code> 渲染模式)中绘制 SVG 底图,并且能够只用简单的 ECharts 配置项(option)就带来 <a href=\"option.html#geo.roam\" target=\"_blank\">放大</a>、<a href=\"option.html#geo.roam\" target=\"_blank\">平移</a>、<a href=\"option.html#geo.select\" target=\"_blank\">点选(select)</a>、<a href=\"option.html#geo.roam\" target=\"_blank\">高亮强调(emphasis)</a>、<a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">聚焦-淡出(focus-blur)</a>、<a href=\"option.html#geo.label\" target=\"_blank\">标签(label)</a>、<a href=\"option.html#series-map.labelLayout\" target=\"_blank\">标签布局(labelLayout)</a>、<a href=\"option.html#geo.tooltip\" target=\"_blank\">提示框(tooltip)</a> 等特性。ECharts 中的所有在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中可用系列(如 <a href=\"option.html#series-scatter\" target=\"_blank\">散点图(scatter)</a>、<a href=\"option.html#series-effectScatter\" target=\"_blank\">特效散点图(effectScatter)</a>,<a href=\"option.html#series-lines\" target=\"_blank\">路径图(lines)</a>,<a href=\"option.html#series-custom\" target=\"_blank\">自定义系列(custom)</a>)也能显示在 SVG 底图上。</p>\n<p>这些是使用 SVG 底图的例子:</p>\n<p><a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-beef-cuts\" target=\"_blank\">庖丁解牛</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-organ\" target=\"_blank\">内脏数据</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-seatmap-flight\" target=\"_blank\">航班选座</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-map\" target=\"_blank\">地图</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">散点图</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-lines\" target=\"_blank\">路径图</a> |\n<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-traffic\" target=\"_blank\">交通</a></p>\n<h2 id=\"-\">基本用法</h2>\n<p>SVG 底图的用法与 <a href=\"http://geojson.org/\" target=\"_blank\">GeoJSON</a> 底图的用法相同。</p>\n<p>如果在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中使用:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/organ.svg&#39;, function (svg) {\n    // 首先向 echarts 注册 SVG 字符串或解析过的 SVG DOM\n    echarts.registerMap(&#39;organ_diagram&#39;, {svg: svg});\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;))。\n    chart.setOption({\n        geo: [{\n            // 引用注册过的底图。\n            map: &#39;organ_diagram&#39;,\n            ...\n        }]\n    });\n});\n</code></pre>\n<p>如果在 <a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a> 中使用:</p>\n<pre><code class=\"lang-js\">$.get(&#39;map/beef_cuts.svg&#39;, function (svg) {\n    // 首先向 echarts 注册 SVG 字符串或解析过的 SVG DOM\n    echarts.registerMap(&#39;beef_cuts_diagram&#39;, {svg: svg})。\n\n    var chart = echarts.init(document.getElementById(&#39;main&#39;))。\n    chart.setOption({\n        series: {\n            type: &#39;map&#39;,\n            // 引用注册过的底图。\n            map: &#39;beef_cuts_diagram&#39;,\n            ...\n        }\n    });\n});\n</code></pre>\n<h2 id=\"-\">缩放和平移</h2>\n<p><a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a></p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        // 启用缩放和平移。\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p><a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a></p>\n<pre><code class=\"lang-js\">option = {\n    series: {\n        type: &#39;map&#39;,\n        // 启用缩放和平移。\n        roam: true,\n        ...\n    }\n};\n</code></pre>\n<p>参见例子 <a href=\"option.html#geo.roam\" target=\"_blank\">roam</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-map\" target=\"_blank\">SVG 地图</a>。</p>\n<h2 id=\"-\">具名元素</h2>\n<p>如果要控制 SVG 中的某些元素,或者让某些元素能交互,我们首先要在 SVG 中标记这些元素:在这些元素上添加 <code class=\"codespan\">name</code> 属性(下文称此类添加过 <code class=\"codespan\">name</code> 属性的元素为:“具名元素”)。许多功能(如 <a href=\"option.html#geo.select\" target=\"_blank\">select</a>、<a href=\"option.html#geo.emphasis\" target=\"_blank\">emphasis</a>、<a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">focus-blur</a>、<a href=\"option.html#geo.label\" target=\"_blank\">label</a>、<a href=\"option.html#series-map.labelLayout\" target=\"_blank\">labelLayout</a> 和 <a href=\"option.html#geo.tooltip\" target=\"_blank\">tooltip</a> 这类交互相关的功能)都依赖于对元素的命名。</p>\n<p>如下例,我们只在左边的 SVG <code class=\"codespan\">path</code> 上添加名称属性 <code class=\"codespan\">name=&quot;named_rect&quot;</code>:</p>\n<pre><code class=\"lang-xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;\n&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.2&quot; fill-rule=&quot;evenodd&quot; xml:space=&quot;preserve&quot;&gt;\n    &lt;path name=&quot;named_rect&quot; d=&quot;M 0,0 L 0,100 100,100 100,0 Z&quot; fill=&quot;#765&quot; /&gt;\n    &lt;path d=&quot;M 150,0 L 150,100 250,100 250,0 Z&quot; fill=&quot;#567&quot; /&gt;\n&lt;/svg&gt;\n</code></pre>\n<p>这样,鼠标 hover 时能高亮左边的矩形,但是右边的不行。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/geo-svg-named-basic&edit=1&reset=1\" width=\"500\" height=\"200\" ></iframe>\n\n\n<p>我们还可以在 <a href=\"option.html#geo.regions\" target=\"_blank\">geo.regions</a> 中为具名元素指定一些专属配置项:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        regions: [{\n            name: &#39;element_name_1&#39;,\n            itemStyle: { ... }\n        }, {\n            name: &#39;element_name_2&#39;,\n            itemStyle: { ... }\n        }]\n    }\n};\n</code></pre>\n<p>注意:</p>\n<ul>\n<li>只有这些 SVG 元素可以被命名:\n<code class=\"codespan\">rect</code>、<code class=\"codespan\">circle</code>、<code class=\"codespan\">line</code>、<code class=\"codespan\">ellipse</code>、<code class=\"codespan\">polygon</code>、<code class=\"codespan\">polyline</code>、<code class=\"codespan\">path</code>、<code class=\"codespan\">text</code>、<code class=\"codespan\">tspan</code>、<code class=\"codespan\">g</code>。</li>\n<li>支持多个元素以相同的名称命名,这样它们能被同时高亮、选中。</li>\n</ul>\n<h2 id=\"-\">自定义样式</h2>\n<p>虽然 SVG 元素的样式(如颜色、字体、线宽等等)都能直接在 SVG 文件中定义,但 ECharts 也支持在 <code class=\"codespan\">option</code> 中为具名元素定制样式,这能提供不少便利。</p>\n<p>可以在 <a href=\"option.html#geo.itemStyle\" target=\"_blank\">geo.itemStyle</a> 或 <a href=\"option.html#series-map.itemStyle\" target=\"_blank\">series-map.itemStyle</a> 中设置样式(也包括 <code class=\"codespan\">emphasis.itemStyle</code>、<code class=\"codespan\">select.itemStyle</code>、<code class=\"codespan\">blur.itemStyle</code>、<code class=\"codespan\">regions[i].itemStyle</code>、<code class=\"codespan\">regions[i].emphasis.itemStyle</code>、<code class=\"codespan\">regions[i].select.itemStyle</code>、<code class=\"codespan\">regions[i].blur.itemStyle</code>)。也能在这里删除一些具名元素的默认样式(例如,设置 <code class=\"codespan\">emphasis.itemStyle.color: null</code> 后,鼠标 hover 时填充色就不会改变)。</p>\n<p>此外,使用 <a href=\"option.html#series-map\" target=\"_blank\">series-map</a> 时,也可以用 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap 组件</a> 为具名元素赋予样式。参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-beef-cuts\" target=\"_blank\">庖丁解牛</a>。</p>\n<p>注意:\n只有这些具名元素可以在 <code class=\"codespan\">itemStyle</code> 中设置样式:\n<code class=\"codespan\">rect</code>、<code class=\"codespan\">circle</code>、<code class=\"codespan\">line</code>、<code class=\"codespan\">ellipse</code>、<code class=\"codespan\">polygon</code>、<code class=\"codespan\">polyline</code>、<code class=\"codespan\">path</code>。</p>\n<h2 id=\"-select-\">元素的“选中”能力(select)</h2>\n<p>如果想使具名元素能被“选中”,把 <a href=\"option.html#geo.selectedMode\" target=\"_blank\">geo.selectedMode</a> 或 <a href=\"option.html#series-map.selectedMode\" target=\"_blank\">series-map.selectedMode</a> 设置为 <code class=\"codespan\">&#39;single&#39;</code> 或者 <code class=\"codespan\">&#39;multiple&#39;</code> 即可。元素被选中时的样式可以在 <a href=\"option.html#geo.select\" target=\"_blank\">geo.select</a> 或 <a href=\"option.html#series-map.select\" target=\"_blank\">series-map.select</a> 中设定。</p>\n<p>可以通过 <a href=\"api.html#event.geoselectchanged\" target=\"_blank\">geoselectchanged</a> 事件获得所有被选中者的名称,例如:</p>\n<pre><code class=\"lang-js\">myChart.on(&#39;geoselectchanged&#39;, function (params) {\n    var selectedNames = params.allSelected[0].name;\n    console.log(&#39;selected&#39;, selectedNames);\n});\n</code></pre>\n<p>参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-seatmap-flight\" target=\"_blank\">航班选座</a>。</p>\n<h2 id=\"-emphasis-focus-blur-\">元素的“高亮强调”(emphasis)和“聚焦-淡出”(focus-blur)</h2>\n<p>具名元素可以自动在鼠标 hover 时有“高亮强调”(emphasis)的能力。</p>\n<p>此外,可以把 <a href=\"option.html#geo.emphasis.focus\" target=\"_blank\">geo.emphasis.focus</a> 设置为 <code class=\"codespan\">&#39;self&#39;</code> 来启用 “聚焦-淡出”(focus-blur)功能。也就是,当鼠标 hover 在一个具名元素上时,所有其他元素都会被淡出。</p>\n<p>参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a>。</p>\n<h2 id=\"-tooltip-\">提示框(tooltip)</h2>\n<p>可以在具名元素上启用或禁用提示框(tooltip)功能。</p>\n<pre><code class=\"lang-js\">option = {\n    // 在 option 根部声明 tooltip 以整体开启 tooltip 功能。\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            // 用 `show` 来启用/禁用 geo 上的 tooltip。\n            show: true\n        },\n        regions: [{\n            name: &#39;some_name1&#39;,\n            // 如果需要的话,可以对特定具名元素指定 tooltip 参数。\n            tooltip: {\n                formatter: &#39;一些特殊的提示 1&#39;\n            }\n        }, {\n            name: &#39;some_name2&#39;,\n            tooltip: {\n                formatter: &#39;一些特殊的提示 2&#39;\n            }\n        }]\n    }\n};\n</code></pre>\n<p>如果想单独禁用 geo 上的 tooltip,只需:</p>\n<pre><code class=\"lang-js\">option = {\n    tooltip: {},\n    geo: {\n        map: &#39;some_svg&#39;,\n        tooltip: {\n            show: false\n        }\n    }\n};\n</code></pre>\n<p>参见例子 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-map\" target=\"_blank\">SVG 地图</a>。</p>\n<h2 id=\"-label-\">标签(label)</h2>\n<p>虽然可以直接在 SVG 中定义 <code class=\"codespan\">&lt;text&gt;</code>/<code class=\"codespan\">&lt;tspan&gt;</code> 来显示文本标签,但 ECharts 也支持用 <a href=\"option.html#geo.label\" target=\"_blank\">geo.label</a> 或 <a href=\"option.html#series-map.label\" target=\"_blank\">series-map.label</a> 来设置底图上的标签。</p>\n<p>标签功能默认在鼠标 hover 时是启用的。如果想禁用标签,只需:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;,\n        emphasis: {\n            label: {\n                show: false\n            }\n        }\n    }\n};\n</code></pre>\n<p>当想要多个元素共享一个标签时,我们有两种选择:</p>\n<ul>\n<li>将这些元素包裹在一个具名的 <code class=\"codespan\">&lt;g&gt;</code> 中(如 <code class=\"codespan\">&lt;g=&quot;name_a&quot;&gt;</code>)中,这样只会显示一个标签,并且基于 <code class=\"codespan\">&lt;g&gt;</code> 的 <code class=\"codespan\">boundingRect</code> 定位。</li>\n<li>给这些元素起相同的名字(如 <code class=\"codespan\">&lt;path name=&quot;name_b&quot;/&gt;&lt;path name=&quot;name_b&quot;/&gt;</code>),这样每个元素都会显示一个标签,并且会根据每个元素自身显示和定位。</li>\n</ul>\n<p>例如(将鼠标 hover 到元素上能显示标签):</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/geo-svg-label-basic&edit=1&reset=1\" width=\"500\" height=\"300\" ></iframe>\n\n\n<p>注意:只有这些具名元素可以设置 <code class=\"codespan\">label</code>:\n<code class=\"codespan\">rect</code>、<code class=\"codespan\">circle</code>、<code class=\"codespan\">line</code>、<code class=\"codespan\">ellipse</code>、<code class=\"codespan\">polygon</code>、<code class=\"codespan\">polyline</code>、<code class=\"codespan\">path</code>、<code class=\"codespan\">g</code>。</p>\n<p>标签的用法也参见示例 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-organ\" target=\"_blank\">Organ Visualization</a>。</p>\n<h2 id=\"-\">事件</h2>\n<p>可以用如下方式监听具名元素的鼠标事件或者触摸事件:</p>\n<pre><code class=\"lang-js\">// &#39;name1&#39; 是一个 SVG 元素的名字。\nmyChart.on(&#39;click&#39;, { geoIndex: 0, name: &#39;name1&#39; }, function (params) {\n    console.log(params);\n});\n</code></pre>\n<h2 id=\"svg-\">SVG 底图的布局</h2>\n<p>在默认情况下,ECharts 会将 SVG 底图放置在画布的中心。如果需要调整的话,一般只调整 <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>/<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>,偶尔也可能要调整 <code class=\"codespan\">&lt;svg viewBox=&quot;...&quot;&gt;</code>/<a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a>(它们两个的区别是:是否产生剪裁)。在大多数情况下,用这些已经足够了。</p>\n<p>如果要做一些精确的位置定制,那么还得了解下面这些概念。</p>\n<p><a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 和 <a href=\"option.html#series-map\" target=\"_blank\">地图系列(map series)</a> 的布局规则和选项都是一样的。所以下面我们只讲 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a>。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/geo-svg-layout-basic&edit=1&reset=1\" width=\"700\" height=\"550\" ></iframe>\n\n\n<p>上面的例子只有一个 ECharts 画布,其中三个 SVG 展示在六个 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中。同一列中的两个 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 使用相同的 SVG。</p>\n<p>首先,形状的外观是由 SVG 文件本身决定的。也就是说,在上例中,由 <code class=\"codespan\">&lt;circle&gt;</code> 和 <code class=\"codespan\">viewBox</code> 属性决定(<code class=\"codespan\">viewBox</code> 会切割圆形)。可以注意,每一列的形状轮廓都一样(不管它们的位置、大小是否不同和是否被拉伸),因为它们使用的是同一个 SVG。</p>\n<p>其次,用户可以用下面任一组选项,指定 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 的视口(<code class=\"codespan\">view port</code>)的位置和大小(它们的单位都是 echarts 画布的像素,或者百分比值):</p>\n<ul>\n<li><a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>、<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>(最常用)。</li>\n<li><a href=\"option.html#geo.top\" target=\"_blank\">top</a>、<a href=\"option.html#geo.right\" target=\"_blank\">right</a>、<a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>、<a href=\"option.html#geo.left\" target=\"_blank\">left</a>(在上例中使用的是这组)。</li>\n</ul>\n<p>在上例中,六个 <code class=\"codespan\">geo view port</code> 用六个黑色方块表示。</p>\n<p>第三,确定 SVG 的 <code class=\"codespan\">bounding rect</code>。<code class=\"codespan\">bounding rect</code> 由以下方法决定(它们的单位都是 SVG 内部元素的度量单位):</p>\n<ol>\n<li>如果设定了 <a href=\"option.html#geo.boundingCoords\" target=\"_blank\">geo.boundingCoords</a>,则用它作 <code class=\"codespan\">bounding rect</code>。</li>\n<li>否则,如果设定了 <code class=\"codespan\">&lt;svg width=&quot;...&quot; height=&quot;...&quot;&gt;</code>,则用 <code class=\"codespan\">[0, 0, width, height]</code> 作为 <code class=\"codespan\">bounding rect</code>。(如果只设定了 <code class=\"codespan\">width</code> 或 <code class=\"codespan\">height</code>,则只使用 <code class=\"codespan\">[0, width]</code> 或 <code class=\"codespan\">[0, height]</code>)。</li>\n<li>否则,如果设定了 <code class=\"codespan\">&lt;svg viewBox=&quot;...&quot;&gt;</code>,则用 <code class=\"codespan\">viewBox</code> 作 <code class=\"codespan\">bounding rect</code>。</li>\n<li>否则,由整个 SVG 所有元素 <code class=\"codespan\">bounding rect</code> 的并集得到最终 <code class=\"codespan\">bounding rect</code>。</li>\n<li>如果设定了 <a href=\"option.html#geo.center\" target=\"_blank\">geo.center</a> 或 <a href=\"option.html#geo.zoom\" target=\"_blank\">geo.zoom</a>,则把上述 <code class=\"codespan\">1~4</code> 得到的 <code class=\"codespan\">bounding rect</code> 进行相应的 <code class=\"codespan\">transform</code>。</li>\n</ol>\n<p><code class=\"codespan\">bounding rect</code> 确定后,会放置到相应的 <code class=\"codespan\">geo view port</code> 里:</p>\n<ul>\n<li>如果用的是 <a href=\"option.html#geo.layoutCenter\" target=\"_blank\">layoutCenter</a>、<a href=\"option.html#geo.layoutSize\" target=\"_blank\">layoutSize</a>,<code class=\"codespan\">bounding rect</code> 会置于 <code class=\"codespan\">geo view port</code> 的中心,并尽量填满 <code class=\"codespan\">geo view port</code>(保持长宽比)。</li>\n<li>如果用的是 <a href=\"option.html#geo.top\" target=\"_blank\">top</a>、<a href=\"option.html#geo.right\" target=\"_blank\">right</a>、<a href=\"option.html#geo.bottom\" target=\"_blank\">bottom</a>、<a href=\"option.html#geo.left\" target=\"_blank\">left</a>,<code class=\"codespan\">bounding rect</code> 会被拉伸,完全填充 <code class=\"codespan\">geo view port</code>。</li>\n</ul>\n<h2 id=\"-svg-\">在 SVG 底图上绘制系列</h2>\n<p><a href=\"option.html#series-scatter\" target=\"_blank\">scatter</a>、<a href=\"option.html#series-effectScatter\" target=\"_blank\">effectScatter</a>、<a href=\"option.html#series-lines\" target=\"_blank\">lines</a>、<a href=\"option.html#series-custom\" target=\"_blank\">custom</a> 这些在 <a href=\"option.html#geo\" target=\"_blank\">地理坐标系(geo)</a> 中可用的系列都可以在 SVG 底图上定位和显示。</p>\n<p>在这种用法中,<code class=\"codespan\">series.data</code> 的值的单位即为是 SVG 内部元素的度量单位。比如说:</p>\n<pre><code class=\"lang-js\">option = {\n    geo: {\n        map: &#39;some_svg&#39;\n    },\n    series: {\n        type: &#39;effectScatter&#39;,\n        coordinateSystem: &#39;geo&#39;,\n        geoIndex: 0,\n        data: [\n            // SVG local coords.\n            [488.2358421078053, 459.70913833075736],\n            [770.3415644319939, 757.9672194986475],\n            [1180.0329284196291, 743.6141808346214],\n        ]\n    }\n};\n</code></pre>\n<p>另外,有种简便方法可以获得 SVG 的坐标。</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    geo: {\n        map: &#39;some_svg&#39;\n    }\n});\nmyChart.getZr().on(&#39;click&#39;, function (params) {\n    var pixelPoint = [params.offsetX, params.offsetY];\n    var dataPoint = myChart.convertFromPixel({ geoIndex: 0 }, pixelPoint);\n    // 在 SVG 上点击时,坐标会被打印。\n    // 这些坐标可以在 `series.data` 里使用。\n    console.log(dataPoint);\n});\n</code></pre>\n<p>参见示例 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-scatter-simple\" target=\"_blank\">SVG Scatter</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-lines\" target=\"_blank\">SVG Lines</a>、<a href=\"https://echarts.apache.org/examples/zh/editor.html?c=geo-traffic\" target=\"_blank\">SVG Traffic</a>。</p>\n<h2 id=\"-svg-\">暂不支持的 SVG 功能</h2>\n<p>实现一个完整的 SVG 解析器有点困难。虽然已经支持了常用的 SVG 功能,但至少下面列出的这些还没支持:</p>\n<ul>\n<li>翻转(flip)和倾斜(skew)(将在 <code class=\"codespan\">v5.1.2</code> 支持):<ul>\n<li>不支持 <code class=\"codespan\">transform: skew(...)</code>(包括包含 skew 的 <code class=\"codespan\">transform: matrix(...)</code>)。</li>\n<li>不支持当 <code class=\"codespan\">transform: scale(x, y)</code> 中 <code class=\"codespan\">x</code>/<code class=\"codespan\">y</code> 正负不同且有 <code class=\"codespan\">rotate</code>(例如,<code class=\"codespan\">scale: (1, -1), rotate(90)</code>)。</li>\n</ul>\n</li>\n<li>不支持 <code class=\"codespan\">&lt;style&gt;</code> 标签。<ul>\n<li>但内联样式是支持的(例如支持 <code class=\"codespan\">&lt;path style=&quot;color:red&quot; /&gt;</code>)。</li>\n</ul>\n</li>\n<li>单位:<ul>\n<li>只支持 <code class=\"codespan\">px</code>。不支持其他单位如 <code class=\"codespan\">width=&quot;231.65mm&quot;</code>。</li>\n<li>不支持百分比值,如不支持 <code class=\"codespan\">&lt;svg width=&quot;30%&quot; height=&quot;40%&quot;&gt;</code>。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;defs&gt;</code> 标签:<ul>\n<li>只支持 <code class=\"codespan\">&lt;linearGradient&gt;</code>、<code class=\"codespan\">&lt;radialGradient&gt;</code>。</li>\n<li>还不支持在 <code class=\"codespan\">&lt;defs&gt;</code> 中定义其他元素(如 <code class=\"codespan\">&lt;pattern&gt;</code>、<code class=\"codespan\">&lt;path&gt;</code>、...)。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;linearGradient&gt;</code>、<code class=\"codespan\">&lt;radialGradient&gt;</code>:<ul>\n<li>不支持 <code class=\"codespan\">fx</code>、<code class=\"codespan\">fy</code>。</li>\n<li>不支持 <code class=\"codespan\">gradientTransform</code>。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">fill:url(..)</code>, <code class=\"codespan\">stroke:utl(..)</code>:<ul>\n<li>只支持 <code class=\"codespan\">url(#someId)</code>。</li>\n<li>不支持其他 URL 模式,例如不支持:<ul>\n<li><code class=\"codespan\">url(https://example.com/images/myImg.jpg)</code>。</li>\n<li><code class=\"codespan\">url(data:image/png;base64,iRxVB0...)</code>。</li>\n<li><code class=\"codespan\">url(myFont.woff)</code>。</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;switch&gt;</code> 标签:<ul>\n<li><code class=\"codespan\">&lt;switch&gt;</code> 标签内的所有内容都会显示。不支持“切换”功能。</li>\n</ul>\n</li>\n<li><code class=\"codespan\">&lt;text&gt;</code>。<ul>\n<li>不支持 <code class=\"codespan\">textPath</code>。</li>\n<li>不支持 <a href=\"https://www.w3.org/TR/SVG/text.html#TermAddressableCharacter\" target=\"_blank\">Addressable character</a>,也就是说:<pre><code class=\"lang-xml\">&lt;!-- 不支持: --&gt;\n&lt;tspan x=&quot;0 4.94 9.89&quot;&gt;abc&lt;/tspan&gt;。\n&lt;!-- 支持: --&gt;\n&lt;tspan x=&quot;0&quot;&gt;A&lt;/tspan&gt;\n&lt;tspan x=&quot;4.94&quot;&gt;b&lt;/tspan&gt;\n&lt;tspan x=&quot;9.89&quot;&gt;C&lt;/tspan&gt;\n</code></pre>\n</li>\n</ul>\n</li>\n</ul>\n"},"在图表中支持无障碍访问":{"type":["*"],"description":"<p>W3C 制定了无障碍富互联网应用规范集(<a href=\"https://www.w3.org/WAI/intro/aria\" target=\"_blank\">WAI-ARIA</a>,the Accessible Rich Internet Applications Suite),致力于使得网页内容和网页应用能够被更多残障人士访问。Apache ECharts<sup>TM</sup> 4.0 遵从这一规范,支持自动根据图表配置项智能生成描述,使得盲人可以在朗读设备的帮助下了解图表内容,让图表可以被更多人群访问。</p>\n<p>默认关闭,需要通过将 <a href=\"option.html#aria.enabled\" target=\"_blank\">aria.enabled</a> 设置为 <code class=\"codespan\">true</code> 开启。开启后,会根据图表、数据、标题等情况,自动智能生成关于图表的描述,用户也可以通过配置项修改描述。</p>\n<p>对于配置项:</p>\n<pre><code class=\"lang-js\">option = {\n    aria: {\n        enabled: true\n    },\n    title: {\n        text: &#39;某站点用户访问来源&#39;,\n        x: &#39;center&#39;\n    },\n    series: [\n        {\n            name: &#39;访问来源&#39;,\n            type: &#39;pie&#39;,\n            data: [\n                { value: 335, name: &#39;直接访问&#39; },\n                { value: 310, name: &#39;邮件营销&#39; },\n                { value: 234, name: &#39;联盟广告&#39; },\n                { value: 135, name: &#39;视频广告&#39; },\n                { value: 1548, name: &#39;搜索引擎&#39; }\n            ]\n        }\n    ]\n};\n</code></pre>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/aria-pie&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n<p>生成的图表 DOM 上,会有一个 <code class=\"codespan\">aria-label</code> 属性,在朗读设备的帮助下,盲人能够了解图表的内容。其值为:</p>\n<pre><code>这是一个关于“某站点用户访问来源”的图表。图表类型是饼图,表示访问来源。其数据是——直接访问的数据是335,邮件营销的数据是310,联盟广告的数据是234,视频广告的数据是135,搜索引擎的数据是1548。\n</code></pre><p>默认语言会根据语言包(默认中文)选择,也可以使用配置项自定义模板。</p>\n<p>除此之外,Apache ECharts 5 新增支持贴花纹理,作为颜色的辅助表达,进一步用以区分数据。在 <code class=\"codespan\">aria.enabled</code> 为 <code class=\"codespan\">true</code> 的前提下,将 <code class=\"codespan\">aria.decal.show</code> 设为 <code class=\"codespan\">true</code> 即可采用默认的贴花样式。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/aria-decal-simple&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n<p>下面,我们更具体地介绍这两种无障碍设计的配置方式。</p>\n<h2 id=\"-\">图表描述</h2>\n<h4 id=\"-\">采用整体描述</h4>\n<p>对于有些图表,默认生成的数据点的描述并不足以表现整体的信息。比如下图的散点图,默认生成的描述可以包含数据点的坐标值,但是知道几百几千个点的坐标并不能帮助我们有效地理解图表表达的信息。</p>\n<p><img width=\"600\" height=\"auto\" src=\"documents/asset/img/aria-example.png\"></p>\n<p>这时候,用户可以通过 <a href=\"option.html#aria.label.description\" target=\"_blank\">aria.label.description</a> 配置项指定图表的整体描述。</p>\n<h4 id=\"-\">定制模板描述</h4>\n<p>除了整体性修改描述之外,我们还提供了生成描述的模板,可以方便地进行细粒度的修改。</p>\n<p>生成描述的基本流程为,如果 <a href=\"option.html#aria.label.show\" target=\"_blank\">aria.label.show</a> 设置为 <code class=\"codespan\">true</code>,则生成无障碍访问描述,否则不生成。如果定义了 <a href=\"option.html#aria.label.description\" target=\"_blank\">aria.label.description</a>,则将其作为图表的完整描述,否则根据模板拼接生成描述。我们提供了默认的生成描述的算法,仅当生成的描述不太合适时,才需要修改这些模板,甚至使用 <code class=\"codespan\">aria.description</code> 完全覆盖。</p>\n<p>使用模板拼接时,先根据是否存在标题 <a href=\"#title.text\">title.text</a> 决定使用 <a href=\"option.html#aria.label.general.withTitle\" target=\"_blank\">aria.label.general.withTitle</a> 还是 <a href=\"option.html#aria.label.general.withoutTitle\" target=\"_blank\">aria.label.general.withoutTitle</a> 作为整体性描述。其中,<code class=\"codespan\">aria.general.withTitle</code> 配置项包括模板变量 <code class=\"codespan\">&#39;{title}&#39;</code>,将会被替换成图表标题。也就是说,如果 <code class=\"codespan\">aria.general.withTitle</code> 被设置为 <code class=\"codespan\">&#39;图表的标题是:{title}。&#39;</code>,则如果包含标题 <code class=\"codespan\">&#39;价格分布图&#39;</code>,这部分的描述为 <code class=\"codespan\">&#39;图表的标题是:价格分布图。&#39;</code>。</p>\n<p>拼接完标题之后,会依次拼接系列的描述(<a href=\"option.html#aria.label.series\" target=\"_blank\">aria.label.series</a>),和每个系列的数据的描述(<a href=\"option.html#aria.label.data\" target=\"_blank\">aria.label.data</a>)。同样,每个模板都有可能包括模板变量,用以替换实际的值。</p>\n<h2 id=\"-\">贴花图案</h2>\n<p>上文介绍了使用默认的贴花图案的方式。如果需要自定义贴花图案,可以使用 <a href=\"option.html#aria.decal.decals\" target=\"_blank\">aria.decal.decals</a> 配置出灵活多变的图案。</p>\n<iframe data-src=\"https://echarts.apache.org/examples/zh/view.html?c=doc-example/aria-decal&edit=1&reset=1\" width=\"700\" height=\"300\" ></iframe>\n\n\n<p>更具体的信息请参见 <a href=\"option.html#aria\" target=\"_blank\">ARIA 文档</a>。</p>\n"},"使用 ECharts GL 实现基础的三维可视化":{"type":["*"],"description":"<p>ECharts GL (后面统一简称 GL)为 Apache ECharts<sup>TM</sup> 补充了丰富的三维可视化组件,这篇文章我们会简单介绍如何基于 GL 实现一些常见的三维可视化作品。实际上如果你对 ECharts 有一定了解的话,也可以很快的上手 GL,GL 的配置项完全是按照 ECharts 的标准和上手难度来设计的。</p>\n<p>在看完文章之后,你可以前往 <a href=\"https://echarts.apache.org/examples/zh/index.html#chart-type-globe\" target=\"_blank\">官方示例</a> 和 <a href=\"https://gallery.echartsjs.com/explore.html#tags=echarts-gl\" target=\"_blank\">Gallery</a> 去了解更多使用 GL 制作的示例,对于文章中我们没法解释到的代码,也可以前往 <a href=\"option-gl.html\" target=\"_blank\">GL 配置项手册</a> 查看具体的配置项使用方法。</p>\n<h2 id=\"-echarts-gl\">如何下载和引入 ECharts GL</h2>\n<p>为了不再增加已经很大了的 ECharts 完整版的体积,我们将 GL 作为扩展包的形式提供,和诸如水球图这样的扩展类似,如果要使用 GL 里的各种组件,只需要在引入<code class=\"codespan\">echarts.min.js</code>的基础上再引入一个<code class=\"codespan\">echarts-gl.min.js</code>。你可以从 <a href=\"https://echarts.apache.org/zh/download.html\" target=\"_blank\">官网</a> 下载最新版的 GL,然后在页面中通过标签引入:</p>\n<pre><code class=\"lang-html\">&lt;script src=&quot;lib/echarts.min.js&quot;&gt;&lt;/script&gt;\n&lt;script src=&quot;lib/echarts-gl.min.js&quot;&gt;&lt;/script&gt;\n</code></pre>\n<p>如果你的项目使用 webpack 或者 rollup 来打包代码的话,也可以通过 npm 安装后引入</p>\n<pre><code class=\"lang-bash\">npm install echarts\nnpm install echarts-gl\n</code></pre>\n<pre><code class=\"lang-js\">// 通过 ES6 的 import 语法引入 ECharts 和 ECharts GL\nimport echarts from &#39;echarts&#39;;\nimport &#39;echarts-gl&#39;;\n</code></pre>\n<h2 id=\"-\">声明一个基础的三维笛卡尔坐标系</h2>\n<p>引入 ECharts 和 ECharts GL 后,我们先来声明一个基础的三维笛卡尔坐标系用于绘制三维的散点图,柱状图,曲面图等常见的统计图。</p>\n<p>在 ECharts 中我们有 <a href=\"option.html#grid\" target=\"_blank\">grid</a> 组件用于提供一个矩形的区域放置一个二维的笛卡尔坐标系,以及笛卡尔坐标系上上的 x 轴(<a href=\"option.html#xAxis\" target=\"_blank\">xAxis</a>)和 y 轴(<a href=\"option.html#yAxis\" target=\"_blank\">yAxis</a>)。对于三维的笛卡尔坐标系,我们在 GL 中提供了 <a href=\"option-gl.html#grid3D\" target=\"_blank\">grid3D</a> 组件用于划分一块三维的笛卡尔空间,以及放置在这个 <a href=\"option-gl.html#grid3D\" target=\"_blank\">grid3D</a> 上的 <a href=\"option-gl.html#xAxis3D\" target=\"_blank\">xAxis3D</a>, <a href=\"option-gl.html#yAxis3D\" target=\"_blank\">yAxis3D</a>, <a href=\"option-gl.html#zAxis3D\" target=\"_blank\">zAxis3D</a>。</p>\n<blockquote>\n<p>小提示:在 GL 中我们对除了 globe 之外所有的三维组件和系列都加了 3D 的后缀用以区分,例如三维的散点图就是 scatter3D,三维的地图就是 map3D 等等。</p>\n</blockquote>\n<p>下面这段代码就声明了一个最简单的三维笛卡尔坐标系</p>\n<pre><code class=\"lang-js\">var option = {\n    // 需要注意的是我们不能跟 grid 一样省略 grid3D\n    grid3D: {},\n    // 默认情况下, x, y, z 分别是从 0 到 1 的数值轴\n    xAxis3D: {},\n    yAxis3D: {},\n    zAxis3D: {}\n}\n</code></pre>\n<p>效果如下:</p>\n<p><img width=\"\" height=\"auto\" src=\"documents/asset/img/gl/grid3D-basic.png\"></p>\n<p>跟二维的笛卡尔坐标系一样,每个轴都会有多种类型,默认是数值轴,如果需要是类目轴的话,简单的设置为 <code class=\"codespan\">type: &#39;category&#39;</code>就行了。</p>\n<h2 id=\"-\">绘制三维的散点图</h2>\n<p>声明好笛卡尔坐标系后,我们先试试用一份程序生成的正态分布数据在这个三维的笛卡尔坐标系中画散点图。</p>\n<p>下面这段是生成正态分布数据的代码,你可以先不用关心这段代码是怎么工作的,只需要知道它生成了一份三维的正态分布数据放在<code class=\"codespan\">data</code>数组中。</p>\n<pre><code class=\"lang-js\">function makeGaussian(amplitude, x0, y0, sigmaX, sigmaY) {\n    return function (amplitude, x0, y0, sigmaX, sigmaY, x, y) {\n        var exponent = -(\n                ( Math.pow(x - x0, 2) / (2 * Math.pow(sigmaX, 2)))\n                + ( Math.pow(y - y0, 2) / (2 * Math.pow(sigmaY, 2)))\n            );\n        return amplitude * Math.pow(Math.E, exponent);\n    }.bind(null, amplitude, x0, y0, sigmaX, sigmaY);\n}\n// 创建一个高斯分布函数\nvar gaussian = makeGaussian(50, 0, 0, 20, 20);\n\nvar data = [];\nfor (var i = 0; i &lt; 1000; i++) {\n    // x, y 随机分布\n    var x = Math.random() * 100 - 50;\n    var y = Math.random() * 100 - 50;\n    var z = gaussian(x, y);\n    data.push([x, y, z]);\n}\n</code></pre>\n<p>生成的正态分布的数据大概长这样:</p>\n<pre><code class=\"lang-js\">[\n  [46.74395071259907, -33.88391024738553, 0.7754030099768191],\n  [-18.45302873809771, 16.88114775416834, 22.87772504105404],\n  [2.9908128281121336, -0.027699444453467947, 49.44400635911886],\n  ...\n]\n</code></pre>\n<p>每一项都包含了<code class=\"codespan\">x</code>, <code class=\"codespan\">y</code>, <code class=\"codespan\">z</code>三个值,这三个值会分别被映射到笛卡尔坐标系的 x 轴,y 轴和 z 轴上。</p>\n<p>然后我们可以使用 GL 提供的 <a href=\"option-gl.html#series-scatter3D\" target=\"_blank\">scatter3D</a> 系列类型把这些数据画成三维空间中正态分布的点。</p>\n<pre><code class=\"lang-js\">option = {\n    grid3D: {},\n    xAxis3D: {},\n    yAxis3D: {},\n    zAxis3D: { max: 100 },\n    series: [{\n        type: &#39;scatter3D&#39;,\n        data: data\n    }]\n}\n</code></pre>\n<p><img width=\"\" height=\"auto\" src=\"documents/asset/img/gl/scatter3D-gaussian.png\"></p>\n<h2 id=\"-\">使用真实数据的三维散点图</h2>\n<p>接下来我们来看一个使用真实多维数据的三维散点图例子。</p>\n<p>可以先从 <a href=\"https://echarts.apache.org/examples/data/asset/data/life-expectancy-table.json\" target=\"_blank\">https://echarts.apache.org/examples/data/asset/data/life-expectancy-table.json</a> 获取这份数据。</p>\n<p>格式化一下可以看到这份数据是很传统转成 JSON 后的表格格式。第一行是每一列数据的属性名,可以从这个属性名看出来每一列数据的含义,分别是人均收入,人均寿命,人口数量,国家和年份。</p>\n<pre><code class=\"lang-js\">[\n    [&quot;Income&quot;, &quot;Life Expectancy&quot;, &quot;Population&quot;, &quot;Country&quot;, &quot;Year&quot;],\n    [815, 34.05, 351014, &quot;Australia&quot;, 1800],\n    [1314, 39, 645526, &quot;Canada&quot;, 1800],\n    [985, 32, 321675013, &quot;China&quot;, 1800],\n    [864, 32.2, 345043, &quot;Cuba&quot;, 1800],\n    [1244, 36.5731262, 977662, &quot;Finland&quot;, 1800],\n    ...\n]\n</code></pre>\n<p>在 ECharts 4 中我们可以使用 dataset 组件非常方便地引入这份数据。如果对 dataset 还不熟悉的话可以看<a href=\"tutorial.html#%E4%BD%BF%E7%94%A8%20dataset%20%E7%AE%A1%E7%90%86%E6%95%B0%E6%8D%AE\" target=\"_blank\">dataset使用教程</a></p>\n<pre><code class=\"lang-js\">$.get(&#39;data/asset/data/life-expectancy-table.json&#39;, function (data) {\n    myChart.setOption({\n        grid3D: {},\n        xAxis3D: {},\n        yAxis3D: {},\n        zAxis3D: {},\n        dataset: {\n            source: data\n        },\n        series: [\n            {\n                type: &#39;scatter3D&#39;,\n                symbolSize: 2.5\n            }\n        ]\n    })\n});\n</code></pre>\n<p><img width=\"\" height=\"auto\" src=\"documents/asset/img/gl/scatter3D-life.png\"></p>\n<p>默认会把前三列,也就是收入(Income),人均寿命(Life Expectancy),人口(Population)分别放到 x、 y、 z 轴上。</p>\n<p>使用 encode 属性我们还可以将指定列的数据映射到指定的坐标轴上,从而省去很多繁琐的数据转换代码。例如我们将 x 轴换成是国家(Country),y 轴换成年份(Year),z 轴换成收入(Income),可以看到不同国家不同年份的人均收入分布。</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    grid3D: {},\n    xAxis3D: {\n        // 因为 x 轴和 y 轴都是类目数据,所以需要设置 type: &#39;category&#39; 保证正确显示数据。\n        type: &#39;category&#39;\n    },\n    yAxis3D: {\n        type: &#39;category&#39;\n    },\n    zAxis3D: {},\n    dataset: {\n        source: data\n    },\n    series: [\n        {\n            type: &#39;scatter3D&#39;,\n            symbolSize: 2.5,\n            encode: {\n                // 维度的名字默认就是表头的属性名\n                x: &#39;Country&#39;,\n                y: &#39;Year&#39;,\n                z: &#39;Income&#39;,\n                tooltip: [0, 1, 2, 3, 4]\n            }\n        }\n    ]\n});\n</code></pre>\n<h2 id=\"-visualmap-\">利用 visualMap 组件对三维散点图进行视觉编码</h2>\n<p>刚才多维数据的例子中,我们还有几个维度(列)没能表达出来,利用 ECharts 内置的 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> 组件我们可以继续将第四个维度编码成颜色。</p>\n<pre><code class=\"lang-js\">myChart.setOption({\n    grid3D: {\n        viewControl: {\n            // 使用正交投影。\n            projection: &#39;orthographic&#39;\n        }\n    },\n    xAxis3D: {\n        // 因为 x 轴和 y 轴都是类目数据,所以需要设置 type: &#39;category&#39; 保证正确显示数据。\n        type: &#39;category&#39;\n    },\n    yAxis3D: {\n        type: &#39;log&#39;\n    },\n    zAxis3D: {},\n    visualMap: {\n        calculable: true,\n        max: 100,\n        // 维度的名字默认就是表头的属性名\n        dimension: &#39;Life Expectancy&#39;,\n        inRange: {\n            color: [&#39;#313695&#39;, &#39;#4575b4&#39;, &#39;#74add1&#39;, &#39;#abd9e9&#39;, &#39;#e0f3f8&#39;, &#39;#ffffbf&#39;, &#39;#fee090&#39;, &#39;#fdae61&#39;, &#39;#f46d43&#39;, &#39;#d73027&#39;, &#39;#a50026&#39;]\n        }\n    },\n    dataset: {\n        source: data\n    },\n    series: [\n        {\n            type: &#39;scatter3D&#39;,\n            symbolSize: 5,\n            encode: {\n                // 维度的名字默认就是表头的属性名\n                x: &#39;Country&#39;,\n                y: &#39;Population&#39;,\n                z: &#39;Income&#39;,\n                tooltip: [0, 1, 2, 3, 4]\n            }\n        }\n    ]\n})\n</code></pre>\n<p>这段代码中我们又在刚才的例子基础上加入了 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> 组件,将<code class=\"codespan\">Life Expectancy</code>这一列数据映射到了不同的颜色。</p>\n<p>除此之外我们还把原来默认的透视投影改成了正交投影。正交投影在某些场景中可以避免因为近大远小所造成的表达错误。</p>\n<p><img width=\"\" height=\"auto\" src=\"documents/asset/img/gl/scatter3D-color.png\"></p>\n<p>当然,除了 <a href=\"option.html#visualMap\" target=\"_blank\">visualMap</a> 组件,还可以利用其它的 ECharts 内置组件并且充分利用这些组件的交互效果,比如 <a href=\"option.html#legend\" target=\"_blank\">legend</a>。也可以像 <a href=\"https://echarts.apache.org/examples/zh/editor.html?c=scatter3d-scatter&amp;gl=1\" target=\"_blank\">三维散点图和散点矩阵结合使用</a> 这个例子一样实现二维和三维的系列混搭。</p>\n<p>在实现 GL 的时候我们尽可能地把 WebGL 和 Canvas 之间的差异屏蔽了到最小,从而让 GL 的使用可以更加方便自然。</p>\n<h2 id=\"-\">在笛卡尔坐标系上显示其它类型的三维图表</h2>\n<p>除了散点图,我们也可以通过 GL 在三维的笛卡尔坐标系上绘制其它类型的三维图表。比如刚才例子中将 <code class=\"codespan\">scatter3D</code> 类型改成 <code class=\"codespan\">bar3D</code> 就可以变成一个三维的柱状图。</p>\n<p><img width=\"\" height=\"auto\" src=\"documents/asset/img/gl/bar3D.png\"></p>\n<p>还有机器学习中会用到的三维曲面图 <a href=\"option-gl.html#series-surface\" target=\"_blank\">surface</a>,三维曲面图常用来表达平面上的数据走势,刚才的正态分布数据我们也可以像下面这样画成曲面图。</p>\n<pre><code class=\"lang-js\">var data = [];\n// 曲面图要求给入的数据是网格形式按顺序分布。\nfor (var y = -50; y &lt;= 50; y++) {\n    for (var x = -50; x &lt;= 50; x++) {\n        var z = gaussian(x, y);\n        data.push([x, y, z]);\n    }\n}\noption = {\n    grid3D: {},\n    xAxis3D: {},\n    yAxis3D: {},\n    zAxis3D: { max: 60 },\n    series: [{\n        type: &#39;surface&#39;,\n        data: data\n    }]\n}\n</code></pre>\n<p><img width=\"\" height=\"auto\" src=\"documents/asset/img/gl/surface.png\"></p>\n<h2 id=\"-\">老板想要立体的柱状图效果</h2>\n<p>最后,我们经常会被问到如何用 ECharts 画只有二维数据的立体柱状图效果。一般来说我们是不推荐这么做的,因为这种不必要的立体柱状图很容易造成错误的表达,具体可以见我们 <a href=\"https://vis.baidu.com/chartusage/bar/\" target=\"_blank\">柱状图使用指南</a> 中的解释。</p>\n<p>但是如果有一些其他因素导致必须得画成立体的柱状图的话,用 GL 也可以实现。<a href=\"https://gallery.echartsjs.com/explore.html?u=bd-3056387051\" target=\"_blank\">丶灬豆奶</a> 和 <a href=\"https://gallery.echartsjs.com/explore.html?u=bd-809368804\" target=\"_blank\">阿洛儿啊</a> 在 Gallery 已经写了类似的例子,大家可以参考。</p>\n<p><a href=\"https://gallery.echartsjs.com/explore.html?u=bd-3056387051\" target=\"_blank\">3D堆积柱状图</a></p>\n<p><a href=\"https://gallery.echartsjs.com/editor.html?c=xryQDPYK0b\" target=\"_blank\">3D柱状图</a></p>\n<p><img width=\"\" height=\"auto\" src=\"documents/asset/img/gl/bar3D-2d-data.png\"></p>\n"},"在微信小程序中使用 ECharts":{"type":["*"],"description":"<p>我们接到了很多微信小程序开发者的反馈,表示他们强烈需要像 Apache ECharts<sup>TM</sup> 这样的可视化工具。但是微信小程序是不支持 DOM 操作的,Canvas 接口也和浏览器不尽相同。</p>\n<p>因此,我们和微信小程序官方团队合作,提供了 ECharts 的微信小程序版本。开发者可以通过熟悉的 ECharts 配置方式,快速开发图表,满足各种可视化需求。</p>\n<h2 id=\"-\">体验示例小程序</h2>\n<p>在微信中扫描下面的二维码即可体验 ECharts Demo:</p>\n<p><img width=\"auto\" height=\"auto\" src=\"https://cdn.jsdelivr.net/gh/ecomfe/echarts-for-weixin/img/weixin-app.jpg\"></p>\n<h2 id=\"-\">下载</h2>\n<p>为了兼容小程序 Canvas,我们提供了一个小程序的组件,用这种方式可以方便地使用 ECharts。</p>\n<p>首先,下载 GitHub 上的 <a href=\"https://github.com/ecomfe/echarts-for-weixin\" target=\"_blank\">ecomfe/echarts-for-weixin</a> 项目。</p>\n<p>其中,<code class=\"codespan\">ec-canvas</code> 是我们提供的组件,其他文件是如何使用该组件的示例。</p>\n<p><code class=\"codespan\">ec-canvas</code> 目录下有一个 <code class=\"codespan\">echarts.js</code>,默认我们会在每次 <code class=\"codespan\">echarts-for-weixin</code> 项目发版的时候替换成最新版的 ECharts。如有必要,可以自行从 ECharts 项目中下载<a href=\"https://github.com/apache/echarts/releases\" target=\"_blank\">最新发布版</a>,或者从<a href=\"https://echarts.apache.org/builder.html\" target=\"_blank\">官网自定义构建</a>以减小文件大小。</p>\n<h2 id=\"-\">引入组件</h2>\n<p>微信小程序的项目创建可以参见<a href=\"https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/\" target=\"_blank\">微信公众平台官方文档</a>。</p>\n<p>在创建项目之后,可以将下载的 <a href=\"https://github.com/ecomfe/echarts-for-weixin\" target=\"_blank\">ecomfe/echarts-for-weixin</a> 项目完全替换新建的项目,然后将修改代码;或者仅拷贝 <code class=\"codespan\">ec-canvas</code> 目录到新建的项目下,然后做相应的调整。</p>\n<p>如果采用完全替换的方式,需要将 <code class=\"codespan\">project.config.json</code> 中的 <code class=\"codespan\">appid</code> 替换成在公众平台申请的项目 id。<code class=\"codespan\">pages</code> 目录下的每个文件夹是一个页面,可以根据情况删除不需要的页面,并且在 <code class=\"codespan\">app.json</code> 中删除对应页面。</p>\n<p>如果仅拷贝 <code class=\"codespan\">ec-canvas</code> 目录,则可以参考 <code class=\"codespan\">pages/bar</code> 目录下的几个文件的写法。下面,我们具体地说明。</p>\n<h2 id=\"-\">创建图表</h2>\n<p>首先,在 <code class=\"codespan\">pages/bar</code> 目录下新建以下几个文件:<code class=\"codespan\">index.js</code>、 <code class=\"codespan\">index.json</code>、 <code class=\"codespan\">index.wxml</code>、 <code class=\"codespan\">index.wxss</code>。并且在 <code class=\"codespan\">app.json</code> 的 <code class=\"codespan\">pages</code> 中增加 <code class=\"codespan\">&#39;pages/bar/index&#39;</code>。</p>\n<p><code class=\"codespan\">index.json</code> 配置如下:</p>\n<pre><code class=\"lang-json\">{\n  &quot;usingComponents&quot;: {\n    &quot;ec-canvas&quot;: &quot;../../ec-canvas/ec-canvas&quot;\n  }\n}\n</code></pre>\n<p>这一配置的作用是,允许我们在 <code class=\"codespan\">pages/bar/index.wxml</code> 中使用 <code class=\"codespan\">&lt;ec-canvas&gt;</code> 组件。注意路径的相对位置要写对,如果目录结构和本例相同,就应该像上面这样配置。</p>\n<p><code class=\"codespan\">index.wxml</code> 中,我们创建了一个 <code class=\"codespan\">&lt;ec-canvas&gt;</code> 组件,内容如下:</p>\n<pre><code class=\"lang-xml\">&lt;view class=&quot;container&quot;&gt;\n  &lt;ec-canvas id=&quot;mychart-dom-bar&quot; canvas-id=&quot;mychart-bar&quot; ec=&quot;{{ ec }}&quot;&gt;&lt;/ec-canvas&gt;\n&lt;/view&gt;\n</code></pre>\n<p>其中 <code class=\"codespan\">ec</code> 是一个我们在 <code class=\"codespan\">index.js</code> 中定义的对象,它使得图表能够在页面加载后被初始化并设置。<code class=\"codespan\">index.js</code> 的结构如下:</p>\n<pre><code class=\"lang-js\">function initChart(canvas, width, height) {\n  const chart = echarts.init(canvas, null, {\n    width: width,\n    height: height\n  });\n  canvas.setChart(chart);\n\n  var option = {\n    ...\n  };\n  chart.setOption(option);\n  return chart;\n}\n\nPage({\n  data: {\n    ec: {\n      onInit: initChart\n    }\n  }\n});\n</code></pre>\n<p>这对于所有 ECharts 图表都是通用的,用户只需要修改上面 <code class=\"codespan\">option</code> 的内容,即可改变图表。<code class=\"codespan\">option</code> 的使用方法参见 <a href=\"option.html\" target=\"_blank\">ECharts 配置项文档</a>。对于不熟悉 ECharts 的用户,可以参见 <a href=\"tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts\" target=\"_blank\">5 分钟上手 ECharts</a> 教程。</p>\n<p>完整的例子请参见 <a href=\"https://github.com/ecomfe/echarts-for-weixin\" target=\"_blank\">ecomfe/echarts-for-weixin</a> 项目。</p>\n<h2 id=\"-\">暂不支持的功能</h2>\n<p>ECharts 中的绝大部分功能都支持小程序版本,因此这里仅说明不支持的功能,以及存在的问题。</p>\n<p>以下功能尚不支持,如果有相关需求请在 <a href=\"https://github.com/ecomfe/echarts-for-weixin/issues\" target=\"_blank\">issue</a> 中向我们反馈,对于反馈人数多的需求将优先支持:</p>\n<ul>\n<li>Tooltip</li>\n<li>图片</li>\n<li>多个 zlevel 分层</li>\n</ul>\n<p>此外,目前还有一些 bug 尚未修复,部分需要小程序团队配合上线支持,但不影响基本的使用。已知的 bug 包括:</p>\n<ul>\n<li>安卓平台:transform 的问题(会影响关系图边两端的标记位置、旭日图文字位置等)</li>\n<li>iOS 平台:半透明略有变深的问题</li>\n<li>iOS 平台:渐变色出现在定义区域之外的地方</li>\n</ul>\n<p>如有其它问题,也欢迎在 <a href=\"https://github.com/ecomfe/echarts-for-weixin/issues\" target=\"_blank\">issue</a> 中向我们反馈,谢谢!</p>\n"}}}}
\ No newline at end of file
diff --git a/zh/download-extension.html b/zh/download-extension.html
index eae7d7a..221719d 100644
--- a/zh/download-extension.html
+++ b/zh/download-extension.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/download-map.html b/zh/download-map.html
index 111eb2e..d3d4da5 100644
--- a/zh/download-map.html
+++ b/zh/download-map.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/download-theme.html b/zh/download-theme.html
index 74919bf..e2087f2 100644
--- a/zh/download-theme.html
+++ b/zh/download-theme.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/download.html b/zh/download.html
index 9409a43..cf3500a 100644
--- a/zh/download.html
+++ b/zh/download.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -7,7 +7,7 @@
     document.head.insertBefore(el, document.getElementById('font-hack'));
 }
 </script><title>下载 - Apache ECharts</title><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
-<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div class="page-info"><h1>下载</h1></div><div id="download-main" class="page-content container"><div class="d-section-version d-section"><h3 class="first">方法一:从下载的源代码或编译产物安装</h3><table id="download-table" class="table"><tr><th>版本</th><th>发布日期</th><th>从镜像网站下载源码</th><th>从 GitHub 下载编译产物</th></tr></table><div class="checksum"><p><strong>注意:</strong>如果从镜像网站下载,请检查 <a href="https://www.apache.org/dev/release-signing#sha-checksum">SHA-512</a> 并且检验确认 <a href="https://www.apache.org/dev/release-signing#openpgp">OpenPGP</a> 与 <a href="https://www.apache.org">Apache 主站</a>的签名一致。链接在上面的 Source 旁。这个 <a href="https://www.apache.org/dist/echarts/KEYS">KEYS</a> 文件包含了用于签名发布版的公钥。如果可能的话,建议使用<a href="https://www.apache.org/dev/release-signing#web-of-trust">可信任的网络(web of trust)</a>确认 KEYS 的同一性。</p><h4>使用 GPG 验证 ECharts 发布版本</h4><ol><li>从镜像网站下载 apache-echarts-X.Y.Z-src.zip</li><li>从 <a href="https://www.apache.org/dist/echarts/">Apache</a> 下载 checksum apache-echarts-X.Y.Z-src.zip.asc</li><li>下载 <a href="https://www.apache.org/dist/echarts/KEYS">ECharts KEYS</a></li><li>gpg –import KEYS</li><li>gpg –verify apache-echarts-X.Y.Z-src.zip.asc</li></ol><h4>使用 SHA-512 验证</h4><ol><li>从镜像网站下载 apache-echarts-X.Y.Z-src.zip</li><li>从 <a href="https://www.apache.org/dist/echarts/">Apache</a> 下载 checksum apache-echarts-X.Y.Z-src.zip.sha512</li><li>shasum -a 512 apache-echarts-X.Y.Z-src.zip</li></ol><h4>License</h4><p>Apache ECharts 基于 <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> 发布</p></div><h3>方法二:从 npm 安装</h3><p><code>npm install echarts</code></p><h3>方法三:选择需要的模块,在线定制下载</h3><a href="builder.html" class="btn btn-main btn-thirdary more-btn">在线定制</a><p class="center">可自由选择所需图表和组件进行打包下载</p><h3>下载后……</h3><p><a href="./tutorial.html">5 分钟上手 ECharts</a></p></div></div><footer><div class="container"><div class="row"><div class="col-md-9"><p>Copyright © 2017-2021, The Apache Software Foundation Apache ECharts, ECharts, Apache, the Apache feather, and the Apache ECharts project logo are either registered trademarks or trademarks of the Apache Software Foundation.</p><div class="icon-panel"><a href="mailto:dev@echarts.apache.org?body=%28Thanks%20for%20using%20ECharts.%20Email%20us%20if%20you%20have%20non-technical%20problems%20using%20ECharts.%20For%20technical%20support%2C%20please%20go%20to%20https%3A//github.com/apache/echarts/issues%20.%29" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-email.png?_v_=20200710_1"></a><a href="https://twitter.com/ApacheECharts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-twitter.png?_v_=20200710_1"></a><a href="https://weibo.com/echarts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-weibo.png?_v_=20200710_1"></a><a href="https://github.com/apache/echarts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-github.png?_v_=20200710_1"></a></div></div><div id="footer-icon-panel" class="col-md-3"><a href="https://www.apache.org"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/asf_logo.svg?_v_=20200710_1" class="footer-apache-logo"></a></div></div></div></footer></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/download.js?_v_=9748b37d3f"></script><script type="text/javascript">document.getElementById('nav-download').className = 'active';
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div class="page-info"><h1>下载</h1></div><div id="download-main" class="page-content container"><div class="d-section-version d-section"><h3 class="first">方法一:从下载的源代码或编译产物安装</h3><table id="download-table" class="table"><tr><th>版本</th><th>发布日期</th><th>从镜像网站下载源码</th><th>从 GitHub 下载编译产物</th></tr></table><div class="checksum"><p><strong>注意:</strong>如果从镜像网站下载,请检查 <a href="https://www.apache.org/dev/release-signing#sha-checksum">SHA-512</a> 并且检验确认 <a href="https://www.apache.org/dev/release-signing#openpgp">OpenPGP</a> 与 <a href="https://www.apache.org">Apache 主站</a>的签名一致。链接在上面的 Source 旁。这个 <a href="https://www.apache.org/dist/echarts/KEYS">KEYS</a> 文件包含了用于签名发布版的公钥。如果可能的话,建议使用<a href="https://www.apache.org/dev/release-signing#web-of-trust">可信任的网络(web of trust)</a>确认 KEYS 的同一性。</p><h4>使用 GPG 验证 ECharts 发布版本</h4><ol><li>从镜像网站下载 apache-echarts-X.Y.Z-src.zip</li><li>从 <a href="https://www.apache.org/dist/echarts/">Apache</a> 下载 checksum apache-echarts-X.Y.Z-src.zip.asc</li><li>下载 <a href="https://www.apache.org/dist/echarts/KEYS">ECharts KEYS</a></li><li>gpg –import KEYS</li><li>gpg –verify apache-echarts-X.Y.Z-src.zip.asc</li></ol><h4>使用 SHA-512 验证</h4><ol><li>从镜像网站下载 apache-echarts-X.Y.Z-src.zip</li><li>从 <a href="https://www.apache.org/dist/echarts/">Apache</a> 下载 checksum apache-echarts-X.Y.Z-src.zip.sha512</li><li>shasum -a 512 apache-echarts-X.Y.Z-src.zip</li></ol><h4>License</h4><p>Apache ECharts 基于 <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> 发布</p></div><h3>方法二:从 npm 安装</h3><p><code>npm install echarts</code></p><h3>方法三:选择需要的模块,在线定制下载</h3><a href="builder.html" class="btn btn-main btn-thirdary more-btn">在线定制</a><p class="center">可自由选择所需图表和组件进行打包下载</p><h3>下载后……</h3><p><a href="./tutorial.html">5 分钟上手 ECharts</a></p></div></div><footer><div class="container"><div class="row"><div class="col-md-9"><p>Copyright © 2017-2021, The Apache Software Foundation Apache ECharts, ECharts, Apache, the Apache feather, and the Apache ECharts project logo are either registered trademarks or trademarks of the Apache Software Foundation.</p><div class="icon-panel"><a href="mailto:dev@echarts.apache.org?body=%28Thanks%20for%20using%20ECharts.%20Email%20us%20if%20you%20have%20non-technical%20problems%20using%20ECharts.%20For%20technical%20support%2C%20please%20go%20to%20https%3A//github.com/apache/echarts/issues%20.%29" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-email.png?_v_=20200710_1"></a><a href="https://twitter.com/ApacheECharts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-twitter.png?_v_=20200710_1"></a><a href="https://weibo.com/echarts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-weibo.png?_v_=20200710_1"></a><a href="https://github.com/apache/echarts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-github.png?_v_=20200710_1"></a></div></div><div id="footer-icon-panel" class="col-md-3"><a href="https://www.apache.org"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/asf_logo.svg?_v_=20200710_1" class="footer-apache-logo"></a></div></div></div></footer></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/download.js?_v_=49b697952f"></script><script type="text/javascript">document.getElementById('nav-download').className = 'active';
 
 //- $('.download-echarts').click(function (e) {
 //-     var el = document.createElement('div');
diff --git a/zh/download3.html b/zh/download3.html
index 5057918..b1a1508 100644
--- a/zh/download3.html
+++ b/zh/download3.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -7,7 +7,7 @@
     document.head.insertBefore(el, document.getElementById('font-hack'));
 }
 </script><title>下载 - Apache ECharts</title><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
-<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div class="page-info"><h1>下载</h1></div><div id="download-main" class="page-content container"><div class="d-section-version d-section"><h3 class="first">方法一:从下载的源代码或编译产物安装</h3><table id="download-table" class="table"><tr><th>版本</th><th>发布日期</th><th>从镜像网站下载源码</th><th>从 GitHub 下载编译产物</th></tr></table><div class="checksum"><p><strong>注意:</strong>如果从镜像网站下载,请检查 <a href="https://www.apache.org/dev/release-signing#sha-checksum">SHA-512</a> 并且检验确认 <a href="https://www.apache.org/dev/release-signing#openpgp">OpenPGP</a> 与 <a href="https://www.apache.org">Apache 主站</a>的签名一致。链接在上面的 Source 旁。这个 <a href="https://www.apache.org/dist/echarts/KEYS">KEYS</a> 文件包含了用于签名发布版的公钥。如果可能的话,建议使用<a href="https://www.apache.org/dev/release-signing#web-of-trust">可信任的网络(web of trust)</a>确认 KEYS 的同一性。</p><h4>使用 GPG 验证 ECharts 发布版本</h4><ol><li>从镜像网站下载 apache-echarts-X.Y.Z-src.zip</li><li>从 <a href="https://www.apache.org/dist/echarts/">Apache</a> 下载 checksum apache-echarts-X.Y.Z-src.zip.asc</li><li>下载 <a href="https://www.apache.org/dist/echarts/KEYS">ECharts KEYS</a></li><li>gpg –import KEYS</li><li>gpg –verify apache-echarts-X.Y.Z-src.zip.asc</li></ol><h4>使用 SHA-512 验证</h4><ol><li>从镜像网站下载 apache-echarts-X.Y.Z-src.zip</li><li>从 <a href="https://www.apache.org/dist/echarts/">Apache</a> 下载 checksum apache-echarts-X.Y.Z-src.zip.sha512</li><li>shasum -a 512 apache-echarts-X.Y.Z-src.zip</li></ol><h4>License</h4><p>Apache ECharts 基于 <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> 发布</p></div><h3>方法二:从 npm 安装</h3><p><code>npm install echarts</code></p><h3>方法三:选择需要的模块,在线定制下载</h3><a href="builder3.html" class="btn btn-main btn-thirdary more-btn">在线定制</a><p class="center">可自由选择所需图表和组件进行打包下载</p><h3>下载后……</h3><p><a href="./tutorial.html">5 分钟上手 ECharts</a></p></div></div><footer><div class="container"><div class="row"><div class="col-md-9"><p>Copyright © 2017-2021, The Apache Software Foundation Apache ECharts, ECharts, Apache, the Apache feather, and the Apache ECharts project logo are either registered trademarks or trademarks of the Apache Software Foundation.</p><div class="icon-panel"><a href="mailto:dev@echarts.apache.org?body=%28Thanks%20for%20using%20ECharts.%20Email%20us%20if%20you%20have%20non-technical%20problems%20using%20ECharts.%20For%20technical%20support%2C%20please%20go%20to%20https%3A//github.com/apache/echarts/issues%20.%29" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-email.png?_v_=20200710_1"></a><a href="https://twitter.com/ApacheECharts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-twitter.png?_v_=20200710_1"></a><a href="https://weibo.com/echarts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-weibo.png?_v_=20200710_1"></a><a href="https://github.com/apache/echarts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-github.png?_v_=20200710_1"></a></div></div><div id="footer-icon-panel" class="col-md-3"><a href="https://www.apache.org"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/asf_logo.svg?_v_=20200710_1" class="footer-apache-logo"></a></div></div></div></footer></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/download.js?_v_=9748b37d3f"></script><script type="text/javascript">document.getElementById('nav-download').className = 'active';
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="page-main"><div class="page-info"><h1>下载</h1></div><div id="download-main" class="page-content container"><div class="d-section-version d-section"><h3 class="first">方法一:从下载的源代码或编译产物安装</h3><table id="download-table" class="table"><tr><th>版本</th><th>发布日期</th><th>从镜像网站下载源码</th><th>从 GitHub 下载编译产物</th></tr></table><div class="checksum"><p><strong>注意:</strong>如果从镜像网站下载,请检查 <a href="https://www.apache.org/dev/release-signing#sha-checksum">SHA-512</a> 并且检验确认 <a href="https://www.apache.org/dev/release-signing#openpgp">OpenPGP</a> 与 <a href="https://www.apache.org">Apache 主站</a>的签名一致。链接在上面的 Source 旁。这个 <a href="https://www.apache.org/dist/echarts/KEYS">KEYS</a> 文件包含了用于签名发布版的公钥。如果可能的话,建议使用<a href="https://www.apache.org/dev/release-signing#web-of-trust">可信任的网络(web of trust)</a>确认 KEYS 的同一性。</p><h4>使用 GPG 验证 ECharts 发布版本</h4><ol><li>从镜像网站下载 apache-echarts-X.Y.Z-src.zip</li><li>从 <a href="https://www.apache.org/dist/echarts/">Apache</a> 下载 checksum apache-echarts-X.Y.Z-src.zip.asc</li><li>下载 <a href="https://www.apache.org/dist/echarts/KEYS">ECharts KEYS</a></li><li>gpg –import KEYS</li><li>gpg –verify apache-echarts-X.Y.Z-src.zip.asc</li></ol><h4>使用 SHA-512 验证</h4><ol><li>从镜像网站下载 apache-echarts-X.Y.Z-src.zip</li><li>从 <a href="https://www.apache.org/dist/echarts/">Apache</a> 下载 checksum apache-echarts-X.Y.Z-src.zip.sha512</li><li>shasum -a 512 apache-echarts-X.Y.Z-src.zip</li></ol><h4>License</h4><p>Apache ECharts 基于 <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> 发布</p></div><h3>方法二:从 npm 安装</h3><p><code>npm install echarts</code></p><h3>方法三:选择需要的模块,在线定制下载</h3><a href="builder3.html" class="btn btn-main btn-thirdary more-btn">在线定制</a><p class="center">可自由选择所需图表和组件进行打包下载</p><h3>下载后……</h3><p><a href="./tutorial.html">5 分钟上手 ECharts</a></p></div></div><footer><div class="container"><div class="row"><div class="col-md-9"><p>Copyright © 2017-2021, The Apache Software Foundation Apache ECharts, ECharts, Apache, the Apache feather, and the Apache ECharts project logo are either registered trademarks or trademarks of the Apache Software Foundation.</p><div class="icon-panel"><a href="mailto:dev@echarts.apache.org?body=%28Thanks%20for%20using%20ECharts.%20Email%20us%20if%20you%20have%20non-technical%20problems%20using%20ECharts.%20For%20technical%20support%2C%20please%20go%20to%20https%3A//github.com/apache/echarts/issues%20.%29" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-email.png?_v_=20200710_1"></a><a href="https://twitter.com/ApacheECharts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-twitter.png?_v_=20200710_1"></a><a href="https://weibo.com/echarts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-weibo.png?_v_=20200710_1"></a><a href="https://github.com/apache/echarts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-github.png?_v_=20200710_1"></a></div></div><div id="footer-icon-panel" class="col-md-3"><a href="https://www.apache.org"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/asf_logo.svg?_v_=20200710_1" class="footer-apache-logo"></a></div></div></div></footer></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/download.js?_v_=49b697952f"></script><script type="text/javascript">document.getElementById('nav-download').className = 'active';
 
 //- $('.download-echarts').click(function (e) {
 //-     var el = document.createElement('div');
diff --git a/zh/events.html b/zh/events.html
index 639541d..d750945 100644
--- a/zh/events.html
+++ b/zh/events.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/events/2021-05-13-iscas.html b/zh/events/2021-05-13-iscas.html
index 2af1d01..ecf6a98 100644
--- a/zh/events/2021-05-13-iscas.html
+++ b/zh/events/2021-05-13-iscas.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/faq.html b/zh/faq.html
index ffb892e..53979fb 100644
--- a/zh/faq.html
+++ b/zh/faq.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/feature.html b/zh/feature.html
index d7369f8..631a508 100644
--- a/zh/feature.html
+++ b/zh/feature.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/index.html b/zh/index.html
index b030577..f53d507 100644
--- a/zh/index.html
+++ b/zh/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -7,7 +7,7 @@
     document.head.insertBefore(el, document.getElementById('font-hack'));
 }
 </script><title>Apache ECharts</title><script src="https://cdn.jsdelivr.net/npm/scrollreveal@4.0.7/dist/scrollreveal.min.js"></script><script src="https://cdn.jsdelivr.net/npm/lottie-web@5.7.6/build/player/lottie.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
-<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div id="page-index" class="page-main"><div id="main-content"><section id="home-section"><div class="home-brand-panel description container"><div class="home-info"><div class="home-brand">Apache ECharts</div><div class="home-subtitle">一个基于 JavaScript 的开源可视化图表库</div><div class="home-btn-panel"><a href="https://echarts.apache.org/tutorial.html#5%20分钟上手%20ECharts" class="btn btn-main btn-index-home"><svg width="22px" height="19px" viewBox="0 0 17 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="index-home-svg"><path fill="#fff" d="M10.9,16.2 C10.9,16.8 10.5,17.2 9.9,17.2 L5.3,17.2 C4.7,17.2 4.3,16.8 4.3,16.2 C4.3,15.6 4.7,15.2 5.3,15.2 L9.9,15.2 C10.5,15.2 10.9,15.7 10.9,16.2 Z M13.6,7.5 L5.3,7.5 C4.7,7.5 4.3,7.9 4.3,8.5 C4.3,9.1 4.7,9.5 5.3,9.5 L13.6,9.5 C14.2,9.5 14.6,9.1 14.6,8.5 C14.6,7.9 14.2,7.5 13.6,7.5 Z M17.9,6 L17.9,19 C17.9,20.7 16.6,22 14.9,22 L3.9,22 C2.2,22 0.9,20.7 0.9,19 L0.9,7.5 L0.9,6 L0.9,5 L0.9,4 L0.9,2 C0.9,0.9 1.8,0 2.9,0 L12.9,0 C14,0 14.9,0.9 14.9,2 L14.9,3 C16.6,3 17.9,4.3 17.9,6 Z M2.9,3 L3.9,3 L12.9,3 L12.9,2 L2.9,2 L2.9,3 Z M15.9,6 C15.9,5.4 15.5,5 14.9,5 L3.9,5 C3.3,5 2.9,5.4 2.9,6 L2.9,19 C2.9,19.6 3.3,20 3.9,20 L14.9,20 C15.5,20 15.9,19.6 15.9,19 L15.9,6 Z M13.6,11.5 L5.3,11.5 C4.7,11.5 4.3,11.9 4.3,12.5 C4.3,13.1 4.7,13.5 5.3,13.5 L13.6,13.5 C14.2,13.5 14.6,13.1 14.6,12.5 C14.6,11.9 14.2,11.5 13.6,11.5 Z"></path></svg><span>快速入门</span></a><a href="https://echarts.apache.org/examples/zh/index.html" class="btn btn-main btn-index-home"><svg width="25px" height="19px" viewBox="0 0 17 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="index-home-svg"><path fill="#F72C5B" d="M21,0 L6,0 C4.9,0 4,0.9 4,2 L4,4 L2,4 C0.9,4 0,4.9 0,6 L0,18 C0,19.1 0.9,20 2,20 L17,20 C18.1,20 19,19.1 19,18 L19,16 L21,16 C22.1,16 23,15.1 23,14 L23,2 C23,0.9 22.1,0 21,0 Z M17,18 L2,18 L2,6 L17,6 L17,18 Z M21,14 L19,14 L19,6 C19,4.9 18.1,4 17,4 L6,4 L6,2 L21,2 L21,14 Z M4,15 L4,12 C4,11.4 4.4,11 5,11 C5.6,11 6,11.4 6,12 L6,15 C6,15.6 5.6,16 5,16 C4.4,16 4,15.6 4,15 Z M13,15 L13,12 C13,11.4 13.4,11 14,11 C14.6,11 15,11.4 15,12 L15,15 C15,15.6 14.6,16 14,16 C13.4,16 13,15.6 13,15 Z M7,15 L7,9 C7,8.4 7.4,8 8,8 C8.6,8 9,8.4 9,9 L9,15 C9,15.6 8.6,16 8,16 C7.4,16 7,15.6 7,15 Z M10,15 L10,11 C10,10.4 10.4,10 11,10 C11.6,10 12,10.4 12,11 L12,15 C12,15.6 11.6,16 11,16 C10.4,16 10,15.6 10,15 Z"></path></svg><span>所有示例</span></a><a href="https://github.com/apache/echarts" target="_blank" class="btn btn-main btn-index-home btn-index-github"><svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-262.000000, -2480.000000)" fill="#081642"><g transform="translate(252.000000, 2470.000000)"><path d="M29.9006449,27.904446 C28.5016932,29.8668872 26.6944882,31.2248797 24.4790301,31.9784237 C24.2211218,32.0272886 24.0325745,31.9931534 23.9133882,31.876018 C23.7942019,31.7588827 23.7346171,31.6119968 23.7346338,31.4353603 L23.7346338,28.3376019 C23.7346338,27.3880159 23.4865017,26.6930482 22.9902375,26.2526987 C23.5347812,26.1938141 24.024319,26.1058042 24.458851,25.9886688 C24.893383,25.8715335 25.3422785,25.680801 25.8055376,25.4164714 C26.2687966,25.1521418 26.6556591,24.8267354 26.9661251,24.4402521 C27.276591,24.0537688 27.5296112,23.5398222 27.7251857,22.8984123 C27.9207602,22.2570024 28.0185475,21.5203805 28.0185475,20.6885464 C28.0185475,19.504056 27.6414612,18.4959023 26.8872886,17.6640854 C27.240536,16.7733669 27.2023419,15.7752328 26.7727063,14.6696833 C26.5050218,14.5813565 26.1181593,14.6352226 25.6121189,14.8312818 C25.1060784,15.0273409 24.6669591,15.2428141 24.2947609,15.4777015 L23.7502256,15.8300324 C22.8622108,15.5757225 21.9454689,15.4485675 21,15.4485675 C20.0545311,15.4485675 19.1377892,15.5757225 18.2497744,15.8300324 C18.0969813,15.7223001 17.8940788,15.5901353 17.641067,15.433538 C17.3880551,15.2769408 16.9892689,15.0884007 16.4447085,14.8679176 C15.9001481,14.6474346 15.4894467,14.5813479 15.2126043,14.6696576 C14.7921266,15.7758408 14.7588206,16.7739749 15.1126863,17.6640597 C14.3585137,18.4958938 13.9814275,19.5040475 13.9814275,20.6885208 C13.9814275,21.5203548 14.0792147,22.2544676 14.2747892,22.8908591 C14.4703637,23.5272505 14.720944,24.0411971 15.0265302,24.4326988 C15.3321164,24.8242005 15.7165391,25.1521076 16.1797981,25.41642 C16.6430571,25.6807325 17.0919527,25.871465 17.5264847,25.9886174 C17.9610167,26.1057699 18.4505545,26.1937799 18.9950982,26.2526473 C18.6131238,26.60467 18.3790461,27.1085884 18.292865,27.7644025 C18.0924107,27.8621152 17.8775846,27.935404 17.6483866,27.984269 C17.4191886,28.0331339 17.1469167,28.0575663 16.831571,28.0575663 C16.5162253,28.0575663 16.203612,27.9523346 15.8937309,27.7418712 C15.5838499,27.5314078 15.3189144,27.225424 15.0989244,26.8239198 C14.9174043,26.5107253 14.6857747,26.2564154 14.4040358,26.0609899 C14.1222969,25.8655645 13.8860801,25.7481209 13.6953854,25.708659 L13.4084408,25.6644956 C13.2079866,25.6644956 13.069557,25.6864188 12.9931521,25.7302654 C12.9167472,25.7741119 12.8929083,25.8304873 12.9216353,25.8993914 C12.9503623,25.9682956 12.9934529,26.0368829 13.050907,26.1051533 C13.1083611,26.1734238 13.1703941,26.2319915 13.2370061,26.2808564 L13.336924,26.3541538 C13.5471712,26.4518665 13.7549701,26.6378974 13.9603209,26.9122466 C14.1656716,27.1865958 14.3160164,27.4362043 14.4113555,27.661072 L14.554364,27.9983735 C14.67843,28.3704354 14.8886689,28.6714094 15.1850804,28.9012955 C15.481492,29.1311815 15.8014334,29.2780674 16.1449045,29.3419532 C16.4883756,29.405839 16.8202406,29.4399742 17.1404995,29.4443589 C17.4607584,29.4487435 17.7256939,29.4315218 17.935306,29.3926936 L18.2644137,29.3335008 C18.2644137,29.7055627 18.2668619,30.1412107 18.2717584,30.6404447 C18.2766548,31.1396787 18.279103,31.4040083 18.279103,31.4334334 C18.279103,31.6094533 18.21707,31.7563392 18.093004,31.8740912 C17.9689379,31.9918431 17.7779507,32.0259784 17.5200424,31.9764969 C15.3045843,31.22297 13.4973793,29.8649774 12.0984276,27.9025191 C10.6994759,25.9400608 10,23.7305118 10,21.2738721 C10,19.2281225 10.4916769,17.3417791 11.4750308,15.6148418 C12.4583846,13.8879045 13.7928551,12.5202092 15.4784422,11.5117558 C17.1640293,10.5033024 19.0045486,9.99938397 21,10.0000006 C22.9954514,10.0006172 24.8359707,10.5045356 26.5215578,11.5117558 C28.2071449,12.518976 29.5416154,13.8866713 30.5249692,15.6148418 C31.5083231,17.3430123 32,19.2293557 32,21.2738721 C31.9990725,23.7324558 31.2995966,25.9420048 29.9006449,27.904446 Z"></path></g></g></g></svg></a></div></div><div class="home-chart"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/index-home-pie.png?_v_=20200710_1"></div></div></section><section id="events-section"><div class="container"><a href="./events/2021-05-13-iscas.html" class="event"><picture><source data-srcset="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/event/20210513-iscas.webp?_v_=20200710_1" type="image/webp" class="lazy"><source data-srcset="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/event/20210513-iscas.jpeg?_v_=20200710_1" type="image/jpeg" class="lazy"><img data-src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/event/20210513-iscas.jpeg?_v_=20200710_1" alt="开源软件供应链点亮计划 - 暑期 2021" class="lazy"></picture></a></div></section><section id="feature-section"><div class="container"><div class="index-features"><h2 class="reveal">特性</h2><hr class="reveal"><a href="https://echarts.apache.org/feature.html" class="more reveal">查看完整特性</a></div><div class="row"><div class="col-md-6"><div id="index-feature-1" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-1" class="index-feature-icon-bg"></div><div id="icon-1" class="index-feature-icon"></div></div><div class="index-feature-right reveal"><h3 class="reveal">丰富的图表类型</h3><p class="reveal-later">提供开箱即用的 20 多种图表和十几种组件,并且支持各种图表以及组件的任意组合。</p></div></div></div><div class="col-md-6"><div id="index-feature-2" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-2" class="index-feature-icon-bg"></div><div id="icon-2" class="index-feature-icon"></div></div><div class="index-feature-right"><h3 class="reveal">强劲的渲染引擎</h3><p class="reveal-later">Canvas、SVG 双引擎一键切换,增量渲染、流加载等技术实现千万级数据的流畅交互。</p></div></div></div><div class="col-md-6"><div id="index-feature-3" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-3" class="index-feature-icon-bg"></div><div id="icon-3" class="index-feature-icon"></div></div><div class="index-feature-right"><h3 class="reveal">专业的数据分析</h3><p class="reveal-later">通过数据集管理数据,支持数据过滤、聚类、回归,帮助实现同一份数据的多维度分析。</p></div></div></div><div class="col-md-6"><div id="index-feature-4" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-4" class="index-feature-icon-bg"></div><div id="icon-4" class="index-feature-icon"></div></div><div class="index-feature-right"><h3 class="reveal">优雅的可视化设计</h3><p class="reveal-later">默认设计遵从可视化原则,支持响应式设计,并且提供了灵活的配置项方便开发者定制。</p></div></div></div><div class="col-md-6"><div id="index-feature-5" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-5" class="index-feature-icon-bg"></div><div id="icon-5" class="index-feature-icon"></div></div><div class="index-feature-right"><h3 class="reveal">健康的开源社区</h3><p class="reveal-later">活跃的社区用户保证了项目的健康发展,也贡献了丰富的第三方插件满足不同场景的需求。</p></div></div></div><div class="col-md-6"><div id="index-feature-6" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-6" class="index-feature-icon-bg"></div><div id="icon-6" class="index-feature-icon"></div></div><div class="index-feature-right"><h3 class="reveal">友好的无障碍访问</h3><p class="reveal-later">智能生成的图表描述和贴花图案,帮助视力障碍人士了解图表内容,读懂图表背后的故事。</p></div></div></div></div></div></section><section id="publication"><div class="container"><div id="start-line"></div><div class="paper"><div class="content"><h2 class="reveal-latest">ECharts: A Declarative Framework for Rapid Construction of Web-based Visualization</h2><p class="note reveal-latest">如果您在科研项目、产品、学术论文、技术报告、新闻报告、教育、专利以及其他相关活动中使用了 Apache ECharts,欢迎引用本论文。</p><div class="single-btn-panel reveal-latest"><a href="http://www.cad.zju.edu.cn/home/vagblog/VAG_Work/echarts.pdf" class="pdf reveal-later">Visual Informatics, 2018 [PDF]</a></div></div><div class="icon"><div id="paper-icon"></div></div></div><div id="end-line"></div></div></section><section id="about-section" class="normal reveal-about"><div class="container"><h3>关注我们</h3><hr><p>关注我们以及时获得更多最新动态</p><div class="btn-panel row"><div class="col-lg-3 col-sm-6"><a id="btn-github" href="https://github.com/apache/echarts"><div class="btn-content"><div class="btn-logo"><svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-262.000000, -2480.000000)" fill="#081642"><g transform="translate(252.000000, 2470.000000)"><path d="M29.9006449,27.904446 C28.5016932,29.8668872 26.6944882,31.2248797 24.4790301,31.9784237 C24.2211218,32.0272886 24.0325745,31.9931534 23.9133882,31.876018 C23.7942019,31.7588827 23.7346171,31.6119968 23.7346338,31.4353603 L23.7346338,28.3376019 C23.7346338,27.3880159 23.4865017,26.6930482 22.9902375,26.2526987 C23.5347812,26.1938141 24.024319,26.1058042 24.458851,25.9886688 C24.893383,25.8715335 25.3422785,25.680801 25.8055376,25.4164714 C26.2687966,25.1521418 26.6556591,24.8267354 26.9661251,24.4402521 C27.276591,24.0537688 27.5296112,23.5398222 27.7251857,22.8984123 C27.9207602,22.2570024 28.0185475,21.5203805 28.0185475,20.6885464 C28.0185475,19.504056 27.6414612,18.4959023 26.8872886,17.6640854 C27.240536,16.7733669 27.2023419,15.7752328 26.7727063,14.6696833 C26.5050218,14.5813565 26.1181593,14.6352226 25.6121189,14.8312818 C25.1060784,15.0273409 24.6669591,15.2428141 24.2947609,15.4777015 L23.7502256,15.8300324 C22.8622108,15.5757225 21.9454689,15.4485675 21,15.4485675 C20.0545311,15.4485675 19.1377892,15.5757225 18.2497744,15.8300324 C18.0969813,15.7223001 17.8940788,15.5901353 17.641067,15.433538 C17.3880551,15.2769408 16.9892689,15.0884007 16.4447085,14.8679176 C15.9001481,14.6474346 15.4894467,14.5813479 15.2126043,14.6696576 C14.7921266,15.7758408 14.7588206,16.7739749 15.1126863,17.6640597 C14.3585137,18.4958938 13.9814275,19.5040475 13.9814275,20.6885208 C13.9814275,21.5203548 14.0792147,22.2544676 14.2747892,22.8908591 C14.4703637,23.5272505 14.720944,24.0411971 15.0265302,24.4326988 C15.3321164,24.8242005 15.7165391,25.1521076 16.1797981,25.41642 C16.6430571,25.6807325 17.0919527,25.871465 17.5264847,25.9886174 C17.9610167,26.1057699 18.4505545,26.1937799 18.9950982,26.2526473 C18.6131238,26.60467 18.3790461,27.1085884 18.292865,27.7644025 C18.0924107,27.8621152 17.8775846,27.935404 17.6483866,27.984269 C17.4191886,28.0331339 17.1469167,28.0575663 16.831571,28.0575663 C16.5162253,28.0575663 16.203612,27.9523346 15.8937309,27.7418712 C15.5838499,27.5314078 15.3189144,27.225424 15.0989244,26.8239198 C14.9174043,26.5107253 14.6857747,26.2564154 14.4040358,26.0609899 C14.1222969,25.8655645 13.8860801,25.7481209 13.6953854,25.708659 L13.4084408,25.6644956 C13.2079866,25.6644956 13.069557,25.6864188 12.9931521,25.7302654 C12.9167472,25.7741119 12.8929083,25.8304873 12.9216353,25.8993914 C12.9503623,25.9682956 12.9934529,26.0368829 13.050907,26.1051533 C13.1083611,26.1734238 13.1703941,26.2319915 13.2370061,26.2808564 L13.336924,26.3541538 C13.5471712,26.4518665 13.7549701,26.6378974 13.9603209,26.9122466 C14.1656716,27.1865958 14.3160164,27.4362043 14.4113555,27.661072 L14.554364,27.9983735 C14.67843,28.3704354 14.8886689,28.6714094 15.1850804,28.9012955 C15.481492,29.1311815 15.8014334,29.2780674 16.1449045,29.3419532 C16.4883756,29.405839 16.8202406,29.4399742 17.1404995,29.4443589 C17.4607584,29.4487435 17.7256939,29.4315218 17.935306,29.3926936 L18.2644137,29.3335008 C18.2644137,29.7055627 18.2668619,30.1412107 18.2717584,30.6404447 C18.2766548,31.1396787 18.279103,31.4040083 18.279103,31.4334334 C18.279103,31.6094533 18.21707,31.7563392 18.093004,31.8740912 C17.9689379,31.9918431 17.7779507,32.0259784 17.5200424,31.9764969 C15.3045843,31.22297 13.4973793,29.8649774 12.0984276,27.9025191 C10.6994759,25.9400608 10,23.7305118 10,21.2738721 C10,19.2281225 10.4916769,17.3417791 11.4750308,15.6148418 C12.4583846,13.8879045 13.7928551,12.5202092 15.4784422,11.5117558 C17.1640293,10.5033024 19.0045486,9.99938397 21,10.0000006 C22.9954514,10.0006172 24.8359707,10.5045356 26.5215578,11.5117558 C28.2071449,12.518976 29.5416154,13.8866713 30.5249692,15.6148418 C31.5083231,17.3430123 32,19.2293557 32,21.2738721 C31.9990725,23.7324558 31.2995966,25.9420048 29.9006449,27.904446 Z"></path></g></g></g></svg><span>GitHub</span></div><div class="icon-v-right"></div></div></a></div><div class="col-lg-3 col-sm-6"><a id="btn-weixin"><div class="btn-content zh"><div class="btn-logo"><svg width="25px" height="21px" viewBox="0 0 25 21" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-512.000000, -2480.000000)" fill="rgba(93, 201, 116)"><g transform="translate(512.000000, 2480.000000)"><path d="M17.6290595,6.47976119 C17.7534123,6.47976119 17.8770026,6.48260946 18,6.4873469 C17.2166965,2.79549199 13.5198007,0 9.07678865,0 C4.06379837,0 0,3.55853831 0,7.94816178 C0,10.5128275 1.38756065,12.7933344 3.54074891,14.2466508 L2.63388325,17 L5.63681512,15.3050455 C6.69779456,15.6858421 7.85912588,15.8963236 9.07676039,15.8963236 C9.31148885,15.8963236 9.54412784,15.8885344 9.77433851,15.8731886 C9.52032463,15.1807388 9.38270085,14.4428328 9.38270085,13.676822 C9.38275733,9.70202902 13.0747399,6.47976119 17.6290595,6.47976119 Z M12.5,4 C13.328411,4 14,4.67155738 14,5.5 C14,6.32841103 13.3284426,7 12.5,7 C11.6715574,7 11,6.32844262 11,5.5 C11.0000316,4.67155738 11.671589,4 12.5,4 Z M5.5,7 C4.67158897,7 4,6.32844262 4,5.5 C4,4.67158897 4.67155738,4 5.5,4 C6.32844262,4 7,4.67155738 7,5.5 C7,6.32841103 6.32844262,7 5.5,7 Z"></path><path d="M25,13.4664775 C25,9.89513318 21.6421433,7 17.4999862,7 C13.3578291,7 10,9.89513318 10,13.4664775 C10,17.0378217 13.3578567,19.9329549 17.5000138,19.9329549 C18.36973,19.9329549 19.2046277,19.804878 19.9813841,19.5701641 L22.5457108,21 L21.8004292,18.7646117 C23.7349834,17.5951163 25,15.6582837 25,13.4664775 Z M15,12 C14.447707,12 14,11.552293 14,11 C14,10.447707 14.447707,10 15,10 C15.552293,10 16,10.447707 16,11 C16,11.552293 15.552293,12 15,12 Z M20,12 C19.447707,12 19,11.552293 19,11 C19,10.447707 19.447707,10 20,10 C20.552293,10 21,10.447707 21,11 C21,11.552293 20.5522667,12 20,12 Z"></path></g></g></g></svg><span>公众号</span></div><div class="weixin-code"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/ercode.jpg?_v_=20200710_1"></div></div></a></div><div class="col-lg-3 col-sm-6"><a id="btn-weibo" href="https://weibo.com/echarts"><div class="btn-content"><div class="btn-logo"><svg width="25px" height="20px" viewBox="0 0 25 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-774.000000, -2480.000000)" fill="rgba(174, 44, 53)"><g transform="translate(767.000000, 2470.000000)"><g transform="translate(7.000000, 10.000000)"><path d="M9.56107255,18.530208 C5.55942203,18.7083394 2.28534432,16.6598289 2.28534432,13.9878588 C2.28534432,11.3158886 5.55942203,9.08924686 9.56107255,8.91111551 C13.5627231,8.73298415 16.8368008,10.4252319 16.8368008,13.0972021 C16.8368008,15.7691722 13.5627231,18.3520767 9.56107255,18.530208 Z M18.1100532,9.71270657 C17.1096406,9.53457522 17.6553202,9.0001812 17.6553202,9.0001812 C17.6553202,9.0001812 18.5647862,7.48606478 17.473427,6.32821106 C16.1092279,4.90316031 12.7442036,6.50634241 12.7442036,6.50634241 C11.4709512,6.95167077 11.8347376,6.32821106 12.0166308,5.34848869 C12.0166308,4.19063497 11.6528444,2.14212451 8.19687348,3.3890439 C4.74090259,4.54689763 1.83061129,8.7329842 1.83061129,8.7329842 C-0.26116057,11.49402 0.0116792299,13.6315961 0.0116792299,13.6315961 C0.557358851,18.3520767 5.4684754,19.5989961 9.37917931,19.9552588 C13.4717764,20.3115215 18.9285726,18.5302081 20.5656115,14.9675812 C22.1117037,11.3158886 19.1104658,9.89083792 18.1100532,9.71270657 Z"></path><path d="M12.8641827,12.2517204 C12.2123929,10.4024172 10.0707976,9.57023078 7.92920237,10.2174869 C5.78760713,10.9572081 4.57714023,12.9914416 5.13581726,14.7482796 C5.78760713,16.5975828 7.92920237,17.4297692 10.0707976,16.7825131 C12.2123929,16.135257 13.4228598,14.1010235 12.8641827,12.2517204 Z M8.11542806,15.4880009 C7.37052537,15.6729312 6.53250982,15.3955358 6.34628415,14.7482797 C6.16005847,14.1010235 6.62562266,13.4537674 7.46363821,13.176372 C8.2085409,12.9914416 9.04655645,13.2688371 9.23278212,13.9160932 C9.32589493,14.5633493 8.86033075,15.3030706 8.11542806,15.4880009 Z M10.3501361,13.176372 C10.2570233,13.4537674 9.88457196,13.6386977 9.60523346,13.5462326 C9.32589496,13.4537674 9.23278212,13.0839068 9.32589496,12.8065113 C9.4190078,12.5291159 9.79145914,12.3441855 10.0707976,12.4366507 C10.3501361,12.621581 10.5363618,12.8989765 10.3501361,13.176372 Z"></path><path d="M24.5953609,9.4285714 C24.5953609,9.3333333 24.6913146,9.2380952 24.6913146,9.14285713 C25.2670362,7.5238095 24.9791754,5.9047619 24.3075001,4.38095238 C23.0601032,1.7142857 20.3734021,0 17.4947939,0 C16.9190722,0 16.3433505,0.0952380996 15.8635825,0.190476199 L15.8635825,0.190476199 L15.8635825,0.190476199 C15.8635825,0.190476199 15.7676289,0.190476199 15.6716753,0.285714299 L15.6716753,0.285714299 C15.2878608,0.476190498 15,0.857142874 15,1.33333335 C15,2.00000002 15.479768,2.4761905 16.1514433,2.4761905 C16.2473969,2.4761905 16.3433505,2.4761905 16.5352577,2.3809524 L16.5352577,2.3809524 C16.8231186,2.1904762 17.3988402,2.09523812 17.4947938,2.09523812 L17.5907475,2.09523812 C19.6057732,2.09523812 21.5248454,3.23809527 22.3884279,5.23809525 C22.8681959,6.2857143 22.9641496,7.42857143 22.6762887,8.57142857 C22.6762887,8.66666667 22.5803351,8.85714285 22.5803351,8.95238095 C22.5803351,9.52380952 23.0601031,10 23.6358248,10 L23.827732,10 L23.827732,10 L23.9236856,10 C24.2115465,9.9047619 24.4034537,9.8095238 24.5953609,9.61904762 C24.4994073,9.5238095 24.4994073,9.5238095 24.5953609,9.4285714 C24.5953609,9.5238095 24.5953609,9.4285714 24.5953609,9.4285714 Z"></path><path d="M17.6310803,4 C17.3252528,4 16.9174827,4.08510639 16.6116551,4.08510639 C16.3058276,4.17021275 16,4.42553192 16,4.76595745 C16,5.10638297 16.3058275,5.36170214 16.7135976,5.36170214 C16.8155402,5.36170214 16.9174827,5.36170214 17.0194252,5.27659575 C17.2233102,5.27659575 17.3252527,5.19148936 17.5291378,5.19148936 C18.548563,5.19148936 19.4660456,5.87234042 19.4660456,6.72340425 C19.4660456,6.89361703 19.4660456,6.97872339 19.3641031,7.14893617 L19.3641031,7.40425531 L19.3641031,7.40425531 L19.3641031,7.40425531 L19.3641031,7.40425531 L19.3641031,7.40425531 L19.3641031,7.4893617 L19.3641031,7.4893617 C19.4660456,7.82978723 19.7718732,8 20.0777008,8 C20.3835283,8 20.5874133,7.82978723 20.7912984,7.65957447 L20.7912984,7.65957447 C20.8932409,7.40425533 20.9951834,7.06382978 20.9951834,6.72340425 C21.0971259,5.27659575 19.5679882,4 17.6310803,4 Z"></path></g></g></g></g></svg><span>微博</span></div><div class="icon-v-right"></div></div></a></div><div class="col-lg-3 col-sm-6"><a id="btn-twitter" href="https://twitter.com/ApacheECharts"><div class="btn-content"><div class="btn-logo"><svg width="22px" height="19px" viewBox="0 0 22 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-1029.000000, -2481.000000)" fill="rgba(0, 172, 237)" fill-rule="nonzero"><g transform="translate(1019.000000, 2470.000000)"><path d="M31.9965682,13.2536272 C31.3736136,14.2239084 30.6196136,15.0506018 29.7346591,15.7332964 C29.7441818,15.8714453 29.7489318,16.0792366 29.7489318,16.3566705 C29.7489318,17.6436908 29.5720682,18.9275445 29.2183409,20.2082316 C28.8645909,21.4890636 28.3274091,22.7184796 27.6069091,23.8965522 C26.8862955,25.0746247 26.0280455,26.1166031 25.0323864,27.0222697 C24.0366364,27.9281298 22.8360682,28.6508066 21.4306364,29.1904211 C20.0251818,29.7300356 18.5226591,30 16.9230227,30 C14.4015909,30 12.0938636,29.2822545 10,27.8470776 C10.3251136,27.8862863 10.6878182,27.9059148 11.0880909,27.9059148 C13.1819545,27.9059148 15.0477727,27.2230992 16.6854545,25.8575407 C15.7087727,25.8372354 14.8339318,25.5180789 14.0609545,24.8998053 C13.288,24.281701 12.7573636,23.4924033 12.4690909,22.532299 C12.7763409,22.581612 13.0604091,22.606341 13.32125,22.606341 C13.7215227,22.606341 14.1168864,22.5518066 14.5076136,22.4428346 C13.4654545,22.214883 12.6024318,21.6632061 11.9187955,20.7878041 C11.2351591,19.9125471 10.8933409,18.8958295 10.8933409,17.7380623 L10.8933409,17.6790802 C11.5258182,18.0553092 12.2052955,18.2580242 12.9318409,18.287201 C12.3172955,17.851458 11.8288409,17.2826425 11.4667727,16.5808028 C11.1046818,15.8790598 10.923,15.1170776 10.9219318,14.2949288 C10.9219318,13.4233702 11.1267045,12.6170789 11.5365227,11.8760064 C12.6620909,13.3505127 14.0323182,14.5304949 15.6474545,15.4160496 C17.2624545,16.3015076 18.9907727,16.7936705 20.8321364,16.8924898 C20.7582955,16.5162366 20.7213636,16.1501361 20.7213636,15.7941883 C20.7213636,14.4678626 21.1608409,13.3372176 22.0398409,12.4023257 C22.9188409,11.4674338 23.9818864,11 25.2289318,11 C26.5319318,11 27.6300455,11.5048779 28.5233636,12.5144402 C29.5382045,12.306673 30.4922273,11.9209198 31.3854091,11.3572048 C31.0412273,12.4947875 30.3808409,13.3759186 29.4041364,14.0003804 C30.2700455,13.9015611 31.1353409,13.6539809 32,13.2574224 L31.9965682,13.2536272 Z"></path></g></g></g></svg><span>Twitter</span></div><div class="icon-v-right"></div></div></a></div></div></div></section></div><footer><div class="container"><div class="row"><div class="col-md-9"><p>Copyright © 2017-2021, The Apache Software Foundation Apache ECharts, ECharts, Apache, the Apache feather, and the Apache ECharts project logo are either registered trademarks or trademarks of the Apache Software Foundation.</p><div class="icon-panel"><a href="mailto:dev@echarts.apache.org?body=%28Thanks%20for%20using%20ECharts.%20Email%20us%20if%20you%20have%20non-technical%20problems%20using%20ECharts.%20For%20technical%20support%2C%20please%20go%20to%20https%3A//github.com/apache/echarts/issues%20.%29" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-email.png?_v_=20200710_1"></a><a href="https://twitter.com/ApacheECharts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-twitter.png?_v_=20200710_1"></a><a href="https://weibo.com/echarts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-weibo.png?_v_=20200710_1"></a><a href="https://github.com/apache/echarts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-github.png?_v_=20200710_1"></a></div></div><div id="footer-icon-panel" class="col-md-3"><a href="https://www.apache.org"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/asf_logo.svg?_v_=20200710_1" class="footer-apache-logo"></a></div></div></div></footer></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload@12.0.0/dist/lazyload.min.js"></script><script src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/index.js?_v_=1620894510041"></script><script>window.lazyLoadOptions = {
+<!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav role="navigation" class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div id="page-index" class="page-main"><div id="main-content"><section id="home-section"><div class="home-brand-panel description container"><div class="home-info"><div class="home-brand">Apache ECharts</div><div class="home-subtitle">一个基于 JavaScript 的开源可视化图表库</div><div class="home-btn-panel"><a href="https://echarts.apache.org/tutorial.html#5%20分钟上手%20ECharts" class="btn btn-main btn-index-home"><svg width="22px" height="19px" viewBox="0 0 17 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="index-home-svg"><path fill="#fff" d="M10.9,16.2 C10.9,16.8 10.5,17.2 9.9,17.2 L5.3,17.2 C4.7,17.2 4.3,16.8 4.3,16.2 C4.3,15.6 4.7,15.2 5.3,15.2 L9.9,15.2 C10.5,15.2 10.9,15.7 10.9,16.2 Z M13.6,7.5 L5.3,7.5 C4.7,7.5 4.3,7.9 4.3,8.5 C4.3,9.1 4.7,9.5 5.3,9.5 L13.6,9.5 C14.2,9.5 14.6,9.1 14.6,8.5 C14.6,7.9 14.2,7.5 13.6,7.5 Z M17.9,6 L17.9,19 C17.9,20.7 16.6,22 14.9,22 L3.9,22 C2.2,22 0.9,20.7 0.9,19 L0.9,7.5 L0.9,6 L0.9,5 L0.9,4 L0.9,2 C0.9,0.9 1.8,0 2.9,0 L12.9,0 C14,0 14.9,0.9 14.9,2 L14.9,3 C16.6,3 17.9,4.3 17.9,6 Z M2.9,3 L3.9,3 L12.9,3 L12.9,2 L2.9,2 L2.9,3 Z M15.9,6 C15.9,5.4 15.5,5 14.9,5 L3.9,5 C3.3,5 2.9,5.4 2.9,6 L2.9,19 C2.9,19.6 3.3,20 3.9,20 L14.9,20 C15.5,20 15.9,19.6 15.9,19 L15.9,6 Z M13.6,11.5 L5.3,11.5 C4.7,11.5 4.3,11.9 4.3,12.5 C4.3,13.1 4.7,13.5 5.3,13.5 L13.6,13.5 C14.2,13.5 14.6,13.1 14.6,12.5 C14.6,11.9 14.2,11.5 13.6,11.5 Z"></path></svg><span>快速入门</span></a><a href="https://echarts.apache.org/examples/zh/index.html" class="btn btn-main btn-index-home"><svg width="25px" height="19px" viewBox="0 0 17 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="index-home-svg"><path fill="#F72C5B" d="M21,0 L6,0 C4.9,0 4,0.9 4,2 L4,4 L2,4 C0.9,4 0,4.9 0,6 L0,18 C0,19.1 0.9,20 2,20 L17,20 C18.1,20 19,19.1 19,18 L19,16 L21,16 C22.1,16 23,15.1 23,14 L23,2 C23,0.9 22.1,0 21,0 Z M17,18 L2,18 L2,6 L17,6 L17,18 Z M21,14 L19,14 L19,6 C19,4.9 18.1,4 17,4 L6,4 L6,2 L21,2 L21,14 Z M4,15 L4,12 C4,11.4 4.4,11 5,11 C5.6,11 6,11.4 6,12 L6,15 C6,15.6 5.6,16 5,16 C4.4,16 4,15.6 4,15 Z M13,15 L13,12 C13,11.4 13.4,11 14,11 C14.6,11 15,11.4 15,12 L15,15 C15,15.6 14.6,16 14,16 C13.4,16 13,15.6 13,15 Z M7,15 L7,9 C7,8.4 7.4,8 8,8 C8.6,8 9,8.4 9,9 L9,15 C9,15.6 8.6,16 8,16 C7.4,16 7,15.6 7,15 Z M10,15 L10,11 C10,10.4 10.4,10 11,10 C11.6,10 12,10.4 12,11 L12,15 C12,15.6 11.6,16 11,16 C10.4,16 10,15.6 10,15 Z"></path></svg><span>所有示例</span></a><a href="https://github.com/apache/echarts" target="_blank" class="btn btn-main btn-index-home btn-index-github"><svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-262.000000, -2480.000000)" fill="#081642"><g transform="translate(252.000000, 2470.000000)"><path d="M29.9006449,27.904446 C28.5016932,29.8668872 26.6944882,31.2248797 24.4790301,31.9784237 C24.2211218,32.0272886 24.0325745,31.9931534 23.9133882,31.876018 C23.7942019,31.7588827 23.7346171,31.6119968 23.7346338,31.4353603 L23.7346338,28.3376019 C23.7346338,27.3880159 23.4865017,26.6930482 22.9902375,26.2526987 C23.5347812,26.1938141 24.024319,26.1058042 24.458851,25.9886688 C24.893383,25.8715335 25.3422785,25.680801 25.8055376,25.4164714 C26.2687966,25.1521418 26.6556591,24.8267354 26.9661251,24.4402521 C27.276591,24.0537688 27.5296112,23.5398222 27.7251857,22.8984123 C27.9207602,22.2570024 28.0185475,21.5203805 28.0185475,20.6885464 C28.0185475,19.504056 27.6414612,18.4959023 26.8872886,17.6640854 C27.240536,16.7733669 27.2023419,15.7752328 26.7727063,14.6696833 C26.5050218,14.5813565 26.1181593,14.6352226 25.6121189,14.8312818 C25.1060784,15.0273409 24.6669591,15.2428141 24.2947609,15.4777015 L23.7502256,15.8300324 C22.8622108,15.5757225 21.9454689,15.4485675 21,15.4485675 C20.0545311,15.4485675 19.1377892,15.5757225 18.2497744,15.8300324 C18.0969813,15.7223001 17.8940788,15.5901353 17.641067,15.433538 C17.3880551,15.2769408 16.9892689,15.0884007 16.4447085,14.8679176 C15.9001481,14.6474346 15.4894467,14.5813479 15.2126043,14.6696576 C14.7921266,15.7758408 14.7588206,16.7739749 15.1126863,17.6640597 C14.3585137,18.4958938 13.9814275,19.5040475 13.9814275,20.6885208 C13.9814275,21.5203548 14.0792147,22.2544676 14.2747892,22.8908591 C14.4703637,23.5272505 14.720944,24.0411971 15.0265302,24.4326988 C15.3321164,24.8242005 15.7165391,25.1521076 16.1797981,25.41642 C16.6430571,25.6807325 17.0919527,25.871465 17.5264847,25.9886174 C17.9610167,26.1057699 18.4505545,26.1937799 18.9950982,26.2526473 C18.6131238,26.60467 18.3790461,27.1085884 18.292865,27.7644025 C18.0924107,27.8621152 17.8775846,27.935404 17.6483866,27.984269 C17.4191886,28.0331339 17.1469167,28.0575663 16.831571,28.0575663 C16.5162253,28.0575663 16.203612,27.9523346 15.8937309,27.7418712 C15.5838499,27.5314078 15.3189144,27.225424 15.0989244,26.8239198 C14.9174043,26.5107253 14.6857747,26.2564154 14.4040358,26.0609899 C14.1222969,25.8655645 13.8860801,25.7481209 13.6953854,25.708659 L13.4084408,25.6644956 C13.2079866,25.6644956 13.069557,25.6864188 12.9931521,25.7302654 C12.9167472,25.7741119 12.8929083,25.8304873 12.9216353,25.8993914 C12.9503623,25.9682956 12.9934529,26.0368829 13.050907,26.1051533 C13.1083611,26.1734238 13.1703941,26.2319915 13.2370061,26.2808564 L13.336924,26.3541538 C13.5471712,26.4518665 13.7549701,26.6378974 13.9603209,26.9122466 C14.1656716,27.1865958 14.3160164,27.4362043 14.4113555,27.661072 L14.554364,27.9983735 C14.67843,28.3704354 14.8886689,28.6714094 15.1850804,28.9012955 C15.481492,29.1311815 15.8014334,29.2780674 16.1449045,29.3419532 C16.4883756,29.405839 16.8202406,29.4399742 17.1404995,29.4443589 C17.4607584,29.4487435 17.7256939,29.4315218 17.935306,29.3926936 L18.2644137,29.3335008 C18.2644137,29.7055627 18.2668619,30.1412107 18.2717584,30.6404447 C18.2766548,31.1396787 18.279103,31.4040083 18.279103,31.4334334 C18.279103,31.6094533 18.21707,31.7563392 18.093004,31.8740912 C17.9689379,31.9918431 17.7779507,32.0259784 17.5200424,31.9764969 C15.3045843,31.22297 13.4973793,29.8649774 12.0984276,27.9025191 C10.6994759,25.9400608 10,23.7305118 10,21.2738721 C10,19.2281225 10.4916769,17.3417791 11.4750308,15.6148418 C12.4583846,13.8879045 13.7928551,12.5202092 15.4784422,11.5117558 C17.1640293,10.5033024 19.0045486,9.99938397 21,10.0000006 C22.9954514,10.0006172 24.8359707,10.5045356 26.5215578,11.5117558 C28.2071449,12.518976 29.5416154,13.8866713 30.5249692,15.6148418 C31.5083231,17.3430123 32,19.2293557 32,21.2738721 C31.9990725,23.7324558 31.2995966,25.9420048 29.9006449,27.904446 Z"></path></g></g></g></svg></a></div></div><div class="home-chart"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/index-home-pie.png?_v_=20200710_1"></div></div></section><section id="events-section"><div class="container"><a href="./events/2021-05-13-iscas.html" class="event"><picture><source data-srcset="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/event/20210513-iscas.webp?_v_=20200710_1" type="image/webp" class="lazy"><source data-srcset="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/event/20210513-iscas.jpeg?_v_=20200710_1" type="image/jpeg" class="lazy"><img data-src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/event/20210513-iscas.jpeg?_v_=20200710_1" alt="开源软件供应链点亮计划 - 暑期 2021" class="lazy"></picture></a></div></section><section id="feature-section"><div class="container"><div class="index-features"><h2 class="reveal">特性</h2><hr class="reveal"><a href="https://echarts.apache.org/feature.html" class="more reveal">查看完整特性</a></div><div class="row"><div class="col-md-6"><div id="index-feature-1" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-1" class="index-feature-icon-bg"></div><div id="icon-1" class="index-feature-icon"></div></div><div class="index-feature-right reveal"><h3 class="reveal">丰富的图表类型</h3><p class="reveal-later">提供开箱即用的 20 多种图表和十几种组件,并且支持各种图表以及组件的任意组合。</p></div></div></div><div class="col-md-6"><div id="index-feature-2" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-2" class="index-feature-icon-bg"></div><div id="icon-2" class="index-feature-icon"></div></div><div class="index-feature-right"><h3 class="reveal">强劲的渲染引擎</h3><p class="reveal-later">Canvas、SVG 双引擎一键切换,增量渲染、流加载等技术实现千万级数据的流畅交互。</p></div></div></div><div class="col-md-6"><div id="index-feature-3" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-3" class="index-feature-icon-bg"></div><div id="icon-3" class="index-feature-icon"></div></div><div class="index-feature-right"><h3 class="reveal">专业的数据分析</h3><p class="reveal-later">通过数据集管理数据,支持数据过滤、聚类、回归,帮助实现同一份数据的多维度分析。</p></div></div></div><div class="col-md-6"><div id="index-feature-4" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-4" class="index-feature-icon-bg"></div><div id="icon-4" class="index-feature-icon"></div></div><div class="index-feature-right"><h3 class="reveal">优雅的可视化设计</h3><p class="reveal-later">默认设计遵从可视化原则,支持响应式设计,并且提供了灵活的配置项方便开发者定制。</p></div></div></div><div class="col-md-6"><div id="index-feature-5" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-5" class="index-feature-icon-bg"></div><div id="icon-5" class="index-feature-icon"></div></div><div class="index-feature-right"><h3 class="reveal">健康的开源社区</h3><p class="reveal-later">活跃的社区用户保证了项目的健康发展,也贡献了丰富的第三方插件满足不同场景的需求。</p></div></div></div><div class="col-md-6"><div id="index-feature-6" class="index-feature"><div class="index-feature-left reveal"><div id="bg-icon-6" class="index-feature-icon-bg"></div><div id="icon-6" class="index-feature-icon"></div></div><div class="index-feature-right"><h3 class="reveal">友好的无障碍访问</h3><p class="reveal-later">智能生成的图表描述和贴花图案,帮助视力障碍人士了解图表内容,读懂图表背后的故事。</p></div></div></div></div></div></section><section id="publication"><div class="container"><div id="start-line"></div><div class="paper"><div class="content"><h2 class="reveal-latest">ECharts: A Declarative Framework for Rapid Construction of Web-based Visualization</h2><p class="note reveal-latest">如果您在科研项目、产品、学术论文、技术报告、新闻报告、教育、专利以及其他相关活动中使用了 Apache ECharts,欢迎引用本论文。</p><div class="single-btn-panel reveal-latest"><a href="http://www.cad.zju.edu.cn/home/vagblog/VAG_Work/echarts.pdf" class="pdf reveal-later">Visual Informatics, 2018 [PDF]</a></div></div><div class="icon"><div id="paper-icon"></div></div></div><div id="end-line"></div></div></section><section id="about-section" class="normal reveal-about"><div class="container"><h3>关注我们</h3><hr><p>关注我们以及时获得更多最新动态</p><div class="btn-panel row"><div class="col-lg-3 col-sm-6"><a id="btn-github" href="https://github.com/apache/echarts"><div class="btn-content"><div class="btn-logo"><svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-262.000000, -2480.000000)" fill="#081642"><g transform="translate(252.000000, 2470.000000)"><path d="M29.9006449,27.904446 C28.5016932,29.8668872 26.6944882,31.2248797 24.4790301,31.9784237 C24.2211218,32.0272886 24.0325745,31.9931534 23.9133882,31.876018 C23.7942019,31.7588827 23.7346171,31.6119968 23.7346338,31.4353603 L23.7346338,28.3376019 C23.7346338,27.3880159 23.4865017,26.6930482 22.9902375,26.2526987 C23.5347812,26.1938141 24.024319,26.1058042 24.458851,25.9886688 C24.893383,25.8715335 25.3422785,25.680801 25.8055376,25.4164714 C26.2687966,25.1521418 26.6556591,24.8267354 26.9661251,24.4402521 C27.276591,24.0537688 27.5296112,23.5398222 27.7251857,22.8984123 C27.9207602,22.2570024 28.0185475,21.5203805 28.0185475,20.6885464 C28.0185475,19.504056 27.6414612,18.4959023 26.8872886,17.6640854 C27.240536,16.7733669 27.2023419,15.7752328 26.7727063,14.6696833 C26.5050218,14.5813565 26.1181593,14.6352226 25.6121189,14.8312818 C25.1060784,15.0273409 24.6669591,15.2428141 24.2947609,15.4777015 L23.7502256,15.8300324 C22.8622108,15.5757225 21.9454689,15.4485675 21,15.4485675 C20.0545311,15.4485675 19.1377892,15.5757225 18.2497744,15.8300324 C18.0969813,15.7223001 17.8940788,15.5901353 17.641067,15.433538 C17.3880551,15.2769408 16.9892689,15.0884007 16.4447085,14.8679176 C15.9001481,14.6474346 15.4894467,14.5813479 15.2126043,14.6696576 C14.7921266,15.7758408 14.7588206,16.7739749 15.1126863,17.6640597 C14.3585137,18.4958938 13.9814275,19.5040475 13.9814275,20.6885208 C13.9814275,21.5203548 14.0792147,22.2544676 14.2747892,22.8908591 C14.4703637,23.5272505 14.720944,24.0411971 15.0265302,24.4326988 C15.3321164,24.8242005 15.7165391,25.1521076 16.1797981,25.41642 C16.6430571,25.6807325 17.0919527,25.871465 17.5264847,25.9886174 C17.9610167,26.1057699 18.4505545,26.1937799 18.9950982,26.2526473 C18.6131238,26.60467 18.3790461,27.1085884 18.292865,27.7644025 C18.0924107,27.8621152 17.8775846,27.935404 17.6483866,27.984269 C17.4191886,28.0331339 17.1469167,28.0575663 16.831571,28.0575663 C16.5162253,28.0575663 16.203612,27.9523346 15.8937309,27.7418712 C15.5838499,27.5314078 15.3189144,27.225424 15.0989244,26.8239198 C14.9174043,26.5107253 14.6857747,26.2564154 14.4040358,26.0609899 C14.1222969,25.8655645 13.8860801,25.7481209 13.6953854,25.708659 L13.4084408,25.6644956 C13.2079866,25.6644956 13.069557,25.6864188 12.9931521,25.7302654 C12.9167472,25.7741119 12.8929083,25.8304873 12.9216353,25.8993914 C12.9503623,25.9682956 12.9934529,26.0368829 13.050907,26.1051533 C13.1083611,26.1734238 13.1703941,26.2319915 13.2370061,26.2808564 L13.336924,26.3541538 C13.5471712,26.4518665 13.7549701,26.6378974 13.9603209,26.9122466 C14.1656716,27.1865958 14.3160164,27.4362043 14.4113555,27.661072 L14.554364,27.9983735 C14.67843,28.3704354 14.8886689,28.6714094 15.1850804,28.9012955 C15.481492,29.1311815 15.8014334,29.2780674 16.1449045,29.3419532 C16.4883756,29.405839 16.8202406,29.4399742 17.1404995,29.4443589 C17.4607584,29.4487435 17.7256939,29.4315218 17.935306,29.3926936 L18.2644137,29.3335008 C18.2644137,29.7055627 18.2668619,30.1412107 18.2717584,30.6404447 C18.2766548,31.1396787 18.279103,31.4040083 18.279103,31.4334334 C18.279103,31.6094533 18.21707,31.7563392 18.093004,31.8740912 C17.9689379,31.9918431 17.7779507,32.0259784 17.5200424,31.9764969 C15.3045843,31.22297 13.4973793,29.8649774 12.0984276,27.9025191 C10.6994759,25.9400608 10,23.7305118 10,21.2738721 C10,19.2281225 10.4916769,17.3417791 11.4750308,15.6148418 C12.4583846,13.8879045 13.7928551,12.5202092 15.4784422,11.5117558 C17.1640293,10.5033024 19.0045486,9.99938397 21,10.0000006 C22.9954514,10.0006172 24.8359707,10.5045356 26.5215578,11.5117558 C28.2071449,12.518976 29.5416154,13.8866713 30.5249692,15.6148418 C31.5083231,17.3430123 32,19.2293557 32,21.2738721 C31.9990725,23.7324558 31.2995966,25.9420048 29.9006449,27.904446 Z"></path></g></g></g></svg><span>GitHub</span></div><div class="icon-v-right"></div></div></a></div><div class="col-lg-3 col-sm-6"><a id="btn-weixin"><div class="btn-content zh"><div class="btn-logo"><svg width="25px" height="21px" viewBox="0 0 25 21" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-512.000000, -2480.000000)" fill="rgba(93, 201, 116)"><g transform="translate(512.000000, 2480.000000)"><path d="M17.6290595,6.47976119 C17.7534123,6.47976119 17.8770026,6.48260946 18,6.4873469 C17.2166965,2.79549199 13.5198007,0 9.07678865,0 C4.06379837,0 0,3.55853831 0,7.94816178 C0,10.5128275 1.38756065,12.7933344 3.54074891,14.2466508 L2.63388325,17 L5.63681512,15.3050455 C6.69779456,15.6858421 7.85912588,15.8963236 9.07676039,15.8963236 C9.31148885,15.8963236 9.54412784,15.8885344 9.77433851,15.8731886 C9.52032463,15.1807388 9.38270085,14.4428328 9.38270085,13.676822 C9.38275733,9.70202902 13.0747399,6.47976119 17.6290595,6.47976119 Z M12.5,4 C13.328411,4 14,4.67155738 14,5.5 C14,6.32841103 13.3284426,7 12.5,7 C11.6715574,7 11,6.32844262 11,5.5 C11.0000316,4.67155738 11.671589,4 12.5,4 Z M5.5,7 C4.67158897,7 4,6.32844262 4,5.5 C4,4.67158897 4.67155738,4 5.5,4 C6.32844262,4 7,4.67155738 7,5.5 C7,6.32841103 6.32844262,7 5.5,7 Z"></path><path d="M25,13.4664775 C25,9.89513318 21.6421433,7 17.4999862,7 C13.3578291,7 10,9.89513318 10,13.4664775 C10,17.0378217 13.3578567,19.9329549 17.5000138,19.9329549 C18.36973,19.9329549 19.2046277,19.804878 19.9813841,19.5701641 L22.5457108,21 L21.8004292,18.7646117 C23.7349834,17.5951163 25,15.6582837 25,13.4664775 Z M15,12 C14.447707,12 14,11.552293 14,11 C14,10.447707 14.447707,10 15,10 C15.552293,10 16,10.447707 16,11 C16,11.552293 15.552293,12 15,12 Z M20,12 C19.447707,12 19,11.552293 19,11 C19,10.447707 19.447707,10 20,10 C20.552293,10 21,10.447707 21,11 C21,11.552293 20.5522667,12 20,12 Z"></path></g></g></g></svg><span>公众号</span></div><div class="weixin-code"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/ercode.jpg?_v_=20200710_1"></div></div></a></div><div class="col-lg-3 col-sm-6"><a id="btn-weibo" href="https://weibo.com/echarts"><div class="btn-content"><div class="btn-logo"><svg width="25px" height="20px" viewBox="0 0 25 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-774.000000, -2480.000000)" fill="rgba(174, 44, 53)"><g transform="translate(767.000000, 2470.000000)"><g transform="translate(7.000000, 10.000000)"><path d="M9.56107255,18.530208 C5.55942203,18.7083394 2.28534432,16.6598289 2.28534432,13.9878588 C2.28534432,11.3158886 5.55942203,9.08924686 9.56107255,8.91111551 C13.5627231,8.73298415 16.8368008,10.4252319 16.8368008,13.0972021 C16.8368008,15.7691722 13.5627231,18.3520767 9.56107255,18.530208 Z M18.1100532,9.71270657 C17.1096406,9.53457522 17.6553202,9.0001812 17.6553202,9.0001812 C17.6553202,9.0001812 18.5647862,7.48606478 17.473427,6.32821106 C16.1092279,4.90316031 12.7442036,6.50634241 12.7442036,6.50634241 C11.4709512,6.95167077 11.8347376,6.32821106 12.0166308,5.34848869 C12.0166308,4.19063497 11.6528444,2.14212451 8.19687348,3.3890439 C4.74090259,4.54689763 1.83061129,8.7329842 1.83061129,8.7329842 C-0.26116057,11.49402 0.0116792299,13.6315961 0.0116792299,13.6315961 C0.557358851,18.3520767 5.4684754,19.5989961 9.37917931,19.9552588 C13.4717764,20.3115215 18.9285726,18.5302081 20.5656115,14.9675812 C22.1117037,11.3158886 19.1104658,9.89083792 18.1100532,9.71270657 Z"></path><path d="M12.8641827,12.2517204 C12.2123929,10.4024172 10.0707976,9.57023078 7.92920237,10.2174869 C5.78760713,10.9572081 4.57714023,12.9914416 5.13581726,14.7482796 C5.78760713,16.5975828 7.92920237,17.4297692 10.0707976,16.7825131 C12.2123929,16.135257 13.4228598,14.1010235 12.8641827,12.2517204 Z M8.11542806,15.4880009 C7.37052537,15.6729312 6.53250982,15.3955358 6.34628415,14.7482797 C6.16005847,14.1010235 6.62562266,13.4537674 7.46363821,13.176372 C8.2085409,12.9914416 9.04655645,13.2688371 9.23278212,13.9160932 C9.32589493,14.5633493 8.86033075,15.3030706 8.11542806,15.4880009 Z M10.3501361,13.176372 C10.2570233,13.4537674 9.88457196,13.6386977 9.60523346,13.5462326 C9.32589496,13.4537674 9.23278212,13.0839068 9.32589496,12.8065113 C9.4190078,12.5291159 9.79145914,12.3441855 10.0707976,12.4366507 C10.3501361,12.621581 10.5363618,12.8989765 10.3501361,13.176372 Z"></path><path d="M24.5953609,9.4285714 C24.5953609,9.3333333 24.6913146,9.2380952 24.6913146,9.14285713 C25.2670362,7.5238095 24.9791754,5.9047619 24.3075001,4.38095238 C23.0601032,1.7142857 20.3734021,0 17.4947939,0 C16.9190722,0 16.3433505,0.0952380996 15.8635825,0.190476199 L15.8635825,0.190476199 L15.8635825,0.190476199 C15.8635825,0.190476199 15.7676289,0.190476199 15.6716753,0.285714299 L15.6716753,0.285714299 C15.2878608,0.476190498 15,0.857142874 15,1.33333335 C15,2.00000002 15.479768,2.4761905 16.1514433,2.4761905 C16.2473969,2.4761905 16.3433505,2.4761905 16.5352577,2.3809524 L16.5352577,2.3809524 C16.8231186,2.1904762 17.3988402,2.09523812 17.4947938,2.09523812 L17.5907475,2.09523812 C19.6057732,2.09523812 21.5248454,3.23809527 22.3884279,5.23809525 C22.8681959,6.2857143 22.9641496,7.42857143 22.6762887,8.57142857 C22.6762887,8.66666667 22.5803351,8.85714285 22.5803351,8.95238095 C22.5803351,9.52380952 23.0601031,10 23.6358248,10 L23.827732,10 L23.827732,10 L23.9236856,10 C24.2115465,9.9047619 24.4034537,9.8095238 24.5953609,9.61904762 C24.4994073,9.5238095 24.4994073,9.5238095 24.5953609,9.4285714 C24.5953609,9.5238095 24.5953609,9.4285714 24.5953609,9.4285714 Z"></path><path d="M17.6310803,4 C17.3252528,4 16.9174827,4.08510639 16.6116551,4.08510639 C16.3058276,4.17021275 16,4.42553192 16,4.76595745 C16,5.10638297 16.3058275,5.36170214 16.7135976,5.36170214 C16.8155402,5.36170214 16.9174827,5.36170214 17.0194252,5.27659575 C17.2233102,5.27659575 17.3252527,5.19148936 17.5291378,5.19148936 C18.548563,5.19148936 19.4660456,5.87234042 19.4660456,6.72340425 C19.4660456,6.89361703 19.4660456,6.97872339 19.3641031,7.14893617 L19.3641031,7.40425531 L19.3641031,7.40425531 L19.3641031,7.40425531 L19.3641031,7.40425531 L19.3641031,7.40425531 L19.3641031,7.4893617 L19.3641031,7.4893617 C19.4660456,7.82978723 19.7718732,8 20.0777008,8 C20.3835283,8 20.5874133,7.82978723 20.7912984,7.65957447 L20.7912984,7.65957447 C20.8932409,7.40425533 20.9951834,7.06382978 20.9951834,6.72340425 C21.0971259,5.27659575 19.5679882,4 17.6310803,4 Z"></path></g></g></g></g></svg><span>微博</span></div><div class="icon-v-right"></div></div></a></div><div class="col-lg-3 col-sm-6"><a id="btn-twitter" href="https://twitter.com/ApacheECharts"><div class="btn-content"><div class="btn-logo"><svg width="22px" height="19px" viewBox="0 0 22 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-1029.000000, -2481.000000)" fill="rgba(0, 172, 237)" fill-rule="nonzero"><g transform="translate(1019.000000, 2470.000000)"><path d="M31.9965682,13.2536272 C31.3736136,14.2239084 30.6196136,15.0506018 29.7346591,15.7332964 C29.7441818,15.8714453 29.7489318,16.0792366 29.7489318,16.3566705 C29.7489318,17.6436908 29.5720682,18.9275445 29.2183409,20.2082316 C28.8645909,21.4890636 28.3274091,22.7184796 27.6069091,23.8965522 C26.8862955,25.0746247 26.0280455,26.1166031 25.0323864,27.0222697 C24.0366364,27.9281298 22.8360682,28.6508066 21.4306364,29.1904211 C20.0251818,29.7300356 18.5226591,30 16.9230227,30 C14.4015909,30 12.0938636,29.2822545 10,27.8470776 C10.3251136,27.8862863 10.6878182,27.9059148 11.0880909,27.9059148 C13.1819545,27.9059148 15.0477727,27.2230992 16.6854545,25.8575407 C15.7087727,25.8372354 14.8339318,25.5180789 14.0609545,24.8998053 C13.288,24.281701 12.7573636,23.4924033 12.4690909,22.532299 C12.7763409,22.581612 13.0604091,22.606341 13.32125,22.606341 C13.7215227,22.606341 14.1168864,22.5518066 14.5076136,22.4428346 C13.4654545,22.214883 12.6024318,21.6632061 11.9187955,20.7878041 C11.2351591,19.9125471 10.8933409,18.8958295 10.8933409,17.7380623 L10.8933409,17.6790802 C11.5258182,18.0553092 12.2052955,18.2580242 12.9318409,18.287201 C12.3172955,17.851458 11.8288409,17.2826425 11.4667727,16.5808028 C11.1046818,15.8790598 10.923,15.1170776 10.9219318,14.2949288 C10.9219318,13.4233702 11.1267045,12.6170789 11.5365227,11.8760064 C12.6620909,13.3505127 14.0323182,14.5304949 15.6474545,15.4160496 C17.2624545,16.3015076 18.9907727,16.7936705 20.8321364,16.8924898 C20.7582955,16.5162366 20.7213636,16.1501361 20.7213636,15.7941883 C20.7213636,14.4678626 21.1608409,13.3372176 22.0398409,12.4023257 C22.9188409,11.4674338 23.9818864,11 25.2289318,11 C26.5319318,11 27.6300455,11.5048779 28.5233636,12.5144402 C29.5382045,12.306673 30.4922273,11.9209198 31.3854091,11.3572048 C31.0412273,12.4947875 30.3808409,13.3759186 29.4041364,14.0003804 C30.2700455,13.9015611 31.1353409,13.6539809 32,13.2574224 L31.9965682,13.2536272 Z"></path></g></g></g></svg><span>Twitter</span></div><div class="icon-v-right"></div></div></a></div></div></div></section></div><footer><div class="container"><div class="row"><div class="col-md-9"><p>Copyright © 2017-2021, The Apache Software Foundation Apache ECharts, ECharts, Apache, the Apache feather, and the Apache ECharts project logo are either registered trademarks or trademarks of the Apache Software Foundation.</p><div class="icon-panel"><a href="mailto:dev@echarts.apache.org?body=%28Thanks%20for%20using%20ECharts.%20Email%20us%20if%20you%20have%20non-technical%20problems%20using%20ECharts.%20For%20technical%20support%2C%20please%20go%20to%20https%3A//github.com/apache/echarts/issues%20.%29" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-email.png?_v_=20200710_1"></a><a href="https://twitter.com/ApacheECharts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-twitter.png?_v_=20200710_1"></a><a href="https://weibo.com/echarts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-weibo.png?_v_=20200710_1"></a><a href="https://github.com/apache/echarts" class="footer-icon"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/icon-github.png?_v_=20200710_1"></a></div></div><div id="footer-icon-panel" class="col-md-3"><a href="https://www.apache.org"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/asf_logo.svg?_v_=20200710_1" class="footer-apache-logo"></a></div></div></div></footer></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/common.js?_v_=b5b8944fb9"></script><script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload@12.0.0/dist/lazyload.min.js"></script><script src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/index.js?_v_=1623211036275"></script><script>window.lazyLoadOptions = {
     elements_selector: ".lazy"
 };</script><script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload@12.0.0/dist/lazyload.min.js"></script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
diff --git a/zh/js/download.js b/zh/js/download.js
index af18489..688d8b3 100644
--- a/zh/js/download.js
+++ b/zh/js/download.js
@@ -1 +1 @@
-var param=[{publishedAt:"2021-04-27T00:00:00Z",prerelease:!1,name:"5.1.1"},{publishedAt:"2021-04-15T00:00:00Z",prerelease:!1,name:"5.1.0"},{publishedAt:"2021-02-06T00:00:00Z",prerelease:!1,name:"5.0.2"},{publishedAt:"2021-01-16T00:00:00Z",prerelease:!1,name:"5.0.1"},{publishedAt:"2020-12-02T00:00:00Z",prerelease:!1,name:"5.0.0"},{publishedAt:"2020-09-01T00:00:00Z",prerelease:!1,name:"4.9.0"},{publishedAt:"2020-05-25T00:00:00Z",prerelease:!1,name:"4.8.0"},{publishedAt:"2020-03-19T00:00:00Z",prerelease:!1,name:"4.7.0"},{publishedAt:"2019-12-30T00:00:00Z",prerelease:!1,name:"4.6.0"},{publishedAt:"2019-11-18T16:00:00Z",prerelease:!1,name:"4.5.0"},{publishedAt:"2019-10-15T01:12:00Z",prerelease:!1,name:"4.4.0"},{publishedAt:"2019-09-16T15:57:00Z",prerelease:!1,name:"4.3.0"},{publishedAt:"2019-03-21T10:27:59Z",prerelease:!1,name:"4.2.1"},{publishedAt:"2018-08-04T12:55:30Z",prerelease:!1,name:"4.1.0"}],table=document.getElementById("download-table");function isIncubatingVersion(e){return e.split(".")[0]<5||"5.0.0"===e}for(var i=0;i<param.length;++i)if(!param[i].prerelease){var time=new Date(param[i].publishedAt);if(time.getTime()>new Date("2018-05-21")){var line=document.createElement("tr"),version=param[i].name,versionEl=document.createElement("td");versionEl.innerHTML=param[i].name,line.appendChild(versionEl);var date=document.createElement("td");date.innerHTML=time.getFullYear()+"/"+(time.getMonth()+1)+"/"+time.getDate(),line.appendChild(date);var isIncubating=isIncubatingVersion(version),main="https://www.apache.org/dist/echarts/"+version+"/apache-echarts-"+version+(isIncubating?"-incubating":""),mirror="https://www.apache.org/dyn/closer.cgi/echarts/"+version+"/apache-echarts-"+version+(isIncubating?"-incubating":""),source=document.createElement("td");source.innerHTML='<a target="_blank" href="'+mirror+'-src.zip">Source</a> (<a target="_blank" href="'+main+'-src.zip.asc">Signature</a> <a target="_blank" href="'+main+'-src.zip.sha512">SHA512</a>)',line.appendChild(source);var bin=document.createElement("td");bin.innerHTML='<a target="_blank" href="https://github.com/apache/echarts/tree/'+version+'/dist">Dist</a>',line.appendChild(bin),table.appendChild(line)}}
\ No newline at end of file
+var param=[{publishedAt:"2021-06-09T00:00:00Z",prerelease:!1,name:"5.1.2"},{publishedAt:"2021-04-27T00:00:00Z",prerelease:!1,name:"5.1.1"},{publishedAt:"2021-04-15T00:00:00Z",prerelease:!1,name:"5.1.0"},{publishedAt:"2021-02-06T00:00:00Z",prerelease:!1,name:"5.0.2"},{publishedAt:"2021-01-16T00:00:00Z",prerelease:!1,name:"5.0.1"},{publishedAt:"2020-12-02T00:00:00Z",prerelease:!1,name:"5.0.0"},{publishedAt:"2020-09-01T00:00:00Z",prerelease:!1,name:"4.9.0"},{publishedAt:"2020-05-25T00:00:00Z",prerelease:!1,name:"4.8.0"},{publishedAt:"2020-03-19T00:00:00Z",prerelease:!1,name:"4.7.0"},{publishedAt:"2019-12-30T00:00:00Z",prerelease:!1,name:"4.6.0"},{publishedAt:"2019-11-18T16:00:00Z",prerelease:!1,name:"4.5.0"},{publishedAt:"2019-10-15T01:12:00Z",prerelease:!1,name:"4.4.0"},{publishedAt:"2019-09-16T15:57:00Z",prerelease:!1,name:"4.3.0"},{publishedAt:"2019-03-21T10:27:59Z",prerelease:!1,name:"4.2.1"},{publishedAt:"2018-08-04T12:55:30Z",prerelease:!1,name:"4.1.0"}],table=document.getElementById("download-table");function isIncubatingVersion(e){return e.split(".")[0]<5||"5.0.0"===e}for(var i=0;i<param.length;++i)if(!param[i].prerelease){var time=new Date(param[i].publishedAt);if(time.getTime()>new Date("2018-05-21")){var line=document.createElement("tr"),version=param[i].name,versionEl=document.createElement("td");versionEl.innerHTML=param[i].name,line.appendChild(versionEl);var date=document.createElement("td");date.innerHTML=time.getFullYear()+"/"+(time.getMonth()+1)+"/"+time.getDate(),line.appendChild(date);var isIncubating=isIncubatingVersion(version),main="https://www.apache.org/dist/echarts/"+version+"/apache-echarts-"+version+(isIncubating?"-incubating":""),mirror="https://www.apache.org/dyn/closer.cgi/echarts/"+version+"/apache-echarts-"+version+(isIncubating?"-incubating":""),source=document.createElement("td");source.innerHTML='<a target="_blank" href="'+mirror+'-src.zip">Source</a> (<a target="_blank" href="'+main+'-src.zip.asc">Signature</a> <a target="_blank" href="'+main+'-src.zip.sha512">SHA512</a>)',line.appendChild(source);var bin=document.createElement("td");bin.innerHTML='<a target="_blank" href="https://github.com/apache/echarts/tree/'+version+'/dist">Dist</a>',line.appendChild(bin),table.appendChild(line)}}
\ No newline at end of file
diff --git a/zh/maillist.html b/zh/maillist.html
index 8b889ab..0eff36e 100644
--- a/zh/maillist.html
+++ b/zh/maillist.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/option-gl.html b/zh/option-gl.html
index 16f12e5..c080ffa 100644
--- a/zh/option-gl.html
+++ b/zh/option-gl.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -19,7 +19,7 @@
 };
 if (window.EC_WWW_CDN_PAY_ROOT) {
     window.globalArgsExtra.cdnRoot = window.EC_WWW_CDN_PAY_ROOT + '/zh/' + window.globalArgsExtra.baseUrl
-}</script><script type="text/javascript">window.globalArgsExtra.version = '6e30baec41';
+}</script><script type="text/javascript">window.globalArgsExtra.version = '708849eb8f';
 echartsDoc.init('#ec-doc-main', window.globalArgsExtra);</script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
 var hm = document.createElement("script");
diff --git a/zh/option.html b/zh/option.html
index 4af20cd..d4b35ec 100644
--- a/zh/option.html
+++ b/zh/option.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -19,7 +19,7 @@
 };
 if (window.EC_WWW_CDN_PAY_ROOT) {
     window.globalArgsExtra.cdnRoot = window.EC_WWW_CDN_PAY_ROOT + '/zh/' + window.globalArgsExtra.baseUrl
-}</script><script type="text/javascript">window.globalArgsExtra.version = '6e30baec41';
+}</script><script type="text/javascript">window.globalArgsExtra.version = '708849eb8f';
 echartsDoc.init('#ec-doc-main', window.globalArgsExtra);</script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
 var hm = document.createElement("script");
diff --git a/zh/option3.html b/zh/option3.html
index 9bbeefa..63644c1 100644
--- a/zh/option3.html
+++ b/zh/option3.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/resources.html b/zh/resources.html
index 8a8c7ff..959c788 100644
--- a/zh/resources.html
+++ b/zh/resources.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/security.html b/zh/security.html
index 39202c0..a05408e 100644
--- a/zh/security.html
+++ b/zh/security.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/spreadsheet.html b/zh/spreadsheet.html
index ab50853..011f0a7 100644
--- a/zh/spreadsheet.html
+++ b/zh/spreadsheet.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -6,13 +6,13 @@
         + '@font-face {font-family:"noto-light";src:local("Microsoft Yahei");}';
     document.head.insertBefore(el, document.getElementById('font-hack'));
 }
-</script><title>Spreadsheet Tool - Apache ECharts</title><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/vendors/handsontable/0.26.1/dist/handsontable.full.min.css?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/spreadsheet.css?_v_=1620894510041"><script src="vendors/esl.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
+</script><title>Spreadsheet Tool - Apache ECharts</title><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/vendors/handsontable/0.26.1/dist/handsontable.full.min.css?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/spreadsheet.css?_v_=1623211036275"><script src="vendors/esl.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script></head><!--[if lte IE 8]><body class="lower-ie"><div id="lowie-main"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/forie.png?_v_=20200710_1" alt="ie tip"></div></body><![endif]-->
 <!--[if (gt IE 8)|!(IE)]><body class="undefined"></body><![endif]--><div id="apache-banner"><div class="txt"><p>请访问 Apache ECharts 的官网 &nbsp;</p><a id="a1" href="https://echarts.apache.org/zh/index.html">https://echarts.apache.org</a></div><a href="https://echarts.apache.org" target="_blank" onclick="logApache()" class="btn btn-main"><div>访问官网</div></a><a href="javascript:;" onclick="closeApacheBanner(true)" class="close-btn">x</a></div><div id="main"><nav class="navbar navbar-default navbar-fixed-top"><div class="container-fluid"><div class="navbar-header"><button type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false" class="navbar-toggle collapsed"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="https://echarts.apache.org/zh/index.html" class="navbar-brand"><img src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/logo.png?_v_=20200710_1" alt="echarts logo" class="navbar-logo"></a></div><div id="navbar-collapse" class="collapse navbar-collapse"><ul class="nav navbar-nav navbar-left"><li id="nav-index"><a href="https://echarts.apache.org/zh/index.html">首页</a></li><li id="nav-doc" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">文档<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/feature.html">特性</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html">教程</a></li><li><a href="https://echarts.apache.org/zh/api.html">API</a></li><li><a href="https://echarts.apache.org/zh/option.html">配置项手册</a></li><li><a href="https://echarts.apache.org/zh/changelog.html">版本记录</a></li><li><a href="https://echarts.apache.org/zh/faq.html">常见问题</a></li><li><a href="https://echarts.apache.org/zh/tutorial.html#ECharts%205%20升级指南">v5 升级指南<span class="new">new</span></a></li></ul></li><li id="nav-download" class="dropdown"><a href="#" data-toggle="dropdown" class="dropdown-toggle">下载<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/download.html">下载</a></li><li><a href="https://echarts.apache.org/zh/download-theme.html">主题下载</a></li><li><a href="https://echarts.apache.org/zh/download-extension.html">扩展下载</a></li></ul></li><li id="nav-examples"><a href="https://echarts.apache.org/examples/zh/index.html">示例</a></li><li id="nav-resources"><a href="#" data-toggle="dropdown" class="dropdown-toggle">资源<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/spreadsheet.html">表格工具</a></li><li><a href="https://echarts.apache.org/zh/theme-builder.html">主题构建工具</a></li><li><a href="https://echarts.apache.org/zh/cheat-sheet.html">术语速查手册</a></li><li><a href="https://echarts.apache.org/zh/resources.html">更多资源</a></li></ul></li><li id="nav-contribute"><a href="#" data-toggle="dropdown" class="dropdown-toggle">社区<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://echarts.apache.org/zh/events.html">活动</a></li><li><a href="https://echarts.apache.org/zh/committers.html">贡献者列表</a></li><li><a href="https://echarts.apache.org/zh/maillist.html">邮件列表</a></li><li><a href="https://echarts.apache.org/zh/contributing.html">如何贡献</a></li><li><a href="https://echarts.apache.org/zh/dependencies.html">依赖项</a></li><li><a href="https://echarts.apache.org/zh/coding-standard.html">代码规范</a></li><li><a href="https://github.com/apache/echarts" target="_blank">源码(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://github.com/apache/echarts/issues" target="_blank">Issues(GitHub)<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li><li id="nav-others"><a href="#" data-toggle="dropdown" class="dropdown-toggle">ASF<b class="caret"></b></a><ul class="dropdown-menu"><li><a href="https://www.apache.org/" target="_blank">Apache Software Foundation<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://echarts.apache.org/zh/security.html">安全</a></li><li><a href="https://www.apache.org/licenses/" target="_blank">版权<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/events/current-event" target="_blank">活动<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">捐赠<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">鸣谢<svg width="15px" height="15px" viewbox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="icon-external-link"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></li></ul><ul class="nav navbar-nav navbar-right"><li id="nav-homeen"><a href="javascript:;" onclick="changeLang('en')">EN</a></li></ul></div></div></nav><div class="ecdoc-sprsht"></div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/js/common.js?_v_=b5b8944fb9"></script><script type="text/javascript">document.getElementById('nav-resources').className = 'active';
 
 var vendorPath = '../vendors';
 
 define('globalArgs', extend({
-    version: '1620894510041',
+    version: '1623211036275',
     basePath: './'
 }, window.globalArgsExtra || {}));
 
@@ -31,7 +31,7 @@
         numeral: vendorPath + '/numeral/1.4.7/numeral.min',
         immutable: vendorPath + '/immutable/3.7.4/dist/immutable'
     },
-    urlArgs: '_v_=1620894510041'
+    urlArgs: '_v_=1623211036275'
 });
 
 require(['spreadsheet/spreadsheet'], function (spreadsheet) {
diff --git a/zh/theme-builder.html b/zh/theme-builder.html
index a53c00a..5255c69 100644
--- a/zh/theme-builder.html
+++ b/zh/theme-builder.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
diff --git a/zh/tutorial.html b/zh/tutorial.html
index d0049f2..0c04856 100644
--- a/zh/tutorial.html
+++ b/zh/tutorial.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=fd28bcc2dc"><script>window.EC_WWW_LANG = 'zh';
+<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no"><meta name="description" content="ECharts, a powerful, interactive charting and visualization library for browser"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/images/favicon.png?_v_=20200710_1"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries--><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/zh/css/main.css?_v_=5bc19a133c"><script>window.EC_WWW_LANG = 'zh';
 </script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pace-progressbar@1.0.2/pace.min.js"></script><script id="font-hack" type="text/javascript">if (/windows/i.test(navigator.userAgent)) {
     var el = document.createElement('style');
     el.innerHTML = ''
@@ -19,7 +19,7 @@
 };
 if (window.EC_WWW_CDN_PAY_ROOT) {
     window.globalArgsExtra.cdnRoot = window.EC_WWW_CDN_PAY_ROOT + '/zh/' + window.globalArgsExtra.baseUrl
-}</script><script type="text/javascript">window.globalArgsExtra.version = '6e30baec41';
+}</script><script type="text/javascript">window.globalArgsExtra.version = '708849eb8f';
 echartsDoc.init('#ec-doc-main', window.globalArgsExtra);</script><!-- Baidu Tongji--><script type="text/javascript">var _hmt = _hmt || [];
 (function() {
 var hm = document.createElement("script");