From 296304b0d7d76e5f8a937e5f947c7aeac24ab67c Mon Sep 17 00:00:00 2001 From: JohnYan <84345999@qq.com> Date: Mon, 7 Nov 2022 17:53:42 +0800 Subject: [PATCH] add docs --- docs/smartchart/404.html | 54 + ...2029204537b839ea72f258746ec0f32ce8d6c8.css | 1 + docs/smartchart/categories/index.html | 1661 +++++++++++++ docs/smartchart/categories/index.xml | 9 + docs/smartchart/categories/page/1/index.html | 10 + .../1.基础操作/VUE相关/DataV应用/index.html | 1644 +++++++++++++ .../1.基础操作/VUE相关/ElementUI/index.html | 1738 ++++++++++++++ .../docs/1.基础操作/VUE相关/index.html | 1626 +++++++++++++ .../docs/1.基础操作/VUE相关/index.xml | 43 + .../1.基础操作/VUE相关/使用VUE/index.html | 1723 ++++++++++++++ docs/smartchart/docs/1.基础操作/index.html | 1626 +++++++++++++ docs/smartchart/docs/1.基础操作/index.xml | 85 + .../docs/1.基础操作/不太重要/index.html | 1626 +++++++++++++ .../docs/1.基础操作/不太重要/index.xml | 28 + .../不太重要/主题应用PRO/index.html | 1636 +++++++++++++ .../1.基础操作/不太重要/复制仪表盘/index.html | 1672 +++++++++++++ .../docs/1.基础操作/专业版说明/index.html | 1994 ++++++++++++++++ .../docs/1.基础操作/创建连接池/index.html | 1873 +++++++++++++++ .../docs/1.基础操作/应用模板/index.html | 1718 ++++++++++++++ .../docs/1.基础操作/快速开始/index.html | 1741 ++++++++++++++ .../docs/1.基础操作/权限管理/index.html | 1702 ++++++++++++++ .../docs/1.基础操作/第一个仪表盘/index.html | 1729 ++++++++++++++ docs/smartchart/docs/10.其它/FAQ/index.html | 1694 ++++++++++++++ docs/smartchart/docs/10.其它/index.html | 1626 +++++++++++++ docs/smartchart/docs/10.其它/index.xml | 31 + .../docs/10.其它/试用激活说明/index.html | 1634 +++++++++++++ .../Linux/SQLite3版本错误/index.html | 1669 +++++++++++++ .../docs/11.部署指南/Linux/index.html | 1626 +++++++++++++ .../docs/11.部署指南/Linux/index.xml | 45 + .../11.部署指南/Linux/快速开始/index.html | 1714 ++++++++++++++ .../11.部署指南/Linux/生产部署/index.html | 1632 +++++++++++++ docs/smartchart/docs/11.部署指南/index.html | 1626 +++++++++++++ docs/smartchart/docs/11.部署指南/index.xml | 9 + .../docs/2.数据集说明/EXCEL数据/index.html | 1626 +++++++++++++ .../docs/2.数据集说明/EXCEL数据/index.xml | 29 + .../EXCEL数据/从EXCEL粘贴数据/index.html | 1678 +++++++++++++ .../EXCEL数据/数据上传/index.html | 1685 ++++++++++++++ .../docs/2.数据集说明/SQL数据集/index.html | 1871 +++++++++++++++ docs/smartchart/docs/2.数据集说明/index.html | 1626 +++++++++++++ docs/smartchart/docs/2.数据集说明/index.xml | 63 + .../docs/2.数据集说明/共享数据集/index.html | 1706 ++++++++++++++ .../2.数据集说明/数据集开发界面/index.html | 1669 +++++++++++++ .../docs/2.数据集说明/数据集懒加载/index.html | 1705 ++++++++++++++ .../2.数据集说明/数据集数据刷新/index.html | 1699 ++++++++++++++ .../特殊数据源/API数据集/index.html | 1665 +++++++++++++ .../特殊数据源/Elasticsearch数据源/index.html | 1790 ++++++++++++++ .../特殊数据源/JDBC数据源/index.html | 1680 ++++++++++++++ .../特殊数据源/Python数据集/index.html | 1704 ++++++++++++++ .../特殊数据源/Redis数据源/index.html | 1702 ++++++++++++++ .../docs/2.数据集说明/特殊数据源/index.html | 1626 +++++++++++++ .../docs/2.数据集说明/特殊数据源/index.xml | 109 + .../特殊数据源/kafka数据源/index.html | 1688 ++++++++++++++ .../特殊数据源/mongodb数据源/index.html | 1736 ++++++++++++++ .../特殊数据源/sqlalchemy连接/index.html | 1705 ++++++++++++++ .../特殊数据源/自定义数据源/index.html | 1713 ++++++++++++++ .../docs/3.图形开发/Echarts组件/index.html | 1782 ++++++++++++++ .../docs/3.图形开发/ElementUI组件/index.html | 1626 +++++++++++++ .../docs/3.图形开发/ElementUI组件/index.xml | 18 + .../ElementUI组件/带分页的表格/index.html | 1756 ++++++++++++++ .../docs/3.图形开发/HTML组件/index.html | 1716 ++++++++++++++ docs/smartchart/docs/3.图形开发/index.html | 1626 +++++++++++++ docs/smartchart/docs/3.图形开发/index.xml | 65 + .../函数方法/Jquery遍历方法/index.html | 1735 ++++++++++++++ .../docs/3.图形开发/函数方法/index.html | 1626 +++++++++++++ .../docs/3.图形开发/函数方法/index.xml | 33 + .../函数方法/图形端数据函数/index.html | 1913 +++++++++++++++ .../docs/3.图形开发/基础图形/index.html | 1677 +++++++++++++ .../3.图形开发/特殊图形/LineUp图形/index.html | 1669 +++++++++++++ .../docs/3.图形开发/特殊图形/index.html | 1626 +++++++++++++ .../docs/3.图形开发/特殊图形/index.xml | 52 + .../3.图形开发/特殊图形/使用图标/index.html | 1646 +++++++++++++ .../3.图形开发/特殊图形/无缝滚动/index.html | 1820 +++++++++++++++ .../特殊图形/特殊图形加载/index.html | 1649 +++++++++++++ .../docs/3.图形开发/管理图形/index.html | 1681 ++++++++++++++ .../docs/3.图形开发/调试日志/index.html | 1691 ++++++++++++++ docs/smartchart/docs/4.布局说明/index.html | 1626 +++++++++++++ docs/smartchart/docs/4.布局说明/index.xml | 38 + .../docs/4.布局说明/不常用/index.html | 1626 +++++++++++++ .../docs/4.布局说明/不常用/index.xml | 30 + .../4.布局说明/不常用/代码转化布局/index.html | 1669 +++++++++++++ .../4.布局说明/不常用/容器管理界面/index.html | 1690 ++++++++++++++ .../docs/4.布局说明/删除容器/index.html | 1639 +++++++++++++ .../docs/4.布局说明/布局指引/index.html | 1732 ++++++++++++++ .../docs/4.布局说明/拖拽自动对齐/index.html | 1642 +++++++++++++ .../docs/5.参数及联动钻取/index.html | 1626 +++++++++++++ .../docs/5.参数及联动钻取/index.xml | 59 + .../5.参数及联动钻取/参数编写方法/index.html | 1765 ++++++++++++++ .../5.参数及联动钻取/图形联动钻取/index.html | 1727 ++++++++++++++ .../5.参数及联动钻取/筛选器指南/index.html | 1697 ++++++++++++++ .../组件自定义联动/index.html | 1720 ++++++++++++++ .../Jupyter中使用指引/index.html | 1807 ++++++++++++++ docs/smartchart/docs/6.Jupyter应用/index.html | 1626 +++++++++++++ docs/smartchart/docs/6.Jupyter应用/index.xml | 24 + docs/smartchart/docs/7.报表嵌入/index.html | 1626 +++++++++++++ docs/smartchart/docs/7.报表嵌入/index.xml | 42 + .../docs/7.报表嵌入/单点登录/index.html | 1706 ++++++++++++++ .../docs/7.报表嵌入/单页面嵌入/index.html | 1731 ++++++++++++++ .../docs/7.报表嵌入/简单嵌入/index.html | 1646 +++++++++++++ .../docs/8.Django应用/FAQ/index.html | 1670 +++++++++++++ docs/smartchart/docs/8.Django应用/index.html | 1626 +++++++++++++ docs/smartchart/docs/8.Django应用/index.xml | 32 + .../8.Django应用/嵌入Django-Apps/index.html | 1741 ++++++++++++++ docs/smartchart/docs/9.进阶开发PRO/index.html | 1626 +++++++++++++ docs/smartchart/docs/9.进阶开发PRO/index.xml | 92 + .../9.进阶开发PRO/webSocket方式/index.html | 1696 ++++++++++++++ .../docs/9.进阶开发PRO/后台API刷新/index.html | 1746 ++++++++++++++ .../9.进阶开发PRO/备份恢复及版本/index.html | 1759 ++++++++++++++ .../9.进阶开发PRO/实战大屏模板转化/index.html | 1675 +++++++++++++ .../docs/9.进阶开发PRO/数据下载/index.html | 1693 ++++++++++++++ .../docs/9.进阶开发PRO/数据填报/index.html | 1730 ++++++++++++++ .../docs/9.进阶开发PRO/数据服务API/index.html | 1814 +++++++++++++++ .../模板开发/IDE开发模式/index.html | 1737 ++++++++++++++ .../docs/9.进阶开发PRO/模板开发/index.html | 1626 +++++++++++++ .../docs/9.进阶开发PRO/模板开发/index.xml | 102 + .../模板开发/上传资源文件/index.html | 1685 ++++++++++++++ .../模板开发/动画效果/index.html | 1693 ++++++++++++++ .../模板开发/快捷开发/index.html | 1712 ++++++++++++++ .../模板开发/样式快速上手/index.html | 2067 +++++++++++++++++ .../模板开发/模板开发界面/index.html | 1678 +++++++++++++ .../模板开发/编辑器快捷键/index.html | 1697 ++++++++++++++ .../模板开发/边框与装饰/index.html | 1687 ++++++++++++++ docs/smartchart/docs/index.html | 1619 +++++++++++++ docs/smartchart/docs/index.xml | 21 + docs/smartchart/docs/关于我们/index.html | 1693 ++++++++++++++ ...f669259962aac89a889a8a051ca34a48fe31d.json | 1 + ...755b4f44ec0d94abaddeb103ece302f676fbdef.js | 1 + docs/smartchart/favicon.png | Bin 0 -> 109 bytes docs/smartchart/favicon.svg | 1 + docs/smartchart/flexsearch.min.js | 42 + .../fonts/roboto-mono-v13-latin-regular.woff | Bin 0 -> 15160 bytes .../fonts/roboto-mono-v13-latin-regular.woff2 | Bin 0 -> 12312 bytes .../fonts/roboto-v27-latin-700.woff | Bin 0 -> 20396 bytes .../fonts/roboto-v27-latin-700.woff2 | Bin 0 -> 15828 bytes .../fonts/roboto-v27-latin-regular.woff | Bin 0 -> 20332 bytes .../fonts/roboto-v27-latin-regular.woff2 | Bin 0 -> 15688 bytes docs/smartchart/index.html | 1680 ++++++++++++++ docs/smartchart/index.xml | 861 +++++++ docs/smartchart/katex/auto-render.min.js | 1 + .../katex/fonts/KaTeX_AMS-Regular.ttf | Bin 0 -> 70972 bytes .../katex/fonts/KaTeX_AMS-Regular.woff | Bin 0 -> 38868 bytes .../katex/fonts/KaTeX_AMS-Regular.woff2 | Bin 0 -> 32944 bytes .../katex/fonts/KaTeX_Caligraphic-Bold.ttf | Bin 0 -> 19316 bytes .../katex/fonts/KaTeX_Caligraphic-Bold.woff | Bin 0 -> 11696 bytes .../katex/fonts/KaTeX_Caligraphic-Bold.woff2 | Bin 0 -> 10448 bytes .../katex/fonts/KaTeX_Caligraphic-Regular.ttf | Bin 0 -> 18684 bytes .../fonts/KaTeX_Caligraphic-Regular.woff | Bin 0 -> 11460 bytes .../fonts/KaTeX_Caligraphic-Regular.woff2 | Bin 0 -> 10240 bytes .../katex/fonts/KaTeX_Fraktur-Bold.ttf | Bin 0 -> 35660 bytes .../katex/fonts/KaTeX_Fraktur-Bold.woff | Bin 0 -> 22632 bytes .../katex/fonts/KaTeX_Fraktur-Bold.woff2 | Bin 0 -> 20360 bytes .../katex/fonts/KaTeX_Fraktur-Regular.ttf | Bin 0 -> 34352 bytes .../katex/fonts/KaTeX_Fraktur-Regular.woff | Bin 0 -> 22088 bytes .../katex/fonts/KaTeX_Fraktur-Regular.woff2 | Bin 0 -> 19784 bytes .../katex/fonts/KaTeX_Main-Bold.ttf | Bin 0 -> 60784 bytes .../katex/fonts/KaTeX_Main-Bold.woff | Bin 0 -> 35464 bytes .../katex/fonts/KaTeX_Main-Bold.woff2 | Bin 0 -> 30244 bytes .../katex/fonts/KaTeX_Main-BoldItalic.ttf | Bin 0 -> 44496 bytes .../katex/fonts/KaTeX_Main-BoldItalic.woff | Bin 0 -> 25352 bytes .../katex/fonts/KaTeX_Main-BoldItalic.woff2 | Bin 0 -> 21944 bytes .../katex/fonts/KaTeX_Main-Italic.ttf | Bin 0 -> 47640 bytes .../katex/fonts/KaTeX_Main-Italic.woff | Bin 0 -> 26228 bytes .../katex/fonts/KaTeX_Main-Italic.woff2 | Bin 0 -> 22748 bytes .../katex/fonts/KaTeX_Main-Regular.ttf | Bin 0 -> 69520 bytes .../katex/fonts/KaTeX_Main-Regular.woff | Bin 0 -> 38112 bytes .../katex/fonts/KaTeX_Main-Regular.woff2 | Bin 0 -> 32464 bytes .../katex/fonts/KaTeX_Math-BoldItalic.ttf | Bin 0 -> 39308 bytes .../katex/fonts/KaTeX_Math-BoldItalic.woff | Bin 0 -> 22324 bytes .../katex/fonts/KaTeX_Math-BoldItalic.woff2 | Bin 0 -> 19720 bytes .../katex/fonts/KaTeX_Math-Italic.ttf | Bin 0 -> 40992 bytes .../katex/fonts/KaTeX_Math-Italic.woff | Bin 0 -> 22844 bytes .../katex/fonts/KaTeX_Math-Italic.woff2 | Bin 0 -> 20096 bytes .../katex/fonts/KaTeX_SansSerif-Bold.ttf | Bin 0 -> 33688 bytes .../katex/fonts/KaTeX_SansSerif-Bold.woff | Bin 0 -> 18516 bytes .../katex/fonts/KaTeX_SansSerif-Bold.woff2 | Bin 0 -> 15732 bytes .../katex/fonts/KaTeX_SansSerif-Italic.ttf | Bin 0 -> 30960 bytes .../katex/fonts/KaTeX_SansSerif-Italic.woff | Bin 0 -> 17572 bytes .../katex/fonts/KaTeX_SansSerif-Italic.woff2 | Bin 0 -> 15024 bytes .../katex/fonts/KaTeX_SansSerif-Regular.ttf | Bin 0 -> 29812 bytes .../katex/fonts/KaTeX_SansSerif-Regular.woff | Bin 0 -> 16228 bytes .../katex/fonts/KaTeX_SansSerif-Regular.woff2 | Bin 0 -> 13708 bytes .../katex/fonts/KaTeX_Script-Regular.ttf | Bin 0 -> 24620 bytes .../katex/fonts/KaTeX_Script-Regular.woff | Bin 0 -> 13428 bytes .../katex/fonts/KaTeX_Script-Regular.woff2 | Bin 0 -> 12064 bytes .../katex/fonts/KaTeX_Size1-Regular.ttf | Bin 0 -> 12916 bytes .../katex/fonts/KaTeX_Size1-Regular.woff | Bin 0 -> 6696 bytes .../katex/fonts/KaTeX_Size1-Regular.woff2 | Bin 0 -> 5592 bytes .../katex/fonts/KaTeX_Size2-Regular.ttf | Bin 0 -> 12172 bytes .../katex/fonts/KaTeX_Size2-Regular.woff | Bin 0 -> 6436 bytes .../katex/fonts/KaTeX_Size2-Regular.woff2 | Bin 0 -> 5392 bytes .../katex/fonts/KaTeX_Size3-Regular.ttf | Bin 0 -> 8120 bytes .../katex/fonts/KaTeX_Size3-Regular.woff | Bin 0 -> 4568 bytes .../katex/fonts/KaTeX_Size3-Regular.woff2 | Bin 0 -> 3728 bytes .../katex/fonts/KaTeX_Size4-Regular.ttf | Bin 0 -> 11016 bytes .../katex/fonts/KaTeX_Size4-Regular.woff | Bin 0 -> 6184 bytes .../katex/fonts/KaTeX_Size4-Regular.woff2 | Bin 0 -> 5028 bytes .../katex/fonts/KaTeX_Typewriter-Regular.ttf | Bin 0 -> 35924 bytes .../katex/fonts/KaTeX_Typewriter-Regular.woff | Bin 0 -> 20260 bytes .../fonts/KaTeX_Typewriter-Regular.woff2 | Bin 0 -> 17272 bytes docs/smartchart/katex/katex.min.css | 1 + docs/smartchart/katex/katex.min.js | 1 + docs/smartchart/manifest.json | 15 + docs/smartchart/mermaid.min.js | 1280 ++++++++++ docs/smartchart/sitemap.xml | 205 ++ docs/smartchart/svg/calendar.svg | 1 + docs/smartchart/svg/edit.svg | 1 + docs/smartchart/svg/menu.svg | 1 + docs/smartchart/svg/toc.svg | 1 + docs/smartchart/svg/translate.svg | 1 + docs/smartchart/sw.js | 51 + ...6b801d0de19430b8e516902f8d75c3c8bd98739.js | 1 + docs/smartchart/tags/index.html | 1661 +++++++++++++ docs/smartchart/tags/index.xml | 9 + docs/smartchart/tags/page/1/index.html | 10 + 213 files changed, 173364 insertions(+) create mode 100644 docs/smartchart/404.html create mode 100644 docs/smartchart/book.min.c58292d36b18b675680ab9baea2029204537b839ea72f258746ec0f32ce8d6c8.css create mode 100644 docs/smartchart/categories/index.html create mode 100644 docs/smartchart/categories/index.xml create mode 100644 docs/smartchart/categories/page/1/index.html create mode 100644 docs/smartchart/docs/1.基础操作/VUE相关/DataV应用/index.html create mode 100644 docs/smartchart/docs/1.基础操作/VUE相关/ElementUI/index.html create mode 100644 docs/smartchart/docs/1.基础操作/VUE相关/index.html create mode 100644 docs/smartchart/docs/1.基础操作/VUE相关/index.xml create mode 100644 docs/smartchart/docs/1.基础操作/VUE相关/使用VUE/index.html create mode 100644 docs/smartchart/docs/1.基础操作/index.html create mode 100644 docs/smartchart/docs/1.基础操作/index.xml create mode 100644 docs/smartchart/docs/1.基础操作/不太重要/index.html create mode 100644 docs/smartchart/docs/1.基础操作/不太重要/index.xml create mode 100644 docs/smartchart/docs/1.基础操作/不太重要/主题应用PRO/index.html create mode 100644 docs/smartchart/docs/1.基础操作/不太重要/复制仪表盘/index.html create mode 100644 docs/smartchart/docs/1.基础操作/专业版说明/index.html create mode 100644 docs/smartchart/docs/1.基础操作/创建连接池/index.html create mode 100644 docs/smartchart/docs/1.基础操作/应用模板/index.html create mode 100644 docs/smartchart/docs/1.基础操作/快速开始/index.html create mode 100644 docs/smartchart/docs/1.基础操作/权限管理/index.html create mode 100644 docs/smartchart/docs/1.基础操作/第一个仪表盘/index.html create mode 100644 docs/smartchart/docs/10.其它/FAQ/index.html create mode 100644 docs/smartchart/docs/10.其它/index.html create mode 100644 docs/smartchart/docs/10.其它/index.xml create mode 100644 docs/smartchart/docs/10.其它/试用激活说明/index.html create mode 100644 docs/smartchart/docs/11.部署指南/Linux/SQLite3版本错误/index.html create mode 100644 docs/smartchart/docs/11.部署指南/Linux/index.html create mode 100644 docs/smartchart/docs/11.部署指南/Linux/index.xml create mode 100644 docs/smartchart/docs/11.部署指南/Linux/快速开始/index.html create mode 100644 docs/smartchart/docs/11.部署指南/Linux/生产部署/index.html create mode 100644 docs/smartchart/docs/11.部署指南/index.html create mode 100644 docs/smartchart/docs/11.部署指南/index.xml create mode 100644 docs/smartchart/docs/2.数据集说明/EXCEL数据/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/EXCEL数据/index.xml create mode 100644 docs/smartchart/docs/2.数据集说明/EXCEL数据/从EXCEL粘贴数据/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/EXCEL数据/数据上传/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/SQL数据集/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/index.xml create mode 100644 docs/smartchart/docs/2.数据集说明/共享数据集/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/数据集开发界面/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/数据集懒加载/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/数据集数据刷新/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/特殊数据源/API数据集/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/特殊数据源/Elasticsearch数据源/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/特殊数据源/JDBC数据源/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/特殊数据源/Python数据集/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/特殊数据源/Redis数据源/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/特殊数据源/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/特殊数据源/index.xml create mode 100644 docs/smartchart/docs/2.数据集说明/特殊数据源/kafka数据源/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/特殊数据源/mongodb数据源/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/特殊数据源/sqlalchemy连接/index.html create mode 100644 docs/smartchart/docs/2.数据集说明/特殊数据源/自定义数据源/index.html create mode 100644 docs/smartchart/docs/3.图形开发/Echarts组件/index.html create mode 100644 docs/smartchart/docs/3.图形开发/ElementUI组件/index.html create mode 100644 docs/smartchart/docs/3.图形开发/ElementUI组件/index.xml create mode 100644 docs/smartchart/docs/3.图形开发/ElementUI组件/带分页的表格/index.html create mode 100644 docs/smartchart/docs/3.图形开发/HTML组件/index.html create mode 100644 docs/smartchart/docs/3.图形开发/index.html create mode 100644 docs/smartchart/docs/3.图形开发/index.xml create mode 100644 docs/smartchart/docs/3.图形开发/函数方法/Jquery遍历方法/index.html create mode 100644 docs/smartchart/docs/3.图形开发/函数方法/index.html create mode 100644 docs/smartchart/docs/3.图形开发/函数方法/index.xml create mode 100644 docs/smartchart/docs/3.图形开发/函数方法/图形端数据函数/index.html create mode 100644 docs/smartchart/docs/3.图形开发/基础图形/index.html create mode 100644 docs/smartchart/docs/3.图形开发/特殊图形/LineUp图形/index.html create mode 100644 docs/smartchart/docs/3.图形开发/特殊图形/index.html create mode 100644 docs/smartchart/docs/3.图形开发/特殊图形/index.xml create mode 100644 docs/smartchart/docs/3.图形开发/特殊图形/使用图标/index.html create mode 100644 docs/smartchart/docs/3.图形开发/特殊图形/无缝滚动/index.html create mode 100644 docs/smartchart/docs/3.图形开发/特殊图形/特殊图形加载/index.html create mode 100644 docs/smartchart/docs/3.图形开发/管理图形/index.html create mode 100644 docs/smartchart/docs/3.图形开发/调试日志/index.html create mode 100644 docs/smartchart/docs/4.布局说明/index.html create mode 100644 docs/smartchart/docs/4.布局说明/index.xml create mode 100644 docs/smartchart/docs/4.布局说明/不常用/index.html create mode 100644 docs/smartchart/docs/4.布局说明/不常用/index.xml create mode 100644 docs/smartchart/docs/4.布局说明/不常用/代码转化布局/index.html create mode 100644 docs/smartchart/docs/4.布局说明/不常用/容器管理界面/index.html create mode 100644 docs/smartchart/docs/4.布局说明/删除容器/index.html create mode 100644 docs/smartchart/docs/4.布局说明/布局指引/index.html create mode 100644 docs/smartchart/docs/4.布局说明/拖拽自动对齐/index.html create mode 100644 docs/smartchart/docs/5.参数及联动钻取/index.html create mode 100644 docs/smartchart/docs/5.参数及联动钻取/index.xml create mode 100644 docs/smartchart/docs/5.参数及联动钻取/参数编写方法/index.html create mode 100644 docs/smartchart/docs/5.参数及联动钻取/图形联动钻取/index.html create mode 100644 docs/smartchart/docs/5.参数及联动钻取/筛选器指南/index.html create mode 100644 docs/smartchart/docs/5.参数及联动钻取/组件自定义联动/index.html create mode 100644 docs/smartchart/docs/6.Jupyter应用/Jupyter中使用指引/index.html create mode 100644 docs/smartchart/docs/6.Jupyter应用/index.html create mode 100644 docs/smartchart/docs/6.Jupyter应用/index.xml create mode 100644 docs/smartchart/docs/7.报表嵌入/index.html create mode 100644 docs/smartchart/docs/7.报表嵌入/index.xml create mode 100644 docs/smartchart/docs/7.报表嵌入/单点登录/index.html create mode 100644 docs/smartchart/docs/7.报表嵌入/单页面嵌入/index.html create mode 100644 docs/smartchart/docs/7.报表嵌入/简单嵌入/index.html create mode 100644 docs/smartchart/docs/8.Django应用/FAQ/index.html create mode 100644 docs/smartchart/docs/8.Django应用/index.html create mode 100644 docs/smartchart/docs/8.Django应用/index.xml create mode 100644 docs/smartchart/docs/8.Django应用/嵌入Django-Apps/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/index.xml create mode 100644 docs/smartchart/docs/9.进阶开发PRO/webSocket方式/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/后台API刷新/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/备份恢复及版本/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/实战大屏模板转化/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/数据下载/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/数据填报/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/数据服务API/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/模板开发/IDE开发模式/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/模板开发/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/模板开发/index.xml create mode 100644 docs/smartchart/docs/9.进阶开发PRO/模板开发/上传资源文件/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/模板开发/动画效果/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/模板开发/快捷开发/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/模板开发/样式快速上手/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/模板开发/模板开发界面/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/模板开发/编辑器快捷键/index.html create mode 100644 docs/smartchart/docs/9.进阶开发PRO/模板开发/边框与装饰/index.html create mode 100644 docs/smartchart/docs/index.html create mode 100644 docs/smartchart/docs/index.xml create mode 100644 docs/smartchart/docs/关于我们/index.html create mode 100644 docs/smartchart/en.search-data.min.6325b92e2578ce162c49b50e5d0f669259962aac89a889a8a051ca34a48fe31d.json create mode 100644 docs/smartchart/en.search.min.9676739f7d6fb9d37e12fd58a755b4f44ec0d94abaddeb103ece302f676fbdef.js create mode 100644 docs/smartchart/favicon.png create mode 100644 docs/smartchart/favicon.svg create mode 100644 docs/smartchart/flexsearch.min.js create mode 100644 docs/smartchart/fonts/roboto-mono-v13-latin-regular.woff create mode 100644 docs/smartchart/fonts/roboto-mono-v13-latin-regular.woff2 create mode 100644 docs/smartchart/fonts/roboto-v27-latin-700.woff create mode 100644 docs/smartchart/fonts/roboto-v27-latin-700.woff2 create mode 100644 docs/smartchart/fonts/roboto-v27-latin-regular.woff create mode 100644 docs/smartchart/fonts/roboto-v27-latin-regular.woff2 create mode 100644 docs/smartchart/index.html create mode 100644 docs/smartchart/index.xml create mode 100644 docs/smartchart/katex/auto-render.min.js create mode 100644 docs/smartchart/katex/fonts/KaTeX_AMS-Regular.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_AMS-Regular.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_AMS-Regular.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Caligraphic-Bold.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Caligraphic-Bold.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Caligraphic-Bold.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Caligraphic-Regular.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Caligraphic-Regular.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Caligraphic-Regular.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Fraktur-Bold.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Fraktur-Bold.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Fraktur-Bold.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Fraktur-Regular.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Fraktur-Regular.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Fraktur-Regular.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Main-Bold.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Main-Bold.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Main-Bold.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Main-BoldItalic.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Main-BoldItalic.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Main-BoldItalic.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Main-Italic.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Main-Italic.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Main-Italic.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Main-Regular.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Main-Regular.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Main-Regular.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Math-BoldItalic.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Math-BoldItalic.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Math-BoldItalic.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Math-Italic.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Math-Italic.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Math-Italic.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_SansSerif-Bold.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_SansSerif-Bold.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_SansSerif-Bold.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_SansSerif-Italic.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_SansSerif-Italic.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_SansSerif-Italic.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_SansSerif-Regular.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_SansSerif-Regular.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_SansSerif-Regular.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Script-Regular.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Script-Regular.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Script-Regular.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Size1-Regular.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Size1-Regular.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Size1-Regular.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Size2-Regular.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Size2-Regular.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Size2-Regular.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Size3-Regular.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Size3-Regular.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Size3-Regular.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Size4-Regular.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Size4-Regular.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Size4-Regular.woff2 create mode 100644 docs/smartchart/katex/fonts/KaTeX_Typewriter-Regular.ttf create mode 100644 docs/smartchart/katex/fonts/KaTeX_Typewriter-Regular.woff create mode 100644 docs/smartchart/katex/fonts/KaTeX_Typewriter-Regular.woff2 create mode 100644 docs/smartchart/katex/katex.min.css create mode 100644 docs/smartchart/katex/katex.min.js create mode 100644 docs/smartchart/manifest.json create mode 100644 docs/smartchart/mermaid.min.js create mode 100644 docs/smartchart/sitemap.xml create mode 100644 docs/smartchart/svg/calendar.svg create mode 100644 docs/smartchart/svg/edit.svg create mode 100644 docs/smartchart/svg/menu.svg create mode 100644 docs/smartchart/svg/toc.svg create mode 100644 docs/smartchart/svg/translate.svg create mode 100644 docs/smartchart/sw.js create mode 100644 docs/smartchart/sw.min.6f6f90fcb8eb1c49ec389838e6b801d0de19430b8e516902f8d75c3c8bd98739.js create mode 100644 docs/smartchart/tags/index.html create mode 100644 docs/smartchart/tags/index.xml create mode 100644 docs/smartchart/tags/page/1/index.html diff --git a/docs/smartchart/404.html b/docs/smartchart/404.html new file mode 100644 index 0000000..4542223 --- /dev/null +++ b/docs/smartchart/404.html @@ -0,0 +1,54 @@ + + + + + + + + + + + + + +404 Page not found | Smartchart开发手册 + + + + + + + + + + + + + + +
+
+

404

+

Page Not Found

+

+ Smartchart开发手册 +

+
+
+ + + + + diff --git a/docs/smartchart/book.min.c58292d36b18b675680ab9baea2029204537b839ea72f258746ec0f32ce8d6c8.css b/docs/smartchart/book.min.c58292d36b18b675680ab9baea2029204537b839ea72f258746ec0f32ce8d6c8.css new file mode 100644 index 0000000..77f54b8 --- /dev/null +++ b/docs/smartchart/book.min.c58292d36b18b675680ab9baea2029204537b839ea72f258746ec0f32ce8d6c8.css @@ -0,0 +1 @@ +@charset "UTF-8";:root{--gray-100:#f8f9fa;--gray-200:#e9ecef;--gray-500:#adb5bd;--color-link:#0055bb;--color-visited-link:#8440f1;--body-background:white;--body-font-color:black;--icon-filter:none;--hint-color-info:#6bf;--hint-color-warning:#fd6;--hint-color-danger:#f66}/*!normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css*/html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.flex{display:flex}.flex-auto{flex:auto}.flex-even{flex:1 1}.flex-wrap{flex-wrap:wrap}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.align-center{align-items:center}.mx-auto{margin:0 auto}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.hidden{display:none}input.toggle{height:0;width:0;overflow:hidden;opacity:0;position:absolute}.clearfix::after{content:"";display:table;clear:both}html{font-size:16px;scroll-behavior:smooth;touch-action:manipulation}body{min-width:20rem;color:var(--body-font-color);background:var(--body-background);letter-spacing:.33px;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}body *{box-sizing:inherit}h1,h2,h3,h4,h5{font-weight:400}a{text-decoration:none;color:var(--color-link)}img{vertical-align:baseline}:focus{outline-style:auto;outline-color:currentColor;outline-color:-webkit-focus-ring-color}aside nav ul{padding:0;margin:0;list-style:none}aside nav ul li{margin:1em 0;position:relative}aside nav ul a{display:block}aside nav ul a:hover{opacity:.5}aside nav ul ul{padding-inline-start:1rem}ul.pagination{display:flex;justify-content:center;list-style-type:none;padding-inline-start:0}ul.pagination .page-item a{padding:1rem}.container{max-width:80rem;margin:0 auto}.book-icon{filter:var(--icon-filter)}.book-brand{margin-top:0;margin-bottom:1rem}.book-brand img{height:1.5em;width:1.5em;margin-inline-end:.5rem}.book-menu{flex:0 0 16rem;font-size:.875rem}.book-menu .book-menu-content{width:16rem;padding:1rem;background:var(--body-background);position:fixed;top:0;bottom:0;overflow-x:hidden;overflow-y:auto}.book-menu a,.book-menu label{color:inherit;cursor:pointer;word-wrap:break-word}.book-menu a.active{color:var(--color-link)}.book-menu input.toggle+label+ul{display:none}.book-menu input.toggle:checked+label+ul{display:block}.book-menu input.toggle+label::after{content:"▸"}.book-menu input.toggle:checked+label::after{content:"▾"}body[dir=rtl] .book-menu input.toggle+label::after{content:"◂"}body[dir=rtl] .book-menu input.toggle:checked+label::after{content:"▾"}.book-section-flat{margin:2rem 0}.book-section-flat>a,.book-section-flat>span,.book-section-flat>label{font-weight:bolder}.book-section-flat>ul{padding-inline-start:0}.book-page{min-width:20rem;flex-grow:1;padding:1rem}.book-post{margin-bottom:3rem}.book-header{display:none;margin-bottom:1rem}.book-header label{line-height:0}.book-header img.book-icon{height:1.5em;width:1.5em}.book-search{position:relative;margin:1rem 0;border-bottom:1px solid transparent}.book-search input{width:100%;padding:.5rem;border:0;border-radius:.25rem;background:var(--gray-100);color:var(--body-font-color)}.book-search input:required+.book-search-spinner{display:block}.book-search .book-search-spinner{position:absolute;top:0;margin:.5rem;margin-inline-start:calc(100% - 1.5rem);width:1rem;height:1rem;border:1px solid transparent;border-top-color:var(--body-font-color);border-radius:50%;animation:spin 1s ease infinite}@keyframes spin{100%{transform:rotate(360deg)}}.book-search small{opacity:.5}.book-toc{flex:0 0 16rem;font-size:.75rem}.book-toc .book-toc-content{width:16rem;padding:1rem;position:fixed;top:0;bottom:0;overflow-x:hidden;overflow-y:auto}.book-toc img{height:1em;width:1em}.book-toc nav>ul>li:first-child{margin-top:0}.book-footer{padding-top:1rem;font-size:.875rem}.book-footer img{height:1em;width:1em;margin-inline-end:.5rem}.book-comments{margin-top:1rem}.book-languages{margin-block-end:2rem}.book-languages .book-icon{height:1em;width:1em;margin-inline-end:.5em}.book-languages ul{padding-inline-start:1.5em}.book-menu-content,.book-toc-content,.book-page,.book-header aside,.markdown{transition:.2s ease-in-out;transition-property:transform,margin,opacity,visibility;will-change:transform,margin,opacity}@media screen and (max-width:56rem){#menu-control,#toc-control{display:inline}.book-menu{visibility:hidden;margin-inline-start:-16rem;font-size:16px;z-index:1}.book-toc{display:none}.book-header{display:block}#menu-control:focus~main label[for=menu-control]{outline-style:auto;outline-color:currentColor;outline-color:-webkit-focus-ring-color}#menu-control:checked~main .book-menu{visibility:initial}#menu-control:checked~main .book-menu .book-menu-content{transform:translateX(16rem);box-shadow:0 0 .5rem rgba(0,0,0,.1)}#menu-control:checked~main .book-page{opacity:.25}#menu-control:checked~main .book-menu-overlay{display:block;position:absolute;top:0;bottom:0;left:0;right:0}#toc-control:focus~main label[for=toc-control]{outline-style:auto;outline-color:currentColor;outline-color:-webkit-focus-ring-color}#toc-control:checked~main .book-header aside{display:block}body[dir=rtl] #menu-control:checked~main .book-menu .book-menu-content{transform:translateX(-16rem)}}@media screen and (min-width:80rem){.book-page,.book-menu .book-menu-content,.book-toc .book-toc-content{padding:2rem 1rem}}@font-face{font-family:roboto;font-style:normal;font-weight:400;font-display:swap;src:local(""),url(fonts/roboto-v27-latin-regular.woff2)format("woff2"),url(fonts/roboto-v27-latin-regular.woff)format("woff")}@font-face{font-family:roboto;font-style:normal;font-weight:700;font-display:swap;src:local(""),url(fonts/roboto-v27-latin-700.woff2)format("woff2"),url(fonts/roboto-v27-latin-700.woff)format("woff")}@font-face{font-family:roboto mono;font-style:normal;font-weight:400;font-display:swap;src:local(""),url(fonts/roboto-mono-v13-latin-regular.woff2)format("woff2"),url(fonts/roboto-mono-v13-latin-regular.woff)format("woff")}body{font-family:roboto,sans-serif}code{font-family:roboto mono,monospace}@media print{.book-menu,.book-footer,.book-toc{display:none}.book-header,.book-header aside{display:block}main{display:block!important}}.markdown{line-height:1.6}.markdown>:first-child{margin-top:0}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{font-weight:400;line-height:1;margin-top:1.5em;margin-bottom:1rem}.markdown h1 a.anchor,.markdown h2 a.anchor,.markdown h3 a.anchor,.markdown h4 a.anchor,.markdown h5 a.anchor,.markdown h6 a.anchor{opacity:0;font-size:.75em;vertical-align:middle;text-decoration:none}.markdown h1:hover a.anchor,.markdown h1 a.anchor:focus,.markdown h2:hover a.anchor,.markdown h2 a.anchor:focus,.markdown h3:hover a.anchor,.markdown h3 a.anchor:focus,.markdown h4:hover a.anchor,.markdown h4 a.anchor:focus,.markdown h5:hover a.anchor,.markdown h5 a.anchor:focus,.markdown h6:hover a.anchor,.markdown h6 a.anchor:focus{opacity:initial}.markdown h4,.markdown h5,.markdown h6{font-weight:bolder}.markdown h5{font-size:.875em}.markdown h6{font-size:.75em}.markdown b,.markdown optgroup,.markdown strong{font-weight:bolder}.markdown a{text-decoration:none}.markdown a:hover{text-decoration:underline}.markdown a:visited{color:var(--color-visited-link)}.markdown img{max-width:100%;height:auto}.markdown code{padding:0 .25rem;background:var(--gray-200);border-radius:.25rem;font-size:.875em}.markdown pre{padding:1rem;background:var(--gray-100);border-radius:.25rem;overflow-x:auto}.markdown pre code{padding:0;background:0 0}.markdown p{word-wrap:break-word}.markdown blockquote{margin:1rem 0;padding:.5rem 1rem .5rem .75rem;border-inline-start:.25rem solid var(--gray-200);border-radius:.25rem}.markdown blockquote :first-child{margin-top:0}.markdown blockquote :last-child{margin-bottom:0}.markdown table{overflow:auto;display:block;border-spacing:0;border-collapse:collapse;margin-top:1rem;margin-bottom:1rem}.markdown table tr th,.markdown table tr td{padding:.5rem 1rem;border:1px solid var(--gray-200)}.markdown table tr:nth-child(2n){background:var(--gray-100)}.markdown hr{height:1px;border:none;background:var(--gray-200)}.markdown ul,.markdown ol{padding-inline-start:2rem}.markdown dl dt{font-weight:bolder;margin-top:1rem}.markdown dl dd{margin-inline-start:0;margin-bottom:1rem}.markdown .highlight table tr td:nth-child(1) pre{margin:0;padding-inline-end:0}.markdown .highlight table tr td:nth-child(2) pre{margin:0;padding-inline-start:0}.markdown details{padding:1rem;border:1px solid var(--gray-200);border-radius:.25rem}.markdown details summary{line-height:1;padding:1rem;margin:-1rem;cursor:pointer}.markdown details[open] summary{margin-bottom:0}.markdown figure{margin:1rem 0}.markdown figure figcaption p{margin-top:0}.markdown-inner>:first-child{margin-top:0}.markdown-inner>:last-child{margin-bottom:0}.markdown .book-expand{margin-top:1rem;margin-bottom:1rem;border:1px solid var(--gray-200);border-radius:.25rem;overflow:hidden}.markdown .book-expand .book-expand-head{background:var(--gray-100);padding:.5rem 1rem;cursor:pointer}.markdown .book-expand .book-expand-content{display:none;padding:1rem}.markdown .book-expand input[type=checkbox]:checked+.book-expand-content{display:block}.markdown .book-tabs{margin-top:1rem;margin-bottom:1rem;border:1px solid var(--gray-200);border-radius:.25rem;overflow:hidden;display:flex;flex-wrap:wrap}.markdown .book-tabs label{display:inline-block;padding:.5rem 1rem;border-bottom:1px transparent;cursor:pointer}.markdown .book-tabs .book-tabs-content{order:999;width:100%;border-top:1px solid var(--gray-100);padding:1rem;display:none}.markdown .book-tabs input[type=radio]:checked+label{border-bottom:1px solid var(--color-link)}.markdown .book-tabs input[type=radio]:checked+label+.book-tabs-content{display:block}.markdown .book-tabs input[type=radio]:focus+label{outline-style:auto;outline-color:currentColor;outline-color:-webkit-focus-ring-color}.markdown .book-columns{margin-left:-1rem;margin-right:-1rem}.markdown .book-columns>div{margin:1rem 0;min-width:10rem;padding:0 1rem}.markdown a.book-btn{display:inline-block;font-size:.875rem;color:var(--color-link);line-height:2rem;padding:0 1rem;border:1px solid var(--color-link);border-radius:.25rem;cursor:pointer}.markdown a.book-btn:hover{text-decoration:none}.markdown .book-hint.info{border-color:#6bf;background-color:rgba(102,187,255,.1)}.markdown .book-hint.warning{border-color:#fd6;background-color:rgba(255,221,102,.1)}.markdown .book-hint.danger{border-color:#f66;background-color:rgba(255,102,102,.1)} \ No newline at end of file diff --git a/docs/smartchart/categories/index.html b/docs/smartchart/categories/index.html new file mode 100644 index 0000000..b8835cc --- /dev/null +++ b/docs/smartchart/categories/index.html @@ -0,0 +1,1661 @@ + + + + + + + + + + + + +Categories | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Categories + + +
+ + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/categories/index.xml b/docs/smartchart/categories/index.xml new file mode 100644 index 0000000..bc59f4f --- /dev/null +++ b/docs/smartchart/categories/index.xml @@ -0,0 +1,9 @@ + + + + Categories on Smartchart开发手册 + https://smartchart.gitee.io/categories/ + Recent content in Categories on Smartchart开发手册 + Hugo -- gohugo.io + + diff --git a/docs/smartchart/categories/page/1/index.html b/docs/smartchart/categories/page/1/index.html new file mode 100644 index 0000000..7447981 --- /dev/null +++ b/docs/smartchart/categories/page/1/index.html @@ -0,0 +1,10 @@ + + + + https://smartchart.gitee.io/categories/ + + + + + + diff --git a/docs/smartchart/docs/1.基础操作/VUE相关/DataV应用/index.html b/docs/smartchart/docs/1.基础操作/VUE相关/DataV应用/index.html new file mode 100644 index 0000000..2d735ef --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/VUE相关/DataV应用/index.html @@ -0,0 +1,1644 @@ + + + + + + + + + + + + + + +Data V应用 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Data V应用 + + +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/1.基础操作/VUE相关/ElementUI/index.html b/docs/smartchart/docs/1.基础操作/VUE相关/ElementUI/index.html new file mode 100644 index 0000000..2250b66 --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/VUE相关/ElementUI/index.html @@ -0,0 +1,1738 @@ + + + + + + + + + + + + + + +Element Ui | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Element Ui + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+
    +
  • 非大屏场景应用
  • +
  • 有较多交互场景的报表, 如筛选,表格,分页,下载等
  • +
+

+ 使用方法 + # +

+

如下图, base.html 改为 basevue.html +将自动开启加载vue和elementui + + 输入图片说明 +注意vue的变量引用在 模板编辑界面中, 写法变更为 {[ ]}

+

+ ElementUI组件说明 + + 视屏参考

+

+ 参考样列 + # +

+

新增一个数据集(点击金色的新增按钮, 这样会新增一个可拖拽的数据集) +修改相应的数据集及图形 +数据集端

+
select  H1, H2, qty, rate from smartdemo2 limit 100
+

图形端

+
let dataset = __dataset__;
+let tableData = ds_createMap_all(dataset);
+
+vapp.d0={
+    tableData: tableData
+}
+

模板Body区端

+
<div class="smtdrag" id="id_1639824145817">
+    <template>
+    <el-table
+    stripe
+    border
+    height="100%"
+      :data="d0.tableData"
+      style="width: 100%">
+     <el-table-column label="hero">
+      <el-table-column
+        prop="H1"
+        label="H1"
+        fixed
+        :default-sort = "{prop: 'H2', order: 'descending'}"
+        width="180">
+      </el-table-column>
+      <el-table-column
+        prop="H2"
+        label="H2"
+        sortable
+        width="180">
+      </el-table-column>
+     </el-table-column>
+     
+      <el-table-column
+        sortable
+        prop="qty"
+        label="qty">
+      </el-table-column>
+      <el-table-column
+        prop="rate"
+        label="rate">
+      </el-table-column>
+    </el-table>
+    </template>
+  </div>
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/1.基础操作/VUE相关/index.html b/docs/smartchart/docs/1.基础操作/VUE相关/index.html new file mode 100644 index 0000000..ab754ae --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/VUE相关/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +Vue相关 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Vue相关 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/1.基础操作/VUE相关/index.xml b/docs/smartchart/docs/1.基础操作/VUE相关/index.xml new file mode 100644 index 0000000..84b57c2 --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/VUE相关/index.xml @@ -0,0 +1,43 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/%E4%BD%BF%E7%94%A8VUE/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/%E4%BD%BF%E7%94%A8VUE/ + 使用场景 # 报表中涉及交互场景较多, 需要数据与页面绑定 开发者熟悉vue 常见绑定 # //显示变量message &lt;p&gt;{[ message ]}&lt;/p&gt; //循环产生li,变量sites &lt;ol&gt; &lt;li v-for=&#34;site in sites&#34;&gt; {[ site.name ]} &lt;/li&gt; &lt;/ol&gt; //绑定输入值变量use &lt;input type=&#34;checkbox&#34; v-model=&#34;use&#34;&gt; //显示控制 &lt;p v-if=&#34;seen&#34;&gt;现在你看到我了&lt;/p&gt; &lt;p v-show=&#34;seen&#34;&gt;现在你看到我了&lt;/p&gt; //绑定属性 &lt;a :href=&#34;url&#34;&gt;&lt;/a&gt; &lt;div :style=&#34;{ color: activeColor, fontSize: fontSize + &#39;px&#39; }&#34;&gt;&lt;/div&gt; &lt;div :class=&#34;[errorClass ,isActive ? activeClass : &#39;&#39;]&#34;&gt;&lt;/div&gt; //绑定点击方法 &lt;a @click=&#34;doSomething&#34;&gt;&lt;/a&gt; 开启VUE # 需要在高级中加入“dv”:2,即可开启vue模式 你可以在图形编辑器中给vue的变量赋值,我们内置了17个变量,从d0, d1&hellip; d16 赋值方式 vapp.d0 = xxxx 你可以将d0赋值为字典, 如: vapp.d0 = { &lsquo;index1&rsquo;: 100, &lsquo;index2&rsquo;: 300} + + + + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/ElementUI/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/ElementUI/ + 应用场景 # 非大屏场景应用 有较多交互场景的报表, 如筛选,表格,分页,下载等 使用方法 # 如下图, base.html 改为 basevue.html 将自动开启加载vue和elementui 注意vue的变量引用在 模板编辑界面中, 写法变更为 {[ ]} +ElementUI组件说明 视屏参考 +参考样列 # 新增一个数据集(点击金色的新增按钮, 这样会新增一个可拖拽的数据集) 修改相应的数据集及图形 数据集端 +select H1, H2, qty, rate from smartdemo2 limit 100 图形端 +let dataset = __dataset__; let tableData = ds_createMap_all(dataset); vapp.d0={ tableData: tableData } 模板Body区端 +&lt;div class=&#34;smtdrag&#34; id=&#34;id_1639824145817&#34;&gt; &lt;template&gt; &lt;el-table stripe border height=&#34;100%&#34; :data=&#34;d0.tableData&#34; style=&#34;width: 100%&#34;&gt; &lt;el-table-column label=&#34;hero&#34;&gt; &lt;el-table-column prop=&#34;H1&#34; label=&#34;H1&#34; fixed :default-sort = &#34;{prop: &#39;H2&#39;, order: &#39;descending&#39;}&#34; width=&#34;180&#34;&gt; &lt;/el-table-column&gt; &lt;el-table-column prop=&#34;H2&#34; label=&#34;H2&#34; sortable width=&#34;180&#34;&gt; &lt;/el-table-column&gt; &lt;/el-table-column&gt; &lt;el-table-column sortable prop=&#34;qty&#34; label=&#34;qty&#34;&gt; &lt;/el-table-column&gt; &lt;el-table-column prop=&#34;rate&#34; label=&#34;rate&#34;&gt; &lt;/el-table-column&gt; &lt;/el-table&gt; &lt;/template&gt; &lt;/div&gt; + + + + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/DataV%E5%BA%94%E7%94%A8/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/DataV%E5%BA%94%E7%94%A8/ + 需要在高级中加入“dv”:1,即可开启datav模式 +参考视屏 1. DataV基础应用 2. DataV翻盘器 +DataV配置方法文档: 图表 + + + + diff --git a/docs/smartchart/docs/1.基础操作/VUE相关/使用VUE/index.html b/docs/smartchart/docs/1.基础操作/VUE相关/使用VUE/index.html new file mode 100644 index 0000000..e61ae6f --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/VUE相关/使用VUE/index.html @@ -0,0 +1,1723 @@ + + + + + + + + + + + + + + +使用 Vue | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 使用 Vue + + +
+ + + + + + +
+ + + +

+ 使用场景 + # +

+
    +
  • 报表中涉及交互场景较多, 需要数据与页面绑定
  • +
  • 开发者熟悉vue
  • +
+

+ 常见绑定 + # +

+
//显示变量message
+<p>{[ message ]}</p>
+//循环产生li,变量sites
+<ol>
+<li v-for="site in sites">
+  {[ site.name ]}
+</li>
+</ol>
+//绑定输入值变量use
+<input type="checkbox" v-model="use">
+//显示控制
+<p v-if="seen">现在你看到我了</p>
+<p v-show="seen">现在你看到我了</p>
+//绑定属性
+<a :href="url"></a>
+<div :style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
+<div :class="[errorClass ,isActive ? activeClass : '']"></div>
+//绑定点击方法
+<a @click="doSomething"></a>
+

+ 开启VUE + # +

+

需要在高级中加入“dv”:2,即可开启vue模式 + + 输入图片说明 +你可以在图形编辑器中给vue的变量赋值,我们内置了17个变量,从d0, d1… d16 +赋值方式 vapp.d0 = xxxx + + 输入图片说明

+

你可以将d0赋值为字典, 如: +vapp.d0 = { ‘index1’: 100, ‘index2’: 300}

+
+

注意,我们修改了vue的默认引用方式, 你需要采用如下方法引用: +{[d0.index1]}

+
+

+ 使用模板可以更方便使用VUE + # +

+

你也可以在 模板开发中 使用VUE +开启方法, 首先你需要在高级设定中 , 设定 “template”:“diy”, +然后你可以看到 模板 的菜单, 进入编辑器

+

如果你需要更多自定义的方法, 例如加入方法, 你可以在模板的script中加入自定义代码

+
<script>
+    var vapp = new Vue({el: '#vue_app', delimiters: ['{[', ']}'], 
+      data: {
+              tableData:''
+        },
+      methods: {
+          formatter(row, column) {
+            return row.address;
+        }
+    }
+    });
+</script>
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/1.基础操作/index.html b/docs/smartchart/docs/1.基础操作/index.html new file mode 100644 index 0000000..0a2b434 --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +1.基础操作 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 1.基础操作 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/1.基础操作/index.xml b/docs/smartchart/docs/1.基础操作/index.xml new file mode 100644 index 0000000..4db3cdc --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/index.xml @@ -0,0 +1,85 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + 专业版本说明 + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%93%E4%B8%9A%E7%89%88%E8%AF%B4%E6%98%8E/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%93%E4%B8%9A%E7%89%88%E8%AF%B4%E6%98%8E/ + 版权声明 # 为项目能持续维护,并保持稳定的模式,按照社区投票的意见, 开始区分免费版本和专业版本 目前免费版本无需激活, 你可以使用到常用的功能,我们也会保持持续的更新 为保持项目的健康发展,如需进行商用,您需提供使用方并知会作者进行授权 +免费版使用者必须保留SmartChart相关版权标识及LOGO,禁止对其进行修改和删除 如果违反,将保留对侵权者追究责任的权利 +激活方式 # 您在初次安装Smartchart后会自动免费激活20天的专业版本, 之后专业版本功能会限制使用 请务必仔细阅读免费版本与专业版本的区别, 避免带来的不便 后续如果您还需要继续体验专业版本, 点击查看激活试用方式, 如果您是企业用途,建意使用专业版,获取更快的开发效率,可视化效果, 可靠性的保障及极速的查询体验 +针对个人独立开发者,你可以采用廉价的专业版仪表盘激活方案, 可满足小项目的可视化要求 如果需要永久激活专业版,可关注公众号与客服联系,或扫码联系微信客服了解, 非诚勿扰 +微信客服不提供技术咨询, 如有使用方法的疑惑,建意加QQ群:476715246 进行沟通 +免费版本与专业版本对比: # 功能 免费版 专业版 中台版 栅格布局 V V V DATAV V V V 拖拽布局 V V 自由开发 V V 切换图表主题 V V 主题自由设计 V V 引入JS V V 引入CSS V V 上传静态资源 V V 使用VUE V V V 数据集开发 V V V 所有数据源 V V V 图形开发 V V V 图形商店 V V V 普通模板应用 V V V 专业模板应用 V V 复制仪表盘 V V V 钻取 V V V 联动 V V V 筛选 V V V 单点登录 V V V 嵌入认证 V V LDAP认证 V V Juypter V V V 快捷存档 V V 数据加速 V V 数据API服务 V V 后台API刷新 V V 仪表盘同步 V V 仪表盘版本管理 V V 数据填报 V V 报表Portal V V 多级项目菜单 V 商业授权 V V 优先咨询 V V 专业边框背景 V V 3D场景 V V 中国式报表 V V 生产部署文档 V V 个性化修改 V V 授权书 V V 低代码ETL V 调度平台 V 智慧BI V 数据资产 V 数据血缘 V 租户管理 V + + + + 快速开始 + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/ + 开发前你可以先观看操作方面的 :exclamation: 操作视屏教程 :exclamation: 5.0变更操作视屏教程 :exclamation: 开发系列合集,关注作者持续更新 +由于版本的变更, 一些图标可能会有一些变化, 但位置无太大的变化 +安装Python环境 # 环境准备: 官方 最新Python下载链接,可以到 淘宝镜象下载,也可以下载 WINDOWS64位安装版, MAC电脑安装版 +Window平台安装视屏介绍,注意: Windows安装Python时需选中&quot;Add to Path&quot; Linux安装可参考文档下方的部署说明, Linux安装说明 +安装SmartChart # 在Shell或CMD命令行执行 +pip3 install smartchart 如果安装过程慢,建意使用 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple smartchart -U 升级方法: pip3 install smartchart -U (升级) 启动smartchart # 本地命令行启动: smartchart 如果你是服务器部署,远程访问,服务端启动方式: smartchart runserver 0.0.0.0:8000 --insecure --noreload 如果出现套接字,端口被占用, 可修改端口号启动, 如 smartchart runserver 0.0.0.0:8001 --insecure --noreload 一般本地启动后访问: http://127.0.0.1:8000 管理员帐号密码: admin/admin, 请及时更改密码 +如果忘记密码, 可以使用此命令重置 smartchart changepassword 用户名 鼠标滑动,点击如下图DEV图标, 切换为开发模式,这样才可以看到开发相关菜单,后打开demo页面 注意: 不切换是正常的用户报表浏览模式! + + + + 第一个仪表盘 + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E7%AC%AC%E4%B8%80%E4%B8%AA%E4%BB%AA%E8%A1%A8%E7%9B%98/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E7%AC%AC%E4%B8%80%E4%B8%AA%E4%BB%AA%E8%A1%A8%E7%9B%98/ + 由于版本的变更, 一些图标可能会有一些变化, 但位置无太大的变化 +新建仪表盘 # 在开发模式下,滑动“开发管理” -&gt;&ldquo;仪表盘&rdquo;-&gt; &ldquo;新增Dashboard&rdquo; 填写相应信息后点击“保存” 点击进入仪表盘开发, 注意点击 &ldquo;E&rdquo; 字!! 点击新增(注意拖拽布局功能为PRO版本, 后续免费版本中将无法使用), 如果你坚持使用免费版本功能, 请使用左边的蓝色颜色的新增, 具体布局方式参考 数据集编辑 # 点开“数据集” 输入以下SQL后,点击“保存并刷新”, 关闭数据集编辑界面 select H1 as heroname, sum(qty) as 出场数 from smartdemo2 group by H1 order by sum(qty) desc 图形编辑 # 点开“图形编辑” 点击“云图标”,第一次使用可能要你进行登记,按提示操作即可, 在商店中找到合适的图形点击,会自动复制到剪贴板 贴粘到图形编辑器后,点击保存, 关闭图形编辑框 拖拽布局 # 重复以上步骤,再新增一个, 你可以使用拖拽的方式, 移动到不同的地方 + + + + 创建连接池 + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E5%88%9B%E5%BB%BA%E8%BF%9E%E6%8E%A5%E6%B1%A0/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E5%88%9B%E5%BB%BA%E8%BF%9E%E6%8E%A5%E6%B1%A0/ + 如何新增数据源 # 在开发模式下,点击“开发管理”-&gt;数据源-&gt;新增 配置连接池参数,注意数据库填写是备注中有写的名称 你可以通过新建一个数据集来测试连接池的连通性 +点击“保存” 后,回到数据集列表 点击如下图标&quot;E&quot;,进入数据集开发界面 在开发界面调试 安全控制 # 你可以在“参数”中设定安全控制,可避免用户误操作导致前后端卡死 limit: 可限定最大返回数据数量(但实际数据库查询无limit,需通过mode控制) mode: 控制用户查询行为,默认为模式1 +模式 说明 0 严格模式,每次查询向数据库都会增加limit,MPP类型数据库可能会排序失效 1 开发模式,仅调试查询数据库都会增加limit,调试时MPP类型数据库可能会排序失效,但不影响实际 2 宽松模式,查询都不带limit, 仅控制返回limit,需开发者避免大查询 支持的数据源: # 数据库 驱动填写 需安装 使用说明 Mysql mysql 默认支持 Mysql连接池 mysqlpool Sqlite sqlite 默认支持 连接地址填写绝对路径 API 任意 默认支持 参考数据集说明文档 EXCEL 任意 默认支持 参考数据集说明文档 SQL Server mssql 需安装 pip install pymssql SQL Server连接池 mssqlpool ORACLE oracle pip install cx_Oracle ORACLE连接池 oraclepool PostgreSql gp pip install psycopg2 GP gp pip install psycopg2 Impala impala pip install impyla Hive hive pip install impyla DB2 db2 pip install ibm_db 达梦 dm pip install dmPython Python python pip install pandas, openpyxl 参考数据集-&gt;特殊数据源 Redis redis pip install redis 参考数据集-&gt;特殊数据源 Mongodb mongodb pip install pymongo 参考数据集-&gt;特殊数据源 Clickhouse clickhouse pip install clickhouse_driver Elasticsearch es pip install elasticsearch==7. + + + + 应用模板 + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E5%BA%94%E7%94%A8%E6%A8%A1%E6%9D%BF/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E5%BA%94%E7%94%A8%E6%A8%A1%E6%9D%BF/ + 应用场景 # 你可以快速应用开发好的模板,极大的提高你的开发和学习效率 +应用本地模板 # 你可以快速应用本地备份的模板, 我们内置了一个 通用的数据查询和下载模板 , 你可以尝试 +新建一个全新的dashboard, 不要放任何报表, 点击保存且编辑后, 下方可以看到下载链接, 然后点击下载即可直接应用 输入&quot;01_SMARTCHART&quot;, 点击本地恢复即可 更多本地备份恢复参考 +应用商店模板 # 方法同上&quot;应用本地模板&quot;, 注意应用商店模板为收费增值服务 +你可以点击 模板查询, 查看相应的价格后在 TB购买即可获取下载密钥 如果是全新的仪表盘, 直接输入下载密钥, 点击&quot; 商城下载 &ldquo;即可 如果仪表盘中有数据集且不再需要, 可以在下载密钥前面加上FORCE即可自动清空已有数据集后自动下载 注意模板太廉价,购买后并没有咨询服务,请务必自行了解如何使用 +资源文件放置路径 有些资源会离线打包提供给你, 只需上传即可, 上传方法参考 +如果不清楚可以观看视屏说明 使用方法可参考视屏: 一键应用模板 + + + + 权限管理 + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86/ + 目前的权限管理,大概如下: +开发者权限 # 你点击DEV后, 才会出进入后台的图标, 在后台中你可以控制用户的开发权限 新建用户默认是没有开发权限的, 在首页也看不到任何开发相关的菜单 +如果你需要给用户开发权限, 需要设定如下: Dashboard报表查看权限 # 你可以在 仪表盘设定 中进行权限管理 全局编辑或查看权限 由平台用户组或用户权限配置, 如果用户需要查看报表, 需先分配到有查看权限的组中, 默认加入集团组可以具备查看权限 在dashboard设定页面中可针对人员来分配 编辑权限, 有编辑权限同时也会满足查看权限 在dashboard设定页面中可针对组来分配 查看权限 未上线 的报表, 只会在编辑页面中出现, 可以预览 公开 的报表, 如没有分配编辑权限,在编辑页面中不出现, 但在查看页面所有人可见,你可以共享给所有人,访问url: http://xxxxx:8000/echart?type=你的仪表盘名称 手机端过滤, 你可以通过 &ldquo;全端&rdquo;,&ldquo;电脑端&rdquo; 选项实现, 当勾选 &ldquo;全端&rdquo; 时, 手机端电脑端都会显示, 当未勾选 全端, 也不勾选 电脑端时, 只会在 手机显示, 反之只在电脑端显示 总结 # 在编辑入口只会显示 有按人员分配编辑权限的报表清单, 在查看入口中会显示已启用且上线且(已分配查看权限或编辑权限或公开)的报表 所以你可以么这么搭配: 对于通用报表可以所有人访问的, 但你又不想让他在清单中显示, 你可以将他设为公开但不上线 对于开发中的报表, 你可以设为未上线 + + + + diff --git a/docs/smartchart/docs/1.基础操作/不太重要/index.html b/docs/smartchart/docs/1.基础操作/不太重要/index.html new file mode 100644 index 0000000..bf47fe8 --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/不太重要/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +不太重要 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 不太重要 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/1.基础操作/不太重要/index.xml b/docs/smartchart/docs/1.基础操作/不太重要/index.xml new file mode 100644 index 0000000..7e048b9 --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/不太重要/index.xml @@ -0,0 +1,28 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%8D%E5%A4%AA%E9%87%8D%E8%A6%81/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%8D%E5%A4%AA%E9%87%8D%E8%A6%81/%E4%B8%BB%E9%A2%98%E5%BA%94%E7%94%A8PRO/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%8D%E5%A4%AA%E9%87%8D%E8%A6%81/%E4%B8%BB%E9%A2%98%E5%BA%94%E7%94%A8PRO/ + 点击smartchart图标,切换到菜单固定模式, 你可看到主题的选择 + + + + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%8D%E5%A4%AA%E9%87%8D%E8%A6%81/%E5%A4%8D%E5%88%B6%E4%BB%AA%E8%A1%A8%E7%9B%98/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%8D%E5%A4%AA%E9%87%8D%E8%A6%81/%E5%A4%8D%E5%88%B6%E4%BB%AA%E8%A1%A8%E7%9B%98/ + 复制仪表盘 # 好不容易开发好了一个仪表盘, 想再做一个类似的, 或者想要一个测试用, 还需要一个个数据集, 图形复制粘贴么, 不, 你仅仅只需要点击下, 将给你复制出一个全新的仪表盘 注意: 复制出来的仪表盘, 数据集是与原仪表盘公用的!! +如果你想将数据集独立出来, 可以按下图操作, 进入数据集设定, 点击磁铁, 将为你自动创建一个全新的数据集 + + + + diff --git a/docs/smartchart/docs/1.基础操作/不太重要/主题应用PRO/index.html b/docs/smartchart/docs/1.基础操作/不太重要/主题应用PRO/index.html new file mode 100644 index 0000000..3e9f031 --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/不太重要/主题应用PRO/index.html @@ -0,0 +1,1636 @@ + + + + + + + + + + + + + + +主题应用 Pro | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 主题应用 Pro + + +
+ + + + + + +
+ + + +

点击smartchart图标,切换到菜单固定模式, 你可看到主题的选择 + + 输入图片说明

+

+ 输入图片说明

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/1.基础操作/不太重要/复制仪表盘/index.html b/docs/smartchart/docs/1.基础操作/不太重要/复制仪表盘/index.html new file mode 100644 index 0000000..6bc6bb3 --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/不太重要/复制仪表盘/index.html @@ -0,0 +1,1672 @@ + + + + + + + + + + + + + + +复制仪表盘 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 复制仪表盘 + + +
+ + + + + + +
+ + + +

+ 复制仪表盘 + # +

+
    +
  • 好不容易开发好了一个仪表盘, 想再做一个类似的, 或者想要一个测试用, 还需要一个个数据集, 图形复制粘贴么, 不, 你仅仅只需要点击下, 将给你复制出一个全新的仪表盘 + + 输入图片说明
  • +
+

注意: 复制出来的仪表盘, 数据集是与原仪表盘公用的!!

+
    +
  • 如果你想将数据集独立出来, 可以按下图操作, 进入数据集设定, 点击磁铁, 将为你自动创建一个全新的数据集 + + 输入图片说明
  • +
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/1.基础操作/专业版说明/index.html b/docs/smartchart/docs/1.基础操作/专业版说明/index.html new file mode 100644 index 0000000..15a39d2 --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/专业版说明/index.html @@ -0,0 +1,1994 @@ + + + + + + + + + + + + + + +专业版本说明 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 专业版本说明 + + +
+ + + + + + +
+ + + +

+ 版权声明 + # +

+

为项目能持续维护,并保持稳定的模式,按照社区投票的意见, 开始区分免费版本和专业版本 +目前免费版本无需激活, 你可以使用到常用的功能,我们也会保持持续的更新 +为保持项目的健康发展,如需进行商用,您需提供使用方并知会作者进行授权

+
+

免费版使用者必须保留SmartChart相关版权标识及LOGO,禁止对其进行修改和删除 +如果违反,将保留对侵权者追究责任的权利

+
+

+ 激活方式 + # +

+

您在初次安装Smartchart后会自动免费激活20天的专业版本, 之后专业版本功能会限制使用 +请务必仔细阅读免费版本与专业版本的区别, 避免带来的不便 +后续如果您还需要继续体验专业版本, + 点击查看激活试用方式, +如果您是企业用途,建意使用专业版,获取更快的开发效率,可视化效果, 可靠性的保障及极速的查询体验

+
+

针对个人独立开发者,你可以采用廉价的专业版仪表盘激活方案, 可满足小项目的可视化要求 +如果需要永久激活专业版,可关注公众号与客服联系,或扫码联系微信客服了解, 非诚勿扰

+
+

+

微信客服不提供技术咨询, 如有使用方法的疑惑,建意加QQ群:476715246 进行沟通

+

+ 免费版本与专业版本对比: + # +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
功能免费版专业版中台版
栅格布局VVV
DATAVVVV
拖拽布局VV
自由开发VV
切换图表主题VV
主题自由设计VV
引入JSVV
引入CSSVV
上传静态资源VV
使用VUEVVV
数据集开发VVV
所有数据源VVV
图形开发VVV
图形商店VVV
普通模板应用VVV
专业模板应用VV
复制仪表盘VVV
钻取VVV
联动VVV
筛选VVV
单点登录VVV
嵌入认证VV
LDAP认证VV
JuypterVVV
快捷存档VV
数据加速VV
数据API服务VV
后台API刷新VV
仪表盘同步VV
仪表盘版本管理VV
数据填报VV
报表PortalVV
多级项目菜单V
商业授权VV
优先咨询VV
+ 专业边框背景VV
3D场景VV
中国式报表VV
生产部署文档VV
个性化修改VV
授权书VV
低代码ETLV
调度平台V
智慧BIV
数据资产V
数据血缘V
租户管理V
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/1.基础操作/创建连接池/index.html b/docs/smartchart/docs/1.基础操作/创建连接池/index.html new file mode 100644 index 0000000..346ba5f --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/创建连接池/index.html @@ -0,0 +1,1873 @@ + + + + + + + + + + + + + + +创建连接池 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 创建连接池 + + +
+ + + + + + +
+ + + +

+ 如何新增数据源 + # +

+
    +
  • +

    在开发模式下,点击“开发管理”->数据源->新增 +

    +
  • +
  • +

    配置连接池参数,注意数据库填写是备注中有写的名称 +

    +
  • +
  • +

    你可以通过新建一个数据集来测试连接池的连通性

    +
  • +
  • +

    点击“保存” 后,回到数据集列表 点击如下图标"E",进入数据集开发界面 +

    +
  • +
  • +

    在开发界面调试 +

    +
  • +
+

+ 安全控制 + # +

+

你可以在“参数”中设定安全控制,可避免用户误操作导致前后端卡死 + + 输入图片说明 +limit: 可限定最大返回数据数量(但实际数据库查询无limit,需通过mode控制) +mode: 控制用户查询行为,默认为模式1

+ + + + + + + + + + + + + + + + + + + + + +
模式说明
0严格模式,每次查询向数据库都会增加limit,MPP类型数据库可能会排序失效
1开发模式,仅调试查询数据库都会增加limit,调试时MPP类型数据库可能会排序失效,但不影响实际
2宽松模式,查询都不带limit, 仅控制返回limit,需开发者避免大查询
+

+ 支持的数据源: + # +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
数据库驱动填写需安装使用说明
Mysqlmysql默认支持
Mysql连接池mysqlpool
Sqlitesqlite默认支持连接地址填写绝对路径
API任意默认支持参考数据集说明文档
EXCEL任意默认支持参考数据集说明文档
SQL Servermssql需安装 pip install pymssql
SQL Server连接池mssqlpool
ORACLEoraclepip install cx_Oracle
ORACLE连接池oraclepool
PostgreSqlgppip install psycopg2
GPgppip install psycopg2
Impalaimpalapip install impyla
Hivehivepip install impyla
DB2db2pip install ibm_db
达梦dmpip install dmPython
Pythonpythonpip install pandas, openpyxl参考数据集->特殊数据源
Redisredispip install redis参考数据集->特殊数据源
Mongodbmongodbpip install pymongo参考数据集->特殊数据源
Clickhouseclickhousepip install clickhouse_driver
Elasticsearchespip install elasticsearch==7.13.0参考数据集->特殊数据源
Sqlalchemysqlalchemypip install sqlalchemy参考数据集->特殊数据源
JDBCjdbcpip install JayDeBeApi参考数据集->特殊数据源
自定义自定义用户自由定义参考数据集->特殊数据源
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/1.基础操作/应用模板/index.html b/docs/smartchart/docs/1.基础操作/应用模板/index.html new file mode 100644 index 0000000..338dbce --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/应用模板/index.html @@ -0,0 +1,1718 @@ + + + + + + + + + + + + + + +应用模板 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 应用模板 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+

你可以快速应用开发好的模板,极大的提高你的开发和学习效率

+

+ 应用本地模板 + # +

+

你可以快速应用本地备份的模板, 我们内置了一个 通用的数据查询和下载模板 , 你可以尝试

+
    +
  • +

    新建一个全新的dashboard, 不要放任何报表, 点击保存且编辑后, 下方可以看到下载链接, 然后点击下载即可直接应用 +

    +
  • +
  • +

    输入"01_SMARTCHART", 点击本地恢复即可 +

    +
  • +
+

+ 更多本地备份恢复参考

+

+ 应用商店模板 + # +

+

方法同上"应用本地模板", 注意应用商店模板为收费增值服务

+
    +
  • 你可以点击 + 模板查询, 查看相应的价格后在 + TB购买即可获取下载密钥
  • +
  • 如果是全新的仪表盘, 直接输入下载密钥, 点击" 商城下载 “即可
  • +
+
+

如果仪表盘中有数据集且不再需要, 可以在下载密钥前面加上FORCE即可自动清空已有数据集后自动下载 +注意模板太廉价,购买后并没有咨询服务,请务必自行了解如何使用

+
+
+

资源文件放置路径 +有些资源会离线打包提供给你, 只需上传即可, + 上传方法参考

+
+
+

如果不清楚可以观看视屏说明 +使用方法可参考视屏: + 一键应用模板

+
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/1.基础操作/快速开始/index.html b/docs/smartchart/docs/1.基础操作/快速开始/index.html new file mode 100644 index 0000000..4eece6a --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/快速开始/index.html @@ -0,0 +1,1741 @@ + + + + + + + + + + + + + + +快速开始 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 快速开始 + + +
+ + + + + + +
+ + + +

开发前你可以先观看操作方面的 +:exclamation: + 操作视屏教程 :exclamation: + 5.0变更操作视屏教程 +:exclamation: + 开发系列合集,关注作者持续更新

+

由于版本的变更, 一些图标可能会有一些变化, 但位置无太大的变化

+

+ 安装Python环境 + # +

+ +

+ 安装SmartChart + # +

+

在Shell或CMD命令行执行

+
   pip3 install smartchart
+   
+   如果安装过程慢,建意使用
+   pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple smartchart -U
+
+   升级方法:
+   pip3 install smartchart -U (升级)
+

+ 启动smartchart + # +

+
   本地命令行启动: 
+   smartchart
+   如果你是服务器部署,远程访问,服务端启动方式: 
+   smartchart runserver 0.0.0.0:8000 --insecure --noreload
+   如果出现套接字,端口被占用, 可修改端口号启动, 如
+   smartchart runserver 0.0.0.0:8001 --insecure --noreload
+

一般本地启动后访问: http://127.0.0.1:8000 +管理员帐号密码: admin/admin, 请及时更改密码

+
如果忘记密码, 可以使用此命令重置
+smartchart changepassword 用户名
+
    +
  • 鼠标滑动,点击如下图DEV图标, 切换为开发模式,这样才可以看到开发相关菜单,后打开demo页面
  • +
+
+

注意: 不切换是正常的用户报表浏览模式!! + + 输入图片说明 +仅管理员或开发人员能看到DEV菜单,用户只会有报表菜单页面

+
+
    +
  • 尝试熟悉编辑菜单 + + 输入图片说明
  • +
  • 尝试点开数据集查看SQL写法, 图形编辑器, 容器等
  • +
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/1.基础操作/权限管理/index.html b/docs/smartchart/docs/1.基础操作/权限管理/index.html new file mode 100644 index 0000000..33e418d --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/权限管理/index.html @@ -0,0 +1,1702 @@ + + + + + + + + + + + + + + +权限管理 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 权限管理 + + +
+ + + + + + +
+ + + +

目前的权限管理,大概如下:

+

+ 开发者权限 + # +

+

你点击DEV后, 才会出进入后台的图标, 在后台中你可以控制用户的开发权限 + + 输入图片说明

+

+ 输入图片说明 +新建用户默认是没有开发权限的, 在首页也看不到任何开发相关的菜单

+

如果你需要给用户开发权限, 需要设定如下: + + 输入图片说明 + + 输入图片说明

+

+ Dashboard报表查看权限 + # +

+

你可以在 仪表盘设定 中进行权限管理 + + 输入图片说明

+
    +
  • 全局编辑或查看权限 由平台用户组或用户权限配置, 如果用户需要查看报表, 需先分配到有查看权限的组中, 默认加入集团组可以具备查看权限
  • +
  • 在dashboard设定页面中可针对人员来分配 编辑权限, 有编辑权限同时也会满足查看权限
  • +
  • 在dashboard设定页面中可针对组来分配 查看权限
  • +
  • 未上线 的报表, 只会在编辑页面中出现, 可以预览
  • +
  • 公开 的报表, 如没有分配编辑权限,在编辑页面中不出现, 但在查看页面所有人可见,你可以共享给所有人,访问url: http://xxxxx:8000/echart?type=你的仪表盘名称
  • +
  • 手机端过滤, 你可以通过 “全端”,“电脑端” 选项实现, 当勾选 “全端” 时, 手机端电脑端都会显示, 当未勾选 全端, 也不勾选 电脑端时, 只会在 手机显示, 反之只在电脑端显示
  • +
+

+ 总结 + # +

+

在编辑入口只会显示 有按人员分配编辑权限的报表清单, 在查看入口中会显示已启用且上线且(已分配查看权限或编辑权限或公开)的报表 +所以你可以么这么搭配: +对于通用报表可以所有人访问的, 但你又不想让他在清单中显示, 你可以将他设为公开但不上线 +对于开发中的报表, 你可以设为未上线

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/1.基础操作/第一个仪表盘/index.html b/docs/smartchart/docs/1.基础操作/第一个仪表盘/index.html new file mode 100644 index 0000000..c9e7534 --- /dev/null +++ b/docs/smartchart/docs/1.基础操作/第一个仪表盘/index.html @@ -0,0 +1,1729 @@ + + + + + + + + + + + + + + +第一个仪表盘 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 第一个仪表盘 + + +
+ + + + + + +
+ + + +

由于版本的变更, 一些图标可能会有一些变化, 但位置无太大的变化

+

+ 新建仪表盘 + # +

+
    +
  • 在开发模式下,滑动“开发管理” ->“仪表盘”-> “新增Dashboard” + + 输入图片说明
  • +
  • 填写相应信息后点击“保存” + + 输入图片说明
  • +
  • 点击进入仪表盘开发, 注意点击 “E” 字!! + + 输入图片说明
  • +
  • 点击新增(注意拖拽布局功能为PRO版本, 后续免费版本中将无法使用), +如果你坚持使用免费版本功能, 请使用左边的蓝色颜色的新增, + 具体布局方式参考 + + 输入图片说明
  • +
+

+ 数据集编辑 + # +

+
    +
  • 点开“数据集” + + 输入图片说明
  • +
  • 输入以下SQL后,点击“保存并刷新”, 关闭数据集编辑界面
  • +
+
select H1 as heroname, sum(qty) as 出场数 from smartdemo2
+group by H1
+order by sum(qty) desc
+

+ 输入图片说明

+

+ 图形编辑 + # +

+
    +
  • +

    点开“图形编辑” + + 输入图片说明

    +
  • +
  • +

    点击“云图标”,第一次使用可能要你进行登记,按提示操作即可, 在商店中找到合适的图形点击,会自动复制到剪贴板 + + 输入图片说明

    +
  • +
  • +

    贴粘到图形编辑器后,点击保存, 关闭图形编辑框 + + 输入图片说明

    +
  • +
+

+ 拖拽布局 + # +

+
    +
  • 重复以上步骤,再新增一个, 你可以使用拖拽的方式, 移动到不同的地方 + + 输入图片说明
  • +
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/10.其它/FAQ/index.html b/docs/smartchart/docs/10.其它/FAQ/index.html new file mode 100644 index 0000000..17595b0 --- /dev/null +++ b/docs/smartchart/docs/10.其它/FAQ/index.html @@ -0,0 +1,1694 @@ + + + + + + + + + + + + + + +Faq | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Faq + + +
+ + + + + + +
+ + + +

+ FAQ + # +

+
    +
  • +

    启动显示 以一种访问权限不允许的方式做了一个访问套接字的尝试 +出现这种情况在Windows中很常见,就是端口被占用,酷狗音乐会占用8000端口 +使用netstat -ano|findstr 8000 找到进程号 +使用taskkill /pid 进程号 /F

    +
  • +
  • +

    输入命令找不到smartchart +检查你是否有安装多个python环境出现环境变量冲突,请卸载一个或取消一个环境变量

    +
  • +
  • +

    如法安装pip +请确认在安装python时,有没有加入环境变量, 可自行加入, 或卸载重装

    +
  • +
  • +

    关于mac版本安装后的各种问题 +目前来看最大的可能是,/Library/Developer/CommandLineTools这个目录下有python3,应该是在某一个版本的Xcode command line tools安装时生成的 +可以先把python3全部卸载,再重新按说明安装,命令行中输入python3 和 pip3, 找不到command时才说明完全卸载成功

    +
    sudo rm -rf /Library/Developer/CommandLineTools
    +sudo rm -f /usr/bin/python3
    +
  • +
  • +

    如果密码忘记了怎么办 +命令行输入smartchart changepassword 你的用户名

    +
  • +
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/10.其它/index.html b/docs/smartchart/docs/10.其它/index.html new file mode 100644 index 0000000..906f868 --- /dev/null +++ b/docs/smartchart/docs/10.其它/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +10.其它 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 10.其它 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/10.其它/index.xml b/docs/smartchart/docs/10.其它/index.xml new file mode 100644 index 0000000..f825d2e --- /dev/null +++ b/docs/smartchart/docs/10.其它/index.xml @@ -0,0 +1,31 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/10.%E5%85%B6%E5%AE%83/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/10.%E5%85%B6%E5%AE%83/FAQ/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/10.%E5%85%B6%E5%AE%83/FAQ/ + FAQ # 启动显示 以一种访问权限不允许的方式做了一个访问套接字的尝试 出现这种情况在Windows中很常见,就是端口被占用,酷狗音乐会占用8000端口 使用netstat -ano|findstr 8000 找到进程号 使用taskkill /pid 进程号 /F +输入命令找不到smartchart 检查你是否有安装多个python环境出现环境变量冲突,请卸载一个或取消一个环境变量 +如法安装pip 请确认在安装python时,有没有加入环境变量, 可自行加入, 或卸载重装 +关于mac版本安装后的各种问题 目前来看最大的可能是,/Library/Developer/CommandLineTools这个目录下有python3,应该是在某一个版本的Xcode command line tools安装时生成的 可以先把python3全部卸载,再重新按说明安装,命令行中输入python3 和 pip3, 找不到command时才说明完全卸载成功 +sudo rm -rf /Library/Developer/CommandLineTools sudo rm -f /usr/bin/python3 如果密码忘记了怎么办 命令行输入smartchart changepassword 你的用户名 + + + + + https://smartchart.gitee.io/docs/10.%E5%85%B6%E5%AE%83/%E8%AF%95%E7%94%A8%E6%BF%80%E6%B4%BB%E8%AF%B4%E6%98%8E/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/10.%E5%85%B6%E5%AE%83/%E8%AF%95%E7%94%A8%E6%BF%80%E6%B4%BB%E8%AF%B4%E6%98%8E/ + 试用专业版激活码需要每3天激活一次,激活方式: 由于开发很忙, 文档可能会写得有不尽之处, 多多包涵 + + + + diff --git a/docs/smartchart/docs/10.其它/试用激活说明/index.html b/docs/smartchart/docs/10.其它/试用激活说明/index.html new file mode 100644 index 0000000..78daa7f --- /dev/null +++ b/docs/smartchart/docs/10.其它/试用激活说明/index.html @@ -0,0 +1,1634 @@ + + + + + + + + + + + + + + +试用激活说明 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 试用激活说明 + + +
+ + + + + + +
+ + + +

试用专业版激活码需要每3天激活一次,激活方式: + +由于开发很忙, 文档可能会写得有不尽之处, 多多包涵

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/11.部署指南/Linux/SQLite3版本错误/index.html b/docs/smartchart/docs/11.部署指南/Linux/SQLite3版本错误/index.html new file mode 100644 index 0000000..926a161 --- /dev/null +++ b/docs/smartchart/docs/11.部署指南/Linux/SQLite3版本错误/index.html @@ -0,0 +1,1669 @@ + + + + + + + + + + + + + + +Sqlite3版本错误 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Sqlite3版本错误 + + +
+ + + + + + +
+ + + +

SQLite3版本错误 +在部分操作系统下(比如CentOS 7)使用SQLite3数据库运行会出现如下的错误提示:

+
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
+

这表明操作系统自带的sqlite3版本过低,需要将系统的sqlite3进行升级。

+

以下是一种方法,来自于 StackOverlow:

+

1、下载新版本的SQLite3

+
wget https://www.sqlite.org/2019/sqlite-autoconf-3290000.tar.gz
+

2、解压文件

+
tar zxvf sqlite-autoconf-3290000.tar.gz
+

3、进行解压后的目录

+
cd sqlite-autoconf-3290000
+

4、配置安装目录

+
./configure --prefix=$HOME/opt/sqlite
+

5、编译安装

+
make && make install
+

6、指定环境变量

+
export PATH=$HOME/opt/sqlite/bin:$PATH
+export LD_LIBRARY_PATH=$HOME/opt/sqlite/lib
+export LD_RUN_PATH=$HOME/opt/sqlite/lib
+

完成之后可以运行sqlite3 –version 命令来查看当前的SQLite3版本。

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/11.部署指南/Linux/index.html b/docs/smartchart/docs/11.部署指南/Linux/index.html new file mode 100644 index 0000000..0aaa179 --- /dev/null +++ b/docs/smartchart/docs/11.部署指南/Linux/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +Linux | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Linux + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/11.部署指南/Linux/index.xml b/docs/smartchart/docs/11.部署指南/Linux/index.xml new file mode 100644 index 0000000..60980f3 --- /dev/null +++ b/docs/smartchart/docs/11.部署指南/Linux/index.xml @@ -0,0 +1,45 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/ + 涉及的基础环境和版本: # * Centos 7 * Python 3.9 /data/smartchart/ 项目主目录 /data/smartchart/tools 项目相关软件 下述内容中,凡是涉及到/data/smartchart路径的,都可以将其修改为你自己系统上的路径。 安装环境 # 安装Python # cd /data/smartchart/tools yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel 下载https://npm.taobao.org/mirrors/python/3.9.0/ 上传服务器,放入安装目录解压 或者 Wget https://npm.taobao.org/mirrors/python/3.9.0/Python-3.9.0.tgz tar -zxvf Python-3.9.0.tgz 进行源码目录 配置安装路径 ./Python-3.9.0/configure --prefix=/data/smartchart/tools/python3 编译安装 make &amp;&amp; make install 建立软链接 ln -s /data/smartchart/tools/python3/bin/python3.9 /usr/bin/python3 ln -s /data/smartchart/tools/python3/bin/pip3.9 /usr/bin/pip3 测试是否安装成功 python3 --version 建立python虚拟环境 # python3 -m venv myvenv cd myvenv source bin/activate 在虚拟环境中安装smartchart # pip3 install -i https://pypi. + + + + + https://smartchart.gitee.io/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/SQLite3%E7%89%88%E6%9C%AC%E9%94%99%E8%AF%AF/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/SQLite3%E7%89%88%E6%9C%AC%E9%94%99%E8%AF%AF/ + SQLite3版本错误 在部分操作系统下(比如CentOS 7)使用SQLite3数据库运行会出现如下的错误提示: +django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17). 这表明操作系统自带的sqlite3版本过低,需要将系统的sqlite3进行升级。 +以下是一种方法,来自于 StackOverlow: +1、下载新版本的SQLite3 +wget https://www.sqlite.org/2019/sqlite-autoconf-3290000.tar.gz 2、解压文件 +tar zxvf sqlite-autoconf-3290000.tar.gz 3、进行解压后的目录 +cd sqlite-autoconf-3290000 4、配置安装目录 +./configure --prefix=$HOME/opt/sqlite 5、编译安装 +make &amp;&amp; make install 6、指定环境变量 +export PATH=$HOME/opt/sqlite/bin:$PATH export LD_LIBRARY_PATH=$HOME/opt/sqlite/lib export LD_RUN_PATH=$HOME/opt/sqlite/lib 完成之后可以运行sqlite3 &ndash;version 命令来查看当前的SQLite3版本。 + + + + + https://smartchart.gitee.io/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/%E7%94%9F%E4%BA%A7%E9%83%A8%E7%BD%B2/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/%E7%94%9F%E4%BA%A7%E9%83%A8%E7%BD%B2/ + 购买专业版本,提供企业生产部署及无网离线部署方案 + + + + diff --git a/docs/smartchart/docs/11.部署指南/Linux/快速开始/index.html b/docs/smartchart/docs/11.部署指南/Linux/快速开始/index.html new file mode 100644 index 0000000..b48602a --- /dev/null +++ b/docs/smartchart/docs/11.部署指南/Linux/快速开始/index.html @@ -0,0 +1,1714 @@ + + + + + + + + + + + + + + +快速开始 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 快速开始 + + +
+ + + + + + +
+ + + +

+ 涉及的基础环境和版本: + # +

+
* Centos 7
+* Python 3.9
+/data/smartchart/   项目主目录
+/data/smartchart/tools  项目相关软件
+下述内容中,凡是涉及到/data/smartchart路径的,都可以将其修改为你自己系统上的路径。
+

+ 安装环境 + # +

+

+ 安装Python + # +

+
cd /data/smartchart/tools
+yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
+下载https://npm.taobao.org/mirrors/python/3.9.0/
+上传服务器,放入安装目录解压 或者
+Wget https://npm.taobao.org/mirrors/python/3.9.0/Python-3.9.0.tgz
+tar -zxvf Python-3.9.0.tgz
+
+进行源码目录
+配置安装路径
+./Python-3.9.0/configure --prefix=/data/smartchart/tools/python3
+编译安装
+make && make install
+建立软链接
+ln -s /data/smartchart/tools/python3/bin/python3.9 /usr/bin/python3
+ln -s /data/smartchart/tools/python3/bin/pip3.9 /usr/bin/pip3
+测试是否安装成功
+python3  --version
+

+ 建立python虚拟环境 + # +

+
python3 -m venv myvenv
+cd myvenv
+source bin/activate
+

+ 在虚拟环境中安装smartchart + # +

+
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple smartchart -U
+

+ 启动smartchart(测试部署), 企业部署方式可有尝咨询 + # +

+
smartchart runserver 0.0.0.0:8000 --insecure --noreload
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/11.部署指南/Linux/生产部署/index.html b/docs/smartchart/docs/11.部署指南/Linux/生产部署/index.html new file mode 100644 index 0000000..3b22d35 --- /dev/null +++ b/docs/smartchart/docs/11.部署指南/Linux/生产部署/index.html @@ -0,0 +1,1632 @@ + + + + + + + + + + + + + + +生产部署 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 生产部署 + + +
+ + + + + + +
+ + + +

购买专业版本,提供企业生产部署及无网离线部署方案

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/11.部署指南/index.html b/docs/smartchart/docs/11.部署指南/index.html new file mode 100644 index 0000000..60a1fb6 --- /dev/null +++ b/docs/smartchart/docs/11.部署指南/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +11.部署指南 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 11.部署指南 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/11.部署指南/index.xml b/docs/smartchart/docs/11.部署指南/index.xml new file mode 100644 index 0000000..71952bc --- /dev/null +++ b/docs/smartchart/docs/11.部署指南/index.xml @@ -0,0 +1,9 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + diff --git a/docs/smartchart/docs/2.数据集说明/EXCEL数据/index.html b/docs/smartchart/docs/2.数据集说明/EXCEL数据/index.html new file mode 100644 index 0000000..f9d99aa --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/EXCEL数据/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +Excel数据 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Excel数据 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/EXCEL数据/index.xml b/docs/smartchart/docs/2.数据集说明/EXCEL数据/index.xml new file mode 100644 index 0000000..1798c05 --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/EXCEL数据/index.xml @@ -0,0 +1,29 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/EXCEL%E6%95%B0%E6%8D%AE/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/EXCEL%E6%95%B0%E6%8D%AE/%E4%BB%8EEXCEL%E7%B2%98%E8%B4%B4%E6%95%B0%E6%8D%AE/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/EXCEL%E6%95%B0%E6%8D%AE/%E4%BB%8EEXCEL%E7%B2%98%E8%B4%B4%E6%95%B0%E6%8D%AE/ + 固定数据集 # 有一些场景, 比如已有一些固定的筛选器,或是需要测试用,或者Demo,或者其它图形需要用到一些共用的已确定好的数据 这样我们可以不需要通过查询数据库的方式, 而直接写入数据集, 支持数组和字典的格式 你只需要在数据集中起始写入 dataset= , 这样就是默认是固定数据 +如何快速的输入固定数据集, 你可以通过直接从EXCEL复制到数据集编辑器(以下图片非目前编辑器, 供参考),保存以后会自动生成: 固定数据集也支持之前提到传参数, 魔术方法, 缓存等所有数据集的功能 + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/EXCEL%E6%95%B0%E6%8D%AE/%E6%95%B0%E6%8D%AE%E4%B8%8A%E4%BC%A0/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/EXCEL%E6%95%B0%E6%8D%AE/%E6%95%B0%E6%8D%AE%E4%B8%8A%E4%BC%A0/ + 用户如何上传文件 # smartchart默认是不自带文件上传功能 但是smartchart是可以自已创造上传页面, 在模板商店中你可以找到相关模板进行购买 然后通过模板下载的方式下载后进行操作 这样每一个页面是可以单独使用权限控制的,就和控制报表权限一样,你还可能按需随意定制页面 关于上传文件的路径 # 默认的上传主目录是在项目的log的文件夹下面, 你可以在setting.py(自定义django) 或 config.ini中设定UPLOAD_PATH来修改你的上传目录 比如你上传页面的报表ID是23, 那么文件将会被上传到UPLOAD_PATH/23/你的文件名 +如何使用上传的文件 # 你需要使用 python连接器, 来操作你的上传的数据, 内置了变量ds_path为你的上传目录, 所以可以更方便的读取上传的文件,如上文件 df = pd.read_excel(ds_path+&rsquo;/23/文件名') + + + + diff --git a/docs/smartchart/docs/2.数据集说明/EXCEL数据/从EXCEL粘贴数据/index.html b/docs/smartchart/docs/2.数据集说明/EXCEL数据/从EXCEL粘贴数据/index.html new file mode 100644 index 0000000..a57a29c --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/EXCEL数据/从EXCEL粘贴数据/index.html @@ -0,0 +1,1678 @@ + + + + + + + + + + + + + + +从 Excel粘贴数据 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 从 Excel粘贴数据 + + +
+ + + + + + +
+ + + +

+ 固定数据集 + # +

+

有一些场景, 比如已有一些固定的筛选器,或是需要测试用,或者Demo,或者其它图形需要用到一些共用的已确定好的数据 +这样我们可以不需要通过查询数据库的方式, 而直接写入数据集, 支持数组和字典的格式 +你只需要在数据集中起始写入 dataset= , 这样就是默认是固定数据

+
    +
  • +

    如何快速的输入固定数据集, 你可以通过直接从EXCEL复制到数据集编辑器(以下图片非目前编辑器, 供参考),保存以后会自动生成: + + 输入图片说明 + + 输入图片说明

    +
  • +
  • +

    固定数据集也支持之前提到传参数, 魔术方法, 缓存等所有数据集的功能 + + 输入图片说明

    +
  • +
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/EXCEL数据/数据上传/index.html b/docs/smartchart/docs/2.数据集说明/EXCEL数据/数据上传/index.html new file mode 100644 index 0000000..c65baef --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/EXCEL数据/数据上传/index.html @@ -0,0 +1,1685 @@ + + + + + + + + + + + + + + +数据上传 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 数据上传 + + +
+ + + + + + +
+ + + +

+ 用户如何上传文件 + # +

+

smartchart默认是不自带文件上传功能 +但是smartchart是可以自已创造上传页面, 在模板商店中你可以找到相关模板进行购买 +然后通过模板下载的方式下载后进行操作 +这样每一个页面是可以单独使用权限控制的,就和控制报表权限一样,你还可能按需随意定制页面 + + 输入图片说明

+

+ 关于上传文件的路径 + # +

+

默认的上传主目录是在项目的log的文件夹下面, +你可以在setting.py(自定义django) 或 config.ini中设定UPLOAD_PATH来修改你的上传目录 +比如你上传页面的报表ID是23, 那么文件将会被上传到UPLOAD_PATH/23/你的文件名

+

+ 如何使用上传的文件 + # +

+

你需要使用 + python连接器, 来操作你的上传的数据, 内置了变量ds_path为你的上传目录, 所以可以更方便的读取上传的文件,如上文件 +df = pd.read_excel(ds_path+’/23/文件名')

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/SQL数据集/index.html b/docs/smartchart/docs/2.数据集说明/SQL数据集/index.html new file mode 100644 index 0000000..c544c91 --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/SQL数据集/index.html @@ -0,0 +1,1871 @@ + + + + + + + + + + + + + + +Sql数据集 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Sql数据集 + + +
+ + + + + + +
+ + + +

SmartChart标准数据集你可以想象为一个EXCEL的二维表, 有行和列 +你直接在数据集开发界面填写SQL即可

+

+ 标准图形的数据表类型 + # +

+

+ A类数据源 + # +

+
比如你的原始数据库中表的格式如下, 表名tb_name:
+城市    户型    数量
+长沙    A       12
+长沙    A       23
+上海    B       19
+
+查询的sql: select 城市,户型,sum(数量) AS 数量 from tb_name group by 城市,户型
+正常的查询的结果为:
+[['城市','户型','数量'],
+ ['长沙','A',35],
+ ['上海','B ',19]]
+由于生成的数据格式第二行是 [字符,字符,数值], 后台会自动进行转列动作, 
+生成图表更容易使用格式:
+[['Categroy','A','B'],
+ ['长沙',     35, 0],
+ ['上海',     0, 19]]
+

+ B类数据源 + # +

+
再比如我们有一个表的数据格式, 指标是展开的:
+城市    A     B
+长沙    10    12
+上海    11    19
+长沙    9     10
+
+我们可以写的sql是:
+select 城市, sum(A) as A, sum(B) as B from tb_name group by 城市
+这样得到的结果是:
+[['城市','A','B'],
+ ['长沙', 19, 22],
+ ['上海', 11, 19]]
+和我们的标准格式也是一样的
+

+ SQL多段查询 + # +

+

有时你一个数据集可能只用一个SQL查询还不够,比如你需要一个清单数据,同时你需要一个汇总数据做为说明在图形中显示,这样你就需要使用多条SQL语句,在数据集中的写法你只需要用分号隔开,如:

+
select ... from xxx;
+select ..... from xxxxxxx
+
+传递到图形中的格式为:
+{"df0":[[...]]. "df1":[[......]]}
+df0, df1分别对应的是第一段和第二段查询
+

+ 多段查询使用视屏参考

+

+ 支持的数据源: + # +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
数据库驱动填写需安装使用说明
Mysqlmysql默认支持
Mysql连接池mysqlpool
Sqlitesqlite默认支持连接地址填写绝对路径
API任意默认支持参考数据集说明文档
EXCEL任意默认支持参考数据集说明文档
SQL Servermssql需安装 pip install pymssql
SQL Server连接池mssqlpool
ORACLEoraclepip install cx_Oracle
ORACLE连接池oraclepool
PostgreSqlgppip install psycopg2
GPgppip install psycopg2
Impalaimpalapip install impyla
Hivehivepip install impyla
DB2db2pip install ibm_db
达梦dmpip install dmPython
Pythonpythonpip install pandas, openpyxl参考数据集->特殊数据源
Redisredispip install redis参考数据集->特殊数据源
Mongodbmongodbpip install pymongo参考数据集->特殊数据源
Clickhouseclickhousepip install clickhouse_driver
Elasticsearchespip install elasticsearch==7.13.0参考数据集->特殊数据源
Sqlalchemysqlalchemypip install sqlalchemy参考数据集->特殊数据源
JDBCjdbcpip install JayDeBeApi参考数据集->特殊数据源
自定义自定义用户自由定义参考数据集->特殊数据源
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/index.html b/docs/smartchart/docs/2.数据集说明/index.html new file mode 100644 index 0000000..1a5fea6 --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +2.数据集说明 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 2.数据集说明 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/index.xml b/docs/smartchart/docs/2.数据集说明/index.xml new file mode 100644 index 0000000..1af80ba --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/index.xml @@ -0,0 +1,63 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E6%95%B0%E6%8D%AE%E9%9B%86%E5%BC%80%E5%8F%91%E7%95%8C%E9%9D%A2/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E6%95%B0%E6%8D%AE%E9%9B%86%E5%BC%80%E5%8F%91%E7%95%8C%E9%9D%A2/ + 开发前建意先观看视屏, 了解基础说明, 视屏有点老和现在界面不一样, 目前很多功能已经做成可视化配置, 理解过程即可, 具体以文档为准 +Smartchart数据集与图形 从仪表盘界面中进入简易开发界面 # + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/SQL%E6%95%B0%E6%8D%AE%E9%9B%86/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/SQL%E6%95%B0%E6%8D%AE%E9%9B%86/ + SmartChart标准数据集你可以想象为一个EXCEL的二维表, 有行和列 你直接在数据集开发界面填写SQL即可 +标准图形的数据表类型 # A类数据源 # 比如你的原始数据库中表的格式如下, 表名tb_name: 城市 户型 数量 长沙 A 12 长沙 A 23 上海 B 19 查询的sql: select 城市,户型,sum(数量) AS 数量 from tb_name group by 城市,户型 正常的查询的结果为: [[&#39;城市&#39;,&#39;户型&#39;,&#39;数量&#39;], [&#39;长沙&#39;,&#39;A&#39;,35], [&#39;上海&#39;,&#39;B &#39;,19]] 由于生成的数据格式第二行是 [字符,字符,数值], 后台会自动进行转列动作, 生成图表更容易使用格式: [[&#39;Categroy&#39;,&#39;A&#39;,&#39;B&#39;], [&#39;长沙&#39;, 35, 0], [&#39;上海&#39;, 0, 19]] B类数据源 # 再比如我们有一个表的数据格式, 指标是展开的: 城市 A B 长沙 10 12 上海 11 19 长沙 9 10 我们可以写的sql是: select 城市, sum(A) as A, sum(B) as B from tb_name group by 城市 这样得到的结果是: [[&#39;城市&#39;,&#39;A&#39;,&#39;B&#39;], [&#39;长沙&#39;, 19, 22], [&#39;上海&#39;, 11, 19]] 和我们的标准格式也是一样的 SQL多段查询 # 有时你一个数据集可能只用一个SQL查询还不够,比如你需要一个清单数据,同时你需要一个汇总数据做为说明在图形中显示,这样你就需要使用多条SQL语句,在数据集中的写法你只需要用分号隔开,如: + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E5%85%B1%E4%BA%AB%E6%95%B0%E6%8D%AE%E9%9B%86/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E5%85%B1%E4%BA%AB%E6%95%B0%E6%8D%AE%E9%9B%86/ + 应用场景 # 优化查询, 可一个数据集查询完所有数据进行分发 减少重复查询的浪费, 同一个数据只查询一次 使用方法 # 在数据开发界面点击按钮就可以切换成共享数据集/普通数据集 切换完成, 你会发现数据集消失,然后图标跑到菜单上面去了, 你可以在此修改你的查询 在”高级“ 中配置 这样1,2号图形都映射到了共享数据集的数据 你也可以在数据集中写多个SQL查询 在”高级“ 设定中进行数据映射 观察1,2 号图形的变化 + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E6%95%B0%E6%8D%AE%E9%9B%86%E6%95%B0%E6%8D%AE%E5%88%B7%E6%96%B0/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E6%95%B0%E6%8D%AE%E9%9B%86%E6%95%B0%E6%8D%AE%E5%88%B7%E6%96%B0/ + 数据刷新设定方法 # smartchart提供非常精细的数据刷新功能,及内存加速功能 你可以在数据集开发界面,点击连接的图标,进行设定 定时刷新 # 你可以设定前端页面数据集向后端请求刷新的时间间隔,单位秒 +如果你发现定时刷新,数据并没有变化,可能原因是您数据的缓存时间设定大于定时刷新的时间 +数据集缓存加速(PRO) # smartchart专业版提供内存加速技术,对数据库仅需请求一次,之后都是毫秒级响应 +间隔时间刷新,单位分钟,如设定 间隔时间为0.5, 则如果下一次访问时间超过30秒, 即触发数据刷新 固定时点刷新, 如设定 间隔时间 为-1, 则固定时点刷新, 即访问的时间超过固定的时点时(如下图每天09:25), 触发数据刷新 强制刷新, 访问url加上&amp;refresh=Y, 则强制刷新数据, 此刷新不会影响间隔或固定刷新的时间, 不会更新下次同步时间 后台触发强制刷新 (PRO) # 请参考文档 后台主动触发刷新 + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E6%95%B0%E6%8D%AE%E9%9B%86%E6%87%92%E5%8A%A0%E8%BD%BD/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E6%95%B0%E6%8D%AE%E9%9B%86%E6%87%92%E5%8A%A0%E8%BD%BD/ + 应用场景 # 类似于前后端开发, 后端会提供一些接口给前端, 但前端不一定需要在一打开页面就进行查询接口, 而是当有需要时再查询, 比如数据下载, 只有当用户有下载需求时再加载, 再比如有些与后台的数据联动, 我们只需要第一次加载时只显示第一层级, 点击时再加载其它层级 +开启数据集懒加载 # 你可以点击数据集的开发界面的&quot;连接&quot; 图标, 将&quot;前端刷新(秒)&quot; 修改为-1 这时当打开仪表盘时, 此数据集不会被加载 +应用 # 一般懒加载数据集主要是用来做数据查询的, 所以并不太需要显示图形, 所以我们主要是用于在图形中进行赋值操作 比如先在模板中定义一个全局变量: 然后修改图形编辑中的代码: 即刷新数据集时会进行变量赋值 如果您使用VUE, 那么会更方便, 你可以直接使用vapp.变量名 = dataset进行赋值 +查询数据 # 你可以随时手动触发数据集的刷新, 比如懒加载的数据集序号为0 你可以在你需要触发刷新的地方调用ds_refresh(0)即可刷新0号数据集并执行0号数据集中的JS代码 +TIPS 可以将懒加载的数据集同时转化为共享数据集(参考上文), 懒加载数据集将移到菜单栏显示 + + + + diff --git a/docs/smartchart/docs/2.数据集说明/共享数据集/index.html b/docs/smartchart/docs/2.数据集说明/共享数据集/index.html new file mode 100644 index 0000000..017e1b4 --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/共享数据集/index.html @@ -0,0 +1,1706 @@ + + + + + + + + + + + + + + +共享数据集 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 共享数据集 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+
    +
  • 优化查询, 可一个数据集查询完所有数据进行分发
  • +
  • 减少重复查询的浪费, 同一个数据只查询一次
  • +
+

+ 使用方法 + # +

+
    +
  • +

    在数据开发界面点击按钮就可以切换成共享数据集/普通数据集 + + 输入图片说明

    +
  • +
  • +

    切换完成, 你会发现数据集消失,然后图标跑到菜单上面去了, 你可以在此修改你的查询 + + 输入图片说明

    +
  • +
  • +

    在”高级“ 中配置 + + 输入图片说明

    +
  • +
  • +

    这样1,2号图形都映射到了共享数据集的数据 + + 输入图片说明

    +
  • +
  • +

    你也可以在数据集中写多个SQL查询 + + 输入图片说明

    +
  • +
  • +

    在”高级“ 设定中进行数据映射 + + 输入图片说明

    +
  • +
  • +

    观察1,2 号图形的变化 + + 输入图片说明

    +
  • +
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/数据集开发界面/index.html b/docs/smartchart/docs/2.数据集说明/数据集开发界面/index.html new file mode 100644 index 0000000..7140584 --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/数据集开发界面/index.html @@ -0,0 +1,1669 @@ + + + + + + + + + + + + + + +数据集开发界面 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 数据集开发界面 + + +
+ + + + + + +
+ + + +

开发前建意先观看视屏, 了解基础说明, 视屏有点老和现在界面不一样, +目前很多功能已经做成可视化配置, 理解过程即可, 具体以文档为准

+ +

+ 从仪表盘界面中进入简易开发界面 + # +

+

+ 输入图片说明

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/数据集懒加载/index.html b/docs/smartchart/docs/2.数据集说明/数据集懒加载/index.html new file mode 100644 index 0000000..4304d4d --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/数据集懒加载/index.html @@ -0,0 +1,1705 @@ + + + + + + + + + + + + + + +数据集懒加载 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 数据集懒加载 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+

类似于前后端开发, 后端会提供一些接口给前端, 但前端不一定需要在一打开页面就进行查询接口, 而是当有需要时再查询, +比如数据下载, 只有当用户有下载需求时再加载, +再比如有些与后台的数据联动, 我们只需要第一次加载时只显示第一层级, 点击时再加载其它层级

+

+ 开启数据集懒加载 + # +

+

你可以点击数据集的开发界面的"连接" 图标, 将"前端刷新(秒)" 修改为-1 +这时当打开仪表盘时, 此数据集不会被加载

+

+ 应用 + # +

+

一般懒加载数据集主要是用来做数据查询的, 所以并不太需要显示图形, 所以我们主要是用于在图形中进行赋值操作 +比如先在模板中定义一个全局变量: + + 输入图片说明 +然后修改图形编辑中的代码: + + 输入图片说明 +即刷新数据集时会进行变量赋值 +如果您使用VUE, 那么会更方便, 你可以直接使用vapp.变量名 = dataset进行赋值

+

+ 查询数据 + # +

+

你可以随时手动触发数据集的刷新, 比如懒加载的数据集序号为0 +你可以在你需要触发刷新的地方调用ds_refresh(0)即可刷新0号数据集并执行0号数据集中的JS代码

+
+

TIPS +可以将懒加载的数据集同时转化为共享数据集(参考上文), 懒加载数据集将移到菜单栏显示

+
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/数据集数据刷新/index.html b/docs/smartchart/docs/2.数据集说明/数据集数据刷新/index.html new file mode 100644 index 0000000..4af3587 --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/数据集数据刷新/index.html @@ -0,0 +1,1699 @@ + + + + + + + + + + + + + + +数据集数据刷新 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 数据集数据刷新 + + +
+ + + + + + +
+ + + +

+ 数据刷新设定方法 + # +

+

smartchart提供非常精细的数据刷新功能,及内存加速功能 +你可以在数据集开发界面,点击连接的图标,进行设定 + + 输入图片说明

+

+ 定时刷新 + # +

+

你可以设定前端页面数据集向后端请求刷新的时间间隔,单位秒

+
+

如果你发现定时刷新,数据并没有变化,可能原因是您数据的缓存时间设定大于定时刷新的时间

+
+

+ 数据集缓存加速(PRO) + # +

+

smartchart专业版提供内存加速技术,对数据库仅需请求一次,之后都是毫秒级响应

+
    +
  • 间隔时间刷新,单位分钟,如设定 间隔时间为0.5, 则如果下一次访问时间超过30秒, 即触发数据刷新
  • +
  • 固定时点刷新, 如设定 间隔时间 为-1, 则固定时点刷新, 即访问的时间超过固定的时点时(如下图每天09:25), 触发数据刷新
  • +
  • 强制刷新, 访问url加上&refresh=Y, 则强制刷新数据, 此刷新不会影响间隔或固定刷新的时间, 不会更新下次同步时间
  • +
+

+ 后台触发强制刷新 (PRO) + # +

+

请参考文档 + 后台主动触发刷新

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/特殊数据源/API数据集/index.html b/docs/smartchart/docs/2.数据集说明/特殊数据源/API数据集/index.html new file mode 100644 index 0000000..1aed6db --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/特殊数据源/API数据集/index.html @@ -0,0 +1,1665 @@ + + + + + + + + + + + + + + +Api数据集 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Api数据集 + + +
+ + + + + + +
+ + + +

对接外部API取数, 注意返回一定要是JSON格式 +你只需要在数据集编辑框中如下输入

+
-- GET 方法:
+dataset= {
+"url":"https://www.smartchart.cn/smartdata/api/?i=loaddataset1&j=1"
+}
+
+-- POST 方法:
+dataset= {
+"url":"https://www.smartchart.cn/smartdata/api",
+"method":"POST",
+"data":{"i":"loaddataset1", "j":"1"}
+ ...
+}
+

例如你可以传入参数做出联动效果

+
dataset= {
+"url":"https://www.smartchart.cn/smartdata/api",
+"method":"POST",
+"data":{"i":"loaddataset1", "j":"/*$参数名*/"}
+...
+}
+

你也可以增加header等认证方式

+
dataset= {
+"url":"https://www.smartchart.cn/smartdata/api",
+"method":"GET",
+"headers":{"Cookie":"xxxxxxx"}
+...
+}
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/特殊数据源/Elasticsearch数据源/index.html b/docs/smartchart/docs/2.数据集说明/特殊数据源/Elasticsearch数据源/index.html new file mode 100644 index 0000000..04b8abe --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/特殊数据源/Elasticsearch数据源/index.html @@ -0,0 +1,1790 @@ + + + + + + + + + + + + + + +Elasticsearch数据源 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Elasticsearch数据源 + + +
+ + + + + + +
+ + + +

+ 数据源配置方法 + # +

+

+ 输入图片说明

+

+ 查询方法 + # +

+

+ 输入图片说明

+
+ 更多查询方法参考 + # +
+
模糊查询
+body = {
+    'query': {  # 查询命令
+        'match': {  # 查询方法:模糊查询(会被分词)。比如此代码,会查到只包含:“我爱你”, “中国”的内容
+            'name': '刘'
+        }
+    },
+  'size': 20  # 不指定默认是10,最大值不超过10000(可以修改,但是同时会增加数据库压力)
+}
+
+term,精准单值查询
+# 注:此方法只能查询一个字段,且只能指定一个值。类似于mysql中的where ziduan='a'
+body ={   
+    'query':{
+        'term':{
+            'ziduan1.keyword': '刘婵'  # 查询内容等于“我爱你中国的”的数据。查询中文,在字段后面需要加上.keyword
+         # 'ziduan2': 'liuchan'
+        }
+    }
+}
+erms,精准多值查询
+#此方法只能查询一个字段,但可以同时指定多个值。类似于mysql中的where ziduan in (a, b,c...)
+body ={   
+    "query":{
+        "terms":{
+            "ziduan1.keyword": ["刘婵", "赵云"]  # 查询ziduan1="刘婵"或=赵云...的数据
+        }
+    }
+}
+multi_match,多字段查询
+# 查询多个字段中都包含指定内容的数据
+body = {
+    "query":{
+        "multi_match":{
+            "query":"我爱你中国",  # 指定查询内容,注意:会被分词
+            "fields":["ziduan1", "ziduan2"]  # 指定字段
+        }
+    }
+}
+
+prefix,前缀查询
+body = {
+    'query': {
+        'prefix': { 
+            'ziduan.keyword': '我爱你'  # 查询前缀是指定字符串的数据
+        }
+    }
+}
+
+# 注:英文不需要加keyword
+
+wildcard,通配符查询
+body = {
+    'query': {
+        'wildcard': {
+            'ziduan1.keyword': '?刘婵*'  # ?代表一个字符,*代表0个或多个字符
+        }
+    }
+}
+# 注:此方法只能查询单一格式的(都是英文字符串,或者都是汉语字符串)。两者混合不能查询出来。
+
+regexp,正则匹配
+body = {
+    'query': {
+        'regexp': {
+            'ziduan1': 'W[0-9].+'   # 使用正则表达式查询
+        }
+    }
+}
+bool,多条件查询
+# must:[] 各条件之间是and的关系
+body = {
+        "query":{
+            "bool":{
+                'must': [{"term":{'ziduan1.keyword': '我爱你中国'}},
+                         {'terms': {'ziduan2': ['I love', 'China']}}]
+            }
+        }
+    }
+
+# should: [] 各条件之间是or的关系
+body = {
+        "query":{
+            "bool":{
+                'should': [{"term":{'ziduan1.keyword': '我爱你中国'}},
+                         {'terms': {'ziduan2': ['I love', 'China']}}]
+            }
+        }
+    }
+
+# must_not:[]各条件都不满足
+body = {
+        "query":{
+            "bool":{
+                'must_not': [{"term":{'ziduan1.keyword': '我爱你中国'}},
+                         {'terms': {'ziduan2': ['I love', 'China']}}]
+            }
+        }
+    }
+
+
+
+# bool嵌套bool
+# ziduan1、ziduan2条件必须满足的前提下,ziduan3、ziduan4满足一个即可
+body = {
+    "query":{
+        "bool":{
+            "must":[{"term":{"ziduan1":"China"}},  #  多个条件并列  ,注意:must后面是[{}, {}],[]里面的每个条件外面有个{}
+                    {"term":{"ziduan2.keyword": '我爱你中国'}},
+                    {'bool': {
+                        'should': [
+                            {'term': {'ziduan3': 'Love'}},
+                            {'term': {'ziduan4': 'Like'}}
+                        ]
+                    }}
+            ]
+        }
+    }
+}
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/特殊数据源/JDBC数据源/index.html b/docs/smartchart/docs/2.数据集说明/特殊数据源/JDBC数据源/index.html new file mode 100644 index 0000000..8c50d8d --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/特殊数据源/JDBC数据源/index.html @@ -0,0 +1,1680 @@ + + + + + + + + + + + + + + +Jdbc数据源 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Jdbc数据源 + + +
+ + + + + + +
+ + + +
+ 应用场景 + # +
+

当无法在python中找到连接库时, 你还可以采用jdbc的连接方式

+
+ 使用方法 + # +
+
    +
  • 首先您需要安装jdbc的包
  • +
+
pip install JayDeBeApi
+
    +
  • 在任意的一个仪表盘的 “模板” 编辑器中, 点击上传资源的图标上传相应的jdbc JAR包即可
  • +
+

+ 输入图片说明

+
    +
  • 新建连接的方式, 以下使用impala为例 + + 输入图片说明
  • +
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/特殊数据源/Python数据集/index.html b/docs/smartchart/docs/2.数据集说明/特殊数据源/Python数据集/index.html new file mode 100644 index 0000000..e776f06 --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/特殊数据源/Python数据集/index.html @@ -0,0 +1,1704 @@ + + + + + + + + + + + + + + +Python数据集 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Python数据集 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+

当SQL查询无法满足你的需求, 你需要对查询后的结果进行处理, 或者你需要使用Excel的数据源, 甚至你需要对不同系统的数据进行查询, Python连接器可以帮到你 +我们又称他为万能数据集, 你可以使用任何python语法, +需要把数据集的结果赋值给ds变量!!

+

首先你需要新建python连接器, 由于安全控制只允许超级管理员建立 + + 输入图片说明

+
# 内置函数说明
+ds_get(id)    #输入目标数据集的id名, 可以获取目标数据集
+ds_df(id)     #输入目标数据集的id名, 转化成pandas的df对象
+ds_sql(conn_name, sql_str)     #输入连接池中的名称, SQL语句, 获取数据集
+ds_list(df)   #将pandas的df对象转化成数据集
+
+ 使用方法样列说明 + # +
+
# 读取Excel数据处理, 如需上传页面可参考"数据上传"说明
+import pandas as pd
+df = pd.read_excel('/Users/../smartdemo.xlsx', 'demo')
+df = df.groupby('c3').agg({'qty':'sum'}).reset_index()
+ds = ds_list(df)
+
+#从数据集获取数据
+ds=ds_get(12)
+ds=ds[:15]
+
+#从数据集获取数据转化成pandas对象处理
+df = ds_df(12)
+df = df.sort_values(by="出场数", ascending=False)
+ds = ds_list(df)
+
+#可以生成字典格式的数据集供多个图形使用
+import pandas as pd
+df = pd.read_excel('/Users/../smartdemo.xlsx', 'demo')
+df1 = df.groupby('c3').agg({'qty':'sum'}).reset_index()
+df2 = df.groupby(['province','c3']).agg({'qty':'sum'}).reset_index()
+ds = {'df1': ds_list(df1), 'df2': ds_list(df2)}
+
+#可以直接执行SQL
+sql_str = '''select H1 as heroname, sum(qty) as 出场数 from T
+/* where H2 = '$H2' */
+group by H1 order by sum(qty) desc'''
+ds = ds_sql('XXX', sql_str)
+ds = ds[:10]
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/特殊数据源/Redis数据源/index.html b/docs/smartchart/docs/2.数据集说明/特殊数据源/Redis数据源/index.html new file mode 100644 index 0000000..063d2b2 --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/特殊数据源/Redis数据源/index.html @@ -0,0 +1,1702 @@ + + + + + + + + + + + + + + +Redis数据源 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Redis数据源 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+

你可能会有这样的一些需求, 展示数据是要通过外部的程序计算好,如一些实时的计算场景,用spark计算好的数据 或爬虫爬取的数据, 然后写入redis或nosql的数据库,最后由前端图形直接展示或数据下载,SmartChart支持这一块的应用

+

+ 使用方法 + # +

+

你可以创建一个redis的连接池, 然后按照通用的方法建立数据集 +不同的是, 数据集的SQL区不再是写sql代码, 而只需要写redis中的keyname

+

如redis中存储的数据是keyname 为 “指标A”, 数据 ‘{“长沙”:1,“上海”:2}’ +这样我们只需要在数据集中写上

+
指标A
+

即可, +最后你会得到{“长沙”:1,“上海”:2}的返回结果

+

如果你需要的是表格格式, 那么你只需要往redis中存入一个二维数组, 比如: +[[“省份”,“数量”],[“长沙”,1],[“上海”,2]]

+
+

注意数据存入redis为字符串格式,你可使用python的json.dumps来生成字符串格式存入

+
+
+ 当然我们也支持同一个数据中获取多个keyname + # +
+

比如还有一个"指标B", 数据是'12345' +我们可以同时写上两个指标,用分号隔开:

+
指标A;指标B
+

最后你会得到的结果是: +{ +“指标A”:{“长沙”:1,“上海”:2}, +“指标B”:12345 +}

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/特殊数据源/index.html b/docs/smartchart/docs/2.数据集说明/特殊数据源/index.html new file mode 100644 index 0000000..2e57bd8 --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/特殊数据源/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +特殊数据源 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 特殊数据源 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/特殊数据源/index.xml b/docs/smartchart/docs/2.数据集说明/特殊数据源/index.xml new file mode 100644 index 0000000..37c69fe --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/特殊数据源/index.xml @@ -0,0 +1,109 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/API%E6%95%B0%E6%8D%AE%E9%9B%86/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/API%E6%95%B0%E6%8D%AE%E9%9B%86/ + 对接外部API取数, 注意返回一定要是JSON格式 你只需要在数据集编辑框中如下输入 +-- GET 方法: dataset= { &#34;url&#34;:&#34;https://www.smartchart.cn/smartdata/api/?i=loaddataset1&amp;j=1&#34; } -- POST 方法: dataset= { &#34;url&#34;:&#34;https://www.smartchart.cn/smartdata/api&#34;, &#34;method&#34;:&#34;POST&#34;, &#34;data&#34;:{&#34;i&#34;:&#34;loaddataset1&#34;, &#34;j&#34;:&#34;1&#34;} ... } 例如你可以传入参数做出联动效果 +dataset= { &#34;url&#34;:&#34;https://www.smartchart.cn/smartdata/api&#34;, &#34;method&#34;:&#34;POST&#34;, &#34;data&#34;:{&#34;i&#34;:&#34;loaddataset1&#34;, &#34;j&#34;:&#34;/*$参数名*/&#34;} ... } 你也可以增加header等认证方式 +dataset= { &#34;url&#34;:&#34;https://www.smartchart.cn/smartdata/api&#34;, &#34;method&#34;:&#34;GET&#34;, &#34;headers&#34;:{&#34;Cookie&#34;:&#34;xxxxxxx&#34;} ... } + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/Python%E6%95%B0%E6%8D%AE%E9%9B%86/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/Python%E6%95%B0%E6%8D%AE%E9%9B%86/ + 应用场景 # 当SQL查询无法满足你的需求, 你需要对查询后的结果进行处理, 或者你需要使用Excel的数据源, 甚至你需要对不同系统的数据进行查询, Python连接器可以帮到你 我们又称他为万能数据集, 你可以使用任何python语法, 需要把数据集的结果赋值给ds变量!! +首先你需要新建python连接器, 由于安全控制只允许超级管理员建立 # 内置函数说明 ds_get(id) #输入目标数据集的id名, 可以获取目标数据集 ds_df(id) #输入目标数据集的id名, 转化成pandas的df对象 ds_sql(conn_name, sql_str) #输入连接池中的名称, SQL语句, 获取数据集 ds_list(df) #将pandas的df对象转化成数据集 使用方法样列说明 # # 读取Excel数据处理, 如需上传页面可参考&#34;数据上传&#34;说明 import pandas as pd df = pd.read_excel(&#39;/Users/../smartdemo.xlsx&#39;, &#39;demo&#39;) df = df.groupby(&#39;c3&#39;).agg({&#39;qty&#39;:&#39;sum&#39;}).reset_index() ds = ds_list(df) #从数据集获取数据 ds=ds_get(12) ds=ds[:15] #从数据集获取数据转化成pandas对象处理 df = ds_df(12) df = df.sort_values(by=&#34;出场数&#34;, ascending=False) ds = ds_list(df) #可以生成字典格式的数据集供多个图形使用 import pandas as pd df = pd.read_excel(&#39;/Users/../smartdemo.xlsx&#39;, &#39;demo&#39;) df1 = df. + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E6%BA%90/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E6%BA%90/ + smartchart已实现大部分常用的数据源连接, 对于其它的, 您也可以使用python数据源进行处理 但是使用python数据源有一定的缺陷, 需要在dataset上写python代码, 不能复用 对于一些带连接信息的还需要重复写入 所以你还可以使用自定义数据源 +应用场景 # 未内置的数据源, 如需要使用sparkSQL, ES等 标准处理满足不了要求, 需要对数据进行预处理的情况 需要刷新时触发预警等自定义动作 需要自定义写入方法, 个性化查询需求, 甚至是实时爬取数据 使用方法 # 首先你需要新建一个python脚本文件, 如diy_conn.py 复制以下代码到这个文件, 然后编写你的自定义查询方法 def dataset(*args, **kwargs): &#34;&#34;&#34; 返回查询数据集 :return: 二维数组或JSON字典 &#34;&#34;&#34; sqlList = args[0] # 数据集编辑界面的输入已按分号拆分成数组 [sql1, sql2...] config = args[1] # 相关的配置字典{&#39;host&#39;,&#39;port&#39;,&#39;user&#39;,&#39;password&#39;,&#39;db&#39;} # 插入你的数据查询及处理代码, 生成result即可 result = [[]] return result def insert_dataset(*args, **kwargs): &#34;&#34;&#34; 数据填表实现 &#34;&#34;&#34; contents = args[0] # 传入的数据集二维数组格式 table = args[1] # 配置中的表名 config = args[3] # 相关的配置字典{&#39;host&#39;,&#39;port&#39;,&#39;user&#39;,&#39;password&#39;,&#39;db&#39;} # 插入你的写入数据逻辑代码 在任意的仪表盘开发界面中 &ldquo;模板&rdquo; &ndash;&gt; 点击上传图标, 将这个python文件上传即可 新建数据源, 驱动填写之前上传过的文件名, 比如我们这个是diy_conn, 其它参数按照你自定义的需求填写, 会自动传入你的自定义函数 之后你可以正常使用这个自定义数据源了 + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/Elasticsearch%E6%95%B0%E6%8D%AE%E6%BA%90/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/Elasticsearch%E6%95%B0%E6%8D%AE%E6%BA%90/ + 数据源配置方法 # 查询方法 # 更多查询方法参考 # 模糊查询 body = { &#39;query&#39;: { # 查询命令 &#39;match&#39;: { # 查询方法:模糊查询(会被分词)。比如此代码,会查到只包含:“我爱你”, “中国”的内容 &#39;name&#39;: &#39;刘&#39; } }, &#39;size&#39;: 20 # 不指定默认是10,最大值不超过10000(可以修改,但是同时会增加数据库压力) } term,精准单值查询 # 注:此方法只能查询一个字段,且只能指定一个值。类似于mysql中的where ziduan=&#39;a&#39; body ={ &#39;query&#39;:{ &#39;term&#39;:{ &#39;ziduan1.keyword&#39;: &#39;刘婵&#39; # 查询内容等于“我爱你中国的”的数据。查询中文,在字段后面需要加上.keyword # &#39;ziduan2&#39;: &#39;liuchan&#39; } } } erms,精准多值查询 #此方法只能查询一个字段,但可以同时指定多个值。类似于mysql中的where ziduan in (a, b,c...) body ={ &#34;query&#34;:{ &#34;terms&#34;:{ &#34;ziduan1.keyword&#34;: [&#34;刘婵&#34;, &#34;赵云&#34;] # 查询ziduan1=&#34;刘婵&#34;或=赵云...的数据 } } } multi_match,多字段查询 # 查询多个字段中都包含指定内容的数据 body = { &#34;query&#34;:{ &#34;multi_match&#34;:{ &#34;query&#34;:&#34;我爱你中国&#34;, # 指定查询内容,注意:会被分词 &#34;fields&#34;:[&#34;ziduan1&#34;, &#34;ziduan2&#34;] # 指定字段 } } } prefix,前缀查询 body = { &#39;query&#39;: { &#39;prefix&#39;: { &#39;ziduan. + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/JDBC%E6%95%B0%E6%8D%AE%E6%BA%90/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/JDBC%E6%95%B0%E6%8D%AE%E6%BA%90/ + 应用场景 # 当无法在python中找到连接库时, 你还可以采用jdbc的连接方式 +使用方法 # 首先您需要安装jdbc的包 pip install JayDeBeApi 在任意的一个仪表盘的 &ldquo;模板&rdquo; 编辑器中, 点击上传资源的图标上传相应的jdbc JAR包即可 新建连接的方式, 以下使用impala为例 + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/kafka%E6%95%B0%E6%8D%AE%E6%BA%90/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/kafka%E6%95%B0%E6%8D%AE%E6%BA%90/ + 用于获取kafka指定分区的最后一条记录, 用于实时场景 使用方法参考&quot;自定义数据源&quot; 以下为参考代码: +def dataset(*args, **kwargs): &#34;&#34;&#34; 返回查询数据集 :return: 二维数组或JSON字典 &#34;&#34;&#34; from kafka import KafkaConsumer, TopicPartition import json sqlList = args[0] # 数据集编辑界面的输入已按分号拆分成数组 [sql1, sql2...] config = args[1] # 相关的配置字典{&#39;host&#39;,&#39;port&#39;,&#39;user&#39;,&#39;password&#39;,&#39;db&#39;} # 插入你的数据查询及处理代码, 生成result即可 result = {} consumer = KafkaConsumer(sasl_mechanism=&#39;PLAIN&#39;, security_protocol=&#39;SASL_PLAINTEXT&#39;, sasl_plain_username=config[&#39;user&#39;], sasl_plain_password=config[&#39;password&#39;], bootstrap_servers=config[&#39;host&#39;], auto_offset_reset=&#39;earliest&#39;, api_version=(1, 0, 0), consumer_timeout_ms=50, value_deserializer=lambda v: json.loads(v.decode(&#39;utf-8&#39;)), ) topic = sqlList[0] partition = int(config[&#39;db&#39;]) tp = TopicPartition(topic=topic, partition=partition) consumer.assign([tp]) end_offsets = consumer.end_offsets([tp]).get(tp) # 获取当前消费者最大偏移量 consumer.seek(tp, offset=end_offsets-1) for message in consumer: result = message. + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/mongodb%E6%95%B0%E6%8D%AE%E6%BA%90/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/mongodb%E6%95%B0%E6%8D%AE%E6%BA%90/ + 使用方法 # 连接池正常配置即可 数据集开发中,填写查询需求: {&#34;db&#34;: &#34;db1&#34;, &#34;table&#34;: &#34;tb1&#34;, &#34;filter&#34;: {&#34;name&#34;: &#34;Zarten&#34;}, &#34;projection&#34;: {&#34;_id&#34;: 0}, &#34;sort&#34;: [[&#34;_id&#34;, 1]], &#34;limit&#34;: 10} 由于返回的字典格式, 如需转化成二维数组, 可使图形中的转化函数ds_mapToList +let dataset=ds_mapToList(__dataset__); 参数说明: # 除table,其它都为可选参数 +参数 说明 样列 db 数库名,默认连接设定中db名 table 表名[必填] filter 筛选项,具体用法参考下文 {&ldquo;name&rdquo;: &ldquo;Zarten&rdquo;,&ldquo;date&rdquo;:&ldquo;2020-10-01&rdquo;} projection 显示列 {&ldquo;name&rdquo;: 1,&ldquo;date&rdquo;:1} sort 排序,-1为降序 [[&ldquo;date&rdquo;, -1]] limit 限定返回数量 filter条件说明 # 且条件 +{&#34;age&#34;:{&#34;$gt&#34;:22}, &#34;name&#34;:{&#34;$regex&#34;:&#34;user&#34;}} 或条件 +{ &#34;$or&#34;: [ {&#34;age&#34;: {&#34;$gt&#34;: 22}}, {&#34;name&#34;: {&#34;$regex&#34;: &#34;user&#34;}} ] } 比较查询 $lt和&lt;,$lte和&lt;=,$gt和&gt;,gte和&gt;=,ne和!=是一一对应的 {&#34;field_name&#34;: {&#34;$lt&#34;: value, &#34;$gt&#34;: value}} 关联查询$in和$nin {&#34;field_name&#34;: {&#34;$in&#34;: [1,5,8]}} $regex为模糊查询的字符串提供正则表达式功能 {&#34;$or&#34;: [{&#34;field_name&#34;: {&#39;$regex&#39;: value}},{&#34;field_name2&#34;: {&#34;$regex&#34;: value}}]} + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/Redis%E6%95%B0%E6%8D%AE%E6%BA%90/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/Redis%E6%95%B0%E6%8D%AE%E6%BA%90/ + 应用场景 # 你可能会有这样的一些需求, 展示数据是要通过外部的程序计算好,如一些实时的计算场景,用spark计算好的数据 或爬虫爬取的数据, 然后写入redis或nosql的数据库,最后由前端图形直接展示或数据下载,SmartChart支持这一块的应用 +使用方法 # 你可以创建一个redis的连接池, 然后按照通用的方法建立数据集 不同的是, 数据集的SQL区不再是写sql代码, 而只需要写redis中的keyname +如redis中存储的数据是keyname 为 &ldquo;指标A&rdquo;, 数据 &lsquo;{&ldquo;长沙&rdquo;:1,&ldquo;上海&rdquo;:2}&rsquo; 这样我们只需要在数据集中写上 +指标A 即可, 最后你会得到{&ldquo;长沙&rdquo;:1,&ldquo;上海&rdquo;:2}的返回结果 +如果你需要的是表格格式, 那么你只需要往redis中存入一个二维数组, 比如: [[&ldquo;省份&rdquo;,&ldquo;数量&rdquo;],[&ldquo;长沙&rdquo;,1],[&ldquo;上海&rdquo;,2]] +注意数据存入redis为字符串格式,你可使用python的json.dumps来生成字符串格式存入 +当然我们也支持同一个数据中获取多个keyname # 比如还有一个&quot;指标B&quot;, 数据是'12345' 我们可以同时写上两个指标,用分号隔开: +指标A;指标B 最后你会得到的结果是: { &ldquo;指标A&rdquo;:{&ldquo;长沙&rdquo;:1,&ldquo;上海&rdquo;:2}, &ldquo;指标B&rdquo;:12345 } + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/sqlalchemy%E8%BF%9E%E6%8E%A5/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/sqlalchemy%E8%BF%9E%E6%8E%A5/ + 常规的连接池的设定, 大家应该都很清楚了, Smartchart也支持sqlalchemy连接, 对于一些smartchart不支持的数据源可以使用此方法 配置方法: 只用填以上内容, 其它可留空 连接地址的写法参考sqlalchemy说明: +可选参数。一个标准的链接URL是这样的: dialect+driver://username:password@host:port/database dialect,是数据库类型,大概包括:sqlite, mysql, postgresql, oracle, or mssql. driver,是使用的数据库API,驱动,连接包,随便叫什么吧。 username,用户名 password,密码 host,网络地址,可以用ip,域名,计算机名,当然是你能访问到的。 port,数据库端口。 databas,数据库名。 其实这些也就dialect和dirver需要解释。 二:连接sqlite3 1,驱动 sqlite3是个文件数据库,不需要什么驱动,或者说python内置了驱动。 2,标准连接参数 # sqlite://&lt;nohostname&gt;/&lt;path&gt; 没有hostname 3,各种链接参数 # 相对路径,就是这个python文件同目录下foo.db engine = create_engine(&#39;sqlite:///foo.db&#39;) #绝对路径 #Unix/Mac下用四条////表示 engine = create_engine(&#39;sqlite:////absolute/path/to/foo.db&#39;) #Windows下用三条///加盘符路径用两条\\ engine = create_engine(&#39;sqlite:///C:\\path\\to\\foo.db&#39;) #Windows 也可以这么用三条///加盘符路径用一条\ engine = create_engine(r&#39;sqlite:///C:\path\to\foo.db&#39;) #数据库建在内存里。URI保持为空即可 engine = create_engine(&#39;sqlite://&#39;) 三:连接mysql(mariadb) sqlalchemy默认使用mysql-python作为链接驱动,既default模式 选哪种驱动,就装哪个包。 1,default默认链接方式 engine = create_engine(&#39;mysql://scott:tiger@localhost/foo&#39;) 2,# mysql-python,声明使用mysql-python驱动 engine = create_engine(&#39;mysql+mysqldb://scott:tiger@localhost/foo&#39;) 3,MySQL-connector-python 声明使用MySQL-connector-python驱动(推荐使用) engine = create_engine(&#39;mysql+mysqlconnector://scott:tiger@localhost/foo&#39;) 4,OurSQL 声明使用OurSQL驱动 engine = create_engine(&#39;mysql+oursql://scott:tiger@localhost/foo&#39;) 四:连接Microsoft SQL Server sqlalchemy默认使用 pyodbc作为链接驱动。 1,pyodbc engine = create_engine(&#39;mssql+pyodbc://scott:tiger@mydsn&#39;) 2,pymssql engine = create_engine(&#39;mssql+pymssql://scott:tiger@hostname:port/dbname&#39;) 五:连接PostgreSQL PostgreSQL默认使用 psycopg2作为链接驱动,既default模式 1, default engine = create_engine(&#39;postgresql://scott:tiger@localhost/mydatabase&#39;) 2,psycopg2 engine = create_engine(&#39;postgresql+psycopg2://scott:tiger@localhost/mydatabase&#39;) 3, pg8000 engine = create_engine(&#39;postgresql+pg8000://scott:tiger@localhost/mydatabase&#39;) 六:连接Oracle Oracle可能只有 cx_oracle一个驱动包,既default模式和声明模式一样。 1,default engine = create_engine(&#39;oracle://scott:tiger@127. + + + + diff --git a/docs/smartchart/docs/2.数据集说明/特殊数据源/kafka数据源/index.html b/docs/smartchart/docs/2.数据集说明/特殊数据源/kafka数据源/index.html new file mode 100644 index 0000000..5442f15 --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/特殊数据源/kafka数据源/index.html @@ -0,0 +1,1688 @@ + + + + + + + + + + + + + + +Kafka数据源 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Kafka数据源 + + +
+ + + + + + +
+ + + +

用于获取kafka指定分区的最后一条记录, 用于实时场景 +使用方法参考"自定义数据源" +以下为参考代码:

+
def dataset(*args, **kwargs):
+    """
+    返回查询数据集
+    :return: 二维数组或JSON字典
+    """
+    from kafka import  KafkaConsumer, TopicPartition
+    import json
+
+    sqlList = args[0]   # 数据集编辑界面的输入已按分号拆分成数组 [sql1, sql2...]
+    config = args[1]    # 相关的配置字典{'host','port','user','password','db'}
+    # 插入你的数据查询及处理代码, 生成result即可
+    result = {}
+    consumer = KafkaConsumer(sasl_mechanism='PLAIN',
+                             security_protocol='SASL_PLAINTEXT',
+                             sasl_plain_username=config['user'],
+                             sasl_plain_password=config['password'],
+                             bootstrap_servers=config['host'],
+                             auto_offset_reset='earliest',
+                             api_version=(1, 0, 0),
+                             consumer_timeout_ms=50,
+                             value_deserializer=lambda v: json.loads(v.decode('utf-8')),
+                             )
+    topic = sqlList[0]
+    partition = int(config['db'])
+    tp = TopicPartition(topic=topic, partition=partition)
+    consumer.assign([tp])
+    end_offsets = consumer.end_offsets([tp]).get(tp)  # 获取当前消费者最大偏移量
+    consumer.seek(tp, offset=end_offsets-1)
+    for message in consumer:
+        result = message.value
+        break
+    return result
+
+def insert_dataset(*args, **kwargs):
+    """
+    数据填报实现
+    """
+    from kafka import KafkaProducer
+    import json
+
+    contents = args[0]  # 传入的数据集二维数组格式
+    table = args[1]   # 配置中的表名
+    config = args[3]  # 相关的配置字典{'host','port','user','password','db'}
+    # 插入你的写入数据逻辑代码
+    producer = KafkaProducer(sasl_mechanism='PLAIN',
+                             security_protocol='SASL_PLAINTEXT',
+                             sasl_plain_username=config['user'],
+                             sasl_plain_password=config['password'],
+                             bootstrap_servers=config['host'],
+                             value_serializer=lambda v: json.dumps(v).encode('utf-8')
+                             )
+    producer.send(table, value=contents, partition=int(config['db']))
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/特殊数据源/mongodb数据源/index.html b/docs/smartchart/docs/2.数据集说明/特殊数据源/mongodb数据源/index.html new file mode 100644 index 0000000..04ee23d --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/特殊数据源/mongodb数据源/index.html @@ -0,0 +1,1736 @@ + + + + + + + + + + + + + + +Mongodb数据源 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Mongodb数据源 + + +
+ + + + + + +
+ + + +

+ 使用方法 + # +

+

连接池正常配置即可 +数据集开发中,填写查询需求: + + 输入图片说明

+
{"db": "db1", "table": "tb1", "filter": {"name": "Zarten"}, 
+"projection": {"_id": 0}, "sort": [["_id", 1]], "limit": 10}
+

由于返回的字典格式, 如需转化成二维数组, 可使图形中的转化函数ds_mapToList

+
let dataset=ds_mapToList(__dataset__);
+

+ 参数说明: + # +

+

除table,其它都为可选参数

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
参数说明样列
db数库名,默认连接设定中db名
table表名[必填]
filter筛选项,具体用法参考下文{“name”: “Zarten”,“date”:“2020-10-01”}
projection显示列{“name”: 1,“date”:1}
sort排序,-1为降序[[“date”, -1]]
limit限定返回数量
+

+ filter条件说明 + # +

+

且条件

+
{"age":{"$gt":22}, "name":{"$regex":"user"}}
+

或条件

+
{ "$or": [ {"age": {"$gt": 22}}, {"name": {"$regex": "user"}} ] }
+
比较查询
+$lt和<,$lte和<=,$gt和>,gte和>=,ne和!=是一一对应的
+{"field_name": {"$lt": value, "$gt": value}}
+关联查询$in和$nin
+{"field_name": {"$in": [1,5,8]}}
+$regex为模糊查询的字符串提供正则表达式功能
+{"$or": [{"field_name": {'$regex': value}},{"field_name2": {"$regex": value}}]}
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/特殊数据源/sqlalchemy连接/index.html b/docs/smartchart/docs/2.数据集说明/特殊数据源/sqlalchemy连接/index.html new file mode 100644 index 0000000..ea810de --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/特殊数据源/sqlalchemy连接/index.html @@ -0,0 +1,1705 @@ + + + + + + + + + + + + + + +Sqlalchemy连接 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Sqlalchemy连接 + + +
+ + + + + + +
+ + + +

常规的连接池的设定, 大家应该都很清楚了, +Smartchart也支持sqlalchemy连接, 对于一些smartchart不支持的数据源可以使用此方法 +配置方法: + + 输入图片说明 +只用填以上内容, 其它可留空 +连接地址的写法参考sqlalchemy说明:

+
可选参数。一个标准的链接URL是这样的:
+dialect+driver://username:password@host:port/database
+dialect,是数据库类型,大概包括:sqlite, mysql, postgresql, oracle, or mssql.
+driver,是使用的数据库API,驱动,连接包,随便叫什么吧。
+username,用户名
+password,密码
+host,网络地址,可以用ip,域名,计算机名,当然是你能访问到的。
+port,数据库端口。
+databas,数据库名。
+其实这些也就dialect和dirver需要解释。
+
+二:连接sqlite3
+1,驱动
+sqlite3是个文件数据库,不需要什么驱动,或者说python内置了驱动。
+2,标准连接参数
+# sqlite://<nohostname>/<path>
+没有hostname
+3,各种链接参数
+# 相对路径,就是这个python文件同目录下foo.db
+engine = create_engine('sqlite:///foo.db')
+#绝对路径
+#Unix/Mac下用四条////表示
+engine = create_engine('sqlite:////absolute/path/to/foo.db')
+#Windows下用三条///加盘符路径用两条\\
+engine = create_engine('sqlite:///C:\\path\\to\\foo.db')
+#Windows 也可以这么用三条///加盘符路径用一条\
+engine = create_engine(r'sqlite:///C:\path\to\foo.db')
+#数据库建在内存里。URI保持为空即可
+engine = create_engine('sqlite://')
+
+三:连接mysql(mariadb)
+sqlalchemy默认使用mysql-python作为链接驱动,既default模式
+选哪种驱动,就装哪个包。
+1,default默认链接方式
+engine = create_engine('mysql://scott:tiger@localhost/foo')
+2,# mysql-python,声明使用mysql-python驱动
+engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')
+3,MySQL-connector-python 声明使用MySQL-connector-python驱动(推荐使用)
+engine = create_engine('mysql+mysqlconnector://scott:tiger@localhost/foo')
+4,OurSQL 声明使用OurSQL驱动
+engine = create_engine('mysql+oursql://scott:tiger@localhost/foo')
+
+四:连接Microsoft SQL Server
+sqlalchemy默认使用 pyodbc作为链接驱动。
+1,pyodbc
+engine = create_engine('mssql+pyodbc://scott:tiger@mydsn')
+2,pymssql
+engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')
+
+ 
+五:连接PostgreSQL
+PostgreSQL默认使用 psycopg2作为链接驱动,既default模式
+1, default
+engine = create_engine('postgresql://scott:tiger@localhost/mydatabase')
+2,psycopg2
+engine = create_engine('postgresql+psycopg2://scott:tiger@localhost/mydatabase')
+3, pg8000
+engine = create_engine('postgresql+pg8000://scott:tiger@localhost/mydatabase')
+
+ 六:连接Oracle
+Oracle可能只有 cx_oracle一个驱动包,既default模式和声明模式一样。
+1,default
+engine = create_engine('oracle://scott:tiger@127.0.0.1:1521/sidname')
+2,cx_oracle
+engine = create_engine('oracle+cx_oracle://scott:tiger@tnsname')
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/2.数据集说明/特殊数据源/自定义数据源/index.html b/docs/smartchart/docs/2.数据集说明/特殊数据源/自定义数据源/index.html new file mode 100644 index 0000000..8a3c3a7 --- /dev/null +++ b/docs/smartchart/docs/2.数据集说明/特殊数据源/自定义数据源/index.html @@ -0,0 +1,1713 @@ + + + + + + + + + + + + + + +自定义数据源 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 自定义数据源 + + +
+ + + + + + +
+ + + +

smartchart已实现大部分常用的数据源连接, 对于其它的, 您也可以使用python数据源进行处理 +但是使用python数据源有一定的缺陷, 需要在dataset上写python代码, 不能复用 +对于一些带连接信息的还需要重复写入 +所以你还可以使用自定义数据源

+

+ 应用场景 + # +

+
    +
  • 未内置的数据源, 如需要使用sparkSQL, ES等
  • +
  • 标准处理满足不了要求, 需要对数据进行预处理的情况
  • +
  • 需要刷新时触发预警等自定义动作
  • +
  • 需要自定义写入方法, 个性化查询需求, 甚至是实时爬取数据
  • +
+

+ 使用方法 + # +

+
    +
  • 首先你需要新建一个python脚本文件, 如diy_conn.py
  • +
  • 复制以下代码到这个文件, 然后编写你的自定义查询方法
  • +
+
def dataset(*args, **kwargs):
+    """
+    返回查询数据集
+    :return: 二维数组或JSON字典
+    """
+    sqlList = args[0]   # 数据集编辑界面的输入已按分号拆分成数组 [sql1, sql2...]
+    config = args[1]    # 相关的配置字典{'host','port','user','password','db'}
+    # 插入你的数据查询及处理代码, 生成result即可
+    result = [[]]
+
+    return result
+
+def insert_dataset(*args, **kwargs):
+    """
+    数据填表实现
+    """
+    contents = args[0]  # 传入的数据集二维数组格式
+    table = args[1]   # 配置中的表名
+    config = args[3]  # 相关的配置字典{'host','port','user','password','db'}
+    # 插入你的写入数据逻辑代码
+
    +
  • +

    在任意的仪表盘开发界面中 “模板” –> 点击上传图标, 将这个python文件上传即可 + + 输入图片说明

    +
  • +
  • +

    新建数据源, 驱动填写之前上传过的文件名, 比如我们这个是diy_conn, 其它参数按照你自定义的需求填写, 会自动传入你的自定义函数 + + 输入图片说明

    +
  • +
+

之后你可以正常使用这个自定义数据源了

+

如果你对python不熟悉, 也可按需定制, 你只需上传即可使用

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/Echarts组件/index.html b/docs/smartchart/docs/3.图形开发/Echarts组件/index.html new file mode 100644 index 0000000..5e7626c --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/Echarts组件/index.html @@ -0,0 +1,1782 @@ + + + + + + + + + + + + + + +Echarts组件 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Echarts组件 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+

Smartchart提供了很多通用的图形,你可以在商店中直接使用 +如果要个性化需要你进行自定义, 比如你可能需要在同一个图上展示柱形图和线性图

+

开发前建意先观看视屏, 了解基础说明, 视屏有点老和现在界面不一样, +目前很多功能已经做成可视化配置, 理解过程即可, 具体以文档为准

+ +

+ 获取原生echarts图形 + # +

+

首先我们在ECHART官网可能找一个你喜欢的图形, 如下简单柱形图链接: + + + 输入图片说明

+

打开我们可以看对应的option:

+
option = {
+    xAxis: {
+        type: 'category',
+        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+    },
+    yAxis: {
+        type: 'value'
+    },
+    series: [{
+        data: [120, 200, 150, 80, 70, 110, 130],
+        type: 'bar'
+    }]
+};
+

+ 转化为smartchart图形 + # +

+

复制到Smartchart图形编辑器, 点击"刀叉“ 图标(目前是魔法梆), 会自动进行初步转化 + + 输入图片说明

+

接下来我们就进行下改造, 请注意对比, 你只需照着复制即可

+
let dataset = __dataset__ //传入dataset
+let legend_label = ds_rowname(dataset) //可选, 自动获取legend
+let xlabel = dataset[0].splice(1) //x轴的标签列
+dataset = ds_createMap(dataset) //转化成KV格式
+
+//初始化series
+var series=[];
+series.push({
+        data: dataset[legend_label[0]], //对应的第一个图列
+        type: 'bar'
+    });
+series.push({
+        data: dataset[legend_label[1]], //对应的第二个图列
+        type: 'line'
+    });
+
+option__name__  = {
+    xAxis: {
+        type: 'category',
+        data: xlabel //X轴的标签
+    },
+    yAxis: {
+        type: 'value'
+    },
+    series:series,
+};
+charts.push(myChart__name__);
+

这样一个柱形+线性图就出来了 + + + 线柱混合图

+

当然一个图形还有很多其它的元素, 比如标题, legend, 等等 更多option的配置项, 可以点击”!“号图标查看,你可以直接参考echarts的设定, 完全一样!!

+

以下我们做了些简单的修改

+
option__name__  = {
+    title: {
+        text: '自定义图示例',
+        left: 'center'
+    }, //定义标题的显示
+    tooltip: {
+        trigger: 'item',
+        formatter: '{a} <br/>{b} : {c}'  //鼠标移动提示的格式
+    },
+    legend: {
+        left: 'left',
+        data: legend_label
+    }, //定义图例的显示
+    xAxis: {
+        type: 'category',
+        data: xlabel
+    }, //定义X轴的显示
+    yAxis: {
+        type: 'value'
+    },
+	//图例定义
+    series:series,
+};
+
//关于自动化series, 可以参考以下代码
+var series =[];
+for (var i=1;i<dataset[0].length;i++){
+    series.push({type: 'bar'})
+}
+

是不是非常简单 Smartchart让你使用echarts没有门槛

+
+

TIPS:

+
    +
  • 如果你在图形编辑器中可以显示图形, 但是保存后在dashboard中无法, 首先检查下所有的mychart, option是否都有转化成带__name__, 如果都有,可能原因是你的代码中有mychart.setoption, 这样你可以在代码下方加上myChart__name__.setOption(option__name__);即可
  • +
  • 如果你在开发界面的仪表盘能看到图形显示,但预览仪表盘时,不显示图形,一般都是因为你图形代码中js结束需加分号的地方没有添加导致的
  • +
+
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/ElementUI组件/index.html b/docs/smartchart/docs/3.图形开发/ElementUI组件/index.html new file mode 100644 index 0000000..13838a4 --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/ElementUI组件/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +Element Ui组件 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Element Ui组件 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/ElementUI组件/index.xml b/docs/smartchart/docs/3.图形开发/ElementUI组件/index.xml new file mode 100644 index 0000000..fec7e43 --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/ElementUI组件/index.xml @@ -0,0 +1,18 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/ElementUI%E7%BB%84%E4%BB%B6/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/ElementUI%E7%BB%84%E4%BB%B6/%E5%B8%A6%E5%88%86%E9%A1%B5%E7%9A%84%E8%A1%A8%E6%A0%BC/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/ElementUI%E7%BB%84%E4%BB%B6/%E5%B8%A6%E5%88%86%E9%A1%B5%E7%9A%84%E8%A1%A8%E6%A0%BC/ + 模式开启 # 需要开启模板开发模式, 并开启basevue模板 在Body加入组件 # &lt;!--表格--&gt; &lt;div class=&#34;smtdrag&#34; id=&#34;id_1654907858638&#34;&gt; &lt;el-table :data=&#34;tableData.slice((currentPage-1)*pageSize, currentPage*pageSize)&#34; height=&#34;100%&#34; size=&#34;mini&#34; header-cell-class-name=&#34;tablehead&#34; border style=&#34;width: 100%&#34;&gt; &lt;el-table-column v-for=&#34;item in tableHead&#34; :label=&#34;item.label&#34; :property=&#34;item.prop&#34; sortable&gt; &lt;/el-table-column&gt; &lt;/el-table&gt; &lt;!--表格结束--&gt; &lt;!--分页控件--&gt; &lt;el-pagination align=&#39;center&#39; @size-change=&#34;handlerSizeChange&#34; @current-change=&#34;handlerCurrentChange&#34; :current-page=&#34;currentPage&#34; :page-size=&#34;pageSize&#34; layout=&#34;total,sizes,prev,pager,next,jumper&#34; :total=&#34;tableData.length&#34; &gt;&lt;/el-pagination&gt; &lt;!--分页控件结束--&gt; &lt;/div&gt; 在JS区域加入 # var vapp = new Vue({el: &#39;#vue_app&#39;, delimiters: [&#39;{[&#39;, &#39;]}&#39;], data: { tableData:[], //表数据 tableHead:[], //表头 currentPage:1, total:20, pageSize:10 }, methods: { //处理分页数量 handlerSizeChange(val){ this.currentPage = 1; this. + + + + diff --git a/docs/smartchart/docs/3.图形开发/ElementUI组件/带分页的表格/index.html b/docs/smartchart/docs/3.图形开发/ElementUI组件/带分页的表格/index.html new file mode 100644 index 0000000..433e74e --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/ElementUI组件/带分页的表格/index.html @@ -0,0 +1,1756 @@ + + + + + + + + + + + + + + +带分页的表格 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 带分页的表格 + + +
+ + + + + + +
+ + + +

+ 模式开启 + # +

+

需要开启模板开发模式, 并开启basevue模板 + + 输入图片说明

+

+ 在Body加入组件 + # +

+
   <!--表格-->
+    <div class="smtdrag" id="id_1654907858638">
+    <el-table
+    :data="tableData.slice((currentPage-1)*pageSize, currentPage*pageSize)"
+    height="100%"
+    size="mini"
+    header-cell-class-name="tablehead"
+    border
+    style="width: 100%">
+    <el-table-column v-for="item in tableHead" :label="item.label" :property="item.prop" sortable>
+    </el-table-column>
+    </el-table>
+    <!--表格结束-->
+    <!--分页控件-->
+    <el-pagination align='center'
+      @size-change="handlerSizeChange"
+      @current-change="handlerCurrentChange"
+      :current-page="currentPage"
+      :page-size="pageSize"
+      layout="total,sizes,prev,pager,next,jumper"
+      :total="tableData.length"
+    ></el-pagination>
+    <!--分页控件结束-->
+    </div>
+

+ 在JS区域加入 + # +

+
var vapp = new Vue({el: '#vue_app', delimiters: ['{[', ']}'], 
+     data: {
+         tableData:[],  //表数据
+         tableHead:[],  //表头
+         currentPage:1,
+         total:20,
+         pageSize:10
+         
+     },
+     methods: {
+         //处理分页数量
+         handlerSizeChange(val){
+             this.currentPage = 1;
+             this.pageSize=val;
+         },
+         //处理页选择
+         handlerCurrentChange(val){
+             this.currentPage = val;
+         }
+     }
+     
+    });
+

+ 新增一个数据集 + # +

+
select * from smartdemo2
+limit /*  $limit -- */ 100
+

+ 图形开发中修改 + # +

+
let df0 = __dataset__;
+//处理表头
+let columnsDict = {'c1':'渠道','qty':'数量'};
+let tableHead = [];
+let tableHeadLabel;
+for (let i=0;i<df0[0].length;i++){
+    if(columnsDict.hasOwnProperty(df0[0][i])){
+        df0[0][i] = columnsDict[df0[0][i]]
+    }
+    tableHeadLabel=df0[0][i];
+    tableHead.push({label: tableHeadLabel, prop:df0[0][i]});
+}
+
+//VUE赋值
+vapp.tableHead = tableHead;
+vapp.tableData=ds_createMap_all(df0);
+

+ 输入图片说明

+
+

smartchart内置了这个查询模板, 你可以通过 + 本地模板恢复快速应用

+
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/HTML组件/index.html b/docs/smartchart/docs/3.图形开发/HTML组件/index.html new file mode 100644 index 0000000..d411152 --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/HTML组件/index.html @@ -0,0 +1,1716 @@ + + + + + + + + + + + + + + +Html组件 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Html组件 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+
    +
  • 输入控件,如输入框,筛选器,多选,按钮…
  • +
  • 显示组件, 文本, 图片, 视屏…
  • +
  • 表格组件
  • +
+
+

如果你还不熟悉html, 建意先花几分钟看下文档, 推荐 + HTML基础 +实际应用中有不熟悉的组件, 你都可以通过baidu搜索到, 如时间选择器 + + 输入图片说明

+
+

+ 如何将html组件转化为smartchart组件 + # +

+

比如我们要实现一个有多选项和按钮的网页元素 + + 输入图片说明

+

从各大搜索平台上我们可以找到html的代码是:

+
<label><input type="checkbox">孙尚香</label>
+.....
+<button id='id_select0'>提交</button>
+

那么我们可以直接在图形编辑器写上

+
let dataset=__dataset__;
+let table = '';
+table = `<label><input type="checkbox">孙一香</label>
+         <label><input type="checkbox">孙二香</label>
+         <label><input type="checkbox">孙三香</label>`
+table = table + "<button id='id_select0'>提交</button>"
+
+dom__name__.innerHTML=table;
+

但是由于我们是要通过传入的数据动态变化的,所以只需要做简单修改

+
let dataset=__dataset__;
+let table = '';
+for (let i=1;i<dataset.length;i++){
+    table = `${table}<label><input type="checkbox"/>${dataset[i][0]}</label> `
+}
+table = table + "<button id='id_select__name__'>提交</button>"
+
+dom__name__.innerHTML=table;
+

所有html你都可以进行转化成smartchart组件, +你可以通过学习”万能表格系列视屏“ 来了解通用组件开发 + + 第一波 + + 第二波 + + 第三波

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/index.html b/docs/smartchart/docs/3.图形开发/index.html new file mode 100644 index 0000000..feccd71 --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +3.图形开发 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 3.图形开发 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/index.xml b/docs/smartchart/docs/3.图形开发/index.xml new file mode 100644 index 0000000..6b59e3e --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/index.xml @@ -0,0 +1,65 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%9F%BA%E7%A1%80%E5%9B%BE%E5%BD%A2/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%9F%BA%E7%A1%80%E5%9B%BE%E5%BD%A2/ + 快速应用基础图形组件 # 你可使用如下方式选择常规的图形一键进行应用(我们只放了基础图形,因为你可以通过简单修改配置转化为各种图形,如线性面积图, 柱形堆叠图..) 你也可以在图形商店中找到更多已转化好的Smartchart图形 配置项完全和Echarts原生一样 +注意: 对于一些特殊图形如地图js在图形编辑中需要进行动态加载, 如果你使用了非常规图形, 你可在图形编辑器使用ds_loadjs(&lsquo;smt_china’)加载中国地图, 同理我们有 &lsquo;smt_wordcloud&rsquo;, &lsquo;smt_world&rsquo;, &lsquo;smt_ecStat&rsquo;, ‘smt_liquidfill’ 有些图形可能同时需要在模板中加载, 更多特殊图形加载说明参考 特殊图形模板加载 + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%AE%A1%E7%90%86%E5%9B%BE%E5%BD%A2/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%AE%A1%E7%90%86%E5%9B%BE%E5%BD%A2/ + 应用场景 # 如何快速复用已开发好的组件 +本地管理自定义组件 # 如下图,点击图形编辑器中的菜单,即可管理和查看自定义图形列表 点击&quot;加入样列&quot;即可把当前图形加入到样列清单, 点击&quot;取消样列&quot;即可将所选样列移除样列清单 云管理,在图形商店中保存你的图形 # 这样你就可以在图形商店看到你的图形进行重复利用 + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/Echarts%E7%BB%84%E4%BB%B6/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/Echarts%E7%BB%84%E4%BB%B6/ + 应用场景 # Smartchart提供了很多通用的图形,你可以在商店中直接使用 如果要个性化需要你进行自定义, 比如你可能需要在同一个图上展示柱形图和线性图 +开发前建意先观看视屏, 了解基础说明, 视屏有点老和现在界面不一样, 目前很多功能已经做成可视化配置, 理解过程即可, 具体以文档为准 +Smartchart数据库与图形的对话 Smartchart图形开发一 Smartchart图形开发二 获取原生echarts图形 # 首先我们在ECHART官网可能找一个你喜欢的图形, 如下简单柱形图链接: 打开我们可以看对应的option: +option = { xAxis: { type: &#39;category&#39;, data: [&#39;Mon&#39;, &#39;Tue&#39;, &#39;Wed&#39;, &#39;Thu&#39;, &#39;Fri&#39;, &#39;Sat&#39;, &#39;Sun&#39;] }, yAxis: { type: &#39;value&#39; }, series: [{ data: [120, 200, 150, 80, 70, 110, 130], type: &#39;bar&#39; }] }; 转化为smartchart图形 # 复制到Smartchart图形编辑器, 点击&quot;刀叉“ 图标(目前是魔法梆), 会自动进行初步转化 接下来我们就进行下改造, 请注意对比, 你只需照着复制即可 +let dataset = __dataset__ //传入dataset let legend_label = ds_rowname(dataset) //可选, 自动获取legend let xlabel = dataset[0]. + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/HTML%E7%BB%84%E4%BB%B6/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/HTML%E7%BB%84%E4%BB%B6/ + 应用场景 # 输入控件,如输入框,筛选器,多选,按钮&hellip; 显示组件, 文本, 图片, 视屏&hellip; 表格组件 如果你还不熟悉html, 建意先花几分钟看下文档, 推荐 HTML基础 实际应用中有不熟悉的组件, 你都可以通过baidu搜索到, 如时间选择器 如何将html组件转化为smartchart组件 # 比如我们要实现一个有多选项和按钮的网页元素 从各大搜索平台上我们可以找到html的代码是: +&lt;label&gt;&lt;input type=&#34;checkbox&#34;&gt;孙尚香&lt;/label&gt; ..... &lt;button id=&#39;id_select0&#39;&gt;提交&lt;/button&gt; 那么我们可以直接在图形编辑器写上 +let dataset=__dataset__; let table = &#39;&#39;; table = `&lt;label&gt;&lt;input type=&#34;checkbox&#34;&gt;孙一香&lt;/label&gt; &lt;label&gt;&lt;input type=&#34;checkbox&#34;&gt;孙二香&lt;/label&gt; &lt;label&gt;&lt;input type=&#34;checkbox&#34;&gt;孙三香&lt;/label&gt;` table = table + &#34;&lt;button id=&#39;id_select0&#39;&gt;提交&lt;/button&gt;&#34; dom__name__.innerHTML=table; 但是由于我们是要通过传入的数据动态变化的,所以只需要做简单修改 +let dataset=__dataset__; let table = &#39;&#39;; for (let i=1;i&lt;dataset.length;i++){ table = `${table}&lt;label&gt;&lt;input type=&#34;checkbox&#34;/&gt;${dataset[i][0]}&lt;/label&gt; ` } table = table + &#34;&lt;button id=&#39;id_select__name__&#39;&gt;提交&lt;/button&gt;&#34; dom__name__.innerHTML=table; 所有html你都可以进行转化成smartchart组件, 你可以通过学习”万能表格系列视屏“ 来了解通用组件开发 第一波 第二波 第三波 + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E8%B0%83%E8%AF%95%E6%97%A5%E5%BF%97/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E8%B0%83%E8%AF%95%E6%97%A5%E5%BF%97/ + 关于页面日志查看 # 大家可能比较熟悉使用F12来查看网页日志, 但有的同学会觉得这不够方便, 所以 在5.1.11后, smartchart加入了可以页面直接显示日志的功能 +在仪表盘中显示 # 你只需要点击如下菜单, 即可切换是否显示日志 当在刷新页面或执行时, 日志将直接显示在右上角中, 而且还能显示出对应出错的图表序号 在图形中显示 # smartchart基于python的使用习惯, 重定义的专用的日志打印函数print 你可以在图形编辑器中使用些函数即可打印日志 比如看看鼠标放在echarts图上params, 在编辑界面和console中都能看到日志, 方便你进行调试 不仅仅这些, 你可能会想写太多打印日志, 上线了不好 smartchart已为你想到这些, 如果你在仪表盘中没有开启日志显示, print函数是不会打印任何日志 +有了仪表盘日志显示, 我们还能做更多的事情, 比如实时显示你拖拽的坐标, 让你精确定位 + + + + diff --git a/docs/smartchart/docs/3.图形开发/函数方法/Jquery遍历方法/index.html b/docs/smartchart/docs/3.图形开发/函数方法/Jquery遍历方法/index.html new file mode 100644 index 0000000..ff88c74 --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/函数方法/Jquery遍历方法/index.html @@ -0,0 +1,1735 @@ + + + + + + + + + + + + + + +Jquery遍历方法 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Jquery遍历方法 + + +
+ + + + + + +
+ + + +

在做自定义html组件的时候你可能需要用得上:

+

一、向上遍历

+
    +
  1. parent() 获取元素的直接父元素
  2. +
+
$("span").parent().css({
+	"color":"red",
+	"border":"1px solid red"
+})
+
    +
  1. parents() 获取元素的祖先元素,直到根元素html
  2. +
+
$("span").parents().css({
+	"color":"red",
+	"border":"1px solid red"
+})
+
    +
  1. parentsUntil() 向上查找直到遇见某个祖先元素为止
  2. +
+
 $("span").parentsUntil("div").css({	//向上查找直到遇见div元素为止
+	"color":"red",
+	"border":"1px solid red"
+})
+

二、向下遍历

+
1. children() 查找子元素[按照从属关系]
+
+$("ul").children("li:first-child")
+
+2. find() 按照指定的条件向下查找
+
+$("ul").find("span")
+

三、水平遍历

+
1. siblings() 获取元素的所有兄弟元素
+
+$(".start").siblings().css({color:"red",border:"2px solid red"})
+
+2. next() 获取元素的下一个兄弟元素
+
+$(".start").next().css({color:"red",border:"2px solid red"})
+
+3. nextAll() 获取其后的所有兄弟元素
+
+$(".start").nextAll().css({color:"red",border:"2px solid red"})
+
+4. nextUntil() 查找后面所有的兄弟元素,直到遇见某个元素为止
+
+$(".start").nextUntil("li:last-child").css({color:"red",border:"2px solid red"})
+
+5. prev() 查找上一个兄弟元素
+
+$("li.start").prev().css({color:"red",border:"2px solid red"})
+
+6. prevAll() 查找上面所有的兄弟元素
+
+$("li.start").prevAll().css({color:"red",border:"2px solid red"})
+
+prevUntil() 查找上面所有的兄弟元素,直到遇见某个元素为止
+$(".start").prevUntil("li:first").css({"color":"red","border":"2px solid red"})
+

四、过滤

+
1. first() 获取第一个元素
+
+$("li").first().css("color","red");
+
+2. last() 获取最后一个元素
+
+$("li").last().css("color","red");
+
+3. not() 获取不是…的元素
+
+$("li").not(":eq(2)").css("font-size","26px");
+
+4. eq(n) 获取索引为n的元素
+
+$("li").eq(3).css("background","green");
+
+5. has() 检测某个子元素是否存在
+
+$("li").eq(1).has("span").length)
+
+6. filter() 筛选出与符合条件的DOM元素
+
+$("div")..filter(".middle")
+
+7. is() 用来判断是否符合条件
+
+$("p").parent().is("div")	//判断p的父元素是不是div,是就返回true,不是就返回false
+

五、each遍历

+
1. each() 方法为每个匹配元素规定要运行的函数。
+
+$(selector).each(function(index,element){
+	.....
+})
+//index 表示当前遍历元素的索引
+  element 当前的元素(也可使用 "this" 选择器)
+
+2. $.each(obj,function( index,value){})
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/函数方法/index.html b/docs/smartchart/docs/3.图形开发/函数方法/index.html new file mode 100644 index 0000000..7433ec3 --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/函数方法/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +函数方法 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 函数方法 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/函数方法/index.xml b/docs/smartchart/docs/3.图形开发/函数方法/index.xml new file mode 100644 index 0000000..b11fb0c --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/函数方法/index.xml @@ -0,0 +1,33 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%87%BD%E6%95%B0%E6%96%B9%E6%B3%95/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%87%BD%E6%95%B0%E6%96%B9%E6%B3%95/%E5%9B%BE%E5%BD%A2%E7%AB%AF%E6%95%B0%E6%8D%AE%E5%87%BD%E6%95%B0/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%87%BD%E6%95%B0%E6%96%B9%E6%B3%95/%E5%9B%BE%E5%BD%A2%E7%AB%AF%E6%95%B0%E6%8D%AE%E5%87%BD%E6%95%B0/ + 应用场景 # 在图形开发中,我们可能需要使用js对传递过来的数据进行处理 +原始数据格式 # 假设dataset的格式是, SQL = Select 维度1,维度2,数据 from xxxx, 生成的数据集如下 +dataset = [[&#39;category&#39;,&#39;C1&#39;,&#39;C2&#39;], [&#39;R1&#39;, 12, 18], [&#39;R2&#39;, 10, 17] ] 转化函数 # 生成字典表示为key-&gt;[], 常用于定制化高的图形 # result = ds_createMap(dataset) 结果 = {&#34;category&#34;:[&#39;C1&#39;,&#39;C2&#39;], &#34;R1&#34; : [12, 10], &#34;R2&#34; : [18, 17]} 生成非常多前端组件要求的格式 # result = ds_createMap_all(dataset) 结果 = [{&#34;category&#34;:&#34;R1&#34;, &#34;C1&#34;: 12, &#34;C2&#34;: 18}, {&#34;category&#34;:&#34;R2&#34;, &#34;C1&#34;: 10, &#34;C2&#34;: 17}] 获取列名list, 用于获取系列名 # result = ds_rowname(dataset) 结果 = [&#39;R1&#39;,&#39;R2&#39;] 将数据集行列转化, 一般用于坐标轴翻转 # result = ds_transform(dataset) 结果 = [[&#39;category&#39;,&#39;R1&#39;,&#39;R2&#39;], [&#39;C1&#39;, 12, 10], [&#39;C2&#39;, 18, 17]] 两个数据集左关联, 常用于将两段查询数据合并 # 假设需要关联的数据集格式: dataset2 = [[&#39;category&#39;,&#39;C3&#39;], [&#39;R1&#39;, 38], [&#39;R6&#39;, 13]] 处理后的结果: result = ds_leftjoin(dataset, dataset2) 结果 = [[&#39;category&#39;,&#39;C1&#39;,&#39;C2&#39;,&#39;C3&#39;], [&#39;R1&#39;, 12, 18, 38], [&#39;R2&#39;, 10, 17, 0] ] 数据集旋转,在excel中叫透视表 # 比如需要将dataset3的户型变成指标 dataset3 = [[&#39;城市&#39;,&#39;户型&#39;,&#39;数量&#39;], [&#39;长沙&#39;,&#39;A&#39;,35], [&#39;上海&#39;,&#39;B&#39;,19]] 处理后的结果: result = ds_pivot(dataset3) 结果 = [[&#34;城市&#34;,&#34;A&#34;,&#34;B&#34;], [&#34;长沙&#34;,35,0], [&#34;上海&#34;,0,19]] 移除数据集中的某几列 # 比如移除第1列(序号0) result=ds_remove_column(dataset,remove_list=[0]) 结果 = [[&#39;R1&#39;,&#39;R2&#39;], [12, 10], [18, 17] ] smartchart图形中可用的转化函数 # 函数名 函数说明 样列 ds_transform(dataset) 行列替换 ds_split(data,sep=&rsquo;,&rsquo;,head_add=[]) 将第一列拆分成多个字段,默认逗号分隔, 如果不传表头,取SQL中的字段名拆分 ds_createMap(data) data表示传入的二位数组,生成结果表示为key-&gt;[], 常用于echarts指定数据 ds_createMap_all(data) data表示传入的二维数组,生成结果表示为[{A:A1,B:B1,C:C1},{A:A2,B:B2,C:C2}&hellip;] ds_mapToList(data) 将createMap_all的格式还原成二维数组, 常用于将nosql(mongodb,es. + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%87%BD%E6%95%B0%E6%96%B9%E6%B3%95/Jquery%E9%81%8D%E5%8E%86%E6%96%B9%E6%B3%95/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%87%BD%E6%95%B0%E6%96%B9%E6%B3%95/Jquery%E9%81%8D%E5%8E%86%E6%96%B9%E6%B3%95/ + 在做自定义html组件的时候你可能需要用得上: +一、向上遍历 +parent() 获取元素的直接父元素 $(&#34;span&#34;).parent().css({ &#34;color&#34;:&#34;red&#34;, &#34;border&#34;:&#34;1px solid red&#34; }) parents() 获取元素的祖先元素,直到根元素html $(&#34;span&#34;).parents().css({ &#34;color&#34;:&#34;red&#34;, &#34;border&#34;:&#34;1px solid red&#34; }) parentsUntil() 向上查找直到遇见某个祖先元素为止 $(&#34;span&#34;).parentsUntil(&#34;div&#34;).css({ //向上查找直到遇见div元素为止 &#34;color&#34;:&#34;red&#34;, &#34;border&#34;:&#34;1px solid red&#34; }) 二、向下遍历 +1. children() 查找子元素[按照从属关系] $(&#34;ul&#34;).children(&#34;li:first-child&#34;) 2. find() 按照指定的条件向下查找 $(&#34;ul&#34;).find(&#34;span&#34;) 三、水平遍历 +1. siblings() 获取元素的所有兄弟元素 $(&#34;.start&#34;).siblings().css({color:&#34;red&#34;,border:&#34;2px solid red&#34;}) 2. next() 获取元素的下一个兄弟元素 $(&#34;.start&#34;).next().css({color:&#34;red&#34;,border:&#34;2px solid red&#34;}) 3. nextAll() 获取其后的所有兄弟元素 $(&#34;.start&#34;).nextAll().css({color:&#34;red&#34;,border:&#34;2px solid red&#34;}) 4. nextUntil() 查找后面所有的兄弟元素,直到遇见某个元素为止 $(&#34;.start&#34;).nextUntil(&#34;li:last-child&#34;).css({color:&#34;red&#34;,border:&#34;2px solid red&#34;}) 5. prev() 查找上一个兄弟元素 $(&#34;li.start&#34;).prev().css({color:&#34;red&#34;,border:&#34;2px solid red&#34;}) 6. prevAll() 查找上面所有的兄弟元素 $(&#34;li. + + + + diff --git a/docs/smartchart/docs/3.图形开发/函数方法/图形端数据函数/index.html b/docs/smartchart/docs/3.图形开发/函数方法/图形端数据函数/index.html new file mode 100644 index 0000000..eb5d22d --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/函数方法/图形端数据函数/index.html @@ -0,0 +1,1913 @@ + + + + + + + + + + + + + + +图形端数据函数 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 图形端数据函数 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+

在图形开发中,我们可能需要使用js对传递过来的数据进行处理

+

+ 原始数据格式 + # +

+

假设dataset的格式是, SQL = Select 维度1,维度2,数据 from xxxx, 生成的数据集如下

+
dataset = [['category','C1','C2'],
+           ['R1',       12,  18],
+	   ['R2',       10,  17] ]
+

+ 转化函数 + # +

+

+ 生成字典表示为key->[], 常用于定制化高的图形 + # +

+
result = ds_createMap(dataset)
+结果 = {"category":['C1','C2'],
+           "R1" : [12, 10],
+	   "R2" : [18,  17]}
+

+ 生成非常多前端组件要求的格式 + # +

+
result = ds_createMap_all(dataset)
+结果 = [{"category":"R1", "C1": 12, "C2": 18},
+       {"category":"R2", "C1": 10, "C2": 17}]
+

+ 获取列名list, 用于获取系列名 + # +

+
result = ds_rowname(dataset)
+结果 = ['R1','R2']
+

+ 将数据集行列转化, 一般用于坐标轴翻转 + # +

+
result = ds_transform(dataset)
+结果  = [['category','R1','R2'],
+         ['C1',       12,  10],
+	 ['C2',       18,  17]]
+

+ 两个数据集左关联, 常用于将两段查询数据合并 + # +

+
假设需要关联的数据集格式:
+dataset2 = [['category','C3'],
+           ['R1',       38],
+	   ['R6',       13]]
+处理后的结果:
+result = ds_leftjoin(dataset, dataset2)
+结果  = [['category','C1','C2','C3'],
+         ['R1',       12,  18, 38],
+	 ['R2',       10,  17, 0] ]
+

+ 数据集旋转,在excel中叫透视表 + # +

+
比如需要将dataset3的户型变成指标
+dataset3 = [['城市','户型','数量'],
+             ['长沙','A',35],
+             ['上海','B',19]]
+处理后的结果:
+result = ds_pivot(dataset3)
+结果  = [["城市","A","B"],
+         ["长沙",35,0],
+         ["上海",0,19]]
+

+ 移除数据集中的某几列 + # +

+
比如移除第1列(序号0)
+result=ds_remove_column(dataset,remove_list=[0]) 
+ 结果 =    [['R1','R2'],
+           [12,  10],
+	   [18,  17] ]
+

+ smartchart图形中可用的转化函数 + # +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
函数名函数说明样列
ds_transform(dataset)行列替换
ds_split(data,sep=’,’,head_add=[])将第一列拆分成多个字段,默认逗号分隔, 如果不传表头,取SQL中的字段名拆分
ds_createMap(data)data表示传入的二位数组,生成结果表示为key->[], 常用于echarts指定数据
ds_createMap_all(data)data表示传入的二维数组,生成结果表示为[{A:A1,B:B1,C:C1},{A:A2,B:B2,C:C2}…]
ds_mapToList(data)将createMap_all的格式还原成二维数组, 常用于将nosql(mongodb,es..)数据源数据处理
ds_fontSize(rem)基于分辨率自动转字体大小, 参数rem
ds_rowname(dataset,start_row=1,column=0)获取指定列的数据, 默认取第一列从第二行(序号1)开始的数据,常用于获取维度
ds_remove_column(dataset,remove_list=[0])默认移除第一列, 也要移除指定的多个列
ds_toThousands(num)转逗号分隔的千分位
ds_distinct(a, b=[])对单个或多个二维数组去重
ds_leftjoin(a,b,withhead=true,type=1)两个数组join [[1,2,3,4],[2,3,4,5]] ,[[2,3,4]], 如果带头,合并头
ds_crossjoin(a,b,withhead=true)
ds_fulljoin(a,b,withhead=true)
ds_union(a,b,withhead=true)合并两个数据集, 可选是否带头, 取第一个数据集的头, 去除第二个头
ds_pivot(arr)传入一下二维数组(维度, 维度, 值), 进行透视
ds_sort(arr, index=0, asc=true)指定二维数组列序号排序,默认升序,index参数也可以是函数,如(a,b)=>{return a.qty - b.qty}
getUndefined(param,defaultValue)获取value值,如果为空,null,undefined给默认值
ds_round(num,qty=2)小数点处理, 默认保留两位小数
ds_param(name)传入参数名,获取图形点击时传递来的参数值
ds_setParam(‘参数名’, 参数值)设定全局参数, 此方法将自动判断当参数值为空时, 删除参数回到初始未传参状态
ds_refresh(id, param=filter_param)刷新图形, id为图形序号,默认采取全局参数刷新,也可指定param,参数为字典{“参数名”:“值”,…}
+

+ 多维度的数据透视 + # +

+
常规数据集中提到 A类数据源的情况, 格式都是: 
+维度A   维度B  数据
+但还有情况比如你有一个数据格式是:
+维度A   维度B  维度C  数据
+你需要在表格中将 A,B维度做维度, C做透视为指标名进行展示
+由于我们的数据透视只支持"字符, 字符, 数值"SQL写法, 
+所以如果要多维, 我们需要做下转变, 可以写成:
+select concat_ws(',',维度A,维度B) AS 维度,维度C,SUM(数据) AS 度量 
+   from tablename group by 维度, 维度C
+得到的数据样式
+dataset=[['维度','C1','C2'....]
+	,['A1,B1',1,1...]
+	,['A2,B2',2,2...]]
+最终在图形数据集处理中, 我们可以使用如下函数进行转化:
+dataset = ds_split(dataset,',',['维度A','维度B'])
+',' : 参数为分隔符
+['维度A','维度B'] : 指第一个字段需要拆分的表头名称
+
+最终得到的数据就是多维度透视
+[['维度A','维度B','C1','C2'....]
+,['A1','B1',1,1...]
+,['A2','B2',2,2...]]
+

+ 常用JS原生函数 + # +

+
//数组追加
+dataset.push(item)
+//数组前方插入
+dataset.unshit(item)
+//切片
+dataset = dataset.slice(1) 从序号1个开始到最最后一个
+dataset = dataset.slice(5, 10) 从第序号5开始截取到第10个
+dataset = dataset.slice(-3) 截取最后三个元素
+//循环遍历
+for最快但可读性比较差(smartchart推荐)
+forEach比较快能够控制内容
+for...in比较慢不方便
+for(let i=0; i<dataset.length; i++){
+  
+}
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/基础图形/index.html b/docs/smartchart/docs/3.图形开发/基础图形/index.html new file mode 100644 index 0000000..fcc22ca --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/基础图形/index.html @@ -0,0 +1,1677 @@ + + + + + + + + + + + + + + +基础图形 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 基础图形 + + +
+ + + + + + +
+ + + +

+ 快速应用基础图形组件 + # +

+
    +
  • 你可使用如下方式选择常规的图形一键进行应用(我们只放了基础图形,因为你可以通过简单修改配置转化为各种图形,如线性面积图, 柱形堆叠图..)
  • +
  • 你也可以在图形商店中找到更多已转化好的Smartchart图形
  • +
+

+ 输入图片说明 +配置项完全和Echarts原生一样

+
+

注意: +对于一些特殊图形如地图js在图形编辑中需要进行动态加载, 如果你使用了非常规图形, +你可在图形编辑器使用ds_loadjs(‘smt_china’)加载中国地图, 同理我们有 ‘smt_wordcloud’, ‘smt_world’, ‘smt_ecStat’, ‘smt_liquidfill’ + + 输入图片说明 +有些图形可能同时需要在模板中加载, 更多特殊图形加载说明参考 + 特殊图形模板加载

+
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/特殊图形/LineUp图形/index.html b/docs/smartchart/docs/3.图形开发/特殊图形/LineUp图形/index.html new file mode 100644 index 0000000..bbb40d4 --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/特殊图形/LineUp图形/index.html @@ -0,0 +1,1669 @@ + + + + + + + + + + + + + + +Line Up图形 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Line Up图形 + + +
+ + + + + + +
+ + + +

Smartchart内置了LineUp图形 +LineUp is an interactive technique designed to create, visualize and explore rankings of items based on a set of heterogeneous attributes. + + 输入图片说明

+

LineUp图形参考

+
ds_loadcss('smt_LineUp');
+ds_loadjs('smt_LineUp');
+let dataset = __dataset__;
+dataset = ds_createMap_all(dataset);
+try{Ljs__name__.destroy()}catch{}
+Ljs__name__ = LineUpJS.asTaggle(dom__name__, dataset);
+
+// 点击选中行响应动作
+Ljs__name__.on(LineUpJS.LineUp.EVENT_SELECTION_CHANGED, (selection) => {
+   console.log(Ljs__name__.data._data[selection]);
+  //通过以上log可以查看到数据格式, 以下就是标准的联动写法
+  filter_param['LineupParam'] = Ljs__name__.data._data[selection].xx
+  ds_refresh(2);
+});
+
+//更多响应动作
+Ljs__name__.on(LineUpJS.LineUp.EVENT_HIGHLIGHT_CHANGED, (highlight) => {
+});
+
+// document.querySelector('button#select').addEventListener('click', () => {
+//   Ljs__name__.setSelection([1, 2, 3]);
+// });
+
+// document.querySelector('button#highlight').addEventListener('click', () => {
+//   Ljs__name__.setHighlight(50);
+// });
+
+// 获取筛选后的数据并下载(来源与"路阳" 赞助开发)
+outputStr=Ljs__name__.data.exportTable(Ljs__name__.data.getRankings()[0], {});
+outputStr = outputStr.replace(/\t/g, ',');
+ds_download('abc.csv', outputStr);
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/特殊图形/index.html b/docs/smartchart/docs/3.图形开发/特殊图形/index.html new file mode 100644 index 0000000..c81fb01 --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/特殊图形/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +特殊图形 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 特殊图形 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/特殊图形/index.xml b/docs/smartchart/docs/3.图形开发/特殊图形/index.xml new file mode 100644 index 0000000..a105500 --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/特殊图形/index.xml @@ -0,0 +1,52 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/LineUp%E5%9B%BE%E5%BD%A2/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/LineUp%E5%9B%BE%E5%BD%A2/ + Smartchart内置了LineUp图形 LineUp is an interactive technique designed to create, visualize and explore rankings of items based on a set of heterogeneous attributes. LineUp图形参考 +ds_loadcss(&#39;smt_LineUp&#39;); ds_loadjs(&#39;smt_LineUp&#39;); let dataset = __dataset__; dataset = ds_createMap_all(dataset); try{Ljs__name__.destroy()}catch{} Ljs__name__ = LineUpJS.asTaggle(dom__name__, dataset); // 点击选中行响应动作 Ljs__name__.on(LineUpJS.LineUp.EVENT_SELECTION_CHANGED, (selection) =&gt; { console.log(Ljs__name__.data._data[selection]); //通过以上log可以查看到数据格式, 以下就是标准的联动写法 filter_param[&#39;LineupParam&#39;] = Ljs__name__.data._data[selection].xx ds_refresh(2); }); //更多响应动作 Ljs__name__.on(LineUpJS.LineUp.EVENT_HIGHLIGHT_CHANGED, (highlight) =&gt; { }); // document.querySelector(&#39;button#select&#39;).addEventListener(&#39;click&#39;, () =&gt; { // Ljs__name__.setSelection([1, 2, 3]); // }); // document.querySelector(&#39;button#highlight&#39;).addEventListener(&#39;click&#39;, () =&gt; { // Ljs__name__. + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/%E4%BD%BF%E7%94%A8%E5%9B%BE%E6%A0%87/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/%E4%BD%BF%E7%94%A8%E5%9B%BE%E6%A0%87/ + 在&quot;模板&quot;中加载图标资源 使用方法, 可参考 font-awesome菜鸟教程 V5图标名称参考, 也可以 图标样列查询 + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/%E6%97%A0%E7%BC%9D%E6%BB%9A%E5%8A%A8/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/%E6%97%A0%E7%BC%9D%E6%BB%9A%E5%8A%A8/ + 通用滚动 # 例如你的html如下 +&lt;div id=&#34;smtid&#34; style=&#34;height:100%&#34;&gt; &lt;ul&gt; &lt;li&gt;smartchart&lt;/li&gt; &lt;li&gt;bigdata&lt;/li&gt; &lt;li&gt;echarts&lt;/li&gt; &lt;li&gt;make it great&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; 你只需要使用以下函数, 即可实现在无缝滚动 由于smtid是ID, 则使用 ds_liMarquee(&rsquo;#smtid&rsquo;) 即可开启自动滚动 如果 class=&ldquo;smtclass&rdquo;, 那么也可以使用类选择器 ds_liMarquee(&rsquo;.smtclass') +我们也可以使用更多的配置方法 +marconfig={ playtime: 3000, //滚动3秒 pausetime: 3000, //停3秒 config:{ direction: &#39;up&#39;,//向上滚动 runshort: false,//内容不足时不滚动 scrollamount: 20//速度 } } 可以使用 ds_liMarquee(&rsquo;#smtid&rsquo;, marconfig) 传入配置 +更多config说明: +名称 类型 默认值 说明 direction 字符串 left 滚动方向,可选 left / right / up / down loop 整数 -1 循环次数,-1 为无限循环 scrolldelay 整数 0 每次重复之前的延迟 scrollamount 整数 50 滚动速度,越大越快 circular 布尔值 true 无缝滚动,如果为 false,则和 marquee 效果一样 drag 布尔值 true 鼠标可拖动 runshort 布尔值 true 内容不足是否滚动 hoverstop 布尔值 true 鼠标悬停暂停 xml 布尔值 false 加载xml 文件 inverthover 布尔值 false 反向,即默认不滚动,鼠标悬停滚动 内置滚动表格 # smartchart内置了滚动表格, 可以一键生成 如果你需要修改表格的样式, 如字体,颜色等, 你可以在模板中重定义样式 具体样式的写法, 参考 样式快速入门 + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2%E5%8A%A0%E8%BD%BD/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2%E5%8A%A0%E8%BD%BD/ + smartchart默认只会引echarts的基础图形 如果你需要使用到更多图形, 你可以自行引用,可以写在模板的javascript标签中 +中国地图 &lt;script src=&#34;/static/smartchart/opt/smt_china.js&#34;&gt;&lt;/script&gt; 世界地图 &lt;script src=&#34;/static/smartchart/opt/smt_world.js&#34;&gt;&lt;/script&gt; 统计图 &lt;script src=&#34;/static/smartchart/opt/smt_ecStat.js&#34;&gt;&lt;/script&gt; 水球图 &lt;script src=&#34;/static/smartchart/opt/smt_liquidfill.js&#34;&gt;&lt;/script&gt; 词云 &lt;script src=&#34;/static/smartchart/opt/smt_wordcloud.js&#34;&gt;&lt;/script&gt; 百度地图 &lt;script type=&#34;text/javascript&#34; src=&#34;https://fastly.jsdelivr.net/npm/echarts@5/dist/extension/bmap.min.js&#34;&gt;&lt;/script&gt; + + + + diff --git a/docs/smartchart/docs/3.图形开发/特殊图形/使用图标/index.html b/docs/smartchart/docs/3.图形开发/特殊图形/使用图标/index.html new file mode 100644 index 0000000..0f0a1e6 --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/特殊图形/使用图标/index.html @@ -0,0 +1,1646 @@ + + + + + + + + + + + + + + +使用图标 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 使用图标 + + +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/特殊图形/无缝滚动/index.html b/docs/smartchart/docs/3.图形开发/特殊图形/无缝滚动/index.html new file mode 100644 index 0000000..9f606b3 --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/特殊图形/无缝滚动/index.html @@ -0,0 +1,1820 @@ + + + + + + + + + + + + + + +无缝滚动 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 无缝滚动 + + +
+ + + + + + +
+ + + +

+ 通用滚动 + # +

+

例如你的html如下

+
<div id="smtid" style="height:100%">
+    <ul>
+        <li>smartchart</li>
+        <li>bigdata</li>
+        <li>echarts</li>
+        <li>make it great</li>
+    </ul>
+</div>
+

你只需要使用以下函数, 即可实现在无缝滚动 +由于smtid是ID, 则使用 ds_liMarquee(’#smtid’) 即可开启自动滚动 +如果 class=“smtclass”, 那么也可以使用类选择器 ds_liMarquee(’.smtclass')

+

我们也可以使用更多的配置方法

+
 marconfig={
+    playtime: 3000, //滚动3秒
+    pausetime: 3000, //停3秒
+    config:{
+        direction: 'up',//向上滚动
+        runshort: false,//内容不足时不滚动
+        scrollamount: 20//速度
+    }
+ }
+

可以使用 ds_liMarquee(’#smtid’, marconfig) 传入配置

+

更多config说明:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型默认值说明
direction字符串left滚动方向,可选 left / right / up / down
loop整数-1循环次数,-1 为无限循环
scrolldelay整数0每次重复之前的延迟
scrollamount整数50滚动速度,越大越快
circular布尔值true无缝滚动,如果为 false,则和 marquee 效果一样
drag布尔值true鼠标可拖动
runshort布尔值true内容不足是否滚动
hoverstop布尔值true鼠标悬停暂停
xml布尔值false加载xml 文件
inverthover布尔值false反向,即默认不滚动,鼠标悬停滚动
+

+ 内置滚动表格 + # +

+

smartchart内置了滚动表格, 可以一键生成 +如果你需要修改表格的样式, 如字体,颜色等, 你可以在模板中重定义样式 +具体样式的写法, 参考 + 样式快速入门

+
如下例修改表头高度为5rem, 内容单元格高度3rem 及背景字体等
+/*表头样式*/
+.smtlisthead{
+    background: #fff2cc;
+    color: red;
+    height: 5rem;
+}
+
+.smtlisthead span{
+    height: 5rem;
+}
+
+/*表格本体样式*/
+.smtlistnav{
+    height: calc(100% - 5rem);
+    color: red;
+    overflow: auto;
+}
+
+.smtlistnav li span{
+    height: 3rem;
+}
+
+
+/*修改奇数行背景*/
+.smtlistnav ul li:nth-child(odd){ background: rgba(100,100,100,.1);}
+偶数行将odd改为even
+
+/*指定某单独格宽度对齐*/
+<span>
+  <span style="width:32rem;height:100%;flex-shrink:0;justify-content:left"><span>
+</span>
+
+/*单元格点击响应*/
+let lastClickDom;
+let lastDomColor;
+$('#smtlist__name__, li').click(function(params){
+    try{lastClickDom.css('background', lastDomColor)}catch{}
+    lastDomColor = $(this).css('background');
+    $(this).css('background', 'yellow');
+    lastClickDom = $(this);
+    let myparam = $(this).children('span').eq(0).text(); //获取点击的参数
+    //以下加入你的action
+    
+});
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/特殊图形/特殊图形加载/index.html b/docs/smartchart/docs/3.图形开发/特殊图形/特殊图形加载/index.html new file mode 100644 index 0000000..80bb0d0 --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/特殊图形/特殊图形加载/index.html @@ -0,0 +1,1649 @@ + + + + + + + + + + + + + + +特殊图形加载 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 特殊图形加载 + + +
+ + + + + + +
+ + + +

smartchart默认只会引echarts的基础图形 +如果你需要使用到更多图形, 你可以自行引用,可以写在模板的javascript标签中

+
中国地图
+<script src="/static/smartchart/opt/smt_china.js"></script>
+世界地图
+<script src="/static/smartchart/opt/smt_world.js"></script>
+统计图
+<script src="/static/smartchart/opt/smt_ecStat.js"></script>
+水球图
+<script src="/static/smartchart/opt/smt_liquidfill.js"></script>
+词云
+<script src="/static/smartchart/opt/smt_wordcloud.js"></script>
+百度地图
+<script type="text/javascript" src="https://fastly.jsdelivr.net/npm/echarts@5/dist/extension/bmap.min.js"></script>
+

+ 输入图片说明

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/管理图形/index.html b/docs/smartchart/docs/3.图形开发/管理图形/index.html new file mode 100644 index 0000000..48e8326 --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/管理图形/index.html @@ -0,0 +1,1681 @@ + + + + + + + + + + + + + + +管理图形 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 管理图形 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+

如何快速复用已开发好的组件

+

+ 本地管理自定义组件 + # +

+

如下图,点击图形编辑器中的菜单,即可管理和查看自定义图形列表 +点击"加入样列"即可把当前图形加入到样列清单, 点击"取消样列"即可将所选样列移除样列清单 + + 输入图片说明

+

+ 云管理,在图形商店中保存你的图形 + # +

+

这样你就可以在图形商店看到你的图形进行重复利用 + + 输入图片说明

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/3.图形开发/调试日志/index.html b/docs/smartchart/docs/3.图形开发/调试日志/index.html new file mode 100644 index 0000000..ed77800 --- /dev/null +++ b/docs/smartchart/docs/3.图形开发/调试日志/index.html @@ -0,0 +1,1691 @@ + + + + + + + + + + + + + + +调试日志 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 调试日志 + + +
+ + + + + + +
+ + + +

+ 关于页面日志查看 + # +

+

大家可能比较熟悉使用F12来查看网页日志, 但有的同学会觉得这不够方便, 所以 +在5.1.11后, smartchart加入了可以页面直接显示日志的功能

+

+ 在仪表盘中显示 + # +

+

你只需要点击如下菜单, 即可切换是否显示日志 + + 输入图片说明 +当在刷新页面或执行时, 日志将直接显示在右上角中, 而且还能显示出对应出错的图表序号 + + 输入图片说明

+

+ 在图形中显示 + # +

+

smartchart基于python的使用习惯, 重定义的专用的日志打印函数print +你可以在图形编辑器中使用些函数即可打印日志 +比如看看鼠标放在echarts图上params, 在编辑界面和console中都能看到日志, 方便你进行调试 + + 输入图片说明

+

不仅仅这些, 你可能会想写太多打印日志, 上线了不好 +smartchart已为你想到这些, 如果你在仪表盘中没有开启日志显示, print函数是不会打印任何日志

+

有了仪表盘日志显示, 我们还能做更多的事情, 比如实时显示你拖拽的坐标, 让你精确定位 + + 输入图片说明

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/4.布局说明/index.html b/docs/smartchart/docs/4.布局说明/index.html new file mode 100644 index 0000000..d3dac77 --- /dev/null +++ b/docs/smartchart/docs/4.布局说明/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +4.布局说明 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 4.布局说明 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/4.布局说明/index.xml b/docs/smartchart/docs/4.布局说明/index.xml new file mode 100644 index 0000000..3a86f8d --- /dev/null +++ b/docs/smartchart/docs/4.布局说明/index.xml @@ -0,0 +1,38 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E5%B8%83%E5%B1%80%E6%8C%87%E5%BC%95/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E5%B8%83%E5%B1%80%E6%8C%87%E5%BC%95/ + 整理一份完整的SmartChart布局说明 # 推荐先观看视屏了解 smartchart布局方式 +容器说明 # 容器 说明 定位容器 用于图形定位, 有拖拽和栅格两种. 在界面上新增时会自带;在模板编辑中新增图形时需自行加入容器 图形容器 用于图形选择, 使用id选择器, 如序号为2的容器, 选择器为#container_2 图形 可视化的实际单位, 如选择图形中的table标签, 可使用#container_2 table 响应式布局 # 一般移动端报表推荐使用响应式布局, 一次布局可以同时满足电脑端/移动端的需求 当你新增一个数据集时, smartchart会给你一段默认的代码 +&lt;div class=&#34;el-col-xs-24 el-col-md-24&#34; style=&#34;padding:0.2rem;height:50%;&#34; &gt; &lt;div style=&#34;height:100%;&#34; id=&#34;container_{name}&#34;&gt;&lt;/div&gt; &lt;/div&gt; el-col-md-24 : 电脑端宽度设定 控制图形父容器的宽度, 整行分成24个栅格, 如果你想让图形占一半, 就可以改成el-col-md-12 el-col-xs-24 :移动端宽度设定 padding:0.5% 0.5%: 控制图形的上下, 左右内边距, padding: 上 右 下 左 比如你想要图形在容器中往下走一点, 你可写成 padding: 1% 0 0 0 height:50%; 盒子的高度, 相对于父容器的高度, 最外层即浏览器高度 大屏开发推荐使用拖拽布局(PRO) # 大家如果开发大屏, 只是用响应式布局可能对于复杂的布局不是很方便, 你也可以采用拖拽绝对定位的方法, 这样你可以随意指定图形的所在位置. + + + + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E6%8B%96%E6%8B%BD%E8%87%AA%E5%8A%A8%E5%AF%B9%E9%BD%90/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E6%8B%96%E6%8B%BD%E8%87%AA%E5%8A%A8%E5%AF%B9%E9%BD%90/ + 拖拽很方便, 但是精确对齐还是有些手抖, 所以smartchart增加了自动对齐的功能 你可以在&quot;模板&quot; &ndash;&gt; &ldquo;转化&rdquo; 中找到这个功能 首先我们随意拖拽了一些组件 然后选中拖拽代码段, 点&quot;拖拽对齐&quot; 后 点&quot;保存&quot; 就可以查看对齐后的效果了, 再进行下拖拽微调, 重复以上动作到满意 + + + + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E5%88%A0%E9%99%A4%E5%AE%B9%E5%99%A8/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E5%88%A0%E9%99%A4%E5%AE%B9%E5%99%A8/ + 对于仪表盘中不再使用的数据集,你可能会考虑删除 首先smartchart推荐你不做删除,因为你可以保留他, 当你下次有新增数据集的需求时再拿出来 所以优先推荐使用隐藏的方法,你可以在数据集编辑界面找到他 如果你实在需要删除,可以在“报表”界面先中不需要容器后,选中删除,后保存 + + + + diff --git a/docs/smartchart/docs/4.布局说明/不常用/index.html b/docs/smartchart/docs/4.布局说明/不常用/index.html new file mode 100644 index 0000000..2762d60 --- /dev/null +++ b/docs/smartchart/docs/4.布局说明/不常用/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +不常用 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 不常用 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/4.布局说明/不常用/index.xml b/docs/smartchart/docs/4.布局说明/不常用/index.xml new file mode 100644 index 0000000..6258fe3 --- /dev/null +++ b/docs/smartchart/docs/4.布局说明/不常用/index.xml @@ -0,0 +1,30 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E4%B8%8D%E5%B8%B8%E7%94%A8/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E4%B8%8D%E5%B8%B8%E7%94%A8/%E4%BB%A3%E7%A0%81%E8%BD%AC%E5%8C%96%E5%B8%83%E5%B1%80/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E4%B8%8D%E5%B8%B8%E7%94%A8/%E4%BB%A3%E7%A0%81%E8%BD%AC%E5%8C%96%E5%B8%83%E5%B1%80/ + 由于我们移除了boostrap的布局方式, 此布局不再做推荐! 初次学习的同学, 可能会需要一个拖拉拽的布局方式(3.9.9.13以上才支持), 所以下面介绍的是smartchart的辅助布局方法 +你可以在&quot;布局&quot; 中找到入口 进入编辑器后, 你可以拖拉拽的方式进行布局, 注意我们建意你一个column(C)容器只放一个smartchart的图形便于标准化 点击&quot;生成&quot;, 复制相关代码 回到仪表盘&quot;布局&quot;, 粘贴到编辑器, 点击 &ldquo;闪电&rdquo; 图标, 进行转化, 可能会提示你数据集不够,这样你需要新增足够数量的数据集后再点转化 注: 代码转化布局你可以不用可视化辅助, 可以用其它任意每三方布局工具生成代码后粘过来生成, 需要注意的格式是: 在你需要数据集的地方使用以下代码即可: +&lt;div style=&#34;height:100%&#34; id=&#34;container_{name}&#34;&gt;&lt;/div&gt; 转化完成后, 点击保存即可应用布局 + + + + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E4%B8%8D%E5%B8%B8%E7%94%A8/%E5%AE%B9%E5%99%A8%E7%AE%A1%E7%90%86%E7%95%8C%E9%9D%A2/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E4%B8%8D%E5%B8%B8%E7%94%A8/%E5%AE%B9%E5%99%A8%E7%AE%A1%E7%90%86%E7%95%8C%E9%9D%A2/ + 容器管理 # 你可以单独对一个容器进行编辑,或者在全局进行编辑 全局编辑器 移动图形 +你有两种方法移动数据集 可以在“报表” 中直接暴力修改序号 也可以在数据集编辑器中移动, 可选择插入(带着容器一起动),替换(容器不动,就是整体布局不变化, 只移动数据和图形) + + + + diff --git a/docs/smartchart/docs/4.布局说明/不常用/代码转化布局/index.html b/docs/smartchart/docs/4.布局说明/不常用/代码转化布局/index.html new file mode 100644 index 0000000..5d217fc --- /dev/null +++ b/docs/smartchart/docs/4.布局说明/不常用/代码转化布局/index.html @@ -0,0 +1,1669 @@ + + + + + + + + + + + + + + +代码转化布局 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 代码转化布局 + + +
+ + + + + + +
+ + + +

由于我们移除了boostrap的布局方式, 此布局不再做推荐! +初次学习的同学, 可能会需要一个拖拉拽的布局方式(3.9.9.13以上才支持), 所以下面介绍的是smartchart的辅助布局方法

+
    +
  • +

    你可以在"布局" 中找到入口 + + 输入图片说明

    +
  • +
  • +

    进入编辑器后, 你可以拖拉拽的方式进行布局, 注意我们建意你一个column(C)容器只放一个smartchart的图形便于标准化 + + 输入图片说明

    +
  • +
  • +

    点击"生成", 复制相关代码 + + 输入图片说明

    +
  • +
  • +

    回到仪表盘"布局", 粘贴到编辑器, 点击 “闪电” 图标, 进行转化, 可能会提示你数据集不够,这样你需要新增足够数量的数据集后再点转化 + + 输入图片说明

    +
  • +
+

注: 代码转化布局你可以不用可视化辅助, 可以用其它任意每三方布局工具生成代码后粘过来生成, 需要注意的格式是: +在你需要数据集的地方使用以下代码即可:

+
<div style="height:100%"  id="container_{name}"></div>
+
    +
  • 转化完成后, 点击保存即可应用布局 + + 输入图片说明
  • +
+

+ 输入图片说明

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/4.布局说明/不常用/容器管理界面/index.html b/docs/smartchart/docs/4.布局说明/不常用/容器管理界面/index.html new file mode 100644 index 0000000..28ca02e --- /dev/null +++ b/docs/smartchart/docs/4.布局说明/不常用/容器管理界面/index.html @@ -0,0 +1,1690 @@ + + + + + + + + + + + + + + +容器管理界面 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 容器管理界面 + + +
+ + + + + + +
+ + + +

+ 容器管理 + # +

+
    +
  • 你可以单独对一个容器进行编辑,或者在全局进行编辑
  • +
+

+ 输入图片说明

+
    +
  • +

    全局编辑器 + + 输入图片说明

    +
  • +
  • +

    移动图形

    +
  • +
+
    +
  1. +

    你有两种方法移动数据集 +可以在“报表” 中直接暴力修改序号 + + 输入图片说明

    +
  2. +
  3. +

    也可以在数据集编辑器中移动, +可选择插入(带着容器一起动),替换(容器不动,就是整体布局不变化, 只移动数据和图形) + + 输入图片说明

    +
  4. +
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/4.布局说明/删除容器/index.html b/docs/smartchart/docs/4.布局说明/删除容器/index.html new file mode 100644 index 0000000..8fbdd0c --- /dev/null +++ b/docs/smartchart/docs/4.布局说明/删除容器/index.html @@ -0,0 +1,1639 @@ + + + + + + + + + + + + + + +删除容器 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 删除容器 + + +
+ + + + + + +
+ + + +

对于仪表盘中不再使用的数据集,你可能会考虑删除 +首先smartchart推荐你不做删除,因为你可以保留他, 当你下次有新增数据集的需求时再拿出来 +所以优先推荐使用隐藏的方法,你可以在数据集编辑界面找到他 + + 输入图片说明 +如果你实在需要删除,可以在“报表”界面先中不需要容器后,选中删除,后保存

+

+ 输入图片说明

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/4.布局说明/布局指引/index.html b/docs/smartchart/docs/4.布局说明/布局指引/index.html new file mode 100644 index 0000000..5b4da32 --- /dev/null +++ b/docs/smartchart/docs/4.布局说明/布局指引/index.html @@ -0,0 +1,1732 @@ + + + + + + + + + + + + + + +布局指引 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 布局指引 + + +
+ + + + + + +
+ + + +

+ 整理一份完整的SmartChart布局说明 + # +

+

推荐先观看视屏了解 + smartchart布局方式

+

+ 容器说明 + # +

+ + + + + + + + + + + + + + + + + + + + + + +
容器说明
定位容器用于图形定位, 有拖拽和栅格两种. 在界面上新增时会自带;在模板编辑中新增图形时需自行加入容器
图形容器用于图形选择, 使用id选择器, 如序号为2的容器, 选择器为#container_2
图形可视化的实际单位, 如选择图形中的table标签, 可使用#container_2 table
+

+ 响应式布局 + # +

+

一般移动端报表推荐使用响应式布局, 一次布局可以同时满足电脑端/移动端的需求 +当你新增一个数据集时, smartchart会给你一段默认的代码

+
<div class="el-col-xs-24 el-col-md-24" style="padding:0.2rem;height:50%;" >
+  <div style="height:100%;" id="container_{name}"></div>
+</div>
+
+el-col-md-24 : 电脑端宽度设定
+控制图形父容器的宽度, 整行分成24个栅格, 如果你想让图形占一半, 就可以改成el-col-md-12
+el-col-xs-24 :移动端宽度设定
+padding:0.5% 0.5%:
+控制图形的上下, 左右内边距,  padding: 上 右 下 左
+比如你想要图形在容器中往下走一点, 你可写成 padding: 1% 0 0 0
+height:50%;
+盒子的高度, 相对于父容器的高度, 最外层即浏览器高度
+

+ 大屏开发推荐使用拖拽布局(PRO) + # +

+

大家如果开发大屏, 只是用响应式布局可能对于复杂的布局不是很方便, 你也可以采用拖拽绝对定位的方法, 这样你可以随意指定图形的所在位置. +方法可参考视屏 + 拖拽说明 +你可以配合使用 ”模板开发“ 来实现高度定制化的效果, 参考 + 模板开发指引

+

+ 混合布局(PRO) + # +

+

你可以考虑先用响应式布局把整体框架画出来, 如果要加一下装饰的情况, 可以用绝对定位(拖拽布局)来实现

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/4.布局说明/拖拽自动对齐/index.html b/docs/smartchart/docs/4.布局说明/拖拽自动对齐/index.html new file mode 100644 index 0000000..fd1a189 --- /dev/null +++ b/docs/smartchart/docs/4.布局说明/拖拽自动对齐/index.html @@ -0,0 +1,1642 @@ + + + + + + + + + + + + + + +拖拽自动对齐 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 拖拽自动对齐 + + +
+ + + + + + +
+ + + +

拖拽很方便, 但是精确对齐还是有些手抖, 所以smartchart增加了自动对齐的功能 +你可以在"模板" –> “转化” 中找到这个功能 +首先我们随意拖拽了一些组件 + + 输入图片说明 +然后选中拖拽代码段, 点"拖拽对齐" 后 点"保存" + + 拖拽对齐 +就可以查看对齐后的效果了, 再进行下拖拽微调, 重复以上动作到满意 + + 输入图片说明

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/5.参数及联动钻取/index.html b/docs/smartchart/docs/5.参数及联动钻取/index.html new file mode 100644 index 0000000..dfcd3f5 --- /dev/null +++ b/docs/smartchart/docs/5.参数及联动钻取/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +5.参数及联动钻取 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 5.参数及联动钻取 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/5.参数及联动钻取/index.xml b/docs/smartchart/docs/5.参数及联动钻取/index.xml new file mode 100644 index 0000000..46a4b7f --- /dev/null +++ b/docs/smartchart/docs/5.参数及联动钻取/index.xml @@ -0,0 +1,59 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E5%8F%82%E6%95%B0%E7%BC%96%E5%86%99%E6%96%B9%E6%B3%95/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E5%8F%82%E6%95%B0%E7%BC%96%E5%86%99%E6%96%B9%E6%B3%95/ + 使用场景 # 需要使用图表联动效果 数据服务接口开发 使用魔法方法(smartchart独创,拒绝抄袭) # 基础原理 # - $参数名, 当有传递参数时将替换相关的值 - /* ... $参数 ... */, 当参数写在这个区间时, 如果外部没有传入参数, 会自动忽略这一段代码 - -- 标识之后单行的代码会被忽略 常见组合应用 # 理解以下样列后, 可录活使用组合出各种可能的需求 +默认参数: 实现在不传参数时默认参数是当前月份 select xx from tablename where calmonth =/*&#39;$calmonth&#39; -- */ to_char(sysdate,&#39;YYYYMM&#39;) 多个参数: 注意使用1=1及and的位置 select xx from tablename where 1=1 /* and city = &#39;$city&#39; */ /* and calmonth =&#39;$calmonth&#39;*/ 维度变化: 将字段当成参数 select /*$calmonth,*/ city, count(1) as qty from tablename group by /*$calmonth,*/ city 维度变化: 当传入月份条件时, 按城市,月份的数据, 不传参数时只看按城市的总数 select /*月份, -- $Month */ 城市, sum(度量) from tablename where 1=1 /* and 月份 &gt; &#39;$Month&#39; */ group by 城市 /*,月份 -- $Month*/ 高级开关应用 # 以上应用可以通过参数是否有传递来实现开关代码段的效果, 有些场景可能还希望通过参数值来进行代码段的开关 如下代码可以实现当传递参数type=1 或 type=2 时执行不同的代码段 使用 &ldquo;$参数__值&rdquo; 的方式做为开关 + + + + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E5%9B%BE%E5%BD%A2%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E5%9B%BE%E5%BD%A2%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/ + 数据集准备 # 首先在需要进行联动的数据集中SQL的写法如下, 比如对应2号图形: +注意 /* ... */的写法, 当参数写在这个区间时, 如果外部没有传入参数, 会自动忽略这一段代码, 这样对于联动来说非常重要, 初始时全部显示, 点击其它图形时传入参数进行动态联动 select xxx,xxx,xxx from tablename /* where xxxx = &#39;$参数名&#39; */ .... 建意观看视屏比较容易理解: 数据联动说明 +常规方法 # 比如你需要点击0号图形, 指定其它图形联动 你只需要打开0号图形的数据集编辑页面, 点击标题的位置 然后输入相关的参数即可, 以下为sample 参数值设定的方法, 你可以先留空, 然后保存, F12打浏览器调试方法 点击0号图形你需要点击的动作, 你可以右调试窗口的console看到输入的log 比如我们需要传递的参数值是&quot;廉颇&quot;, 那么取数据的方法就是data.name, 你把这个填入即可 这样就实现按所选数据或所选系列钻取/联动了, 重新点击当前所选, 恢复原来的 如何在图形开发中获取参数值 +图形编辑器中, 你可以使用函数 ds_param(&#39;参数名&#39;) 来获取传入的参数值 高级定制方法 # 如果有更多个性化需求,可以在需要点击的图形的编辑器中加入以下代码,你仅仅需要修改的是序号和参数名 +//比如传入多个参数进行联动 myChart__name__.on(&#39;click&#39;, function(params){ let myparam = params.seriesName; //获取点击的值 filter_param[&#39;参数名&#39;] = myparam; //填写你的数据集的SQL设定中对应的参数名 filter_param[&#39;参数名2&#39;] = myparam2; //你可以赋值给多个参数 ds_refresh(3); //3 为你要刷新图形序号 }); 你也可以使用更方便的参数赋值方法(5. + + + + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E7%AD%9B%E9%80%89%E5%99%A8%E6%8C%87%E5%8D%97/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E7%AD%9B%E9%80%89%E5%99%A8%E6%8C%87%E5%8D%97/ + 通用实现方式 # SMARTCHART实现筛选最简单的方法只需要配一个控件即可: +建立一个筛选清单数据集, 自动获取筛选的列表,那么可以这么写 +Select xxxx as city from tablename..... 则会生成一个如下的数据集: [[&#39;city&#39;],[选项1],[选项2],..] 良好的习惯, 先保存在数据集 然后在筛选器数据集中的js编辑器(图形编辑器),填下如下代码: +//如要要美化, 自已加样式, 只要保证id=&#34;id_select__name__&#34; let dataset=__dataset__; let table =&#39;&lt;span&gt;标题&lt;/span&gt;&lt;select id=&#34;id_select__name__&#34;&gt;&#39;; table = table + &#39;&lt;option value=&#34;&#34; selected&gt;----&lt;/option&gt;&#39;; for(let i=1;i&lt;dataset.length;i++){ table = table + &#39;&lt;option&gt;&#39; + dataset[i][0] + &#39;&lt;/option&gt;&#39;; } table = table + &#39;&lt;/select&gt;&lt;/div&gt;&lt;/div&gt;&#39; dom__name__.innerHTML=table; 这个时候你已经可以看到筛选器了 现在我们来设定联动效果 +假设需要被筛选的数据集的SQL这样写,数据集的序号是0 +//那么在需要被联动的数据集中,如使用pcity做为参数写查询, 比如: select xx, xx, xx from tablename /* where xx = &#39;$pcity&#39; */ 现在回到我们筛选器数据集,点击标题的位置, 我们需要使0号图形被筛选器联动, 设置如下即可: 然后你就可以看到筛选效果了, 非常的简单方便, 需要多个图形被联动, 只需用逗号分隔即可 比如: 0, 2, 4 + + + + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E7%BB%84%E4%BB%B6%E8%87%AA%E5%AE%9A%E4%B9%89%E8%81%94%E5%8A%A8/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E7%BB%84%E4%BB%B6%E8%87%AA%E5%AE%9A%E4%B9%89%E8%81%94%E5%8A%A8/ + 应用场景 # Smartchart对于单项筛选有通用的组件, 可以直接配置即可,但对于个性化的筛选,需要你进行一些简单的定制化,以下就针对多项筛选联动的需求来介绍如何定制化你的筛选联动效果 通过此例,你可以了解如何自定义任意的联动效果 样列参考 # 以我们内置的仪表盘为例, +第一步,新建一个数据集 +第二步,在新的数据集中编写查询 +select distinct H1 as heroname from smartdemo2 limit 10 第三步,编辑此数据集的图形,可复制以下代码 +//select distinct xx from tablename let dataset=__dataset__; let table = &#39;&#39;; for (let i=1;i&lt;dataset.length;i++){ table = `${table}&lt;label&gt;&lt;input name=&#34;select__name__&#34; type=&#34;checkbox&#34; value=&#34;${dataset[i][0]}&#34; /&gt;${dataset[i][0]}&lt;/label&gt; `; } table = table + &#34;&lt;button id=&#39;id_select__name__&#39;&gt;提交&lt;/button&gt;&#34;; dom__name__.innerHTML=table; $(&#39;#id_select__name__&#39;).click( function(){ let res = []; $(&#34;input[name=&#39;select__name__&#39;]:checked&#34;).each(function(i){ res.push(&#34;&#39;&#34; + $(this).val() + &#34;&#39;&#34;); }); filter_param[&#39;H1&#39;] = res.toString(); //参数赋值 ds_refresh(1); //刷新1号图形 } ) 第四步,在你要联动刷新数据集中增加代码 + + + + diff --git a/docs/smartchart/docs/5.参数及联动钻取/参数编写方法/index.html b/docs/smartchart/docs/5.参数及联动钻取/参数编写方法/index.html new file mode 100644 index 0000000..2fd8265 --- /dev/null +++ b/docs/smartchart/docs/5.参数及联动钻取/参数编写方法/index.html @@ -0,0 +1,1765 @@ + + + + + + + + + + + + + + +参数编写方法 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 参数编写方法 + + +
+ + + + + + +
+ + + +

+ 使用场景 + # +

+
    +
  • 需要使用图表联动效果
  • +
  • 数据服务接口开发
  • +
+

+ 使用魔法方法(smartchart独创,拒绝抄袭) + # +

+

+ 基础原理 + # +

+
-  $参数名, 当有传递参数时将替换相关的值
+-  /* ... $参数 ... */, 当参数写在这个区间时, 如果外部没有传入参数, 会自动忽略这一段代码
+-  -- 标识之后单行的代码会被忽略
+

+ 常见组合应用 + # +

+

理解以下样列后, 可录活使用组合出各种可能的需求

+
    +
  • 默认参数: 实现在不传参数时默认参数是当前月份
  • +
+
select xx from tablename where
+calmonth =/*'$calmonth' -- */ to_char(sysdate,'YYYYMM')
+
    +
  • 多个参数: 注意使用1=1及and的位置
  • +
+
select xx from tablename where 1=1 /* and city = '$city' */ 
+/* and calmonth ='$calmonth'*/
+
    +
  • 维度变化: 将字段当成参数
  • +
+
select /*$calmonth,*/ city, count(1) as qty from tablename 
+group by /*$calmonth,*/ city
+
    +
  • 维度变化: 当传入月份条件时, 按城市,月份的数据, 不传参数时只看按城市的总数
  • +
+
select /*月份, -- $Month */  
+城市, sum(度量) from tablename 
+where 1=1
+/* and 月份 > '$Month' */
+group by 城市  
+/*,月份 -- $Month*/
+

+ 高级开关应用 + # +

+

以上应用可以通过参数是否有传递来实现开关代码段的效果, 有些场景可能还希望通过参数值来进行代码段的开关 +如下代码可以实现当传递参数type=1 或 type=2 时执行不同的代码段 +使用 “$参数__值” 的方式做为开关

+
/* select count(1) as qty from tablename1  $type__1*/
+/* select count(1) as qty from tablename2  $type__2*/
+

再比如 +当参数D传值为"月份"时是统计2022年按月的统计, +传"日期"时统计的是2022年10月按天的统计

+
select $D, count(1) as qty from tablename
+where 1 = 1
+/* and year='2022'    -- $D__日期  $D__月份 */
+/* and month='10'      $D__日期 */
+group by
+$D
+
+

加了"–“是为了避免语法错误

+
+

+ 数据集开发调试参数方法 + # +

+
对于开发人员来说, 带参数的SQL调试不方便, 所以支持你在sql中写入默认参数
+方法如下格式, 你可以在sql编辑器的最上方写上 /* {xxxxxx} */, 
+会默认在开发调试模式下取这些参数, 在用户模式下会忽略
+/* {"月份":"202009","城市":"中山"} */
+select xxx from table xxx
+

+ 数据权限行级别控制 + # +

+
    +
  • 当你在sql查询中加上’$username’, 会自动替换成登录用户的用户名
  • +
  • 如果你是嵌入到第三方系统, 你可以通过url传递参数id, 在后台会转化为参数_id, 在sql中配置$_id即可控制数据权限
  • +
  • 可以采用此做数据权限关联后台权限mapping表进行数据权限控制实现不同人看不同的数据
  • +
+

+ 参数的传递方式 + # +

+
    +
  • 你可以从url传入参数, 在url上加入 &param={“参数名”:“参数值”}
  • +
  • 在图形联动的点击过程中会自动传递参数, 具体参考联动相关文档
  • +
+
+

TIPS +当设定参数后, 联动过程dataset的缓存功能失效, 所以不要让带参数的查询设计得太慢 +参数如果存在一些非法字符可能会有问题, 比如参数中不可以有#号

+
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/5.参数及联动钻取/图形联动钻取/index.html b/docs/smartchart/docs/5.参数及联动钻取/图形联动钻取/index.html new file mode 100644 index 0000000..9c3553c --- /dev/null +++ b/docs/smartchart/docs/5.参数及联动钻取/图形联动钻取/index.html @@ -0,0 +1,1727 @@ + + + + + + + + + + + + + + +图形联动钻取 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 图形联动钻取 + + +
+ + + + + + +
+ + + +

+ 数据集准备 + # +

+

首先在需要进行联动的数据集中SQL的写法如下, 比如对应2号图形:

+
注意 /* ... */的写法, 当参数写在这个区间时, 如果外部没有传入参数, 
+会自动忽略这一段代码, 这样对于联动来说非常重要, 
+初始时全部显示, 点击其它图形时传入参数进行动态联动
+
+select xxx,xxx,xxx from tablename /* where xxxx = '$参数名' */ .... 
+

建意观看视屏比较容易理解: + + 数据联动说明

+

+ 常规方法 + # +

+

比如你需要点击0号图形, 指定其它图形联动 +你只需要打开0号图形的数据集编辑页面, 点击标题的位置 + + 输入图片说明 +然后输入相关的参数即可, 以下为sample + + 输入图片说明 +参数值设定的方法, 你可以先留空, 然后保存, F12打浏览器调试方法 +点击0号图形你需要点击的动作, 你可以右调试窗口的console看到输入的log +比如我们需要传递的参数值是"廉颇", 那么取数据的方法就是data.name, 你把这个填入即可 + + 输入图片说明

+

这样就实现按所选数据或所选系列钻取/联动了, 重新点击当前所选, 恢复原来的 +如何在图形开发中获取参数值

+
图形编辑器中, 
+你可以使用函数 ds_param('参数名') 来获取传入的参数值
+

+ 高级定制方法 + # +

+

如果有更多个性化需求,可以在需要点击的图形的编辑器中加入以下代码,你仅仅需要修改的是序号参数名

+
//比如传入多个参数进行联动
+myChart__name__.on('click', function(params){
+     let myparam = params.seriesName;  //获取点击的值
+     filter_param['参数名'] = myparam;  //填写你的数据集的SQL设定中对应的参数名
+     filter_param['参数名2'] = myparam2;  //你可以赋值给多个参数
+     ds_refresh(3);   //3 为你要刷新图形序号
+});
+

你也可以使用更方便的参数赋值方法(5.6以上)

+
//使用方法
+ds_setParam('参数名', 参数值)
+此方法将自动判断当参数值为空时, 删除参数回到初始未传参状态
+

你还可以实现钻取到另外一个报表

+
myChart__name__.on('click', function (params) {
+ let myparam = `&param={"参数名": "${params.seriesName}"}`;
+ //拼成url并传参,具体参考数据集说明中的数据联动url传参的方法
+ let myurl='http://localhost:8000/echart/?type=目标报表名'+ myparam;
+ window.open(myurl,'_blank','toolbar=no,scrollbar=no,top=100,left=100,width=800,height=500');
+});
+
+

TIPS +如果你的参数中存在非法字符如&=, 你可以使用encodeURIComponent函数进行转义后赋值

+
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/5.参数及联动钻取/筛选器指南/index.html b/docs/smartchart/docs/5.参数及联动钻取/筛选器指南/index.html new file mode 100644 index 0000000..ac5a18c --- /dev/null +++ b/docs/smartchart/docs/5.参数及联动钻取/筛选器指南/index.html @@ -0,0 +1,1697 @@ + + + + + + + + + + + + + + +筛选器指南 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 筛选器指南 + + +
+ + + + + + +
+ + + +

+ 通用实现方式 + # +

+

SMARTCHART实现筛选最简单的方法只需要配一个控件即可:
+建立一个筛选清单数据集, 自动获取筛选的列表,那么可以这么写

+
 Select xxxx as city from tablename..... 
+ 则会生成一个如下的数据集: 
+ [['city'],[选项1],[选项2],..]
+

良好的习惯, 先保存在数据集 +然后在筛选器数据集中的js编辑器(图形编辑器),填下如下代码:

+
//如要要美化, 自已加样式, 只要保证id="id_select__name__"
+let dataset=__dataset__;
+let table ='<span>标题</span><select  id="id_select__name__">';
+table = table + '<option value="" selected>----</option>';
+ for(let i=1;i<dataset.length;i++){ 
+  table = table + '<option>' + dataset[i][0] + '</option>';
+ }
+table = table + '</select></div></div>'
+
+dom__name__.innerHTML=table;
+

这个时候你已经可以看到筛选器了 + + 输入图片说明

+

现在我们来设定联动效果

+

假设需要被筛选的数据集的SQL这样写,数据集的序号是0

+
//那么在需要被联动的数据集中,如使用pcity做为参数写查询, 比如:
+select xx, xx, xx from tablename /* where xx = '$pcity' */
+

现在回到我们筛选器数据集,点击标题的位置, 我们需要使0号图形被筛选器联动, 设置如下即可: + + 输入图片说明

+

然后你就可以看到筛选效果了, 非常的简单方便, 需要多个图形被联动, 只需用逗号分隔即可 比如: 0, 2, 4

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/5.参数及联动钻取/组件自定义联动/index.html b/docs/smartchart/docs/5.参数及联动钻取/组件自定义联动/index.html new file mode 100644 index 0000000..0db3cdb --- /dev/null +++ b/docs/smartchart/docs/5.参数及联动钻取/组件自定义联动/index.html @@ -0,0 +1,1720 @@ + + + + + + + + + + + + + + +组件自定义联动 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 组件自定义联动 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+

Smartchart对于单项筛选有通用的组件, 可以直接配置即可,但对于个性化的筛选,需要你进行一些简单的定制化,以下就针对多项筛选联动的需求来介绍如何定制化你的筛选联动效果 +通过此例,你可以了解如何自定义任意的联动效果 + + 输入图片说明

+

+ 样列参考 + # +

+

以我们内置的仪表盘为例,

+

第一步,新建一个数据集

+

第二步,在新的数据集中编写查询

+
select distinct H1 as heroname  from smartdemo2 limit 10
+

第三步,编辑此数据集的图形,可复制以下代码

+
//select distinct xx  from tablename
+let dataset=__dataset__;
+let table = '';
+for (let i=1;i<dataset.length;i++){
+    table = `${table}<label><input name="select__name__" type="checkbox" value="${dataset[i][0]}" />${dataset[i][0]}</label> `;
+}
+table = table + "<button id='id_select__name__'>提交</button>";
+
+dom__name__.innerHTML=table;
+
+$('#id_select__name__').click(
+    function(){
+        let res = [];
+        $("input[name='select__name__']:checked").each(function(i){
+            res.push("'" + $(this).val() + "'");
+        });
+		
+        filter_param['H1'] = res.toString();  //参数赋值
+        ds_refresh(1);  //刷新1号图形
+
+    }
+)
+

第四步,在你要联动刷新数据集中增加代码

+
select H1 as heroname, sum(qty) as 出场数 from smartdemo2
+where 1=1
+/* and H1 in ($H1) */      --此处来新增
+group by H1
+order by sum(qty) desc
+

这样就完成了,任何其他需求,都可以采用类似方法自定义

+
+

TIPS +如果你这个点击的图形又可能被其它图形来点击联动, 你需要加入如下unbind否则会触发多次刷新 +$(’#id_select__name__’).unbind(‘click’).click(…..

+
+
+

如果你想取消联动,恢复到初始效果, 你需要删除参数, 如: +delete filter_param[‘H1’]

+
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/6.Jupyter应用/Jupyter中使用指引/index.html b/docs/smartchart/docs/6.Jupyter应用/Jupyter中使用指引/index.html new file mode 100644 index 0000000..bfa9653 --- /dev/null +++ b/docs/smartchart/docs/6.Jupyter应用/Jupyter中使用指引/index.html @@ -0,0 +1,1807 @@ + + + + + + + + + + + + + + +Jupyter中使用指引 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Jupyter中使用指引 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+
+

你需要在jupyter中通过smartchart分享的数据集获取数据进行分析 +你有很多线下数据需要进行个性化分析, 然后制做仪表盘 +在Jupyter的数据分析过程中, 你需要快速生成图形 +大屏或报表有部分数据集是需要能过复杂的分析生成的

+
+

Smartchart支持像pyecharts, Matplotlib 等python绘图工具一样在Jupyter中使用, +但她更加方便, 更加炫酷 和 通用化, +不仅仅是一个绘图工具, 而且是一个平台

+

我们有什么特色:

+
+

使用上手非常简单, 仅仅只有两个命令, get and set, 配置项采用原生的Echarts配置, 无重复学习成本, 使用顺滑 +支持Echarts所有功能, 可定制化程度高, 显示效果好, 可嵌入也可以弹出窗口显示, 也可以dashboard中显示 +数据可以固化存储, 采用smartchart Portal可以直接拼接炫酷大屏

+
+

+ Smartchart与Pandas + + Smartchart与Jupyter + + SmartChart大屏新思路

+

+ 输入图片说明

+

+ 安装使用方法 + # +

+
你需要在jupyter相同的python环境中安装smartchart客户端
+pip install smartchart
+或pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple smartchart
+
+如果你只是需要连接已部署好的smartchart服务端, 本地无需启动smartchart
+

+ 快速开始 + # +

+

初始化认证: +第一次使用时, 打开jupyter后, 需要设定默认用户和smartchart服务端url +同一个环境, 只需初始化一次, 后面无需再设定

+
from smart_chart import Smart
+Smart().set_auth('用户名', '密码',url = 'http://xxxxx')
+

如果smartchart服务端在本地, 可以省略url

+
Smart().set_auth('用户名', '密码')
+

使用方法:

+
from smart_chart import Smart
+mysmart = Smart()
+dataset = [['A','B','C'],[12,34,23],[22,33,37]]
+#把数据写入临时数据集并显示图形
+mysmart.set(1,dataset)
+#随意命名临时数据集, 不一定需要smartchart中数据集已有的
+mysmart.set('DD', dataset)
+
+#从已有的数据集中获取数据(格式参考smartchart数据集)
+ds1 = mysmart.get(1)
+ds2 = mysmart.get('DD')
+

+ 修改图形显示 + # +

+

方法一: 你可以在图形菜单中选择内置图形或主题 +方法二: set默认是表格显示,你也可通过名称加前缀 bar, line, pie进行修改

+
mysmart.set('barxxx', dataset)  #显示柱形图, 另外还有linexxx, piexxx
+

方法三: 简单图形,可能无法满足你的个性化要求, 你可以采用实例化数据集的方式后做出炫酷的自定义图形

+
mysmart.set('myds_1', dataset, push=1)  #参数push=1, 将实例化数据集
+

实例化的数据集, 在图形编辑区点击, 可以进入定制化图形开发, 可使用原生的Echarts配置和实时调试,或直接使用社区图形(第一次使用,有一个登记的过程, 按提示进行) + + 输入图片说明

+

方法四: 如何在非实例化的数据集中使用自定义图形进行临时显示 +假如你已经实例化并自定义了图形, 比如 ‘myds_1’, 你可以直接用它的名称来set

+
#不加push, 将使用新的数据采用myds_1的图形临时显示, 而不会改变原myds_1的数据
+mysmart.set('myds_1', dataset) 
+

+ 显示设定参数 + # +

+

你可以通过参数来设定图形的高宽, 是否嵌入等个性化要求

+
# width, height指定图形嵌入显示的宽高
+# embed 默认不嵌入, embed=1 嵌入, embed=0 不嵌入
+# editor 是否显示图形菜单, 1显示, 0不显示
+# push 是否持久化数据集 push=1, 无则新建有则保存数据
+# url 报表访问的url,默认是localhost
+
+#可以全局初始化设定
+mysmart = Smart(width=xx, height=xx, embed=1, editor='')
+#也可以全局单独进行设定
+mysmart.url = 'http://ip:8000'
+mysmart.embed = 1
+
+#也可以针对单独的一个图形设定
+mysmart.set(1,dataset,embed=1,height=200,editor=0)
+

+ SmartChart与Pandas + # +

+

Smartchart的set支持直接set Pandas的dataframe对象

+
from smart_chart import Smart
+import pandas as pd
+mysmart = Smart()
+df = pd.read_excel('manual_smartdemo.xlsx', 'sheet1')
+mysmart.set('excelsample', df.sample(10))
+
+
+df1 = df.groupby('province').agg({'qty':'sum'}).reset_index()
+mysmart.set('ec_df1', df1, push=1)
+
+df2 = df.groupby('c1').agg({'qty':'sum'}).reset_index()
+mysmart.set('ec_df2', df2, push=1)
+
+df4 = df.groupby('province').agg({'qty':'count'}).reset_index()
+mysmart.set('ec_df4', df1, push=1)
+
+
+df3 = df.groupby('c3').agg({'qty':'sum'}).reset_index()
+print(df3)
+df3.loc[1, 'qty'] = df3.loc[1, 'qty'] * 100
+print(df3)
+
+mysmart.set('ec_df3', df3, push=1)
+
+#mysmart.set('pie0', df1)
+#df2 = df.groupby(['province','c3']).agg({'qty':'sum'}).reset_index()
+#print(df2)
+#mysmart.set('ssss', df2)
+#print(mysmart.get(15))
+

+ 输入图片说明

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/6.Jupyter应用/index.html b/docs/smartchart/docs/6.Jupyter应用/index.html new file mode 100644 index 0000000..b0bd84e --- /dev/null +++ b/docs/smartchart/docs/6.Jupyter应用/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +6. Jupyter应用 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 6. Jupyter应用 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/6.Jupyter应用/index.xml b/docs/smartchart/docs/6.Jupyter应用/index.xml new file mode 100644 index 0000000..61d3990 --- /dev/null +++ b/docs/smartchart/docs/6.Jupyter应用/index.xml @@ -0,0 +1,24 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/6.Jupyter%E5%BA%94%E7%94%A8/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/6.Jupyter%E5%BA%94%E7%94%A8/Jupyter%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%8C%87%E5%BC%95/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/6.Jupyter%E5%BA%94%E7%94%A8/Jupyter%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%8C%87%E5%BC%95/ + 应用场景 # 你需要在jupyter中通过smartchart分享的数据集获取数据进行分析 你有很多线下数据需要进行个性化分析, 然后制做仪表盘 在Jupyter的数据分析过程中, 你需要快速生成图形 大屏或报表有部分数据集是需要能过复杂的分析生成的 +Smartchart支持像pyecharts, Matplotlib 等python绘图工具一样在Jupyter中使用, 但她更加方便, 更加炫酷 和 通用化, 不仅仅是一个绘图工具, 而且是一个平台 +我们有什么特色: +使用上手非常简单, 仅仅只有两个命令, get and set, 配置项采用原生的Echarts配置, 无重复学习成本, 使用顺滑 支持Echarts所有功能, 可定制化程度高, 显示效果好, 可嵌入也可以弹出窗口显示, 也可以dashboard中显示 数据可以固化存储, 采用smartchart Portal可以直接拼接炫酷大屏 +Smartchart与Pandas Smartchart与Jupyter SmartChart大屏新思路 +安装使用方法 # 你需要在jupyter相同的python环境中安装smartchart客户端 pip install smartchart 或pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple smartchart 如果你只是需要连接已部署好的smartchart服务端, 本地无需启动smartchart 快速开始 # 初始化认证: 第一次使用时, 打开jupyter后, 需要设定默认用户和smartchart服务端url 同一个环境, 只需初始化一次, 后面无需再设定 +from smart_chart import Smart Smart().set_auth(&#39;用户名&#39;, &#39;密码&#39;,url = &#39;http://xxxxx&#39;) 如果smartchart服务端在本地, 可以省略url + + + + diff --git a/docs/smartchart/docs/7.报表嵌入/index.html b/docs/smartchart/docs/7.报表嵌入/index.html new file mode 100644 index 0000000..8660331 --- /dev/null +++ b/docs/smartchart/docs/7.报表嵌入/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +7.报表嵌入 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 7.报表嵌入 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/7.报表嵌入/index.xml b/docs/smartchart/docs/7.报表嵌入/index.xml new file mode 100644 index 0000000..bb61bc6 --- /dev/null +++ b/docs/smartchart/docs/7.报表嵌入/index.xml @@ -0,0 +1,42 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/%E7%AE%80%E5%8D%95%E5%B5%8C%E5%85%A5/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/%E7%AE%80%E5%8D%95%E5%B5%8C%E5%85%A5/ + 你可能需要把Smartchart生成的图形嵌入到其它系统 首先,所有smartchart设计出来的仪表盘都有一个访问url 你可以直接访问: +http://localhost:8000/echart?type=仪表盘名称 如:http://localhost:8000/echart?type=demo 但是smartchart默认是有权限管理的,所以如果你需要嵌入你自已的系统又不考虑权限,你可以在“设定” &ndash;&gt; 公开 然后在你的网页就可以直接iframe了 +&lt;iframe src=&#34;http://localhost:8000/echart?type=demo&#34; style=&#34;width:100%;height:100%&#34;&gt;&lt;/iframe&gt; + + + + + https://smartchart.gitee.io/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95/ + 单点登录的方式与smartchart进行对接嵌入 # &#39;/echart/smart_login?id=xxx&amp;stamp=xxx&amp;token=xxx&amp;url=https://smartchart.gitee.io/&#39; &#39;&#39;&#39; 参数说明: id: 用户名(在smartchart平台中管理) stamp: 时间戳(1970年1月1日到生成时间的毫秒数) token: 采用sha1加密, token=SHA1(链接秘钥+stamp+id) 请在安装smartchart的这台机器上设定环境变量SMART_KEY = 链接秘钥 url: 登录成功后跳转链接 &#39;&#39;&#39; Python后台样列: # import time import hashlib import os &#34;&#34;&#34; 参数说明: id: 用户名(在smartchart平台中管理) stamp: 时间戳(1970年1月1日到生成时间的毫秒数) token: 采用sha1加密, token=SHA1(链接秘钥+stamp+id) url: 登录成功后跳转链接 &#34;&#34;&#34; SMART_CHART_URL = &#39;http://127.0.0.1:8000&#39; LOGIN_URL = SMART_CHART_URL + &#39;/echart/smart_login?id={id}&amp;stamp={stamp}&amp;token={token}&amp;url={url}&#39; SMART_KEY = 链接秘钥 def get_smarturl(username, url=&#39;/&#39;): stamp = int(time.time() * 1000) id = username res = SMART_KEY + str(stamp) + id token = hashlib. + + + + + https://smartchart.gitee.io/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/%E5%8D%95%E9%A1%B5%E9%9D%A2%E5%B5%8C%E5%85%A5/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/%E5%8D%95%E9%A1%B5%E9%9D%A2%E5%B5%8C%E5%85%A5/ + 嵌入报表 # 与单点登录类似, 单点登录用于直接登录到平台访问报表 但对于只嵌入报表, 用此方法更合适(需升级到5.3.11以上) +嵌入的url: &#39;/echart/?type={reportName}&amp;visitor={visitor}&amp;token={token}&amp;stamp={stamp}&#39; 参数说明: reportName: 报表名或报表ID visitor: 用户名(在smartchart平台中管理) stamp: 时间戳(1970年1月1日到生成时间的毫秒数) token: 采用sha1加密, token=SHA1(链接秘钥+stamp+visitor+reportName) 用户名和秘钥设定参考 数据服务API的config文件 +同时你需要将visitor加入到对应的报表权限查看访问 +python样列 # 以下为python版的url生成样列,你可以转化成你对应的开发语言 +import time import hashlib import os SMART_CHART_URL = &#39;http://127.0.0.1:8000&#39; reportID = &#39;报表ID&#39; LOGIN_URL = SMART_CHART_URL + &#39;/echart/?type={reportID}&amp;visitor={visitor}&amp;token={token}&amp;stamp={stamp}&#39; TOKEN = 链接秘钥 def get_smarturl(username, reportName): stamp = int(time.time() * 1000) visitor = username res = TOKEN + str(stamp) + visitor + reportID token = hashlib.sha1(res.encode(&#39;utf-8&#39;)).hexdigest() VISIT_DICT = { &#34;visitor&#34;: id, &#34;stamp&#34;: stamp, &#34;token&#34;: token, &#34;reportID&#34;: reportName } # 拼接好的url,直接访问 visit_url = LOGIN_URL. + + + + diff --git a/docs/smartchart/docs/7.报表嵌入/单点登录/index.html b/docs/smartchart/docs/7.报表嵌入/单点登录/index.html new file mode 100644 index 0000000..17444d2 --- /dev/null +++ b/docs/smartchart/docs/7.报表嵌入/单点登录/index.html @@ -0,0 +1,1706 @@ + + + + + + + + + + + + + + +单点登录 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 单点登录 + + +
+ + + + + + +
+ + + +

+ 单点登录的方式与smartchart进行对接嵌入 + # +

+
'/echart/smart_login?id=xxx&stamp=xxx&token=xxx&url=/'
+'''
+参数说明:
+id: 用户名(在smartchart平台中管理)
+stamp: 时间戳(1970年1月1日到生成时间的毫秒数)
+token: 采用sha1加密, token=SHA1(链接秘钥+stamp+id)
+       请在安装smartchart的这台机器上设定环境变量SMART_KEY = 链接秘钥
+url: 登录成功后跳转链接
+'''
+

+ Python后台样列: + # +

+
import time
+import hashlib
+import os
+
+"""
+参数说明:
+id: 用户名(在smartchart平台中管理)
+stamp: 时间戳(1970年1月1日到生成时间的毫秒数)
+token: 采用sha1加密, token=SHA1(链接秘钥+stamp+id)
+url: 登录成功后跳转链接
+"""
+
+SMART_CHART_URL = 'http://127.0.0.1:8000'
+LOGIN_URL = SMART_CHART_URL + '/echart/smart_login?id={id}&stamp={stamp}&token={token}&url={url}'
+SMART_KEY = 链接秘钥
+
+
+def get_smarturl(username, url='/'):
+    stamp = int(time.time() * 1000)
+    id = username
+    res = SMART_KEY + str(stamp) + id
+    token = hashlib.sha1(res.encode('utf-8')).hexdigest()
+    LOGIN_DICT = {
+        "id": id,
+        "stamp": stamp,
+        "token": token,
+        "url": url
+    }
+
+    # 拼接好的url,直接访问
+    visit_url = LOGIN_URL.format(**LOGIN_DICT)
+    return visit_url
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/7.报表嵌入/单页面嵌入/index.html b/docs/smartchart/docs/7.报表嵌入/单页面嵌入/index.html new file mode 100644 index 0000000..4b0be3c --- /dev/null +++ b/docs/smartchart/docs/7.报表嵌入/单页面嵌入/index.html @@ -0,0 +1,1731 @@ + + + + + + + + + + + + + + +单页面嵌入 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 单页面嵌入 + + +
+ + + + + + +
+ + + +

+ 嵌入报表 + # +

+

与单点登录类似, 单点登录用于直接登录到平台访问报表 +但对于只嵌入报表, 用此方法更合适(需升级到5.3.11以上)

+
嵌入的url: '/echart/?type={reportName}&visitor={visitor}&token={token}&stamp={stamp}'
+参数说明:
+reportName: 报表名或报表ID
+visitor: 用户名(在smartchart平台中管理)
+stamp: 时间戳(1970年1月1日到生成时间的毫秒数)
+token: 采用sha1加密, token=SHA1(链接秘钥+stamp+visitor+reportName)
+

用户名和秘钥设定参考 + 数据服务API的config文件

+

同时你需要将visitor加入到对应的报表权限查看访问

+

+ python样列 + # +

+

以下为python版的url生成样列,你可以转化成你对应的开发语言

+
import time
+import hashlib
+import os
+
+SMART_CHART_URL = 'http://127.0.0.1:8000'
+reportID = '报表ID'
+LOGIN_URL = SMART_CHART_URL + '/echart/?type={reportID}&visitor={visitor}&token={token}&stamp={stamp}'
+TOKEN = 链接秘钥
+
+
+def get_smarturl(username, reportName):
+    stamp = int(time.time() * 1000)
+    visitor = username
+    res = TOKEN + str(stamp) + visitor + reportID
+    token = hashlib.sha1(res.encode('utf-8')).hexdigest()
+    VISIT_DICT = {
+        "visitor": id,
+        "stamp": stamp,
+        "token": token,
+        "reportID": reportName
+    }
+
+    # 拼接好的url,直接访问
+    visit_url = LOGIN_URL.format(** VISIT_DICT)
+    return visit_url
+

+ 数据权限加密方法 + # +

+
如果你需要对用户进行一些数据权限控制, 可以避免用户越权访问
+可以通过传入参数"id", 如/echart/?type=xxx&visitor=xx&token=xx&stamp=xxxxx&id=xxx
+后台会把这个id转化为参数名"_id"给对应的查询来进行数据权限控制
+加密参数需把id加入, 例如id=john
+那么 token=SHA1(链接秘钥+stamp+visitor+reportName+id)
+

+ 全参数加密方法 + # +

+
如果需要将参数也加入认证中, 为保持兼容性, 我们把param这个参数改为params(具体参考参数文档中param的写法)
+'/echart/?type={reportName}&visitor={visitor}&token={token}&stamp={stamp}&params=xxxx'
+加密参数把params加入, 例如params为 {"a":"1","b":2"}
+res = TOKEN + str(stamp) + visitor + reportName + '{"a":"1","b":2"}'
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/7.报表嵌入/简单嵌入/index.html b/docs/smartchart/docs/7.报表嵌入/简单嵌入/index.html new file mode 100644 index 0000000..e7be683 --- /dev/null +++ b/docs/smartchart/docs/7.报表嵌入/简单嵌入/index.html @@ -0,0 +1,1646 @@ + + + + + + + + + + + + + + +简单嵌入 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 简单嵌入 + + +
+ + + + + + +
+ + + +

你可能需要把Smartchart生成的图形嵌入到其它系统 +首先,所有smartchart设计出来的仪表盘都有一个访问url +你可以直接访问:

+
http://localhost:8000/echart?type=仪表盘名称
+
+如:http://localhost:8000/echart?type=demo
+

但是smartchart默认是有权限管理的,所以如果你需要嵌入你自已的系统又不考虑权限,你可以在“设定” –> 公开 + + 输入图片说明

+

然后在你的网页就可以直接iframe了

+
<iframe src="http://localhost:8000/echart?type=demo" style="width:100%;height:100%"></iframe>
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/8.Django应用/FAQ/index.html b/docs/smartchart/docs/8.Django应用/FAQ/index.html new file mode 100644 index 0000000..a465bc3 --- /dev/null +++ b/docs/smartchart/docs/8.Django应用/FAQ/index.html @@ -0,0 +1,1670 @@ + + + + + + + + + + + + + + +Faq | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Faq + + +
+ + + + + + +
+ + + +

+ FAQ + # +

+
+

如果你想对smartchart前端二次开发或关闭debug模式后找不到资源 +在settings中加入

+
STATIC_ROOT = os.path.join(BASE_DIR, "static")
+

执行以下命令将静态文件静态文件克隆到根目录

+
python3 manage.py collectstatic
+

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/8.Django应用/index.html b/docs/smartchart/docs/8.Django应用/index.html new file mode 100644 index 0000000..28a9a44 --- /dev/null +++ b/docs/smartchart/docs/8.Django应用/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +8. Django应用 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 8. Django应用 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/8.Django应用/index.xml b/docs/smartchart/docs/8.Django应用/index.xml new file mode 100644 index 0000000..795d4cd --- /dev/null +++ b/docs/smartchart/docs/8.Django应用/index.xml @@ -0,0 +1,32 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/8.Django%E5%BA%94%E7%94%A8/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/8.Django%E5%BA%94%E7%94%A8/%E5%B5%8C%E5%85%A5Django-Apps/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/8.Django%E5%BA%94%E7%94%A8/%E5%B5%8C%E5%85%A5Django-Apps/ + 应用场景 # 你可以在你的django项目中直接使用smartchart做为插件的方式 你可以查看相关视屏 +使用方法 # 在你的setting.py的INSTALL_APPS中加入&rsquo;smart_chart.echart' 如果你需要simpleui, 你可以在最上行加入我们适配好的&rsquo;smart_chart.smartui&rsquo; INSTALLED_APPS = [ &#39;smart_chart.smartui&#39;, .... .... &#39;smart_chart.echart&#39; ] MIDDLEWARE 中注释掉XFrameOptionsMiddleware +检查确保在Templates的设定处有DIRS的相关设定 +TEMPLATES = [ { &#39;BACKEND&#39;: &#39;django.template.backends.django.DjangoTemplates&#39;, &#39;DIRS&#39;: [BASE_DIR / &#39;templates&#39;], #此处需要有 &#39;APP_DIRS&#39;: True, #也要有 ..... }, ] setting.py中设定为中国时区, 支持中文基础平台建设! LANGUAGE_CODE = &#39;zh-hans&#39; TIME_ZONE = &#39;Asia/Shanghai&#39; USE_I18N = True USE_L10N = True USE_TZ = False # 此处必须为False 在你的url.py中加入引用 from django.conf.urls import include from django.views.generic import RedirectView url.py的urlpatterns中加入路由 path(&#39;echart/&#39;, include(&#39;smart_chart.echart.urls&#39;)), path(&#39;&#39;, RedirectView. + + + + + https://smartchart.gitee.io/docs/8.Django%E5%BA%94%E7%94%A8/FAQ/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/8.Django%E5%BA%94%E7%94%A8/FAQ/ + FAQ # 如果你想对smartchart前端二次开发或关闭debug模式后找不到资源 在settings中加入 +STATIC_ROOT = os.path.join(BASE_DIR, &#34;static&#34;) 执行以下命令将静态文件静态文件克隆到根目录 +python3 manage.py collectstatic + + + + diff --git a/docs/smartchart/docs/8.Django应用/嵌入Django-Apps/index.html b/docs/smartchart/docs/8.Django应用/嵌入Django-Apps/index.html new file mode 100644 index 0000000..b7a801c --- /dev/null +++ b/docs/smartchart/docs/8.Django应用/嵌入Django-Apps/index.html @@ -0,0 +1,1741 @@ + + + + + + + + + + + + + + +嵌入 Django Apps | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 嵌入 Django Apps + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+

你可以在你的django项目中直接使用smartchart做为插件的方式 + + 你可以查看相关视屏

+

+ 使用方法 + # +

+
    +
  1. 在你的setting.py的INSTALL_APPS中加入’smart_chart.echart' +如果你需要simpleui, 你可以在最上行加入我们适配好的’smart_chart.smartui’
  2. +
+
INSTALLED_APPS = [
+    'smart_chart.smartui',
+    ....
+    ....
+    'smart_chart.echart'
+]
+
    +
  1. +

    MIDDLEWARE 中注释掉XFrameOptionsMiddleware

    +
  2. +
  3. +

    检查确保在Templates的设定处有DIRS的相关设定

    +
  4. +
+
TEMPLATES = [
+    {
+        'BACKEND': 'django.template.backends.django.DjangoTemplates',
+        'DIRS': [BASE_DIR / 'templates'],   #此处需要有
+        'APP_DIRS': True,   #也要有
+        .....
+    },
+]
+
    +
  1. setting.py中设定为中国时区, 支持中文基础平台建设!
  2. +
+
    LANGUAGE_CODE = 'zh-hans'
+    TIME_ZONE = 'Asia/Shanghai'
+    USE_I18N = True
+    USE_L10N = True
+    USE_TZ = False  # 此处必须为False
+
    +
  1. 在你的url.py中加入引用
  2. +
+
    from django.conf.urls import include
+    from django.views.generic import RedirectView
+
    +
  1. url.py的urlpatterns中加入路由
  2. +
+
    path('echart/', include('smart_chart.echart.urls')),
+    path('', RedirectView.as_view(url='echart/index/')),  #首页,可自定义路由
+
    +
  1. 初始化DB, 命令行输入:
  2. +
+
    python manage.py makemigrations
+    python manage.py migrate
+
    +
  1. 建立管理员帐号, 如果已有可忽略
  2. +
+
   python manage.py createsuperuser
+
    +
  1. 启动服务
  2. +
+
   python manage.py runserver
+

10. 点击首页的组件升级进行初始化 :cupid: !!!! 重要!!! +

+

+ 注意 + # +

+

一般来说如果你使用django遇到的问题,都不是smartchart导致的, +作者也很难给你解答, 建议你可以进行有偿问答

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/index.html b/docs/smartchart/docs/9.进阶开发PRO/index.html new file mode 100644 index 0000000..913d739 --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +9.进阶开发 Pro | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 9.进阶开发 Pro + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/index.xml b/docs/smartchart/docs/9.进阶开发PRO/index.xml new file mode 100644 index 0000000..8e1d508 --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/index.xml @@ -0,0 +1,92 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E5%AE%9E%E6%88%98%E5%A4%A7%E5%B1%8F%E6%A8%A1%E6%9D%BF%E8%BD%AC%E5%8C%96/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E5%AE%9E%E6%88%98%E5%A4%A7%E5%B1%8F%E6%A8%A1%E6%9D%BF%E8%BD%AC%E5%8C%96/ + 应用场景 # 已有开发好的非smartchart静态大屏模板(这种模板非常多, 不要上当) 对js, css及smartchart已有初始了解 业务需求展示有合适的模板, 变化不大 如何使用 # 请观看系列视屏, 相信人人都会 头条视屏: 大屏模板转化系列 B站视屏: 大屏模板转化系列 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%95%B0%E6%8D%AE%E6%9C%8D%E5%8A%A1API/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%95%B0%E6%8D%AE%E6%9C%8D%E5%8A%A1API/ + SmartChart的数据集功能, 可以非常方便的实现数据对外微服务 # 权限设定 # 如果你使用的是自已搭建的django项目, 你需要在项目的根目录下新建一个JSON文件, 如果是使用smartchart启动的, 配置文件在项目的安装目录下可以找到 名为apiconfig.json, 比如需要调用API的用户名为test 和 test2,用户名需要是在你的用户设定中存在的,内容如下: { &#34;test&#34;: { &#34;token&#34;: &#34;smartchart&#34; }, &#34;test2&#34;: { &#34;token&#34;: &#34;smartchartxxx&#34;, &#34;host&#34;: [&#34;10.10.10.10&#34;,&#34;10.10.10.23&#34;], &#34;limit&#39;: 60, &#34;log&#34;:1, &#34;cors&#34;: 1 } } 可选设定参考test2 host:API白名单配置,limit:一分钟内可调用次数, log:日志记录方式. cors:永许跨域访问 +然后你只需要将你的数据集中的权限设定给对应的用户即可 请求方式 # 加密接口请求方式(推荐) # GET 请求 # #接口请求格式: url: /echart/dataset_api/?visitor=xxx&amp;token=xxx&amp;type=xxx&amp;stamp=xxxxx&amp;param={&#34;xx&#34;:&#34;xxx&#34;,&#34;xx&#34;:&#34;xxxx&#34;} # 参数说明 visitor: 用户名 type: 接口数据集ID stamp: 时间戳(1970年1月1日到生成时间的毫秒数) token: 采用sha1加密, token=SHA1(秘钥 + stamp + Visitor + Type) param: 传入的参数值(可选),格式json字符串,如多个参数: &#39;{&#34;参数A&#34;:&#34;xxxx&#34;, &#34;参数B&#34;:&#34;xxxx&#34;}&#39; # 接口返回格式 Json: { &#34;data&#34;:[[]], &#34;result&#34;:&#34;success&#34;, &#34;maxpg&#34;:1, &#34;pg&#34;:1 } 返回值说明: data : 二维数组,第一行为表头, 样列数据 [[&#34;heroname&#34;, &#34;qty&#34;],[&#34;镜&#34;,658],[&#34;猪八戒&#34;,591]] result : success 或 error maxpg/pg : GET请求固定为1不分页 POST请求(适用于后台定时同步数据,查询请用GET请求方法) # #接口请求格式: url: /echart/dataset_api/ # 请求参数说明 data: { &#34;visitor&#34;:&#34;xxx&#34;, &#34;token&#34;:&#34;xxx&#34;, &#34;stamp&#34;:xxxxx, &#34;type&#34;:&#34;xxx&#34;, &#34;pagesize&#34;:&#34;xxx&#34;, &#34;pg&#34;:&#34;xxx&#34;, &#34;param&#34;:&#39;{&#34;xxx&#34;:&#34;xxxx&#34;}&#39; } # 参数说明 visitor: 用户名 type: 接口数据集ID stamp: 时间戳(1970年1月1日到生成时间的毫秒数) token: 采用sha1加密, token=SHA1(秘钥 + stamp + Visitor + Type) Pagesize: 采用分页,每页的数据量大小 pg: 返回第几页 param: 传入的参数值,格式json字符串,如多个参数 &#39;{&#34;参数A&#34;:&#34;xxxx&#34;, &#34;参数B&#34;:&#34;xxxx&#34;}&#39; #接口返回格式 Json: { &#34;data&#34;:[[]], &#34;result&#34;:&#34;success&#34;, &#34;maxpg&#34;:xxx, #最大页数 &#34;pg&#34;:xx, #当前页数 &#34;casheflag&#34;: xx, #如果是999说明命中缓存 &#34;total&#34;:xx, #总条数 } 注意: 只有post是分页的, 第一页是带标题的, 后面页不带标题 由于post方式会使用缓存进行分页,如命中缓存传参不会生效,小数据量请使用get方式请求 不要请求大数据量,大量数据请采用limit, offset传参方式进行分页 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E5%A4%87%E4%BB%BD%E6%81%A2%E5%A4%8D%E5%8F%8A%E7%89%88%E6%9C%AC/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E5%A4%87%E4%BB%BD%E6%81%A2%E5%A4%8D%E5%8F%8A%E7%89%88%E6%9C%AC/ + 应用场景 # 本地仪表盘的备份恢复,版本管理 开发测试生产机之间的同步 具体使用方法请观看视屏 版本控制使用说明视屏 +使用方法 # 快速备份 # 可以在模板-&gt;点击如下图标, 完成快速备份(注意会覆盖历史), 备份号统一为:SNAPSHOT 指定备份 # 你也可以在设定-&gt;备份恢复 中进行按版本备份 查询备份 # 当不输入KEY值, 点击 本地备份时,可以查询此仪表盘已有的备份 备份恢复 # 备份可以在任意的仪表盘中进行恢复,如果是当前仪表盘, 仅输入KEY即可,比如:V01, 如果是跨仪表盘恢复, KEY需要带上仪表盘的编号如13_V01 +备份恢复参数说明 # 可以支持多种恢复模式, 只需要在KEY前面加上前缀即可, 如FORCEV01, FORCE13_V01.. FORCE: 删除自身所有数据集及高级设定,模板等,完全恢复备份 DATASET:只更新数据集及图形,模板,适用于测试上线正式 CHART: 只更新图形及模板,适用于前端变更上线 +跨服务器间同步 # 具体方法购买专业版本后提供 +使用以下流程, 可以使企业在使用最少资源做出最专业的可视化项目 # 前提条件: # 公司内部有技术人员(熟悉数据, 会写SQL) 服务器安装smartchart专业版 开发流程: # 由于公司内部人员是对业务最熟悉, 一般也都是后台数据管理相关的人员, 一般不太会有专职的前端开发和UI 所以数据开发人员可以使用smartchart开发仪表盘数据集, 并使用拖拽功能完成一个粗糙一点的框架和图形设计 一般情况下已经可以满足数据可视化的需求 +如果需要达到更专业的可视化效果, 可以外包前端/UI或在smartchart社区咨询, 由于需求变得非常简单 而前端开发又是一个通用技能, 可以使用非常廉价的费用获得最大的效果 +专业的事情专业来做, 才能达到效益最大化, 这是smartchart的设计理念 不管用什么工具, 在同等资源的投入下, 数据分析人员开发的可视化效果很难达到专业前端UI的效果 另外BI/数据开发人员的费用可是比前端高的, 也更稀缺 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%95%B0%E6%8D%AE%E4%B8%8B%E8%BD%BD/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%95%B0%E6%8D%AE%E4%B8%8B%E8%BD%BD/ + 应用场景: # 需要要下载数据集的数据到本地 +样例: # 可在&quot;模板&quot; 中新建一个下载按钮, 并指定一个ID,如id_down1, 拖拽到你需要的位置 在任意一个图形开发或js代码段中加入以下代码即可 +$(&#39;#id_down1&#39;).click(()=&gt;{ ds_download(&#39;报表数据.csv&#39;, dataset); }); 这样就可以实现点击按钮下载数据了 +仅需要录活使用ds_download这个函数, 你可以开发出非常个性化的下载功能 +ds_download(name, dataset) 参数说明: name: 文件名称 dataset: 可以是二维数组也可以是字符串 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%95%B0%E6%8D%AE%E5%A1%AB%E6%8A%A5/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%95%B0%E6%8D%AE%E5%A1%AB%E6%8A%A5/ + 应用场景 # 收集用户端录入的数据 前端处理好的数据回写到任意系统 制做问卷系统 埋点应用 使用方法 # 新建数据集设定,格式如下: 只用指定表名 dataset={ &#34;table&#34;:&#34;表名&#34; } 你也可以指定字段, 比如 dataset={ &#34;table&#34;:&#34;表名(字段1, 字段2)&#34; } 在&quot;容器&quot;管理, 取消这个数据集激活, 并记录下来此数据集的ID, 比如132 在&quot;模板&quot;中编写录入组件代码, 具体可参考视屏 +&lt;h1 class=&#34;smtdrag&#34; id=&#34;id_1648895680659&#34;&gt;数据填报&lt;/h1&gt; &lt;div class=&#34;smtdrag&#34; id=&#34;id_1648895855760&#34;&gt; &lt;label&gt;用户&lt;/label&gt;&lt;input id=&#34;id_visitor&#34;&gt; &lt;/div&gt; &lt;div class=&#34;smtdrag&#34; id=&#34;id_1648895859160&#34;&gt; &lt;label&gt;动作&lt;/label&gt;&lt;input id=&#34;id_action&#34;&gt; &lt;/div&gt; &lt;div class=&#34;smtdrag&#34; id=&#34;id_1648895956207&#34;&gt; &lt;button id=&#34;idbtn01&#34;&gt;提交&lt;/button&gt; &lt;/div&gt; 在&quot;模板&quot; 中编写JS代码 $(&#39;#idbtn01&#39;).click(function(){ let visitor = $(&#39;#id_visitor&#39;).val(); let action = $(&#39;#id_action&#39;).val(); let dataset = [visitor, action]; print(ds_save(132, dataset)); //132数据集ID, dataset要写入的数据 }) 更多关于写入数据库的数据集格式说明 # 只写入一行数据, 样列如下: dataset = [&#39;a&#39;,&#39;b&#39;] 同时写入多行数据: dataset = [[], [&#39;a1&#39;,&#39;b1&#39;],[&#39;a2&#39;, &#39;b2]] 如果需要自动记录写入者用户名: dataset = [&#39;$username&#39;, &#39;b&#39;] mongodb写入方式 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E5%90%8E%E5%8F%B0API%E5%88%B7%E6%96%B0/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E5%90%8E%E5%8F%B0API%E5%88%B7%E6%96%B0/ + 应用场景 # 有ETL流程,需要等待后台数据刷新完成后,再触发仪表盘的刷新,数据未完成刷新,仪表盘不刷新 针对有一些耗时的查询, 虽然smartchart有缓存加速, 但是在第一次刷新时可能不能达到极速 用户需要随时都能体验到极速的打开效果 使用后台API刷新,建意将仪表盘中数据集的缓存时间设置长一些,比如2天(2880分钟) +后台数据主动刷新接口 # (购买专业版本后支持) +你需要在setting.py中设定API_TOKEN API_TOKEN = &#39;xxxxxxxx&#39; 找到你要刷新的仪表盘编码, 你可以在打开的仪表盘url上面找到这个type id +后台访问如下api url即可 +http://ip:端口/echart/refresh_ds/?type=你的报表ID&amp;token=你设定的API_TOKEN 关于定时刷新 # 为保持产品的轻量化及坚持专业的产品做专业的事情, 归一化统一化的架构设计, 我们不会集成相关调度系统, 一般我们推荐使用您自有的调度工具或平台, 如airflow, 我们也有相关的配套产品 +如果您仅仅是简单应用, 也无需使用专用调度来增加运维复杂度, 可以使用linux自带的即可 +新建一个sh文件, 假设目录在/data/smartchart vim refresh_smartchart.sh 写入需要刷新的脚本 echo start refresh $(date &#34;+%Y-%m-%d %H:%M:%S&#34;) curl http://ip:端口/echart/?type=你的报表ID1&amp;token=你设定的API_TOKEN curl http://ip:端口/echart/?type=你的报表ID2&amp;token=你设定的API_TOKEN echo end refresh $(date &#34;+%Y-%m-%d %H:%M:%S&#34;) 如果你的网址是https, 可如下方法使用curl +curl -k --insecure &#34;https://www.baidu.com” 修改为可执行文件 chmod 775 refresh_smartchart.sh 使用crontab来定时执行 # 编辑crontab crontab -e # 比如需要每天晚上5点10分执行 10 5 * * * /data/smartchart/refresh_smartchart. + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/webSocket%E6%96%B9%E5%BC%8F/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/webSocket%E6%96%B9%E5%BC%8F/ + 应用场景 # 对于实时程度要求比较高的情况下, 如果你后端已有实现websocket的接口, smartchart也可以很方便的接入 参考以下步骤即可 +在&quot;模板&quot;中定义一个全局变量, 如ws_data 编写连接和接收代码段逻辑 在接收代码段加入ds_refresh, 如要刷新0号图形, 则加入ds_refresh(0) 在&quot;高级&quot;设定中加入共享数据集设定, 把ws_data映射到0号图形即可 代码段参考 # let ws_data = [[&#39;初始化&#39;,&#39;V&#39;],[&#39;A&#39;,&#39;2&#39;]]; let ws = null; if(&#39;webSocket&#39; in window){ print(&#39;支持webSocket&#39;); ws = new webSocket(&#39;ws://127.0.0.1:2222/abc&#39;); //连接成功 ws.onopen = function(){ print(&#39;ws连接成功&#39;); } //接收消息 ws.onmessage = function(evt){ ws_data = evt.data; ds_refresh(0); } } else{ print(&#39;浏览器不支持ws&#39;) } + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/webSocket方式/index.html b/docs/smartchart/docs/9.进阶开发PRO/webSocket方式/index.html new file mode 100644 index 0000000..5f0af45 --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/webSocket方式/index.html @@ -0,0 +1,1696 @@ + + + + + + + + + + + + + + +Web Socket方式 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Web Socket方式 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+

对于实时程度要求比较高的情况下, 如果你后端已有实现websocket的接口, smartchart也可以很方便的接入 +参考以下步骤即可

+
    +
  1. 在"模板"中定义一个全局变量, 如ws_data
  2. +
  3. 编写连接和接收代码段逻辑
  4. +
  5. 在接收代码段加入ds_refresh, 如要刷新0号图形, 则加入ds_refresh(0)
  6. +
  7. 在"高级"设定中加入共享数据集设定, 把ws_data映射到0号图形即可
  8. +
+

+ 输入图片说明

+

+ 代码段参考 + # +

+
    let ws_data = [['初始化','V'],['A','2']];
+    let ws = null;
+    
+    if('webSocket' in window){
+        print('支持webSocket');
+        ws = new webSocket('ws://127.0.0.1:2222/abc');
+        //连接成功
+        ws.onopen = function(){
+            print('ws连接成功');
+        }
+        //接收消息
+        ws.onmessage = function(evt){
+            ws_data = evt.data;
+            ds_refresh(0);
+        }
+    }
+    else{
+        print('浏览器不支持ws')
+    }
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/后台API刷新/index.html b/docs/smartchart/docs/9.进阶开发PRO/后台API刷新/index.html new file mode 100644 index 0000000..12a7eb4 --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/后台API刷新/index.html @@ -0,0 +1,1746 @@ + + + + + + + + + + + + + + +后台 Api刷新 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 后台 Api刷新 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+
    +
  • 有ETL流程,需要等待后台数据刷新完成后,再触发仪表盘的刷新,数据未完成刷新,仪表盘不刷新
  • +
  • 针对有一些耗时的查询, 虽然smartchart有缓存加速, 但是在第一次刷新时可能不能达到极速
  • +
  • 用户需要随时都能体验到极速的打开效果
  • +
+
+

使用后台API刷新,建意将仪表盘中数据集的缓存时间设置长一些,比如2天(2880分钟)

+
+

+ 后台数据主动刷新接口 + # +

+

(购买专业版本后支持)

+
    +
  1. 你需要在setting.py中设定API_TOKEN
  2. +
+
API_TOKEN = 'xxxxxxxx'
+
    +
  1. +

    找到你要刷新的仪表盘编码, 你可以在打开的仪表盘url上面找到这个type id

    +
  2. +
  3. +

    后台访问如下api url即可

    +
  4. +
+
http://ip:端口/echart/refresh_ds/?type=你的报表ID&token=你设定的API_TOKEN
+

+ 关于定时刷新 + # +

+

为保持产品的轻量化及坚持专业的产品做专业的事情, 归一化统一化的架构设计, 我们不会集成相关调度系统, +一般我们推荐使用您自有的调度工具或平台, 如airflow, 我们也有相关的配套产品

+

如果您仅仅是简单应用, 也无需使用专用调度来增加运维复杂度, 可以使用linux自带的即可

+
    +
  • 新建一个sh文件, 假设目录在/data/smartchart
  • +
+
vim refresh_smartchart.sh
+
    +
  • 写入需要刷新的脚本
  • +
+
echo  start refresh $(date "+%Y-%m-%d %H:%M:%S")
+curl  http://ip:端口/echart/?type=你的报表ID1&token=你设定的API_TOKEN
+curl  http://ip:端口/echart/?type=你的报表ID2&token=你设定的API_TOKEN
+echo  end refresh $(date "+%Y-%m-%d %H:%M:%S")
+
+

如果你的网址是https, 可如下方法使用curl

+
+
curl -k --insecure "https://www.baidu.com”
+
    +
  • 修改为可执行文件
  • +
+
chmod 775 refresh_smartchart.sh
+
    +
  • 使用crontab来定时执行
  • +
+
# 编辑crontab
+crontab -e
+# 比如需要每天晚上5点10分执行
+10 5 * * * /data/smartchart/refresh_smartchart.sh >>/data/smartchart/log.txt 2>&1
+
+# 定时参数说明
+*    *    *    *    *
+-    -    -    -    -
+|    |    |    |    |
+|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
+|    |    |    +---------- 月份 (1 - 12) 
+|    |    +--------------- 一个月中的第几天 (1 - 31)
+|    +-------------------- 小时 (0 - 23)
++------------------------- 分钟 (0 - 59)
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/备份恢复及版本/index.html b/docs/smartchart/docs/9.进阶开发PRO/备份恢复及版本/index.html new file mode 100644 index 0000000..af2e270 --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/备份恢复及版本/index.html @@ -0,0 +1,1759 @@ + + + + + + + + + + + + + + +备份恢复及版本 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 备份恢复及版本 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+
    +
  • 本地仪表盘的备份恢复,版本管理
  • +
  • 开发测试生产机之间的同步
  • +
+

具体使用方法请观看视屏 + 版本控制使用说明视屏

+

+ 使用方法 + # +

+

+ 快速备份 + # +

+

可以在模板->点击如下图标, 完成快速备份(注意会覆盖历史), 备份号统一为:SNAPSHOT + + 输入图片说明

+

+ 指定备份 + # +

+

你也可以在设定->备份恢复 中进行按版本备份 + + 输入图片说明

+

+ 查询备份 + # +

+

当不输入KEY值, 点击 本地备份时,可以查询此仪表盘已有的备份 + + 输入图片说明

+

+ 备份恢复 + # +

+

备份可以在任意的仪表盘中进行恢复,如果是当前仪表盘, 仅输入KEY即可,比如:V01, +如果是跨仪表盘恢复, KEY需要带上仪表盘的编号如13_V01

+

+ 备份恢复参数说明 + # +

+

可以支持多种恢复模式, 只需要在KEY前面加上前缀即可, 如FORCEV01, FORCE13_V01.. +FORCE: 删除自身所有数据集及高级设定,模板等,完全恢复备份 +DATASET:只更新数据集及图形,模板,适用于测试上线正式 +CHART: 只更新图形及模板,适用于前端变更上线

+

+ 跨服务器间同步 + # +

+

具体方法购买专业版本后提供

+

+ 使用以下流程, 可以使企业在使用最少资源做出最专业的可视化项目 + # +

+

+ 前提条件: + # +

+
    +
  1. 公司内部有技术人员(熟悉数据, 会写SQL)
  2. +
  3. 服务器安装smartchart专业版
  4. +
+

+ 开发流程: + # +

+

由于公司内部人员是对业务最熟悉, 一般也都是后台数据管理相关的人员, 一般不太会有专职的前端开发和UI +所以数据开发人员可以使用smartchart开发仪表盘数据集, 并使用拖拽功能完成一个粗糙一点的框架和图形设计 +一般情况下已经可以满足数据可视化的需求

+

如果需要达到更专业的可视化效果, 可以外包前端/UI或在smartchart社区咨询, 由于需求变得非常简单 +而前端开发又是一个通用技能, 可以使用非常廉价的费用获得最大的效果

+
+

专业的事情专业来做, 才能达到效益最大化, 这是smartchart的设计理念 +不管用什么工具, 在同等资源的投入下, 数据分析人员开发的可视化效果很难达到专业前端UI的效果 +另外BI/数据开发人员的费用可是比前端高的, 也更稀缺

+
+
    +
  • 前端开发只需本地安装smartchart, 而无需接触到公司数据库或数据接口, 开发完全解耦, 数据安全保障
  • +
  • smartchart可以将数据开发人员开发的仪表盘直接同步到前端开发的本地smartchart(仅会保留demo数据)
  • +
  • 前端进行一些简单的美化工作即可, 无需对业务和数据进行理解, 花费的时间非常之少
  • +
  • 前端开发完成后可以一键同步到smartchart服务端, 且可以只同步可视化部分
  • +
  • 由于数据和展示是分离的, 所以数据开发和前端美化是可以同步进行
  • +
  • 由于smartchart是一个平台化产品, 数据开发人员不熟悉前端也能在前端开发完成的基础上进行样式和图形的修改
  • +
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/实战大屏模板转化/index.html b/docs/smartchart/docs/9.进阶开发PRO/实战大屏模板转化/index.html new file mode 100644 index 0000000..dc94656 --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/实战大屏模板转化/index.html @@ -0,0 +1,1675 @@ + + + + + + + + + + + + + + +实战大屏模板转化 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 实战大屏模板转化 + + +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/数据下载/index.html b/docs/smartchart/docs/9.进阶开发PRO/数据下载/index.html new file mode 100644 index 0000000..0cfd299 --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/数据下载/index.html @@ -0,0 +1,1693 @@ + + + + + + + + + + + + + + +数据下载 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 数据下载 + + +
+ + + + + + +
+ + + +

+ 应用场景: + # +

+

需要要下载数据集的数据到本地

+

+ 样例: + # +

+
    +
  1. +

    可在"模板" 中新建一个下载按钮, 并指定一个ID,如id_down1, 拖拽到你需要的位置 + + 输入图片说明

    +
  2. +
  3. +

    在任意一个图形开发或js代码段中加入以下代码即可

    +
  4. +
+
$('#id_down1').click(()=>{
+    ds_download('报表数据.csv', dataset);
+});
+

这样就可以实现点击按钮下载数据了

+

仅需要录活使用ds_download这个函数, 你可以开发出非常个性化的下载功能

+
ds_download(name, dataset)
+参数说明:
+name: 文件名称
+dataset: 可以是二维数组也可以是字符串
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/数据填报/index.html b/docs/smartchart/docs/9.进阶开发PRO/数据填报/index.html new file mode 100644 index 0000000..672c140 --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/数据填报/index.html @@ -0,0 +1,1730 @@ + + + + + + + + + + + + + + +数据填报 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 数据填报 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+
    +
  • 收集用户端录入的数据
  • +
  • 前端处理好的数据回写到任意系统
  • +
  • 制做问卷系统
  • +
  • 埋点应用
  • +
+

+ 使用方法 + # +

+
    +
  • 新建数据集设定,格式如下:
  • +
+
只用指定表名
+dataset={
+    "table":"表名"
+}
+你也可以指定字段, 比如
+dataset={
+    "table":"表名(字段1, 字段2)"
+}
+
    +
  • +

    在"容器"管理, 取消这个数据集激活, 并记录下来此数据集的ID, 比如132 + + 输入图片说明

    +
  • +
  • +

    在"模板"中编写录入组件代码, + 具体可参考视屏

    +
  • +
+
    <h1 class="smtdrag" id="id_1648895680659">数据填报</h1>
+    
+    <div class="smtdrag" id="id_1648895855760">
+        <label>用户</label><input id="id_visitor">
+    </div>
+    <div class="smtdrag" id="id_1648895859160">
+        <label>动作</label><input id="id_action">
+    </div>
+    <div class="smtdrag" id="id_1648895956207">
+        <button id="idbtn01">提交</button>
+    </div>
+

+ 输入图片说明

+
    +
  • 在"模板" 中编写JS代码
  • +
+
   $('#idbtn01').click(function(){
+       let visitor = $('#id_visitor').val();
+       let action = $('#id_action').val();
+       let dataset = [visitor, action];
+       print(ds_save(132, dataset));  //132数据集ID, dataset要写入的数据
+   })
+

+ 更多关于写入数据库的数据集格式说明 + # +

+
只写入一行数据, 样列如下:
+dataset = ['a','b']
+同时写入多行数据:
+dataset = [[], ['a1','b1'],['a2', 'b2]]
+如果需要自动记录写入者用户名:
+dataset = ['$username', 'b']
+

mongodb写入方式

+
ds_save(419, {"h1":123, "h2":"bb"});
+ds_save(419, [[],{"h1":123, "h2":"aa"},{"h1":1234, "h2":"dd"}]);
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/数据服务API/index.html b/docs/smartchart/docs/9.进阶开发PRO/数据服务API/index.html new file mode 100644 index 0000000..5bb91cc --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/数据服务API/index.html @@ -0,0 +1,1814 @@ + + + + + + + + + + + + + + +数据服务 API | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 数据服务 API + + +
+ + + + + + +
+ + + +

+ SmartChart的数据集功能, 可以非常方便的实现数据对外微服务 + # +

+

+ 权限设定 + # +

+
    +
  • 如果你使用的是自已搭建的django项目, 你需要在项目的根目录下新建一个JSON文件, +如果是使用smartchart启动的, 配置文件在项目的安装目录下可以找到 +名为apiconfig.json,
  • +
  • 比如需要调用API的用户名为test 和 test2,用户名需要是在你的用户设定中存在的,内容如下:
  • +
+
{
+  "test": {
+    "token": "smartchart"
+  },
+  "test2": {
+   "token": "smartchartxxx",
+   "host": ["10.10.10.10","10.10.10.23"],
+   "limit': 60,
+   "log":1,
+   "cors": 1
+ }
+}
+
+

可选设定参考test2 +host:API白名单配置,limit:一分钟内可调用次数, log:日志记录方式. +cors:永许跨域访问

+
+
    +
  • 然后你只需要将你的数据集中的权限设定给对应的用户即可
  • +
+

+ 请求方式 + # +

+

+ 加密接口请求方式(推荐) + # +

+

+ GET 请求 + # +

+
#接口请求格式: 
+url: /echart/dataset_api/?visitor=xxx&token=xxx&type=xxx&stamp=xxxxx&param={"xx":"xxx","xx":"xxxx"}
+# 参数说明
+visitor: 用户名
+type: 接口数据集ID
+stamp: 时间戳(1970年1月1日到生成时间的毫秒数)
+token: 采用sha1加密, token=SHA1(秘钥 + stamp + Visitor + Type)
+param: 传入的参数值(可选)格式json字符串如多个参数: '{"参数A":"xxxx", "参数B":"xxxx"}'
+# 接口返回格式
+Json: 
+{
+"data":[[]],
+"result":"success",
+"maxpg":1,
+"pg":1
+}
+返回值说明
+data : 二维数组第一行为表头 样列数据
+[["heroname", "qty"],["镜",658],["猪八戒",591]]
+result : success 或 error
+maxpg/pg : GET请求固定为1不分页
+

+ POST请求(适用于后台定时同步数据,查询请用GET请求方法) + # +

+
#接口请求格式:
+url: /echart/dataset_api/
+# 请求参数说明
+data: 
+{
+"visitor":"xxx",
+"token":"xxx",
+"stamp":xxxxx,
+"type":"xxx",     
+"pagesize":"xxx",  
+"pg":"xxx",       
+"param":'{"xxx":"xxxx"}'  
+}
+# 参数说明
+visitor: 用户名
+type: 接口数据集ID
+stamp: 时间戳(1970年1月1日到生成时间的毫秒数)
+token: 采用sha1加密, token=SHA1(秘钥 + stamp + Visitor + Type)
+Pagesize: 采用分页每页的数据量大小
+pg: 返回第几页
+param: 传入的参数值格式json字符串如多个参数
+'{"参数A":"xxxx", "参数B":"xxxx"}'
+
+
+#接口返回格式
+Json: 
+{
+"data":[[]],
+"result":"success",
+"maxpg":xxx,  #最大页数
+"pg":xx,  #当前页数
+"casheflag": xx,  #如果是999说明命中缓存
+"total":xx,   #总条数
+}
+
+

注意: +只有post是分页的, 第一页是带标题的, 后面页不带标题 +由于post方式会使用缓存进行分页,如命中缓存传参不会生效,小数据量请使用get方式请求 +不要请求大数据量,大量数据请采用limit, offset传参方式进行分页

+
+

+ 不加密请求方式(简单但不安全) + # +

+
GET 请求
+#接口请求格式: 
+url: /echart/dataset_api/?visitor=xxx&token=xxx&type=xxx 数据集名或id名
+#接口返回格式
+Json: 
+{
+"data":[[]],
+"result":"success",
+"maxpg":1,
+"pg":1
+}
+
+POST请求
+#接口请求格式:
+url: /echart/dataset_api/
+data: 
+{
+"visitor":"xxx",
+"token":"xxx",
+"type":"xxx",      #数据集名或id名
+"pagesize":"xxx",  #每页数据条数
+"pg":"xxx",        #返回第几页
+"param":'{"xxx":"xxxx"}'  #参数可选
+}
+#接口返回格式
+Json: 
+{
+"data":[[]],
+"result":"success",
+"maxpg":xxx,  #最大页数
+"pg":xx,  #当前页数
+"casheflag": xx,  #如果是999说明命中缓存
+"total":xx,   #总条数
+}
+
+注意:
+只有post是分页的, 第一页是带标题的, 后面页不带标题
+由于post方式会使用缓存, 小数据量建议你使用get方式请求
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/模板开发/IDE开发模式/index.html b/docs/smartchart/docs/9.进阶开发PRO/模板开发/IDE开发模式/index.html new file mode 100644 index 0000000..fb40d19 --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/模板开发/IDE开发模式/index.html @@ -0,0 +1,1737 @@ + + + + + + + + + + + + + + +ID E开发模式 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + ID E开发模式 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+
    +
  • 如果您是一个资深的前端开发者
  • +
  • 可能不需要使用smartchart组件,仅需使用到数据集
  • +
  • 你希望在IDE(如VS code)中开发然后打包发布
  • +
  • 非专用人士,请不要尝试这种方式
  • +
+

+ 开发方式 + # +

+

在模板中使用basesimple + + 输入图片说明 +此时smartchart不会引用任何echarts, vue组件, 完全由您自已控制引入 , 你可以直接采用以下代码替换模板中的代码

+
{% extends "echart/basesimple.html" %}{% block head %}
+
+<!--head区域的引用或代码-->
+
+{% endblock %}{% block body %}
+
+<!--在此区间粘入body相关代码-->
+
+{% endblock %}{% block javascript %}
+
+<!--粘入js相关引用或代码-->
+
+{% endblock %}{% block footer %}{% endblock %}
+

+ 如何使用数据集接口 + # +

+

按照自由开发模式中, 新增一个图形, 然后修改数据集为通用且懒加载数据集 + + 输入图片说明 +修改对应图形编辑器, 使数据赋值给一个全局变量或vue + + + +

+

+ 在IDE中开发 + # +

+

由于你在开发中仅需要用到filter_param及ds_refresh, 建意新建一个js文件, 文件内容:

+
//下面定义全局变量, 发布时需放入smartchart模板的script标签中
+var mypublicdata1 = xxxx;
+.....
+
+//以下为辅助方法, 发布时, 无需放入smartchart模板中
+var filter_param = {};
+function ds_refresh(num){
+  if(num === 0){你对应的图形中赋值代码,调试代码}
+  if(num === 1){....}
+  ......
+}
+

然后将这个js文件在你的项目中引用调试使用

+

+ 如何部署到smartchart + # +

+

打包完成后会有相应的css, js 和index.html文件, 将index.html中的代码复制贴粘到对应的模板区域中即可

+
    +
  • 上传css,js
  • +
  • 修改css, js 相关引用路径
  • +
  • 去除之前定义的js辅助开发文件引用, 如果有定义全局变量, 将全局变量定义复制到模板js区域
  • +
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/模板开发/index.html b/docs/smartchart/docs/9.进阶开发PRO/模板开发/index.html new file mode 100644 index 0000000..142f0d0 --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/模板开发/index.html @@ -0,0 +1,1626 @@ + + + + + + + + + + + + +模板开发 | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 模板开发 + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/模板开发/index.xml b/docs/smartchart/docs/9.进阶开发PRO/模板开发/index.xml new file mode 100644 index 0000000..13a6353 --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/模板开发/index.xml @@ -0,0 +1,102 @@ + + + + Smartchart开发手册 + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/ + Recent content on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91%E7%95%8C%E9%9D%A2/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91%E7%95%8C%E9%9D%A2/ + 低代码化开发 # smartchart的标准模板为了标准化的原因,对于引用JS,编写CSS等有一定不方便性, 但有时候你可能需要放飞自由, 随意定制 你甚至可能想引用一些其它的UI组件, 所以smartchart给你一个原汗原味的开发空间 +开启方式 # 在高级中,设定template为diy 主菜单中会多出来一个 模板 的功能 进入模板编辑界面 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E5%BF%AB%E6%8D%B7%E5%BC%80%E5%8F%91/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E5%BF%AB%E6%8D%B7%E5%BC%80%E5%8F%91/ + 应用场景 # 专业化开发, 可将仪表盘显示和模板开发分屏开发 当你熟悉smartchart的基础开发后, 你可能会喜欢上现在这种方式 把你的可视化页面移动的显示器上吧, 进入&quot;模板&quot; 开发页面(上节介绍如何进入) +方式一: 自动化DIV # 此方式当你新增数据集图形时会自动识别, 无需手动在模板在添加 采用此方式请不要采用点击模板上方菜单的图形新增 如需编辑图形或数据集可按如下方式: 方式二: 自由DIV # 你可以模板中按照常规的H5页面编辑, 只是在需要插入图形的地方插入即可(建意通过模板上方的图形新增) 开始畅快的开发 +点击图形即可新增一个图形,你甚至可以指定图表的位置, 完全和写html一样, 使用{{div_list.图表顺序号}} warning 注意请尽量避免删除DIV, 如果你中途有删除过div, 序号会不一样, 你可以在&quot;布局&quot;中重排序保持一致, 保持数据集编号从0开始 +如果使用自由布局, 请删除自动化DIV这一段代码 选中生成的图形代码段, 点击菜单栏的 数据集, 图形, 布局开发, 即可进入开发界面, 如果没有数据集, 会自动帮你新建 可以观看视屏, 视屏比较老和现在不太一样, 仅参考即可 自由开发模式视屏 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E4%B8%8A%E4%BC%A0%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E4%B8%8A%E4%BC%A0%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6/ + 点击 模板开发 中的菜单即可上传你的资源文件, 如css, js, 图片等 视屏介绍说明 常规上传 # 可直接上传单个文件或zip包上传, 注意zip包中不可以有中文文件名 上传后会提示引用路径为/static/custom/仪表盘ID/&hellip; +上传为共享资源 # 可把资源打包为zip文件, 上传名以usr_开头, 如usr_tp.zip 上传完后不会有路径提示, 引用路径为/static/custom/usr_tp/&hellip;. +上传自定义数据源或jar包 # 上传后不会有路径提示 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E8%BE%B9%E6%A1%86%E4%B8%8E%E8%A3%85%E9%A5%B0/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E8%BE%B9%E6%A1%86%E4%B8%8E%E8%A3%85%E9%A5%B0/ + 观看视屏 # 边框与装饰说明1 边框与背景说明2 +边框/装饰/背景(购买专业版提供使用方法) # + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E6%A0%B7%E5%BC%8F%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E6%A0%B7%E5%BC%8F%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/ + 样式操作: # 要想大屏做得好, 样式要写得好 可是我们不是前端的同学也能写样式么 当然可以, 相信你观看完以下视屏即可 +快速上手样式开发 +基础样式入门: # CSS介绍 # CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素。 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染)。 +CSS语法 # CSS实例 每个CSS样式由两个组成部分:选择器和声明。声明又包括属性和属性值。每个声明之后用分号结束。 CSS注释 +/*这是注释*/ 注释是代码之母, smartchart编辑中你可以使用CTRL+/快捷注释 +CSS的几种引入方式 行内样式 行内式是在标记的style属性中设定CSS样式。不推荐大规模使用。 +&lt;p style=&#34;color: red&#34;&gt;Hello world.&lt;/p&gt; 内部样式 嵌入式是将CSS样式集中写在网页的标签对的标签对中。格式如下: +&lt;head&gt; &lt;style&gt; p{ background-color: #2b99ff; } &lt;/style&gt; &lt;/head&gt; 外部样式 外部样式就是将css写在一个单独的文件中 +&lt;link href=&#34;mystyle.css&#34; rel=&#34;stylesheet&#34; type=&#34;text/css&#34;/&gt; CSS选择器 # 基本选择器 +元素选择器 p {color: &#34;red&#34;;} ID选择器 #i1 { background-color: red; } 类选择器 .c1 { font-size: 14px; } p .c1 { color: red; } 注意: 样式类名不要用数字开头(有的浏览器不认)。 标签中的class属性如果有多个,要用空格分隔。 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/IDE%E5%BC%80%E5%8F%91%E6%A8%A1%E5%BC%8F/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/IDE%E5%BC%80%E5%8F%91%E6%A8%A1%E5%BC%8F/ + 应用场景 # 如果您是一个资深的前端开发者 可能不需要使用smartchart组件,仅需使用到数据集 你希望在IDE(如VS code)中开发然后打包发布 非专用人士,请不要尝试这种方式 开发方式 # 在模板中使用basesimple 此时smartchart不会引用任何echarts, vue组件, 完全由您自已控制引入 , 你可以直接采用以下代码替换模板中的代码 +{% extends &#34;echart/basesimple.html&#34; %}{% block head %} &lt;!--head区域的引用或代码--&gt; {% endblock %}{% block body %} &lt;!--在此区间粘入body相关代码--&gt; {% endblock %}{% block javascript %} &lt;!--粘入js相关引用或代码--&gt; {% endblock %}{% block footer %}{% endblock %} 如何使用数据集接口 # 按照自由开发模式中, 新增一个图形, 然后修改数据集为通用且懒加载数据集 修改对应图形编辑器, 使数据赋值给一个全局变量或vue 在IDE中开发 # 由于你在开发中仅需要用到filter_param及ds_refresh, 建意新建一个js文件, 文件内容: +//下面定义全局变量, 发布时需放入smartchart模板的script标签中 var mypublicdata1 = xxxx; ..... //以下为辅助方法, 发布时, 无需放入smartchart模板中 var filter_param = {}; function ds_refresh(num){ if(num === 0){你对应的图形中赋值代码,调试代码} if(num === 1){. + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E5%8A%A8%E7%94%BB%E6%95%88%E6%9E%9C/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E5%8A%A8%E7%94%BB%E6%95%88%E6%9E%9C/ + 自动旋转效果 # 在&quot;模板&quot;的style中加入以下样式 +@-webkit-keyframes spin { from {-webkit-transform: rotate(0deg);} to {-webkit-transform: rotate(360deg);} } @keyframes spin { from {transform: rotate(0deg);} to {transform: rotate(360deg);} } .Rotate { -webkit-animation: spin 3s linear 3s 5 alternate; animation: spin 3s linear infinite; } 如需任意组件自动旋转, 只需将Rotate这个类给到这个组件即可, 比如图形 +&lt;img class=&#34;Rotate&#34; src=&#34;https://www.smartchart.cn/media/editor/smc162_20220407150432307320.png&#34;&gt; 组件变形 # 常见变形沿着Y轴, 其它变形方式自已搜索, 比如需要0号,1号图形变形的样式写法 +#container_0{transform:skewY(10deg);} #container_1{transform:skewY(-10deg);} 效果如下: + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E7%BC%96%E8%BE%91%E5%99%A8%E5%BF%AB%E6%8D%B7%E9%94%AE/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E7%BC%96%E8%BE%91%E5%99%A8%E5%BF%AB%E6%8D%B7%E9%94%AE/ + 功能 WIN MAC 说明 显示菜单 CTRL-, Command-, 折叠其它 Alt-0 Command-Option-0 查找替换 Ctrl-F Command-F 重复选中 Ctrl-D Command-D 5.6以前的版本是删除所选 注释选中 Ctrl-/ Command-/ 取消修改 Ctrl-z Command-z 重新执行 Ctrl-y Command-y 选中大写 Ctrl-U Ctrl-U 选中小写 SHIFT-Ctrl-U SHIFT-Ctrl-U + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/模板开发/上传资源文件/index.html b/docs/smartchart/docs/9.进阶开发PRO/模板开发/上传资源文件/index.html new file mode 100644 index 0000000..60ecc9c --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/模板开发/上传资源文件/index.html @@ -0,0 +1,1685 @@ + + + + + + + + + + + + + + +上传资源文件 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 上传资源文件 + + +
+ + + + + + +
+ + + +

点击 模板开发 中的菜单即可上传你的资源文件, 如css, js, 图片等 + + 视屏介绍说明 + + 输入图片说明

+

+ 常规上传 + # +

+

可直接上传单个文件或zip包上传, 注意zip包中不可以有中文文件名 +上传后会提示引用路径为/static/custom/仪表盘ID/…

+

+ 上传为共享资源 + # +

+

可把资源打包为zip文件, 上传名以usr_开头, 如usr_tp.zip +上传完后不会有路径提示, 引用路径为/static/custom/usr_tp/….

+

+ 上传自定义数据源或jar包 + # +

+

上传后不会有路径提示

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/模板开发/动画效果/index.html b/docs/smartchart/docs/9.进阶开发PRO/模板开发/动画效果/index.html new file mode 100644 index 0000000..b655de6 --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/模板开发/动画效果/index.html @@ -0,0 +1,1693 @@ + + + + + + + + + + + + + + +动画效果 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 动画效果 + + +
+ + + + + + +
+ + + +

+ 自动旋转效果 + # +

+

在"模板"的style中加入以下样式

+
@-webkit-keyframes spin {
+    from {-webkit-transform: rotate(0deg);}
+    to {-webkit-transform: rotate(360deg);}
+}
+@keyframes spin {
+    from {transform: rotate(0deg);}
+    to {transform: rotate(360deg);}
+}
+
+.Rotate {
+    -webkit-animation: spin 3s linear 3s 5 alternate;
+    animation: spin 3s linear infinite;
+}
+

如需任意组件自动旋转, 只需将Rotate这个类给到这个组件即可, 比如图形

+
<img class="Rotate" src="https://www.smartchart.cn/media/editor/smc162_20220407150432307320.png">
+

+ 组件变形 + # +

+

常见变形沿着Y轴, 其它变形方式自已搜索, 比如需要0号,1号图形变形的样式写法

+
#container_0{transform:skewY(10deg);}
+#container_1{transform:skewY(-10deg);}
+

效果如下: + + 输入图片说明

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/模板开发/快捷开发/index.html b/docs/smartchart/docs/9.进阶开发PRO/模板开发/快捷开发/index.html new file mode 100644 index 0000000..24ffd10 --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/模板开发/快捷开发/index.html @@ -0,0 +1,1712 @@ + + + + + + + + + + + + + + +快捷开发 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 快捷开发 + + +
+ + + + + + +
+ + + +

+ 应用场景 + # +

+
    +
  • 专业化开发, 可将仪表盘显示和模板开发分屏开发
  • +
  • 当你熟悉smartchart的基础开发后, 你可能会喜欢上现在这种方式
  • +
+

把你的可视化页面移动的显示器上吧, 进入"模板" 开发页面(上节介绍如何进入)

+

+ 方式一: 自动化DIV + # +

+

此方式当你新增数据集图形时会自动识别, 无需手动在模板在添加 +采用此方式请不要采用点击模板上方菜单的图形新增 +如需编辑图形或数据集可按如下方式: + + 输入图片说明 + + 输入图片说明

+

+ 方式二: 自由DIV + # +

+

你可以模板中按照常规的H5页面编辑, 只是在需要插入图形的地方插入即可(建意通过模板上方的图形新增) +开始畅快的开发

+
    +
  • 点击图形即可新增一个图形,你甚至可以指定图表的位置, 完全和写html一样, 使用{{div_list.图表顺序号}} + + 输入图片说明
  • +
+
+

warning +注意请尽量避免删除DIV, 如果你中途有删除过div, 序号会不一样, +你可以在"布局"中重排序保持一致, 保持数据集编号从0开始

+
+
+

如果使用自由布局, 请删除自动化DIV这一段代码 + + 输入图片说明

+
+
    +
  • 选中生成的图形代码段, 点击菜单栏的 数据集, 图形, 布局开发, 即可进入开发界面, 如果没有数据集, 会自动帮你新建
  • +
+

可以观看视屏, 视屏比较老和现在不太一样, 仅参考即可 + + 自由开发模式视屏

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/模板开发/样式快速上手/index.html b/docs/smartchart/docs/9.进阶开发PRO/模板开发/样式快速上手/index.html new file mode 100644 index 0000000..09d9f29 --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/模板开发/样式快速上手/index.html @@ -0,0 +1,2067 @@ + + + + + + + + + + + + + + +样式快速上手 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 样式快速上手 + + +
+ + + + + + +
+ + + +

+ 样式操作: + # +

+

要想大屏做得好, 样式要写得好 +可是我们不是前端的同学也能写样式么 +当然可以, 相信你观看完以下视屏即可

+

+ 快速上手样式开发

+

+ 基础样式入门: + # +

+

+ CSS介绍 + # +

+

CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素。 +当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染)。

+

+ CSS语法 + # +

+

CSS实例 +每个CSS样式由两个组成部分:选择器和声明。声明又包括属性和属性值。每个声明之后用分号结束。 + + 输入图片说明 +CSS注释

+
/*这是注释*/
+

注释是代码之母, smartchart编辑中你可以使用CTRL+/快捷注释

+

CSS的几种引入方式 +行内样式 +行内式是在标记的style属性中设定CSS样式。不推荐大规模使用。

+
<p style="color: red">Hello world.</p>
+

内部样式 +嵌入式是将CSS样式集中写在网页的标签对的标签对中。格式如下:

+
<head>
+ <style>
+ p{
+ background-color: #2b99ff;
+ }
+ </style>
+</head>
+

外部样式 +外部样式就是将css写在一个单独的文件中

+
<link href="mystyle.css" rel="stylesheet" type="text/css"/>
+

+ CSS选择器 + # +

+

基本选择器

+
元素选择器
+p {color: "red";}
+
+ID选择器
+#i1 {
+ background-color: red;
+}
+
+类选择器
+.c1 {
+ font-size: 14px;
+}
+p .c1 {
+ color: red;
+}
+

注意: +样式类名不要用数字开头(有的浏览器不认)。 +标签中的class属性如果有多个,要用空格分隔。

+

通用选择器

+
* {
+ color: white;
+}
+

组合选择器

+
后代选择器
+/*li内部的a标签设置字体颜色*/
+li a {
+ color: green;
+}
+儿子选择器
+/*选择所有父级是 <div> 元素的 <p> 元素*/
+div>p {
+ font-family: "Arial Black", arial-black, cursive;
+}
+毗邻选择器
+/*选择所有紧接着<div>元素之后的<p>元素*/
+div+p {
+ margin: 5px;
+}
+弟弟选择器
+/*i1后面所有的兄弟p标签*/
+#i1~p {
+ border: 2px solid royalblue;
+}
+属性选择器
+/*用于选取带有指定属性的元素。*/
+p[title] {
+ color: red;
+}
+/*用于选取带有指定属性和值的元素。*/
+p[title="213"] {
+ color: green;
+}
+/*找到所有title属性以hello开头的元素*/
+[title^="hello"] {
+ color: red;
+}
+/*找到所有title属性以hello结尾的元素*/
+[title$="hello"] {
+ color: yellow;
+}
+/*找到所有title属性中包含(字符串包含)hello的元素*/
+[title*="hello"] {
+ color: red;
+}
+/*找到所有title属性(有多个值或值以空格分割)中有一个值为hello的元素:*/
+[title~="hello"] {
+ color: green;
+}
+

分组和嵌套

+
分组
+当多个元素的样式相同的时候,我们没有必要重复地为每个元素都设置样式,我们可以通过在多个选择器之间使用逗号分隔的分组选择器来统一设置元素样式。
+例如:
+div, p {
+ color: red;
+}
+上面的代码为div标签和p标签统一设置字体为红色。
+
+嵌套
+多种选择器可以混合起来使用,比如:.c1类内部所有p标签设置字体颜色为红色。
+.c1 p {
+ color: red;
+}
+

伪类选择器

+
/* 未访问的链接 */
+a:link {
+ color: #FF0000
+}
+/* 鼠标移动到链接上 */
+a:hover {
+ color: #FF00FF
+} 
+/* 选定的链接 */ 
+a:active {
+ color: #0000FF
+}
+/* 已访问的链接 */
+a:visited {
+ color: #00FF00
+} 
+/*input输入框获取焦点时样式*/
+input:focus {
+ outline: none;
+ background-color: #eee;
+}
+

伪元素选择器

+
first-letter
+常用的给首字母设置特殊样式:
+
+p:first-letter {
+ font-size: 48px;
+ color: red;
+}
+before
+
+/*在每个<p>元素之前插入内容*/
+p:before {
+ content:"*";
+ color:red;
+}
+after
+
+/*在每个<p>元素之后插入内容*/
+p:after {
+ content:"[?]";
+ color:blue;
+} 
+before和after多用于清除浮动。
+

+ 选择器的优先级 + # +

+
CSS继承
+继承是CSS的一个主要特征,它是依赖于祖先-后代的关系的。继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以应用于它的后代。例如一个body定义了的字体颜色值也会应用到段落的文本中。
+body {
+ color: red;
+}
+此时页面上所有标签都会继承body的字体颜色。然而CSS继承性的权重是非常低的,是比普通元素的权重还要低的0。
+我们只要给对应的标签设置字体颜色就可覆盖掉它继承的样式。
+p {
+ color: green;
+}
+

选择器的优先级 +我们上面学了很多的选择器,也就是说在一个HTML页面中有很多种方式找到一个元素并且为其设置样式,那浏览器根据什么来决定应该应用哪个样式呢? +其实是按照不同选择器的权重来决定的,具体的选择器权重计算方式如下图: + + +除此之外还可以通过添加 !important方式来强制让样式生效,但并不推荐使用。 +因为如果过多的使用!important会使样式文件混乱不易维护。 +万不得已可以使用!important

+

+ CSS属性相关 + # +

+

宽和高

+
width属性可以为元素设置宽度。
+height属性可以为元素设置高度。
+块级标签才能设置宽度,内联标签的宽度由内容来决定。
+

字体属性

+
文字字体
+font-family可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体,则会尝试下一个。浏览器会使用它可识别的第一个值。
+简单实例:
+body {
+ font-family: "Microsoft Yahei", "微软雅黑", "Arial", sans-serif
+}
+字体大小
+p {
+ font-size: 14px;
+}
+如果设置成inherit表示继承父元素的字体大小值。
+
+字重(粗细)
+font-weight用来设置字体的字重(粗细)。
+值描述normal默认值,标准粗细bold粗体bolder更粗lighter更细100~900设置具体粗细,400等同于normal,而700等同于boldinherit继承父元素字体的粗细值
+
+文本颜色
+color
+颜色是通过CSS最经常的指定:
+十六进制值 - 如: #FF0000
+一个RGB值 - 如: RGB(255,0,0)
+颜色的名称 - 如: red
+还有rgba(255,0,0,0.3),第四个值为alpha, 指定了色彩的透明度/不透明度,它的范围为0.0到1.0之间。
+

文字属性

+
文字对齐
+text-align 属性规定元素中的文本的水平对齐方式。
+值描述left左边对齐 默认值right右对齐center居中对齐justify两端对齐
+
+文字装饰
+text-decoration 属性用来给文字添加特殊效果。
+值描述none默认。定义标准的文本。underline定义文本下的一条线。overline定义文本上的一条线。line-through定义穿过文本下的一条线。inherit继承父元素的text-decoration属性的值。
+
+常用的为去掉a标签默认的自划线:
+a {
+ text-decoration: none;
+}
+首行缩进
+将段落的第一行缩进 32像素:
+p {
+ text-indent: 32px;
+}
+

背景属性

+
/*背景颜色*/
+background-color: red;
+/*背景图片*/
+background-image: url('1.jpg');
+/*
+ 背景重复
+ repeat(默认):背景图片平铺排满整个网页
+ repeat-x:背景图片只在水平方向上平铺
+ repeat-y:背景图片只在垂直方向上平铺
+ no-repeat:背景图片不平铺
+*/
+background-repeat: no-repeat; 
+/*背景位置*/
+background-position: left top;
+/*background-position: 200px 200px;*/
+支持简写:
+background:#336699 url('1.png') no-repeat left top;
+使用背景图片的一个常见案例就是很多网站会把很多小图标放在一张图片上,然后根据位置去显示图片。减少频繁的图片请求。
+

边框

+
边框属性
+border-width
+border-style
+border-color
+#i1 {
+ border-width: 2px;
+ border-style: solid;
+ border-color: red;
+}
+通常使用简写方式:
+#i1 {
+ border: 2px solid red;
+}
+边框样式
+值描述none无边框。dotted点状虚线边框。dashed矩形虚线边框。solid实线边框。
+
+除了可以统一设置边框外还可以单独为某一个边框设置样式,如下所示:
+#i1 {
+ border-top-style:dotted;
+ border-top-color: red;
+ border-right-style:solid;
+ border-bottom-style:dotted;
+ border-left-style:none;
+}
+border-radius
+用这个属性能实现圆角边框的效果。
+将border-radius设置为长或高的一半即可得到一个圆形。
+

display属性

+
用于控制HTML元素的显示效果。
+值意义display:"none"HTML文档中元素存在,但是在浏览器中不显示。一般用于配合JavaScript代码使用。display:"block"默认占满整个页面宽度,如果设置了指定宽度,则会用margin填充剩下的部分。display:"inline"按行内元素显示,此时再设置元素的width、height、margin-top、margin-bottom和float属性都不会有什么影响。display:"inline-block"使元素同时具有行内元素和块级元素的特点。
+display:"none"与visibility:hidden的区别:
+visibility:hidden: 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。
+display:none: 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。
+

CSS盒子模型

+
margin: 用于控制元素与元素之间的距离;margin的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的。
+padding: 用于控制内容与边框之间的距离;
+Border(边框): 围绕在内边距和内容外的边框。
+Content(内容): 盒子的内容,显示文本和图像。
+

+ 输入图片说明

+
margin外边距
+.margin-test {
+ margin-top:5px;
+ margin-right:10px;
+ margin-bottom:15px;
+ margin-left:20px;
+}
+推荐使用简写:
+.margin-test {
+ margin: 5px 10px 15px 20px;
+}
+顺序:上右下左
+
+常见居中:
+.mycenter {
+ margin: 0 auto;
+}
+padding内填充
+.padding-test {
+ padding-top: 5px;
+ padding-right: 10px;
+ padding-bottom: 15px;
+ padding-left: 20px;
+}
+推荐使用简写:
+.padding-test {
+ padding: 5px 10px 15px 20px;
+}
+顺序:上右下左
+
+补充padding的常用简写方式:
+提供一个,用于四边;
+提供两个,第一个用于上-下,第二个用于左-右;
+如果提供三个,第一个用于上,第二个用于左-右,第三个用于下;
+提供四个参数值,将按上-右-下-左的顺序作用于四边;
+

float

+
在 CSS 中,任何元素都可以浮动。
+浮动元素会生成一个块级框,而不论它本身是何种元素。
+关于浮动的两个特点:
+浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
+由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。
+三种取值
+left:向左浮动
+right:向右浮动
+none:默认值,不浮动
+

overflow溢出属性

+
值描述visible默认值。内容不会被修剪,会呈现在元素框之外。hidden内容会被修剪,并且其余内容是不可见的。scroll内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。auto如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。inherit规定应该从父元素继承 overflow 属性的值。
+overflow(水平和垂直均设置)
+overflow-x(设置水平方向)
+overflow-y(设置垂直方向)
+

定位(position)

+
static
+static 默认值,无定位,不能当作绝对定位的参照物,并且设置标签对象的left、top等值是不起作用的的。
+relative(相对定位)
+相对定位是相对于该元素在文档流中的原始位置,即以自己原始位置为参照物。有趣的是,即使设定了元素的相对定位以及偏移值,元素还占有着原来的位置,即占据文档流空间。对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置。而其层叠通过z-index属性定义。
+注意:position:relative的一个主要用法:方便绝对定位元素找到参照物。
+absolute(绝对定位)
+定义:设置为绝对定位的元素框从文档流完全删除,并相对于最近的已定位祖先元素定位,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块(即body元素)。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
+重点:如果父级设置了position属性,例如position:relative;,那么子元素就会以父级的左上角为原始点进行定位。这样能很好的解决自适应网站的标签偏离问题,即父级为自适应的,那我子元素就设置position:absolute;父元素设置position:relative;,然后Top、Right、Bottom、Left用百分比宽度表示。
+另外,对象脱离正常文档流,使用top,right,bottom,left等属性进行绝对定位。而其层叠通过z-index属性定义。
+fixed(固定)
+fixed:对象脱离正常文档流,使用top,right,bottom,left等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动。而其层叠通过z-index属性 定义。 注意点: 一个元素若设置了 position:absolute | fixed; 则该元素就不能设置float。这 是一个常识性的知识点,因为这是两个不同的流,一个是浮动流,另一个是“定位流”。但是 relative 却可以。因为它原本所占的空间仍然占据文档流。
+在理论上,被设置为fixed的元素会被定位于浏览器窗口的一个指定坐标,不论窗口是否滚动,它都会固定在这个位置。
+

z-index

+
#i2 {
+ z-index: 999;
+}
+设置对象的层叠顺序。
+z-index 值表示谁压着谁,数值大的压盖住数值小的,
+只有定位了的元素,才能有z-index,也就是说,不管相对定位,绝对定位,固定定位,都可以使用z-index,而浮动元素不能使用z-index
+z-index值没有单位,就是一个正整数,默认的z-index值为0如果大家都没有z-index值,或者z-index值一样,那么谁写在HTML后面,谁在上面压着别人,定位了元素,永远压住没有定位的元素。
+从父现象:父亲怂了,儿子再牛逼也没用
+

opacity +用来定义透明效果。取值范围是0~1,0是完全透明,1是完全不透明。

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/模板开发/模板开发界面/index.html b/docs/smartchart/docs/9.进阶开发PRO/模板开发/模板开发界面/index.html new file mode 100644 index 0000000..95117bf --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/模板开发/模板开发界面/index.html @@ -0,0 +1,1678 @@ + + + + + + + + + + + + + + +模板开发界面 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 模板开发界面 + + +
+ + + + + + +
+ + + +

+ 低代码化开发 + # +

+

smartchart的标准模板为了标准化的原因,对于引用JS,编写CSS等有一定不方便性, 但有时候你可能需要放飞自由, 随意定制 +你甚至可能想引用一些其它的UI组件, 所以smartchart给你一个原汗原味的开发空间

+

+ 开启方式 + # +

+

在高级中,设定template为diy + + 输入图片说明 +主菜单中会多出来一个 模板 的功能 + + 输入图片说明 +进入模板编辑界面 + + 输入图片说明

+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/模板开发/编辑器快捷键/index.html b/docs/smartchart/docs/9.进阶开发PRO/模板开发/编辑器快捷键/index.html new file mode 100644 index 0000000..27d436d --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/模板开发/编辑器快捷键/index.html @@ -0,0 +1,1697 @@ + + + + + + + + + + + + + + +编辑器快捷键 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 编辑器快捷键 + + +
+ + + + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
功能WINMAC说明
显示菜单CTRL-,Command-,
折叠其它Alt-0Command-Option-0
查找替换Ctrl-FCommand-F
重复选中Ctrl-DCommand-D5.6以前的版本是删除所选
注释选中Ctrl-/Command-/
取消修改Ctrl-zCommand-z
重新执行Ctrl-yCommand-y
选中大写Ctrl-UCtrl-U
选中小写SHIFT-Ctrl-USHIFT-Ctrl-U
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/9.进阶开发PRO/模板开发/边框与装饰/index.html b/docs/smartchart/docs/9.进阶开发PRO/模板开发/边框与装饰/index.html new file mode 100644 index 0000000..1afea45 --- /dev/null +++ b/docs/smartchart/docs/9.进阶开发PRO/模板开发/边框与装饰/index.html @@ -0,0 +1,1687 @@ + + + + + + + + + + + + + + +边框与装饰 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 边框与装饰 + + +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/index.html b/docs/smartchart/docs/index.html new file mode 100644 index 0000000..e24d184 --- /dev/null +++ b/docs/smartchart/docs/index.html @@ -0,0 +1,1619 @@ + + + + + + + + + + + + +Docs | Smartchart开发手册 + + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + Docs + + +
+ + + + + + +
+ + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/docs/index.xml b/docs/smartchart/docs/index.xml new file mode 100644 index 0000000..d4f1875 --- /dev/null +++ b/docs/smartchart/docs/index.xml @@ -0,0 +1,21 @@ + + + + Docs on Smartchart开发手册 + https://smartchart.gitee.io/docs/ + Recent content in Docs on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/%E5%85%B3%E4%BA%8E%E6%88%91%E4%BB%AC/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/%E5%85%B3%E4%BA%8E%E6%88%91%E4%BB%AC/ + 我们的目标 # 打造全生态的数据应用数据管理的平台,解决中小企业上中台难,上中台贵,见效慢的问题. 平台与时俱进,不断完善与优化中 可以通过视屏了解我们的架构设计 企业数字化与smartchart的一站式解决方案 +我们不提供数据存储与计算引擎, ETL工具, BI工具. 因为已有更优秀的产品,我们只为数据开发人员提供更敏捷的工具与平台,致力于数据服务中台建设,边缘可视化与数据管道产品, 站在巨人的肩上, 让数据更有个性,更灵活与可定制化,由于他的通用性,功能的扩展变得也是非常的Smart +产品定位: # 实现全生态的数据服务平台(数据收集, 数据加工, 数据分享,数据管理,数据应用) +产品模块: # 统一的数据处理调度平台、数据管道, 是基于Apache顶级项目Airflow上的二次开发产品,让数据处理的任务调度开发与管理微代码化,我们的设计理念是让开发者更方便的同时,不丧失灵活和高度可自定义,如果你使用过smartchat,你可以想象他会带来的便捷性, 产品名为smartpip, 为啥不叫smartpipe, 因为能省我们就要省&hellip; 统一的可视化管理平台, 为微信等第三方应用, 提供powerbi,tableau,finebi&hellip;的嵌入式及功能扩展服务,数据集即服务,一切为数据集 统一的数据上传平台, 实现线下数据的收集需求, 并提供专业的手工上传数据产品, 支持excel本地(安装与免安装版本), 支持WEB端 统一的数据分享平台与smartchart集成,可做为数据服务中台, 实现业务对数据下载的需要及为第三方提供获取数据的API接口 SmartChart可视化平台, 新一代的数据可视化产品, 解决传统BI各种痛点问题,真正面向开发人员的平台产品 元数据管理平台及数据治理,让数据的来源更清晰, 让数据应用更方便,具备自动化,可视化的数据血缘分析 新一代极速数据仓库技术, 极简架构即可实现在大数据应用的全场景需求 + + + + diff --git a/docs/smartchart/docs/关于我们/index.html b/docs/smartchart/docs/关于我们/index.html new file mode 100644 index 0000000..6414a7d --- /dev/null +++ b/docs/smartchart/docs/关于我们/index.html @@ -0,0 +1,1693 @@ + + + + + + + + + + + + + + +关于我们 | Smartchart开发手册 + + + + + + + + + + + + + +
+ + +
+
+ +
+ + + 关于我们 + + +
+ + + + + + +
+ + + +

+ 我们的目标 + # +

+

打造全生态的数据应用数据管理的平台,解决中小企业上中台难,上中台贵,见效慢的问题. 平台与时俱进,不断完善与优化中 +可以通过视屏了解我们的架构设计 + 企业数字化与smartchart的一站式解决方案

+
+

我们不提供数据存储与计算引擎, ETL工具, BI工具. 因为已有更优秀的产品,我们只为数据开发人员提供更敏捷的工具与平台,致力于数据服务中台建设,边缘可视化与数据管道产品, 站在巨人的肩上, 让数据更有个性,更灵活与可定制化,由于他的通用性,功能的扩展变得也是非常的Smart

+

+ 产品定位: + # +

+

实现全生态的数据服务平台(数据收集, 数据加工, 数据分享,数据管理,数据应用)

+

+ 产品模块: + # +

+
    +
  • 统一的数据处理调度平台、数据管道, 是基于Apache顶级项目Airflow上的二次开发产品,让数据处理的任务调度开发与管理微代码化,我们的设计理念是让开发者更方便的同时,不丧失灵活和高度可自定义,如果你使用过smartchat,你可以想象他会带来的便捷性, 产品名为smartpip, 为啥不叫smartpipe, 因为能省我们就要省…
  • +
  • 统一的可视化管理平台, 为微信等第三方应用, 提供powerbi,tableau,finebi…的嵌入式及功能扩展服务,数据集即服务,一切为数据集
  • +
  • 统一的数据上传平台, 实现线下数据的收集需求, 并提供专业的手工上传数据产品, 支持excel本地(安装与免安装版本), 支持WEB端
  • +
  • 统一的数据分享平台与smartchart集成,可做为数据服务中台, 实现业务对数据下载的需要及为第三方提供获取数据的API接口
  • +
  • + SmartChart可视化平台, 新一代的数据可视化产品, 解决传统BI各种痛点问题,真正面向开发人员的平台产品
  • +
  • 元数据管理平台及数据治理,让数据的来源更清晰, 让数据应用更方便,具备自动化,可视化的数据血缘分析
  • +
  • 新一代极速数据仓库技术, 极简架构即可实现在大数据应用的全场景需求
  • +
+
+ + + +
+ +
+ + + + +
+ + Edit + Edit this page + +
+ + +
+ + + + + + + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/smartchart/en.search-data.min.6325b92e2578ce162c49b50e5d0f669259962aac89a889a8a051ca34a48fe31d.json b/docs/smartchart/en.search-data.min.6325b92e2578ce162c49b50e5d0f669259962aac89a889a8a051ca34a48fe31d.json new file mode 100644 index 0000000..8d0a52a --- /dev/null +++ b/docs/smartchart/en.search-data.min.6325b92e2578ce162c49b50e5d0f669259962aac89a889a8a051ca34a48fe31d.json @@ -0,0 +1 @@ +[{"id":0,"href":"/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/%E4%BD%BF%E7%94%A8VUE/","title":"使用 Vue","section":"Vue相关","content":" 使用场景 # 报表中涉及交互场景较多, 需要数据与页面绑定 开发者熟悉vue 常见绑定 # //显示变量message \u0026lt;p\u0026gt;{[ message ]}\u0026lt;/p\u0026gt; //循环产生li,变量sites \u0026lt;ol\u0026gt; \u0026lt;li v-for=\u0026#34;site in sites\u0026#34;\u0026gt; {[ site.name ]} \u0026lt;/li\u0026gt; \u0026lt;/ol\u0026gt; //绑定输入值变量use \u0026lt;input type=\u0026#34;checkbox\u0026#34; v-model=\u0026#34;use\u0026#34;\u0026gt; //显示控制 \u0026lt;p v-if=\u0026#34;seen\u0026#34;\u0026gt;现在你看到我了\u0026lt;/p\u0026gt; \u0026lt;p v-show=\u0026#34;seen\u0026#34;\u0026gt;现在你看到我了\u0026lt;/p\u0026gt; //绑定属性 \u0026lt;a :href=\u0026#34;url\u0026#34;\u0026gt;\u0026lt;/a\u0026gt; \u0026lt;div :style=\u0026#34;{ color: activeColor, fontSize: fontSize + \u0026#39;px\u0026#39; }\u0026#34;\u0026gt;\u0026lt;/div\u0026gt; \u0026lt;div :class=\u0026#34;[errorClass ,isActive ? activeClass : \u0026#39;\u0026#39;]\u0026#34;\u0026gt;\u0026lt;/div\u0026gt; //绑定点击方法 \u0026lt;a @click=\u0026#34;doSomething\u0026#34;\u0026gt;\u0026lt;/a\u0026gt; 开启VUE # 需要在高级中加入“dv”:2,即可开启vue模式 你可以在图形编辑器中给vue的变量赋值,我们内置了17个变量,从d0, d1\u0026hellip; d16 赋值方式 vapp.d0 = xxxx 你可以将d0赋值为字典, 如: vapp.d0 = { \u0026lsquo;index1\u0026rsquo;: 100, \u0026lsquo;index2\u0026rsquo;: 300}\n注意,我们修改了vue的默认引用方式, 你需要采用如下方法引用: {[d0.index1]}\n使用模板可以更方便使用VUE # 你也可以在 模板开发中 使用VUE 开启方法, 首先你需要在高级设定中 , 设定 \u0026ldquo;template\u0026rdquo;:\u0026ldquo;diy\u0026rdquo;, 然后你可以看到 模板 的菜单, 进入编辑器\n如果你需要更多自定义的方法, 例如加入方法, 你可以在模板的script中加入自定义代码\n\u0026lt;script\u0026gt; var vapp = new Vue({el: \u0026#39;#vue_app\u0026#39;, delimiters: [\u0026#39;{[\u0026#39;, \u0026#39;]}\u0026#39;], data: { tableData:\u0026#39;\u0026#39; }, methods: { formatter(row, column) { return row.address; } } }); \u0026lt;/script\u0026gt; "},{"id":1,"href":"/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%8D%E5%A4%AA%E9%87%8D%E8%A6%81/%E4%B8%BB%E9%A2%98%E5%BA%94%E7%94%A8PRO/","title":"主题应用 Pro","section":"不太重要","content":"点击smartchart图标,切换到菜单固定模式, 你可看到主题的选择 "},{"id":2,"href":"/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/","title":"快速开始","section":"Linux","content":" 涉及的基础环境和版本: # * Centos 7 * Python 3.9 /data/smartchart/ 项目主目录 /data/smartchart/tools 项目相关软件 下述内容中,凡是涉及到/data/smartchart路径的,都可以将其修改为你自己系统上的路径。 安装环境 # 安装Python # cd /data/smartchart/tools yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel 下载https://npm.taobao.org/mirrors/python/3.9.0/ 上传服务器,放入安装目录解压 或者 Wget https://npm.taobao.org/mirrors/python/3.9.0/Python-3.9.0.tgz tar -zxvf Python-3.9.0.tgz 进行源码目录 配置安装路径 ./Python-3.9.0/configure --prefix=/data/smartchart/tools/python3 编译安装 make \u0026amp;\u0026amp; make install 建立软链接 ln -s /data/smartchart/tools/python3/bin/python3.9 /usr/bin/python3 ln -s /data/smartchart/tools/python3/bin/pip3.9 /usr/bin/pip3 测试是否安装成功 python3 --version 建立python虚拟环境 # python3 -m venv myvenv cd myvenv source bin/activate 在虚拟环境中安装smartchart # pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple smartchart -U 启动smartchart(测试部署), 企业部署方式可有尝咨询 # smartchart runserver 0.0.0.0:8000 --insecure --noreload "},{"id":3,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/EXCEL%E6%95%B0%E6%8D%AE/%E4%BB%8EEXCEL%E7%B2%98%E8%B4%B4%E6%95%B0%E6%8D%AE/","title":"从 Excel粘贴数据","section":"Excel数据","content":" 固定数据集 # 有一些场景, 比如已有一些固定的筛选器,或是需要测试用,或者Demo,或者其它图形需要用到一些共用的已确定好的数据 这样我们可以不需要通过查询数据库的方式, 而直接写入数据集, 支持数组和字典的格式 你只需要在数据集中起始写入 dataset= , 这样就是默认是固定数据\n如何快速的输入固定数据集, 你可以通过直接从EXCEL复制到数据集编辑器(以下图片非目前编辑器, 供参考),保存以后会自动生成: 固定数据集也支持之前提到传参数, 魔术方法, 缓存等所有数据集的功能 "},{"id":4,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E6%95%B0%E6%8D%AE%E9%9B%86%E5%BC%80%E5%8F%91%E7%95%8C%E9%9D%A2/","title":"数据集开发界面","section":"2.数据集说明","content":"开发前建意先观看视屏, 了解基础说明, 视屏有点老和现在界面不一样, 目前很多功能已经做成可视化配置, 理解过程即可, 具体以文档为准\nSmartchart数据集与图形 从仪表盘界面中进入简易开发界面 # "},{"id":5,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/API%E6%95%B0%E6%8D%AE%E9%9B%86/","title":"Api数据集","section":"特殊数据源","content":"对接外部API取数, 注意返回一定要是JSON格式 你只需要在数据集编辑框中如下输入\n-- GET 方法: dataset= { \u0026#34;url\u0026#34;:\u0026#34;https://www.smartchart.cn/smartdata/api/?i=loaddataset1\u0026amp;j=1\u0026#34; } -- POST 方法: dataset= { \u0026#34;url\u0026#34;:\u0026#34;https://www.smartchart.cn/smartdata/api\u0026#34;, \u0026#34;method\u0026#34;:\u0026#34;POST\u0026#34;, \u0026#34;data\u0026#34;:{\u0026#34;i\u0026#34;:\u0026#34;loaddataset1\u0026#34;, \u0026#34;j\u0026#34;:\u0026#34;1\u0026#34;} ... } 例如你可以传入参数做出联动效果\ndataset= { \u0026#34;url\u0026#34;:\u0026#34;https://www.smartchart.cn/smartdata/api\u0026#34;, \u0026#34;method\u0026#34;:\u0026#34;POST\u0026#34;, \u0026#34;data\u0026#34;:{\u0026#34;i\u0026#34;:\u0026#34;loaddataset1\u0026#34;, \u0026#34;j\u0026#34;:\u0026#34;/*$参数名*/\u0026#34;} ... } 你也可以增加header等认证方式\ndataset= { \u0026#34;url\u0026#34;:\u0026#34;https://www.smartchart.cn/smartdata/api\u0026#34;, \u0026#34;method\u0026#34;:\u0026#34;GET\u0026#34;, \u0026#34;headers\u0026#34;:{\u0026#34;Cookie\u0026#34;:\u0026#34;xxxxxxx\u0026#34;} ... } "},{"id":6,"href":"/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%87%BD%E6%95%B0%E6%96%B9%E6%B3%95/%E5%9B%BE%E5%BD%A2%E7%AB%AF%E6%95%B0%E6%8D%AE%E5%87%BD%E6%95%B0/","title":"图形端数据函数","section":"函数方法","content":" 应用场景 # 在图形开发中,我们可能需要使用js对传递过来的数据进行处理\n原始数据格式 # 假设dataset的格式是, SQL = Select 维度1,维度2,数据 from xxxx, 生成的数据集如下\ndataset = [[\u0026#39;category\u0026#39;,\u0026#39;C1\u0026#39;,\u0026#39;C2\u0026#39;], [\u0026#39;R1\u0026#39;, 12, 18], [\u0026#39;R2\u0026#39;, 10, 17] ] 转化函数 # 生成字典表示为key-\u0026gt;[], 常用于定制化高的图形 # result = ds_createMap(dataset) 结果 = {\u0026#34;category\u0026#34;:[\u0026#39;C1\u0026#39;,\u0026#39;C2\u0026#39;], \u0026#34;R1\u0026#34; : [12, 10], \u0026#34;R2\u0026#34; : [18, 17]} 生成非常多前端组件要求的格式 # result = ds_createMap_all(dataset) 结果 = [{\u0026#34;category\u0026#34;:\u0026#34;R1\u0026#34;, \u0026#34;C1\u0026#34;: 12, \u0026#34;C2\u0026#34;: 18}, {\u0026#34;category\u0026#34;:\u0026#34;R2\u0026#34;, \u0026#34;C1\u0026#34;: 10, \u0026#34;C2\u0026#34;: 17}] 获取列名list, 用于获取系列名 # result = ds_rowname(dataset) 结果 = [\u0026#39;R1\u0026#39;,\u0026#39;R2\u0026#39;] 将数据集行列转化, 一般用于坐标轴翻转 # result = ds_transform(dataset) 结果 = [[\u0026#39;category\u0026#39;,\u0026#39;R1\u0026#39;,\u0026#39;R2\u0026#39;], [\u0026#39;C1\u0026#39;, 12, 10], [\u0026#39;C2\u0026#39;, 18, 17]] 两个数据集左关联, 常用于将两段查询数据合并 # 假设需要关联的数据集格式: dataset2 = [[\u0026#39;category\u0026#39;,\u0026#39;C3\u0026#39;], [\u0026#39;R1\u0026#39;, 38], [\u0026#39;R6\u0026#39;, 13]] 处理后的结果: result = ds_leftjoin(dataset, dataset2) 结果 = [[\u0026#39;category\u0026#39;,\u0026#39;C1\u0026#39;,\u0026#39;C2\u0026#39;,\u0026#39;C3\u0026#39;], [\u0026#39;R1\u0026#39;, 12, 18, 38], [\u0026#39;R2\u0026#39;, 10, 17, 0] ] 数据集旋转,在excel中叫透视表 # 比如需要将dataset3的户型变成指标 dataset3 = [[\u0026#39;城市\u0026#39;,\u0026#39;户型\u0026#39;,\u0026#39;数量\u0026#39;], [\u0026#39;长沙\u0026#39;,\u0026#39;A\u0026#39;,35], [\u0026#39;上海\u0026#39;,\u0026#39;B\u0026#39;,19]] 处理后的结果: result = ds_pivot(dataset3) 结果 = [[\u0026#34;城市\u0026#34;,\u0026#34;A\u0026#34;,\u0026#34;B\u0026#34;], [\u0026#34;长沙\u0026#34;,35,0], [\u0026#34;上海\u0026#34;,0,19]] 移除数据集中的某几列 # 比如移除第1列(序号0) result=ds_remove_column(dataset,remove_list=[0]) 结果 = [[\u0026#39;R1\u0026#39;,\u0026#39;R2\u0026#39;], [12, 10], [18, 17] ] smartchart图形中可用的转化函数 # 函数名 函数说明 样列 ds_transform(dataset) 行列替换 ds_split(data,sep=\u0026rsquo;,\u0026rsquo;,head_add=[]) 将第一列拆分成多个字段,默认逗号分隔, 如果不传表头,取SQL中的字段名拆分 ds_createMap(data) data表示传入的二位数组,生成结果表示为key-\u0026gt;[], 常用于echarts指定数据 ds_createMap_all(data) data表示传入的二维数组,生成结果表示为[{A:A1,B:B1,C:C1},{A:A2,B:B2,C:C2}\u0026hellip;] ds_mapToList(data) 将createMap_all的格式还原成二维数组, 常用于将nosql(mongodb,es..)数据源数据处理 ds_fontSize(rem) 基于分辨率自动转字体大小, 参数rem ds_rowname(dataset,start_row=1,column=0) 获取指定列的数据, 默认取第一列从第二行(序号1)开始的数据,常用于获取维度 ds_remove_column(dataset,remove_list=[0]) 默认移除第一列, 也要移除指定的多个列 ds_toThousands(num) 转逗号分隔的千分位 ds_distinct(a, b=[]) 对单个或多个二维数组去重 ds_leftjoin(a,b,withhead=true,type=1) 两个数组join [[1,2,3,4],[2,3,4,5]] ,[[2,3,4]], 如果带头,合并头 ds_crossjoin(a,b,withhead=true) ds_fulljoin(a,b,withhead=true) ds_union(a,b,withhead=true) 合并两个数据集, 可选是否带头, 取第一个数据集的头, 去除第二个头 ds_pivot(arr) 传入一下二维数组(维度, 维度, 值), 进行透视 ds_sort(arr, index=0, asc=true) 指定二维数组列序号排序,默认升序,index参数也可以是函数,如(a,b)=\u0026gt;{return a.qty - b.qty} getUndefined(param,defaultValue) 获取value值,如果为空,null,undefined给默认值 ds_round(num,qty=2) 小数点处理, 默认保留两位小数 ds_param(name) 传入参数名,获取图形点击时传递来的参数值 ds_setParam(\u0026lsquo;参数名\u0026rsquo;, 参数值) 设定全局参数, 此方法将自动判断当参数值为空时, 删除参数回到初始未传参状态 ds_refresh(id, param=filter_param) 刷新图形, id为图形序号,默认采取全局参数刷新,也可指定param,参数为字典{\u0026ldquo;参数名\u0026rdquo;:\u0026ldquo;值\u0026rdquo;,\u0026hellip;} 多维度的数据透视 # 常规数据集中提到 A类数据源的情况, 格式都是: 维度A 维度B 数据 但还有情况比如你有一个数据格式是: 维度A 维度B 维度C 数据 你需要在表格中将 A,B维度做维度, 但C做透视为指标名进行展示 由于我们的数据透视只支持\u0026#34;字符, 字符, 数值\u0026#34;的SQL写法, 所以如果要多维, 我们需要做下转变, 可以写成: select concat_ws(\u0026#39;,\u0026#39;,维度A,维度B) AS 维度,维度C,SUM(数据) AS 度量 from tablename group by 维度, 维度C 得到的数据样式 dataset=[[\u0026#39;维度\u0026#39;,\u0026#39;C1\u0026#39;,\u0026#39;C2\u0026#39;....] ,[\u0026#39;A1,B1\u0026#39;,1,1...] ,[\u0026#39;A2,B2\u0026#39;,2,2...]] 最终在图形数据集处理中, 我们可以使用如下函数进行转化: dataset = ds_split(dataset,\u0026#39;,\u0026#39;,[\u0026#39;维度A\u0026#39;,\u0026#39;维度B\u0026#39;]) \u0026#39;,\u0026#39; : 参数为分隔符 [\u0026#39;维度A\u0026#39;,\u0026#39;维度B\u0026#39;] : 指第一个字段需要拆分的表头名称 最终得到的数据就是多维度透视 [[\u0026#39;维度A\u0026#39;,\u0026#39;维度B\u0026#39;,\u0026#39;C1\u0026#39;,\u0026#39;C2\u0026#39;....] ,[\u0026#39;A1\u0026#39;,\u0026#39;B1\u0026#39;,1,1...] ,[\u0026#39;A2\u0026#39;,\u0026#39;B2\u0026#39;,2,2...]] 常用JS原生函数 # //数组追加 dataset.push(item) //数组前方插入 dataset.unshit(item) //切片 dataset = dataset.slice(1) 从序号1个开始到最最后一个 dataset = dataset.slice(5, 10) 从第序号5开始截取到第10个 dataset = dataset.slice(-3) 截取最后三个元素 //循环遍历 for最快,但可读性比较差(smartchart推荐) forEach比较快,能够控制内容 for...in比较慢,不方便 for(let i=0; i\u0026lt;dataset.length; i++){ } "},{"id":7,"href":"/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%9F%BA%E7%A1%80%E5%9B%BE%E5%BD%A2/","title":"基础图形","section":"3.图形开发","content":" 快速应用基础图形组件 # 你可使用如下方式选择常规的图形一键进行应用(我们只放了基础图形,因为你可以通过简单修改配置转化为各种图形,如线性面积图, 柱形堆叠图..) 你也可以在图形商店中找到更多已转化好的Smartchart图形 配置项完全和Echarts原生一样\n注意: 对于一些特殊图形如地图js在图形编辑中需要进行动态加载, 如果你使用了非常规图形, 你可在图形编辑器使用ds_loadjs(\u0026lsquo;smt_china’)加载中国地图, 同理我们有 \u0026lsquo;smt_wordcloud\u0026rsquo;, \u0026lsquo;smt_world\u0026rsquo;, \u0026lsquo;smt_ecStat\u0026rsquo;, ‘smt_liquidfill’ 有些图形可能同时需要在模板中加载, 更多特殊图形加载说明参考 特殊图形模板加载\n"},{"id":8,"href":"/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E5%B8%83%E5%B1%80%E6%8C%87%E5%BC%95/","title":"布局指引","section":"4.布局说明","content":" 整理一份完整的SmartChart布局说明 # 推荐先观看视屏了解 smartchart布局方式\n容器说明 # 容器 说明 定位容器 用于图形定位, 有拖拽和栅格两种. 在界面上新增时会自带;在模板编辑中新增图形时需自行加入容器 图形容器 用于图形选择, 使用id选择器, 如序号为2的容器, 选择器为#container_2 图形 可视化的实际单位, 如选择图形中的table标签, 可使用#container_2 table 响应式布局 # 一般移动端报表推荐使用响应式布局, 一次布局可以同时满足电脑端/移动端的需求 当你新增一个数据集时, smartchart会给你一段默认的代码\n\u0026lt;div class=\u0026#34;el-col-xs-24 el-col-md-24\u0026#34; style=\u0026#34;padding:0.2rem;height:50%;\u0026#34; \u0026gt; \u0026lt;div style=\u0026#34;height:100%;\u0026#34; id=\u0026#34;container_{name}\u0026#34;\u0026gt;\u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; el-col-md-24 : 电脑端宽度设定 控制图形父容器的宽度, 整行分成24个栅格, 如果你想让图形占一半, 就可以改成el-col-md-12 el-col-xs-24 :移动端宽度设定 padding:0.5% 0.5%: 控制图形的上下, 左右内边距, padding: 上 右 下 左 比如你想要图形在容器中往下走一点, 你可写成 padding: 1% 0 0 0 height:50%; 盒子的高度, 相对于父容器的高度, 最外层即浏览器高度 大屏开发推荐使用拖拽布局(PRO) # 大家如果开发大屏, 只是用响应式布局可能对于复杂的布局不是很方便, 你也可以采用拖拽绝对定位的方法, 这样你可以随意指定图形的所在位置. 方法可参考视屏 拖拽说明 你可以配合使用 ”模板开发“ 来实现高度定制化的效果, 参考 模板开发指引\n混合布局(PRO) # 你可以考虑先用响应式布局把整体框架画出来, 如果要加一下装饰的情况, 可以用绝对定位(拖拽布局)来实现\n"},{"id":9,"href":"/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E5%8F%82%E6%95%B0%E7%BC%96%E5%86%99%E6%96%B9%E6%B3%95/","title":"参数编写方法","section":"5.参数及联动钻取","content":" 使用场景 # 需要使用图表联动效果 数据服务接口开发 使用魔法方法(smartchart独创,拒绝抄袭) # 基础原理 # - $参数名, 当有传递参数时将替换相关的值 - /* ... $参数 ... */, 当参数写在这个区间时, 如果外部没有传入参数, 会自动忽略这一段代码 - -- 标识之后单行的代码会被忽略 常见组合应用 # 理解以下样列后, 可录活使用组合出各种可能的需求\n默认参数: 实现在不传参数时默认参数是当前月份 select xx from tablename where calmonth =/*\u0026#39;$calmonth\u0026#39; -- */ to_char(sysdate,\u0026#39;YYYYMM\u0026#39;) 多个参数: 注意使用1=1及and的位置 select xx from tablename where 1=1 /* and city = \u0026#39;$city\u0026#39; */ /* and calmonth =\u0026#39;$calmonth\u0026#39;*/ 维度变化: 将字段当成参数 select /*$calmonth,*/ city, count(1) as qty from tablename group by /*$calmonth,*/ city 维度变化: 当传入月份条件时, 按城市,月份的数据, 不传参数时只看按城市的总数 select /*月份, -- $Month */ 城市, sum(度量) from tablename where 1=1 /* and 月份 \u0026gt; \u0026#39;$Month\u0026#39; */ group by 城市 /*,月份 -- $Month*/ 高级开关应用 # 以上应用可以通过参数是否有传递来实现开关代码段的效果, 有些场景可能还希望通过参数值来进行代码段的开关 如下代码可以实现当传递参数type=1 或 type=2 时执行不同的代码段 使用 \u0026ldquo;$参数__值\u0026rdquo; 的方式做为开关\n/* select count(1) as qty from tablename1 $type__1*/ /* select count(1) as qty from tablename2 $type__2*/ 再比如 当参数D传值为\u0026quot;月份\u0026quot;时是统计2022年按月的统计, 传\u0026quot;日期\u0026quot;时统计的是2022年10月按天的统计\nselect $D, count(1) as qty from tablename where 1 = 1 /* and year=\u0026#39;2022\u0026#39; -- $D__日期 $D__月份 */ /* and month=\u0026#39;10\u0026#39; $D__日期 */ group by $D 加了\u0026quot;\u0026ndash;\u0026ldquo;是为了避免语法错误\n数据集开发调试参数方法 # 对于开发人员来说, 带参数的SQL调试不方便, 所以支持你在sql中写入默认参数 方法如下格式, 你可以在sql编辑器的最上方写上 /* {xxxxxx} */, 会默认在开发调试模式下取这些参数, 在用户模式下会忽略 /* {\u0026#34;月份\u0026#34;:\u0026#34;202009\u0026#34;,\u0026#34;城市\u0026#34;:\u0026#34;中山\u0026#34;} */ select xxx from table xxx 数据权限行级别控制 # 当你在sql查询中加上\u0026rsquo;$username\u0026rsquo;, 会自动替换成登录用户的用户名 如果你是嵌入到第三方系统, 你可以通过url传递参数id, 在后台会转化为参数_id, 在sql中配置$_id即可控制数据权限 可以采用此做数据权限关联后台权限mapping表进行数据权限控制实现不同人看不同的数据 参数的传递方式 # 你可以从url传入参数, 在url上加入 \u0026amp;param={\u0026ldquo;参数名\u0026rdquo;:\u0026ldquo;参数值\u0026rdquo;} 在图形联动的点击过程中会自动传递参数, 具体参考联动相关文档 TIPS 当设定参数后, 联动过程dataset的缓存功能失效, 所以不要让带参数的查询设计得太慢 参数如果存在一些非法字符可能会有问题, 比如参数中不可以有#号\n"},{"id":10,"href":"/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/%E7%AE%80%E5%8D%95%E5%B5%8C%E5%85%A5/","title":"简单嵌入","section":"7.报表嵌入","content":"你可能需要把Smartchart生成的图形嵌入到其它系统 首先,所有smartchart设计出来的仪表盘都有一个访问url 你可以直接访问:\nhttp://localhost:8000/echart?type=仪表盘名称 如:http://localhost:8000/echart?type=demo 但是smartchart默认是有权限管理的,所以如果你需要嵌入你自已的系统又不考虑权限,你可以在“设定” \u0026ndash;\u0026gt; 公开 然后在你的网页就可以直接iframe了\n\u0026lt;iframe src=\u0026#34;http://localhost:8000/echart?type=demo\u0026#34; style=\u0026#34;width:100%;height:100%\u0026#34;\u0026gt;\u0026lt;/iframe\u0026gt; "},{"id":11,"href":"/docs/8.Django%E5%BA%94%E7%94%A8/%E5%B5%8C%E5%85%A5Django-Apps/","title":"嵌入 Django Apps","section":"8. Django应用","content":" 应用场景 # 你可以在你的django项目中直接使用smartchart做为插件的方式 你可以查看相关视屏\n使用方法 # 在你的setting.py的INSTALL_APPS中加入\u0026rsquo;smart_chart.echart' 如果你需要simpleui, 你可以在最上行加入我们适配好的\u0026rsquo;smart_chart.smartui\u0026rsquo; INSTALLED_APPS = [ \u0026#39;smart_chart.smartui\u0026#39;, .... .... \u0026#39;smart_chart.echart\u0026#39; ] MIDDLEWARE 中注释掉XFrameOptionsMiddleware\n检查确保在Templates的设定处有DIRS的相关设定\nTEMPLATES = [ { \u0026#39;BACKEND\u0026#39;: \u0026#39;django.template.backends.django.DjangoTemplates\u0026#39;, \u0026#39;DIRS\u0026#39;: [BASE_DIR / \u0026#39;templates\u0026#39;], #此处需要有 \u0026#39;APP_DIRS\u0026#39;: True, #也要有 ..... }, ] setting.py中设定为中国时区, 支持中文基础平台建设! LANGUAGE_CODE = \u0026#39;zh-hans\u0026#39; TIME_ZONE = \u0026#39;Asia/Shanghai\u0026#39; USE_I18N = True USE_L10N = True USE_TZ = False # 此处必须为False 在你的url.py中加入引用 from django.conf.urls import include from django.views.generic import RedirectView url.py的urlpatterns中加入路由 path(\u0026#39;echart/\u0026#39;, include(\u0026#39;smart_chart.echart.urls\u0026#39;)), path(\u0026#39;\u0026#39;, RedirectView.as_view(url=\u0026#39;echart/index/\u0026#39;)), #首页,可自定义路由 初始化DB, 命令行输入: python manage.py makemigrations python manage.py migrate 建立管理员帐号, 如果已有可忽略 python manage.py createsuperuser 启动服务 python manage.py runserver 10. 点击首页的组件升级进行初始化 :cupid: !!!! 重要!!! 注意 # 一般来说如果你使用django遇到的问题,都不是smartchart导致的, 作者也很难给你解答, 建议你可以进行有偿问答\n"},{"id":12,"href":"/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E5%AE%9E%E6%88%98%E5%A4%A7%E5%B1%8F%E6%A8%A1%E6%9D%BF%E8%BD%AC%E5%8C%96/","title":"实战大屏模板转化","section":"9.进阶开发 Pro","content":" 应用场景 # 已有开发好的非smartchart静态大屏模板(这种模板非常多, 不要上当) 对js, css及smartchart已有初始了解 业务需求展示有合适的模板, 变化不大 如何使用 # 请观看系列视屏, 相信人人都会 头条视屏: 大屏模板转化系列 B站视屏: 大屏模板转化系列\n"},{"id":13,"href":"/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91%E7%95%8C%E9%9D%A2/","title":"模板开发界面","section":"模板开发","content":" 低代码化开发 # smartchart的标准模板为了标准化的原因,对于引用JS,编写CSS等有一定不方便性, 但有时候你可能需要放飞自由, 随意定制 你甚至可能想引用一些其它的UI组件, 所以smartchart给你一个原汗原味的开发空间\n开启方式 # 在高级中,设定template为diy 主菜单中会多出来一个 模板 的功能 进入模板编辑界面 "},{"id":14,"href":"/docs/%E5%85%B3%E4%BA%8E%E6%88%91%E4%BB%AC/","title":"关于我们","section":"Docs","content":" 我们的目标 # 打造全生态的数据应用数据管理的平台,解决中小企业上中台难,上中台贵,见效慢的问题. 平台与时俱进,不断完善与优化中 可以通过视屏了解我们的架构设计 企业数字化与smartchart的一站式解决方案\n我们不提供数据存储与计算引擎, ETL工具, BI工具. 因为已有更优秀的产品,我们只为数据开发人员提供更敏捷的工具与平台,致力于数据服务中台建设,边缘可视化与数据管道产品, 站在巨人的肩上, 让数据更有个性,更灵活与可定制化,由于他的通用性,功能的扩展变得也是非常的Smart\n产品定位: # 实现全生态的数据服务平台(数据收集, 数据加工, 数据分享,数据管理,数据应用)\n产品模块: # 统一的数据处理调度平台、数据管道, 是基于Apache顶级项目Airflow上的二次开发产品,让数据处理的任务调度开发与管理微代码化,我们的设计理念是让开发者更方便的同时,不丧失灵活和高度可自定义,如果你使用过smartchat,你可以想象他会带来的便捷性, 产品名为smartpip, 为啥不叫smartpipe, 因为能省我们就要省\u0026hellip; 统一的可视化管理平台, 为微信等第三方应用, 提供powerbi,tableau,finebi\u0026hellip;的嵌入式及功能扩展服务,数据集即服务,一切为数据集 统一的数据上传平台, 实现线下数据的收集需求, 并提供专业的手工上传数据产品, 支持excel本地(安装与免安装版本), 支持WEB端 统一的数据分享平台与smartchart集成,可做为数据服务中台, 实现业务对数据下载的需要及为第三方提供获取数据的API接口 SmartChart可视化平台, 新一代的数据可视化产品, 解决传统BI各种痛点问题,真正面向开发人员的平台产品 元数据管理平台及数据治理,让数据的来源更清晰, 让数据应用更方便,具备自动化,可视化的数据血缘分析 新一代极速数据仓库技术, 极简架构即可实现在大数据应用的全场景需求 "},{"id":15,"href":"/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%93%E4%B8%9A%E7%89%88%E8%AF%B4%E6%98%8E/","title":"专业版本说明","section":"1.基础操作","content":" 版权声明 # 为项目能持续维护,并保持稳定的模式,按照社区投票的意见, 开始区分免费版本和专业版本 目前免费版本无需激活, 你可以使用到常用的功能,我们也会保持持续的更新 为保持项目的健康发展,如需进行商用,您需提供使用方并知会作者进行授权\n免费版使用者必须保留SmartChart相关版权标识及LOGO,禁止对其进行修改和删除 如果违反,将保留对侵权者追究责任的权利\n激活方式 # 您在初次安装Smartchart后会自动免费激活20天的专业版本, 之后专业版本功能会限制使用 请务必仔细阅读免费版本与专业版本的区别, 避免带来的不便 后续如果您还需要继续体验专业版本, 点击查看激活试用方式, 如果您是企业用途,建意使用专业版,获取更快的开发效率,可视化效果, 可靠性的保障及极速的查询体验\n针对个人独立开发者,你可以采用廉价的专业版仪表盘激活方案, 可满足小项目的可视化要求 如果需要永久激活专业版,可关注公众号与客服联系,或扫码联系微信客服了解, 非诚勿扰\n微信客服不提供技术咨询, 如有使用方法的疑惑,建意加QQ群:476715246 进行沟通\n免费版本与专业版本对比: # 功能 免费版 专业版 中台版 栅格布局 V V V DATAV V V V 拖拽布局 V V 自由开发 V V 切换图表主题 V V 主题自由设计 V V 引入JS V V 引入CSS V V 上传静态资源 V V 使用VUE V V V 数据集开发 V V V 所有数据源 V V V 图形开发 V V V 图形商店 V V V 普通模板应用 V V V 专业模板应用 V V 复制仪表盘 V V V 钻取 V V V 联动 V V V 筛选 V V V 单点登录 V V V 嵌入认证 V V LDAP认证 V V Juypter V V V 快捷存档 V V 数据加速 V V 数据API服务 V V 后台API刷新 V V 仪表盘同步 V V 仪表盘版本管理 V V 数据填报 V V 报表Portal V V 多级项目菜单 V 商业授权 V V 优先咨询 V V 专业边框背景 V V 3D场景 V V 中国式报表 V V 生产部署文档 V V 个性化修改 V V 授权书 V V 低代码ETL V 调度平台 V 智慧BI V 数据资产 V 数据血缘 V 租户管理 V "},{"id":16,"href":"/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/ElementUI/","title":"Element Ui","section":"Vue相关","content":" 应用场景 # 非大屏场景应用 有较多交互场景的报表, 如筛选,表格,分页,下载等 使用方法 # 如下图, base.html 改为 basevue.html 将自动开启加载vue和elementui 注意vue的变量引用在 模板编辑界面中, 写法变更为 {[ ]}\nElementUI组件说明 视屏参考\n参考样列 # 新增一个数据集(点击金色的新增按钮, 这样会新增一个可拖拽的数据集) 修改相应的数据集及图形 数据集端\nselect H1, H2, qty, rate from smartdemo2 limit 100 图形端\nlet dataset = __dataset__; let tableData = ds_createMap_all(dataset); vapp.d0={ tableData: tableData } 模板Body区端\n\u0026lt;div class=\u0026#34;smtdrag\u0026#34; id=\u0026#34;id_1639824145817\u0026#34;\u0026gt; \u0026lt;template\u0026gt; \u0026lt;el-table stripe border height=\u0026#34;100%\u0026#34; :data=\u0026#34;d0.tableData\u0026#34; style=\u0026#34;width: 100%\u0026#34;\u0026gt; \u0026lt;el-table-column label=\u0026#34;hero\u0026#34;\u0026gt; \u0026lt;el-table-column prop=\u0026#34;H1\u0026#34; label=\u0026#34;H1\u0026#34; fixed :default-sort = \u0026#34;{prop: \u0026#39;H2\u0026#39;, order: \u0026#39;descending\u0026#39;}\u0026#34; width=\u0026#34;180\u0026#34;\u0026gt; \u0026lt;/el-table-column\u0026gt; \u0026lt;el-table-column prop=\u0026#34;H2\u0026#34; label=\u0026#34;H2\u0026#34; sortable width=\u0026#34;180\u0026#34;\u0026gt; \u0026lt;/el-table-column\u0026gt; \u0026lt;/el-table-column\u0026gt; \u0026lt;el-table-column sortable prop=\u0026#34;qty\u0026#34; label=\u0026#34;qty\u0026#34;\u0026gt; \u0026lt;/el-table-column\u0026gt; \u0026lt;el-table-column prop=\u0026#34;rate\u0026#34; label=\u0026#34;rate\u0026#34;\u0026gt; \u0026lt;/el-table-column\u0026gt; \u0026lt;/el-table\u0026gt; \u0026lt;/template\u0026gt; \u0026lt;/div\u0026gt; "},{"id":17,"href":"/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%8D%E5%A4%AA%E9%87%8D%E8%A6%81/%E5%A4%8D%E5%88%B6%E4%BB%AA%E8%A1%A8%E7%9B%98/","title":"复制仪表盘","section":"不太重要","content":" 复制仪表盘 # 好不容易开发好了一个仪表盘, 想再做一个类似的, 或者想要一个测试用, 还需要一个个数据集, 图形复制粘贴么, 不, 你仅仅只需要点击下, 将给你复制出一个全新的仪表盘 注意: 复制出来的仪表盘, 数据集是与原仪表盘公用的!!\n如果你想将数据集独立出来, 可以按下图操作, 进入数据集设定, 点击磁铁, 将为你自动创建一个全新的数据集 "},{"id":18,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/EXCEL%E6%95%B0%E6%8D%AE/%E6%95%B0%E6%8D%AE%E4%B8%8A%E4%BC%A0/","title":"数据上传","section":"Excel数据","content":" 用户如何上传文件 # smartchart默认是不自带文件上传功能 但是smartchart是可以自已创造上传页面, 在模板商店中你可以找到相关模板进行购买 然后通过模板下载的方式下载后进行操作 这样每一个页面是可以单独使用权限控制的,就和控制报表权限一样,你还可能按需随意定制页面 关于上传文件的路径 # 默认的上传主目录是在项目的log的文件夹下面, 你可以在setting.py(自定义django) 或 config.ini中设定UPLOAD_PATH来修改你的上传目录 比如你上传页面的报表ID是23, 那么文件将会被上传到UPLOAD_PATH/23/你的文件名\n如何使用上传的文件 # 你需要使用 python连接器, 来操作你的上传的数据, 内置了变量ds_path为你的上传目录, 所以可以更方便的读取上传的文件,如上文件 df = pd.read_excel(ds_path+\u0026rsquo;/23/文件名')\n"},{"id":19,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/SQL%E6%95%B0%E6%8D%AE%E9%9B%86/","title":"Sql数据集","section":"2.数据集说明","content":"SmartChart标准数据集你可以想象为一个EXCEL的二维表, 有行和列 你直接在数据集开发界面填写SQL即可\n标准图形的数据表类型 # A类数据源 # 比如你的原始数据库中表的格式如下, 表名tb_name: 城市 户型 数量 长沙 A 12 长沙 A 23 上海 B 19 查询的sql: select 城市,户型,sum(数量) AS 数量 from tb_name group by 城市,户型 正常的查询的结果为: [[\u0026#39;城市\u0026#39;,\u0026#39;户型\u0026#39;,\u0026#39;数量\u0026#39;], [\u0026#39;长沙\u0026#39;,\u0026#39;A\u0026#39;,35], [\u0026#39;上海\u0026#39;,\u0026#39;B \u0026#39;,19]] 由于生成的数据格式第二行是 [字符,字符,数值], 后台会自动进行转列动作, 生成图表更容易使用格式: [[\u0026#39;Categroy\u0026#39;,\u0026#39;A\u0026#39;,\u0026#39;B\u0026#39;], [\u0026#39;长沙\u0026#39;, 35, 0], [\u0026#39;上海\u0026#39;, 0, 19]] B类数据源 # 再比如我们有一个表的数据格式, 指标是展开的: 城市 A B 长沙 10 12 上海 11 19 长沙 9 10 我们可以写的sql是: select 城市, sum(A) as A, sum(B) as B from tb_name group by 城市 这样得到的结果是: [[\u0026#39;城市\u0026#39;,\u0026#39;A\u0026#39;,\u0026#39;B\u0026#39;], [\u0026#39;长沙\u0026#39;, 19, 22], [\u0026#39;上海\u0026#39;, 11, 19]] 和我们的标准格式也是一样的 SQL多段查询 # 有时你一个数据集可能只用一个SQL查询还不够,比如你需要一个清单数据,同时你需要一个汇总数据做为说明在图形中显示,这样你就需要使用多条SQL语句,在数据集中的写法你只需要用分号隔开,如:\nselect ... from xxx; select ..... from xxxxxxx 传递到图形中的格式为: {\u0026#34;df0\u0026#34;:[[...]]. \u0026#34;df1\u0026#34;:[[......]]} df0, df1分别对应的是第一段和第二段查询 多段查询使用视屏参考\n支持的数据源: # 数据库 驱动填写 需安装 使用说明 Mysql mysql 默认支持 Mysql连接池 mysqlpool Sqlite sqlite 默认支持 连接地址填写绝对路径 API 任意 默认支持 参考数据集说明文档 EXCEL 任意 默认支持 参考数据集说明文档 SQL Server mssql 需安装 pip install pymssql SQL Server连接池 mssqlpool ORACLE oracle pip install cx_Oracle ORACLE连接池 oraclepool PostgreSql gp pip install psycopg2 GP gp pip install psycopg2 Impala impala pip install impyla Hive hive pip install impyla DB2 db2 pip install ibm_db 达梦 dm pip install dmPython Python python pip install pandas, openpyxl 参考数据集-\u0026gt;特殊数据源 Redis redis pip install redis 参考数据集-\u0026gt;特殊数据源 Mongodb mongodb pip install pymongo 参考数据集-\u0026gt;特殊数据源 Clickhouse clickhouse pip install clickhouse_driver Elasticsearch es pip install elasticsearch==7.13.0 参考数据集-\u0026gt;特殊数据源 Sqlalchemy sqlalchemy pip install sqlalchemy 参考数据集-\u0026gt;特殊数据源 JDBC jdbc pip install JayDeBeApi 参考数据集-\u0026gt;特殊数据源 自定义 自定义 用户自由定义 参考数据集-\u0026gt;特殊数据源 "},{"id":20,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/Python%E6%95%B0%E6%8D%AE%E9%9B%86/","title":"Python数据集","section":"特殊数据源","content":" 应用场景 # 当SQL查询无法满足你的需求, 你需要对查询后的结果进行处理, 或者你需要使用Excel的数据源, 甚至你需要对不同系统的数据进行查询, Python连接器可以帮到你 我们又称他为万能数据集, 你可以使用任何python语法, 需要把数据集的结果赋值给ds变量!!\n首先你需要新建python连接器, 由于安全控制只允许超级管理员建立 # 内置函数说明 ds_get(id) #输入目标数据集的id名, 可以获取目标数据集 ds_df(id) #输入目标数据集的id名, 转化成pandas的df对象 ds_sql(conn_name, sql_str) #输入连接池中的名称, SQL语句, 获取数据集 ds_list(df) #将pandas的df对象转化成数据集 使用方法样列说明 # # 读取Excel数据处理, 如需上传页面可参考\u0026#34;数据上传\u0026#34;说明 import pandas as pd df = pd.read_excel(\u0026#39;/Users/../smartdemo.xlsx\u0026#39;, \u0026#39;demo\u0026#39;) df = df.groupby(\u0026#39;c3\u0026#39;).agg({\u0026#39;qty\u0026#39;:\u0026#39;sum\u0026#39;}).reset_index() ds = ds_list(df) #从数据集获取数据 ds=ds_get(12) ds=ds[:15] #从数据集获取数据转化成pandas对象处理 df = ds_df(12) df = df.sort_values(by=\u0026#34;出场数\u0026#34;, ascending=False) ds = ds_list(df) #可以生成字典格式的数据集供多个图形使用 import pandas as pd df = pd.read_excel(\u0026#39;/Users/../smartdemo.xlsx\u0026#39;, \u0026#39;demo\u0026#39;) df1 = df.groupby(\u0026#39;c3\u0026#39;).agg({\u0026#39;qty\u0026#39;:\u0026#39;sum\u0026#39;}).reset_index() df2 = df.groupby([\u0026#39;province\u0026#39;,\u0026#39;c3\u0026#39;]).agg({\u0026#39;qty\u0026#39;:\u0026#39;sum\u0026#39;}).reset_index() ds = {\u0026#39;df1\u0026#39;: ds_list(df1), \u0026#39;df2\u0026#39;: ds_list(df2)} #可以直接执行SQL sql_str = \u0026#39;\u0026#39;\u0026#39;select H1 as heroname, sum(qty) as 出场数 from T /* where H2 = \u0026#39;$H2\u0026#39; */ group by H1 order by sum(qty) desc\u0026#39;\u0026#39;\u0026#39; ds = ds_sql(\u0026#39;XXX\u0026#39;, sql_str) ds = ds[:10] "},{"id":21,"href":"/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%87%BD%E6%95%B0%E6%96%B9%E6%B3%95/Jquery%E9%81%8D%E5%8E%86%E6%96%B9%E6%B3%95/","title":"Jquery遍历方法","section":"函数方法","content":"在做自定义html组件的时候你可能需要用得上:\n一、向上遍历\nparent() 获取元素的直接父元素 $(\u0026#34;span\u0026#34;).parent().css({ \u0026#34;color\u0026#34;:\u0026#34;red\u0026#34;, \u0026#34;border\u0026#34;:\u0026#34;1px solid red\u0026#34; }) parents() 获取元素的祖先元素,直到根元素html $(\u0026#34;span\u0026#34;).parents().css({ \u0026#34;color\u0026#34;:\u0026#34;red\u0026#34;, \u0026#34;border\u0026#34;:\u0026#34;1px solid red\u0026#34; }) parentsUntil() 向上查找直到遇见某个祖先元素为止 $(\u0026#34;span\u0026#34;).parentsUntil(\u0026#34;div\u0026#34;).css({\t//向上查找直到遇见div元素为止 \u0026#34;color\u0026#34;:\u0026#34;red\u0026#34;, \u0026#34;border\u0026#34;:\u0026#34;1px solid red\u0026#34; }) 二、向下遍历\n1. children() 查找子元素[按照从属关系] $(\u0026#34;ul\u0026#34;).children(\u0026#34;li:first-child\u0026#34;) 2. find() 按照指定的条件向下查找 $(\u0026#34;ul\u0026#34;).find(\u0026#34;span\u0026#34;) 三、水平遍历\n1. siblings() 获取元素的所有兄弟元素 $(\u0026#34;.start\u0026#34;).siblings().css({color:\u0026#34;red\u0026#34;,border:\u0026#34;2px solid red\u0026#34;}) 2. next() 获取元素的下一个兄弟元素 $(\u0026#34;.start\u0026#34;).next().css({color:\u0026#34;red\u0026#34;,border:\u0026#34;2px solid red\u0026#34;}) 3. nextAll() 获取其后的所有兄弟元素 $(\u0026#34;.start\u0026#34;).nextAll().css({color:\u0026#34;red\u0026#34;,border:\u0026#34;2px solid red\u0026#34;}) 4. nextUntil() 查找后面所有的兄弟元素,直到遇见某个元素为止 $(\u0026#34;.start\u0026#34;).nextUntil(\u0026#34;li:last-child\u0026#34;).css({color:\u0026#34;red\u0026#34;,border:\u0026#34;2px solid red\u0026#34;}) 5. prev() 查找上一个兄弟元素 $(\u0026#34;li.start\u0026#34;).prev().css({color:\u0026#34;red\u0026#34;,border:\u0026#34;2px solid red\u0026#34;}) 6. prevAll() 查找上面所有的兄弟元素 $(\u0026#34;li.start\u0026#34;).prevAll().css({color:\u0026#34;red\u0026#34;,border:\u0026#34;2px solid red\u0026#34;}) prevUntil() 查找上面所有的兄弟元素,直到遇见某个元素为止 $(\u0026#34;.start\u0026#34;).prevUntil(\u0026#34;li:first\u0026#34;).css({\u0026#34;color\u0026#34;:\u0026#34;red\u0026#34;,\u0026#34;border\u0026#34;:\u0026#34;2px solid red\u0026#34;}) 四、过滤\n1. first() 获取第一个元素 $(\u0026#34;li\u0026#34;).first().css(\u0026#34;color\u0026#34;,\u0026#34;red\u0026#34;); 2. last() 获取最后一个元素 $(\u0026#34;li\u0026#34;).last().css(\u0026#34;color\u0026#34;,\u0026#34;red\u0026#34;); 3. not() 获取不是…的元素 $(\u0026#34;li\u0026#34;).not(\u0026#34;:eq(2)\u0026#34;).css(\u0026#34;font-size\u0026#34;,\u0026#34;26px\u0026#34;); 4. eq(n) 获取索引为n的元素 $(\u0026#34;li\u0026#34;).eq(3).css(\u0026#34;background\u0026#34;,\u0026#34;green\u0026#34;); 5. has() 检测某个子元素是否存在 $(\u0026#34;li\u0026#34;).eq(1).has(\u0026#34;span\u0026#34;).length) 6. filter() 筛选出与符合条件的DOM元素 $(\u0026#34;div\u0026#34;)..filter(\u0026#34;.middle\u0026#34;) 7. is() 用来判断是否符合条件 $(\u0026#34;p\u0026#34;).parent().is(\u0026#34;div\u0026#34;)\t//判断p的父元素是不是div,是就返回true,不是就返回false 五、each遍历\n1. each() 方法为每个匹配元素规定要运行的函数。 $(selector).each(function(index,element){ ..... }) //index 表示当前遍历元素的索引 element 当前的元素(也可使用 \u0026#34;this\u0026#34; 选择器) 2. $.each(obj,function( index,value){}) "},{"id":22,"href":"/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%AE%A1%E7%90%86%E5%9B%BE%E5%BD%A2/","title":"管理图形","section":"3.图形开发","content":" 应用场景 # 如何快速复用已开发好的组件\n本地管理自定义组件 # 如下图,点击图形编辑器中的菜单,即可管理和查看自定义图形列表 点击\u0026quot;加入样列\u0026quot;即可把当前图形加入到样列清单, 点击\u0026quot;取消样列\u0026quot;即可将所选样列移除样列清单 云管理,在图形商店中保存你的图形 # 这样你就可以在图形商店看到你的图形进行重复利用 "},{"id":23,"href":"/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E6%8B%96%E6%8B%BD%E8%87%AA%E5%8A%A8%E5%AF%B9%E9%BD%90/","title":"拖拽自动对齐","section":"4.布局说明","content":"拖拽很方便, 但是精确对齐还是有些手抖, 所以smartchart增加了自动对齐的功能 你可以在\u0026quot;模板\u0026quot; \u0026ndash;\u0026gt; \u0026ldquo;转化\u0026rdquo; 中找到这个功能 首先我们随意拖拽了一些组件 然后选中拖拽代码段, 点\u0026quot;拖拽对齐\u0026quot; 后 点\u0026quot;保存\u0026quot; 就可以查看对齐后的效果了, 再进行下拖拽微调, 重复以上动作到满意 "},{"id":24,"href":"/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E5%9B%BE%E5%BD%A2%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/","title":"图形联动钻取","section":"5.参数及联动钻取","content":" 数据集准备 # 首先在需要进行联动的数据集中SQL的写法如下, 比如对应2号图形:\n注意 /* ... */的写法, 当参数写在这个区间时, 如果外部没有传入参数, 会自动忽略这一段代码, 这样对于联动来说非常重要, 初始时全部显示, 点击其它图形时传入参数进行动态联动 select xxx,xxx,xxx from tablename /* where xxxx = \u0026#39;$参数名\u0026#39; */ .... 建意观看视屏比较容易理解: 数据联动说明\n常规方法 # 比如你需要点击0号图形, 指定其它图形联动 你只需要打开0号图形的数据集编辑页面, 点击标题的位置 然后输入相关的参数即可, 以下为sample 参数值设定的方法, 你可以先留空, 然后保存, F12打浏览器调试方法 点击0号图形你需要点击的动作, 你可以右调试窗口的console看到输入的log 比如我们需要传递的参数值是\u0026quot;廉颇\u0026quot;, 那么取数据的方法就是data.name, 你把这个填入即可 这样就实现按所选数据或所选系列钻取/联动了, 重新点击当前所选, 恢复原来的 如何在图形开发中获取参数值\n图形编辑器中, 你可以使用函数 ds_param(\u0026#39;参数名\u0026#39;) 来获取传入的参数值 高级定制方法 # 如果有更多个性化需求,可以在需要点击的图形的编辑器中加入以下代码,你仅仅需要修改的是序号和参数名\n//比如传入多个参数进行联动 myChart__name__.on(\u0026#39;click\u0026#39;, function(params){ let myparam = params.seriesName; //获取点击的值 filter_param[\u0026#39;参数名\u0026#39;] = myparam; //填写你的数据集的SQL设定中对应的参数名 filter_param[\u0026#39;参数名2\u0026#39;] = myparam2; //你可以赋值给多个参数 ds_refresh(3); //3 为你要刷新图形序号 }); 你也可以使用更方便的参数赋值方法(5.6以上)\n//使用方法 ds_setParam(\u0026#39;参数名\u0026#39;, 参数值) 此方法将自动判断当参数值为空时, 删除参数回到初始未传参状态 你还可以实现钻取到另外一个报表\nmyChart__name__.on(\u0026#39;click\u0026#39;, function (params) { let myparam = `\u0026amp;param={\u0026#34;参数名\u0026#34;: \u0026#34;${params.seriesName}\u0026#34;}`; //拼成url并传参,具体参考数据集说明中的数据联动url传参的方法 let myurl=\u0026#39;http://localhost:8000/echart/?type=目标报表名\u0026#39;+ myparam; window.open(myurl,\u0026#39;_blank\u0026#39;,\u0026#39;toolbar=no,scrollbar=no,top=100,left=100,width=800,height=500\u0026#39;); }); TIPS 如果你的参数中存在非法字符如\u0026amp;=, 你可以使用encodeURIComponent函数进行转义后赋值\n"},{"id":25,"href":"/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95/","title":"单点登录","section":"7.报表嵌入","content":" 单点登录的方式与smartchart进行对接嵌入 # \u0026#39;/echart/smart_login?id=xxx\u0026amp;stamp=xxx\u0026amp;token=xxx\u0026amp;url=/\u0026#39; \u0026#39;\u0026#39;\u0026#39; 参数说明: id: 用户名(在smartchart平台中管理) stamp: 时间戳(1970年1月1日到生成时间的毫秒数) token: 采用sha1加密, token=SHA1(链接秘钥+stamp+id) 请在安装smartchart的这台机器上设定环境变量SMART_KEY = 链接秘钥 url: 登录成功后跳转链接 \u0026#39;\u0026#39;\u0026#39; Python后台样列: # import time import hashlib import os \u0026#34;\u0026#34;\u0026#34; 参数说明: id: 用户名(在smartchart平台中管理) stamp: 时间戳(1970年1月1日到生成时间的毫秒数) token: 采用sha1加密, token=SHA1(链接秘钥+stamp+id) url: 登录成功后跳转链接 \u0026#34;\u0026#34;\u0026#34; SMART_CHART_URL = \u0026#39;http://127.0.0.1:8000\u0026#39; LOGIN_URL = SMART_CHART_URL + \u0026#39;/echart/smart_login?id={id}\u0026amp;stamp={stamp}\u0026amp;token={token}\u0026amp;url={url}\u0026#39; SMART_KEY = 链接秘钥 def get_smarturl(username, url=\u0026#39;/\u0026#39;): stamp = int(time.time() * 1000) id = username res = SMART_KEY + str(stamp) + id token = hashlib.sha1(res.encode(\u0026#39;utf-8\u0026#39;)).hexdigest() LOGIN_DICT = { \u0026#34;id\u0026#34;: id, \u0026#34;stamp\u0026#34;: stamp, \u0026#34;token\u0026#34;: token, \u0026#34;url\u0026#34;: url } # 拼接好的url,直接访问 visit_url = LOGIN_URL.format(**LOGIN_DICT) return visit_url "},{"id":26,"href":"/docs/8.Django%E5%BA%94%E7%94%A8/FAQ/","title":"Faq","section":"8. Django应用","content":" FAQ # 如果你想对smartchart前端二次开发或关闭debug模式后找不到资源 在settings中加入\nSTATIC_ROOT = os.path.join(BASE_DIR, \u0026#34;static\u0026#34;) 执行以下命令将静态文件静态文件克隆到根目录\npython3 manage.py collectstatic "},{"id":27,"href":"/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%95%B0%E6%8D%AE%E6%9C%8D%E5%8A%A1API/","title":"数据服务 API","section":"9.进阶开发 Pro","content":" SmartChart的数据集功能, 可以非常方便的实现数据对外微服务 # 权限设定 # 如果你使用的是自已搭建的django项目, 你需要在项目的根目录下新建一个JSON文件, 如果是使用smartchart启动的, 配置文件在项目的安装目录下可以找到 名为apiconfig.json, 比如需要调用API的用户名为test 和 test2,用户名需要是在你的用户设定中存在的,内容如下: { \u0026#34;test\u0026#34;: { \u0026#34;token\u0026#34;: \u0026#34;smartchart\u0026#34; }, \u0026#34;test2\u0026#34;: { \u0026#34;token\u0026#34;: \u0026#34;smartchartxxx\u0026#34;, \u0026#34;host\u0026#34;: [\u0026#34;10.10.10.10\u0026#34;,\u0026#34;10.10.10.23\u0026#34;], \u0026#34;limit\u0026#39;: 60, \u0026#34;log\u0026#34;:1, \u0026#34;cors\u0026#34;: 1 } } 可选设定参考test2 host:API白名单配置,limit:一分钟内可调用次数, log:日志记录方式. cors:永许跨域访问\n然后你只需要将你的数据集中的权限设定给对应的用户即可 请求方式 # 加密接口请求方式(推荐) # GET 请求 # #接口请求格式: url: /echart/dataset_api/?visitor=xxx\u0026amp;token=xxx\u0026amp;type=xxx\u0026amp;stamp=xxxxx\u0026amp;param={\u0026#34;xx\u0026#34;:\u0026#34;xxx\u0026#34;,\u0026#34;xx\u0026#34;:\u0026#34;xxxx\u0026#34;} # 参数说明 visitor: 用户名 type: 接口数据集ID stamp: 时间戳(1970年1月1日到生成时间的毫秒数) token: 采用sha1加密, token=SHA1(秘钥 + stamp + Visitor + Type) param: 传入的参数值(可选),格式json字符串,如多个参数: \u0026#39;{\u0026#34;参数A\u0026#34;:\u0026#34;xxxx\u0026#34;, \u0026#34;参数B\u0026#34;:\u0026#34;xxxx\u0026#34;}\u0026#39; # 接口返回格式 Json: { \u0026#34;data\u0026#34;:[[]], \u0026#34;result\u0026#34;:\u0026#34;success\u0026#34;, \u0026#34;maxpg\u0026#34;:1, \u0026#34;pg\u0026#34;:1 } 返回值说明: data : 二维数组,第一行为表头, 样列数据 [[\u0026#34;heroname\u0026#34;, \u0026#34;qty\u0026#34;],[\u0026#34;镜\u0026#34;,658],[\u0026#34;猪八戒\u0026#34;,591]] result : success 或 error maxpg/pg : GET请求固定为1不分页 POST请求(适用于后台定时同步数据,查询请用GET请求方法) # #接口请求格式: url: /echart/dataset_api/ # 请求参数说明 data: { \u0026#34;visitor\u0026#34;:\u0026#34;xxx\u0026#34;, \u0026#34;token\u0026#34;:\u0026#34;xxx\u0026#34;, \u0026#34;stamp\u0026#34;:xxxxx, \u0026#34;type\u0026#34;:\u0026#34;xxx\u0026#34;, \u0026#34;pagesize\u0026#34;:\u0026#34;xxx\u0026#34;, \u0026#34;pg\u0026#34;:\u0026#34;xxx\u0026#34;, \u0026#34;param\u0026#34;:\u0026#39;{\u0026#34;xxx\u0026#34;:\u0026#34;xxxx\u0026#34;}\u0026#39; } # 参数说明 visitor: 用户名 type: 接口数据集ID stamp: 时间戳(1970年1月1日到生成时间的毫秒数) token: 采用sha1加密, token=SHA1(秘钥 + stamp + Visitor + Type) Pagesize: 采用分页,每页的数据量大小 pg: 返回第几页 param: 传入的参数值,格式json字符串,如多个参数 \u0026#39;{\u0026#34;参数A\u0026#34;:\u0026#34;xxxx\u0026#34;, \u0026#34;参数B\u0026#34;:\u0026#34;xxxx\u0026#34;}\u0026#39; #接口返回格式 Json: { \u0026#34;data\u0026#34;:[[]], \u0026#34;result\u0026#34;:\u0026#34;success\u0026#34;, \u0026#34;maxpg\u0026#34;:xxx, #最大页数 \u0026#34;pg\u0026#34;:xx, #当前页数 \u0026#34;casheflag\u0026#34;: xx, #如果是999说明命中缓存 \u0026#34;total\u0026#34;:xx, #总条数 } 注意: 只有post是分页的, 第一页是带标题的, 后面页不带标题 由于post方式会使用缓存进行分页,如命中缓存传参不会生效,小数据量请使用get方式请求 不要请求大数据量,大量数据请采用limit, offset传参方式进行分页\n不加密请求方式(简单但不安全) # GET 请求 #接口请求格式: url: /echart/dataset_api/?visitor=xxx\u0026amp;token=xxx\u0026amp;type=xxx 数据集名或id名 #接口返回格式 Json: { \u0026#34;data\u0026#34;:[[]], \u0026#34;result\u0026#34;:\u0026#34;success\u0026#34;, \u0026#34;maxpg\u0026#34;:1, \u0026#34;pg\u0026#34;:1 } POST请求 #接口请求格式: url: /echart/dataset_api/ data: { \u0026#34;visitor\u0026#34;:\u0026#34;xxx\u0026#34;, \u0026#34;token\u0026#34;:\u0026#34;xxx\u0026#34;, \u0026#34;type\u0026#34;:\u0026#34;xxx\u0026#34;, #数据集名或id名 \u0026#34;pagesize\u0026#34;:\u0026#34;xxx\u0026#34;, #每页数据条数 \u0026#34;pg\u0026#34;:\u0026#34;xxx\u0026#34;, #返回第几页 \u0026#34;param\u0026#34;:\u0026#39;{\u0026#34;xxx\u0026#34;:\u0026#34;xxxx\u0026#34;}\u0026#39; #参数可选 } #接口返回格式 Json: { \u0026#34;data\u0026#34;:[[]], \u0026#34;result\u0026#34;:\u0026#34;success\u0026#34;, \u0026#34;maxpg\u0026#34;:xxx, #最大页数 \u0026#34;pg\u0026#34;:xx, #当前页数 \u0026#34;casheflag\u0026#34;: xx, #如果是999说明命中缓存 \u0026#34;total\u0026#34;:xx, #总条数 } 注意: 只有post是分页的, 第一页是带标题的, 后面页不带标题 由于post方式会使用缓存, 小数据量建议你使用get方式请求 "},{"id":28,"href":"/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E5%BF%AB%E6%8D%B7%E5%BC%80%E5%8F%91/","title":"快捷开发","section":"模板开发","content":" 应用场景 # 专业化开发, 可将仪表盘显示和模板开发分屏开发 当你熟悉smartchart的基础开发后, 你可能会喜欢上现在这种方式 把你的可视化页面移动的显示器上吧, 进入\u0026quot;模板\u0026quot; 开发页面(上节介绍如何进入)\n方式一: 自动化DIV # 此方式当你新增数据集图形时会自动识别, 无需手动在模板在添加 采用此方式请不要采用点击模板上方菜单的图形新增 如需编辑图形或数据集可按如下方式: 方式二: 自由DIV # 你可以模板中按照常规的H5页面编辑, 只是在需要插入图形的地方插入即可(建意通过模板上方的图形新增) 开始畅快的开发\n点击图形即可新增一个图形,你甚至可以指定图表的位置, 完全和写html一样, 使用{{div_list.图表顺序号}} warning 注意请尽量避免删除DIV, 如果你中途有删除过div, 序号会不一样, 你可以在\u0026quot;布局\u0026quot;中重排序保持一致, 保持数据集编号从0开始\n如果使用自由布局, 请删除自动化DIV这一段代码 选中生成的图形代码段, 点击菜单栏的 数据集, 图形, 布局开发, 即可进入开发界面, 如果没有数据集, 会自动帮你新建 可以观看视屏, 视屏比较老和现在不太一样, 仅参考即可 自由开发模式视屏\n"},{"id":29,"href":"/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/","title":"快速开始","section":"1.基础操作","content":"开发前你可以先观看操作方面的 :exclamation: 操作视屏教程 :exclamation: 5.0变更操作视屏教程 :exclamation: 开发系列合集,关注作者持续更新\n由于版本的变更, 一些图标可能会有一些变化, 但位置无太大的变化\n安装Python环境 # 环境准备: 官方 最新Python下载链接,可以到 淘宝镜象下载,也可以下载 WINDOWS64位安装版, MAC电脑安装版\nWindow平台安装视屏介绍,注意: Windows安装Python时需选中\u0026quot;Add to Path\u0026quot; Linux安装可参考文档下方的部署说明, Linux安装说明\n安装SmartChart # 在Shell或CMD命令行执行\npip3 install smartchart 如果安装过程慢,建意使用 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple smartchart -U 升级方法: pip3 install smartchart -U (升级) 启动smartchart # 本地命令行启动: smartchart 如果你是服务器部署,远程访问,服务端启动方式: smartchart runserver 0.0.0.0:8000 --insecure --noreload 如果出现套接字,端口被占用, 可修改端口号启动, 如 smartchart runserver 0.0.0.0:8001 --insecure --noreload 一般本地启动后访问: http://127.0.0.1:8000 管理员帐号密码: admin/admin, 请及时更改密码\n如果忘记密码, 可以使用此命令重置 smartchart changepassword 用户名 鼠标滑动,点击如下图DEV图标, 切换为开发模式,这样才可以看到开发相关菜单,后打开demo页面 注意: 不切换是正常的用户报表浏览模式!! 仅管理员或开发人员能看到DEV菜单,用户只会有报表菜单页面\n尝试熟悉编辑菜单 尝试点开数据集查看SQL写法, 图形编辑器, 容器等 "},{"id":30,"href":"/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/DataV%E5%BA%94%E7%94%A8/","title":"Data V应用","section":"Vue相关","content":"需要在高级中加入“dv”:1,即可开启datav模式\n参考视屏 1. DataV基础应用 2. DataV翻盘器\nDataV配置方法文档: 图表\n"},{"id":31,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E5%85%B1%E4%BA%AB%E6%95%B0%E6%8D%AE%E9%9B%86/","title":"共享数据集","section":"2.数据集说明","content":" 应用场景 # 优化查询, 可一个数据集查询完所有数据进行分发 减少重复查询的浪费, 同一个数据只查询一次 使用方法 # 在数据开发界面点击按钮就可以切换成共享数据集/普通数据集 切换完成, 你会发现数据集消失,然后图标跑到菜单上面去了, 你可以在此修改你的查询 在”高级“ 中配置 这样1,2号图形都映射到了共享数据集的数据 你也可以在数据集中写多个SQL查询 在”高级“ 设定中进行数据映射 观察1,2 号图形的变化 "},{"id":32,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E6%95%B0%E6%8D%AE%E9%9B%86%E6%95%B0%E6%8D%AE%E5%88%B7%E6%96%B0/","title":"数据集数据刷新","section":"2.数据集说明","content":" 数据刷新设定方法 # smartchart提供非常精细的数据刷新功能,及内存加速功能 你可以在数据集开发界面,点击连接的图标,进行设定 定时刷新 # 你可以设定前端页面数据集向后端请求刷新的时间间隔,单位秒\n如果你发现定时刷新,数据并没有变化,可能原因是您数据的缓存时间设定大于定时刷新的时间\n数据集缓存加速(PRO) # smartchart专业版提供内存加速技术,对数据库仅需请求一次,之后都是毫秒级响应\n间隔时间刷新,单位分钟,如设定 间隔时间为0.5, 则如果下一次访问时间超过30秒, 即触发数据刷新 固定时点刷新, 如设定 间隔时间 为-1, 则固定时点刷新, 即访问的时间超过固定的时点时(如下图每天09:25), 触发数据刷新 强制刷新, 访问url加上\u0026amp;refresh=Y, 则强制刷新数据, 此刷新不会影响间隔或固定刷新的时间, 不会更新下次同步时间 后台触发强制刷新 (PRO) # 请参考文档 后台主动触发刷新\n"},{"id":33,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E6%BA%90/","title":"自定义数据源","section":"特殊数据源","content":"smartchart已实现大部分常用的数据源连接, 对于其它的, 您也可以使用python数据源进行处理 但是使用python数据源有一定的缺陷, 需要在dataset上写python代码, 不能复用 对于一些带连接信息的还需要重复写入 所以你还可以使用自定义数据源\n应用场景 # 未内置的数据源, 如需要使用sparkSQL, ES等 标准处理满足不了要求, 需要对数据进行预处理的情况 需要刷新时触发预警等自定义动作 需要自定义写入方法, 个性化查询需求, 甚至是实时爬取数据 使用方法 # 首先你需要新建一个python脚本文件, 如diy_conn.py 复制以下代码到这个文件, 然后编写你的自定义查询方法 def dataset(*args, **kwargs): \u0026#34;\u0026#34;\u0026#34; 返回查询数据集 :return: 二维数组或JSON字典 \u0026#34;\u0026#34;\u0026#34; sqlList = args[0] # 数据集编辑界面的输入已按分号拆分成数组 [sql1, sql2...] config = args[1] # 相关的配置字典{\u0026#39;host\u0026#39;,\u0026#39;port\u0026#39;,\u0026#39;user\u0026#39;,\u0026#39;password\u0026#39;,\u0026#39;db\u0026#39;} # 插入你的数据查询及处理代码, 生成result即可 result = [[]] return result def insert_dataset(*args, **kwargs): \u0026#34;\u0026#34;\u0026#34; 数据填表实现 \u0026#34;\u0026#34;\u0026#34; contents = args[0] # 传入的数据集二维数组格式 table = args[1] # 配置中的表名 config = args[3] # 相关的配置字典{\u0026#39;host\u0026#39;,\u0026#39;port\u0026#39;,\u0026#39;user\u0026#39;,\u0026#39;password\u0026#39;,\u0026#39;db\u0026#39;} # 插入你的写入数据逻辑代码 在任意的仪表盘开发界面中 \u0026ldquo;模板\u0026rdquo; \u0026ndash;\u0026gt; 点击上传图标, 将这个python文件上传即可 新建数据源, 驱动填写之前上传过的文件名, 比如我们这个是diy_conn, 其它参数按照你自定义的需求填写, 会自动传入你的自定义函数 之后你可以正常使用这个自定义数据源了\n如果你对python不熟悉, 也可按需定制, 你只需上传即可使用\n"},{"id":34,"href":"/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/Echarts%E7%BB%84%E4%BB%B6/","title":"Echarts组件","section":"3.图形开发","content":" 应用场景 # Smartchart提供了很多通用的图形,你可以在商店中直接使用 如果要个性化需要你进行自定义, 比如你可能需要在同一个图上展示柱形图和线性图\n开发前建意先观看视屏, 了解基础说明, 视屏有点老和现在界面不一样, 目前很多功能已经做成可视化配置, 理解过程即可, 具体以文档为准\nSmartchart数据库与图形的对话 Smartchart图形开发一 Smartchart图形开发二 获取原生echarts图形 # 首先我们在ECHART官网可能找一个你喜欢的图形, 如下简单柱形图链接: 打开我们可以看对应的option:\noption = { xAxis: { type: \u0026#39;category\u0026#39;, data: [\u0026#39;Mon\u0026#39;, \u0026#39;Tue\u0026#39;, \u0026#39;Wed\u0026#39;, \u0026#39;Thu\u0026#39;, \u0026#39;Fri\u0026#39;, \u0026#39;Sat\u0026#39;, \u0026#39;Sun\u0026#39;] }, yAxis: { type: \u0026#39;value\u0026#39; }, series: [{ data: [120, 200, 150, 80, 70, 110, 130], type: \u0026#39;bar\u0026#39; }] }; 转化为smartchart图形 # 复制到Smartchart图形编辑器, 点击\u0026quot;刀叉“ 图标(目前是魔法梆), 会自动进行初步转化 接下来我们就进行下改造, 请注意对比, 你只需照着复制即可\nlet dataset = __dataset__ //传入dataset let legend_label = ds_rowname(dataset) //可选, 自动获取legend let xlabel = dataset[0].splice(1) //x轴的标签列 dataset = ds_createMap(dataset) //转化成KV格式 //初始化series var series=[]; series.push({ data: dataset[legend_label[0]], //对应的第一个图列 type: \u0026#39;bar\u0026#39; }); series.push({ data: dataset[legend_label[1]], //对应的第二个图列 type: \u0026#39;line\u0026#39; }); option__name__ = { xAxis: { type: \u0026#39;category\u0026#39;, data: xlabel //X轴的标签 }, yAxis: { type: \u0026#39;value\u0026#39; }, series:series, }; charts.push(myChart__name__); 这样一个柱形+线性图就出来了 当然一个图形还有很多其它的元素, 比如标题, legend, 等等 更多option的配置项, 可以点击”!“号图标查看,你可以直接参考echarts的设定, 完全一样!!\n以下我们做了些简单的修改\noption__name__ = { title: { text: \u0026#39;自定义图示例\u0026#39;, left: \u0026#39;center\u0026#39; }, //定义标题的显示 tooltip: { trigger: \u0026#39;item\u0026#39;, formatter: \u0026#39;{a} \u0026lt;br/\u0026gt;{b} : {c}\u0026#39; //鼠标移动提示的格式 }, legend: { left: \u0026#39;left\u0026#39;, data: legend_label }, //定义图例的显示 xAxis: { type: \u0026#39;category\u0026#39;, data: xlabel }, //定义X轴的显示 yAxis: { type: \u0026#39;value\u0026#39; }, //图例定义 series:series, }; //关于自动化series, 可以参考以下代码 var series =[]; for (var i=1;i\u0026lt;dataset[0].length;i++){ series.push({type: \u0026#39;bar\u0026#39;}) } 是不是非常简单 Smartchart让你使用echarts没有门槛\nTIPS:\n如果你在图形编辑器中可以显示图形, 但是保存后在dashboard中无法, 首先检查下所有的mychart, option是否都有转化成带__name__, 如果都有,可能原因是你的代码中有mychart.setoption, 这样你可以在代码下方加上myChart__name__.setOption(option__name__);即可 如果你在开发界面的仪表盘能看到图形显示,但预览仪表盘时,不显示图形,一般都是因为你图形代码中js结束需加分号的地方没有添加导致的 "},{"id":35,"href":"/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E5%88%A0%E9%99%A4%E5%AE%B9%E5%99%A8/","title":"删除容器","section":"4.布局说明","content":"对于仪表盘中不再使用的数据集,你可能会考虑删除 首先smartchart推荐你不做删除,因为你可以保留他, 当你下次有新增数据集的需求时再拿出来 所以优先推荐使用隐藏的方法,你可以在数据集编辑界面找到他 如果你实在需要删除,可以在“报表”界面先中不需要容器后,选中删除,后保存\n"},{"id":36,"href":"/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E7%AD%9B%E9%80%89%E5%99%A8%E6%8C%87%E5%8D%97/","title":"筛选器指南","section":"5.参数及联动钻取","content":" 通用实现方式 # SMARTCHART实现筛选最简单的方法只需要配一个控件即可:\n建立一个筛选清单数据集, 自动获取筛选的列表,那么可以这么写\nSelect xxxx as city from tablename..... 则会生成一个如下的数据集: [[\u0026#39;city\u0026#39;],[选项1],[选项2],..] 良好的习惯, 先保存在数据集 然后在筛选器数据集中的js编辑器(图形编辑器),填下如下代码:\n//如要要美化, 自已加样式, 只要保证id=\u0026#34;id_select__name__\u0026#34; let dataset=__dataset__; let table =\u0026#39;\u0026lt;span\u0026gt;标题\u0026lt;/span\u0026gt;\u0026lt;select id=\u0026#34;id_select__name__\u0026#34;\u0026gt;\u0026#39;; table = table + \u0026#39;\u0026lt;option value=\u0026#34;\u0026#34; selected\u0026gt;----\u0026lt;/option\u0026gt;\u0026#39;; for(let i=1;i\u0026lt;dataset.length;i++){ table = table + \u0026#39;\u0026lt;option\u0026gt;\u0026#39; + dataset[i][0] + \u0026#39;\u0026lt;/option\u0026gt;\u0026#39;; } table = table + \u0026#39;\u0026lt;/select\u0026gt;\u0026lt;/div\u0026gt;\u0026lt;/div\u0026gt;\u0026#39; dom__name__.innerHTML=table; 这个时候你已经可以看到筛选器了 现在我们来设定联动效果\n假设需要被筛选的数据集的SQL这样写,数据集的序号是0\n//那么在需要被联动的数据集中,如使用pcity做为参数写查询, 比如: select xx, xx, xx from tablename /* where xx = \u0026#39;$pcity\u0026#39; */ 现在回到我们筛选器数据集,点击标题的位置, 我们需要使0号图形被筛选器联动, 设置如下即可: 然后你就可以看到筛选效果了, 非常的简单方便, 需要多个图形被联动, 只需用逗号分隔即可 比如: 0, 2, 4\n"},{"id":37,"href":"/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/%E5%8D%95%E9%A1%B5%E9%9D%A2%E5%B5%8C%E5%85%A5/","title":"单页面嵌入","section":"7.报表嵌入","content":" 嵌入报表 # 与单点登录类似, 单点登录用于直接登录到平台访问报表 但对于只嵌入报表, 用此方法更合适(需升级到5.3.11以上)\n嵌入的url: \u0026#39;/echart/?type={reportName}\u0026amp;visitor={visitor}\u0026amp;token={token}\u0026amp;stamp={stamp}\u0026#39; 参数说明: reportName: 报表名或报表ID visitor: 用户名(在smartchart平台中管理) stamp: 时间戳(1970年1月1日到生成时间的毫秒数) token: 采用sha1加密, token=SHA1(链接秘钥+stamp+visitor+reportName) 用户名和秘钥设定参考 数据服务API的config文件\n同时你需要将visitor加入到对应的报表权限查看访问\npython样列 # 以下为python版的url生成样列,你可以转化成你对应的开发语言\nimport time import hashlib import os SMART_CHART_URL = \u0026#39;http://127.0.0.1:8000\u0026#39; reportID = \u0026#39;报表ID\u0026#39; LOGIN_URL = SMART_CHART_URL + \u0026#39;/echart/?type={reportID}\u0026amp;visitor={visitor}\u0026amp;token={token}\u0026amp;stamp={stamp}\u0026#39; TOKEN = 链接秘钥 def get_smarturl(username, reportName): stamp = int(time.time() * 1000) visitor = username res = TOKEN + str(stamp) + visitor + reportID token = hashlib.sha1(res.encode(\u0026#39;utf-8\u0026#39;)).hexdigest() VISIT_DICT = { \u0026#34;visitor\u0026#34;: id, \u0026#34;stamp\u0026#34;: stamp, \u0026#34;token\u0026#34;: token, \u0026#34;reportID\u0026#34;: reportName } # 拼接好的url,直接访问 visit_url = LOGIN_URL.format(** VISIT_DICT) return visit_url 数据权限加密方法 # 如果你需要对用户进行一些数据权限控制, 可以避免用户越权访问 可以通过传入参数\u0026#34;id\u0026#34;, 如/echart/?type=xxx\u0026amp;visitor=xx\u0026amp;token=xx\u0026amp;stamp=xxxxx\u0026amp;id=xxx 后台会把这个id转化为参数名\u0026#34;_id\u0026#34;给对应的查询来进行数据权限控制 加密参数需把id加入, 例如id=john 那么 token=SHA1(链接秘钥+stamp+visitor+reportName+id) 全参数加密方法 # 如果需要将参数也加入认证中, 为保持兼容性, 我们把param这个参数改为params(具体参考参数文档中param的写法) \u0026#39;/echart/?type={reportName}\u0026amp;visitor={visitor}\u0026amp;token={token}\u0026amp;stamp={stamp}\u0026amp;params=xxxx\u0026#39; 加密参数把params加入, 例如params为 {\u0026#34;a\u0026#34;:\u0026#34;1\u0026#34;,\u0026#34;b\u0026#34;:2\u0026#34;} res = TOKEN + str(stamp) + visitor + reportName + \u0026#39;{\u0026#34;a\u0026#34;:\u0026#34;1\u0026#34;,\u0026#34;b\u0026#34;:2\u0026#34;}\u0026#39; "},{"id":38,"href":"/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E5%A4%87%E4%BB%BD%E6%81%A2%E5%A4%8D%E5%8F%8A%E7%89%88%E6%9C%AC/","title":"备份恢复及版本","section":"9.进阶开发 Pro","content":" 应用场景 # 本地仪表盘的备份恢复,版本管理 开发测试生产机之间的同步 具体使用方法请观看视屏 版本控制使用说明视屏\n使用方法 # 快速备份 # 可以在模板-\u0026gt;点击如下图标, 完成快速备份(注意会覆盖历史), 备份号统一为:SNAPSHOT 指定备份 # 你也可以在设定-\u0026gt;备份恢复 中进行按版本备份 查询备份 # 当不输入KEY值, 点击 本地备份时,可以查询此仪表盘已有的备份 备份恢复 # 备份可以在任意的仪表盘中进行恢复,如果是当前仪表盘, 仅输入KEY即可,比如:V01, 如果是跨仪表盘恢复, KEY需要带上仪表盘的编号如13_V01\n备份恢复参数说明 # 可以支持多种恢复模式, 只需要在KEY前面加上前缀即可, 如FORCEV01, FORCE13_V01.. FORCE: 删除自身所有数据集及高级设定,模板等,完全恢复备份 DATASET:只更新数据集及图形,模板,适用于测试上线正式 CHART: 只更新图形及模板,适用于前端变更上线\n跨服务器间同步 # 具体方法购买专业版本后提供\n使用以下流程, 可以使企业在使用最少资源做出最专业的可视化项目 # 前提条件: # 公司内部有技术人员(熟悉数据, 会写SQL) 服务器安装smartchart专业版 开发流程: # 由于公司内部人员是对业务最熟悉, 一般也都是后台数据管理相关的人员, 一般不太会有专职的前端开发和UI 所以数据开发人员可以使用smartchart开发仪表盘数据集, 并使用拖拽功能完成一个粗糙一点的框架和图形设计 一般情况下已经可以满足数据可视化的需求\n如果需要达到更专业的可视化效果, 可以外包前端/UI或在smartchart社区咨询, 由于需求变得非常简单 而前端开发又是一个通用技能, 可以使用非常廉价的费用获得最大的效果\n专业的事情专业来做, 才能达到效益最大化, 这是smartchart的设计理念 不管用什么工具, 在同等资源的投入下, 数据分析人员开发的可视化效果很难达到专业前端UI的效果 另外BI/数据开发人员的费用可是比前端高的, 也更稀缺\n前端开发只需本地安装smartchart, 而无需接触到公司数据库或数据接口, 开发完全解耦, 数据安全保障 smartchart可以将数据开发人员开发的仪表盘直接同步到前端开发的本地smartchart(仅会保留demo数据) 前端进行一些简单的美化工作即可, 无需对业务和数据进行理解, 花费的时间非常之少 前端开发完成后可以一键同步到smartchart服务端, 且可以只同步可视化部分 由于数据和展示是分离的, 所以数据开发和前端美化是可以同步进行 由于smartchart是一个平台化产品, 数据开发人员不熟悉前端也能在前端开发完成的基础上进行样式和图形的修改 "},{"id":39,"href":"/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E4%B8%8A%E4%BC%A0%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6/","title":"上传资源文件","section":"模板开发","content":"点击 模板开发 中的菜单即可上传你的资源文件, 如css, js, 图片等 视屏介绍说明 常规上传 # 可直接上传单个文件或zip包上传, 注意zip包中不可以有中文文件名 上传后会提示引用路径为/static/custom/仪表盘ID/\u0026hellip;\n上传为共享资源 # 可把资源打包为zip文件, 上传名以usr_开头, 如usr_tp.zip 上传完后不会有路径提示, 引用路径为/static/custom/usr_tp/\u0026hellip;.\n上传自定义数据源或jar包 # 上传后不会有路径提示\n"},{"id":40,"href":"/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E7%AC%AC%E4%B8%80%E4%B8%AA%E4%BB%AA%E8%A1%A8%E7%9B%98/","title":"第一个仪表盘","section":"1.基础操作","content":"由于版本的变更, 一些图标可能会有一些变化, 但位置无太大的变化\n新建仪表盘 # 在开发模式下,滑动“开发管理” -\u0026gt;\u0026ldquo;仪表盘\u0026rdquo;-\u0026gt; \u0026ldquo;新增Dashboard\u0026rdquo; 填写相应信息后点击“保存” 点击进入仪表盘开发, 注意点击 \u0026ldquo;E\u0026rdquo; 字!! 点击新增(注意拖拽布局功能为PRO版本, 后续免费版本中将无法使用), 如果你坚持使用免费版本功能, 请使用左边的蓝色颜色的新增, 具体布局方式参考 数据集编辑 # 点开“数据集” 输入以下SQL后,点击“保存并刷新”, 关闭数据集编辑界面 select H1 as heroname, sum(qty) as 出场数 from smartdemo2 group by H1 order by sum(qty) desc 图形编辑 # 点开“图形编辑” 点击“云图标”,第一次使用可能要你进行登记,按提示操作即可, 在商店中找到合适的图形点击,会自动复制到剪贴板 贴粘到图形编辑器后,点击保存, 关闭图形编辑框 拖拽布局 # 重复以上步骤,再新增一个, 你可以使用拖拽的方式, 移动到不同的地方 "},{"id":41,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E6%95%B0%E6%8D%AE%E9%9B%86%E6%87%92%E5%8A%A0%E8%BD%BD/","title":"数据集懒加载","section":"2.数据集说明","content":" 应用场景 # 类似于前后端开发, 后端会提供一些接口给前端, 但前端不一定需要在一打开页面就进行查询接口, 而是当有需要时再查询, 比如数据下载, 只有当用户有下载需求时再加载, 再比如有些与后台的数据联动, 我们只需要第一次加载时只显示第一层级, 点击时再加载其它层级\n开启数据集懒加载 # 你可以点击数据集的开发界面的\u0026quot;连接\u0026quot; 图标, 将\u0026quot;前端刷新(秒)\u0026quot; 修改为-1 这时当打开仪表盘时, 此数据集不会被加载\n应用 # 一般懒加载数据集主要是用来做数据查询的, 所以并不太需要显示图形, 所以我们主要是用于在图形中进行赋值操作 比如先在模板中定义一个全局变量: 然后修改图形编辑中的代码: 即刷新数据集时会进行变量赋值 如果您使用VUE, 那么会更方便, 你可以直接使用vapp.变量名 = dataset进行赋值\n查询数据 # 你可以随时手动触发数据集的刷新, 比如懒加载的数据集序号为0 你可以在你需要触发刷新的地方调用ds_refresh(0)即可刷新0号数据集并执行0号数据集中的JS代码\nTIPS 可以将懒加载的数据集同时转化为共享数据集(参考上文), 懒加载数据集将移到菜单栏显示\n"},{"id":42,"href":"/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/HTML%E7%BB%84%E4%BB%B6/","title":"Html组件","section":"3.图形开发","content":" 应用场景 # 输入控件,如输入框,筛选器,多选,按钮\u0026hellip; 显示组件, 文本, 图片, 视屏\u0026hellip; 表格组件 如果你还不熟悉html, 建意先花几分钟看下文档, 推荐 HTML基础 实际应用中有不熟悉的组件, 你都可以通过baidu搜索到, 如时间选择器 如何将html组件转化为smartchart组件 # 比如我们要实现一个有多选项和按钮的网页元素 从各大搜索平台上我们可以找到html的代码是:\n\u0026lt;label\u0026gt;\u0026lt;input type=\u0026#34;checkbox\u0026#34;\u0026gt;孙尚香\u0026lt;/label\u0026gt; ..... \u0026lt;button id=\u0026#39;id_select0\u0026#39;\u0026gt;提交\u0026lt;/button\u0026gt; 那么我们可以直接在图形编辑器写上\nlet dataset=__dataset__; let table = \u0026#39;\u0026#39;; table = `\u0026lt;label\u0026gt;\u0026lt;input type=\u0026#34;checkbox\u0026#34;\u0026gt;孙一香\u0026lt;/label\u0026gt; \u0026lt;label\u0026gt;\u0026lt;input type=\u0026#34;checkbox\u0026#34;\u0026gt;孙二香\u0026lt;/label\u0026gt; \u0026lt;label\u0026gt;\u0026lt;input type=\u0026#34;checkbox\u0026#34;\u0026gt;孙三香\u0026lt;/label\u0026gt;` table = table + \u0026#34;\u0026lt;button id=\u0026#39;id_select0\u0026#39;\u0026gt;提交\u0026lt;/button\u0026gt;\u0026#34; dom__name__.innerHTML=table; 但是由于我们是要通过传入的数据动态变化的,所以只需要做简单修改\nlet dataset=__dataset__; let table = \u0026#39;\u0026#39;; for (let i=1;i\u0026lt;dataset.length;i++){ table = `${table}\u0026lt;label\u0026gt;\u0026lt;input type=\u0026#34;checkbox\u0026#34;/\u0026gt;${dataset[i][0]}\u0026lt;/label\u0026gt; ` } table = table + \u0026#34;\u0026lt;button id=\u0026#39;id_select__name__\u0026#39;\u0026gt;提交\u0026lt;/button\u0026gt;\u0026#34; dom__name__.innerHTML=table; 所有html你都可以进行转化成smartchart组件, 你可以通过学习”万能表格系列视屏“ 来了解通用组件开发 第一波 第二波 第三波\n"},{"id":43,"href":"/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E7%BB%84%E4%BB%B6%E8%87%AA%E5%AE%9A%E4%B9%89%E8%81%94%E5%8A%A8/","title":"组件自定义联动","section":"5.参数及联动钻取","content":" 应用场景 # Smartchart对于单项筛选有通用的组件, 可以直接配置即可,但对于个性化的筛选,需要你进行一些简单的定制化,以下就针对多项筛选联动的需求来介绍如何定制化你的筛选联动效果 通过此例,你可以了解如何自定义任意的联动效果 样列参考 # 以我们内置的仪表盘为例,\n第一步,新建一个数据集\n第二步,在新的数据集中编写查询\nselect distinct H1 as heroname from smartdemo2 limit 10 第三步,编辑此数据集的图形,可复制以下代码\n//select distinct xx from tablename let dataset=__dataset__; let table = \u0026#39;\u0026#39;; for (let i=1;i\u0026lt;dataset.length;i++){ table = `${table}\u0026lt;label\u0026gt;\u0026lt;input name=\u0026#34;select__name__\u0026#34; type=\u0026#34;checkbox\u0026#34; value=\u0026#34;${dataset[i][0]}\u0026#34; /\u0026gt;${dataset[i][0]}\u0026lt;/label\u0026gt; `; } table = table + \u0026#34;\u0026lt;button id=\u0026#39;id_select__name__\u0026#39;\u0026gt;提交\u0026lt;/button\u0026gt;\u0026#34;; dom__name__.innerHTML=table; $(\u0026#39;#id_select__name__\u0026#39;).click( function(){ let res = []; $(\u0026#34;input[name=\u0026#39;select__name__\u0026#39;]:checked\u0026#34;).each(function(i){ res.push(\u0026#34;\u0026#39;\u0026#34; + $(this).val() + \u0026#34;\u0026#39;\u0026#34;); }); filter_param[\u0026#39;H1\u0026#39;] = res.toString(); //参数赋值 ds_refresh(1); //刷新1号图形 } ) 第四步,在你要联动刷新数据集中增加代码\nselect H1 as heroname, sum(qty) as 出场数 from smartdemo2 where 1=1 /* and H1 in ($H1) */ --此处来新增 group by H1 order by sum(qty) desc 这样就完成了,任何其他需求,都可以采用类似方法自定义\nTIPS 如果你这个点击的图形又可能被其它图形来点击联动, 你需要加入如下unbind否则会触发多次刷新 $(\u0026rsquo;#id_select__name__\u0026rsquo;).unbind(\u0026lsquo;click\u0026rsquo;).click(\u0026hellip;..\n如果你想取消联动,恢复到初始效果, 你需要删除参数, 如: delete filter_param[\u0026lsquo;H1\u0026rsquo;]\n"},{"id":44,"href":"/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%95%B0%E6%8D%AE%E4%B8%8B%E8%BD%BD/","title":"数据下载","section":"9.进阶开发 Pro","content":" 应用场景: # 需要要下载数据集的数据到本地\n样例: # 可在\u0026quot;模板\u0026quot; 中新建一个下载按钮, 并指定一个ID,如id_down1, 拖拽到你需要的位置 在任意一个图形开发或js代码段中加入以下代码即可\n$(\u0026#39;#id_down1\u0026#39;).click(()=\u0026gt;{ ds_download(\u0026#39;报表数据.csv\u0026#39;, dataset); }); 这样就可以实现点击按钮下载数据了\n仅需要录活使用ds_download这个函数, 你可以开发出非常个性化的下载功能\nds_download(name, dataset) 参数说明: name: 文件名称 dataset: 可以是二维数组也可以是字符串 "},{"id":45,"href":"/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E8%BE%B9%E6%A1%86%E4%B8%8E%E8%A3%85%E9%A5%B0/","title":"边框与装饰","section":"模板开发","content":" 观看视屏 # 边框与装饰说明1 边框与背景说明2\n边框/装饰/背景(购买专业版提供使用方法) # "},{"id":46,"href":"/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E5%88%9B%E5%BB%BA%E8%BF%9E%E6%8E%A5%E6%B1%A0/","title":"创建连接池","section":"1.基础操作","content":" 如何新增数据源 # 在开发模式下,点击“开发管理”-\u0026gt;数据源-\u0026gt;新增 配置连接池参数,注意数据库填写是备注中有写的名称 你可以通过新建一个数据集来测试连接池的连通性\n点击“保存” 后,回到数据集列表 点击如下图标\u0026quot;E\u0026quot;,进入数据集开发界面 在开发界面调试 安全控制 # 你可以在“参数”中设定安全控制,可避免用户误操作导致前后端卡死 limit: 可限定最大返回数据数量(但实际数据库查询无limit,需通过mode控制) mode: 控制用户查询行为,默认为模式1\n模式 说明 0 严格模式,每次查询向数据库都会增加limit,MPP类型数据库可能会排序失效 1 开发模式,仅调试查询数据库都会增加limit,调试时MPP类型数据库可能会排序失效,但不影响实际 2 宽松模式,查询都不带limit, 仅控制返回limit,需开发者避免大查询 支持的数据源: # 数据库 驱动填写 需安装 使用说明 Mysql mysql 默认支持 Mysql连接池 mysqlpool Sqlite sqlite 默认支持 连接地址填写绝对路径 API 任意 默认支持 参考数据集说明文档 EXCEL 任意 默认支持 参考数据集说明文档 SQL Server mssql 需安装 pip install pymssql SQL Server连接池 mssqlpool ORACLE oracle pip install cx_Oracle ORACLE连接池 oraclepool PostgreSql gp pip install psycopg2 GP gp pip install psycopg2 Impala impala pip install impyla Hive hive pip install impyla DB2 db2 pip install ibm_db 达梦 dm pip install dmPython Python python pip install pandas, openpyxl 参考数据集-\u0026gt;特殊数据源 Redis redis pip install redis 参考数据集-\u0026gt;特殊数据源 Mongodb mongodb pip install pymongo 参考数据集-\u0026gt;特殊数据源 Clickhouse clickhouse pip install clickhouse_driver Elasticsearch es pip install elasticsearch==7.13.0 参考数据集-\u0026gt;特殊数据源 Sqlalchemy sqlalchemy pip install sqlalchemy 参考数据集-\u0026gt;特殊数据源 JDBC jdbc pip install JayDeBeApi 参考数据集-\u0026gt;特殊数据源 自定义 自定义 用户自由定义 参考数据集-\u0026gt;特殊数据源 "},{"id":47,"href":"/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E8%B0%83%E8%AF%95%E6%97%A5%E5%BF%97/","title":"调试日志","section":"3.图形开发","content":" 关于页面日志查看 # 大家可能比较熟悉使用F12来查看网页日志, 但有的同学会觉得这不够方便, 所以 在5.1.11后, smartchart加入了可以页面直接显示日志的功能\n在仪表盘中显示 # 你只需要点击如下菜单, 即可切换是否显示日志 当在刷新页面或执行时, 日志将直接显示在右上角中, 而且还能显示出对应出错的图表序号 在图形中显示 # smartchart基于python的使用习惯, 重定义的专用的日志打印函数print 你可以在图形编辑器中使用些函数即可打印日志 比如看看鼠标放在echarts图上params, 在编辑界面和console中都能看到日志, 方便你进行调试 不仅仅这些, 你可能会想写太多打印日志, 上线了不好 smartchart已为你想到这些, 如果你在仪表盘中没有开启日志显示, print函数是不会打印任何日志\n有了仪表盘日志显示, 我们还能做更多的事情, 比如实时显示你拖拽的坐标, 让你精确定位 "},{"id":48,"href":"/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%95%B0%E6%8D%AE%E5%A1%AB%E6%8A%A5/","title":"数据填报","section":"9.进阶开发 Pro","content":" 应用场景 # 收集用户端录入的数据 前端处理好的数据回写到任意系统 制做问卷系统 埋点应用 使用方法 # 新建数据集设定,格式如下: 只用指定表名 dataset={ \u0026#34;table\u0026#34;:\u0026#34;表名\u0026#34; } 你也可以指定字段, 比如 dataset={ \u0026#34;table\u0026#34;:\u0026#34;表名(字段1, 字段2)\u0026#34; } 在\u0026quot;容器\u0026quot;管理, 取消这个数据集激活, 并记录下来此数据集的ID, 比如132 在\u0026quot;模板\u0026quot;中编写录入组件代码, 具体可参考视屏\n\u0026lt;h1 class=\u0026#34;smtdrag\u0026#34; id=\u0026#34;id_1648895680659\u0026#34;\u0026gt;数据填报\u0026lt;/h1\u0026gt; \u0026lt;div class=\u0026#34;smtdrag\u0026#34; id=\u0026#34;id_1648895855760\u0026#34;\u0026gt; \u0026lt;label\u0026gt;用户\u0026lt;/label\u0026gt;\u0026lt;input id=\u0026#34;id_visitor\u0026#34;\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div class=\u0026#34;smtdrag\u0026#34; id=\u0026#34;id_1648895859160\u0026#34;\u0026gt; \u0026lt;label\u0026gt;动作\u0026lt;/label\u0026gt;\u0026lt;input id=\u0026#34;id_action\u0026#34;\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div class=\u0026#34;smtdrag\u0026#34; id=\u0026#34;id_1648895956207\u0026#34;\u0026gt; \u0026lt;button id=\u0026#34;idbtn01\u0026#34;\u0026gt;提交\u0026lt;/button\u0026gt; \u0026lt;/div\u0026gt; 在\u0026quot;模板\u0026quot; 中编写JS代码 $(\u0026#39;#idbtn01\u0026#39;).click(function(){ let visitor = $(\u0026#39;#id_visitor\u0026#39;).val(); let action = $(\u0026#39;#id_action\u0026#39;).val(); let dataset = [visitor, action]; print(ds_save(132, dataset)); //132数据集ID, dataset要写入的数据 }) 更多关于写入数据库的数据集格式说明 # 只写入一行数据, 样列如下: dataset = [\u0026#39;a\u0026#39;,\u0026#39;b\u0026#39;] 同时写入多行数据: dataset = [[], [\u0026#39;a1\u0026#39;,\u0026#39;b1\u0026#39;],[\u0026#39;a2\u0026#39;, \u0026#39;b2]] 如果需要自动记录写入者用户名: dataset = [\u0026#39;$username\u0026#39;, \u0026#39;b\u0026#39;] mongodb写入方式\nds_save(419, {\u0026#34;h1\u0026#34;:123, \u0026#34;h2\u0026#34;:\u0026#34;bb\u0026#34;}); ds_save(419, [[],{\u0026#34;h1\u0026#34;:123, \u0026#34;h2\u0026#34;:\u0026#34;aa\u0026#34;},{\u0026#34;h1\u0026#34;:1234, \u0026#34;h2\u0026#34;:\u0026#34;dd\u0026#34;}]); "},{"id":49,"href":"/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E6%A0%B7%E5%BC%8F%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/","title":"样式快速上手","section":"模板开发","content":" 样式操作: # 要想大屏做得好, 样式要写得好 可是我们不是前端的同学也能写样式么 当然可以, 相信你观看完以下视屏即可\n快速上手样式开发\n基础样式入门: # CSS介绍 # CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素。 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染)。\nCSS语法 # CSS实例 每个CSS样式由两个组成部分:选择器和声明。声明又包括属性和属性值。每个声明之后用分号结束。 CSS注释\n/*这是注释*/ 注释是代码之母, smartchart编辑中你可以使用CTRL+/快捷注释\nCSS的几种引入方式 行内样式 行内式是在标记的style属性中设定CSS样式。不推荐大规模使用。\n\u0026lt;p style=\u0026#34;color: red\u0026#34;\u0026gt;Hello world.\u0026lt;/p\u0026gt; 内部样式 嵌入式是将CSS样式集中写在网页的标签对的标签对中。格式如下:\n\u0026lt;head\u0026gt; \u0026lt;style\u0026gt; p{ background-color: #2b99ff; } \u0026lt;/style\u0026gt; \u0026lt;/head\u0026gt; 外部样式 外部样式就是将css写在一个单独的文件中\n\u0026lt;link href=\u0026#34;mystyle.css\u0026#34; rel=\u0026#34;stylesheet\u0026#34; type=\u0026#34;text/css\u0026#34;/\u0026gt; CSS选择器 # 基本选择器\n元素选择器 p {color: \u0026#34;red\u0026#34;;} ID选择器 #i1 { background-color: red; } 类选择器 .c1 { font-size: 14px; } p .c1 { color: red; } 注意: 样式类名不要用数字开头(有的浏览器不认)。 标签中的class属性如果有多个,要用空格分隔。\n通用选择器\n* { color: white; } 组合选择器\n后代选择器 /*li内部的a标签设置字体颜色*/ li a { color: green; } 儿子选择器 /*选择所有父级是 \u0026lt;div\u0026gt; 元素的 \u0026lt;p\u0026gt; 元素*/ div\u0026gt;p { font-family: \u0026#34;Arial Black\u0026#34;, arial-black, cursive; } 毗邻选择器 /*选择所有紧接着\u0026lt;div\u0026gt;元素之后的\u0026lt;p\u0026gt;元素*/ div+p { margin: 5px; } 弟弟选择器 /*i1后面所有的兄弟p标签*/ #i1~p { border: 2px solid royalblue; } 属性选择器 /*用于选取带有指定属性的元素。*/ p[title] { color: red; } /*用于选取带有指定属性和值的元素。*/ p[title=\u0026#34;213\u0026#34;] { color: green; } /*找到所有title属性以hello开头的元素*/ [title^=\u0026#34;hello\u0026#34;] { color: red; } /*找到所有title属性以hello结尾的元素*/ [title$=\u0026#34;hello\u0026#34;] { color: yellow; } /*找到所有title属性中包含(字符串包含)hello的元素*/ [title*=\u0026#34;hello\u0026#34;] { color: red; } /*找到所有title属性(有多个值或值以空格分割)中有一个值为hello的元素:*/ [title~=\u0026#34;hello\u0026#34;] { color: green; } 分组和嵌套\n分组 当多个元素的样式相同的时候,我们没有必要重复地为每个元素都设置样式,我们可以通过在多个选择器之间使用逗号分隔的分组选择器来统一设置元素样式。 例如: div, p { color: red; } 上面的代码为div标签和p标签统一设置字体为红色。 嵌套 多种选择器可以混合起来使用,比如:.c1类内部所有p标签设置字体颜色为红色。 .c1 p { color: red; } 伪类选择器\n/* 未访问的链接 */ a:link { color: #FF0000 } /* 鼠标移动到链接上 */ a:hover { color: #FF00FF } /* 选定的链接 */ a:active { color: #0000FF } /* 已访问的链接 */ a:visited { color: #00FF00 } /*input输入框获取焦点时样式*/ input:focus { outline: none; background-color: #eee; } 伪元素选择器\nfirst-letter 常用的给首字母设置特殊样式: p:first-letter { font-size: 48px; color: red; } before /*在每个\u0026lt;p\u0026gt;元素之前插入内容*/ p:before { content:\u0026#34;*\u0026#34;; color:red; } after /*在每个\u0026lt;p\u0026gt;元素之后插入内容*/ p:after { content:\u0026#34;[?]\u0026#34;; color:blue; } before和after多用于清除浮动。 选择器的优先级 # CSS继承 继承是CSS的一个主要特征,它是依赖于祖先-后代的关系的。继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以应用于它的后代。例如一个body定义了的字体颜色值也会应用到段落的文本中。 body { color: red; } 此时页面上所有标签都会继承body的字体颜色。然而CSS继承性的权重是非常低的,是比普通元素的权重还要低的0。 我们只要给对应的标签设置字体颜色就可覆盖掉它继承的样式。 p { color: green; } 选择器的优先级 我们上面学了很多的选择器,也就是说在一个HTML页面中有很多种方式找到一个元素并且为其设置样式,那浏览器根据什么来决定应该应用哪个样式呢? 其实是按照不同选择器的权重来决定的,具体的选择器权重计算方式如下图: 除此之外还可以通过添加 !important方式来强制让样式生效,但并不推荐使用。 因为如果过多的使用!important会使样式文件混乱不易维护。 万不得已可以使用!important\nCSS属性相关 # 宽和高\nwidth属性可以为元素设置宽度。 height属性可以为元素设置高度。 块级标签才能设置宽度,内联标签的宽度由内容来决定。 字体属性\n文字字体 font-family可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体,则会尝试下一个。浏览器会使用它可识别的第一个值。 简单实例: body { font-family: \u0026#34;Microsoft Yahei\u0026#34;, \u0026#34;微软雅黑\u0026#34;, \u0026#34;Arial\u0026#34;, sans-serif } 字体大小 p { font-size: 14px; } 如果设置成inherit表示继承父元素的字体大小值。 字重(粗细) font-weight用来设置字体的字重(粗细)。 值描述normal默认值,标准粗细bold粗体bolder更粗lighter更细100~900设置具体粗细,400等同于normal,而700等同于boldinherit继承父元素字体的粗细值 文本颜色 color 颜色是通过CSS最经常的指定: 十六进制值 - 如: #FF0000 一个RGB值 - 如: RGB(255,0,0) 颜色的名称 - 如: red 还有rgba(255,0,0,0.3),第四个值为alpha, 指定了色彩的透明度/不透明度,它的范围为0.0到1.0之间。 文字属性\n文字对齐 text-align 属性规定元素中的文本的水平对齐方式。 值描述left左边对齐 默认值right右对齐center居中对齐justify两端对齐 文字装饰 text-decoration 属性用来给文字添加特殊效果。 值描述none默认。定义标准的文本。underline定义文本下的一条线。overline定义文本上的一条线。line-through定义穿过文本下的一条线。inherit继承父元素的text-decoration属性的值。 常用的为去掉a标签默认的自划线: a { text-decoration: none; } 首行缩进 将段落的第一行缩进 32像素: p { text-indent: 32px; } 背景属性\n/*背景颜色*/ background-color: red; /*背景图片*/ background-image: url(\u0026#39;1.jpg\u0026#39;); /* 背景重复 repeat(默认):背景图片平铺排满整个网页 repeat-x:背景图片只在水平方向上平铺 repeat-y:背景图片只在垂直方向上平铺 no-repeat:背景图片不平铺 */ background-repeat: no-repeat; /*背景位置*/ background-position: left top; /*background-position: 200px 200px;*/ 支持简写: background:#336699 url(\u0026#39;1.png\u0026#39;) no-repeat left top; 使用背景图片的一个常见案例就是很多网站会把很多小图标放在一张图片上,然后根据位置去显示图片。减少频繁的图片请求。 边框\n边框属性 border-width border-style border-color #i1 { border-width: 2px; border-style: solid; border-color: red; } 通常使用简写方式: #i1 { border: 2px solid red; } 边框样式 值描述none无边框。dotted点状虚线边框。dashed矩形虚线边框。solid实线边框。 除了可以统一设置边框外还可以单独为某一个边框设置样式,如下所示: #i1 { border-top-style:dotted; border-top-color: red; border-right-style:solid; border-bottom-style:dotted; border-left-style:none; } border-radius 用这个属性能实现圆角边框的效果。 将border-radius设置为长或高的一半即可得到一个圆形。 display属性\n用于控制HTML元素的显示效果。 值意义display:\u0026#34;none\u0026#34;HTML文档中元素存在,但是在浏览器中不显示。一般用于配合JavaScript代码使用。display:\u0026#34;block\u0026#34;默认占满整个页面宽度,如果设置了指定宽度,则会用margin填充剩下的部分。display:\u0026#34;inline\u0026#34;按行内元素显示,此时再设置元素的width、height、margin-top、margin-bottom和float属性都不会有什么影响。display:\u0026#34;inline-block\u0026#34;使元素同时具有行内元素和块级元素的特点。 display:\u0026#34;none\u0026#34;与visibility:hidden的区别: visibility:hidden: 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。 display:none: 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。 CSS盒子模型\nmargin: 用于控制元素与元素之间的距离;margin的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的。 padding: 用于控制内容与边框之间的距离; Border(边框): 围绕在内边距和内容外的边框。 Content(内容): 盒子的内容,显示文本和图像。 margin外边距 .margin-test { margin-top:5px; margin-right:10px; margin-bottom:15px; margin-left:20px; } 推荐使用简写: .margin-test { margin: 5px 10px 15px 20px; } 顺序:上右下左 常见居中: .mycenter { margin: 0 auto; } padding内填充 .padding-test { padding-top: 5px; padding-right: 10px; padding-bottom: 15px; padding-left: 20px; } 推荐使用简写: .padding-test { padding: 5px 10px 15px 20px; } 顺序:上右下左 补充padding的常用简写方式: 提供一个,用于四边; 提供两个,第一个用于上-下,第二个用于左-右; 如果提供三个,第一个用于上,第二个用于左-右,第三个用于下; 提供四个参数值,将按上-右-下-左的顺序作用于四边; float\n在 CSS 中,任何元素都可以浮动。 浮动元素会生成一个块级框,而不论它本身是何种元素。 关于浮动的两个特点: 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。 由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。 三种取值 left:向左浮动 right:向右浮动 none:默认值,不浮动 overflow溢出属性\n值描述visible默认值。内容不会被修剪,会呈现在元素框之外。hidden内容会被修剪,并且其余内容是不可见的。scroll内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。auto如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。inherit规定应该从父元素继承 overflow 属性的值。 overflow(水平和垂直均设置) overflow-x(设置水平方向) overflow-y(设置垂直方向) 定位(position)\nstatic static 默认值,无定位,不能当作绝对定位的参照物,并且设置标签对象的left、top等值是不起作用的的。 relative(相对定位) 相对定位是相对于该元素在文档流中的原始位置,即以自己原始位置为参照物。有趣的是,即使设定了元素的相对定位以及偏移值,元素还占有着原来的位置,即占据文档流空间。对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置。而其层叠通过z-index属性定义。 注意:position:relative的一个主要用法:方便绝对定位元素找到参照物。 absolute(绝对定位) 定义:设置为绝对定位的元素框从文档流完全删除,并相对于最近的已定位祖先元素定位,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块(即body元素)。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。 重点:如果父级设置了position属性,例如position:relative;,那么子元素就会以父级的左上角为原始点进行定位。这样能很好的解决自适应网站的标签偏离问题,即父级为自适应的,那我子元素就设置position:absolute;父元素设置position:relative;,然后Top、Right、Bottom、Left用百分比宽度表示。 另外,对象脱离正常文档流,使用top,right,bottom,left等属性进行绝对定位。而其层叠通过z-index属性定义。 fixed(固定) fixed:对象脱离正常文档流,使用top,right,bottom,left等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动。而其层叠通过z-index属性 定义。 注意点: 一个元素若设置了 position:absolute | fixed; 则该元素就不能设置float。这 是一个常识性的知识点,因为这是两个不同的流,一个是浮动流,另一个是“定位流”。但是 relative 却可以。因为它原本所占的空间仍然占据文档流。 在理论上,被设置为fixed的元素会被定位于浏览器窗口的一个指定坐标,不论窗口是否滚动,它都会固定在这个位置。 z-index\n#i2 { z-index: 999; } 设置对象的层叠顺序。 z-index 值表示谁压着谁,数值大的压盖住数值小的, 只有定位了的元素,才能有z-index,也就是说,不管相对定位,绝对定位,固定定位,都可以使用z-index,而浮动元素不能使用z-index z-index值没有单位,就是一个正整数,默认的z-index值为0如果大家都没有z-index值,或者z-index值一样,那么谁写在HTML后面,谁在上面压着别人,定位了元素,永远压住没有定位的元素。 从父现象:父亲怂了,儿子再牛逼也没用 opacity 用来定义透明效果。取值范围是0~1,0是完全透明,1是完全不透明。\n"},{"id":50,"href":"/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E5%BA%94%E7%94%A8%E6%A8%A1%E6%9D%BF/","title":"应用模板","section":"1.基础操作","content":" 应用场景 # 你可以快速应用开发好的模板,极大的提高你的开发和学习效率\n应用本地模板 # 你可以快速应用本地备份的模板, 我们内置了一个 通用的数据查询和下载模板 , 你可以尝试\n新建一个全新的dashboard, 不要放任何报表, 点击保存且编辑后, 下方可以看到下载链接, 然后点击下载即可直接应用 输入\u0026quot;01_SMARTCHART\u0026quot;, 点击本地恢复即可 更多本地备份恢复参考\n应用商店模板 # 方法同上\u0026quot;应用本地模板\u0026quot;, 注意应用商店模板为收费增值服务\n你可以点击 模板查询, 查看相应的价格后在 TB购买即可获取下载密钥 如果是全新的仪表盘, 直接输入下载密钥, 点击\u0026quot; 商城下载 \u0026ldquo;即可 如果仪表盘中有数据集且不再需要, 可以在下载密钥前面加上FORCE即可自动清空已有数据集后自动下载 注意模板太廉价,购买后并没有咨询服务,请务必自行了解如何使用\n资源文件放置路径 有些资源会离线打包提供给你, 只需上传即可, 上传方法参考\n如果不清楚可以观看视屏说明 使用方法可参考视屏: 一键应用模板\n"},{"id":51,"href":"/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E5%90%8E%E5%8F%B0API%E5%88%B7%E6%96%B0/","title":"后台 Api刷新","section":"9.进阶开发 Pro","content":" 应用场景 # 有ETL流程,需要等待后台数据刷新完成后,再触发仪表盘的刷新,数据未完成刷新,仪表盘不刷新 针对有一些耗时的查询, 虽然smartchart有缓存加速, 但是在第一次刷新时可能不能达到极速 用户需要随时都能体验到极速的打开效果 使用后台API刷新,建意将仪表盘中数据集的缓存时间设置长一些,比如2天(2880分钟)\n后台数据主动刷新接口 # (购买专业版本后支持)\n你需要在setting.py中设定API_TOKEN API_TOKEN = \u0026#39;xxxxxxxx\u0026#39; 找到你要刷新的仪表盘编码, 你可以在打开的仪表盘url上面找到这个type id\n后台访问如下api url即可\nhttp://ip:端口/echart/refresh_ds/?type=你的报表ID\u0026amp;token=你设定的API_TOKEN 关于定时刷新 # 为保持产品的轻量化及坚持专业的产品做专业的事情, 归一化统一化的架构设计, 我们不会集成相关调度系统, 一般我们推荐使用您自有的调度工具或平台, 如airflow, 我们也有相关的配套产品\n如果您仅仅是简单应用, 也无需使用专用调度来增加运维复杂度, 可以使用linux自带的即可\n新建一个sh文件, 假设目录在/data/smartchart vim refresh_smartchart.sh 写入需要刷新的脚本 echo start refresh $(date \u0026#34;+%Y-%m-%d %H:%M:%S\u0026#34;) curl http://ip:端口/echart/?type=你的报表ID1\u0026amp;token=你设定的API_TOKEN curl http://ip:端口/echart/?type=你的报表ID2\u0026amp;token=你设定的API_TOKEN echo end refresh $(date \u0026#34;+%Y-%m-%d %H:%M:%S\u0026#34;) 如果你的网址是https, 可如下方法使用curl\ncurl -k --insecure \u0026#34;https://www.baidu.com” 修改为可执行文件 chmod 775 refresh_smartchart.sh 使用crontab来定时执行 # 编辑crontab crontab -e # 比如需要每天晚上5点10分执行 10 5 * * * /data/smartchart/refresh_smartchart.sh \u0026gt;\u0026gt;/data/smartchart/log.txt 2\u0026gt;\u0026amp;1 # 定时参数说明 * * * * * - - - - - | | | | | | | | | +----- 星期中星期几 (0 - 6) (星期天 为0) | | | +---------- 月份 (1 - 12) | | +--------------- 一个月中的第几天 (1 - 31) | +-------------------- 小时 (0 - 23) +------------------------- 分钟 (0 - 59) "},{"id":52,"href":"/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/IDE%E5%BC%80%E5%8F%91%E6%A8%A1%E5%BC%8F/","title":"ID E开发模式","section":"模板开发","content":" 应用场景 # 如果您是一个资深的前端开发者 可能不需要使用smartchart组件,仅需使用到数据集 你希望在IDE(如VS code)中开发然后打包发布 非专用人士,请不要尝试这种方式 开发方式 # 在模板中使用basesimple 此时smartchart不会引用任何echarts, vue组件, 完全由您自已控制引入 , 你可以直接采用以下代码替换模板中的代码\n{% extends \u0026#34;echart/basesimple.html\u0026#34; %}{% block head %} \u0026lt;!--head区域的引用或代码--\u0026gt; {% endblock %}{% block body %} \u0026lt;!--在此区间粘入body相关代码--\u0026gt; {% endblock %}{% block javascript %} \u0026lt;!--粘入js相关引用或代码--\u0026gt; {% endblock %}{% block footer %}{% endblock %} 如何使用数据集接口 # 按照自由开发模式中, 新增一个图形, 然后修改数据集为通用且懒加载数据集 修改对应图形编辑器, 使数据赋值给一个全局变量或vue 在IDE中开发 # 由于你在开发中仅需要用到filter_param及ds_refresh, 建意新建一个js文件, 文件内容:\n//下面定义全局变量, 发布时需放入smartchart模板的script标签中 var mypublicdata1 = xxxx; ..... //以下为辅助方法, 发布时, 无需放入smartchart模板中 var filter_param = {}; function ds_refresh(num){ if(num === 0){你对应的图形中赋值代码,调试代码} if(num === 1){....} ...... } 然后将这个js文件在你的项目中引用调试使用\n如何部署到smartchart # 打包完成后会有相应的css, js 和index.html文件, 将index.html中的代码复制贴粘到对应的模板区域中即可\n上传css,js 修改css, js 相关引用路径 去除之前定义的js辅助开发文件引用, 如果有定义全局变量, 将全局变量定义复制到模板js区域 "},{"id":53,"href":"/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86/","title":"权限管理","section":"1.基础操作","content":"目前的权限管理,大概如下:\n开发者权限 # 你点击DEV后, 才会出进入后台的图标, 在后台中你可以控制用户的开发权限 新建用户默认是没有开发权限的, 在首页也看不到任何开发相关的菜单\n如果你需要给用户开发权限, 需要设定如下: Dashboard报表查看权限 # 你可以在 仪表盘设定 中进行权限管理 全局编辑或查看权限 由平台用户组或用户权限配置, 如果用户需要查看报表, 需先分配到有查看权限的组中, 默认加入集团组可以具备查看权限 在dashboard设定页面中可针对人员来分配 编辑权限, 有编辑权限同时也会满足查看权限 在dashboard设定页面中可针对组来分配 查看权限 未上线 的报表, 只会在编辑页面中出现, 可以预览 公开 的报表, 如没有分配编辑权限,在编辑页面中不出现, 但在查看页面所有人可见,你可以共享给所有人,访问url: http://xxxxx:8000/echart?type=你的仪表盘名称 手机端过滤, 你可以通过 \u0026ldquo;全端\u0026rdquo;,\u0026ldquo;电脑端\u0026rdquo; 选项实现, 当勾选 \u0026ldquo;全端\u0026rdquo; 时, 手机端电脑端都会显示, 当未勾选 全端, 也不勾选 电脑端时, 只会在 手机显示, 反之只在电脑端显示 总结 # 在编辑入口只会显示 有按人员分配编辑权限的报表清单, 在查看入口中会显示已启用且上线且(已分配查看权限或编辑权限或公开)的报表 所以你可以么这么搭配: 对于通用报表可以所有人访问的, 但你又不想让他在清单中显示, 你可以将他设为公开但不上线 对于开发中的报表, 你可以设为未上线\n"},{"id":54,"href":"/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/webSocket%E6%96%B9%E5%BC%8F/","title":"Web Socket方式","section":"9.进阶开发 Pro","content":" 应用场景 # 对于实时程度要求比较高的情况下, 如果你后端已有实现websocket的接口, smartchart也可以很方便的接入 参考以下步骤即可\n在\u0026quot;模板\u0026quot;中定义一个全局变量, 如ws_data 编写连接和接收代码段逻辑 在接收代码段加入ds_refresh, 如要刷新0号图形, 则加入ds_refresh(0) 在\u0026quot;高级\u0026quot;设定中加入共享数据集设定, 把ws_data映射到0号图形即可 代码段参考 # let ws_data = [[\u0026#39;初始化\u0026#39;,\u0026#39;V\u0026#39;],[\u0026#39;A\u0026#39;,\u0026#39;2\u0026#39;]]; let ws = null; if(\u0026#39;webSocket\u0026#39; in window){ print(\u0026#39;支持webSocket\u0026#39;); ws = new webSocket(\u0026#39;ws://127.0.0.1:2222/abc\u0026#39;); //连接成功 ws.onopen = function(){ print(\u0026#39;ws连接成功\u0026#39;); } //接收消息 ws.onmessage = function(evt){ ws_data = evt.data; ds_refresh(0); } } else{ print(\u0026#39;浏览器不支持ws\u0026#39;) } "},{"id":55,"href":"/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E5%8A%A8%E7%94%BB%E6%95%88%E6%9E%9C/","title":"动画效果","section":"模板开发","content":" 自动旋转效果 # 在\u0026quot;模板\u0026quot;的style中加入以下样式\n@-webkit-keyframes spin { from {-webkit-transform: rotate(0deg);} to {-webkit-transform: rotate(360deg);} } @keyframes spin { from {transform: rotate(0deg);} to {transform: rotate(360deg);} } .Rotate { -webkit-animation: spin 3s linear 3s 5 alternate; animation: spin 3s linear infinite; } 如需任意组件自动旋转, 只需将Rotate这个类给到这个组件即可, 比如图形\n\u0026lt;img class=\u0026#34;Rotate\u0026#34; src=\u0026#34;https://www.smartchart.cn/media/editor/smc162_20220407150432307320.png\u0026#34;\u0026gt; 组件变形 # 常见变形沿着Y轴, 其它变形方式自已搜索, 比如需要0号,1号图形变形的样式写法\n#container_0{transform:skewY(10deg);} #container_1{transform:skewY(-10deg);} 效果如下: "},{"id":56,"href":"/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E7%BC%96%E8%BE%91%E5%99%A8%E5%BF%AB%E6%8D%B7%E9%94%AE/","title":"编辑器快捷键","section":"模板开发","content":" 功能 WIN MAC 说明 显示菜单 CTRL-, Command-, 折叠其它 Alt-0 Command-Option-0 查找替换 Ctrl-F Command-F 重复选中 Ctrl-D Command-D 5.6以前的版本是删除所选 注释选中 Ctrl-/ Command-/ 取消修改 Ctrl-z Command-z 重新执行 Ctrl-y Command-y 选中大写 Ctrl-U Ctrl-U 选中小写 SHIFT-Ctrl-U SHIFT-Ctrl-U "},{"id":57,"href":"/docs/10.%E5%85%B6%E5%AE%83/FAQ/","title":"Faq","section":"10.其它","content":" FAQ # 启动显示 以一种访问权限不允许的方式做了一个访问套接字的尝试 出现这种情况在Windows中很常见,就是端口被占用,酷狗音乐会占用8000端口 使用netstat -ano|findstr 8000 找到进程号 使用taskkill /pid 进程号 /F\n输入命令找不到smartchart 检查你是否有安装多个python环境出现环境变量冲突,请卸载一个或取消一个环境变量\n如法安装pip 请确认在安装python时,有没有加入环境变量, 可自行加入, 或卸载重装\n关于mac版本安装后的各种问题 目前来看最大的可能是,/Library/Developer/CommandLineTools这个目录下有python3,应该是在某一个版本的Xcode command line tools安装时生成的 可以先把python3全部卸载,再重新按说明安装,命令行中输入python3 和 pip3, 找不到command时才说明完全卸载成功\nsudo rm -rf /Library/Developer/CommandLineTools sudo rm -f /usr/bin/python3 如果密码忘记了怎么办 命令行输入smartchart changepassword 你的用户名\n"},{"id":58,"href":"/docs/10.%E5%85%B6%E5%AE%83/%E8%AF%95%E7%94%A8%E6%BF%80%E6%B4%BB%E8%AF%B4%E6%98%8E/","title":"试用激活说明","section":"10.其它","content":"试用专业版激活码需要每3天激活一次,激活方式: 由于开发很忙, 文档可能会写得有不尽之处, 多多包涵\n"},{"id":59,"href":"/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/SQLite3%E7%89%88%E6%9C%AC%E9%94%99%E8%AF%AF/","title":"Sqlite3版本错误","section":"Linux","content":"SQLite3版本错误 在部分操作系统下(比如CentOS 7)使用SQLite3数据库运行会出现如下的错误提示:\ndjango.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17). 这表明操作系统自带的sqlite3版本过低,需要将系统的sqlite3进行升级。\n以下是一种方法,来自于 StackOverlow:\n1、下载新版本的SQLite3\nwget https://www.sqlite.org/2019/sqlite-autoconf-3290000.tar.gz 2、解压文件\ntar zxvf sqlite-autoconf-3290000.tar.gz 3、进行解压后的目录\ncd sqlite-autoconf-3290000 4、配置安装目录\n./configure --prefix=$HOME/opt/sqlite 5、编译安装\nmake \u0026amp;\u0026amp; make install 6、指定环境变量\nexport PATH=$HOME/opt/sqlite/bin:$PATH export LD_LIBRARY_PATH=$HOME/opt/sqlite/lib export LD_RUN_PATH=$HOME/opt/sqlite/lib 完成之后可以运行sqlite3 \u0026ndash;version 命令来查看当前的SQLite3版本。\n"},{"id":60,"href":"/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/%E7%94%9F%E4%BA%A7%E9%83%A8%E7%BD%B2/","title":"生产部署","section":"Linux","content":"购买专业版本,提供企业生产部署及无网离线部署方案\n"},{"id":61,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/Elasticsearch%E6%95%B0%E6%8D%AE%E6%BA%90/","title":"Elasticsearch数据源","section":"特殊数据源","content":" 数据源配置方法 # 查询方法 # 更多查询方法参考 # 模糊查询 body = { \u0026#39;query\u0026#39;: { # 查询命令 \u0026#39;match\u0026#39;: { # 查询方法:模糊查询(会被分词)。比如此代码,会查到只包含:“我爱你”, “中国”的内容 \u0026#39;name\u0026#39;: \u0026#39;刘\u0026#39; } }, \u0026#39;size\u0026#39;: 20 # 不指定默认是10,最大值不超过10000(可以修改,但是同时会增加数据库压力) } term,精准单值查询 # 注:此方法只能查询一个字段,且只能指定一个值。类似于mysql中的where ziduan=\u0026#39;a\u0026#39; body ={ \u0026#39;query\u0026#39;:{ \u0026#39;term\u0026#39;:{ \u0026#39;ziduan1.keyword\u0026#39;: \u0026#39;刘婵\u0026#39; # 查询内容等于“我爱你中国的”的数据。查询中文,在字段后面需要加上.keyword # \u0026#39;ziduan2\u0026#39;: \u0026#39;liuchan\u0026#39; } } } erms,精准多值查询 #此方法只能查询一个字段,但可以同时指定多个值。类似于mysql中的where ziduan in (a, b,c...) body ={ \u0026#34;query\u0026#34;:{ \u0026#34;terms\u0026#34;:{ \u0026#34;ziduan1.keyword\u0026#34;: [\u0026#34;刘婵\u0026#34;, \u0026#34;赵云\u0026#34;] # 查询ziduan1=\u0026#34;刘婵\u0026#34;或=赵云...的数据 } } } multi_match,多字段查询 # 查询多个字段中都包含指定内容的数据 body = { \u0026#34;query\u0026#34;:{ \u0026#34;multi_match\u0026#34;:{ \u0026#34;query\u0026#34;:\u0026#34;我爱你中国\u0026#34;, # 指定查询内容,注意:会被分词 \u0026#34;fields\u0026#34;:[\u0026#34;ziduan1\u0026#34;, \u0026#34;ziduan2\u0026#34;] # 指定字段 } } } prefix,前缀查询 body = { \u0026#39;query\u0026#39;: { \u0026#39;prefix\u0026#39;: { \u0026#39;ziduan.keyword\u0026#39;: \u0026#39;我爱你\u0026#39; # 查询前缀是指定字符串的数据 } } } # 注:英文不需要加keyword wildcard,通配符查询 body = { \u0026#39;query\u0026#39;: { \u0026#39;wildcard\u0026#39;: { \u0026#39;ziduan1.keyword\u0026#39;: \u0026#39;?刘婵*\u0026#39; # ?代表一个字符,*代表0个或多个字符 } } } # 注:此方法只能查询单一格式的(都是英文字符串,或者都是汉语字符串)。两者混合不能查询出来。 regexp,正则匹配 body = { \u0026#39;query\u0026#39;: { \u0026#39;regexp\u0026#39;: { \u0026#39;ziduan1\u0026#39;: \u0026#39;W[0-9].+\u0026#39; # 使用正则表达式查询 } } } bool,多条件查询 # must:[] 各条件之间是and的关系 body = { \u0026#34;query\u0026#34;:{ \u0026#34;bool\u0026#34;:{ \u0026#39;must\u0026#39;: [{\u0026#34;term\u0026#34;:{\u0026#39;ziduan1.keyword\u0026#39;: \u0026#39;我爱你中国\u0026#39;}}, {\u0026#39;terms\u0026#39;: {\u0026#39;ziduan2\u0026#39;: [\u0026#39;I love\u0026#39;, \u0026#39;China\u0026#39;]}}] } } } # should: [] 各条件之间是or的关系 body = { \u0026#34;query\u0026#34;:{ \u0026#34;bool\u0026#34;:{ \u0026#39;should\u0026#39;: [{\u0026#34;term\u0026#34;:{\u0026#39;ziduan1.keyword\u0026#39;: \u0026#39;我爱你中国\u0026#39;}}, {\u0026#39;terms\u0026#39;: {\u0026#39;ziduan2\u0026#39;: [\u0026#39;I love\u0026#39;, \u0026#39;China\u0026#39;]}}] } } } # must_not:[]各条件都不满足 body = { \u0026#34;query\u0026#34;:{ \u0026#34;bool\u0026#34;:{ \u0026#39;must_not\u0026#39;: [{\u0026#34;term\u0026#34;:{\u0026#39;ziduan1.keyword\u0026#39;: \u0026#39;我爱你中国\u0026#39;}}, {\u0026#39;terms\u0026#39;: {\u0026#39;ziduan2\u0026#39;: [\u0026#39;I love\u0026#39;, \u0026#39;China\u0026#39;]}}] } } } # bool嵌套bool # ziduan1、ziduan2条件必须满足的前提下,ziduan3、ziduan4满足一个即可 body = { \u0026#34;query\u0026#34;:{ \u0026#34;bool\u0026#34;:{ \u0026#34;must\u0026#34;:[{\u0026#34;term\u0026#34;:{\u0026#34;ziduan1\u0026#34;:\u0026#34;China\u0026#34;}}, # 多个条件并列 ,注意:must后面是[{}, {}],[]里面的每个条件外面有个{} {\u0026#34;term\u0026#34;:{\u0026#34;ziduan2.keyword\u0026#34;: \u0026#39;我爱你中国\u0026#39;}}, {\u0026#39;bool\u0026#39;: { \u0026#39;should\u0026#39;: [ {\u0026#39;term\u0026#39;: {\u0026#39;ziduan3\u0026#39;: \u0026#39;Love\u0026#39;}}, {\u0026#39;term\u0026#39;: {\u0026#39;ziduan4\u0026#39;: \u0026#39;Like\u0026#39;}} ] }} ] } } } "},{"id":62,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/JDBC%E6%95%B0%E6%8D%AE%E6%BA%90/","title":"Jdbc数据源","section":"特殊数据源","content":" 应用场景 # 当无法在python中找到连接库时, 你还可以采用jdbc的连接方式\n使用方法 # 首先您需要安装jdbc的包 pip install JayDeBeApi 在任意的一个仪表盘的 \u0026ldquo;模板\u0026rdquo; 编辑器中, 点击上传资源的图标上传相应的jdbc JAR包即可 新建连接的方式, 以下使用impala为例 "},{"id":63,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/kafka%E6%95%B0%E6%8D%AE%E6%BA%90/","title":"Kafka数据源","section":"特殊数据源","content":"用于获取kafka指定分区的最后一条记录, 用于实时场景 使用方法参考\u0026quot;自定义数据源\u0026quot; 以下为参考代码:\ndef dataset(*args, **kwargs): \u0026#34;\u0026#34;\u0026#34; 返回查询数据集 :return: 二维数组或JSON字典 \u0026#34;\u0026#34;\u0026#34; from kafka import KafkaConsumer, TopicPartition import json sqlList = args[0] # 数据集编辑界面的输入已按分号拆分成数组 [sql1, sql2...] config = args[1] # 相关的配置字典{\u0026#39;host\u0026#39;,\u0026#39;port\u0026#39;,\u0026#39;user\u0026#39;,\u0026#39;password\u0026#39;,\u0026#39;db\u0026#39;} # 插入你的数据查询及处理代码, 生成result即可 result = {} consumer = KafkaConsumer(sasl_mechanism=\u0026#39;PLAIN\u0026#39;, security_protocol=\u0026#39;SASL_PLAINTEXT\u0026#39;, sasl_plain_username=config[\u0026#39;user\u0026#39;], sasl_plain_password=config[\u0026#39;password\u0026#39;], bootstrap_servers=config[\u0026#39;host\u0026#39;], auto_offset_reset=\u0026#39;earliest\u0026#39;, api_version=(1, 0, 0), consumer_timeout_ms=50, value_deserializer=lambda v: json.loads(v.decode(\u0026#39;utf-8\u0026#39;)), ) topic = sqlList[0] partition = int(config[\u0026#39;db\u0026#39;]) tp = TopicPartition(topic=topic, partition=partition) consumer.assign([tp]) end_offsets = consumer.end_offsets([tp]).get(tp) # 获取当前消费者最大偏移量 consumer.seek(tp, offset=end_offsets-1) for message in consumer: result = message.value break return result def insert_dataset(*args, **kwargs): \u0026#34;\u0026#34;\u0026#34; 数据填报实现 \u0026#34;\u0026#34;\u0026#34; from kafka import KafkaProducer import json contents = args[0] # 传入的数据集二维数组格式 table = args[1] # 配置中的表名 config = args[3] # 相关的配置字典{\u0026#39;host\u0026#39;,\u0026#39;port\u0026#39;,\u0026#39;user\u0026#39;,\u0026#39;password\u0026#39;,\u0026#39;db\u0026#39;} # 插入你的写入数据逻辑代码 producer = KafkaProducer(sasl_mechanism=\u0026#39;PLAIN\u0026#39;, security_protocol=\u0026#39;SASL_PLAINTEXT\u0026#39;, sasl_plain_username=config[\u0026#39;user\u0026#39;], sasl_plain_password=config[\u0026#39;password\u0026#39;], bootstrap_servers=config[\u0026#39;host\u0026#39;], value_serializer=lambda v: json.dumps(v).encode(\u0026#39;utf-8\u0026#39;) ) producer.send(table, value=contents, partition=int(config[\u0026#39;db\u0026#39;])) "},{"id":64,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/mongodb%E6%95%B0%E6%8D%AE%E6%BA%90/","title":"Mongodb数据源","section":"特殊数据源","content":" 使用方法 # 连接池正常配置即可 数据集开发中,填写查询需求: {\u0026#34;db\u0026#34;: \u0026#34;db1\u0026#34;, \u0026#34;table\u0026#34;: \u0026#34;tb1\u0026#34;, \u0026#34;filter\u0026#34;: {\u0026#34;name\u0026#34;: \u0026#34;Zarten\u0026#34;}, \u0026#34;projection\u0026#34;: {\u0026#34;_id\u0026#34;: 0}, \u0026#34;sort\u0026#34;: [[\u0026#34;_id\u0026#34;, 1]], \u0026#34;limit\u0026#34;: 10} 由于返回的字典格式, 如需转化成二维数组, 可使图形中的转化函数ds_mapToList\nlet dataset=ds_mapToList(__dataset__); 参数说明: # 除table,其它都为可选参数\n参数 说明 样列 db 数库名,默认连接设定中db名 table 表名[必填] filter 筛选项,具体用法参考下文 {\u0026ldquo;name\u0026rdquo;: \u0026ldquo;Zarten\u0026rdquo;,\u0026ldquo;date\u0026rdquo;:\u0026ldquo;2020-10-01\u0026rdquo;} projection 显示列 {\u0026ldquo;name\u0026rdquo;: 1,\u0026ldquo;date\u0026rdquo;:1} sort 排序,-1为降序 [[\u0026ldquo;date\u0026rdquo;, -1]] limit 限定返回数量 filter条件说明 # 且条件\n{\u0026#34;age\u0026#34;:{\u0026#34;$gt\u0026#34;:22}, \u0026#34;name\u0026#34;:{\u0026#34;$regex\u0026#34;:\u0026#34;user\u0026#34;}} 或条件\n{ \u0026#34;$or\u0026#34;: [ {\u0026#34;age\u0026#34;: {\u0026#34;$gt\u0026#34;: 22}}, {\u0026#34;name\u0026#34;: {\u0026#34;$regex\u0026#34;: \u0026#34;user\u0026#34;}} ] } 比较查询 $lt和\u0026lt;,$lte和\u0026lt;=,$gt和\u0026gt;,gte和\u0026gt;=,ne和!=是一一对应的 {\u0026#34;field_name\u0026#34;: {\u0026#34;$lt\u0026#34;: value, \u0026#34;$gt\u0026#34;: value}} 关联查询$in和$nin {\u0026#34;field_name\u0026#34;: {\u0026#34;$in\u0026#34;: [1,5,8]}} $regex为模糊查询的字符串提供正则表达式功能 {\u0026#34;$or\u0026#34;: [{\u0026#34;field_name\u0026#34;: {\u0026#39;$regex\u0026#39;: value}},{\u0026#34;field_name2\u0026#34;: {\u0026#34;$regex\u0026#34;: value}}]} "},{"id":65,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/Redis%E6%95%B0%E6%8D%AE%E6%BA%90/","title":"Redis数据源","section":"特殊数据源","content":" 应用场景 # 你可能会有这样的一些需求, 展示数据是要通过外部的程序计算好,如一些实时的计算场景,用spark计算好的数据 或爬虫爬取的数据, 然后写入redis或nosql的数据库,最后由前端图形直接展示或数据下载,SmartChart支持这一块的应用\n使用方法 # 你可以创建一个redis的连接池, 然后按照通用的方法建立数据集 不同的是, 数据集的SQL区不再是写sql代码, 而只需要写redis中的keyname\n如redis中存储的数据是keyname 为 \u0026ldquo;指标A\u0026rdquo;, 数据 \u0026lsquo;{\u0026ldquo;长沙\u0026rdquo;:1,\u0026ldquo;上海\u0026rdquo;:2}\u0026rsquo; 这样我们只需要在数据集中写上\n指标A 即可, 最后你会得到{\u0026ldquo;长沙\u0026rdquo;:1,\u0026ldquo;上海\u0026rdquo;:2}的返回结果\n如果你需要的是表格格式, 那么你只需要往redis中存入一个二维数组, 比如: [[\u0026ldquo;省份\u0026rdquo;,\u0026ldquo;数量\u0026rdquo;],[\u0026ldquo;长沙\u0026rdquo;,1],[\u0026ldquo;上海\u0026rdquo;,2]]\n注意数据存入redis为字符串格式,你可使用python的json.dumps来生成字符串格式存入\n当然我们也支持同一个数据中获取多个keyname # 比如还有一个\u0026quot;指标B\u0026quot;, 数据是'12345' 我们可以同时写上两个指标,用分号隔开:\n指标A;指标B 最后你会得到的结果是: { \u0026ldquo;指标A\u0026rdquo;:{\u0026ldquo;长沙\u0026rdquo;:1,\u0026ldquo;上海\u0026rdquo;:2}, \u0026ldquo;指标B\u0026rdquo;:12345 }\n"},{"id":66,"href":"/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/sqlalchemy%E8%BF%9E%E6%8E%A5/","title":"Sqlalchemy连接","section":"特殊数据源","content":"常规的连接池的设定, 大家应该都很清楚了, Smartchart也支持sqlalchemy连接, 对于一些smartchart不支持的数据源可以使用此方法 配置方法: 只用填以上内容, 其它可留空 连接地址的写法参考sqlalchemy说明:\n可选参数。一个标准的链接URL是这样的: dialect+driver://username:password@host:port/database dialect,是数据库类型,大概包括:sqlite, mysql, postgresql, oracle, or mssql. driver,是使用的数据库API,驱动,连接包,随便叫什么吧。 username,用户名 password,密码 host,网络地址,可以用ip,域名,计算机名,当然是你能访问到的。 port,数据库端口。 databas,数据库名。 其实这些也就dialect和dirver需要解释。 二:连接sqlite3 1,驱动 sqlite3是个文件数据库,不需要什么驱动,或者说python内置了驱动。 2,标准连接参数 # sqlite://\u0026lt;nohostname\u0026gt;/\u0026lt;path\u0026gt; 没有hostname 3,各种链接参数 # 相对路径,就是这个python文件同目录下foo.db engine = create_engine(\u0026#39;sqlite:///foo.db\u0026#39;) #绝对路径 #Unix/Mac下用四条////表示 engine = create_engine(\u0026#39;sqlite:////absolute/path/to/foo.db\u0026#39;) #Windows下用三条///加盘符路径用两条\\\\ engine = create_engine(\u0026#39;sqlite:///C:\\\\path\\\\to\\\\foo.db\u0026#39;) #Windows 也可以这么用三条///加盘符路径用一条\\ engine = create_engine(r\u0026#39;sqlite:///C:\\path\\to\\foo.db\u0026#39;) #数据库建在内存里。URI保持为空即可 engine = create_engine(\u0026#39;sqlite://\u0026#39;) 三:连接mysql(mariadb) sqlalchemy默认使用mysql-python作为链接驱动,既default模式 选哪种驱动,就装哪个包。 1,default默认链接方式 engine = create_engine(\u0026#39;mysql://scott:tiger@localhost/foo\u0026#39;) 2,# mysql-python,声明使用mysql-python驱动 engine = create_engine(\u0026#39;mysql+mysqldb://scott:tiger@localhost/foo\u0026#39;) 3,MySQL-connector-python 声明使用MySQL-connector-python驱动(推荐使用) engine = create_engine(\u0026#39;mysql+mysqlconnector://scott:tiger@localhost/foo\u0026#39;) 4,OurSQL 声明使用OurSQL驱动 engine = create_engine(\u0026#39;mysql+oursql://scott:tiger@localhost/foo\u0026#39;) 四:连接Microsoft SQL Server sqlalchemy默认使用 pyodbc作为链接驱动。 1,pyodbc engine = create_engine(\u0026#39;mssql+pyodbc://scott:tiger@mydsn\u0026#39;) 2,pymssql engine = create_engine(\u0026#39;mssql+pymssql://scott:tiger@hostname:port/dbname\u0026#39;) 五:连接PostgreSQL PostgreSQL默认使用 psycopg2作为链接驱动,既default模式 1, default engine = create_engine(\u0026#39;postgresql://scott:tiger@localhost/mydatabase\u0026#39;) 2,psycopg2 engine = create_engine(\u0026#39;postgresql+psycopg2://scott:tiger@localhost/mydatabase\u0026#39;) 3, pg8000 engine = create_engine(\u0026#39;postgresql+pg8000://scott:tiger@localhost/mydatabase\u0026#39;) 六:连接Oracle Oracle可能只有 cx_oracle一个驱动包,既default模式和声明模式一样。 1,default engine = create_engine(\u0026#39;oracle://scott:tiger@127.0.0.1:1521/sidname\u0026#39;) 2,cx_oracle engine = create_engine(\u0026#39;oracle+cx_oracle://scott:tiger@tnsname\u0026#39;) "},{"id":67,"href":"/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/ElementUI%E7%BB%84%E4%BB%B6/%E5%B8%A6%E5%88%86%E9%A1%B5%E7%9A%84%E8%A1%A8%E6%A0%BC/","title":"带分页的表格","section":"Element Ui组件","content":" 模式开启 # 需要开启模板开发模式, 并开启basevue模板 在Body加入组件 # \u0026lt;!--表格--\u0026gt; \u0026lt;div class=\u0026#34;smtdrag\u0026#34; id=\u0026#34;id_1654907858638\u0026#34;\u0026gt; \u0026lt;el-table :data=\u0026#34;tableData.slice((currentPage-1)*pageSize, currentPage*pageSize)\u0026#34; height=\u0026#34;100%\u0026#34; size=\u0026#34;mini\u0026#34; header-cell-class-name=\u0026#34;tablehead\u0026#34; border style=\u0026#34;width: 100%\u0026#34;\u0026gt; \u0026lt;el-table-column v-for=\u0026#34;item in tableHead\u0026#34; :label=\u0026#34;item.label\u0026#34; :property=\u0026#34;item.prop\u0026#34; sortable\u0026gt; \u0026lt;/el-table-column\u0026gt; \u0026lt;/el-table\u0026gt; \u0026lt;!--表格结束--\u0026gt; \u0026lt;!--分页控件--\u0026gt; \u0026lt;el-pagination align=\u0026#39;center\u0026#39; @size-change=\u0026#34;handlerSizeChange\u0026#34; @current-change=\u0026#34;handlerCurrentChange\u0026#34; :current-page=\u0026#34;currentPage\u0026#34; :page-size=\u0026#34;pageSize\u0026#34; layout=\u0026#34;total,sizes,prev,pager,next,jumper\u0026#34; :total=\u0026#34;tableData.length\u0026#34; \u0026gt;\u0026lt;/el-pagination\u0026gt; \u0026lt;!--分页控件结束--\u0026gt; \u0026lt;/div\u0026gt; 在JS区域加入 # var vapp = new Vue({el: \u0026#39;#vue_app\u0026#39;, delimiters: [\u0026#39;{[\u0026#39;, \u0026#39;]}\u0026#39;], data: { tableData:[], //表数据 tableHead:[], //表头 currentPage:1, total:20, pageSize:10 }, methods: { //处理分页数量 handlerSizeChange(val){ this.currentPage = 1; this.pageSize=val; }, //处理页选择 handlerCurrentChange(val){ this.currentPage = val; } } }); 新增一个数据集 # select * from smartdemo2 limit /* $limit -- */ 100 图形开发中修改 # let df0 = __dataset__; //处理表头 let columnsDict = {\u0026#39;c1\u0026#39;:\u0026#39;渠道\u0026#39;,\u0026#39;qty\u0026#39;:\u0026#39;数量\u0026#39;}; let tableHead = []; let tableHeadLabel; for (let i=0;i\u0026lt;df0[0].length;i++){ if(columnsDict.hasOwnProperty(df0[0][i])){ df0[0][i] = columnsDict[df0[0][i]] } tableHeadLabel=df0[0][i]; tableHead.push({label: tableHeadLabel, prop:df0[0][i]}); } //VUE赋值 vapp.tableHead = tableHead; vapp.tableData=ds_createMap_all(df0); smartchart内置了这个查询模板, 你可以通过 本地模板恢复快速应用\n"},{"id":68,"href":"/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/LineUp%E5%9B%BE%E5%BD%A2/","title":"Line Up图形","section":"特殊图形","content":"Smartchart内置了LineUp图形 LineUp is an interactive technique designed to create, visualize and explore rankings of items based on a set of heterogeneous attributes. LineUp图形参考\nds_loadcss(\u0026#39;smt_LineUp\u0026#39;); ds_loadjs(\u0026#39;smt_LineUp\u0026#39;); let dataset = __dataset__; dataset = ds_createMap_all(dataset); try{Ljs__name__.destroy()}catch{} Ljs__name__ = LineUpJS.asTaggle(dom__name__, dataset); // 点击选中行响应动作 Ljs__name__.on(LineUpJS.LineUp.EVENT_SELECTION_CHANGED, (selection) =\u0026gt; { console.log(Ljs__name__.data._data[selection]); //通过以上log可以查看到数据格式, 以下就是标准的联动写法 filter_param[\u0026#39;LineupParam\u0026#39;] = Ljs__name__.data._data[selection].xx ds_refresh(2); }); //更多响应动作 Ljs__name__.on(LineUpJS.LineUp.EVENT_HIGHLIGHT_CHANGED, (highlight) =\u0026gt; { }); // document.querySelector(\u0026#39;button#select\u0026#39;).addEventListener(\u0026#39;click\u0026#39;, () =\u0026gt; { // Ljs__name__.setSelection([1, 2, 3]); // }); // document.querySelector(\u0026#39;button#highlight\u0026#39;).addEventListener(\u0026#39;click\u0026#39;, () =\u0026gt; { // Ljs__name__.setHighlight(50); // }); // 获取筛选后的数据并下载(来源与\u0026#34;路阳\u0026#34; 赞助开发) outputStr=Ljs__name__.data.exportTable(Ljs__name__.data.getRankings()[0], {}); outputStr = outputStr.replace(/\\t/g, \u0026#39;,\u0026#39;); ds_download(\u0026#39;abc.csv\u0026#39;, outputStr); "},{"id":69,"href":"/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/%E4%BD%BF%E7%94%A8%E5%9B%BE%E6%A0%87/","title":"使用图标","section":"特殊图形","content":"在\u0026quot;模板\u0026quot;中加载图标资源 使用方法, 可参考 font-awesome菜鸟教程 V5图标名称参考, 也可以 图标样列查询 "},{"id":70,"href":"/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/%E6%97%A0%E7%BC%9D%E6%BB%9A%E5%8A%A8/","title":"无缝滚动","section":"特殊图形","content":" 通用滚动 # 例如你的html如下\n\u0026lt;div id=\u0026#34;smtid\u0026#34; style=\u0026#34;height:100%\u0026#34;\u0026gt; \u0026lt;ul\u0026gt; \u0026lt;li\u0026gt;smartchart\u0026lt;/li\u0026gt; \u0026lt;li\u0026gt;bigdata\u0026lt;/li\u0026gt; \u0026lt;li\u0026gt;echarts\u0026lt;/li\u0026gt; \u0026lt;li\u0026gt;make it great\u0026lt;/li\u0026gt; \u0026lt;/ul\u0026gt; \u0026lt;/div\u0026gt; 你只需要使用以下函数, 即可实现在无缝滚动 由于smtid是ID, 则使用 ds_liMarquee(\u0026rsquo;#smtid\u0026rsquo;) 即可开启自动滚动 如果 class=\u0026ldquo;smtclass\u0026rdquo;, 那么也可以使用类选择器 ds_liMarquee(\u0026rsquo;.smtclass')\n我们也可以使用更多的配置方法\nmarconfig={ playtime: 3000, //滚动3秒 pausetime: 3000, //停3秒 config:{ direction: \u0026#39;up\u0026#39;,//向上滚动 runshort: false,//内容不足时不滚动 scrollamount: 20//速度 } } 可以使用 ds_liMarquee(\u0026rsquo;#smtid\u0026rsquo;, marconfig) 传入配置\n更多config说明:\n名称 类型 默认值 说明 direction 字符串 left 滚动方向,可选 left / right / up / down loop 整数 -1 循环次数,-1 为无限循环 scrolldelay 整数 0 每次重复之前的延迟 scrollamount 整数 50 滚动速度,越大越快 circular 布尔值 true 无缝滚动,如果为 false,则和 marquee 效果一样 drag 布尔值 true 鼠标可拖动 runshort 布尔值 true 内容不足是否滚动 hoverstop 布尔值 true 鼠标悬停暂停 xml 布尔值 false 加载xml 文件 inverthover 布尔值 false 反向,即默认不滚动,鼠标悬停滚动 内置滚动表格 # smartchart内置了滚动表格, 可以一键生成 如果你需要修改表格的样式, 如字体,颜色等, 你可以在模板中重定义样式 具体样式的写法, 参考 样式快速入门\n如下例修改表头高度为5rem, 内容单元格高度3rem 及背景字体等 /*表头样式*/ .smtlisthead{ background: #fff2cc; color: red; height: 5rem; } .smtlisthead span{ height: 5rem; } /*表格本体样式*/ .smtlistnav{ height: calc(100% - 5rem); color: red; overflow: auto; } .smtlistnav li span{ height: 3rem; } /*修改奇数行背景*/ .smtlistnav ul li:nth-child(odd){ background: rgba(100,100,100,.1);} 偶数行将odd改为even /*指定某单独格宽度对齐*/ \u0026lt;span\u0026gt; \u0026lt;span style=\u0026#34;width:32rem;height:100%;flex-shrink:0;justify-content:left\u0026#34;\u0026gt;\u0026lt;span\u0026gt; \u0026lt;/span\u0026gt; /*单元格点击响应*/ let lastClickDom; let lastDomColor; $(\u0026#39;#smtlist__name__, li\u0026#39;).click(function(params){ try{lastClickDom.css(\u0026#39;background\u0026#39;, lastDomColor)}catch{} lastDomColor = $(this).css(\u0026#39;background\u0026#39;); $(this).css(\u0026#39;background\u0026#39;, \u0026#39;yellow\u0026#39;); lastClickDom = $(this); let myparam = $(this).children(\u0026#39;span\u0026#39;).eq(0).text(); //获取点击的参数 //以下加入你的action }); "},{"id":71,"href":"/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2%E5%8A%A0%E8%BD%BD/","title":"特殊图形加载","section":"特殊图形","content":"smartchart默认只会引echarts的基础图形 如果你需要使用到更多图形, 你可以自行引用,可以写在模板的javascript标签中\n中国地图 \u0026lt;script src=\u0026#34;/static/smartchart/opt/smt_china.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; 世界地图 \u0026lt;script src=\u0026#34;/static/smartchart/opt/smt_world.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; 统计图 \u0026lt;script src=\u0026#34;/static/smartchart/opt/smt_ecStat.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; 水球图 \u0026lt;script src=\u0026#34;/static/smartchart/opt/smt_liquidfill.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; 词云 \u0026lt;script src=\u0026#34;/static/smartchart/opt/smt_wordcloud.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; 百度地图 \u0026lt;script type=\u0026#34;text/javascript\u0026#34; src=\u0026#34;https://fastly.jsdelivr.net/npm/echarts@5/dist/extension/bmap.min.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; "},{"id":72,"href":"/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E4%B8%8D%E5%B8%B8%E7%94%A8/%E4%BB%A3%E7%A0%81%E8%BD%AC%E5%8C%96%E5%B8%83%E5%B1%80/","title":"代码转化布局","section":"不常用","content":"由于我们移除了boostrap的布局方式, 此布局不再做推荐! 初次学习的同学, 可能会需要一个拖拉拽的布局方式(3.9.9.13以上才支持), 所以下面介绍的是smartchart的辅助布局方法\n你可以在\u0026quot;布局\u0026quot; 中找到入口 进入编辑器后, 你可以拖拉拽的方式进行布局, 注意我们建意你一个column(C)容器只放一个smartchart的图形便于标准化 点击\u0026quot;生成\u0026quot;, 复制相关代码 回到仪表盘\u0026quot;布局\u0026quot;, 粘贴到编辑器, 点击 \u0026ldquo;闪电\u0026rdquo; 图标, 进行转化, 可能会提示你数据集不够,这样你需要新增足够数量的数据集后再点转化 注: 代码转化布局你可以不用可视化辅助, 可以用其它任意每三方布局工具生成代码后粘过来生成, 需要注意的格式是: 在你需要数据集的地方使用以下代码即可:\n\u0026lt;div style=\u0026#34;height:100%\u0026#34; id=\u0026#34;container_{name}\u0026#34;\u0026gt;\u0026lt;/div\u0026gt; 转化完成后, 点击保存即可应用布局 "},{"id":73,"href":"/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E4%B8%8D%E5%B8%B8%E7%94%A8/%E5%AE%B9%E5%99%A8%E7%AE%A1%E7%90%86%E7%95%8C%E9%9D%A2/","title":"容器管理界面","section":"不常用","content":" 容器管理 # 你可以单独对一个容器进行编辑,或者在全局进行编辑 全局编辑器 移动图形\n你有两种方法移动数据集 可以在“报表” 中直接暴力修改序号 也可以在数据集编辑器中移动, 可选择插入(带着容器一起动),替换(容器不动,就是整体布局不变化, 只移动数据和图形) "},{"id":74,"href":"/docs/6.Jupyter%E5%BA%94%E7%94%A8/Jupyter%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%8C%87%E5%BC%95/","title":"Jupyter中使用指引","section":"6. Jupyter应用","content":" 应用场景 # 你需要在jupyter中通过smartchart分享的数据集获取数据进行分析 你有很多线下数据需要进行个性化分析, 然后制做仪表盘 在Jupyter的数据分析过程中, 你需要快速生成图形 大屏或报表有部分数据集是需要能过复杂的分析生成的\nSmartchart支持像pyecharts, Matplotlib 等python绘图工具一样在Jupyter中使用, 但她更加方便, 更加炫酷 和 通用化, 不仅仅是一个绘图工具, 而且是一个平台\n我们有什么特色:\n使用上手非常简单, 仅仅只有两个命令, get and set, 配置项采用原生的Echarts配置, 无重复学习成本, 使用顺滑 支持Echarts所有功能, 可定制化程度高, 显示效果好, 可嵌入也可以弹出窗口显示, 也可以dashboard中显示 数据可以固化存储, 采用smartchart Portal可以直接拼接炫酷大屏\nSmartchart与Pandas Smartchart与Jupyter SmartChart大屏新思路\n安装使用方法 # 你需要在jupyter相同的python环境中安装smartchart客户端 pip install smartchart 或pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple smartchart 如果你只是需要连接已部署好的smartchart服务端, 本地无需启动smartchart 快速开始 # 初始化认证: 第一次使用时, 打开jupyter后, 需要设定默认用户和smartchart服务端url 同一个环境, 只需初始化一次, 后面无需再设定\nfrom smart_chart import Smart Smart().set_auth(\u0026#39;用户名\u0026#39;, \u0026#39;密码\u0026#39;,url = \u0026#39;http://xxxxx\u0026#39;) 如果smartchart服务端在本地, 可以省略url\nSmart().set_auth(\u0026#39;用户名\u0026#39;, \u0026#39;密码\u0026#39;) 使用方法:\nfrom smart_chart import Smart mysmart = Smart() dataset = [[\u0026#39;A\u0026#39;,\u0026#39;B\u0026#39;,\u0026#39;C\u0026#39;],[12,34,23],[22,33,37]] #把数据写入临时数据集并显示图形 mysmart.set(1,dataset) #随意命名临时数据集, 不一定需要smartchart中数据集已有的 mysmart.set(\u0026#39;DD\u0026#39;, dataset) #从已有的数据集中获取数据(格式参考smartchart数据集) ds1 = mysmart.get(1) ds2 = mysmart.get(\u0026#39;DD\u0026#39;) 修改图形显示 # 方法一: 你可以在图形菜单中选择内置图形或主题 方法二: set默认是表格显示,你也可通过名称加前缀 bar, line, pie进行修改\nmysmart.set(\u0026#39;barxxx\u0026#39;, dataset) #显示柱形图, 另外还有linexxx, piexxx 方法三: 简单图形,可能无法满足你的个性化要求, 你可以采用实例化数据集的方式后做出炫酷的自定义图形\nmysmart.set(\u0026#39;myds_1\u0026#39;, dataset, push=1) #参数push=1, 将实例化数据集 实例化的数据集, 在图形编辑区点击, 可以进入定制化图形开发, 可使用原生的Echarts配置和实时调试,或直接使用社区图形(第一次使用,有一个登记的过程, 按提示进行) 方法四: 如何在非实例化的数据集中使用自定义图形进行临时显示 假如你已经实例化并自定义了图形, 比如 \u0026lsquo;myds_1\u0026rsquo;, 你可以直接用它的名称来set\n#不加push, 将使用新的数据采用myds_1的图形临时显示, 而不会改变原myds_1的数据 mysmart.set(\u0026#39;myds_1\u0026#39;, dataset) 显示设定参数 # 你可以通过参数来设定图形的高宽, 是否嵌入等个性化要求\n# width, height指定图形嵌入显示的宽高 # embed 默认不嵌入, embed=1 嵌入, embed=0 不嵌入 # editor 是否显示图形菜单, 1显示, 0不显示 # push 是否持久化数据集 push=1, 无则新建有则保存数据 # url 报表访问的url,默认是localhost #可以全局初始化设定 mysmart = Smart(width=xx, height=xx, embed=1, editor=\u0026#39;\u0026#39;) #也可以全局单独进行设定 mysmart.url = \u0026#39;http://ip:8000\u0026#39; mysmart.embed = 1 #也可以针对单独的一个图形设定 mysmart.set(1,dataset,embed=1,height=200,editor=0) SmartChart与Pandas # Smartchart的set支持直接set Pandas的dataframe对象\nfrom smart_chart import Smart import pandas as pd mysmart = Smart() df = pd.read_excel(\u0026#39;manual_smartdemo.xlsx\u0026#39;, \u0026#39;sheet1\u0026#39;) mysmart.set(\u0026#39;excelsample\u0026#39;, df.sample(10)) df1 = df.groupby(\u0026#39;province\u0026#39;).agg({\u0026#39;qty\u0026#39;:\u0026#39;sum\u0026#39;}).reset_index() mysmart.set(\u0026#39;ec_df1\u0026#39;, df1, push=1) df2 = df.groupby(\u0026#39;c1\u0026#39;).agg({\u0026#39;qty\u0026#39;:\u0026#39;sum\u0026#39;}).reset_index() mysmart.set(\u0026#39;ec_df2\u0026#39;, df2, push=1) df4 = df.groupby(\u0026#39;province\u0026#39;).agg({\u0026#39;qty\u0026#39;:\u0026#39;count\u0026#39;}).reset_index() mysmart.set(\u0026#39;ec_df4\u0026#39;, df1, push=1) df3 = df.groupby(\u0026#39;c3\u0026#39;).agg({\u0026#39;qty\u0026#39;:\u0026#39;sum\u0026#39;}).reset_index() print(df3) df3.loc[1, \u0026#39;qty\u0026#39;] = df3.loc[1, \u0026#39;qty\u0026#39;] * 100 print(df3) mysmart.set(\u0026#39;ec_df3\u0026#39;, df3, push=1) #mysmart.set(\u0026#39;pie0\u0026#39;, df1) #df2 = df.groupby([\u0026#39;province\u0026#39;,\u0026#39;c3\u0026#39;]).agg({\u0026#39;qty\u0026#39;:\u0026#39;sum\u0026#39;}).reset_index() #print(df2) #mysmart.set(\u0026#39;ssss\u0026#39;, df2) #print(mysmart.get(15)) "}] \ No newline at end of file diff --git a/docs/smartchart/en.search.min.9676739f7d6fb9d37e12fd58a755b4f44ec0d94abaddeb103ece302f676fbdef.js b/docs/smartchart/en.search.min.9676739f7d6fb9d37e12fd58a755b4f44ec0d94abaddeb103ece302f676fbdef.js new file mode 100644 index 0000000..31f65a1 --- /dev/null +++ b/docs/smartchart/en.search.min.9676739f7d6fb9d37e12fd58a755b4f44ec0d94abaddeb103ece302f676fbdef.js @@ -0,0 +1 @@ +"use strict";(function(){const o="/en.search-data.min.6325b92e2578ce162c49b50e5d0f669259962aac89a889a8a051ca34a48fe31d.json",i=Object.assign({cache:!0},{doc:{id:"id",field:["title","content"],store:["title","href","section"]}}),e=document.querySelector("#book-search-input"),t=document.querySelector("#book-search-results");if(!e)return;e.addEventListener("focus",n),e.addEventListener("keyup",s),document.addEventListener("keypress",a);function a(t){if(t.target.value!==void 0)return;if(e===document.activeElement)return;const n=String.fromCharCode(t.charCode);if(!r(n))return;e.focus(),t.preventDefault()}function r(t){const n=e.getAttribute("data-hotkeys")||"";return n.indexOf(t)>=0}function n(){e.removeEventListener("focus",n),e.required=!0,fetch(o).then(e=>e.json()).then(e=>{window.bookSearchIndex=FlexSearch.create("balance",i),window.bookSearchIndex.add(e)}).then(()=>e.required=!1).then(s)}function s(){for(;t.firstChild;)t.removeChild(t.firstChild);if(!e.value)return;const n=window.bookSearchIndex.search(e.value,10);n.forEach(function(e){const n=c("
  • "),s=n.querySelector("a"),o=n.querySelector("small");s.href=e.href,s.textContent=e.title,o.textContent=e.section,t.appendChild(n)})}function c(e){const t=document.createElement("div");return t.innerHTML=e,t.firstChild}})() \ No newline at end of file diff --git a/docs/smartchart/favicon.png b/docs/smartchart/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..59c7c2a213cc1de508282f86d457b16426bf9c62 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC6Hgb%kP61PR}Fa?7&w?6|IB7% zUbBR!+>`asl_*Ar3-i?!3>X>I|1>Z#GR(7(Q*Z$4VZODzZo-MJr)7X_22WQ%mvv4F FO#mg08}a}E literal 0 HcmV?d00001 diff --git a/docs/smartchart/favicon.svg b/docs/smartchart/favicon.svg new file mode 100644 index 0000000..a3c696d --- /dev/null +++ b/docs/smartchart/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/smartchart/flexsearch.min.js b/docs/smartchart/flexsearch.min.js new file mode 100644 index 0000000..984d8c6 --- /dev/null +++ b/docs/smartchart/flexsearch.min.js @@ -0,0 +1,42 @@ +/* + FlexSearch v0.6.30 + Copyright 2019 Nextapps GmbH + Author: Thomas Wilkerling + Released under the Apache 2.0 Licence + https://github.com/nextapps-de/flexsearch +*/ +'use strict';(function(K,R,w){let L;(L=w.define)&&L.amd?L([],function(){return R}):(L=w.modules)?L[K.toLowerCase()]=R:"object"===typeof exports?module.exports=R:w[K]=R})("FlexSearch",function ma(K){function w(a,c){const b=c?c.id:a&&a.id;this.id=b||0===b?b:na++;this.init(a,c);fa(this,"index",function(){return this.a?Object.keys(this.a.index[this.a.keys[0]].c):Object.keys(this.c)});fa(this,"length",function(){return this.index.length})}function L(a,c,b,d){this.u!==this.g&&(this.o=this.o.concat(b),this.u++, +d&&this.o.length>=d&&(this.u=this.g),this.u===this.g&&(this.cache&&this.j.set(c,this.o),this.F&&this.F(this.o)));return this}function S(a){const c=B();for(const b in a)if(a.hasOwnProperty(b)){const d=a[b];F(d)?c[b]=d.slice(0):G(d)?c[b]=S(d):c[b]=d}return c}function W(a,c){const b=a.length,d=O(c),e=[];for(let f=0,h=0;f=h&&(a=a[g-(e+.5>>0)],a=a[b]||(a[b]=[]), +a[a.length]=d);return e}function ba(a,c){if(a){const b=Object.keys(a);for(let d=0,e=b.length;da?1:a?-1:0}function pa(a,c){a=a[M];c=c[M];return ac?1:0}function oa(a,c){const b=M.length;for(let d=0;dc?1:0}function T(a,c,b){return a?{page:a,next:c?""+c:null,result:b}:b}function ha(a,c,b,d,e,f,h){let g,k=[];if(!0===b){b="0";var l=""}else l=b&&b.split(":");const p=a.length;if(1h&&(l=0),l=l||0,g=l+c,g=this.m.length&&(this.C=0),this.m[this.C].postMessage({add:!0,id:a, +content:c}),this.c[f]=""+this.C,b&&b(),this;if(!e){if(this.async&&"function"!==typeof importScripts){let t=this;f=new Promise(function(v){setTimeout(function(){t.add(a,c,null,d,!0);t=null;v()})});if(b)f.then(b);else return f;return this}if(b)return this.add(a,c,null,d,!0),b(),this}c=this.encode(c);if(!c.length)return this;b=this.f;e=O(b)?b(c):c.split(this.split);this.filter&&(e=W(e,this.filter));const n=B();n._ctx=B();const m=e.length,u=this.threshold,q=this.depth,A=this.b,z=this.i,y=this.D;for(let t= +0;tp;x--)l=h.substring(p,x),V(z,n,l,a,v,k,u,A-1)}break;default:if(g=V(z,n,h,a,1,k,u,A-1),q&&1=u)for(g=n._ctx[h]||(n._ctx[h]=B()),h=this.h[h]||(this.h[h]=ia(A-(u||0))),k=t-q,l=t+q+1,0>k&&(k=0),l> +m&&(l=m);kh;d--)e=g[d-1],g[d]=e,f[e]=d;g[h]=c;f[c]=h}}}return b};return a}();return w}(function(){const K={},R="undefined"!==typeof Blob&& +"undefined"!==typeof URL&&URL.createObjectURL;return function(w,L,S,W,P){S=R?URL.createObjectURL(new Blob(["("+S.toString()+")()"],{type:"text/javascript"})):w+".min.js";w+="-"+L;K[w]||(K[w]=[]);K[w][P]=new Worker(S);K[w][P].onmessage=W;return K[w][P]}}()),this); diff --git a/docs/smartchart/fonts/roboto-mono-v13-latin-regular.woff b/docs/smartchart/fonts/roboto-mono-v13-latin-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..f319fbfa46a9c546ad2b4f68e2b6f9267cdfc5d8 GIT binary patch literal 15160 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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/fonts/roboto-mono-v13-latin-regular.woff2 b/docs/smartchart/fonts/roboto-mono-v13-latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ed384d22fd9f566df41a3a37de9f614adc7f630b GIT binary patch literal 12312 zcmV+zFz3&APew8T0RR9105BK;4gdfE09Tv<0581&0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/fonts/roboto-v27-latin-700.woff b/docs/smartchart/fonts/roboto-v27-latin-700.woff new file mode 100644 index 0000000000000000000000000000000000000000..a5d98fc6202f5cf5fd8b556ca834e8e9dbaafac1 GIT binary patch literal 20396 zcmYg#V{|566YY~^Vsm2K#>BR5+twtR*tTs=Y}>YzCz#mA&HLT^L!~ zJ@~D|{6-$s2|bCin+qWT0P`IWAn_k)e19~VIhfl50I;Or8kTQ#>fd5lnj1QQ`@(5_ zYvBF|C;+Otji=eSX#xQ75CQ-;y^q3rx)vt39^YYtzBS)5K#&+&NH{D^4Zk%K_um}* ze|TS+*Rl8}0RTzbZ=3KNq_E@=vlg~4-@cME-)o2k0Dd45k4hcd*c*TAq`&6}^8C%i zlmeRfCxD%`8H zz{Z5m0$W#AS5sH*Sms#c==xKhU}{C)N|?Y{@bnfD6&Y3u;IST^0v1Q6i5lEfp>E6D zw9;&Ae|DT^eb!>T(cA_#;$*Y2fM^?KPONts9u-q}8P0HZQKg;kGoy?QIMnI06?xiR zVag~G=lk?GxAfWvi{%wwXh8Hi@yrMVO#ZgNo-`)#$Wdx^A{IhAoI8ek4!*L5rjOkI z*~QRG-pas^i_9jnBq*+dS5g@Amx_m?ljL!DKXnM4sRSj&T%e;M|DAdv$^j)b6jP$Z3Y!&fQ{L%mXo@ zX|axA=d8R^mbJS>x^5qQQQHc;L(ju3v6g5DCfRUUU5aUdE6d!i4DycJ<#GF$`aXwI z#;MFtmO&XN=}8P673acLQuatXqso)T53G1}uK1rHMgnjVL`<~J<;QMy!slomi{33z zX(sj_S>lwCl`p>y$wYrWh}qT4*){9gH9b`QjIW1Hx==PlJ`<&i-^8-6{r5S0XZc-u|6S%?=v~Q$Iu%(n9@Vo>{H4n%7wS3vBMN5ey!ihr ze`~u$M2$vdjYfvC&pVw_lgD4%kww+hX|c`Ldj8+#M1*amN<`#F>WA+@WotCqp;ZoH z*Qr&ZQeC#>&i$`krdP&MM~=&RIq1K&&*b9μ@r2h2zTF5D3Lz~+tNz*d0Io>VN^ zv~8jJE{>VVcDeR92T1P9lGV6vvo2Y1)F{fVk? zw*H3F(~WDa{@pY05W6bO`xkuVw(JklJE{3BAu!0;B7jY$>we&m5v*kv=C6g6*sAtw zYm*1`GqW!~ZIcb#(AuA?e|)BLAgI9&^ieB^q{T0o8vWQfnZKsqa_;|r;XS$&;M?{d z)5aYEE8+3tu{bY3@j`c~+(Tm;{5Fu&_X;nrv2mM}qI=14i`||ivl*>3(OEvFj4ERq zoa;wcTnbbpDlaU(2fQBaWa1jJnuj3DK^2OF*r=b1Y7G6F}w#<}fhxD<}tSyxvevum+z6&G{HDyv?buU!(Q5c5bEZOYZlqad4r*e@f zy~P)E#x^c)NTbZ2GAVIF*om7yE`5)HeU5g)vX4J@dc`z@>sTEj6{@-0ekf}((y}AzE^5LUV{tI)W&Vz$tdJOUP)|wA#g>nyywN zYmsEzq(OJiRq6jws?M!moWXdxGZ>_#8n!4OoJqfRPGQoNViu(~u28u!r@t{D_VT4? zduuS}?McXphmEk81X)Ov9mS>U)4@;}WLBf<$#6|-(5n!cF-2RTT1p_2r}9w};U5@$ zAFGezy{+@@iG>Ch8tF(S#+`0XHFjv8^M&Zp245OR3bwyB7Um5C%lr{>Y(nX4E`+*^U{oV zZR{(Q-I4CVv2bbDza>M$fxeUUoyo|Z#f3olsczDz%7H-ogj9YPVR*AI%=Wx!)Q8rU z0M#CBGeAQB`@`a~t{X4vwk3chY7ad%$pd}BGdY@nrpdAwT3UzeeKq+YdT#RD+GhZLez^hyPU< z6@p(uoP+qDot#pD2SfI6p+RcwomwvyL6x7x zJl<58K^#P@%OI*8C{srQ&BY0#TDofik5ahvi7rSvD2yfO2hy)CAmB{vn~D0GERfMi?mh%c3ZpswCYoh3m+5=f1K9&=#lvUqj=u&NftsB`kmm zm_42*GX`EU3$)YbDXjM69?eoVLHrH!&%5@VN<8DLhB2k(ubA=KzK0$&-i^cnkzHX6 zaQ5Rm*)c|`fIjup42ok=tbp72U(DnvGKFG8OtG0JSN9$Frs`BzVHVOV6spz^?t82< zjesC-w9SWgfxazYzRS3{!NLoGS1(}GvFh?Vx}CN+yCNK-T#Hrm4qCgxrUd}zs<73Kb8?W`g9|eJU~tTXj3lISqm;%` zEPbSsq%1?MX0#f0@j}#hw0}oYCaU7ZepUYO-kSV%1+dS1Z2+hN{{TgRPk*SzDtJoX#hY2%>)pF5dmO-`~sl;hz1~m{{^5yU;@xVN&v_Zy#NG=9RTRJ z_P^&R21NXaAZCd9`dND=u|QN>o8wTrBj5){hd4s>Bcp!VJf3bIKN4&m#7By|Kku&Z z^hfyOCVpjr=dlkTK0{i1L2g^boqWa16J)|&1p)7-wgZW2yG$gZs;C}Bt zwkDsCmX)jz$Q%1V7HP|!qZ!iq$*Z8%jWDoObtjpYm-CE@@k9B2giV~xvqUknu4B^w zoLeF^LwQ$t)uuNi;0va3pic->O?}3-!~`9UkW!mW+-v4(k!eZ_WrZFgm1)D8zFXPv z+Cc$8zrFy79_v-VA$8D3o}N3`wzz+}Z#stN^(sb}QL6Upfq4G}@fM{ed`ua{_df3$ ziE*!-W7Rf#vKC4jRI!$+vqr($yv|MM-hI5jx_VdJoF?)=;iBV~mm$}cey z163kY2l{s^QkaNUd!;+N`~iPso8AQzfgCM#452kDdXP*Y+mN*7Zo5ugyZE^_;MTX` z24X#_*Rxn@&ul3hfFS@I0KMNwy4c7*Sc*DIa*O5h9s(`|(5_B+c|ee~%?_bRvbYhk zCfGE`zYIhYQ=Z7_g+|E#X+;^ijs0k)XdFU}lLs0sO9{Ccjj&0XhoNZd7I|v=O0-Mh zRTxIBP|FttLryfjTd5u#A~HzUJ5E7_)Iv{3LPEzz0wxC~FMaFPXt7;5Qk4T$Skgb! zS_nfFuS6z8(2hp*t1xQoM~q>krmhLbs_CmQkqQn?9a!tqrW>-Bs9gtPG)17} zGvxW7RqcPU911$13P|gukl>lC(gBp|=dB(J*SzD7bF=;-2-K+q1ANz|V1CWGY&?uU z11iqZ7W}YE>PEB}>DCsL)V?kZ%pKy|I=GkZ4bW?IrK9HsOlL2~5K^SkYq9#!wEK%N zOTojL&lGB5rUW|*pZVgtlzM*D4;H6*f718`v)xE9CK?MZ`Fmp8B$Z;#aw1+(mg9;3 z+VQI}1kn`{yrCuRJSGygvZ;teDX6V+8x>fwRRrE1mbK5J!K$?VIh4pe=^eZtB=V0X{Cf+XM7#t>r3YpAhKV*B^o5h&$bTT$rq3`nM)k|H-dv2IYwfCoD zC|yBHn=AH9ogVm!xOx{j^Te9v4%#N5hI+2XRru=r0(Tiz9TM3cXDLvi%~C5z797tq8~=ofx`X zK1tUjBHf_^MMw&)5Xoe1DWpb^_ zS@CoekNal@c1baZoPAo(a@GAt8+QwXWOl<{;fs+`Xxqj2CAOEA?6e&O=rZ_XRoQ>6 z6*2vayefp=E3t+yw?|NO#&jK>tx8U1&(Zt$-sjvDftxaWE(=rjmt$K zMMLGV($6Fj$)YHO0sUIFGn9Q}HmgFa1SMix9&+TxBvZJ6?X13 zYkcK|+uuj>z{FCI4mFs*WPD`+7;1l9iTl3lWRkw~BX9vqm zu>sM`l+8uFv$#}<+xA7sBQ8~xbtVB${4dHbRM16{XJi+hpID}GDrj1n2npxEMr*tT z)DJA`SQCKz66A);k|^87r$LPpB$Ylc@9H^oW=t7-M+b=(Du&gy!y{!ey_`;`Kyg^? z->t?Q5fFEm^5~AG9e<%SShwS(u@h(nf!YZ?X0{|@q3At-IaZ47FYWyrB5$YiMl|r! zcMBs|c1J}5V`Gt@{JwI*;W4g|n*CM{winhw<=SOm;}YRlV*VT;p&%+c@cG%ov`IjG zjBn%p!GW1554jiWYbL|^Clv8JJhDQO?b6(>*nGu;|ChQ)0qG#jo|t4QMv%mb+;oXR z!Dl0Wf%51WO=c|aHtp~9n;X_qa-0&}DZ-gM!l?J02{TC{f(XHVWS|@ylMj{;hqfO& zXBdjIKe_D?0UzkVnAL4uRRHcR^juL8Tp$}^pUz{qLOt%b=uA8fOoDD(wSWwJafO(~ z&-Bsz7_H)08&?h3cf?-G`cC79u|&HZ0v{X@Y;ZCUnooG>QOLRCrawaV>HD%Cl@H7@ z!3jO9oeLA6!7SGZLnJB~JUst85uExa^YWaYJqxna(`n^r?6%0cX_{o0_tkj48m-p4 zxC82YCd~FXHs?=~z?bLX^Lp4rgwBVoSFhGtRq=ut7tD=_lNAvwW|T~c@_uD!my=Cp znk3RN!61<|KqO&H`{zT1h8PG|-atRj1v|GXS+~*4p`q&Y`>0TB?4>ICQy=UJzrucq z1MmA{;`il0v$*wG6_*Clxq+fBKh$Zuj~^0 zVtnhwoEFfue=9d5z=~i`2Vt5M8~Cx{ZoK99oPE$6Tvn+|74X- zQTNQ%js3y|PHNHCQnaL@gJ^IkvG{@VnnsZ178e97x~Hq#1MjQAVZPq5)$s+bE;fqg)B9 zXAe{0&eaLxg47!Zx(!FdB0_)<&jK(f$N`ZC9OHF^#Qu|@2OH(i`eAv`y)=Q*1O{sN zsBc9ZkD%^D;-8O>wmW49VL?k2aTpt|xIZde?{7q{R6S9}>_^Coc2tX#%)(Q7hUsKH zUfb{mSOWShlgD@XeTZBJT1s8zALLY_dqt0*vk|h;eH{?>_;OjeXRjZH>ud;y}~3qNthu_2*Krj~vf_>wKpQ39zSB#*8;8 zconAm-Rw-!X1H}6{w9>>O2WFb_qS&hOM;6yi;}K)H3$G-O7s2SjuIp`9%7(86afeZ zjQ8CXfH9B@<|$s6Vs~P?oLWe`hE^tIL>8tF8#%OAu&5jl*4pjnow|_gCkm9G3zttO z35gVq8BpqjHhDR662@c*BpT^O#vIoIdkEx0C{Ph>85@ z+nG!UQuyg`sdS_RG@VW#@UN+NwY)jO9Yq>`rdz+@SAA|IumhtJib>uK1jKDGd2=nw~fS ztQTKnsben=VJH^kUqiwk7GSrStg)}B;d9v?C^K+)*o%)NT9+p(;lqxcHk44T&F@Wi zf{SS>S0*T|g^)ab9%S^-$b5D}19#m%RrZtXXmj{CRW6_wKVX~DUu0Vi`4;2QR%kI;fJQ+t7o6`Y=8LTD)dB)Z4Rd)9W{;cLRmH+omoBV5ue3J)|j4|%; zX)M&hI z@$q~5-hYzCIkzqjb(wa&c3CY({5C&_J68`GUAk9;&DGz8z81WrJiCe6szDcGm*JFE z`x0f3x7-svvs(T_U>9aQ*&98uHi6S*wf2pjzAikr42s7lqLOA_Xuz>5jDo5-5>;`@ zGg|Le9n_hl;?!|FP{%TdCExW6xDJ0oG=wT z<@Lk~JP95sjAl8p^@Q%SyKw`o4{eO<{Ymm=;rv&pQBBo4udWohJP4<6;z8STn12NZ zqJE9VW-#du%uNMy2}}psj}Dx<56g8Cr!!>Z*YOs-Zd0lI_IfaLNU&%2!*X}QOut1cEN5;;#)s|o?y_iw|Ob=*FF6j)7DuKELzO84!t7|#M z+)m~K2VrLMsDe59mCpH|0##{l5?o=AI{LQWfLJmCjZrkSE(D&BGX+>HcClX93sGxO zcge5mHA&pJqEz;pXkxsGkiC?)yxC!r!2#sFf6Fi$>)ed5`LcMR=e*tH3s5Ul)Ag>f;fXH45P5$*4#OgmFfDe_e^e^C}+znSS`7i=ju3jE6Y}tZI*p!LyQR zo^oWUV}kggGoebF&|bJAL?<{u)|?cOfMXeih;9?YmQ&!S(+s0yY;fvzWgy~CYOomS zRVkSAvYA2Li3A7)B<{-xhr4fBP)Ha8zH>9Vt!}Vrm)nU__y=OS_XKsQ36YSWKV%;} zJs7KZpSaiDuZmONtqN<<##h?9oU+l=Wx&sC2Fl8B`qoq7j!T;3aRyJ+5_CPy!s^^pBEud0EkV@cptP%yPR<YY26i-Ed8%n>zQ9L<%kLU--hL&gEu(?%+?g(U{D>McHC|F7$|ta$-4?gfv)n z^8($9h0eAE62YyPDXNFmI#XkbP~-qqxt-p)OmJhO8LfZ^6JEJ3*;hrOLti+Kszj+; zq7GUSMG4aTX>F6f05sgeHXN9n#`zqDH>zZsw@j6VHqlW96uCO6h+?%@5Om_+0cp}( zt%wU?h>c+pjoI@*LNu5As4W8?v|dP{6=C`{TRP?_t;(1z)3YmuMigSoZ!-2qH=>t> zHMtuk`nwC0-8M?o-h!gm050_TFtWkDeTrcb0T4q-s-SuxgyF=a|nE zq>?W66*gL!lIffom8hDL!gyB#yGq4_6dP(@l(<7NE~N4hF8;9vb5XnX=vE;?;tqSS z7t|jeC=K}tw<^spFt;l0F8J#?YapyMQDbX@7yLRdj|ATb{v}_#U+GlzG2#_r$I^4M zbRE8H(v}ar4%LEGV10KH+`S1RNUM<2>n!M!Jj^WCm{F@Nd$4n&jIa$Q=}>E5jJosa z%%GH>|45MKf_P#mW|e7z=YDNux8KcEnjwjqVUQw+5_O%1M63`cuddL*`LvM&vQkPI z+IjIDXGwb61Qt+4zDW_U#tTQ*dItOH{6`yR?mb5PXQ<8;Pxo>1*_Xfug^p5`MIP;o zs`0h-tw?e z1qwhEAe{`84sFoQ>ZRVk?3i&LDtyw?^aat-C?OlhBR2~y=98K-Mm%o*q>)sFKpB=L zJ!a9L_HFVV;CGh1xqnwoOr-_5#BTaFXYy!3xDt8{illAxIy-!DxexpOqP;px4-_+R zv0kWEd)s-$?_fWC6P5R7hW!)g5%0Y;CpA&51C=ah`E|kNh>xyEIwi>@iQW=EBBd2J z@+tNQhH@#QRo9XNeottiJ>hS5ep- zlfKz=Ypmo=7+Gm+_pvIM*3*mX*kSmF4#63Gj>bHdY-6k%7XvR=;Y6@B5Xn%v^NIYwja<61L`s zmKc(&p;nR0iSY9Pnc#@ia|pAc@SE?sa0rWG4w~6*YpP-U0oC{XtGhq1A1XYSN`=0x z8iK}^@~hEAsr*#I@y?qkLJ)2*n`&kpb}$hP zTlValCPtQuGOaVY!_-iuBn6{1g`RGAzVG;U(6||l^TZiF=enZV31U+e35g^BZJ>#- zYclVZBtkC}pEIc+e!-N6e-Ks{k1Jl{nuaYUI?KG}7|K#f>NbZ;-MMblO{@?HJxe?~ zb77;GD03N>aJ?m|b|%=M5M>taJ6=JJz@n}rj^yA<)fJ(D0tO|mC=~Q40oM(8;8Exw zeM&|YvWmZrtnwO8nW~-pgOQwiL%zlWE(mKlgqfvHC+cu(QBE!w2LuU_am0E-Kg`s% zlw=DFUP=W{CuHlVOo~{r9;C>fB8KWLOeW9mM4DTr_4egTnXS-nnqxcSDNuYY$`w^K zY{;0dqo`3^B)G)mh zs-^#DcOT#uKX$;U+4_ZQvDxf?Cg#&@qQ@yzu7H`H z>hmktorAm*Oo`ye%r-Gc2>b^jy>DOtdbftS)L5QScKZk%+_=~33vqU=&QaG+Ij3NPL-tbMIoNKnvx7q$3d?IOr z)K*koU2y~tx=~B-7i@6x^V)~A8To#d?hMfMS=;aT7$bjv9$L1?q{e6{{mK$A*NPCn z<2Gl94@OejPwsdcBrq7q;-O$Nd~D&|glQT%$f%uLZBsZN%CPnP%YbN@B(;Z7g!U-P zHtVs5glRI9+reo@@-SV$chw)<&;RNW=hw(TotXLz2H*QZG_$`~Adzf=8w~F05W8r} zRD^^kk0(9N(%o4!$Q%PY(K~;Hz4?XwV)sfwQ{p?S%8Ft#7Qw^>ff$=Ew7$ODCU>{%S&KgFIaSb*ZI7EQrc#zGFyOP~ zY&~bF_$SONR=_YVrc;ORsd0<%iaDUXk+Z^s0Qcl zGVem47kuG4zab%E2ZtRbv?stTF*IpY`?smePVLho^ScttuEN!W^WhNEMt&} zJ-QHf5`D+o2fu7%J)go}fU4s?a*B;?AO=S;f>ap184;s8FAr!oe>2jnBv7pM97_@i zkruQ-5SPE){4C%${AZpST{|!y%3t&~@ClARerX%q+Xn=lh>R1arkD1l5TL0-U1|fz zi1Bv?raA6R1(V^)CUZLy19H&h+IqQKyWwc7ok*uSxiR>|MGw(Lz}B>HbVYpk#{N(R zhD20-weH+r?A%c6UxPbg9-iPmm2{Z(T z!6f5L1gjOryYii>2tqZN#VOZ}e@(Sf%Ne293)f`G6_-O~P)6#cQWcH%`K!>DZbO6c z&CdBx7fOW&W~^M1`7&1~d%E!-U1O%dJ3~+&3+s~c_q(jrmG)f3`7L$k>c~(1=7$)K zzK@~`2Zp5aSk6snr}i{Ak2tA4l`mVZ&X;Z=RT7dnWbh}VN2Fr7Ci4Dvk?PD+RP;DW zK1vXdUCbIm!?NX`geVN$>?K_ZsC~Q|ma!w}Fq)OscDo5^Lg&j`a!pe$5LmO-gM~?^ zs0h(o>(HFkGP}cF9Zqk?sGh%2)ndCuA}UmjwV2O6!|@Ikzbp5ve#83BmbOXKG^TGr zJ&MQY`yQ4Birdz74|Y3q^{;kRwG4jMbnCG?Wr^Uzgb(Q-1$)7@r}Fdg=r5e#zYz3Q zAtm~jb>_UdLVXe<>Gq9Ezt(W(S?t4@y647lP;j=mnv5CIK@nT_yr=akIK<%6f8y|8 z;Z%9c)*PYIek8GE&#DP5o#G8hR3c~1qoL9b4MrLWpgEkq3x>8ym^785&#%n`-coCHLQ=6}v|OLHOY`lfYA|JgFUadSP#V}HXK z6KwVdS)6cJEioe=XhqzOOJ%~m@Nq%DX->g<|91__{BcuWtFHiZma|NC7kb|T?C-2Z z?Gv9IJ6Xpo*vENs^{u;KOg+PKx5L+FAfwLP;Gl_l++oS{NhODh(_RDXl&}iFS0NyT zoC!Ij?MkdRp+yvJ#^#KC5P{U;K~E-5`Mt!5S7Mq2t8b;R^@^URUl#NnG*>!!{ zB^htEKweJfsb}+1ZJ70H?iV&>8{uz`7NVHFE4vg3;ad6kR5dL@xP+A`1_6_UDCb%B zkvB^*zSIj7rylS!6lNSO&Xl%HCm)1#YqI!uEWgLHtmYkJpyZS?(gOueW^|i*#{;9b zpgwjdfzXD|Xm|s8=FZta_~5eiwGWeoPC1aLE!IkOJE^JpYuzSe)i5(qL(2r_#yrQ@7Vwt41--m)!#<@_3^ zkeM)X)sVI{Xkvsbzp#u`$SM?wl(@t*Vz6*J`23gO7^qK7Q}IHd)bAjFzYo)4?aK>e zYsJ{AzN<=XB7PO|hNt=h zpLZZ~X(F3bzQ?mepc~$GzVN(Ny%{4gr{i_1ZC~Cma!bpnFNvmwrQs57CsOziLY#Tr z!%>W`_c(ODh1O^KDQ6&CP`{RdAzQ((M;)Gm-_k4;^(hp*784aiBOq#H;uD5!^`IU` zBENZH@hyx7kj|uqiD-kXkYn-DS6De+Fb9R!f^E1muk)VWYW4hnzp2kJr*Y@%a6e78 z@F&=Ut!;8K3i6N?DQriJHg<)AYw$&gX`7#R6!;f%2{xswdCZ@F{o^Vt#Uuo8$A^u-`6fe&Yahoq~GW@K}&}oCGzHRNh(`e7bcsr zKKc{PVfI{I-qQoXm;d5Pr^j<`OrCAOEsBs4l35#KJT%`#DMh1g7l_AlHNry8_A{i8+D^@iCqxh1?+o5%^t?!TYd*d24=*Lc{>cQ(HzOcF- z(}i9L<~>ySU2&}f5_Q}Mo|l4WU^cP)^b_98wMKOa^I^G-ZxQ8uRv^|5o&^5y*m(7L zo9jJK8iIA~f_wD`D{`wweX@j%5{ck8wv6A7SrtrrD!0~Z6^*vpuR|O|Go#fx*_lr+ z!5*6~eMya_@;=RW9uCL*UD^~KPx!M}(_qcF*%Oyibc3ao0MUFjtd$z$og@sMqA2Nf zDJVAyr`cCc*`E}s=;bj*C`hT8>7%-dB83?jFiaJKGoJA;jh)_7RXs2J#j;m)8Qd1Y zdC|xfW#=B3n+Rku3|ji^ByXepGSs%Vk?+#xa2pNZYf2y6bKd1vPo&c0aN7;lFJ&_1 ztpByZ%3=PTZ*@!^mTy&1Z~$TI0T9(eCp&9JjH#dBUMmMy21{pXdq9xW6h5Y_N zYLR+XNHdTMc|JkOj@{qpc}k9F6@)B{~+K%v(^FHAl5ddleud_3t{%r&#bAvsUqbR7^k(z4ql^vH;-$Z0M8I>)lZBWIg5B!QR#vq z8c39t9WAB@z~HdSl*Z>HF$H3zZD%u;?DE#XFHG9r<*gt5%p+<{^;#U9i~CX~u-vP`G4~Xiv&15}e_E@aQ8dwwN-*P{E49+3>)hHuPz-V=`ss*Oq zRJ}(0tHW_51FDd3|4GQc9J7s>7e*uselfsk%htL&vbj>dW;Y5UJf;p0o6T;;&gzXO zJ5l-9e8VCyADxfJMzbTd<-Z$8+YMs>l{b6o(wCTKkwzs1t2mRLxf89y7{^D85_a9J z^}|hUaY)Bair7lqjb4{k97w|~x{jrzNFas}W}D^a3Aj9m_DxHtM{m)J24CCkpxuzUW+@yOU5YU$`4gF_43MmKks z`t#Ow@<;phR3@{X-7!c5e*pHIn}Xq*yxrwGY+nbx(3SJ?sQAw>VYeJ!#4fDZnUT;R z@=_B3G&y5!2K+h3H}wHIVSOof{o!4spjzA9h$xZADJ4Aa>o$#S@6>mM;-a-wr_KSN z>dXrWTM%`m@`5B}>AUP?w`KK8j`dSa>hV6#3E3^*)93UKL^vvo6t~^o&NiI)v6PH0 zP^a~W-cr!*f6S)OWs-F)MrWSz-uC}&oZ9`4p9U(Y0z)3W=kSjoEi(R!uKppOJ<^6M zpEJY!^Ndf9$&iK8A1}gGDzSE6qx^;QWU8@tvgmnclMfyR8SkZU1peije@Y2aoQH@$ zL{sbpoWin;u!`|JR6qcJa;lOz{q1csXFTjTko`Wa3T%&{;MkV$T?d9?*SXQDl#b%6 z_T~3sOGl8Hx=PhJ8FA5xMqV+nVwU+{!$%vm#Y<$ehr?a$O=>4Br+-!LRpzgs_IHXs zEZLp$X146GGIZHzo{K(5>O_coGhz#RIB9g9HJIGgPPq`k{ zDOYG_rT7UsPoxvykJcw9ic;C_rn02UoC>>&b#a1`Q>p^w=41kA?M#y%frIMTc}dQW ziNnp7z7C`C0d>Zz?6dJ143w2ZkG;(J%G*)RYDPu}=NXmr&9y0DcjFzGVO=TIH5>`}BCmhV2uM@JsV?3QfNFpH+&k`m(kKlut zp*R(BrBEmA4vSY6VYkC8!1gMYt5Hb%Ey!tylyLET>s1r9&guB4uABJ#;v<~&@2ag% zvH71a>2WGOYU78zEU6cn9j7M|LvKBHSSyUaPAO?CG>vKs(L~DRQE5nb(+PVlX2+q6 zv4~TkAuk46hWL}tGk1!fnrq$uy*Pr+v<6~_CFJfz0%0ghLCr!Xj6!L|v`EXaZ$UG` z()~02KKUZECSN~ifFIvzKo3?Z1E&Ih`k)j4M9u?eC0X?!uHh?dI4@tgd+>Bd(NNsD zbsC4)6cPUtyRbYU&^{f}(*a7#tnPU3jzbs_`&BX@!AqJ#8=lqwLk&4dNNAvAIgL~K zMI^BKN8o}z+6 z`tiIlLVUZAdejU#r#;|_XHjPv;JI4hg<~(uoDwM$1oxyW&aV_}Ima%MjeEUU=I-uV zgHB3k=sa0GUmcG?h;Bt5$h&ZV1Yd-G2%&V|>7S&{$hIXA!S=-kao~DCWO!wh5yXfc zYf3cU9m}q_HbT<@k#uD|YcS;JYTz=T(>KohioTILockvzQQv0M<=w!o6d^rst4_Fi z)o(&w-#4lKrE+1T7^KkY&Ha?$3W#Kt+fi5^AgU2dJc|*&c1-sdlgP`5QD~mhk|9C_ za=hk%?Y;gfp=R;Xjgq6llPp16yV@Ej+O=6B zYSl{LL#ri4{AX3ot7F@zy{;enKD4n_wwLn6TT{6j$d?DM(Hs;@8Y_ILfzbRNw_AZt zAI8K?L2CzJ=?(5x60)^jb?(QBEA&2fp0;k;AXrGo@=$~_Uva;pmHINr@6kew{%vIT zH&L6+3{i3bD3JvpyTHby;iM{$3aRb4&`$^&Y=3=%B<9J{WbcV)ToFV5AlNH*t>xgM z@PePFDu)dBoz1~bm_!^MhBV>XP#h-B$7+{(V^1M;U;HzKQePQru*1B2G~PW{usbfd zOTKQMqZD6-vGpuW3ofvRMu^-Cl?Pz~Q3t%$D}#J^N|-?ENc}AwVSr02IB(|!g5sX& z4BWJnApDuWJWanrJtQ3)hYVimuHbHZR+-@OiJdbKcSzw}HjJxavP}6np7yc!1=s&R z5mq5P9Dh1H2-VFNoGP&hp;gBWiilOzD)IMWc(}p$0FR}^uMP-j8^!D7AozOhjF9|T zfk-hgHhZbTLlsceJgwKYwe7X(wboE;pn+l?cftHHt?5K)>WBZ?GWWqff4ZmEW3f&d zIcF0z7@efd6VFgUR|{cB%!bXPcAn}Q^9a(m@mg;J|0QNwP(~IQfaifsh}3W)m@o6y z5KX7@(I?(x@BL2S_65YE+26)|`ix>qNPmYdWSD7tjuo++^M|zL_`DaHyeFy#&r-+w zM}432VI@lSknhZ-uIQY+MWzOHnS31;{8ht1)-0@}>Cn;v;ISw%5A6nrVM14aLoi*H zwd?Hk*^fnz_NxB;&^nf7LxqqzU9DD4RV`%JvP&6!?BV&9$72M+Sxsa5$J&g`pipG#~lf=0QQ-m=5oGTWG)uge~<C7DY(b8yf|3i$bmAMiU=EqYS^z2x zf*};lzK9BtUW2NkhPco)hQY{(E1vo|rsLo~rW%rR@CqgvNu1!L414%90*06$;RL| zqXh&O--gZ$K?)!N0~jTj<2CcI-^(l(RTEY8%BboYYerP4F%_obI>HqV*!b2hP(Fev zc^uTunPVHT&o=D8ve@|O{cze%rFD-$cmFEj&#)x-P*%2-lZ%SI3@w6Z;v-aN2TegF zk_7sS1e$D}*6YTXs9Nr2^v7GPqep8pG1&js`&|89JhU4;Bn&yF&zR@g;Wnk+Y)$d1 zLhDB@tI~-Cjt3H4_!HLr>GGGLq@bmsQoh9>S}ioug7uWziIfa|EY~g9wFGVQB@sD& zD%2Hpw#nR0=ILzT-?oZIM+GTNcCk*L)0bXchSgdjlk3_P46I$nE3l@&^L}esA?ogq zw#?oYKmKuLc@{WyEwqD|$y&`RUY#Y3T$`O`w!{atbxfU*Oo2 zl6*#>w;@9vW%SpR(RUa19`ezL`q)>Q^b9s4AcsqKd% z$$jm<27@8u(QWgE5RrA@E9JVGMz(_A}oWj&Qk*=hv?nkbLd*Aa-7lXgih)MKP7uH9)iS&BB zgy=W^Ktp$s(L!8gBoL;*daw~}foIplPqq8E;doOR&-m9oq7&o}gTA&KlIpauspxgN zrXuIsL~r|+$2DM(&sVw0Jj*WU_sugs4;T!{Gpd-~JEudjw|w!!cG;1|B9&EP|OQjuLp-n?JFKCU6YH_mp1`baYJD%cSm~5YqQ@S>P zKI;;2ovLuC!(I`7Uk3wwtUw&{OAja(8;DqgM_A1pj*c3vjQwJX%0I43CE{>Cyz-$j zGJa&Gs?ZkcF|hUv75ZhXAsg!B~FLHIk-DOJc9K1ch#Gc&GwWG%wWv*K|J z%T#>Ub*n=chCdvdYM{y-h$l`~)mi^|V=GPGd$UJG)x^IbL8S~Ihz5V^!N=NULT-#a zpn3!yAyti%G#$tY746Ia8y#sYvx;b+RKNE+66ihqYyRmKUc5(q@b!j{GQO#xchvg- z1oRFI@o%Z`1kD2p;vpI8Lu0{Rl7iH+=65!7=$c7+NgNE84lOx}6`BmQsCayu7G}iK zg{9%4RyZECdSOIEM;Q%T4AmjEfux}Q;X0Y2>M==~R0l@-xFal@VL2KZ@;Y2Ckn1GY z?>_R_j?xPL0?%ufn^QOI{Htn_5G&nRl$ zVPww{C$IICL-xzUO9#O3l9B^^>B4Q(Sk+4hL=qbjS;uhJMFeoxA#1k9(fDtB=>q!b zN&t9WDI6S-(3kY1p=`p-`j&&WS(jtwu(j4fwn2TS7CEm^vI{e&)aJZ<7afI}DT#}iTma6$r1)?A56 zCXZsMza2f?mOEkcPWtq+0(Y@LjtU3%$7S{BoQo9-yF`p_aYUe^KJ{rsNMbM0y5MJNIC^oC2@rc

    2Y_o* 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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/fonts/roboto-v27-latin-700.woff2 b/docs/smartchart/fonts/roboto-v27-latin-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..01d05fa509b7f91526cabe90c9bafa130e4c118a GIT binary patch literal 15828 zcmV;_JuAX@Pew8T0RR9106o+I5&!@I0FAH!06lR40RR9100000000000000000000 z0000QWE+|u9EDy6U;u+42uKNoJP`~Ef!iE`!Z-_r3IGy<5CJv1eg_~7 zf+-saeiiK4qk!`OK_YwJBZ^?-00<(VI*O7_I=$lmZwGXUtYxOa{8dzmQcxhgqwYbY zSbSR3!}OxQi~-+Nxlb=Qqm9iw6_iP|Z9QY{h%&1+21U&k9`&QtFC(nQt*K^99FF1W z`VR|BKJ>s@D8t7djw0;oD`NaLfnAH*-nPC*9Y=GDAEB{NatR{4;J>D^d-p^|GBbZE z1{_PFn1LB_J3K$P-rq*_U`XT!+K7WOVpMD+Y79rl#()teh~x;V5|j!R7-@qDtzuy$ ziV`hg-C_KttKQe$uhpnlOKQPrK$_9g&CYEf(5``DUAe0O!+)W9&+*5|fa?q}0#<1F z96594c%M4I83}=z-9>PhyAV@()pffo(zhVn=7%i7G?IUZaM4@}ZHPq`lK_Y6?05B1 z1-E$!%mTs$BDzgj7+Jsnwf$v7B8tsI_6GSu7MnpWY4yZ;DSw%5-*Vj#VYe?DGfqpg zmX#3qlWTiv7Ah7xN5s2L9!Mk-N7Nb#$z^j)65OmGzVG)#9|RFqgrSnKt*#ZjXYTy? zPuKdhk-?W5r2+f|CRY9Y|F>n9{#(CGX!<5D14bQWGA`lCDc|_ltCFgI{jP2vt6QUi zl0l_5G#Pp%gCv8dM_#4~I0NcdFSQpDgM=c?DcU^qnaF1&Z;*!0_WxAX^?y=SH6L~7 zzGWH@l;pZO+X8)({t!UWGC;W%(!Ea69VkEIAiXCdrL-}9bD2`=uy~l0F;nI&d!`}& z*qfDy45{rcA`;^4{k!}7Wlgkoug*MoEoLZUK!k`WYTe`aJY*aH#*6wXCQ<`db+-^& z4KTt!{@`B@hTkCuAm%(l5+s16N(D)m4#LI;$&mwcUOq^x4ltvBfk0q@tpMAB00Sfe z1lR(W0mQlITRQ=nd!~_0AoIY*fDj<_Xg4|x$Up#WM@t^LFER}90$2fp+6w&jvaZ&c zzi_A)>+@kB8p9%Y3m|qY;c;mQ$4(^`GI1~nVI5(SQVLNLRYi;5M5aV}ZtebQmd?e< zXmxaMv9j65K~lL(q~SI&yxaZ?MI#~)z%W=h;~*pm+yn?hIpm0=jydiWEF2AZnzRw< z(r3UBnI&s>95|wIM&rtj2QQVXRI4HIqsEMzFloxP8TUQ#(5yMnz3|d2?=4!gY{jN6 z+rHYd>!)A-^S^x%?ZzMwh|_hLJ_+whfS}@qh1?dzRQsWfsD`DTZa41(V(Ul%8CIZx z+S|D$F0FBGg~z7y5ntFAE&{dISVqP%fk{kZ+WOE3^Z1BQSiooNOY0V~gk`K?3)}dL z9qd|rt@(!U_+kBQ#jh&Ft&!%t`v44$u++T-7wzT|`a-u2`n~ra3K3yeZTfip;eCu3 zqA|`5bL)xFn34*UnkjZy<9d60*GxOZ6L!6 zROI6e7O{k7tn^2)B#uU%8&R7v4@wKREM=>x?Sik^!S2bqAj=?z3%H0{@*5l2zy>xX z@b2U&#Hx@$hE+_7g<9HAC&i6`d`EpDEMf`ESh2QZ*~VAwVE4_3Q?47WZEnqj6KaWZ z-}v}3jAdJ4yatk*sS4w7f$bUL9x<*g6R~rz&J7_`l%n995l7rEVL~=r)k0j z@8O+y)jZ18>GZ5l*M(wq-TmBWsZVn*whHTgr7qloc(~8K(r?}C7>%@1JyBv!w9r>V zw|JFk(t!$2#K5+`D1}`clpU=ufP}2SG2x(pACV1mUporOsCnILFXi-7QQ0Kq&2{x! zFKg*_ICGyKpU9tP{hzJes0}t(Pg4D^dh83tDkC3?l%$~M^VPQRM2h_%_HL}+JtbZD zwDs`tZZa~|3ox^la9b^M^@BB)RKEq|o{!dYV0N>6*?fn-CElH8Q=2_+9y&)UFal$% z)ReHhnwEttf}Ue2e%hA?^m@J%sbhEMcO9z^74sO-gE(#oU`qi(3K+4$aEBa&ph5#5 zZ3aQTIU;Ff2szft@*Fr(;4GB5CM$F2>7d-?BPv~VRP9@K3>kNg?_Lp!{m{G$!~^~t02KC7vP3{xBp~hGE$A=D+vx@K9jzU-&EnW{=W? ze1L6}JN5Q{G%O|*1V0+?#{^-6C=x_JiRaHeTj&%*azLkb&4&V}OK=bmq;M_{I3I_< z?FjrN9A_(Dm#-%_4iEbg39@1nxB+b~fskk;7!1QrSUWgNHd?{t8j2I;c!#jprtK*+ zmUjNUz$g$L>8{`Y`0HN)_{xArkRb;KMw~q0ONQ|4I+A{}4v-*8inN}Rml=p4vePg% zRS!OrrXma>BX#0~1fpHe053QIg_}qq76!7aS8j?14fpve1E6|6{JM088+GI8(W_6t zqE|uYZ60(+lxWvncf(D$+y(>j{dH%3G;ZSp`W=k}#=gS2`F(-YJXL?5UIq>YTmsk+ z;DRgchyV>N{sjI4_s`V<(4hAM)EUizh6e8msdw^_1c4ZD{?F<{M!4_-wwA2kRh@=S zcx1`8Nef;l?{NN{UpvaVPz-7?Lm0YYHEf21;pT8QypqoJwoYw|X8!;C=l2hQ0j*wx zPF?Pr^w_emR~U|T$L>fWirw=fm0t1aM_*vN=RhMq$k0}UTqDfzDSzO8g&%X|4!UzIQN|JN{aPqFh+M#*j%UbQt!K9W(oyCmE7 z)l0S;Uaf5Z)eTMy*}=YUVTUShrVGV=!JhY6+V|z?65hdEeff8?t1p#kOXE_coVmo_ zILb4UO0?^T?`%GapTT!;c+=RyTe;49-$eDLMxyR|c$NNYlGR_y<=pp4MiWPE6FhR+ zhFk_QpKQ4)X}ouc_fkFu@3UXTPNdz-`*JpFM|rLCtJnMyfve-CCzS2KYLD;N-U}0yUR_bfWh$|yZhl`;PYft5Bq*8&^=!gUay^B zhYkDZUZOfSS%=q;f{>7}C(_;JOKsSZpO#!=oFGgr0ZK95fx%4{HIkkQY{Q)(94wVt zD_rUtz~E*v`-e}B5|=vEL96F3z%i9rV{?c{I77r%IJ0kX5ws|^thDehckTuD zW8T`?n6&*JoK(g%Q*lNiAv9+x=Q??!`|bQC(%lxJs-&ok2_Q3*rA;p)PFd~a;=lj} zESDftMsorQ1(9yoK$!B?xR1y}Zs9d$gQYw$ z+zYx*QSX~hLpSS|l_NjQWy){l$hRdrCzmSd2Sae2tTn`fcZFT7n(j5dCmTJ}1?~9y zdV-oPckrCJzKY{D_mas;l5Kk6vt2=IJc%{`5rnU|Hy=}nSO7WFtyosE@*WDq8dT~_ zkTjg>l~t=#eZGLgeGHTnt@O%&E~fe)dUF zl(*H)8Rvp@U`JIB);c){UvKAZ_Bi^<`D0)2f7Pg)`IXS(b=W%6C)oTvh#$iKFl+Wg8tENJjeQ37M4(!T^N(C`BOh~LBUh7`0Q(2jX3qnFL|pQ-B2Jp^ zTycD;at(}hN(EU3dAtgTmhKMso;zTa=(F^?)Tx5+DP`oYixcC;xDsjSp~hgWE>C6O zkW27-ToI7Ub}mhg7gMTQIC}@tI-dfS|q_n=D8Ze@7&BRH`k6H&mt6O2HSF;1!fRV z=PAnYlrUG2WtKDJ;W`Xp+t--nv-r8cm$xzHIpGk_>6yuqJ%yM`H%O$J`kvbPoQ*%j z1$)fOvV9?CworQG%WjSUDkMXZCD0Cwsz)f?b81IhPZbg$cjs=%OJPFU*hZUe!ZD{p z5w*sebyCug@l<^}<4*>Ob(2+`NUXtyV;fTkGdy$hCQts2z|w%F84?S#$RoTmF+OtA z2bKcnhW!pZN<{&zA5M4{LNS%hK23u=liVFHP_x550I!(~qR1p*hWldu=`EqK0f~$P z9`>}h0kSF9PW&VSy~9ZqW{F{%61vK-#i7~~AVIQpJ+=6#rwiHqT$Y zus@Z-aaJc2lrgUn2mjw)pIyz`WD4@v9oJej>m<)E7)Ed>${Md1`>8sn`D1@q{=4@+ znq`*B3^g0Q5n7@U*Whp-oCNmjZ{R_soIuhiw}Q2>hn<Hw71Di)cU?xNuZvFLaZ2w>-V zM63oXD6~3>ShV@F$oby?apJb3rXhPy=R*HBlDy5FYzrdtH1|$j}-e6MG46n z(QYcap_|6RAEWd*$*Np!%KCoumNgW}hCfrAt??)rj?G}GM}s4QW)UOjIHMaARVz;5 zBx-YKQnY3FTz15AKdd81^3Vz7^L(phnH5>RwOM*0m_yF??>Kxgn9k8knK$1{&0e^M znS^|(`BiqQS0}naIXA{Bcpbd3~tNB5gas%e<;?y`l&T#4MM#fh0jbh&^&yk*w zFBr&b!m(hND?xHhqM6hDu)-><)i)_<*vfSIb%GVxWDn`**`6@%)4FkgdpaL7Iy4ZP zREj1I8d-g%Ll{u28CW(f_oK*J{OmDQM<~{RRsEI!z6J^;D6Uh}Ax|_~qCg{Z$R$)< z#oErr*PB-C8u+YvSVk&7_WD#Fbe$E&i!DpC$g-?DIDK{CFPELhvuQfGepcS5#fN8R z$99ktFa)BVS2ML9e?_PKC8sZiDYUsu*~631V>f!d;@`i=$Z;_F8P9P-G9 zJmB_aLtkOaI~sh=g=8Al)I^PtNrN(I&U(m}*dx`Ahi1%j4tM^v%wHHGUbrURK3|2@ zWLLU)NOgl7yT`6gzwP>eQvP`LZ))1rd_-X&gIp^r={o3J@JuBEC-?!uC%U;nJ z^{+Wnlix-$@xHMXM;CWT>(g#qUKgC`46SUp%g>(O5Sy%+J2EGkXt$VfY11HAU#q4#q-j)D@l?ZjX}DHZmfo61Vk!JB(p!5WwPDXN zS68blpV4#&hQXg`oGgxb+zL(jiqEKly+abSfBnS)rq*(tyZWSkXHs9QxYC&|T znwz;fk%(?i%F{_NG3=8sQKpfus{a}8Z0+m74hpLM)_u3H4LgXI9`J3Z2YO$GwfgpY zUkzb+v_O|h7>p~8vF`d(kw9LWc=6qv?tY2r;}hoQ%VLKqWhTE}PAdKM>*Y8zd_Jqp z(mm2ms+3k8Mh|tP1^c*D!d=Oj$TR)#0y3Am-re(0X!BJ$b0WSw{+`V0>KpOJI~d0^ zL9Rj3OxHJGFBI!G9&A}{(Z%Re1qTl84Iey=%QJzYE%WbFK4W)Gm9+ykqaUwBEBUb> z-k+(=_{2yXfhQ{Px-$J~zVy7*q=a-<(DxgmTKM5Dxl!2GxMX)!OwZ7~$cKV6iyzMw zEXf!O1aI~-Y$x7<)mIh~q${-Ih{hm~$dZ`2sA5mE1H#I9VKrs5iMcfd&N$;FgWlwh zrK>0QCfwusIKlU6Bq6acSj`<9+{C!~^WF2gUvH2&bFa_{5BE@(w?{~Xwud z(9yxgk9OLH-b|yXU?VM9VU;7xyq^k_w&pYPislOwg+ONrlU`>fWC3=*#v>bsEc}Tj zai!r6o~OfWSDN|ur^@?A^bNWRqN$Ze+CjD%)H==$~<2$Pg> z9m+Fp>95!I*Y3DzNppqll%S#Amrv(bAKao^Rd~ADTU(L%ee~qiOp4)u5_N7PH zU?I+k-MsS{aB*h$8r_U&4Gru<_2IB2E z;mSW`)(@hRvZLZJ)GdMqkHyZ__6{O(U-Z3xlp_{A#3HkZnpJGcwkkFwU*21JmFFCl zujkLq%}3=gLu)TpLtFxUoC9J)v1DRRTfO32P?p{w`5^+q#+V)puC#rZuoYoNxMGUD>b!7D$}{BKiA`cJr^e z%y;=O4*r01?+V5xg$IY6O%H=mc8>S1JxEuHcHOx%)QulU#gS zo-&a}AUFz}py9l`5s8rjLD4Y@JAPUY$<#PkEq_<+&&+^H1)eL*kqRt()%*-BG!7eXsG94Hsv4`}hI) zzY_|!KBF>Hn4OmJ2hKOGUlT0eOte)T;OHopb8NKjpk_fc!4u+mj;ipp*+!`j-oz7v zPW&PW{=eQw`)(q?yR<#&eeWUp=jwYH=?rk897#v37Lw#Y*CW-C`lCr!8~*xXhsrsL z5PGy{cGW^DbGQI-;|k_EfMInur*m%@T|-ye%`39o83miy z)@ZtL`sLiqzyPy@|81O_?)6O&2;i0|NO`gvdMWOcr;g>h?vVKEsB>o`2!5=l(XZIw zXx`G8)}Rb+-$@3MAZPM)5DJDaZcL@!hj;cSk@~Ml+-1Soheq9 zrzyrJG)f7LVkjd{i0QjC(Pw3fT+}|2em+h@ZBvEwrOE1NPf(C$Ket*?w20znZtQ#Q zvDW7GN}vdoIdE7Z6#5$p0NsnUgpHL-SNe zH8SZj^*xm_Eg_7kW^>c0sQ(vKMwo4GXqx8p*)i|=O13k`VOK)haD+afwJGfAs3_Rq@&G>K3-H_9JW{kCX>m==pNTip8;|7Vb0kI02)hs3MeX!&qGVq8c=r=;{vQJ- zc$}!w5zV`lVTu;-rqx9?DX^-^dQDl4g?R60^M*!ZZ#j6f95UUlqlWs!YfP1JL zg&D8J!`J5)22T&3UVZ{!snpi0?^Wwt0M}l^C%PW>K6%aK;pKbMnj(Gk#&W4;vUW?Y z1%c>i`vSVz|Ea?EoNi;asjem68rPA$14Dhqp#~0_x>57osO;mmsP3@tzV(n$(cP!j za%)qoH|3uxE=at2g1N2uaq3f}-1YZRBNC$e1v&%SL#v9!S-y16`<;>(O7z-u~Ue|E2gs4SJaQ& z0eOEg|9A1m)uGZ+y0SAnnZ?qd#fCL=n^queM(VANO>8b@W?On1YFJnh+(CW`zJ;f^ ztyh}o3n#LnAuP1EeyR3iD6{FJ2ru5u0F2#0i4HDB%Qp}J5S9H`{%`TzQ0SyfyX&<{<^svwZNU4>)~WUa&?xbad(u< zl!OhQYvpcbIUF}putX>nU`47Q9K3zBHYOfr%;WD67T?k+I zP&^_sBQK<7>NnMvY7^ziDwnElTwNf03^cs+;_37CncH<$Ro?D$ zhkYQLvf8TrkT^#dfm9*up;l{(+9A%b4QFBB9~&DYISd=fMN3jA(I{G7`%}}=c1jbg zsa@pKSo|rxHpTJTs&8|exl_^Yf}OE@!8)g)w|1~Q*MXdPD|4ZDoI*&^y^3WGeIx0G zJQ3ZtE*?>NDEQj4xvEEH;|5ru$^>u(mKwlT*trMn8S%Ys#I7O+cpUUz|9nhp%vf?< zIONifv3d7%b76RC;tG?|X>&-=_Owk!W?9eT*h_~?igEZaKDY!s3dvB_%-O-XJg&k! zwBOEx=4e)jm~*xHDE>3I#L(=4&DopJdm1kNys``0b*$~FHjbVa8fdX{#O=q=qC(Gx zPeOA$+$)zZ@<-(+#Mq=MI;&XUCTYDe)L_l2MXC7SY4!wR6n$-b6E*c_S7xLjGg;2l zIp72Sfb?H3kY#x_Lv*vEv}iFose!-0J1?WtkN(pcmhv zjoJbcR$5XJH52WiVtbRM^V%qG^?X@Q*;Dc3a5PU1tC7iwsPDZH)x@AjG!Zz>Ha-y| zjBptrcb{Ud=oP`G3q==-7LZ3!?K(U$C!JGcJ>1ixY1DI3UOs1IA{|v~{cBZJyL`Kj zYX*FaNU!obTpy(MPF5LGZQ~11tMO8>jnjE6t&CPR5nWQsvZZFh&bKXAcm~g51eJH( zu54Ig$5M@}-xJI<}d-r8RUX1?8PYxeOk48J_))s*WV}8NGts*OTC;rzt4!dMLWd%Ajqk z?2_zC4KsGbyhvf*J}C;d(cx#q%N0^KdQ!U!y0e*;VTMXhUK?Iw11HIkj5>7x$GcBi zcL~R~eB?rq1~Yvs&*z>8W+@SrGBwQ6R6fhGHuCv0P}2D=IzhLVXXYv$6@m9%$@5t> z<=^i(``!@K{+1WtKhXX$P$DRebYA2DhSp}D6}iy201r*&voi1KH`W@n9d-8}ee!^>UQ)kxLNdfIj7@{DC4LdxKHt$svk z1Gzkn%%6WR)9k@l*SD6I*R?<;oi$Az#U)KwF5Ks>VEDn=<4&4J>H)AE67u=Bf7_|L zAahz9t?pr+s{q@7Yc_1QaqhXLa}vJtXQRD1d(Au}C;d!fN7eb%z6{8J7H%F89D%#4 zuYPKVP*P{_tsWwZrEWDCq|z%)>rcj?rE@W zcx4sV-g*vKXBZi#m7<%%Y>Y21YK>>6rV&^=tl&#={IxMRZaFZ59FFE;Pvwb)kWW*| zHm9jY?^I22_KD}y(&Kwt(~Fv0L6z>Scdu4On;0JQcq7V1LoS;bx(dNuD{3&f@zx&|HrJnm;EtE{ zx*4n`{h>OS4^c%M zHw;C*W5$Ut;B~}zM``K9sKw)IBBkTwuEj}f;HJ8%Mhy!se*o)m8-cj+N`dzq*&C}| zMU}$~HdeLGepQ1$A~sux5*r`c93=;EVLK4-H0Z+HOpe)O_L_ZWzcEmk++_X>0K{2jQP>g#+7ZP4+x^U}+OL!han#P@>hbos!dC1vOQjZDX+`NiQa7ix3 zq?s|9ow(eXJSFZ3(yhxyWZHVde&CzW2BUw{`-SEE7%O)=o6_quzK#E7pY?eWRZ{k3 zjR2q@@5`Kk{#J8%0@GIg1y$ix&1obwocd`RVU<*JO$Q+5PAp6Syk_~{G2<9~)WqH9 zAVz-l_I3EE64A+A^$;xL(Y^y0vR+R)HjTXKqEmY<8)ezUe@e7^Odt@y=w4xCKN{i- z9-wcXHD64e$^W}k$a!ZPBj|cYz_UujgBj|M#lg;(~QMO3ib zj{)Q3y@QRBc+2Q=32#SD@3;0iI#Ap8h6x@I(+R+y{a4HhzBfcBcFKZpE-AgRV?~c+0PcMJcP)yz{bKpVK>dWqJ_uSsK`8W7f4N6>Yb z7fiRL6S-d79?gLm^yy<_*ShxFn>f<;*NF+o4PEE%>6J9N>pr>0?y_}FoRZsdw2K%C z>|=i)F)z#0=;)l9d~)X9v2D5K={V2$^s2Ogj2x>^7?p#Nu z;#HMSqUbu$@zO^bCkB0V_w-WUCjk(ITkec8xjo%a6vI&(h3M%>*Et}^wrP?BaYD*4 zMM|=>qql&JDoKP*vQ*lq&}Hy6K9EGiG#ThxWms*K92FR;+f;^Zne7+1nag>t8E1m%E4 zFgC7yu4*r3I#^)QrB+!Gz*^((I}7jfCMe62GC^kOgDg@BLzhmX&(4b|Hsw|u`U6n~ zS?j3};K{r(xifMio*!T311zJbU>woRvnDqtepMJ^3BmoC=Z1 z3wbv$OLViS(|`vV+<3>0=*1h<61LuUri^5qeJ?rbwl~>FV^T=Q6%I&I(v48pmLl7J z0osU8m(Q0^Cdal;Hjr;@Vm#AqkK2>U=At=A-((@!%x8_`m2UE5%|i#lMY!78!qX!4w=t}m%Y{hXdmO5etRAU z&U*s-K68BE^Mb`{tcAr*>E5O#vk0|avs!1~QKd;8mqSh1GzcxxON5UI2)djPI;Dw# z)Fn|HWwz89GzC+Hn55CWz@Epj4umwkZd4zGqhPKP0g?bVMWd)GE}PIk+sNcKAs`rd zf0%OWxz?bRpxiHD;5nE{wO9ZRn4Ys)m}-oSF*8j|kRa(|8B?!aL_@mlwJBXSNbJpN z2UBgpdzeI4Hr)>Rl>m}GoObh9dui}LPr1d-NH&7gHCM38jtj5{uG?|`Kk>wST zGJfnp@&8Kp4UAWilX!PPFxrZGk}N5RS!go(LV~OWnPbTkK-lc^E_fOxjh$@Absgqm zU8y&UI@x}s&enQ`qA3O}U^6*O2FV*z3H6M^DR?M;PivXz0toygC1BFek4F`^huVvg zjdt9@DAm!q*m&TP+M+{qu*^z?Xf(yn1QGP4VL~1ZH9pYEWqdc64qhZ946ti<0CaaJ zY@W9XY)2@7q*xy@P4bK1$%P?M<30aqVF)5ZK@?DW3grW%T$Lynvyn75EG@XrSQ$E%zqy-3zf04oKAG-x6?tsoGA zcij2`qO$~Q7CTm(-lL!)IV|~&j1HUysF+EdLxIA)3?8p`3rj3b`HC^&$M8muM5^Go za`OgkF+4c}f*u$aX?i`@LP2VvST4}Cm1{Cn&^Y@6=eFFatIe{nVwvE)SO|Qyx)9su z(ifs!qAhDSlR~pHV?HRildfok;7E<7xFLZq?n_kBhc}x{+F+rhE0fm{^Mmz_)Scx( z(s_q8vIkko6dBK{YNBre^TNn84Z&%#irIqkl7QM|Li*%U`*DPHnyf`IU%1#oFkAJ3 zleG$c(PPT4qF3PM2-U;1xLFW@uSOm^0a>C^O^?R5 zQiv%-btlQjB9BZg%_s4UqD0B9f!7zstH} zQ7qWJsp2zMw9c|Vf}Y2u@h?hFg4$1Dt2-CnL|sI9VNtH(i3Q#5l7Z(8lP@Mt_YdF& z{NRx^ryVpC_SUnF8zKbp7v&VU=c1wn`R72CnF3BPU{D4`R4gByqEYhV?ZQ*6&aM$% zN2gO7jj%ucq_##3*$tI|j7+eWZf zx`?QZ)xPq*%ScU^;jPetyYjBZTfr@7+`hF_1$shcbS@guJEA>3-VEAz$y94Ck10ru zt>)IDJBo2fwX5`+C^2xL&w=v`WD4PuD6FEY{iw3$VDu1x*RS+~(r^ri2>qN$`=lyw z*Q%ZC$L^&v=z2<4*CSK0PEVAKs#Ggnq;=|2>2&v%(M8jZ3{2V{Kg57xV4;AUtA*R| zycxZGZ|%YI*d@5S=a`A_9=u;bBLT?CCA>icCAjf<)lhj<@vHrrI(BOl z&Wey$FtO5vFbaOawTQ;+Bw0pr=1F8VABXHn$Y_L(tNk@hhf{2@=|Y-b90}xiF%byO z6XcToD#Lm6QevOI`@KAv-Wb=&JHy0Ewn?Z^DI-nZGpcA@jMhQS$8kzp(<`d&PKSw6 zb1(piVb%Hnqz{Wm@9VDK>aV)hkeXP}vxnJt*iYFX>f5?r_u>9$%bEVY_20pD(sG1B z$skupV(2tZuQm#Eoe`m=Cg?GfcnSjYjblRlDwq~%CFFoGNIYt1NEp1=9zkPi1sx?| z3z<6=4l9seL9I^pA~BVc%k$FjB_F7>(MKgUUf3*W8*$Ohi~@VV_p|B(+B@0^%NiM0 z$wbzSxBYs-uJ;W1M4mYFJjoa#d|WVnp3pUOZIMu|RzIPvr|h^^U68o~SkOi~c@v)y z=)Fo_nL3*@tvpxJ`IeZm0s6G&lYE6H(ruu~6@D(1z8(i(q6l^f%7TEQ+*9DMsr+hD zc`m1Wjdr^&LypdfDLWXRdyH*nMD%4VMJkp<@KJuzU37K2e7<{A_6z6R&w~z&YH3R$ zNjp!MY~;cg!c;$A+BUNeL#KEOr~g9qr~8+MbAC#=`(lkc$^)1Ou51Y{rcZ#r}aCV|G zB<`;PLI;?+Ny^drjsvp6NcI>7J+K8-x=0gU(#n>*!R!Mv{_Gv857`;pUNb>t9qW4z zfRsA4PTPB(Cr?h%V(430I#zK2mRHY|)}bsZ87bd5j>hRS^C}-0ce2qCgJdG>;G}Vb zP9hg4GVVTd_DT`5O4FRZ7pw)S9=5j=Y`Z{)4A|naB1R_Wb`5X@$@ff(#|e?iAo0-# z#jxj8Qros34;2D9$4eN4M=-zsLfxHG(sGTAO(ti3utP_wM_08nL|Xil4z>A6jmf=+ zR9>)#t_xRWw6^#fVgV&6RDjmZd-$X-hC#>t$;Xh+sfOCokA^n}meP5B;76!1V|cm? zAeo>NqsPXrI)2*o+QqoS`^(HbP2{HT{PZRo#P$vg7AC=Z8;!1kLryeVIgfuhT*2cd zf&CCrt8*w}3I6%}$LXw#WgtMu{E(Jsyf)wvPe=%)3 zYf5_o5}PGt#4%6jIcszHVD|QqE3e|9#IQIi$BxPz{PiZgPm_PZR&tIo0Fd}Q-a*HjFQ_}5? z6{K)VgHXo2^&BlK9it(6L-9a7v0v>nj&RXP4BE7AwLCf(;kLr^YCdJ7^-_VhW%oHM zl(VMKjR(mS35CMsogV}OC{dZwWH~~Ll%m*v9AN=CO_~D!fq=>;wuD%V?6Vj}@(_)Y zIA-vYc2e-MgPi}{ZwoulEElMnD^y)*wH&W6jHAW3!HyOfx9e%M+B0LTKD=6sQvX`& zJ6!zGUE^SfPr_UKKPxjOW#NRkN6luoX3&CBwnCUZGn9?79Ji_xcLvUfD87?{9k_h zWQ*afRX5)|JgFxBpdO45rf?%3X@Md)740&Twnf?HQB_mN1i|n?FOg-e+h&X>+?bT8 zSsY&{s%(LkDWe{k)0rk}+r*s-Ew@fuv~Hg|H=ooUN>XyQuzK=T9P|{zvY|&tpxP8+ zBmiqIMc3+@xG<$HtyPQSzMe(16g0+=QMN5sA)($=a_E2ojMaKwKtyEsJdMoi$jrvp zlNl{)HPJ{T#ZS@Q<^Wsyy|y{4E-d|!VyqCNrF(hD)HroaHJ5}HOI35f#Ggs6j_9dt z6zf&FF+Xt6@n*GPp zzw=730Khl@lph1|mgeWee#bC@_A(sW9UW|heF*{p(XESTT8w>wMD2pr&yhn%e0l?MI-z`t zN|u1)!!*j0S)~du6(*I&q$o)7fqWG+uQP%}QD}%S4P_xb6eUla!YdKI*i5upW-ivL zQJ!}6rTZk?YQrN&}}iIl45S0ns7mqS_NkCM_n-19ci z$%1p{%gKMLCG> zB&R8kXYMnfGr{Ui#+}ZiKFDlAS+G2yxQbH1-hzJj`Jc;w0KM5vgc2pq+C96Q2?} zYKLVb0aq<4A)RFO3WEG{vy?Qtbf-HLaYdjcTm}S`XsZ_~m84q+2Z!3yK7u{ETuRp@ z+=@WSwhRaeX!X*nriiS(I_s~9uVGQfaQ-}ifKdubu*C%euniDkC*TGFRsz96wFcY{ zAjd-lc`8`aWE>ACA#yDOj^}b%w&I4__3jFDGR9OmmIRULf&`0(rVdN(W1$g+%TO={ zoSZC-A5~@SgPC#E)lrxVFmZrLu~PP@>X*a$-VqHG#f+9!88m2T?Q#@4beJPhy#z;# zu3I~65e%OsC+efI5S;q(xLB1BmQsG1pPv})u8NnRZRhk(Atg&~3-}}_Y zHOC~EzGZLSS8<apYG}Dn(8w% zu5zNH03g6mld}dO{dbIZ`-%TY{)_(qCMGN*3IG5l{V=f~8H2`y_KL~NDgCfb0049k z0Dw810e&VFQ&JHG0Kj{HcsKy?Yx{HVVO>s%o(TYel>W(+|B=2^22h!ije-3S%lh$Q z{3s9Nl#bZQ#fbm_fNK2lDE}wwGVp9udovpV02<=Q!}_C6*H`^YGXuw;Tp0cz56u4r z0YEmhb~pVAf5zaN1psXP$iCeQ&5do`0042EAJ0!8KnUdY*!1Qm2F5=u>WBUQPoI|a z9_ByrhYkM31V18yY6mMaw{iL}_wZ*9Kl1=VfC1HUwzf0+@k#xR{p-i}3n~KMhQ`Lg z?I)J`(f@J@fLVYcZ4GQpepuWOoBA2o2}^|o!QRf%2>_7Q|6$1gdB1G{#`X>-KY6l0 z9PskvlPEBKA9GuW?PCN2lE(n+{n!SR7lh4J0pYO*@WaFjQ5Js7vIzBRFR(JAGDFu@ z)z#Eh|0(-Z^T!!o4u5Jz&Qb{9NZ|Y)9vKl@5#Y8SodRmDeS#!91Im20jxC!$_JZai_GdIB+wZRr%ZDm~96S==zD7U3FG;xcW9Zr4`zAz&Jf|VJQUu!(i z%^2>T@!fAWFyBgEy7z3Nygsb9zhy;{fYaXAcWvz4Zn(z4f3cB)XkhFJ^(yLV;VKUs z9n|&F_VLWUpO%+#aH1@R78_7m!ij~Xh9VEV-)8TX7Ea%G?Crm<-^$%JDG+u4Mw?qK zA7+l1kXAriD9carz}qFnGv#bZ8{j@}h*P^GMr%kisWRfhUL7U--4I-DZN$a3 zI>yXB;mAEh_q-sEY{AqxCkvkKG&e;l>lo6IMXcX>MYLQ^xusQ;8CtIgro1|&9RD{z zX@c4sEt#hjQ!b+83h<%{y;Lu{Ja*<#l4T+@*<^aG5fXflok2VI@5rH8yVmjdXtYD( zCQZvIFy})aHwpX%@qL-~>_5>pk_9H>4U^EzB%OLKyoKzMBS?3}ocXO%lU^^+#Sb}% zWPQrqI+a6)?HrQ=R)#Unbi+xxaeH$kf>y&uUjYgIpf}`bMrSv+eQq z8tv{;wS=T0DQ(HiRm9w2QF$pBiqsR)WF)_yMIFi;UC2ha9AY=AU&ahPQu4&#HIk^e zVE%Xg>5695Q!so)eTHqybcwJTtm9xux24@e@aq<*thjkPa=I#4qFC^R&EA=B87&tF|1Tk`b#j?;gfnSVfJm|`eB+9}c8;WId7agcY?s+XQ!+n6%^_+1 zfP#m|PW8E?v1d)mGxRGab_1?jw|Zuy@V%3#AIdYsZ|E8PN%IQs^Bd`yTO5XC<3TaX zl-;`$hn~w4b~oABuO6+lYA$DJBI63Q)4H7XrG|?zwi38`f%8(S8I59iqMPQM);Ikr zre-^q^R6ELqbrb3Yx8Eu#!YS7PcalFknV!h?tTYoCHJ&P>C6T8@4r>|#A|EnPnh}~ zWwJVaV~&n=fh5*71J6FJFXr$oEd3+m?eAK)_2TZ0<@KHFCDp{D&EM;Y7eyfa7dM!^~xqEy{rfQbIH<5OgZUU*T>d0$9m()SwBpcl$RonHv|dNd={tB|Y>%R0D)=w#fO;s;-%51rOh zJ6IqHnUe_d+7OlKK#Kl*F#s}4I{3SdlSm=<6eJ#xBE&P5RGNOl5u!~lC}*Emisn!W zfk`gO(;+xh)7yZ(zoz2mVv?g1ZG>OWQqvMl% zdC${<#7i#NO()n*_{*mk9`oFS?0;Q9vM5o=JdF&>%Q3Gk!0?RBI?~+YL~@UCV~rxX z1;mqMI7THNy2ZTZ7~PBPkJ07*Y#MIsI`JYdTl@$jc92t(+>i&{lapBzX?*DhNw6Sl z2rSGET_iKn)mW#aXr1SdPv^-+qJA)@M=aBCkt;V!cNJZPqC*`aY`JA&UFMSZDB${z z$nXf-Ui0E74FA$g(a*!OJ3MzzhdRv8**y=IpE&V$xF2Rux3t)zwtGCMxR-qJ5waKv z^)1G&wL2l6gxV7|2q)aK#fLfGn)imNr$=}@J^N&qJ}PF6!jIW+jKgv~ZM*>G8~ajM(lDt9XiDs-(?LSZCVXJpnfj76Y~TQ*a`Kv?u{5qNy}gDx9Y zp<{8{>)OU)IqRZA@G6LM@SZkHpeM=*v|-8B7vo5OPgK=SgJu4bA~IAEKuzI@ECWMR zCo%F&t(T0T%uiw(Zz{|n3Zl`W7f}k7t|NxzU5GcWEUKCDQl5UW~aqPVFSlI$-i_;VT z-&&9k)d2}J006yGMBheU?fCqq^OPvf455}YS?FOffnH$GqD4S2~{C!(Kyw`DYgN0WBk6ys$pQ`KI=ysak?4Gn%fHr9e(KtnE z&hPeg1H|HwqKCzm(~U=?cgVR3kv1CF!+7q*)O*$LQP)2y1eBh4_ea&<#Vo~u)(ClF z#v|ofelDKL`a=TuEP|~R@cYBKM~&`mqO--2`UgSQKWePMz~r$g?4G>8W0&()ERv74 z9oq*WkJTNcIOcIoZP`9Dzb0==*-DX1pqz`9^A1|Ofv5QaW-8Ft|J!i~7o_=sVVDLP zh)Lo`DU70+`$!~6n1@(QY1HfD1*slr{*EF|RKTn^skJFdqOQXk21(tgj5Z z<%_x6`F#n{hOi#Bwn3l$J~&>;6&*dRppLU&-rPF%Jpyb^si*nMk9Y9h_$u4`zOsQ< z6iXsOKKt~=0^ySd@{TYB?7WPK6J*;f(-V!}KG}s*EMV?>c?TA;sWs|BSCzNW+J zVEd!VtXX0@cZ(5O*7D|3`)YE;K~B=UnkkU{*$MNLr0d3MRKw+k!91@-bL}D*uGYPy zyYdChtVU@KfkdZmw2I`}$+d-T^uDfG&AtUbu?bF#S?TMK6@?|O`HP5-&=n15ml8Ki zdq@3>m`n;jE4!+5G)XPPFV~VFxVO<K zh@b6E3hi_IjPCOQUAv(xsz_Z6s8jU@g;wX7>Qi-p!%B1)FUrc5wH+E$XF4`R+w1yE zpR}n1^Fyw$Y&JAf6bM3w1Qi59AY=gn7}-YwO2gW`LbRgt?StyFX5zBwhd^-YMg`N?y`1uk@rFb#2v zf_*j+E?;Apu%0jZpSY{Rq70FI1PMaiBA1_v+!Fs4DD&}TVkh4@<2C*Ai zbHXO-;OvUeoQVIm2C?xIAoFt%-2V1+Q%4@e9wHE3+ErQQHwcU)NjVqr{#`a>VT&>} zH=~M8y7ClYFGr>FSQ-8L=kE9X49N@DKzFqABB#%`=4XY1f>G1R{wEcMrH)MrV`^{T zEEf-4W#Cr_=)aq0jwavIUQ-Fb?ep%64>@y>3`OfjM-@4iXYH+r*A=5L?i!OBti6N9Sy>(hy*`3ce+1>I6_akZ|HR)J#(xHTe%tNcqpFh9NBomkw znumtNtr4iPt!3dq)^V{JDmqYWJPQa%}%Cy-L!(H*c3aj z1ch=(%Fjy3*HX#Y-%1+~o3E-U%demR{3ferW*jqG5q@%0Ou&FmOUTIcPDJfxd_J zGW;vJ?E_pICsK|_g<(SPchyCH>a;=x`tnp!CN3y8QmKq*#nnhL%RVY0;ovlin9LtUcB7}X($Od)s^@$!DC!0-~cRRdm%~vHd_jfGs@a`>>dzMeoL}Xbb&fnL(ZP2tO z#6bCkm}HOf%4NWieTnF6ZxQQb9~X6h71dblwv)6|ZI)PM47=OQb?UJ|`hs=N&VH{B zHxmBJY{@5wo8Erf!`bWa?UY!}?PetW7I~l0m(J7c8IA7&SPh}v8HELb^`a>WIFc}h zXrv#%S;I9fOn&C9$u#TJ;Wk9Z^lj=0KEh=LjJWC}>Qy4r4xqID5-popxsS-t>t6wt zZIp6ks&jC8*S{-7Y^-uzt`A@>jQJ&~gd|rmHbUSBy1M4Ba8j_kOp>uYWGC*0w`0W` zX}z$Ea?oKAhYM^p(kp}+-|v$;e2^Lq{&xwN8PAKM@ZfKAEYEWD6mje=D~*aqK!J!D zHG|XMUi{bMwQ!3oHD%w~pI8|5SxaT=>Aa|s^IHD(`Pj6QrQ4tmQF#E_L}SL%Ft z0fHG3B6q~l*0!Ou#j^o}RSc<26h-ChbG!QUz>7)$ba16A9RbIL0~(|;_m<2{A^4W> z-odJWPCj^HPmg_flx`ITpC>Xx1kfny8FJj7KLJy?fBdza0RMgnA(>||0~h(PT$A#U z1seB^_OW6eC(Jq)B)KCLyk9{AfP&01n^4<4=>GPmuIJm;gBQq%Y`bC#U8PlYs8}`L zOdUwu(_8)MPq!zdwD{(S=I1f>4)?cs zt&>jlQ&3I-0+^Z#LPA1aWuB7YOg@9b$e>~og><0O#*p3&Vqidkj- zX4^^y@O-WPA*!%!2lE+p-z;ts>N@;qP99^e&kN?`DotW{w#b%o^!c5clm)%JJAQKQ zND)PSMbVv7-p=>4$~LYyN^W?9-zKF5fm(Ji`NVs#q#|aw@;0|&ve#-uCH^h{1i+M4 zA<&DbU3rtwj{^aT7;Mfgm9G2~8O+Ufpf=V|aqE9%9Mi3{;Lsar(BbB@tK@fvnrMcL zasNt~F;~dkk)1<8XGk-ELQ64$iS+!-D{r(-|ZRcn(j>v209 z%F3=e5HQqNNVXPBtb^zV$!jPRmnOqjY0LJF%Y=|)5SZsyd8jOLd9ctof+sBQa*g-WJGDX9r|Ahom}Jb+`T45wvx%e^1uP02J*rnUK?x*wfw zH%z2fecAs0it@>n{FuX>C%e1g!tCns@p60#QIo2yAjlLMzS~!d14-cnf~6V%B9#Ur zon%`+*^A~`%Nn}iy_7)rJkDSMHIXj>B>m;q_C!M99N;x5Sw%GtgI-{MrgePM%n43_ z>s;;c^~q{NGrK-|v@bkYKx(qo&vG%4vz1*Z;hI{4SL7-E+ zM$Fm$7RvwzU!y^O;$kqSKwEyIcyO_qD7v)2pa0^i~?+cLUeFrW22`6Eh`2L3=JvV z(tM%#$4P^SoH#y@C;8j{!OV0gZ?}|%vqcx9qs7gT&~T|)jOX2x&`2j&#K_ZV>4#v` zGsb(Km+m+)JU7q*zYYGRW)w_=LS^D-ciOXP3?tbZIi}GodEx$*c>m;dZL?Y@tRQn| zr_G+47KvxJK_X+s3uA$j-tnMz23%>eW~;J`z%fT8C{8#L<0x8u?4>3me-#=u^hp7z z32m)JgTwE`LIrfb^(zUTW#=PJtI4RYGalWu977#8_crTduJRiQo=*egMN6k_tk*dq z8GMd-pU`7p1XPuf2H*B*;+>ukt8Bb4{EStQ4JWtDBiPrI+Q-a(-mY$rJ2a>ZEnY14 z@24mDKZwWp1ycVyMOKoV9c2GB(U1JH_EY^lEWL0d(CK3GeMCV1w{$8tZ7c*Rk1q-U zBFbx_Ct`|lM9nWN(95;m@m(Qk@So%fP$0qT<5YPTF>mO*_~lfX_|zZXo01h+q(W%n zO>oQo&k5RWA^38>gsWUGg5Qq_@FzUwVnl%ZaYano8_o=zHfTMui_yRn%gC*L2sjz3 zBu#w+v~4Oz-js+d9#&(1-~1dxR8b63_iL}ToVfI8*6x(hi~WPuBQQmOf3x$b@>E7* zOOMIJQEFsb?OBgp#D6DsN_b$n?VuzUJV+XimQL~mvo!k=PdOFy;UgJ?&ov6IYon?Z zyZ$kvGV@d#&_Eu1fw-D2A?*)Q*-xvP;Z+Aj`yH?7VGJvJ`3iQiE_H!==;LvoXScxx zdw00v$_T8Kia(IlV!k`^!Zw$CQ}gQY({LuN{lhsj%Kr?OaWJ4tq znH}shN062-WS07CP$j7Ls*gDxhH1<%~@Finsi_&{wdC9|iL5#UUzpvzuhV~{bZ$-RvwprCYV zxf&*(@X$Zsu{ocqoZ~C(7=hU2zO5~HC(&bh@J3i857%?UTk0n^C^41gG!CVQ_Y}Rd zQ`aOh!bHj!NbpSiOEr)5OJdab5bccDWWz(LMf3IZLT=tStt&iE;0n(%67;=EMh}0X zW8R**IZx>usUF}xs%^wB8!1N%jTfiyNxwACp+vGH&SW(}bsZQ2y!q1YXG3!{Ytl!J zcc_qS6{S0M84W~V{jH9$N;jr7Ta0O7Nm7#H>J?qug-BTcCK%r?dcU!WX?*zIvOF_7s$oDF>66g}N6W)>^sJ<#dpnnt-2usNllN);uln zJmt-bj3uz7M+(pZ0fFW~{=?i>bt+7K@rO%ysIoK4;-`#PVsJJK)BQCC zBi~B@>Y=}F==LOi_1l^YMD0#uzQ(&d_FLy4y7QV?eNOsNhtMsrhJiA3qjGukJe z_Y=-~G~%5t|M<$6cUNC8N%jWEl|TL{*`>w7BCB`C?-pMB*+lIxI08U6j~{#^+r>v1 z$bRRm3I$8ss;9@1VNEJ#FbY0jOHDPe_aabkJs-#0lLZ5IF85*mbTC;sd}d~6KJaqyI*#y0h8iDnhzhbDy+U+SiMt2X}@((H9m} zE_g}Pk}2P-XcUTFg=E7TE+bq1`)+?-B_aH^+N&eRjUr_dpbF59{1IreS6^@-W{PC+2r&`UiCs$9i)!=BE8^_ZSr23UJ zm8qriCi-*5Q9`zK=3$36*TZYLzmo$Qd=iW2Vk&&wQ3-BFtJUE7Efpvq*DtN~Xl%^G z|51#9`hBq%|4QR^$4ULZjKfIfc17VyyzrZIxWZD1FrYoc0auw@2kvbDpK1v!%Q+1mAgM z?EE(bPSY&L1?|@PqSZ#L1fmZwf*>zd4u2z;Imvo>V7IF39B}A>!2|VJtYaW+jk-+l z*d))EaUZL;WMeP$HY9J=$2|M1B@5g2THQ-KR-N_-JJcFS7ZLfn%ZK*sJfH;K9^p8+ zCBfei+^bkkgy=e9@dHQu?VgllItAzwT*s{?0qI6;V+eyapn6v`GHCmG*esy*n?=|b z|Ippy+b4oSi)8X-2;!X}aL7y!Sx#6&2)CxnvATWq0Dnr*z;pe-v%*ffBOx|-Zn0q~t(QqKSFITkZ*MnXuw78_ zdOTIkwciqNSB|GDhd{MdZ*f=V2S^lsKw)Mq)ZvKfKL%$p%{DTkXnfq9b2ABWX_z zB3%c!8X4OV%;6vmRodg=0l!#aw2r$`r1n>Y-jWZ3p4{EFLx(2ZG>&^5er*h)2eO}T zS28IFu&Lk=$GHi*y^pl?bSBSRU7AVciOfOmaovHM!%XQn&un)FtC~_<3OXOwF(W*` zH#te^Wg>T^M2g(UhLlBSH>!=~xqXS`E2XZIx4FShb#;7fPat05joHRDZ8Uxe zn*Hjbu`Usw{MO%q9JJ%h;&c~&uAu}kx#FcJn;Z4X%(6P|P(t=F^=+&&cg;0W5_LI` zU-5m(Y@DwAN=60dO2s{A!|^lMWfuS|1AfwPoKfrn3N=$u?t`D?3%;Lv=loXtz!GMH z(uBeq;$l7TzTd8qqj=>>@ITouheT_T>gZ#0oS`M#q~Ty3Q|@#`qNCku`+bsl?aiy* zn3HBV$82>xim=)el~W3I){r>VsB$O4|BB632jyZIy{nNs&z@t0=aQ|~quO1_Oht?y zzq2uPuL>Xca8WbBAF!q*)4?pk1uDwnZanC50B5o85BXi>TB@u0eMdixJFId>t-F!N z>b;xSAAc$swsU`yFmY2#&#St>>7CTT9klnU0T$-}9(Ckf=YR`Pz)|>^y1d54jp4ec zpi+??3R6UdRxeyNiVicRUzIOJ=*0t7sQVQGYP7gI(=<4+4NF!x%pxNveWTL$l$*|T zc--4lx_OP);i3-w602UB0bi_2 z7a8-wo=Qrcl#b-woK5tf{qv;Lh3?9kn(UW3t(N5(pT4gEX3QtL2z~#bSbZ0uhz~K( z{bSX~i{XvNr?aA`oYl-kVkFnNa18;4b#j$1r*t){r&wUKSsv_u$e{xyTv@Z^n{jw5{`VF0R325%L? zyd~;3h049n-D`EKsqtfZi7`?yf6GbuJn3+bR0?a3?%~#=y;ux)52vEPRhcAKxR@2r zs8e9ovK7@XJz4(l38xdratzc_VuPgIBhi}(JcDAk>AhJD%n?>Ua}r~^sn~ApDJazK zhY0?2JUjIoIm;wY?fS^CWZ@=Up5&ji;6dlpGPx)@f+-1vM7$UInztI)Gj4wF@PJJ6 zN?IW&8ew?YxRkEL-LSf${xd(bLRLDM=sT%jW}PKan_*4n-;O$ek0XYw(P|`=WroMs zR4*_VznMv4w>|)0>4h|N{7<88=2i34%{U0wVElnByFs48i;np(6P%ON)4mJO~L^>x+=C1Jdp5( z;7KG?)$jYkLBNi)>e0>)|AKzKjE9bJX$=)!qJn=IQ%qPZv|2t_ZH6~vc)f+*pWh6U zlxZjx>2YFEbbOq@`P}L3wLEj;L9p(WtJHBpiq>qJRS$Y)sDdN6(_{U5U}f(LHl7eYOmKk zLY@|N!YAd9hNpKg86@#Kqm{p}r`E)kcgxvtMHLHYX7r}(um4PWJna8`mj#SG=|{Q{9;UH=gn<|zbCx4%L3eqd%wdV zh(t-CF#_>+ecyIQH@H~Y`B?2dLCqBkA-IK!W!3%5IrD-eFZ|ch^w? za-cX5F6X9;)@81|K7P6w3AC<8nHvmJBTxo5_Lsc7=Z%?L5~+Q>o12IPZnB>B!&V-|*4p zus`{(yAZ;=(QTYnKL1rjs6b%-ja&FRRKtUoTLEpkENlhKgTdh~ysr&IrWeLQxP03kQt}EsA5j zU+UsMULs423V?ZBhjSpz`opuMPaoasH`H6}7nn`Z=Cd+zHdjwB3`60}f|Zeoa<=O6 zBc!7pa`^&njyv0@5OTqd5w)P!^OnJ)b5B8L{#g|MG9nwtP$2C>9EO74ZyaI=WK6#y zIOo3vJX@=v{)PglH+tJ@%?0Hzcsw5PGAhm61EKQqS6UmujRIqXd#fN2QIc|ff|>_1 zm%_JmOMHrxbcZEF{2O~BDu9t)K)d#m=&pSO$F?vBbP*w+ik^Z;YzO`}tLb3T-;(i8 zszX{~9ynDWWNxWJ-Gh>F+S4jnP=uH;3E4D--EU~qq#(x%*L{KJLP2c{3x9;ae;5a} zlA7EqOL$&|qN?B_jJsZ<$f)a6GReTLATgzg*;_TRo?Sw4Mn-~1Mg~X7HwVy|#hk8H7+#8Ye+lR%? zw{s_QMV9F-nGAp(u}xvF>+)FKNPBvcHg%!k-NmLjUr!D%#Xp~mdwS!pQ@@?7d&)ot z31*A0UkY)<5kt0(ya&(m=vMaB@VH#69vWb7b$MRS9>k1Z{TuM7_wvLAb;&_}NPl{s zvGS?qd~$~&P>))U;Da{M51^}$8A8chZoD&lO&ZF~2Lg-1mg;s|HosPuEu*saFSlG~ z60u=H3=c>5<<(gA?#o#;^#-%$Q&_YLCM`CojSsk3hTmTiGmhy+y(zMG9cU2y6+%=D z6OHc4JVUhH*O2GJ8*_~IJ2xZntRP=KhgVyU*6m#3()-K86mI+b6}((6n$KT6C75e( zSX7W=E(ZZk_Cv=i8;o;cYCRK2e1Di930P(SaUs_S53T|@*?bWMQQCMsl{C)YP2yZV zAl1C4su{0M)p=FZLAJ1;^eEC%H|xc8w`C_dAM9n|rXVCg*VnLJOA$DOKpYsM{00^3 z;RtM+))fwNv=8j~1ypQ;IB-t7jUB^e%q&oWa|J&JRKingK4CH04$?Fz@SQ7M8qB8b zcaq{0(!rGR4pM7ZI)c)idn(*3kjJOo4H@IAiCOSP?#i^6m&?CLiAZe)rW_YvrS%lr znn-4CJZpjdrQB=0>B)_xT4g&R>Ejb>N|{g8fILj6q(91z&aw4rcE5U3-!_YM8IJvg zBDB-9*_a!avoIu5B01tQe}|LNn&hT8j_R`vGt{#h8HRheY_-?foD~#=GcVI>wmj_@ z+hC_8$ztnu7I7La7thd}nCRrhJ6kMAkw!wLRBviOO~=d!BwS|I_sekA=&d)m15S>& zy*XZFuP0m`>Tj0w?h%EtF$kr=5`DMCp>CksiP4Bf7ojVPfhE%lf!jH?6Da5FDHGCI zpkOow7MD~MybI{REEQ2!dnnMr^IKh$S;ZA)^XbORAI3o!{Xc6}mOJS|b``ZIKC|7& zF&8QA%y_#Y{S0vD%)8P>7XtW}EVTbhrNkkKpyAaamMyi`)Ym6m{wg`Q3$}Wt?`4pl z3+E8lJ;;Nmi67{2A=W9xl(>VDsFpD;sAX#Z+eutFvu7-Z)y=pTQ{|30cDR?GvKO_m zGJj%UFwg>vtW~dw9I^3EBl(GOiqr8_@(-qF^0_jl8SD!^S9q z=t$M!qE^w9b!XaAFkYAm?NZ(D{HgtZCp$y@65AtC@bpxmvY|yU)aO~BV4Vwlu~uu= zPhBSPzzZBXo4*jKi5lhoWqI*i!|p(&nBJt5y}Y{HG@;g2=i~G0^IoH{ z_Mx#PSN_-8c*M;{(NA7d#qEqF2xZhazg`2vU(j? zwj5Ap7N03-O8wC7m(8=ix+|p!?FD&8LzFd7FJa6Z1af>u1M%n3zgkN+m$r7b$HjO( zj8aJyMy@3vsz{7-w8gOU{@`c754CBKEyytklH_q$=5RTxcerH7Yy9((eXu~|s=L8p zI(xrab$J9lLc3P$)o6uo+38CUwb7;2*3$w7+u@ zz{6#$Ay_pMBr+tGELHe^@*7e!IKfB^uqP24s%TJU4?<+HK@8gX7uMOm01)tIUSlr` z0Tlk2(Z3dV>7B0jGrNs6Wgr?NEW z;Qcqy>o;VK8T^NOft_YSp~bMd=cM~{Rx2qM#aoLi7HLHo=2d!z6iD7$0P8crqI zM-aRtTBn9E3w1N`Knm?Ryfn*PTk`1NKQjTT@wU;ayUY{yZ6C9|MyUtzSw%Ng$+KxNeX8L*CBs_jEWbb0ZXv} zZ_Av4Y(WUZ1zD^zn15fx8Th=%NlpvKuQdB}l@_a^_k=fMdwQ!IKzkB;F!Sf+20SZ$H2;v*s8Kd_Ua!tt`dE2ew zeL6nZ;C7b`KNO)IF1%KZ3tD&+=1oyj3oD_xaHW2j>)$Ffda}rGU}#mwjBZXTppE63 zI4yJTKXS`;N_h1Bd%6F&h500cI1n>j7>h9%?ASy(xz7MSl+UdWg(NUOqsw|!!3GUO zrkU04K)!RP8JsmYW4`9(LCb|WRVE#nwhSXxPQd@5quFw&a%%GFp;Tt_vI7jkskicu zY`$MyoiH>l^Op7ysV{2r9pY9Ixi3a8^i3W{ussWg;-ZxeM2H2#QV_$Y4vovcz3bQI z=ec+&tEoPwfrHRfG>|aspD1_dkt4_c%l=yy@=2T+ZSWEox$EVUlN4O{;LHx^^}j9p zV>Q*@T&@>&?q%%V-V-MYhM6(bQ|W1GXtRxO4*xnQPu80vr~3T})IJf|%EH}@knV;l zbU;mG=BIa^EG3~xe$o9UQ8>S8`A~i{3It1n*MLJ80P{sk>_vZ{$l(SL73g#J)&MKT z$l4{K8<^0!D3`669_{5t^H=VZW&y~gc{d3i*{(cxUA!a9uQpqc95WFf-X&{Hcu*)H z{rsf>5C;FbEHIvAf4j9l&yVUADaJex!zv(?DTAZOeQmmDbNIk=H$*?$?vTTKD!kDN zWmbrp1=j8(fsWc4<)%enzkdn5ZfMd>q-vLyK^?-M)t);&G=BfIE@oSYW>MUhNa^%` zt-E&)@QFQV-NPy{j~8_ww(=PaP|hM$Mg?xLj3+G!!NaDGXz~s%ih>J=*5sn1W~OU* zXYMb~kFwB?@iCo@h+#4eTWCPyj`j*5cagm{=88`taVyAe>5LtIO)&W~%mk$eBI_Z9 zHbrxWBI!a_4pPrUL#w?tZXpn8a)SGS@CwqiSM_)@owU;9Z7Tmq4*%4=jQi(P!(ZX(!h4?~pSkIWB^YR)u!0}do^RRpXb z0xZYdZ*tg*`xXd29{{=o48ZsCQ!hbA1Ui#>o^*Ky(q3(NvBz{b?U@bZ8MvETWnKU( z!Y@v|{3^c0j6?wD&*1>6ws)Um&Oc0-e}>UNEto{F57)baH{jpJNe(}gWX3W_X?Xs} zUlHmhhza+sSAwD;I5s^k^3VxVt%|#%9&PzG8$}ETF{ng2+$Fydg?#Pyyjb_9`niUk zdaWXTWjw>sUn`fxck-DwtYl_VY~y<|MGOvS@}v>Dj(qUic09;AEaw9}3uka?r#E_p z={r+WJHZKC#x9#(1rifzF=M>D2KbCQss!?M`OA-NJ{nSN_FX71z*Xc?+;Uaj!iR1O zVYljmZI8bJNzD6wiqMW0B}%zLB9%VhxcE#wJ`4}&i@c4w<;MZOp3PVSwKwTQAFp$D zG*K_3Xq^XkK)ynv-%4sK!0wO`@pyzFB{CKikDQI9P~l)if8yskrXrU=*FH*fh|+!% z@^(xfxD={8EciE02=KqnaE-ex!0!bioJAoUH*BD2W-3>a<|DSdFE{%%2YY9TV#&fw z3q&7uqk?r;H3#ut*b_IyVkul95v||EMDv})dP?XMCdN~z9!ig|OF`(eyDL+voRJ^C z?s`I2wWS_hni4x`z3YHr)V#H_`JkXZq2ziGz7IW_9Ry11$n1F-lQfH75f@Tt9>Kp&NkOCGjV6a*NnP~yw9Gu-qG9Z_*yS%0*$aJ8V!nbU{! z$u7SNGLI$+6=pnSuntnbCGNOvJ|bn~(M!~dg0^L?AUwtHUB;p~S?(t_DHuV&VqzKe zV37q|!pfg$H(@%JMLvlh%}qdi>xN)8a439nryrEa|8z~_@|PsOBhi)w z(U&+$4JbN3@FRa4+c^z{rf+HSg0z`15Ya6UQ8-R;5mdUG&?1F=}G4 zPs8t1`(4F>xjtgJBwG%43T9VLU+=p*AmDd6g&Z%g35RAidjVMq%l=rmb-(R1!OiZ1 zUD68x!(<`Hea7)DLP6M7mCe5_s5h;Q%^=N0mO&2becZgJ6T9=(bYjp@?x{%Rd(zV` zBf~n%1R_7>0*GhwG!+8XE$X0FUp)`sv-%GXW?P!g_yvcfP@ZX8_rj@}P}!HXFrmnh zT6gD{fY0cJ-1}H2LhnkOr+&HAnh%$`$w=yzSdFY@OD(~<{<@`}7TcYJ%WKqBUOoZm z&4<5wUb0mrW;yx+K=rC77gp(J1;ygoj)d@3&UkXwgwcgMhYyea>W(EIMyKUEC7vE+ zylS`IR`Cq7Xz8K)h~YU#N zV%x8g?zuHN?Ch*|mmA9p=Hj8(6M7>Dp%fp;T&P!MD4<#j4NrD!bK-z9A5f?_&@Bon%&M+dq}<|w zf*d8)5|eS*Fx7I*kQ*?LNSiabIj7L4YQ) z{NL}StSXVSOQ{k%Z!4lmnhNr|czt01DR+wjM@P9ssu9i>%e7+1$~4*e07CkyweS0h zz`_nEtgR+&29{mm{J=-pG=kuNAh5P=aoepR9s1A2Rj0VHG;R;wnSFZ+gZwgHUWqo9 z(F_}WoQH6B>$b|ufh7{|9A|sg%!Yx5>*6n^G^|dy(zeA@+6LnHSNAw~SuVRoe~J;n zw)9WHXD_Z$&YPu0>gtb z50K(k4xRP}DWbbSKAk}uM)ZI|Xhn!Ubb&WLaVR60{!+2UfR?djL?_M%v&~Y>t$NR$ zFGUW|ONt?mtCi8>5Z^#H_nh?57&SR4X6WMV_d@PO%7b0FMpsQLidQJ?N~^2u6xW+41nvkwI<_Q?|y@ zG~Ca8^z%}UQM`7d-!%8O8P7&>nd}6GNHIc&L#|oi(Q+};rXr)WZR()YgRy&i+_PXV zjTX1hr23@DuGoUb1lJ$>f7iI^;I;WJH zV_KGERav9B3R18EWZ$j%Aw6=srfHm4tiLd3)X?%kTla=G3{a!xjSl10(qdUC*k6}!FG}yB zfd)YGm5b7a@$~&HxWRg1RjXr#>5LCc>pcJLMqo7iuc8xCvIT3eV^|hFKGnR!YpwiZghgfKKBo?x?e=AJe;taMF_>(QQZ)yg?q4$9p1`G z#&tEg!D1mwo29bNT#_#1{T@|h37WZ$VIdL$e;U`uE7AIG`T$~E|RQ~JfAnK z2V=|wY5aUW!nu90-i=1a%RCf#jmTQvm)y!UX}zkc>(J9Y*T{K188c=}i9BR{i4bYp@Li!*Dm;SOJ+Aiq4iPV94n*cH4_*5ug6Sl`iviWMl%yM_2lf2WAfH??T=oU#|ZPx(-G0URGbU z>}3G-v)~6BNN@nW{GH1dh!UzBO0Z!1`+OLI1rY#~{P#cc79oUT0o`T6KY))SsP2Y; zJ;gG8Fi(-jbtn*Kl>%Wh(>w@2O4Y?%%2pO_M&(5-%kY-vuZTrUMAY@wgZnF1?Krr9 zi}u{nBNvX*$RKIcCeo%zn9WZDUmH>l3FgsE(c=qXHB^9*UMB(w+L{O;<|BZ0LVt3@ z$Pn`F|4RfAU4M225JLh0J}LOssRrr)pHzdy^;Ls(*Em;$^dsA@8O5Slofh}Y%-o_B zYEaI0WyvQx6t!s2p7B_t7*S{gpjb+*}>`l8$V{d*bDbt#V zgbf_jH?J2UpwP!owti#z^~*B`B{JF$Ee1(+toev{Dm!+ebfqoM#3yZC@w!DIKwmN% z+k_C%vmEGrhvFgr&YbcHjgEQw(Z@fD_&MT9gphvRJ0dtDnw-c_B2d;*dWB~mHaUhN zBTNi7HbtSOk#{T5Tc7aC-$vfgRZ(7R@cHP=2XMO_^JoKd-c~ zPlx25z2@~=k(iu3BRK_ko|D*i@#LJG$(=?8CC-^JXO5B-my{G2pOl1tiEr7Wb?f1Y zfT72efAI#=b6?W)bcemx-#G;ed%LJk%yF7X9*v2f@a8ob=46)cxB*XU>V`}R^qQAP1o3nDq!otmhGAprUN$!YdecQF|m5Ne2E}xfEv2%TUWvl_sAHDVY zb_4ni?A);r(C8*!iML261T7o{z-6F!s!r@fJsRfulo8M8fZg*ctIzXc_ob2d?Pm8K zX7~BFla@EW{<-F?jd%RE6KK)sKl??&k`(m>!NsM9__^{$#ar{t~%01&_v)+j>k z=VJ+@_cH$ygxmkuYOBI++nGw7Vrwjv+N-USRty2aOIiJ9zXP;Y_FC9j13HEgXaU48 zSxmMeO!{wCc$RO7C|!=GAKOHf#W@^AvjU%_FL7QbHM$zu4ME2`clvN0jU3WKcjWBq zxpNNH?wVG=`SIWA+k2l@<4vV_er?e^yh#y|@4xA^=$#Tw`o`)mY7=lIG-lECE~q6+ zfd8oLtij`mfha8byOo)l*$y)^LltIb=9s!L=OA3AP3tYgXllaglP27SaXmMyoh4m4 z_OJK7eW%kNX_Vt`@1v(Az~L7Px`E#%nljK+W6(j?rO-|nPP&TdFl*zZeA;ON2QB^( zy_Nj}?R<}RX5cH{q!{T(Xhew5<`aD*(!|%+0y(1T|CDGSMHo?!pQW_$=f)4iFgpdt zPlCVqG&5s=_$13IF3NTae!795QqXBJ=pehGpfiM%jwgC6djxd8ht9H7FkS<95cT_- z-i>RdPg_QG&2)n+(;Nrgz=je{KSa@mNgE%4p5~x~#sr0Sf-vb9ybOV2*psQlgLH0>S z3nyJebeO&4V|;YA)3^9X^j2OB+W8*39&#BVbHVOS_&ggaue3Kk&*;9R=b(2#-N0|y zG`@+C(z!9{AbX_H&KC|^{2_WP`wDcvhb{!~)zUk55JLU2(#;9dr+b{9EZtyN7{P#^ zDxY~UizH27oa?<3)pP@2ub_J?X~BX!6)bnK+Gk?JTLV6}kBe<17hBm?aFOq!2k@`0 zBQX=p$ub%dV&7P@Z$uwRahM#j{Qs0_?-dv^U9ME)aizj;A$UzQWnOKR0PS4V%P|2z z-N5H7=n4gmd975i+`(#Xq`Z{{?F@*ng$(-1b*de>O_~8CPNVvivxaLWiSn9sa*46H z;SRQ;ShDsfgSs$T;|Z{REEdWD=z)kul&{MQWL~k_~0-f)nlexV{;qHE%8FS5< zu_oa2k}FfeJ@=U4Jo)H=JJ;2c?W z9=4qmT>#E2rE}cXis~z*mtw|TYm@C<(x7kBf^A)Z>hy*s%I1T5g;ba4Sm$Fc&!T|30BbxG0_#GouRuLO(?Pu`Ct4qYx=MQl zbqUtkc^~Ui|m13?VKz|^*~x&ME-0gk0~5P+)cv(59Q zN|Kw?vcpceBp}lZx<#||-ZUsm%)%g{VHuN?#BvK7^?o=pwu$8AoRgtpSb8Q7`cxlD zUTw!TFjJ5J0g?K}(&~#JT3m^Ix9SUUqXeD+0000100002BNB?zCVXEHJoNw>2mk;8 z006}B5iS4#007kiQuO*8{nZID2y*}c00{sB00000004N}V_;-pV9)u-!@$7l`Ahnr z7pDPG1O+g%003`<1Z{ZQb<+c|T`?F0;7#)9+}gHn+qP}n_Ooi+wr$%T)Wh0#_t|IW zn>|)GW-59hWKq9}bYiU3GvF(4Fj^*IkbQ{0@&i3pPxRJD;iWGkml=i(;)h0RHZtmx z$f?s~rfGm=JbyTCrjFE!O44HTq=qzvdZ_pCR=bc_lA@0Ez(OemZ*u|lU4_xlmf^jB zVUsP1(Y7)+$y6G^?co?__hOSShy&6OC9QCOBW!Yh^VnXRf>Aa>P!8m~Z5IvU1+wuB|m?}lkK|Ih|Dx#yl zfC}8#MfzZ>`haQb#lI7hi1`6aT?PSspQ$nv?SrnHiq3i;GYfMW;!0omny1L>800tK zkk?#7DrOs=Q$>Bk4rX#Y6dqg;kS^#e>(SosWfn(b^$K(3Iok34dOCH{-ps)qa|*p= z5GFhIxPLRI>pyUpTIj0Zp&C`v?ieq=SZrRPx=w{T>K8_E|2VUTPNJ86h?Y)CG;zve zFyEzyYuvw&QUh%R|DPPjdO3{%=M);rPE3+nsLgw|m!+7eeqxDh75cbppsP8HO?n%~ zn)7^C3P7zU1TVGGL14N&4*o004N}J;4K%<4^zq zz}mJOY}?ey*V(ph+qP}nwr$(CZ5#WvGa`|wLDtEl9paqgwUYdj%aT`8yELD)qjb7- zoAj*oy-X>qA{!*TBrho+D}S%3py;dkq^zZEuNX#Z`(^0cR z>(DmP_SUY`$#k5qt8SxSrLU~tX>b|_8P*!!8!2NK<4NOB6EsyfwKGjI?KWLAeKU73 zpSNUK23cNP^I3P=M7A8Zp|(4=@Ak&_b@soGMvfy+sk5E)piAw_;Tq;T>$bVexW~Ge zxSx2Eo(7)1Uco!X`_1R@?eV?#PY%cera&t2JSYj~3l0iirpi<8sh!kQT0s}2JJb8< zQ}h%1ALC|vG56U3JCl8vQ9ne5#)lq-tAw|N&qu06-g5!28aF%ZQf@tWnfo5~Mk7%e zZ516Cofq8|y&ioP{TJ&KyA}HuuOHu($e&o3SeNuBTP3F@AEYXzCZ|56OQpM~zwnj$ z=6r8{EWeQ7%%9@#@gD`1fQ3AniwLWPgTf8rJx~G);VUFTZp5Ras5a_?#-f>M13HfGqHkD_S)3DB!Yy!rJPohGhwyFu ziD(E#a**<*IcZP2lm28l8BeB@`D8g+Pqvf&{{aC(rvQ=A7qrLuCdYKg`5|6<{7|AyhbkFTq^WbxJ-6IR z&M{Duq{x#{Wui!oYh_>LCFi)OSG8f4peC!*l#g?*PKl_jF4L404e~^&;veqS$WWp< z#JuK?2VVG?GI&|IzgqerR7sh4ZX~UtTx(L6#WYQ*Dp4h+X`YOF35wK6$ZoJ=;)g%% zc;v5!__uv7d^3gs004N}V_;?gga26!DGXQu04g5=(Exbb+Q6f|fkB&L6Qcl=HsdBi zMj*Le(8@qnT7ZE=n_)Ynhqa!f2#~p*DZ;}-1I%I$ayC&F1F=}*d~LKPK`d4?9VJPA z5R0ua*3C#7#A2UV9%H2pVsX@^2UtphSezlQW@=zlxXKc|&169=?&cIfh&rB|o4S&1 zKrCJn0Uk~^5R1>oNL@w{#Nu}_(Ub-26$o&IxQbzu5H~x}0}8ISnG!C5ishIJKo|yq z=&J(u4k->QArg=f2^oO75-NrFVgxBjD7ocNccHbMVKAWAa>W4-6CPO5YPmzfV8AB4 Z@IjO83?{s=KqX^`zGvsj4^tdfk^ttt3T6NR literal 0 HcmV?d00001 diff --git a/docs/smartchart/fonts/roboto-v27-latin-regular.woff2 b/docs/smartchart/fonts/roboto-v27-latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ebe1795f85a661c205e4a4612eaf47d56273e68e GIT binary patch literal 15688 zcmV-OJ-5PlPew8T0RR9106jb3IGy<5CJv1bO#^| zf=L@Qe--T5OMvr0fe?L;AR`gN#+fiScs(+Z+X1Oc`2FDjuL*LD(ZK!&YW5{ETh5SO zqFdHnbVu42vf3poBJzzUv8Ht=Ct0EhPjrjWV&I>W-uZbli(g}30fVog2nM+5U4y55 z`66580HFfYncd+IRc*f3Q$k;FZNiF9=E*BN1KURaBquKqk=_6Qud1$|+2;z;6ZB>wN#p>2oJ~*yKb{P3IX*@oSJke+0N+Rus;ZU!bCudQ6PB0H!owr4P@Jf z18@loBfEH-wB32&??oWG^Qkt%@{opQoBugoFm9}$tM1`(-TOx}rto+!PQAL;3yyS| zGdl9kXr&Jj)ZG480b1=I_~4#06D}Pnf%?>=FKZ>uNVW_I@{tz~>_gi}Wc$GD5MYN37b5J4I$*BTrEZgoxG1Ys zA;6Z+{!m)KpiUwj!h;i~E=8hR-@KwUjWKAH;^YVQlAsQUayW}Hvibk7s;=*X5^a%Y zr2o^0Eo+7iAX3C5k7?6LJ(B(qph_@}N@;EM!*?M*-9Wk(rj)YAnOdDQ?H=ZstyOk7 zybH03Au=;t|MfRNYo6KGa}t6`kRXFw>i@O-vAycYMY*?$d4fpDk+S@e+yDPeZaC z42EqfkFYS7Rhpw=mY%*I^VEHR?9{%V>O;v@X;sV{qWN-zd^M6F$5jlbYbb^wTTx5*J6}mnisZtNwyos?GIYGnfDfpe#25& zv4Q8B?biD|`!%mV;5&s1D>gT;Ht0y^bF*O4k{gzjt+s62vFo`P$zE@~wC|Mz?;ZKz zqfg1_Ui;#!Z^`!#{3t@adp3LPIWQhLoUfTD{LGlyEFTc~QEcz`=R&2Pcu;-6jU#NZS)nJ+pC{zPID!v8`cyvL@t)(+N4$F*9DDCG?k@t32xHyv?f4ob-&N$m($5{-;^;dr25V1r z>&HBJ&b^BP4#jkN^CO)Y!`V{SK>jemT+ODw5B<%oQ0yJ{h)!+a;+0Ii!P48^F8lhv(t3Z< zrr>Qh^?ek+6R-GVSn0sVyEqm~I@nI>D^5+Z8*`*$`)=OWnlJfRF-^`I9350g0TUndebR7HW^6oR2J*b|16Bnv^FI%Zl7tW!q zp%7V$q)1sPQC7;7ml}nrQ*K(6oi=5mLj~zletHx`pRzHaoXjc8Y0AWc^YmB=jS&fF z2zXF97tYjgB^+jEpjf_?nIGj)CYW9T9X`zvLN9_2pEgh-9aP9%ZOFW3Fe_(_%T240 z);tDzVgrlKsWzJ}FQDwz=JC=2w0D^Z?|lM)O{C0z2KoFXT!hQv#wC;&mU5F6C^#@D zL17drA2kZ2L19jD4i77_5N5(daD1O?4+QoZacMi?NwLW>AmT}J!2}T7 zY9xZBrxn5(&mxhh2^Pd?FPM1@6O}8R29^nu0K!b*=Ny3rFFE$oT<~GAAr+261hrv; zQ5fn|15px2$b>=R(D#a)u+sxZlhxK0CjHb=uW(ciS~q%kff2#l|S@*1g8}nE<8gVR6B*-QEbAi$;wZuhnK)@SI+fAyJY^Q|K5jy8;I4 z{^Uo!EUF-Z`PQih#0h!x_?|GBq3hq>LN5T$0NfF9BEW6$>RY-=BI4!WtZv5$5*n~qjxIxnOl5-y=QsR&Dx3U+ek$dqQu_)`4$ z&+Qj&)k1?VfRM7Qts`#*c#7=b4ECCD&V%0zUikuro_Ok+4V#J-+p=xPuIFALDfu1Y zdzY-#XJ35v&39#fkkc+tnKWxc*z-~%fE)GHbH%7i^ME7U0O8J7VnZBjU5&dcU?vUs z!jC66CifT8 zg`zKs-Np%_T>{4;D=*$0F^(0wx$#Y6cQ)Hn5m3^w=Qhiv8W0j%FQ5o_*I7(s zvmlGc* z`v0qUMbu@=4d7qE-roa9UkB91K>h}}^efuT2Z1AaAYkT1A#x1PR!p=4z$BXwZY*8J z&@zq5(wSn7VrodhqT6!ItPT_))iT0D?MhAf>4z#0DzCYr35BB=e9L{HXc$ruzQt5- z{PBRA^AVp0?*cB`@jQ=Cqrnhlds>_;FI!_;FA-&@Z(gye^yG{)tHb0(G6EHk@@Py-TLUu0_4?V{8!LC9TI8M(E3C1(;v?)3v5~=?7RS=b z(wf4_6tW-KWdc+B7aZF&t z0b?V<(8Vn?fB|qvFShwaLO`YhDz=j{FQ4N*T$)9@WdP+UH~lF0OB+P@=1 z&E!m*tq(D`3u9|Nm#Li$xHk*NeLd(IQQ$h%a8Wh5Z;t0=5Vg5g5{LHq0}_@ap~42Z zb}rSgu#RX)f@8Hlb;tM~-*iPop_+j5U6;6-`@*JJ6HPKjY0=}Y!eH$gH6#q=P{Tvv zShb!WjePKWV@NZF3Nlmw#2FF3f>@0RZ~o^ULKo6 zStC+2GM3+hmX(RX;M5#A+K&l&%hQrAo_Biq4x}j1@g|?qKEwoKTy3|Y)j{Q!?Vz_n z&(>H$A`&O|g8Rf+uv=-djmx83tj~0%|EjUqg5OViz{T*=|KFQ7=W(U!*lojKO|5(B zK?*1IsoG;v3T>dnrdpcU)l_M!9apL~9UmK*!wonDw4ss|fJ`?9kPEmu49<(nCCWQGHyI5>UgGgra@Fl(biwBt4$(*5VYkgZ8x zWZ39_(i1(c)_YFeMy{kr0(}7V=_8L$Tpr8q%&;5v1+1gHn^1i+c$2iNy}nu;O^4f9 zJAux7!ZD@13aoIl12t^)(1nnY_YdfBpTa|qLXMl%N_lnz+=%!Y8-x-DSCm2)D=Kl3 zCA~)>A5em=;b_S>d}eI7_l~&}c{?z0vIw>rqT?kjS;Mumo3_vDcqofN_^z|udGXu5n zEsKJvv7rq(6j(BjY|E2TlUlnu4&5eUMO_}aO8U-GRSfV)2%~G7+=`VgWwz~#=Ldwf zc(5(YS_LIJ^sv|%+SHwu%`MU$$<%ZJ$dsZ6UO(}x5jO$6{#k0OM+2*!TvJjjDyKY^ z#dcew^G38Hl0}V0vG?;~}XD|%1;OiTae`1SoSQz%PT+XufT;IWnkUfA@@7n?of;6t?IBgnMAC> z1Pwe?|1Q`NsO|b)pIP;a=NSgX{sOZezeb9nK~3P&?z@@(d$PO4-2S7mJ!0_M~&r7dnjp*dYh+{b< zev68&p8Kd|bWwQAKU84H#u_#wMgha}RupAi-lq&t*EO7unx8B^n(3Gu_?cb_u5E~Q)T7?YDEw%T~MB1WZy8~GI|&#ZUWwRcHV%j zz=*_+H?YO1mstGZ&)ceKgDesJP`$x61tOU$sc3YH0+N#~hQG$`rabNc0;2`BC2c~$ z4a*f_k{70td#mL6iNI_6ahbbio&1N|0ZUK>u_{jx)s8wIkkN!g_9T{B6yxcB0)xZ7 zZBC2gM}5)PT4)i(6=s-n{p?m%WvJFu667eU&r`UdC9YT&FsIeh8VSS|ID8x=D!H~V zPZEh*LM5o2i1cXSP>cIRZqoA786#Ax*HRlS(`xRkPHy{&pt*RvEtd)9!r}_%a8k!@ z-$Y$rqrzozITp7qNt`D6%jZ%$ruq9+_2-esVafqVxymHU|=WnvR8m7DCy zA;)Y0EB`-dA2ARRx+df~Hy$4j6}Wntavj$Qkivhau&pL%+jBk6;<(X1g)aJ0#*QDq zSuYXPv#9)TZ&3U|_FMkvf2&#*e*hd^Tt(T4Des}MM;_<&S`avQy z50JEZc&HCRGI14{ryQ}SzUYQSzGTQ3p5WEe3)Xn9v(@7j2!t%J3__GLmus3xXdHM~ z&R%jitiYdUv_muX+S*YmvsoaFBI49Zoe&yTb-zV<^>o+YE&c7#T-7dtHVZ^oYviZ; z!#_L z`}>P@N_9P{us%ByRo7J5(_dJ8Zh&l2)YFq+(BDHTMcKQDSX;OSx?0)0hSs@;Iv*cX zD(vY)_4ZOMgd^sbBOQJKS-J+fT06J}TUmGnx%~JPVJx3Sj4;j$Aw?#QoJ$HwHl|wi z%w6tln7dHy;ZYas6lHH(V4C0A`#d7cbX{vx7 ze;JTWO?Ea_QgJgd4fe2g_Kz*$T(9Pi%LiNam?HbNv(tv@mcfC>L_+ zPx6jYg_`6bEj!TCtv9vm|tf{S>z6|^R z3ZVL8BKRLyk`w5|fA;2951(B3&$t+QGF7r*BzOM*%NDSC ziIG@ennS9f6y~;;)IgL>t-!;T#uaCVb7PFm+{Xp!&r1s{?$)=TSgpSvv^!ZIWk6m! zMD6T;f<2x6ypFjtg2|%hq~zC(wAOUciqg&0nL^aRUTl|m1poiN*dZ1!U3<>Dw)=&B z^&Z^luSJbppEKef)xR@A)YWXf`&oK+v-qi%<0HwHo!ql5bvomiWF(>+Gv^4)}X#7!AQCLu0$rU0P zLn0-`6_K}!$Xlh95Vhxd+Gbt&fE-3<=nlCi_V8vV`SA}EKFxjyk~88&oAe(1>ps^{ z-?oI~cDV-*=gB{U z@PzJftREloO|uwyvyxg}udbE)90AHqt3q&cQ%U7Q0`YK-or)VT(>T+Ap74 z97|>S%KDv3kea#YHGXpR1o7c5mB?S=JEJ|Uf~?rhOPTMFegMrN+igycqqg?}4LSq&zT4}v@ythLG-0)qMd#Kd;Ifz{Yo4m614fo&m#{qU7 z(lvl}ry@4n+X0eR+wov6)k*JqVQ}FLK+;GZi=To`>}IB|BGD1FQCv@h8nlvYr5ee* z$8#XMKBFNfF}uhCRP=RQY?{!mWNG2lh9NlSf!Xe@?iqlj%@DVUv*D?I7g0ocf;P)^ z@7J4qPd;wmn8_wn3Q}w80ZB>l+{LN4Q%~?N>CS;(fz(-r{iMjY(e^}Zj9FPh9-7Gf zxhwzKw10{#SY)rYR%ERS8*pkd_hg$?SPKf8U3H@>dZJ`a_tj`Y zwFWu#aeU1KoUzEAQx&5y$7{HT2$h zw>Hm~vsI-9XIm>_Ar6k%{s+a%X|C{_1!=0EEw~&Rbf>ZOhjG@Y0d$M^+C<&>>+Z26 zl61Ic>t-k551HrR(Ay8mHOmDmu90l3)rZp5zS^vkE@~r?nz@p{o!(h(8p7^uG`vpC zyO};))Z5Tp*^w3J*^m(xdMhL7Y}`fM+N%aQv3x0aw&;4(*{1HyhxJJzR>{~kfW%G% zB=$i^n3DB*+7`GCkk2^9kAxs-cjwyEj^PX4XNQJ6p6QqU6GU9RFTOw<5TBsk(|W!l zG%YiPh5tCiRr^DFM0Aeh_}(lp4{ZcHFUcFr8;eVl9N|UMW;|s~3w#uw-@Ny5b1(E% z_^B61c_+D{ZY~o-Vpvcor>40e} z{RFI-Mw3D*&~Tt3FT-#$nr2;pV$Dhmp1XW?cS!DGuI$4>Y3;nmy2d(Tk#kQwA<6CI zGXI&+yyCI0TjP{|z&IRt4NN2^1Q!QeFr0`D^X@5^A28r&Kh;aRW4@HTw|YugY*o7~ zxhDo@nZUSyypW%{9an|U8UQHpSwF6KJ0H!s`xN&bAJIDIWPU!4w6 z;5|Aqwq)_jTeTlksHw&~B${LUN9U#?a^t-)Tigat?2|-y#-EMK{0E0TaJx--=jeP{ zP>F-8alCuUU2Nh?eB&9e8c`0W@{$(9tHD9)VB7`z)d8a&=K2E-ufT{P;w$Q_!BBt6 zzlUbf45}BspGv%%Rouv zJrXy5GNWO^9aeCYehVZ;#Kn1)_)FTs=>P>jTf5SA=u4ssF@$WdOhU9F_qfiamXN+m z-FI~ZBNO~(tf+jfhUQ(Sw+;PEVp`Vfj=O_W9D{ey&8;UtNp`(`CWzq9=^#>5C@U|V zhBfSl{8K`ZY3uZrq)1|Rcu59J_$p)J?W;>BExdG{G~BojvLv(hhG74~>bQ7Gb!PqD zDy42>RQ|Ddr2X2V)NEi>{?O6mJx|Ij&TlM@_HC4x_C7H;e$MrMS7CM`K8u+SkWc&3 zsqvKMx#yCoDfndT19Bg}4(VJwSlo6$-cR!Xq0GWeY#tL~03e^z5pk)E`2*!YQ%sDu z2gT>zs@$M>&rS9s0*k-)x7BFoO{FLH^BT1{qnaPYv%1Zx(?0d!!OL7;Z=S!oeKUU zovT`AUH_HTrQ^nR8Ze3K7`S=^?wrmPJ6?`+POd)S+l8aD$AP>AiHASye%3uANCfge z#J}UB7#aswDBQiQvkM9*-W+m#Z-BZDUna_IiN2R*%E}S}{T~Z@e1Ek2@XS z6ufI9Nu;S<+yPVfkJhT!KCfIE-@TxsYX6zJgYmf3GFQE?*6O&NJwD2>3+kG@O|hjI zj&%K;we?H%H|rnl18dyZ+3IaA@ExLNRS;5}#^f=A%wD)b6*#279u;2_+Bm+pEKC!7 zPT#KQoqm9hHke@Qz?M_(M%iX+q=;4r7!PpT-$tbaXLCD zGcGc}IU5Z(Y|l0O5Z_UF?@mX4aY;U@tUSDRWi{?hO+$W3O?`Xn+ITim`LDc+{Yx7W7NBfog zmttwx?zeUgo~^G5_H*&}i!RMfNQ*A@^YOul{wo~nJb^uL#C5*&#Lz&yIJT#|3wN&L zII(|);c2~?XSK-iTv-@%x4yf$V7)rw-W)k|(bdK^FEu|iJgz5oh@f7QWp1yb*2Nk= zm|t4lTuIUk6may;IO#6UsEl_89tLWDak{&y40Lg~p^)d}%_GD`VUDS*8`sw+J~Y@S zhHHNWO@DE&aN=(6E6C2wHA+_j&H8RgO!Wi07^goGK9bvJ0l6D%TG{D^lntxCcH}qaxA$^$ ze>QD0wH#=1C!7=@gqo}T(X%;iquoyIsYN&E#70C#;q6DNsBW0LFc)hJJ!OT%)7sXm zvh6`~&2~Tk5JMv_c-`xJ9tTDp`M=M_nf! zoC#}9TGDS6W9amvi9V!(T1U(EaCTOlNNAUR^xuc;%>VY;fuo(QdHn6sDaro~L?0_QdEe6R`A91-C<$xKbS}8#^7WS1%QHRJos3!atF!0N zAVUHYT=0IxQ2XG31iX`f3>093!C-89L8MHMfAZuEOAvQVA~7Z;E8d$9b?w}ooL|2& zHr#oE5N~W(Goy#5kb-==B0ZDiK_W+h`mKQHr;xPCrZL<@`$kJ1?5rzS+6~c-Ob<&d z2Mha@3`=`UVhU54*w&6!Q0o#l!@&ZlfR;+?{?+LSe7SU%AJ%4tovY~hM`l2h`bNQD z0?Ut^l0##AE@d66II>?lRUm;+@G?v<&3<-9@FHoFe6`OaQf70mGwr{?YBKm4gY&%yjUUC{g=`Gj7Njj+!9q;R` zZsmWa#;w%JvuxGHFFeZQsbsYM4mYx7%*b`ux1#s*P-FY^;mvK==$MR%NJ@;;B$oPd z{Bq)mvx>8U{jgi){a4^H@iA&-_*#8kn$3H|lJ+#i_y)^%E1q|INf0FlZx`vK0as6~ z8^Dwa9xE!YSy40R`N7oe+mZC=5tUT(EH7=FR2z4&nxB6*EkWsedHIuC%b@9kLa$58 zS{?5-E|gu#vkXQRvh%T(S^89WU+XRJnaj&=+MRMUx$m(*wePQukfvc`1&s2wsCa=` ziT9G~%=oiYMve8AwXDqwy>-3Ws3Y_5Hn}RoRl=$+D|qEr-IV6_fLOPQZOgLWC!yn) z++y(~5hj$Lr}R)0Vs1UOOkH%%_`>Vt!iKprbQmJ>RlxBgH}TBhdI|@4uQ61H`P*mzyTdQJ_Ef~Cg^^G~D0?M=gD^b12d!#9xc<5!K&mV4?^AMR>5U}4V587EV*H)M zzi*OOQT=Du3qYTTvpP(ZgTfw zaQzvcQVzjva(%OM$a|LN`u@89X11@K@#+%EdG47>-aZ-0LmBB)8R^!pN+zZ%%BIFa zCT1$C#^!QrFEf;F)@C=v9TU}B9c&fg;XIxY<=pJN(maa(OL0o6I)z;7B@j=oq*lfYczs!_z2SYM&Z!{QV3cCoXezu?W?m^i z6RXQt;|KIaTeDOWQX`_G{WhtagH{Y3MzI<)I1^`k<9>AM$?1z8;}kG7J$W%yP7fd- z)BVcS7FEEAm=a0w+oEoL=CG(5tfA}BI~Qj&XaV>GKsv#gZ>}-pq!i7+LPM3>i#~uUPg-Ew#!~C11r{J2m}Hge?^{jw0xX z#F}kpXBvkqD6NB_v+``qFr}h#5Nc~f&6E|x$HuNxis0jx=#}9Af6gQax#)uE{`US< zWM~?)JM(Z`oYgw6K&5)C$d{+zNZ2~BlANB^Sw%|k$wr2>G6&@wTUeVJ*x6cJ4TMM( ziWYLQLcC8cY>6qPs??;8<|0bZ`9`(7n=fu5va8i>PjX7QIJ+3?+u3KGwsAVg@L}}$ z)GQQ4tCg9gq-d7u6h?KXVLH>IOsoQarD&#vHza50G$fN3)a|ql46U`*HEgtVY_usy zr}mT;U&X)j`Ii0F(99?_rMxsJ{Y+l4am1KzJTBCrnxV=N8MxYacLqY zPz3)2a*Z&chUfiYWn6lkPSWyFvrrDr zcOpB~%!Mi^`|Ws;Zt~s%~M2 z)I;?Zt7YLgF?3te1;A|;aABc|c*sUoCY6{nbYb?2#>~mbC{9PEV*L&%JQuzLd3T$>fVhDRvAH&Cc;bj z2tN`)Dg=)Z;R+E3cc2Xa!Hf$huv~nif^R?AL-_}R?3eY|h$%C&+pTcrbeP5wGR8_Z zjkGbr6_~G?!yG4H6Zi68=VfP;QWZl&^;AEX^NJ{yyu9G(6>pLj0AAl;Yt=oP*_xLp zjbm11`<&7>wGZgzTd&tU^ z9yN2bo-C!`-puQjaGhGS{9pMh*nw4ZjO8~@pgs{$%x*ZZ7l4`PTh~IHi#MOG8Q+#Y zUu=iZ3jiBCo?ZmvvGYH83gi_i|9=Oci!Zl+t2wV67(btHd1E)M`T|g2S2Guo%g;uB z$nfxPZAeof>&fsE_m>(9o5#g-Vey8=m=6Z(k~z&&ITlDp1koqyC3=@fu`pe||L!o9LEiw9d?5-ybxERz zvuXc#1>y&YvctM*sVHNM?Fm}AekVU$j~D-X;*mj?F#xTpbu5q+F_scNfY_BdoOtTh zSh;)L<37gJ!cX$22~&e%Yr`E)LVQAYrxsSTbi1H{EXs8yqMVLu9U$6~;Jh=eOElj3 z&YsfkTADP=$xTXqTxeFHr^2pZ-@Ry&313)Gok#TyF)LyCzy~NvH-n2BIJ5HOM&0)7 zhZjxuga)(gKGvsD=T(p2?I=I(9e8hUludt+!{QN-N{3tCN?x%q8hIS|AFJ5*aaB6r zHnTyqm}+(nt%tLN(8yl&Zs@k|fzs-{sz-<00loh|2z#_0V>d%A zqppZDnX(ZhCSke&Xg%$9At!<*mpH~WYfcMbUR#Duz$g(jiS2`7XWDdmIAXpo+#$=A z?^Osh4N_{negmAAG;Pd{B_;*N6TlC^EfQOICF`A}nss5}%N`xNO<-Wkp8)VzY4Ats zju#aAd6I{`#uFcHCV_p~y(;!&U7d$U>U@hGgTNT~ph>g|0@J1J*B*Hg<(rtqv&~^Z zJYpn6KS|gqn3e;blyE<)c(r9&C?oGHyQG`#;034;1VJ(_zKY@ZXS4+nkQ2oj13^IL zRYr}hIeo^(=bzy3frgZd<%5Tb2Xi0vE$gcGkbQr!Ws4#%cxg6j5KF;ORtlBb(OzUZ zO3YD~0dQwJIB`aDCnnIk!Nh;4feFbF1O@%l;vx>O!RoDpLz+@B@4iKl!*j|iy%;rA zqJnj^OU0|z7b*fCMwIs|_D9loB*V=zI}m$CvWXr)-tsYgL^0rpncV}JrWN{L!$R?e zc65aBL`B(xl;oNwjLmAK57LcNYWz{DjTIZaFR_K~&!RzKV2rsGBP;&g!LTxB-eT9s z$$k4Ak8Fsa2!vaB7Hw@J>xU7@Fw<FJs4^<^(tBTo;3H1;g~N0I?*q;9N7=0$R!%9CJoVZK zF*a9hseMUi@lux3E0|!mg=e1XA)7Glh|TAjx)D+k!mMgD#`7T5N!MeY(72pl(K8a2 zPuRN5c;~Y|Q>o7zq`g1}r5VJ$Xa^l>LK+oF`uM|ZmxZktVm1}jVa0@6 zJGUaT=BaR|xnW{sGu8BfKq>{YpduGF+PvAT14OM6JM{<$SU;R1o$`oF6`G@C^1qw4 zIvkp@O;#4bg9@E>u}y}E#m`9gP|X`c|3Wr!H2W)g@m)EKN%R}Qs58^140ZZEa2(pS zbh`i}-wdYGYGY?sn9ttHNY8LIVoAynI8&FZoiBT8M~=mWvXTU3PyDfJ+L~$W6v4Kn zdQx7{bm+{=P<@aKs2=Gd|C=Miq+E*1O2MhX@Zva~n88r87l+K5O@n9PAl}^PS?8#T zOL$ZJ-hNj*tPY7mAj$%E#*U3nwk7GURGc-k_)~iI5SyZ7l5cQVrXNg3e*j5?fXe9} zVIYJYY_WMGP>I2iY2p+_;xE91Rhr2u2-l5Hvniz#SWTbCf|vF=jwe1s1t%A(q6nSY zWiC|-IO#|yzTWvW>ZS9T<^B5CGGr)NzoeiRTa;}xWx4g!J<8ScB8FtZno4LA-eiOG zr?@q>*ecmNJRlD`XG1b1Hk_bUZn0t&XZ(h*W+}KF}uiH zzh?&#J5=qS)j>gtd1ZmtZhTYNjRs;n2EYSZCGSz7$jl+NbB0XMc~;Po?n#WYI5)(|K@{w4CQ#v3vkc)Wx4!# z{9&eZnX`#OOC-y??sI!u7Z;oJ_w0oL`MvL8sWdFi8!LskXNzxzcSgIZ)mgJfhM_-K zyzec_#aWsePeq9hGKqmnvBcl{v1o;+0ENV+XYJ73N=XT`+dC*xW^n(alyIqJs7$h! z*A_i!v2zrinaFIijFI-W3;2109{j$|bv)!_Kv@>$>7-J-Hsop9w>S<(Pfi()b0=A& z?% zAKpmYxZ|@R&@H2O6__%6m!xqcdGQ#_x|ChTbF~Sr__~% zRN{zu=24f}8MP$ZbUna%_eBJq#1?7gw(@ws`dogvdAGaR&GVe{`BF5e0s?b>e}l}G zP><^>)I5nZqM!kqv>r_To*R3$57YDFX~BPH|DdZ-&KHGruDNX6A8~ZGN$n!Bso4cp z^MbiFYZeWo5tHa7hR+faL6Ol+NZ%fQ#5Y&vR;kDxRGnQ-brcmq->~`G{C;Q!d%lqN zD`303{V?y!cGd5`hZ{P~xf|WPL%m2*U)Oh!t*jSvjj=nK|C)nV#Coe*)(9*|{iG8) zn7POh`KeW-lL!lKtJ(2;QEsX5?#X1`u9U70Dyu{&2f$XCp2Rg(!YbX8!aPM3$X;Ad z+i$>na41~vhk4U&o9%y@{gT|MOz>T4mqm4o_u#%5g+aN_+H@QK>9eIWWfIIk8&`TV zL8PdCF~+Heg0GNgTOD*UaC2+N*GcZgu{gTDe#EJb*3TIg9X0C0*PH+nR$U@ zu@TAS3j9V+A+t(pu45~0J#^8NG{!>?;5o_<0=&g^c4J?OpP}st2A4UsXYd~)^Ab>4 zYZ*q_tE&FtcMfp3<8m)&G^)Cdv{Etg0nk*gAQzRp!Y-(0SHCzDOOsd%kK$hErA>P6TVTSoq z1I@GyWk#ik32s&m_4U2iho%nVjw?5*J^biCm)6jaxi?IWQ_c*Z`g9rnY3EiK${{_p z|C%(^WPjrJxgPzS^rvOu)7;&E&m+7UhyQ;0`m6gy;!ej4J&te6*Yfm?vh&*3;U-VQCn8B=m@0 z%pJ#8Dm%qw3o=V+p3&XBLtSx|)O(oAXzu+4UzT4&vLd^CydL9vIaVc6&R%62rJzNr z8fyAU;L=?7t)40`#4#1jYB%n?7il?PDnZ7O#wG$izt^%}C9j$%=oM_4jo+VdE9=&W zj!*GDzQ;4k;V;R0o)oK71p&8u+MkIR%Ohcs6q!-*6D_)_O~&x?=!hdjd~e@m-A(dA zXpn-M3#V#3L1TVN$`J|4S8}x1ZG`pA#v0ItqBUt0@8ZIPKo2!U^Mm~qlqrce!JfU@ z9d@W)A?6P)wAQ8@@eBuylYK|@6VS?!a7A>@Dw$^O2PCn!yG|;@Z9jq9T_11JM_f)E zFwj49NIxcU9*>SBwrIJ^f-J5#PS_{}*Gi?xk&1k6)pqXBouPCNADfc1jAI)@n z845~QZkSkuAM`$o$GGA%M$(-rjWF2*sO1HkJyo1X>u$-ztnnTz+b8i6`PjS^524+9 z5O;p8!Y4b@SqmRfqqfWyYk5VE+~Pg(xcnH8%8ziY9v5+XXK`iP`@nk<5m~Ga4G({MwVC zdoZpFHr==Fb7kAf>*4cQkyonAYV3k|DUi_DsZ=>>za>~VPnu+y>`dnbs^|#wtOth8 zTACplz#o>5O*STKsK_!abm%%s+R|To{xthfJ@G1KM`ahOT!&0DX6~wKe^bKNzNTY} zp|m|s3QeK0p`+lYv7kD`bb>28A5}$5VqQt)wqqb9^S<+bK2pt@@lDQ@P43_M$%h}m zL-ud?YxlX!$l~tC?nNU))!L=W{KJj-lvg6okER=?Pm%3? ze}VTrLs9b_RJsMlYREqEJ3a}niF~2$P}JB`;!Szb;(NVG~JKz91UKs6TMs~dU=Sh$#!Z9Gh1n(hhwJLgw7#4Y@uVcr~jm##CfzF zZct>-A5-a?+7UK1WI-c(ajALZt^ZL(MYL3vi2z{ooIsibFn>1(xU!OP+kHh4-mA1m zA@*u6m{IUPib6}!En80r9F|iUiSBr|U~nE5pjpmh6bN73h^m+%jVdXNCSQ!SaZY3@ z-?K$3-U>c!K;lrFCOg#nnHku>pq1}ZaO-oh9#g&;QBJ+TqXjkq;ENxZq5}MAod5Rg zn7`{g%9}*M4j6y{)+cS*0NA26i)Dpq zDn+ER#Aa0zHMI!WZ~aq4>NM0}0>GdU(%q{14S|#-G*J0k7d9bg|++YSoTeVHGQPvF0@f zROVj=by{E^G07taSs=5>TE-#MEN&p)3j_e>jm|8Fs-jsy zG*ga7Cvr_hKBJejPUNVv>7_2i5HgJCI7>H=XjTsY2??(neHH6iQRppe$8-88o6Gq0 z8Zv|<1Dd?K(c!>~ru=Jh+!505VgDn(Sz7!QBC~n#WD@$eJ5}^aybEU%K`uZmoHq_FebS#&(s=C)uV`U zh$y-Jj$NpDxj?d)82f+(I~589*a!m$)ehhxz-(a%8^48NI7Ah~%Y_Imj3gy(VH9B< z7nFkw22*k3r6Yi*`&^$FsJRM3ENlhpU6hEg1 zix5gt3}VJgPNd+BW5H_MN^Ds%WzHU+go2GGWpD>;*HJ>8;D`2{{E(AI1Cu9X^dONl zFnRFP#onA1`W%yCd5z+t#kpGU + + + + + + + + + + + + +介绍 | Smartchart开发手册 + + + + + + + + + + + + + + +

    + + +
    +
    + +
    + + + 介绍 + + +
    + + + + + + +
    + + + +

    Smartchart6.0 预计2022年底发布, 带来全新的功能与体验, 请关注

    +

    + 设计哲学: + # +

    +
      +
    • 她是基于真实应用场景的敏捷数据中台而设计的产品,已成熟在多个大型企业应用多年,不仅是一个可视化低代码开发平台, 也是数据接口低代码, 甚至是业务系统低代码开发平台
    • +
    • 支持多种混合布局, 对于普通报表可以使用响应式布局同时满足大屏, 电脑, 平板, 手机端的页面, 对于大屏也可使用拖拽辅助布局来配合自由开发模式(专业版)
    • +
    • 她是面向开发者, 如果需要设计出来非常漂亮有个性的数据展现形式, 我们发现如果要达到这个目的, 不管用什么开发工具, 最终还是需要用户了解一些基础的html, css, echarts的配置, 如果去学习某个平台中要在那些地方点点点的界面上进行配置, 那么为什么不去学习使用原生的呢, 这样反而更简单, 用户可以找到的参考资源更全面, 甚至可以从社区的代码中直接复制过来, 所以我们设计理念是不自定义开发语言, 而是帮大家建立数据与图形的高速公路, 定义交通规则 和提供服务区
    • +
    • smartchart有很多隐藏功能, 所以初入smartchart的同学会一脸迷惑, 无从下手, 因为我们讲究 精减设计可扩展性 , 如果有些功能只用一次, 就不会让他在界面显示, 我们不推荐不看文档和视屏就直接上手开发的模式, 给你门槛是为了将来使用得不会太累
    • +
    • 她重在数据处理的便捷, 联动/刷新机制设计一气喝成, 无缝的原生图形开发工具, 没有脱泥带水的让用户去找设定开关, 你甚至可以使用你喜欢的IDE进行开发, 给开发者充分发挥的自由
    • +
    • smartchart是一个企业级解决方案, 不是一个玩具, 她不喜欢浮躁, 需要你沉下心, 慢慢体验, 属于慢热型, 就好比是做菜, smartchart是给你提供了已经切好的菜和菜谱说明, 你可以按自已喜欢加火放调料就行, 你甚至可以增加新的调料(如css, js引用) 或更换调料. 相比有些产品就是给你准备的是已做好的菜品, 如果你觉得它盐放得太多, 你得清洗下, 再重新回锅, 对于我们开发人员来说, 这是不可忍受的
    • +
    • 类似于养成类游戏, 你可以在开发过程中积累图形, 模板等等, 在后面的项目中可以直接用复制粘贴的方式进行复用, 而不需要再界面上重新进行配置调整. 你也可以和其它开发者(厨师)交流, 互通有无, 快速提升自已的等级, 比如购买模板就是最快的方法
    • +
    +

    + 与传统BI的区别 + # +

    +
      +
    • 传统BI面向非技术人员, 更注重于开发的过程无代码化,所以最终实现的可视化效果较差, 可定制化程度低, 访问速度慢,对硬件要求高, 应用场景局限性比较大
    • +
    • smartchart是面向技术人员的可视化产品, 更注重于最终效果, 采用的是低代码技术, 对技术人员更友好, 可定制化高, 可视化效果更好, 访问速度快, 更灵活,对硬件要求低, 应用范围广
    • +
    +
    + + + +
    + +
    + + + + + + + +
    + + + + + + + + +
    + + + +
    + +
    + + + + +
    + + + + +
    + + + + + + + + + + + + + + + + diff --git a/docs/smartchart/index.xml b/docs/smartchart/index.xml new file mode 100644 index 0000000..32e0663 --- /dev/null +++ b/docs/smartchart/index.xml @@ -0,0 +1,861 @@ + + + + 介绍 on Smartchart开发手册 + https://smartchart.gitee.io/ + Recent content in 介绍 on Smartchart开发手册 + Hugo -- gohugo.io + + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/%E4%BD%BF%E7%94%A8VUE/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/%E4%BD%BF%E7%94%A8VUE/ + 使用场景 # 报表中涉及交互场景较多, 需要数据与页面绑定 开发者熟悉vue 常见绑定 # //显示变量message &lt;p&gt;{[ message ]}&lt;/p&gt; //循环产生li,变量sites &lt;ol&gt; &lt;li v-for=&#34;site in sites&#34;&gt; {[ site.name ]} &lt;/li&gt; &lt;/ol&gt; //绑定输入值变量use &lt;input type=&#34;checkbox&#34; v-model=&#34;use&#34;&gt; //显示控制 &lt;p v-if=&#34;seen&#34;&gt;现在你看到我了&lt;/p&gt; &lt;p v-show=&#34;seen&#34;&gt;现在你看到我了&lt;/p&gt; //绑定属性 &lt;a :href=&#34;url&#34;&gt;&lt;/a&gt; &lt;div :style=&#34;{ color: activeColor, fontSize: fontSize + &#39;px&#39; }&#34;&gt;&lt;/div&gt; &lt;div :class=&#34;[errorClass ,isActive ? activeClass : &#39;&#39;]&#34;&gt;&lt;/div&gt; //绑定点击方法 &lt;a @click=&#34;doSomething&#34;&gt;&lt;/a&gt; 开启VUE # 需要在高级中加入“dv”:2,即可开启vue模式 你可以在图形编辑器中给vue的变量赋值,我们内置了17个变量,从d0, d1&hellip; d16 赋值方式 vapp.d0 = xxxx 你可以将d0赋值为字典, 如: vapp.d0 = { &lsquo;index1&rsquo;: 100, &lsquo;index2&rsquo;: 300} + + + + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%8D%E5%A4%AA%E9%87%8D%E8%A6%81/%E4%B8%BB%E9%A2%98%E5%BA%94%E7%94%A8PRO/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%8D%E5%A4%AA%E9%87%8D%E8%A6%81/%E4%B8%BB%E9%A2%98%E5%BA%94%E7%94%A8PRO/ + 点击smartchart图标,切换到菜单固定模式, 你可看到主题的选择 + + + + + https://smartchart.gitee.io/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/ + 涉及的基础环境和版本: # * Centos 7 * Python 3.9 /data/smartchart/ 项目主目录 /data/smartchart/tools 项目相关软件 下述内容中,凡是涉及到/data/smartchart路径的,都可以将其修改为你自己系统上的路径。 安装环境 # 安装Python # cd /data/smartchart/tools yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel 下载https://npm.taobao.org/mirrors/python/3.9.0/ 上传服务器,放入安装目录解压 或者 Wget https://npm.taobao.org/mirrors/python/3.9.0/Python-3.9.0.tgz tar -zxvf Python-3.9.0.tgz 进行源码目录 配置安装路径 ./Python-3.9.0/configure --prefix=/data/smartchart/tools/python3 编译安装 make &amp;&amp; make install 建立软链接 ln -s /data/smartchart/tools/python3/bin/python3.9 /usr/bin/python3 ln -s /data/smartchart/tools/python3/bin/pip3.9 /usr/bin/pip3 测试是否安装成功 python3 --version 建立python虚拟环境 # python3 -m venv myvenv cd myvenv source bin/activate 在虚拟环境中安装smartchart # pip3 install -i https://pypi. + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/EXCEL%E6%95%B0%E6%8D%AE/%E4%BB%8EEXCEL%E7%B2%98%E8%B4%B4%E6%95%B0%E6%8D%AE/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/EXCEL%E6%95%B0%E6%8D%AE/%E4%BB%8EEXCEL%E7%B2%98%E8%B4%B4%E6%95%B0%E6%8D%AE/ + 固定数据集 # 有一些场景, 比如已有一些固定的筛选器,或是需要测试用,或者Demo,或者其它图形需要用到一些共用的已确定好的数据 这样我们可以不需要通过查询数据库的方式, 而直接写入数据集, 支持数组和字典的格式 你只需要在数据集中起始写入 dataset= , 这样就是默认是固定数据 +如何快速的输入固定数据集, 你可以通过直接从EXCEL复制到数据集编辑器(以下图片非目前编辑器, 供参考),保存以后会自动生成: 固定数据集也支持之前提到传参数, 魔术方法, 缓存等所有数据集的功能 + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E6%95%B0%E6%8D%AE%E9%9B%86%E5%BC%80%E5%8F%91%E7%95%8C%E9%9D%A2/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E6%95%B0%E6%8D%AE%E9%9B%86%E5%BC%80%E5%8F%91%E7%95%8C%E9%9D%A2/ + 开发前建意先观看视屏, 了解基础说明, 视屏有点老和现在界面不一样, 目前很多功能已经做成可视化配置, 理解过程即可, 具体以文档为准 +Smartchart数据集与图形 从仪表盘界面中进入简易开发界面 # + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/API%E6%95%B0%E6%8D%AE%E9%9B%86/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/API%E6%95%B0%E6%8D%AE%E9%9B%86/ + 对接外部API取数, 注意返回一定要是JSON格式 你只需要在数据集编辑框中如下输入 +-- GET 方法: dataset= { &#34;url&#34;:&#34;https://www.smartchart.cn/smartdata/api/?i=loaddataset1&amp;j=1&#34; } -- POST 方法: dataset= { &#34;url&#34;:&#34;https://www.smartchart.cn/smartdata/api&#34;, &#34;method&#34;:&#34;POST&#34;, &#34;data&#34;:{&#34;i&#34;:&#34;loaddataset1&#34;, &#34;j&#34;:&#34;1&#34;} ... } 例如你可以传入参数做出联动效果 +dataset= { &#34;url&#34;:&#34;https://www.smartchart.cn/smartdata/api&#34;, &#34;method&#34;:&#34;POST&#34;, &#34;data&#34;:{&#34;i&#34;:&#34;loaddataset1&#34;, &#34;j&#34;:&#34;/*$参数名*/&#34;} ... } 你也可以增加header等认证方式 +dataset= { &#34;url&#34;:&#34;https://www.smartchart.cn/smartdata/api&#34;, &#34;method&#34;:&#34;GET&#34;, &#34;headers&#34;:{&#34;Cookie&#34;:&#34;xxxxxxx&#34;} ... } + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%87%BD%E6%95%B0%E6%96%B9%E6%B3%95/%E5%9B%BE%E5%BD%A2%E7%AB%AF%E6%95%B0%E6%8D%AE%E5%87%BD%E6%95%B0/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%87%BD%E6%95%B0%E6%96%B9%E6%B3%95/%E5%9B%BE%E5%BD%A2%E7%AB%AF%E6%95%B0%E6%8D%AE%E5%87%BD%E6%95%B0/ + 应用场景 # 在图形开发中,我们可能需要使用js对传递过来的数据进行处理 +原始数据格式 # 假设dataset的格式是, SQL = Select 维度1,维度2,数据 from xxxx, 生成的数据集如下 +dataset = [[&#39;category&#39;,&#39;C1&#39;,&#39;C2&#39;], [&#39;R1&#39;, 12, 18], [&#39;R2&#39;, 10, 17] ] 转化函数 # 生成字典表示为key-&gt;[], 常用于定制化高的图形 # result = ds_createMap(dataset) 结果 = {&#34;category&#34;:[&#39;C1&#39;,&#39;C2&#39;], &#34;R1&#34; : [12, 10], &#34;R2&#34; : [18, 17]} 生成非常多前端组件要求的格式 # result = ds_createMap_all(dataset) 结果 = [{&#34;category&#34;:&#34;R1&#34;, &#34;C1&#34;: 12, &#34;C2&#34;: 18}, {&#34;category&#34;:&#34;R2&#34;, &#34;C1&#34;: 10, &#34;C2&#34;: 17}] 获取列名list, 用于获取系列名 # result = ds_rowname(dataset) 结果 = [&#39;R1&#39;,&#39;R2&#39;] 将数据集行列转化, 一般用于坐标轴翻转 # result = ds_transform(dataset) 结果 = [[&#39;category&#39;,&#39;R1&#39;,&#39;R2&#39;], [&#39;C1&#39;, 12, 10], [&#39;C2&#39;, 18, 17]] 两个数据集左关联, 常用于将两段查询数据合并 # 假设需要关联的数据集格式: dataset2 = [[&#39;category&#39;,&#39;C3&#39;], [&#39;R1&#39;, 38], [&#39;R6&#39;, 13]] 处理后的结果: result = ds_leftjoin(dataset, dataset2) 结果 = [[&#39;category&#39;,&#39;C1&#39;,&#39;C2&#39;,&#39;C3&#39;], [&#39;R1&#39;, 12, 18, 38], [&#39;R2&#39;, 10, 17, 0] ] 数据集旋转,在excel中叫透视表 # 比如需要将dataset3的户型变成指标 dataset3 = [[&#39;城市&#39;,&#39;户型&#39;,&#39;数量&#39;], [&#39;长沙&#39;,&#39;A&#39;,35], [&#39;上海&#39;,&#39;B&#39;,19]] 处理后的结果: result = ds_pivot(dataset3) 结果 = [[&#34;城市&#34;,&#34;A&#34;,&#34;B&#34;], [&#34;长沙&#34;,35,0], [&#34;上海&#34;,0,19]] 移除数据集中的某几列 # 比如移除第1列(序号0) result=ds_remove_column(dataset,remove_list=[0]) 结果 = [[&#39;R1&#39;,&#39;R2&#39;], [12, 10], [18, 17] ] smartchart图形中可用的转化函数 # 函数名 函数说明 样列 ds_transform(dataset) 行列替换 ds_split(data,sep=&rsquo;,&rsquo;,head_add=[]) 将第一列拆分成多个字段,默认逗号分隔, 如果不传表头,取SQL中的字段名拆分 ds_createMap(data) data表示传入的二位数组,生成结果表示为key-&gt;[], 常用于echarts指定数据 ds_createMap_all(data) data表示传入的二维数组,生成结果表示为[{A:A1,B:B1,C:C1},{A:A2,B:B2,C:C2}&hellip;] ds_mapToList(data) 将createMap_all的格式还原成二维数组, 常用于将nosql(mongodb,es. + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%9F%BA%E7%A1%80%E5%9B%BE%E5%BD%A2/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%9F%BA%E7%A1%80%E5%9B%BE%E5%BD%A2/ + 快速应用基础图形组件 # 你可使用如下方式选择常规的图形一键进行应用(我们只放了基础图形,因为你可以通过简单修改配置转化为各种图形,如线性面积图, 柱形堆叠图..) 你也可以在图形商店中找到更多已转化好的Smartchart图形 配置项完全和Echarts原生一样 +注意: 对于一些特殊图形如地图js在图形编辑中需要进行动态加载, 如果你使用了非常规图形, 你可在图形编辑器使用ds_loadjs(&lsquo;smt_china’)加载中国地图, 同理我们有 &lsquo;smt_wordcloud&rsquo;, &lsquo;smt_world&rsquo;, &lsquo;smt_ecStat&rsquo;, ‘smt_liquidfill’ 有些图形可能同时需要在模板中加载, 更多特殊图形加载说明参考 特殊图形模板加载 + + + + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E5%B8%83%E5%B1%80%E6%8C%87%E5%BC%95/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E5%B8%83%E5%B1%80%E6%8C%87%E5%BC%95/ + 整理一份完整的SmartChart布局说明 # 推荐先观看视屏了解 smartchart布局方式 +容器说明 # 容器 说明 定位容器 用于图形定位, 有拖拽和栅格两种. 在界面上新增时会自带;在模板编辑中新增图形时需自行加入容器 图形容器 用于图形选择, 使用id选择器, 如序号为2的容器, 选择器为#container_2 图形 可视化的实际单位, 如选择图形中的table标签, 可使用#container_2 table 响应式布局 # 一般移动端报表推荐使用响应式布局, 一次布局可以同时满足电脑端/移动端的需求 当你新增一个数据集时, smartchart会给你一段默认的代码 +&lt;div class=&#34;el-col-xs-24 el-col-md-24&#34; style=&#34;padding:0.2rem;height:50%;&#34; &gt; &lt;div style=&#34;height:100%;&#34; id=&#34;container_{name}&#34;&gt;&lt;/div&gt; &lt;/div&gt; el-col-md-24 : 电脑端宽度设定 控制图形父容器的宽度, 整行分成24个栅格, 如果你想让图形占一半, 就可以改成el-col-md-12 el-col-xs-24 :移动端宽度设定 padding:0.5% 0.5%: 控制图形的上下, 左右内边距, padding: 上 右 下 左 比如你想要图形在容器中往下走一点, 你可写成 padding: 1% 0 0 0 height:50%; 盒子的高度, 相对于父容器的高度, 最外层即浏览器高度 大屏开发推荐使用拖拽布局(PRO) # 大家如果开发大屏, 只是用响应式布局可能对于复杂的布局不是很方便, 你也可以采用拖拽绝对定位的方法, 这样你可以随意指定图形的所在位置. + + + + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E5%8F%82%E6%95%B0%E7%BC%96%E5%86%99%E6%96%B9%E6%B3%95/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E5%8F%82%E6%95%B0%E7%BC%96%E5%86%99%E6%96%B9%E6%B3%95/ + 使用场景 # 需要使用图表联动效果 数据服务接口开发 使用魔法方法(smartchart独创,拒绝抄袭) # 基础原理 # - $参数名, 当有传递参数时将替换相关的值 - /* ... $参数 ... */, 当参数写在这个区间时, 如果外部没有传入参数, 会自动忽略这一段代码 - -- 标识之后单行的代码会被忽略 常见组合应用 # 理解以下样列后, 可录活使用组合出各种可能的需求 +默认参数: 实现在不传参数时默认参数是当前月份 select xx from tablename where calmonth =/*&#39;$calmonth&#39; -- */ to_char(sysdate,&#39;YYYYMM&#39;) 多个参数: 注意使用1=1及and的位置 select xx from tablename where 1=1 /* and city = &#39;$city&#39; */ /* and calmonth =&#39;$calmonth&#39;*/ 维度变化: 将字段当成参数 select /*$calmonth,*/ city, count(1) as qty from tablename group by /*$calmonth,*/ city 维度变化: 当传入月份条件时, 按城市,月份的数据, 不传参数时只看按城市的总数 select /*月份, -- $Month */ 城市, sum(度量) from tablename where 1=1 /* and 月份 &gt; &#39;$Month&#39; */ group by 城市 /*,月份 -- $Month*/ 高级开关应用 # 以上应用可以通过参数是否有传递来实现开关代码段的效果, 有些场景可能还希望通过参数值来进行代码段的开关 如下代码可以实现当传递参数type=1 或 type=2 时执行不同的代码段 使用 &ldquo;$参数__值&rdquo; 的方式做为开关 + + + + + https://smartchart.gitee.io/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/%E7%AE%80%E5%8D%95%E5%B5%8C%E5%85%A5/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/%E7%AE%80%E5%8D%95%E5%B5%8C%E5%85%A5/ + 你可能需要把Smartchart生成的图形嵌入到其它系统 首先,所有smartchart设计出来的仪表盘都有一个访问url 你可以直接访问: +http://localhost:8000/echart?type=仪表盘名称 如:http://localhost:8000/echart?type=demo 但是smartchart默认是有权限管理的,所以如果你需要嵌入你自已的系统又不考虑权限,你可以在“设定” &ndash;&gt; 公开 然后在你的网页就可以直接iframe了 +&lt;iframe src=&#34;http://localhost:8000/echart?type=demo&#34; style=&#34;width:100%;height:100%&#34;&gt;&lt;/iframe&gt; + + + + + https://smartchart.gitee.io/docs/8.Django%E5%BA%94%E7%94%A8/%E5%B5%8C%E5%85%A5Django-Apps/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/8.Django%E5%BA%94%E7%94%A8/%E5%B5%8C%E5%85%A5Django-Apps/ + 应用场景 # 你可以在你的django项目中直接使用smartchart做为插件的方式 你可以查看相关视屏 +使用方法 # 在你的setting.py的INSTALL_APPS中加入&rsquo;smart_chart.echart' 如果你需要simpleui, 你可以在最上行加入我们适配好的&rsquo;smart_chart.smartui&rsquo; INSTALLED_APPS = [ &#39;smart_chart.smartui&#39;, .... .... &#39;smart_chart.echart&#39; ] MIDDLEWARE 中注释掉XFrameOptionsMiddleware +检查确保在Templates的设定处有DIRS的相关设定 +TEMPLATES = [ { &#39;BACKEND&#39;: &#39;django.template.backends.django.DjangoTemplates&#39;, &#39;DIRS&#39;: [BASE_DIR / &#39;templates&#39;], #此处需要有 &#39;APP_DIRS&#39;: True, #也要有 ..... }, ] setting.py中设定为中国时区, 支持中文基础平台建设! LANGUAGE_CODE = &#39;zh-hans&#39; TIME_ZONE = &#39;Asia/Shanghai&#39; USE_I18N = True USE_L10N = True USE_TZ = False # 此处必须为False 在你的url.py中加入引用 from django.conf.urls import include from django.views.generic import RedirectView url.py的urlpatterns中加入路由 path(&#39;echart/&#39;, include(&#39;smart_chart.echart.urls&#39;)), path(&#39;&#39;, RedirectView. + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E5%AE%9E%E6%88%98%E5%A4%A7%E5%B1%8F%E6%A8%A1%E6%9D%BF%E8%BD%AC%E5%8C%96/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E5%AE%9E%E6%88%98%E5%A4%A7%E5%B1%8F%E6%A8%A1%E6%9D%BF%E8%BD%AC%E5%8C%96/ + 应用场景 # 已有开发好的非smartchart静态大屏模板(这种模板非常多, 不要上当) 对js, css及smartchart已有初始了解 业务需求展示有合适的模板, 变化不大 如何使用 # 请观看系列视屏, 相信人人都会 头条视屏: 大屏模板转化系列 B站视屏: 大屏模板转化系列 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91%E7%95%8C%E9%9D%A2/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91%E7%95%8C%E9%9D%A2/ + 低代码化开发 # smartchart的标准模板为了标准化的原因,对于引用JS,编写CSS等有一定不方便性, 但有时候你可能需要放飞自由, 随意定制 你甚至可能想引用一些其它的UI组件, 所以smartchart给你一个原汗原味的开发空间 +开启方式 # 在高级中,设定template为diy 主菜单中会多出来一个 模板 的功能 进入模板编辑界面 + + + + + https://smartchart.gitee.io/docs/%E5%85%B3%E4%BA%8E%E6%88%91%E4%BB%AC/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/%E5%85%B3%E4%BA%8E%E6%88%91%E4%BB%AC/ + 我们的目标 # 打造全生态的数据应用数据管理的平台,解决中小企业上中台难,上中台贵,见效慢的问题. 平台与时俱进,不断完善与优化中 可以通过视屏了解我们的架构设计 企业数字化与smartchart的一站式解决方案 +我们不提供数据存储与计算引擎, ETL工具, BI工具. 因为已有更优秀的产品,我们只为数据开发人员提供更敏捷的工具与平台,致力于数据服务中台建设,边缘可视化与数据管道产品, 站在巨人的肩上, 让数据更有个性,更灵活与可定制化,由于他的通用性,功能的扩展变得也是非常的Smart +产品定位: # 实现全生态的数据服务平台(数据收集, 数据加工, 数据分享,数据管理,数据应用) +产品模块: # 统一的数据处理调度平台、数据管道, 是基于Apache顶级项目Airflow上的二次开发产品,让数据处理的任务调度开发与管理微代码化,我们的设计理念是让开发者更方便的同时,不丧失灵活和高度可自定义,如果你使用过smartchat,你可以想象他会带来的便捷性, 产品名为smartpip, 为啥不叫smartpipe, 因为能省我们就要省&hellip; 统一的可视化管理平台, 为微信等第三方应用, 提供powerbi,tableau,finebi&hellip;的嵌入式及功能扩展服务,数据集即服务,一切为数据集 统一的数据上传平台, 实现线下数据的收集需求, 并提供专业的手工上传数据产品, 支持excel本地(安装与免安装版本), 支持WEB端 统一的数据分享平台与smartchart集成,可做为数据服务中台, 实现业务对数据下载的需要及为第三方提供获取数据的API接口 SmartChart可视化平台, 新一代的数据可视化产品, 解决传统BI各种痛点问题,真正面向开发人员的平台产品 元数据管理平台及数据治理,让数据的来源更清晰, 让数据应用更方便,具备自动化,可视化的数据血缘分析 新一代极速数据仓库技术, 极简架构即可实现在大数据应用的全场景需求 + + + + 专业版本说明 + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%93%E4%B8%9A%E7%89%88%E8%AF%B4%E6%98%8E/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%93%E4%B8%9A%E7%89%88%E8%AF%B4%E6%98%8E/ + 版权声明 # 为项目能持续维护,并保持稳定的模式,按照社区投票的意见, 开始区分免费版本和专业版本 目前免费版本无需激活, 你可以使用到常用的功能,我们也会保持持续的更新 为保持项目的健康发展,如需进行商用,您需提供使用方并知会作者进行授权 +免费版使用者必须保留SmartChart相关版权标识及LOGO,禁止对其进行修改和删除 如果违反,将保留对侵权者追究责任的权利 +激活方式 # 您在初次安装Smartchart后会自动免费激活20天的专业版本, 之后专业版本功能会限制使用 请务必仔细阅读免费版本与专业版本的区别, 避免带来的不便 后续如果您还需要继续体验专业版本, 点击查看激活试用方式, 如果您是企业用途,建意使用专业版,获取更快的开发效率,可视化效果, 可靠性的保障及极速的查询体验 +针对个人独立开发者,你可以采用廉价的专业版仪表盘激活方案, 可满足小项目的可视化要求 如果需要永久激活专业版,可关注公众号与客服联系,或扫码联系微信客服了解, 非诚勿扰 +微信客服不提供技术咨询, 如有使用方法的疑惑,建意加QQ群:476715246 进行沟通 +免费版本与专业版本对比: # 功能 免费版 专业版 中台版 栅格布局 V V V DATAV V V V 拖拽布局 V V 自由开发 V V 切换图表主题 V V 主题自由设计 V V 引入JS V V 引入CSS V V 上传静态资源 V V 使用VUE V V V 数据集开发 V V V 所有数据源 V V V 图形开发 V V V 图形商店 V V V 普通模板应用 V V V 专业模板应用 V V 复制仪表盘 V V V 钻取 V V V 联动 V V V 筛选 V V V 单点登录 V V V 嵌入认证 V V LDAP认证 V V Juypter V V V 快捷存档 V V 数据加速 V V 数据API服务 V V 后台API刷新 V V 仪表盘同步 V V 仪表盘版本管理 V V 数据填报 V V 报表Portal V V 多级项目菜单 V 商业授权 V V 优先咨询 V V 专业边框背景 V V 3D场景 V V 中国式报表 V V 生产部署文档 V V 个性化修改 V V 授权书 V V 低代码ETL V 调度平台 V 智慧BI V 数据资产 V 数据血缘 V 租户管理 V + + + + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/ElementUI/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/ElementUI/ + 应用场景 # 非大屏场景应用 有较多交互场景的报表, 如筛选,表格,分页,下载等 使用方法 # 如下图, base.html 改为 basevue.html 将自动开启加载vue和elementui 注意vue的变量引用在 模板编辑界面中, 写法变更为 {[ ]} +ElementUI组件说明 视屏参考 +参考样列 # 新增一个数据集(点击金色的新增按钮, 这样会新增一个可拖拽的数据集) 修改相应的数据集及图形 数据集端 +select H1, H2, qty, rate from smartdemo2 limit 100 图形端 +let dataset = __dataset__; let tableData = ds_createMap_all(dataset); vapp.d0={ tableData: tableData } 模板Body区端 +&lt;div class=&#34;smtdrag&#34; id=&#34;id_1639824145817&#34;&gt; &lt;template&gt; &lt;el-table stripe border height=&#34;100%&#34; :data=&#34;d0.tableData&#34; style=&#34;width: 100%&#34;&gt; &lt;el-table-column label=&#34;hero&#34;&gt; &lt;el-table-column prop=&#34;H1&#34; label=&#34;H1&#34; fixed :default-sort = &#34;{prop: &#39;H2&#39;, order: &#39;descending&#39;}&#34; width=&#34;180&#34;&gt; &lt;/el-table-column&gt; &lt;el-table-column prop=&#34;H2&#34; label=&#34;H2&#34; sortable width=&#34;180&#34;&gt; &lt;/el-table-column&gt; &lt;/el-table-column&gt; &lt;el-table-column sortable prop=&#34;qty&#34; label=&#34;qty&#34;&gt; &lt;/el-table-column&gt; &lt;el-table-column prop=&#34;rate&#34; label=&#34;rate&#34;&gt; &lt;/el-table-column&gt; &lt;/el-table&gt; &lt;/template&gt; &lt;/div&gt; + + + + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%8D%E5%A4%AA%E9%87%8D%E8%A6%81/%E5%A4%8D%E5%88%B6%E4%BB%AA%E8%A1%A8%E7%9B%98/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E4%B8%8D%E5%A4%AA%E9%87%8D%E8%A6%81/%E5%A4%8D%E5%88%B6%E4%BB%AA%E8%A1%A8%E7%9B%98/ + 复制仪表盘 # 好不容易开发好了一个仪表盘, 想再做一个类似的, 或者想要一个测试用, 还需要一个个数据集, 图形复制粘贴么, 不, 你仅仅只需要点击下, 将给你复制出一个全新的仪表盘 注意: 复制出来的仪表盘, 数据集是与原仪表盘公用的!! +如果你想将数据集独立出来, 可以按下图操作, 进入数据集设定, 点击磁铁, 将为你自动创建一个全新的数据集 + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/EXCEL%E6%95%B0%E6%8D%AE/%E6%95%B0%E6%8D%AE%E4%B8%8A%E4%BC%A0/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/EXCEL%E6%95%B0%E6%8D%AE/%E6%95%B0%E6%8D%AE%E4%B8%8A%E4%BC%A0/ + 用户如何上传文件 # smartchart默认是不自带文件上传功能 但是smartchart是可以自已创造上传页面, 在模板商店中你可以找到相关模板进行购买 然后通过模板下载的方式下载后进行操作 这样每一个页面是可以单独使用权限控制的,就和控制报表权限一样,你还可能按需随意定制页面 关于上传文件的路径 # 默认的上传主目录是在项目的log的文件夹下面, 你可以在setting.py(自定义django) 或 config.ini中设定UPLOAD_PATH来修改你的上传目录 比如你上传页面的报表ID是23, 那么文件将会被上传到UPLOAD_PATH/23/你的文件名 +如何使用上传的文件 # 你需要使用 python连接器, 来操作你的上传的数据, 内置了变量ds_path为你的上传目录, 所以可以更方便的读取上传的文件,如上文件 df = pd.read_excel(ds_path+&rsquo;/23/文件名') + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/SQL%E6%95%B0%E6%8D%AE%E9%9B%86/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/SQL%E6%95%B0%E6%8D%AE%E9%9B%86/ + SmartChart标准数据集你可以想象为一个EXCEL的二维表, 有行和列 你直接在数据集开发界面填写SQL即可 +标准图形的数据表类型 # A类数据源 # 比如你的原始数据库中表的格式如下, 表名tb_name: 城市 户型 数量 长沙 A 12 长沙 A 23 上海 B 19 查询的sql: select 城市,户型,sum(数量) AS 数量 from tb_name group by 城市,户型 正常的查询的结果为: [[&#39;城市&#39;,&#39;户型&#39;,&#39;数量&#39;], [&#39;长沙&#39;,&#39;A&#39;,35], [&#39;上海&#39;,&#39;B &#39;,19]] 由于生成的数据格式第二行是 [字符,字符,数值], 后台会自动进行转列动作, 生成图表更容易使用格式: [[&#39;Categroy&#39;,&#39;A&#39;,&#39;B&#39;], [&#39;长沙&#39;, 35, 0], [&#39;上海&#39;, 0, 19]] B类数据源 # 再比如我们有一个表的数据格式, 指标是展开的: 城市 A B 长沙 10 12 上海 11 19 长沙 9 10 我们可以写的sql是: select 城市, sum(A) as A, sum(B) as B from tb_name group by 城市 这样得到的结果是: [[&#39;城市&#39;,&#39;A&#39;,&#39;B&#39;], [&#39;长沙&#39;, 19, 22], [&#39;上海&#39;, 11, 19]] 和我们的标准格式也是一样的 SQL多段查询 # 有时你一个数据集可能只用一个SQL查询还不够,比如你需要一个清单数据,同时你需要一个汇总数据做为说明在图形中显示,这样你就需要使用多条SQL语句,在数据集中的写法你只需要用分号隔开,如: + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/Python%E6%95%B0%E6%8D%AE%E9%9B%86/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/Python%E6%95%B0%E6%8D%AE%E9%9B%86/ + 应用场景 # 当SQL查询无法满足你的需求, 你需要对查询后的结果进行处理, 或者你需要使用Excel的数据源, 甚至你需要对不同系统的数据进行查询, Python连接器可以帮到你 我们又称他为万能数据集, 你可以使用任何python语法, 需要把数据集的结果赋值给ds变量!! +首先你需要新建python连接器, 由于安全控制只允许超级管理员建立 # 内置函数说明 ds_get(id) #输入目标数据集的id名, 可以获取目标数据集 ds_df(id) #输入目标数据集的id名, 转化成pandas的df对象 ds_sql(conn_name, sql_str) #输入连接池中的名称, SQL语句, 获取数据集 ds_list(df) #将pandas的df对象转化成数据集 使用方法样列说明 # # 读取Excel数据处理, 如需上传页面可参考&#34;数据上传&#34;说明 import pandas as pd df = pd.read_excel(&#39;/Users/../smartdemo.xlsx&#39;, &#39;demo&#39;) df = df.groupby(&#39;c3&#39;).agg({&#39;qty&#39;:&#39;sum&#39;}).reset_index() ds = ds_list(df) #从数据集获取数据 ds=ds_get(12) ds=ds[:15] #从数据集获取数据转化成pandas对象处理 df = ds_df(12) df = df.sort_values(by=&#34;出场数&#34;, ascending=False) ds = ds_list(df) #可以生成字典格式的数据集供多个图形使用 import pandas as pd df = pd.read_excel(&#39;/Users/../smartdemo.xlsx&#39;, &#39;demo&#39;) df1 = df. + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%87%BD%E6%95%B0%E6%96%B9%E6%B3%95/Jquery%E9%81%8D%E5%8E%86%E6%96%B9%E6%B3%95/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E5%87%BD%E6%95%B0%E6%96%B9%E6%B3%95/Jquery%E9%81%8D%E5%8E%86%E6%96%B9%E6%B3%95/ + 在做自定义html组件的时候你可能需要用得上: +一、向上遍历 +parent() 获取元素的直接父元素 $(&#34;span&#34;).parent().css({ &#34;color&#34;:&#34;red&#34;, &#34;border&#34;:&#34;1px solid red&#34; }) parents() 获取元素的祖先元素,直到根元素html $(&#34;span&#34;).parents().css({ &#34;color&#34;:&#34;red&#34;, &#34;border&#34;:&#34;1px solid red&#34; }) parentsUntil() 向上查找直到遇见某个祖先元素为止 $(&#34;span&#34;).parentsUntil(&#34;div&#34;).css({ //向上查找直到遇见div元素为止 &#34;color&#34;:&#34;red&#34;, &#34;border&#34;:&#34;1px solid red&#34; }) 二、向下遍历 +1. children() 查找子元素[按照从属关系] $(&#34;ul&#34;).children(&#34;li:first-child&#34;) 2. find() 按照指定的条件向下查找 $(&#34;ul&#34;).find(&#34;span&#34;) 三、水平遍历 +1. siblings() 获取元素的所有兄弟元素 $(&#34;.start&#34;).siblings().css({color:&#34;red&#34;,border:&#34;2px solid red&#34;}) 2. next() 获取元素的下一个兄弟元素 $(&#34;.start&#34;).next().css({color:&#34;red&#34;,border:&#34;2px solid red&#34;}) 3. nextAll() 获取其后的所有兄弟元素 $(&#34;.start&#34;).nextAll().css({color:&#34;red&#34;,border:&#34;2px solid red&#34;}) 4. nextUntil() 查找后面所有的兄弟元素,直到遇见某个元素为止 $(&#34;.start&#34;).nextUntil(&#34;li:last-child&#34;).css({color:&#34;red&#34;,border:&#34;2px solid red&#34;}) 5. prev() 查找上一个兄弟元素 $(&#34;li.start&#34;).prev().css({color:&#34;red&#34;,border:&#34;2px solid red&#34;}) 6. prevAll() 查找上面所有的兄弟元素 $(&#34;li. + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%AE%A1%E7%90%86%E5%9B%BE%E5%BD%A2/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%AE%A1%E7%90%86%E5%9B%BE%E5%BD%A2/ + 应用场景 # 如何快速复用已开发好的组件 +本地管理自定义组件 # 如下图,点击图形编辑器中的菜单,即可管理和查看自定义图形列表 点击&quot;加入样列&quot;即可把当前图形加入到样列清单, 点击&quot;取消样列&quot;即可将所选样列移除样列清单 云管理,在图形商店中保存你的图形 # 这样你就可以在图形商店看到你的图形进行重复利用 + + + + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E6%8B%96%E6%8B%BD%E8%87%AA%E5%8A%A8%E5%AF%B9%E9%BD%90/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E6%8B%96%E6%8B%BD%E8%87%AA%E5%8A%A8%E5%AF%B9%E9%BD%90/ + 拖拽很方便, 但是精确对齐还是有些手抖, 所以smartchart增加了自动对齐的功能 你可以在&quot;模板&quot; &ndash;&gt; &ldquo;转化&rdquo; 中找到这个功能 首先我们随意拖拽了一些组件 然后选中拖拽代码段, 点&quot;拖拽对齐&quot; 后 点&quot;保存&quot; 就可以查看对齐后的效果了, 再进行下拖拽微调, 重复以上动作到满意 + + + + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E5%9B%BE%E5%BD%A2%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E5%9B%BE%E5%BD%A2%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/ + 数据集准备 # 首先在需要进行联动的数据集中SQL的写法如下, 比如对应2号图形: +注意 /* ... */的写法, 当参数写在这个区间时, 如果外部没有传入参数, 会自动忽略这一段代码, 这样对于联动来说非常重要, 初始时全部显示, 点击其它图形时传入参数进行动态联动 select xxx,xxx,xxx from tablename /* where xxxx = &#39;$参数名&#39; */ .... 建意观看视屏比较容易理解: 数据联动说明 +常规方法 # 比如你需要点击0号图形, 指定其它图形联动 你只需要打开0号图形的数据集编辑页面, 点击标题的位置 然后输入相关的参数即可, 以下为sample 参数值设定的方法, 你可以先留空, 然后保存, F12打浏览器调试方法 点击0号图形你需要点击的动作, 你可以右调试窗口的console看到输入的log 比如我们需要传递的参数值是&quot;廉颇&quot;, 那么取数据的方法就是data.name, 你把这个填入即可 这样就实现按所选数据或所选系列钻取/联动了, 重新点击当前所选, 恢复原来的 如何在图形开发中获取参数值 +图形编辑器中, 你可以使用函数 ds_param(&#39;参数名&#39;) 来获取传入的参数值 高级定制方法 # 如果有更多个性化需求,可以在需要点击的图形的编辑器中加入以下代码,你仅仅需要修改的是序号和参数名 +//比如传入多个参数进行联动 myChart__name__.on(&#39;click&#39;, function(params){ let myparam = params.seriesName; //获取点击的值 filter_param[&#39;参数名&#39;] = myparam; //填写你的数据集的SQL设定中对应的参数名 filter_param[&#39;参数名2&#39;] = myparam2; //你可以赋值给多个参数 ds_refresh(3); //3 为你要刷新图形序号 }); 你也可以使用更方便的参数赋值方法(5. + + + + + https://smartchart.gitee.io/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95/ + 单点登录的方式与smartchart进行对接嵌入 # &#39;/echart/smart_login?id=xxx&amp;stamp=xxx&amp;token=xxx&amp;url=https://smartchart.gitee.io/&#39; &#39;&#39;&#39; 参数说明: id: 用户名(在smartchart平台中管理) stamp: 时间戳(1970年1月1日到生成时间的毫秒数) token: 采用sha1加密, token=SHA1(链接秘钥+stamp+id) 请在安装smartchart的这台机器上设定环境变量SMART_KEY = 链接秘钥 url: 登录成功后跳转链接 &#39;&#39;&#39; Python后台样列: # import time import hashlib import os &#34;&#34;&#34; 参数说明: id: 用户名(在smartchart平台中管理) stamp: 时间戳(1970年1月1日到生成时间的毫秒数) token: 采用sha1加密, token=SHA1(链接秘钥+stamp+id) url: 登录成功后跳转链接 &#34;&#34;&#34; SMART_CHART_URL = &#39;http://127.0.0.1:8000&#39; LOGIN_URL = SMART_CHART_URL + &#39;/echart/smart_login?id={id}&amp;stamp={stamp}&amp;token={token}&amp;url={url}&#39; SMART_KEY = 链接秘钥 def get_smarturl(username, url=&#39;/&#39;): stamp = int(time.time() * 1000) id = username res = SMART_KEY + str(stamp) + id token = hashlib. + + + + + https://smartchart.gitee.io/docs/8.Django%E5%BA%94%E7%94%A8/FAQ/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/8.Django%E5%BA%94%E7%94%A8/FAQ/ + FAQ # 如果你想对smartchart前端二次开发或关闭debug模式后找不到资源 在settings中加入 +STATIC_ROOT = os.path.join(BASE_DIR, &#34;static&#34;) 执行以下命令将静态文件静态文件克隆到根目录 +python3 manage.py collectstatic + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%95%B0%E6%8D%AE%E6%9C%8D%E5%8A%A1API/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%95%B0%E6%8D%AE%E6%9C%8D%E5%8A%A1API/ + SmartChart的数据集功能, 可以非常方便的实现数据对外微服务 # 权限设定 # 如果你使用的是自已搭建的django项目, 你需要在项目的根目录下新建一个JSON文件, 如果是使用smartchart启动的, 配置文件在项目的安装目录下可以找到 名为apiconfig.json, 比如需要调用API的用户名为test 和 test2,用户名需要是在你的用户设定中存在的,内容如下: { &#34;test&#34;: { &#34;token&#34;: &#34;smartchart&#34; }, &#34;test2&#34;: { &#34;token&#34;: &#34;smartchartxxx&#34;, &#34;host&#34;: [&#34;10.10.10.10&#34;,&#34;10.10.10.23&#34;], &#34;limit&#39;: 60, &#34;log&#34;:1, &#34;cors&#34;: 1 } } 可选设定参考test2 host:API白名单配置,limit:一分钟内可调用次数, log:日志记录方式. cors:永许跨域访问 +然后你只需要将你的数据集中的权限设定给对应的用户即可 请求方式 # 加密接口请求方式(推荐) # GET 请求 # #接口请求格式: url: /echart/dataset_api/?visitor=xxx&amp;token=xxx&amp;type=xxx&amp;stamp=xxxxx&amp;param={&#34;xx&#34;:&#34;xxx&#34;,&#34;xx&#34;:&#34;xxxx&#34;} # 参数说明 visitor: 用户名 type: 接口数据集ID stamp: 时间戳(1970年1月1日到生成时间的毫秒数) token: 采用sha1加密, token=SHA1(秘钥 + stamp + Visitor + Type) param: 传入的参数值(可选),格式json字符串,如多个参数: &#39;{&#34;参数A&#34;:&#34;xxxx&#34;, &#34;参数B&#34;:&#34;xxxx&#34;}&#39; # 接口返回格式 Json: { &#34;data&#34;:[[]], &#34;result&#34;:&#34;success&#34;, &#34;maxpg&#34;:1, &#34;pg&#34;:1 } 返回值说明: data : 二维数组,第一行为表头, 样列数据 [[&#34;heroname&#34;, &#34;qty&#34;],[&#34;镜&#34;,658],[&#34;猪八戒&#34;,591]] result : success 或 error maxpg/pg : GET请求固定为1不分页 POST请求(适用于后台定时同步数据,查询请用GET请求方法) # #接口请求格式: url: /echart/dataset_api/ # 请求参数说明 data: { &#34;visitor&#34;:&#34;xxx&#34;, &#34;token&#34;:&#34;xxx&#34;, &#34;stamp&#34;:xxxxx, &#34;type&#34;:&#34;xxx&#34;, &#34;pagesize&#34;:&#34;xxx&#34;, &#34;pg&#34;:&#34;xxx&#34;, &#34;param&#34;:&#39;{&#34;xxx&#34;:&#34;xxxx&#34;}&#39; } # 参数说明 visitor: 用户名 type: 接口数据集ID stamp: 时间戳(1970年1月1日到生成时间的毫秒数) token: 采用sha1加密, token=SHA1(秘钥 + stamp + Visitor + Type) Pagesize: 采用分页,每页的数据量大小 pg: 返回第几页 param: 传入的参数值,格式json字符串,如多个参数 &#39;{&#34;参数A&#34;:&#34;xxxx&#34;, &#34;参数B&#34;:&#34;xxxx&#34;}&#39; #接口返回格式 Json: { &#34;data&#34;:[[]], &#34;result&#34;:&#34;success&#34;, &#34;maxpg&#34;:xxx, #最大页数 &#34;pg&#34;:xx, #当前页数 &#34;casheflag&#34;: xx, #如果是999说明命中缓存 &#34;total&#34;:xx, #总条数 } 注意: 只有post是分页的, 第一页是带标题的, 后面页不带标题 由于post方式会使用缓存进行分页,如命中缓存传参不会生效,小数据量请使用get方式请求 不要请求大数据量,大量数据请采用limit, offset传参方式进行分页 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E5%BF%AB%E6%8D%B7%E5%BC%80%E5%8F%91/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E5%BF%AB%E6%8D%B7%E5%BC%80%E5%8F%91/ + 应用场景 # 专业化开发, 可将仪表盘显示和模板开发分屏开发 当你熟悉smartchart的基础开发后, 你可能会喜欢上现在这种方式 把你的可视化页面移动的显示器上吧, 进入&quot;模板&quot; 开发页面(上节介绍如何进入) +方式一: 自动化DIV # 此方式当你新增数据集图形时会自动识别, 无需手动在模板在添加 采用此方式请不要采用点击模板上方菜单的图形新增 如需编辑图形或数据集可按如下方式: 方式二: 自由DIV # 你可以模板中按照常规的H5页面编辑, 只是在需要插入图形的地方插入即可(建意通过模板上方的图形新增) 开始畅快的开发 +点击图形即可新增一个图形,你甚至可以指定图表的位置, 完全和写html一样, 使用{{div_list.图表顺序号}} warning 注意请尽量避免删除DIV, 如果你中途有删除过div, 序号会不一样, 你可以在&quot;布局&quot;中重排序保持一致, 保持数据集编号从0开始 +如果使用自由布局, 请删除自动化DIV这一段代码 选中生成的图形代码段, 点击菜单栏的 数据集, 图形, 布局开发, 即可进入开发界面, 如果没有数据集, 会自动帮你新建 可以观看视屏, 视屏比较老和现在不太一样, 仅参考即可 自由开发模式视屏 + + + + 快速开始 + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/ + 开发前你可以先观看操作方面的 :exclamation: 操作视屏教程 :exclamation: 5.0变更操作视屏教程 :exclamation: 开发系列合集,关注作者持续更新 +由于版本的变更, 一些图标可能会有一些变化, 但位置无太大的变化 +安装Python环境 # 环境准备: 官方 最新Python下载链接,可以到 淘宝镜象下载,也可以下载 WINDOWS64位安装版, MAC电脑安装版 +Window平台安装视屏介绍,注意: Windows安装Python时需选中&quot;Add to Path&quot; Linux安装可参考文档下方的部署说明, Linux安装说明 +安装SmartChart # 在Shell或CMD命令行执行 +pip3 install smartchart 如果安装过程慢,建意使用 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple smartchart -U 升级方法: pip3 install smartchart -U (升级) 启动smartchart # 本地命令行启动: smartchart 如果你是服务器部署,远程访问,服务端启动方式: smartchart runserver 0.0.0.0:8000 --insecure --noreload 如果出现套接字,端口被占用, 可修改端口号启动, 如 smartchart runserver 0.0.0.0:8001 --insecure --noreload 一般本地启动后访问: http://127.0.0.1:8000 管理员帐号密码: admin/admin, 请及时更改密码 +如果忘记密码, 可以使用此命令重置 smartchart changepassword 用户名 鼠标滑动,点击如下图DEV图标, 切换为开发模式,这样才可以看到开发相关菜单,后打开demo页面 注意: 不切换是正常的用户报表浏览模式! + + + + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/DataV%E5%BA%94%E7%94%A8/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/VUE%E7%9B%B8%E5%85%B3/DataV%E5%BA%94%E7%94%A8/ + 需要在高级中加入“dv”:1,即可开启datav模式 +参考视屏 1. DataV基础应用 2. DataV翻盘器 +DataV配置方法文档: 图表 + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E5%85%B1%E4%BA%AB%E6%95%B0%E6%8D%AE%E9%9B%86/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E5%85%B1%E4%BA%AB%E6%95%B0%E6%8D%AE%E9%9B%86/ + 应用场景 # 优化查询, 可一个数据集查询完所有数据进行分发 减少重复查询的浪费, 同一个数据只查询一次 使用方法 # 在数据开发界面点击按钮就可以切换成共享数据集/普通数据集 切换完成, 你会发现数据集消失,然后图标跑到菜单上面去了, 你可以在此修改你的查询 在”高级“ 中配置 这样1,2号图形都映射到了共享数据集的数据 你也可以在数据集中写多个SQL查询 在”高级“ 设定中进行数据映射 观察1,2 号图形的变化 + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E6%95%B0%E6%8D%AE%E9%9B%86%E6%95%B0%E6%8D%AE%E5%88%B7%E6%96%B0/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E6%95%B0%E6%8D%AE%E9%9B%86%E6%95%B0%E6%8D%AE%E5%88%B7%E6%96%B0/ + 数据刷新设定方法 # smartchart提供非常精细的数据刷新功能,及内存加速功能 你可以在数据集开发界面,点击连接的图标,进行设定 定时刷新 # 你可以设定前端页面数据集向后端请求刷新的时间间隔,单位秒 +如果你发现定时刷新,数据并没有变化,可能原因是您数据的缓存时间设定大于定时刷新的时间 +数据集缓存加速(PRO) # smartchart专业版提供内存加速技术,对数据库仅需请求一次,之后都是毫秒级响应 +间隔时间刷新,单位分钟,如设定 间隔时间为0.5, 则如果下一次访问时间超过30秒, 即触发数据刷新 固定时点刷新, 如设定 间隔时间 为-1, 则固定时点刷新, 即访问的时间超过固定的时点时(如下图每天09:25), 触发数据刷新 强制刷新, 访问url加上&amp;refresh=Y, 则强制刷新数据, 此刷新不会影响间隔或固定刷新的时间, 不会更新下次同步时间 后台触发强制刷新 (PRO) # 请参考文档 后台主动触发刷新 + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E6%BA%90/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E6%BA%90/ + smartchart已实现大部分常用的数据源连接, 对于其它的, 您也可以使用python数据源进行处理 但是使用python数据源有一定的缺陷, 需要在dataset上写python代码, 不能复用 对于一些带连接信息的还需要重复写入 所以你还可以使用自定义数据源 +应用场景 # 未内置的数据源, 如需要使用sparkSQL, ES等 标准处理满足不了要求, 需要对数据进行预处理的情况 需要刷新时触发预警等自定义动作 需要自定义写入方法, 个性化查询需求, 甚至是实时爬取数据 使用方法 # 首先你需要新建一个python脚本文件, 如diy_conn.py 复制以下代码到这个文件, 然后编写你的自定义查询方法 def dataset(*args, **kwargs): &#34;&#34;&#34; 返回查询数据集 :return: 二维数组或JSON字典 &#34;&#34;&#34; sqlList = args[0] # 数据集编辑界面的输入已按分号拆分成数组 [sql1, sql2...] config = args[1] # 相关的配置字典{&#39;host&#39;,&#39;port&#39;,&#39;user&#39;,&#39;password&#39;,&#39;db&#39;} # 插入你的数据查询及处理代码, 生成result即可 result = [[]] return result def insert_dataset(*args, **kwargs): &#34;&#34;&#34; 数据填表实现 &#34;&#34;&#34; contents = args[0] # 传入的数据集二维数组格式 table = args[1] # 配置中的表名 config = args[3] # 相关的配置字典{&#39;host&#39;,&#39;port&#39;,&#39;user&#39;,&#39;password&#39;,&#39;db&#39;} # 插入你的写入数据逻辑代码 在任意的仪表盘开发界面中 &ldquo;模板&rdquo; &ndash;&gt; 点击上传图标, 将这个python文件上传即可 新建数据源, 驱动填写之前上传过的文件名, 比如我们这个是diy_conn, 其它参数按照你自定义的需求填写, 会自动传入你的自定义函数 之后你可以正常使用这个自定义数据源了 + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/Echarts%E7%BB%84%E4%BB%B6/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/Echarts%E7%BB%84%E4%BB%B6/ + 应用场景 # Smartchart提供了很多通用的图形,你可以在商店中直接使用 如果要个性化需要你进行自定义, 比如你可能需要在同一个图上展示柱形图和线性图 +开发前建意先观看视屏, 了解基础说明, 视屏有点老和现在界面不一样, 目前很多功能已经做成可视化配置, 理解过程即可, 具体以文档为准 +Smartchart数据库与图形的对话 Smartchart图形开发一 Smartchart图形开发二 获取原生echarts图形 # 首先我们在ECHART官网可能找一个你喜欢的图形, 如下简单柱形图链接: 打开我们可以看对应的option: +option = { xAxis: { type: &#39;category&#39;, data: [&#39;Mon&#39;, &#39;Tue&#39;, &#39;Wed&#39;, &#39;Thu&#39;, &#39;Fri&#39;, &#39;Sat&#39;, &#39;Sun&#39;] }, yAxis: { type: &#39;value&#39; }, series: [{ data: [120, 200, 150, 80, 70, 110, 130], type: &#39;bar&#39; }] }; 转化为smartchart图形 # 复制到Smartchart图形编辑器, 点击&quot;刀叉“ 图标(目前是魔法梆), 会自动进行初步转化 接下来我们就进行下改造, 请注意对比, 你只需照着复制即可 +let dataset = __dataset__ //传入dataset let legend_label = ds_rowname(dataset) //可选, 自动获取legend let xlabel = dataset[0]. + + + + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E5%88%A0%E9%99%A4%E5%AE%B9%E5%99%A8/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E5%88%A0%E9%99%A4%E5%AE%B9%E5%99%A8/ + 对于仪表盘中不再使用的数据集,你可能会考虑删除 首先smartchart推荐你不做删除,因为你可以保留他, 当你下次有新增数据集的需求时再拿出来 所以优先推荐使用隐藏的方法,你可以在数据集编辑界面找到他 如果你实在需要删除,可以在“报表”界面先中不需要容器后,选中删除,后保存 + + + + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E7%AD%9B%E9%80%89%E5%99%A8%E6%8C%87%E5%8D%97/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E7%AD%9B%E9%80%89%E5%99%A8%E6%8C%87%E5%8D%97/ + 通用实现方式 # SMARTCHART实现筛选最简单的方法只需要配一个控件即可: +建立一个筛选清单数据集, 自动获取筛选的列表,那么可以这么写 +Select xxxx as city from tablename..... 则会生成一个如下的数据集: [[&#39;city&#39;],[选项1],[选项2],..] 良好的习惯, 先保存在数据集 然后在筛选器数据集中的js编辑器(图形编辑器),填下如下代码: +//如要要美化, 自已加样式, 只要保证id=&#34;id_select__name__&#34; let dataset=__dataset__; let table =&#39;&lt;span&gt;标题&lt;/span&gt;&lt;select id=&#34;id_select__name__&#34;&gt;&#39;; table = table + &#39;&lt;option value=&#34;&#34; selected&gt;----&lt;/option&gt;&#39;; for(let i=1;i&lt;dataset.length;i++){ table = table + &#39;&lt;option&gt;&#39; + dataset[i][0] + &#39;&lt;/option&gt;&#39;; } table = table + &#39;&lt;/select&gt;&lt;/div&gt;&lt;/div&gt;&#39; dom__name__.innerHTML=table; 这个时候你已经可以看到筛选器了 现在我们来设定联动效果 +假设需要被筛选的数据集的SQL这样写,数据集的序号是0 +//那么在需要被联动的数据集中,如使用pcity做为参数写查询, 比如: select xx, xx, xx from tablename /* where xx = &#39;$pcity&#39; */ 现在回到我们筛选器数据集,点击标题的位置, 我们需要使0号图形被筛选器联动, 设置如下即可: 然后你就可以看到筛选效果了, 非常的简单方便, 需要多个图形被联动, 只需用逗号分隔即可 比如: 0, 2, 4 + + + + + https://smartchart.gitee.io/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/%E5%8D%95%E9%A1%B5%E9%9D%A2%E5%B5%8C%E5%85%A5/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/7.%E6%8A%A5%E8%A1%A8%E5%B5%8C%E5%85%A5/%E5%8D%95%E9%A1%B5%E9%9D%A2%E5%B5%8C%E5%85%A5/ + 嵌入报表 # 与单点登录类似, 单点登录用于直接登录到平台访问报表 但对于只嵌入报表, 用此方法更合适(需升级到5.3.11以上) +嵌入的url: &#39;/echart/?type={reportName}&amp;visitor={visitor}&amp;token={token}&amp;stamp={stamp}&#39; 参数说明: reportName: 报表名或报表ID visitor: 用户名(在smartchart平台中管理) stamp: 时间戳(1970年1月1日到生成时间的毫秒数) token: 采用sha1加密, token=SHA1(链接秘钥+stamp+visitor+reportName) 用户名和秘钥设定参考 数据服务API的config文件 +同时你需要将visitor加入到对应的报表权限查看访问 +python样列 # 以下为python版的url生成样列,你可以转化成你对应的开发语言 +import time import hashlib import os SMART_CHART_URL = &#39;http://127.0.0.1:8000&#39; reportID = &#39;报表ID&#39; LOGIN_URL = SMART_CHART_URL + &#39;/echart/?type={reportID}&amp;visitor={visitor}&amp;token={token}&amp;stamp={stamp}&#39; TOKEN = 链接秘钥 def get_smarturl(username, reportName): stamp = int(time.time() * 1000) visitor = username res = TOKEN + str(stamp) + visitor + reportID token = hashlib.sha1(res.encode(&#39;utf-8&#39;)).hexdigest() VISIT_DICT = { &#34;visitor&#34;: id, &#34;stamp&#34;: stamp, &#34;token&#34;: token, &#34;reportID&#34;: reportName } # 拼接好的url,直接访问 visit_url = LOGIN_URL. + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E5%A4%87%E4%BB%BD%E6%81%A2%E5%A4%8D%E5%8F%8A%E7%89%88%E6%9C%AC/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E5%A4%87%E4%BB%BD%E6%81%A2%E5%A4%8D%E5%8F%8A%E7%89%88%E6%9C%AC/ + 应用场景 # 本地仪表盘的备份恢复,版本管理 开发测试生产机之间的同步 具体使用方法请观看视屏 版本控制使用说明视屏 +使用方法 # 快速备份 # 可以在模板-&gt;点击如下图标, 完成快速备份(注意会覆盖历史), 备份号统一为:SNAPSHOT 指定备份 # 你也可以在设定-&gt;备份恢复 中进行按版本备份 查询备份 # 当不输入KEY值, 点击 本地备份时,可以查询此仪表盘已有的备份 备份恢复 # 备份可以在任意的仪表盘中进行恢复,如果是当前仪表盘, 仅输入KEY即可,比如:V01, 如果是跨仪表盘恢复, KEY需要带上仪表盘的编号如13_V01 +备份恢复参数说明 # 可以支持多种恢复模式, 只需要在KEY前面加上前缀即可, 如FORCEV01, FORCE13_V01.. FORCE: 删除自身所有数据集及高级设定,模板等,完全恢复备份 DATASET:只更新数据集及图形,模板,适用于测试上线正式 CHART: 只更新图形及模板,适用于前端变更上线 +跨服务器间同步 # 具体方法购买专业版本后提供 +使用以下流程, 可以使企业在使用最少资源做出最专业的可视化项目 # 前提条件: # 公司内部有技术人员(熟悉数据, 会写SQL) 服务器安装smartchart专业版 开发流程: # 由于公司内部人员是对业务最熟悉, 一般也都是后台数据管理相关的人员, 一般不太会有专职的前端开发和UI 所以数据开发人员可以使用smartchart开发仪表盘数据集, 并使用拖拽功能完成一个粗糙一点的框架和图形设计 一般情况下已经可以满足数据可视化的需求 +如果需要达到更专业的可视化效果, 可以外包前端/UI或在smartchart社区咨询, 由于需求变得非常简单 而前端开发又是一个通用技能, 可以使用非常廉价的费用获得最大的效果 +专业的事情专业来做, 才能达到效益最大化, 这是smartchart的设计理念 不管用什么工具, 在同等资源的投入下, 数据分析人员开发的可视化效果很难达到专业前端UI的效果 另外BI/数据开发人员的费用可是比前端高的, 也更稀缺 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E4%B8%8A%E4%BC%A0%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E4%B8%8A%E4%BC%A0%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6/ + 点击 模板开发 中的菜单即可上传你的资源文件, 如css, js, 图片等 视屏介绍说明 常规上传 # 可直接上传单个文件或zip包上传, 注意zip包中不可以有中文文件名 上传后会提示引用路径为/static/custom/仪表盘ID/&hellip; +上传为共享资源 # 可把资源打包为zip文件, 上传名以usr_开头, 如usr_tp.zip 上传完后不会有路径提示, 引用路径为/static/custom/usr_tp/&hellip;. +上传自定义数据源或jar包 # 上传后不会有路径提示 + + + + 第一个仪表盘 + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E7%AC%AC%E4%B8%80%E4%B8%AA%E4%BB%AA%E8%A1%A8%E7%9B%98/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E7%AC%AC%E4%B8%80%E4%B8%AA%E4%BB%AA%E8%A1%A8%E7%9B%98/ + 由于版本的变更, 一些图标可能会有一些变化, 但位置无太大的变化 +新建仪表盘 # 在开发模式下,滑动“开发管理” -&gt;&ldquo;仪表盘&rdquo;-&gt; &ldquo;新增Dashboard&rdquo; 填写相应信息后点击“保存” 点击进入仪表盘开发, 注意点击 &ldquo;E&rdquo; 字!! 点击新增(注意拖拽布局功能为PRO版本, 后续免费版本中将无法使用), 如果你坚持使用免费版本功能, 请使用左边的蓝色颜色的新增, 具体布局方式参考 数据集编辑 # 点开“数据集” 输入以下SQL后,点击“保存并刷新”, 关闭数据集编辑界面 select H1 as heroname, sum(qty) as 出场数 from smartdemo2 group by H1 order by sum(qty) desc 图形编辑 # 点开“图形编辑” 点击“云图标”,第一次使用可能要你进行登记,按提示操作即可, 在商店中找到合适的图形点击,会自动复制到剪贴板 贴粘到图形编辑器后,点击保存, 关闭图形编辑框 拖拽布局 # 重复以上步骤,再新增一个, 你可以使用拖拽的方式, 移动到不同的地方 + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E6%95%B0%E6%8D%AE%E9%9B%86%E6%87%92%E5%8A%A0%E8%BD%BD/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E6%95%B0%E6%8D%AE%E9%9B%86%E6%87%92%E5%8A%A0%E8%BD%BD/ + 应用场景 # 类似于前后端开发, 后端会提供一些接口给前端, 但前端不一定需要在一打开页面就进行查询接口, 而是当有需要时再查询, 比如数据下载, 只有当用户有下载需求时再加载, 再比如有些与后台的数据联动, 我们只需要第一次加载时只显示第一层级, 点击时再加载其它层级 +开启数据集懒加载 # 你可以点击数据集的开发界面的&quot;连接&quot; 图标, 将&quot;前端刷新(秒)&quot; 修改为-1 这时当打开仪表盘时, 此数据集不会被加载 +应用 # 一般懒加载数据集主要是用来做数据查询的, 所以并不太需要显示图形, 所以我们主要是用于在图形中进行赋值操作 比如先在模板中定义一个全局变量: 然后修改图形编辑中的代码: 即刷新数据集时会进行变量赋值 如果您使用VUE, 那么会更方便, 你可以直接使用vapp.变量名 = dataset进行赋值 +查询数据 # 你可以随时手动触发数据集的刷新, 比如懒加载的数据集序号为0 你可以在你需要触发刷新的地方调用ds_refresh(0)即可刷新0号数据集并执行0号数据集中的JS代码 +TIPS 可以将懒加载的数据集同时转化为共享数据集(参考上文), 懒加载数据集将移到菜单栏显示 + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/HTML%E7%BB%84%E4%BB%B6/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/HTML%E7%BB%84%E4%BB%B6/ + 应用场景 # 输入控件,如输入框,筛选器,多选,按钮&hellip; 显示组件, 文本, 图片, 视屏&hellip; 表格组件 如果你还不熟悉html, 建意先花几分钟看下文档, 推荐 HTML基础 实际应用中有不熟悉的组件, 你都可以通过baidu搜索到, 如时间选择器 如何将html组件转化为smartchart组件 # 比如我们要实现一个有多选项和按钮的网页元素 从各大搜索平台上我们可以找到html的代码是: +&lt;label&gt;&lt;input type=&#34;checkbox&#34;&gt;孙尚香&lt;/label&gt; ..... &lt;button id=&#39;id_select0&#39;&gt;提交&lt;/button&gt; 那么我们可以直接在图形编辑器写上 +let dataset=__dataset__; let table = &#39;&#39;; table = `&lt;label&gt;&lt;input type=&#34;checkbox&#34;&gt;孙一香&lt;/label&gt; &lt;label&gt;&lt;input type=&#34;checkbox&#34;&gt;孙二香&lt;/label&gt; &lt;label&gt;&lt;input type=&#34;checkbox&#34;&gt;孙三香&lt;/label&gt;` table = table + &#34;&lt;button id=&#39;id_select0&#39;&gt;提交&lt;/button&gt;&#34; dom__name__.innerHTML=table; 但是由于我们是要通过传入的数据动态变化的,所以只需要做简单修改 +let dataset=__dataset__; let table = &#39;&#39;; for (let i=1;i&lt;dataset.length;i++){ table = `${table}&lt;label&gt;&lt;input type=&#34;checkbox&#34;/&gt;${dataset[i][0]}&lt;/label&gt; ` } table = table + &#34;&lt;button id=&#39;id_select__name__&#39;&gt;提交&lt;/button&gt;&#34; dom__name__.innerHTML=table; 所有html你都可以进行转化成smartchart组件, 你可以通过学习”万能表格系列视屏“ 来了解通用组件开发 第一波 第二波 第三波 + + + + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E7%BB%84%E4%BB%B6%E8%87%AA%E5%AE%9A%E4%B9%89%E8%81%94%E5%8A%A8/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/5.%E5%8F%82%E6%95%B0%E5%8F%8A%E8%81%94%E5%8A%A8%E9%92%BB%E5%8F%96/%E7%BB%84%E4%BB%B6%E8%87%AA%E5%AE%9A%E4%B9%89%E8%81%94%E5%8A%A8/ + 应用场景 # Smartchart对于单项筛选有通用的组件, 可以直接配置即可,但对于个性化的筛选,需要你进行一些简单的定制化,以下就针对多项筛选联动的需求来介绍如何定制化你的筛选联动效果 通过此例,你可以了解如何自定义任意的联动效果 样列参考 # 以我们内置的仪表盘为例, +第一步,新建一个数据集 +第二步,在新的数据集中编写查询 +select distinct H1 as heroname from smartdemo2 limit 10 第三步,编辑此数据集的图形,可复制以下代码 +//select distinct xx from tablename let dataset=__dataset__; let table = &#39;&#39;; for (let i=1;i&lt;dataset.length;i++){ table = `${table}&lt;label&gt;&lt;input name=&#34;select__name__&#34; type=&#34;checkbox&#34; value=&#34;${dataset[i][0]}&#34; /&gt;${dataset[i][0]}&lt;/label&gt; `; } table = table + &#34;&lt;button id=&#39;id_select__name__&#39;&gt;提交&lt;/button&gt;&#34;; dom__name__.innerHTML=table; $(&#39;#id_select__name__&#39;).click( function(){ let res = []; $(&#34;input[name=&#39;select__name__&#39;]:checked&#34;).each(function(i){ res.push(&#34;&#39;&#34; + $(this).val() + &#34;&#39;&#34;); }); filter_param[&#39;H1&#39;] = res.toString(); //参数赋值 ds_refresh(1); //刷新1号图形 } ) 第四步,在你要联动刷新数据集中增加代码 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%95%B0%E6%8D%AE%E4%B8%8B%E8%BD%BD/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%95%B0%E6%8D%AE%E4%B8%8B%E8%BD%BD/ + 应用场景: # 需要要下载数据集的数据到本地 +样例: # 可在&quot;模板&quot; 中新建一个下载按钮, 并指定一个ID,如id_down1, 拖拽到你需要的位置 在任意一个图形开发或js代码段中加入以下代码即可 +$(&#39;#id_down1&#39;).click(()=&gt;{ ds_download(&#39;报表数据.csv&#39;, dataset); }); 这样就可以实现点击按钮下载数据了 +仅需要录活使用ds_download这个函数, 你可以开发出非常个性化的下载功能 +ds_download(name, dataset) 参数说明: name: 文件名称 dataset: 可以是二维数组也可以是字符串 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E8%BE%B9%E6%A1%86%E4%B8%8E%E8%A3%85%E9%A5%B0/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E8%BE%B9%E6%A1%86%E4%B8%8E%E8%A3%85%E9%A5%B0/ + 观看视屏 # 边框与装饰说明1 边框与背景说明2 +边框/装饰/背景(购买专业版提供使用方法) # + + + + 创建连接池 + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E5%88%9B%E5%BB%BA%E8%BF%9E%E6%8E%A5%E6%B1%A0/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E5%88%9B%E5%BB%BA%E8%BF%9E%E6%8E%A5%E6%B1%A0/ + 如何新增数据源 # 在开发模式下,点击“开发管理”-&gt;数据源-&gt;新增 配置连接池参数,注意数据库填写是备注中有写的名称 你可以通过新建一个数据集来测试连接池的连通性 +点击“保存” 后,回到数据集列表 点击如下图标&quot;E&quot;,进入数据集开发界面 在开发界面调试 安全控制 # 你可以在“参数”中设定安全控制,可避免用户误操作导致前后端卡死 limit: 可限定最大返回数据数量(但实际数据库查询无limit,需通过mode控制) mode: 控制用户查询行为,默认为模式1 +模式 说明 0 严格模式,每次查询向数据库都会增加limit,MPP类型数据库可能会排序失效 1 开发模式,仅调试查询数据库都会增加limit,调试时MPP类型数据库可能会排序失效,但不影响实际 2 宽松模式,查询都不带limit, 仅控制返回limit,需开发者避免大查询 支持的数据源: # 数据库 驱动填写 需安装 使用说明 Mysql mysql 默认支持 Mysql连接池 mysqlpool Sqlite sqlite 默认支持 连接地址填写绝对路径 API 任意 默认支持 参考数据集说明文档 EXCEL 任意 默认支持 参考数据集说明文档 SQL Server mssql 需安装 pip install pymssql SQL Server连接池 mssqlpool ORACLE oracle pip install cx_Oracle ORACLE连接池 oraclepool PostgreSql gp pip install psycopg2 GP gp pip install psycopg2 Impala impala pip install impyla Hive hive pip install impyla DB2 db2 pip install ibm_db 达梦 dm pip install dmPython Python python pip install pandas, openpyxl 参考数据集-&gt;特殊数据源 Redis redis pip install redis 参考数据集-&gt;特殊数据源 Mongodb mongodb pip install pymongo 参考数据集-&gt;特殊数据源 Clickhouse clickhouse pip install clickhouse_driver Elasticsearch es pip install elasticsearch==7. + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E8%B0%83%E8%AF%95%E6%97%A5%E5%BF%97/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E8%B0%83%E8%AF%95%E6%97%A5%E5%BF%97/ + 关于页面日志查看 # 大家可能比较熟悉使用F12来查看网页日志, 但有的同学会觉得这不够方便, 所以 在5.1.11后, smartchart加入了可以页面直接显示日志的功能 +在仪表盘中显示 # 你只需要点击如下菜单, 即可切换是否显示日志 当在刷新页面或执行时, 日志将直接显示在右上角中, 而且还能显示出对应出错的图表序号 在图形中显示 # smartchart基于python的使用习惯, 重定义的专用的日志打印函数print 你可以在图形编辑器中使用些函数即可打印日志 比如看看鼠标放在echarts图上params, 在编辑界面和console中都能看到日志, 方便你进行调试 不仅仅这些, 你可能会想写太多打印日志, 上线了不好 smartchart已为你想到这些, 如果你在仪表盘中没有开启日志显示, print函数是不会打印任何日志 +有了仪表盘日志显示, 我们还能做更多的事情, 比如实时显示你拖拽的坐标, 让你精确定位 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%95%B0%E6%8D%AE%E5%A1%AB%E6%8A%A5/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%95%B0%E6%8D%AE%E5%A1%AB%E6%8A%A5/ + 应用场景 # 收集用户端录入的数据 前端处理好的数据回写到任意系统 制做问卷系统 埋点应用 使用方法 # 新建数据集设定,格式如下: 只用指定表名 dataset={ &#34;table&#34;:&#34;表名&#34; } 你也可以指定字段, 比如 dataset={ &#34;table&#34;:&#34;表名(字段1, 字段2)&#34; } 在&quot;容器&quot;管理, 取消这个数据集激活, 并记录下来此数据集的ID, 比如132 在&quot;模板&quot;中编写录入组件代码, 具体可参考视屏 +&lt;h1 class=&#34;smtdrag&#34; id=&#34;id_1648895680659&#34;&gt;数据填报&lt;/h1&gt; &lt;div class=&#34;smtdrag&#34; id=&#34;id_1648895855760&#34;&gt; &lt;label&gt;用户&lt;/label&gt;&lt;input id=&#34;id_visitor&#34;&gt; &lt;/div&gt; &lt;div class=&#34;smtdrag&#34; id=&#34;id_1648895859160&#34;&gt; &lt;label&gt;动作&lt;/label&gt;&lt;input id=&#34;id_action&#34;&gt; &lt;/div&gt; &lt;div class=&#34;smtdrag&#34; id=&#34;id_1648895956207&#34;&gt; &lt;button id=&#34;idbtn01&#34;&gt;提交&lt;/button&gt; &lt;/div&gt; 在&quot;模板&quot; 中编写JS代码 $(&#39;#idbtn01&#39;).click(function(){ let visitor = $(&#39;#id_visitor&#39;).val(); let action = $(&#39;#id_action&#39;).val(); let dataset = [visitor, action]; print(ds_save(132, dataset)); //132数据集ID, dataset要写入的数据 }) 更多关于写入数据库的数据集格式说明 # 只写入一行数据, 样列如下: dataset = [&#39;a&#39;,&#39;b&#39;] 同时写入多行数据: dataset = [[], [&#39;a1&#39;,&#39;b1&#39;],[&#39;a2&#39;, &#39;b2]] 如果需要自动记录写入者用户名: dataset = [&#39;$username&#39;, &#39;b&#39;] mongodb写入方式 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E6%A0%B7%E5%BC%8F%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E6%A0%B7%E5%BC%8F%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/ + 样式操作: # 要想大屏做得好, 样式要写得好 可是我们不是前端的同学也能写样式么 当然可以, 相信你观看完以下视屏即可 +快速上手样式开发 +基础样式入门: # CSS介绍 # CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素。 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染)。 +CSS语法 # CSS实例 每个CSS样式由两个组成部分:选择器和声明。声明又包括属性和属性值。每个声明之后用分号结束。 CSS注释 +/*这是注释*/ 注释是代码之母, smartchart编辑中你可以使用CTRL+/快捷注释 +CSS的几种引入方式 行内样式 行内式是在标记的style属性中设定CSS样式。不推荐大规模使用。 +&lt;p style=&#34;color: red&#34;&gt;Hello world.&lt;/p&gt; 内部样式 嵌入式是将CSS样式集中写在网页的标签对的标签对中。格式如下: +&lt;head&gt; &lt;style&gt; p{ background-color: #2b99ff; } &lt;/style&gt; &lt;/head&gt; 外部样式 外部样式就是将css写在一个单独的文件中 +&lt;link href=&#34;mystyle.css&#34; rel=&#34;stylesheet&#34; type=&#34;text/css&#34;/&gt; CSS选择器 # 基本选择器 +元素选择器 p {color: &#34;red&#34;;} ID选择器 #i1 { background-color: red; } 类选择器 .c1 { font-size: 14px; } p .c1 { color: red; } 注意: 样式类名不要用数字开头(有的浏览器不认)。 标签中的class属性如果有多个,要用空格分隔。 + + + + 应用模板 + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E5%BA%94%E7%94%A8%E6%A8%A1%E6%9D%BF/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E5%BA%94%E7%94%A8%E6%A8%A1%E6%9D%BF/ + 应用场景 # 你可以快速应用开发好的模板,极大的提高你的开发和学习效率 +应用本地模板 # 你可以快速应用本地备份的模板, 我们内置了一个 通用的数据查询和下载模板 , 你可以尝试 +新建一个全新的dashboard, 不要放任何报表, 点击保存且编辑后, 下方可以看到下载链接, 然后点击下载即可直接应用 输入&quot;01_SMARTCHART&quot;, 点击本地恢复即可 更多本地备份恢复参考 +应用商店模板 # 方法同上&quot;应用本地模板&quot;, 注意应用商店模板为收费增值服务 +你可以点击 模板查询, 查看相应的价格后在 TB购买即可获取下载密钥 如果是全新的仪表盘, 直接输入下载密钥, 点击&quot; 商城下载 &ldquo;即可 如果仪表盘中有数据集且不再需要, 可以在下载密钥前面加上FORCE即可自动清空已有数据集后自动下载 注意模板太廉价,购买后并没有咨询服务,请务必自行了解如何使用 +资源文件放置路径 有些资源会离线打包提供给你, 只需上传即可, 上传方法参考 +如果不清楚可以观看视屏说明 使用方法可参考视屏: 一键应用模板 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E5%90%8E%E5%8F%B0API%E5%88%B7%E6%96%B0/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E5%90%8E%E5%8F%B0API%E5%88%B7%E6%96%B0/ + 应用场景 # 有ETL流程,需要等待后台数据刷新完成后,再触发仪表盘的刷新,数据未完成刷新,仪表盘不刷新 针对有一些耗时的查询, 虽然smartchart有缓存加速, 但是在第一次刷新时可能不能达到极速 用户需要随时都能体验到极速的打开效果 使用后台API刷新,建意将仪表盘中数据集的缓存时间设置长一些,比如2天(2880分钟) +后台数据主动刷新接口 # (购买专业版本后支持) +你需要在setting.py中设定API_TOKEN API_TOKEN = &#39;xxxxxxxx&#39; 找到你要刷新的仪表盘编码, 你可以在打开的仪表盘url上面找到这个type id +后台访问如下api url即可 +http://ip:端口/echart/refresh_ds/?type=你的报表ID&amp;token=你设定的API_TOKEN 关于定时刷新 # 为保持产品的轻量化及坚持专业的产品做专业的事情, 归一化统一化的架构设计, 我们不会集成相关调度系统, 一般我们推荐使用您自有的调度工具或平台, 如airflow, 我们也有相关的配套产品 +如果您仅仅是简单应用, 也无需使用专用调度来增加运维复杂度, 可以使用linux自带的即可 +新建一个sh文件, 假设目录在/data/smartchart vim refresh_smartchart.sh 写入需要刷新的脚本 echo start refresh $(date &#34;+%Y-%m-%d %H:%M:%S&#34;) curl http://ip:端口/echart/?type=你的报表ID1&amp;token=你设定的API_TOKEN curl http://ip:端口/echart/?type=你的报表ID2&amp;token=你设定的API_TOKEN echo end refresh $(date &#34;+%Y-%m-%d %H:%M:%S&#34;) 如果你的网址是https, 可如下方法使用curl +curl -k --insecure &#34;https://www.baidu.com” 修改为可执行文件 chmod 775 refresh_smartchart.sh 使用crontab来定时执行 # 编辑crontab crontab -e # 比如需要每天晚上5点10分执行 10 5 * * * /data/smartchart/refresh_smartchart. + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/IDE%E5%BC%80%E5%8F%91%E6%A8%A1%E5%BC%8F/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/IDE%E5%BC%80%E5%8F%91%E6%A8%A1%E5%BC%8F/ + 应用场景 # 如果您是一个资深的前端开发者 可能不需要使用smartchart组件,仅需使用到数据集 你希望在IDE(如VS code)中开发然后打包发布 非专用人士,请不要尝试这种方式 开发方式 # 在模板中使用basesimple 此时smartchart不会引用任何echarts, vue组件, 完全由您自已控制引入 , 你可以直接采用以下代码替换模板中的代码 +{% extends &#34;echart/basesimple.html&#34; %}{% block head %} &lt;!--head区域的引用或代码--&gt; {% endblock %}{% block body %} &lt;!--在此区间粘入body相关代码--&gt; {% endblock %}{% block javascript %} &lt;!--粘入js相关引用或代码--&gt; {% endblock %}{% block footer %}{% endblock %} 如何使用数据集接口 # 按照自由开发模式中, 新增一个图形, 然后修改数据集为通用且懒加载数据集 修改对应图形编辑器, 使数据赋值给一个全局变量或vue 在IDE中开发 # 由于你在开发中仅需要用到filter_param及ds_refresh, 建意新建一个js文件, 文件内容: +//下面定义全局变量, 发布时需放入smartchart模板的script标签中 var mypublicdata1 = xxxx; ..... //以下为辅助方法, 发布时, 无需放入smartchart模板中 var filter_param = {}; function ds_refresh(num){ if(num === 0){你对应的图形中赋值代码,调试代码} if(num === 1){. + + + + 权限管理 + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/1.%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86/ + 目前的权限管理,大概如下: +开发者权限 # 你点击DEV后, 才会出进入后台的图标, 在后台中你可以控制用户的开发权限 新建用户默认是没有开发权限的, 在首页也看不到任何开发相关的菜单 +如果你需要给用户开发权限, 需要设定如下: Dashboard报表查看权限 # 你可以在 仪表盘设定 中进行权限管理 全局编辑或查看权限 由平台用户组或用户权限配置, 如果用户需要查看报表, 需先分配到有查看权限的组中, 默认加入集团组可以具备查看权限 在dashboard设定页面中可针对人员来分配 编辑权限, 有编辑权限同时也会满足查看权限 在dashboard设定页面中可针对组来分配 查看权限 未上线 的报表, 只会在编辑页面中出现, 可以预览 公开 的报表, 如没有分配编辑权限,在编辑页面中不出现, 但在查看页面所有人可见,你可以共享给所有人,访问url: http://xxxxx:8000/echart?type=你的仪表盘名称 手机端过滤, 你可以通过 &ldquo;全端&rdquo;,&ldquo;电脑端&rdquo; 选项实现, 当勾选 &ldquo;全端&rdquo; 时, 手机端电脑端都会显示, 当未勾选 全端, 也不勾选 电脑端时, 只会在 手机显示, 反之只在电脑端显示 总结 # 在编辑入口只会显示 有按人员分配编辑权限的报表清单, 在查看入口中会显示已启用且上线且(已分配查看权限或编辑权限或公开)的报表 所以你可以么这么搭配: 对于通用报表可以所有人访问的, 但你又不想让他在清单中显示, 你可以将他设为公开但不上线 对于开发中的报表, 你可以设为未上线 + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/webSocket%E6%96%B9%E5%BC%8F/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/webSocket%E6%96%B9%E5%BC%8F/ + 应用场景 # 对于实时程度要求比较高的情况下, 如果你后端已有实现websocket的接口, smartchart也可以很方便的接入 参考以下步骤即可 +在&quot;模板&quot;中定义一个全局变量, 如ws_data 编写连接和接收代码段逻辑 在接收代码段加入ds_refresh, 如要刷新0号图形, 则加入ds_refresh(0) 在&quot;高级&quot;设定中加入共享数据集设定, 把ws_data映射到0号图形即可 代码段参考 # let ws_data = [[&#39;初始化&#39;,&#39;V&#39;],[&#39;A&#39;,&#39;2&#39;]]; let ws = null; if(&#39;webSocket&#39; in window){ print(&#39;支持webSocket&#39;); ws = new webSocket(&#39;ws://127.0.0.1:2222/abc&#39;); //连接成功 ws.onopen = function(){ print(&#39;ws连接成功&#39;); } //接收消息 ws.onmessage = function(evt){ ws_data = evt.data; ds_refresh(0); } } else{ print(&#39;浏览器不支持ws&#39;) } + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E5%8A%A8%E7%94%BB%E6%95%88%E6%9E%9C/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E5%8A%A8%E7%94%BB%E6%95%88%E6%9E%9C/ + 自动旋转效果 # 在&quot;模板&quot;的style中加入以下样式 +@-webkit-keyframes spin { from {-webkit-transform: rotate(0deg);} to {-webkit-transform: rotate(360deg);} } @keyframes spin { from {transform: rotate(0deg);} to {transform: rotate(360deg);} } .Rotate { -webkit-animation: spin 3s linear 3s 5 alternate; animation: spin 3s linear infinite; } 如需任意组件自动旋转, 只需将Rotate这个类给到这个组件即可, 比如图形 +&lt;img class=&#34;Rotate&#34; src=&#34;https://www.smartchart.cn/media/editor/smc162_20220407150432307320.png&#34;&gt; 组件变形 # 常见变形沿着Y轴, 其它变形方式自已搜索, 比如需要0号,1号图形变形的样式写法 +#container_0{transform:skewY(10deg);} #container_1{transform:skewY(-10deg);} 效果如下: + + + + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E7%BC%96%E8%BE%91%E5%99%A8%E5%BF%AB%E6%8D%B7%E9%94%AE/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/9.%E8%BF%9B%E9%98%B6%E5%BC%80%E5%8F%91PRO/%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91/%E7%BC%96%E8%BE%91%E5%99%A8%E5%BF%AB%E6%8D%B7%E9%94%AE/ + 功能 WIN MAC 说明 显示菜单 CTRL-, Command-, 折叠其它 Alt-0 Command-Option-0 查找替换 Ctrl-F Command-F 重复选中 Ctrl-D Command-D 5.6以前的版本是删除所选 注释选中 Ctrl-/ Command-/ 取消修改 Ctrl-z Command-z 重新执行 Ctrl-y Command-y 选中大写 Ctrl-U Ctrl-U 选中小写 SHIFT-Ctrl-U SHIFT-Ctrl-U + + + + + https://smartchart.gitee.io/docs/10.%E5%85%B6%E5%AE%83/FAQ/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/10.%E5%85%B6%E5%AE%83/FAQ/ + FAQ # 启动显示 以一种访问权限不允许的方式做了一个访问套接字的尝试 出现这种情况在Windows中很常见,就是端口被占用,酷狗音乐会占用8000端口 使用netstat -ano|findstr 8000 找到进程号 使用taskkill /pid 进程号 /F +输入命令找不到smartchart 检查你是否有安装多个python环境出现环境变量冲突,请卸载一个或取消一个环境变量 +如法安装pip 请确认在安装python时,有没有加入环境变量, 可自行加入, 或卸载重装 +关于mac版本安装后的各种问题 目前来看最大的可能是,/Library/Developer/CommandLineTools这个目录下有python3,应该是在某一个版本的Xcode command line tools安装时生成的 可以先把python3全部卸载,再重新按说明安装,命令行中输入python3 和 pip3, 找不到command时才说明完全卸载成功 +sudo rm -rf /Library/Developer/CommandLineTools sudo rm -f /usr/bin/python3 如果密码忘记了怎么办 命令行输入smartchart changepassword 你的用户名 + + + + + https://smartchart.gitee.io/docs/10.%E5%85%B6%E5%AE%83/%E8%AF%95%E7%94%A8%E6%BF%80%E6%B4%BB%E8%AF%B4%E6%98%8E/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/10.%E5%85%B6%E5%AE%83/%E8%AF%95%E7%94%A8%E6%BF%80%E6%B4%BB%E8%AF%B4%E6%98%8E/ + 试用专业版激活码需要每3天激活一次,激活方式: 由于开发很忙, 文档可能会写得有不尽之处, 多多包涵 + + + + + https://smartchart.gitee.io/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/SQLite3%E7%89%88%E6%9C%AC%E9%94%99%E8%AF%AF/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/SQLite3%E7%89%88%E6%9C%AC%E9%94%99%E8%AF%AF/ + SQLite3版本错误 在部分操作系统下(比如CentOS 7)使用SQLite3数据库运行会出现如下的错误提示: +django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17). 这表明操作系统自带的sqlite3版本过低,需要将系统的sqlite3进行升级。 +以下是一种方法,来自于 StackOverlow: +1、下载新版本的SQLite3 +wget https://www.sqlite.org/2019/sqlite-autoconf-3290000.tar.gz 2、解压文件 +tar zxvf sqlite-autoconf-3290000.tar.gz 3、进行解压后的目录 +cd sqlite-autoconf-3290000 4、配置安装目录 +./configure --prefix=$HOME/opt/sqlite 5、编译安装 +make &amp;&amp; make install 6、指定环境变量 +export PATH=$HOME/opt/sqlite/bin:$PATH export LD_LIBRARY_PATH=$HOME/opt/sqlite/lib export LD_RUN_PATH=$HOME/opt/sqlite/lib 完成之后可以运行sqlite3 &ndash;version 命令来查看当前的SQLite3版本。 + + + + + https://smartchart.gitee.io/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/%E7%94%9F%E4%BA%A7%E9%83%A8%E7%BD%B2/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/11.%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/Linux/%E7%94%9F%E4%BA%A7%E9%83%A8%E7%BD%B2/ + 购买专业版本,提供企业生产部署及无网离线部署方案 + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/Elasticsearch%E6%95%B0%E6%8D%AE%E6%BA%90/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/Elasticsearch%E6%95%B0%E6%8D%AE%E6%BA%90/ + 数据源配置方法 # 查询方法 # 更多查询方法参考 # 模糊查询 body = { &#39;query&#39;: { # 查询命令 &#39;match&#39;: { # 查询方法:模糊查询(会被分词)。比如此代码,会查到只包含:“我爱你”, “中国”的内容 &#39;name&#39;: &#39;刘&#39; } }, &#39;size&#39;: 20 # 不指定默认是10,最大值不超过10000(可以修改,但是同时会增加数据库压力) } term,精准单值查询 # 注:此方法只能查询一个字段,且只能指定一个值。类似于mysql中的where ziduan=&#39;a&#39; body ={ &#39;query&#39;:{ &#39;term&#39;:{ &#39;ziduan1.keyword&#39;: &#39;刘婵&#39; # 查询内容等于“我爱你中国的”的数据。查询中文,在字段后面需要加上.keyword # &#39;ziduan2&#39;: &#39;liuchan&#39; } } } erms,精准多值查询 #此方法只能查询一个字段,但可以同时指定多个值。类似于mysql中的where ziduan in (a, b,c...) body ={ &#34;query&#34;:{ &#34;terms&#34;:{ &#34;ziduan1.keyword&#34;: [&#34;刘婵&#34;, &#34;赵云&#34;] # 查询ziduan1=&#34;刘婵&#34;或=赵云...的数据 } } } multi_match,多字段查询 # 查询多个字段中都包含指定内容的数据 body = { &#34;query&#34;:{ &#34;multi_match&#34;:{ &#34;query&#34;:&#34;我爱你中国&#34;, # 指定查询内容,注意:会被分词 &#34;fields&#34;:[&#34;ziduan1&#34;, &#34;ziduan2&#34;] # 指定字段 } } } prefix,前缀查询 body = { &#39;query&#39;: { &#39;prefix&#39;: { &#39;ziduan. + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/JDBC%E6%95%B0%E6%8D%AE%E6%BA%90/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/JDBC%E6%95%B0%E6%8D%AE%E6%BA%90/ + 应用场景 # 当无法在python中找到连接库时, 你还可以采用jdbc的连接方式 +使用方法 # 首先您需要安装jdbc的包 pip install JayDeBeApi 在任意的一个仪表盘的 &ldquo;模板&rdquo; 编辑器中, 点击上传资源的图标上传相应的jdbc JAR包即可 新建连接的方式, 以下使用impala为例 + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/kafka%E6%95%B0%E6%8D%AE%E6%BA%90/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/kafka%E6%95%B0%E6%8D%AE%E6%BA%90/ + 用于获取kafka指定分区的最后一条记录, 用于实时场景 使用方法参考&quot;自定义数据源&quot; 以下为参考代码: +def dataset(*args, **kwargs): &#34;&#34;&#34; 返回查询数据集 :return: 二维数组或JSON字典 &#34;&#34;&#34; from kafka import KafkaConsumer, TopicPartition import json sqlList = args[0] # 数据集编辑界面的输入已按分号拆分成数组 [sql1, sql2...] config = args[1] # 相关的配置字典{&#39;host&#39;,&#39;port&#39;,&#39;user&#39;,&#39;password&#39;,&#39;db&#39;} # 插入你的数据查询及处理代码, 生成result即可 result = {} consumer = KafkaConsumer(sasl_mechanism=&#39;PLAIN&#39;, security_protocol=&#39;SASL_PLAINTEXT&#39;, sasl_plain_username=config[&#39;user&#39;], sasl_plain_password=config[&#39;password&#39;], bootstrap_servers=config[&#39;host&#39;], auto_offset_reset=&#39;earliest&#39;, api_version=(1, 0, 0), consumer_timeout_ms=50, value_deserializer=lambda v: json.loads(v.decode(&#39;utf-8&#39;)), ) topic = sqlList[0] partition = int(config[&#39;db&#39;]) tp = TopicPartition(topic=topic, partition=partition) consumer.assign([tp]) end_offsets = consumer.end_offsets([tp]).get(tp) # 获取当前消费者最大偏移量 consumer.seek(tp, offset=end_offsets-1) for message in consumer: result = message. + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/mongodb%E6%95%B0%E6%8D%AE%E6%BA%90/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/mongodb%E6%95%B0%E6%8D%AE%E6%BA%90/ + 使用方法 # 连接池正常配置即可 数据集开发中,填写查询需求: {&#34;db&#34;: &#34;db1&#34;, &#34;table&#34;: &#34;tb1&#34;, &#34;filter&#34;: {&#34;name&#34;: &#34;Zarten&#34;}, &#34;projection&#34;: {&#34;_id&#34;: 0}, &#34;sort&#34;: [[&#34;_id&#34;, 1]], &#34;limit&#34;: 10} 由于返回的字典格式, 如需转化成二维数组, 可使图形中的转化函数ds_mapToList +let dataset=ds_mapToList(__dataset__); 参数说明: # 除table,其它都为可选参数 +参数 说明 样列 db 数库名,默认连接设定中db名 table 表名[必填] filter 筛选项,具体用法参考下文 {&ldquo;name&rdquo;: &ldquo;Zarten&rdquo;,&ldquo;date&rdquo;:&ldquo;2020-10-01&rdquo;} projection 显示列 {&ldquo;name&rdquo;: 1,&ldquo;date&rdquo;:1} sort 排序,-1为降序 [[&ldquo;date&rdquo;, -1]] limit 限定返回数量 filter条件说明 # 且条件 +{&#34;age&#34;:{&#34;$gt&#34;:22}, &#34;name&#34;:{&#34;$regex&#34;:&#34;user&#34;}} 或条件 +{ &#34;$or&#34;: [ {&#34;age&#34;: {&#34;$gt&#34;: 22}}, {&#34;name&#34;: {&#34;$regex&#34;: &#34;user&#34;}} ] } 比较查询 $lt和&lt;,$lte和&lt;=,$gt和&gt;,gte和&gt;=,ne和!=是一一对应的 {&#34;field_name&#34;: {&#34;$lt&#34;: value, &#34;$gt&#34;: value}} 关联查询$in和$nin {&#34;field_name&#34;: {&#34;$in&#34;: [1,5,8]}} $regex为模糊查询的字符串提供正则表达式功能 {&#34;$or&#34;: [{&#34;field_name&#34;: {&#39;$regex&#39;: value}},{&#34;field_name2&#34;: {&#34;$regex&#34;: value}}]} + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/Redis%E6%95%B0%E6%8D%AE%E6%BA%90/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/Redis%E6%95%B0%E6%8D%AE%E6%BA%90/ + 应用场景 # 你可能会有这样的一些需求, 展示数据是要通过外部的程序计算好,如一些实时的计算场景,用spark计算好的数据 或爬虫爬取的数据, 然后写入redis或nosql的数据库,最后由前端图形直接展示或数据下载,SmartChart支持这一块的应用 +使用方法 # 你可以创建一个redis的连接池, 然后按照通用的方法建立数据集 不同的是, 数据集的SQL区不再是写sql代码, 而只需要写redis中的keyname +如redis中存储的数据是keyname 为 &ldquo;指标A&rdquo;, 数据 &lsquo;{&ldquo;长沙&rdquo;:1,&ldquo;上海&rdquo;:2}&rsquo; 这样我们只需要在数据集中写上 +指标A 即可, 最后你会得到{&ldquo;长沙&rdquo;:1,&ldquo;上海&rdquo;:2}的返回结果 +如果你需要的是表格格式, 那么你只需要往redis中存入一个二维数组, 比如: [[&ldquo;省份&rdquo;,&ldquo;数量&rdquo;],[&ldquo;长沙&rdquo;,1],[&ldquo;上海&rdquo;,2]] +注意数据存入redis为字符串格式,你可使用python的json.dumps来生成字符串格式存入 +当然我们也支持同一个数据中获取多个keyname # 比如还有一个&quot;指标B&quot;, 数据是'12345' 我们可以同时写上两个指标,用分号隔开: +指标A;指标B 最后你会得到的结果是: { &ldquo;指标A&rdquo;:{&ldquo;长沙&rdquo;:1,&ldquo;上海&rdquo;:2}, &ldquo;指标B&rdquo;:12345 } + + + + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/sqlalchemy%E8%BF%9E%E6%8E%A5/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/2.%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%B4%E6%98%8E/%E7%89%B9%E6%AE%8A%E6%95%B0%E6%8D%AE%E6%BA%90/sqlalchemy%E8%BF%9E%E6%8E%A5/ + 常规的连接池的设定, 大家应该都很清楚了, Smartchart也支持sqlalchemy连接, 对于一些smartchart不支持的数据源可以使用此方法 配置方法: 只用填以上内容, 其它可留空 连接地址的写法参考sqlalchemy说明: +可选参数。一个标准的链接URL是这样的: dialect+driver://username:password@host:port/database dialect,是数据库类型,大概包括:sqlite, mysql, postgresql, oracle, or mssql. driver,是使用的数据库API,驱动,连接包,随便叫什么吧。 username,用户名 password,密码 host,网络地址,可以用ip,域名,计算机名,当然是你能访问到的。 port,数据库端口。 databas,数据库名。 其实这些也就dialect和dirver需要解释。 二:连接sqlite3 1,驱动 sqlite3是个文件数据库,不需要什么驱动,或者说python内置了驱动。 2,标准连接参数 # sqlite://&lt;nohostname&gt;/&lt;path&gt; 没有hostname 3,各种链接参数 # 相对路径,就是这个python文件同目录下foo.db engine = create_engine(&#39;sqlite:///foo.db&#39;) #绝对路径 #Unix/Mac下用四条////表示 engine = create_engine(&#39;sqlite:////absolute/path/to/foo.db&#39;) #Windows下用三条///加盘符路径用两条\\ engine = create_engine(&#39;sqlite:///C:\\path\\to\\foo.db&#39;) #Windows 也可以这么用三条///加盘符路径用一条\ engine = create_engine(r&#39;sqlite:///C:\path\to\foo.db&#39;) #数据库建在内存里。URI保持为空即可 engine = create_engine(&#39;sqlite://&#39;) 三:连接mysql(mariadb) sqlalchemy默认使用mysql-python作为链接驱动,既default模式 选哪种驱动,就装哪个包。 1,default默认链接方式 engine = create_engine(&#39;mysql://scott:tiger@localhost/foo&#39;) 2,# mysql-python,声明使用mysql-python驱动 engine = create_engine(&#39;mysql+mysqldb://scott:tiger@localhost/foo&#39;) 3,MySQL-connector-python 声明使用MySQL-connector-python驱动(推荐使用) engine = create_engine(&#39;mysql+mysqlconnector://scott:tiger@localhost/foo&#39;) 4,OurSQL 声明使用OurSQL驱动 engine = create_engine(&#39;mysql+oursql://scott:tiger@localhost/foo&#39;) 四:连接Microsoft SQL Server sqlalchemy默认使用 pyodbc作为链接驱动。 1,pyodbc engine = create_engine(&#39;mssql+pyodbc://scott:tiger@mydsn&#39;) 2,pymssql engine = create_engine(&#39;mssql+pymssql://scott:tiger@hostname:port/dbname&#39;) 五:连接PostgreSQL PostgreSQL默认使用 psycopg2作为链接驱动,既default模式 1, default engine = create_engine(&#39;postgresql://scott:tiger@localhost/mydatabase&#39;) 2,psycopg2 engine = create_engine(&#39;postgresql+psycopg2://scott:tiger@localhost/mydatabase&#39;) 3, pg8000 engine = create_engine(&#39;postgresql+pg8000://scott:tiger@localhost/mydatabase&#39;) 六:连接Oracle Oracle可能只有 cx_oracle一个驱动包,既default模式和声明模式一样。 1,default engine = create_engine(&#39;oracle://scott:tiger@127. + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/ElementUI%E7%BB%84%E4%BB%B6/%E5%B8%A6%E5%88%86%E9%A1%B5%E7%9A%84%E8%A1%A8%E6%A0%BC/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/ElementUI%E7%BB%84%E4%BB%B6/%E5%B8%A6%E5%88%86%E9%A1%B5%E7%9A%84%E8%A1%A8%E6%A0%BC/ + 模式开启 # 需要开启模板开发模式, 并开启basevue模板 在Body加入组件 # &lt;!--表格--&gt; &lt;div class=&#34;smtdrag&#34; id=&#34;id_1654907858638&#34;&gt; &lt;el-table :data=&#34;tableData.slice((currentPage-1)*pageSize, currentPage*pageSize)&#34; height=&#34;100%&#34; size=&#34;mini&#34; header-cell-class-name=&#34;tablehead&#34; border style=&#34;width: 100%&#34;&gt; &lt;el-table-column v-for=&#34;item in tableHead&#34; :label=&#34;item.label&#34; :property=&#34;item.prop&#34; sortable&gt; &lt;/el-table-column&gt; &lt;/el-table&gt; &lt;!--表格结束--&gt; &lt;!--分页控件--&gt; &lt;el-pagination align=&#39;center&#39; @size-change=&#34;handlerSizeChange&#34; @current-change=&#34;handlerCurrentChange&#34; :current-page=&#34;currentPage&#34; :page-size=&#34;pageSize&#34; layout=&#34;total,sizes,prev,pager,next,jumper&#34; :total=&#34;tableData.length&#34; &gt;&lt;/el-pagination&gt; &lt;!--分页控件结束--&gt; &lt;/div&gt; 在JS区域加入 # var vapp = new Vue({el: &#39;#vue_app&#39;, delimiters: [&#39;{[&#39;, &#39;]}&#39;], data: { tableData:[], //表数据 tableHead:[], //表头 currentPage:1, total:20, pageSize:10 }, methods: { //处理分页数量 handlerSizeChange(val){ this.currentPage = 1; this. + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/LineUp%E5%9B%BE%E5%BD%A2/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/LineUp%E5%9B%BE%E5%BD%A2/ + Smartchart内置了LineUp图形 LineUp is an interactive technique designed to create, visualize and explore rankings of items based on a set of heterogeneous attributes. LineUp图形参考 +ds_loadcss(&#39;smt_LineUp&#39;); ds_loadjs(&#39;smt_LineUp&#39;); let dataset = __dataset__; dataset = ds_createMap_all(dataset); try{Ljs__name__.destroy()}catch{} Ljs__name__ = LineUpJS.asTaggle(dom__name__, dataset); // 点击选中行响应动作 Ljs__name__.on(LineUpJS.LineUp.EVENT_SELECTION_CHANGED, (selection) =&gt; { console.log(Ljs__name__.data._data[selection]); //通过以上log可以查看到数据格式, 以下就是标准的联动写法 filter_param[&#39;LineupParam&#39;] = Ljs__name__.data._data[selection].xx ds_refresh(2); }); //更多响应动作 Ljs__name__.on(LineUpJS.LineUp.EVENT_HIGHLIGHT_CHANGED, (highlight) =&gt; { }); // document.querySelector(&#39;button#select&#39;).addEventListener(&#39;click&#39;, () =&gt; { // Ljs__name__.setSelection([1, 2, 3]); // }); // document.querySelector(&#39;button#highlight&#39;).addEventListener(&#39;click&#39;, () =&gt; { // Ljs__name__. + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/%E4%BD%BF%E7%94%A8%E5%9B%BE%E6%A0%87/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/%E4%BD%BF%E7%94%A8%E5%9B%BE%E6%A0%87/ + 在&quot;模板&quot;中加载图标资源 使用方法, 可参考 font-awesome菜鸟教程 V5图标名称参考, 也可以 图标样列查询 + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/%E6%97%A0%E7%BC%9D%E6%BB%9A%E5%8A%A8/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/%E6%97%A0%E7%BC%9D%E6%BB%9A%E5%8A%A8/ + 通用滚动 # 例如你的html如下 +&lt;div id=&#34;smtid&#34; style=&#34;height:100%&#34;&gt; &lt;ul&gt; &lt;li&gt;smartchart&lt;/li&gt; &lt;li&gt;bigdata&lt;/li&gt; &lt;li&gt;echarts&lt;/li&gt; &lt;li&gt;make it great&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; 你只需要使用以下函数, 即可实现在无缝滚动 由于smtid是ID, 则使用 ds_liMarquee(&rsquo;#smtid&rsquo;) 即可开启自动滚动 如果 class=&ldquo;smtclass&rdquo;, 那么也可以使用类选择器 ds_liMarquee(&rsquo;.smtclass') +我们也可以使用更多的配置方法 +marconfig={ playtime: 3000, //滚动3秒 pausetime: 3000, //停3秒 config:{ direction: &#39;up&#39;,//向上滚动 runshort: false,//内容不足时不滚动 scrollamount: 20//速度 } } 可以使用 ds_liMarquee(&rsquo;#smtid&rsquo;, marconfig) 传入配置 +更多config说明: +名称 类型 默认值 说明 direction 字符串 left 滚动方向,可选 left / right / up / down loop 整数 -1 循环次数,-1 为无限循环 scrolldelay 整数 0 每次重复之前的延迟 scrollamount 整数 50 滚动速度,越大越快 circular 布尔值 true 无缝滚动,如果为 false,则和 marquee 效果一样 drag 布尔值 true 鼠标可拖动 runshort 布尔值 true 内容不足是否滚动 hoverstop 布尔值 true 鼠标悬停暂停 xml 布尔值 false 加载xml 文件 inverthover 布尔值 false 反向,即默认不滚动,鼠标悬停滚动 内置滚动表格 # smartchart内置了滚动表格, 可以一键生成 如果你需要修改表格的样式, 如字体,颜色等, 你可以在模板中重定义样式 具体样式的写法, 参考 样式快速入门 + + + + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2%E5%8A%A0%E8%BD%BD/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/3.%E5%9B%BE%E5%BD%A2%E5%BC%80%E5%8F%91/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2/%E7%89%B9%E6%AE%8A%E5%9B%BE%E5%BD%A2%E5%8A%A0%E8%BD%BD/ + smartchart默认只会引echarts的基础图形 如果你需要使用到更多图形, 你可以自行引用,可以写在模板的javascript标签中 +中国地图 &lt;script src=&#34;/static/smartchart/opt/smt_china.js&#34;&gt;&lt;/script&gt; 世界地图 &lt;script src=&#34;/static/smartchart/opt/smt_world.js&#34;&gt;&lt;/script&gt; 统计图 &lt;script src=&#34;/static/smartchart/opt/smt_ecStat.js&#34;&gt;&lt;/script&gt; 水球图 &lt;script src=&#34;/static/smartchart/opt/smt_liquidfill.js&#34;&gt;&lt;/script&gt; 词云 &lt;script src=&#34;/static/smartchart/opt/smt_wordcloud.js&#34;&gt;&lt;/script&gt; 百度地图 &lt;script type=&#34;text/javascript&#34; src=&#34;https://fastly.jsdelivr.net/npm/echarts@5/dist/extension/bmap.min.js&#34;&gt;&lt;/script&gt; + + + + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E4%B8%8D%E5%B8%B8%E7%94%A8/%E4%BB%A3%E7%A0%81%E8%BD%AC%E5%8C%96%E5%B8%83%E5%B1%80/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E4%B8%8D%E5%B8%B8%E7%94%A8/%E4%BB%A3%E7%A0%81%E8%BD%AC%E5%8C%96%E5%B8%83%E5%B1%80/ + 由于我们移除了boostrap的布局方式, 此布局不再做推荐! 初次学习的同学, 可能会需要一个拖拉拽的布局方式(3.9.9.13以上才支持), 所以下面介绍的是smartchart的辅助布局方法 +你可以在&quot;布局&quot; 中找到入口 进入编辑器后, 你可以拖拉拽的方式进行布局, 注意我们建意你一个column(C)容器只放一个smartchart的图形便于标准化 点击&quot;生成&quot;, 复制相关代码 回到仪表盘&quot;布局&quot;, 粘贴到编辑器, 点击 &ldquo;闪电&rdquo; 图标, 进行转化, 可能会提示你数据集不够,这样你需要新增足够数量的数据集后再点转化 注: 代码转化布局你可以不用可视化辅助, 可以用其它任意每三方布局工具生成代码后粘过来生成, 需要注意的格式是: 在你需要数据集的地方使用以下代码即可: +&lt;div style=&#34;height:100%&#34; id=&#34;container_{name}&#34;&gt;&lt;/div&gt; 转化完成后, 点击保存即可应用布局 + + + + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E4%B8%8D%E5%B8%B8%E7%94%A8/%E5%AE%B9%E5%99%A8%E7%AE%A1%E7%90%86%E7%95%8C%E9%9D%A2/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/4.%E5%B8%83%E5%B1%80%E8%AF%B4%E6%98%8E/%E4%B8%8D%E5%B8%B8%E7%94%A8/%E5%AE%B9%E5%99%A8%E7%AE%A1%E7%90%86%E7%95%8C%E9%9D%A2/ + 容器管理 # 你可以单独对一个容器进行编辑,或者在全局进行编辑 全局编辑器 移动图形 +你有两种方法移动数据集 可以在“报表” 中直接暴力修改序号 也可以在数据集编辑器中移动, 可选择插入(带着容器一起动),替换(容器不动,就是整体布局不变化, 只移动数据和图形) + + + + + https://smartchart.gitee.io/docs/6.Jupyter%E5%BA%94%E7%94%A8/Jupyter%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%8C%87%E5%BC%95/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://smartchart.gitee.io/docs/6.Jupyter%E5%BA%94%E7%94%A8/Jupyter%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%8C%87%E5%BC%95/ + 应用场景 # 你需要在jupyter中通过smartchart分享的数据集获取数据进行分析 你有很多线下数据需要进行个性化分析, 然后制做仪表盘 在Jupyter的数据分析过程中, 你需要快速生成图形 大屏或报表有部分数据集是需要能过复杂的分析生成的 +Smartchart支持像pyecharts, Matplotlib 等python绘图工具一样在Jupyter中使用, 但她更加方便, 更加炫酷 和 通用化, 不仅仅是一个绘图工具, 而且是一个平台 +我们有什么特色: +使用上手非常简单, 仅仅只有两个命令, get and set, 配置项采用原生的Echarts配置, 无重复学习成本, 使用顺滑 支持Echarts所有功能, 可定制化程度高, 显示效果好, 可嵌入也可以弹出窗口显示, 也可以dashboard中显示 数据可以固化存储, 采用smartchart Portal可以直接拼接炫酷大屏 +Smartchart与Pandas Smartchart与Jupyter SmartChart大屏新思路 +安装使用方法 # 你需要在jupyter相同的python环境中安装smartchart客户端 pip install smartchart 或pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple smartchart 如果你只是需要连接已部署好的smartchart服务端, 本地无需启动smartchart 快速开始 # 初始化认证: 第一次使用时, 打开jupyter后, 需要设定默认用户和smartchart服务端url 同一个环境, 只需初始化一次, 后面无需再设定 +from smart_chart import Smart Smart().set_auth(&#39;用户名&#39;, &#39;密码&#39;,url = &#39;http://xxxxx&#39;) 如果smartchart服务端在本地, 可以省略url + + + + diff --git a/docs/smartchart/katex/auto-render.min.js b/docs/smartchart/katex/auto-render.min.js new file mode 100644 index 0000000..3a6d663 --- /dev/null +++ b/docs/smartchart/katex/auto-render.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,function(e){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(t,r){t.exports=e},function(e,t,r){"use strict";r.r(t);var n=r(0),o=r.n(n),a=function(e,t,r){for(var n=r,o=0,a=e.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Ũ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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_AMS-Regular.woff2 b/docs/smartchart/katex/fonts/KaTeX_AMS-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b982d6eaf85fcd6eaa94a0302bdf1db9c08e8231 GIT binary patch literal 32944 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 H0YLpfq!Ad2 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Caligraphic-Bold.woff2 b/docs/smartchart/katex/fonts/KaTeX_Caligraphic-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..710c26179c5f1c9998065035a82a578cf45d60e9 GIT binary patch literal 10448 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 G0002%wf^z| literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Caligraphic-Regular.ttf b/docs/smartchart/katex/fonts/KaTeX_Caligraphic-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..97814db7e2c7bb3039692551a4fbbb7f33baa46a GIT binary patch literal 18684 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 OTGv@~T#9_E>wg3J&>da? literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Caligraphic-Regular.woff b/docs/smartchart/katex/fonts/KaTeX_Caligraphic-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..aec8a33389cb27a7e2e603ece720eb000fb9a0a9 GIT binary patch literal 11460 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�y2~;QCrOg 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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Caligraphic-Regular.woff2 b/docs/smartchart/katex/fonts/KaTeX_Caligraphic-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ee5193d7c888fe2e82fb54342f2bb5d4c34b83a5 GIT binary patch literal 10240 zcmV+bDF4@YPew8T0RR9104M+e4gdfE07)1C04Jva0RR9100000000000000000000 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 n`rw@-F{Wjei(Pbp9SPw*Bq!Pn-VdZvp@y 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%0APg>lfK9+NEbfec22@_xp#;D&6-v*%$^l@Z zQK3!5B-6~Y&K5_U1g5H~RxTnyK=$m-v&nAZ8LFh3`9onUxs@BamMgiGb2+`8ahKgi zZI2TFRHDIj`x0n6joePT9-lFVCGsqI7J1GT zRgvdSQ4@K=6m^joP0&$7yziWUB1A@QOghxVmJ@+-y z!yLZuZ6A~0_rWzCh!t@v^Zs-`{;5J$vVW?~R4*ohyn(|Z2CTH!9ZVmpxd$zQjs9a_ z3DY&r)i7I|i?PXUtW$Y|_TI@fA@q#ypoSU|I>-y6jFQqpL9|5CI7uP7j)to5^9qlW zQL_Yr&$<39w;c;5zb_mRH1(MQ2l^qXc_3=!sso&LbXS5&wH}JTOklvMT8e#os2v-c zO(mRdQ{HG|_k8EKZ@*9nb?~4vTH5&0071A}npD1?_old6%Ev~NFRXR&Fh5NE!naOi z0H18B=XR=}?zTSA=9%HU?txAN!}r`Afu&i1cE1hE;?p6zGw7ReF4&1fz zXy6V17p>U+zq(K0XLkWh;|bYOZzmaGjD(EM{5z7rqXz`&ySr2FBIPsv;p{1y!&5%r z#4LVvi2k`Lly&+P-@^KZ;X4p7g|!I0QYQzBLD*MD+L2#k`P%gG&S3Ed3riMnP0uPd zfAv_`W)1^D6oikVkBbBi9CIu)vt?#3OVFTqR*=o}_a_!R68cL9^CywT5IGEy#}Ea~ zmqZamlrTgYLsT$75>*UQ!w_{0(ZKvmG%-XAL$onO2lFk_#SlFV(Z>+3dWPHjPTi#2mCk)k7O7)CVI=8&nlr9)bmz2^KrF3n1Zziv(|d5e>nG=wyi@EmD{)O@0C?JC@ZQ02A}C@bBV%9W2F9Hn3>*x}1sfUI zoHj`?GH8Jqo4Gj{IUp=iHZY6bX%{mC10w?`kj>$=i@^cHW@d2NsKVG07_q^jBVr?S zipxed5N{Vp0|O(ALq~E*1V~9F5Nzhbe8UH-qia_*y2c!Cu4CK^sS5Kz!WC$nYxUYBRjfd?k_|I!BK3B@#n+z z()D$2goCz?Oj1zTP3k5W7aKWT-;&+TBxCZ{m=MbKqN}Q^Xm+a=-P5+MFWN?Y7cDFE z`=Z@M5IdJml*>hw+sqZJuoWY>gCSpT{*GV=nridn zA5jQ+9MQ|7xTiiOx+Ln8oqLxtqs?dJ_pZ1~>=M^~2l1_pSFdA>&s}7md)ImEodD=Os+flwrt z$jZqpC{wONr7G2G)T&djL8B(kTC{4@u2Z*OefkX;G-TL_QDeqUm^7tm+KgFq<}FyX zWZ8;UYc_1!v1`x11BZ?rJ8|mFxeJ%BT)T1W&bGyu`A#s-E^+6YP;LunHzZ3?9=ptL2Jc5`!q(ymb24FCxyEMWiu M000310ssF14|n8Ps{jB1 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Fraktur-Bold.woff2 b/docs/smartchart/katex/fonts/KaTeX_Fraktur-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..dc3bd4c040abd23afb59d2fe385f80e23b0cff41 GIT binary patch literal 20360 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 {um(f~Q9HvR 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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Main-Bold.ttf b/docs/smartchart/katex/fonts/KaTeX_Main-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dc0185a12290672e819e1d62ac9a955311c60341 GIT binary patch literal 60784 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 DvjTj6 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Main-Bold.woff b/docs/smartchart/katex/fonts/KaTeX_Main-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..acf48e66893be130a57bb66b9506becef9b72f81 GIT binary patch literal 35464 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%0DBe5}C#ke#N-e*jJ!67~X2qoJ9|WECVv5YL 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 XQglzIQbW0WGIxjiEcVqP&vyPh#XzB! literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Main-Italic.woff b/docs/smartchart/katex/fonts/KaTeX_Main-Italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..1184295def56183abcff437cd382b3b295a8bac0 GIT binary patch literal 26228 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 X(ymb24FE{wN(KM`00962|Nj6Ffm3-< literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Main-Italic.woff2 b/docs/smartchart/katex/fonts/KaTeX_Main-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..aa05e142c4293315104e02adac9ed65dff454deb GIT binary patch literal 22748 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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Main-Regular.ttf b/docs/smartchart/katex/fonts/KaTeX_Main-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8acb365453b7590425ad0fe65c41a5488d3d64e9 GIT binary patch literal 69520 zcmce<2b^SAc_(_$x%pPSl~Z@+(5X69byerC4%0o;JvnHmCyz$b1O*0-kdP1{kZdGO zGA0KTjCbwD1`G(i2G)SF4Hz6S!8W#^pZ$z6ENk+gne-irkKT6V%{#BA(Z@qBt>J|L%mzeKK{A*me=i$4KuFvA5 z^xq}vyV}J&&)pIJ^%tFxr0*ZYZ;gxi!3^sGoZpY{g^Tw-@ZxViHuf(#{svs{v3p){ z{@i!#zxtFU{e4K1`24-+UVMe`cE1AW`Vq!w?mKtyo!>jQ|8Cq5&Zm9*$_uVO5Iz52 zep+G%?q5H2<^DUbyzw>9d|6@=&L_QE;?fBI{UQ(JX?4kXT2q+Bhx%%E%`VsM{K#AG z7#ZQ=XTLwfehp*yV&3oauSh;o$u^$nM`bVDsH;Ew|tA@A7x`mU5~V?F-f$wUJ0T#C0v7E0=gMf-lbJ(RyQV zJ{~Jp7`FqQRc7Ovq$e2iB=h{u;aoPNuP?}kA+ygs`+c5H7JR1ZE2J_Ykd$LDVGr<6 zNJ*(FC0bFL;hs-$tgw&mZqzf~iC9k2!p^m$;(EH4D~;Bhjb=Ts(bY>$y02Rt%ViU> zaCa)y<@yGLDx#_R`k$66so0)F(boqj^;+|h~bFSwTH~p3FeeBwdY~tRJ zO6R2c)~v$0lhoUNZmzjZt{a+uj-JW4YB9qI7`xA&I&ti_LkITnUR{`e<`6rt>!J43=5^=!i5R2J>%I|*YE956UsCZG z&8juWy#LhOqbTkGuk^6b;Gn;G^G9e)*)X1r$gbZ_xstm zX(ay7PI&Zpzf&^<%3I!~a{6TI)*JCr_qbJg_Z}u|E@y;=-`}W-A?=U4$ERY1sxkb% zTLNb`uYHkyn*R@JpLANfDD7%34R^(5nblle<9C=`k>;7IC@X?VB~?+cVh-12eqPcb zcbarwQk1x|d++YK*39%kf2EX420+BVW=PBD!;xqt8nw&0QmKqT;8xJNHd+hg=Liv- z*a*MYnxmz1S^NrW6Ls_9{Aivg5yKJt2kZG9#)m_g8Hv`SrFV`ih)OiA)i7qX4qfBS z>6|3!3<-y5$=ZYXj^^~jJW-5st6XfP^ZQqtZnd0VzD=9ZPmObx%d#q)Zuac6hN2lB znf>|Y7p{Lem)Ue1;B&EY(%iTy&H_81IH+WQv*_IW|5P zX+FB|ipkTn9?0|xH@L!>*LvnZRK;y5s?2u&{4dQ0gOS#Q^Pxa+@Z9a|?tL#Xd2`~} z8qH;%U@$t~T8K6MJUDp!Igq;d+V}Xkps`o54);mlXoU|k#_w)Tj7NihU1fYFhn3sq z=S52m>+6kR$T14BOT>VHt)O{AC3@#bxaep@%7#9OaFfiR2 zh;w1A%GvqN^U<(Y@unj*O+C6XP}TOWt*x~p=g#civp7F9HCihbvgz)wWTI%1@)r7< zw3grrU57A&5t^g*Qa(Rgi(tuXVJLGiEQ_v@T;Zoi6Y>ec1TSr{N|U$%vL~k3!6xOB z9HQwB$Ze@Ki22%YmFqpDJ~P{ECzm|s3m&7mBUp~BX5jKckLKH(V1`fIS=AZO>DAuS zm|Ri!wGQoZyY?O1eL0~Yc#o{-OHsu*WHH(Nqp|+hj3LWidlNp(?uxM!cb+^{?~%>b zT6ey&%X98Azcu_|#;}7`S+1%D=80R6PMC~mwbE$8Feg{#Y13?-oa-;S_Otuhbai#v zXC7^GQ})`^>&EP!Dp*uWUaEEn?5 zk}dQelqDH{UGqmHY)`Uwp~=pQlSH26MlUKkz;`GjQq_Yq5{vTJzFSYhb!w>F$c^y2Pd$Fw7jL z0}m*}d%`Vneu+sFW63zo%Dke5`hsnr0*_4gq1hlVtmAe_=SOw=PR~!QD?WhR%H?QO z7>;t2821ie*i}2+U6@y_h}WgOka=0q;|nqGgD!8xQs(Cm*Iaa9GMUnK7WDdp%o~~Q zmNoYFsLyLAO5Q-XV)!F2P2-1{{SJSth1j*w#|uc??N?+FBgfqX#I z5`B$&Gdn8Ot(}d8^sKGr%64|l%lepQdUV$7^R0hVPw4C4_(4K{%UeA7X2gv3Z+g9~ zSMcn$8R=`%!{DQ#r-NYGj?W1Okk|>Vx0gYWY<#oX?zN|55y8)mwogg?++KoFn1Xz6 zZ#GfNbMK_r2v{>3Q$5~9ex%SE4*J(x-hiT7vnSj#Oh1!c(#Kd>dIq|*yOqQbOgci> zUE_2od+-qtYs=&cjAp|wW_@heF3j4C1HUW1ShA#wqg*#`@5Y<`cp*US3O|#i05@0K zo2%ywu|$3Du_Xnrr4%j7J$0zxsbOTX(LJ5S9MD!30;HvIs zCuP-RxY_zIs`|gXbxZz?VllU_KC{EJz^UbH-(z3l?~p>$u=MciM^aGOVKA>y3Z7Lg zsUU9z4BYqfa#UDxb z_9P>I1z-Gp*MX5l@1dW4=fR0Y_|n05o_csTlZnnB(B>m&OH0#{?(WF+Qt51DUOO-k zk{$wGKL~ncrIRh68{T}%#W@%~!IYg21)}h7WHA4E*iJ63!GVE0LSFIESJ#<@_y2QM8xpjFRADOI(FFx8+RFaoCo3 zlO+!_sW#l-o9+q)bX97yrryz!LLas{LD!>1Az`WYaF*02{UNhXMAHzcki6WN%G|sA zwikMMK6Rwfn%wkt+%{;n4|{~RrE7OmfM7_ z8u(GuCGCnNBW{qDD{yR8S%aesJxtmOf}|)S8jc_ucG#%@##uNG9Aa{do!Q&wkc2(| zIdO`*ho8qKI9HCgZ%*OD$BHs(=hE!-SYvRYR7iIjnsk^QHaAuWhMFXmWEBfQAH-Ub z&MKGMx|Xb%@R`Ve8ssAI!8!_eO8DWz%F!8Ko=hK~^ySTLZr+x6HC2@x(}#nxdl%;K z3RuNNs*s52jiqMFZuzRcG9tB9cYie>PK=ZkOO|CNl+3a}$R)@3=uGuzr!9N(R0v9u z+ovXbO0|Wt!SGnVkc{S3J}{bH44ugUvEbxXsM^u#xrjH(O-Kb?wMZ-rZ3qO1eT)C1 zl$XlVi(39-l&gvh6ZncBeA0H3(+Io4^oV5Sb0D2(6|No>fn{tcf;0q3xqr*Bts{g& zh!&vH3*|xym&zCIKqLai;MP(bioxOYQL>s)=e4K}|5b#9(OS4{%Tf0G-m5S6n(02v zP}usjZ+$!G!GL!1BvXyyu8)5EUT6rWAbO~eRR8X~jBD%lYOTks>a6<5Z14KVpa7sL zz}ciJcCurwzyP>w%#TBAm> z2>C|gFoX!;06q$#qHp9a!rs*zcgM21urB*%dY99|WTLdUqUbIgaVcWcz}({UoS_;A z9!2{6G?na#1^Sj?|G*v>VbbIiupHn4RTXLu zJOJ;JKtD&#k<}?XqZy%sKV~?YmEy*57*#Od`CFZvnB;j3COx?N5n_w{4QFO#x}c=n z_bgOq<<_G(*N(QwYC=HW>9|EB%wZ7aOw^%UwfVa;m== z9d=to*;>+P7G*o^={b|nW9_iYon>wNdLqzj zALm?9FF{%bv5(BJ0!EYBQP@6ObS6VoT4qnVJ5>uS6qhvs9M)=3Xh2%R?Xa9YJ&MQM zUOI+2Mjo~`oNqF}KNRX-ef;4?Un#`v7PPjK4#c_?-`-HGdg?=_qHA#YD(uVr?z_2S zd6n|1a4jVtc(P~N+hv+|EZgPlebtkhwONgaLP;B5EFAYfVcp*$b;JK%lAdUp^8*3U zj(5DK{~w*bn??58Hg_Otgxt@Vag`^y4FOY65 z3<)hLKI(|KBi+sB$OsNN-jOa?xsFxbf-HjF9XF`-t6^L5D$!g}AIg^1o|XM$UGa3O zz7tN3DTj>%)xN3x`Nr&?(P-D5R-lv&dsKC}q%?*NwR|=V#Fv@O;_i{LSL?>&j>2Mn zVx?5q;mQP#9Q~QsoEw{+ypm%7!jqBdmBmVFP`$9SH`i6gx`?=xeF$-BSUTlPY=Lf3q?006zzcJo`^_fi6mJ6{ z6lbmh0C$`PmDJ|lf3co_VJdW>W%}U{j?HQzKUf{Q@X)nC;h*3sP z_L8Is#f<<4m;{Zt^v0|_DK3E{x$XjtaMb$2^^Nz>m2m6%#T3QDDdO* zp6JGkHM68|)NCmXyrx^m=WJ=r%U|mAu77_0^L{^nl&Du3!p9#A#)$p=U0o>b`xn;_bI`RAkw=$LmrJqmM0 z6m}d5dNzq)L2L?7{k}Htz`_WARaH3w$K9)tZ$J<=0O*?z_H7QfF&Jv-x^cK53>_ln z_9-z6`ocFkIk|Ik=fd3Jz-@jV@J66*(njFPLpwNpCgLaI2a*bhz8@v^4aE*G-2nlE z+tQy;RMS)C0T4j>sfw?88st!97x;|%LXob36^IXw6@gdCAQ=AXnb}N`@~-I4d_raW zQt8>=g_E&T%FThp_fNHYdNaXv!P6HArC_fS(gIInuAb=n+SVj0^^?O0tDu3{fvaU&0>qVW0SM#nGv38wqD zO>d3faA8wYxe4QN;|*+H7V8tZbm8pjqeqIt-by7mUMaYd8f76br^P6h%dnjtk4*$$ zBhhF_r#oujF|%ZXH=!wbEA9NLIEiBq+Kym5`9!{+uo}(La*2PB#7XuUY!qW zugK}e>QOCttSQIhB2!`nd{!wxbbM-hYHH6JPxPg?g|gFc7}h7XLl3`f&*JX8-0Y(- zH|*W?iLd{j%ZH3#BcB^|x$9X?%d%5L%Zr5(S_M_BvhG);vU}^hY<37Su<3o^^`4-f z`02ANXZpLkN^iYTs~&pTuVertDrTlXS9;?)EBnUZbu)ZA8+k9#rppV5M(VP6%=(Ho zMzWW|UtdLDsU}TH545~Z;88`!488)(y6gyH2GFU&Tn1DQ53icg9bkwxijNeCufWVQ z5_j?YJL9e&B4T9}4@`~YGPU8M5Taze+{kA=Sh5-ki-Vg50`R&C=ns(XMTnel9~;41 zm65o1{Onpdi1ihj>T7{>Yi`}QGsG@lV6xu~DeQAmq!sGjrtiute3oY^7W?~9NY=^` z^=(~|&`9mhy9jkF%WRa@n87sm?C&fCWdZ;vR|9wqz7v1#$mqA zVJN3awz}X-A*^8(H#ukAI1QCsthMabo%1aOtCd_P-IdK555AC+ zf+Pq6H<}DiXD(ODX*pO$xammzgX0^GAbu|cn4rlbXWDq&3if2b^d(OtHxYFooVS+l z^f2zZeTV0p-^}&|E%xYWFN;ItC%8wJ4;{8-T`P|yrUvi411O4idbl^xSL64=y{|HE zh7jVUYDfICv3E)fM2*SA7RLcl{R@MONLw>qdFe}$zC@YHj`i=4?{~4Meg-*NRr69Z zX6)Mc`8%MsW~IMug^Hj|sSCNVX@=wSN}jPcpj!empeeF;1qn`7(O@eGC?#ke`bt%W zV?=h^i6d`48tSP%Ixa?&Whq>LZk!fzEzs4iV_QAXF$_@c(e_|f686=D)16e9hDFkH8Z-Bf1=AOo_Lb6Cmv`OcM)=G$-|<&RbS?5rkD9rx z^~f(rHLUiiyIjPq_3t9LbnwMNeQDo+et2ne@zQcUs0+^oSrq;S$VEbGNcViQkbrd- zI5k=B=oTSB9%-|R$Pt3g!@kvx!-DzYsA4J{FCg>nX%5qymB+Jv!#PSsb(kIOivPB= z_$Ghb$U>5?7Sy4T>Xm}2KUj&}{!?D?+UxG|eCbPqn@t|grE(GCWmE_lN9R@xdv*Vw z{x%0QHT<9M3splecpn@`;#)o|n0EcU>)%0P4-a+CeRQ#KPaSeA#X*zT@Lxin{-rHn zjP%4T)ASW)Y^VtWClKTUA%<`pP!}?AN93X41bIaDk1(=c0<=nSOK?zVg6k$xnUEN0 zo5)P~cP{OiZxrotDVwx&E-Dfd`XGxMl`u+EHaSL!Jt)#Z+T6wg9N8}UWGqEWofA}# zIH&m-k&RDzy{Ou9FC4Tc?l4ez(wOt5LcCJpp_Ff~0cS<4){c88=4`L2Abv0NXFo}_ z<#&@3P#(C-6h#i4-hp%r0-i@62Ey6X8(RNvsJF*Z*-yWUcAvl=#dcfv-{oN{rSE1&x?gLt&4k>WX@fa+hstx(%-D=9tgS-@Nkg;KQ8%|lqc@nG-4Z+ z8~`PCZVrwl&J6WwFsAk1Qr1PJbY)Aub!PZeu42-ic+Ja$uIouSY>ZD?2(eZEikCAb zRLq6fzZ=dKVfP+;40IG`3=B#>{1_@m{x9gwHRqm! zR-QeG$3aEuie;i01Pa*!hUF7f=Lh`>hkg?fr1<MyDtCUDHR)>F<*qMdqGoE?ctSuqP7CCilDQRxaFyB01ZgN%{33 zr&mApuDyGDbJj@R#blBFBQ5fEXx1Il*IWKv(1%Qfw4*VSS6u!M-w!~2_+6_1oCT{# z9B&#rLL^cmVcRFWT<*0{FyQs5ZnxLnF?+Y1$ZU_x1Kv%Ee4~R|?1!+&mtD z->aV7{050a^)NexRq2r)|3unC8&Rq-`Np~9;v67C`f;iNMuVHa_a7 zpWiyFmA~l#O%sqcU6eTmXJIByPmBx=mP^G#&f}7HupP!mTE|I$5*-`ODc-1$PVrK` zKH63fRCU&9>m5N=Kmi)S?L1jdBm>rxg|0B;nq6hcpB4;Er`*xkTa`#Qzzu&g zjNBfxt}JVDxv>+d>#yazV;PiDYF@8wPV}(!$kgs!e6-r1OBkr^0NqJ}U@`c5#F#zE z&6$4HN{iYN(hGlu6*wpTmzL+;{?(;uz(>V?9Y)OQitr_15GnTbtoq$96jYmQKCj18 z93$wk<8>o_*N=n^Otv!4dFZ4_LZ83xWMn4STA4GaPM$cvcI@bFhj%Q@&$Y&yqy4?5 zOuBoRq}@iXXUAI;(k^s2IkTwCMxAZDu5UxNLz`=%jqne3xELZ-0EK|i_NbuJMVzu# zH*6|`NUQH@JlL8kFABas?!=OM~zRJMxn2U@fY%YVh@F%}i8i8f#cq?*_bb z(~-W-kv2xQGM&@WdFYgo4iss&Plh2_E$={II9@^cowak;7EKKHchrWa%Wb!r^wlLr*e^;h}&fdFA zjfa5ctzVPXHjTOvVm|~Ltw`@`1y&|U2YV86mt-P6xw6RAHU@$EXDDA0&UscnmLV&O zdcy5834v6-YRA598RolTn2lkrE|3`KA{X%b)8IHL6xq2Xtk_g-gtTojJCV(KHz@@e zDG~%uL4U{>f%Uq-1hWgy;ug6!1gOQ_EI!}I&Pk(pC2T_y`A zER-LLTErxOuP7PidyKhv*{0{Niyp&X^vP|uRF!A{f+=6ykD3O-Y1^z;_nwur!QiuR zfh6%ufxz*lo$LQ^K_Q-0x{+@Y5eoShqtZKCvEjjDG~%*Q*-!?s%~z6e2|=4S)w>}1 z1Te!kQHI#WVoN7np#E0Fwrvpc`3Exp;E^N21=|Rm zzsqCVyQmV(i^9`&7%0%yAqg*##{CZ<5FemVAX9$*PuBkghFIgfjrC{Np9S@Rl#xG8 z=xJOUlFm2=kJ5@FXATz`u`lIbHX(+MgD`FFgM=uclnz!BaVCWzk|?F4i86r#pXjL! zpp7L491}LC?3kD~uK{tUKQa-9V1f-CQsfKy*S_%TMD+68gX+O_Wc93R-+MgLJ@4b! zdPqfR*A@GHFO2uT>TLh6rt3;$an-q#)D{j%XuOKbLPdj&1>~ShMPpCA`t!`Yu#Ks?cd2*6<59Z?N+U8e zQ4TfQrv-cBDX-7!edTD;juw-eJGM01IIer<8g^j*?if7CVj`SPCS9RsI2rl+TeIes z+qSU(P~gGC!&!|bjFEEAqXw4GSv;PYobqw^@#2UX9CsUuBkzCx;UgY4;Ef!6_ZMyp zKnQeiIAxi#6&y;FtUyEjIb>x&*7;9c-ZifzyQTfD3LxUnN`oPg`T|NRxltbIR?oRM z#m0iE))B_R#qn+|T0|^1;l{U~N=;)MQ|*nZXmdjK;Kl_RF6AcCYG3(QbFk>i(NGmU*l8rJ#t&Lcsh|qyW$a!n) zcYx9m&79T-qzSA8TL{7Y@NWcVYaoBd%Z^L{@Zhqs(`F$Aa<<}8J+6?91~MZb_b1*Q zMFExBld$IJoiNY;vX{55=tb-3ny`kohOxmut_(J`f!J$K{YwR!z(cuxum3ie+ zrI6FOD^zjms#Taof&FFIqv2%P;Oz0oHv>WTms2GY@h6_}B<K>L3EzXY&_4SkriCDp)%6BX##8xap zi6Y7}6|rDRgv8=!lt$3!FtuRNQ7oKO&WJ^K7=g?dDuDz#L-jAUHSOvdx6L=)P_z=7h0|u%uRoiqrh^*nj!W^_6tb_@>4)0DzhdR2>!HFUXA=s zdkp$;ktqXGwq*oWPqf^zF)~q=nGus5N6HCj!=R4?#0t8BaJpvOAe%r4HzIiothf7kbfaAes9ISQk@2;!2wJA}4K@(ZE8$S)k1Ue_}Fx&`Lc zi7UHq1ew57t`m~W6>)W(?;8ezKih-i7}Uz#2qw8)A}c~CQe6W3tB>?n&`xAmDn!B@ z`GVWxN76J-o=ODlAg$vPwp+tMH%bQ(7vj%mU?>nG#mo=1Z2#0=bnGp_tNugBCxka+ zKYCPiH4HydG#VtwVW;&a75*>#{5{mQ31uHo-~)ys_iFHBFo)cj+jS`bwGGf=H2 zz4&9fjbv2RP#sWChw2xB_(n-B+3o8OgHWa^N?0>+e9WuPES&yGd%ko+oRE=|*zykc z<+Fj*En+zERX7x&HiYeMb2*(FvimqFBlG)Rfnt~Gz3;^lSGej@KF-R6M|#oxX5W6B z3)zau|IK9dUVBji_#%D}3Q~w`7@!Hh9=i1M@0h_b{m{dneJ`>QoJ}&SLJVB{p8P{l z;-K`NmT&jUu0{k+f@}rt&Qcp?PPttM5PFgMQ;Z6=7*oVx>;=){i)}AZ(RPtFL7>dAT3U@&& z9fh}T=Y+5YVX3$yp&Jc{5Jvcuz$^$75=mBPdM+Fc2oEMdD#rpB_qa9BPz2D~?Ps}a z!#mi!FS2)>Dy4o?&2RL z@rrUoCnB7>AGt!xrop31#Cz`2`WV?xn$MR?-+Zyqa1AsN?3hMW z5tnNB@`pIPsCj&8!*s?R%*jjhUzLqiIgLRtiMlkqcW1GPS{Pr%H_upx))*Nc?MI+% zMD~#=K*N6Oeaz*t9sQb@FI`}K{j;*E3DI%s^8MrEGWSOF(L11Yy%Ao8#Gqn~|25XB zCB3s{HA`7Hdh#|fkMnICCzhw%IfXbO;mcc3 zNUueB`#>dwJC~UAONj=)OZqcIG6Py}rQ+NXlG*MSk@|vRCLH zAAiH^AA20Fwp~I3lmYhMcU-)LRse_No1o+nC^;bgrl)*|U4A>k7ZA7{L z0cpT47o(LR<@(XLJ}S!ekaim(WsU!wtSh_(Di|DX1On9INF1Es;bPx_0$6_yPmQmc zbBi8LuQ2})e+c&Y%&)(}bGniVu}_&_NrH`;{OpGy%I4U3au-4gp1zu|j9+^fP)T>Su%&VJq~r=-(~oME|Z6@<|S;A&sGbQCHYWw_)k>`Um*8b+@HI zv*2}Giu@Ux8o|B2XY=0ZRwNlWhc%^wM@sH;(XqLCZ$XjGuGx{No;t^Wr}9j!BEJo1 zy269(adb(CB<*8<#)i;JjDQ8)NeY5o39VdiHvZeB@k&kiDA*mtlSEOb$72=vOUI2z z5vP0kP<7B1gPrgrJ4kmYUHd%yr)z(Q$o|Llk%r;*v45H=g1lVHUHfPD1NK=|eC%Vv zr*lB=$hUHX*~UTRcHf!74H+D&Nzm{B0or|MF(;xUjzwH(n#u|BQ3Qrm+WV870BAtx z1QZ@RIv&z<-5qT9usL@^kN{ouy6Gt1dpa6$?4jN##pQgc66isFq?ESUHpDo!CUHL|{lLBa?vBLDo~s}98s%ti@v>L5Mv4oOH-XEZD!GR8m2s1^;Y`FE zNOn&RdGqIP&zfGZyRT5L=&52puE=4fr@w$bAIec*T8rfT*^=SwioAaU;Ylc-s}AK+ zL(8QQsx2+>9(r%2_kVJ<9!D=>$Dc;oydq&M2BCi1eK%NU=%9_}8*+G@JsLI#3x`?& zLt-#OeYp9Qm>1qr9?a?V!gNlK@hIrtItr9WGHh~uWT;ZgrlVnxORBN~N`?hzIFxmW zbP+{+AgLfb#aTQs$<=!xS3}Ypo-V*LcBCo~Q3cL_5g;4R zejoIb;J&sj5l3#w4@otKV#}lF8r#ZUKa9dj6&(+4ybLDhzEPoHSF8gZCXAoVLQ_*tbLuR(3{f4{3G%^yJW@=_NOi=)WEIiF$dgt zlR03=&K$yg9TxBHT<69)SSm54qdb6f&|LsX0e0EGJHh7ywA?n7^bGo7C&q>csRuTd zKy8vP4X^>x2RjlK>Z8NcXcef{C}mFmBBJwryC+0sd7U<|_8I~O`O(V6215thd{6xS zW<@u~cP%w$yzJ3$4J;0q;&yL(Fy9I)>^Fw*y12p0a1QwTAFltt9P;q0g|_LT!RDHg zJom~wW($d>nHThAOIZ!8muho&0U5-5T9i@LY&3 zgiBC6hv<{Z<5bQ#)JSQHXuNU8Z;nEPOg@q<77GDtkSU^RU@OOpt_mn$=vzS$QW6nZ zQPh*dbcAc{J^K20LWN^}T_KmOc|vmV&{Qx!emv;DXP;u7ICIdP)4lakF#u;6$N#^5qu0d;VT*>@}1bhyG-!DwMF}*XMvo{9!9lKteN!A^?Ev zTwYN&GE{}m6NgblD^gWZKz@{0P>@MwM(qj=qSnS(N<7?jEP2aLF9FIVQ6@#IV}qtt zw6Sqk;a8&nvV^9xpU5zo_`i>6Z1Km;nQr#rMdUw!ZU#ok0!cr#tsM%dr7-$owxINDgg z-io@>M?8nX6FWy~)69_XALFK>wvjUQ=fYdmkj2vVj%Fq5;Aw?|5d8sdcLgGx*bw#S zH4$P=Zc2M%i^`VJ8jg}l@C0(0$d9xy-flkLHlA!8Hk~?k^vJ$FyOwLiD^e9??C_%ya3VDR&`;t=!SGn9Cb=EL^&kW31fzqQMsAL$~uKuxDCgjghfuo|vLI&sA%tRpY1Ai z^(Vu-2W$Nw$yGBIRhHfJUA?OO_mO6;YrzwW%EnkRkj(^&<2q+=@6W{jp>8iRD|#vY zgp>CS^^|v{LV>)E(q8N`mMKpLwBhbFYBDq*w)Zi#^k}u*-|Q`?ONmDtW7(vC(Votx z?Db#3F|!nQnbESYDDaO|51BoYGwy~JIWGNT%RVqt^l9(ZVAiTv+r5f2> zr1OOv>Cj&o+{ZWioL=ubbt2GKaEgI_{Vb~xuuE_tRc|WF-@T=!>Dlvb4fp!DSim7* z8Uz)eumD)X9$x#>wVL#2f>PtsA3MQT1!-0we$@8P;LT9Ejo>Z{ZbaLpb`nlYLTr0R z)x|wDUe*zmJ&y@Q({g75PLAGpqAhXnjps+y-9GikNDM-D761)g%Fca|2|?>jV-%Gd zg?uI%ZA@b9!9`J|#t?B! z>>4!2oziDp{@eEEvG)X`pYvySEh>7OPb)B<$W9^~)^_7OV!u&rRA*pMJw%o#EQVC5 z-q9L2jQ8Dayp8d#USI~;>O)p(zYApH$p069Eb3FXo*aWg-!3lQe(v?{7(2vUehfts1^#RI8vb74D(N7V~dUvV61WeT!hEu+Tu%} z%h+xj>RTD%d|xQN9F1-@z?Bl)BkxkX<)I&AhczKIH#5*}UkN<5CViz922Yv$iJ?#l zz*lA`xA;rN4I~bRXOo4tx;UF2)AJa-$uQlLiR}kAIc4i91)ER{qA8PS)n=0GMi7U1 z_pH`}6^Abfp!-Sr0(Ry(8REydR9lw&>T|90rc-r`^;GWtF)kHF+5f`61q>;K{i3EE z50#4dHiH=fxru%7Znit#+9xXYo&uHap@l}=Q)vq5p z+OaL{z8#khHun!Zi(?>07AqCSO7#Q%zqb{b9SBI+<_4+(ofG-AFsI}?W<}K>g>fJ^ zmHolz#Ja%Y7E45Bf2}kQOW0%q*w;-*tf8o7XFgbp_F#j;R9}(2J~-i{lwTsUMX?iK zQ@~tXb+v;-psO0y_8q@PIFsx}Q+vja$1}`GW=p$MRp7K2$|VF5Qauub*k!wsz!V+VN=SZn1M)3)z87mI(2i~M+%G>?X#`Pu^x~&5exXi zfh*2liKJQt9OM8(Q0T}R>L`CJx9j4>L7)Y2>^py`>@7MHrLX`ZhgvzrU8VnalAHb2 z@$f8aiOcs)^&2L-s;RV1;powmjX-|pT)>~O(_^7|7kjM|s&xBI4=ScKEv1dIpP%z6 zv9M{myLV`Ta`#F>M^%8O?VH0siHf_FuI=p#1PyE^XQgKp*HyGP`wSfwj8ABqR;`2D z0ob@b`~vFVUWENb2{CAsmE3&n?uXsJ6!{8OvWebV!V3^5uR+TQ?_?8wFK?Sb;Q>2> zBp^0y)j5&4GZLD}4j0ioYuluWkf05N*-!=t#RGjqi9H}}9sNYXQM2*d%Bx<59JM#! zZ?TH%8trSeu-}PUOjP+X->+BS@Y1ZWylenJsD>&dlQsRdPZi~^Av{1FS&nXKj(O>S zI6kvoABbWX9~8c1un}fIN-&eH>wnWaSq^0J$=X9LiM^8u3n4ZGdP!L$@ljM{5*yxP zEC9&PSZXtA*Ur!xac)HdOxii?bt7Au>jyzii7~gSli^!tfTDg1XmKaKdV1T1aF# z;MN-zy|*09wU%%MPiT#}xXUWBk0a=R`q#Cv)$ZQ7i zRUCnmBya>jB3%*B=S#)>u-LT^fk&sLiwmcKm#Z8&A4TLK1FRYVq6QobdT@47?JJDO zQ2iU=k8>1@s;^;+&mD_t*3mOQ!&{bXwe(cNudolJ+Da}e>mO20lU-6Rcr~IN#f$3S zeeX5=AzE2ppn_$&OzHA#Kw5zP*Qa46!@`_?~f=!q;7}Ksa4%u%#M&xi3pf%0{c0RxD1WsL4_{8yj zdr$|zbH@U$!GUqg-^8}=S<@zC&RGG$Yy$UzEVj{}4GO~}6+j%eLnbA-VS1^stzM=> zqWU@<{*v$Tic9k@XO+R~#3VNZT6an>EcB0RMq$>7C!z7t+^FiF+je8at>KI>64Sf5 ze`b#RCT-2S?PS1|U6BLuo)n*jRBu(yDl=1i55TMCR6nS?yflo zlEX)iai^XQNhEd<$xIhSSIBK$$nBi;cI?5D%le_x;0?fk9qLO(71~C?4HnN}0rBfa zR22ecm7zK*83)a1oJ1^;5bca43RxNlS-x`Xfwa+?GX^IS!w^7I!nboOXhru}un^1V z$0~lRvyO<=4t4XAeQ97}ww0=(TC?74D}W7AKy3reIjP0b`cQAm?@|=Ja>m+u&biOO>O`y3=(cELTzE6Hikk7t` zR|wp1`h$YndH$#0k4(AQa2XkSCUz(OS#bHV^qHpzk=7(jOgpmX;n#9Sy@N@Z90FaY-pC7#iA$sKE`Atk=pM^D)Q4*2Mb6PqwmD~b2MLczezNm z!=CydMa9?-soAQJAt0Cp`pZ`c0Yi2~1f=xF62KnYw&7WrE1t~vV@sJh-eUo$4t9|` zkPtAHO87=)YY=1n*Zwoo=#*}NX-Hi0H#szpnMHWTKB@(F-|K-8D9pXs0|(62v*-qz z&bSdvG>U#6)j}u<_l^}|>X>z34GxZKE%tc1{C6I$*3e%a&a5HHogP3EVj%5KJouEJ z2`8w}R&%3^MaC>lffr@qoelryW#3`n@%Wx;Y@yrG(>!c zI7LF`0E8Z1J^UGjrL^Zbg*uA7Z>(AD&6h`rl=S{DQN|UBMj(q3%C~}Af@F|2A#4t1 zk@UvCfwZ@HSrB|qvCRFKy-?%UQa=%|yaN_P5U=q<7fRrb;brneLU&|swBq5DwLFYx z{kBJI)XeoC8ihK@*5B<(zUb8;TOE5FYP}itsV5I7U1oOJdh#hX(?dP5hoo<@_p%wh z{jA;^2DzmKtPNj52i(pWY*ets_Mp6bdWvw1xZhngS$BgsyTG%;M%c+rw^T;o*bP zXRA&MiA0TqU;`x8g;jJiB_v4DBtoDBNhx6^GWPgUD0Omm#2<>jh;@R(c9xwj{C4ae zi{`r0l}ONzrIdWbWhQb%mD*(3J6LuvN7SQp#q{+@7t%p59o`jE-<9oOv9kTMsCJt? zjs)*SF&K*lx(z-eTXVhDox$i}G21=3Go%eng#xWpHyM%61`^pW8d9AKtzX_Te5_C5 z3nK^mEL!0+yqCQR`A8S?Ds^Wy@v13spLmg-hjQLQ&=NnOcMEC_s0P06Tl++z5)y5} zoj2=gd8%J<*-Bds-#vNy&oyiJ~GZtG$XF<>JjKd=0nE_XG>Ddr@rqiETx(K^Zu`Jc@U| zaIbE7bjxJxF1C=+W$T9?&)s*^Q~n$xv9tX5BwNZ!`=0i;D_zNK!IOm1=j;rOnLxL~ zv;!^WvxS`DD0u!T{t->p98ccz1Or{sKn}0n$*I(P*btKElxtx5u>rSW0B{lhBhNPS zCZk^1jU5>h%jJf_E))}KHKux4JmPZmS9O(}oe=vI^(ttx%E+JrvaB845Dv6 z6rlK+=qvi=gm{FV_v?tiOE}`ZWrw3~nl^b7@7bZhv4tyMzO()f)=KDaezW4z)Z&9b zM=#*{2fTL&|1!K83cZQ5d;m33$+bS{OJ?SPUQz8KjU*Lxg4&$g#U9rHMIXe zpThp&2!_f3!C@ujsoI4nhXAbPkH)P5+qXQ7 zGU7;oDo|3OQCZBi3lxfRDFf!ajLv~I^z8m#D|kGOw^PhA-B<;bzO~S7z{ga)J<4g$ z#&Y9*jb3MS1TZtUq;R2`j!MoTw@&OqeFV=r2^&;wnIwXdK1rsN!a+EH3M{nD=mv(<^j^^!PsoxIfv-Fb4EaZVw&Txf;c@(0DsQs|2lD3885+=u{y#XBF zT?nxubB3Uhe(h}c;h@5!d7a!ljRF>=GSDT3%wG+F((TxJ)7TZaKDmnzr-0T3@q(zH zU9>e^Wo1aNROF$R3bJ3u>g=xJ7}{qm*kWQm=xm4c)}k4Ny%>zEZ!@DR8y;F%L==J@ z;lou04vEs=7>Wg;lq{6MWLmVxSu6AKOOWp1zM&nh1Y90xhd6?gA9?t4yy^1>021Bf zW$J65BqbyLoMiF`+4oU5Io>k+vmtC?D|Uk?sfE&oX1gEjCDv-|cMAJHQLa|R=GXAi zpjXQ16d(%^Wdrhvs9BgL&E?&Bf!Z^dt(eHBcg3OT$*5u2V zF7C;xrdzp)|0!LDJA-i-vFiX1YBUa&+?c}gIVTA-Pprp>#tg#-%nMd!k$u>2KKS;_;ncA` z`WVZkQs$lTeyHjH_&u#D!(Usty)~am|NMK7jOc9r3mH#!w00`RU%RFP0@dPHm4yyo zO;>v3FMOY^3@XRMY+%4V`LpJ{Xz|~fRC)`04*c?wdj_6em)G~PvE8n9Lbvqza1oq> zI(@t?=5x|<_VQNr0BQizsC7i?IlV`P9malH64g9X@?ipf8R$Z%4h=Y9+C{wMQeQxTb_$B;Zg~p0Z8y0KK#AM#g4ELZ z^>;yAm66st*SQ^>i?kU%#`Y7mn%B=o3YqE>u(M0&95;97I^14Zm z=kv6Q)Z-|~aB@|9_aeOZoSYax8gk85&GB8gFV9D`crXwTE6fb&aCsK zk9$`=9a`;+?djil0*=}G-=0dRGIcjH7YSL@+~e5C;6zJLoSi%}5SyI7JJyXDw$i0X zu>}#*=vYPOXK#pfmvR}MU$_vvh8kAxn!Vkt^ylh3ot~d~8XMnsRqi2+gy`~b*8<|1GVdOs{TJ%LDjZiKRl!t5C#UC0)Y&7O&%3#Ii zO%F{AE&k`w;&J%gVJR=|b<{x@91!gEjx{8ifwzOV3A8IQX%7gv#+~D+o>SB_8^cig z+A@pzV7LhI0y_s&m?UI`=&X>dj{5!RwqMyysk?5=rOa?ZUjKJ5e-!TH6aTvT8~a+i zGHiG=r6J>62_6397dF0=6-r%uE3{-BsMQQ`?xU^HvcXl3Wv=s;fx7ME;Hy#{oec6oEyf*7Z+X`_VZqf?Kt z8No;5d0~wx9(2r1l;S~-vTU#uc|EASKH1`aA2)41Ek~7^$4)hSaydmdOnLIR@g+aZ+29;iy^FwK(03?3Do+NtEm zZ2QJHR^I-9&slHV)_6B7u;tPcI{yC@h{Xx%erDsn4Vu6*$-^24(nh}WITY$6Q;FQG zWr^|;m`VpSg3pZlC&30VlrER>@0}M^IwtBCCxB&Yp8%iQCxD4+pMVm-P6J0Bv_VT0 zu)ph1gjmmo5VUH=*e&f8tZ&#S^R&GznP_bq4mpshXo?+VKdALXAuX>W)cW)~H7LxknfJLgb82{~Fu;oXjN%J;Tef!b!oL{0`+W(1 z*oF5E*tIz=xL_X6H!mBpZfkdaW+3F(6>Z;@Ny_uf~(7w?BxBl{v= zB*>Uk9S@z%z-_kgbkiVIR5(T3PT38V+s3F?sxyFs zEb*T3Er%g0W~kR5tz^k;Ig0xERII0-N1ggFJkQGX{}VmofPmO5_!Gdqw2uMupgwbm zFxUeb0~jP-FO}~{y#_8qP;wmp4B4i@Nk5%q#ZoNKE(Gz5`Ii? zc@QD}4t9xWsv-mZ74~oJDgG(RFI7HY_x@v_fF*&qu{$X~_~;F`w2_>jAr}Bs zOX)I1wtBf#!#1CI{n#nkIffUHds(fa1o)>Cw%^NUCg8^`ENj@7U%HH|lyMcGl=&D! z1LrDFV|nQ!^e2lKcyX31L-|{N+^4Hr*m;7d#dAt)d%!@N) z+XwbmU{nby)9S(lz&wIjJ8?=d+Zk9#AKxAB%MlP6BsWI>YkpS z`_|0p?wOHhbd0W%G$YxPtXr~W`IK$Rr({XCeZ`PuU@@+@0AA` zA<-;ob?v0pMU=}+@1cx5@&A1nMZD{>yC~PO4Esm%X()CIg&M72p^+jdG$PV=Jv(Qy2IGBSU?ye091Oei!NNwiftT~7f{|7GDCgZ1<0lj75PZfv)`6%71@ zC3kU}Xcztk(7k>P-q*&{VVU>>XqD7)=&|h7kGY%_Owa_=WOCjr0ArHJuM*ujF91Yn zUwwG3iNf?;>3jevS`E9~a44#j`OnOMU2q}*94{cqdvMl|6Sy#)al7C|Sqm9aJ8PV% z2nre{CV?je>SeYb)&o$^No>9Rp8sy@KK9=fgYQWLoVVxtk=(-mdet50FhWQ}m5q#A z4+~ez*~W%)I+(Hc3Smrj35FJTm@a7|pdn2QLx~i-_(mEdIhTuSn)$BH4;zRr$wtI@ zXjawwtwnYDIh+4l_V==~zh5rCXDT2g70fLtm-r zt9JoAI7Rj}L?A$)-Ny7384`Xd!Ow>nYK&qJj)T7FE?VGW?MA!V0mrWK3B>F%K_%}p z`Fg(6JrYa;DhDkw=^E-gYP>vL% zWASuE)64`^*VijGCNXX*GbxVDD(vQzZ7pLBWo4OX-e&Uo6v=2Q{PMpRK+UN5aFpcS zBaA)5L~pYMwQaLk{L5$R>+vsh?$csbferE;LiyPWs>Dxcss4wc`f6a(y_o7Dvc5iA za)?ttA(yXJ7Rdgog_y`%i2qAO@#klYP#EdC@1Kv)D7M1b_?PE@6GTve;0z&(ZD%~~ zr}?=QkmQ8GFcEK*5Q4QMZQX`+MR_AvP|$h52=}Z=363+`acitcIk_zJ%bzbNZJ(>X z@Ys#VaB?0~S#d#`W7&q-%~N}VNxQ=!y*8KA+7^t0YnJ_4`W-AT5u{M|diq1}c=VGF zFE;2&(QO!AYc|{+TIuyDhRjP$@&wDaLc>Tq`UEq@8}0|pwMOC{TnEkBeIS57)YPnC z{WJ&C@xnSMfs+l5D8gtqt{?!%*rKH}NW-{Fwkm6u`h3$-aK_wJO-FHFs8(@#aVS=# zp*VqU4($XIZ{|l{9_HI&HF$OzJ&{I>7?dp?BXZFhCv!}vYV7V+2p{PX#eg9R z#gb_RMjheW6^Qq5Tu~c_Y2XNg0YF%wAeI0ybD2gS91&Pi6MDe) zUIrfM%PDRg1E_qGDIF*l1A^RL*C|>UiTu5!=R92-yO(yGn~& zcPHU9oj-8E#0C?c`9*4Ja(8QSDKtpP;jD7NQ(@yq+MqR93KL~J#!?mecQ*Jo)U67a zq{eoX)e&X{;Vcm;uGi-|Sn`ul2Xu*)hncZ^ zk0Lq*XI8S6m1UY#&Y6&oQ(bTZX;Nn-{9g&@MsbL!t*RI?YHS@?pd0M2yfAw*wvALB(2WfUe{jC82sPv;c8q)?t^97V7= zzM^45vY|XyT4MAB8ie%VNIR_JpIS{Z~s1CQaCNIQw9y;Llcd55i^JVNf zX1WgHPwfr}r7(7{&bPt{lC(Z#8kvJmfpr4s$;yrBhTRO>dm!H93HDy(jGXHXKXCtQO|Z zt?+wtgWh0SSca%(hwV;*QS#u_X-N*31?iE$A|IjfELQQOhzn`;mGrk4!vDk;C<)lj zN~EAI_0+d3jK+#@Kb2}Lh$v=zz~c_u%%WV_-d{qLmYT2Uz11V!1d9nrTtO3WIIw-S z0fyJ;FTz^_t%qQWDCaor#Hbv+sE51*R%q=^FqSZx5Z2yo&ck6dn#%+t+F$VI1s(5P z^d1i=NAI=QX7Rna#`Eu;uPXZr>1(gOdiwC>M5Lks{Q#p09%i_K2RXt96ps7hd<&uy zY)it}dx-FL3Vv%t2F5SgcR@$+r6C4Qk*N9hyR|Y95D6k9y7j`2%nrDVIuRRQ=-xBy ztk^uV#5Qotg|6lM7CRbj~f&la$oAU zcyCQjL8{daYj@G^_gX(owwUv^_LpAXO6oM$Ue6*$_d;o`{#}FX^N7h&n z#KBsriV8ycD)yR3AGO=r?x6UD2|K$^h&WcbhxyAz94=`!d&?M9>~s|InnqB-p}m}P5yTUCcuNdz1@ zUa!;a_u8zn6*g;8qs8E^FDp>JRaT>Fa^uWr{ z?VRb@;u0z*K2K;`EaUhAzly%jaCP3<~)>igef{R7z zq>Cub4BIEc370zygB#G?SXLFz3-s|J!wT@Gt; z9k7Nqzmhu|FRN&3$j=ED_$roQlf}2O-V6#^iG!TQ2}qAMs@Hkjbu$g6173^Ahr`{l zNp7$8`FdLHAgHdmlA}h-l8V))jP$r4GFWp%qO(0WU=HQyxpMOJ`&`&B$j_}(DqzIm z#_%;12aC!JE#?~4<#n2J!jYicVd@FF8!8br8m?~hzh!p<=gq<(aNgGvl7aIQE-Dd? z(nc;_L7X5|poa_Pgte@!ZiJngj(a@gq;1reGdVuOD3sJACYO6d>u`?9ib4o;VYHNo zSRguBiz7kB8pw}@|77yP<4%-wa-!AdaIVDxTZ~|FaopqdDf{x}Jzk4z^{p^2EG)K} zOqQ5Reojk99z23|S(Pa_&+*7p<{Z%(_d5Kgp_o!E7I<9D+}Zo7UITOGns2@x!FWWW zYragp3bE2wW5s4Vvvpln2rb31)lN^KuIJPO646$w)Id%zXf(wTLrb(VN3BDXH9kOuWQe)xv7L&nd z6wQIWoFZlP_J;aG|H#Iw`rN`Y*w_a%^X`B}&I!q^OEh@R;(;7nPGNa$WSLr8tvDxF zmEo*~0$U1d%q9CxZ0D*y?$V~spR$Q2yUie#7f!~aA5Z0&B8T^Gu5_ELVoT?Rf_%~1 zqS|fJu%%@w?X3xA&;@=ITC{fv9|C6He@}M=m`TyJ$r(5|GUTcVjnU9T4gIPSfrq$| zQ3+sQl%hif@Pvkqf8hWbDuvedG3W+?4lW7BqKc81g=e57zTW~|(;)#s-XgU}fU69Q zUVi}RUV{V^(HOKm+_-PLpcn=Z9;*{JBBD|nHjDMam8GFTc=`2`7rUV1ouYgP_A5oz zq(&rT5Q@5u&?Y8Te<3DH=>Rjk>%wJ~%bf6!wwl~NDE{oC1QSm9(uG!;WYH)E;zcED zegO=GZ*_}n*GA&GFm!XM2!OgQQt_u66@fu470ysF5HaOf#0pLBzKAC`w=BE_CMqoR z8f-1(<(RU+0)?VnR-%L=PDJB^M=$d`Q^m5|C{8BolqDOY+Zw{Da#0j5W`oISF!&I| z--)#+q7(*d*2cb?Rx51%^`SthsH(`6cQ0Gkx}uWVa_z0j+*SvSx`T8&6=|L-v6i?N zv&^O-%`zGhYF(D1Anf>PT#ZCj7Qo;T4aDsq;)6FDNx{`xA2cfw?^iXFr*%` z>d4;A4iUZRmEj^q@dk~yS}SwasyNKg>NFclObqro#mt;*^x}phN@bWPB!}#^K;`C? z5p0%Oq2^&Y{|^E6opv}Mn+zq=;oI_LR>+LS#h!RbPE|O`ZlYAQc|9IiBp&ezRJ7yl4H8sS^RG#1HZLHk&uJ)KYAXe@ z)ZsYcvoFykMt=$zZIktRSqVvL=bS;>tr~M|3Od&_+2@ozeUmuG7i(!mTr(C;N#Z$X z44S0X$NZ8Nl8R;dbb(Q}8w#eEOEv^b7p;>2n)Mt8_xv*U0{XWBFjTn#gBP0P1|0R5 zBrQDt(YV7X^yko!@q>Z;5&O=^d3cPQfYaE^#}1tgu3NDxSYu@r??`m-AHWTGT3L+d znGOY3;7awX1bfhH;0}QzvnJFfeJ-3lq=>7Ic(FLbtS=jUk~(IY3xobF$>NcCZclmMpoMOu{ z7Vn>vewU{-4q&!0Fsp3#<#bI2V7C*P>dNt2;1=n>VGU|`&$n^>q)>Z}7qyo{KEhf6 z;y_G9{leJ?X5OKVe$afJB3 zHehLW?ZyQpd5^3T!Rsxqy6yQ<_)jcC61*}G;jl5sT$m$j5j}MR)(Al>e(*#`Gv{h3Q z)EwbMEfy7fQGHX7Gt}BV2p}OiG= zXqB!_dc=4LYK;rfx?n+JMw}Cpg#fo0s~Om1cO>pzJp?lZmcl6@9N(fzwzjo~oIOnh z4sYtKZYoc*lq^Czdk1U?8LXyCKoMtQ znW<9*I5{yR&INoplwP1g!+&B00P`~50g$mcM~`y&6(esOsHl)SwFw+u8ger;I&!J; z5v!C3`bS)0(L(*Ph<_2UE#Y$!2M+}LX81jqs)-RdHZ&V;Cb-m!zq%s-FM!jq3)$Gm zZARJGI&kH=V4&3}8;x@GY?U0F^{+8 zIhR)C>3q>>!pTT$?}Pf%XmH=WMuO0OUZ%qNBPbVw9mZ@@vw$WUflAFv zRw^Sy{1&E13lbo-t8iRY8!Eyf@h5Uq@bcp>Z+0JbO zveHKYA`vE75=+1q#M3^M)N(Z>K}k9H0l2w2>es=s=~b(2zjLJx!DL{1l&3_e+w4>- zmu?*VR1(OlnslSHYd$7Z5W*nKNaKq2juzQyBOCMwwkT?R3ifq(9n%OOm>pSKKp<%Nc24qXO^^DhBD zJ9^)EI-ew7vaP&8^1%2dG9Wt891V#IK(cZO1VLSh<%&ci@CPjQ5!q)|3@h%gsD|s0 zW!DF)feDWsskgvo&XIXC^Q5J0&|pk8Sj2naz$ZNbAJt?J$-m}%dvk2i7|2rI&0E3G z%#y7q2`z{f&WS}aNetpx0cc~0o{AB#tqbxoL5wruYAXYDmb06$*($$Z=H7T;k@wi@K-T3hBx zPEi_;5nTN=cDEPxe^y8aU|d87z2X`IszJ7~nDz^)sMrn14&$1K)B?8~Xhl2=AE9;b z0}hvXXBMe*M_dkZoO%I@Ny+lT9)}{k!!2m>6zoMoh>Qq{Jc!PH6LM<0j;_`q{P$1^mjv^J($ zID%y^VVlG>`pB`6ksMz@*VHb^WDPdSZ78T#UVBwCR2Rr#Sq4M*@sQ7I^@Z+egD;Qb zm+|=3*Dic)vG_tK+l}nk=DDv&S}m4FXf9Iba3fNpO@w=9R}(Cq4Th#J8_tdsjpldv zdW{B`!RTFi4}~1E7;Kl%aj*TGrbvm=h)ry4YU2vL6lY!$yC9$U3d6w5y5&&=;iXNY z4x`4>JcEWR?f{yJrfXUn!VEfB{}35c+xd8cMAgV~641wt8;|Hl%FV*0^pH$S(eZVN zcO$#oIv88l?#7{bw$@Z`F=Ft$5OpN4u(^dEdwS{>rM|~Qk6W6zT@$R5#Nv?2q+i89 zNibn|ue&v*h<2EEDtXCwXMXtZh62Rr^4M{>W_3=uwbkQkZ7s~J3F>)@s$_9kt}4>= z1Zy^S&Hp0`(?gS(@S+*Pf+0X4DJY5yCOB$PFR%iAA3SITN5qBm-)z2JB@i z$Ycy)1)<5ZB;9Juh*a_$-duxod3~;83mMms`x`c|-Pzci?+5z|40LyT14X`0x8z%$ zUl48gmY05WEo9p|pT+0*OxTQrHD0fWoy+l9?8)UgDcgC+?xpL_tQ#mTS0m`a0v!L2 z=z3shZax!pFZmB+E5Z8R@4;&M*31d~e{JSE@m+9eQs(xM7XX~%i}`=puZqn-&Yl4^ zHwb+=*}!sk)AFvST(U?Ca183Mz92@zRsaa41fi1$aMENd5}`FJ_v+{)F$*K#i~L$h z_9XVSc-YsN;*)Msu%}@v@I{OADiZCLD%5^Bi^oEDZMp8UsJAHDQxdirWGM1KU19Si zN`nq&$X)M^Ti==oV~YZu{^P~bBtxsLiYXj3<;OQZc+dL2P`O96g)J5fziZ2jZF=az zjg>`pFh;k#qKL-ybIB{!hTnELr%k!7o)xt}5SjZzUUA`;aiuM%_CzBb330v>D5`q? zIoOCk%Kg+#XRwE(?VCWJTA*GT)a&=ud#Yver*h^oNv;ObJ|^CgF^PX=e-rYJj(7ZY{|6{RFEZ}y5F|rE;Vxaof!wV3Xz&{B7Bw5k&$`2Cd0s$cz z>|^M|N0{0W9CzCH9LgKm>p?sqr!&)S^z2)ne`t^0Id&kp^$w5xw`(56(Iq%w6jgi2 zdV+Su-oc@6!R`r{k(sS_#o)Yg6KR>&1D;;ML(;M)H#TVDNwSkB-``DhNuXT zKFm-OJFKqcI)Dkf1eoiRE-0d*iRO`whJ+WzCzu1r@EK2oW9zaa5H#cvd*H(N6huN2 zgGs8~EPkK83foZQX)ri_j3B35M<|d>h}0WFgGIan`1_F_PeL}Duyv66H-JnbC4Rum z&Abet?z_5FMnwL1y^978kJ*qt^UsO86q?WZh@oYsAKH3wxdFw-wo0-cE62=3vhp_^ z`6oS%Imo8S=XxyIDIj>!e~8)SKpA{Y>nrUycT6A?+Jy)^&AtbFLachZeI&6x?r;HS zmXjT>G%qg-DFf99t$UF**$8suYl8;xXMM19zW5(@91Jbmy>_`JKi_DyV;lY^WA$dU z#|eY58N1hk7)%R~SZPmTXLV3}$ck=tc|mtBoBORsL#5Xz1@kOotLTrL9nKt49J#O=e_yPzD%#muR$Ein`Pa2qwKT0+oos1os>{o(UA?9j|F1#xXj+S9>%m%# zsO6$ME+}(RIrMJ-e3P_6Qek0lJe}*oyL^8~n{g5WZ^Gl@95V-u4Fo6cz{ySG%`o3l z=}*=Lx5aYN=-_6e58ENILWW)M$?Jxp>KR!X4h&kD8h z2Q!^nRv#v8fNSWp7hN@@Y|u8C1wOzC{6dJ%@zDrAn#yj=@taYan4YsL8Ws4 zQd7iWa(OK4+lmb4M0GqjKSz}EJbj&!8c9?(-WU$mEi3I_nq%77LK$EI3Uk=%r9U3I zeZm{HE$^3OqUac}Hu(D6VK-54Y{=`ACEGil!Rfx`2SnExJ=p+5Psc*1**(mE^Yki*IDUFxjzUuNoaGE4PfY0Wc~;zb*r5$4UA6K#+Dmk z6(O@V53b03lk;&Z|9spt<7piAQG4YWXQFTmxXvMP9T#jiOlJx`CX(zm+`}XWbQ6n4 zxe6aMzTfXMat;xTx{k~6#1lnQGQkw>Unvp~uK35fruaN);#?Bu{!F|cO8Q@#cxoW;zr1b;CH%z0faD*hsYHx1W5v`0ssvj4{Jl@MFYF}X3--XaVGHZ zeh0q}#45d6T#Yk9Gr!0@YxH1si|BcCzXh|wL|D#X%XncO*dnKv0nb>XcoF=N2+Sv9 zYXO5p6jKZV)h;L;$27`RXEy>cqwu-kig1HK;hAR*ONuxl7^Y#=F~ zzSONW4z)FLgGlQnjaD(U4`cp7kcHytTl&}C63U0SC}wHVQe3=u$y@uvMwa9FPI29> z4w1!5DiSUA<>kh2ecfsAVZNT4P&l@tv|9e=*A_uQduY(7@YQ6FkEAgA0*5sAqm3F9 zqHg3v12R}rT#X5rASk_|ch#+7>P>ib)Im3Ni2SqAC7IFJnTSQn8joahCg-dRUg@L z+{vm63l~2!n=8Zbnfv4BSiaPvjl<*Mq=#^3ls*nqe4UCO1662iSi%xG3vQ5T3lJkZ z8`b--2PfaJT57R+ZFxzxC>gAX#l!g#v+OXK8WEb-RN${(sohN};_;AGS+Ua$#Z^&W zevKnH*V|KKbB8>>#A-~Vt}eP&HCW7X`Is<^n0uvwjQibqNq415*P5E0uc5U?4PjIh zzfuLA%MF&wa&yPYIU~)E@#R5x&EQ~po_%cv>_Kdf-Mv9~^{Rmi{RW?D zOMsE@!mFkMoFGvJH+$%G(e?{kt}Td2c|y^=IcZ~(A$KJPNszz{Ma3ryIvagnOSm}N z(;hA^GNdX>5!uHv)NKiu7y29cz2qvx+}mB^buNn9#lEYyZ*wEmXk(qjRu-)*3iXeh z?Jipxe)cCbw_zjOZZjz~UkHA9fefPGS`jJTa<;#HX(JA&p;caXk@sf%PtgIEL(v>0 zizE*G|EO1UNn~_nzLfcr%LPUU1siY8_?zqOYoNihLEk2y#wn-JwHc_1n#_ZqcmWZP zcAzJg)^fkJY)@!2Ifl*oo&cE=*%IaQ4&lR_oyW(84>XfZa0P8{%oc=BYpc)C50w`8 zMjTaTiZ>CfL#!r;!Q5QwbBi`ZWkS3mUT(zwYUAA9m%d+Mux)C;s0j8#aWjtha9FEz zEV*WuTij4sWb?<{?IspvgLJ1bnYrq9w+dC4t7*mJw>V~8z|5~OHadWr+87jD=y_fK z@oQ|2#)^ZVbvIybZLf?JQfMW`b!HWRE*Fmv}82Li?YFt@^1 zXy%80e{nxT*4ub4&rakr+xtPoO#*n2_#o^;1BiWMIjiR7*x}K_=I>p>L^7|MT(rnO*9{C1C}2K z;$cdpv;^}Kh!-oRMeO4vCYzFZ;qQk}Fx4PozI{G33*2J!H7*VrDk;ybzUtVG8FDj zEWvJ&ba+pV(Z-=qA^PQ` zfPVKdXnkR{@eOpSWwR?rvJp?!j+_V|~wwx;duL@0Bad@XgbYm=v znU_!8W-;Of2-f-bHn<-CfTTwvqUEAa;1&=ryf_ygaZ0qfR{iZl=s zNfDgFYKXmS^sj!|<|oVPfZ2)@s0|KP{mOj&yn zTcnnisZgP>DeI^k!CbG8go))U3y}hA2sVWsAsxm}U?|?v2-anZJ^sg@Jv< z<@$(dKy(M5c;f}&UIg0B=~!#_o7b*2*ldQiJh@J%mTv(6Bx{(?08pr&@6 zE?t;wp(pg>h^9rmBHFgDJ9NIHc89o1F<}?vaR@W@bKi70#Z6i@TPS+-+>b00mLsrO zm_yiXO_achY=wBf4LS=CMkEY8!6S?ck0Fm11+e>qbZ8R(19VWUh@A{dW@-^Z#sy>B z0+=8xb6>*`vFM_*xTdB)nvF&ua>FJJ#mR$+l}};mA!|YxZq3XaY*dilIrmE(jqRNK z8W4mKMbHaA28pr{@}vq)S_0Nu&URa}p|YZ^G&g8xG9jH-2SgL}(S&~zdStg|iHtyo zBpOHDA?6O{&{jh|YYe&h8u&fC-+t%hsOVhXvZ^+*w!gY;2RvQN{UkZ3} z41l_Ddd$|Ft>W^zv(|feDS7$Iu6r*D@%03#?7d^sRBJNryBka$KrY641YX&Vur>qE zmnQ3~%1Vl1baDlp>!Gm%nAV~)O(zhYVvN@DMr@@i35vdedG=C}v)>NvF9>X?`{L-B zWXT-t?~ga`7-d^bqn!);G)Ux-X86isrI4hp$>)**H3yc|M!^ za<_C-N5@Tlv_e>*r7~y&EN83B!)VSGaIZCoPm7Qh&?bq;AV*t3MVD{H&fDv}hV9ee zkt}D9J=(whs_(Fpp34F5d*7jv6-C>ozb%^QUj6v7Lu-*_`IQ$yTZc8Fx!C8ZAkLmr;NC2S za=@8LNBsjtIa=6>T2ulp4A}#`fFD8UK^tcO#$lL10krXUsrO4rD+C_z)|w&y0BcCp zUcsADslvU}Zx$y|`P}>Hedw^IO6a6Rz`;d2Y(8bkA^11uBpT{x>2o9qwlMXsX^@Etu+XhXfm$;p_3 zvvc?dMZ$2WjM1)$5{AH>m6stc*MGkV_AbzA6n#Nv=4Bq+2yDGXF;v>yTN;ApsZGr3 zDXZHoGHBrQ#4kZ}p?sOCHo4erta{wWLb2Z7SO}zDaZ66H3i^G-1e1ik`M*n3?5~Jr z8OL6+wlTVdBQf;+j=|fP$)HDw0dXuKHw&)FEa* zhL~dIiVZQs|MBaE>~r5E&k01|z=>N(n7;R5aq+)C3@2!GSbYXzci=#tVE24g{0b|B zP`qQt%?@6RCRy1m;taEEw|YI(qfB(Z^0mxi_7y<8YX0AauS&N7>p7SmEoTdZ9yk#K zTFCcV?87wW63J|z=-#yYrAY4~_INh&v4uV(pWn|LdUzj`&#&cdQLguOwf)Z>d9zgU zI!9i#@3=5wxL#^N;9@`aa4ctwbG;5-n*>Db7_@N1fe7F@pETI^?>m_hLC38MSoEL+w9*m0F>BZ4e$!?bp9Jfq;~DX*};b*z(@Oc^2Q-BezDHTT*}r9~$K-ls*v^CaVKJ zOJ)D@hiZ?_OtoXj#Rj{y>SZ^4Ec2&Z;g&5Mu7i%o-kBOV%I&SAINIJO!7#SHa^2G+ zofrzpQ^KvN?>h9j@iZd1lBOPYD8#X{;vK5uyBAbFSB*;ddTh+l9N2YNeS1gZ?p=Xq zk}hqQwtaiwcGKQ{ZR|Q|kwj~&Z)2gwQn-;q8Y7Ulb8U5HW%XLBbKb@##h19fijVIz zaRWEh=)-a5yn3V~;AYtW(pyibrE^R`GGIF;(=bkS!Ji>iJ&2>^MP)Pj(E^u4?TYx4 zWVRbxW*m3N+KQNE=4N?WYGo9=ddwtCZPSi>Vy)Wk!I={7x7DP>Lw2cgvXxI^?SoU* zjquJQl+#h8gm7R1Ftmu#B;1nlyH#vhD)J0~`}b76Ynw^(4Oa!Rs?>fWRLk*C?W5l1ww4t-h@BQM75kTxx+mjn<|dkHXicz%o?k+7>Dw zGjhm>2}`PWJo#A(8b`w?&zfMf{<*omYy}zq56y<@$%+Vlev1;hLt(f=v(9cRE=h@-Fdh-+jPbUQ>Sb;T+i(ylG3{D!=QY zeS^?JobmfBzIV4je_+Lt4;R>E=lH&VJPKaK+iOjzq{kOOKOcl-`9V*JJjcZd-s(MI^8qLK6w zf6&q0(5r};imirDgH;YBa!WfcPH)H)g`v{MfprO^Vu3dz1!_yI8;({f?3vxym4{7; z<2SI;V2Q6Ow|6fD^v$?HDYx$^A}Sjic&A^Y}~gUy}Y@MI%h@^gUx z8Ssvczj~2ksm-e;fMC2z0d4M7|$Dt zDB;>Z*!8yDLhsij`vb*cotF ztf}Y?moz6U%ghERPNK2I%3IBlot{}%E6HU|Mpn>tm(eR;bu6#9q`BG;g{H|;-CWX} zckC+BYh1M-C3ydFWl#ITl0*#xp%(>XgUM}MwkN8}%bJ5$M^jlD!h!-1+j%eMLnj6A zghH+n;X6FkDSUaZbs7;neF7v#Y1Yy7o2;X!ZAPnd?9&d%nd=aV`09sjcC)!Ke0kegC(!3D8&p zXzcgmkD&24o*oDhjTve10kgaVv@sF@6#ULY&uM@w0T}B5MxKk0Bg_Qkn*KWCWXlYF zHOcCFm)KJ63Dkulc49WQgiK-4wz}2mswiIPg)>@8wpb~4LAaqPSYGGP8LY4Ek{8kI zvRHMre8}bQ-Q`qJ20Wc@{*bM{BhTEn$;{kkyR5a=6*V#h2{;^w9lp`_hIqUwUXIg@ zE~H=HFaO0>LK+DmCcWuQDA%RYC;6@NZEj7}1}-G{vw9oIMi^eNIcV-mY$2AX>U$8_ z(Elx$9fw;m!>MF$EjZEuEbo7B%zVR`-PH=<4MN?GsFQdt=m4iiM2t?c!|sx0o4wgTC7NAW zSUT*D!QDn<>~TzE!NScY;`bmn|A#CG%;mwoCzDfvPanVn}8z6J7WU4U* z=<5TCdi;a|HMK`C6+aY6i3)rex)JmR=Mosm5S0y8NSK7lWg3A7=pb4QSuE$zr?c6x z48XP<1P7i|D+2kJ6^54$?U08=EYiBWjfi+Jy6f9j=Seu6itdJGid+`9Vf##e)l_b~&Fps!-%a+YA;Y4zU&05$j&TwTO`S-sw{O_5tpA=H{7fNu8geNw6ULqpt%(o!BadGJnSwZLsm()lk%Svz2Hk=rAY_Ze?yg^nI zUV-dbi}rzcg1Q?Q31JrrkH92|XR*lE*rW?&I1HAHj*4g+ackn5YnvkeOc%dOn+hb? zVNG&0;B=|hBRRLHOP2 zU&_t^j{X-79^GY6_fBXEK@#u%uC5+nUVdsxM zH}XOAz6n3b3!T(1g`U4&5i;eC5O-yV$v4Jn)BHhkDcMmn(+@4Ge27Jw0lffFTJs!9roBXPdh$7 zUNTk#_9S5cpLwjs!V%buKAX7du?C^}O2}riaYGz-q~1_~o1QUIVMm z`md1;{gPq~i=J2e_YTpYl>0lvjofvGp{00Nzz_rl|C!u&&p$q!z- zMN6;LG5<;r|2`uZUfATP7JBJ2{(4vJG(5E6`1Y)KL61a72~i1!-hYY7N}^?p8& zV|vfN<__u4X5c@gK0Ne&N$JcGx9@LNWhM*DG*9EkOUy=uy5 zM4;>EnaYZcR@r7WK>))+Cy;Qmd)8%`eN1O+Dsi|mt)6r~57NW@4NiXw?SMKm6Ci&TrOUssf8=)0w&|EDW;tQpO0Pz-gn2 zm=;C~eJ(PE5Okw0-6SIO;;~VuXtG|`C}Qr@I+*Mbw~jClEZO6-1TJG9k#T5%GU1N- za`8s2<6NL0uICEyF`kX609Tg}`eZwM3aSi~EmLbSJnMm{x3nFWAtw3UF+}o)89b)o zIL;T9;KgG)138Ff?K(Zq{e<>MYsNR159$#7P4M!Jr=c6u%0e-8A5WPo{1f);=ud>k zx<$AKshh3u;dcaRO|{P<;alv8SRuYF{n=1u*kO2=?3UNc_sEaRKa?}ZTaCX~?lv7a zor6!=ob^UqrR~r5e*0tg-#Vg>ZBDl<-}RV#zo*&rFW&t=lkdfxQ~o;t9|PYAZq4=O zrt>QEp2`1W!RHI_D^iP|DsES0^(Ubl!+~&1crtu4{ORy_B3~;xR%$K%ujrnbT2@{5 zYWeLIeU%lJ?~Q-C>H}4Oss2{YSnY6~v+l;ky2R7-(J?-zOy6Paev3>JN~^R(^=QKz4ISB zztvUIb#vD@y4~Ha-5=`yLr+i7T|F=LuIZia+t>G(3qSqd{_6f+{qOIeU%qWc!$8Nt z-2+oN%+H}^TXI@dP*o6>qJRzrSr2dAnjz2cY(*pA&&hx86Sn3d( za81!wvIrIY{&8VDI}RVESA}-mYvT6?1*`rJ<&WXJ9^VAM75Ek`O4ECl{65uzFUnX? z<DR^?AG(7g8vrgr4E+H5ddBt^s_l2w0p#{Z|7PYJ(rw!}!9RRS4rfA3VM28pgGN zB@kZvRn!p|a*;QWCFZ{_x{wEH;3k*fM?2{~+z+u6cyb`YGO6RwwT6IA@>_mIbj@=EDB(ghrj{}y`j zyO3bRJ!;D|zEs{b`0mAbEAp+zu7L|_>YwX4?mC2OUe6Q2`TK+lj;rtUejwaYztA;~ z{DSoB^E4tn0$QQ(dX6)JC=KPe<4d%26TXByf<0xpANRcQn-dV1wE%UXeD+~Mfjv$a z(q+^ac%Nv)jVrZ@uG!y(l-9pIZPj^gfIn|r3f8k2y;yyiVN4k~1NYncldeRr+FoOA#Owr&5vO&KP5aN zJSlud__6Su@FJrA*Rl0tO8hF~Z2naIg>=9457PUj2c-{5AC(@KKCT*7i|SKz)j~C- zM%9G+Y{&^0U~ecGDhM@(9tb@g`b6mI&=*6`g#IlI<{Os7rm!{a4d;c6!Ya1YOT(3z zr`y9_;hu1Rcrd&sJce0&U-($~=J0LdyTT8I9}0gg{FU(6!Y_ya5V1xgkyE9oOFvWk zbm_m8z8oEo9*X^E?B&?sV&^KBRivK>KIZ4qDix7ZKZKF|PeNL6&9l5Ue@1K8p*3F- zzb^h5Uh4NPYRyB^$5c@@t6nvz7O3haT5}It^YPH^|_m$+xMLNIr%wh z_K&l#%)U7L!t7^epPW5A`^4<0XFoan*zBXTpP2pF>?5-e&%S&1zS(!q-ZOjG?8(^^ zv)9gEJv%)+F}r+Htaq1lzQD`snEt7px#reFN=7eD{SnxC!y*@~a_{jBq6fuBC| z(+7VN{Ym&Ig+D3y(NBN0Pd(?>=n zF1N?)!`^8yH!r`Su&7uKg(D@U(O6k|MP(&o#*tltUWb>A-+qUl*eM3~fds2YvdG~(GI4(@>`}(e*{!9=) zi(lUpgcAo2fmMA~_z`~o!x;X%YWkjc-v6$9@1qd<+Fw?T&;I7u!!y?lZ@KQ+o*RUt z0tQ%IO$!@_dqz}s;7P%;b|7tBzj-*_ke@Ca8QrCx+%TLLOUFKAf@n5A9@&{63Z;dS zw9pmlejFI;8ttq~vv^t^-BpzqM1SL*hIPvxAb3Xx|W{TQqC`|8CC(r$uX7Ab{NGSm7ZBBm84X1 zG=CIlB;==A<;X}REvy-y92u!fOL4VFO&dzb0Fd0ZW;iWJI@88TC%_*`v(c)wAszu- z>clB|XQxU}w94s!JntD#OBEs9?@~{yCsFpPTDcU>T01xP!_!;Sp0L78cv9!2zSDKBZ{IpzAl~&>^0cq_Tf6^fAL>7SA zJ~~2KM!PwXrugHSce;8yD?$s%HpeeSzC|mARRV-Aw0KnQIT;zFj^LOQ@(G)1H6K7` zp-fAqk+E*A3hQNFPnX~=yu8q~#V^^2W+I)BTP;%0a40_#8mS0XrS0)kqS%w380)S| zJK|`7s-|sSE2v#aL^?;(cKWprzwG!`m3E>S7e|Q-42%Qpw4-ZOJvpkT9Y9)D+7%xd z8a`#1=pHFa+b1K}R;AtXfwjW}>$RKtA>8-!`=0nI!P&K8_>|L${u}E|J1dDuLAsr% zZ1kTU|D~B9Jt38@89qgn3uJYkME6p)6`=@T%ck?S=ky9_pPr7OC4GRuZxo$)L04U- z15e?6?g&ual@{7)zll?WH;(C9>=_zPJ0qQHPudEiw4mbAPIVO3pMlvQ> zl!>l|@l$5HmdDlVG}~5{uHcEQs?wD_F7WjR8iwmH|e(#^Y)W9|BczpvE<-b`hGWKgV!Q$BEvmu!rQol3AAw5S2?2f&wnWfX)x)>M^lj8_L*s?y0f z$_gSJNA?uDMDUlY)oLFNUZ8UM$&-DNJ}`@6uywFSjOZkT$`kcBfy?+YK=6-eNt?SW zCr?&KRJG+K%4$CUSgqE|NE=Wla;fQ28t?6Ehfj;Dq~@O%qf*{TC-FcNxGCyGjgelA zKJ?~=LkZ)aRcg#$>>8bjq@}L039uotYb+n>(GiT@i{BXoNMOv7-m#|q2x{m>yKv#P zpu9^|0zima8o&U6dl>`;)_xHrC~*ugmvSKRKV}-@a_8#;MJyp4K+sIfQ5^@77NBM+ zznwN=fU9b6q>n12-fH0}qXy_06^4eZ)fUW+1hIY-g`G#au@t|S>F}I9VpQ>g)48Uazx6zyDZ?`Yp=DD-4 zUXZ6Fo^GnlKDnUK&Um`H@+4@8h~*@Ped1 zF#b6B3=*r5V3b%Lf1L357xJX%M2D6yXMP-2MkP+|k+=|Ey5<)OqT%0r1^ z%0r0}%F~6!X39f}EtH26TPY7Ewo#s5B(_r?O6;IKlo+Kvlo+Etok;AYJd_xxJd~KA zJd~J>r~9!^iV-Hsnq@$}M#+6V48 z2k8gTdWfee>tUXvtXIX;tqWPF=?Bkxgr_L$3{O$kqw&+QTFeShot0_RWLhd&b8U9Y zsS*ST<6m0`L51A~&a8>whffK{&c}l|*@qIRDHy4i$}#ek()n4^9|&gLHFbVgXxGw` z(0!_eomdO$^2G2dX`=g7lzx5Ibd$gg?I*?|Vj&BiGD3yLtK0 zoEQ)$P520VnY1WKGw3Yesi#H3fzxue`#^_yT2C9GtNpW{mZ68r*VD#D_wC|@)TrNg z2o3TBdK&uJh4S50e%GPHZ<(Ijy=O)(8!uNAwYAMviQ2kawR`f&)b4}o`thmBgX5EN zb@{>ZYRko$>l!F?lRB_x?4a5)J~lCV;4K4VLzBZh2FIojuAAI_bpP0N@1cV;y@#fE zPpXOPT6KwfK0}qBXi~G=&F|8%q%W=y!Q!{(ib(2RXr>~xzP^mfUs<8u;iyBgGu?+2*I-)&W ze`wdtHDlA0DsJqb8lOCP1aBQZI59b`&g_{~*DqhGu0A|@P|Lhh%Me$yEv~DstJVtB z-&M!19-G=fwsZfa$^jWudpp*uV>3%EduC=1FR7_HGCn668itUYBe41hENU1t}RRk`Z6prw`2k~n?t@&~1 zAg+_xoKq3Lj?&d2?Kdj94(@5$lAG}60BRq@+p5rk62_q7oD>cKvH_%rkRFB#aS-V# zA0CA{Res=Tg`vnt`etrAz_Gi{D$1cJ4y? z*YMt^_q81RaV5Gti2PbzN0BDFnMNLhhw`omO|HasHRzo3E-rcH1tn0wT-?WXz%qRo zLv~@kqzb+o-ziRwJMll&dLAQVyv7bpC6sdp6lnouGx!`vx(1&kXa$YG!?wi_}{#Pd5ize-;4oqi9e>|CPOYsFkqL!NIUw1830=0S!c&e-w8_rH|8=g zqPyo{r#%3Vg4qZ3|o92ze zCNO~!#J1fcY!$W%+rbb;pY6 zoQ8(~tng{!jPQ2hOTwcpz=AB7<*|HL0B`OhR?JiuVqq3xC5Si^WieKU0Cp9ulEqmS zt7bK*nFWqqul zEoUo)_p<@E685O8gh$wFwuY@0?ib$0*0J?$h;3jS*(Ns3M%ZSyg>7Zq*mkyqjj}Pe zlZ~?pHpzCe-E0q=Vtd&>wx1nf2NBQjFuRIPvmtkWw)^t>~?mN-GMVy?qqkdyV*VLo$OwAAG@EuOF4RQs!cGTr(xFpW1z3OxbW4^VOk)(waR} z(wZYv^csYZgnq5puMPUOQNJejE3XduJB$aW4j!GE)NXfkXcBd`y{6^6rpNZp9Gy0g z?V6fO)+L&nt=CLWL8_RU9y@Zxv`&94kL{m4yvIB?J$>k!{gb<96rMVI*ut+|F47)O z9J=P9mfCq}Mt|Yx;faI1;<{!HuDWI&faWIsz6NJqhyJ`H`d4IG z!I`PC{iewShiBe$WOBx|dwOgFlHQCmxqtEiuBIbL$M?+a8Jpn+BQY0}*a)zdUwu_kOL15(&MWM5AT@q1{vCWBbPr zPMG!Np=sOHK@@sqa-80j0rH`P%8{u95Pzn%DjGBd!I#)Pe(2!t>7xWPkxrsPLt&z^ z);f9B(W$G^v5;G}XGsm+iDaktJEi|lb#g#ay*Z#?C^=H{1 z+B2=3rXKCutaVqSStH*>v);<)2Fv)=^f*Xt|Is6Q)}%wbb>Qg!nW@A3-=g2vQP->y zNTNe8sY5TRqrr}fAvI1+jgw5Rz15+=)zzR(9GW@b5nUR&CA#$IJvy8{z1n-d8oc$j z+VlEat=9Tl4KMYz8lLJC8Wi<kTNvU3Kq;=G5<#%-GSFK4swF%y|p595U>@TzhH0WY`0C{y!DoDo_9b literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Main-Regular.woff b/docs/smartchart/katex/fonts/KaTeX_Main-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..9f8228fc38b5d404b5573cad5b33f28dbfb47cf7 GIT binary patch literal 38112 zcmY&eV~{4WvK`yDjUC(m#F!7%}1h{Qq+Q-{h4Un1O&ok^ZsD|6m~2r-g28Yv}NgGXVkunF9g> zGjc=jfi-q>Ap!!56a1&4`v-0i6~q8D2Xk8>pa@nVAn<4)AlURZw9PwnL+5|7DQo{U zQ2zsxxs9jUza&I~fc*aPXAtV&0zej~hX2+N3izjC|1Z$nU9~O#kw8EpcmI5%e;|WK zheWZkb@BM8YyX$aKOI=WN&x4xjlJ

    $StPWZn#W37p_HT3wmZvfu^Vu?Ux-~#Oo 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 I0ssF14_>G65dZ)H literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Main-Regular.woff2 b/docs/smartchart/katex/fonts/KaTeX_Main-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e3f71eb7e9c0568f6144e45c59b3000ed3dda7d4 GIT binary patch literal 32464 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
  • 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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_SansSerif-Italic.ttf b/docs/smartchart/katex/fonts/KaTeX_SansSerif-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3dd767131a57981bb2e065f4a34010ff3f3ad45f GIT binary patch literal 30960 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 Z)y>TXO1na7HvshXLi7Lu00IC101r~0ithjb literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_SansSerif-Italic.woff2 b/docs/smartchart/katex/fonts/KaTeX_SansSerif-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ce19ae03d50fade531801d77634f35ed06f90681 GIT binary patch literal 15024 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 G0000sx++@$ literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_SansSerif-Regular.ttf b/docs/smartchart/katex/fonts/KaTeX_SansSerif-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f117cd619e99bf1d030446c40c725a1e79c57b71 GIT binary patch literal 29812 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�Tf&FIRG3nmxA^*I=U?gQ%JDE@ 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 X9Hqzl2L}4G*Z%BvfN;&>#diKLsZO8M literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_SansSerif-Regular.woff b/docs/smartchart/katex/fonts/KaTeX_SansSerif-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..6ed98780a7a46c0c459d2f455fff7ee01954d3f4 GIT binary patch literal 16228 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 q>OevHWC2A1t2IAAOLP6L5Pb;?Xo1> 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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Script-Regular.woff b/docs/smartchart/katex/fonts/KaTeX_Script-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..4a48e65f0de679fce0ca17c32f8b52bd3de33fca GIT binary patch literal 13428 zcmY*Z68{5go$tD}ywr$(y&F_Ejm)momQ(ZOHRXu&q zOx1LkyMnkl00i*eSX}@J|4{?l|I7c^|NonU3Ij6$KyC6ZRsM#7IPA|;V_QRqZ&~v< z?+5^ZXt~rn}Q^Wy(ONrcbJ*3jeIFBRc8|382Pz!lmV z+M0gP`6mDX+6DkX-0>Xd=Q-FryL`_N?OX3#4hWl>Ck}9MGW{OQ_}}yTd?N}WYIoRU zwZjM807ql?E7Q|{OB=#+z(gv=L^DOGmed)o#u&~xo82-iDY5mUf$GjMHa)$1$en7cEJjq0GY5{zdH4J#?J6J`eF0Kcu=s#5eaH&;?ut#PD|x1+61tW|I)7EuCQq2S zcs)jV5IzHyz6GAAcDHRdbfdbLHVLcd@R9cYMsknUFi#gfIZnk7NH$I$blhPz`b*_| z#4j)rB@kQ9l+N1(j4aJ2W%Ir;=3uhu3S!&F1530T!^L9z|{Oh9J-Sawh990 zCuJXQjE$~ngHyuSqWwp1&|k`)^bCB-Azkf!!k|y*u|Mlb zq^=M8bFq8&afk^=BMf_)nekKW1g>di=G~1cJ=eNGwHEYd>Z-rKa$GLuo=It~MVX6@ zuqj}TQ?*SIu~56H+WpsHh7c>nF_JKejS<4Ce@nGRmkd!s@`{+V=H!ISI>cG!Hc4x3 z#?JmVR9n(5av%Zm6u10}h=*ll9M(|obJIdLy(2#Rw?taVcIF>YppZ6zzGo6~_p|Sr zL;kpxY{b^LE1kerztuNud7ozyLBC7$u7_XM{x2d^{?9U39&2YgzRx{8_FXlum&GbW z9E*>aIk^=IzkdVYQ>6K!2;dx=fY?*#Yl}Lzs@&Z(uL2f^rJ-OsnvgtG>tK->;vO>E zOW;=pfslL+BlKY=9nS5D6!>ZNHGihH7Q;&Mt?C6yGA$X-|5;=|E;d1d@>#Y>m%0{A ztZS=PFN(a_u=lap5*3{4j)HN)j%uA$<+6~ep+C{#h^IJ4I?2qzI6aplBjjg9#M;@J zjI|it1xS<0rHreH)peRLm)? z6wGgxV(@Bm^GZb0nagBFHo3uv3`=XhqU}XikS1B&X)HbPIHCIYupC}s)ll|&zP8yN zdon7mFVhllzmTIfN$`#V`Cu7xY+(zx+iSY9`<054JE?O=Ja1M~wm4T!eLNeo=^Au~ zv&zZ-U&zo)b}+Cqq6)7=Ebw74LhwlMD5wy^NWG7y`Y8Y0b%{;Dg1tg;e_picohXSQ z>oPe?p=`mLD3Pej@FIf#0O@37MES1SlwqVCaR?o+wX!}QYSVd`$7mJNR0XnS3^^+GiSOA%n;n%JMgn(Qh6f6EuseECDU{{-q4vcLErZsus6*6SxZ^5bzvg9_pQ1h-dN#kgTY}{tt1-!btsg9;sf;JB!@GK)c zs}l{9T2Atl>nH#~NMv|LNP@4%7dT&JmyjJ%Y#c{#TSh#Oof_4(dC#R8dADx*s1GV0YsE{`k71&S>#dJPF;a10g`c41!Y-qSqy6!Og1~;IKOKi$ zCiulDpErx$vjB*fy}3i+)xD*DhR4mf!h;E;{`%X{FI0%_ zC|PdL^GB}y%q3B3MO!kG@w(3o=k?&*DrDAk!1)tb+WJWY0jdVq-D`>Bwnlah?Cl)o zTbL00!n3lWr|G3$V+S%75`8Fhg3N4#VX_#ollp!hTRNv%4sunu{VlKm41Y&m%klZ2 zgjP!fpnxOC3tjyJz4{bW@$SNhYY<3y>O4KO-0`B(0$b$e`B>$%y?l&G+T)8TaulnL zklwYB-pov@E7zUA*#VtmAr_FBDVUx0AT#0$Ps(&T6#@|yWWohTX9pfv`^!4sQf3Y> z$qv?*rWnI(o3G<4i2M#GlWX>T{&ORH6=TkIiOI8y-PKh4Tpp9Vc4hG`#oj^;)0W2e z4E|R8)%gwz`tCr1%^UfPOEIdBH1X@WlCllfa(DJ=wb`>Jr!NztIiq{~(7j>^mR^l5 z1~7QPgW*p)?T8r$D*)&P1!9Wq2UuQZ3^2>15lyOCR!lM~9}<_Vsv^v+IJ5?}0z@wj zE6r5$PI@DGXg9f1kSuGe6M+GLakqGexavNA z)(znB_50rNv9+L~{fc0IjU8pJ89+!7bPZ?%d|{5K8og&$N;8OBCKomqZj+@ngfZ2N zsdScmN;q~qT}OCckSi!}T$NGtv!UH!m)RToqAnD;)L7B+3ti__YVm5ELgV2lgx`nF zeY-E=zs+~=I{PQ_n_#1hQSh=XmyrY8ggNSuw_#bDWNu`nktZ)^w+lQ$i51x`CsNZ7A?@aGe8qHM(QrLv_7DI>_E6UAlEPWs3#kHkH#(U?B zCcklQey}3Jwv&1#UW2Gj^P?vuOHqF6@ua~Hj}Ux6z2xt@|I|j49o;=IrcmvK1 z&%4eQ<6y}!7>$RwnNlID#jRR_(e;EU~lC_qA{DqJ#|s5KU{Oc){$ zrmNQeK=h4kBk1G+z{*M;kmFBmmF{Ix4Jjky(m-$xCcne+??`Bfn+>p7QgAeJ@ciRJ zXYsvko{{g4hb?yGh~Y)c&>mv}agsJ@A*{Q(_b@bZw2B>Por}ocV7p`~cj&DeOzbi* z@VdUE5{@JN`)T}$sP%Y@ekSZ(%K>=JJ%!*IF~bO`t*{& zreGMe9b^8)*wVPSzwl+7`XprfaRWWk^bkA%@~?+~Eq*o8)NS1cdzhp1v53LvcJIo2 z$=TlLwG6UaXT9|#Y)|4l0ldh`E|*V=+KICr3GxB&+->Yz6E5CkJyV7odw@WDW9QKySYwYQDbo)LPI?U4$R~}fzU`&g1|6g3H)tqM2CA}rH{_j zB6z@dBDS}Vj8t0U;v^^uni-`a&@V`6K|C*8eg? zJ+kd!_wE8?^dR^3@sZ`0;Sv#5qY=mXA>AZy6k4|J1QaYBqVLCGxAoMUk<<683>D=} zN!-m{{{=wn4bKFQoG*Ndcg^&s6zE%3|^E(ahpb!k3Ll%g+m-1+)y%0lc*M`GWV^qgk^bKY?TG0RxodO zIR@bSnW)3YP;vfIPCm$(dwD;fwmAznj3BnqQoa_Y%}7b0fcHMUNuJLmc|j)!3i#!F znSu4S&GiY<$torLN>LzJ<1(kKZ%M+)Ibq~&KYW$GU6liC%OW~@pI&DlR)5%+B0$|#59#glWp>=GZ=rcQ@*o-TGd z@RXFxO@K+}RvP0T+_igp5u=rkS8L61Fv1?QNc|m&Y4MAQpC}*mwzDtl5uMdAV&*Xp zjN^XPmWHHEl5%p#L$M_orf$3@OcG>e+&=#la!mS;=;O8QUz9O*#sn&gNkqtZ@TI&t zM0}pd>|AVce&0(BsFaGwKe4X7cLGLRy#l2ABm&VI89hTnD!C!*!oWrp2-bo;<7zqg zD2J5_NgGr!BsiNkw3g_bsPG$@e|Q6ShV6*74z!4SN|5)&oo?c8@F%*}tFr9SMD!;E z?E=`JZkb&-sD2-Z3eOJ`eg)NCp7-8AD@0Mt8z1_j^Zq<=t{vIC8Q;MX2|Qfb`xX}I z>%Xm=e~0a-j-!jNv<{Jdvo zEWWJGlhI8U7FY8gg|m*Q9T9oERd%{G9=$wi-E`}kN2f$nlc%;R9K1dFY1>uAf{sgr z8%K!qkH$;35H6W);yU_e%6hyt#KZ_{&MQC17j69o*@gQcxFh5#TX-Z7RC_3fO3sM; zS=K8NS@xYi3MJz;J#kFXGMnIS6!N5Pb4~N)>oTFKhz1FA)XF3g*R16B8u-fh6s25u z!w1!>xY60fu}}M~NGoYHVZ_`{FBdjM#JU#TvWb&qp(>cYE@!34@C{^_Y($oN9o15^ zEeW8g;wxn0B0`KIIGAZ^YkSKP3-yb~{N+IiM>r)}>~S;?1>r>?u%>Q_JTDv3mYDZo zjU$KA!sOG3e;K^TiMuaUB>p2Wan`~J5u;?P{^Tfbh&zPw#Pei$2`+wErBGCR&$}~Z z?3T$Cp(E2Lrfe3xw9FH1(1lnCY#PfknF9)INmo){jQUt32G~i%t=XFQ9bb5#?052$ zq*Inx+H~;trJB$Et?oR-o9g(Sk)Ypl{XA5mSky2trbgW>eCZLTMI+SMj?&N%%~ldF z)=q+cOe)n-x|qyq_jn~u60K&gCuIA<(`xwe_q2hPavf%>L#+QeHpG-}dt zET}!1Zz21SK7%}5GQ#g6v&T0P#Ig}>5xATz^t=2OW6!nR$ z%Ww@a!o(Or+{TzVY-JQ>=GWpf%EY7EzN1^{$g(UVX;yE}Y+Sga3~72970-XlTWl$7 z2O((cpRVQYmd2w&SMT;1^B+hY3m-4Tq@Ozuo$WOxD09N>ESJ!ezbio4cnck*=&Lxn zC8flotf6QNuaOg-4QP!|3@M6|`>%zmOPXI$<86c_Q+ff>U?U$Rs-$J0bn3}054wg= zlEa6ruf1Oh7MI=YLH8R1U`VZ_tSgJqar+AbMqM%f(m6z1ACFRbfQoGL3(kDP0GMh4 z>J5nyP-f&?^%7bks4dd0w?!zUHjaZ@z1Qc$nHAgCXPSg1TwiPyQdwa)JgTdE8)(ap zxe@~Z`_T`MT)yUi&E{^!s&cLi-F_%5h!HSAp3EGUJGw_Vui(sr*buPb_!V>(aFGa4;XydI`ps$2Ue=>RWsDO z@_hx-T}=Bn+&=>|<$smU>aZ$+6H8e3b|ER_el4GN24iM=+4S;%_I|-A;kNAbck$5^ z8q%r}bKv1dl`w;94=dj=(`Am%p% zK(lOIUln3j@QEMDw|NKNh&0+R76xPcd0t7b?aaE|iIAZG)O|cuCiXxEWbu1i7@M{J zyk23ZFyD?@pPKhBms~A#UNiK5KDjuz$h-}JEb5@!D}roTHPL?X((H~#wPuLV!FF3n z#)-mFOqp(MVKe{FqEOO3@3q>WEA^XzMgN)Cs!syD_B7&$n@0Tkn5aQwrIZ@ z;`!Wv$B4G~&UKshrVSV2)S=lda#d9XL>K4Gjk?%5Y*+Zdh;s23H;&c!9_0pf1)x`N zXr`_{@17`b4b3mQ597LqVBAweG?a__@~8X0e6Ch%p0o zhb~7EC>M|0r8OOXLcBlBEE6s{%YZ~8vSMuU`UOMZ54Y0UdGFFtKwkcQI`cYsl;G#) zSj<}$JlPLELk0&?l@JnV3$Cc8Rq_n7I%_BzI|C6+EX-(s7?e;KhDm{;7Ma(|i6d;u zPo{%@2fH=91$kbQ+X4~X4T_oq4GkB>sMLRxC_qtdiiD{eGKCier4I1Asju`Pl!xNk z!1hv1Vh?I-PlfD2v1*gEZKqy2tVqD~RIBZv>OVy+R)^AfUg1Y&a82+09mOad7hjcH zaHzwzl3Z~eT*8AbeZFz!b(fjrao$5yrCGAZkfpD!msSyDK9?VGDdt8$)!3*<)TJUi z{8SFL1pj)Gb=+omSePvnBK%+tUX(-TRuRc#4h5D?BwRf+9lu2Pi?uzDLA9#MbZ3ey zqW5Z!bl&A;XQV7{(dVpe&Yf;ZT6mO{jgNzso%aAW080csd48D()22lSUEQ(t^H2eZ zv$%05j8m9Ei~?n2LHuE$g7EfB=i**JtA$RmsNZKSQ2ZT@!kNWh-!92lB#7yszv7!r z6vr0C>G_Tea69!U&~kXu#LViH!rc5ri-g08wdKdt$qX>c#LMcd9_JRsN{OOUeK3Xo z>?gfg@Pc@QLn`ztl1k#=Jl@D*@k2L;*vsUZvRDGHuI-+q`~dWbg8f)AjVF2bzWh?l zq0Faf^G%Q%CIL+-?_n+bg|EvY0n(?qr9LpZ2Xe(_5Jk)CCPlIk07(s5fMuRyu?@0j zC;KhAty3K78V<(krF4f-Cw6ZLaoX+k|Lt@W<1J=No*N4+4yODu+9wx)%!j1X75-iZD%1EKCGt-5;=*nTXFZ$#b1jTgr8g zE{+Atv`NJYR*haB7g@P>taCFoL&d7^1*5u}(u0u7Ty!`x6RdsLUI#|$J`IG2Uun~iEut(GaIAym zsF))eQ06zj`&l+aGxGGK3J+=>y0zoZcld&WmWQZmwuR{r>RrV2Z?p~ThexIj)J3DM zgQb*2^!DoCANY**C7qtpDn)O-$G_J*nKlJj$ zjNm+8_+QM3M)u_xF!C0d+$o6;7X!pw}cn;>8B&}o<0Yn&X)E4J(>fuVgJcwZH3nDhv61*47U6eIA&M~}E zl}b>|8AtV?4zchjEC1j}V&V@+16=P2q5%#J=IMP7OQxpg;fh0q51heppzUPSAKR61 z@o%Z1Qu^+9UlQshLY+pEV{xTk>9ONbnY6*B;*-}U6&aeu+qB;T6tV>5~$Yg>j zZ2J<}*&)$Ex_deJRA8)#_h4I1`EUamOl{3nCvAX%M(^GIu=eN)l(eU~N?XI+SA~FV z1m^E!LU<>V7Pu+as2t(jS!|p=f*2RFJ!zOSs{sRowybTXi~edXaibf zEUET21HHkXe#tyd8D970^s zj^DkntPk?YjGSgbhkECUxdmrO{Nh#iFH6P76tb2!+j3c`X>Gc7kIF-9`m$Y%TDxd8 zYc4Xm7w#+F>PqB7wp0$6kwKM;MxLvlU}9^@PAcBD)J5pKOrPrD}j4( zX(z?R`!vM;Nti~1X!+S%d14F(1}2i|zthJ=q1wq*mtowqt))JSXxqkU1_@U(SGZm{ zib625pQ64ViF$Yq1aUe%6)5;>WqWxdZ11uh4BWlQo7UV`R`9e2no>96oJPqekBKS; zN=lo{Yf7#=&vpF6CUR3Ps@D)+r;)?17O#D=B9+i<**80YoQ3WM@~ly$F1=Cv?!2EQ zMthqVTP-Lv{dim{Cq(QGUY+y~_A2z?8=9Rx7cRXrYJTRg6XJ=sX=oJE5kOvpHo1k5 z<({W1>v_TH{@{ppq&Uf37D&XBZIrmJ6zvB!r^AkbKYIF{C!%5Xy>I0rG~L!=cH2)G zzuoNb4;lbRpjV$aVQRTGS;g?;LSEL0A`(nu=HpD~0_CV$^SRT;Q1m3ErOBS*PQo${ zR7qS}nTSk`J-&aaS zTKZ+NyZszD8SD2CSqb@<5m7Rgd_{~=)|ivQRZgE*-id^Z-^=a!@Fm+k`7*;T6Lle% z2Y2x0hy5xlflBZEq~CszClA@g_?s-fCPHFWZx6a$gPZwMW~Ze`DDH|Y z0|%**EEKFNL81@RVA$w3CtVY^qV{4~qBG}?!`#(*tJY)ZYj{iy^+gAHFZW~hA1kHJ zK8JueFS}&`uX!7@v<|$9+lidETk>qAm6+G*W5)`(aDZ$>X9dak-Ut1yq>3D9++8^Ny*F3%nGOgIa-Iy`<~evR^Ea8ktABS+?ygZ=K4-bj`;Tgt8xS$s zU>5dDHf5yqc`Y-iQ$fwlX!7q2g%4 zQ5gDD4UW(PfdULwGk>>DrnFTR26J{EXvV+RX-;O{G8)<2%bjdIJzN_2BXv9Zj41Z* ziPxMO%fP42aOYp8zeU2(u?lg^+~tj4d|`es2Zj)VsMJ#~jk=Rz!Bo94Oqqr|Hh?@F35_Mdf0C+*}>$(P6SY zWOdyiQb3iyLPQ%4S{_RC-BrU8jRriQbN9&s5G}ZYUb@g`_6(kbu=Py~HNbqR)QS}1 z5bLuHA1Rl)hD$n?NH_+8UaYlyj%|*9sv@KNL#H+(1AjTAqWbTJDD%`i84(1D6rpnC z^L;NiK6YNOy-4V2nbm&T?X}bG8O7)9uSa1N6LJPUK90%z0_3RItjBgV({aw7K2gey zY3Mj@?XAn~?`6!~_nmMzhnW7iXK=$U;iOO;BmCJ^&D1`>v25VvF5(< z&-HS7XJIk>>DTGA12aC11ZNl<_~ft4}Z83d0)_=i*dV`x1(@y6jj^JbW&h| zqas>)ap90Oa~7Q$%E{qHS^q?jFBpWbeo@@K6QVG)d zW^MDlvO?odF6?6+V^S!}IWS|eA0}B2F2YOB)Hr#yMWJH5z59Wc!Xi*kml&Qe&9_gjNmIKo}>soAGrN`W5_&YigQG7u15%(`>T+4792zB zOtc~1Y{92bUJe0Ns}2)1f$s3Cs3q~>nM1_sNa%l;$FJ>g@@FNVSV=8}WWZ2u>lI z+sLHlX4|l-j+v>AsB~}GvOme+bT!={IsJViZ2zX%687os-r?EPs^}uCxv<|>);s=Z zipGjE*O8Wntwq8pN^4R>9V1F5ceOO;JD>jDFHH&YQJYtzyjYa^H!Ufjs!$qI0$yET zHPPJW?Rv<%$Y&K(N>Pa(X_P*+P-f(y1$ zRKp$wN1a>q-mo{l*Fy#tPXDL`j5Uv%QGNxy07*hQE4wSeAfto3#FWdrzmZ3vetUp) zjqZf?ZUp}tHa*& z@+Mq=E-JanZj;ydd3yAd54K@caCUZhY3GdRdUeeWfd^8Ar?3S7`SGewUKv#kvpF=p z^WyFIkA=`OnkH9ikkEDxX2$5v8CNiEhOm=C6NMG;VZ_AH$5z29;=GR5HT#f} zT}sN}fmK_~8KVPBjcBp`mz^@I3A~07D|xo!3U+1x-tdUj?;<~{@_;+%CIMS5ndI3M zLS`7w?uMSWaxY4om`RB9!Z(EgPj$??I3z@>l zqGU>AL*qcERgxrR!PaOoTzL?~-s0noM=&qgCLIe_lX#spe^eU{L&@ASCC;MT@5oHD zdVvRbN|)@N!Bv@6pEKr0NNe08n0oVN7B-}o#|AeLR7xmCxK3dy-zSJH>@UTH{Y`Hf z;iQ##r&s@j5?eOAy#$o-rQKsLdx|p*6@F!>!0v8(C$I<#l_W+&#d!}RU@8HADRmYM zq|J=jq>%Mcb(9c|C61%>O^uE+&Pqx=uKv>?MCbT(H+KGIAU9HrP0{wFZTf{o;GUas zb1U?b`%{i^T60hL?W>NDu0;mDp0Qc`+Gi>VrBme-$|Ghx4 zz$}2B5K@pu(2=l2@Cpb3giB-+6g|{*v;y={Oa-jrAHp~Vc-VMX_#*_(giplmBrhZ{ zr0}FfqzvDd{`2#Vu`QNMeMH^|04&(?fA*Ja)BmfD{2%@L{2Tt+4B2BmxPp5`Ij(kRK^YhL_&)bVitws78E2z%2RQPI{pCyB*aoh#^)sl z7i0z_rX-n*Owlc^=$(gg!aH8gD8J-MItYf5L+C3h-DpHZU z3{XQs{O`VzS2t&1U~*t!S+phMcj}E8V&>CrFg)BJ0Q`Z4wF%4E?g_gG`KP6rk&}_K z{cEc7dMk)1>V&^A85B&!AD2Zk<%Bj)(ZB!*5UxND1^myZfkBuNHiS3?5){ZSR*w$` z1T5jiKzC0!Fa!op2@ZDi>+35w5M)r zs5Y*fjVyjWPjUU7@LA7n5bv{K(|RU#t2aJkx>?sbzn<$S@1&_{lM)u&qSW5gEQR3N zt#I-~PjSFN72LG!N3T}T1*mE=0O*43%vh+p){np{~CMmYnP zC}0}nt|ZJ8)(*M$iR7=TB=fVu+qmWl{X<~>TWM3%0Q03|@5yT-Dfm0IqHAd$CKA#w zgWM>gQ6{dhn1i*rm(qeu+axw^V?Xw>(obpzy zB;#bGs&e2Uj|8C>Gqm*5zC9bD2WPZfQL*JSWlA;*aE%P(6FlT;nn2W{@m1 zjU@MZim@E9V~x-Ly2m{swidYf5!}RI4j_R5iJ2(2}$n0$-=yv3lea#CfHKKawm~5J9De zxxf1DoL}V?#!?l_@GKcXd)}>Q zj=L-79DX&Se< z3;$=Cuv)Eu`M4?rd0=~B9}z@l{UV+$L3s-#UEr@zV}0m3wuuEs?ab(ZBQ}*Pp23fs zBdkRCF_(E^KajbHVGCjsW`%_6MQ1prh+2M!m0#V##3m@!0RyL6K53fpV9B}|aFJLa z(m^0!iAp^Qt@g{ovRqv>f}|SoqdH{`x=Xd9e7#EXa5Ch`vTRj0EsUOgj+*Sd6d_%& z^O&_(pJxC<&6*jiojFg%&6=Y_;)x8EuGfqLvhTf3^2UH%o3bOf^4!Zt{^`T?owmzB zd9c2xb=<%r%>cJ9_|e@u#5sqGzV1tPSgZQh>MMlxh8v4*_%F<=<&Umbg>7?p5Scyb z6(xHLY=fAPn2C3ugswtJ;Bi}<$|dmu%g4?+ReGNa|5iV(pG(AN3ssWqE814?Yv>LS z5<_SMRJ$?-WR%ddhWKi{zR}C-{q>~54Fs$VhP~VrHJks#&m}ViFhR7C*!!&1`o=s48$Ep`~VUcT>KCc_;{))vPcr6D7J_yqX3E;oKhc> zE8I-?y9_InD6B|5lPKgJ-OK&>DtEdphdjvN!8Q7r9EnQ{ua z1r_Os7-jCJ_N63xEa}vwS@a?oTTgqc4aOw9hCCj+<4qU>`@adXCH8aP4jpF{M@j7} z=PWdia>oCC|F1WD9Ed56NJxzJ_aO$qj|FkzM!<2fm$TTJ7?~{su`)e1vA76n4apg! zH!Lxo!4xx4hYuZA2etu*EG*47s)pxKG0WT2$p7NG222ZoL^MT%m8J~jlW>uO{vkzy zV!x|nytTM6c;9LbEOIA7RV1*Ef(0b>kWqd6?gn}ZT1*fQgH@*MvTgmYd(+s_#rWP`5JS3JYjgYYn?pB;pZ3ya-e_krzi2pKD_xRY7ykF1jetR>Tf1}N_)`9b%@dr7*4zM z7vueHK6lKd|1FBce&8L>Bvgahc6xhe=Xd(nXo5oMh-{vG+^U%=bIUY$dHcf_BTF}7 zDT(l;dTO0jj>N1w&Z9GQ*!l@}Z#IzeEjN8iLD-M*okHGN+dCE+ z807teKD%_Fv9TfyUO1PS$+z^6>a`)(;uAz%Nhj(1-LmNkMeY>@0BYK=dUhuF*ztnr zz%wGcze;degpkNoSe#*HXsmIxdAuPdC^l9G7A7|O=El~BIQrv+5sKhxCdOD99asS~ cf9>q(6<5)v+du%V-bj4k`7OxT7Xb1901RGo6aWAK literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Script-Regular.woff2 b/docs/smartchart/katex/fonts/KaTeX_Script-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b0aed195ca3be06a66c66919dfd66564882bdd81 GIT binary patch literal 12064 zcmV+*FW=C2Pew8T0RR91052c_4gdfE0ANG_04~M=0RR9100000000000000000000 z00006U;u(z2rdbi7ZC^wfslCrDgibEBm;p63q}A0AO($c2Z06*feITnRt4M`x?$r0 z#)Hpxq9`4l$-w{D11dw-?oS7RsD?4^_ z;D)ZUZ+5D}%<{c+eKToFX?clCyaY!%08}jGy%P?dV*maAb$;G~H}gQUp0o~Oxeh~x z_79y)W~JqQYy6yfm-W5r-UA7KLI#b`%1+dA#J*Wp8re#tiGoyU_p&RzdEBy z*YcZ|iYZ{bm#XTl;tC2bYg!rBHmuGzRbmC#7oHN8PKmIA9PLh5GDo-0w?D&{pVwL0 zzW?PVAB_(DK`^h_?XToUU7Yuz0}sb)5Su63ST`>D%8yoI0@93#ru9C<0_vDFdfZs*4`1bq6#_oxF#6$sB=>w*1$ zVD8_ibol7FnKL_v8Pan{qVd1tD&AumDXj^w30I{V05MoY1ii=1kN^|#>=9}BIAor& z9k*wnoEELpEAY{Y)8t-(hfCk#=#dF~;)GdR86#rof-k7ytOzrtpD_f+LY8~eIUAxo z*rkFu-HK?tNC=PIRL0#<09uf0oPZ)v97VB|#44>l@nJ|IS~MnEd|6DD6~Mk2MtplH zq`GDi$)4D+dCQApOd3vII8pJ;JMoAdKX(^bhAGm;F;)a+J{o|)1Cl0lw}7B?BFSqe z?0s7l)7zE-Md#Hx{zu&l7JFyVSfq+x$fB7hZ=BDs~uo4PB}EG?Tu6e+7v!9 zLCb^@qR-KrlVjA6f=X<}EQ`h>&8U+=-6QB|)bS2lEuT59MEi%@&_E`+j31Fbh9>S5 zASU-%#DaoYPh$*uLX1*F3!n|lF#MzLox*4DOBs;fY9dYj!+$6KFqB ztHEoR;4H+eGM8$A=r-2rdg&ZM-+(tLHOer^-ju)Cf?e z1LO^kS(JQSQn8da_;#N6<)`i^*(`eMCkcx~Z|lKcg-BtJPf@x+%GrsBx=60@n-GSH zP+**BERl|C@K6uc%x6V`9*hR*;)W6`>`2s=B&{{zXh@Bx(T(_9qQtv^#UCe3={HepH%r>5Wd7 zz;o26`|y_w9*lAMm4Zi0-li%rYfFbT4=GDF@Z{A}MuJ)ly9E_AzQOWy`&yBeg4*IZ zA^H-CCSV=&ft741?ek9U_2kz9Q8A!5I<=e>Tc(>$ZW^5#)Er=5)Rt;fH|bk)Yvk=B z0}fi^HtxAoaPPw1eL=Ssl;~3U#L6U8FN$P(Z)Z4oA= z)kaI0neoJF2`To3xZ=rXvxx$rv^#{r(A}CY60pd~_(hN_4+!T0_rtKhj#xN zJAy|n4jd7182glft1>ofHPMAZ6NwW+sadAj6-Pj^6H`iN0>TqMktsRlf!cW(f$%^{ zhq}^iedN^82{1rrlQkZ&F*mx)4J6#B6ajx^euO@b2c^5^r!vJWCNXNe)Ig~>>(B!} zm0%y`a`SbxABBeNh&5isuFz>HNz(Ym9d*7Sc*B@@Z$f+2L&6nhuvO-{D02|Nm9!QN zI^|tNbu7#v{JsL`bU9F^3}7&F^7Vt7HVH0WixL7mW6f|ARIGeO*}+|RkMW6{1HPf?mI2S*d6yQS+-kqXNJINH-W3QoYXU73V6dxD!k;@YCx zξ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 KZqM2T0002O@mFpD literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Size1-Regular.ttf b/docs/smartchart/katex/fonts/KaTeX_Size1-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..37faa0f9fe41ddb1c9a15725f8ad4856599193a1 GIT binary patch literal 12916 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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Size1-Regular.woff b/docs/smartchart/katex/fonts/KaTeX_Size1-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..0832f7a468852ced3080993f4a826e8ef608befe GIT binary patch literal 6696 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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Size2-Regular.ttf b/docs/smartchart/katex/fonts/KaTeX_Size2-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..cf326236c0e940c533606031140a116d7ab707ec GIT binary patch literal 12172 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 ND0_ALP~7f1{s)AlT$TU; literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Size2-Regular.woff b/docs/smartchart/katex/fonts/KaTeX_Size2-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..14f6485abb4e1483c0adf14e93c7d838efdcebfc GIT binary patch literal 6436 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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Size2-Regular.woff2 b/docs/smartchart/katex/fonts/KaTeX_Size2-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5ff7060676d81f040dafd77ac0ac9e68eef20767 GIT binary patch literal 5392 zcmV+r74PbIPew8T0RR9102L4b4gdfE057Nj02H_Y0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Size3-Regular.woff2 b/docs/smartchart/katex/fonts/KaTeX_Size3-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e45ca49db8c66ca43ce41bd15a219db59b0c9350 GIT binary patch literal 3728 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 uGdp`1tIq6oAi__4ZKx3d literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Typewriter-Regular.ttf b/docs/smartchart/katex/fonts/KaTeX_Typewriter-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2fd85294ab68105c5ae44fd65332fce36c49f8cd GIT binary patch literal 35924 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%0AnSGBJ}5nw;K}{-J%^|HlSG_ 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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Typewriter-Regular.woff2 b/docs/smartchart/katex/fonts/KaTeX_Typewriter-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e40ab151617cb25fce5b4e739aab4f44ff3a652d GIT binary patch literal 17272 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.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathdefault{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-weight:700;font-style:italic}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;vertical-align:bottom;position:relative}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;vertical-align:bottom;font-size:1px;width:2px;min-width:2px}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{display:inline-block;border:0 solid;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline{display:inline-block;width:100%;border-bottom-style:dashed}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .op-limits>.vlist-t{text-align:center}.katex .accent>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{display:block;position:absolute;width:100%;height:inherit;fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex svg path{stroke:none}.katex img{border-style:none;min-width:0;min-height:0;max-width:none;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{position:absolute;left:0;width:50.2%;overflow:hidden}.katex .halfarrow-right{position:absolute;right:0;width:50.2%;overflow:hidden}.katex .brace-left{position:absolute;left:0;width:25.1%;overflow:hidden}.katex .brace-center{position:absolute;left:25%;width:50%;overflow:hidden}.katex .brace-right{position:absolute;right:0;width:25.1%;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left} diff --git a/docs/smartchart/katex/katex.min.js b/docs/smartchart/katex/katex.min.js new file mode 100644 index 0000000..906ce12 --- /dev/null +++ b/docs/smartchart/katex/katex.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.katex=e():t.katex=e()}("undefined"!=typeof self?self:this,function(){return function(t){var e={};function r(a){if(e[a])return e[a].exports;var n=e[a]={i:a,l:!1,exports:{}};return t[a].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=t,r.c=e,r.d=function(t,e,a){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var a=Object.create(null);if(r.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)r.d(a,n,function(e){return t[e]}.bind(null,n));return a},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=1)}([function(t,e,r){},function(t,e,r){"use strict";r.r(e);r(0);var a=function(){function t(t,e,r){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=t,this.start=e,this.end=r}return t.range=function(e,r){return r?e&&e.loc&&r.loc&&e.loc.lexer===r.loc.lexer?new t(e.loc.lexer,e.loc.start,r.loc.end):null:e&&e.loc},t}(),n=function(){function t(t,e){this.text=void 0,this.loc=void 0,this.text=t,this.loc=e}return t.prototype.range=function(e,r){return new t(r,a.range(this,e))},t}(),i=function t(e,r){this.position=void 0;var a,n="KaTeX parse error: "+e,i=r&&r.loc;if(i&&i.start<=i.end){var o=i.lexer.input;a=i.start;var s=i.end;a===o.length?n+=" at end of input: ":n+=" at position "+(a+1)+": ";var h=o.slice(a,s).replace(/[^]/g,"$&\u0332");n+=(a>15?"\u2026"+o.slice(a-15,a):o.slice(0,a))+h+(s+15":">","<":"<",'"':""","'":"'"},l=/[&><"']/g;var m=function t(e){return"ordgroup"===e.type?1===e.body.length?t(e.body[0]):e:"color"===e.type?1===e.body.length?t(e.body[0]):e:"font"===e.type?t(e.body):e},c={contains:function(t,e){return-1!==t.indexOf(e)},deflt:function(t,e){return void 0===t?e:t},escape:function(t){return String(t).replace(l,function(t){return h[t]})},hyphenate:function(t){return t.replace(s,"-$1").toLowerCase()},getBaseElem:m,isCharacterBox:function(t){var e=m(t);return"mathord"===e.type||"textord"===e.type||"atom"===e.type},protocolFromUrl:function(t){var e=/^\s*([^\\\/#]*?)(?::|�*58|�*3a)/i.exec(t);return null!=e?e[1]:"_relative"}},u=function(){function t(t){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,t=t||{},this.displayMode=c.deflt(t.displayMode,!1),this.output=c.deflt(t.output,"htmlAndMathml"),this.leqno=c.deflt(t.leqno,!1),this.fleqn=c.deflt(t.fleqn,!1),this.throwOnError=c.deflt(t.throwOnError,!0),this.errorColor=c.deflt(t.errorColor,"#cc0000"),this.macros=t.macros||{},this.minRuleThickness=Math.max(0,c.deflt(t.minRuleThickness,0)),this.colorIsTextColor=c.deflt(t.colorIsTextColor,!1),this.strict=c.deflt(t.strict,"warn"),this.trust=c.deflt(t.trust,!1),this.maxSize=Math.max(0,c.deflt(t.maxSize,1/0)),this.maxExpand=Math.max(0,c.deflt(t.maxExpand,1e3))}var e=t.prototype;return e.reportNonstrict=function(t,e,r){var a=this.strict;if("function"==typeof a&&(a=a(t,e,r)),a&&"ignore"!==a){if(!0===a||"error"===a)throw new o("LaTeX-incompatible input and strict mode is set to 'error': "+e+" ["+t+"]",r);"warn"===a?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+e+" ["+t+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+a+"': "+e+" ["+t+"]")}},e.useStrictBehavior=function(t,e,r){var a=this.strict;if("function"==typeof a)try{a=a(t,e,r)}catch(t){a="error"}return!(!a||"ignore"===a)&&(!0===a||"error"===a||("warn"===a?("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+e+" ["+t+"]"),!1):("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+a+"': "+e+" ["+t+"]"),!1)))},e.isTrusted=function(t){t.url&&!t.protocol&&(t.protocol=c.protocolFromUrl(t.url));var e="function"==typeof this.trust?this.trust(t):this.trust;return Boolean(e)},t}(),p=function(){function t(t,e,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=t,this.size=e,this.cramped=r}var e=t.prototype;return e.sup=function(){return d[f[this.id]]},e.sub=function(){return d[g[this.id]]},e.fracNum=function(){return d[x[this.id]]},e.fracDen=function(){return d[v[this.id]]},e.cramp=function(){return d[b[this.id]]},e.text=function(){return d[y[this.id]]},e.isTight=function(){return this.size>=2},t}(),d=[new p(0,0,!1),new p(1,0,!0),new p(2,1,!1),new p(3,1,!0),new p(4,2,!1),new p(5,2,!0),new p(6,3,!1),new p(7,3,!0)],f=[4,5,4,5,6,7,6,7],g=[5,5,5,5,7,7,7,7],x=[2,3,4,5,6,7,6,7],v=[3,3,5,5,7,7,7,7],b=[1,1,3,3,5,5,7,7],y=[0,1,2,3,2,3,2,3],w={DISPLAY:d[0],TEXT:d[2],SCRIPT:d[4],SCRIPTSCRIPT:d[6]},k=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];var S=[];function M(t){for(var e=0;e=S[e]&&t<=S[e+1])return!0;return!1}k.forEach(function(t){return t.blocks.forEach(function(t){return S.push.apply(S,t)})});var z={doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"},A=function(){function t(t){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=t,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}var e=t.prototype;return e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){for(var t=document.createDocumentFragment(),e=0;e"},N=function(){function t(t,e,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,B.call(this,t,r,a),this.children=e||[]}var e=t.prototype;return e.setAttribute=function(t,e){this.attributes[t]=e},e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){return C.call(this,"span")},e.toMarkup=function(){return q.call(this,"span")},t}(),I=function(){function t(t,e,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,B.call(this,e,a),this.children=r||[],this.setAttribute("href",t)}var e=t.prototype;return e.setAttribute=function(t,e){this.attributes[t]=e},e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){return C.call(this,"a")},e.toMarkup=function(){return q.call(this,"a")},t}(),R=function(){function t(t,e,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=e,this.src=t,this.classes=["mord"],this.style=r}var e=t.prototype;return e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){var t=document.createElement("img");for(var e in t.src=this.src,t.alt=this.alt,t.className="mord",this.style)this.style.hasOwnProperty(e)&&(t.style[e]=this.style[e]);return t},e.toMarkup=function(){var t=""+this.alt+"=n[0]&&t<=n[1])return r.name}return null}(this.text.charCodeAt(0));h&&this.classes.push(h+"_fallback"),/[\xee\xef\xed\xec]/.test(this.text)&&(this.text=O[this.text])}var e=t.prototype;return e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){var t=document.createTextNode(this.text),e=null;for(var r in this.italic>0&&((e=document.createElement("span")).style.marginRight=this.italic+"em"),this.classes.length>0&&((e=e||document.createElement("span")).className=T(this.classes)),this.style)this.style.hasOwnProperty(r)&&((e=e||document.createElement("span")).style[r]=this.style[r]);return e?(e.appendChild(t),e):t},e.toMarkup=function(){var t=!1,e="0&&(r+="margin-right:"+this.italic+"em;"),this.style)this.style.hasOwnProperty(a)&&(r+=c.hyphenate(a)+":"+this.style[a]+";");r&&(t=!0,e+=' style="'+c.escape(r)+'"');var n=c.escape(this.text);return t?(e+=">",e+=n,e+=""):n},t}(),L=function(){function t(t,e){this.children=void 0,this.attributes=void 0,this.children=t||[],this.attributes=e||{}}var e=t.prototype;return e.toNode=function(){var t=document.createElementNS("http://www.w3.org/2000/svg","svg");for(var e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&t.setAttribute(e,this.attributes[e]);for(var r=0;r":""},t}(),P=function(){function t(t){this.attributes=void 0,this.attributes=t||{}}var e=t.prototype;return e.toNode=function(){var t=document.createElementNS("http://www.w3.org/2000/svg","line");for(var e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&t.setAttribute(e,this.attributes[e]);return t},e.toMarkup=function(){var t="",">"),$("math",Z,et,":",":"),$("math",Z,et,"\u2248","\\approx",!0),$("math",Z,et,"\u2245","\\cong",!0),$("math",Z,et,"\u2265","\\ge"),$("math",Z,et,"\u2265","\\geq",!0),$("math",Z,et,"\u2190","\\gets"),$("math",Z,et,">","\\gt"),$("math",Z,et,"\u2208","\\in",!0),$("math",Z,et,"\ue020","\\@not"),$("math",Z,et,"\u2282","\\subset",!0),$("math",Z,et,"\u2283","\\supset",!0),$("math",Z,et,"\u2286","\\subseteq",!0),$("math",Z,et,"\u2287","\\supseteq",!0),$("math",K,et,"\u2288","\\nsubseteq",!0),$("math",K,et,"\u2289","\\nsupseteq",!0),$("math",Z,et,"\u22a8","\\models"),$("math",Z,et,"\u2190","\\leftarrow",!0),$("math",Z,et,"\u2264","\\le"),$("math",Z,et,"\u2264","\\leq",!0),$("math",Z,et,"<","\\lt"),$("math",Z,et,"\u2192","\\rightarrow",!0),$("math",Z,et,"\u2192","\\to"),$("math",K,et,"\u2271","\\ngeq",!0),$("math",K,et,"\u2270","\\nleq",!0),$("math",Z,"spacing","\xa0","\\ "),$("math",Z,"spacing","\xa0","~"),$("math",Z,"spacing","\xa0","\\space"),$("math",Z,"spacing","\xa0","\\nobreakspace"),$("text",Z,"spacing","\xa0","\\ "),$("text",Z,"spacing","\xa0","~"),$("text",Z,"spacing","\xa0","\\space"),$("text",Z,"spacing","\xa0","\\nobreakspace"),$("math",Z,"spacing",null,"\\nobreak"),$("math",Z,"spacing",null,"\\allowbreak"),$("math",Z,"punct",",",","),$("math",Z,"punct",";",";"),$("math",K,J,"\u22bc","\\barwedge",!0),$("math",K,J,"\u22bb","\\veebar",!0),$("math",Z,J,"\u2299","\\odot",!0),$("math",Z,J,"\u2295","\\oplus",!0),$("math",Z,J,"\u2297","\\otimes",!0),$("math",Z,"textord","\u2202","\\partial",!0),$("math",Z,J,"\u2298","\\oslash",!0),$("math",K,J,"\u229a","\\circledcirc",!0),$("math",K,J,"\u22a1","\\boxdot",!0),$("math",Z,J,"\u25b3","\\bigtriangleup"),$("math",Z,J,"\u25bd","\\bigtriangledown"),$("math",Z,J,"\u2020","\\dagger"),$("math",Z,J,"\u22c4","\\diamond"),$("math",Z,J,"\u22c6","\\star"),$("math",Z,J,"\u25c3","\\triangleleft"),$("math",Z,J,"\u25b9","\\triangleright"),$("math",Z,"open","{","\\{"),$("text",Z,"textord","{","\\{"),$("text",Z,"textord","{","\\textbraceleft"),$("math",Z,"close","}","\\}"),$("text",Z,"textord","}","\\}"),$("text",Z,"textord","}","\\textbraceright"),$("math",Z,"open","{","\\lbrace"),$("math",Z,"close","}","\\rbrace"),$("math",Z,"open","[","\\lbrack"),$("text",Z,"textord","[","\\lbrack"),$("math",Z,"close","]","\\rbrack"),$("text",Z,"textord","]","\\rbrack"),$("math",Z,"open","(","\\lparen"),$("math",Z,"close",")","\\rparen"),$("text",Z,"textord","<","\\textless"),$("text",Z,"textord",">","\\textgreater"),$("math",Z,"open","\u230a","\\lfloor",!0),$("math",Z,"close","\u230b","\\rfloor",!0),$("math",Z,"open","\u2308","\\lceil",!0),$("math",Z,"close","\u2309","\\rceil",!0),$("math",Z,"textord","\\","\\backslash"),$("math",Z,"textord","\u2223","|"),$("math",Z,"textord","\u2223","\\vert"),$("text",Z,"textord","|","\\textbar"),$("math",Z,"textord","\u2225","\\|"),$("math",Z,"textord","\u2225","\\Vert"),$("text",Z,"textord","\u2225","\\textbardbl"),$("text",Z,"textord","~","\\textasciitilde"),$("text",Z,"textord","\\","\\textbackslash"),$("text",Z,"textord","^","\\textasciicircum"),$("math",Z,et,"\u2191","\\uparrow",!0),$("math",Z,et,"\u21d1","\\Uparrow",!0),$("math",Z,et,"\u2193","\\downarrow",!0),$("math",Z,et,"\u21d3","\\Downarrow",!0),$("math",Z,et,"\u2195","\\updownarrow",!0),$("math",Z,et,"\u21d5","\\Updownarrow",!0),$("math",Z,tt,"\u2210","\\coprod"),$("math",Z,tt,"\u22c1","\\bigvee"),$("math",Z,tt,"\u22c0","\\bigwedge"),$("math",Z,tt,"\u2a04","\\biguplus"),$("math",Z,tt,"\u22c2","\\bigcap"),$("math",Z,tt,"\u22c3","\\bigcup"),$("math",Z,tt,"\u222b","\\int"),$("math",Z,tt,"\u222b","\\intop"),$("math",Z,tt,"\u222c","\\iint"),$("math",Z,tt,"\u222d","\\iiint"),$("math",Z,tt,"\u220f","\\prod"),$("math",Z,tt,"\u2211","\\sum"),$("math",Z,tt,"\u2a02","\\bigotimes"),$("math",Z,tt,"\u2a01","\\bigoplus"),$("math",Z,tt,"\u2a00","\\bigodot"),$("math",Z,tt,"\u222e","\\oint"),$("math",Z,tt,"\u222f","\\oiint"),$("math",Z,tt,"\u2230","\\oiiint"),$("math",Z,tt,"\u2a06","\\bigsqcup"),$("math",Z,tt,"\u222b","\\smallint"),$("text",Z,"inner","\u2026","\\textellipsis"),$("math",Z,"inner","\u2026","\\mathellipsis"),$("text",Z,"inner","\u2026","\\ldots",!0),$("math",Z,"inner","\u2026","\\ldots",!0),$("math",Z,"inner","\u22ef","\\@cdots",!0),$("math",Z,"inner","\u22f1","\\ddots",!0),$("math",Z,"textord","\u22ee","\\varvdots"),$("math",Z,"accent-token","\u02ca","\\acute"),$("math",Z,"accent-token","\u02cb","\\grave"),$("math",Z,"accent-token","\xa8","\\ddot"),$("math",Z,"accent-token","~","\\tilde"),$("math",Z,"accent-token","\u02c9","\\bar"),$("math",Z,"accent-token","\u02d8","\\breve"),$("math",Z,"accent-token","\u02c7","\\check"),$("math",Z,"accent-token","^","\\hat"),$("math",Z,"accent-token","\u20d7","\\vec"),$("math",Z,"accent-token","\u02d9","\\dot"),$("math",Z,"accent-token","\u02da","\\mathring"),$("math",Z,Q,"\u0131","\\imath",!0),$("math",Z,Q,"\u0237","\\jmath",!0),$("text",Z,"textord","\u0131","\\i",!0),$("text",Z,"textord","\u0237","\\j",!0),$("text",Z,"textord","\xdf","\\ss",!0),$("text",Z,"textord","\xe6","\\ae",!0),$("text",Z,"textord","\xe6","\\ae",!0),$("text",Z,"textord","\u0153","\\oe",!0),$("text",Z,"textord","\xf8","\\o",!0),$("text",Z,"textord","\xc6","\\AE",!0),$("text",Z,"textord","\u0152","\\OE",!0),$("text",Z,"textord","\xd8","\\O",!0),$("text",Z,"accent-token","\u02ca","\\'"),$("text",Z,"accent-token","\u02cb","\\`"),$("text",Z,"accent-token","\u02c6","\\^"),$("text",Z,"accent-token","\u02dc","\\~"),$("text",Z,"accent-token","\u02c9","\\="),$("text",Z,"accent-token","\u02d8","\\u"),$("text",Z,"accent-token","\u02d9","\\."),$("text",Z,"accent-token","\u02da","\\r"),$("text",Z,"accent-token","\u02c7","\\v"),$("text",Z,"accent-token","\xa8",'\\"'),$("text",Z,"accent-token","\u02dd","\\H"),$("text",Z,"accent-token","\u25ef","\\textcircled");var rt={"--":!0,"---":!0,"``":!0,"''":!0};$("text",Z,"textord","\u2013","--"),$("text",Z,"textord","\u2013","\\textendash"),$("text",Z,"textord","\u2014","---"),$("text",Z,"textord","\u2014","\\textemdash"),$("text",Z,"textord","\u2018","`"),$("text",Z,"textord","\u2018","\\textquoteleft"),$("text",Z,"textord","\u2019","'"),$("text",Z,"textord","\u2019","\\textquoteright"),$("text",Z,"textord","\u201c","``"),$("text",Z,"textord","\u201c","\\textquotedblleft"),$("text",Z,"textord","\u201d","''"),$("text",Z,"textord","\u201d","\\textquotedblright"),$("math",Z,"textord","\xb0","\\degree",!0),$("text",Z,"textord","\xb0","\\degree"),$("text",Z,"textord","\xb0","\\textdegree",!0),$("math",Z,Q,"\xa3","\\pounds"),$("math",Z,Q,"\xa3","\\mathsterling",!0),$("text",Z,Q,"\xa3","\\pounds"),$("text",Z,Q,"\xa3","\\textsterling",!0),$("math",K,"textord","\u2720","\\maltese"),$("text",K,"textord","\u2720","\\maltese"),$("text",Z,"spacing","\xa0","\\ "),$("text",Z,"spacing","\xa0"," "),$("text",Z,"spacing","\xa0","~");for(var at=0;at<'0123456789/@."'.length;at++){var nt='0123456789/@."'.charAt(at);$("math",Z,"textord",nt,nt)}for(var it=0;it<'0123456789!@*()-=+[]<>|";:?/.,'.length;it++){var ot='0123456789!@*()-=+[]<>|";:?/.,'.charAt(it);$("text",Z,"textord",ot,ot)}for(var st="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ht=0;ht=5?0:t>=3?1:2]){var r=Y[e]={cssEmPerMu:V.quad[e]/18};for(var a in V)V.hasOwnProperty(a)&&(r[a]=V[a][e])}return Y[e]}(this.size)),this._fontMetrics},e.getColor=function(){return this.phantom?"transparent":this.color},t}();kt.BASESIZE=6;var St=kt,Mt={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},zt={ex:!0,em:!0,mu:!0},At=function(t){return"string"!=typeof t&&(t=t.unit),t in Mt||t in zt||"ex"===t},Tt=function(t,e){var r;if(t.unit in Mt)r=Mt[t.unit]/e.fontMetrics().ptPerEm/e.sizeMultiplier;else if("mu"===t.unit)r=e.fontMetrics().cssEmPerMu;else{var a;if(a=e.style.isTight()?e.havingStyle(e.style.text()):e,"ex"===t.unit)r=a.fontMetrics().xHeight;else{if("em"!==t.unit)throw new o("Invalid unit: '"+t.unit+"'");r=a.fontMetrics().quad}a!==e&&(r*=a.sizeMultiplier/e.sizeMultiplier)}return Math.min(t.number*r,e.maxSize)},Bt=["\\imath","\u0131","\\jmath","\u0237","\\pounds","\\mathsterling","\\textsterling","\xa3"],Ct=function(t,e,r){return j[r][t]&&j[r][t].replace&&(t=j[r][t].replace),{value:t,metrics:G(t,e,r)}},qt=function(t,e,r,a,n){var i,o=Ct(t,e,r),s=o.metrics;if(t=o.value,s){var h=s.italic;("text"===r||a&&"mathit"===a.font)&&(h=0),i=new E(t,s.height,s.depth,h,s.skew,s.width,n)}else"undefined"!=typeof console&&console.warn("No character metrics for '"+t+"' in style '"+e+"' and mode '"+r+"'"),i=new E(t,0,0,0,0,0,n);if(a){i.maxFontSize=a.sizeMultiplier,a.style.isTight()&&i.classes.push("mtight");var l=a.getColor();l&&(i.style.color=l)}return i},Nt=function(t,e){if(T(t.classes)!==T(e.classes)||t.skew!==e.skew||t.maxFontSize!==e.maxFontSize)return!1;for(var r in t.style)if(t.style.hasOwnProperty(r)&&t.style[r]!==e.style[r])return!1;for(var a in e.style)if(e.style.hasOwnProperty(a)&&t.style[a]!==e.style[a])return!1;return!0},It=function(t){for(var e=0,r=0,a=0,n=0;ne&&(e=i.height),i.depth>r&&(r=i.depth),i.maxFontSize>a&&(a=i.maxFontSize)}t.height=e,t.depth=r,t.maxFontSize=a},Rt=function(t,e,r,a){var n=new N(t,e,r,a);return It(n),n},Ot=function(t,e,r,a){return new N(t,e,r,a)},Et=function(t){var e=new A(t);return It(e),e},Lt=function(t,e,r){var a="";switch(t){case"amsrm":a="AMS";break;case"textrm":a="Main";break;case"textsf":a="SansSerif";break;case"texttt":a="Typewriter";break;default:a=t}return a+"-"+("textbf"===e&&"textit"===r?"BoldItalic":"textbf"===e?"Bold":"textit"===e?"Italic":"Regular")},Ht={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Pt={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},Dt={fontMap:Ht,makeSymbol:qt,mathsym:function(t,e,r,a){return void 0===a&&(a=[]),"boldsymbol"===r.font&&Ct(t,"Main-Bold",e).metrics?qt(t,"Main-Bold",e,r,a.concat(["mathbf"])):"\\"===t||"main"===j[e][t].font?qt(t,"Main-Regular",e,r,a):qt(t,"AMS-Regular",e,r,a.concat(["amsrm"]))},makeSpan:Rt,makeSvgSpan:Ot,makeLineSpan:function(t,e,r){var a=Rt([t],[],e);return a.height=Math.max(r||e.fontMetrics().defaultRuleThickness,e.minRuleThickness),a.style.borderBottomWidth=a.height+"em",a.maxFontSize=1,a},makeAnchor:function(t,e,r,a){var n=new I(t,e,r,a);return It(n),n},makeFragment:Et,wrapFragment:function(t,e){return t instanceof A?Rt([],[t],e):t},makeVList:function(t,e){for(var r=function(t){if("individualShift"===t.positionType){for(var e=t.children,r=[e[0]],a=-e[0].shift-e[0].elem.depth,n=a,i=1;i0&&(i.push(pe(o,e)),o=[]),i.push(n[s]));o.length>0&&i.push(pe(o,e)),r&&((a=pe(se(r,e,!0))).classes=["tag"],i.push(a));var l=re(["katex-html"],i);if(l.setAttribute("aria-hidden","true"),a){var m=a.children[0];m.style.height=l.height+l.depth+"em",m.style.verticalAlign=-l.depth+"em"}return l}function fe(t){return new A(t)}var ge=function(){function t(t,e){this.type=void 0,this.attributes=void 0,this.children=void 0,this.type=t,this.attributes={},this.children=e||[]}var e=t.prototype;return e.setAttribute=function(t,e){this.attributes[t]=e},e.getAttribute=function(t){return this.attributes[t]},e.toNode=function(){var t=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&t.setAttribute(e,this.attributes[e]);for(var r=0;r"},e.toText=function(){return this.children.map(function(t){return t.toText()}).join("")},t}(),xe=function(){function t(t){this.text=void 0,this.text=t}var e=t.prototype;return e.toNode=function(){return document.createTextNode(this.text)},e.toMarkup=function(){return c.escape(this.toText())},e.toText=function(){return this.text},t}(),ve={MathNode:ge,TextNode:xe,SpaceNode:function(){function t(t){this.width=void 0,this.character=void 0,this.width=t,this.character=t>=.05555&&t<=.05556?"\u200a":t>=.1666&&t<=.1667?"\u2009":t>=.2222&&t<=.2223?"\u2005":t>=.2777&&t<=.2778?"\u2005\u200a":t>=-.05556&&t<=-.05555?"\u200a\u2063":t>=-.1667&&t<=-.1666?"\u2009\u2063":t>=-.2223&&t<=-.2222?"\u205f\u2063":t>=-.2778&&t<=-.2777?"\u2005\u2063":null}var e=t.prototype;return e.toNode=function(){if(this.character)return document.createTextNode(this.character);var t=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return t.setAttribute("width",this.width+"em"),t},e.toMarkup=function(){return this.character?""+this.character+"":''},e.toText=function(){return this.character?this.character:" "},t}(),newDocumentFragment:fe},be=function(t,e,r){return!j[e][t]||!j[e][t].replace||55349===t.charCodeAt(0)||rt.hasOwnProperty(t)&&r&&(r.fontFamily&&"tt"===r.fontFamily.substr(4,2)||r.font&&"tt"===r.font.substr(4,2))||(t=j[e][t].replace),new ve.TextNode(t)},ye=function(t){return 1===t.length?t[0]:new ve.MathNode("mrow",t)},we=function(t,e){if("texttt"===e.fontFamily)return"monospace";if("textsf"===e.fontFamily)return"textit"===e.fontShape&&"textbf"===e.fontWeight?"sans-serif-bold-italic":"textit"===e.fontShape?"sans-serif-italic":"textbf"===e.fontWeight?"bold-sans-serif":"sans-serif";if("textit"===e.fontShape&&"textbf"===e.fontWeight)return"bold-italic";if("textit"===e.fontShape)return"italic";if("textbf"===e.fontWeight)return"bold";var r=e.font;if(!r||"mathnormal"===r)return null;var a=t.mode;if("mathit"===r)return"italic";if("boldsymbol"===r)return"bold-italic";if("mathbf"===r)return"bold";if("mathbb"===r)return"double-struck";if("mathfrak"===r)return"fraktur";if("mathscr"===r||"mathcal"===r)return"script";if("mathsf"===r)return"sans-serif";if("mathtt"===r)return"monospace";var n=t.text;return c.contains(["\\imath","\\jmath"],n)?null:(j[a][n]&&j[a][n].replace&&(n=j[a][n].replace),G(n,Dt.fontMap[r].fontName,a)?Dt.fontMap[r].variant:null)},ke=function(t,e,r){if(1===t.length){var a=Me(t[0],e);return r&&a instanceof ge&&"mo"===a.type&&(a.setAttribute("lspace","0em"),a.setAttribute("rspace","0em")),[a]}for(var n,i=[],o=0;o0&&(p.text=p.text.slice(0,1)+"\u0338"+p.text.slice(1),i.pop())}}}i.push(s),n=s}return i},Se=function(t,e,r){return ye(ke(t,e,r))},Me=function(t,e){if(!t)return new ve.MathNode("mrow");if(Jt[t.type])return Jt[t.type](t,e);throw new o("Got group of unknown type: '"+t.type+"'")};function ze(t,e,r,a){var n,i=ke(t,r);n=1===i.length&&i[0]instanceof ge&&c.contains(["mrow","mtable"],i[0].type)?i[0]:new ve.MathNode("mrow",i);var o=new ve.MathNode("annotation",[new ve.TextNode(e)]);o.setAttribute("encoding","application/x-tex");var s=new ve.MathNode("semantics",[n,o]),h=new ve.MathNode("math",[s]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML");var l=a?"katex":"katex-mathml";return Dt.makeSpan([l],[h])}var Ae=function(t){return new St({style:t.displayMode?w.DISPLAY:w.TEXT,maxSize:t.maxSize,minRuleThickness:t.minRuleThickness})},Te=function(t,e){if(e.displayMode){var r=["katex-display"];e.leqno&&r.push("leqno"),e.fleqn&&r.push("fleqn"),t=Dt.makeSpan(r,[t])}return t},Be=function(t,e,r){var a,n=Ae(r);if("mathml"===r.output)return ze(t,e,n,!0);if("html"===r.output){var i=de(t,n);a=Dt.makeSpan(["katex"],[i])}else{var o=ze(t,e,n,!1),s=de(t,n);a=Dt.makeSpan(["katex"],[o,s])}return Te(a,r)},Ce={widehat:"^",widecheck:"\u02c7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23df",overbrace:"\u23de",overgroup:"\u23e0",undergroup:"\u23e1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21d2",xRightarrow:"\u21d2",overleftharpoon:"\u21bc",xleftharpoonup:"\u21bc",overrightharpoon:"\u21c0",xrightharpoonup:"\u21c0",xLeftarrow:"\u21d0",xLeftrightarrow:"\u21d4",xhookleftarrow:"\u21a9",xhookrightarrow:"\u21aa",xmapsto:"\u21a6",xrightharpoondown:"\u21c1",xleftharpoondown:"\u21bd",xrightleftharpoons:"\u21cc",xleftrightharpoons:"\u21cb",xtwoheadleftarrow:"\u219e",xtwoheadrightarrow:"\u21a0",xlongequal:"=",xtofrom:"\u21c4",xrightleftarrows:"\u21c4",xrightequilibrium:"\u21cc",xleftequilibrium:"\u21cb"},qe={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},Ne=function(t){return"ordgroup"===t.type?t.body.length:1},Ie=function(t,e,r,a){var n,i=t.height+t.depth+2*r;if(/fbox|color/.test(e)){if(n=Dt.makeSpan(["stretchy",e],[],a),"fbox"===e){var o=a.color&&a.getColor();o&&(n.style.borderColor=o)}}else{var s=[];/^[bx]cancel$/.test(e)&&s.push(new P({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(e)&&s.push(new P({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var h=new L(s,{width:"100%",height:i+"em"});n=Dt.makeSvgSpan([],[h],a)}return n.height=i,n.style.height=i+"em",n},Re=function(t){var e=new ve.MathNode("mo",[new ve.TextNode(Ce[t.substr(1)])]);return e.setAttribute("stretchy","true"),e},Oe=function(t,e){var r=function(){var r=4e5,a=t.label.substr(1);if(c.contains(["widehat","widecheck","widetilde","utilde"],a)){var n,i,o,s=Ne(t.base);if(s>5)"widehat"===a||"widecheck"===a?(n=420,r=2364,o=.42,i=a+"4"):(n=312,r=2340,o=.34,i="tilde4");else{var h=[1,1,2,2,3,3][s];"widehat"===a||"widecheck"===a?(r=[0,1062,2364,2364,2364][h],n=[0,239,300,360,420][h],o=[0,.24,.3,.3,.36,.42][h],i=a+h):(r=[0,600,1033,2339,2340][h],n=[0,260,286,306,312][h],o=[0,.26,.286,.3,.306,.34][h],i="tilde"+h)}var l=new H(i),m=new L([l],{width:"100%",height:o+"em",viewBox:"0 0 "+r+" "+n,preserveAspectRatio:"none"});return{span:Dt.makeSvgSpan([],[m],e),minWidth:0,height:o}}var u,p,d=[],f=qe[a],g=f[0],x=f[1],v=f[2],b=v/1e3,y=g.length;if(1===y)u=["hide-tail"],p=[f[3]];else if(2===y)u=["halfarrow-left","halfarrow-right"],p=["xMinYMin","xMaxYMin"];else{if(3!==y)throw new Error("Correct katexImagesData or update code here to support\n "+y+" children.");u=["brace-left","brace-center","brace-right"],p=["xMinYMin","xMidYMin","xMaxYMin"]}for(var w=0;w0&&(a.style.minWidth=n+"em"),a},Ee=function(t,e){var r,a,n,i=Vt(t,"supsub");i?(r=(a=Ft(i.base,"accent")).base,i.base=r,n=function(t){if(t instanceof N)return t;throw new Error("Expected span but got "+String(t)+".")}(ue(i,e)),i.base=a):r=(a=Ft(t,"accent")).base;var o=ue(r,e.havingCrampedStyle()),s=0;if(a.isShifty&&c.isCharacterBox(r)){var h=c.getBaseElem(r);s=D(ue(h,e.havingCrampedStyle())).skew}var l,m=Math.min(o.height,e.fontMetrics().xHeight);if(a.isStretchy)l=Oe(a,e),l=Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"elem",elem:l,wrapperClasses:["svg-align"],wrapperStyle:s>0?{width:"calc(100% - "+2*s+"em)",marginLeft:2*s+"em"}:void 0}]},e);else{var u,p;"\\vec"===a.label?(u=Dt.staticSvg("vec",e),p=Dt.svgData.vec[1]):((u=D(u=Dt.makeOrd({mode:a.mode,text:a.label},e,"textord"))).italic=0,p=u.width),l=Dt.makeSpan(["accent-body"],[u]);var d="\\textcircled"===a.label;d&&(l.classes.push("accent-full"),m=o.height);var f=s;d||(f-=p/2),l.style.left=f+"em","\\textcircled"===a.label&&(l.style.top=".2em"),l=Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"kern",size:-m},{type:"elem",elem:l}]},e)}var g=Dt.makeSpan(["mord","accent"],[l],e);return n?(n.children[0]=g,n.height=Math.max(g.height,n.height),n.classes[0]="mord",n):g},Le=function(t,e){var r=t.isStretchy?Re(t.label):new ve.MathNode("mo",[be(t.label,t.mode)]),a=new ve.MathNode("mover",[Me(t.base,e),r]);return a.setAttribute("accent","true"),a},He=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(function(t){return"\\"+t}).join("|"));Qt({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:function(t,e){var r=e[0],a=!He.test(t.funcName),n=!a||"\\widehat"===t.funcName||"\\widetilde"===t.funcName||"\\widecheck"===t.funcName;return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:a,isShifty:n,base:r}},htmlBuilder:Ee,mathmlBuilder:Le}),Qt({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!1},handler:function(t,e){var r=e[0];return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:Ee,mathmlBuilder:Le}),Qt({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];return{type:"accentUnder",mode:r.mode,label:a,base:n}},htmlBuilder:function(t,e){var r=ue(t.base,e),a=Oe(t,e),n="\\utilde"===t.label?.12:0,i=Dt.makeVList({positionType:"bottom",positionData:a.height+n,children:[{type:"elem",elem:a,wrapperClasses:["svg-align"]},{type:"kern",size:n},{type:"elem",elem:r}]},e);return Dt.makeSpan(["mord","accentunder"],[i],e)},mathmlBuilder:function(t,e){var r=Re(t.label),a=new ve.MathNode("munder",[Me(t.base,e),r]);return a.setAttribute("accentunder","true"),a}});var Pe=function(t){var e=new ve.MathNode("mpadded",t?[t]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e};Qt({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium"],props:{numArgs:1,numOptionalArgs:1},handler:function(t,e,r){var a=t.parser,n=t.funcName;return{type:"xArrow",mode:a.mode,label:n,body:e[0],below:r[0]}},htmlBuilder:function(t,e){var r,a=e.style,n=e.havingStyle(a.sup()),i=Dt.wrapFragment(ue(t.body,n,e),e);i.classes.push("x-arrow-pad"),t.below&&(n=e.havingStyle(a.sub()),(r=Dt.wrapFragment(ue(t.below,n,e),e)).classes.push("x-arrow-pad"));var o,s=Oe(t,e),h=-e.fontMetrics().axisHeight+.5*s.height,l=-e.fontMetrics().axisHeight-.5*s.height-.111;if((i.depth>.25||"\\xleftequilibrium"===t.label)&&(l-=i.depth),r){var m=-e.fontMetrics().axisHeight+r.height+.5*s.height+.111;o=Dt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:l},{type:"elem",elem:s,shift:h},{type:"elem",elem:r,shift:m}]},e)}else o=Dt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:l},{type:"elem",elem:s,shift:h}]},e);return o.children[0].children[0].children[1].classes.push("svg-align"),Dt.makeSpan(["mrel","x-arrow"],[o],e)},mathmlBuilder:function(t,e){var r,a=Re(t.label);if(t.body){var n=Pe(Me(t.body,e));if(t.below){var i=Pe(Me(t.below,e));r=new ve.MathNode("munderover",[a,i,n])}else r=new ve.MathNode("mover",[a,n])}else if(t.below){var o=Pe(Me(t.below,e));r=new ve.MathNode("munder",[a,o])}else r=Pe(),r=new ve.MathNode("mover",[a,r]);return r}}),Qt({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){for(var r=t.parser,a=Ft(e[0],"ordgroup").body,n="",i=0;i","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],Je=[0,1.2,1.8,2.4,3],Qe=[{type:"small",style:w.SCRIPTSCRIPT},{type:"small",style:w.SCRIPT},{type:"small",style:w.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],tr=[{type:"small",style:w.SCRIPTSCRIPT},{type:"small",style:w.SCRIPT},{type:"small",style:w.TEXT},{type:"stack"}],er=[{type:"small",style:w.SCRIPTSCRIPT},{type:"small",style:w.SCRIPT},{type:"small",style:w.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],rr=function(t){if("small"===t.type)return"Main-Regular";if("large"===t.type)return"Size"+t.size+"-Regular";if("stack"===t.type)return"Size4-Regular";throw new Error("Add support for delim type '"+t.type+"' here.")},ar=function(t,e,r,a){for(var n=Math.min(2,3-a.style.size);ne)return r[n]}return r[r.length-1]},nr=function(t,e,r,a,n,i){var o;"<"===t||"\\lt"===t||"\u27e8"===t?t="\\langle":">"!==t&&"\\gt"!==t&&"\u27e9"!==t||(t="\\rangle"),o=c.contains(Ke,t)?Qe:c.contains($e,t)?er:tr;var s=ar(t,e,o,a);return"small"===s.type?function(t,e,r,a,n,i){var o=Dt.makeSymbol(t,"Main-Regular",n,a),s=Ue(o,e,a,i);return r&&Ge(s,a,e),s}(t,s.style,r,a,n,i):"large"===s.type?Ye(t,s.size,r,a,n,i):_e(t,e,r,a,n,i)},ir=function(t,e){var r,a,n=e.havingBaseSizing(),i=ar("\\surd",t*n.sizeMultiplier,er,n),o=n.sizeMultiplier,s=Math.max(0,e.minRuleThickness-e.fontMetrics().sqrtRuleThickness),h=0,l=0,m=0;return"small"===i.type?(t<1?o=1:t<1.4&&(o=.7),l=(1+s)/o,(r=je("sqrtMain",h=(1+s+.08)/o,m=1e3+1e3*s+80,s,e)).style.minWidth="0.853em",a=.833/o):"large"===i.type?(m=1080*Je[i.size],l=(Je[i.size]+s)/o,h=(Je[i.size]+s+.08)/o,(r=je("sqrtSize"+i.size,h,m,s,e)).style.minWidth="1.02em",a=1/o):(h=t+s+.08,l=t+s,m=Math.floor(1e3*t+s)+80,(r=je("sqrtTall",h,m,s,e)).style.minWidth="0.742em",a=1.056),r.height=l,r.style.height=h+"em",{span:r,advanceWidth:a,ruleWidth:(e.fontMetrics().sqrtRuleThickness+s)*o}},or=function(t,e,r,a,n){if("<"===t||"\\lt"===t||"\u27e8"===t?t="\\langle":">"!==t&&"\\gt"!==t&&"\u27e9"!==t||(t="\\rangle"),c.contains($e,t)||c.contains(Ke,t))return Ye(t,e,!1,r,a,n);if(c.contains(Ze,t))return _e(t,Je[e],!1,r,a,n);throw new o("Illegal delimiter: '"+t+"'")},sr=nr,hr=function(t,e,r,a,n,i){var o=a.fontMetrics().axisHeight*a.sizeMultiplier,s=5/a.fontMetrics().ptPerEm,h=Math.max(e-o,r+o),l=Math.max(h/500*901,2*h-s);return nr(t,l,!0,a,n,i)},lr={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},mr=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27e8","\\rangle","\u27e9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function cr(t,e){var r=Yt(t);if(r&&c.contains(mr,r.text))return r;throw new o("Invalid delimiter: '"+(r?r.text:JSON.stringify(t))+"' after '"+e.funcName+"'",t)}function ur(t){if(!t.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}Qt({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1},handler:function(t,e){var r=cr(e[0],t);return{type:"delimsizing",mode:t.parser.mode,size:lr[t.funcName].size,mclass:lr[t.funcName].mclass,delim:r.text}},htmlBuilder:function(t,e){return"."===t.delim?Dt.makeSpan([t.mclass]):or(t.delim,t.size,e,t.mode,[t.mclass])},mathmlBuilder:function(t){var e=[];"."!==t.delim&&e.push(be(t.delim,t.mode));var r=new ve.MathNode("mo",e);return"mopen"===t.mclass||"mclose"===t.mclass?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r}}),Qt({type:"leftright-right",names:["\\right"],props:{numArgs:1},handler:function(t,e){var r=t.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new o("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:t.parser.mode,delim:cr(e[0],t).text,color:r}}}),Qt({type:"leftright",names:["\\left"],props:{numArgs:1},handler:function(t,e){var r=cr(e[0],t),a=t.parser;++a.leftrightDepth;var n=a.parseExpression(!1);--a.leftrightDepth,a.expect("\\right",!1);var i=Ft(a.parseFunction(),"leftright-right");return{type:"leftright",mode:a.mode,body:n,left:r.text,right:i.delim,rightColor:i.color}},htmlBuilder:function(t,e){ur(t);for(var r,a,n=se(t.body,e,!0,["mopen","mclose"]),i=0,o=0,s=!1,h=0;h-1?"mpadded":"menclose",[Me(t.body,e)]);switch(t.label){case"\\cancel":a.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":a.setAttribute("notation","downdiagonalstrike");break;case"\\sout":a.setAttribute("notation","horizontalstrike");break;case"\\fbox":a.setAttribute("notation","box");break;case"\\fcolorbox":case"\\colorbox":if(r=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,a.setAttribute("width","+"+2*r+"pt"),a.setAttribute("height","+"+2*r+"pt"),a.setAttribute("lspace",r+"pt"),a.setAttribute("voffset",r+"pt"),"\\fcolorbox"===t.label){var n=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);a.setAttribute("style","border: "+n+"em solid "+String(t.borderColor))}break;case"\\xcancel":a.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return t.backgroundColor&&a.setAttribute("mathbackground",t.backgroundColor),a};Qt({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,greediness:3,argTypes:["color","text"]},handler:function(t,e,r){var a=t.parser,n=t.funcName,i=Ft(e[0],"color-token").color,o=e[1];return{type:"enclose",mode:a.mode,label:n,backgroundColor:i,body:o}},htmlBuilder:pr,mathmlBuilder:dr}),Qt({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,greediness:3,argTypes:["color","color","text"]},handler:function(t,e,r){var a=t.parser,n=t.funcName,i=Ft(e[0],"color-token").color,o=Ft(e[1],"color-token").color,s=e[2];return{type:"enclose",mode:a.mode,label:n,backgroundColor:o,borderColor:i,body:s}},htmlBuilder:pr,mathmlBuilder:dr}),Qt({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler:function(t,e){return{type:"enclose",mode:t.parser.mode,label:"\\fbox",body:e[0]}}}),Qt({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout"],props:{numArgs:1},handler:function(t,e,r){var a=t.parser,n=t.funcName,i=e[0];return{type:"enclose",mode:a.mode,label:n,body:i}},htmlBuilder:pr,mathmlBuilder:dr});var fr={};function gr(t){for(var e=t.type,r=t.names,a=t.props,n=t.handler,i=t.htmlBuilder,o=t.mathmlBuilder,s={type:e,numArgs:a.numArgs||0,greediness:1,allowedInText:!1,numOptionalArgs:0,handler:n},h=0;h0&&(b+=.25),l.push({pos:b,isDashed:t[e]})}for(y(i[0]),r=0;r0&&(M<(B+=v)&&(M=B),B=0),t.addJot&&(M+=f),z.height=S,z.depth=M,b+=S,z.pos=b,b+=M+B,h[r]=z,y(i[r+1])}var C,q,N=b/2+e.fontMetrics().axisHeight,I=t.cols||[],R=[];for(a=0,q=0;a=s)){var P=void 0;(a>0||t.hskipBeforeAndAfter)&&0!==(P=c.deflt(O.pregap,p))&&((C=Dt.makeSpan(["arraycolsep"],[])).style.width=P+"em",R.push(C));var D=[];for(r=0;r0){for(var G=Dt.makeLineSpan("hline",e,m),Y=Dt.makeLineSpan("hdashline",e,m),W=[{type:"elem",elem:h,shift:0}];l.length>0;){var X=l.pop(),_=X.pos-N;X.isDashed?W.push({type:"elem",elem:Y,shift:_}):W.push({type:"elem",elem:G,shift:_})}h=Dt.makeVList({positionType:"individualShift",children:W},e)}return Dt.makeSpan(["mord"],[h],e)},wr={c:"center ",l:"left ",r:"right "},kr=function(t,e){var r=new ve.MathNode("mtable",t.body.map(function(t){return new ve.MathNode("mtr",t.map(function(t){return new ve.MathNode("mtd",[Me(t,e)])}))})),a=.5===t.arraystretch?.1:.16+t.arraystretch-1+(t.addJot?.09:0);r.setAttribute("rowspacing",a+"em");var n="",i="";if(t.cols){var o=t.cols,s="",h=!1,l=0,m=o.length;"separator"===o[0].type&&(n+="top ",l=1),"separator"===o[o.length-1].type&&(n+="bottom ",m-=1);for(var c=l;c0?"left ":"",n+=g[g.length-1].length>0?"right ":"";for(var x=1;x0&&c&&(d=1),a[u]={type:"align",align:p,pregap:d,postgap:0}}return n.colSeparationType=c?"align":"alignat",n};gr({type:"array",names:["array","darray"],props:{numArgs:1},handler:function(t,e){var r={cols:(Yt(e[0])?[e[0]]:Ft(e[0],"ordgroup").body).map(function(t){var e=Gt(t).text;if(-1!=="lcr".indexOf(e))return{type:"align",align:e};if("|"===e)return{type:"separator",separator:"|"};if(":"===e)return{type:"separator",separator:":"};throw new o("Unknown column alignment: "+e,t)}),hskipBeforeAndAfter:!0};return vr(t.parser,r,br(t.envName))},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix"],props:{numArgs:0},handler:function(t){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[t.envName],r=vr(t.parser,{hskipBeforeAndAfter:!1},br(t.envName));return e?{type:"leftright",mode:t.mode,body:[r],left:e[0],right:e[1],rightColor:void 0}:r},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["smallmatrix"],props:{numArgs:0},handler:function(t){var e=vr(t.parser,{arraystretch:.5},"script");return e.colSeparationType="small",e},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["subarray"],props:{numArgs:1},handler:function(t,e){var r=(Yt(e[0])?[e[0]]:Ft(e[0],"ordgroup").body).map(function(t){var e=Gt(t).text;if(-1!=="lc".indexOf(e))return{type:"align",align:e};throw new o("Unknown column alignment: "+e,t)});if(r.length>1)throw new o("{subarray} can contain only one column");var a={cols:r,hskipBeforeAndAfter:!1,arraystretch:.5};if((a=vr(t.parser,a,"script")).body[0].length>1)throw new o("{subarray} can contain only one column");return a},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["cases","dcases"],props:{numArgs:0},handler:function(t){var e=vr(t.parser,{arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},br(t.envName));return{type:"leftright",mode:t.mode,body:[e],left:"\\{",right:".",rightColor:void 0}},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["aligned"],props:{numArgs:0},handler:Sr,htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["gathered"],props:{numArgs:0},handler:function(t){return vr(t.parser,{cols:[{type:"align",align:"c"}],addJot:!0},"display")},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["alignedat"],props:{numArgs:1},handler:Sr,htmlBuilder:yr,mathmlBuilder:kr}),Qt({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler:function(t,e){throw new o(t.funcName+" valid only within array environment")}});var Mr=fr;Qt({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];if("ordgroup"!==n.type)throw new o("Invalid environment name",n);for(var i="",s=0;s=w.SCRIPT.id?r.text():w.DISPLAY:"text"===t&&r.size===w.DISPLAY.size?r=w.TEXT:"script"===t?r=w.SCRIPT:"scriptscript"===t&&(r=w.SCRIPTSCRIPT),r},Rr=function(t,e){var r,a=Ir(t.size,e.style),n=a.fracNum(),i=a.fracDen();r=e.havingStyle(n);var o=ue(t.numer,r,e);if(t.continued){var s=8.5/e.fontMetrics().ptPerEm,h=3.5/e.fontMetrics().ptPerEm;o.height=o.height0?3*c:7*c,d=e.fontMetrics().denom1):(m>0?(u=e.fontMetrics().num2,p=c):(u=e.fontMetrics().num3,p=3*c),d=e.fontMetrics().denom2),l){var y=e.fontMetrics().axisHeight;u-o.depth-(y+.5*m)0&&(e="."===(e=t)?null:e),e};Qt({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,greediness:6,argTypes:["math","math","size","text","math","math"]},handler:function(t,e){var r=t.parser,a=e[4],n=e[5],i=Vt(e[0],"atom");i&&(i=Ut(e[0],"open"));var o=i?Lr(i.text):null,s=Vt(e[1],"atom");s&&(s=Ut(e[1],"close"));var h,l=s?Lr(s.text):null,m=Ft(e[2],"size"),c=null;h=!!m.isBlank||(c=m.value).number>0;var u="auto",p=Vt(e[3],"ordgroup");if(p){if(p.body.length>0){var d=Ft(p.body[0],"textord");u=Er[Number(d.text)]}}else p=Ft(e[3],"textord"),u=Er[Number(p.text)];return{type:"genfrac",mode:r.mode,numer:a,denom:n,continued:!1,hasBarLine:h,barSize:c,leftDelim:o,rightDelim:l,size:u}},htmlBuilder:Rr,mathmlBuilder:Or}),Qt({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler:function(t,e){var r=t.parser,a=(t.funcName,t.token);return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Ft(e[0],"size").value,token:a}}}),Qt({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:function(t,e){var r=t.parser,a=(t.funcName,e[0]),n=function(t){if(!t)throw new Error("Expected non-null, but got "+String(t));return t}(Ft(e[1],"infix").size),i=e[2],o=n.number>0;return{type:"genfrac",mode:r.mode,numer:a,denom:i,continued:!1,hasBarLine:o,barSize:n,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:Rr,mathmlBuilder:Or});var Hr=function(t,e){var r,a,n=e.style,i=Vt(t,"supsub");i?(r=i.sup?ue(i.sup,e.havingStyle(n.sup()),e):ue(i.sub,e.havingStyle(n.sub()),e),a=Ft(i.base,"horizBrace")):a=Ft(t,"horizBrace");var o,s=ue(a.base,e.havingBaseStyle(w.DISPLAY)),h=Oe(a,e);if(a.isOver?(o=Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:h}]},e)).children[0].children[0].children[1].classes.push("svg-align"):(o=Dt.makeVList({positionType:"bottom",positionData:s.depth+.1+h.height,children:[{type:"elem",elem:h},{type:"kern",size:.1},{type:"elem",elem:s}]},e)).children[0].children[0].children[0].classes.push("svg-align"),r){var l=Dt.makeSpan(["mord",a.isOver?"mover":"munder"],[o],e);o=a.isOver?Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},e):Dt.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},e)}return Dt.makeSpan(["mord",a.isOver?"mover":"munder"],[o],e)};Qt({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler:function(t,e){var r=t.parser,a=t.funcName;return{type:"horizBrace",mode:r.mode,label:a,isOver:/^\\over/.test(a),base:e[0]}},htmlBuilder:Hr,mathmlBuilder:function(t,e){var r=Re(t.label);return new ve.MathNode(t.isOver?"mover":"munder",[Me(t.base,e),r])}}),Qt({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:function(t,e){var r=t.parser,a=e[1],n=Ft(e[0],"url").url;return r.settings.isTrusted({command:"\\href",url:n})?{type:"href",mode:r.mode,href:n,body:ee(a)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:function(t,e){var r=se(t.body,e,!1);return Dt.makeAnchor(t.href,[],r,e)},mathmlBuilder:function(t,e){var r=Se(t.body,e);return r instanceof ge||(r=new ge("mrow",[r])),r.setAttribute("href",t.href),r}}),Qt({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:function(t,e){var r=t.parser,a=Ft(e[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:a}))return r.formatUnsupportedCmd("\\url");for(var n=[],i=0;i0&&(a=Tt(t.totalheight,e)-r,a=Number(a.toFixed(2)));var n=0;t.width.number>0&&(n=Tt(t.width,e));var i={height:r+a+"em"};n>0&&(i.width=n+"em"),a>0&&(i.verticalAlign=-a+"em");var o=new R(t.src,t.alt,i);return o.height=r,o.depth=a,o},mathmlBuilder:function(t,e){var r=new ve.MathNode("mglyph",[]);r.setAttribute("alt",t.alt);var a=Tt(t.height,e),n=0;if(t.totalheight.number>0&&(n=(n=Tt(t.totalheight,e)-a).toFixed(2),r.setAttribute("valign","-"+n+"em")),r.setAttribute("height",a+n+"em"),t.width.number>0){var i=Tt(t.width,e);r.setAttribute("width",i+"em")}return r.setAttribute("src",t.src),r}}),Qt({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],allowedInText:!0},handler:function(t,e){var r=t.parser,a=t.funcName,n=Ft(e[0],"size");if(r.settings.strict){var i="m"===a[1],o="mu"===n.value.unit;i?(o||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" supports only mu units, not "+n.value.unit+" units"),"math"!==r.mode&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" works only in math mode")):o&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:n.value}},htmlBuilder:function(t,e){return Dt.makeGlue(t.dimension,e)},mathmlBuilder:function(t,e){var r=Tt(t.dimension,e);return new ve.SpaceNode(r)}}),Qt({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];return{type:"lap",mode:r.mode,alignment:a.slice(5),body:n}},htmlBuilder:function(t,e){var r;"clap"===t.alignment?(r=Dt.makeSpan([],[ue(t.body,e)]),r=Dt.makeSpan(["inner"],[r],e)):r=Dt.makeSpan(["inner"],[ue(t.body,e)]);var a=Dt.makeSpan(["fix"],[]),n=Dt.makeSpan([t.alignment],[r,a],e),i=Dt.makeSpan(["strut"]);return i.style.height=n.height+n.depth+"em",i.style.verticalAlign=-n.depth+"em",n.children.unshift(i),n=Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n}]},e),Dt.makeSpan(["mord"],[n],e)},mathmlBuilder:function(t,e){var r=new ve.MathNode("mpadded",[Me(t.body,e)]);if("rlap"!==t.alignment){var a="llap"===t.alignment?"-1":"-0.5";r.setAttribute("lspace",a+"width")}return r.setAttribute("width","0px"),r}}),Qt({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(t,e){var r=t.funcName,a=t.parser,n=a.mode;a.switchMode("math");var i="\\("===r?"\\)":"$",o=a.parseExpression(!1,i);return a.expect(i),a.switchMode(n),{type:"styling",mode:a.mode,style:"text",body:o}}}),Qt({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(t,e){throw new o("Mismatched "+t.funcName)}});var Dr=function(t,e){switch(e.style.size){case w.DISPLAY.size:return t.display;case w.TEXT.size:return t.text;case w.SCRIPT.size:return t.script;case w.SCRIPTSCRIPT.size:return t.scriptscript;default:return t.text}};Qt({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4},handler:function(t,e){return{type:"mathchoice",mode:t.parser.mode,display:ee(e[0]),text:ee(e[1]),script:ee(e[2]),scriptscript:ee(e[3])}},htmlBuilder:function(t,e){var r=Dr(t,e),a=se(r,e,!1);return Dt.makeFragment(a)},mathmlBuilder:function(t,e){var r=Dr(t,e);return Se(r,e)}});var Fr=function(t,e,r,a,n,i,o){var s,h,l;if(t=Dt.makeSpan([],[t]),e){var m=ue(e,a.havingStyle(n.sup()),a);h={elem:m,kern:Math.max(a.fontMetrics().bigOpSpacing1,a.fontMetrics().bigOpSpacing3-m.depth)}}if(r){var c=ue(r,a.havingStyle(n.sub()),a);s={elem:c,kern:Math.max(a.fontMetrics().bigOpSpacing2,a.fontMetrics().bigOpSpacing4-c.height)}}if(h&&s){var u=a.fontMetrics().bigOpSpacing5+s.elem.height+s.elem.depth+s.kern+t.depth+o;l=Dt.makeVList({positionType:"bottom",positionData:u,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:-i+"em"},{type:"kern",size:s.kern},{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:i+"em"},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}else if(s){var p=t.height-o;l=Dt.makeVList({positionType:"top",positionData:p,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:-i+"em"},{type:"kern",size:s.kern},{type:"elem",elem:t}]},a)}else{if(!h)return t;var d=t.depth+o;l=Dt.makeVList({positionType:"bottom",positionData:d,children:[{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:i+"em"},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}return Dt.makeSpan(["mop","op-limits"],[l],a)},Vr=["\\smallint"],Ur=function(t,e){var r,a,n,i=!1,o=Vt(t,"supsub");o?(r=o.sup,a=o.sub,n=Ft(o.base,"op"),i=!0):n=Ft(t,"op");var s,h=e.style,l=!1;if(h.size===w.DISPLAY.size&&n.symbol&&!c.contains(Vr,n.name)&&(l=!0),n.symbol){var m=l?"Size2-Regular":"Size1-Regular",u="";if("\\oiint"!==n.name&&"\\oiiint"!==n.name||(u=n.name.substr(1),n.name="oiint"===u?"\\iint":"\\iiint"),s=Dt.makeSymbol(n.name,m,"math",e,["mop","op-symbol",l?"large-op":"small-op"]),u.length>0){var p=s.italic,d=Dt.staticSvg(u+"Size"+(l?"2":"1"),e);s=Dt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:0},{type:"elem",elem:d,shift:l?.08:0}]},e),n.name="\\"+u,s.classes.unshift("mop"),s.italic=p}}else if(n.body){var f=se(n.body,e,!0);1===f.length&&f[0]instanceof E?(s=f[0]).classes[0]="mop":s=Dt.makeSpan(["mop"],Dt.tryCombineChars(f),e)}else{for(var g=[],x=1;x0){for(var h=n.body.map(function(t){var e=t.text;return"string"==typeof e?{type:"textord",mode:t.mode,text:e}:t}),l=se(h,e.withFont("mathrm"),!0),m=0;m=0?s.setAttribute("height","+"+n+"em"):(s.setAttribute("height",n+"em"),s.setAttribute("depth","+"+-n+"em")),s.setAttribute("voffset",n+"em"),s}});var jr=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];Qt({type:"sizing",names:jr,props:{numArgs:0,allowedInText:!0},handler:function(t,e){var r=t.breakOnTokenText,a=t.funcName,n=t.parser,i=n.parseExpression(!1,r);return{type:"sizing",mode:n.mode,size:jr.indexOf(a)+1,body:i}},htmlBuilder:function(t,e){var r=e.havingSize(t.size);return _r(t.body,r,e)},mathmlBuilder:function(t,e){var r=e.havingSize(t.size),a=ke(t.body,r),n=new ve.MathNode("mstyle",a);return n.setAttribute("mathsize",r.sizeMultiplier+"em"),n}}),Qt({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:function(t,e,r){var a=t.parser,n=!1,i=!1,o=r[0]&&Ft(r[0],"ordgroup");if(o)for(var s="",h=0;hr.height+r.depth+i&&(i=(i+c-r.height-r.depth)/2);var u=h.height-r.height-i-l;r.style.paddingLeft=m+"em";var p=Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+u)},{type:"elem",elem:h},{type:"kern",size:l}]},e);if(t.index){var d=e.havingStyle(w.SCRIPTSCRIPT),f=ue(t.index,d,e),g=.6*(p.height-p.depth),x=Dt.makeVList({positionType:"shift",positionData:-g,children:[{type:"elem",elem:f}]},e),v=Dt.makeSpan(["root"],[x]);return Dt.makeSpan(["mord","sqrt"],[v,p],e)}return Dt.makeSpan(["mord","sqrt"],[p],e)},mathmlBuilder:function(t,e){var r=t.body,a=t.index;return a?new ve.MathNode("mroot",[Me(r,e),Me(a,e)]):new ve.MathNode("msqrt",[Me(r,e)])}});var $r={display:w.DISPLAY,text:w.TEXT,script:w.SCRIPT,scriptscript:w.SCRIPTSCRIPT};Qt({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0},handler:function(t,e){var r=t.breakOnTokenText,a=t.funcName,n=t.parser,i=n.parseExpression(!0,r),o=a.slice(1,a.length-5);return{type:"styling",mode:n.mode,style:o,body:i}},htmlBuilder:function(t,e){var r=$r[t.style],a=e.havingStyle(r).withFont("");return _r(t.body,a,e)},mathmlBuilder:function(t,e){var r=$r[t.style],a=e.havingStyle(r),n=ke(t.body,a),i=new ve.MathNode("mstyle",n),o={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[t.style];return i.setAttribute("scriptlevel",o[0]),i.setAttribute("displaystyle",o[1]),i}});te({type:"supsub",htmlBuilder:function(t,e){var r=function(t,e){var r=t.base;return r?"op"===r.type?r.limits&&(e.style.size===w.DISPLAY.size||r.alwaysHandleSupSub)?Ur:null:"operatorname"===r.type?r.alwaysHandleSupSub&&(e.style.size===w.DISPLAY.size||r.limits)?Xr:null:"accent"===r.type?c.isCharacterBox(r.base)?Ee:null:"horizBrace"===r.type&&!t.sub===r.isOver?Hr:null:null}(t,e);if(r)return r(t,e);var a,n,i,o=t.base,s=t.sup,h=t.sub,l=ue(o,e),m=e.fontMetrics(),u=0,p=0,d=o&&c.isCharacterBox(o);if(s){var f=e.havingStyle(e.style.sup());a=ue(s,f,e),d||(u=l.height-f.fontMetrics().supDrop*f.sizeMultiplier/e.sizeMultiplier)}if(h){var g=e.havingStyle(e.style.sub());n=ue(h,g,e),d||(p=l.depth+g.fontMetrics().subDrop*g.sizeMultiplier/e.sizeMultiplier)}i=e.style===w.DISPLAY?m.sup1:e.style.cramped?m.sup3:m.sup2;var x,v=e.sizeMultiplier,b=.5/m.ptPerEm/v+"em",y=null;if(n){var k=t.base&&"op"===t.base.type&&t.base.name&&("\\oiint"===t.base.name||"\\oiiint"===t.base.name);(l instanceof E||k)&&(y=-l.italic+"em")}if(a&&n){u=Math.max(u,i,a.depth+.25*m.xHeight),p=Math.max(p,m.sub2);var S=4*m.defaultRuleThickness;if(u-a.depth-(n.height-p)0&&(u+=M,p-=M)}var z=[{type:"elem",elem:n,shift:p,marginRight:b,marginLeft:y},{type:"elem",elem:a,shift:-u,marginRight:b}];x=Dt.makeVList({positionType:"individualShift",children:z},e)}else if(n){p=Math.max(p,m.sub1,n.height-.8*m.xHeight);var A=[{type:"elem",elem:n,marginLeft:y,marginRight:b}];x=Dt.makeVList({positionType:"shift",positionData:p,children:A},e)}else{if(!a)throw new Error("supsub must have either sup or sub.");u=Math.max(u,i,a.depth+.25*m.xHeight),x=Dt.makeVList({positionType:"shift",positionData:-u,children:[{type:"elem",elem:a,marginRight:b}]},e)}var T=me(l,"right")||"mord";return Dt.makeSpan([T],[l,Dt.makeSpan(["msupsub"],[x])],e)},mathmlBuilder:function(t,e){var r,a=!1,n=Vt(t.base,"horizBrace");n&&!!t.sup===n.isOver&&(a=!0,r=n.isOver),!t.base||"op"!==t.base.type&&"operatorname"!==t.base.type||(t.base.parentIsSupSub=!0);var i,o=[Me(t.base,e)];if(t.sub&&o.push(Me(t.sub,e)),t.sup&&o.push(Me(t.sup,e)),a)i=r?"mover":"munder";else if(t.sub)if(t.sup){var s=t.base;i=s&&"op"===s.type&&s.limits&&e.style===w.DISPLAY?"munderover":s&&"operatorname"===s.type&&s.alwaysHandleSupSub&&(e.style===w.DISPLAY||s.limits)?"munderover":"msubsup"}else{var h=t.base;i=h&&"op"===h.type&&h.limits&&(e.style===w.DISPLAY||h.alwaysHandleSupSub)?"munder":h&&"operatorname"===h.type&&h.alwaysHandleSupSub&&(h.limits||e.style===w.DISPLAY)?"munder":"msub"}else{var l=t.base;i=l&&"op"===l.type&&l.limits&&(e.style===w.DISPLAY||l.alwaysHandleSupSub)?"mover":l&&"operatorname"===l.type&&l.alwaysHandleSupSub&&(l.limits||e.style===w.DISPLAY)?"mover":"msup"}return new ve.MathNode(i,o)}}),te({type:"atom",htmlBuilder:function(t,e){return Dt.mathsym(t.text,t.mode,e,["m"+t.family])},mathmlBuilder:function(t,e){var r=new ve.MathNode("mo",[be(t.text,t.mode)]);if("bin"===t.family){var a=we(t,e);"bold-italic"===a&&r.setAttribute("mathvariant",a)}else"punct"===t.family?r.setAttribute("separator","true"):"open"!==t.family&&"close"!==t.family||r.setAttribute("stretchy","false");return r}});var Zr={mi:"italic",mn:"normal",mtext:"normal"};te({type:"mathord",htmlBuilder:function(t,e){return Dt.makeOrd(t,e,"mathord")},mathmlBuilder:function(t,e){var r=new ve.MathNode("mi",[be(t.text,t.mode,e)]),a=we(t,e)||"italic";return a!==Zr[r.type]&&r.setAttribute("mathvariant",a),r}}),te({type:"textord",htmlBuilder:function(t,e){return Dt.makeOrd(t,e,"textord")},mathmlBuilder:function(t,e){var r,a=be(t.text,t.mode,e),n=we(t,e)||"normal";return r="text"===t.mode?new ve.MathNode("mtext",[a]):/[0-9]/.test(t.text)?new ve.MathNode("mn",[a]):"\\prime"===t.text?new ve.MathNode("mo",[a]):new ve.MathNode("mi",[a]),n!==Zr[r.type]&&r.setAttribute("mathvariant",n),r}});var Kr={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},Jr={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};te({type:"spacing",htmlBuilder:function(t,e){if(Jr.hasOwnProperty(t.text)){var r=Jr[t.text].className||"";if("text"===t.mode){var a=Dt.makeOrd(t,e,"textord");return a.classes.push(r),a}return Dt.makeSpan(["mspace",r],[Dt.mathsym(t.text,t.mode,e)],e)}if(Kr.hasOwnProperty(t.text))return Dt.makeSpan(["mspace",Kr[t.text]],[],e);throw new o('Unknown type of space "'+t.text+'"')},mathmlBuilder:function(t,e){if(!Jr.hasOwnProperty(t.text)){if(Kr.hasOwnProperty(t.text))return new ve.MathNode("mspace");throw new o('Unknown type of space "'+t.text+'"')}return new ve.MathNode("mtext",[new ve.TextNode("\xa0")])}});var Qr=function(){var t=new ve.MathNode("mtd",[]);return t.setAttribute("width","50%"),t};te({type:"tag",mathmlBuilder:function(t,e){var r=new ve.MathNode("mtable",[new ve.MathNode("mtr",[Qr(),new ve.MathNode("mtd",[Se(t.body,e)]),Qr(),new ve.MathNode("mtd",[Se(t.tag,e)])])]);return r.setAttribute("width","100%"),r}});var ta={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},ea={"\\textbf":"textbf","\\textmd":"textmd"},ra={"\\textit":"textit","\\textup":"textup"},aa=function(t,e){var r=t.font;return r?ta[r]?e.withTextFontFamily(ta[r]):ea[r]?e.withTextFontWeight(ea[r]):e.withTextFontShape(ra[r]):e};Qt({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],greediness:2,allowedInText:!0},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];return{type:"text",mode:r.mode,body:ee(n),font:a}},htmlBuilder:function(t,e){var r=aa(t,e),a=se(t.body,r,!0);return Dt.makeSpan(["mord","text"],Dt.tryCombineChars(a),r)},mathmlBuilder:function(t,e){var r=aa(t,e);return Se(t.body,r)}}),Qt({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){return{type:"underline",mode:t.parser.mode,body:e[0]}},htmlBuilder:function(t,e){var r=ue(t.body,e),a=Dt.makeLineSpan("underline-line",e),n=e.fontMetrics().defaultRuleThickness,i=Dt.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:n},{type:"elem",elem:a},{type:"kern",size:3*n},{type:"elem",elem:r}]},e);return Dt.makeSpan(["mord","underline"],[i],e)},mathmlBuilder:function(t,e){var r=new ve.MathNode("mo",[new ve.TextNode("\u203e")]);r.setAttribute("stretchy","true");var a=new ve.MathNode("munder",[Me(t.body,e),r]);return a.setAttribute("accentunder","true"),a}}),Qt({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler:function(t,e,r){throw new o("\\verb ended by end of line instead of matching delimiter")},htmlBuilder:function(t,e){for(var r=na(t),a=[],n=e.havingStyle(e.style.text()),i=0;i0&&(this.undefStack[this.undefStack.length-1][t]=e)}else{var n=this.undefStack[this.undefStack.length-1];n&&!n.hasOwnProperty(t)&&(n[t]=this.current[t])}this.current[t]=e},t}(),ca={},ua=ca;function pa(t,e){ca[t]=e}pa("\\@firstoftwo",function(t){return{tokens:t.consumeArgs(2)[0],numArgs:0}}),pa("\\@secondoftwo",function(t){return{tokens:t.consumeArgs(2)[1],numArgs:0}}),pa("\\@ifnextchar",function(t){var e=t.consumeArgs(3),r=t.future();return 1===e[0].length&&e[0][0].text===r.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}}),pa("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),pa("\\TextOrMath",function(t){var e=t.consumeArgs(2);return"text"===t.mode?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});var da={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};pa("\\char",function(t){var e,r=t.popToken(),a="";if("'"===r.text)e=8,r=t.popToken();else if('"'===r.text)e=16,r=t.popToken();else if("`"===r.text)if("\\"===(r=t.popToken()).text[0])a=r.text.charCodeAt(1);else{if("EOF"===r.text)throw new o("\\char` missing argument");a=r.text.charCodeAt(0)}else e=10;if(e){if(null==(a=da[r.text])||a>=e)throw new o("Invalid base-"+e+" digit "+r.text);for(var n;null!=(n=da[t.future().text])&&n":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};pa("\\dots",function(t){var e="\\dotso",r=t.expandAfterFuture().text;return r in xa?e=xa[r]:"\\not"===r.substr(0,4)?e="\\dotsb":r in j.math&&c.contains(["bin","rel"],j.math[r].group)&&(e="\\dotsb"),e});var va={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};pa("\\dotso",function(t){return t.future().text in va?"\\ldots\\,":"\\ldots"}),pa("\\dotsc",function(t){var e=t.future().text;return e in va&&","!==e?"\\ldots\\,":"\\ldots"}),pa("\\cdots",function(t){return t.future().text in va?"\\@cdots\\,":"\\@cdots"}),pa("\\dotsb","\\cdots"),pa("\\dotsm","\\cdots"),pa("\\dotsi","\\!\\cdots"),pa("\\dotsx","\\ldots\\,"),pa("\\DOTSI","\\relax"),pa("\\DOTSB","\\relax"),pa("\\DOTSX","\\relax"),pa("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),pa("\\,","\\tmspace+{3mu}{.1667em}"),pa("\\thinspace","\\,"),pa("\\>","\\mskip{4mu}"),pa("\\:","\\tmspace+{4mu}{.2222em}"),pa("\\medspace","\\:"),pa("\\;","\\tmspace+{5mu}{.2777em}"),pa("\\thickspace","\\;"),pa("\\!","\\tmspace-{3mu}{.1667em}"),pa("\\negthinspace","\\!"),pa("\\negmedspace","\\tmspace-{4mu}{.2222em}"),pa("\\negthickspace","\\tmspace-{5mu}{.277em}"),pa("\\enspace","\\kern.5em "),pa("\\enskip","\\hskip.5em\\relax"),pa("\\quad","\\hskip1em\\relax"),pa("\\qquad","\\hskip2em\\relax"),pa("\\tag","\\@ifstar\\tag@literal\\tag@paren"),pa("\\tag@paren","\\tag@literal{({#1})}"),pa("\\tag@literal",function(t){if(t.macros.get("\\df@tag"))throw new o("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"}),pa("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),pa("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),pa("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),pa("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),pa("\\pmb","\\html@mathml{\\@binrel{#1}{\\mathrlap{#1}\\kern0.5px#1}}{\\mathbf{#1}}"),pa("\\\\","\\newline"),pa("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var ba=F["Main-Regular"]["T".charCodeAt(0)][1]-.7*F["Main-Regular"]["A".charCodeAt(0)][1]+"em";pa("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+ba+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),pa("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+ba+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),pa("\\hspace","\\@ifstar\\@hspacer\\@hspace"),pa("\\@hspace","\\hskip #1\\relax"),pa("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),pa("\\ordinarycolon",":"),pa("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),pa("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),pa("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),pa("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),pa("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),pa("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),pa("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),pa("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),pa("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),pa("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),pa("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),pa("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),pa("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),pa("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),pa("\u2237","\\dblcolon"),pa("\u2239","\\eqcolon"),pa("\u2254","\\coloneqq"),pa("\u2255","\\eqqcolon"),pa("\u2a74","\\Coloneqq"),pa("\\ratio","\\vcentcolon"),pa("\\coloncolon","\\dblcolon"),pa("\\colonequals","\\coloneqq"),pa("\\coloncolonequals","\\Coloneqq"),pa("\\equalscolon","\\eqqcolon"),pa("\\equalscoloncolon","\\Eqqcolon"),pa("\\colonminus","\\coloneq"),pa("\\coloncolonminus","\\Coloneq"),pa("\\minuscolon","\\eqcolon"),pa("\\minuscoloncolon","\\Eqcolon"),pa("\\coloncolonapprox","\\Colonapprox"),pa("\\coloncolonsim","\\Colonsim"),pa("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),pa("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),pa("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),pa("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),pa("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220c}}"),pa("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),pa("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),pa("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}"),pa("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}"),pa("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}"),pa("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}"),pa("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}"),pa("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}"),pa("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}"),pa("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}"),pa("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}"),pa("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}"),pa("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228a}"),pa("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2acb}"),pa("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228b}"),pa("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2acc}"),pa("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27e6}}"),pa("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27e7}}"),pa("\u27e6","\\llbracket"),pa("\u27e7","\\rrbracket"),pa("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}"),pa("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}"),pa("\u2983","\\lBrace"),pa("\u2984","\\rBrace"),pa("\\darr","\\downarrow"),pa("\\dArr","\\Downarrow"),pa("\\Darr","\\Downarrow"),pa("\\lang","\\langle"),pa("\\rang","\\rangle"),pa("\\uarr","\\uparrow"),pa("\\uArr","\\Uparrow"),pa("\\Uarr","\\Uparrow"),pa("\\N","\\mathbb{N}"),pa("\\R","\\mathbb{R}"),pa("\\Z","\\mathbb{Z}"),pa("\\alef","\\aleph"),pa("\\alefsym","\\aleph"),pa("\\Alpha","\\mathrm{A}"),pa("\\Beta","\\mathrm{B}"),pa("\\bull","\\bullet"),pa("\\Chi","\\mathrm{X}"),pa("\\clubs","\\clubsuit"),pa("\\cnums","\\mathbb{C}"),pa("\\Complex","\\mathbb{C}"),pa("\\Dagger","\\ddagger"),pa("\\diamonds","\\diamondsuit"),pa("\\empty","\\emptyset"),pa("\\Epsilon","\\mathrm{E}"),pa("\\Eta","\\mathrm{H}"),pa("\\exist","\\exists"),pa("\\harr","\\leftrightarrow"),pa("\\hArr","\\Leftrightarrow"),pa("\\Harr","\\Leftrightarrow"),pa("\\hearts","\\heartsuit"),pa("\\image","\\Im"),pa("\\infin","\\infty"),pa("\\Iota","\\mathrm{I}"),pa("\\isin","\\in"),pa("\\Kappa","\\mathrm{K}"),pa("\\larr","\\leftarrow"),pa("\\lArr","\\Leftarrow"),pa("\\Larr","\\Leftarrow"),pa("\\lrarr","\\leftrightarrow"),pa("\\lrArr","\\Leftrightarrow"),pa("\\Lrarr","\\Leftrightarrow"),pa("\\Mu","\\mathrm{M}"),pa("\\natnums","\\mathbb{N}"),pa("\\Nu","\\mathrm{N}"),pa("\\Omicron","\\mathrm{O}"),pa("\\plusmn","\\pm"),pa("\\rarr","\\rightarrow"),pa("\\rArr","\\Rightarrow"),pa("\\Rarr","\\Rightarrow"),pa("\\real","\\Re"),pa("\\reals","\\mathbb{R}"),pa("\\Reals","\\mathbb{R}"),pa("\\Rho","\\mathrm{P}"),pa("\\sdot","\\cdot"),pa("\\sect","\\S"),pa("\\spades","\\spadesuit"),pa("\\sub","\\subset"),pa("\\sube","\\subseteq"),pa("\\supe","\\supseteq"),pa("\\Tau","\\mathrm{T}"),pa("\\thetasym","\\vartheta"),pa("\\weierp","\\wp"),pa("\\Zeta","\\mathrm{Z}"),pa("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),pa("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),pa("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),pa("\\blue","\\textcolor{##6495ed}{#1}"),pa("\\orange","\\textcolor{##ffa500}{#1}"),pa("\\pink","\\textcolor{##ff00af}{#1}"),pa("\\red","\\textcolor{##df0030}{#1}"),pa("\\green","\\textcolor{##28ae7b}{#1}"),pa("\\gray","\\textcolor{gray}{#1}"),pa("\\purple","\\textcolor{##9d38bd}{#1}"),pa("\\blueA","\\textcolor{##ccfaff}{#1}"),pa("\\blueB","\\textcolor{##80f6ff}{#1}"),pa("\\blueC","\\textcolor{##63d9ea}{#1}"),pa("\\blueD","\\textcolor{##11accd}{#1}"),pa("\\blueE","\\textcolor{##0c7f99}{#1}"),pa("\\tealA","\\textcolor{##94fff5}{#1}"),pa("\\tealB","\\textcolor{##26edd5}{#1}"),pa("\\tealC","\\textcolor{##01d1c1}{#1}"),pa("\\tealD","\\textcolor{##01a995}{#1}"),pa("\\tealE","\\textcolor{##208170}{#1}"),pa("\\greenA","\\textcolor{##b6ffb0}{#1}"),pa("\\greenB","\\textcolor{##8af281}{#1}"),pa("\\greenC","\\textcolor{##74cf70}{#1}"),pa("\\greenD","\\textcolor{##1fab54}{#1}"),pa("\\greenE","\\textcolor{##0d923f}{#1}"),pa("\\goldA","\\textcolor{##ffd0a9}{#1}"),pa("\\goldB","\\textcolor{##ffbb71}{#1}"),pa("\\goldC","\\textcolor{##ff9c39}{#1}"),pa("\\goldD","\\textcolor{##e07d10}{#1}"),pa("\\goldE","\\textcolor{##a75a05}{#1}"),pa("\\redA","\\textcolor{##fca9a9}{#1}"),pa("\\redB","\\textcolor{##ff8482}{#1}"),pa("\\redC","\\textcolor{##f9685d}{#1}"),pa("\\redD","\\textcolor{##e84d39}{#1}"),pa("\\redE","\\textcolor{##bc2612}{#1}"),pa("\\maroonA","\\textcolor{##ffbde0}{#1}"),pa("\\maroonB","\\textcolor{##ff92c6}{#1}"),pa("\\maroonC","\\textcolor{##ed5fa6}{#1}"),pa("\\maroonD","\\textcolor{##ca337c}{#1}"),pa("\\maroonE","\\textcolor{##9e034e}{#1}"),pa("\\purpleA","\\textcolor{##ddd7ff}{#1}"),pa("\\purpleB","\\textcolor{##c6b9fc}{#1}"),pa("\\purpleC","\\textcolor{##aa87ff}{#1}"),pa("\\purpleD","\\textcolor{##7854ab}{#1}"),pa("\\purpleE","\\textcolor{##543b78}{#1}"),pa("\\mintA","\\textcolor{##f5f9e8}{#1}"),pa("\\mintB","\\textcolor{##edf2df}{#1}"),pa("\\mintC","\\textcolor{##e0e5cc}{#1}"),pa("\\grayA","\\textcolor{##f6f7f7}{#1}"),pa("\\grayB","\\textcolor{##f0f1f2}{#1}"),pa("\\grayC","\\textcolor{##e3e5e6}{#1}"),pa("\\grayD","\\textcolor{##d6d8da}{#1}"),pa("\\grayE","\\textcolor{##babec2}{#1}"),pa("\\grayF","\\textcolor{##888d93}{#1}"),pa("\\grayG","\\textcolor{##626569}{#1}"),pa("\\grayH","\\textcolor{##3b3e40}{#1}"),pa("\\grayI","\\textcolor{##21242c}{#1}"),pa("\\kaBlue","\\textcolor{##314453}{#1}"),pa("\\kaGreen","\\textcolor{##71B307}{#1}");var ya={"\\relax":!0,"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},wa=function(){function t(t,e,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=e,this.expansionCount=0,this.feed(t),this.macros=new ma(ua,e.macros),this.mode=r,this.stack=[]}var e=t.prototype;return e.feed=function(t){this.lexer=new la(t,this.settings)},e.switchMode=function(t){this.mode=t},e.beginGroup=function(){this.macros.beginGroup()},e.endGroup=function(){this.macros.endGroup()},e.future=function(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]},e.popToken=function(){return this.future(),this.stack.pop()},e.pushToken=function(t){this.stack.push(t)},e.pushTokens=function(t){var e;(e=this.stack).push.apply(e,t)},e.consumeSpaces=function(){for(;;){if(" "!==this.future().text)break;this.stack.pop()}},e.consumeArgs=function(t){for(var e=[],r=0;rthis.settings.maxExpand)throw new o("Too many expansions: infinite loop or need to increase maxExpand setting");var a=r.tokens;if(r.numArgs)for(var n=this.consumeArgs(r.numArgs),i=(a=a.slice()).length-1;i>=0;--i){var s=a[i];if("#"===s.text){if(0===i)throw new o("Incomplete placeholder at end of macro body",s);if("#"===(s=a[--i]).text)a.splice(i+1,1);else{if(!/^[1-9]$/.test(s.text))throw new o("Not a valid argument number",s);var h;(h=a).splice.apply(h,[i,2].concat(n[+s.text-1]))}}}return this.pushTokens(a),a},e.expandAfterFuture=function(){return this.expandOnce(),this.future()},e.expandNextToken=function(){for(;;){var t=this.expandOnce();if(t instanceof n){if("\\relax"!==t.text)return this.stack.pop();this.stack.pop()}}throw new Error},e.expandMacro=function(t){if(this.macros.get(t)){var e=[],r=this.stack.length;for(this.pushToken(new n(t));this.stack.length>r;){this.expandOnce()instanceof n&&e.push(this.stack.pop())}return e}},e.expandMacroAsText=function(t){var e=this.expandMacro(t);return e?e.map(function(t){return t.text}).join(""):e},e._getExpansion=function(t){var e=this.macros.get(t);if(null==e)return e;var r="function"==typeof e?e(this):e;if("string"==typeof r){var a=0;if(-1!==r.indexOf("#"))for(var n=r.replace(/##/g,"");-1!==n.indexOf("#"+(a+1));)++a;for(var i=new la(r,this.settings),o=[],s=i.lex();"EOF"!==s.text;)o.push(s),s=i.lex();return o.reverse(),{tokens:o,numArgs:a}}return r},e.isDefined=function(t){return this.macros.has(t)||ia.hasOwnProperty(t)||j.math.hasOwnProperty(t)||j.text.hasOwnProperty(t)||ya.hasOwnProperty(t)},t}(),ka={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030c":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030a":{text:"\\r",math:"\\mathring"},"\u030b":{text:"\\H"}},Sa={"\xe1":"a\u0301","\xe0":"a\u0300","\xe4":"a\u0308","\u01df":"a\u0308\u0304","\xe3":"a\u0303","\u0101":"a\u0304","\u0103":"a\u0306","\u1eaf":"a\u0306\u0301","\u1eb1":"a\u0306\u0300","\u1eb5":"a\u0306\u0303","\u01ce":"a\u030c","\xe2":"a\u0302","\u1ea5":"a\u0302\u0301","\u1ea7":"a\u0302\u0300","\u1eab":"a\u0302\u0303","\u0227":"a\u0307","\u01e1":"a\u0307\u0304","\xe5":"a\u030a","\u01fb":"a\u030a\u0301","\u1e03":"b\u0307","\u0107":"c\u0301","\u010d":"c\u030c","\u0109":"c\u0302","\u010b":"c\u0307","\u010f":"d\u030c","\u1e0b":"d\u0307","\xe9":"e\u0301","\xe8":"e\u0300","\xeb":"e\u0308","\u1ebd":"e\u0303","\u0113":"e\u0304","\u1e17":"e\u0304\u0301","\u1e15":"e\u0304\u0300","\u0115":"e\u0306","\u011b":"e\u030c","\xea":"e\u0302","\u1ebf":"e\u0302\u0301","\u1ec1":"e\u0302\u0300","\u1ec5":"e\u0302\u0303","\u0117":"e\u0307","\u1e1f":"f\u0307","\u01f5":"g\u0301","\u1e21":"g\u0304","\u011f":"g\u0306","\u01e7":"g\u030c","\u011d":"g\u0302","\u0121":"g\u0307","\u1e27":"h\u0308","\u021f":"h\u030c","\u0125":"h\u0302","\u1e23":"h\u0307","\xed":"i\u0301","\xec":"i\u0300","\xef":"i\u0308","\u1e2f":"i\u0308\u0301","\u0129":"i\u0303","\u012b":"i\u0304","\u012d":"i\u0306","\u01d0":"i\u030c","\xee":"i\u0302","\u01f0":"j\u030c","\u0135":"j\u0302","\u1e31":"k\u0301","\u01e9":"k\u030c","\u013a":"l\u0301","\u013e":"l\u030c","\u1e3f":"m\u0301","\u1e41":"m\u0307","\u0144":"n\u0301","\u01f9":"n\u0300","\xf1":"n\u0303","\u0148":"n\u030c","\u1e45":"n\u0307","\xf3":"o\u0301","\xf2":"o\u0300","\xf6":"o\u0308","\u022b":"o\u0308\u0304","\xf5":"o\u0303","\u1e4d":"o\u0303\u0301","\u1e4f":"o\u0303\u0308","\u022d":"o\u0303\u0304","\u014d":"o\u0304","\u1e53":"o\u0304\u0301","\u1e51":"o\u0304\u0300","\u014f":"o\u0306","\u01d2":"o\u030c","\xf4":"o\u0302","\u1ed1":"o\u0302\u0301","\u1ed3":"o\u0302\u0300","\u1ed7":"o\u0302\u0303","\u022f":"o\u0307","\u0231":"o\u0307\u0304","\u0151":"o\u030b","\u1e55":"p\u0301","\u1e57":"p\u0307","\u0155":"r\u0301","\u0159":"r\u030c","\u1e59":"r\u0307","\u015b":"s\u0301","\u1e65":"s\u0301\u0307","\u0161":"s\u030c","\u1e67":"s\u030c\u0307","\u015d":"s\u0302","\u1e61":"s\u0307","\u1e97":"t\u0308","\u0165":"t\u030c","\u1e6b":"t\u0307","\xfa":"u\u0301","\xf9":"u\u0300","\xfc":"u\u0308","\u01d8":"u\u0308\u0301","\u01dc":"u\u0308\u0300","\u01d6":"u\u0308\u0304","\u01da":"u\u0308\u030c","\u0169":"u\u0303","\u1e79":"u\u0303\u0301","\u016b":"u\u0304","\u1e7b":"u\u0304\u0308","\u016d":"u\u0306","\u01d4":"u\u030c","\xfb":"u\u0302","\u016f":"u\u030a","\u0171":"u\u030b","\u1e7d":"v\u0303","\u1e83":"w\u0301","\u1e81":"w\u0300","\u1e85":"w\u0308","\u0175":"w\u0302","\u1e87":"w\u0307","\u1e98":"w\u030a","\u1e8d":"x\u0308","\u1e8b":"x\u0307","\xfd":"y\u0301","\u1ef3":"y\u0300","\xff":"y\u0308","\u1ef9":"y\u0303","\u0233":"y\u0304","\u0177":"y\u0302","\u1e8f":"y\u0307","\u1e99":"y\u030a","\u017a":"z\u0301","\u017e":"z\u030c","\u1e91":"z\u0302","\u017c":"z\u0307","\xc1":"A\u0301","\xc0":"A\u0300","\xc4":"A\u0308","\u01de":"A\u0308\u0304","\xc3":"A\u0303","\u0100":"A\u0304","\u0102":"A\u0306","\u1eae":"A\u0306\u0301","\u1eb0":"A\u0306\u0300","\u1eb4":"A\u0306\u0303","\u01cd":"A\u030c","\xc2":"A\u0302","\u1ea4":"A\u0302\u0301","\u1ea6":"A\u0302\u0300","\u1eaa":"A\u0302\u0303","\u0226":"A\u0307","\u01e0":"A\u0307\u0304","\xc5":"A\u030a","\u01fa":"A\u030a\u0301","\u1e02":"B\u0307","\u0106":"C\u0301","\u010c":"C\u030c","\u0108":"C\u0302","\u010a":"C\u0307","\u010e":"D\u030c","\u1e0a":"D\u0307","\xc9":"E\u0301","\xc8":"E\u0300","\xcb":"E\u0308","\u1ebc":"E\u0303","\u0112":"E\u0304","\u1e16":"E\u0304\u0301","\u1e14":"E\u0304\u0300","\u0114":"E\u0306","\u011a":"E\u030c","\xca":"E\u0302","\u1ebe":"E\u0302\u0301","\u1ec0":"E\u0302\u0300","\u1ec4":"E\u0302\u0303","\u0116":"E\u0307","\u1e1e":"F\u0307","\u01f4":"G\u0301","\u1e20":"G\u0304","\u011e":"G\u0306","\u01e6":"G\u030c","\u011c":"G\u0302","\u0120":"G\u0307","\u1e26":"H\u0308","\u021e":"H\u030c","\u0124":"H\u0302","\u1e22":"H\u0307","\xcd":"I\u0301","\xcc":"I\u0300","\xcf":"I\u0308","\u1e2e":"I\u0308\u0301","\u0128":"I\u0303","\u012a":"I\u0304","\u012c":"I\u0306","\u01cf":"I\u030c","\xce":"I\u0302","\u0130":"I\u0307","\u0134":"J\u0302","\u1e30":"K\u0301","\u01e8":"K\u030c","\u0139":"L\u0301","\u013d":"L\u030c","\u1e3e":"M\u0301","\u1e40":"M\u0307","\u0143":"N\u0301","\u01f8":"N\u0300","\xd1":"N\u0303","\u0147":"N\u030c","\u1e44":"N\u0307","\xd3":"O\u0301","\xd2":"O\u0300","\xd6":"O\u0308","\u022a":"O\u0308\u0304","\xd5":"O\u0303","\u1e4c":"O\u0303\u0301","\u1e4e":"O\u0303\u0308","\u022c":"O\u0303\u0304","\u014c":"O\u0304","\u1e52":"O\u0304\u0301","\u1e50":"O\u0304\u0300","\u014e":"O\u0306","\u01d1":"O\u030c","\xd4":"O\u0302","\u1ed0":"O\u0302\u0301","\u1ed2":"O\u0302\u0300","\u1ed6":"O\u0302\u0303","\u022e":"O\u0307","\u0230":"O\u0307\u0304","\u0150":"O\u030b","\u1e54":"P\u0301","\u1e56":"P\u0307","\u0154":"R\u0301","\u0158":"R\u030c","\u1e58":"R\u0307","\u015a":"S\u0301","\u1e64":"S\u0301\u0307","\u0160":"S\u030c","\u1e66":"S\u030c\u0307","\u015c":"S\u0302","\u1e60":"S\u0307","\u0164":"T\u030c","\u1e6a":"T\u0307","\xda":"U\u0301","\xd9":"U\u0300","\xdc":"U\u0308","\u01d7":"U\u0308\u0301","\u01db":"U\u0308\u0300","\u01d5":"U\u0308\u0304","\u01d9":"U\u0308\u030c","\u0168":"U\u0303","\u1e78":"U\u0303\u0301","\u016a":"U\u0304","\u1e7a":"U\u0304\u0308","\u016c":"U\u0306","\u01d3":"U\u030c","\xdb":"U\u0302","\u016e":"U\u030a","\u0170":"U\u030b","\u1e7c":"V\u0303","\u1e82":"W\u0301","\u1e80":"W\u0300","\u1e84":"W\u0308","\u0174":"W\u0302","\u1e86":"W\u0307","\u1e8c":"X\u0308","\u1e8a":"X\u0307","\xdd":"Y\u0301","\u1ef2":"Y\u0300","\u0178":"Y\u0308","\u1ef8":"Y\u0303","\u0232":"Y\u0304","\u0176":"Y\u0302","\u1e8e":"Y\u0307","\u0179":"Z\u0301","\u017d":"Z\u030c","\u1e90":"Z\u0302","\u017b":"Z\u0307","\u03ac":"\u03b1\u0301","\u1f70":"\u03b1\u0300","\u1fb1":"\u03b1\u0304","\u1fb0":"\u03b1\u0306","\u03ad":"\u03b5\u0301","\u1f72":"\u03b5\u0300","\u03ae":"\u03b7\u0301","\u1f74":"\u03b7\u0300","\u03af":"\u03b9\u0301","\u1f76":"\u03b9\u0300","\u03ca":"\u03b9\u0308","\u0390":"\u03b9\u0308\u0301","\u1fd2":"\u03b9\u0308\u0300","\u1fd1":"\u03b9\u0304","\u1fd0":"\u03b9\u0306","\u03cc":"\u03bf\u0301","\u1f78":"\u03bf\u0300","\u03cd":"\u03c5\u0301","\u1f7a":"\u03c5\u0300","\u03cb":"\u03c5\u0308","\u03b0":"\u03c5\u0308\u0301","\u1fe2":"\u03c5\u0308\u0300","\u1fe1":"\u03c5\u0304","\u1fe0":"\u03c5\u0306","\u03ce":"\u03c9\u0301","\u1f7c":"\u03c9\u0300","\u038e":"\u03a5\u0301","\u1fea":"\u03a5\u0300","\u03ab":"\u03a5\u0308","\u1fe9":"\u03a5\u0304","\u1fe8":"\u03a5\u0306","\u038f":"\u03a9\u0301","\u1ffa":"\u03a9\u0300"},Ma=function(){function t(t,e){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new wa(t,e,this.mode),this.settings=e,this.leftrightDepth=0}var e=t.prototype;return e.expect=function(t,e){if(void 0===e&&(e=!0),this.fetch().text!==t)throw new o("Expected '"+t+"', got '"+this.fetch().text+"'",this.fetch());e&&this.consume()},e.consume=function(){this.nextToken=null},e.fetch=function(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken},e.switchMode=function(t){this.mode=t,this.gullet.switchMode(t)},e.parse=function(){this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");var t=this.parseExpression(!1);return this.expect("EOF"),this.gullet.endGroup(),t},e.parseExpression=function(e,r){for(var a=[];;){"math"===this.mode&&this.consumeSpaces();var n=this.fetch();if(-1!==t.endOfExpression.indexOf(n.text))break;if(r&&n.text===r)break;if(e&&ia[n.text]&&ia[n.text].infix)break;var i=this.parseAtom(r);if(!i)break;a.push(i)}return"text"===this.mode&&this.formLigatures(a),this.handleInfixNodes(a)},e.handleInfixNodes=function(t){for(var e,r=-1,a=0;a0&&!l||0===s&&!l&&"math"===this.mode,c=this.parseGroupOfType("argument to '"+t+"'",h,l,a,m);if(!c){if(l){i.push(null);continue}throw new o("Expected group after '"+t+"'",this.fetch())}(l?i:n).push(c)}return{args:n,optArgs:i}},e.parseGroupOfType=function(t,e,r,a,n){switch(e){case"color":return n&&this.consumeSpaces(),this.parseColorGroup(r);case"size":return n&&this.consumeSpaces(),this.parseSizeGroup(r);case"url":return this.parseUrlGroup(r,n);case"math":case"text":return this.parseGroup(t,r,a,void 0,e,n);case"hbox":var i=this.parseGroup(t,r,a,void 0,"text",n);return i?{type:"styling",mode:i.mode,body:[i],style:"text"}:i;case"raw":if(n&&this.consumeSpaces(),r&&"{"===this.fetch().text)return null;var s=this.parseStringGroup("raw",r,!0);if(s)return{type:"raw",mode:"text",string:s.text};throw new o("Expected raw group",this.fetch());case"original":case null:case void 0:return this.parseGroup(t,r,a,void 0,void 0,n);default:throw new o("Unknown group type as "+t,this.fetch())}},e.consumeSpaces=function(){for(;" "===this.fetch().text;)this.consume()},e.parseStringGroup=function(t,e,r){var a=e?"[":"{",n=e?"]":"}",i=this.fetch();if(i.text!==a){if(e)return null;if(r&&"EOF"!==i.text&&/[^{}[\]]/.test(i.text))return this.consume(),i}var s=this.mode;this.mode="text",this.expect(a);for(var h,l="",m=this.fetch(),c=0,u=m;(h=this.fetch()).text!==n||r&&c>0;){switch(h.text){case"EOF":throw new o("Unexpected end of input in "+t,m.range(u,l));case a:c++;break;case n:c--}l+=(u=h).text,this.consume()}return this.expect(n),this.mode=s,m.range(u,l)},e.parseRegexGroup=function(t,e){var r=this.mode;this.mode="text";for(var a,n=this.fetch(),i=n,s="";"EOF"!==(a=this.fetch()).text&&t.test(s+a.text);)s+=(i=a).text,this.consume();if(""===s)throw new o("Invalid "+e+": '"+n.text+"'",n);return this.mode=r,n.range(i,s)},e.parseColorGroup=function(t){var e=this.parseStringGroup("color",t);if(!e)return null;var r=/^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(e.text);if(!r)throw new o("Invalid color: '"+e.text+"'",e);var a=r[0];return/^[0-9a-f]{6}$/i.test(a)&&(a="#"+a),{type:"color-token",mode:this.mode,color:a}},e.parseSizeGroup=function(t){var e,r=!1;if(!(e=t||"{"===this.fetch().text?this.parseStringGroup("size",t):this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/,"size")))return null;t||0!==e.text.length||(e.text="0pt",r=!0);var a=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e.text);if(!a)throw new o("Invalid size: '"+e.text+"'",e);var n={number:+(a[1]+a[2]),unit:a[3]};if(!At(n))throw new o("Invalid unit: '"+n.unit+"'",e);return{type:"size",mode:this.mode,value:n,isBlank:r}},e.parseUrlGroup=function(t,e){this.gullet.lexer.setCatcode("%",13);var r=this.parseStringGroup("url",t,!0);if(this.gullet.lexer.setCatcode("%",14),!r)return null;var a=r.text.replace(/\\([#$%&~_^{}])/g,"$1");return{type:"url",mode:this.mode,url:a}},e.parseGroup=function(e,r,n,i,s,h){var l=this.mode;s&&this.switchMode(s),h&&this.consumeSpaces();var m,c=this.fetch(),u=c.text;if(r?"["===u:"{"===u||"\\begingroup"===u){this.consume();var p=t.endOfGroup[u];this.gullet.beginGroup();var d=this.parseExpression(!1,p),f=this.fetch();this.expect(p),this.gullet.endGroup(),m={type:"ordgroup",mode:this.mode,loc:a.range(c,f),body:d,semisimple:"\\begingroup"===u||void 0}}else if(r)m=null;else if(null==(m=this.parseFunction(i,e,n)||this.parseSymbol())&&"\\"===u[0]&&!ya.hasOwnProperty(u)){if(this.settings.throwOnError)throw new o("Undefined control sequence: "+u,c);m=this.formatUnsupportedCmd(u),this.consume()}return s&&this.switchMode(l),m},e.formLigatures=function(t){for(var e=t.length-1,r=0;r=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+e[0]+'" used in math mode',t);var h,l=j[this.mode][e].group,m=a.range(t);if(W.hasOwnProperty(l)){var c=l;h={type:"atom",mode:this.mode,family:c,loc:m,text:e}}else h={type:l,mode:this.mode,loc:m,text:e};i=h}else{if(!(e.charCodeAt(0)>=128))return null;this.settings.strict&&(M(e.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+e[0]+'" used in math mode',t):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+e[0]+'" ('+e.charCodeAt(0)+")",t)),i={type:"textord",mode:"text",loc:a.range(t),text:e}}if(this.consume(),s)for(var u=0;uwn in jr?Nst(jr,wn,{enumerable:!0,configurable:!0,writable:!0,value:fn}):jr[wn]=fn;var vl=(jr,wn,fn)=>(Bst(jr,typeof wn!="symbol"?wn+"":wn,fn),fn);var jr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function wn(t){var e=t.default;if(typeof e=="function"){var r=function(){return e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}),r}function fn(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var b_={exports:{}};(function(t,e){(function(r,n){t.exports=n()})(jr,function(){var r;function n(){return r.apply(null,arguments)}function i(g){return g instanceof Array||Object.prototype.toString.call(g)==="[object Array]"}function a(g){return g!=null&&Object.prototype.toString.call(g)==="[object Object]"}function s(g,E){return Object.prototype.hasOwnProperty.call(g,E)}function o(g){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(g).length===0;for(var E in g)if(s(g,E))return;return 1}function l(g){return g===void 0}function u(g){return typeof g=="number"||Object.prototype.toString.call(g)==="[object Number]"}function h(g){return g instanceof Date||Object.prototype.toString.call(g)==="[object Date]"}function d(g,E){for(var I=[],O=g.length,G=0;G>>0,O=0;Oue(g)?(ht=g+1,xt-ue(g)):(ht=g,xt);return{year:ht,dayOfYear:Mt}}function Ke(g,E,I){var O,G,ht=Ie(g.year(),E,I),ht=Math.floor((g.dayOfYear()-ht-1)/7)+1;return ht<1?O=ht+wr(G=g.year()-1,E,I):ht>wr(g.year(),E,I)?(O=ht-wr(g.year(),E,I),G=g.year()+1):(G=g.year(),O=ht),{week:O,year:G}}function wr(g,G,I){var O=Ie(g,G,I),G=Ie(g+1,G,I);return(ue(g)-O+G)/7}Y("w",["ww",2],"wo","week"),Y("W",["WW",2],"Wo","isoWeek"),W("week","w"),W("isoWeek","W"),Z("week",5),Z("isoWeek",5),ft("w",at),ft("ww",at,fe),ft("W",at),ft("WW",at,fe),we(["w","ww","W","WW"],function(g,E,I,O){E[O.substr(0,1)]=q(g)});function je(g,E){return g.slice(E,7).concat(g.slice(0,E))}Y("d",0,"do","day"),Y("dd",0,0,function(g){return this.localeData().weekdaysMin(this,g)}),Y("ddd",0,0,function(g){return this.localeData().weekdaysShort(this,g)}),Y("dddd",0,0,function(g){return this.localeData().weekdays(this,g)}),Y("e",0,0,"weekday"),Y("E",0,0,"isoWeekday"),W("day","d"),W("weekday","e"),W("isoWeekday","E"),Z("day",11),Z("weekday",11),Z("isoWeekday",11),ft("d",at),ft("e",at),ft("E",at),ft("dd",function(g,E){return E.weekdaysMinRegex(g)}),ft("ddd",function(g,E){return E.weekdaysShortRegex(g)}),ft("dddd",function(g,E){return E.weekdaysRegex(g)}),we(["dd","ddd","dddd"],function(g,E,I,O){O=I._locale.weekdaysParse(g,O,I._strict),O!=null?E.d=O:m(I).invalidWeekday=g}),we(["d","e","E"],function(g,E,I,O){E[O]=q(g)});var Ze="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),qt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),st="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),At=Tt,Nt=Tt,Jt=Tt;function ze(){function g(Ot,de){return de.length-Ot.length}for(var E,I,O,G=[],ht=[],xt=[],Mt=[],Vt=0;Vt<7;Vt++)O=p([2e3,1]).day(Vt),E=Dt(this.weekdaysMin(O,"")),I=Dt(this.weekdaysShort(O,"")),O=Dt(this.weekdays(O,"")),G.push(E),ht.push(I),xt.push(O),Mt.push(E),Mt.push(I),Mt.push(O);G.sort(g),ht.sort(g),xt.sort(g),Mt.sort(g),this._weekdaysRegex=new RegExp("^("+Mt.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+xt.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+ht.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+G.join("|")+")","i")}function Pe(){return this.hours()%12||12}function qe(g,E){Y(g,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),E)})}function Tr(g,E){return E._meridiemParse}Y("H",["HH",2],0,"hour"),Y("h",["hh",2],0,Pe),Y("k",["kk",2],0,function(){return this.hours()||24}),Y("hmm",0,0,function(){return""+Pe.apply(this)+N(this.minutes(),2)}),Y("hmmss",0,0,function(){return""+Pe.apply(this)+N(this.minutes(),2)+N(this.seconds(),2)}),Y("Hmm",0,0,function(){return""+this.hours()+N(this.minutes(),2)}),Y("Hmmss",0,0,function(){return""+this.hours()+N(this.minutes(),2)+N(this.seconds(),2)}),qe("a",!0),qe("A",!1),W("hour","h"),Z("hour",13),ft("a",Tr),ft("A",Tr),ft("H",at),ft("h",at),ft("k",at),ft("HH",at,fe),ft("hh",at,fe),ft("kk",at,fe),ft("hmm",It),ft("hmmss",Lt),ft("Hmm",It),ft("Hmmss",Lt),Qt(["H","HH"],bt),Qt(["k","kk"],function(g,E,I){g=q(g),E[bt]=g===24?0:g}),Qt(["a","A"],function(g,E,I){I._isPm=I._locale.isPM(g),I._meridiem=g}),Qt(["h","hh"],function(g,E,I){E[bt]=q(g),m(I).bigHour=!0}),Qt("hmm",function(g,E,I){var O=g.length-2;E[bt]=q(g.substr(0,O)),E[Et]=q(g.substr(O)),m(I).bigHour=!0}),Qt("hmmss",function(g,E,I){var O=g.length-4,G=g.length-2;E[bt]=q(g.substr(0,O)),E[Et]=q(g.substr(O,2)),E[kt]=q(g.substr(G)),m(I).bigHour=!0}),Qt("Hmm",function(g,E,I){var O=g.length-2;E[bt]=q(g.substr(0,O)),E[Et]=q(g.substr(O))}),Qt("Hmmss",function(g,E,I){var O=g.length-4,G=g.length-2;E[bt]=q(g.substr(0,O)),E[Et]=q(g.substr(O,2)),E[kt]=q(g.substr(G))}),Tt=U("Hours",!0);var Ve,va={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{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"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:ne,monthsShort:ve,week:{dow:0,doy:6},weekdays:Ze,weekdaysMin:st,weekdaysShort:qt,meridiemParse:/[ap]\.?m?\.?/i},Ce={},Wi={};function E0(g){return g&&g.toLowerCase().replace("_","-")}function bu(g){for(var E,I,O,G,ht=0;ht=E&&function(xt,Mt){for(var Vt=Math.min(xt.length,Mt.length),Ot=0;Ot=E-1)break;E--}ht++}return Ve}function Ln(g){var E;if(Ce[g]===void 0&&!0&&t&&t.exports&&g.match("^[^/\\\\]*$")!=null)try{E=Ve._abbr,fn("./locale/"+g),Xt(E)}catch{Ce[g]=null}return Ce[g]}function Xt(g,E){return g&&((E=l(E)?ce(g):ee(g,E))?Ve=E:typeof console<"u"&&console.warn&&console.warn("Locale "+g+" not found. Did you forget to load it?")),Ve._abbr}function ee(g,E){if(E===null)return delete Ce[g],null;var I,O=va;if(E.abbr=g,Ce[g]!=null)L("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),O=Ce[g]._config;else if(E.parentLocale!=null)if(Ce[E.parentLocale]!=null)O=Ce[E.parentLocale]._config;else{if((I=Ln(E.parentLocale))==null)return Wi[E.parentLocale]||(Wi[E.parentLocale]=[]),Wi[E.parentLocale].push({name:g,config:E}),null;O=I._config}return Ce[g]=new w(B(O,E)),Wi[g]&&Wi[g].forEach(function(G){ee(G.name,G.config)}),Xt(g),Ce[g]}function ce(g){var E;if(!(g=g&&g._locale&&g._locale._abbr?g._locale._abbr:g))return Ve;if(!i(g)){if(E=Ln(g))return E;g=[g]}return bu(g)}function Pt(g){var E=g._a;return E&&m(g).overflow===-2&&(E=E[zt]<0||11yt(E[Ft],E[zt])?wt:E[bt]<0||24wr(ht,Vt,Ot)?m(O)._overflowWeeks=!0:de!=null?m(O)._overflowWeekday=!0:(ie=oe(ht,xt,Mt,Vt,Ot),O._a[Ft]=ie.year,O._dayOfYear=ie.dayOfYear)),g._dayOfYear!=null&&(G=Gi(g._a[Ft],I[Ft]),(g._dayOfYear>ue(G)||g._dayOfYear===0)&&(m(g)._overflowDayOfYear=!0),de=Hr(G,0,g._dayOfYear),g._a[zt]=de.getUTCMonth(),g._a[wt]=de.getUTCDate()),E=0;E<3&&g._a[E]==null;++E)g._a[E]=er[E]=I[E];for(;E<7;E++)g._a[E]=er[E]=g._a[E]==null?E===2?1:0:g._a[E];g._a[bt]===24&&g._a[Et]===0&&g._a[kt]===0&&g._a[Ut]===0&&(g._nextDay=!0,g._a[bt]=0),g._d=(g._useUTC?Hr:_a).apply(null,er),ht=g._useUTC?g._d.getUTCDay():g._d.getDay(),g._tzm!=null&&g._d.setUTCMinutes(g._d.getUTCMinutes()-g._tzm),g._nextDay&&(g._a[bt]=24),g._w&&g._w.d!==void 0&&g._w.d!==ht&&(m(g).weekdayMismatch=!0)}}function _u(g){if(g._f===n.ISO_8601)A0(g);else if(g._f===n.RFC_2822)Hi(g);else{g._a=[],m(g).empty=!0;for(var E,I,O,G,ht,xt=""+g._i,Mt=xt.length,Vt=0,Ot=lt(g._f,g._locale).match(z)||[],de=Ot.length,ie=0;ieg.valueOf():g.valueOf()"}),P.toJSON=function(){return this.isValid()?this.toISOString():null},P.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},P.unix=function(){return Math.floor(this.valueOf()/1e3)},P.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},P.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},P.eraName=function(){for(var g,E=this.localeData().eras(),I=0,O=E.length;Ithis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},P.isLocal=function(){return!!this.isValid()&&!this._isUTC},P.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},P.isUtc=eR,P.isUTC=eR,P.zoneAbbr=function(){return this._isUTC?"UTC":""},P.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},P.dates=R("dates accessor is deprecated. Use date instead.",ls),P.months=R("months accessor is deprecated. Use month instead",se),P.years=R("years accessor is deprecated. Use year instead",N0),P.zone=R("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(g,E){return g!=null?(this.utcOffset(g=typeof g!="string"?-g:g,E),this):-this.utcOffset()}),P.isDSTShifted=R("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var g,E={};return T(E,this),(E=M0(E))._a?(g=(E._isUTC?p:De)(E._a),this._isDSTShifted=this.isValid()&&0{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},D0=function(t="fatal"){let e=ji.fatal;typeof t=="string"?(t=t.toLowerCase(),t in ji&&(e=ji[t])):typeof t=="number"&&(e=t),H.trace=()=>{},H.debug=()=>{},H.info=()=>{},H.warn=()=>{},H.error=()=>{},H.fatal=()=>{},e<=ji.fatal&&(H.fatal=console.error?console.error.bind(console,Nn("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",Nn("FATAL"))),e<=ji.error&&(H.error=console.error?console.error.bind(console,Nn("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",Nn("ERROR"))),e<=ji.warn&&(H.warn=console.warn?console.warn.bind(console,Nn("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",Nn("WARN"))),e<=ji.info&&(H.info=console.info?console.info.bind(console,Nn("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",Nn("INFO"))),e<=ji.debug&&(H.debug=console.debug?console.debug.bind(console,Nn("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Nn("DEBUG"))),e<=ji.trace&&(H.trace=console.debug?console.debug.bind(console,Nn("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Nn("TRACE")))},Nn=t=>`%c${Xn().format("ss.SSS")} : ${t} : `;var O0={};Object.defineProperty(O0,"__esModule",{value:!0});var ki=O0.sanitizeUrl=void 0,mR=/^([^\w]*)(javascript|data|vbscript)/im,bR=/&#(\w+)(^\w|;)?/g,_R=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,vR=/^([^:]+):/gm,xR=[".","/"];function kR(t){return xR.indexOf(t[0])>-1}function wR(t){return t.replace(bR,function(e,r){return String.fromCharCode(r)})}function TR(t){var e=wR(t||"").replace(_R,"").trim();if(!e)return"about:blank";if(kR(e))return e;var r=e.match(vR);if(!r)return e;var n=r[0];return mR.test(n)?"about:blank":e}ki=O0.sanitizeUrl=TR;function Qe(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function __(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function xu(t){let e,r,n;t.length!==2?(e=Qe,r=(o,l)=>Qe(t(o),l),n=(o,l)=>t(o)-l):(e=t===Qe||t===__?t:ER,r=t,n=t);function i(o,l,u=0,h=o.length){if(u>>1;r(o[d],l)<0?u=d+1:h=d}while(u>>1;r(o[d],l)<=0?u=d+1:h=d}while(uu&&n(o[d-1],l)>-n(o[d],l)?d-1:d}return{left:i,center:s,right:a}}function ER(){return 0}function v_(t){return t===null?NaN:+t}function*x_(t,e){if(e===void 0)for(let r of t)r!=null&&(r=+r)>=r&&(yield r);else{let r=-1;for(let n of t)(n=e(n,++r,t))!=null&&(n=+n)>=n&&(yield n)}}const k_=xu(Qe),w_=k_.right,CR=k_.left,SR=xu(v_).center,cs=w_;function AR(t,e){if(!((e=+e)>=0))throw new RangeError("invalid r");let r=t.length;if(!((r=Math.floor(r))>=0))throw new RangeError("invalid length");if(!r||!e)return t;const n=F0(e),i=t.slice();return n(t,i,0,r,1),n(i,t,0,r,1),n(t,i,0,r,1),t}const T_=E_(F0),MR=E_(LR);function E_(t){return function(e,r,n=r){if(!((r=+r)>=0))throw new RangeError("invalid rx");if(!((n=+n)>=0))throw new RangeError("invalid ry");let{data:i,width:a,height:s}=e;if(!((a=Math.floor(a))>=0))throw new RangeError("invalid width");if(!((s=Math.floor(s!==void 0?s:i.length/a))>=0))throw new RangeError("invalid height");if(!a||!s||!r&&!n)return e;const o=r&&t(r),l=n&&t(n),u=i.slice();return o&&l?(ro(o,u,i,a,s),ro(o,i,u,a,s),ro(o,u,i,a,s),no(l,i,u,a,s),no(l,u,i,a,s),no(l,i,u,a,s)):o?(ro(o,i,u,a,s),ro(o,u,i,a,s),ro(o,i,u,a,s)):l&&(no(l,i,u,a,s),no(l,u,i,a,s),no(l,i,u,a,s)),e}}function ro(t,e,r,n,i){for(let a=0,s=n*i;a{i<<=2,a<<=2,s<<=2,e(r,n,i+0,a+0,s),e(r,n,i+1,a+1,s),e(r,n,i+2,a+2,s),e(r,n,i+3,a+3,s)}}function F0(t){const e=Math.floor(t);if(e===t)return RR(t);const r=t-e,n=2*t+1;return(i,a,s,o,l)=>{if(!((o-=l)>=s))return;let u=e*a[s];const h=l*e,d=h+l;for(let f=s,p=s+h;f{if(!((a-=s)>=i))return;let o=t*n[i];const l=s*t;for(let u=i,h=i+l;u=n&&++r;else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(i=+i)>=i&&++r}return r}function IR(t){return t.length|0}function NR(t){return!(t>0)}function BR(t){return typeof t!="object"||"length"in t?t:Array.from(t)}function DR(t){return e=>t(...e)}function OR(...t){const e=typeof t[t.length-1]=="function"&&DR(t.pop());t=t.map(BR);const r=t.map(IR),n=t.length-1,i=new Array(n+1).fill(0),a=[];if(n<0||r.some(NR))return a;for(;;){a.push(i.map((o,l)=>t[l][o]));let s=n;for(;++i[s]===r[s];){if(s===0)return e?a.map(e):a;i[s--]=0}}}function FR(t,e){var r=0,n=0;return Float64Array.from(t,e===void 0?i=>r+=+i||0:i=>r+=+e(i,n++,t)||0)}function C_(t,e){let r=0,n,i=0,a=0;if(e===void 0)for(let s of t)s!=null&&(s=+s)>=s&&(n=s-i,i+=n/++r,a+=n*(s-i));else{let s=-1;for(let o of t)(o=e(o,++s,t))!=null&&(o=+o)>=o&&(n=o-i,i+=n/++r,a+=n*(o-i))}if(r>1)return a/(r-1)}function S_(t,e){const r=C_(t,e);return r&&Math.sqrt(r)}function xl(t,e){let r,n;if(e===void 0)for(const i of t)i!=null&&(r===void 0?i>=i&&(r=n=i):(r>i&&(r=i),n=a&&(r=n=a):(r>a&&(r=a),n0){for(s=e[--r];r>0&&(n=s,i=e[--r],s=n+i,a=i-(s-n),!a););r>0&&(a<0&&e[r-1]<0||a>0&&e[r-1]>0)&&(i=a*2,n=s+i,i==n-s&&(s=n))}return s}}function PR(t,e){const r=new _r;if(e===void 0)for(let n of t)(n=+n)&&r.add(n);else{let n=-1;for(let i of t)(i=+e(i,++n,t))&&r.add(i)}return+r}function qR(t,e){const r=new _r;let n=-1;return Float64Array.from(t,e===void 0?i=>r.add(+i||0):i=>r.add(+e(i,++n,t)||0))}class kl extends Map{constructor(e,r=L_){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(const[n,i]of e)this.set(n,i)}get(e){return super.get(P0(this,e))}has(e){return super.has(P0(this,e))}set(e,r){return super.set(A_(this,e),r)}delete(e){return super.delete(M_(this,e))}}class us extends Set{constructor(e,r=L_){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(const n of e)this.add(n)}has(e){return super.has(P0(this,e))}add(e){return super.add(A_(this,e))}delete(e){return super.delete(M_(this,e))}}function P0({_intern:t,_key:e},r){const n=e(r);return t.has(n)?t.get(n):r}function A_({_intern:t,_key:e},r){const n=e(r);return t.has(n)?t.get(n):(t.set(n,r),r)}function M_({_intern:t,_key:e},r){const n=e(r);return t.has(n)&&(r=t.get(n),t.delete(n)),r}function L_(t){return t!==null&&typeof t=="object"?t.valueOf():t}function io(t){return t}function R_(t,...e){return ao(t,io,io,e)}function I_(t,...e){return ao(t,Array.from,io,e)}function N_(t,e){for(let r=1,n=e.length;ri.pop().map(([a,s])=>[...i,a,s]));return t}function VR(t,...e){return N_(I_(t,...e),e)}function zR(t,e,...r){return N_(D_(t,e,...r),r)}function B_(t,e,...r){return ao(t,io,e,r)}function D_(t,e,...r){return ao(t,Array.from,e,r)}function YR(t,...e){return ao(t,io,O_,e)}function UR(t,...e){return ao(t,Array.from,O_,e)}function O_(t){if(t.length!==1)throw new Error("duplicate key");return t[0]}function ao(t,e,r,n){return function i(a,s){if(s>=n.length)return r(a);const o=new kl,l=n[s++];let u=-1;for(const h of a){const d=l(h,++u,a),f=o.get(d);f?f.push(h):o.set(d,[h])}for(const[h,d]of o)o.set(h,i(d,s));return e(o)}(t,0)}function F_(t,e){return Array.from(e,r=>t[r])}function q0(t,...e){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");t=Array.from(t);let[r]=e;if(r&&r.length!==2||e.length>1){const n=Uint32Array.from(t,(i,a)=>a);return e.length>1?(e=e.map(i=>t.map(i)),n.sort((i,a)=>{for(const s of e){const o=so(s[i],s[a]);if(o)return o}})):(r=t.map(r),n.sort((i,a)=>so(r[i],r[a]))),F_(t,n)}return t.sort(V0(r))}function V0(t=Qe){if(t===Qe)return so;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,r)=>{const n=t(e,r);return n||n===0?n:(t(r,r)===0)-(t(e,e)===0)}}function so(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(te?1:0)}function WR(t,e,r){return(e.length!==2?q0(B_(t,e,r),([n,i],[a,s])=>Qe(i,s)||Qe(n,a)):q0(R_(t,r),([n,i],[a,s])=>e(i,s)||Qe(n,a))).map(([n])=>n)}var HR=Array.prototype,GR=HR.slice;function wu(t){return()=>t}var z0=Math.sqrt(50),Y0=Math.sqrt(10),U0=Math.sqrt(2);function hs(t,e,r){var n,i=-1,a,s,o;if(e=+e,t=+t,r=+r,t===e&&r>0)return[t];if((n=e0){let l=Math.round(t/o),u=Math.round(e/o);for(l*oe&&--u,s=new Array(a=u-l+1);++ie&&--u,s=new Array(a=u-l+1);++i=0?(a>=z0?10:a>=Y0?5:a>=U0?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=z0?10:a>=Y0?5:a>=U0?2:1)}function wl(t,e,r){var n=Math.abs(e-t)/Math.max(0,r),i=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),a=n/i;return a>=z0?i*=10:a>=Y0?i*=5:a>=U0&&(i*=2),e0?(t=Math.floor(t/i)*i,e=Math.ceil(e/i)*i):i<0&&(t=Math.ceil(t*i)/i,e=Math.floor(e*i)/i),n=i}}function W0(t){return Math.ceil(Math.log(ku(t))/Math.LN2)+1}function q_(){var t=io,e=xl,r=W0;function n(i){Array.isArray(i)||(i=Array.from(i));var a,s=i.length,o,l,u=new Array(s);for(a=0;a=f)if(b>=f&&e===xl){const k=oo(d,f,x);isFinite(k)&&(k>0?f=(Math.floor(f/k)+1)*k:k<0&&(f=(Math.ceil(f*-k)+1)/-k))}else p.pop()}for(var m=p.length;p[0]<=d;)p.shift(),--m;for(;p[m-1]>f;)p.pop(),--m;var _=new Array(m+1),y;for(a=0;a<=m;++a)y=_[a]=[],y.x0=a>0?p[a-1]:d,y.x1=a0)for(a=0;a=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r=i)&&(r=i)}return r}function H0(t,e){let r,n=-1,i=-1;if(e===void 0)for(const a of t)++i,a!=null&&(r=a)&&(r=a,n=i);else for(let a of t)(a=e(a,++i,t))!=null&&(r=a)&&(r=a,n=i);return n}function Tl(t,e){let r;if(e===void 0)for(const n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}function G0(t,e){let r,n=-1,i=-1;if(e===void 0)for(const a of t)++i,a!=null&&(r>a||r===void 0&&a>=a)&&(r=a,n=i);else for(let a of t)(a=e(a,++i,t))!=null&&(r>a||r===void 0&&a>=a)&&(r=a,n=i);return n}function Tu(t,e,r=0,n=t.length-1,i){for(i=i===void 0?so:V0(i);n>r;){if(n-r>600){const l=n-r+1,u=e-r+1,h=Math.log(l),d=.5*Math.exp(2*h/3),f=.5*Math.sqrt(h*d*(l-d)/l)*(u-l/2<0?-1:1),p=Math.max(r,Math.floor(e-u*d/l+f)),m=Math.min(n,Math.floor(e+(l-u)*d/l+f));Tu(t,e,p,m,i)}const a=t[e];let s=r,o=n;for(El(t,r,e),i(t[n],a)>0&&El(t,r,n);s0;)--o}i(t[r],a)===0?El(t,r,o):(++o,El(t,o,n)),o<=e&&(r=o+1),e<=o&&(n=o-1)}return t}function El(t,e,r){const n=t[e];t[e]=t[r],t[r]=n}function V_(t,e=Qe){let r,n=!1;if(e.length===1){let i;for(const a of t){const s=e(a);(n?Qe(s,i)>0:Qe(s,s)===0)&&(r=a,i=s,n=!0)}}else for(const i of t)(n?e(i,r)>0:e(i,i)===0)&&(r=i,n=!0);return r}function Cl(t,e,r){if(t=Float64Array.from(x_(t,r)),!!(n=t.length)){if((e=+e)<=0||n<2)return Tl(t);if(e>=1)return lo(t);var n,i=(n-1)*e,a=Math.floor(i),s=lo(Tu(t,a).subarray(0,a+1)),o=Tl(t.subarray(a+1));return s+(o-s)*(i-a)}}function z_(t,e,r=v_){if(!!(n=t.length)){if((e=+e)<=0||n<2)return+r(t[0],0,t);if(e>=1)return+r(t[n-1],n-1,t);var n,i=(n-1)*e,a=Math.floor(i),s=+r(t[a],a,t),o=+r(t[a+1],a+1,t);return s+(o-s)*(i-a)}}function Y_(t,e,r){if(t=Float64Array.from(x_(t,r)),!!(n=t.length)){if((e=+e)<=0||n<2)return G0(t);if(e>=1)return H0(t);var n,i=Math.floor((n-1)*e),a=(o,l)=>so(t[o],t[l]),s=Tu(Uint32Array.from(t,(o,l)=>l),i,0,n-1,a);return V_(s.subarray(0,i+1),o=>t[o])}}function jR(t,e,r){return Math.ceil((r-e)/(2*(Cl(t,.75)-Cl(t,.25))*Math.pow(ku(t),-1/3)))}function $R(t,e,r){return Math.ceil((r-e)*Math.cbrt(ku(t))/(3.49*S_(t)))}function XR(t,e){let r=0,n=0;if(e===void 0)for(let i of t)i!=null&&(i=+i)>=i&&(++r,n+=i);else{let i=-1;for(let a of t)(a=e(a,++i,t))!=null&&(a=+a)>=a&&(++r,n+=a)}if(r)return n/r}function KR(t,e){return Cl(t,.5,e)}function ZR(t,e){return Y_(t,.5,e)}function*QR(t){for(const e of t)yield*e}function j0(t){return Array.from(QR(t))}function JR(t,e){const r=new kl;if(e===void 0)for(let a of t)a!=null&&a>=a&&r.set(a,(r.get(a)||0)+1);else{let a=-1;for(let s of t)(s=e(s,++a,t))!=null&&s>=s&&r.set(s,(r.get(s)||0)+1)}let n,i=0;for(const[a,s]of r)s>i&&(i=s,n=a);return n}function tI(t,e=eI){const r=[];let n,i=!1;for(const a of t)i&&r.push(e(n,a)),n=a,i=!0;return r}function eI(t,e){return[t,e]}function Ca(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((e-t)/r))|0,a=new Array(i);++ne(r[o],r[l]);let a,s;return Uint32Array.from(r,(o,l)=>l).sort(e===Qe?(o,l)=>so(r[o],r[l]):V0(i)).forEach((o,l)=>{const u=i(o,a===void 0?o:a);u>=0?((a===void 0||u>0)&&(a=o,s=l),n[o]=s):n[o]=NaN}),n}function nI(t,e=Qe){let r,n=!1;if(e.length===1){let i;for(const a of t){const s=e(a);(n?Qe(s,i)<0:Qe(s,s)===0)&&(r=a,i=s,n=!0)}}else for(const i of t)(n?e(i,r)<0:e(i,i)===0)&&(r=i,n=!0);return r}function U_(t,e=Qe){if(e.length===1)return G0(t,e);let r,n=-1,i=-1;for(const a of t)++i,(n<0?e(a,a)===0:e(a,r)<0)&&(r=a,n=i);return n}function iI(t,e=Qe){if(e.length===1)return H0(t,e);let r,n=-1,i=-1;for(const a of t)++i,(n<0?e(a,a)===0:e(a,r)>0)&&(r=a,n=i);return n}function aI(t,e){const r=U_(t,e);return r<0?void 0:r}const sI=W_(Math.random);function W_(t){return function(r,n=0,i=r.length){let a=i-(n=+n);for(;a;){const s=t()*a--|0,o=r[a+n];r[a+n]=r[s+n],r[s+n]=o}return r}}function oI(t,e){let r=0;if(e===void 0)for(let n of t)(n=+n)&&(r+=n);else{let n=-1;for(let i of t)(i=+e(i,++n,t))&&(r+=i)}return r}function H_(t){if(!(a=t.length))return[];for(var e=-1,r=Tl(t,lI),n=new Array(r);++ee(r,n,t))}function pI(t,e,r){if(typeof e!="function")throw new TypeError("reducer is not a function");const n=t[Symbol.iterator]();let i,a,s=-1;if(arguments.length<3){if({done:i,value:r}=n.next(),i)return;++s}for(;{done:i,value:a}=n.next(),!i;)r=e(r,a,++s,t);return r}function gI(t){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");return Array.from(t).reverse()}function yI(t,...e){t=new us(t);for(const r of e)for(const n of r)t.delete(n);return t}function mI(t,e){const r=e[Symbol.iterator](),n=new us;for(const i of t){if(n.has(i))return!1;let a,s;for(;({value:a,done:s}=r.next())&&!s;){if(Object.is(i,a))return!1;n.add(a)}}return!0}function bI(t,...e){t=new us(t),e=e.map(_I);t:for(const r of t)for(const n of e)if(!n.has(r)){t.delete(r);continue t}return t}function _I(t){return t instanceof us?t:new us(t)}function G_(t,e){const r=t[Symbol.iterator](),n=new Set;for(const i of e){const a=j_(i);if(n.has(a))continue;let s,o;for(;{value:s,done:o}=r.next();){if(o)return!1;const l=j_(s);if(n.add(l),Object.is(a,l))break}}return!0}function j_(t){return t!==null&&typeof t=="object"?t.valueOf():t}function vI(t,e){return G_(e,t)}function xI(...t){const e=new us;for(const r of t)for(const n of r)e.add(n);return e}function kI(t){return t}var Eu=1,Cu=2,$0=3,Sl=4,$_=1e-6;function wI(t){return"translate("+t+",0)"}function TI(t){return"translate(0,"+t+")"}function EI(t){return e=>+t(e)}function CI(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function SI(){return!this.__axis}function Su(t,e){var r=[],n=null,i=null,a=6,s=6,o=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,u=t===Eu||t===Sl?-1:1,h=t===Sl||t===Cu?"x":"y",d=t===Eu||t===$0?wI:TI;function f(p){var m=n==null?e.ticks?e.ticks.apply(e,r):e.domain():n,_=i==null?e.tickFormat?e.tickFormat.apply(e,r):kI:i,y=Math.max(a,0)+o,b=e.range(),x=+b[0]+l,k=+b[b.length-1]+l,T=(e.bandwidth?CI:EI)(e.copy(),l),C=p.selection?p.selection():p,M=C.selectAll(".domain").data([null]),S=C.selectAll(".tick").data(m,e).order(),R=S.exit(),A=S.enter().append("g").attr("class","tick"),L=S.select("line"),v=S.select("text");M=M.merge(M.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),S=S.merge(A),L=L.merge(A.append("line").attr("stroke","currentColor").attr(h+"2",u*a)),v=v.merge(A.append("text").attr("fill","currentColor").attr(h,u*y).attr("dy",t===Eu?"0em":t===$0?"0.71em":"0.32em")),p!==C&&(M=M.transition(p),S=S.transition(p),L=L.transition(p),v=v.transition(p),R=R.transition(p).attr("opacity",$_).attr("transform",function(B){return isFinite(B=T(B))?d(B+l):this.getAttribute("transform")}),A.attr("opacity",$_).attr("transform",function(B){var w=this.parentNode.__axis;return d((w&&isFinite(w=w(B))?w:T(B))+l)})),R.remove(),M.attr("d",t===Sl||t===Cu?s?"M"+u*s+","+x+"H"+l+"V"+k+"H"+u*s:"M"+l+","+x+"V"+k:s?"M"+x+","+u*s+"V"+l+"H"+k+"V"+u*s:"M"+x+","+l+"H"+k),S.attr("opacity",1).attr("transform",function(B){return d(T(B)+l)}),L.attr(h+"2",u*a),v.attr(h,u*y).text(_),C.filter(SI).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Cu?"start":t===Sl?"end":"middle"),C.each(function(){this.__axis=T})}return f.scale=function(p){return arguments.length?(e=p,f):e},f.ticks=function(){return r=Array.from(arguments),f},f.tickArguments=function(p){return arguments.length?(r=p==null?[]:Array.from(p),f):r.slice()},f.tickValues=function(p){return arguments.length?(n=p==null?null:Array.from(p),f):n&&n.slice()},f.tickFormat=function(p){return arguments.length?(i=p,f):i},f.tickSize=function(p){return arguments.length?(a=s=+p,f):a},f.tickSizeInner=function(p){return arguments.length?(a=+p,f):a},f.tickSizeOuter=function(p){return arguments.length?(s=+p,f):s},f.tickPadding=function(p){return arguments.length?(o=+p,f):o},f.offset=function(p){return arguments.length?(l=+p,f):l},f}function X_(t){return Su(Eu,t)}function AI(t){return Su(Cu,t)}function K_(t){return Su($0,t)}function MI(t){return Su(Sl,t)}var LI={value:()=>{}};function fs(){for(var t=0,e=arguments.length,r={},n;t=0&&(n=r.slice(i+1),r=r.slice(0,i)),r&&!e.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:n}})}Au.prototype=fs.prototype={constructor:Au,on:function(t,e){var r=this._,n=RI(t+"",r),i,a=-1,s=n.length;if(arguments.length<2){for(;++a0)for(var r=new Array(i),n=0,i,a;n=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),K0.hasOwnProperty(e)?{space:K0[e],local:t}:t}function NI(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===X0&&e.documentElement.namespaceURI===X0?e.createElement(t):e.createElementNS(r,t)}}function BI(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Mu(t){var e=Al(t);return(e.local?BI:NI)(e)}function DI(){}function Lu(t){return t==null?DI:function(){return this.querySelector(t)}}function OI(t){typeof t!="function"&&(t=Lu(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i=k&&(k=x+1);!(C=y[k])&&++k=0;)(s=n[i])&&(a&&s.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(s,a),a=s);return this}function sN(t){t||(t=oN);function e(d,f){return d&&f?t(d.__data__,f.__data__):!d-!f}for(var r=this._groups,n=r.length,i=new Array(n),a=0;ae?1:t>=e?0:NaN}function lN(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function cN(){return Array.from(this)}function uN(){for(var t=this._groups,e=0,r=t.length;e1?this.each((e==null?xN:typeof e=="function"?wN:kN)(t,e,r==null?"":r)):ds(this.node(),t)}function ds(t,e){return t.style.getPropertyValue(e)||J0(t).getComputedStyle(t,null).getPropertyValue(e)}function EN(t){return function(){delete this[t]}}function CN(t,e){return function(){this[t]=e}}function SN(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function AN(t,e){return arguments.length>1?this.each((e==null?EN:typeof e=="function"?SN:CN)(t,e)):this.node()[t]}function e5(t){return t.trim().split(/^|\s+/)}function td(t){return t.classList||new r5(t)}function r5(t){this._node=t,this._names=e5(t.getAttribute("class")||"")}r5.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function n5(t,e){for(var r=td(t),n=-1,i=e.length;++n=0&&(r=e.slice(n+1),e=e.slice(0,n)),{type:e,name:r}})}function rB(t){return function(){var e=this.__on;if(!!e){for(var r=0,n=-1,i=e.length,a;rTn(r,e))}function Iu(t){return typeof t=="string"?new $r([document.querySelectorAll(t)],[document.documentElement]):new $r([Q_(t)],ed)}const dB={passive:!1},Ml={capture:!0,passive:!1};function nd(t){t.stopImmediatePropagation()}function co(t){t.preventDefault(),t.stopImmediatePropagation()}function Nu(t){var e=t.document.documentElement,r=St(t).on("dragstart.drag",co,Ml);"onselectstart"in e?r.on("selectstart.drag",co,Ml):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function Bu(t,e){var r=t.document.documentElement,n=St(t).on("dragstart.drag",null);e&&(n.on("click.drag",co,Ml),setTimeout(function(){n.on("click.drag",null)},0)),"onselectstart"in r?n.on("selectstart.drag",null):(r.style.MozUserSelect=r.__noselect,delete r.__noselect)}const Du=t=>()=>t;function id(t,{sourceEvent:e,subject:r,target:n,identifier:i,active:a,x:s,y:o,dx:l,dy:u,dispatch:h}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:o,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:h}})}id.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function pB(t){return!t.ctrlKey&&!t.button}function gB(){return this.parentNode}function yB(t,e){return e==null?{x:t.x,y:t.y}:e}function mB(){return navigator.maxTouchPoints||"ontouchstart"in this}function bB(){var t=pB,e=gB,r=yB,n=mB,i={},a=fs("start","drag","end"),s=0,o,l,u,h,d=0;function f(T){T.on("mousedown.drag",p).filter(n).on("touchstart.drag",y).on("touchmove.drag",b,dB).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(T,C){if(!(h||!t.call(this,T,C))){var M=k(this,e.call(this,T,C),T,C,"mouse");!M||(St(T.view).on("mousemove.drag",m,Ml).on("mouseup.drag",_,Ml),Nu(T.view),nd(T),u=!1,o=T.clientX,l=T.clientY,M("start",T))}}function m(T){if(co(T),!u){var C=T.clientX-o,M=T.clientY-l;u=C*C+M*M>d}i.mouse("drag",T)}function _(T){St(T.view).on("mousemove.drag mouseup.drag",null),Bu(T.view,u),co(T),i.mouse("end",T)}function y(T,C){if(!!t.call(this,T,C)){var M=T.changedTouches,S=e.call(this,T,C),R=M.length,A,L;for(A=0;A>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?Ou(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?Ou(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=vB.exec(t))?new Er(e[1],e[2],e[3],1):(e=xB.exec(t))?new Er(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=kB.exec(t))?Ou(e[1],e[2],e[3],e[4]):(e=wB.exec(t))?Ou(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=TB.exec(t))?p5(e[1],e[2]/100,e[3]/100,1):(e=EB.exec(t))?p5(e[1],e[2]/100,e[3]/100,e[4]):l5.hasOwnProperty(t)?h5(l5[t]):t==="transparent"?new Er(NaN,NaN,NaN,0):null}function h5(t){return new Er(t>>16&255,t>>8&255,t&255,1)}function Ou(t,e,r,n){return n<=0&&(t=e=r=NaN),new Er(t,e,r,n)}function ad(t){return t instanceof Sa||(t=Aa(t)),t?(t=t.rgb(),new Er(t.r,t.g,t.b,t.opacity)):new Er}function po(t,e,r,n){return arguments.length===1?ad(t):new Er(t,e,r,n==null?1:n)}function Er(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}uo(Er,po,Ll(Sa,{brighter(t){return t=t==null?ho:Math.pow(ho,t),new Er(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?gs:Math.pow(gs,t),new Er(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Er(ys(this.r),ys(this.g),ys(this.b),Fu(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:f5,formatHex:f5,formatHex8:AB,formatRgb:d5,toString:d5}));function f5(){return`#${ms(this.r)}${ms(this.g)}${ms(this.b)}`}function AB(){return`#${ms(this.r)}${ms(this.g)}${ms(this.b)}${ms((isNaN(this.opacity)?1:this.opacity)*255)}`}function d5(){const t=Fu(this.opacity);return`${t===1?"rgb(":"rgba("}${ys(this.r)}, ${ys(this.g)}, ${ys(this.b)}${t===1?")":`, ${t})`}`}function Fu(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function ys(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ms(t){return t=ys(t),(t<16?"0":"")+t.toString(16)}function p5(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new Kn(t,e,r,n)}function g5(t){if(t instanceof Kn)return new Kn(t.h,t.s,t.l,t.opacity);if(t instanceof Sa||(t=Aa(t)),!t)return new Kn;if(t instanceof Kn)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),a=Math.max(e,r,n),s=NaN,o=a-i,l=(a+i)/2;return o?(e===a?s=(r-n)/o+(r0&&l<1?0:s,new Kn(s,o,l,t.opacity)}function Pu(t,e,r,n){return arguments.length===1?g5(t):new Kn(t,e,r,n==null?1:n)}function Kn(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}uo(Kn,Pu,Ll(Sa,{brighter(t){return t=t==null?ho:Math.pow(ho,t),new Kn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?gs:Math.pow(gs,t),new Kn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new Er(sd(t>=240?t-240:t+120,i,n),sd(t,i,n),sd(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new Kn(y5(this.h),qu(this.s),qu(this.l),Fu(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Fu(this.opacity);return`${t===1?"hsl(":"hsla("}${y5(this.h)}, ${qu(this.s)*100}%, ${qu(this.l)*100}%${t===1?")":`, ${t})`}`}}));function y5(t){return t=(t||0)%360,t<0?t+360:t}function qu(t){return Math.max(0,Math.min(1,t||0))}function sd(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}const m5=Math.PI/180,b5=180/Math.PI,Vu=18,_5=.96422,v5=1,x5=.82521,k5=4/29,go=6/29,w5=3*go*go,MB=go*go*go;function T5(t){if(t instanceof Zn)return new Zn(t.l,t.a,t.b,t.opacity);if(t instanceof Ti)return C5(t);t instanceof Er||(t=ad(t));var e=ud(t.r),r=ud(t.g),n=ud(t.b),i=od((.2225045*e+.7168786*r+.0606169*n)/v5),a,s;return e===r&&r===n?a=s=i:(a=od((.4360747*e+.3850649*r+.1430804*n)/_5),s=od((.0139322*e+.0971045*r+.7141733*n)/x5)),new Zn(116*i-16,500*(a-i),200*(i-s),t.opacity)}function LB(t,e){return new Zn(t,0,0,e==null?1:e)}function zu(t,e,r,n){return arguments.length===1?T5(t):new Zn(t,e,r,n==null?1:n)}function Zn(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}uo(Zn,zu,Ll(Sa,{brighter(t){return new Zn(this.l+Vu*(t==null?1:t),this.a,this.b,this.opacity)},darker(t){return new Zn(this.l-Vu*(t==null?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return e=_5*ld(e),t=v5*ld(t),r=x5*ld(r),new Er(cd(3.1338561*e-1.6168667*t-.4906146*r),cd(-.9787684*e+1.9161415*t+.033454*r),cd(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}}));function od(t){return t>MB?Math.pow(t,1/3):t/w5+k5}function ld(t){return t>go?t*t*t:w5*(t-k5)}function cd(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function ud(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function E5(t){if(t instanceof Ti)return new Ti(t.h,t.c,t.l,t.opacity);if(t instanceof Zn||(t=T5(t)),t.a===0&&t.b===0)return new Ti(NaN,0=1?(r=1,e-1):Math.floor(r*e),i=t[n],a=t[n+1],s=n>0?t[n-1]:2*i-a,o=n()=>t;function B5(t,e){return function(r){return t+r*e}}function NB(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function Hu(t,e){var r=e-t;return r?B5(t,r>180||r<-180?r-360*Math.round(r/360):r):Wu(isNaN(t)?e:t)}function BB(t){return(t=+t)==1?Cr:function(e,r){return r-e?NB(e,r,t):Wu(isNaN(e)?r:e)}}function Cr(t,e){var r=e-t;return r?B5(t,r):Wu(isNaN(t)?e:t)}const Nl=function t(e){var r=BB(e);function n(i,a){var s=r((i=po(i)).r,(a=po(a)).r),o=r(i.g,a.g),l=r(i.b,a.b),u=Cr(i.opacity,a.opacity);return function(h){return i.r=s(h),i.g=o(h),i.b=l(h),i.opacity=u(h),i+""}}return n.gamma=t,n}(1);function D5(t){return function(e){var r=e.length,n=new Array(r),i=new Array(r),a=new Array(r),s,o;for(s=0;sr&&(a=e.slice(r,a),o[s]?o[s]+=a:o[++s]=a),(n=n[0])===(i=i[0])?o[s]?o[s]+=i:o[++s]=i:(o[++s]=null,l.push({i:s,x:Bn(n,i)})),r=gd.lastIndex;return r180?h+=360:h-u>180&&(u+=360),f.push({i:d.push(i(d)+"rotate(",null,n)-2,x:Bn(u,h)})):h&&d.push(i(d)+"rotate("+h+n)}function o(u,h,d,f){u!==h?f.push({i:d.push(i(d)+"skewX(",null,n)-2,x:Bn(u,h)}):h&&d.push(i(d)+"skewX("+h+n)}function l(u,h,d,f,p,m){if(u!==d||h!==f){var _=p.push(i(p)+"scale(",null,",",null,")");m.push({i:_-4,x:Bn(u,d)},{i:_-2,x:Bn(h,f)})}else(d!==1||f!==1)&&p.push(i(p)+"scale("+d+","+f+")")}return function(u,h){var d=[],f=[];return u=t(u),h=t(h),a(u.translateX,u.translateY,h.translateX,h.translateY,d,f),s(u.rotate,h.rotate,d,f),o(u.skewX,h.skewX,d,f),l(u.scaleX,u.scaleY,h.scaleX,h.scaleY,d,f),u=h=null,function(p){for(var m=-1,_=f.length,y;++m<_;)d[(y=f[m]).i]=y.x(p);return d.join("")}}}var W5=U5(zB,"px, ","px)","deg)"),H5=U5(YB,", ",")",")"),UB=1e-12;function G5(t){return((t=Math.exp(t))+1/t)/2}function WB(t){return((t=Math.exp(t))-1/t)/2}function HB(t){return((t=Math.exp(2*t))-1)/(t+1)}const j5=function t(e,r,n){function i(a,s){var o=a[0],l=a[1],u=a[2],h=s[0],d=s[1],f=s[2],p=h-o,m=d-l,_=p*p+m*m,y,b;if(_=0&&t._call.call(void 0,e),t=t._next;--yo}function rv(){_s=(Ku=Fl.now())+Zu,yo=Bl=0;try{ev()}finally{yo=0,tD(),_s=0}}function JB(){var t=Fl.now(),e=t-Ku;e>J5&&(Zu-=e,Ku=t)}function tD(){for(var t,e=Xu,r,n=1/0;e;)e._call?(n>e._time&&(n=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:Xu=r);Ol=t,bd(n)}function bd(t){if(!yo){Bl&&(Bl=clearTimeout(Bl));var e=t-_s;e>24?(t<1/0&&(Bl=setTimeout(rv,t-Fl.now()-Zu)),Dl&&(Dl=clearInterval(Dl))):(Dl||(Ku=Fl.now(),Dl=setInterval(JB,J5)),yo=1,tv(rv))}}function _d(t,e,r){var n=new ql;return e=e==null?0:+e,n.restart(i=>{n.stop(),t(i+e)},e,r),n}function eD(t,e,r){var n=new ql,i=e;return e==null?(n.restart(t,e,r),n):(n._restart=n.restart,n.restart=function(a,s,o){s=+s,o=o==null?Pl():+o,n._restart(function l(u){u+=i,n._restart(l,i+=s,o),a(u)},s,o)},n.restart(t,e,r),n)}var rD=fs("start","end","cancel","interrupt"),nD=[],nv=0,vd=1,xd=2,Ju=3,iv=4,kd=5,th=6;function eh(t,e,r,n,i,a){var s=t.__transition;if(!s)t.__transition={};else if(r in s)return;iD(t,r,{name:e,index:n,group:i,on:rD,tween:nD,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:nv})}function wd(t,e){var r=Jn(t,e);if(r.state>nv)throw new Error("too late; already scheduled");return r}function Ei(t,e){var r=Jn(t,e);if(r.state>Ju)throw new Error("too late; already running");return r}function Jn(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function iD(t,e,r){var n=t.__transition,i;n[e]=r,r.timer=Qu(a,0,r.time);function a(u){r.state=vd,r.timer.restart(s,r.delay,r.time),r.delay<=u&&s(u-r.delay)}function s(u){var h,d,f,p;if(r.state!==vd)return l();for(h in n)if(p=n[h],p.name===r.name){if(p.state===Ju)return _d(s);p.state===iv?(p.state=th,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete n[h]):+hxd&&n.state=0&&(e=e.slice(0,r)),!e||e==="start"})}function BD(t,e,r){var n,i,a=ND(e)?wd:Ei;return function(){var s=a(this,t),o=s.on;o!==n&&(i=(n=o).copy()).on(e,r),s.on=i}}function DD(t,e){var r=this._id;return arguments.length<2?Jn(this.node(),r).on.on(t):this.each(BD(r,t,e))}function OD(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function FD(){return this.on("end.remove",OD(this._id))}function PD(t){var e=this._name,r=this._id;typeof t!="function"&&(t=Lu(t));for(var n=this._groups,i=n.length,a=new Array(i),s=0;s+t;function sO(t){return t*t}function oO(t){return t*(2-t)}function cv(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function lO(t){return t*t*t}function cO(t){return--t*t*t+1}function Ed(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Cd=3,uO=function t(e){e=+e;function r(n){return Math.pow(n,e)}return r.exponent=t,r}(Cd),hO=function t(e){e=+e;function r(n){return 1-Math.pow(1-n,e)}return r.exponent=t,r}(Cd),uv=function t(e){e=+e;function r(n){return((n*=2)<=1?Math.pow(n,e):2-Math.pow(2-n,e))/2}return r.exponent=t,r}(Cd),hv=Math.PI,fv=hv/2;function fO(t){return+t==1?1:1-Math.cos(t*fv)}function dO(t){return Math.sin(t*fv)}function dv(t){return(1-Math.cos(hv*t))/2}function La(t){return(Math.pow(2,-10*t)-.0009765625)*1.0009775171065494}function pO(t){return La(1-+t)}function gO(t){return 1-La(t)}function pv(t){return((t*=2)<=1?La(1-t):2-La(t-1))/2}function yO(t){return 1-Math.sqrt(1-t*t)}function mO(t){return Math.sqrt(1- --t*t)}function gv(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}var Sd=4/11,bO=6/11,_O=8/11,vO=3/4,xO=9/11,kO=10/11,wO=15/16,TO=21/22,EO=63/64,rh=1/Sd/Sd;function CO(t){return 1-Vl(1-t)}function Vl(t){return(t=+t)vd&&n.name===e)return new Ci([[t]],DO,e,+i)}return null}const Rd=t=>()=>t;function FO(t,{sourceEvent:e,target:r,selection:n,mode:i,dispatch:a}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},selection:{value:n,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:a}})}function PO(t){t.stopImmediatePropagation()}function Id(t){t.preventDefault(),t.stopImmediatePropagation()}var bv={name:"drag"},Nd={name:"space"},bo={name:"handle"},_o={name:"center"};const{abs:_v,max:Or,min:Fr}=Math;function vv(t){return[+t[0],+t[1]]}function Bd(t){return[vv(t[0]),vv(t[1])]}var nh={name:"x",handles:["w","e"].map(zl),input:function(t,e){return t==null?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},ih={name:"y",handles:["n","s"].map(zl),input:function(t,e){return t==null?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},qO={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(zl),input:function(t){return t==null?null:Bd(t)},output:function(t){return t}},Xi={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},xv={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},kv={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},VO={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},zO={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function zl(t){return{type:t}}function YO(t){return!t.ctrlKey&&!t.button}function UO(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function WO(){return navigator.maxTouchPoints||"ontouchstart"in this}function Dd(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function HO(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function GO(t){var e=t.__brush;return e?e.dim.output(e.selection):null}function jO(){return Od(nh)}function $O(){return Od(ih)}function XO(){return Od(qO)}function Od(t){var e=UO,r=YO,n=WO,i=!0,a=fs("start","brush","end"),s=6,o;function l(y){var b=y.property("__brush",_).selectAll(".overlay").data([zl("overlay")]);b.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Xi.overlay).merge(b).each(function(){var k=Dd(this).extent;St(this).attr("x",k[0][0]).attr("y",k[0][1]).attr("width",k[1][0]-k[0][0]).attr("height",k[1][1]-k[0][1])}),y.selectAll(".selection").data([zl("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Xi.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var x=y.selectAll(".handle").data(t.handles,function(k){return k.type});x.exit().remove(),x.enter().append("rect").attr("class",function(k){return"handle handle--"+k.type}).attr("cursor",function(k){return Xi[k.type]}),y.each(u).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",f).filter(n).on("touchstart.brush",f).on("touchmove.brush",p).on("touchend.brush touchcancel.brush",m).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}l.move=function(y,b,x){y.tween?y.on("start.brush",function(k){h(this,arguments).beforestart().start(k)}).on("interrupt.brush end.brush",function(k){h(this,arguments).end(k)}).tween("brush",function(){var k=this,T=k.__brush,C=h(k,arguments),M=T.selection,S=t.input(typeof b=="function"?b.apply(this,arguments):b,T.extent),R=Ma(M,S);function A(L){T.selection=L===1&&S===null?null:R(L),u.call(k),C.brush()}return M!==null&&S!==null?A:A(1)}):y.each(function(){var k=this,T=arguments,C=k.__brush,M=t.input(typeof b=="function"?b.apply(k,T):b,C.extent),S=h(k,T).beforestart();vs(k),C.selection=M===null?null:M,u.call(k),S.start(x).brush(x).end(x)})},l.clear=function(y,b){l.move(y,null,b)};function u(){var y=St(this),b=Dd(this).selection;b?(y.selectAll(".selection").style("display",null).attr("x",b[0][0]).attr("y",b[0][1]).attr("width",b[1][0]-b[0][0]).attr("height",b[1][1]-b[0][1]),y.selectAll(".handle").style("display",null).attr("x",function(x){return x.type[x.type.length-1]==="e"?b[1][0]-s/2:b[0][0]-s/2}).attr("y",function(x){return x.type[0]==="s"?b[1][1]-s/2:b[0][1]-s/2}).attr("width",function(x){return x.type==="n"||x.type==="s"?b[1][0]-b[0][0]+s:s}).attr("height",function(x){return x.type==="e"||x.type==="w"?b[1][1]-b[0][1]+s:s})):y.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function h(y,b,x){var k=y.__brush.emitter;return k&&(!x||!k.clean)?k:new d(y,b,x)}function d(y,b,x){this.that=y,this.args=b,this.state=y.__brush,this.active=0,this.clean=x}d.prototype={beforestart:function(){return++this.active===1&&(this.state.emitter=this,this.starting=!0),this},start:function(y,b){return this.starting?(this.starting=!1,this.emit("start",y,b)):this.emit("brush",y),this},brush:function(y,b){return this.emit("brush",y,b),this},end:function(y,b){return--this.active===0&&(delete this.state.emitter,this.emit("end",y,b)),this},emit:function(y,b,x){var k=St(this.that).datum();a.call(y,this.that,new FO(y,{sourceEvent:b,target:l,selection:t.output(this.state.selection),mode:x,dispatch:a}),k)}};function f(y){if(o&&!y.touches||!r.apply(this,arguments))return;var b=this,x=y.target.__data__.type,k=(i&&y.metaKey?x="overlay":x)==="selection"?bv:i&&y.altKey?_o:bo,T=t===ih?null:VO[x],C=t===nh?null:zO[x],M=Dd(b),S=M.extent,R=M.selection,A=S[0][0],L,v,B=S[0][1],w,D,N=S[1][0],z,X,ct=S[1][1],J,Y,$=0,lt=0,ut,W=T&&C&&i&&y.shiftKey,tt,K,it=Array.from(y.touches||[y],at=>{const It=at.identifier;return at=Tn(at,b),at.point0=at.slice(),at.identifier=It,at});vs(b);var Z=h(b,arguments,!0).beforestart();if(x==="overlay"){R&&(ut=!0);const at=[it[0],it[1]||it[0]];M.selection=R=[[L=t===ih?A:Fr(at[0][0],at[1][0]),w=t===nh?B:Fr(at[0][1],at[1][1])],[z=t===ih?N:Or(at[0][0],at[1][0]),J=t===nh?ct:Or(at[0][1],at[1][1])]],it.length>1&&F(y)}else L=R[0][0],w=R[0][1],z=R[1][0],J=R[1][1];v=L,D=w,X=z,Y=J;var V=St(b).attr("pointer-events","none"),Q=V.selectAll(".overlay").attr("cursor",Xi[x]);if(y.touches)Z.moved=U,Z.ended=j;else{var q=St(y.view).on("mousemove.brush",U,!0).on("mouseup.brush",j,!0);i&&q.on("keydown.brush",P,!0).on("keyup.brush",et,!0),Nu(y.view)}u.call(b),Z.start(y,k.name);function U(at){for(const It of at.changedTouches||[at])for(const Lt of it)Lt.identifier===It.identifier&&(Lt.cur=Tn(It,b));if(W&&!tt&&!K&&it.length===1){const It=it[0];_v(It.cur[0]-It[0])>_v(It.cur[1]-It[1])?K=!0:tt=!0}for(const It of it)It.cur&&(It[0]=It.cur[0],It[1]=It.cur[1]);ut=!0,Id(at),F(at)}function F(at){const It=it[0],Lt=It.point0;var Rt;switch($=It[0]-Lt[0],lt=It[1]-Lt[1],k){case Nd:case bv:{T&&($=Or(A-L,Fr(N-z,$)),v=L+$,X=z+$),C&&(lt=Or(B-w,Fr(ct-J,lt)),D=w+lt,Y=J+lt);break}case bo:{it[1]?(T&&(v=Or(A,Fr(N,it[0][0])),X=Or(A,Fr(N,it[1][0])),T=1),C&&(D=Or(B,Fr(ct,it[0][1])),Y=Or(B,Fr(ct,it[1][1])),C=1)):(T<0?($=Or(A-L,Fr(N-L,$)),v=L+$,X=z):T>0&&($=Or(A-z,Fr(N-z,$)),v=L,X=z+$),C<0?(lt=Or(B-w,Fr(ct-w,lt)),D=w+lt,Y=J):C>0&&(lt=Or(B-J,Fr(ct-J,lt)),D=w,Y=J+lt));break}case _o:{T&&(v=Or(A,Fr(N,L-$*T)),X=Or(A,Fr(N,z+$*T))),C&&(D=Or(B,Fr(ct,w-lt*C)),Y=Or(B,Fr(ct,J+lt*C)));break}}X0&&(L=v-$),C<0?J=Y-lt:C>0&&(w=D-lt),k=Nd,Q.attr("cursor",Xi.selection),F(at));break}default:return}Id(at)}function et(at){switch(at.keyCode){case 16:{W&&(tt=K=W=!1,F(at));break}case 18:{k===_o&&(T<0?z=X:T>0&&(L=v),C<0?J=Y:C>0&&(w=D),k=bo,F(at));break}case 32:{k===Nd&&(at.altKey?(T&&(z=X-$*T,L=v+$*T),C&&(J=Y-lt*C,w=D+lt*C),k=_o):(T<0?z=X:T>0&&(L=v),C<0?J=Y:C>0&&(w=D),k=bo),Q.attr("cursor",Xi[x]),F(at));break}default:return}Id(at)}}function p(y){h(this,arguments).moved(y)}function m(y){h(this,arguments).ended(y)}function _(){var y=this.__brush||{selection:null};return y.extent=Bd(e.apply(this,arguments)),y.dim=t,y}return l.extent=function(y){return arguments.length?(e=typeof y=="function"?y:Rd(Bd(y)),l):e},l.filter=function(y){return arguments.length?(r=typeof y=="function"?y:Rd(!!y),l):r},l.touchable=function(y){return arguments.length?(n=typeof y=="function"?y:Rd(!!y),l):n},l.handleSize=function(y){return arguments.length?(s=+y,l):s},l.keyModifiers=function(y){return arguments.length?(i=!!y,l):i},l.on=function(){var y=a.on.apply(a,arguments);return y===a?l:y},l}var wv=Math.abs,vo=Math.cos,xo=Math.sin,Tv=Math.PI,ah=Tv/2,Ev=Tv*2,Cv=Math.max,Fd=1e-12;function Pd(t,e){return Array.from({length:e-t},(r,n)=>t+n)}function KO(t){return function(e,r){return t(e.source.value+e.target.value,r.source.value+r.target.value)}}function ZO(){return qd(!1,!1)}function QO(){return qd(!1,!0)}function JO(){return qd(!0,!1)}function qd(t,e){var r=0,n=null,i=null,a=null;function s(o){var l=o.length,u=new Array(l),h=Pd(0,l),d=new Array(l*l),f=new Array(l),p=0,m;o=Float64Array.from({length:l*l},e?(_,y)=>o[y%l][y/l|0]:(_,y)=>o[y/l|0][y%l]);for(let _=0;_n(u[y],u[b]));for(const y of h){const b=_;if(t){const x=Pd(~l+1,l).filter(k=>k<0?o[~k*l+y]:o[y*l+k]);i&&x.sort((k,T)=>i(k<0?-o[~k*l+y]:o[y*l+k],T<0?-o[~T*l+y]:o[y*l+T]));for(const k of x)if(k<0){const T=d[~k*l+y]||(d[~k*l+y]={source:null,target:null});T.target={index:y,startAngle:_,endAngle:_+=o[~k*l+y]*p,value:o[~k*l+y]}}else{const T=d[y*l+k]||(d[y*l+k]={source:null,target:null});T.source={index:y,startAngle:_,endAngle:_+=o[y*l+k]*p,value:o[y*l+k]}}f[y]={index:y,startAngle:b,endAngle:_,value:u[y]}}else{const x=Pd(0,l).filter(k=>o[y*l+k]||o[k*l+y]);i&&x.sort((k,T)=>i(o[y*l+k],o[y*l+T]));for(const k of x){let T;if(yxs)if(!(Math.abs(h*o-l*u)>xs)||!i)this._+="L"+(this._x1=t)+","+(this._y1=e);else{var f=r-a,p=n-s,m=o*o+l*l,_=f*f+p*p,y=Math.sqrt(m),b=Math.sqrt(d),x=i*Math.tan((Vd-Math.acos((m+d-_)/(2*y*b)))/2),k=x/b,T=x/y;Math.abs(k-1)>xs&&(this._+="L"+(t+k*u)+","+(e+k*h)),this._+="A"+i+","+i+",0,0,"+ +(h*f>u*p)+","+(this._x1=t+T*o)+","+(this._y1=e+T*l)}},arc:function(t,e,r,n,i,a){t=+t,e=+e,r=+r,a=!!a;var s=r*Math.cos(n),o=r*Math.sin(n),l=t+s,u=e+o,h=1^a,d=a?n-i:i-n;if(r<0)throw new Error("negative radius: "+r);this._x1===null?this._+="M"+l+","+u:(Math.abs(this._x1-l)>xs||Math.abs(this._y1-u)>xs)&&(this._+="L"+l+","+u),r&&(d<0&&(d=d%zd+zd),d>tF?this._+="A"+r+","+r+",0,1,"+h+","+(t-s)+","+(e-o)+"A"+r+","+r+",0,1,"+h+","+(this._x1=l)+","+(this._y1=u):d>xs&&(this._+="A"+r+","+r+",0,"+ +(d>=Vd)+","+h+","+(this._x1=t+r*Math.cos(i))+","+(this._y1=e+r*Math.sin(i))))},rect:function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},toString:function(){return this._}};var eF=Array.prototype.slice;function ks(t){return function(){return t}}function rF(t){return t.source}function nF(t){return t.target}function Sv(t){return t.radius}function iF(t){return t.startAngle}function aF(t){return t.endAngle}function sF(){return 0}function oF(){return 10}function Av(t){var e=rF,r=nF,n=Sv,i=Sv,a=iF,s=aF,o=sF,l=null;function u(){var h,d=e.apply(this,arguments),f=r.apply(this,arguments),p=o.apply(this,arguments)/2,m=eF.call(arguments),_=+n.apply(this,(m[0]=d,m)),y=a.apply(this,m)-ah,b=s.apply(this,m)-ah,x=+i.apply(this,(m[0]=f,m)),k=a.apply(this,m)-ah,T=s.apply(this,m)-ah;if(l||(l=h=Ra()),p>Fd&&(wv(b-y)>p*2+Fd?b>y?(y+=p,b-=p):(y-=p,b+=p):y=b=(y+b)/2,wv(T-k)>p*2+Fd?T>k?(k+=p,T-=p):(k-=p,T+=p):k=T=(k+T)/2),l.moveTo(_*vo(y),_*xo(y)),l.arc(0,0,_,y,b),y!==k||b!==T)if(t){var C=+t.apply(this,arguments),M=x-C,S=(k+T)/2;l.quadraticCurveTo(0,0,M*vo(k),M*xo(k)),l.lineTo(x*vo(S),x*xo(S)),l.lineTo(M*vo(T),M*xo(T))}else l.quadraticCurveTo(0,0,x*vo(k),x*xo(k)),l.arc(0,0,x,k,T);if(l.quadraticCurveTo(0,0,_*vo(y),_*xo(y)),l.closePath(),h)return l=null,h+""||null}return t&&(u.headRadius=function(h){return arguments.length?(t=typeof h=="function"?h:ks(+h),u):t}),u.radius=function(h){return arguments.length?(n=i=typeof h=="function"?h:ks(+h),u):n},u.sourceRadius=function(h){return arguments.length?(n=typeof h=="function"?h:ks(+h),u):n},u.targetRadius=function(h){return arguments.length?(i=typeof h=="function"?h:ks(+h),u):i},u.startAngle=function(h){return arguments.length?(a=typeof h=="function"?h:ks(+h),u):a},u.endAngle=function(h){return arguments.length?(s=typeof h=="function"?h:ks(+h),u):s},u.padAngle=function(h){return arguments.length?(o=typeof h=="function"?h:ks(+h),u):o},u.source=function(h){return arguments.length?(e=h,u):e},u.target=function(h){return arguments.length?(r=h,u):r},u.context=function(h){return arguments.length?(l=h==null?null:h,u):l},u}function lF(){return Av()}function cF(){return Av(oF)}var uF=Array.prototype,Mv=uF.slice;function hF(t,e){return t-e}function fF(t){for(var e=0,r=t.length,n=t[r-1][1]*t[0][0]-t[r-1][0]*t[0][1];++e()=>t;function dF(t,e){for(var r=-1,n=e.length,i;++rn!=p>n&&r<(f-u)*(n-h)/(p-h)+u&&(i=-i)}return i}function gF(t,e,r){var n;return yF(t,e,r)&&mF(t[n=+(t[0]===e[0])],r[n],e[n])}function yF(t,e,r){return(e[0]-t[0])*(r[1]-t[1])===(r[0]-t[0])*(e[1]-t[1])}function mF(t,e,r){return t<=e&&e<=r||r<=e&&e<=t}function bF(){}var Ki=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function Ud(){var t=1,e=1,r=W0,n=l;function i(u){var h=r(u);if(Array.isArray(h))h=h.slice().sort(hF);else{const d=xl(u),f=wl(d[0],d[1],h);h=hs(Math.floor(d[0]/f)*f,Math.floor(d[1]/f-1)*f,h)}return h.map(d=>a(u,d))}function a(u,h){var d=[],f=[];return s(u,h,function(p){n(p,u,h),fF(p)>0?d.push([p]):f.push(p)}),f.forEach(function(p){for(var m=0,_=d.length,y;m<_;++m)if(dF((y=d[m])[0],p)!==-1){y.push(p);return}}),{type:"MultiPolygon",value:h,coordinates:d}}function s(u,h,d){var f=new Array,p=new Array,m,_,y,b,x,k;for(m=_=-1,b=u[0]>=h,Ki[b<<1].forEach(T);++m=h,Ki[y|b<<1].forEach(T);for(Ki[b<<0].forEach(T);++_=h,x=u[_*t]>=h,Ki[b<<1|x<<2].forEach(T);++m=h,k=x,x=u[_*t+m+1]>=h,Ki[y|b<<1|x<<2|k<<3].forEach(T);Ki[b|x<<3].forEach(T)}for(m=-1,x=u[_*t]>=h,Ki[x<<2].forEach(T);++m=h,Ki[x<<2|k<<3].forEach(T);Ki[x<<3].forEach(T);function T(C){var M=[C[0][0]+m,C[0][1]+_],S=[C[1][0]+m,C[1][1]+_],R=o(M),A=o(S),L,v;(L=p[R])?(v=f[A])?(delete p[L.end],delete f[v.start],L===v?(L.ring.push(S),d(L.ring)):f[L.start]=p[v.end]={start:L.start,end:v.end,ring:L.ring.concat(v.ring)}):(delete p[L.end],L.ring.push(S),p[L.end=A]=L):(L=f[A])?(v=p[R])?(delete f[L.start],delete p[v.end],L===v?(L.ring.push(S),d(L.ring)):f[v.start]=p[L.end]={start:v.start,end:L.end,ring:v.ring.concat(L.ring)}):(delete f[L.start],L.ring.unshift(M),f[L.start=R]=L):f[R]=p[A]={start:R,end:A,ring:[M,S]}}}function o(u){return u[0]*2+u[1]*(t+1)*4}function l(u,h,d){u.forEach(function(f){var p=f[0],m=f[1],_=p|0,y=m|0,b,x=h[y*t+_];p>0&&p0&&m=0&&d>=0))throw new Error("invalid size");return t=h,e=d,i},i.thresholds=function(u){return arguments.length?(r=typeof u=="function"?u:Array.isArray(u)?Ia(Mv.call(u)):Ia(u),i):r},i.smooth=function(u){return arguments.length?(n=u?l:bF,i):n===l},i}function _F(t){return t[0]}function vF(t){return t[1]}function xF(){return 1}function kF(){var t=_F,e=vF,r=xF,n=960,i=500,a=20,s=2,o=a*3,l=n+o*2>>s,u=i+o*2>>s,h=Ia(20);function d(x){var k=new Float32Array(l*u),T=Math.pow(2,-s),C=-1;for(const w of x){var M=(t(w,++C,x)+o)*T,S=(e(w,C,x)+o)*T,R=+r(w,C,x);if(M>=0&&M=0&&SM*C))(k).map((M,S)=>(M.value=+T[S],p(M)))}f.contours=function(x){var k=d(x),T=Ud().size([l,u]),C=Math.pow(2,2*s),M=S=>{S=+S;var R=p(T.contour(k,S*C));return R.value=S,R};return Object.defineProperty(M,"max",{get:()=>lo(k)/C}),M};function p(x){return x.coordinates.forEach(m),x}function m(x){x.forEach(_)}function _(x){x.forEach(y)}function y(x){x[0]=x[0]*Math.pow(2,s)-o,x[1]=x[1]*Math.pow(2,s)-o}function b(){return o=a*3,l=n+o*2>>s,u=i+o*2>>s,f}return f.x=function(x){return arguments.length?(t=typeof x=="function"?x:Ia(+x),f):t},f.y=function(x){return arguments.length?(e=typeof x=="function"?x:Ia(+x),f):e},f.weight=function(x){return arguments.length?(r=typeof x=="function"?x:Ia(+x),f):r},f.size=function(x){if(!arguments.length)return[n,i];var k=+x[0],T=+x[1];if(!(k>=0&&T>=0))throw new Error("invalid size");return n=k,i=T,b()},f.cellSize=function(x){if(!arguments.length)return 1<=1))throw new Error("invalid cell size");return s=Math.floor(Math.log(x)/Math.LN2),b()},f.thresholds=function(x){return arguments.length?(h=typeof x=="function"?x:Array.isArray(x)?Ia(Mv.call(x)):Ia(x),f):h},f.bandwidth=function(x){if(!arguments.length)return Math.sqrt(a*(a+1));if(!((x=+x)>=0))throw new Error("invalid bandwidth");return a=(Math.sqrt(4*x*x+1)-1)/2,b()},f}const Zi=11102230246251565e-32,Pr=134217729,wF=(3+8*Zi)*Zi;function Wd(t,e,r,n,i){let a,s,o,l,u=e[0],h=n[0],d=0,f=0;h>u==h>-u?(a=u,u=e[++d]):(a=h,h=n[++f]);let p=0;if(du==h>-u?(s=u+a,o=a-(s-u),u=e[++d]):(s=h+a,o=a-(s-h),h=n[++f]),a=s,o!==0&&(i[p++]=o);du==h>-u?(s=a+u,l=s-a,o=a-(s-l)+(u-l),u=e[++d]):(s=a+h,l=s-a,o=a-(s-l)+(h-l),h=n[++f]),a=s,o!==0&&(i[p++]=o);for(;d=D||-w>=D||(d=t-A,o=t-(A+d)+(d-i),d=r-L,u=r-(L+d)+(d-i),d=e-v,l=e-(v+d)+(d-a),d=n-B,h=n-(B+d)+(d-a),o===0&&l===0&&u===0&&h===0)||(D=SF*s+wF*Math.abs(w),w+=A*h+B*o-(v*u+L*l),w>=D||-w>=D))return w;T=o*B,f=Pr*o,p=f-(f-o),m=o-p,f=Pr*B,_=f-(f-B),y=B-_,C=m*y-(T-p*_-m*_-p*y),M=l*L,f=Pr*l,p=f-(f-l),m=l-p,f=Pr*L,_=f-(f-L),y=L-_,S=m*y-(M-p*_-m*_-p*y),b=C-S,d=C-b,Xr[0]=C-(b+d)+(d-S),x=T+b,d=x-T,k=T-(x-d)+(b-d),b=k-M,d=k-b,Xr[1]=k-(b+d)+(d-M),R=x+b,d=R-x,Xr[2]=x-(R-d)+(b-d),Xr[3]=R;const N=Wd(4,ko,4,Xr,Lv);T=A*h,f=Pr*A,p=f-(f-A),m=A-p,f=Pr*h,_=f-(f-h),y=h-_,C=m*y-(T-p*_-m*_-p*y),M=v*u,f=Pr*v,p=f-(f-v),m=v-p,f=Pr*u,_=f-(f-u),y=u-_,S=m*y-(M-p*_-m*_-p*y),b=C-S,d=C-b,Xr[0]=C-(b+d)+(d-S),x=T+b,d=x-T,k=T-(x-d)+(b-d),b=k-M,d=k-b,Xr[1]=k-(b+d)+(d-M),R=x+b,d=R-x,Xr[2]=x-(R-d)+(b-d),Xr[3]=R;const z=Wd(N,Lv,4,Xr,Rv);T=o*h,f=Pr*o,p=f-(f-o),m=o-p,f=Pr*h,_=f-(f-h),y=h-_,C=m*y-(T-p*_-m*_-p*y),M=l*u,f=Pr*l,p=f-(f-l),m=l-p,f=Pr*u,_=f-(f-u),y=u-_,S=m*y-(M-p*_-m*_-p*y),b=C-S,d=C-b,Xr[0]=C-(b+d)+(d-S),x=T+b,d=x-T,k=T-(x-d)+(b-d),b=k-M,d=k-b,Xr[1]=k-(b+d)+(d-M),R=x+b,d=R-x,Xr[2]=x-(R-d)+(b-d),Xr[3]=R;const X=Wd(z,Rv,4,Xr,Iv);return Iv[X-1]}function sh(t,e,r,n,i,a){const s=(e-a)*(r-i),o=(t-i)*(n-a),l=s-o;if(s===0||o===0||s>0!=o>0)return l;const u=Math.abs(s+o);return Math.abs(l)>=EF*u?l:-AF(t,e,r,n,i,a,u)}const Nv=Math.pow(2,-52),oh=new Uint32Array(512);class lh{static from(e,r=NF,n=BF){const i=e.length,a=new Float64Array(i*2);for(let s=0;s>1;if(r>0&&typeof e[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=e;const n=Math.max(2*r-5,0);this._triangles=new Uint32Array(n*3),this._halfedges=new Int32Array(n*3),this._hashSize=Math.ceil(Math.sqrt(r)),this._hullPrev=new Uint32Array(r),this._hullNext=new Uint32Array(r),this._hullTri=new Uint32Array(r),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(r),this._dists=new Float64Array(r),this.update()}update(){const{coords:e,_hullPrev:r,_hullNext:n,_hullTri:i,_hullHash:a}=this,s=e.length>>1;let o=1/0,l=1/0,u=-1/0,h=-1/0;for(let L=0;Lu&&(u=v),B>h&&(h=B),this._ids[L]=L}const d=(o+u)/2,f=(l+h)/2;let p=1/0,m,_,y;for(let L=0;L0&&(_=L,p=v)}let k=e[2*_],T=e[2*_+1],C=1/0;for(let L=0;Lw&&(L[v++]=D,w=this._dists[D])}this.hull=L.subarray(0,v),this.triangles=new Uint32Array(0),this.halfedges=new Uint32Array(0);return}if(sh(b,x,k,T,M,S)<0){const L=_,v=k,B=T;_=y,k=M,T=S,y=L,M=v,S=B}const R=IF(b,x,k,T,M,S);this._cx=R.x,this._cy=R.y;for(let L=0;L0&&Math.abs(D-v)<=Nv&&Math.abs(N-B)<=Nv||(v=D,B=N,w===m||w===_||w===y))continue;let z=0;for(let $=0,lt=this._hashKey(D,N);$=0;)if(X=ct,X===z){X=-1;break}if(X===-1)continue;let J=this._addTriangle(X,w,n[X],-1,-1,i[X]);i[w]=this._legalize(J+2),i[X]=J,A++;let Y=n[X];for(;ct=n[Y],sh(D,N,e[2*Y],e[2*Y+1],e[2*ct],e[2*ct+1])<0;)J=this._addTriangle(Y,w,ct,i[w],-1,i[Y]),i[w]=this._legalize(J+2),n[Y]=Y,A--,Y=ct;if(X===z)for(;ct=r[X],sh(D,N,e[2*ct],e[2*ct+1],e[2*X],e[2*X+1])<0;)J=this._addTriangle(ct,w,X,-1,i[X],i[ct]),this._legalize(J+2),i[ct]=J,n[X]=X,A--,X=ct;this._hullStart=r[w]=X,n[X]=r[Y]=w,n[w]=Y,a[this._hashKey(D,N)]=w,a[this._hashKey(e[2*X],e[2*X+1])]=X}this.hull=new Uint32Array(A);for(let L=0,v=this._hullStart;L0?3-r:1+r)/4}function Hd(t,e,r,n){const i=t-r,a=e-n;return i*i+a*a}function LF(t,e,r,n,i,a,s,o){const l=t-s,u=e-o,h=r-s,d=n-o,f=i-s,p=a-o,m=l*l+u*u,_=h*h+d*d,y=f*f+p*p;return l*(d*y-_*p)-u*(h*y-_*f)+m*(h*p-d*f)<0}function RF(t,e,r,n,i,a){const s=r-t,o=n-e,l=i-t,u=a-e,h=s*s+o*o,d=l*l+u*u,f=.5/(s*u-o*l),p=(u*h-o*d)*f,m=(s*d-l*h)*f;return p*p+m*m}function IF(t,e,r,n,i,a){const s=r-t,o=n-e,l=i-t,u=a-e,h=s*s+o*o,d=l*l+u*u,f=.5/(s*u-o*l),p=t+(u*h-o*d)*f,m=e+(s*d-l*h)*f;return{x:p,y:m}}function wo(t,e,r,n){if(n-r<=20)for(let i=r+1;i<=n;i++){const a=t[i],s=e[a];let o=i-1;for(;o>=r&&e[t[o]]>s;)t[o+1]=t[o--];t[o+1]=a}else{const i=r+n>>1;let a=r+1,s=n;Ul(t,i,a),e[t[r]]>e[t[n]]&&Ul(t,r,n),e[t[a]]>e[t[n]]&&Ul(t,a,n),e[t[r]]>e[t[a]]&&Ul(t,r,a);const o=t[a],l=e[o];for(;;){do a++;while(e[t[a]]l);if(s=s-r?(wo(t,e,a,n),wo(t,e,r,s-1)):(wo(t,e,r,s-1),wo(t,e,a,n))}}function Ul(t,e,r){const n=t[e];t[e]=t[r],t[r]=n}function NF(t){return t[0]}function BF(t){return t[1]}const Bv=1e-6;class ws{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,r){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,r){this._+=`L${this._x1=+e},${this._y1=+r}`}arc(e,r,n){e=+e,r=+r,n=+n;const i=e+n,a=r;if(n<0)throw new Error("negative radius");this._x1===null?this._+=`M${i},${a}`:(Math.abs(this._x1-i)>Bv||Math.abs(this._y1-a)>Bv)&&(this._+="L"+i+","+a),n&&(this._+=`A${n},${n},0,1,1,${e-n},${r}A${n},${n},0,1,1,${this._x1=i},${this._y1=a}`)}rect(e,r,n,i){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${+n}v${+i}h${-n}Z`}value(){return this._||null}}class Gd{constructor(){this._=[]}moveTo(e,r){this._.push([e,r])}closePath(){this._.push(this._[0].slice())}lineTo(e,r){this._.push([e,r])}value(){return this._.length?this._:null}}class Dv{constructor(e,[r,n,i,a]=[0,0,960,500]){if(!((i=+i)>=(r=+r))||!((a=+a)>=(n=+n)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(e.points.length*2),this.vectors=new Float64Array(e.points.length*2),this.xmax=i,this.xmin=r,this.ymax=a,this.ymin=n,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:r,triangles:n},vectors:i}=this,a=this.circumcenters=this._circumcenters.subarray(0,n.length/3*2);for(let p=0,m=0,_=n.length,y,b;p<_;p+=3,m+=2){const x=n[p]*2,k=n[p+1]*2,T=n[p+2]*2,C=e[x],M=e[x+1],S=e[k],R=e[k+1],A=e[T],L=e[T+1],v=S-C,B=R-M,w=A-C,D=L-M,N=(v*D-B*w)*2;if(Math.abs(N)<1e-9){let z=1e9;const X=n[0]*2;z*=Math.sign((e[X]-C)*D-(e[X+1]-M)*w),y=(C+A)/2-z*D,b=(M+L)/2+z*w}else{const z=1/N,X=v*v+B*B,ct=w*w+D*D;y=C+(D*X-B*ct)*z,b=M+(v*ct-w*X)*z}a[m]=y,a[m+1]=b}let s=r[r.length-1],o,l=s*4,u,h=e[2*s],d,f=e[2*s+1];i.fill(0);for(let p=0;p1;)a-=2;for(let s=2;s4)for(let s=0;s0){if(r>=this.ymax)return null;(s=(this.ymax-r)/i)0){if(e>=this.xmax)return null;(s=(this.xmax-e)/n)this.xmax?2:0)|(rthis.ymax?8:0)}}const DF=2*Math.PI,To=Math.pow;function OF(t){return t[0]}function FF(t){return t[1]}function PF(t){const{triangles:e,coords:r}=t;for(let n=0;n1e-10)return!1}return!0}function qF(t,e,r){return[t+Math.sin(t+e)*r,e+Math.cos(t-e)*r]}class jd{static from(e,r=OF,n=FF,i){return new jd("length"in e?VF(e,r,n,i):Float64Array.from(zF(e,r,n,i)))}constructor(e){this._delaunator=new lh(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const e=this._delaunator,r=this.points;if(e.hull&&e.hull.length>2&&PF(e)){this.collinear=Int32Array.from({length:r.length/2},(f,p)=>p).sort((f,p)=>r[2*f]-r[2*p]||r[2*f+1]-r[2*p+1]);const l=this.collinear[0],u=this.collinear[this.collinear.length-1],h=[r[2*l],r[2*l+1],r[2*u],r[2*u+1]],d=1e-8*Math.hypot(h[3]-h[1],h[2]-h[0]);for(let f=0,p=r.length/2;f0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=i[0],s[i[0]]=1,i.length===2&&(s[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(e){return new Dv(this,e)}*neighbors(e){const{inedges:r,hull:n,_hullIndex:i,halfedges:a,triangles:s,collinear:o}=this;if(o){const d=o.indexOf(e);d>0&&(yield o[d-1]),d=0&&a!==n&&a!==i;)n=a;return a}_step(e,r,n){const{inedges:i,hull:a,_hullIndex:s,halfedges:o,triangles:l,points:u}=this;if(i[e]===-1||!u.length)return(e+1)%(u.length>>1);let h=e,d=To(r-u[e*2],2)+To(n-u[e*2+1],2);const f=i[e];let p=f;do{let m=l[p];const _=To(r-u[m*2],2)+To(n-u[m*2+1],2);if(_9999?"+"+dn(t,6):dn(t,4)}function WF(t){var e=t.getUTCHours(),r=t.getUTCMinutes(),n=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":UF(t.getUTCFullYear())+"-"+dn(t.getUTCMonth()+1,2)+"-"+dn(t.getUTCDate(),2)+(i?"T"+dn(e,2)+":"+dn(r,2)+":"+dn(n,2)+"."+dn(i,3)+"Z":n?"T"+dn(e,2)+":"+dn(r,2)+":"+dn(n,2)+"Z":r||e?"T"+dn(e,2)+":"+dn(r,2)+"Z":"")}function ch(t){var e=new RegExp('["'+t+` +\r]`),r=t.charCodeAt(0);function n(d,f){var p,m,_=i(d,function(y,b){if(p)return p(y,b-1);m=y,p=f?YF(y,f):Fv(y)});return _.columns=m||[],_}function i(d,f){var p=[],m=d.length,_=0,y=0,b,x=m<=0,k=!1;d.charCodeAt(m-1)===Wl&&--m,d.charCodeAt(m-1)===Kd&&--m;function T(){if(x)return $d;if(k)return k=!1,Ov;var M,S=_,R;if(d.charCodeAt(S)===Xd){for(;_++=m?x=!0:(R=d.charCodeAt(_++))===Wl?k=!0:R===Kd&&(k=!0,d.charCodeAt(_)===Wl&&++_),d.slice(S+1,M-1).replace(/""/g,'"')}for(;_uh(e,r).then(n=>new DOMParser().parseFromString(n,t))}const yP=Zd("application/xml");var mP=Zd("text/html"),bP=Zd("image/svg+xml");function _P(t,e){var r,n=1;t==null&&(t=0),e==null&&(e=0);function i(){var a,s=r.length,o,l=0,u=0;for(a=0;a=(d=(o+u)/2))?o=d:u=d,(y=r>=(f=(l+h)/2))?l=f:h=f,i=a,!(a=a[b=y<<1|_]))return i[b]=s,t;if(p=+t._x.call(null,a.data),m=+t._y.call(null,a.data),e===p&&r===m)return s.next=a,i?i[b]=s:t._root=s,t;do i=i?i[b]=new Array(4):t._root=new Array(4),(_=e>=(d=(o+u)/2))?o=d:u=d,(y=r>=(f=(l+h)/2))?l=f:h=f;while((b=y<<1|_)===(x=(m>=f)<<1|p>=d));return i[x]=a,i[b]=s,t}function xP(t){var e,r,n=t.length,i,a,s=new Array(n),o=new Array(n),l=1/0,u=1/0,h=-1/0,d=-1/0;for(r=0;rh&&(h=i),ad&&(d=a));if(l>h||u>d)return this;for(this.cover(l,u).cover(h,d),r=0;rt||t>=i||n>e||e>=a;)switch(u=(eh||(o=m.y0)>d||(l=m.x1)=b)<<1|t>=y)&&(m=f[f.length-1],f[f.length-1]=f[f.length-1-_],f[f.length-1-_]=m)}else{var x=t-+this._x.call(null,p.data),k=e-+this._y.call(null,p.data),T=x*x+k*k;if(T=(f=(s+l)/2))?s=f:l=f,(_=d>=(p=(o+u)/2))?o=p:u=p,e=r,!(r=r[y=_<<1|m]))return this;if(!r.length)break;(e[y+1&3]||e[y+2&3]||e[y+3&3])&&(n=e,b=y)}for(;r.data!==t;)if(i=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,i?(a?i.next=a:delete i.next,this):e?(a?e[y]=a:delete e[y],(r=e[0]||e[1]||e[2]||e[3])&&r===(e[3]||e[2]||e[1]||e[0])&&!r.length&&(n?n[b]=r:this._root=r),this):(this._root=a,this)}function SP(t){for(var e=0,r=t.length;ef.index){var v=p-R.x-R.vx,B=m-R.y-R.vy,w=v*v+B*B;wp+L||Mm+L||Su.r&&(u.r=u[h].r)}function l(){if(!!e){var u,h=e.length,d;for(r=new Array(h),u=0;u[e(C,M,s),C])),T;for(y=0,o=new Array(b);y(t=(zP*t+YP)%Hv)/Hv}function WP(t){return t.x}function HP(t){return t.y}var GP=10,jP=Math.PI*(3-Math.sqrt(5));function $P(t){var e,r=1,n=.001,i=1-Math.pow(n,1/300),a=0,s=.6,o=new Map,l=Qu(d),u=fs("tick","end"),h=UP();t==null&&(t=[]);function d(){f(),u.call("tick",e),r1?(y==null?o.delete(_):o.set(_,m(y)),e):o.get(_)},find:function(_,y,b){var x=0,k=t.length,T,C,M,S,R;for(b==null?b=1/0:b*=b,x=0;x1?(u.on(_,y),e):u.on(_)}}}function XP(){var t,e,r,n,i=vr(-30),a,s=1,o=1/0,l=.81;function u(p){var m,_=t.length,y=hh(t,WP,HP).visitAfter(d);for(n=p,m=0;m<_;++m)e=t[m],y.visit(f)}function h(){if(!!t){var p,m=t.length,_;for(a=new Array(m),p=0;p=o)return;(p.data!==e||p.next)&&(b===0&&(b=Na(r),T+=b*b),x===0&&(x=Na(r),T+=x*x),T=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function fh(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function Eo(t){return t=fh(Math.abs(t)),t?t[1]:NaN}function tq(t,e){return function(r,n){for(var i=r.length,a=[],s=0,o=t[0],l=0;i>0&&o>0&&(l+o+1>n&&(o=Math.max(1,n-l)),a.push(r.substring(i-=o,i+o)),!((l+=o+1)>n));)o=t[s=(s+1)%t.length];return a.reverse().join(e)}}function eq(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var rq=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Co(t){if(!(e=rq.exec(t)))throw new Error("invalid format: "+t);var e;return new dh({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Co.prototype=dh.prototype;function dh(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}dh.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function nq(t){t:for(var e=t.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}var Gv;function iq(t,e){var r=fh(t,e);if(!r)return t+"";var n=r[0],i=r[1],a=i-(Gv=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=n.length;return a===s?n:a>s?n+new Array(a-s+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+fh(t,Math.max(0,e+a-1))[0]}function jv(t,e){var r=fh(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const $v={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:JP,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>jv(t*100,e),r:jv,s:iq,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Xv(t){return t}var Kv=Array.prototype.map,Zv=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function Qv(t){var e=t.grouping===void 0||t.thousands===void 0?Xv:tq(Kv.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?Xv:eq(Kv.call(t.numerals,String)),s=t.percent===void 0?"%":t.percent+"",o=t.minus===void 0?"\u2212":t.minus+"",l=t.nan===void 0?"NaN":t.nan+"";function u(d){d=Co(d);var f=d.fill,p=d.align,m=d.sign,_=d.symbol,y=d.zero,b=d.width,x=d.comma,k=d.precision,T=d.trim,C=d.type;C==="n"?(x=!0,C="g"):$v[C]||(k===void 0&&(k=12),T=!0,C="g"),(y||f==="0"&&p==="=")&&(y=!0,f="0",p="=");var M=_==="$"?r:_==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():"",S=_==="$"?n:/[%p]/.test(C)?s:"",R=$v[C],A=/[defgprs%]/.test(C);k=k===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,k)):Math.max(0,Math.min(20,k));function L(v){var B=M,w=S,D,N,z;if(C==="c")w=R(v)+w,v="";else{v=+v;var X=v<0||1/v<0;if(v=isNaN(v)?l:R(Math.abs(v),k),T&&(v=nq(v)),X&&+v==0&&m!=="+"&&(X=!1),B=(X?m==="("?m:o:m==="-"||m==="("?"":m)+B,w=(C==="s"?Zv[8+Gv/3]:"")+w+(X&&m==="("?")":""),A){for(D=-1,N=v.length;++Dz||z>57){w=(z===46?i+v.slice(D+1):v.slice(D))+w,v=v.slice(0,D);break}}}x&&!y&&(v=e(v,1/0));var ct=B.length+v.length+w.length,J=ct>1)+B+v+w+J.slice(ct);break;default:v=J+B+v+w;break}return a(v)}return L.toString=function(){return d+""},L}function h(d,f){var p=u((d=Co(d),d.type="f",d)),m=Math.max(-8,Math.min(8,Math.floor(Eo(f)/3)))*3,_=Math.pow(10,-m),y=Zv[8+m/3];return function(b){return p(_*b)+y}}return{format:u,formatPrefix:h}}var ph,gh,Jd;Jv({thousands:",",grouping:[3],currency:["$",""]});function Jv(t){return ph=Qv(t),gh=ph.format,Jd=ph.formatPrefix,ph}function t6(t){return Math.max(0,-Eo(Math.abs(t)))}function e6(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Eo(e)/3)))*3-Eo(Math.abs(t)))}function r6(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Eo(e)-Eo(t))+1}var te=1e-6,Hl=1e-12,Ae=Math.PI,rr=Ae/2,yh=Ae/4,Qr=Ae*2,Ue=180/Ae,re=Ae/180,Ne=Math.abs,So=Math.atan,Jr=Math.atan2,Kt=Math.cos,mh=Math.ceil,n6=Math.exp,t2=Math.hypot,bh=Math.log,e2=Math.pow,Ht=Math.sin,Dn=Math.sign||function(t){return t>0?1:t<0?-1:0},Sr=Math.sqrt,r2=Math.tan;function i6(t){return t>1?0:t<-1?Ae:Math.acos(t)}function tn(t){return t>1?rr:t<-1?-rr:Math.asin(t)}function a6(t){return(t=Ht(t/2))*t}function Je(){}function _h(t,e){t&&o6.hasOwnProperty(t.type)&&o6[t.type](t,e)}var s6={Feature:function(t,e){_h(t.geometry,e)},FeatureCollection:function(t,e){for(var r=t.features,n=-1,i=r.length;++n=0?1:-1,i=n*r,a=Kt(e),s=Ht(e),o=s2*s,l=a2*a+o*Kt(i),u=o*n*Ht(i);vh.add(Jr(u,l)),i2=t,a2=a,s2=s}function lq(t){return xh=new _r,ti(t,Si),xh*2}function kh(t){return[Jr(t[1],t[0]),tn(t[2])]}function Cs(t){var e=t[0],r=t[1],n=Kt(r);return[n*Kt(e),n*Ht(e),Ht(r)]}function wh(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Ao(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function o2(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function Th(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function Eh(t){var e=Sr(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var tr,pn,nr,En,Ss,f6,d6,Mo,Gl,Ba,Qi,Ji={point:l2,lineStart:g6,lineEnd:y6,polygonStart:function(){Ji.point=m6,Ji.lineStart=cq,Ji.lineEnd=uq,Gl=new _r,Si.polygonStart()},polygonEnd:function(){Si.polygonEnd(),Ji.point=l2,Ji.lineStart=g6,Ji.lineEnd=y6,vh<0?(tr=-(nr=180),pn=-(En=90)):Gl>te?En=90:Gl<-te&&(pn=-90),Qi[0]=tr,Qi[1]=nr},sphere:function(){tr=-(nr=180),pn=-(En=90)}};function l2(t,e){Ba.push(Qi=[tr=t,nr=t]),eEn&&(En=e)}function p6(t,e){var r=Cs([t*re,e*re]);if(Mo){var n=Ao(Mo,r),i=[n[1],-n[0],0],a=Ao(i,n);Eh(a),a=kh(a);var s=t-Ss,o=s>0?1:-1,l=a[0]*Ue*o,u,h=Ne(s)>180;h^(o*SsEn&&(En=u)):(l=(l+360)%360-180,h^(o*SsEn&&(En=e))),h?tCn(tr,nr)&&(nr=t):Cn(t,nr)>Cn(tr,nr)&&(tr=t):nr>=tr?(tnr&&(nr=t)):t>Ss?Cn(tr,t)>Cn(tr,nr)&&(nr=t):Cn(t,nr)>Cn(tr,nr)&&(tr=t)}else Ba.push(Qi=[tr=t,nr=t]);eEn&&(En=e),Mo=r,Ss=t}function g6(){Ji.point=p6}function y6(){Qi[0]=tr,Qi[1]=nr,Ji.point=l2,Mo=null}function m6(t,e){if(Mo){var r=t-Ss;Gl.add(Ne(r)>180?r+(r>0?360:-360):r)}else f6=t,d6=e;Si.point(t,e),p6(t,e)}function cq(){Si.lineStart()}function uq(){m6(f6,d6),Si.lineEnd(),Ne(Gl)>te&&(tr=-(nr=180)),Qi[0]=tr,Qi[1]=nr,Mo=null}function Cn(t,e){return(e-=t)<0?e+360:e}function hq(t,e){return t[0]-e[0]}function b6(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:eCn(n[0],n[1])&&(n[1]=i[1]),Cn(i[0],n[1])>Cn(n[0],n[1])&&(n[0]=i[0])):a.push(n=i);for(s=-1/0,r=a.length-1,e=0,n=a[r];e<=r;n=i,++e)i=a[e],(o=Cn(n[1],i[0]))>s&&(s=o,tr=i[0],nr=n[1])}return Ba=Qi=null,tr===1/0||pn===1/0?[[NaN,NaN],[NaN,NaN]]:[[tr,pn],[nr,En]]}var jl,Ch,Sh,Ah,Mh,Lh,Rh,Ih,c2,u2,h2,_6,v6,en,rn,nn,ei={sphere:Je,point:f2,lineStart:x6,lineEnd:k6,polygonStart:function(){ei.lineStart=gq,ei.lineEnd=yq},polygonEnd:function(){ei.lineStart=x6,ei.lineEnd=k6}};function f2(t,e){t*=re,e*=re;var r=Kt(e);$l(r*Kt(t),r*Ht(t),Ht(e))}function $l(t,e,r){++jl,Sh+=(t-Sh)/jl,Ah+=(e-Ah)/jl,Mh+=(r-Mh)/jl}function x6(){ei.point=dq}function dq(t,e){t*=re,e*=re;var r=Kt(e);en=r*Kt(t),rn=r*Ht(t),nn=Ht(e),ei.point=pq,$l(en,rn,nn)}function pq(t,e){t*=re,e*=re;var r=Kt(e),n=r*Kt(t),i=r*Ht(t),a=Ht(e),s=Jr(Sr((s=rn*a-nn*i)*s+(s=nn*n-en*a)*s+(s=en*i-rn*n)*s),en*n+rn*i+nn*a);Ch+=s,Lh+=s*(en+(en=n)),Rh+=s*(rn+(rn=i)),Ih+=s*(nn+(nn=a)),$l(en,rn,nn)}function k6(){ei.point=f2}function gq(){ei.point=mq}function yq(){w6(_6,v6),ei.point=f2}function mq(t,e){_6=t,v6=e,t*=re,e*=re,ei.point=w6;var r=Kt(e);en=r*Kt(t),rn=r*Ht(t),nn=Ht(e),$l(en,rn,nn)}function w6(t,e){t*=re,e*=re;var r=Kt(e),n=r*Kt(t),i=r*Ht(t),a=Ht(e),s=rn*a-nn*i,o=nn*n-en*a,l=en*i-rn*n,u=t2(s,o,l),h=tn(u),d=u&&-h/u;c2.add(d*s),u2.add(d*o),h2.add(d*l),Ch+=h,Lh+=h*(en+(en=n)),Rh+=h*(rn+(rn=i)),Ih+=h*(nn+(nn=a)),$l(en,rn,nn)}function bq(t){jl=Ch=Sh=Ah=Mh=Lh=Rh=Ih=0,c2=new _r,u2=new _r,h2=new _r,ti(t,ei);var e=+c2,r=+u2,n=+h2,i=t2(e,r,n);return iAe?t+Math.round(-t/Qr)*Qr:t,e]}p2.invert=p2;function g2(t,e,r){return(t%=Qr)?e||r?d2(E6(t),C6(e,r)):E6(t):e||r?C6(e,r):p2}function T6(t){return function(e,r){return e+=t,[e>Ae?e-Qr:e<-Ae?e+Qr:e,r]}}function E6(t){var e=T6(t);return e.invert=T6(-t),e}function C6(t,e){var r=Kt(t),n=Ht(t),i=Kt(e),a=Ht(e);function s(o,l){var u=Kt(l),h=Kt(o)*u,d=Ht(o)*u,f=Ht(l),p=f*r+h*n;return[Jr(d*i-p*a,h*r-f*n),tn(p*i+d*a)]}return s.invert=function(o,l){var u=Kt(l),h=Kt(o)*u,d=Ht(o)*u,f=Ht(l),p=f*i-d*a;return[Jr(d*i+f*a,h*r+p*n),tn(p*r-h*n)]},s}function S6(t){t=g2(t[0]*re,t[1]*re,t.length>2?t[2]*re:0);function e(r){return r=t(r[0]*re,r[1]*re),r[0]*=Ue,r[1]*=Ue,r}return e.invert=function(r){return r=t.invert(r[0]*re,r[1]*re),r[0]*=Ue,r[1]*=Ue,r},e}function A6(t,e,r,n,i,a){if(!!r){var s=Kt(e),o=Ht(e),l=n*r;i==null?(i=e+n*Qr,a=e-l/2):(i=M6(s,i),a=M6(s,a),(n>0?ia)&&(i+=n*Qr));for(var u,h=i;n>0?h>a:h1&&t.push(t.pop().concat(t.shift()))},result:function(){var r=t;return t=[],e=null,r}}}function Nh(t,e){return Ne(t[0]-e[0])=0;--o)i.point((d=h[o])[0],d[1]);else n(f.x,f.p.x,-1,i);f=f.p}f=f.o,h=f.z,p=!p}while(!f.v);i.lineEnd()}}}function I6(t){if(!!(e=t.length)){for(var e,r=0,n=t[0],i;++r=0?1:-1,L=A*R,v=L>Ae,B=y*M;if(l.add(Jr(B*A*Ht(L),b*S+B*Kt(L))),s+=v?R+A*Qr:R,v^m>=r^T>=r){var w=Ao(Cs(p),Cs(k));Eh(w);var D=Ao(a,w);Eh(D);var N=(v^R>=0?-1:1)*tn(D[2]);(n>N||n===N&&(w[0]||w[1]))&&(o+=v^R>=0?1:-1)}}return(s<-te||s0){for(l||(i.polygonStart(),l=!0),i.lineStart(),M=0;M1&&T&2&&C.push(C.pop().concat(C.shift())),h.push(C.filter(vq))}}return f}}function vq(t){return t.length>1}function xq(t,e){return((t=t.x)[0]<0?t[1]-rr-te:rr-t[1])-((e=e.x)[0]<0?e[1]-rr-te:rr-e[1])}const m2=B6(function(){return!0},kq,Tq,[-Ae,-rr]);function kq(t){var e=NaN,r=NaN,n=NaN,i;return{lineStart:function(){t.lineStart(),i=1},point:function(a,s){var o=a>0?Ae:-Ae,l=Ne(a-e);Ne(l-Ae)0?rr:-rr),t.point(n,r),t.lineEnd(),t.lineStart(),t.point(o,r),t.point(a,r),i=0):n!==o&&l>=Ae&&(Ne(e-n)te?So((Ht(e)*(a=Kt(n))*Ht(r)-Ht(n)*(i=Kt(e))*Ht(t))/(i*a*s)):(e+n)/2}function Tq(t,e,r,n){var i;if(t==null)i=r*rr,n.point(-Ae,i),n.point(0,i),n.point(Ae,i),n.point(Ae,0),n.point(Ae,-i),n.point(0,-i),n.point(-Ae,-i),n.point(-Ae,0),n.point(-Ae,i);else if(Ne(t[0]-e[0])>te){var a=t[0]0,i=Ne(e)>te;function a(h,d,f,p){A6(p,t,r,f,h,d)}function s(h,d){return Kt(h)*Kt(d)>e}function o(h){var d,f,p,m,_;return{lineStart:function(){m=p=!1,_=1},point:function(y,b){var x=[y,b],k,T=s(y,b),C=n?T?0:u(y,b):T?u(y+(y<0?Ae:-Ae),b):0;if(!d&&(m=p=T)&&h.lineStart(),T!==p&&(k=l(d,x),(!k||Nh(d,k)||Nh(x,k))&&(x[2]=1)),T!==p)_=0,T?(h.lineStart(),k=l(x,d),h.point(k[0],k[1])):(k=l(d,x),h.point(k[0],k[1],2),h.lineEnd()),d=k;else if(i&&d&&n^T){var M;!(C&f)&&(M=l(x,d,!0))&&(_=0,n?(h.lineStart(),h.point(M[0][0],M[0][1]),h.point(M[1][0],M[1][1]),h.lineEnd()):(h.point(M[1][0],M[1][1]),h.lineEnd(),h.lineStart(),h.point(M[0][0],M[0][1],3)))}T&&(!d||!Nh(d,x))&&h.point(x[0],x[1]),d=x,p=T,f=C},lineEnd:function(){p&&h.lineEnd(),d=null},clean:function(){return _|(m&&p)<<1}}}function l(h,d,f){var p=Cs(h),m=Cs(d),_=[1,0,0],y=Ao(p,m),b=wh(y,y),x=y[0],k=b-x*x;if(!k)return!f&&h;var T=e*b/k,C=-e*x/k,M=Ao(_,y),S=Th(_,T),R=Th(y,C);o2(S,R);var A=M,L=wh(S,A),v=wh(A,A),B=L*L-v*(wh(S,S)-1);if(!(B<0)){var w=Sr(B),D=Th(A,(-L-w)/v);if(o2(D,S),D=kh(D),!f)return D;var N=h[0],z=d[0],X=h[1],ct=d[1],J;z0^D[1]<(Ne(D[0]-N)Ae^(N<=D[0]&&D[0]<=z)){var ut=Th(A,(-L+w)/v);return o2(ut,S),[D,kh(ut)]}}}function u(h,d){var f=n?t:Ae-t,p=0;return h<-f?p|=1:h>f&&(p|=2),d<-f?p|=4:d>f&&(p|=8),p}return B6(s,o,a,n?[0,-t]:[-Ae,t-Ae])}function Eq(t,e,r,n,i,a){var s=t[0],o=t[1],l=e[0],u=e[1],h=0,d=1,f=l-s,p=u-o,m;if(m=r-s,!(!f&&m>0)){if(m/=f,f<0){if(m0){if(m>d)return;m>h&&(h=m)}if(m=i-s,!(!f&&m<0)){if(m/=f,f<0){if(m>d)return;m>h&&(h=m)}else if(f>0){if(m0)){if(m/=p,p<0){if(m0){if(m>d)return;m>h&&(h=m)}if(m=a-o,!(!p&&m<0)){if(m/=p,p<0){if(m>d)return;m>h&&(h=m)}else if(p>0){if(m0&&(t[0]=s+h*f,t[1]=o+h*p),d<1&&(e[0]=s+d*f,e[1]=o+d*p),!0}}}}}var Xl=1e9,Dh=-Xl;function Oh(t,e,r,n){function i(u,h){return t<=u&&u<=r&&e<=h&&h<=n}function a(u,h,d,f){var p=0,m=0;if(u==null||(p=s(u,d))!==(m=s(h,d))||l(u,h)<0^d>0)do f.point(p===0||p===3?t:r,p>1?n:e);while((p=(p+d+4)%4)!==m);else f.point(h[0],h[1])}function s(u,h){return Ne(u[0]-t)0?0:3:Ne(u[0]-r)0?2:1:Ne(u[1]-e)0?1:0:h>0?3:2}function o(u,h){return l(u.x,h.x)}function l(u,h){var d=s(u,1),f=s(h,1);return d!==f?d-f:d===0?h[1]-u[1]:d===1?u[0]-h[0]:d===2?u[1]-h[1]:h[0]-u[0]}return function(u){var h=u,d=L6(),f,p,m,_,y,b,x,k,T,C,M,S={point:R,lineStart:B,lineEnd:w,polygonStart:L,polygonEnd:v};function R(N,z){i(N,z)&&h.point(N,z)}function A(){for(var N=0,z=0,X=p.length;zn&&(W-lt)*(n-ut)>(tt-ut)*(t-lt)&&++N:tt<=n&&(W-lt)*(n-ut)<(tt-ut)*(t-lt)&&--N;return N}function L(){h=d,f=[],p=[],M=!0}function v(){var N=A(),z=M&&N,X=(f=j0(f)).length;(z||X)&&(u.polygonStart(),z&&(u.lineStart(),a(null,null,1,u),u.lineEnd()),X&&R6(f,o,N,a,u),u.polygonEnd()),h=u,f=p=m=null}function B(){S.point=D,p&&p.push(m=[]),C=!0,T=!1,x=k=NaN}function w(){f&&(D(_,y),b&&T&&d.rejoin(),f.push(d.result())),S.point=R,T&&h.lineEnd()}function D(N,z){var X=i(N,z);if(p&&m.push([N,z]),C)_=N,y=z,b=X,C=!1,X&&(h.lineStart(),h.point(N,z));else if(X&&T)h.point(N,z);else{var ct=[x=Math.max(Dh,Math.min(Xl,x)),k=Math.max(Dh,Math.min(Xl,k))],J=[N=Math.max(Dh,Math.min(Xl,N)),z=Math.max(Dh,Math.min(Xl,z))];Eq(ct,J,t,e,r,n)?(T||(h.lineStart(),h.point(ct[0],ct[1])),h.point(J[0],J[1]),X||h.lineEnd(),M=!1):X&&(h.lineStart(),h.point(N,z),M=!1)}x=N,k=z,T=X}return S}}function Cq(){var t=0,e=0,r=960,n=500,i,a,s;return s={stream:function(o){return i&&a===o?i:i=Oh(t,e,r,n)(a=o)},extent:function(o){return arguments.length?(t=+o[0][0],e=+o[0][1],r=+o[1][0],n=+o[1][1],i=a=null,s):[[t,e],[r,n]]}}}var b2,_2,Fh,Ph,Ro={sphere:Je,point:Je,lineStart:Sq,lineEnd:Je,polygonStart:Je,polygonEnd:Je};function Sq(){Ro.point=Mq,Ro.lineEnd=Aq}function Aq(){Ro.point=Ro.lineEnd=Je}function Mq(t,e){t*=re,e*=re,_2=t,Fh=Ht(e),Ph=Kt(e),Ro.point=Lq}function Lq(t,e){t*=re,e*=re;var r=Ht(e),n=Kt(e),i=Ne(t-_2),a=Kt(i),s=Ht(i),o=n*s,l=Ph*r-Fh*n*a,u=Fh*r+Ph*n*a;b2.add(Jr(Sr(o*o+l*l),u)),_2=t,Fh=r,Ph=n}function O6(t){return b2=new _r,ti(t,Ro),+b2}var v2=[null,null],Rq={type:"LineString",coordinates:v2};function qh(t,e){return v2[0]=t,v2[1]=e,O6(Rq)}var F6={Feature:function(t,e){return Vh(t.geometry,e)},FeatureCollection:function(t,e){for(var r=t.features,n=-1,i=r.length;++n0&&(i=qh(t[a],t[a-1]),i>0&&r<=i&&n<=i&&(r+n-i)*(1-Math.pow((r-n)/i,2))te}).map(f)).concat(Ca(mh(a/u)*u,i,u).filter(function(k){return Ne(k%d)>te}).map(p))}return b.lines=function(){return x().map(function(k){return{type:"LineString",coordinates:k}})},b.outline=function(){return{type:"Polygon",coordinates:[m(n).concat(_(s).slice(1),m(r).reverse().slice(1),_(o).reverse().slice(1))]}},b.extent=function(k){return arguments.length?b.extentMajor(k).extentMinor(k):b.extentMinor()},b.extentMajor=function(k){return arguments.length?(n=+k[0][0],r=+k[1][0],o=+k[0][1],s=+k[1][1],n>r&&(k=n,n=r,r=k),o>s&&(k=o,o=s,s=k),b.precision(y)):[[n,o],[r,s]]},b.extentMinor=function(k){return arguments.length?(e=+k[0][0],t=+k[1][0],a=+k[0][1],i=+k[1][1],e>t&&(k=e,e=t,t=k),a>i&&(k=a,a=i,i=k),b.precision(y)):[[e,a],[t,i]]},b.step=function(k){return arguments.length?b.stepMajor(k).stepMinor(k):b.stepMinor()},b.stepMajor=function(k){return arguments.length?(h=+k[0],d=+k[1],b):[h,d]},b.stepMinor=function(k){return arguments.length?(l=+k[0],u=+k[1],b):[l,u]},b.precision=function(k){return arguments.length?(y=+k,f=U6(a,i,90),p=W6(e,t,y),m=U6(o,s,90),_=W6(n,r,y),b):y},b.extentMajor([[-180,-90+te],[180,90-te]]).extentMinor([[-180,-80-te],[180,80+te]])}function Bq(){return H6()()}function Dq(t,e){var r=t[0]*re,n=t[1]*re,i=e[0]*re,a=e[1]*re,s=Kt(n),o=Ht(n),l=Kt(a),u=Ht(a),h=s*Kt(r),d=s*Ht(r),f=l*Kt(i),p=l*Ht(i),m=2*tn(Sr(a6(a-n)+s*l*a6(i-r))),_=Ht(m),y=m?function(b){var x=Ht(b*=m)/_,k=Ht(m-b)/_,T=k*h+x*f,C=k*d+x*p,M=k*o+x*u;return[Jr(C,T)*Ue,Jr(M,Sr(T*T+C*C))*Ue]}:function(){return[r*Ue,n*Ue]};return y.distance=m,y}const Kl=t=>t;var x2=new _r,k2=new _r,G6,j6,w2,T2,Da={point:Je,lineStart:Je,lineEnd:Je,polygonStart:function(){Da.lineStart=Oq,Da.lineEnd=Pq},polygonEnd:function(){Da.lineStart=Da.lineEnd=Da.point=Je,x2.add(Ne(k2)),k2=new _r},result:function(){var t=x2/2;return x2=new _r,t}};function Oq(){Da.point=Fq}function Fq(t,e){Da.point=$6,G6=w2=t,j6=T2=e}function $6(t,e){k2.add(T2*t-w2*e),w2=t,T2=e}function Pq(){$6(G6,j6)}const X6=Da;var Io=1/0,zh=Io,Zl=-Io,Yh=Zl,qq={point:Vq,lineStart:Je,lineEnd:Je,polygonStart:Je,polygonEnd:Je,result:function(){var t=[[Io,zh],[Zl,Yh]];return Zl=Yh=-(zh=Io=1/0),t}};function Vq(t,e){tZl&&(Zl=t),eYh&&(Yh=e)}const Uh=qq;var E2=0,C2=0,Ql=0,Wh=0,Hh=0,No=0,S2=0,A2=0,Jl=0,K6,Z6,Ai,Mi,ri={point:As,lineStart:Q6,lineEnd:J6,polygonStart:function(){ri.lineStart=Uq,ri.lineEnd=Wq},polygonEnd:function(){ri.point=As,ri.lineStart=Q6,ri.lineEnd=J6},result:function(){var t=Jl?[S2/Jl,A2/Jl]:No?[Wh/No,Hh/No]:Ql?[E2/Ql,C2/Ql]:[NaN,NaN];return E2=C2=Ql=Wh=Hh=No=S2=A2=Jl=0,t}};function As(t,e){E2+=t,C2+=e,++Ql}function Q6(){ri.point=zq}function zq(t,e){ri.point=Yq,As(Ai=t,Mi=e)}function Yq(t,e){var r=t-Ai,n=e-Mi,i=Sr(r*r+n*n);Wh+=i*(Ai+t)/2,Hh+=i*(Mi+e)/2,No+=i,As(Ai=t,Mi=e)}function J6(){ri.point=As}function Uq(){ri.point=Hq}function Wq(){tx(K6,Z6)}function Hq(t,e){ri.point=tx,As(K6=Ai=t,Z6=Mi=e)}function tx(t,e){var r=t-Ai,n=e-Mi,i=Sr(r*r+n*n);Wh+=i*(Ai+t)/2,Hh+=i*(Mi+e)/2,No+=i,i=Mi*t-Ai*e,S2+=i*(Ai+t),A2+=i*(Mi+e),Jl+=i*3,As(Ai=t,Mi=e)}const ex=ri;function rx(t){this._context=t}rx.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:{this._context.moveTo(t,e),this._point=1;break}case 1:{this._context.lineTo(t,e);break}default:{this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,Qr);break}}},result:Je};var M2=new _r,L2,nx,ix,tc,ec,Gh={point:Je,lineStart:function(){Gh.point=Gq},lineEnd:function(){L2&&ax(nx,ix),Gh.point=Je},polygonStart:function(){L2=!0},polygonEnd:function(){L2=null},result:function(){var t=+M2;return M2=new _r,t}};function Gq(t,e){Gh.point=ax,nx=tc=t,ix=ec=e}function ax(t,e){tc-=t,ec-=e,M2.add(Sr(tc*tc+ec*ec)),tc=t,ec=e}const sx=Gh;function ox(){this._string=[]}ox.prototype={_radius:4.5,_circle:lx(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._string.push("Z"),this._point=NaN},point:function(t,e){switch(this._point){case 0:{this._string.push("M",t,",",e),this._point=1;break}case 1:{this._string.push("L",t,",",e);break}default:{this._circle==null&&(this._circle=lx(this._radius)),this._string.push("M",t,",",e,this._circle);break}}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}else return null}};function lx(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function jq(t,e){var r=4.5,n,i;function a(s){return s&&(typeof r=="function"&&i.pointRadius(+r.apply(this,arguments)),ti(s,n(i))),i.result()}return a.area=function(s){return ti(s,n(X6)),X6.result()},a.measure=function(s){return ti(s,n(sx)),sx.result()},a.bounds=function(s){return ti(s,n(Uh)),Uh.result()},a.centroid=function(s){return ti(s,n(ex)),ex.result()},a.projection=function(s){return arguments.length?(n=s==null?(t=null,Kl):(t=s).stream,a):t},a.context=function(s){return arguments.length?(i=s==null?(e=null,new ox):new rx(e=s),typeof r!="function"&&i.pointRadius(r),a):e},a.pointRadius=function(s){return arguments.length?(r=typeof s=="function"?s:(i.pointRadius(+s),+s),a):r},a.projection(t).context(e)}function $q(t){return{stream:rc(t)}}function rc(t){return function(e){var r=new R2;for(var n in t)r[n]=t[n];return r.stream=e,r}}function R2(){}R2.prototype={constructor:R2,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function I2(t,e,r){var n=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),n!=null&&t.clipExtent(null),ti(r,t.stream(Uh)),e(Uh.result()),n!=null&&t.clipExtent(n),t}function jh(t,e,r){return I2(t,function(n){var i=e[1][0]-e[0][0],a=e[1][1]-e[0][1],s=Math.min(i/(n[1][0]-n[0][0]),a/(n[1][1]-n[0][1])),o=+e[0][0]+(i-s*(n[1][0]+n[0][0]))/2,l=+e[0][1]+(a-s*(n[1][1]+n[0][1]))/2;t.scale(150*s).translate([o,l])},r)}function N2(t,e,r){return jh(t,[[0,0],e],r)}function B2(t,e,r){return I2(t,function(n){var i=+e,a=i/(n[1][0]-n[0][0]),s=(i-a*(n[1][0]+n[0][0]))/2,o=-a*n[0][1];t.scale(150*a).translate([s,o])},r)}function D2(t,e,r){return I2(t,function(n){var i=+e,a=i/(n[1][1]-n[0][1]),s=-a*n[0][0],o=(i-a*(n[1][1]+n[0][1]))/2;t.scale(150*a).translate([s,o])},r)}var cx=16,Xq=Kt(30*re);function ux(t,e){return+e?Zq(t,e):Kq(t)}function Kq(t){return rc({point:function(e,r){e=t(e,r),this.stream.point(e[0],e[1])}})}function Zq(t,e){function r(n,i,a,s,o,l,u,h,d,f,p,m,_,y){var b=u-n,x=h-i,k=b*b+x*x;if(k>4*e&&_--){var T=s+f,C=o+p,M=l+m,S=Sr(T*T+C*C+M*M),R=tn(M/=S),A=Ne(Ne(M)-1)e||Ne((b*w+x*D)/k-.5)>.3||s*f+o*p+l*m2?N[2]%360*re:0,w()):[o*Ue,l*Ue,u*Ue]},v.angle=function(N){return arguments.length?(d=N%360*re,w()):d*Ue},v.reflectX=function(N){return arguments.length?(f=N?-1:1,w()):f<0},v.reflectY=function(N){return arguments.length?(p=N?-1:1,w()):p<0},v.precision=function(N){return arguments.length?(M=ux(S,C=N*N),D()):Sr(C)},v.fitExtent=function(N,z){return jh(v,N,z)},v.fitSize=function(N,z){return N2(v,N,z)},v.fitWidth=function(N,z){return B2(v,N,z)},v.fitHeight=function(N,z){return D2(v,N,z)};function w(){var N=hx(r,0,0,f,p,d).apply(null,e(a,s)),z=hx(r,n-N[0],i-N[1],f,p,d);return h=g2(o,l,u),S=d2(e,z),R=d2(h,S),M=ux(S,C),D()}function D(){return A=L=null,v}return function(){return e=t.apply(this,arguments),v.invert=e.invert&&B,w()}}function F2(t){var e=0,r=Ae/3,n=O2(t),i=n(e,r);return i.parallels=function(a){return arguments.length?n(e=a[0]*re,r=a[1]*re):[e*Ue,r*Ue]},i}function eV(t){var e=Kt(t);function r(n,i){return[n*e,Ht(i)/e]}return r.invert=function(n,i){return[n/e,tn(i*e)]},r}function fx(t,e){var r=Ht(t),n=(r+Ht(e))/2;if(Ne(n)=.12&&y<.234&&_>=-.425&&_<-.214?i:y>=.166&&y<.234&&_>=-.214&&_<-.115?s:r).invert(f)},h.stream=function(f){return t&&e===f?t:t=rV([r.stream(e=f),i.stream(f),s.stream(f)])},h.precision=function(f){return arguments.length?(r.precision(f),i.precision(f),s.precision(f),d()):r.precision()},h.scale=function(f){return arguments.length?(r.scale(f),i.scale(f*.35),s.scale(f),h.translate(r.translate())):r.scale()},h.translate=function(f){if(!arguments.length)return r.translate();var p=r.scale(),m=+f[0],_=+f[1];return n=r.translate(f).clipExtent([[m-.455*p,_-.238*p],[m+.455*p,_+.238*p]]).stream(u),a=i.translate([m-.307*p,_+.201*p]).clipExtent([[m-.425*p+te,_+.12*p+te],[m-.214*p-te,_+.234*p-te]]).stream(u),o=s.translate([m-.205*p,_+.212*p]).clipExtent([[m-.214*p+te,_+.166*p+te],[m-.115*p-te,_+.234*p-te]]).stream(u),d()},h.fitExtent=function(f,p){return jh(h,f,p)},h.fitSize=function(f,p){return N2(h,f,p)},h.fitWidth=function(f,p){return B2(h,f,p)},h.fitHeight=function(f,p){return D2(h,f,p)};function d(){return t=e=null,h}return h.scale(1070)}function px(t){return function(e,r){var n=Kt(e),i=Kt(r),a=t(n*i);return a===1/0?[2,0]:[a*i*Ht(e),a*Ht(r)]}}function nc(t){return function(e,r){var n=Sr(e*e+r*r),i=t(n),a=Ht(i),s=Kt(i);return[Jr(e*a,n*s),tn(n&&r*a/n)]}}var P2=px(function(t){return Sr(2/(1+t))});P2.invert=nc(function(t){return 2*tn(t/2)});function iV(){return Li(P2).scale(124.75).clipAngle(180-.001)}var q2=px(function(t){return(t=i6(t))&&t/Ht(t)});q2.invert=nc(function(t){return t});function aV(){return Li(q2).scale(79.4188).clipAngle(180-.001)}function ic(t,e){return[t,bh(r2((rr+e)/2))]}ic.invert=function(t,e){return[t,2*So(n6(e))-rr]};function sV(){return gx(ic).scale(961/Qr)}function gx(t){var e=Li(t),r=e.center,n=e.scale,i=e.translate,a=e.clipExtent,s=null,o,l,u;e.scale=function(d){return arguments.length?(n(d),h()):n()},e.translate=function(d){return arguments.length?(i(d),h()):i()},e.center=function(d){return arguments.length?(r(d),h()):r()},e.clipExtent=function(d){return arguments.length?(d==null?s=o=l=u=null:(s=+d[0][0],o=+d[0][1],l=+d[1][0],u=+d[1][1]),h()):s==null?null:[[s,o],[l,u]]};function h(){var d=Ae*n(),f=e(S6(e.rotate()).invert([0,0]));return a(s==null?[[f[0]-d,f[1]-d],[f[0]+d,f[1]+d]]:t===ic?[[Math.max(f[0]-d,s),o],[Math.min(f[0]+d,l),u]]:[[s,Math.max(f[1]-d,o)],[l,Math.min(f[1]+d,u)]])}return h()}function Xh(t){return r2((rr+t)/2)}function yx(t,e){var r=Kt(t),n=t===e?Ht(t):bh(r/Kt(e))/bh(Xh(e)/Xh(t)),i=r*e2(Xh(t),n)/n;if(!n)return ic;function a(s,o){i>0?o<-rr+te&&(o=-rr+te):o>rr-te&&(o=rr-te);var l=i/e2(Xh(o),n);return[l*Ht(n*s),i-l*Kt(n*s)]}return a.invert=function(s,o){var l=i-o,u=Dn(n)*Sr(s*s+l*l),h=Jr(s,Ne(l))*Dn(l);return l*n<0&&(h-=Ae*Dn(s)*Dn(l)),[h/n,2*So(e2(i/u,1/n))-rr]},a}function oV(){return F2(yx).scale(109.5).parallels([30,30])}function ac(t,e){return[t,e]}ac.invert=ac;function lV(){return Li(ac).scale(152.63)}function mx(t,e){var r=Kt(t),n=t===e?Ht(t):(r-Kt(e))/(e-t),i=r/n+t;if(Ne(n)te&&--n>0);return[t/(.8707+(a=r*r)*(-.131979+a*(-.013791+a*a*a*(.003971-.001529*a)))),r]};function pV(){return Li(Y2).scale(175.295)}function U2(t,e){return[Kt(e)*Ht(t),Ht(e)]}U2.invert=nc(tn);function gV(){return Li(U2).scale(249.5).clipAngle(90+te)}function W2(t,e){var r=Kt(e),n=1+Kt(t)*r;return[r*Ht(t)/n,Ht(e)/n]}W2.invert=nc(function(t){return 2*So(t)});function yV(){return Li(W2).scale(250).clipAngle(142)}function H2(t,e){return[bh(r2((rr+e)/2)),-t]}H2.invert=function(t,e){return[-e,2*So(n6(t))-rr]};function mV(){var t=gx(H2),e=t.center,r=t.rotate;return t.center=function(n){return arguments.length?e([-n[1],n[0]]):(n=e(),[n[1],-n[0]])},t.rotate=function(n){return arguments.length?r([n[0],n[1],n.length>2?n[2]+90:90]):(n=r(),[n[0],n[1],n[2]-90])},r([0,0,90]).scale(159.155)}function bV(t,e){return t.parent===e.parent?1:2}function _V(t){return t.reduce(vV,0)/t.length}function vV(t,e){return t+e.x}function xV(t){return 1+t.reduce(kV,0)}function kV(t,e){return Math.max(t,e.y)}function wV(t){for(var e;e=t.children;)t=e[0];return t}function TV(t){for(var e;e=t.children;)t=e[e.length-1];return t}function EV(){var t=bV,e=1,r=1,n=!1;function i(a){var s,o=0;a.eachAfter(function(f){var p=f.children;p?(f.x=_V(p),f.y=xV(p)):(f.x=s?o+=t(f,s):0,f.y=0,s=f)});var l=wV(a),u=TV(a),h=l.x-t(l,u)/2,d=u.x+t(u,l)/2;return a.eachAfter(n?function(f){f.x=(f.x-a.x)*e,f.y=(a.y-f.y)*r}:function(f){f.x=(f.x-h)/(d-h)*e,f.y=(1-(a.y?f.y/a.y:1))*r})}return i.separation=function(a){return arguments.length?(t=a,i):t},i.size=function(a){return arguments.length?(n=!1,e=+a[0],r=+a[1],i):n?null:[e,r]},i.nodeSize=function(a){return arguments.length?(n=!0,e=+a[0],r=+a[1],i):n?[e,r]:null},i}function CV(t){var e=0,r=t.children,n=r&&r.length;if(!n)e=1;else for(;--n>=0;)e+=r[n].value;t.value=e}function SV(){return this.eachAfter(CV)}function AV(t,e){let r=-1;for(const n of this)t.call(e,n,++r,this);return this}function MV(t,e){for(var r=this,n=[r],i,a,s=-1;r=n.pop();)if(t.call(e,r,++s,this),i=r.children)for(a=i.length-1;a>=0;--a)n.push(i[a]);return this}function LV(t,e){for(var r=this,n=[r],i=[],a,s,o,l=-1;r=n.pop();)if(i.push(r),a=r.children)for(s=0,o=a.length;s=0;)r+=n[i].value;e.value=r})}function NV(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})}function BV(t){for(var e=this,r=DV(e,t),n=[e];e!==r;)e=e.parent,n.push(e);for(var i=n.length;t!==r;)n.splice(i,0,t),t=t.parent;return n}function DV(t,e){if(t===e)return t;var r=t.ancestors(),n=e.ancestors(),i=null;for(t=r.pop(),e=n.pop();t===e;)i=t,t=r.pop(),e=n.pop();return i}function OV(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e}function FV(){return Array.from(this)}function PV(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t}function qV(){var t=this,e=[];return t.each(function(r){r!==t&&e.push({source:r.parent,target:r})}),e}function*VV(){var t=this,e,r=[t],n,i,a;do for(e=r.reverse(),r=[];t=e.pop();)if(yield t,n=t.children)for(i=0,a=n.length;i=0;--o)i.push(a=s[o]=new Ms(s[o])),a.parent=n,a.depth=n.depth+1;return r.eachBefore(bx)}function zV(){return G2(this).eachBefore(WV)}function YV(t){return t.children}function UV(t){return Array.isArray(t)?t[1]:null}function WV(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function bx(t){var e=0;do t.height=e;while((t=t.parent)&&t.height<++e)}function Ms(t){this.data=t,this.depth=this.height=0,this.parent=null}Ms.prototype=G2.prototype={constructor:Ms,count:SV,each:AV,eachAfter:LV,eachBefore:MV,find:RV,sum:IV,sort:NV,path:BV,ancestors:OV,descendants:FV,leaves:PV,links:qV,copy:zV,[Symbol.iterator]:VV};function Zh(t){return t==null?null:_x(t)}function _x(t){if(typeof t!="function")throw new Error;return t}function Ls(){return 0}function Bo(t){return function(){return t}}const HV=1664525,GV=1013904223,vx=4294967296;function j2(){let t=1;return()=>(t=(HV*t+GV)%vx)/vx}function jV(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function $V(t,e){let r=t.length,n,i;for(;r;)i=e()*r--|0,n=t[r],t[r]=t[i],t[i]=n;return t}function XV(t){return xx(t,j2())}function xx(t,e){for(var r=0,n=(t=$V(Array.from(t),e)).length,i=[],a,s;r0&&r*r>n*n+i*i}function $2(t,e){for(var r=0;r1e-6?(v+Math.sqrt(v*v-4*L*B))/(2*L):B/v);return{x:n+M+S*w,y:i+R+A*w,r:w}}function Tx(t,e,r){var n=t.x-e.x,i,a,s=t.y-e.y,o,l,u=n*n+s*s;u?(a=e.r+r.r,a*=a,l=t.r+r.r,l*=l,a>l?(i=(u+l-a)/(2*u),o=Math.sqrt(Math.max(0,l/u-i*i)),r.x=t.x-i*n-o*s,r.y=t.y-i*s+o*n):(i=(u+a-l)/(2*u),o=Math.sqrt(Math.max(0,a/u-i*i)),r.x=e.x+i*n-o*s,r.y=e.y+i*s+o*n)):(r.x=e.x+r.r,r.y=e.y)}function Ex(t,e){var r=t.r+e.r-1e-6,n=e.x-t.x,i=e.y-t.y;return r>0&&r*r>n*n+i*i}function Cx(t){var e=t._,r=t.next._,n=e.r+r.r,i=(e.x*r.r+r.x*e.r)/n,a=(e.y*r.r+r.y*e.r)/n;return i*i+a*a}function Jh(t){this._=t,this.next=null,this.previous=null}function Sx(t,e){if(!(a=(t=jV(t)).length))return 0;var r,n,i,a,s,o,l,u,h,d,f;if(r=t[0],r.x=0,r.y=0,!(a>1))return r.r;if(n=t[1],r.x=-n.r,n.x=r.r,n.y=0,!(a>2))return r.r+n.r;Tx(n,r,i=t[2]),r=new Jh(r),n=new Jh(n),i=new Jh(i),r.next=i.previous=n,n.next=r.previous=i,i.next=n.previous=r;t:for(l=3;loz(r(T,C,i))),x=b.map(Ix),k=new Set(b).add("");for(const T of x)k.has(T)||(k.add(T),b.push(T),x.push(Ix(T)),a.push(K2));s=(T,C)=>b[C],o=(T,C)=>x[C]}for(h=0,l=a.length;h=0&&(p=a[b],p.data===K2);--b)p.data=null}if(d.parent=nz,d.eachBefore(function(b){b.depth=b.parent.depth+1,--l}).eachBefore(bx),d.parent=null,l>0)throw new Error("cycle");return d}return n.id=function(i){return arguments.length?(t=Zh(i),n):t},n.parentId=function(i){return arguments.length?(e=Zh(i),n):e},n.path=function(i){return arguments.length?(r=Zh(i),n):r},n}function oz(t){t=`${t}`;let e=t.length;return Z2(t,e-1)&&!Z2(t,e-2)&&(t=t.slice(0,-1)),t[0]==="/"?t:`/${t}`}function Ix(t){let e=t.length;if(e<2)return"";for(;--e>1&&!Z2(t,e););return t.slice(0,e)}function Z2(t,e){if(t[e]==="/"){let r=0;for(;e>0&&t[--e]==="\\";)++r;if((r&1)===0)return!0}return!1}function lz(t,e){return t.parent===e.parent?1:2}function Q2(t){var e=t.children;return e?e[0]:t.t}function J2(t){var e=t.children;return e?e[e.length-1]:t.t}function cz(t,e,r){var n=r/(e.i-t.i);e.c-=n,e.s+=r,t.c+=n,e.z+=r,e.m+=r}function uz(t){for(var e=0,r=0,n=t.children,i=n.length,a;--i>=0;)a=n[i],a.z+=e,a.m+=e,e+=a.s+(r+=a.c)}function hz(t,e,r){return t.a.parent===e.parent?t.a:r}function tf(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}tf.prototype=Object.create(Ms.prototype);function fz(t){for(var e=new tf(t,0),r,n=[e],i,a,s,o;r=n.pop();)if(a=r._.children)for(r.children=new Array(o=a.length),s=o-1;s>=0;--s)n.push(i=r.children[s]=new tf(a[s],s)),i.parent=r;return(e.parent=new tf(null,0)).children=[e],e}function dz(){var t=lz,e=1,r=1,n=null;function i(u){var h=fz(u);if(h.eachAfter(a),h.parent.m=-h.z,h.eachBefore(s),n)u.eachBefore(l);else{var d=u,f=u,p=u;u.eachBefore(function(x){x.xf.x&&(f=x),x.depth>p.depth&&(p=x)});var m=d===f?1:t(d,f)/2,_=m-d.x,y=e/(f.x+m+_),b=r/(p.depth||1);u.eachBefore(function(x){x.x=(x.x+_)*y,x.y=x.depth*b})}return u}function a(u){var h=u.children,d=u.parent.children,f=u.i?d[u.i-1]:null;if(h){uz(u);var p=(h[0].z+h[h.length-1].z)/2;f?(u.z=f.z+t(u._,f._),u.m=u.z-p):u.z=p}else f&&(u.z=f.z+t(u._,f._));u.parent.A=o(u,f,u.parent.A||d[0])}function s(u){u._.x=u.z+u.parent.m,u.m+=u.parent.m}function o(u,h,d){if(h){for(var f=u,p=u,m=h,_=f.parent.children[0],y=f.m,b=p.m,x=m.m,k=_.m,T;m=J2(m),f=Q2(f),m&&f;)_=Q2(_),p=J2(p),p.a=u,T=m.z+x-f.z-y+t(m._,f._),T>0&&(cz(hz(m,u,d),u,T),y+=T,b+=T),x+=m.m,y+=f.m,k+=_.m,b+=p.m;m&&!J2(p)&&(p.t=m,p.m+=x-b),f&&!Q2(_)&&(_.t=f,_.m+=y-k,d=u)}return d}function l(u){u.x*=e,u.y=u.depth*r}return i.separation=function(u){return arguments.length?(t=u,i):t},i.size=function(u){return arguments.length?(n=!1,e=+u[0],r=+u[1],i):n?null:[e,r]},i.nodeSize=function(u){return arguments.length?(n=!0,e=+u[0],r=+u[1],i):n?[e,r]:null},i}function ef(t,e,r,n,i){for(var a=t.children,s,o=-1,l=a.length,u=t.value&&(i-r)/t.value;++ox&&(x=u),M=y*y*C,k=Math.max(x/M,M/b),k>T){y-=u;break}T=k}s.push(l={value:y,dice:p1?n:1)},r}(Nx);function pz(){var t=Dx,e=!1,r=1,n=1,i=[0],a=Ls,s=Ls,o=Ls,l=Ls,u=Ls;function h(f){return f.x0=f.y0=0,f.x1=r,f.y1=n,f.eachBefore(d),i=[0],e&&f.eachBefore(Lx),f}function d(f){var p=i[f.depth],m=f.x0+p,_=f.y0+p,y=f.x1-p,b=f.y1-p;y=f-1){var x=a[d];x.x0=m,x.y0=_,x.x1=y,x.y1=b;return}for(var k=u[d],T=p/2+k,C=d+1,M=f-1;C>>1;u[S]b-_){var L=p?(m*A+y*R)/p:y;h(d,C,R,m,_,L,b),h(C,f,A,L,_,y,b)}else{var v=p?(_*A+b*R)/p:b;h(d,C,R,m,_,y,v),h(C,f,A,m,v,y,b)}}}function yz(t,e,r,n,i){(t.depth&1?ef:hc)(t,e,r,n,i)}const mz=function t(e){function r(n,i,a,s,o){if((l=n._squarify)&&l.ratio===e)for(var l,u,h,d,f=-1,p,m=l.length,_=n.value;++f1?n:1)},r}(Nx);function bz(t){for(var e=-1,r=t.length,n,i=t[r-1],a=0;++e1&&vz(t[r[n-2]],t[r[n-1]],t[i])<=0;)--n;r[n++]=i}return r.slice(0,n)}function kz(t){if((r=t.length)<3)return null;var e,r,n=new Array(r),i=new Array(r);for(e=0;e=0;--e)u.push(t[n[a[e]][2]]);for(e=+o;ea!=o>a&&i<(s-l)*(a-u)/(o-u)+l&&(h=!h),s=l,o=u;return h}function Tz(t){for(var e=-1,r=t.length,n=t[r-1],i,a,s=n[0],o=n[1],l=0;++e1);return n+i*o*Math.sqrt(-2*Math.log(s)/s)}}return r.source=t,r}(Ir),Sz=function t(e){var r=tp.source(e);function n(){var i=r.apply(this,arguments);return function(){return Math.exp(i())}}return n.source=t,n}(Ir),Fx=function t(e){function r(n){return(n=+n)<=0?()=>0:function(){for(var i=0,a=n;a>1;--a)i+=e();return i+a*e()}}return r.source=t,r}(Ir),Az=function t(e){var r=Fx.source(e);function n(i){if((i=+i)==0)return e;var a=r(i);return function(){return a()/i}}return n.source=t,n}(Ir),Mz=function t(e){function r(n){return function(){return-Math.log1p(-e())/n}}return r.source=t,r}(Ir),Lz=function t(e){function r(n){if((n=+n)<0)throw new RangeError("invalid alpha");return n=1/-n,function(){return Math.pow(1-e(),n)}}return r.source=t,r}(Ir),Rz=function t(e){function r(n){if((n=+n)<0||n>1)throw new RangeError("invalid p");return function(){return Math.floor(e()+n)}}return r.source=t,r}(Ir),Px=function t(e){function r(n){if((n=+n)<0||n>1)throw new RangeError("invalid p");return n===0?()=>1/0:n===1?()=>1:(n=Math.log1p(-n),function(){return 1+Math.floor(Math.log1p(-e())/n)})}return r.source=t,r}(Ir),ep=function t(e){var r=tp.source(e)();function n(i,a){if((i=+i)<0)throw new RangeError("invalid k");if(i===0)return()=>0;if(a=a==null?1:+a,i===1)return()=>-Math.log1p(-e())*a;var s=(i<1?i+1:i)-1/3,o=1/(3*Math.sqrt(s)),l=i<1?()=>Math.pow(e(),1/i):()=>1;return function(){do{do var u=r(),h=1+o*u;while(h<=0);h*=h*h;var d=1-e()}while(d>=1-.0331*u*u*u*u&&Math.log(d)>=.5*u*u+s*(1-h+Math.log(h)));return s*h*l()*a}}return n.source=t,n}(Ir),qx=function t(e){var r=ep.source(e);function n(i,a){var s=r(i),o=r(a);return function(){var l=s();return l===0?0:l/(l+o())}}return n.source=t,n}(Ir),Vx=function t(e){var r=Px.source(e),n=qx.source(e);function i(a,s){return a=+a,(s=+s)>=1?()=>a:s<=0?()=>0:function(){for(var o=0,l=a,u=s;l*u>16&&l*(1-u)>16;){var h=Math.floor((l+1)*u),d=n(h,l-h+1)();d<=u?(o+=h,l-=h,u=(u-d)/(1-d)):(l=h-1,u/=d)}for(var f=u<.5,p=f?u:1-u,m=r(p),_=m(),y=0;_<=l;++y)_+=m();return o+(f?y:l-y)}}return i.source=t,i}(Ir),Iz=function t(e){function r(n,i,a){var s;return(n=+n)==0?s=o=>-Math.log(o):(n=1/n,s=o=>Math.pow(o,n)),i=i==null?0:+i,a=a==null?1:+a,function(){return i+a*s(-Math.log1p(-e()))}}return r.source=t,r}(Ir),Nz=function t(e){function r(n,i){return n=n==null?0:+n,i=i==null?1:+i,function(){return n+i*Math.tan(Math.PI*e())}}return r.source=t,r}(Ir),Bz=function t(e){function r(n,i){return n=n==null?0:+n,i=i==null?1:+i,function(){var a=e();return n+i*Math.log(a/(1-a))}}return r.source=t,r}(Ir),Dz=function t(e){var r=ep.source(e),n=Vx.source(e);function i(a){return function(){for(var s=0,o=a;o>16;){var l=Math.floor(.875*o),u=r(l)();if(u>o)return s+n(l-1,o/u)();s+=l,o-=u}for(var h=-Math.log1p(-e()),d=0;h<=o;++d)h-=Math.log1p(-e());return s+d}}return i.source=t,i}(Ir),Oz=1664525,Fz=1013904223,zx=1/4294967296;function Pz(t=Math.random()){let e=(0<=t&&t<1?t/zx:Math.abs(t))|0;return()=>(e=Oz*e+Fz|0,zx*(e>>>0))}function On(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function ta(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}const rp=Symbol("implicit");function rf(){var t=new kl,e=[],r=[],n=rp;function i(a){let s=t.get(a);if(s===void 0){if(n!==rp)return n;t.set(a,s=e.push(a)-1)}return r[s%r.length]}return i.domain=function(a){if(!arguments.length)return e.slice();e=[],t=new kl;for(const s of a)t.has(s)||t.set(s,e.push(s)-1);return i},i.range=function(a){return arguments.length?(r=Array.from(a),i):r.slice()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return rf(e,r).unknown(n)},On.apply(i,arguments),i}function np(){var t=rf().unknown(void 0),e=t.domain,r=t.range,n=0,i=1,a,s,o=!1,l=0,u=0,h=.5;delete t.unknown;function d(){var f=e().length,p=ie&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function Yz(t,e,r){var n=t[0],i=t[1],a=e[0],s=e[1];return i2?Uz:Yz,l=u=null,d}function d(f){return f==null||isNaN(f=+f)?a:(l||(l=o(t.map(n),e,r)))(n(s(f)))}return d.invert=function(f){return s(i((u||(u=o(e,t.map(n),Bn)))(f)))},d.domain=function(f){return arguments.length?(t=Array.from(f,nf),h()):t.slice()},d.range=function(f){return arguments.length?(e=Array.from(f),h()):e.slice()},d.rangeRound=function(f){return e=Array.from(f),r=Gu,h()},d.clamp=function(f){return arguments.length?(s=f?!0:an,h()):s!==an},d.interpolate=function(f){return arguments.length?(r=f,h()):r},d.unknown=function(f){return arguments.length?(a=f,d):a},function(f,p){return n=f,i=p,h()}}function ap(){return af()(an,an)}function Wx(t,e,r,n){var i=wl(t,e,r),a;switch(n=Co(n==null?",f":n),n.type){case"s":{var s=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(a=e6(i,s))&&(n.precision=a),Jd(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=r6(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=t6(i))&&(n.precision=a-(n.type==="%")*2);break}}return gh(n)}function Oa(t){var e=t.domain;return t.ticks=function(r){var n=e();return hs(n[0],n[n.length-1],r==null?10:r)},t.tickFormat=function(r,n){var i=e();return Wx(i[0],i[i.length-1],r==null?10:r,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,a=n.length-1,s=n[i],o=n[a],l,u,h=10;for(o0;){if(u=oo(s,o,r),u===l)return n[i]=s,n[a]=o,e(n);if(u>0)s=Math.floor(s/u)*u,o=Math.ceil(o/u)*u;else if(u<0)s=Math.ceil(s*u)/u,o=Math.floor(o*u)/u;else break;l=u}return t},t}function sp(){var t=ap();return t.copy=function(){return fc(t,sp())},On.apply(t,arguments),Oa(t)}function Hx(t){var e;function r(n){return n==null||isNaN(n=+n)?e:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(t=Array.from(n,nf),r):t.slice()},r.unknown=function(n){return arguments.length?(e=n,r):e},r.copy=function(){return Hx(t).unknown(e)},t=arguments.length?Array.from(t,nf):[0,1],Oa(r)}function Gx(t,e){t=t.slice();var r=0,n=t.length-1,i=t[r],a=t[n],s;return aMath.pow(t,e)}function $z(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function Xx(t){return(e,r)=>-t(-e,r)}function op(t){const e=t(jx,$x),r=e.domain;let n=10,i,a;function s(){return i=$z(n),a=jz(n),r()[0]<0?(i=Xx(i),a=Xx(a),t(Wz,Hz)):t(jx,$x),e}return e.base=function(o){return arguments.length?(n=+o,s()):n},e.domain=function(o){return arguments.length?(r(o),s()):r()},e.ticks=o=>{const l=r();let u=l[0],h=l[l.length-1];const d=h0){for(;f<=p;++f)for(m=1;mh)break;b.push(_)}}else for(;f<=p;++f)for(m=n-1;m>=1;--m)if(_=f>0?m/a(-f):m*a(f),!(_h)break;b.push(_)}b.length*2{if(o==null&&(o=10),l==null&&(l=n===10?"s":","),typeof l!="function"&&(!(n%1)&&(l=Co(l)).precision==null&&(l.trim=!0),l=gh(l)),o===1/0)return l;const u=Math.max(1,n*o/e.ticks().length);return h=>{let d=h/a(Math.round(i(h)));return d*nr(Gx(r(),{floor:o=>a(Math.floor(i(o))),ceil:o=>a(Math.ceil(i(o)))})),e}function Kx(){const t=op(af()).domain([1,10]);return t.copy=()=>fc(t,Kx()).base(t.base()),On.apply(t,arguments),t}function Zx(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function Qx(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function lp(t){var e=1,r=t(Zx(e),Qx(e));return r.constant=function(n){return arguments.length?t(Zx(e=+n),Qx(e)):e},Oa(r)}function Jx(){var t=lp(af());return t.copy=function(){return fc(t,Jx()).constant(t.constant())},On.apply(t,arguments)}function t8(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function Xz(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function Kz(t){return t<0?-t*t:t*t}function cp(t){var e=t(an,an),r=1;function n(){return r===1?t(an,an):r===.5?t(Xz,Kz):t(t8(r),t8(1/r))}return e.exponent=function(i){return arguments.length?(r=+i,n()):r},Oa(e)}function up(){var t=cp(af());return t.copy=function(){return fc(t,up()).exponent(t.exponent())},On.apply(t,arguments),t}function Zz(){return up.apply(null,arguments).exponent(.5)}function e8(t){return Math.sign(t)*t*t}function Qz(t){return Math.sign(t)*Math.sqrt(Math.abs(t))}function r8(){var t=ap(),e=[0,1],r=!1,n;function i(a){var s=Qz(t(a));return isNaN(s)?n:r?Math.round(s):s}return i.invert=function(a){return t.invert(e8(a))},i.domain=function(a){return arguments.length?(t.domain(a),i):t.domain()},i.range=function(a){return arguments.length?(t.range((e=Array.from(a,nf)).map(e8)),i):e.slice()},i.rangeRound=function(a){return i.range(a).round(!0)},i.round=function(a){return arguments.length?(r=!!a,i):r},i.clamp=function(a){return arguments.length?(t.clamp(a),i):t.clamp()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return r8(t.domain(),e).round(r).clamp(t.clamp()).unknown(n)},On.apply(i,arguments),Oa(i)}function n8(){var t=[],e=[],r=[],n;function i(){var s=0,o=Math.max(1,e.length);for(r=new Array(o-1);++s0?r[o-1]:t[0],o=r?[n[r-1],e]:[n[u-1],n[u]]},s.unknown=function(l){return arguments.length&&(a=l),s},s.thresholds=function(){return n.slice()},s.copy=function(){return i8().domain([t,e]).range(i).unknown(a)},On.apply(Oa(s),arguments)}function a8(){var t=[.5],e=[0,1],r,n=1;function i(a){return a!=null&&a<=a?e[cs(t,a,0,n)]:r}return i.domain=function(a){return arguments.length?(t=Array.from(a),n=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(a){return arguments.length?(e=Array.from(a),n=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(a){var s=e.indexOf(a);return[t[s-1],t[s]]},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return a8().domain(t).range(e).unknown(r)},On.apply(i,arguments)}var hp=new Date,fp=new Date;function xr(t,e,r,n){function i(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=function(a){return t(a=new Date(+a)),a},i.ceil=function(a){return t(a=new Date(a-1)),e(a,1),t(a),a},i.round=function(a){var s=i(a),o=i.ceil(a);return a-s0))return l;do l.push(u=new Date(+a)),e(a,o),t(a);while(u=s)for(;t(s),!a(s);)s.setTime(s-1)},function(s,o){if(s>=s)if(o<0)for(;++o<=0;)for(;e(s,-1),!a(s););else for(;--o>=0;)for(;e(s,1),!a(s););})},r&&(i.count=function(a,s){return hp.setTime(+a),fp.setTime(+s),t(hp),t(fp),Math.floor(r(hp,fp))},i.every=function(a){return a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?function(s){return n(s)%a===0}:function(s){return i.count(0,s)%a===0}):i}),i}var sf=xr(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});sf.every=function(t){return t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?xr(function(e){e.setTime(Math.floor(e/t)*t)},function(e,r){e.setTime(+e+r*t)},function(e,r){return(r-e)/t}):sf};const dp=sf;var s8=sf.range;const ea=1e3,Fn=ea*60,ra=Fn*60,Rs=ra*24,pp=Rs*7,o8=Rs*30,gp=Rs*365;var l8=xr(function(t){t.setTime(t-t.getMilliseconds())},function(t,e){t.setTime(+t+e*ea)},function(t,e){return(e-t)/ea},function(t){return t.getUTCSeconds()});const Fa=l8;var c8=l8.range,u8=xr(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*ea)},function(t,e){t.setTime(+t+e*Fn)},function(t,e){return(e-t)/Fn},function(t){return t.getMinutes()});const yp=u8;var Jz=u8.range,h8=xr(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*ea-t.getMinutes()*Fn)},function(t,e){t.setTime(+t+e*ra)},function(t,e){return(e-t)/ra},function(t){return t.getHours()});const mp=h8;var tY=h8.range,f8=xr(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Fn)/Rs,t=>t.getDate()-1);const dc=f8;var eY=f8.range;function Is(t){return xr(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(e,r){e.setDate(e.getDate()+r*7)},function(e,r){return(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*Fn)/pp})}var Do=Is(0),pc=Is(1),d8=Is(2),p8=Is(3),Ns=Is(4),g8=Is(5),y8=Is(6),m8=Do.range,rY=pc.range,nY=d8.range,iY=p8.range,aY=Ns.range,sY=g8.range,oY=y8.range,b8=xr(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,e){t.setMonth(t.getMonth()+e)},function(t,e){return e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12},function(t){return t.getMonth()});const bp=b8;var lY=b8.range,_p=xr(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});_p.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:xr(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,r){e.setFullYear(e.getFullYear()+r*t)})};const Pa=_p;var cY=_p.range,_8=xr(function(t){t.setUTCSeconds(0,0)},function(t,e){t.setTime(+t+e*Fn)},function(t,e){return(e-t)/Fn},function(t){return t.getUTCMinutes()});const vp=_8;var uY=_8.range,v8=xr(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+e*ra)},function(t,e){return(e-t)/ra},function(t){return t.getUTCHours()});const xp=v8;var hY=v8.range,x8=xr(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/Rs},function(t){return t.getUTCDate()-1});const gc=x8;var fY=x8.range;function Bs(t){return xr(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(e,r){e.setUTCDate(e.getUTCDate()+r*7)},function(e,r){return(r-e)/pp})}var Oo=Bs(0),yc=Bs(1),k8=Bs(2),w8=Bs(3),Ds=Bs(4),T8=Bs(5),E8=Bs(6),C8=Oo.range,dY=yc.range,pY=k8.range,gY=w8.range,yY=Ds.range,mY=T8.range,bY=E8.range,S8=xr(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCMonth(t.getUTCMonth()+e)},function(t,e){return e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12},function(t){return t.getUTCMonth()});const kp=S8;var _Y=S8.range,wp=xr(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});wp.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:xr(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,r){e.setUTCFullYear(e.getUTCFullYear()+r*t)})};const qa=wp;var vY=wp.range;function A8(t,e,r,n,i,a){const s=[[Fa,1,ea],[Fa,5,5*ea],[Fa,15,15*ea],[Fa,30,30*ea],[a,1,Fn],[a,5,5*Fn],[a,15,15*Fn],[a,30,30*Fn],[i,1,ra],[i,3,3*ra],[i,6,6*ra],[i,12,12*ra],[n,1,Rs],[n,2,2*Rs],[r,1,pp],[e,1,o8],[e,3,3*o8],[t,1,gp]];function o(u,h,d){const f=hy).right(s,f);if(p===s.length)return t.every(wl(u/gp,h/gp,d));if(p===0)return dp.every(Math.max(wl(u,h,d),1));const[m,_]=s[f/s[p-1][2]53)return null;"w"in U||(U.w=1),"Z"in U?(j=Ep(mc(U.y,0,1)),P=j.getUTCDay(),j=P>4||P===0?yc.ceil(j):yc(j),j=gc.offset(j,(U.V-1)*7),U.y=j.getUTCFullYear(),U.m=j.getUTCMonth(),U.d=j.getUTCDate()+(U.w+6)%7):(j=Tp(mc(U.y,0,1)),P=j.getDay(),j=P>4||P===0?pc.ceil(j):pc(j),j=dc.offset(j,(U.V-1)*7),U.y=j.getFullYear(),U.m=j.getMonth(),U.d=j.getDate()+(U.w+6)%7)}else("W"in U||"U"in U)&&("w"in U||(U.w="u"in U?U.u%7:"W"in U?1:0),P="Z"in U?Ep(mc(U.y,0,1)).getUTCDay():Tp(mc(U.y,0,1)).getDay(),U.m=0,U.d="W"in U?(U.w+6)%7+U.W*7-(P+5)%7:U.w+U.U*7-(P+6)%7);return"Z"in U?(U.H+=U.Z/100|0,U.M+=U.Z%100,Ep(U)):Tp(U)}}function R(V,Q,q,U){for(var F=0,j=Q.length,P=q.length,et,at;F=P)return-1;if(et=Q.charCodeAt(F++),et===37){if(et=Q.charAt(F++),at=C[et in B8?Q.charAt(F++):et],!at||(U=at(V,q,U))<0)return-1}else if(et!=q.charCodeAt(U++))return-1}return U}function A(V,Q,q){var U=u.exec(Q.slice(q));return U?(V.p=h.get(U[0].toLowerCase()),q+U[0].length):-1}function L(V,Q,q){var U=p.exec(Q.slice(q));return U?(V.w=m.get(U[0].toLowerCase()),q+U[0].length):-1}function v(V,Q,q){var U=d.exec(Q.slice(q));return U?(V.w=f.get(U[0].toLowerCase()),q+U[0].length):-1}function B(V,Q,q){var U=b.exec(Q.slice(q));return U?(V.m=x.get(U[0].toLowerCase()),q+U[0].length):-1}function w(V,Q,q){var U=_.exec(Q.slice(q));return U?(V.m=y.get(U[0].toLowerCase()),q+U[0].length):-1}function D(V,Q,q){return R(V,e,Q,q)}function N(V,Q,q){return R(V,r,Q,q)}function z(V,Q,q){return R(V,n,Q,q)}function X(V){return s[V.getDay()]}function ct(V){return a[V.getDay()]}function J(V){return l[V.getMonth()]}function Y(V){return o[V.getMonth()]}function $(V){return i[+(V.getHours()>=12)]}function lt(V){return 1+~~(V.getMonth()/3)}function ut(V){return s[V.getUTCDay()]}function W(V){return a[V.getUTCDay()]}function tt(V){return l[V.getUTCMonth()]}function K(V){return o[V.getUTCMonth()]}function it(V){return i[+(V.getUTCHours()>=12)]}function Z(V){return 1+~~(V.getUTCMonth()/3)}return{format:function(V){var Q=M(V+="",k);return Q.toString=function(){return V},Q},parse:function(V){var Q=S(V+="",!1);return Q.toString=function(){return V},Q},utcFormat:function(V){var Q=M(V+="",T);return Q.toString=function(){return V},Q},utcParse:function(V){var Q=S(V+="",!0);return Q.toString=function(){return V},Q}}}var B8={"-":"",_:" ",0:"0"},Ar=/^\s*\d+/,xY=/^%/,kY=/[\\^$*+?|[\]().{}]/g;function Oe(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a[e.toLowerCase(),r]))}function TY(t,e,r){var n=Ar.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function EY(t,e,r){var n=Ar.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function CY(t,e,r){var n=Ar.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function SY(t,e,r){var n=Ar.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function AY(t,e,r){var n=Ar.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function D8(t,e,r){var n=Ar.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function O8(t,e,r){var n=Ar.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function MY(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function LY(t,e,r){var n=Ar.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function RY(t,e,r){var n=Ar.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function F8(t,e,r){var n=Ar.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function IY(t,e,r){var n=Ar.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function P8(t,e,r){var n=Ar.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function NY(t,e,r){var n=Ar.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function BY(t,e,r){var n=Ar.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function DY(t,e,r){var n=Ar.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function OY(t,e,r){var n=Ar.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function FY(t,e,r){var n=xY.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function PY(t,e,r){var n=Ar.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function qY(t,e,r){var n=Ar.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function q8(t,e){return Oe(t.getDate(),e,2)}function VY(t,e){return Oe(t.getHours(),e,2)}function zY(t,e){return Oe(t.getHours()%12||12,e,2)}function YY(t,e){return Oe(1+dc.count(Pa(t),t),e,3)}function V8(t,e){return Oe(t.getMilliseconds(),e,3)}function UY(t,e){return V8(t,e)+"000"}function WY(t,e){return Oe(t.getMonth()+1,e,2)}function HY(t,e){return Oe(t.getMinutes(),e,2)}function GY(t,e){return Oe(t.getSeconds(),e,2)}function jY(t){var e=t.getDay();return e===0?7:e}function $Y(t,e){return Oe(Do.count(Pa(t)-1,t),e,2)}function z8(t){var e=t.getDay();return e>=4||e===0?Ns(t):Ns.ceil(t)}function XY(t,e){return t=z8(t),Oe(Ns.count(Pa(t),t)+(Pa(t).getDay()===4),e,2)}function KY(t){return t.getDay()}function ZY(t,e){return Oe(pc.count(Pa(t)-1,t),e,2)}function QY(t,e){return Oe(t.getFullYear()%100,e,2)}function JY(t,e){return t=z8(t),Oe(t.getFullYear()%100,e,2)}function tU(t,e){return Oe(t.getFullYear()%1e4,e,4)}function eU(t,e){var r=t.getDay();return t=r>=4||r===0?Ns(t):Ns.ceil(t),Oe(t.getFullYear()%1e4,e,4)}function rU(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Oe(e/60|0,"0",2)+Oe(e%60,"0",2)}function Y8(t,e){return Oe(t.getUTCDate(),e,2)}function nU(t,e){return Oe(t.getUTCHours(),e,2)}function iU(t,e){return Oe(t.getUTCHours()%12||12,e,2)}function aU(t,e){return Oe(1+gc.count(qa(t),t),e,3)}function U8(t,e){return Oe(t.getUTCMilliseconds(),e,3)}function sU(t,e){return U8(t,e)+"000"}function oU(t,e){return Oe(t.getUTCMonth()+1,e,2)}function lU(t,e){return Oe(t.getUTCMinutes(),e,2)}function cU(t,e){return Oe(t.getUTCSeconds(),e,2)}function uU(t){var e=t.getUTCDay();return e===0?7:e}function hU(t,e){return Oe(Oo.count(qa(t)-1,t),e,2)}function W8(t){var e=t.getUTCDay();return e>=4||e===0?Ds(t):Ds.ceil(t)}function fU(t,e){return t=W8(t),Oe(Ds.count(qa(t),t)+(qa(t).getUTCDay()===4),e,2)}function dU(t){return t.getUTCDay()}function pU(t,e){return Oe(yc.count(qa(t)-1,t),e,2)}function gU(t,e){return Oe(t.getUTCFullYear()%100,e,2)}function yU(t,e){return t=W8(t),Oe(t.getUTCFullYear()%100,e,2)}function mU(t,e){return Oe(t.getUTCFullYear()%1e4,e,4)}function bU(t,e){var r=t.getUTCDay();return t=r>=4||r===0?Ds(t):Ds.ceil(t),Oe(t.getUTCFullYear()%1e4,e,4)}function _U(){return"+0000"}function H8(){return"%"}function G8(t){return+t}function j8(t){return Math.floor(+t/1e3)}var Fo,vc,$8,of,Cp;X8({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function X8(t){return Fo=N8(t),vc=Fo.format,$8=Fo.parse,of=Fo.utcFormat,Cp=Fo.utcParse,Fo}var K8="%Y-%m-%dT%H:%M:%S.%LZ";function vU(t){return t.toISOString()}var xU=Date.prototype.toISOString?vU:of(K8);const kU=xU;function wU(t){var e=new Date(t);return isNaN(e)?null:e}var TU=+new Date("2000-01-01T00:00:00.000Z")?wU:Cp(K8);const EU=TU;function CU(t){return new Date(t)}function SU(t){return t instanceof Date?+t:+new Date(+t)}function Sp(t,e,r,n,i,a,s,o,l,u){var h=ap(),d=h.invert,f=h.domain,p=u(".%L"),m=u(":%S"),_=u("%I:%M"),y=u("%I %p"),b=u("%a %d"),x=u("%b %d"),k=u("%B"),T=u("%Y");function C(M){return(l(M)e(i/(t.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(i,a)=>Cl(t,a/n))},r.copy=function(){return e7(e).domain(t)},ta.apply(r,arguments)}function cf(){var t=0,e=.5,r=1,n=1,i,a,s,o,l,u=an,h,d=!1,f;function p(_){return isNaN(_=+_)?f:(_=.5+((_=+h(_))-a)*(n*_O5(t[t.length-1]);var a7=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(Ee);const zU=We(a7);var s7=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(Ee);const YU=We(s7);var o7=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(Ee);const UU=We(o7);var l7=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(Ee);const WU=We(l7);var c7=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(Ee);const HU=We(c7);var u7=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(Ee);const GU=We(u7);var h7=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(Ee);const jU=We(h7);var f7=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(Ee);const $U=We(f7);var d7=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(Ee);const XU=We(d7);var p7=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(Ee);const KU=We(p7);var g7=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(Ee);const ZU=We(g7);var y7=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(Ee);const QU=We(y7);var m7=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(Ee);const JU=We(m7);var b7=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(Ee);const tW=We(b7);var _7=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(Ee);const eW=We(_7);var v7=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(Ee);const rW=We(v7);var x7=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(Ee);const nW=We(x7);var k7=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(Ee);const iW=We(k7);var w7=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(Ee);const aW=We(w7);var T7=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(Ee);const sW=We(T7);var E7=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(Ee);const oW=We(E7);var C7=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(Ee);const lW=We(C7);var S7=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(Ee);const cW=We(S7);var A7=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(Ee);const uW=We(A7);var M7=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(Ee);const hW=We(M7);var L7=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(Ee);const fW=We(L7);var R7=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(Ee);const dW=We(R7);function pW(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-t*(35.34-t*(2381.73-t*(6402.7-t*(7024.72-t*2710.57)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+t*(170.73+t*(52.82-t*(131.46-t*(176.58-t*67.37)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+t*(442.36-t*(2482.43-t*(6167.24-t*(6614.94-t*2475.67)))))))+")"}const gW=$u(Qn(300,.5,0),Qn(-240,.5,1));var yW=$u(Qn(-100,.75,.35),Qn(80,1.5,.8)),mW=$u(Qn(260,.75,.35),Qn(80,1.5,.8)),uf=Qn();function bW(t){(t<0||t>1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return uf.h=360*t-100,uf.s=1.5-1.5*e,uf.l=.8-.9*e,uf+""}var hf=po(),_W=Math.PI/3,vW=Math.PI*2/3;function xW(t){var e;return t=(.5-t)*Math.PI,hf.r=255*(e=Math.sin(t))*e,hf.g=255*(e=Math.sin(t+_W))*e,hf.b=255*(e=Math.sin(t+vW))*e,hf+""}function kW(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+t*(1172.33-t*(10793.56-t*(33300.12-t*(38394.49-t*14825.05)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+t*(557.33+t*(1225.33-t*(3574.96-t*(1073.77+t*707.56)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+t*(3211.1-t*(15327.97-t*(27814-t*(22569.18-t*6838.66)))))))+")"}function ff(t){var e=t.length;return function(r){return t[Math.max(0,Math.min(e-1,Math.floor(r*e)))]}}const wW=ff(Ee("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));var TW=ff(Ee("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),EW=ff(Ee("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),CW=ff(Ee("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function xe(t){return function(){return t}}const I7=Math.abs,qr=Math.atan2,na=Math.cos,SW=Math.max,Po=Math.min,gn=Math.sin,Ge=Math.sqrt,Vr=1e-12,za=Math.PI,df=za/2,Ya=2*za;function AW(t){return t>1?0:t<-1?za:Math.acos(t)}function N7(t){return t>=1?df:t<=-1?-df:Math.asin(t)}function MW(t){return t.innerRadius}function LW(t){return t.outerRadius}function RW(t){return t.startAngle}function IW(t){return t.endAngle}function NW(t){return t&&t.padAngle}function BW(t,e,r,n,i,a,s,o){var l=r-t,u=n-e,h=s-i,d=o-a,f=d*l-h*u;if(!(f*fD*D+N*N&&(R=L,A=v),{cx:R,cy:A,x01:-h,y01:-d,x11:R*(i/C-1),y11:A*(i/C-1)}}function gf(){var t=MW,e=LW,r=xe(0),n=null,i=RW,a=IW,s=NW,o=null;function l(){var u,h,d=+t.apply(this,arguments),f=+e.apply(this,arguments),p=i.apply(this,arguments)-df,m=a.apply(this,arguments)-df,_=I7(m-p),y=m>p;if(o||(o=u=Ra()),fVr))o.moveTo(0,0);else if(_>Ya-Vr)o.moveTo(f*na(p),f*gn(p)),o.arc(0,0,f,p,m,!y),d>Vr&&(o.moveTo(d*na(m),d*gn(m)),o.arc(0,0,d,m,p,y));else{var b=p,x=m,k=p,T=m,C=_,M=_,S=s.apply(this,arguments)/2,R=S>Vr&&(n?+n.apply(this,arguments):Ge(d*d+f*f)),A=Po(I7(f-d)/2,+r.apply(this,arguments)),L=A,v=A,B,w;if(R>Vr){var D=N7(R/d*gn(S)),N=N7(R/f*gn(S));(C-=D*2)>Vr?(D*=y?1:-1,k+=D,T-=D):(C=0,k=T=(p+m)/2),(M-=N*2)>Vr?(N*=y?1:-1,b+=N,x-=N):(M=0,b=x=(p+m)/2)}var z=f*na(b),X=f*gn(b),ct=d*na(T),J=d*gn(T);if(A>Vr){var Y=f*na(x),$=f*gn(x),lt=d*na(k),ut=d*gn(k),W;if(_Vr?v>Vr?(B=pf(lt,ut,z,X,f,v,y),w=pf(Y,$,ct,J,f,v,y),o.moveTo(B.cx+B.x01,B.cy+B.y01),vVr)||!(C>Vr)?o.lineTo(ct,J):L>Vr?(B=pf(ct,J,Y,$,d,-L,y),w=pf(z,X,lt,ut,d,-L,y),o.lineTo(B.cx+B.x01,B.cy+B.y01),L=f;--p)o.point(x[p],k[p]);o.lineEnd(),o.areaEnd()}y&&(x[d]=+t(_,d,h),k[d]=+e(_,d,h),o.point(n?+n(_,d,h):x[d],r?+r(_,d,h):k[d]))}if(b)return o=null,b+""||null}function u(){return Ua().defined(i).curve(s).context(a)}return l.x=function(h){return arguments.length?(t=typeof h=="function"?h:xe(+h),n=null,l):t},l.x0=function(h){return arguments.length?(t=typeof h=="function"?h:xe(+h),l):t},l.x1=function(h){return arguments.length?(n=h==null?null:typeof h=="function"?h:xe(+h),l):n},l.y=function(h){return arguments.length?(e=typeof h=="function"?h:xe(+h),r=null,l):e},l.y0=function(h){return arguments.length?(e=typeof h=="function"?h:xe(+h),l):e},l.y1=function(h){return arguments.length?(r=h==null?null:typeof h=="function"?h:xe(+h),l):r},l.lineX0=l.lineY0=function(){return u().x(t).y(e)},l.lineY1=function(){return u().x(t).y(r)},l.lineX1=function(){return u().x(n).y(e)},l.defined=function(h){return arguments.length?(i=typeof h=="function"?h:xe(!!h),l):i},l.curve=function(h){return arguments.length?(s=h,a!=null&&(o=s(a)),l):s},l.context=function(h){return arguments.length?(h==null?a=o=null:o=s(a=h),l):a},l}function OW(t,e){return et?1:e>=t?0:NaN}function FW(t){return t}function O7(){var t=FW,e=OW,r=null,n=xe(0),i=xe(Ya),a=xe(0);function s(o){var l,u=(o=yf(o)).length,h,d,f=0,p=new Array(u),m=new Array(u),_=+n.apply(this,arguments),y=Math.min(Ya,Math.max(-Ya,i.apply(this,arguments)-_)),b,x=Math.min(Math.abs(y)/u,a.apply(this,arguments)),k=x*(y<0?-1:1),T;for(l=0;l0&&(f+=T);for(e!=null?p.sort(function(C,M){return e(m[C],m[M])}):r!=null&&p.sort(function(C,M){return r(o[C],o[M])}),l=0,d=f?(y-u*k)/f:0;l0?T*d:0)+k,m[h]={data:o[h],index:l,value:T,startAngle:_,endAngle:b,padAngle:x};return m}return s.value=function(o){return arguments.length?(t=typeof o=="function"?o:xe(+o),s):t},s.sortValues=function(o){return arguments.length?(e=o,r=null,s):e},s.sort=function(o){return arguments.length?(r=o,e=null,s):r},s.startAngle=function(o){return arguments.length?(n=typeof o=="function"?o:xe(+o),s):n},s.endAngle=function(o){return arguments.length?(i=typeof o=="function"?o:xe(+o),s):i},s.padAngle=function(o){return arguments.length?(a=typeof o=="function"?o:xe(+o),s):a},s}var F7=Ip(yn);function P7(t){this._curve=t}P7.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}};function Ip(t){function e(r){return new P7(t(r))}return e._curve=t,e}function xc(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(r){return arguments.length?e(Ip(r)):e()._curve},t}function q7(){return xc(Ua().curve(F7))}function V7(){var t=D7().curve(F7),e=t.curve,r=t.lineX0,n=t.lineX1,i=t.lineY0,a=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return xc(r())},delete t.lineX0,t.lineEndAngle=function(){return xc(n())},delete t.lineX1,t.lineInnerRadius=function(){return xc(i())},delete t.lineY0,t.lineOuterRadius=function(){return xc(a())},delete t.lineY1,t.curve=function(s){return arguments.length?e(Ip(s)):e()._curve},t}function kc(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]}class z7{constructor(e,r){this._context=e,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,r){switch(e=+e,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,r,e,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,e,this._y0,e,r);break}}this._x0=e,this._y0=r}}class PW{constructor(e){this._context=e}lineStart(){this._point=0}lineEnd(){}point(e,r){if(e=+e,r=+r,this._point++===0)this._x0=e,this._y0=r;else{const n=kc(this._x0,this._y0),i=kc(this._x0,this._y0=(this._y0+r)/2),a=kc(e,this._y0),s=kc(e,r);this._context.moveTo(...n),this._context.bezierCurveTo(...i,...a,...s)}}}function Y7(t){return new z7(t,!0)}function U7(t){return new z7(t,!1)}function qW(t){return new PW(t)}function VW(t){return t.source}function zW(t){return t.target}function mf(t){let e=VW,r=zW,n=Lp,i=Rp,a=null,s=null;function o(){let l;const u=DW.call(arguments),h=e.apply(this,u),d=r.apply(this,u);if(a==null&&(s=t(l=Ra())),s.lineStart(),u[0]=h,s.point(+n.apply(this,u),+i.apply(this,u)),u[0]=d,s.point(+n.apply(this,u),+i.apply(this,u)),s.lineEnd(),l)return s=null,l+""||null}return o.source=function(l){return arguments.length?(e=l,o):e},o.target=function(l){return arguments.length?(r=l,o):r},o.x=function(l){return arguments.length?(n=typeof l=="function"?l:xe(+l),o):n},o.y=function(l){return arguments.length?(i=typeof l=="function"?l:xe(+l),o):i},o.context=function(l){return arguments.length?(l==null?a=s=null:s=t(a=l),o):a},o}function YW(){return mf(Y7)}function UW(){return mf(U7)}function WW(){const t=mf(qW);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t}const HW=Ge(3),W7={draw(t,e){const r=Ge(e+Po(e/28,.75))*.59436,n=r/2,i=n*HW;t.moveTo(0,r),t.lineTo(0,-r),t.moveTo(-i,-n),t.lineTo(i,n),t.moveTo(-i,n),t.lineTo(i,-n)}},bf={draw(t,e){const r=Ge(e/za);t.moveTo(r,0),t.arc(0,0,r,0,Ya)}},H7={draw(t,e){const r=Ge(e/5)/2;t.moveTo(-3*r,-r),t.lineTo(-r,-r),t.lineTo(-r,-3*r),t.lineTo(r,-3*r),t.lineTo(r,-r),t.lineTo(3*r,-r),t.lineTo(3*r,r),t.lineTo(r,r),t.lineTo(r,3*r),t.lineTo(-r,3*r),t.lineTo(-r,r),t.lineTo(-3*r,r),t.closePath()}},G7=Ge(1/3),GW=G7*2,j7={draw(t,e){const r=Ge(e/GW),n=r*G7;t.moveTo(0,-r),t.lineTo(n,0),t.lineTo(0,r),t.lineTo(-n,0),t.closePath()}},$7={draw(t,e){const r=Ge(e)*.62625;t.moveTo(0,-r),t.lineTo(r,0),t.lineTo(0,r),t.lineTo(-r,0),t.closePath()}},X7={draw(t,e){const r=Ge(e-Po(e/7,2))*.87559;t.moveTo(-r,0),t.lineTo(r,0),t.moveTo(0,r),t.lineTo(0,-r)}},K7={draw(t,e){const r=Ge(e),n=-r/2;t.rect(n,n,r,r)}},Z7={draw(t,e){const r=Ge(e)*.4431;t.moveTo(r,r),t.lineTo(r,-r),t.lineTo(-r,-r),t.lineTo(-r,r),t.closePath()}},jW=.8908130915292852,Q7=gn(za/10)/gn(7*za/10),$W=gn(Ya/10)*Q7,XW=-na(Ya/10)*Q7,J7={draw(t,e){const r=Ge(e*jW),n=$W*r,i=XW*r;t.moveTo(0,-r),t.lineTo(n,i);for(let a=1;a<5;++a){const s=Ya*a/5,o=na(s),l=gn(s);t.lineTo(l*r,-o*r),t.lineTo(o*n-l*i,l*n+o*i)}t.closePath()}},Np=Ge(3),tk={draw(t,e){const r=-Ge(e/(Np*3));t.moveTo(0,r*2),t.lineTo(-Np*r,-r),t.lineTo(Np*r,-r),t.closePath()}},KW=Ge(3),ek={draw(t,e){const r=Ge(e)*.6824,n=r/2,i=r*KW/2;t.moveTo(0,-r),t.lineTo(i,n),t.lineTo(-i,n),t.closePath()}},Pn=-.5,qn=Ge(3)/2,Bp=1/Ge(12),ZW=(Bp/2+1)*3,rk={draw(t,e){const r=Ge(e/ZW),n=r/2,i=r*Bp,a=n,s=r*Bp+r,o=-a,l=s;t.moveTo(n,i),t.lineTo(a,s),t.lineTo(o,l),t.lineTo(Pn*n-qn*i,qn*n+Pn*i),t.lineTo(Pn*a-qn*s,qn*a+Pn*s),t.lineTo(Pn*o-qn*l,qn*o+Pn*l),t.lineTo(Pn*n+qn*i,Pn*i-qn*n),t.lineTo(Pn*a+qn*s,Pn*s-qn*a),t.lineTo(Pn*o+qn*l,Pn*l-qn*o),t.closePath()}},nk={draw(t,e){const r=Ge(e-Po(e/6,1.7))*.6189;t.moveTo(-r,-r),t.lineTo(r,r),t.moveTo(-r,r),t.lineTo(r,-r)}},ik=[bf,H7,j7,K7,J7,tk,rk],QW=[bf,X7,nk,ek,W7,Z7,$7];function JW(t,e){let r=null;t=typeof t=="function"?t:xe(t||bf),e=typeof e=="function"?e:xe(e===void 0?64:+e);function n(){let i;if(r||(r=i=Ra()),t.apply(this,arguments).draw(r,+e.apply(this,arguments)),i)return r=null,i+""||null}return n.type=function(i){return arguments.length?(t=typeof i=="function"?i:xe(i),n):t},n.size=function(i){return arguments.length?(e=typeof i=="function"?i:xe(+i),n):e},n.context=function(i){return arguments.length?(r=i==null?null:i,n):r},n}function Wa(){}function _f(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function vf(t){this._context=t}vf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:_f(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:_f(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Os(t){return new vf(t)}function ak(t){this._context=t}ak.prototype={areaStart:Wa,areaEnd:Wa,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:_f(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function sk(t){return new ak(t)}function ok(t){this._context=t}ok.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:_f(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function lk(t){return new ok(t)}function ck(t,e){this._basis=new vf(t),this._beta=e}ck.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var n=t[0],i=e[0],a=t[r]-n,s=e[r]-i,o=-1,l;++o<=r;)l=o/r,this._basis.point(this._beta*t[o]+(1-this._beta)*(n+l*a),this._beta*e[o]+(1-this._beta)*(i+l*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};const tH=function t(e){function r(n){return e===1?new vf(n):new ck(n,e)}return r.beta=function(n){return t(+n)},r}(.85);function xf(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function Dp(t,e){this._context=t,this._k=(1-e)/6}Dp.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:xf(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:xf(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const eH=function t(e){function r(n){return new Dp(n,e)}return r.tension=function(n){return t(+n)},r}(0);function Op(t,e){this._context=t,this._k=(1-e)/6}Op.prototype={areaStart:Wa,areaEnd:Wa,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:xf(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const rH=function t(e){function r(n){return new Op(n,e)}return r.tension=function(n){return t(+n)},r}(0);function Fp(t,e){this._context=t,this._k=(1-e)/6}Fp.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:xf(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const nH=function t(e){function r(n){return new Fp(n,e)}return r.tension=function(n){return t(+n)},r}(0);function Pp(t,e,r){var n=t._x1,i=t._y1,a=t._x2,s=t._y2;if(t._l01_a>Vr){var o=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);n=(n*o-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,i=(i*o-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>Vr){var u=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,h=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*u+t._x1*t._l23_2a-e*t._l12_2a)/h,s=(s*u+t._y1*t._l23_2a-r*t._l12_2a)/h}t._context.bezierCurveTo(n,i,a,s,t._x2,t._y2)}function uk(t,e){this._context=t,this._alpha=e}uk.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Pp(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const iH=function t(e){function r(n){return e?new uk(n,e):new Dp(n,0)}return r.alpha=function(n){return t(+n)},r}(.5);function hk(t,e){this._context=t,this._alpha=e}hk.prototype={areaStart:Wa,areaEnd:Wa,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Pp(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const aH=function t(e){function r(n){return e?new hk(n,e):new Op(n,0)}return r.alpha=function(n){return t(+n)},r}(.5);function fk(t,e){this._context=t,this._alpha=e}fk.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Pp(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const sH=function t(e){function r(n){return e?new fk(n,e):new Fp(n,0)}return r.alpha=function(n){return t(+n)},r}(.5);function dk(t){this._context=t}dk.prototype={areaStart:Wa,areaEnd:Wa,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function pk(t){return new dk(t)}function gk(t){return t<0?-1:1}function yk(t,e,r){var n=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(n||i<0&&-0),s=(r-t._y1)/(i||n<0&&-0),o=(a*i+s*n)/(n+i);return(gk(a)+gk(s))*Math.min(Math.abs(a),Math.abs(s),.5*Math.abs(o))||0}function mk(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function qp(t,e,r){var n=t._x0,i=t._y0,a=t._x1,s=t._y1,o=(a-n)/3;t._context.bezierCurveTo(n+o,i+o*e,a-o,s-o*r,a,s)}function kf(t){this._context=t}kf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:qp(this,this._t0,mk(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var r=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,qp(this,mk(this,r=yk(this,t,e)),r);break;default:qp(this,this._t0,r=yk(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}}};function bk(t){this._context=new _k(t)}(bk.prototype=Object.create(kf.prototype)).point=function(t,e){kf.prototype.point.call(this,e,t)};function _k(t){this._context=t}_k.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,r,n,i,a){this._context.bezierCurveTo(e,t,n,r,a,i)}};function vk(t){return new kf(t)}function xk(t){return new bk(t)}function kk(t){this._context=t}kk.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,r=t.length;if(r)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),r===2)this._context.lineTo(t[1],e[1]);else for(var n=wk(t),i=wk(e),a=0,s=1;s=0;--e)i[e]=(s[e]-i[e+1])/a[e];for(a[r-1]=(t[r]+i[r-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}break}}this._x=t,this._y=e}};function Ek(t){return new wf(t,.5)}function Ck(t){return new wf(t,0)}function Sk(t){return new wf(t,1)}function qo(t,e){if((s=t.length)>1)for(var r=1,n,i,a=t[e[0]],s,o=a.length;r=0;)r[e]=e;return r}function oH(t,e){return t[e]}function lH(t){const e=[];return e.key=t,e}function cH(){var t=xe([]),e=Vo,r=qo,n=oH;function i(a){var s=Array.from(t.apply(this,arguments),lH),o,l=s.length,u=-1,h;for(const d of a)for(o=0,++u;o0){for(var r,n,i=0,a=t[0].length,s;i0)for(var r,n=0,i,a,s,o,l,u=t[e[0]].length;n0?(i[0]=s,i[1]=s+=a):a<0?(i[1]=o,i[0]=o+=a):(i[0]=0,i[1]=a)}function fH(t,e){if((i=t.length)>0){for(var r=0,n=t[e[0]],i,a=n.length;r0)||!((a=(i=t[e[0]]).length)>0))){for(var r=0,n=1,i,a,s;na&&(a=i,r=e);return r}function Mk(t){var e=t.map(Lk);return Vo(t).sort(function(r,n){return e[r]-e[n]})}function Lk(t){for(var e=0,r=-1,n=t.length,i;++r()=>t;function bH(t,{sourceEvent:e,target:r,transform:n,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:n,enumerable:!0,configurable:!0},_:{value:i}})}function Ri(t,e,r){this.k=t,this.x=e,this.y=r}Ri.prototype={constructor:Ri,scale:function(t){return t===1?this:new Ri(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new Ri(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Ef=new Ri(1,0,0);Rk.prototype=Ri.prototype;function Rk(t){for(;!t.__zoom;)if(!(t=t.parentNode))return Ef;return t.__zoom}function Vp(t){t.stopImmediatePropagation()}function wc(t){t.preventDefault(),t.stopImmediatePropagation()}function _H(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function vH(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function Ik(){return this.__zoom||Ef}function xH(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function kH(){return navigator.maxTouchPoints||"ontouchstart"in this}function wH(t,e,r){var n=t.invertX(e[0][0])-r[0][0],i=t.invertX(e[1][0])-r[1][0],a=t.invertY(e[0][1])-r[0][1],s=t.invertY(e[1][1])-r[1][1];return t.translate(i>n?(n+i)/2:Math.min(0,n)||Math.max(0,i),s>a?(a+s)/2:Math.min(0,a)||Math.max(0,s))}function TH(){var t=_H,e=vH,r=wH,n=xH,i=kH,a=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],o=250,l=j5,u=fs("start","zoom","end"),h,d,f,p=500,m=150,_=0,y=10;function b(D){D.property("__zoom",Ik).on("wheel.zoom",R,{passive:!1}).on("mousedown.zoom",A).on("dblclick.zoom",L).filter(i).on("touchstart.zoom",v).on("touchmove.zoom",B).on("touchend.zoom touchcancel.zoom",w).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(D,N,z,X){var ct=D.selection?D.selection():D;ct.property("__zoom",Ik),D!==ct?C(D,N,z,X):ct.interrupt().each(function(){M(this,arguments).event(X).start().zoom(null,typeof N=="function"?N.apply(this,arguments):N).end()})},b.scaleBy=function(D,N,z,X){b.scaleTo(D,function(){var ct=this.__zoom.k,J=typeof N=="function"?N.apply(this,arguments):N;return ct*J},z,X)},b.scaleTo=function(D,N,z,X){b.transform(D,function(){var ct=e.apply(this,arguments),J=this.__zoom,Y=z==null?T(ct):typeof z=="function"?z.apply(this,arguments):z,$=J.invert(Y),lt=typeof N=="function"?N.apply(this,arguments):N;return r(k(x(J,lt),Y,$),ct,s)},z,X)},b.translateBy=function(D,N,z,X){b.transform(D,function(){return r(this.__zoom.translate(typeof N=="function"?N.apply(this,arguments):N,typeof z=="function"?z.apply(this,arguments):z),e.apply(this,arguments),s)},null,X)},b.translateTo=function(D,N,z,X,ct){b.transform(D,function(){var J=e.apply(this,arguments),Y=this.__zoom,$=X==null?T(J):typeof X=="function"?X.apply(this,arguments):X;return r(Ef.translate($[0],$[1]).scale(Y.k).translate(typeof N=="function"?-N.apply(this,arguments):-N,typeof z=="function"?-z.apply(this,arguments):-z),J,s)},X,ct)};function x(D,N){return N=Math.max(a[0],Math.min(a[1],N)),N===D.k?D:new Ri(N,D.x,D.y)}function k(D,N,z){var X=N[0]-z[0]*D.k,ct=N[1]-z[1]*D.k;return X===D.x&&ct===D.y?D:new Ri(D.k,X,ct)}function T(D){return[(+D[0][0]+ +D[1][0])/2,(+D[0][1]+ +D[1][1])/2]}function C(D,N,z,X){D.on("start.zoom",function(){M(this,arguments).event(X).start()}).on("interrupt.zoom end.zoom",function(){M(this,arguments).event(X).end()}).tween("zoom",function(){var ct=this,J=arguments,Y=M(ct,J).event(X),$=e.apply(ct,J),lt=z==null?T($):typeof z=="function"?z.apply(ct,J):z,ut=Math.max($[1][0]-$[0][0],$[1][1]-$[0][1]),W=ct.__zoom,tt=typeof N=="function"?N.apply(ct,J):N,K=l(W.invert(lt).concat(ut/W.k),tt.invert(lt).concat(ut/tt.k));return function(it){if(it===1)it=tt;else{var Z=K(it),V=ut/Z[2];it=new Ri(V,lt[0]-Z[0]*V,lt[1]-Z[1]*V)}Y.zoom(null,it)}})}function M(D,N,z){return!z&&D.__zooming||new S(D,N)}function S(D,N){this.that=D,this.args=N,this.active=0,this.sourceEvent=null,this.extent=e.apply(D,N),this.taps=0}S.prototype={event:function(D){return D&&(this.sourceEvent=D),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(D,N){return this.mouse&&D!=="mouse"&&(this.mouse[1]=N.invert(this.mouse[0])),this.touch0&&D!=="touch"&&(this.touch0[1]=N.invert(this.touch0[0])),this.touch1&&D!=="touch"&&(this.touch1[1]=N.invert(this.touch1[0])),this.that.__zoom=N,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(D){var N=St(this.that).datum();u.call(D,this.that,new bH(D,{sourceEvent:this.sourceEvent,target:b,type:D,transform:this.that.__zoom,dispatch:u}),N)}};function R(D,...N){if(!t.apply(this,arguments))return;var z=M(this,N).event(D),X=this.__zoom,ct=Math.max(a[0],Math.min(a[1],X.k*Math.pow(2,n.apply(this,arguments)))),J=Tn(D);if(z.wheel)(z.mouse[0][0]!==J[0]||z.mouse[0][1]!==J[1])&&(z.mouse[1]=X.invert(z.mouse[0]=J)),clearTimeout(z.wheel);else{if(X.k===ct)return;z.mouse=[J,X.invert(J)],vs(this),z.start()}wc(D),z.wheel=setTimeout(Y,m),z.zoom("mouse",r(k(x(X,ct),z.mouse[0],z.mouse[1]),z.extent,s));function Y(){z.wheel=null,z.end()}}function A(D,...N){if(f||!t.apply(this,arguments))return;var z=D.currentTarget,X=M(this,N,!0).event(D),ct=St(D.view).on("mousemove.zoom",lt,!0).on("mouseup.zoom",ut,!0),J=Tn(D,z),Y=D.clientX,$=D.clientY;Nu(D.view),Vp(D),X.mouse=[J,this.__zoom.invert(J)],vs(this),X.start();function lt(W){if(wc(W),!X.moved){var tt=W.clientX-Y,K=W.clientY-$;X.moved=tt*tt+K*K>_}X.event(W).zoom("mouse",r(k(X.that.__zoom,X.mouse[0]=Tn(W,z),X.mouse[1]),X.extent,s))}function ut(W){ct.on("mousemove.zoom mouseup.zoom",null),Bu(W.view,X.moved),wc(W),X.event(W).end()}}function L(D,...N){if(!!t.apply(this,arguments)){var z=this.__zoom,X=Tn(D.changedTouches?D.changedTouches[0]:D,this),ct=z.invert(X),J=z.k*(D.shiftKey?.5:2),Y=r(k(x(z,J),X,ct),e.apply(this,N),s);wc(D),o>0?St(this).transition().duration(o).call(C,Y,X,D):St(this).call(b.transform,Y,X,D)}}function v(D,...N){if(!!t.apply(this,arguments)){var z=D.touches,X=z.length,ct=M(this,N,D.changedTouches.length===X).event(D),J,Y,$,lt;for(Vp(D),Y=0;Y"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Cf(t,e,r){return CH()?Cf=Reflect.construct:Cf=function(i,a,s){var o=[null];o.push.apply(o,a);var l=Function.bind.apply(i,o),u=new l;return s&&zp(u,s.prototype),u},Cf.apply(null,arguments)}function ni(t){return SH(t)||AH(t)||MH(t)||LH()}function SH(t){if(Array.isArray(t))return Yp(t)}function AH(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function MH(t,e){if(!!t){if(typeof t=="string")return Yp(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Yp(t,e)}}function Yp(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?r-1:0),i=1;i/gm),HH=Ii(/^data-[\-\w.\u00B7-\uFFFF]/),GH=Ii(/^aria-[\-\w]+$/),jH=Ii(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),$H=Ii(/^(?:\w+script|data):/i),XH=Ii(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),KH=Ii(/^html$/i),ZH=function(){return typeof window>"u"?null:window},QH=function(e,r){if(Ha(e)!=="object"||typeof e.createPolicy!="function")return null;var n=null,i="data-tt-policy-suffix";r.currentScript&&r.currentScript.hasAttribute(i)&&(n=r.currentScript.getAttribute(i));var a="dompurify"+(n?"#"+n:"");try{return e.createPolicy(a,{createHTML:function(o){return o},createScriptURL:function(o){return o}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}};function Vk(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ZH(),e=function(st){return Vk(st)};if(e.version="2.4.0",e.removed=[],!t||!t.document||t.document.nodeType!==9)return e.isSupported=!1,e;var r=t.document,n=t.document,i=t.DocumentFragment,a=t.HTMLTemplateElement,s=t.Node,o=t.Element,l=t.NodeFilter,u=t.NamedNodeMap,h=u===void 0?t.NamedNodeMap||t.MozNamedAttrMap:u,d=t.HTMLFormElement,f=t.DOMParser,p=t.trustedTypes,m=o.prototype,_=Mf(m,"cloneNode"),y=Mf(m,"nextSibling"),b=Mf(m,"childNodes"),x=Mf(m,"parentNode");if(typeof a=="function"){var k=n.createElement("template");k.content&&k.content.ownerDocument&&(n=k.content.ownerDocument)}var T=QH(p,r),C=T?T.createHTML(""):"",M=n,S=M.implementation,R=M.createNodeIterator,A=M.createDocumentFragment,L=M.getElementsByTagName,v=r.importNode,B={};try{B=Fs(n).documentMode?n.documentMode:{}}catch{}var w={};e.isSupported=typeof x=="function"&&S&&typeof S.createHTMLDocument<"u"&&B!==9;var D=UH,N=WH,z=HH,X=GH,ct=$H,J=XH,Y=jH,$=null,lt=Me({},[].concat(ni(Ok),ni(Hp),ni(Gp),ni(jp),ni(Fk))),ut=null,W=Me({},[].concat(ni(Pk),ni($p),ni(qk),ni(Lf))),tt=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),K=null,it=null,Z=!0,V=!0,Q=!1,q=!1,U=!1,F=!1,j=!1,P=!1,et=!1,at=!1,It=!0,Lt=!1,Rt="user-content-",Ct=!0,pt=!1,mt={},vt=null,Tt=Me({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),ft=null,le=Me({},["audio","video","img","source","image","track"]),Dt=null,Gt=Me({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),$t="http://www.w3.org/1998/Math/MathML",Qt="http://www.w3.org/2000/svg",we="http://www.w3.org/1999/xhtml",jt=we,Ft=!1,zt,wt=["application/xhtml+xml","text/html"],bt="text/html",Et,kt=null,Ut=n.createElement("form"),gt=function(st){return st instanceof RegExp||st instanceof Function},he=function(st){kt&&kt===st||((!st||Ha(st)!=="object")&&(st={}),st=Fs(st),zt=wt.indexOf(st.PARSER_MEDIA_TYPE)===-1?zt=bt:zt=st.PARSER_MEDIA_TYPE,Et=zt==="application/xhtml+xml"?function(At){return At}:Af,$="ALLOWED_TAGS"in st?Me({},st.ALLOWED_TAGS,Et):lt,ut="ALLOWED_ATTR"in st?Me({},st.ALLOWED_ATTR,Et):W,Dt="ADD_URI_SAFE_ATTR"in st?Me(Fs(Gt),st.ADD_URI_SAFE_ATTR,Et):Gt,ft="ADD_DATA_URI_TAGS"in st?Me(Fs(le),st.ADD_DATA_URI_TAGS,Et):le,vt="FORBID_CONTENTS"in st?Me({},st.FORBID_CONTENTS,Et):Tt,K="FORBID_TAGS"in st?Me({},st.FORBID_TAGS,Et):{},it="FORBID_ATTR"in st?Me({},st.FORBID_ATTR,Et):{},mt="USE_PROFILES"in st?st.USE_PROFILES:!1,Z=st.ALLOW_ARIA_ATTR!==!1,V=st.ALLOW_DATA_ATTR!==!1,Q=st.ALLOW_UNKNOWN_PROTOCOLS||!1,q=st.SAFE_FOR_TEMPLATES||!1,U=st.WHOLE_DOCUMENT||!1,P=st.RETURN_DOM||!1,et=st.RETURN_DOM_FRAGMENT||!1,at=st.RETURN_TRUSTED_TYPE||!1,j=st.FORCE_BODY||!1,It=st.SANITIZE_DOM!==!1,Lt=st.SANITIZE_NAMED_PROPS||!1,Ct=st.KEEP_CONTENT!==!1,pt=st.IN_PLACE||!1,Y=st.ALLOWED_URI_REGEXP||Y,jt=st.NAMESPACE||we,st.CUSTOM_ELEMENT_HANDLING&>(st.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(tt.tagNameCheck=st.CUSTOM_ELEMENT_HANDLING.tagNameCheck),st.CUSTOM_ELEMENT_HANDLING&>(st.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(tt.attributeNameCheck=st.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),st.CUSTOM_ELEMENT_HANDLING&&typeof st.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(tt.allowCustomizedBuiltInElements=st.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),q&&(V=!1),et&&(P=!0),mt&&($=Me({},ni(Fk)),ut=[],mt.html===!0&&(Me($,Ok),Me(ut,Pk)),mt.svg===!0&&(Me($,Hp),Me(ut,$p),Me(ut,Lf)),mt.svgFilters===!0&&(Me($,Gp),Me(ut,$p),Me(ut,Lf)),mt.mathMl===!0&&(Me($,jp),Me(ut,qk),Me(ut,Lf))),st.ADD_TAGS&&($===lt&&($=Fs($)),Me($,st.ADD_TAGS,Et)),st.ADD_ATTR&&(ut===W&&(ut=Fs(ut)),Me(ut,st.ADD_ATTR,Et)),st.ADD_URI_SAFE_ATTR&&Me(Dt,st.ADD_URI_SAFE_ATTR,Et),st.FORBID_CONTENTS&&(vt===Tt&&(vt=Fs(vt)),Me(vt,st.FORBID_CONTENTS,Et)),Ct&&($["#text"]=!0),U&&Me($,["html","head","body"]),$.table&&(Me($,["tbody"]),delete K.tbody),sn&&sn(st),kt=st)},yt=Me({},["mi","mo","mn","ms","mtext"]),ne=Me({},["foreignobject","desc","title","annotation-xml"]),ve=Me({},["title","style","font","a","script"]),ye=Me({},Hp);Me(ye,Gp),Me(ye,zH);var be=Me({},jp);Me(be,YH);var Te=function(st){var At=x(st);(!At||!At.tagName)&&(At={namespaceURI:we,tagName:"template"});var Nt=Af(st.tagName),Jt=Af(At.tagName);return st.namespaceURI===Qt?At.namespaceURI===we?Nt==="svg":At.namespaceURI===$t?Nt==="svg"&&(Jt==="annotation-xml"||yt[Jt]):Boolean(ye[Nt]):st.namespaceURI===$t?At.namespaceURI===we?Nt==="math":At.namespaceURI===Qt?Nt==="math"&&ne[Jt]:Boolean(be[Nt]):st.namespaceURI===we?At.namespaceURI===Qt&&!ne[Jt]||At.namespaceURI===$t&&!yt[Jt]?!1:!be[Nt]&&(ve[Nt]||!ye[Nt]):!1},Wt=function(st){Tc(e.removed,{element:st});try{st.parentNode.removeChild(st)}catch{try{st.outerHTML=C}catch{st.remove()}}},se=function(st,At){try{Tc(e.removed,{attribute:At.getAttributeNode(st),from:At})}catch{Tc(e.removed,{attribute:null,from:At})}if(At.removeAttribute(st),st==="is"&&!ut[st])if(P||et)try{Wt(At)}catch{}else try{At.setAttribute(st,"")}catch{}},me=function(st){var At,Nt;if(j)st=""+st;else{var Jt=FH(st,/^[\r\n\t ]+/);Nt=Jt&&Jt[0]}zt==="application/xhtml+xml"&&(st=''+st+"");var ze=T?T.createHTML(st):st;if(jt===we)try{At=new f().parseFromString(ze,zt)}catch{}if(!At||!At.documentElement){At=S.createDocument(jt,"template",null);try{At.documentElement.innerHTML=Ft?"":ze}catch{}}var Pe=At.body||At.documentElement;return st&&Nt&&Pe.insertBefore(n.createTextNode(Nt),Pe.childNodes[0]||null),jt===we?L.call(At,U?"html":"body")[0]:U?At.documentElement:Pe},ue=function(st){return R.call(st.ownerDocument||st,st,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT,null,!1)},_a=function(st){return st instanceof d&&(typeof st.nodeName!="string"||typeof st.textContent!="string"||typeof st.removeChild!="function"||!(st.attributes instanceof h)||typeof st.removeAttribute!="function"||typeof st.setAttribute!="function"||typeof st.namespaceURI!="string"||typeof st.insertBefore!="function")},Hr=function(st){return Ha(s)==="object"?st instanceof s:st&&Ha(st)==="object"&&typeof st.nodeType=="number"&&typeof st.nodeName=="string"},Ie=function(st,At,Nt){!w[st]||OH(w[st],function(Jt){Jt.call(e,At,Nt,kt)})},oe=function(st){var At;if(Ie("beforeSanitizeElements",st,null),_a(st)||on(/[\u0080-\uFFFF]/,st.nodeName))return Wt(st),!0;var Nt=Et(st.nodeName);if(Ie("uponSanitizeElement",st,{tagName:Nt,allowedTags:$}),st.hasChildNodes()&&!Hr(st.firstElementChild)&&(!Hr(st.content)||!Hr(st.content.firstElementChild))&&on(/<[/\w]/g,st.innerHTML)&&on(/<[/\w]/g,st.textContent)||Nt==="select"&&on(/
  • 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 KZW7Lh*Zl{xmaf16 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Math-BoldItalic.woff b/docs/smartchart/katex/fonts/KaTeX_Math-BoldItalic.woff new file mode 100644 index 0000000000000000000000000000000000000000..87d4f223eaad873324b3e0d42a9a0cf211929ed6 GIT binary patch literal 22324 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 S)VDhlcw(sl0RRF2{{RnpDA*?e literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Math-BoldItalic.woff2 b/docs/smartchart/katex/fonts/KaTeX_Math-BoldItalic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..83b49962aa8353a7eb7cdea57fe843af4dc06f88 GIT binary patch literal 19720 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 bXssLhNj(c?!93G5;NEIzo9EzaliuzI?ubzb literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Math-Italic.ttf b/docs/smartchart/katex/fonts/KaTeX_Math-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9c38359cca652bf7fc7e7f9581df11e3267a375a GIT binary patch literal 40992 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 AJpcdz literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Math-Italic.woff b/docs/smartchart/katex/fonts/KaTeX_Math-Italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..959746ef56fb302f4f8381cd199acb54ab7db0ed GIT binary patch literal 22844 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 Ocw(sl0RRF2{{RmnPtGy` literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_Math-Italic.woff2 b/docs/smartchart/katex/fonts/KaTeX_Math-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e3ea522a6a2da7b5bfcde8aa4cc4825593e3f857 GIT binary patch literal 20096 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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_SansSerif-Bold.woff b/docs/smartchart/katex/fonts/KaTeX_SansSerif-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..f0d6ea739b8405ce37eab96c71feb4b0091503f4 GIT binary patch literal 18516 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 literal 0 HcmV?d00001 diff --git a/docs/smartchart/katex/fonts/KaTeX_SansSerif-Bold.woff2 b/docs/smartchart/katex/fonts/KaTeX_SansSerif-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4cf8f146967e1243ebfd1eab7ff9c596be939f2a GIT binary patch literal 15732 zcmV-)J&VG3Pew8T0RR9106la74gdfE0E83(06iH10RR9100000000000000000000 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