Browse Source

feat:first commit;

fuyang
YOU 11 months ago
commit
4f355bb766
  1. 3
      .browserslistrc
  2. 16
      .editorconfig
  3. 8
      .env.development
  4. 5
      .env.production
  5. 3
      .env.production.sit
  6. 3
      .env.production.uat
  7. 28
      .eslintrc.js
  8. 23
      .gitignore
  9. 22
      .prettierrc
  10. 13
      Dockerfile
  11. 125
      README.md
  12. 3
      babel.config.js
  13. 14
      docker-entrypoint.sh
  14. 63
      index.html
  15. 103
      package.json
  16. 9073
      pnpm-lock.yaml
  17. 4
      public/assets-equipment/docker_enviroment.js
  18. 1
      public/assets-equipment/images/company-name-phone.svg
  19. 21
      public/assets-equipment/images/logo-company-name.svg
  20. 1
      public/assets-equipment/images/logo-dark.svg
  21. 1
      public/assets-equipment/images/logo.svg
  22. 10
      public/assets-equipment/images/logo_login.svg
  23. 102
      public/assets-equipment/images/logo_text.svg
  24. 52
      public/assets-equipment/images/map_location.svg
  25. 3
      public/cdn/0.10.1@html2pdf.bundle.min.js
  26. BIN
      public/cdn/1.glb
  27. 2559
      public/cdn/320581.json
  28. 648
      public/cdn/A_11001514_1.svg
  29. 40
      public/cdn/EasyPlayer-element.min.js
  30. 32510
      public/cdn/G_2C_A.svg
  31. BIN
      public/cdn/Nitrogen.glb
  32. BIN
      public/cdn/PANGMENZHENGDAO.ttf
  33. 100
      public/cdn/RoomEnvironment.js
  34. BIN
      public/cdn/SourceHanSans-ExtraLight.otf
  35. BIN
      public/cdn/arrow.glb
  36. 146
      public/cdn/carbon-assets.html
  37. 26050
      public/cdn/carbon_energy_center.svg
  38. 26587
      public/cdn/carbon_energy_center1.svg
  39. 3567
      public/cdn/carbon_life_cycle.svg
  40. 890
      public/cdn/carbon_month_select.svg
  41. 1435
      public/cdn/carbon_month_select1.svg
  42. 3687
      public/cdn/carbon_month_select2.svg
  43. 15815
      public/cdn/carbon_step_device.svg
  44. 357
      public/cdn/dashboard.svg
  45. 3123
      public/cdn/data-center.svg
  46. BIN
      public/cdn/down.png
  47. 1
      public/cdn/echarts_2.0.8-gl.min.js
  48. 45
      public/cdn/echarts_5.4.3.min.js
  49. 232
      public/cdn/echarts_tooltip_loop.js
  50. 890
      public/cdn/es-module-shims.wasm.js
  51. 18547
      public/cdn/first-look-cs.svg
  52. 21259
      public/cdn/first-look-metering.svg
  53. 17
      public/cdn/first.svg
  54. 6
      public/cdn/fullcalendar@6.1.5.index.global.min.js
  55. BIN
      public/cdn/guide_1.mp4
  56. BIN
      public/cdn/guide_1_step.mp4
  57. BIN
      public/cdn/guide_2.mp4
  58. BIN
      public/cdn/guide_2_step.mp4
  59. BIN
      public/cdn/guide_3.mp4
  60. BIN
      public/cdn/guide_3_step.mp4
  61. 469
      public/cdn/highcharts-3d@9.2.2.js
  62. 2558
      public/cdn/highcharts@9.2.2.js
  63. 408
      public/cdn/infographic.js
  64. BIN
      public/cdn/label-bg.png
  65. BIN
      public/cdn/lighting.png
  66. 20289
      public/cdn/login-animate.svg
  67. 10
      public/cdn/login-bg.svg
  68. 45
      public/cdn/loss.svg
  69. 441
      public/cdn/macarons.js
  70. 373
      public/cdn/metering_tower.svg
  71. 14592
      public/cdn/metering_tower1.svg
  72. BIN
      public/cdn/modelDraco.glb
  73. 141
      public/cdn/pillar_active.svg
  74. 113
      public/cdn/pillar_curr.svg
  75. 127
      public/cdn/pillar_curr_active.svg
  76. 103
      public/cdn/pillar_prev.svg
  77. 124
      public/cdn/pillar_prev_active.svg
  78. 3
      public/cdn/pinyin-match-master/.babelrc
  79. 12
      public/cdn/pinyin-match-master/.gitignore
  80. 1
      public/cdn/pinyin-match-master/.npmignore
  81. 43
      public/cdn/pinyin-match-master/CHANGELOG.md
  82. 37
      public/cdn/pinyin-match-master/LICENSE
  83. 106
      public/cdn/pinyin-match-master/README.md
  84. 1
      public/cdn/pinyin-match-master/dist/main.js
  85. 1
      public/cdn/pinyin-match-master/dist/traditional.js
  86. 1
      public/cdn/pinyin-match-master/es/main.js
  87. 1
      public/cdn/pinyin-match-master/es/traditional.js
  88. 6
      public/cdn/pinyin-match-master/index.d.ts
  89. 16
      public/cdn/pinyin-match-master/index.html
  90. 1
      public/cdn/pinyin-match-master/lib/main.js
  91. 1
      public/cdn/pinyin-match-master/lib/traditional.js
  92. 38
      public/cdn/pinyin-match-master/package.json
  93. 57
      public/cdn/pinyin-match-master/rollup.config.js
  94. 196
      public/cdn/pinyin-match-master/src/core.js
  95. 7
      public/cdn/pinyin-match-master/src/simplified.js
  96. 6
      public/cdn/pinyin-match-master/src/simplified_dict.js
  97. 7
      public/cdn/pinyin-match-master/src/traditional.js
  98. 6
      public/cdn/pinyin-match-master/src/traditional_dict.js
  99. 89
      public/cdn/pinyin-match-master/test/index.test.js
  100. 8
      public/cdn/pinyin-match-master/tsconfig.json

3
.browserslistrc

@ -0,0 +1,3 @@
> 1%
last 2 versions
not dead

16
.editorconfig

@ -0,0 +1,16 @@
# http://editorconfig.org
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
[Makefile]
indent_style = tab

8
.env.development

@ -0,0 +1,8 @@
#开发环境中的后端主服务地址
VITE_APP_API=http://192.168.8.108
#开发环境中的后端主服务端口
VITE_APP_API_PORT=2020
#http对应ws,如果是https则对应wss
VITE_APP_SOCKET=ws://192.168.8.108:2020/thing/websocket
#开发环境中的静态服务器须配置端口
VITE_STATIC_RESOURCES_PORT=8012

5
.env.production

@ -0,0 +1,5 @@
VITE_APP_API=
#http对应ws,如果是https则对应wss
VITE_APP_SOCKET=/thing
VITE_APP_NEW_OPEN_WINDOW=http://tx.lrdaiot.cn
VITE_APP_NEW_ORIGIN_WINDOW=http://tx.lrdaiot.cn:661

3
.env.production.sit

@ -0,0 +1,3 @@
VITE_APP_API=
#http对应ws,如果是https则对应wss
VITE_APP_SOCKET=ws://192.168.188.244:8080/thing/websocket

3
.env.production.uat

@ -0,0 +1,3 @@
VITE_APP_API=
#http对应ws,如果是https则对应wss
VITE_APP_SOCKET=/thing/websocket

28
.eslintrc.js

@ -0,0 +1,28 @@
module.exports = {
root: true,
env: {
node: true,
},
extends: [
'plugin:vue/vue3-essential',
'eslint:recommended',
'@vue/typescript/recommended',
'@vue/prettier',
'@vue/prettier/@typescript-eslint',
],
parserOptions: {
ecmaVersion: 2020,
ecmaFeatures: {
jsx: true,
},
},
rules: {
'no-console': 'off',
'no-debugger': 'warn',
'vue/no-unused-components': 'off',
'@typescript-eslint/no-explicit-any': ['off'],
'@typescript-eslint/ban-ts-comment': ['off'],
'@typescript-eslint/no-var-requires': 0,
'vue/no-unused-vars': 'off',
},
};

23
.gitignore

@ -0,0 +1,23 @@
.DS_Store
node_modules
/dist
package-lock.json
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

22
.prettierrc

@ -0,0 +1,22 @@
{
"singleQuote": true,
"semi": true,
"trailingComma": "all",
"printWidth": 100,
"arrowParens": "always",
"tabWidth": 2,
"endOfLine": "auto",
"overrides": [
{
"files": ".prettierrc",
"options": { "parser": "json" }
},
{
"files": "*.vue",
"options": {
"parser": "vue",
"printWidth": 300
}
}
]
}

13
Dockerfile

@ -0,0 +1,13 @@
FROM nginx:stable-alpine
WORKDIR /usr/share/nginx/html
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
COPY ./docker-entrypoint.sh /docker-entrypoint.d/my.sh
RUN chmod +x /docker-entrypoint.d/my.sh
COPY ./dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

125
README.md

@ -0,0 +1,125 @@
#### 2022-07-22 变更
```
1. 物管理-物属性extendData字段判空处理。
2. 物管理-物计算文案字段以及ui布局调整。
3. 告警管理页面布局开发。
4. 中机首页模型更换以及增加动画效果。
```
#### 2022-07-21 变更
```
1. 中机首页模型压缩体积。
2. 中机首页看板设备状态api调整。
```
#### 2022-07-20 变更
```
1. 中机首页看板异步加载修复。
2. 中机 首页看板bug修复。
```
#### 2022-07-19 变更
```
1. 中机看板联调及优化。
```
#### 2022-07-18 变更
```
1. 中机首页模型标注开发。
```
#### 2022-07-15 变更
```
1. 中机首页看板前端界面开发完成,待联调。
2. 中机设备管理属性新增/编辑弹框。
3. 系统设置-文件上传对接字段。
```
#### 2022-07-14 变更
```
1. 数据集交互优化。
2. 优化上传图片组件。
3. 系统设置-文件上传对接字段。
4. 登录页新增通过接口拿到登录框图片链接。
5. 设备首页看板界面开发。
```
#### 2022-07-13 变更
```
1. 设备控制-协议管理抽屉框标题修改也显示新增的bug。
2. 消息中心-消息模板类型格式问题修复。
3. 数据处理-规则链修复自动登录问题。
```
#### 2022-07-12 变更
```
1. 设备管理-中机首页模型加载。
2. 增加退出登录时重置title和icon的功能。
3. 数据集修复bug 6046 6047 6048 6052 6057。
```
#### 2022-07-11 变更
```
1. 设备管理-看板和设置等页面初始化。
2. 推送设置-提醒人字段在全部推送情况下不为必填项。
```
#### 2022-07-08 变更
```
1. 设备控制-计算引擎回显bug修复。
2. 企业管理-企业管理筛选全部类型下拉无数据的问题。
3. 设备控制-设备模板描述字段bug。
4. 设备控制-协议管理表格内容居中。
5. 设备控制-设备管理-通讯协议调试提示字段放大。
```
#### 2022-07-07 变更
```
1. 缓存设置-修改物页面中点击查询报错修复。
2. 缓存设置-勾选的属性没有被添加。
3. 控制模板-指令导入,存在重复指令应无法导入,且导入后提示报错修复。
4. 租户配置新增表单置空修复。
5. 物管里-物属性/物标签修改判断页面数据数组的逻辑。
6. 物管里-物分组/物属性/物标签/组管理优化导入逻辑。
7. 修改utilService判断对象逻辑。
8. 完善上传文件代码抛错逻辑。
9. 配置中心-能源品种对接导入导出。
10. 配置中心-属性设置对接导入导出。
11. 新增导入JSON组件传入url并手动上传功能。
12. 设备控制-设备控制调试页面去掉取消按钮。
13. 设备控制-设备控制调试表单增计算模块字段加校验。
14. 隐藏主题设置入口。
15. 物管理-物属性弹框去掉回车提交事件,避免误操作。
16. 设备控制-通讯协议布局和设计图不一致的问题。
```
#### 2022-07-06 变更
```
1. 企业管理-企业分组状态文案修改(正常 => 启用)。
2. 企业管理-租户账户状态文案修改(正常 => 启用)。
3. 物管理-物分组弹框打开重置相关数据;切换分页保存table(dataListSelections)所选数据。
4. 物管理-物分组中el-popover交互修改,支持点击空白处隐藏该组件。
5. 企业管理-企业账户状态更换为按钮形式。
6. 企业管理-租户账户状态更换为按钮形式并优化了企业账户按钮的代码。
7. 设备管理-设备清单添加异常设备数。
8. 设备清单-设备属性详情图表和列表开发并联调完成。
9. 物管理-物实体状态时间格式化。
10. 计算模块api联调更新,设备管理-设备清单属性详情api调整。
11. 优化并修复租户配置bug。
12. 通讯协议-新增页面点击保存关闭抽屉。
13. 通讯协议-调试中不可点击model外关闭 按钮更换字段(测试-订阅 测试-推送 取消-退出调试)。
14. 设备控制-控制模板描述添加字数限制。
15. 设备控制-通讯设备描述字段添加字数限制。
16. 物管里-物管里,数据缓存-物管里去除多余的按钮。
17. 设备控制-通讯协议点击调试按钮 点击model外不关闭的bug。
18. 设备控制-控制模板-指令添加描述字段。
19. 物管理-物关系详情页面按钮替换成图片。
20. 物管理-选择物名称弹框table物名称字段改为“名称-code”。
```

3
babel.config.js

@ -0,0 +1,3 @@
module.exports = {
presets: ["@vue/cli-plugin-babel/preset"],
};

14
docker-entrypoint.sh

@ -0,0 +1,14 @@
#!/bin/sh
set -xe
: "${COMPANY_NAME_SHORT?enviroment is required}"
: "${IFRAME_BASE_URL?enviroment is required}"
set +x
COMPANY_NAME_SHORT=$COMPANY_NAME_SHORT
IFRAME_BASE_URL=$IFRAME_BASE_URL
sed -i \
-e "s/DOCKER_ENV_COMPANY_NAME_SHORT_REPLACE/${COMPANY_NAME_SHORT/\//\\\//}/g" \
-e "s+DOCKER_ENV_IFRAME_BASE_URL_REPLACE+$IFRAME_BASE_URL+g" \
/usr/share/nginx/html/assets-equipment/docker_enviroment.js

63
index.html

@ -0,0 +1,63 @@
<!DOCTYPE html>
<html lang="en" class="dark">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />-->
<title>
<%= title %>
</title>
<style>
/*自定义字体*/
@font-face {
font-family: 'zhongjiFont';
src: url('./cdn/PANGMENZHENGDAO.ttf') format('truetype');
}
@font-face {
font-family: 'zhongjiEnglishFont';
src: url('./cdn/SourceHanSans-ExtraLight.otf') format('truetype');
}
</style>
<script>
//全局钩子
window.SITE_CONFIG = {
//api
apiURL: '<%=apiURL%>',
// WebSocket地址
socketURL: '<%=socketURL%>',
};
</script>
<script
src="https://webapi.amap.com/maps?v=2.0&key=26f862ab7bfe88ee39393f57f65b698c&plugin=AMap.AutoComplete,AMap.DistrictSearch,AMap.Heatmap,AMap.PlaceSearch,"></script>
</head>
<body>
<link rel="stylesheet/less" type="text/css" href="/cdn/theme/index.less" />
<!-- <link rel="stylesheet/less" type="text/css" href="/cdn/theme/mobile.less" />-->
<script src="/cdn/theme/less.js" type="text/javascript"></script>
<script src="/cdn/echarts_5.4.3.min.js" type="text/javascript"></script>
<script src="/cdn/echarts_2.0.8-gl.min.js" type="text/javascript"></script>
<script src="/cdn/macarons.js" type="text/javascript"></script>
<script src="/cdn/infographic.js" type="text/javascript"></script>
<script src="/cdn/echarts_tooltip_loop.js" type="text/javascript"></script>
<script src="/cdn/fullcalendar@6.1.5.index.global.min.js" type="text/javascript"></script>
<script src="/cdn/0.10.1@html2pdf.bundle.min.js" type="text/javascript"></script>
<script src="/cdn/EasyPlayer-element.min.js"></script>
<script src="/cdn/pinyin-match-master/dist/main.js" type="text/javascript"></script>
<script src="/cdn/highcharts@9.2.2.js"></script>
<script src="/cdn/highcharts-3d@9.2.2.js"></script>
<script src="https://cdn.amcharts.com/lib/4/core.js"></script>
<script src="https://cdn.amcharts.com/lib/4/charts.js"></script>
<script src="https://cdn.amcharts.com/lib/4/themes/animated.js"></script>
<div id="app"></div>
<script type="module" src="./src/main.ts"></script>
</body>
</html>

103
package.json

@ -0,0 +1,103 @@
{
"name": "security-enterprise-tenant-admin",
"version": "3.2.0",
"private": true,
"scripts": {
"dev": "vite",
"build": "npm run build:prod",
"build:prod": "vite build --mode production",
"build:sit": "vue-tsc --noEmit && vite build --mode production.sit",
"build:uat": "vue-tsc --noEmit && vite build --mode production.uat",
"serve": "npm run build && vite preview",
"lint": "eslint \"src/**/*.{vue,ts}\" --fix"
},
"gitHooks": {
"pre-commit": "lint-staged"
},
"lint-staged": {
"src/**/*.{ts,vue}": [
"git add"
]
},
"dependencies": {
"@antv/layout": "0.3.24",
"@antv/x6": "^2.0.0",
"@antv/x6-plugin-clipboard": "^2.0.0",
"@antv/x6-plugin-dnd": "^2.0.0",
"@antv/x6-plugin-export": "^2.0.0",
"@antv/x6-plugin-history": "^2.0.0",
"@antv/x6-plugin-keyboard": "^2.0.0",
"@antv/x6-plugin-minimap": "^2.0.0",
"@antv/x6-plugin-scroller": "^2.0.0",
"@antv/x6-plugin-selection": "^2.0.0",
"@antv/x6-plugin-snapline": "^2.0.0",
"@antv/x6-plugin-stencil": "^2.0.0",
"@antv/x6-plugin-transform": "^2.0.0",
"@antv/x6-react-components": "^2.0.0",
"@antv/x6-react-shape": "^2.0.0",
"@antv/x6-vue-shape": "^2.0.0",
"@element-plus/icons-vue": "^1.1.3",
"@king-design/vue": "^2.0.13",
"@tinymce/tinymce-vue": "4.0.4",
"@vueuse/core": "^9.3.0",
"animate.css": "^4.1.1",
"axios": "^0.21.1",
"classnames": "^2.3.1",
"core-js": "^3.14.0",
"dayjs": "^1.11.12",
"echarts": "5.2.2",
"echarts-liquidfill": "^3.1.0",
"element-plus": "2.3.8",
"file-saver": "^2.0.5",
"gsap": "^3.12.2",
"highcharts": "^11.2.0",
"html2canvas": "^1.4.1",
"jspdf": "^2.5.1",
"lodash": "^4.17.21",
"mitt": "^2.1.0",
"moment": "^2.29.3",
"monaco-editor": "^0.25.2",
"nprogress": "^0.2.0",
"qs": "^6.10.1",
"quill": "^1.3.7",
"screenfull": "^6.0.1",
"sortablejs": "^1.13.0",
"vanilla-jsoneditor": "^0.14.4",
"vue": "^3.2.36",
"vue-echarts": "^6.0.0",
"vue-i18n": "9.1.7",
"vue-router": "4.0.11",
"vuex": "4.0.2",
"vxe-table": "4.0.23",
"xe-utils": "3.3.0"
},
"devDependencies": {
"@types/lodash": "^4.14.172",
"@types/nprogress": "^0.2.0",
"@types/qs": "^6.9.6",
"@types/quill": "^2.0.8",
"@types/sortablejs": "^1.10.6",
"@typescript-eslint/eslint-plugin": "^5.12.1",
"@typescript-eslint/parser": "^5.12.1",
"@vitejs/plugin-vue": "2.3.2",
"@vue/compiler-sfc": "3.2.31",
"@vue/eslint-config-prettier": "^6.0.0",
"@vue/eslint-config-typescript": "^7.0.0",
"eslint": "^7.28.0",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-vue": "^7.11.1",
"less": "^4.1.1",
"less-loader": "^10.0.0",
"lint-staged": "^11.0.0",
"prettier": "^2.3.1",
"typescript": "4.4",
"vite": "4.4.4",
"vite-plugin-eslint": "1.3.0",
"vite-plugin-html": "^2.1.1",
"vite-plugin-pwa": "^0.11.5",
"vite-plugin-svg-icons": "^1.0.5",
"vite-tsconfig-paths": "3.4.0",
"vue-tsc": "0.31.4",
"yorkie": "^2.0.0"
}
}

9073
pnpm-lock.yaml
File diff suppressed because it is too large
View File

4
public/assets-equipment/docker_enviroment.js

@ -0,0 +1,4 @@
window.DOCKER_ENVIROMENT = {
COMPANY_NAME_SHORT: 'DOCKER_ENV_COMPANY_NAME_SHORT_REPLACE',
IFRAME_BASE_URL: 'DOCKER_ENV_IFRAME_BASE_URL_REPLACE',
}

1
public/assets-equipment/images/company-name-phone.svg
File diff suppressed because it is too large
View File

21
public/assets-equipment/images/logo-company-name.svg

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="340" height="38" version="1.1" viewBox="0 0 89.958 10.054" xmlns="http://www.w3.org/2000/svg">
<defs>
<style>.cls-1{fill:#369afe;}.cls-2{fill:#fff;}</style>
</defs>
<g transform="matrix(.032005 0 0 .032005 .93506 .11935)" data-name="logo svg866">
<path class="cls-1" d="m246.9 224.33-14.8-37.8h-48.4l9.8 33.9c-20.5-1.7-38.4-3.7-45.8-5.6l-0.8-42.8a108 108 0 0 0 29.8 5.4c36.6 0.3 87.5-26.9 89.4-88.7-2.5-61.5-51.8-90.9-94.2-88.6a95.46 95.46 0 0 0-18.4 3l0.8-3h-48.4l-72.8 224.6c-19.1 1.1-33.1 1.8-33.1 1.8h32.5l-25 77.1h60.2l21.9-77.1h49.6l-1.4 76.2h11.5l-1.6-76.2h47.4l22.8 78.2h60.2l-30.5-78h39.8c0.1-0.1-17.6-1-40.5-2.4zm-53-140.2c-0.7 21.7-18.4 31.2-31.4 31.2-17.3-0.7-30.5-11.9-31.1-31.6 0-6 4.8-28.8 29.4-30.7 14.9-0.8 32.2 9.5 33.1 31.1zm-102.4 136.7 20.3-70.9a82.94 82.94 0 0 0 28.8 19.8l-0.8 45.4c-8.7 2.1-27.4 4-48.3 5.7z"/>
<path class="cls-2" d="m434.4 162 14.1 8.5a431.64 431.64 0 0 1-32.7 50.9c-3.8-3-8.1-6.3-13.1-9.9a388.58 388.58 0 0 0 31.7-49.5zm100.8-99h16.2v23.8h51.1v14.3h-51.1v19.2h-16.2v-19.2h-62.4v19.2h-15.8v-19.2h-52.3v-14.27h52.3v-23.83h15.8v23.8h62.4zm-117.2 73.93h61.3c0.4-7.1 0.6-14.7 0.5-22.6h16.8c-0.1 7.9-0.4 15.5-0.9 22.6h68.6c-0.5 39-1.5 67.9-3 86.4q-3.3 33.9-36.3 33.9c-11.8 0-23.9-0.3-36.2-0.8-0.5-5.1-1.5-11.4-2.8-18.8h0.6a318 318 0 0 0 36.5 2.4c13.1 0 20.4-7.1 22-21.4 1.3-17.6 2.1-39.6 2.2-65.8h-53.1q-3.9 77.4-75.2 110.5c-3.2-4.8-6.7-9.5-10.3-13.9q63-26.85 69.3-96.5h-60zm148.9 29.7 16.4-6.3a500.11 500.11 0 0 1 22 53.7l-16.2 6.7q-11.4-30.73-22.2-54.1z"/>
<path class="cls-2" d="m618.2 246.23q83.25-37 89.9-111.3h-86.2v-15.8h86.9c0.3-18.1 0.5-36.3 0.5-54.7h17.6c0 18.1-0.2 36.3-0.5 54.7h89.6v15.8h-89.9q14.25 80.7 94.1 106.4a158 158 0 0 0-15.3 16.4q-65.7-26.4-85.9-94.2-15.75 61.35-88.2 98.3-4.2-5.55-12.6-15.6z"/>
<path class="cls-2" d="m835.3 220.73c9-1.5 18.5-3 28.5-4.6v-58.6h-25v-14.1h25v-48.3h-27.5v-14.13h68.3v14.1h-25.9v48.3h25.8v14.1h-25.8v55.9c9.3-1.6 18.9-3.4 28.9-5.3a82.54 82.54 0 0 0-0.2 14.9c-27.2 4.8-50.4 9.1-69.7 12.7zm185-38 8.9 11.7q-16.5 10.65-39 24a87.37 87.37 0 0 0 45.4 24 116.7 116.7 0 0 0-9.5 14.5q-54.75-16.35-76.9-81.4h-18.6v64c11.7-5.1 24.3-10.8 37.8-17a134.56 134.56 0 0 0 0.2 16.8q-41.55 18-51.3 23.6l-9.1-13c4.7-3.3 7.1-7.6 7.1-12.9v-150.6h45.6c-3.2-7.4-6.1-13.5-8.5-18.4l13.5-5.4c3.5 7.7 7 15.6 10.5 23.8h42.2v94.5h-14.9v-5.3h-40.6a140.26 140.26 0 0 0 18.2 32.5q20.55-12 39-25.4zm-16.6-82.8h-73.1v24.4h73.1zm0 62.2v-24.6h-73.1v24.6z"/>
<path class="cls-2" d="m1048.1 131.13 10.3-11.5c11.6 7.9 23.1 16.6 34.7 25.9-4.4 4.7-8.3 9.1-11.7 13.1-13.2-11.8-24.3-20.9-33.3-27.5zm5.6 124.6a676.93 676.93 0 0 0 20.8-78.2c5.9 2.5 11.4 4.6 16.4 6.3q-12.45 49-19.4 77.3zm2.2-177.3 10.5-10.7q13.35 10 34.7 28.5c-4.6 4.4-8.6 8.4-12.1 11.9q-20.7-19.65-33.1-29.7zm65.5 184.1h-15.3v-162.8h15.3zm-5.3-189.6 11.3-8.7q12.15 13.35 22.2 25.8l-13.1 9.7c-5.6-8.1-12.4-17.1-20.4-26.8zm13.8 131.9h36.8v-34.1h-31.5v-12.5h31.5v-31.1h-34.5v-12.9h83.6v12.9h-34.5v31.1h31.9v12.5h-31.9v34.1h37.2v12.9h-88.5zm28.6-128.5h83.6v159.9c0 15.8-8.1 23.6-24.2 23.6-7.5 0-16.6-0.1-27.3-0.2-0.7-4.5-1.7-9.6-3-15.6 11.3 0.8 20.1 1.2 26.3 1.2q12.9 0 12.9-11.7v-143.4h-68.3z"/>
<path class="cls-2" d="m1348.3 242.93q56 0.6 116.3-0.8c-2.3 5.4-4.5 10.6-6.7 15.6-36.9 0.5-74.3 0.5-112.3-0.2-22.5-0.3-39.2-7.9-50.1-23-3.9 3.1-11.8 11.7-23.6 25.9l-8.7-17.2c8.4-7.5 16.7-14.9 25-22v-70.5h-23v-14.73h38.8v88.2c9.9 11.93 24.7 18.23 44.3 18.73zm-64.2-177.1q17.85 21.15 30.7 39l-14.1 10.1q-13.35-20.25-29.1-40zm37 46.9h55.7v-47.73h16.2v47.7h63v14.7h-63.4a155.07 155.07 0 0 1-4 27.9 734.85 734.85 0 0 1 66 60l-12.1 13.5a706.86 706.86 0 0 0-58.4-59c-10 26.8-28.7 47.8-56.3 63a110.3 110.3 0 0 0-11.3-13.3q55.5-29.7 60-92.1h-55.3z"/>
<path class="cls-2" d="m1555.1 81a535.19 535.19 0 0 1 31.9 45.8c-5.1 3.5-9.8 6.6-13.9 9.3-2.6-4.7-5.4-9.4-8.4-14.2q-49.35 3.6-79.1 6.6l-6.5-17c5.9-3.2 12.4-9.3 19.6-18.2a335 335 0 0 0 21.8-32.5l16 5.9a562.81 562.81 0 0 1-35.3 45.8c20.2-1.3 38.5-2.6 55-3.9-4.2-6.4-8.8-12.9-13.6-19.7zm-48.8 178.7h-15.8v-119.17h82v95.47c0 14.5-6.7 21.8-20.2 21.8-5.9 0.1-13.5 0.2-22.8 0.2q-1.05-6.3-3-15.3c8.5 0.7 15.3 1 20.4 1 6.6 0 9.9-3.4 9.9-10.3v-16.8h-50.5zm50.5-106.2h-50.5v19.4h50.5zm-50.5 51.1h50.5v-19.6h-50.5zm85.8-42.2h15.8v33.3a442.6 442.6 0 0 0 60-28.1l9.1 13.9a593.32 593.32 0 0 1-69.1 30.8v17.5c0 8.5 3.3 12.7 9.9 12.7h29.7c6.9 0 10.8-3.3 11.9-9.9 0.9-5.9 1.8-14.7 2.4-26.5 5.1 2 10.4 3.9 15.8 5.7-1.1 11.8-2.2 20.8-3.4 26.8-1.8 11.8-10.2 17.8-25.3 17.8h-33.7c-15.3 0-23-7.9-23-23.6zm0.4-98.6h15.8v34.6a429.86 429.86 0 0 0 55.1-26.6l9.1 13.9q-31.5 16-64.2 29.2v11.6c0 9 3.6 13.5 10.7 13.5h25.6c8.5 0 13.3-3.5 14.3-10.5q1.35-8.7 2.4-25.2c5.1 2 10.4 4 15.8 5.9-1.1 10.8-2.2 19.5-3.4 26.3-2 11.7-11.1 17.6-27.3 17.6h-29.5c-16.3 0-24.4-8.1-24.4-24.2z"/>
<path class="cls-2" d="m1703.6 118.13c10.5 7.5 22.3 16.6 35.5 27.1-4.7 5.7-8.6 10-11.5 13.1q-19.35-17.1-34.1-28.7zm13.9 56.4a65 65 0 0 0 14.3 6.9q-8.25 34.35-18.6 78.6l-15.6-5.3c7.9-27.6 14.5-54.4 19.9-80.2zm-5.2-108.3a416 416 0 0 1 32.9 27.3c-4.7 4.6-8.8 8.7-12.1 12.3-11.7-11.6-22.1-21.1-31.1-28.5zm73.1 48.1h26.3c2.9-7.6 5.7-15.5 8.5-23.8h-51.1v58.2q0 79.35-31.1 113.7a98.94 98.94 0 0 0-11.7-12.5q27.9-31.05 27.9-101v-72.1h140.1v13.7h-56.6c-3.7 8.1-7.5 16-11.4 23.8h53.3v82.8h-14.5v-5.3h-26.1v47.5q0 21.6-21 21.6c-4.6 0-10.4-0.1-17.6-0.2-0.7-4-1.6-8.7-2.8-13.9 6.7 0.5 12.6 0.8 17.6 0.8 6.2 0 9.3-3.2 9.3-9.7v-46h-24.4v5.3h-14.5v-82.9zm-18.4 130.5a229.06 229.06 0 0 0 30.5-41.4l12.9 7.9a329.68 329.68 0 0 1-31.5 42.8zm97.9-117.2h-65v18.8h65zm-65 50.9h65v-19.2h-65zm93.9 64.4-12.7 9.7a506 506 0 0 0-31.1-42l11.7-8.3c12.2 14.3 22.9 27.9 32.1 40.6z"/>
<path class="cls-2" d="m1969.9 121c-5.1-6.7-10.7-13.6-16.8-20.6l9.1-6.5h-17.4a158.65 158.65 0 0 1-25.8 26c-2.7-3.2-6-7-10.1-11.3a144.55 144.55 0 0 0 38.6-46.2h17.4a199.44 199.44 0 0 1-11 19h59.3v12.5h-48.5c6.1 5.9 11.8 11.9 17.2 18zm-52.7 1h86.3c-2.4-4.2-5.2-8.9-8.6-14.1l13.9-6.1a196.12 196.12 0 0 1 12.1 20.2h79.8v31.3h-15.5v-18.2h-152.5v18.4h-15.6v-31.5zm22.8 28.1h124.4v48.7h-15.3v-5.1h-93.5v15.3h125.8v52.7h-15.4v-7.7h-110.5v7.9h-15.6v-111.77zm109 12.1h-93.5v19.4h93.5zm17 59h-110.4v19.8h110.5zm-3.8-100.4a246.74 246.74 0 0 0-16.4-20.6l8.8-6.3h-17.1a188.75 188.75 0 0 1-12.3 17.4 90.35 90.35 0 0 0-12.3-9.9q14.1-15.75 23.6-39h17.4c-2.9 6.7-6 13-9.2 19h64.6v12.5h-51.7a233 233 0 0 1 16.6 17.8z"/>
<path class="cls-2" d="m2122.2 228.63c10.4-2.5 20.4-5 30.1-7.5v-61.2h-25.2v-14.1h25.3v-50.5h-27.3v-14.1h69.5v14.1h-27.3v50.5h25.6v14.1h-25.6v57.07c8.9-2.5 17.5-5 25.9-7.5 0.7 6.1 1.4 11.3 2.2 15.8-23 6.2-45.6 12.7-67.6 19.6zm64.2 11.9h63.2v-29.1h-51.5v-14.1h51.5v-26.7h-32.3v7.5h-14.9v-104.2h109.4v104.2h-14.9v-7.5h-32.3v26.7h51.5v14.1h-51.5v29.1h60.4v14.1h-138.5zm30.9-125h32.3v-27.9h-32.3zm0 41.4h32.3v-28.1h-32.3zm79.5-69.3h-32.3v27.9h32.3zm-32.3 69.3h32.3v-28.1h-32.3z"/>
<path class="cls-2" d="m2390.1 201.93 13.1 10.3c-17.2 15.5-35.4 30.4-54.3 44.8q-4.8-5.85-11.1-12.3a405.14 405.14 0 0 0 52.3-42.8zm90.9-55.5c17.2 13.9 34.9 29.1 52.9 45.6q-6.6 6.45-12.3 12.3c-5.6-5.5-11.2-11-17-16.4-18 0.7-36.4 1.6-55.1 2.6v45.4c0 15.3-8.1 23-24.2 23-6.6 0-15.3-0.1-26.1-0.4-0.7-5-1.5-10.5-2.6-16.6q17 1.8 26.1 1.8c7.4 0 11.1-3.6 11.1-10.9v-41.6c-16.4 0.9-33 1.8-49.9 2.8a191.62 191.62 0 0 0-22.8 2.6l-6.7-17.4a105.46 105.46 0 0 0 25.2-7.9q30.9-15.15 57.4-30.5-35.1 2.7-59 4.8a138.24 138.24 0 0 0-15.9 2.2l-6.5-17a76.38 76.38 0 0 0 18.2-7.1 427.69 427.69 0 0 0 50.8-33.4c-23.1 1.4-46.5 2.7-70.2 3.7q-1.5-7.2-3.6-14.1 96.3-3.6 171.1-11.1l3 14.3q-43.8 3.6-89 6.6l8.2 5.8c-21.1 14.1-40.7 26.1-58.6 35.7q45.15-2.55 74.9-4.8c13.5-8.6 25.9-17.3 37.4-26l13.1 10.7q-50.7 36.15-117.7 67.6c26.8-0.9 59.3-2.4 97.4-4.2-6.7-6.2-13.5-12.2-20.3-18.2zm-11.9 66.2 10.3-10.9c17 11.3 35.6 24.9 55.9 40.6l-11.9 13.1c-18.8-15.6-36.9-29.8-54.3-42.8z"/>
<path class="cls-2" d="m2553.5 228c22.4-4.3 45.4-9.2 69.3-14.5-0.5 7-0.8 11.8-0.8 14.5-24.4 5.4-45.6 10.5-63.8 15.4zm26.3-42.4c10.8-1.5 24.6-3.5 41.4-6.1-0.8 5.4-1.5 10.4-2 15q-25.2 3.45-57.8 8.7l-3.2-14.5q12.6-12.9 30-42.1c-14 0.9-24.1 1.6-30.2 2.1l-3.8-13.7q17.7-23.4 38.4-71.5l15.4 6.1q-19.65 38.4-35.8 64.2c8.8-0.1 16.8-0.3 23.8-0.6 4-7.2 8.3-15 12.7-23.4l15.1 6.7c-15.4 26.6-30.1 49.7-44 69.1zm135.8-68q17 22.8 34.7 51.5c-4.7 2.7-9.7 5.7-15 9.1-3.3-5.7-6.6-11.2-9.7-16.5-6.3 0.4-12.7 0.8-19.4 1.1v68.5c0 8.2 3 12.3 9.1 12.3h9.9c6.6 0 10.4-3.4 11.3-10.1a256.41 256.41 0 0 0 2-26.3c4.4 1.9 9.8 3.8 16.1 5.9-1.1 11.7-2.2 20.8-3.4 27.3-1.9 11.7-9 17.6-21.2 17.6h-17.4c-14.7 0-22-8.4-22-25.2v-69c-7.5 0.4-15.3 0.9-23.4 1.4q-1.65 44-11.3 61.3c-7.7 14.8-22 27-43 36.8-3-4.2-6.4-8.7-10.3-13.5 19.5-7.9 32.6-18.4 39.2-31.3 6.1-10.3 9.3-27.7 9.8-52.2-2.8 0.2-5.6 0.4-8.4 0.5a130 130 0 0 0-16.2 2.6l-6.9-15.8a36.47 36.47 0 0 0 13.9-9.7 355.41 355.41 0 0 0 28.5-39.4h-44v-14.27h64.4c-5.1-7.7-9.8-14.6-14.3-20.6l13.3-8.3c5.1 6.3 10.8 13.9 17.2 22.6l-9.6 6.3h61.5v14.3h-82l11.1 4.8c-11.2 15.1-22.1 28.9-32.9 41.6q38.1-1.35 70-2.7c-5.1-8.2-10-15.7-14.6-22.5z"/>
</g>
</svg>

1
public/assets-equipment/images/logo-dark.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 287.44 304.72"><defs><style>.cls-1{fill:#369afe;}</style></defs><title>资源 5</title><g id="图层_2" data-name="图层 2"><g id="logo_svg866" data-name="logo svg866"><path id="logo002" class="cls-1" d="M246.8,224.42,232,186.59H183.66l9.84,33.9c-20.53-1.69-38.39-3.66-45.84-5.63l-.84-42.75a107.69,107.69,0,0,0,29.81,5.34c36.56.28,87.47-26.86,89.44-88.73C263.54,27.26,214.32-2.13,171.85.12a103.28,103.28,0,0,0-18.42,2.95l.84-2.95H105.89L33.05,224.7c-19.13,1.13-33,1.83-33,1.83H32.49l-25,77.07H67.64l21.94-77.07h49.64l-1.4,76.22h11.53l-1.55-76.22h47.39L218,304.72h60.19l-30.51-78.05h39.79S269.73,225.83,246.8,224.42Zm-53-140.2c-.71,21.65-18.43,31.22-31.36,31.22-17.3-.71-30.52-12-31.08-31.65,0-6,4.78-28.82,29.39-30.65C175.65,52.29,192.94,62.56,193.79,84.22ZM91.41,220.91,111.66,150a83.81,83.81,0,0,0,28.83,19.83l-.85,45.42c-8.57,2-27.28,3.94-48.23,5.63Z"/></g></g></svg>

1
public/assets-equipment/images/logo.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 287.44 304.72"><defs><style>.cls-1{fill:#fff;}</style></defs><title>资源 3</title><g id="图层_2" data-name="图层 2"><g id="logo_svg866" data-name="logo svg866"><path id="logo002" class="cls-1" d="M246.8,224.42,232,186.59H183.66l9.84,33.9c-20.53-1.69-38.39-3.66-45.84-5.63l-.84-42.75a107.69,107.69,0,0,0,29.81,5.34c36.56.28,87.47-26.86,89.44-88.73C263.54,27.26,214.32-2.13,171.85.12a103.28,103.28,0,0,0-18.42,2.95l.84-2.95H105.89L33.05,224.7c-19.13,1.13-33,1.83-33,1.83H32.49l-25,77.07H67.64l21.94-77.07h49.64l-1.4,76.22h11.53l-1.55-76.22h47.39L218,304.72h60.19l-30.51-78.05h39.79S269.73,225.83,246.8,224.42Zm-53-140.2c-.71,21.65-18.43,31.22-31.36,31.22-17.3-.71-30.52-12-31.08-31.65,0-6,4.78-28.82,29.39-30.65C175.65,52.29,192.94,62.56,193.79,84.22ZM91.41,220.91,111.66,150a83.81,83.81,0,0,0,28.83,19.83l-.85,45.42c-8.57,2-27.28,3.94-48.23,5.63Z"/></g></g></svg>

10
public/assets-equipment/images/logo_login.svg

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="120" height="30" version="1.1" viewBox="0 0 31.75 7.9375" xmlns="http://www.w3.org/2000/svg">
<g fill="#ffffff" stroke-width=".26458">
<path d="m3.8245 7.2291v-2.2934h-2.0984c-0.081756 1.0001-0.37253 1.8293-0.8726 2.4881-0.12488-0.15875-0.26696-0.32464-0.42545-0.49768 0.31247-0.44238 0.52414-0.93266 0.63447-1.4713 0.10583-0.51938 0.15875-1.2549 0.15875-2.2069v-2.5747h5.8775v5.7335c0 0.57203-0.27146 0.85831-0.81492 0.85831-0.33179 0-0.70459-0.00714-1.1179-0.021696-0.024077-0.15875-0.06006-0.35825-0.10821-0.59849 0.41831 0.02884 0.75724 0.043392 1.0168 0.043392 0.29819 0 0.44715-0.14182 0.44715-0.42545v-1.3272h-2.1204v2.2934zm-2.0587-2.8128h2.0587v-1.3486h-2.0264c0.014552 0.46646 0.00344 0.91599-0.032279 1.3486zm0.032279-3.2091v1.3414h2.0264v-1.3414zm4.7239 0h-2.1204v1.3414h2.1204zm-2.1204 3.2091h2.1204v-1.3486h-2.1204z"/>
<path d="m11.66 0.73121 0.51911-0.31009c0.23072 0.27384 0.45932 0.57203 0.68527 0.89429l-0.35322 0.22357h2.69v3.1948h-0.57706v-0.37518h-4.554c-0.065087 1.3846-0.42174 2.4905-1.071 3.3173-0.12965-0.15875-0.26908-0.31724-0.41831-0.47599 0.61542-0.75009 0.92313-1.8751 0.92313-3.3753v-2.2857h2.7514c-0.17568-0.26935-0.37386-0.53843-0.59531-0.80777zm-1.5793 1.3269v1.7812h4.5434v-1.7812z"/>
<path d="m16.446 1.5281v-0.49027h2.8559v0.49768c-0.64929 1.1057-1.6542 2.0362-3.0147 2.7911-0.091546-0.16351-0.19235-0.33179-0.30268-0.50482 0.50482-0.25982 0.91334-0.50959 1.2258-0.75009-0.30268-0.31247-0.61304-0.62018-0.93028-0.92313l0.33893-0.33893c0.36063 0.32702 0.69242 0.63712 0.99536 0.93028 0.39899-0.3511 0.74057-0.75486 1.0239-1.2115h-2.1923zm-0.3175 5.4377h2.4159c-0.17304-0.16828-0.42545-0.40137-0.75724-0.69956l0.34608-0.34608c0.29316 0.24051 0.58896 0.49768 0.88688 0.77152l-0.29554 0.27411h1.7309l-0.24527-0.24527c0.30798-0.27887 0.58182-0.55298 0.82206-0.82206l0.44 0.36063c-0.22622 0.22595-0.47837 0.46143-0.75724 0.7067h2.4664v0.49027h-7.053zm1.1179-3.0649h4.7527v2.2214h-0.54822v-0.25982h-3.6563v0.25982h-0.54822zm4.2045 0.47599h-3.6563v1.0096h3.6563zm-3.0721-1.5793h2.4448v0.47599h-2.4448zm1.8243-2.1421c0.1106 0.29819 0.2331 0.57229 0.36777 0.82206 0.5289-0.2884 0.99034-0.56727 1.3846-0.83661l0.35348 0.45429c-0.45217 0.26908-0.94006 0.54319-1.4639 0.82206 0.12991 0.19235 0.27146 0.36777 0.42545 0.52652 0.50482-0.27887 0.97367-0.5625 1.4065-0.8509l0.36063 0.46143c-0.39926 0.24527-0.84878 0.50244-1.3488 0.77179 0.46143 0.36063 1.0001 0.60087 1.6155 0.72125-0.13944 0.19235-0.27146 0.38709-0.39661 0.5842-1.5288-0.5289-2.5987-1.6203-3.2094-3.2742z"/>
<path d="m24.217 6.1975c0.94245-0.29316 1.964-0.64188 3.0652-1.0456 0.03836 0.21167 0.07435 0.39423 0.10822 0.54795-0.957 0.33179-1.9399 0.68051-2.9496 1.0459zm6.1875-2.2283 0.41831 0.47599c-0.40852 0.26908-0.91572 0.58658-1.5216 0.95197 0.56277 0.43762 1.2644 0.75248 2.1058 0.94483-0.14896 0.20664-0.28125 0.40402-0.39661 0.59134-1.3076-0.39899-2.2693-1.0769-2.8845-2.0336v1.565c0 0.58182-0.29818 0.8726-0.89429 0.8726-0.2839 0-0.62045-0.00476-1.0096-0.014288-0.02884-0.17806-0.06271-0.3847-0.10107-0.62018 0.34634 0.038365 0.65643 0.06006 0.93054 0.064823 0.34131 0 0.51197-0.15399 0.51197-0.46143v-2.5823h-3.2456v-0.48313h5.38v-0.77179h-4.4715v-0.46143h4.4715v-0.76438h-4.6082v-0.48339h5.1493v2.481h1.1179v0.48313h-3.2308v0.16589c0.19712 0.43286 0.45191 0.81254 0.76465 1.1393 0.55721-0.36036 1.0623-0.71385 1.5139-1.0599zm-5.185-0.050535c0.46143 0.27887 0.93028 0.58182 1.4063 0.90884l-0.35322 0.47598c-0.43762-0.33179-0.89932-0.65379-1.3846-0.96652z"/>
</g>
</svg>

102
public/assets-equipment/images/logo_text.svg

@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="200"
height="50"
viewBox="0 0 52.916665 13.229167"
version="1.1"
id="svg76724"
inkscape:version="1.2-alpha1 (b6a15bbbed, 2022-02-23)"
sodipodi:docname="88888.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview76726"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="7.319248"
inkscape:cx="60.525343"
inkscape:cy="22.270047"
inkscape:window-width="2560"
inkscape:window-height="1377"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs76721">
<style
id="style51492">.cls-1{isolation:isolate;}.cls-2{fill:#fff;}</style>
</defs>
<g
inkscape:label="图层 1"
inkscape:groupmode="layer"
id="layer1">
<g
class="cls-1"
id="g51518"
transform="matrix(0.02422867,0,0,0.02422867,0.44609954,4.3440664)"
style="fill:#ffffff">
<path
class="cls-2"
d="m 117.7,4.4 -4,5.5 q 31.5,41.55 89.5,64.6 -4.5,6.45 -11.1,17.4 Q 136.9,64.3 103.2,22.4 71.55,63.4 11.7,96.7 C 8.2,91.6 4.3,86.1 0,80.1 Q 61.65,52.1 95.9,4.4 Z M 10.9,177.7 H 38.2 V 99.3 H 55 v 78.4 H 96.8 V 64.8 h 16.8 v 44.6 h 61.6 v 14.7 h -61.6 v 53.5 h 80.8 v 14.9 H 11 v -14.8 z"
id="path51498"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 217.9,172.8 h 64.8 V 6 h 17 V 172.8 H 335 V 6 h 17 v 166.8 h 65.4 v 14.9 H 217.9 Z M 241.3,45.6 q 16.5,39 32.1,82.8 l -16.6,7.5 Q 243.3,93.3 226.5,52.1 Z m 117.9,84.6 a 787.16,787.16 0 0 0 33.9,-82.8 l 16.4,6.5 c -12.5,32.2 -24.4,59.8 -35.7,83 z"
id="path51500"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 435.6,55.9 h 44.8 a 154.66,154.66 0 0 0 2,-21.4 h -20 a 129.07,129.07 0 0 1 -18.6,20.8 124,124 0 0 0 -9.5,-12.1 c 14.3,-11.8 24,-25.8 29.3,-41.8 l 14.7,3.2 a 124.34,124.34 0 0 1 -7.7,17 H 531 v 12.9 h -33.5 c -0.4,7.9 -1,15.1 -1.8,21.4 h 41.4 v 12.9 h -44 c -0.4,1.3 -0.8,2.6 -1.2,3.8 q 20.25,9.9 43.8,24.2 l -9.3,11.9 A 340.1,340.1 0 0 0 486.2,84.3 C 477,98.6 461.8,110.1 440.4,119 q -3.9,-6.3 -9.3,-13.5 c 24.1,-8.9 39.4,-21.1 45.8,-36.8 H 435.5 V 55.9 Z m 30,54.3 h 135.3 v 91.7 H 586 v -9.1 H 480.6 v 9.1 h -14.9 v -91.7 z m 120.4,13 H 480.6 v 22.2 H 586 Z M 480.6,179.9 H 586 v -22 H 480.6 Z m 63,-160.5 h 77.1 V 102 H 605.8 V 89.9 H 558.5 V 102 h -14.9 z m 62.2,12.9 h -47.3 v 44.6 h 47.3 z"
id="path51502"
style="fill:#ffffff" />
<path
class="cls-2"
d="M 652.2,67.8 H 694 V 54.5 H 661.9 V 44 H 694 V 30.9 H 657 V 20.4 h 37 V 5.7 h 14.1 v 14.7 h 34.1 V 30.9 H 708.1 V 44 h 31.7 v 10.5 h -31.7 v 13.3 h 35.5 v 10.5 h -35.5 v 6.9 H 694 v -6.9 h -41.8 z m 22.9,88.9 13.5,6.5 a 230,230 0 0 1 -23.2,33.5 c -3,-2.2 -7.1,-4.9 -12.5,-8.3 a 133.46,133.46 0 0 0 22.2,-31.7 z M 671,139.5 H 806.7 V 126.4 H 677.5 V 115.5 H 806.7 V 102.4 H 671 V 91.5 h 150.6 v 64 h -14.9 v -5 H 671 Z m 29.5,17 h 15.3 v 22 c 0,5 2.8,7.5 8.5,7.5 h 42.2 c 8.9,0 14.7,-1.5 17.4,-4.4 2.8,-3.4 4.4,-9.8 4.6,-19.2 4.4,1.9 9.7,3.9 15.8,6.1 -1.9,12.5 -5.1,20.7 -9.7,24.4 -4.6,4.3 -12.9,6.5 -24.8,6.5 h -50.1 c -12.8,0 -19.2,-6.5 -19.2,-19.6 z m 35.1,1.4 10.5,-7.3 c 5.9,5.7 11.7,11.6 17.4,18 l -11.9,8.5 a 177,177 0 0 0 -16,-19.2 z m 15.6,-90.1 h 32.1 V 54.5 H 757.2 V 44 h 26.1 V 30.9 H 752.8 V 20.4 h 30.5 V 6.1 h 14.1 v 14.3 h 40.2 V 30.9 H 797.4 V 44 h 35.3 v 10.5 h -35.3 v 13.3 h 43.2 v 10.5 h -43.2 v 7.1 h -14.1 v -7.1 h -32.1 z m 62,98.4 11.7,-8.3 a 360,360 0 0 1 23.4,29.7 l -12.7,8.9 a 340.79,340.79 0 0 0 -22.4,-30.3 z"
id="path51504"
style="fill:#ffffff" />
<path
class="cls-2"
d="M 938.8,20.2 A 528,528 0 0 1 970.7,66 c -5.1,3.5 -9.8,6.6 -13.9,9.3 -2.6,-4.6 -5.4,-9.4 -8.4,-14.2 q -49.35,3.6 -79.1,6.6 l -6.5,-17 c 5.9,-3.2 12.5,-9.3 19.6,-18.2 A 333.49,333.49 0 0 0 904.2,0 l 16,5.9 a 566.07,566.07 0 0 1 -35.3,45.8 c 20.2,-1.3 38.5,-2.6 55,-3.9 -4.2,-6.4 -8.8,-13 -13.6,-19.7 z M 889.9,198.9 H 874.1 V 79.8 h 82 v 95.5 c 0,14.5 -6.7,21.8 -20.2,21.8 -5.9,0.1 -13.5,0.2 -22.8,0.2 q -1.05,-6.3 -3,-15.3 c 8.5,0.7 15.3,1 20.4,1 6.6,0 9.9,-3.4 9.9,-10.3 V 155.9 H 889.9 Z M 940.4,92.7 h -50.5 v 19.4 h 50.5 z m -50.5,51.1 h 50.5 v -19.6 h -50.5 z m 85.8,-42.2 h 15.8 v 33.3 a 441.73,441.73 0 0 0 60,-28.1 l 9.1,13.9 a 591.27,591.27 0 0 1 -69.1,30.8 V 169 c 0,8.5 3.3,12.7 9.9,12.7 h 29.7 c 6.9,0 10.8,-3.3 11.9,-9.9 0.9,-5.9 1.8,-14.7 2.4,-26.5 5.1,2 10.4,3.9 15.8,5.7 -1.1,11.8 -2.2,20.8 -3.4,26.9 -1.8,11.8 -10.2,17.8 -25.2,17.8 h -33.7 c -15.3,0 -23,-7.9 -23,-23.6 V 101.6 Z M 976.1,3 h 15.8 V 37.6 A 427.51,427.51 0 0 0 1047,11 l 9.1,13.9 c -21,10.6 -42.4,20.4 -64.2,29.2 v 11.6 c 0,9 3.6,13.5 10.7,13.5 h 25.6 c 8.5,0 13.3,-3.5 14.3,-10.5 0.9,-5.8 1.8,-14.2 2.4,-25.2 5.1,2 10.4,4 15.8,5.9 -1.1,10.8 -2.2,19.5 -3.4,26.3 -2,11.7 -11.1,17.6 -27.3,17.6 h -29.5 c -16.3,0 -24.4,-8.1 -24.4,-24.2 V 3 Z"
id="path51506"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 1087.2,57.3 c 10.5,7.5 22.3,16.6 35.5,27.1 -4.7,5.7 -8.5,10 -11.5,13.1 q -19.35,-17.1 -34.1,-28.7 z m 13.9,56.4 a 60.31,60.31 0 0 0 14.3,6.9 q -8.25,34.35 -18.6,78.6 l -15.5,-5.3 q 11.85,-41.55 19.8,-80.2 z M 1095.9,5.4 q 15.9,11.85 32.9,27.3 c -4.7,4.6 -8.8,8.7 -12.1,12.3 -11.7,-11.6 -22.1,-21.1 -31.1,-28.5 z m 73.1,48.1 h 26.3 c 2.9,-7.6 5.7,-15.5 8.5,-23.8 h -51.1 v 58.2 q 0,79.35 -31.1,113.7 a 95.62,95.62 0 0 0 -11.7,-12.5 q 27.9,-31 27.9,-101 V 16 h 140.1 v 13.7 h -56.6 c -3.7,8.1 -7.5,16 -11.4,23.8 h 53.3 v 82.8 h -14.5 V 131 h -26.1 v 47.5 q 0,21.6 -21,21.6 c -4.6,0 -10.4,-0.1 -17.6,-0.2 -0.7,-4 -1.6,-8.7 -2.8,-13.9 6.7,0.5 12.6,0.8 17.6,0.8 6.2,0 9.3,-3.2 9.3,-9.7 v -46 h -24.4 v 5.3 H 1169 Z M 1150.6,184 a 233.1,233.1 0 0 0 30.5,-41.4 l 12.9,7.9 a 323.09,323.09 0 0 1 -31.5,42.8 z m 98,-117.2 h -65 v 18.8 h 65 z m -65.1,50.9 h 65 V 98.5 h -65 z m 93.9,64.4 -12.7,9.7 a 517,517 0 0 0 -31.1,-42 l 11.7,-8.3 q 18.45,21.5 32.1,40.6 z"
id="path51508"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 1353.6,60.2 c -5.1,-6.7 -10.7,-13.6 -16.8,-20.6 l 9.1,-6.5 h -17.4 a 163.43,163.43 0 0 1 -25.8,26.1 c -2.7,-3.2 -6.1,-7 -10.1,-11.3 a 144.94,144.94 0 0 0 38.6,-46.2 h 17.4 a 184.82,184.82 0 0 1 -11,19 h 59.3 v 12.5 h -48.5 c 6.1,5.9 11.8,11.8 17.2,18 z m -52.8,1 h 86.3 c -2.4,-4.2 -5.2,-9 -8.6,-14.1 l 13.9,-6.1 a 196.12,196.12 0 0 1 12.1,20.2 h 79.8 v 31.3 h -15.5 V 74.3 h -152.5 v 18.4 h -15.5 z m 22.9,28 h 124.4 v 48.7 h -15.3 v -5 h -93.5 v 15.3 H 1465 v 52.7 h -15.3 v -7.7 h -110.5 v 7.9 h -15.5 z m 109,12.2 h -93.5 v 19.4 h 93.5 z m 17,58.9 h -110.5 v 19.8 h 110.5 z M 1445.8,60 a 240.55,240.55 0 0 0 -16.4,-20.6 l 8.8,-6.3 h -17.1 a 167.55,167.55 0 0 1 -12.3,17.4 90.39,90.39 0 0 0 -12.3,-9.9 q 14.1,-15.75 23.6,-39 h 17.4 c -2.9,6.7 -6,13 -9.2,19 h 64.5 v 12.5 h -51.7 a 226.35,226.35 0 0 1 16.6,17.8 z"
id="path51510"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 1505.8,167.8 c 10.4,-2.5 20.4,-5 30.1,-7.5 V 99.1 h -25.2 V 85 h 25.2 V 34.5 h -27.3 V 20.4 h 69.5 v 14.1 h -27.3 V 85 h 25.6 v 14.1 h -25.6 v 57.1 q 13.35,-3.75 25.8,-7.5 c 0.7,6.1 1.4,11.3 2.2,15.8 q -34.5,9.3 -67.7,19.6 z m 64.2,11.9 h 63.2 v -29.1 h -51.5 v -14.1 h 51.5 v -26.7 h -32.3 v 7.5 H 1586 V 13.1 h 109.5 v 104.2 h -14.9 v -7.5 h -32.3 v 26.7 h 51.5 v 14.1 h -51.5 v 29.1 h 60.4 v 14.1 H 1570 Z m 30.9,-125 h 32.3 V 26.8 h -32.3 z m 0,41.4 h 32.3 V 68 h -32.3 z m 79.6,-69.3 h -32.3 v 27.9 h 32.3 z m -32.3,69.3 h 32.3 V 68 h -32.3 z"
id="path51512"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 1773.8,141.1 13.1,10.3 q -25.8,23.25 -54.3,44.8 -4.8,-5.85 -11.1,-12.3 a 411.65,411.65 0 0 0 52.3,-42.8 z m 90.9,-55.5 c 17.2,13.9 34.9,29.1 52.9,45.6 q -6.6,6.45 -12.3,12.3 c -5.6,-5.5 -11.2,-11 -17,-16.4 -18,0.7 -36.3,1.6 -55.1,2.6 v 45.4 c 0,15.3 -8.1,23 -24.2,23 -6.6,0 -15.3,-0.1 -26.1,-0.4 -0.7,-5 -1.5,-10.5 -2.6,-16.6 q 17,1.8 26.1,1.8 c 7.4,0 11.1,-3.6 11.1,-10.9 v -41.6 c -16.4,0.9 -33,1.8 -49.9,2.8 a 191.62,191.62 0 0 0 -22.8,2.6 l -6.7,-17.4 a 101.37,101.37 0 0 0 25.2,-7.9 q 30.9,-15.15 57.4,-30.5 -35.1,2.7 -59,4.8 a 155,155 0 0 0 -16,2.2 l -6.5,-17 a 75.67,75.67 0 0 0 18.2,-7.1 442.5,442.5 0 0 0 50.8,-33.4 c -23.1,1.4 -46.5,2.7 -70.2,3.7 -0.9,-4.7 -2.2,-9.4 -3.6,-14.1 q 96.3,-3.6 171,-11.1 l 3,14.3 q -43.8,3.6 -89,6.6 l 8.2,5.8 c -21.1,14.1 -40.7,26.1 -58.6,35.7 30.2,-1.7 55.1,-3.3 74.9,-4.8 13.5,-8.6 25.9,-17.3 37.4,-26.1 l 13.1,10.7 q -50.7,36.15 -117.7,67.7 c 26.8,-0.9 59.3,-2.4 97.4,-4.2 -6.7,-6.2 -13.5,-12.3 -20.3,-18.2 z m -12,66.2 10.3,-10.9 q 25.5,16.95 55.9,40.6 l -11.9,13.1 c -18.8,-15.6 -36.9,-29.8 -54.3,-42.8 z"
id="path51514"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 1937.1,167.2 c 22.3,-4.3 45.4,-9.2 69.3,-14.5 -0.5,7 -0.8,11.8 -0.8,14.5 -24.4,5.4 -45.6,10.5 -63.8,15.3 z m 26.3,-42.4 c 10.8,-1.5 24.6,-3.5 41.4,-6.1 -0.8,5.4 -1.5,10.4 -2,14.9 q -25.2,3.45 -57.8,8.7 l -3.2,-14.5 c 8.4,-8.6 18.4,-22.7 30,-42.1 -14,0.9 -24.1,1.7 -30.2,2.1 l -3.8,-13.7 q 17.7,-23.4 38.4,-71.5 l 15.3,6.1 q -19.65,38.4 -35.7,64.2 c 8.8,-0.1 16.8,-0.3 23.8,-0.6 4,-7.2 8.3,-15 12.7,-23.4 l 15.1,6.7 q -22.95,40.05 -44,69.2 z m 135.9,-68.1 q 16.95,22.8 34.7,51.5 c -4.7,2.7 -9.7,5.7 -14.9,9.1 -3.4,-5.7 -6.6,-11.2 -9.7,-16.5 -6.3,0.4 -12.7,0.8 -19.4,1.1 v 68.5 c 0,8.2 3,12.3 9.1,12.3 h 9.9 c 6.6,0 10.4,-3.4 11.3,-10.1 a 256.36,256.36 0 0 0 2,-26.3 c 4.4,1.9 9.8,3.8 16.2,5.9 -1.1,11.7 -2.2,20.8 -3.4,27.3 -1.9,11.7 -9,17.6 -21.2,17.6 h -17.4 c -14.7,0 -22,-8.4 -22,-25.2 v -69 c -7.5,0.4 -15.3,0.9 -23.4,1.4 -1.1,29.3 -4.8,49.7 -11.3,61.3 q -11.55,22.2 -43,36.8 c -3,-4.2 -6.4,-8.7 -10.3,-13.5 19.5,-7.9 32.6,-18.4 39.2,-31.3 6.1,-10.3 9.3,-27.7 9.8,-52.2 -2.8,0.2 -5.6,0.4 -8.4,0.5 a 109.76,109.76 0 0 0 -16.2,2.6 L 2004,92.7 a 36.86,36.86 0 0 0 13.9,-9.7 348.83,348.83 0 0 0 28.5,-39.4 h -44 V 29.3 h 64.4 c -5,-7.7 -9.8,-14.6 -14.3,-20.6 l 13.3,-8.3 c 5.1,6.3 10.8,13.9 17.2,22.6 l -9.6,6.3 h 61.5 v 14.3 h -82 l 11.1,4.8 c -11.2,15.1 -22.1,28.9 -32.9,41.6 q 38.1,-1.35 70,-2.7 c -5.1,-8.2 -10,-15.7 -14.6,-22.5 z"
id="path51516"
style="fill:#ffffff" />
</g>
</g>
</svg>

52
public/assets-equipment/images/map_location.svg

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="11.418438mm"
height="26.990732mm"
viewBox="0 0 11.418438 26.990732"
version="1.1"
id="svg24990"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs24987" />
<g
id="layer1"
transform="translate(-90.963869,-91.581364)">
<g
id="g1906"
transform="matrix(0.26458333,0,0,0.26458333,-630.02593,-98.503119)">
<g
id="g1900"
style="fill:none;fill-opacity:1;stroke:#e10620;stroke-opacity:1">
</g>
<circle
id="circle1902"
class="st21"
cx="2746.5923"
cy="740.01025"
r="18.799999"
style="fill:#e10620;fill-opacity:1" />
<circle
id="circle1902-2"
class="st21"
cx="2602.9233"
cy="1147.2166"
style="fill:none;fill-opacity:1;stroke:#e10620;stroke-width:0.944882;stroke-linecap:round;stroke-dasharray:0.944882, 2.83465;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
r="21.110571"
transform="rotate(-8.7058569)" />
<path
style="fill:none;stroke:#e10620;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2746.5922,749.96619 v 70.47558"
id="path32606" />
</g>
</g>
</svg>

3
public/cdn/0.10.1@html2pdf.bundle.min.js
File diff suppressed because it is too large
View File

BIN
public/cdn/1.glb

2559
public/cdn/320581.json
File diff suppressed because it is too large
View File

648
public/cdn/A_11001514_1.svg
File diff suppressed because it is too large
View File

40
public/cdn/EasyPlayer-element.min.js
File diff suppressed because it is too large
View File

32510
public/cdn/G_2C_A.svg
File diff suppressed because it is too large
View File

BIN
public/cdn/Nitrogen.glb

BIN
public/cdn/PANGMENZHENGDAO.ttf

100
public/cdn/RoomEnvironment.js

@ -0,0 +1,100 @@
( function () {
/**
* https://github.com/google/model-viewer/blob/master/packages/model-viewer/src/three-components/EnvironmentScene.ts
*/
class RoomEnvironment extends THREE.Scene {
constructor() {
super();
const geometry = new THREE.BoxGeometry();
geometry.deleteAttribute( 'uv' );
const roomMaterial = new THREE.MeshStandardMaterial( {
side: THREE.BackSide
} );
const boxMaterial = new THREE.MeshStandardMaterial();
const mainLight = new THREE.PointLight( 0xffffff, 5.0, 28, 2 );
mainLight.position.set( 0.418, 16.199, 0.300 );
this.add( mainLight );
const room = new THREE.Mesh( geometry, roomMaterial );
room.position.set( - 0.757, 13.219, 0.717 );
room.scale.set( 31.713, 28.305, 28.591 );
this.add( room );
const box1 = new THREE.Mesh( geometry, boxMaterial );
box1.position.set( - 10.906, 2.009, 1.846 );
box1.rotation.set( 0, - 0.195, 0 );
box1.scale.set( 2.328, 7.905, 4.651 );
this.add( box1 );
const box2 = new THREE.Mesh( geometry, boxMaterial );
box2.position.set( - 5.607, - 0.754, - 0.758 );
box2.rotation.set( 0, 0.994, 0 );
box2.scale.set( 1.970, 1.534, 3.955 );
this.add( box2 );
const box3 = new THREE.Mesh( geometry, boxMaterial );
box3.position.set( 6.167, 0.857, 7.803 );
box3.rotation.set( 0, 0.561, 0 );
box3.scale.set( 3.927, 6.285, 3.687 );
this.add( box3 );
const box4 = new THREE.Mesh( geometry, boxMaterial );
box4.position.set( - 2.017, 0.018, 6.124 );
box4.rotation.set( 0, 0.333, 0 );
box4.scale.set( 2.002, 4.566, 2.064 );
this.add( box4 );
const box5 = new THREE.Mesh( geometry, boxMaterial );
box5.position.set( 2.291, - 0.756, - 2.621 );
box5.rotation.set( 0, - 0.286, 0 );
box5.scale.set( 1.546, 1.552, 1.496 );
this.add( box5 );
const box6 = new THREE.Mesh( geometry, boxMaterial );
box6.position.set( - 2.193, - 0.369, - 5.547 );
box6.rotation.set( 0, 0.516, 0 );
box6.scale.set( 3.875, 3.487, 2.986 );
this.add( box6 ); // -x right
const light1 = new THREE.Mesh( geometry, createAreaLightMaterial( 50 ) );
light1.position.set( - 16.116, 14.37, 8.208 );
light1.scale.set( 0.1, 2.428, 2.739 );
this.add( light1 ); // -x left
const light2 = new THREE.Mesh( geometry, createAreaLightMaterial( 50 ) );
light2.position.set( - 16.109, 18.021, - 8.207 );
light2.scale.set( 0.1, 2.425, 2.751 );
this.add( light2 ); // +x
const light3 = new THREE.Mesh( geometry, createAreaLightMaterial( 17 ) );
light3.position.set( 14.904, 12.198, - 1.832 );
light3.scale.set( 0.15, 4.265, 6.331 );
this.add( light3 ); // +z
const light4 = new THREE.Mesh( geometry, createAreaLightMaterial( 43 ) );
light4.position.set( - 0.462, 8.89, 14.520 );
light4.scale.set( 4.38, 5.441, 0.088 );
this.add( light4 ); // -z
const light5 = new THREE.Mesh( geometry, createAreaLightMaterial( 20 ) );
light5.position.set( 3.235, 11.486, - 12.541 );
light5.scale.set( 2.5, 2.0, 0.1 );
this.add( light5 ); // +y
const light6 = new THREE.Mesh( geometry, createAreaLightMaterial( 100 ) );
light6.position.set( 0.0, 20.0, 0.0 );
light6.scale.set( 1.0, 0.1, 1.0 );
this.add( light6 );
}
}
function createAreaLightMaterial( intensity ) {
const material = new THREE.MeshBasicMaterial();
material.color.setScalar( intensity );
return material;
}
THREE.RoomEnvironment = RoomEnvironment;
} )();

BIN
public/cdn/SourceHanSans-ExtraLight.otf

BIN
public/cdn/arrow.glb

146
public/cdn/carbon-assets.html

@ -0,0 +1,146 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
html, body, div {
padding: 0;
margin: 0;
height: 100%;
}
</style>
<script src="./three/three.min.js"></script>
<script src="./three/GLTFLoader.js"></script>
<script src="./three/OrbitControls.js"></script>
</head>
<body onload="draw();">
<div></div>
</body>
<script>
let renderer, camera, scene, gui, stats, ambientLight, directionalLight, control;
const w = document.querySelector("div");
function initRender() {
renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
renderer.setSize(w.clientWidth, w.clientHeight);
//告诉渲染器需要阴影效果
renderer.shadowMap.enabled = true;
renderer.shadowMap.type = THREE.PCFSoftShadowMap; // 默认的是,没有设置的这个清晰 THREE.PCFShadowMap
w.appendChild(renderer.domElement);
}
function initCamera() {
camera = new THREE.PerspectiveCamera(1, w.clientWidth / w.clientHeight, 0.1, 1000);
camera.position.set(0, 100, 200);
camera.lookAt(new THREE.Vector3(0, 0, 0));
}
function initScene() {
scene = new THREE.Scene();
}
function initGui() {
//声明一个保存需求修改的相关数据的对象
gui = {};
var datGui = new dat.GUI();
//将设置属性添加到gui当中,gui.add(对象,属性,最小值,最大值)
}
function initLight() {
ambientLight = new THREE.AmbientLight("#111111");
scene.add(ambientLight);
directionalLight = new THREE.DirectionalLight("#ffffff");
directionalLight.position.set(40, 60, 10);
directionalLight.shadow.camera.near = 1; //产生阴影的最近距离
directionalLight.shadow.camera.far = 400; //产生阴影的最远距离
directionalLight.shadow.camera.left = -50; //产生阴影距离位置的最左边位置
directionalLight.shadow.camera.right = 50; //最右边
directionalLight.shadow.camera.top = 50; //最上边
directionalLight.shadow.camera.bottom = -50; //最下面
//这两个值决定生成阴影密度 默认512
directionalLight.shadow.mapSize.height = 1024;
directionalLight.shadow.mapSize.width = 1024;
//告诉平行光需要开启阴影投射
directionalLight.castShadow = true;
scene.add(directionalLight);
}
function initModel() {
//底部平面
// var planeGeometry = new THREE.PlaneGeometry(100, 100);
// var planeMaterial = new THREE.MeshLambertMaterial({color: 0xaaaaaa, side: THREE.DoubleSide});
// var plane = new THREE.Mesh(planeGeometry, planeMaterial);
// plane.rotation.x = -0.5 * Math.PI;
// plane.position.y = -.1;
// plane.receiveShadow = true; //可以接收阴影
// scene.add(plane);
//创建gltf加载器
var loader = new THREE.GLTFLoader();
loader.load("./1.glb", function(gltf) {
gltf.scene.scale.set(20, 20, 20);
scene.add(gltf.scene);
});
}
function initStats() {
stats = new Stats();
document.body.appendChild(stats.dom);
}
function initControl() {
control = new THREE.OrbitControls(camera, renderer.domElement);
}
function render() {
control.update();
control.autoRotate = true;
control.enabled = false;
renderer.render(scene, camera);
}
function onWindowResize() {
camera.aspect = w.clientWidth / w.clientHeight;
camera.updateProjectionMatrix();
renderer.setSize(w.clientWidth, w.clientHeight);
}
function animate() {
//更新控制器
render();
//更新性能插件
//stats.update();
requestAnimationFrame(animate);
}
function draw() {
// initGui();
initRender();
initScene();
initCamera();
initLight();
initModel();
// initStats();
initControl();
animate();
window.onresize = onWindowResize;
}
</script>
</html>

26050
public/cdn/carbon_energy_center.svg
File diff suppressed because it is too large
View File

26587
public/cdn/carbon_energy_center1.svg
File diff suppressed because it is too large
View File

3567
public/cdn/carbon_life_cycle.svg
File diff suppressed because it is too large
View File

890
public/cdn/carbon_month_select.svg
File diff suppressed because it is too large
View File

1435
public/cdn/carbon_month_select1.svg
File diff suppressed because it is too large
View File

3687
public/cdn/carbon_month_select2.svg
File diff suppressed because it is too large
View File

15815
public/cdn/carbon_step_device.svg
File diff suppressed because it is too large
View File

357
public/cdn/dashboard.svg
File diff suppressed because it is too large
View File

3123
public/cdn/data-center.svg
File diff suppressed because it is too large
View File

BIN
public/cdn/down.png

After

Width: 9  |  Height: 12  |  Size: 222 B

1
public/cdn/echarts_2.0.8-gl.min.js
File diff suppressed because it is too large
View File

45
public/cdn/echarts_5.4.3.min.js
File diff suppressed because it is too large
View File

232
public/cdn/echarts_tooltip_loop.js

@ -0,0 +1,232 @@
(function (global) {
global.echarts_tools = global.echarts_tools || {};
/**
* echarts tooltip轮播
* @param chart ECharts实例
* @param chartOption echarts的配置信息
* @param options object 选项
* {
* interval 轮播时间间隔单位毫秒默认为2000
* loopSeries boolean类型默认为false
* true表示循环所有series的tooltipfalse则显示指定seriesIndex的tooltip
* seriesIndex 默认为0指定某个系列option中的series索引循环显示tooltip
* 当loopSeries为true时从seriesIndex系列开始执行
* updateData 自定义更新数据的函数默认为null
* 用于类似于分页的效果比如总数据有20条chart一次只显示5条全部数据可以分4次显示
* }
* @returns {{clearLoop: clearLoop}}
*/
echarts_tools.loopShowTooltip = function (chart, chartOption, options) {
let defaultOptions = {
interval: 2000,
loopSeries: true,
seriesIndex: 0,
updateData: null
};
if (!chart || !chartOption) {
return;
}
let dataIndex = 0; // 数据索引,初始化为-1,是为了判断是否是第一次执行
let seriesIndex = 0; // 系列索引
let timeTicket = 0;
let seriesLen = chartOption.series.length; // 系列个数
let dataLen = 0; // 某个系列数据个数
let chartType; // 系列类型
let first = true;
let lastShowSeriesIndex = 0;
let lastShowDataIndex = 0;
if (seriesLen === 0) {
return;
}
//待处理列表
//不循环series时seriesIndex指定显示tooltip的系列,不指定默认为0,指定多个则默认为第一个
//循环series时seriesIndex指定循环的series,不指定则从0开始循环所有series,指定单个则相当于不循环,指定多个
if (options) {
options.interval = options.interval || defaultOptions.interval;
options.loopSeries = options.loopSeries || defaultOptions.loopSeries;
options.seriesIndex = options.seriesIndex || defaultOptions.seriesIndex;
options.updateData = options.updateData || defaultOptions.updateData;
} else {
options = defaultOptions;
}
//如果设置的seriesIndex无效,则默认为0
if (options.seriesIndex < 0 || options.seriesIndex >= seriesLen) {
seriesIndex = 0;
} else {
seriesIndex = options.seriesIndex;
}
/**
* 清除定时器
*/
function clearLoop() {
if (timeTicket) {
clearInterval(timeTicket);
timeTicket = 0;
}
chart.off("mousemove", stopAutoShow);
zRender.off("mousemove", zRenderMouseMove);
zRender.off("globalout", zRenderGlobalOut);
}
/**
* 取消高亮
*/
function cancelHighlight() {
/**
* 如果dataIndex为0表示上次系列完成显示如果是循环系列且系列索引为0则上次是seriesLen-1否则为seriesIndex-1
* 如果不是循环系列则就是当前系列
* 如果dataIndex>0则就是当前系列
*/
let tempSeriesIndex =
dataIndex === 0
? options.loopSeries
? seriesIndex === 0
? seriesLen - 1
: seriesIndex - 1
: seriesIndex
: seriesIndex;
let tempType = chartOption.series[tempSeriesIndex].type;
if (tempType === "pie" || tempType === "radar") {
chart.dispatchAction({
type: "downplay",
seriesIndex: lastShowSeriesIndex,
dataIndex: lastShowDataIndex
}); //wait 系列序号为0且循环系列,则要判断上次的系列类型是否是pie、radar
}
}
/**
* 自动轮播tooltip
*/
function autoShowTip() {
let invalidSeries = 0;
let invalidData = 0;
function showTip() {
//判断是否更新数据
if (dataIndex === 0 && !first && typeof options.updateData === "function") {
options.updateData();
chart.setOption(chartOption);
}
let series = chartOption.series;
let currSeries = series[seriesIndex];
if (
!series ||
series.length === 0 ||
!currSeries ||
!currSeries.type ||
!currSeries.data ||
!currSeries.data.length
) {
return;
}
chartType = currSeries.type; // 系列类型
dataLen = currSeries.data.length; // 某个系列的数据个数
let tipParams = { seriesIndex: seriesIndex };
switch (chartType) {
case "pie":
case "map":
case "chord":
tipParams.name = currSeries.data[dataIndex].name;
break;
case "radar": // 雷达图
tipParams.seriesIndex = seriesIndex;
tipParams.dataIndex = dataIndex;
break;
default:
tipParams.dataIndex = dataIndex;
break;
}
if (chartType === "pie" || chartType === "radar") {
if (!first) {
cancelHighlight();
}
// 高亮当前图形
chart.dispatchAction({
type: "highlight",
seriesIndex: seriesIndex,
dataIndex: dataIndex
});
}
// 显示 tooltip
tipParams.type = "showTip";
// 防止updateData时先处理tooltip后刷新数据导出tooltip显示不正确
setTimeout(() => {
chart.dispatchAction(tipParams);
}, 0);
lastShowSeriesIndex = seriesIndex;
lastShowDataIndex = dataIndex;
dataIndex = (dataIndex + 1) % dataLen;
if (options.loopSeries && dataIndex === 0) {
// 数据索引归0表示当前系列数据已经循环完
invalidData = 0;
seriesIndex = (seriesIndex + 1) % seriesLen;
if (seriesIndex === options.seriesIndex) {
invalidSeries = 0;
}
}
first = false;
}
showTip();
timeTicket = setInterval(showTip, options.interval);
}
// 关闭轮播
function stopAutoShow() {
if (timeTicket) {
clearInterval(timeTicket);
timeTicket = 0;
if (chartType === "pie" || chartType === "radar") {
cancelHighlight();
}
}
}
let zRender = chart.getZr();
function zRenderMouseMove(param) {
if (param.event) {
//阻止canvas上的鼠标移动事件冒泡
param.event.cancelBubble = true;
}
stopAutoShow();
}
// 离开echarts图时恢复自动轮播
function zRenderGlobalOut() {
if (!timeTicket) {
autoShowTip();
}
}
// 鼠标在echarts图上时停止轮播
chart.on("mousemove", stopAutoShow);
zRender.on("mousemove", zRenderMouseMove);
zRender.on("globalout", zRenderGlobalOut);
autoShowTip();
return {
clearLoop: clearLoop
};
};
})(window);

890
public/cdn/es-module-shims.wasm.js
File diff suppressed because it is too large
View File

18547
public/cdn/first-look-cs.svg
File diff suppressed because it is too large
View File

21259
public/cdn/first-look-metering.svg
File diff suppressed because it is too large
View File

17
public/cdn/first.svg

@ -0,0 +1,17 @@
<svg class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8540">
<path d="M239.662545 638.370909v363.845818L512 888.925091l274.525091 113.291636V638.370909z" fill="#B160E4"
p-id="8541"></path>
<path
d="M239.662545 745.122909A429.335273 429.335273 0 0 0 512 843.170909c104.587636 0 198.283636-37.050182 272.337455-98.048V638.370909H237.474909l2.187636 106.752z"
fill="#994EC8" p-id="8542"></path>
<path
d="M124.183273 387.816727c0 214.178909 173.614545 387.816727 387.816727 387.816728 214.178909 0 387.816727-173.637818 387.816727-387.816728C899.816727 173.614545 726.202182 0 512 0 297.821091 0 124.183273 173.614545 124.183273 387.816727z"
fill="#FFC845" p-id="8543"></path>
<path
d="M215.691636 387.816727c0 163.630545 132.654545 296.308364 296.308364 296.308364 163.653818 0 296.308364-132.654545 296.308364-296.308364 0-163.653818-132.654545-296.308364-296.308364-296.308363-163.653818 0-296.308364 132.654545-296.308364 296.308363z"
fill="#FFDC17" p-id="8544"></path>
<path
d="M542.487273 224.418909V566.458182h-56.622546V291.956364c-21.806545 19.595636-45.754182 32.674909-78.429091 41.378909v-54.458182c15.243636-4.352 30.487273-10.891636 50.106182-19.618909 17.431273-10.891636 30.487273-21.783273 43.566546-32.674909h41.402181v-2.164364z"
fill="#FF9600" p-id="8545"></path>
</svg>

6
public/cdn/fullcalendar@6.1.5.index.global.min.js
File diff suppressed because it is too large
View File

BIN
public/cdn/guide_1.mp4

BIN
public/cdn/guide_1_step.mp4

BIN
public/cdn/guide_2.mp4

BIN
public/cdn/guide_2_step.mp4

BIN
public/cdn/guide_3.mp4

BIN
public/cdn/guide_3_step.mp4

469
public/cdn/highcharts-3d@9.2.2.js

@ -0,0 +1,469 @@
/*
Highcharts JS v9.2.2 (2021-08-24)
3D features for Highcharts JS
License: www.highcharts.com/license
*/
'use strict'; (function (a) { typeof module === 'object' && module.exports ? (a.default = a, module.exports = a) : typeof define === 'function' && define.amd ? define('highcharts/highcharts-3d', ['highcharts'], function (E) { a(E); a.Highcharts = E; return a }) : a(typeof Highcharts !== 'undefined' ? Highcharts : void 0) })(function (a) {
function E (a, w, t, D) { a.hasOwnProperty(w) || (a[w] = D.apply(null, t)) }a = a ? a._modules : {}; E(a, 'Extensions/Math3D.js', [a['Core/Globals.js'], a['Core/Utilities.js']], function (a, w) {
function t (d, c, b) {
c = b > 0 && b < Number.POSITIVE_INFINITY
? b / (d.z + c.z + b) : 1; return { x: d.x * c, y: d.y * c }
} function F (d, c, b, f) {
var k = c.options.chart.options3d; var a = x(f, b ? c.inverted : !1); var e = { x: c.plotWidth / 2, y: c.plotHeight / 2, z: k.depth / 2, vd: x(k.depth, 1) * x(k.viewDistance, 0) }; var n = c.scale3d || 1; f = l * k.beta * (a ? -1 : 1); k = l * k.alpha * (a ? -1 : 1); var u = Math.cos(k); var q = Math.cos(-f); var p = Math.sin(k); var C = Math.sin(-f); b || (e.x += c.plotLeft, e.y += c.plotTop); return d.map(function (b) {
var c = (a ? b.y : b.x) - e.x; var d = (a ? b.x : b.y) - e.y; b = (b.z || 0) - e.z; c = { x: q * c - C * b, y: -p * C * c + u * d - q * p * b, z: u * C * c + p * d + u * q * b }; d = t(c, e, e.vd)
d.x = d.x * n + e.x; d.y = d.y * n + e.y; d.z = c.z * n + e.z; return { x: a ? d.y : d.x, y: a ? d.x : d.y, z: d.z }
})
} function f (d, c) { var b = c.options.chart.options3d; var f = c.plotWidth / 2; c = c.plotHeight / 2; b = x(b.depth, 1) * x(b.viewDistance, 0) + b.depth; return Math.sqrt(Math.pow(f - x(d.plotX, d.x), 2) + Math.pow(c - x(d.plotY, d.y), 2) + Math.pow(b - x(d.plotZ, d.z), 2)) } function z (d) { var c = 0; var b; for (b = 0; b < d.length; b++) { var f = (b + 1) % d.length; c += d[b].x * d[f].y - d[f].x * d[b].y } return c / 2 } function v (d, c, b) { return z(F(d, c, b)) } var x = w.pick; var l = a.deg2rad; a.perspective3D = t
a.perspective = F; a.pointCameraDistance = f; a.shapeArea = z; a.shapeArea3d = v; return { perspective: F, perspective3D: t, pointCameraDistance: f, shapeArea: z, shapeArea3D: v }
}); E(a, 'Core/Renderer/SVG/SVGElement3D.js', [a['Core/Color/Color.js'], a['Core/Renderer/SVG/SVGElement.js'], a['Core/Utilities.js']], function (a, w, t) {
var F = a.parse; var f = t.defined; a = t.merge; var z = t.objectEach; var v = t.pick; var x = {
base: {
initArgs: function (f) {
var d = this; var c = d.renderer; var b = c[d.pathType + 'Path'](f); var a = b.zIndexes; d.parts.forEach(function (f) {
d[f] = c.path(b[f]).attr({
class: 'highcharts-3d-' +
f,
zIndex: a[f] || 0
}).add(d)
}); d.attr({ 'stroke-linejoin': 'round', zIndex: a.group }); d.originalDestroy = d.destroy; d.destroy = d.destroyParts; d.forcedSides = b.forcedSides
},
singleSetterForParts: function (f, d, c, b, a, k) { var l = {}; b = [null, null, b || 'attr', a, k]; var e = c && c.zIndexes; c ? (e && e.group && this.attr({ zIndex: e.group }), z(c, function (b, d) { l[d] = {}; l[d][f] = b; e && (l[d].zIndex = c.zIndexes[d] || 0) }), b[1] = l) : (l[f] = d, b[0] = l); return this.processParts.apply(this, b) },
processParts: function (f, d, c, b, a) {
var l = this; l.parts.forEach(function (k) {
d &&
(f = v(d[k], !1)); if (!1 !== f)l[k][c](f, b, a)
}); return l
},
destroyParts: function () { this.processParts(null, null, 'destroy'); return this.originalDestroy() }
}
}; x.cuboid = a(x.base, {
parts: ['front', 'top', 'side'],
pathType: 'cuboid',
attr: function (a, d, c, b) { if (typeof a === 'string' && typeof d !== 'undefined') { var l = a; a = {}; a[l] = d } return a.shapeArgs || f(a.x) ? this.singleSetterForParts('d', null, this.renderer[this.pathType + 'Path'](a.shapeArgs || a)) : w.prototype.attr.call(this, a, void 0, c, b) },
animate: function (a, d, c) {
if (f(a.x) && f(a.y)) {
a =
this.renderer[this.pathType + 'Path'](a); var b = a.forcedSides; this.singleSetterForParts('d', null, a, 'animate', d, c); this.attr({ zIndex: a.zIndexes.group }); b !== this.forcedSides && (this.forcedSides = b, x.cuboid.fillSetter.call(this, this.fill))
} else w.prototype.animate.call(this, a, d, c); return this
},
fillSetter: function (a) {
this.forcedSides = this.forcedSides || []; this.singleSetterForParts('fill', null, {
front: a,
top: F(a).brighten(this.forcedSides.indexOf('top') >= 0 ? 0 : 0.1).get(),
side: F(a).brighten(this.forcedSides.indexOf('side') >= 0
? 0 : -0.1).get()
}); this.color = this.fill = a; return this
}
}); return x
}); E(a, 'Core/Renderer/SVG/SVGRenderer3D.js', [a['Core/Animation/AnimationUtilities.js'], a['Core/Color/Color.js'], a['Core/Globals.js'], a['Extensions/Math3D.js'], a['Core/Renderer/SVG/SVGElement.js'], a['Core/Renderer/SVG/SVGElement3D.js'], a['Core/Renderer/SVG/SVGRenderer.js'], a['Core/Utilities.js']], function (a, w, t, D, f, z, v, x) {
var l = this && this.__extends || (function () {
var b = function (e, d) {
b = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (b,
h) { b.__proto__ = h } || function (b, h) { for (var r in h)h.hasOwnProperty(r) && (b[r] = h[r]) }; return b(e, d)
}; return function (e, d) { function c () { this.constructor = e }b(e, d); e.prototype = d === null ? Object.create(d) : (c.prototype = d.prototype, new c()) }
}()); var d = a.animObject; var c = w.parse; var b = t.charts; var p = t.deg2rad; var k = D.perspective; var A = D.shapeArea; var e = x.defined; var n = x.extend; var u = x.merge; var q = x.pick; var G = Math.cos; var C = Math.sin; var H = Math.PI; var B = 4 * (Math.sqrt(2) - 1) / 3 / (H / 2); return (function (a) {
function m () { return a !== null && a.apply(this, arguments) || this }l(m, a); m.compose =
function (b) { b = b.prototype; var e = m.prototype; b.elements3d = z; b.arc3d = e.arc3d; b.arc3dPath = e.arc3dPath; b.cuboid = e.cuboid; b.cuboidPath = e.cuboidPath; b.element3d = e.element3d; b.face3d = e.face3d; b.polyhedron = e.polyhedron; b.toLinePath = e.toLinePath; b.toLineSegments = e.toLineSegments }; m.curveTo = function (b, e, h, r, g, y, I, d) {
var c = []; var a = y - g; return y > g && y - g > Math.PI / 2 + 0.0001 ? (c = c.concat(this.curveTo(b, e, h, r, g, g + Math.PI / 2, I, d)), c = c.concat(this.curveTo(b, e, h, r, g + Math.PI / 2, y, I, d))) : y < g && g - y > Math.PI / 2 + 0.0001 ? (c = c.concat(this.curveTo(b,
e, h, r, g, g - Math.PI / 2, I, d)), c = c.concat(this.curveTo(b, e, h, r, g - Math.PI / 2, y, I, d))) : [['C', b + h * Math.cos(g) - h * B * a * Math.sin(g) + I, e + r * Math.sin(g) + r * B * a * Math.cos(g) + d, b + h * Math.cos(y) + h * B * a * Math.sin(y) + I, e + r * Math.sin(y) - r * B * a * Math.cos(y) + d, b + h * Math.cos(y) + I, e + r * Math.sin(y) + d]]
}; m.prototype.toLinePath = function (b, e) { var h = []; b.forEach(function (b) { h.push(['L', b.x, b.y]) }); b.length && (h[0][0] = 'M', e && h.push(['Z'])); return h }; m.prototype.toLineSegments = function (b) {
var e = []; var h = !0; b.forEach(function (b) {
e.push(h ? ['M', b.x,
b.y] : ['L', b.x, b.y]); h = !h
}); return e
}; m.prototype.face3d = function (d) {
var c = this; var h = this.createElement('path'); h.vertexes = []; h.insidePlotArea = !1; h.enabled = !0; h.attr = function (h) {
if (typeof h === 'object' && (e(h.enabled) || e(h.vertexes) || e(h.insidePlotArea))) {
this.enabled = q(h.enabled, this.enabled); this.vertexes = q(h.vertexes, this.vertexes); this.insidePlotArea = q(h.insidePlotArea, this.insidePlotArea); delete h.enabled; delete h.vertexes; delete h.insidePlotArea; var g = k(this.vertexes, b[c.chartIndex], this.insidePlotArea)
var y = c.toLinePath(g, !0); g = A(g); h.d = y; h.visibility = this.enabled && g > 0 ? 'visible' : 'hidden'
} return f.prototype.attr.apply(this, arguments)
}; h.animate = function (h) {
if (typeof h === 'object' && (e(h.enabled) || e(h.vertexes) || e(h.insidePlotArea))) {
this.enabled = q(h.enabled, this.enabled); this.vertexes = q(h.vertexes, this.vertexes); this.insidePlotArea = q(h.insidePlotArea, this.insidePlotArea); delete h.enabled; delete h.vertexes; delete h.insidePlotArea; var g = k(this.vertexes, b[c.chartIndex], this.insidePlotArea); var y = c.toLinePath(g,
!0); g = A(g); g = this.enabled && g > 0 ? 'visible' : 'hidden'; h.d = y; this.attr('visibility', g)
} return f.prototype.animate.apply(this, arguments)
}; return h.attr(d)
}; m.prototype.polyhedron = function (b) {
var d = this; var h = this.g(); var r = h.destroy; this.styledMode || h.attr({ 'stroke-linejoin': 'round' }); h.faces = []; h.destroy = function () { for (var b = 0; b < h.faces.length; b++)h.faces[b].destroy(); return r.call(this) }; h.attr = function (b, y, r, c) {
if (typeof b === 'object' && e(b.faces)) {
for (;h.faces.length > b.faces.length;)h.faces.pop().destroy(); for (;h.faces.length <
b.faces.length;)h.faces.push(d.face3d().add(h)); for (var g = 0; g < b.faces.length; g++)d.styledMode && delete b.faces[g].fill, h.faces[g].attr(b.faces[g], null, r, c); delete b.faces
} return f.prototype.attr.apply(this, arguments)
}; h.animate = function (b, e, r) {
if (b && b.faces) { for (;h.faces.length > b.faces.length;)h.faces.pop().destroy(); for (;h.faces.length < b.faces.length;)h.faces.push(d.face3d().add(h)); for (var g = 0; g < b.faces.length; g++)h.faces[g].animate(b.faces[g], e, r); delete b.faces } return f.prototype.animate.apply(this,
arguments)
}; return h.attr(b)
}; m.prototype.element3d = function (b, e) { var h = this.g(); n(h, this.elements3d[b]); h.initArgs(e); return h }; m.prototype.cuboid = function (b) { return this.element3d('cuboid', b) }; m.prototype.cuboidPath = function (e) {
function d (b) { return c === 0 && b > 1 && b < 6 ? { x: m[b].x, y: m[b].y + 10, z: m[b].z } : m[0].x === m[7].x && b >= 4 ? { x: m[b].x + 10, y: m[b].y, z: m[b].z } : n === 0 && b < 2 || b > 5 ? { x: m[b].x, y: m[b].y, z: m[b].z + 10 } : m[b] } function h (b) { return m[b] } var r = e.x || 0; var g = e.y || 0; var y = e.z || 0; var c = e.height || 0; var a = e.width || 0; var n = e.depth ||
0; var f = b[this.chartIndex]; var q = f.options.chart.options3d.alpha; var u = 0; var m = [{ x: r, y: g, z: y }, { x: r + a, y: g, z: y }, { x: r + a, y: g + c, z: y }, { x: r, y: g + c, z: y }, { x: r, y: g + c, z: y + n }, { x: r + a, y: g + c, z: y + n }, { x: r + a, y: g, z: y + n }, { x: r, y: g, z: y + n }]; var C = []; m = k(m, f, e.insidePlotArea); var J = function (b, g, e) { var y = [[], -1]; var r = b.map(h); var c = g.map(h); b = b.map(d); g = g.map(d); A(r) < 0 ? y = [r, 0] : A(c) < 0 ? y = [c, 1] : e && (C.push(e), y = A(b) < 0 ? [r, 0] : A(g) < 0 ? [c, 1] : [r, 0]); return y }; var p = J([3, 2, 1, 0], [7, 6, 5, 4], 'front'); e = p[0]; var G = p[1]; p = J([1, 6, 7, 0], [4, 5, 2, 3], 'top'); a = p[0]; var l = p[1]
p = J([1, 2, 5, 6], [0, 7, 4, 3], 'side'); J = p[0]; p = p[1]; p === 1 ? u += 1E6 * (f.plotWidth - r) : p || (u += 1E6 * r); u += 10 * (!l || q >= 0 && q <= 180 || q < 360 && q > 357.5 ? f.plotHeight - g : 10 + g); G === 1 ? u += 100 * y : G || (u += 100 * (1E3 - y)); return { front: this.toLinePath(e, !0), top: this.toLinePath(a, !0), side: this.toLinePath(J, !0), zIndexes: { group: Math.round(u) }, forcedSides: C, isFront: G, isTop: l }
}; m.prototype.arc3d = function (b) {
function e (b) { var h = !1; var e = {}; var y; b = u(b); for (y in b)g.indexOf(y) !== -1 && (e[y] = b[y], delete b[y], h = !0); return h ? [e, b] : !1 } var h = this.g(); var r = h.renderer
var g = 'x y r innerR start end depth'.split(' '); b = u(b); b.alpha = (b.alpha || 0) * p; b.beta = (b.beta || 0) * p; h.top = r.path(); h.side1 = r.path(); h.side2 = r.path(); h.inn = r.path(); h.out = r.path(); h.onAdd = function () { var b = h.parentGroup; var e = h.attr('class'); h.top.add(h); ['out', 'inn', 'side1', 'side2'].forEach(function (g) { h[g].attr({ class: e + ' highcharts-3d-side' }).add(b) }) }; ['addClass', 'removeClass'].forEach(function (b) {
h[b] = function () {
var e = arguments; ['top', 'out', 'inn', 'side1', 'side2'].forEach(function (g) {
h[g][b].apply(h[g],
e)
})
}
}); h.setPaths = function (b) { var e = h.renderer.arc3dPath(b); var g = 100 * e.zTop; h.attribs = b; h.top.attr({ d: e.top, zIndex: e.zTop }); h.inn.attr({ d: e.inn, zIndex: e.zInn }); h.out.attr({ d: e.out, zIndex: e.zOut }); h.side1.attr({ d: e.side1, zIndex: e.zSide1 }); h.side2.attr({ d: e.side2, zIndex: e.zSide2 }); h.zIndex = g; h.attr({ zIndex: g }); b.center && (h.top.setRadialReference(b.center), delete b.center) }; h.setPaths(b); h.fillSetter = function (b) {
var e = c(b).brighten(-0.1).get(); this.fill = b; this.side1.attr({ fill: e }); this.side2.attr({ fill: e })
this.inn.attr({ fill: e }); this.out.attr({ fill: e }); this.top.attr({ fill: b }); return this
}; ['opacity', 'translateX', 'translateY', 'visibility'].forEach(function (b) { h[b + 'Setter'] = function (b, e) { h[e] = b; ['out', 'inn', 'side1', 'side2', 'top'].forEach(function (g) { h[g].attr(e, b) }) } }); h.attr = function (b) { var g; if (typeof b === 'object' && (g = e(b))) { var y = g[0]; arguments[0] = g[1]; n(h.attribs, y); h.setPaths(h.attribs) } return f.prototype.attr.apply(h, arguments) }; h.animate = function (b, g, r) {
var y = this.attribs; var c = 'data-' + Math.random().toString(26).substring(2,
9); delete b.center; delete b.z; delete b.alpha; delete b.beta; var a = d(q(g, this.renderer.globalAnimation)); if (a.duration) { g = e(b); h[c] = 0; b[c] = 1; h[c + 'Setter'] = t.noop; if (g) { var n = g[0]; a.step = function (b, e) { function g (b) { return y[b] + (q(n[b], y[b]) - y[b]) * e.pos }e.prop === c && e.elem.setPaths(u(y, { x: g('x'), y: g('y'), r: g('r'), innerR: g('innerR'), start: g('start'), end: g('end'), depth: g('depth') })) } }g = a } return f.prototype.animate.call(this, b, g, r)
}; h.destroy = function () {
this.top.destroy(); this.out.destroy(); this.inn.destroy()
this.side1.destroy(); this.side2.destroy(); return f.prototype.destroy.call(this)
}; h.hide = function () { this.top.hide(); this.out.hide(); this.inn.hide(); this.side1.hide(); this.side2.hide() }; h.show = function (b) { this.top.show(b); this.out.show(b); this.inn.show(b); this.side1.show(b); this.side2.show(b) }; return h
}; m.prototype.arc3dPath = function (b) {
function e (b) { b %= 2 * Math.PI; b > Math.PI && (b = 2 * Math.PI - b); return b } var h = b.x || 0; var r = b.y || 0; var g = b.start || 0; var c = (b.end || 0) - 0.00001; var d = b.r || 0; var a = b.innerR || 0; var n = b.depth || 0; var f = b.alpha ||
0; var q = b.beta || 0; var u = Math.cos(g); var p = Math.sin(g); b = Math.cos(c); var k = Math.sin(c); var l = d * Math.cos(q); d *= Math.cos(f); var A = a * Math.cos(q); var v = a * Math.cos(f); a = n * Math.sin(q); var B = n * Math.sin(f); n = [['M', h + l * u, r + d * p]]; n = n.concat(m.curveTo(h, r, l, d, g, c, 0, 0)); n.push(['L', h + A * b, r + v * k]); n = n.concat(m.curveTo(h, r, A, v, c, g, 0, 0)); n.push(['Z']); var z = q > 0 ? Math.PI / 2 : 0; q = f > 0 ? 0 : Math.PI / 2; z = g > -z ? g : c > -z ? -z : g; var t = c < H - q ? c : g < H - q ? H - q : c; var x = 2 * H - q; f = [['M', h + l * G(z), r + d * C(z)]]; f = f.concat(m.curveTo(h, r, l, d, z, t, 0, 0)); c > x && g < x ? (f.push(['L', h +
l * G(t) + a, r + d * C(t) + B]), f = f.concat(m.curveTo(h, r, l, d, t, x, a, B)), f.push(['L', h + l * G(x), r + d * C(x)]), f = f.concat(m.curveTo(h, r, l, d, x, c, 0, 0)), f.push(['L', h + l * G(c) + a, r + d * C(c) + B]), f = f.concat(m.curveTo(h, r, l, d, c, x, a, B)), f.push(['L', h + l * G(x), r + d * C(x)]), f = f.concat(m.curveTo(h, r, l, d, x, t, 0, 0))) : c > H - q && g < H - q && (f.push(['L', h + l * Math.cos(t) + a, r + d * Math.sin(t) + B]), f = f.concat(m.curveTo(h, r, l, d, t, c, a, B)), f.push(['L', h + l * Math.cos(c), r + d * Math.sin(c)]), f = f.concat(m.curveTo(h, r, l, d, c, t, 0, 0))); f.push(['L', h + l * Math.cos(t) + a, r +
d * Math.sin(t) + B]); f = f.concat(m.curveTo(h, r, l, d, t, z, a, B)); f.push(['Z']); q = [['M', h + A * u, r + v * p]]; q = q.concat(m.curveTo(h, r, A, v, g, c, 0, 0)); q.push(['L', h + A * Math.cos(c) + a, r + v * Math.sin(c) + B]); q = q.concat(m.curveTo(h, r, A, v, c, g, a, B)); q.push(['Z']); u = [['M', h + l * u, r + d * p], ['L', h + l * u + a, r + d * p + B], ['L', h + A * u + a, r + v * p + B], ['L', h + A * u, r + v * p], ['Z']]; h = [['M', h + l * b, r + d * k], ['L', h + l * b + a, r + d * k + B], ['L', h + A * b + a, r + v * k + B], ['L', h + A * b, r + v * k], ['Z']]; k = Math.atan2(B, -a); r = Math.abs(c + k); b = Math.abs(g + k); g = Math.abs((g + c) / 2 + k); r = e(r); b = e(b)
g = e(g); g *= 1E5; c = 1E5 * b; r *= 1E5; return { top: n, zTop: 1E5 * Math.PI + 1, out: f, zOut: Math.max(g, c, r), inn: q, zInn: Math.max(g, c, r), side1: u, zSide1: 0.99 * r, side2: h, zSide2: 0.99 * c }
}; return m
}(v))
}); E(a, 'Core/Chart/Chart3D.js', [a['Core/Color/Color.js'], a['Extensions/Math3D.js'], a['Core/DefaultOptions.js'], a['Core/Utilities.js']], function (a, w, t, D) {
var f = a.parse; var z = w.perspective; var v = w.shapeArea3D; var x = t.defaultOptions; var l = D.addEvent; var d = D.isArray; var c = D.merge; var b = D.pick; var p = D.wrap; var k; (function (a) {
function e (b) {
this.is3d() && b.options.type === 'scatter' &&
(b.options.type = 'scatter3d')
} function n () {
if (this.chart3d && this.is3d()) {
var b = this.renderer; var e = this.options.chart.options3d; var g = this.chart3d.get3dFrame(); var c = this.plotLeft; var d = this.plotLeft + this.plotWidth; var a = this.plotTop; var q = this.plotTop + this.plotHeight; e = e.depth; var n = c - (g.left.visible ? g.left.size : 0); var u = d + (g.right.visible ? g.right.size : 0); var m = a - (g.top.visible ? g.top.size : 0); var k = q + (g.bottom.visible ? g.bottom.size : 0); var p = 0 - (g.front.visible ? g.front.size : 0); var l = e + (g.back.visible ? g.back.size : 0); var C = this.hasRendered ? 'animate'
: 'attr'; this.chart3d.frame3d = g; this.frameShapes || (this.frameShapes = { bottom: b.polyhedron().add(), top: b.polyhedron().add(), left: b.polyhedron().add(), right: b.polyhedron().add(), back: b.polyhedron().add(), front: b.polyhedron().add() }); this.frameShapes.bottom[C]({
class: 'highcharts-3d-frame highcharts-3d-frame-bottom',
zIndex: g.bottom.frontFacing ? -1E3 : 1E3,
faces: [{ fill: f(g.bottom.color).brighten(0.1).get(), vertexes: [{ x: n, y: k, z: p }, { x: u, y: k, z: p }, { x: u, y: k, z: l }, { x: n, y: k, z: l }], enabled: g.bottom.visible }, {
fill: f(g.bottom.color).brighten(0.1).get(),
vertexes: [{ x: c, y: q, z: e }, { x: d, y: q, z: e }, { x: d, y: q, z: 0 }, { x: c, y: q, z: 0 }],
enabled: g.bottom.visible
}, { fill: f(g.bottom.color).brighten(-0.1).get(), vertexes: [{ x: n, y: k, z: p }, { x: n, y: k, z: l }, { x: c, y: q, z: e }, { x: c, y: q, z: 0 }], enabled: g.bottom.visible && !g.left.visible }, { fill: f(g.bottom.color).brighten(-0.1).get(), vertexes: [{ x: u, y: k, z: l }, { x: u, y: k, z: p }, { x: d, y: q, z: 0 }, { x: d, y: q, z: e }], enabled: g.bottom.visible && !g.right.visible }, {
fill: f(g.bottom.color).get(),
vertexes: [{ x: u, y: k, z: p }, { x: n, y: k, z: p }, { x: c, y: q, z: 0 }, { x: d, y: q, z: 0 }],
enabled: g.bottom.visible &&
!g.front.visible
}, { fill: f(g.bottom.color).get(), vertexes: [{ x: n, y: k, z: l }, { x: u, y: k, z: l }, { x: d, y: q, z: e }, { x: c, y: q, z: e }], enabled: g.bottom.visible && !g.back.visible }]
}); this.frameShapes.top[C]({
class: 'highcharts-3d-frame highcharts-3d-frame-top',
zIndex: g.top.frontFacing ? -1E3 : 1E3,
faces: [{ fill: f(g.top.color).brighten(0.1).get(), vertexes: [{ x: n, y: m, z: l }, { x: u, y: m, z: l }, { x: u, y: m, z: p }, { x: n, y: m, z: p }], enabled: g.top.visible }, {
fill: f(g.top.color).brighten(0.1).get(),
vertexes: [{ x: c, y: a, z: 0 }, { x: d, y: a, z: 0 }, { x: d, y: a, z: e },
{ x: c, y: a, z: e }],
enabled: g.top.visible
}, { fill: f(g.top.color).brighten(-0.1).get(), vertexes: [{ x: n, y: m, z: l }, { x: n, y: m, z: p }, { x: c, y: a, z: 0 }, { x: c, y: a, z: e }], enabled: g.top.visible && !g.left.visible }, { fill: f(g.top.color).brighten(-0.1).get(), vertexes: [{ x: u, y: m, z: p }, { x: u, y: m, z: l }, { x: d, y: a, z: e }, { x: d, y: a, z: 0 }], enabled: g.top.visible && !g.right.visible }, { fill: f(g.top.color).get(), vertexes: [{ x: n, y: m, z: p }, { x: u, y: m, z: p }, { x: d, y: a, z: 0 }, { x: c, y: a, z: 0 }], enabled: g.top.visible && !g.front.visible }, {
fill: f(g.top.color).get(),
vertexes: [{
x: u,
y: m,
z: l
}, { x: n, y: m, z: l }, { x: c, y: a, z: e }, { x: d, y: a, z: e }],
enabled: g.top.visible && !g.back.visible
}]
}); this.frameShapes.left[C]({
class: 'highcharts-3d-frame highcharts-3d-frame-left',
zIndex: g.left.frontFacing ? -1E3 : 1E3,
faces: [{ fill: f(g.left.color).brighten(0.1).get(), vertexes: [{ x: n, y: k, z: p }, { x: c, y: q, z: 0 }, { x: c, y: q, z: e }, { x: n, y: k, z: l }], enabled: g.left.visible && !g.bottom.visible }, {
fill: f(g.left.color).brighten(0.1).get(),
vertexes: [{ x: n, y: m, z: l }, { x: c, y: a, z: e }, { x: c, y: a, z: 0 }, { x: n, y: m, z: p }],
enabled: g.left.visible &&
!g.top.visible
}, { fill: f(g.left.color).brighten(-0.1).get(), vertexes: [{ x: n, y: k, z: l }, { x: n, y: m, z: l }, { x: n, y: m, z: p }, { x: n, y: k, z: p }], enabled: g.left.visible }, { fill: f(g.left.color).brighten(-0.1).get(), vertexes: [{ x: c, y: a, z: e }, { x: c, y: q, z: e }, { x: c, y: q, z: 0 }, { x: c, y: a, z: 0 }], enabled: g.left.visible }, { fill: f(g.left.color).get(), vertexes: [{ x: n, y: k, z: p }, { x: n, y: m, z: p }, { x: c, y: a, z: 0 }, { x: c, y: q, z: 0 }], enabled: g.left.visible && !g.front.visible }, {
fill: f(g.left.color).get(),
vertexes: [{ x: n, y: m, z: l }, { x: n, y: k, z: l }, { x: c, y: q, z: e }, {
x: c,
y: a,
z: e
}],
enabled: g.left.visible && !g.back.visible
}]
}); this.frameShapes.right[C]({
class: 'highcharts-3d-frame highcharts-3d-frame-right',
zIndex: g.right.frontFacing ? -1E3 : 1E3,
faces: [{ fill: f(g.right.color).brighten(0.1).get(), vertexes: [{ x: u, y: k, z: l }, { x: d, y: q, z: e }, { x: d, y: q, z: 0 }, { x: u, y: k, z: p }], enabled: g.right.visible && !g.bottom.visible }, { fill: f(g.right.color).brighten(0.1).get(), vertexes: [{ x: u, y: m, z: p }, { x: d, y: a, z: 0 }, { x: d, y: a, z: e }, { x: u, y: m, z: l }], enabled: g.right.visible && !g.top.visible }, {
fill: f(g.right.color).brighten(-0.1).get(),
vertexes: [{ x: d, y: a, z: 0 }, { x: d, y: q, z: 0 }, { x: d, y: q, z: e }, { x: d, y: a, z: e }],
enabled: g.right.visible
}, { fill: f(g.right.color).brighten(-0.1).get(), vertexes: [{ x: u, y: k, z: p }, { x: u, y: m, z: p }, { x: u, y: m, z: l }, { x: u, y: k, z: l }], enabled: g.right.visible }, { fill: f(g.right.color).get(), vertexes: [{ x: u, y: m, z: p }, { x: u, y: k, z: p }, { x: d, y: q, z: 0 }, { x: d, y: a, z: 0 }], enabled: g.right.visible && !g.front.visible }, { fill: f(g.right.color).get(), vertexes: [{ x: u, y: k, z: l }, { x: u, y: m, z: l }, { x: d, y: a, z: e }, { x: d, y: q, z: e }], enabled: g.right.visible && !g.back.visible }]
})
this.frameShapes.back[C]({
class: 'highcharts-3d-frame highcharts-3d-frame-back',
zIndex: g.back.frontFacing ? -1E3 : 1E3,
faces: [{ fill: f(g.back.color).brighten(0.1).get(), vertexes: [{ x: u, y: k, z: l }, { x: n, y: k, z: l }, { x: c, y: q, z: e }, { x: d, y: q, z: e }], enabled: g.back.visible && !g.bottom.visible }, { fill: f(g.back.color).brighten(0.1).get(), vertexes: [{ x: n, y: m, z: l }, { x: u, y: m, z: l }, { x: d, y: a, z: e }, { x: c, y: a, z: e }], enabled: g.back.visible && !g.top.visible }, {
fill: f(g.back.color).brighten(-0.1).get(),
vertexes: [{ x: n, y: k, z: l }, { x: n, y: m, z: l },
{ x: c, y: a, z: e }, { x: c, y: q, z: e }],
enabled: g.back.visible && !g.left.visible
}, { fill: f(g.back.color).brighten(-0.1).get(), vertexes: [{ x: u, y: m, z: l }, { x: u, y: k, z: l }, { x: d, y: q, z: e }, { x: d, y: a, z: e }], enabled: g.back.visible && !g.right.visible }, { fill: f(g.back.color).get(), vertexes: [{ x: c, y: a, z: e }, { x: d, y: a, z: e }, { x: d, y: q, z: e }, { x: c, y: q, z: e }], enabled: g.back.visible }, { fill: f(g.back.color).get(), vertexes: [{ x: n, y: k, z: l }, { x: u, y: k, z: l }, { x: u, y: m, z: l }, { x: n, y: m, z: l }], enabled: g.back.visible }]
}); this.frameShapes.front[C]({
class: 'highcharts-3d-frame highcharts-3d-frame-front',
zIndex: g.front.frontFacing ? -1E3 : 1E3,
faces: [{ fill: f(g.front.color).brighten(0.1).get(), vertexes: [{ x: n, y: k, z: p }, { x: u, y: k, z: p }, { x: d, y: q, z: 0 }, { x: c, y: q, z: 0 }], enabled: g.front.visible && !g.bottom.visible }, { fill: f(g.front.color).brighten(0.1).get(), vertexes: [{ x: u, y: m, z: p }, { x: n, y: m, z: p }, { x: c, y: a, z: 0 }, { x: d, y: a, z: 0 }], enabled: g.front.visible && !g.top.visible }, { fill: f(g.front.color).brighten(-0.1).get(), vertexes: [{ x: n, y: m, z: p }, { x: n, y: k, z: p }, { x: c, y: q, z: 0 }, { x: c, y: a, z: 0 }], enabled: g.front.visible && !g.left.visible }, {
fill: f(g.front.color).brighten(-0.1).get(),
vertexes: [{ x: u, y: k, z: p }, { x: u, y: m, z: p }, { x: d, y: a, z: 0 }, { x: d, y: q, z: 0 }],
enabled: g.front.visible && !g.right.visible
}, { fill: f(g.front.color).get(), vertexes: [{ x: d, y: a, z: 0 }, { x: c, y: a, z: 0 }, { x: c, y: q, z: 0 }, { x: d, y: q, z: 0 }], enabled: g.front.visible }, { fill: f(g.front.color).get(), vertexes: [{ x: u, y: k, z: p }, { x: n, y: k, z: p }, { x: n, y: m, z: p }, { x: u, y: m, z: p }], enabled: g.front.visible }]
})
}
} function u () {
this.styledMode && (this.renderer.definition({ tagName: 'style', textContent: '.highcharts-3d-top{filter: url(#highcharts-brighter)}\n.highcharts-3d-side{filter: url(#highcharts-darker)}\n' }),
[{ name: 'darker', slope: 0.6 }, { name: 'brighter', slope: 1.4 }].forEach(function (b) { this.renderer.definition({ tagName: 'filter', attributes: { id: 'highcharts-' + b.name }, children: [{ tagName: 'feComponentTransfer', children: [{ tagName: 'feFuncR', attributes: { type: 'linear', slope: b.slope } }, { tagName: 'feFuncG', attributes: { type: 'linear', slope: b.slope } }, { tagName: 'feFuncB', attributes: { type: 'linear', slope: b.slope } }] }] }) }, this))
} function q () {
var b = this.options; this.is3d() && (b.series || []).forEach(function (e) {
(e.type ||
b.chart.type || b.chart.defaultSeriesType) === 'scatter' && (e.type = 'scatter3d')
})
} function k () {
var b = this.options.chart.options3d; if (this.chart3d && this.is3d()) {
b && (b.alpha = b.alpha % 360 + (b.alpha >= 0 ? 0 : 360), b.beta = b.beta % 360 + (b.beta >= 0 ? 0 : 360)); var e = this.inverted; var g = this.clipBox; var c = this.margin; g[e ? 'y' : 'x'] = -(c[3] || 0); g[e ? 'x' : 'y'] = -(c[0] || 0); g[e ? 'height' : 'width'] = this.chartWidth + (c[3] || 0) + (c[1] || 0); g[e ? 'width' : 'height'] = this.chartHeight + (c[0] || 0) + (c[2] || 0); this.scale3d = 1; !0 === b.fitToPlot && (this.scale3d = this.chart3d.getScale(b.depth))
this.chart3d.frame3d = this.chart3d.get3dFrame()
}
} function C () { this.is3d() && (this.isDirtyBox = !0) } function A () { this.chart3d && this.is3d() && (this.chart3d.frame3d = this.chart3d.get3dFrame()) } function B () { this.chart3d || (this.chart3d = new F(this)) } function m (b) { return this.is3d() || b.apply(this, [].slice.call(arguments, 1)) } function t (b) { var e = this.series.length; if (this.is3d()) for (;e--;)b = this.series[e], b.translate(), b.render(); else b.call(this) } function w (b) {
b.apply(this, [].slice.call(arguments, 1)); this.is3d() &&
(this.container.className += ' highcharts-3d-chart')
} var F = (function () {
function e (b) { this.frame3d = void 0; this.chart = b }e.prototype.get3dFrame = function () {
var e = this.chart; var g = e.options.chart.options3d; var c = g.frame; var d = e.plotLeft; var a = e.plotLeft + e.plotWidth; var h = e.plotTop; var q = e.plotTop + e.plotHeight; var n = g.depth; var f = function (b) { b = v(b, e); return b > 0.5 ? 1 : b < -0.5 ? -1 : 0 }; var u = f([{ x: d, y: q, z: n }, { x: a, y: q, z: n }, { x: a, y: q, z: 0 }, { x: d, y: q, z: 0 }]); var m = f([{ x: d, y: h, z: 0 }, { x: a, y: h, z: 0 }, { x: a, y: h, z: n }, { x: d, y: h, z: n }]); var k = f([{ x: d, y: h, z: 0 }, { x: d, y: h, z: n }, {
x: d,
y: q,
z: n
}, { x: d, y: q, z: 0 }]); var p = f([{ x: a, y: h, z: n }, { x: a, y: h, z: 0 }, { x: a, y: q, z: 0 }, { x: a, y: q, z: n }]); var l = f([{ x: d, y: q, z: 0 }, { x: a, y: q, z: 0 }, { x: a, y: h, z: 0 }, { x: d, y: h, z: 0 }]); f = f([{ x: d, y: h, z: n }, { x: a, y: h, z: n }, { x: a, y: q, z: n }, { x: d, y: q, z: n }]); var C = !1; var G = !1; var B = !1; var A = !1; [].concat(e.xAxis, e.yAxis, e.zAxis).forEach(function (b) { b && (b.horiz ? b.opposite ? G = !0 : C = !0 : b.opposite ? A = !0 : B = !0) }); var t = function (e, c, d) {
for (var g = ['size', 'color', 'visible'], a = {}, q = 0; q < g.length; q++) {
for (var h = g[q], n = 0; n < e.length; n++) {
if (typeof e[n] === 'object') {
var f = e[n][h]
if (typeof f !== 'undefined' && f !== null) { a[h] = f; break }
}
}
}e = d; !0 === a.visible || !1 === a.visible ? e = a.visible : a.visible === 'auto' && (e = c > 0); return { size: b(a.size, 1), color: b(a.color, 'none'), frontFacing: c > 0, visible: e }
}; c = { axes: {}, bottom: t([c.bottom, c.top, c], u, C), top: t([c.top, c.bottom, c], m, G), left: t([c.left, c.right, c.side, c], k, B), right: t([c.right, c.left, c.side, c], p, A), back: t([c.back, c.front, c], f, !0), front: t([c.front, c.back, c], l, !1) }; g.axisLabelPosition === 'auto' ? (p = function (b, e) {
return b.visible !== e.visible || b.visible &&
e.visible && b.frontFacing !== e.frontFacing
}, g = [], p(c.left, c.front) && g.push({ y: (h + q) / 2, x: d, z: 0, xDir: { x: 1, y: 0, z: 0 } }), p(c.left, c.back) && g.push({ y: (h + q) / 2, x: d, z: n, xDir: { x: 0, y: 0, z: -1 } }), p(c.right, c.front) && g.push({ y: (h + q) / 2, x: a, z: 0, xDir: { x: 0, y: 0, z: 1 } }), p(c.right, c.back) && g.push({ y: (h + q) / 2, x: a, z: n, xDir: { x: -1, y: 0, z: 0 } }), u = [], p(c.bottom, c.front) && u.push({ x: (d + a) / 2, y: q, z: 0, xDir: { x: 1, y: 0, z: 0 } }), p(c.bottom, c.back) && u.push({ x: (d + a) / 2, y: q, z: n, xDir: { x: -1, y: 0, z: 0 } }), m = [], p(c.top, c.front) && m.push({
x: (d + a) / 2,
y: h,
z: 0,
xDir: { x: 1, y: 0, z: 0 }
}), p(c.top, c.back) && m.push({ x: (d + a) / 2, y: h, z: n, xDir: { x: -1, y: 0, z: 0 } }), k = [], p(c.bottom, c.left) && k.push({ z: (0 + n) / 2, y: q, x: d, xDir: { x: 0, y: 0, z: -1 } }), p(c.bottom, c.right) && k.push({ z: (0 + n) / 2, y: q, x: a, xDir: { x: 0, y: 0, z: 1 } }), q = [], p(c.top, c.left) && q.push({ z: (0 + n) / 2, y: h, x: d, xDir: { x: 0, y: 0, z: -1 } }), p(c.top, c.right) && q.push({ z: (0 + n) / 2, y: h, x: a, xDir: { x: 0, y: 0, z: 1 } }), d = function (b, c, d) {
if (b.length === 0) return null; if (b.length === 1) return b[0]; for (var g = z(b, e, !1), a = 0, q = 1; q < g.length; q++) {
d * g[q][c] > d * g[a][c] ? a =
q : d * g[q][c] === d * g[a][c] && g[q].z < g[a].z && (a = q)
} return b[a]
}, c.axes = { y: { left: d(g, 'x', -1), right: d(g, 'x', 1) }, x: { top: d(m, 'y', -1), bottom: d(u, 'y', 1) }, z: { top: d(q, 'y', -1), bottom: d(k, 'y', 1) } }) : c.axes = { y: { left: { x: d, z: 0, xDir: { x: 1, y: 0, z: 0 } }, right: { x: a, z: 0, xDir: { x: 0, y: 0, z: 1 } } }, x: { top: { y: h, z: 0, xDir: { x: 1, y: 0, z: 0 } }, bottom: { y: q, z: 0, xDir: { x: 1, y: 0, z: 0 } } }, z: { top: { x: B ? a : d, y: h, xDir: B ? { x: 0, y: 0, z: 1 } : { x: 0, y: 0, z: -1 } }, bottom: { x: B ? a : d, y: q, xDir: B ? { x: 0, y: 0, z: 1 } : { x: 0, y: 0, z: -1 } } } }; return c
}; e.prototype.getScale = function (b) {
var e =
this.chart; var c = e.plotLeft; var d = e.plotWidth + c; var a = e.plotTop; var q = e.plotHeight + a; var h = c + e.plotWidth / 2; var n = a + e.plotHeight / 2; var f = Number.MAX_VALUE; var u = -Number.MAX_VALUE; var m = Number.MAX_VALUE; var p = -Number.MAX_VALUE; var k = 1; var l = [{ x: c, y: a, z: 0 }, { x: c, y: a, z: b }]; [0, 1].forEach(function (b) { l.push({ x: d, y: l[b].y, z: l[b].z }) }); [0, 1, 2, 3].forEach(function (b) { l.push({ x: l[b].x, y: q, z: l[b].z }) }); l = z(l, e, !1); l.forEach(function (b) { f = Math.min(f, b.x); u = Math.max(u, b.x); m = Math.min(m, b.y); p = Math.max(p, b.y) }); c > f && (k = Math.min(k, 1 - Math.abs((c + h) / (f + h)) % 1))
d < u && (k = Math.min(k, (d - h) / (u - h))); a > m && (k = m < 0 ? Math.min(k, (a + n) / (-m + a + n)) : Math.min(k, 1 - (a + n) / (m + n) % 1)); q < p && (k = Math.min(k, Math.abs((q - n) / (p - n)))); return k
}; return e
}()); a.Composition = F; a.defaultOptions = { chart: { options3d: { enabled: !1, alpha: 0, beta: 0, depth: 100, fitToPlot: !0, viewDistance: 25, axisLabelPosition: null, frame: { visible: 'default', size: 1, bottom: {}, top: {}, left: {}, right: {}, back: {}, front: {} } } } }; a.compose = function (b, f) {
var g = b.prototype; f = f.prototype; g.is3d = function () {
return !(!this.options.chart.options3d ||
!this.options.chart.options3d.enabled)
}; g.propsRequireDirtyBox.push('chart.options3d'); g.propsRequireUpdateSeries.push('chart.options3d'); f.matrixSetter = function () { if (this.pos < 1 && (d(this.start) || d(this.end))) { var b = this.start || [1, 0, 0, 1, 0, 0]; var e = this.end || [1, 0, 0, 1, 0, 0]; var c = []; for (var a = 0; a < 6; a++)c.push(this.pos * e[a] + (1 - this.pos) * b[a]) } else c = this.end; this.elem.attr(this.prop, c, null, !0) }; c(!0, x, a.defaultOptions); l(b, 'init', B); l(b, 'addSeries', e); l(b, 'afterDrawChartBox', n); l(b, 'afterGetContainer', u)
l(b, 'afterInit', q); l(b, 'afterSetChartSize', k); l(b, 'beforeRedraw', C); l(b, 'beforeRender', A); p(g, 'isInsidePlot', m); p(b, 'renderSeries', t); p(b, 'setClassName', w)
}
})(k || (k = {})); ''; return k
}); E(a, 'Core/Axis/ZAxis.js', [a['Core/Axis/Axis.js'], a['Core/Utilities.js']], function (a, w) {
var t = this && this.__extends || (function () {
var a = function (c, b) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (b, c) { b.__proto__ = c } || function (b, c) { for (var a in c)c.hasOwnProperty(a) && (b[a] = c[a]) }; return a(c, b) }; return function (c,
b) { function d () { this.constructor = c }a(c, b); c.prototype = b === null ? Object.create(b) : (d.prototype = b.prototype, new d()) }
}()); var F = w.addEvent; var f = w.merge; var z = w.pick; var v = w.splat; var x = (function () {
function a () {}a.compose = function (c) { F(c, 'afterGetAxes', a.onAfterGetAxes); c = c.prototype; c.addZAxis = a.wrapAddZAxis; c.collectionsWithInit.zAxis = [c.addZAxis]; c.collectionsWithUpdate.push('zAxis') }; a.onAfterGetAxes = function () {
var c = this; var b = this.options; b = b.zAxis = v(b.zAxis || {}); c.is3d() && (c.zAxis = [], b.forEach(function (b, a) {
b.index = a; b.isX =
!0; c.addZAxis(b).setScale()
}))
}; a.wrapAddZAxis = function (c) { return new l(this, c) }; return a
}()); var l = (function (a) {
function c (b, c) { b = a.call(this, b, c) || this; b.isZAxis = !0; return b }t(c, a); c.prototype.getSeriesExtremes = function () {
var b = this; var c = b.chart; b.hasVisibleSeries = !1; b.dataMin = b.dataMax = b.ignoreMinPadding = b.ignoreMaxPadding = void 0; b.stacking && b.stacking.buildStacks(); b.series.forEach(function (a) {
if (a.visible || !c.options.chart.ignoreHiddenSeries) {
b.hasVisibleSeries = !0, a = a.zData, a.length && (b.dataMin = Math.min(z(b.dataMin,
a[0]), Math.min.apply(null, a)), b.dataMax = Math.max(z(b.dataMax, a[0]), Math.max.apply(null, a)))
}
})
}; c.prototype.setAxisSize = function () { var b = this.chart; a.prototype.setAxisSize.call(this); this.width = this.len = b.options.chart.options3d && b.options.chart.options3d.depth || 0; this.right = b.chartWidth - this.width - this.left }; c.prototype.setOptions = function (b) { b = f({ offset: 0, lineWidth: 0 }, b); this.isZAxis = !0; a.prototype.setOptions.call(this, b); this.coll = 'zAxis' }; c.ZChartComposition = x; return c
}(a)); return l
}); E(a, 'Core/Axis/Tick3D.js',
[a['Core/Utilities.js']], function (a) {
var w = a.addEvent; var t = a.extend; var F = a.wrap; return (function () {
function a () {}a.compose = function (f) { w(f, 'afterGetLabelPosition', a.onAfterGetLabelPosition); F(f.prototype, 'getMarkPath', a.wrapGetMarkPath) }; a.onAfterGetLabelPosition = function (a) { var f = this.axis.axis3D; f && t(a.pos, f.fix3dPosition(a.pos)) }; a.wrapGetMarkPath = function (a) {
var f = this.axis.axis3D; var t = a.apply(this, [].slice.call(arguments, 1)); if (f) {
var l = t[0]; var d = t[1]; if (l[0] === 'M' && d[0] === 'L') {
return f = [f.fix3dPosition({
x: l[1],
y: l[2],
z: 0
}), f.fix3dPosition({ x: d[1], y: d[2], z: 0 })], this.axis.chart.renderer.toLineSegments(f)
}
} return t
}; return a
}())
}); E(a, 'Core/Axis/Axis3D.js', [a['Core/Globals.js'], a['Extensions/Math3D.js'], a['Core/Axis/Tick.js'], a['Core/Axis/Tick3D.js'], a['Core/Utilities.js']], function (a, w, t, D, f) {
var z = a.deg2rad; var v = w.perspective; var x = w.perspective3D; var l = w.shapeArea; var d = f.addEvent; var c = f.merge; var b = f.pick; var p = f.wrap; var k = (function () {
function c (b) { this.axis = b }c.prototype.fix3dPosition = function (e, c) {
var a = this.axis; var d = a.chart; if (a.coll ===
'colorAxis' || !d.chart3d || !d.is3d()) return e; var n = z * d.options.chart.options3d.alpha; var f = z * d.options.chart.options3d.beta; var p = b(c && a.options.title.position3d, a.options.labels.position3d); c = b(c && a.options.title.skew3d, a.options.labels.skew3d); var k = d.chart3d.frame3d; var m = d.plotLeft; var t = d.plotWidth + m; var A = d.plotTop; var x = d.plotHeight + A; var h = d = 0; var r = { x: 0, y: 1, z: 0 }; var g = !1; e = a.axis3D.swapZ({ x: e.x, y: e.y, z: 0 }); if (a.isZAxis) {
if (a.opposite) {
if (k.axes.z.top === null) return {}; h = e.y - A; e.x = k.axes.z.top.x; e.y = k.axes.z.top.y; m = k.axes.z.top.xDir
g = !k.top.frontFacing
} else { if (k.axes.z.bottom === null) return {}; h = e.y - x; e.x = k.axes.z.bottom.x; e.y = k.axes.z.bottom.y; m = k.axes.z.bottom.xDir; g = !k.bottom.frontFacing }
} else if (a.horiz) if (a.opposite) { if (k.axes.x.top === null) return {}; h = e.y - A; e.y = k.axes.x.top.y; e.z = k.axes.x.top.z; m = k.axes.x.top.xDir; g = !k.top.frontFacing } else { if (k.axes.x.bottom === null) return {}; h = e.y - x; e.y = k.axes.x.bottom.y; e.z = k.axes.x.bottom.z; m = k.axes.x.bottom.xDir; g = !k.bottom.frontFacing } else if (a.opposite) {
if (k.axes.y.right === null) return {}
d = e.x - t; e.x = k.axes.y.right.x; e.z = k.axes.y.right.z; m = k.axes.y.right.xDir; m = { x: m.z, y: m.y, z: -m.x }
} else { if (k.axes.y.left === null) return {}; d = e.x - m; e.x = k.axes.y.left.x; e.z = k.axes.y.left.z; m = k.axes.y.left.xDir }p !== 'chart' && (p === 'flap' ? a.horiz ? (f = Math.sin(n), n = Math.cos(n), a.opposite && (f = -f), g && (f = -f), r = { x: m.z * f, y: n, z: -m.x * f }) : m = { x: Math.cos(f), y: 0, z: Math.sin(f) } : p === 'ortho' ? a.horiz ? (r = Math.cos(n), p = Math.sin(f) * r, n = -Math.sin(n), f = -r * Math.cos(f), r = { x: m.y * f - m.z * n, y: m.z * p - m.x * f, z: m.x * n - m.y * p }, n = 1 / Math.sqrt(r.x *
r.x + r.y * r.y + r.z * r.z), g && (n = -n), r = { x: n * r.x, y: n * r.y, z: n * r.z }) : m = { x: Math.cos(f), y: 0, z: Math.sin(f) } : a.horiz ? r = { x: Math.sin(f) * Math.sin(n), y: Math.cos(n), z: -Math.cos(f) * Math.sin(n) } : m = { x: Math.cos(f), y: 0, z: Math.sin(f) }); e.x += d * m.x + h * r.x; e.y += d * m.y + h * r.y; e.z += d * m.z + h * r.z; d = v([e], a.chart)[0]; c && (l(v([e, { x: e.x + m.x, y: e.y + m.y, z: e.z + m.z }, { x: e.x + r.x, y: e.y + r.y, z: e.z + r.z }], a.chart)) < 0 && (m = { x: -m.x, y: -m.y, z: -m.z }), e = v([{ x: e.x, y: e.y, z: e.z }, { x: e.x + m.x, y: e.y + m.y, z: e.z + m.z }, { x: e.x + r.x, y: e.y + r.y, z: e.z + r.z }], a.chart), d.matrix =
[e[1].x - e[0].x, e[1].y - e[0].y, e[2].x - e[0].x, e[2].y - e[0].y, d.x, d.y], d.matrix[4] -= d.x * d.matrix[0] + d.y * d.matrix[2], d.matrix[5] -= d.x * d.matrix[1] + d.y * d.matrix[3]); return d
}; c.prototype.swapZ = function (b, a) { var e = this.axis; return e.isZAxis ? (a = a ? 0 : e.chart.plotLeft, { x: a + b.z, y: b.y, z: b.x - a }) : b }; return c
}()); return (function () {
function a () {}a.compose = function (b) {
c(!0, b.defaultOptions, a.defaultOptions); b.keepProps.push('axis3D'); d(b, 'init', a.onInit); d(b, 'afterSetOptions', a.onAfterSetOptions); d(b, 'drawCrosshair',
a.onDrawCrosshair); b = b.prototype; p(b, 'getLinePath', a.wrapGetLinePath); p(b, 'getPlotBandPath', a.wrapGetPlotBandPath); p(b, 'getPlotLinePath', a.wrapGetPlotLinePath); p(b, 'getSlotWidth', a.wrapGetSlotWidth); p(b, 'getTitlePosition', a.wrapGetTitlePosition); D.compose(t)
}; a.onAfterSetOptions = function () { var a = this.chart; var c = this.options; a.is3d && a.is3d() && this.coll !== 'colorAxis' && (c.tickWidth = b(c.tickWidth, 0), c.gridLineWidth = b(c.gridLineWidth, 1)) }; a.onDrawCrosshair = function (b) {
this.chart.is3d() && this.coll !== 'colorAxis' &&
b.point && (b.point.crosshairPos = this.isXAxis ? b.point.axisXpos : this.len - b.point.axisYpos)
}; a.onInit = function () { this.axis3D || (this.axis3D = new k(this)) }; a.wrapGetLinePath = function (b) { return this.chart.is3d() && this.coll !== 'colorAxis' ? [] : b.apply(this, [].slice.call(arguments, 1)) }; a.wrapGetPlotBandPath = function (b) {
if (!this.chart.is3d() || this.coll === 'colorAxis') return b.apply(this, [].slice.call(arguments, 1)); var a = arguments; var c = a[2]; var e = []; a = this.getPlotLinePath({ value: a[1] }); c = this.getPlotLinePath({ value: c })
if (a && c) for (var d = 0; d < a.length; d += 2) { var f = a[d]; var k = a[d + 1]; var p = c[d]; var m = c[d + 1]; f[0] === 'M' && k[0] === 'L' && p[0] === 'M' && m[0] === 'L' && e.push(f, k, m, ['L', p[1], p[2]], ['Z']) } return e
}; a.wrapGetPlotLinePath = function (b) {
var a = this.axis3D; var c = this.chart; var e = b.apply(this, [].slice.call(arguments, 1)); if (this.coll === 'colorAxis' || !c.chart3d || !c.is3d() || e === null) return e; var d = c.options.chart.options3d; var f = this.isZAxis ? c.plotWidth : d.depth; d = c.chart3d.frame3d; var k = e[0]; var p = e[1]; e = []; k[0] === 'M' && p[0] === 'L' && (a = [a.swapZ({
x: k[1],
y: k[2],
z: 0
}), a.swapZ({ x: k[1], y: k[2], z: f }), a.swapZ({ x: p[1], y: p[2], z: 0 }), a.swapZ({ x: p[1], y: p[2], z: f })], this.horiz ? (this.isZAxis ? (d.left.visible && e.push(a[0], a[2]), d.right.visible && e.push(a[1], a[3])) : (d.front.visible && e.push(a[0], a[2]), d.back.visible && e.push(a[1], a[3])), d.top.visible && e.push(a[0], a[1]), d.bottom.visible && e.push(a[2], a[3])) : (d.front.visible && e.push(a[0], a[2]), d.back.visible && e.push(a[1], a[3]), d.left.visible && e.push(a[0], a[1]), d.right.visible && e.push(a[2], a[3])), e = v(e, this.chart, !1)); return c.renderer.toLineSegments(e)
}
a.wrapGetSlotWidth = function (a, c) {
var e = this.chart; var d = this.ticks; var f = this.gridGroup; if (this.categories && e.frameShapes && e.is3d() && f && c && c.label) {
f = f.element.childNodes[0].getBBox(); var n = e.frameShapes.left.getBBox(); var k = e.options.chart.options3d; e = { x: e.plotWidth / 2, y: e.plotHeight / 2, z: k.depth / 2, vd: b(k.depth, 1) * b(k.viewDistance, 0) }; k = c.pos; var p = d[k - 1]; var m = d[k + 1]; var l = d = void 0; k !== 0 && p && p.label && p.label.xy && (d = x({ x: p.label.xy.x, y: p.label.xy.y, z: null }, e, e.vd)); m && m.label && m.label.xy && (l = x({
x: m.label.xy.x,
y: m.label.xy.y,
z: null
}, e, e.vd)); k = { x: c.label.xy.x, y: c.label.xy.y, z: null }; k = x(k, e, e.vd); return Math.abs(d ? k.x - d.x : l ? l.x - k.x : f.x - n.x)
} return a.apply(this, [].slice.call(arguments, 1))
}; a.wrapGetTitlePosition = function (b) { var a = b.apply(this, [].slice.call(arguments, 1)); return this.axis3D ? this.axis3D.fix3dPosition(a, !0) : a }; a.defaultOptions = { labels: { position3d: 'offset', skew3d: !1 }, title: { position3d: null, skew3d: null } }; return a
}())
}); E(a, 'Core/Series/Series3D.js', [a['Extensions/Math3D.js'], a['Core/Series/Series.js'], a['Core/Utilities.js']],
function (a, w, t) {
var F = this && this.__extends || (function () { var a = function (c, b) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (b, a) { b.__proto__ = a } || function (b, a) { for (var c in a)a.hasOwnProperty(c) && (b[c] = a[c]) }; return a(c, b) }; return function (c, b) { function d () { this.constructor = c }a(c, b); c.prototype = b === null ? Object.create(b) : (d.prototype = b.prototype, new d()) } }()); var f = a.perspective; a = t.addEvent; var z = t.extend; var v = t.merge; var x = t.pick; var l = t.isNumber; t = (function (a) {
function c () {
return a !== null && a.apply(this,
arguments) || this
}F(c, a); c.prototype.translate = function () { a.prototype.translate.apply(this, arguments); this.chart.is3d() && this.translate3dPoints() }; c.prototype.translate3dPoints = function () {
var b = this.options; var a = this.chart; var c = x(this.zAxis, a.options.zAxis[0]); var d = []; var e; var n = []; this.zPadding = (b.stacking ? l(b.stack) ? b.stack : 0 : this.index || 0) * (b.depth || 0 + (b.groupZPadding || 1)); for (e = 0; e < this.data.length; e++) {
b = this.data[e]; if (c && c.translate) {
var u = c.logarithmic && c.val2lin ? c.val2lin(b.z) : b.z; b.plotZ = c.translate(u)
b.isInside = b.isInside ? u >= c.min && u <= c.max : !1
} else b.plotZ = this.zPadding; b.axisXpos = b.plotX; b.axisYpos = b.plotY; b.axisZpos = b.plotZ; d.push({ x: b.plotX, y: b.plotY, z: b.plotZ }); n.push(b.plotX || 0)
} this.rawPointsX = n; a = f(d, a, !0); for (e = 0; e < this.data.length; e++)b = this.data[e], c = a[e], b.plotX = c.x, b.plotY = c.y, b.plotZ = c.z
}; c.defaultOptions = v(w.defaultOptions); return c
}(w)); a(w, 'afterTranslate', function () { this.chart.is3d() && this.translate3dPoints() }); z(w.prototype, { translate3dPoints: t.prototype.translate3dPoints }); return t
})
E(a, 'Series/Column3D/Column3DComposition.js', [a['Series/Column/ColumnSeries.js'], a['Core/Globals.js'], a['Core/Series/Series.js'], a['Extensions/Math3D.js'], a['Core/Series/SeriesRegistry.js'], a['Extensions/Stacking.js'], a['Core/Utilities.js']], function (a, w, t, D, f, z, v) {
function x (b, a) { var c = b.series; var e = { totalStacks: 0 }; var d; var f = 1; c.forEach(function (b) { d = A(b.options.stack, a ? 0 : c.length - 1 - b.index); e[d] ? e[d].series.push(b) : (e[d] = { series: [b], position: f }, f++) }); e.totalStacks = f + 1; return e } function l (b) {
var a = b.apply(this,
[].slice.call(arguments, 1)); this.chart.is3d && this.chart.is3d() && (a.stroke = this.options.edgeColor || a.fill, a['stroke-width'] = A(this.options.edgeWidth, 1)); return a
} function d (b, a, c) { var e = this.chart.is3d && this.chart.is3d(); e && (this.options.inactiveOtherPoints = !0); b.call(this, a, c); e && (this.options.inactiveOtherPoints = !1) } function c (b) { for (var a = [], c = 1; c < arguments.length; c++)a[c - 1] = arguments[c]; return this.series.chart.is3d() ? this.graphic && this.graphic.element.nodeName !== 'g' : b.apply(this, a) } var b = a.prototype
var p = w.svg; var k = D.perspective; w = v.addEvent; var A = v.pick; v = v.wrap; v(b, 'translate', function (b) { b.apply(this, [].slice.call(arguments, 1)); this.chart.is3d() && this.translate3dShapes() }); v(t.prototype, 'justifyDataLabel', function (b) { return arguments[2].outside3dPlot ? !1 : b.apply(this, [].slice.call(arguments, 1)) }); b.translate3dPoints = function () {}; b.translate3dShapes = function () {
var b = this; var a = b.chart; var c = b.options; var d = c.depth; var f = (c.stacking ? c.stack || 0 : b.index) * (d + (c.groupZPadding || 1)); var p = b.borderWidth % 2 ? 0.5 : 0; var l; a.inverted &&
!b.yAxis.reversed && (p *= -1); !1 !== c.grouping && (f = 0); f += c.groupZPadding || 1; b.data.forEach(function (c) {
c.outside3dPlot = null; if (c.y !== null) {
var e = c.shapeArgs; var n = c.tooltipPos; var q; [['x', 'width'], ['y', 'height']].forEach(function (a) { q = e[a[0]] - p; q < 0 && (e[a[1]] += e[a[0]] + p, e[a[0]] = -p, q = 0); q + e[a[1]] > b[a[0] + 'Axis'].len && e[a[1]] !== 0 && (e[a[1]] = b[a[0] + 'Axis'].len - e[a[0]]); if (e[a[1]] !== 0 && (e[a[0]] >= b[a[0] + 'Axis'].len || e[a[0]] + e[a[1]] <= p)) { for (var d in e)e[d] = d === 'y' ? -9999 : 0; c.outside3dPlot = !0 } }); c.shapeType === 'rect' &&
(c.shapeType = 'cuboid'); e.z = f; e.depth = d; e.insidePlotArea = !0; l = { x: e.x + e.width / 2, y: e.y, z: f + d / 2 }; a.inverted && (l.x = e.height, l.y = c.clientX); c.plot3d = k([l], a, !0, !1)[0]; n = k([{ x: n[0], y: n[1], z: f + d / 2 }], a, !0, !1)[0]; c.tooltipPos = [n.x, n.y]
}
}); b.z = f
}; v(b, 'animate', function (b) {
if (this.chart.is3d()) {
var a = arguments[1]; var c = this.yAxis; var e = this; var d = this.yAxis.reversed; p && (a ? e.data.forEach(function (b) {
b.y !== null && (b.height = b.shapeArgs.height, b.shapey = b.shapeArgs.y, b.shapeArgs.height = 1, d || (b.shapeArgs.y = b.stackY ? b.plotY + c.translate(b.stackY)
: b.plotY + (b.negative ? -b.height : b.height)))
}) : (e.data.forEach(function (b) { if (b.y !== null && (b.shapeArgs.height = b.height, b.shapeArgs.y = b.shapey, b.graphic))b.graphic[b.outside3dPlot ? 'attr' : 'animate'](b.shapeArgs, e.options.animation) }), this.drawDataLabels()))
} else b.apply(this, [].slice.call(arguments, 1))
}); v(b, 'plotGroup', function (b, a, c, d, f, k) {
a !== 'dataLabelsGroup' && this.chart.is3d() && (this[a] && delete this[a], k && (this.chart.columnGroup || (this.chart.columnGroup = this.chart.renderer.g('columnGroup').add(k)),
this[a] = this.chart.columnGroup, this.chart.columnGroup.attr(this.getPlotBox()), this[a].survive = !0, a === 'group' || a === 'markerGroup')) && (arguments[3] = 'visible'); return b.apply(this, Array.prototype.slice.call(arguments, 1))
}); v(b, 'setVisible', function (b, a) {
var c = this; c.chart.is3d() && c.data.forEach(function (b) { b.visible = b.options.visible = a = typeof a === 'undefined' ? !A(c.visible, b.visible) : a; c.options.data[c.data.indexOf(b)] = b.options; b.graphic && b.graphic.attr({ visibility: a ? 'visible' : 'hidden' }) }); b.apply(this,
Array.prototype.slice.call(arguments, 1))
}); w(a, 'afterInit', function () { if (this.chart.is3d()) { var b = this.options; var a = b.grouping; var c = b.stacking; var d = this.yAxis.options.reversedStacks; var f = 0; if (typeof a === 'undefined' || a) { a = x(this.chart, c); f = b.stack || 0; for (c = 0; c < a[f].series.length && a[f].series[c] !== this; c++);f = 10 * (a.totalStacks - a[f].position) + (d ? c : -c); this.xAxis.reversed || (f = 10 * a.totalStacks - f) }b.depth = b.depth || 25; this.z = this.z || 0; b.zIndex = f } }); v(b, 'pointAttribs', l); v(b, 'setState', d); v(b.pointClass.prototype, 'hasNewShapeType',
c); f.seriesTypes.columnRange && (w = f.seriesTypes.columnrange.prototype, v(w, 'pointAttribs', l), v(w, 'setState', d), v(w.pointClass.prototype, 'hasNewShapeType', c), w.plotGroup = b.plotGroup, w.setVisible = b.setVisible); v(t.prototype, 'alignDataLabel', function (b, a, c, d, f) {
var e = this.chart; d.outside3dPlot = a.outside3dPlot; if (e.is3d() && this.is('column')) {
var p = this.options; var l = A(d.inside, !!this.options.stacking); var m = e.options.chart.options3d; var q = a.pointWidth / 2 || 0; p = { x: f.x + q, y: f.y, z: this.z + p.depth / 2 }; e.inverted && (l && (f.width =
0, p.x += a.shapeArgs.height / 2), m.alpha >= 90 && m.alpha <= 270 && (p.y += a.shapeArgs.width)); p = k([p], e, !0, !1)[0]; f.x = p.x - q; f.y = a.outside3dPlot ? -9E9 : p.y
}b.apply(this, [].slice.call(arguments, 1))
}); v(z.prototype, 'getStackBox', function (b, a, c, d, p, l, t, v) {
var e = b.apply(this, [].slice.call(arguments, 1)); if (a.is3d() && c.base) {
var q = +c.base.split(',')[0]; var n = a.series[q]; q = a.options.chart.options3d; n && n instanceof f.seriesTypes.column && (n = { x: e.x + (a.inverted ? t : l / 2), y: e.y, z: n.options.depth / 2 }, a.inverted && (e.width = 0, q.alpha >= 90 &&
q.alpha <= 270 && (n.y += l)), n = k([n], a, !0, !1)[0], e.x = n.x - l / 2, e.y = n.y)
} return e
}); ''; return a
}); E(a, 'Series/Pie3D/Pie3DPoint.js', [a['Core/Series/SeriesRegistry.js']], function (a) {
var w = this && this.__extends || (function () {
var a = function (f, t) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, f) { a.__proto__ = f } || function (a, f) { for (var l in f)f.hasOwnProperty(l) && (a[l] = f[l]) }; return a(f, t) }; return function (f, t) {
function v () { this.constructor = f }a(f, t); f.prototype = t === null ? Object.create(t) : (v.prototype =
t.prototype, new v())
}
}()); a = a.seriesTypes.pie.prototype.pointClass; var t = a.prototype.haloPath; return (function (a) { function f () { var f = a !== null && a.apply(this, arguments) || this; f.series = void 0; return f }w(f, a); f.prototype.haloPath = function () { return this.series.chart.is3d() ? [] : t.apply(this, arguments) }; return f }(a))
}); E(a, 'Series/Pie3D/Pie3DSeries.js', [a['Core/Globals.js'], a['Series/Pie3D/Pie3DPoint.js'], a['Core/Series/SeriesRegistry.js'], a['Core/Utilities.js']], function (a, w, t, D) {
var f = this && this.__extends ||
(function () { var a = function (d, c) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (b, a) { b.__proto__ = a } || function (b, a) { for (var c in a)a.hasOwnProperty(c) && (b[c] = a[c]) }; return a(d, c) }; return function (d, c) { function b () { this.constructor = d }a(d, c); d.prototype = c === null ? Object.create(c) : (b.prototype = c.prototype, new b()) } }()); var z = a.deg2rad; var v = a.svg; a = D.extend; var x = D.pick; t = (function (a) {
function d () { return a !== null && a.apply(this, arguments) || this }f(d, a); d.prototype.addPoint = function () {
a.prototype.addPoint.apply(this,
arguments); this.chart.is3d() && this.update(this.userOptions, !0)
}; d.prototype.animate = function (c) {
if (this.chart.is3d()) {
var b = this.options.animation; var d = this.center; var f = this.group; var l = this.markerGroup; v && (!0 === b && (b = {}), c ? (f.oldtranslateX = x(f.oldtranslateX, f.translateX), f.oldtranslateY = x(f.oldtranslateY, f.translateY), d = { translateX: d[0], translateY: d[1], scaleX: 0.001, scaleY: 0.001 }, f.attr(d), l && (l.attrSetters = f.attrSetters, l.attr(d))) : (d = { translateX: f.oldtranslateX, translateY: f.oldtranslateY, scaleX: 1, scaleY: 1 },
f.animate(d, b), l && l.animate(d, b)))
} else a.prototype.animate.apply(this, arguments)
}; d.prototype.drawDataLabels = function () {
if (this.chart.is3d()) { var c = this.chart.options.chart.options3d; this.data.forEach(function (b) { var a = b.shapeArgs; var d = a.r; var f = (a.start + a.end) / 2; b = b.labelPosition; var e = b.connectorPosition; var l = -d * (1 - Math.cos((a.alpha || c.alpha) * z)) * Math.sin(f); var t = d * (Math.cos((a.beta || c.beta) * z) - 1) * Math.cos(f); [b.natural, e.breakAt, e.touchingSliceAt].forEach(function (b) { b.x += t; b.y += l }) }) }a.prototype.drawDataLabels.apply(this,
arguments)
}; d.prototype.pointAttribs = function (c) { var b = a.prototype.pointAttribs.apply(this, arguments); var d = this.options; this.chart.is3d() && !this.chart.styledMode && (b.stroke = d.edgeColor || c.color || this.color, b['stroke-width'] = x(d.edgeWidth, 1)); return b }; d.prototype.translate = function () {
a.prototype.translate.apply(this, arguments); if (this.chart.is3d()) {
var c = this; var b = c.options; var d = b.depth || 0; var f = c.chart.options.chart.options3d; var l = f.alpha; var e = f.beta; var n = b.stacking ? (b.stack || 0) * d : c._i * d; n += d / 2; !1 !== b.grouping && (n = 0)
c.data.forEach(function (a) { var f = a.shapeArgs; a.shapeType = 'arc3d'; f.z = n; f.depth = 0.75 * d; f.alpha = l; f.beta = e; f.center = c.center; f = (f.end + f.start) / 2; a.slicedTranslation = { translateX: Math.round(Math.cos(f) * b.slicedOffset * Math.cos(l * z)), translateY: Math.round(Math.sin(f) * b.slicedOffset * Math.cos(l * z)) } })
}
}; return d
}(t.seriesTypes.pie)); a(t.prototype, { pointClass: w }); ''; return t
}); E(a, 'Series/Pie3D/Pie3DComposition.js', [a['Series/Pie3D/Pie3DPoint.js'], a['Series/Pie3D/Pie3DSeries.js'], a['Core/Series/SeriesRegistry.js']],
function (a, w, t) { t.seriesTypes.pie.prototype.pointClass.prototype.haloPath = a.prototype.haloPath; t.seriesTypes.pie = w }); E(a, 'Series/Scatter3D/Scatter3DPoint.js', [a['Series/Scatter/ScatterSeries.js'], a['Core/Utilities.js']], function (a, w) {
var t = this && this.__extends || (function () {
var a = function (f, t) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, f) { a.__proto__ = f } || function (a, f) { for (var d in f)f.hasOwnProperty(d) && (a[d] = f[d]) }; return a(f, t) }; return function (f, t) {
function v () {
this.constructor =
f
}a(f, t); f.prototype = t === null ? Object.create(t) : (v.prototype = t.prototype, new v())
}
}()); var F = w.defined; return (function (a) { function f () { var f = a !== null && a.apply(this, arguments) || this; f.options = void 0; f.series = void 0; return f }t(f, a); f.prototype.applyOptions = function () { a.prototype.applyOptions.apply(this, arguments); F(this.z) || (this.z = 0); return this }; return f }(a.prototype.pointClass))
}); E(a, 'Series/Scatter3D/Scatter3DSeries.js', [a['Extensions/Math3D.js'], a['Series/Scatter3D/Scatter3DPoint.js'], a['Series/Scatter/ScatterSeries.js'],
a['Core/Series/SeriesRegistry.js'], a['Core/Utilities.js']], function (a, w, t, D, f) {
var z = this && this.__extends || (function () { var a = function (d, c) { a = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (a, c) { a.__proto__ = c } || function (a, c) { for (var b in c)c.hasOwnProperty(b) && (a[b] = c[b]) }; return a(d, c) }; return function (d, c) { function b () { this.constructor = d }a(d, c); d.prototype = c === null ? Object.create(c) : (b.prototype = c.prototype, new b()) } }()); var v = a.pointCameraDistance; a = f.extend; var x = f.merge; f = (function (a) {
function d () {
var c =
a !== null && a.apply(this, arguments) || this; c.data = void 0; c.options = void 0; c.points = void 0; return c
}z(d, a); d.prototype.pointAttribs = function (c) { var b = a.prototype.pointAttribs.apply(this, arguments); this.chart.is3d() && c && (b.zIndex = v(c, this.chart)); return b }; d.defaultOptions = x(t.defaultOptions, { tooltip: { pointFormat: 'x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>z: <b>{point.z}</b><br/>' } }); return d
}(t)); a(f.prototype, {
axisTypes: ['xAxis', 'yAxis', 'zAxis'],
directTouch: !0,
parallelArrays: ['x', 'y', 'z'],
pointArrayMap: ['x',
'y', 'z'],
pointClass: w
}); D.registerSeriesType('scatter3d', f); ''; return f
}); E(a, 'Series/Area3DSeries.js', [a['Extensions/Math3D.js'], a['Core/Series/SeriesRegistry.js'], a['Core/Utilities.js']], function (a, w, t) {
var F = a.perspective; a = w.seriesTypes; var f = a.line; var z = t.pick; t = t.wrap; t(a.area.prototype, 'getGraphPath', function (a) {
var t = a.apply(this, [].slice.call(arguments, 1)); if (!this.chart.is3d()) return t; var l = f.prototype.getGraphPath; var d = this.options; var c = []; var b = []; var p = z(d.connectNulls, d.stacking === 'percent')
var k = Math.round(this.yAxis.getThreshold(d.threshold)); if (this.rawPointsX) for (var v = 0; v < this.points.length; v++)c.push({ x: this.rawPointsX[v], y: d.stacking ? this.points[v].yBottom : k, z: this.zPadding }); d = this.chart.options.chart.options3d; c = F(c, this.chart, !0).map(function (a) { return { plotX: a.x, plotY: a.y, plotZ: a.z } }); this.group && d && d.depth && d.beta && (this.markerGroup && (this.markerGroup.add(this.group), this.markerGroup.attr({ translateX: 0, translateY: 0 })), this.group.attr({
zIndex: Math.max(1, d.beta > 270 || d.beta < 90 ? d.depth -
Math.round(this.zPadding || 0) : Math.round(this.zPadding || 0))
})); c.reversed = !0; c = l.call(this, c, !0, !0); c[0] && c[0][0] === 'M' && (c[0] = ['L', c[0][1], c[0][2]]); this.areaPath && (c = this.areaPath.splice(0, this.areaPath.length / 2).concat(c), c.xMap = this.areaPath.xMap, this.areaPath = c, l.call(this, b, !1, p)); return t
})
}); E(a, 'masters/highcharts-3d.src.js', [a['Core/Globals.js'], a['Core/Renderer/SVG/SVGRenderer3D.js'], a['Core/Chart/Chart3D.js'], a['Core/Axis/ZAxis.js'], a['Core/Axis/Axis3D.js']], function (a, w, t, D, f) {
w.compose(a.SVGRenderer)
t.compose(a.Chart, a.Fx); D.ZChartComposition.compose(a.Chart); f.compose(a.Axis)
})
})
// # sourceMappingURL=highcharts-3d.js.map

2558
public/cdn/highcharts@9.2.2.js
File diff suppressed because it is too large
View File

408
public/cdn/infographic.js

@ -0,0 +1,408 @@
(function (root, factory) {
if (typeof define === "function" && define.amd) {
// AMD. Register as an anonymous module.
define(["exports", "echarts"], factory);
} else if (typeof exports === "object" && typeof exports.nodeName !== "string") {
// CommonJS
factory(exports, require("echarts"));
} else {
// Browser globals
factory({}, root.echarts);
}
})(this, function (exports, echarts) {
var log = function (msg) {
if (typeof console !== "undefined") {
console && console.error && console.error(msg);
}
};
if (!echarts) {
log("ECharts is not Loaded");
return;
}
echarts.registerTheme("infographic", {
color: [
"#c1232b",
"#27727b",
"#fcce10",
"#e87c25",
"#b5c334",
"#fe8463",
"#9bca63",
"#fad860",
"#f3a43b",
"#60c0dd",
"#d7504b",
"#c6e579",
"#f4e001",
"#f0805a",
"#26c0c0"
],
backgroundColor: "rgba(0,0,0,0)",
textStyle: {},
title: {
textStyle: {
color: "#27727b"
},
subtextStyle: {
color: "#aaaaaa"
}
},
line: {
itemStyle: {
borderWidth: 1
},
lineStyle: {
width: "3"
},
symbolSize: "5",
symbol: "emptyCircle",
smooth: false
},
radar: {
itemStyle: {
borderWidth: 1
},
lineStyle: {
width: "3"
},
symbolSize: "5",
symbol: "emptyCircle",
smooth: false
},
bar: {
itemStyle: {
barBorderWidth: 0,
barBorderColor: "#ccc"
}
},
pie: {
itemStyle: {
borderWidth: 0,
borderColor: "#ccc"
}
},
scatter: {
itemStyle: {
borderWidth: 0,
borderColor: "#ccc"
}
},
boxplot: {
itemStyle: {
borderWidth: 0,
borderColor: "#ccc"
}
},
parallel: {
itemStyle: {
borderWidth: 0,
borderColor: "#ccc"
}
},
sankey: {
itemStyle: {
borderWidth: 0,
borderColor: "#ccc"
}
},
funnel: {
itemStyle: {
borderWidth: 0,
borderColor: "#ccc"
}
},
gauge: {
itemStyle: {
borderWidth: 0,
borderColor: "#ccc"
}
},
candlestick: {
itemStyle: {
color: "#c1232b",
color0: "#b5c334",
borderColor: "#c1232b",
borderColor0: "#b5c334",
borderWidth: 1
}
},
graph: {
itemStyle: {
borderWidth: 0,
borderColor: "#ccc"
},
lineStyle: {
width: 1,
color: "#aaaaaa"
},
symbolSize: "5",
symbol: "emptyCircle",
smooth: false,
color: [
"#c1232b",
"#27727b",
"#fcce10",
"#e87c25",
"#b5c334",
"#fe8463",
"#9bca63",
"#fad860",
"#f3a43b",
"#60c0dd",
"#d7504b",
"#c6e579",
"#f4e001",
"#f0805a",
"#26c0c0"
],
label: {
color: "#eeeeee"
}
},
map: {
itemStyle: {
areaColor: "#dddddd",
borderColor: "#eeeeee",
borderWidth: 0.5
},
label: {
color: "#c1232b"
},
emphasis: {
itemStyle: {
areaColor: "#fe994e",
borderColor: "#444",
borderWidth: 1
},
label: {
color: "rgb(100,0,0)"
}
}
},
geo: {
itemStyle: {
areaColor: "#dddddd",
borderColor: "#eeeeee",
borderWidth: 0.5
},
label: {
color: "#c1232b"
},
emphasis: {
itemStyle: {
areaColor: "#fe994e",
borderColor: "#444",
borderWidth: 1
},
label: {
color: "rgb(100,0,0)"
}
}
},
categoryAxis: {
axisLine: {
show: true,
lineStyle: {
color: "#27727b"
}
},
axisTick: {
show: true,
lineStyle: {
color: "#27727b"
}
},
axisLabel: {
show: true,
color: "#333"
},
splitLine: {
show: false,
lineStyle: {
color: ["#ccc"]
}
},
splitArea: {
show: false,
areaStyle: {
color: ["rgba(250,250,250,0.3)", "rgba(200,200,200,0.3)"]
}
}
},
valueAxis: {
axisLine: {
show: false,
lineStyle: {
color: "#333"
}
},
axisTick: {
show: false,
lineStyle: {
color: "#333"
}
},
axisLabel: {
show: true,
color: "#333"
},
splitLine: {
show: true,
lineStyle: {
color: ["#ccc"]
}
},
splitArea: {
show: false,
areaStyle: {
color: ["rgba(250,250,250,0.3)", "rgba(200,200,200,0.3)"]
}
}
},
logAxis: {
axisLine: {
show: true,
lineStyle: {
color: "#27727b"
}
},
axisTick: {
show: true,
lineStyle: {
color: "#333"
}
},
axisLabel: {
show: true,
color: "#333"
},
splitLine: {
show: true,
lineStyle: {
color: ["#ccc"]
}
},
splitArea: {
show: false,
areaStyle: {
color: ["rgba(250,250,250,0.3)", "rgba(200,200,200,0.3)"]
}
}
},
timeAxis: {
axisLine: {
show: true,
lineStyle: {
color: "#27727b"
}
},
axisTick: {
show: true,
lineStyle: {
color: "#333"
}
},
axisLabel: {
show: true,
color: "#333"
},
splitLine: {
show: true,
lineStyle: {
color: ["#ccc"]
}
},
splitArea: {
show: false,
areaStyle: {
color: ["rgba(250,250,250,0.3)", "rgba(200,200,200,0.3)"]
}
}
},
toolbox: {
iconStyle: {
borderColor: "#c1232b"
},
emphasis: {
iconStyle: {
borderColor: "#e87c25"
}
}
},
legend: {
textStyle: {
color: "#333333"
}
},
tooltip: {
axisPointer: {
lineStyle: {
color: "#27727b",
width: 1
},
crossStyle: {
color: "#27727b",
width: 1
}
}
},
timeline: {
lineStyle: {
color: "#293c55",
width: 1
},
itemStyle: {
color: "#27727b",
borderWidth: 1
},
controlStyle: {
color: "#27727b",
borderColor: "#27727b",
borderWidth: 0.5
},
checkpointStyle: {
color: "#c1232b",
borderColor: "#c23531"
},
label: {
color: "#293c55"
},
emphasis: {
itemStyle: {
color: "#72d4e0"
},
controlStyle: {
color: "#27727b",
borderColor: "#27727b",
borderWidth: 0.5
},
label: {
color: "#293c55"
}
}
},
visualMap: {
color: ["#c1232b", "#fcce10"]
},
dataZoom: {
backgroundColor: "rgba(0,0,0,0)",
dataBackgroundColor: "rgba(181,195,52,0.3)",
fillerColor: "rgba(181,195,52,0.2)",
handleColor: "#27727b",
handleSize: "100%",
textStyle: {
color: "#999999"
}
},
markPoint: {
label: {
color: "#eeeeee"
},
emphasis: {
label: {
color: "#eeeeee"
}
}
}
});
});

BIN
public/cdn/label-bg.png

After

Width: 280  |  Height: 78  |  Size: 4.5 KiB

BIN
public/cdn/lighting.png

After

Width: 911  |  Height: 911  |  Size: 108 KiB

20289
public/cdn/login-animate.svg
File diff suppressed because it is too large
View File

10
public/cdn/login-bg.svg
File diff suppressed because it is too large
View File

45
public/cdn/loss.svg

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="28.575001mm"
height="35.190014mm"
viewBox="0 0 28.575001 35.190014"
version="1.1"
id="svg5"
xml:space="preserve"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
sodipodi:docname="损耗.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="2.1745121"
inkscape:cx="92.894403"
inkscape:cy="78.868268"
inkscape:window-width="1397"
inkscape:window-height="1040"
inkscape:window-x="613"
inkscape:window-y="67"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" /><defs
id="defs2"><style
id="style505">.cls-1{fill:#fff;}</style></defs><g
inkscape:label="图层 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-50.930196,-105.5399)"><path
class="cls-1"
d="m 65.217696,105.54033 c 0.08731,0.0873 -14.2875,13.01221 -14.2875,20.90208 a 14.2875,14.2875 0 0 0 28.575,0 c 0,-7.88987 -14.374813,-20.98939 -14.2875,-20.90208 z m 7.122583,19.95487 -8.874125,8.63865 a 1.0292292,1.0292292 0 0 1 -1.457854,-0.0212 v 0 a 0.82020833,0.82020833 0 0 1 0.01587,-1.15888 l 6.733646,-6.55637 H 58.478758 a 0.55297917,0.55297917 0 0 1 -0.386291,-0.94721 l 7.577666,-7.40833 a 0.92604167,0.92604167 0 1 1 1.293813,1.32292 l -5.291667,5.1726 h 10.287 a 0.55297917,0.55297917 0 0 1 0.381,0.95779 z"
id="path511"
style="stroke-width:0.264583" /></g></svg>

441
public/cdn/macarons.js

@ -0,0 +1,441 @@
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['exports', 'echarts'], factory);
} else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
// CommonJS
factory(exports, require('echarts'));
} else {
// Browser globals
factory({}, root.echarts);
}
}(this, function (exports, echarts) {
var log = function (msg) {
if (typeof console !== 'undefined') {
console && console.error && console.error(msg);
}
};
if (!echarts) {
log('ECharts is not Loaded');
return;
}
echarts.registerTheme('macarons', {
"color": [
"#2ec7c9",
"#b6a2de",
"#5ab1ef",
"#ffb980",
"#d87a80",
"#8d98b3",
"#e5cf0d",
"#97b552",
"#95706d",
"#dc69aa",
"#07a2a4",
"#9a7fd1",
"#588dd5",
"#f5994e",
"#c05050",
"#59678c",
"#c9ab00",
"#7eb00a",
"#6f5553",
"#c14089"
],
"backgroundColor": "rgba(0,0,0,0)",
"textStyle": {},
"title": {
"textStyle": {
"color": "#008acd"
},
"subtextStyle": {
"color": "#aaaaaa"
}
},
"line": {
"itemStyle": {
"borderWidth": 1
},
"lineStyle": {
"width": 2
},
"symbolSize": 3,
"symbol": "emptyCircle",
"smooth": true
},
"radar": {
"itemStyle": {
"borderWidth": 1
},
"lineStyle": {
"width": 2
},
"symbolSize": 3,
"symbol": "emptyCircle",
"smooth": true
},
"bar": {
"itemStyle": {
"barBorderWidth": 0,
"barBorderColor": "#ccc"
}
},
"pie": {
"itemStyle": {
"borderWidth": 0,
"borderColor": "#ccc"
}
},
"scatter": {
"itemStyle": {
"borderWidth": 0,
"borderColor": "#ccc"
}
},
"boxplot": {
"itemStyle": {
"borderWidth": 0,
"borderColor": "#ccc"
}
},
"parallel": {
"itemStyle": {
"borderWidth": 0,
"borderColor": "#ccc"
}
},
"sankey": {
"itemStyle": {
"borderWidth": 0,
"borderColor": "#ccc"
}
},
"funnel": {
"itemStyle": {
"borderWidth": 0,
"borderColor": "#ccc"
}
},
"gauge": {
"itemStyle": {
"borderWidth": 0,
"borderColor": "#ccc"
}
},
"candlestick": {
"itemStyle": {
"color": "#d87a80",
"color0": "#2ec7c9",
"borderColor": "#d87a80",
"borderColor0": "#2ec7c9",
"borderWidth": 1
}
},
"graph": {
"itemStyle": {
"borderWidth": 0,
"borderColor": "#ccc"
},
"lineStyle": {
"width": 1,
"color": "#aaaaaa"
},
"symbolSize": 3,
"symbol": "emptyCircle",
"smooth": true,
"color": [
"#2ec7c9",
"#b6a2de",
"#5ab1ef",
"#ffb980",
"#d87a80",
"#8d98b3",
"#e5cf0d",
"#97b552",
"#95706d",
"#dc69aa",
"#07a2a4",
"#9a7fd1",
"#588dd5",
"#f5994e",
"#c05050",
"#59678c",
"#c9ab00",
"#7eb00a",
"#6f5553",
"#c14089"
],
"label": {
"color": "#eeeeee"
}
},
"map": {
"itemStyle": {
"areaColor": "#dddddd",
"borderColor": "#eeeeee",
"borderWidth": 0.5
},
"label": {
"color": "#d87a80"
},
"emphasis": {
"itemStyle": {
"areaColor": "rgba(254,153,78,1)",
"borderColor": "#444",
"borderWidth": 1
},
"label": {
"color": "rgb(100,0,0)"
}
}
},
"geo": {
"itemStyle": {
"areaColor": "#dddddd",
"borderColor": "#eeeeee",
"borderWidth": 0.5
},
"label": {
"color": "#d87a80"
},
"emphasis": {
"itemStyle": {
"areaColor": "rgba(254,153,78,1)",
"borderColor": "#444",
"borderWidth": 1
},
"label": {
"color": "rgb(100,0,0)"
}
}
},
"categoryAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#008acd"
}
},
"axisTick": {
"show": true,
"lineStyle": {
"color": "#333"
}
},
"axisLabel": {
"show": true,
"color": "#333"
},
"splitLine": {
"show": false,
"lineStyle": {
"color": [
"#eee"
]
}
},
"splitArea": {
"show": false,
"areaStyle": {
"color": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
}
}
},
"valueAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#008acd"
}
},
"axisTick": {
"show": true,
"lineStyle": {
"color": "#333"
}
},
"axisLabel": {
"show": true,
"color": "#333"
},
"splitLine": {
"show": true,
"lineStyle": {
"color": [
"#eee"
]
}
},
"splitArea": {
"show": true,
"areaStyle": {
"color": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
}
}
},
"logAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#008acd"
}
},
"axisTick": {
"show": true,
"lineStyle": {
"color": "#333"
}
},
"axisLabel": {
"show": true,
"color": "#333"
},
"splitLine": {
"show": true,
"lineStyle": {
"color": [
"#eee"
]
}
},
"splitArea": {
"show": true,
"areaStyle": {
"color": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
}
}
},
"timeAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#008acd"
}
},
"axisTick": {
"show": true,
"lineStyle": {
"color": "#333"
}
},
"axisLabel": {
"show": true,
"color": "#333"
},
"splitLine": {
"show": true,
"lineStyle": {
"color": [
"#eee"
]
}
},
"splitArea": {
"show": false,
"areaStyle": {
"color": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
}
}
},
"toolbox": {
"iconStyle": {
"borderColor": "#2ec7c9"
},
"emphasis": {
"iconStyle": {
"borderColor": "#18a4a6"
}
}
},
"legend": {
"textStyle": {
"color": "#333333"
}
},
"tooltip": {
"axisPointer": {
"lineStyle": {
"color": "#008acd",
"width": "1"
},
"crossStyle": {
"color": "#008acd",
"width": "1"
}
}
},
"timeline": {
"lineStyle": {
"color": "#008acd",
"width": 1
},
"itemStyle": {
"color": "#008acd",
"borderWidth": 1
},
"controlStyle": {
"color": "#008acd",
"borderColor": "#008acd",
"borderWidth": 0.5
},
"checkpointStyle": {
"color": "#2ec7c9",
"borderColor": "#2ec7c9"
},
"label": {
"color": "#008acd"
},
"emphasis": {
"itemStyle": {
"color": "#a9334c"
},
"controlStyle": {
"color": "#008acd",
"borderColor": "#008acd",
"borderWidth": 0.5
},
"label": {
"color": "#008acd"
}
}
},
"visualMap": {
"color": [
"#5ab1ef",
"#e0ffff"
]
},
"dataZoom": {
"backgroundColor": "rgba(47,69,84,0)",
"dataBackgroundColor": "#efefff",
"fillerColor": "rgba(182,162,222,0.2)",
"handleColor": "#008acd",
"handleSize": "100%",
"textStyle": {
"color": "#333333"
}
},
"markPoint": {
"label": {
"color": "#eeeeee"
},
"emphasis": {
"label": {
"color": "#eeeeee"
}
}
}
});
}));

373
public/cdn/metering_tower.svg
File diff suppressed because it is too large
View File

14592
public/cdn/metering_tower1.svg
File diff suppressed because it is too large
View File

BIN
public/cdn/modelDraco.glb

141
public/cdn/pillar_active.svg

@ -0,0 +1,141 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="28.38526mm"
height="238.2858mm"
viewBox="0 0 28.38526 238.2858"
version="1.1"
id="svg5"
xml:space="preserve"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
sodipodi:docname="红色.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.54362802"
inkscape:cx="-390.89229"
inkscape:cy="625.42766"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs2"><linearGradient
inkscape:collect="always"
id="linearGradient12053"><stop
style="stop-color:#fa2a19;stop-opacity:1;"
offset="0"
id="stop12049" /><stop
style="stop-color:#fa2a19;stop-opacity:0;"
offset="1"
id="stop12051" /></linearGradient><linearGradient
inkscape:collect="always"
id="linearGradient17788"><stop
style="stop-color:#fa2a19;stop-opacity:1;"
offset="0"
id="stop17784" /><stop
style="stop-color:#fa2a19;stop-opacity:0;"
offset="1"
id="stop17786" /></linearGradient><linearGradient
id="linearGradient919"><stop
style="stop-color:#18e773;stop-opacity:1;"
offset="0"
id="stop915" /><stop
style="stop-color:#18e77d;stop-opacity:0;"
offset="1"
id="stop917" /></linearGradient><linearGradient
id="linearGradient3039"><stop
style="stop-color:#18e773;stop-opacity:1;"
offset="0"
id="stop3035" /><stop
style="stop-color:#18e773;stop-opacity:0;"
offset="1"
id="stop3037" /></linearGradient><linearGradient
id="linearGradient1665"><stop
style="stop-color:#d92a19;stop-opacity:1;"
offset="0"
id="stop1661" /><stop
style="stop-color:#ff3b25;stop-opacity:1;"
offset="1"
id="stop1663" /></linearGradient><linearGradient
xlink:href="#linearGradient1665"
id="linearGradient1667"
x1="85.019402"
y1="71.595741"
x2="84.520836"
y2="76.488464"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9270942,0,0,1.9270942,-85.687384,-181.87258)" /><linearGradient
xlink:href="#linearGradient3039"
id="linearGradient1795"
x1="152.33582"
y1="82.115822"
x2="152.33582"
y2="200.5448"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9270942,0,0,1.9270942,-146.27273,-102.73933)" /><linearGradient
xlink:href="#linearGradient919"
id="linearGradient3041"
x1="33.152203"
y1="74.15995"
x2="33.152203"
y2="194.45027"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9270942,0,0,1.9270942,69.900545,-91.906854)" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient17788"
id="linearGradient17790"
x1="148.14207"
y1="58.195663"
x2="146.52113"
y2="284.51544"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-67.712019,-93.16571)" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient12053"
id="linearGradient12055"
x1="133.90543"
y1="55.544113"
x2="132.90732"
y2="278.89636"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-67.567357,-93.944567)" /></defs><g
inkscape:label="图层 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-61.175852,45.495161)"><path
style="fill:#b90008;fill-opacity:1;stroke:none;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 70.622272,192.55545 18.46461,-4.26879 -10.41171,-8.0032 -17.08877,2.78282"
id="path1797" /><path
style="fill:url(#linearGradient1667);fill-opacity:1;stroke:#fa2a19;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 61.848182,-42.01297 9.310891,8.074005 17.06628,-3.442471 -9.95795,-7.992004 z"
id="path356" /><path
style="fill:#ff4d12;fill-opacity:0.771562;stroke:#ff2a19;stroke-width:0.51;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 71.07203,-34.06495 17.25489,-3.35252 v 225.31461 l -17.94996,3.88916 z"
id="path1765" /><path
style="opacity:0.6;fill:url(#linearGradient17790);fill-opacity:1;stroke:none;stroke-width:0.509876;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 70.393691,-33.649214 17.94995,-4.017367 V 187.64799 l -17.94995,3.88917 z"
id="path1765-1" /><path
style="fill:#ff0000;fill-opacity:1;stroke:#ff4e00;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 61.829482,-41.447777 9.6705,7.736405 -0.87639,225.866582 -8.79411,-9.24739 z"
id="path2213" /><path
style="opacity:0.6;fill:url(#linearGradient12055);fill-opacity:1;stroke:none;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.573427"
d="m 61.52,-42.314529 9.67048,7.736404 V 189.89832 L 61.52,182.04105 Z"
id="path2213-9" /><path
style="opacity:0.3;fill:#ff4d00;fill-opacity:0.831373;stroke:none;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 77.902089,-44.806864 9.83844,7.965825 0.55863,225.115589 -10.42211,-7.94928 z"
id="path4495" /></g></svg>

113
public/cdn/pillar_curr.svg

@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="27.556688mm"
height="238.33641mm"
viewBox="0 0 27.556688 238.33641"
version="1.1"
id="svg34247"
xml:space="preserve"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
sodipodi:docname="深蓝.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview34249"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.19220153"
inkscape:cx="-1110.8132"
inkscape:cy="-894.89402"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer1-3" /><defs
id="defs34244"><linearGradient
id="linearGradient919"><stop
style="stop-color:#0552ff;stop-opacity:1;"
offset="0"
id="stop915" /><stop
style="stop-color:#05569d;stop-opacity:0;"
offset="1"
id="stop917" /></linearGradient><linearGradient
id="linearGradient3039"><stop
style="stop-color:#0578ff;stop-opacity:1;"
offset="0"
id="stop3035" /><stop
style="stop-color:#0578ff;stop-opacity:0;"
offset="1"
id="stop3037" /></linearGradient><linearGradient
id="linearGradient1665"><stop
style="stop-color:#05389d;stop-opacity:1;"
offset="0"
id="stop1661" /><stop
style="stop-color:#00a2ff;stop-opacity:1;"
offset="1"
id="stop1663" /></linearGradient><linearGradient
xlink:href="#linearGradient1665"
id="linearGradient1667"
x1="85.019402"
y1="71.595741"
x2="84.520836"
y2="76.488464"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9270942,0,0,1.9270942,-99.010637,-155.28028)" /><linearGradient
xlink:href="#linearGradient3039"
id="linearGradient1795"
x1="152.33582"
y1="82.115822"
x2="152.33582"
y2="200.5448"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.8162516,0,0,1.9270942,-210.01035,-169.2469)" /><linearGradient
xlink:href="#linearGradient919"
id="linearGradient3041"
x1="33.152203"
y1="74.15995"
x2="33.152203"
y2="194.45027"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.7331195,0,0,1.9270942,-4.7048085,-157.52241)" /></defs><g
inkscape:label="图层 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-84.992224,-12.247682)"><g
inkscape:label="图层 1"
id="layer1-3"
transform="translate(37.028633,31.400144)"><path
style="fill:#05389d;fill-opacity:1;stroke:none;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 57.055669,218.90439 18.46461,-4.26879 -10.41171,-8.0032 -17.08877,2.78282"
id="path1797" /><path
style="fill:url(#linearGradient1667);fill-opacity:1;stroke:#1890e7;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 48.524929,-15.420675 9.31089,8.074005 17.06628,-3.442471 -9.95795,-7.992004 z"
id="path356" /><path
style="fill:#05389d;fill-opacity:0.6;stroke:#1890e7;stroke-width:0.51;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 58.160972,-7.0583018 16.910741,-3.3955382 0.129056,225.09951 -17.94996,3.88916 z"
id="path1765"
sodipodi:nodetypes="ccccc" /><path
style="opacity:0.6;fill:url(#linearGradient1795);fill-opacity:1;stroke:none;stroke-width:0.494995;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 58.355364,-6.8359097 16.530338,-3.3494993 0.04302,224.491569 -17.433727,3.97521 z"
id="path1765-1"
sodipodi:nodetypes="ccccc" /><path
style="fill:#05389d;fill-opacity:0.6;stroke:#1890e7;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 48.218529,-15.054477 9.6705,7.736405 -0.87639,225.866582 -8.79411,-9.24739 z"
id="path2213" /><path
style="opacity:0.6;fill:url(#linearGradient3041);fill-opacity:1;stroke:none;stroke-width:0.483534px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 48.44709,-14.810254 57.617386,-7.2459239 57.144182,217.40261 48.44709,209.54534 Z"
id="path2213-9"
sodipodi:nodetypes="ccccc" /><path
style="opacity:0.3;fill:#005dab;fill-opacity:1;stroke:none;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 64.497913,-19.152462 9.83844,7.965825 0.55863,225.115597 -10.42211,-7.94928 z"
id="path4495" /></g></g></svg>

127
public/cdn/pillar_curr_active.svg

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="27.670763mm"
height="238.18059mm"
viewBox="0 0 27.670763 238.18059"
version="1.1"
id="svg29688"
xml:space="preserve"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
sodipodi:docname="浅绿.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview29690"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.74564394"
inkscape:cx="54.98603"
inkscape:cy="429.82982"
inkscape:window-width="1397"
inkscape:window-height="1040"
inkscape:window-x="406"
inkscape:window-y="77"
inkscape:window-maximized="0"
inkscape:current-layer="layer1-6" /><defs
id="defs29685"><linearGradient
inkscape:collect="always"
id="linearGradient17788"><stop
style="stop-color:#6bbf82;stop-opacity:0.60000002;"
offset="0"
id="stop17784" /><stop
style="stop-color:#6bbf82;stop-opacity:0.60000002;"
offset="1"
id="stop17786" /></linearGradient><linearGradient
id="linearGradient919"><stop
style="stop-color:#6bbf82;stop-opacity:0.60000002;"
offset="0"
id="stop915" /><stop
style="stop-color:#6bcf82;stop-opacity:0;"
offset="1"
id="stop917" /></linearGradient><linearGradient
id="linearGradient3039"><stop
style="stop-color:#18e773;stop-opacity:1;"
offset="0"
id="stop3035" /><stop
style="stop-color:#18e773;stop-opacity:0;"
offset="1"
id="stop3037" /></linearGradient><linearGradient
id="linearGradient1665"><stop
style="stop-color:#6bbf82;stop-opacity:1;"
offset="0"
id="stop1661" /><stop
style="stop-color:#6bbf82;stop-opacity:0.60000002;"
offset="1"
id="stop1663" /></linearGradient><linearGradient
xlink:href="#linearGradient1665"
id="linearGradient1667"
x1="85.019402"
y1="71.595741"
x2="84.520836"
y2="76.488464"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9270942,0,0,1.9270942,-18.220826,-88.717107)" /><linearGradient
xlink:href="#linearGradient3039"
id="linearGradient1795"
x1="152.33582"
y1="82.115822"
x2="152.33582"
y2="200.5448"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9270942,0,0,1.9270942,-146.27273,-102.73933)" /><linearGradient
xlink:href="#linearGradient919"
id="linearGradient3041"
x1="33.152203"
y1="74.15995"
x2="33.152203"
y2="194.45027"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9270942,0,0,1.9270942,70.209987,-91.483749)" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient17788"
id="linearGradient17790"
x1="148.14207"
y1="58.195663"
x2="146.52113"
y2="284.51544"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0.2406481,0.07237632)" /></defs><g
inkscape:label="图层 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-44.358167,-34.909708)"><g
inkscape:label="图层 1"
id="layer1-6"
transform="translate(-84.39896,-12.598554)"><path
style="fill:#18e799;fill-opacity:1;stroke:none;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 137.84548,285.46757 18.46461,-4.26879 -10.41171,-8.0032 -17.08877,2.78282"
id="path1797" /><path
style="fill:url(#linearGradient1667);fill-opacity:1;stroke:#6bbf82;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 129.31474,51.142501 9.31089,8.074005 17.06628,-3.442471 -9.95795,-7.992004 z"
id="path356" /><path
style="opacity:1;fill:#6bbf82;fill-opacity:0.6;stroke:#6bbf82;stroke-width:0.51;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 138.8244,59.191319 17.25489,-3.35252 V 281.1534 l -17.94996,3.88916 z"
id="path1765" /><path
style="opacity:0.6;fill:url(#linearGradient17790);fill-opacity:1;stroke:none;stroke-width:0.509876;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 138.34636,59.588873 17.94995,-4.017367 V 280.88609 l -17.94995,3.88917 z"
id="path1765-1" /><path
style="fill:#6b9782;fill-opacity:0.6;stroke:#609782;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 129.13531,51.45043 9.6705,7.736405 -0.87639,225.866575 -8.79411,-9.24739 z"
id="path2213" /><path
style="opacity:0.6;fill:url(#linearGradient3041);fill-opacity:1;stroke:none;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 129.31077,51.228409 9.67049,7.736404 V 283.44127 l -9.67049,-7.85727 z"
id="path2213-9" /><path
style="opacity:0.3;fill:#00883c;fill-opacity:0.3;stroke:none;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 146.03082,48.215347 9.83844,7.965825 0.55863,225.115598 -10.42211,-7.94928 z"
id="path4495" /></g></g></svg>

103
public/cdn/pillar_prev.svg

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="14.433691mm"
height="123.62596mm"
viewBox="0 0 14.433691 123.62596"
version="1.1"
id="svg38091"
xml:space="preserve"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
sodipodi:docname="常规蓝.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview38093"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.76880612"
inkscape:cx="98.854572"
inkscape:cy="638.00221"
inkscape:window-width="1397"
inkscape:window-height="1040"
inkscape:window-x="512"
inkscape:window-y="213"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" /><defs
id="defs38088"><linearGradient
id="linearGradient3039"><stop
style="stop-color:#00f6ff;stop-opacity:1;"
offset="0"
id="stop3035" /><stop
style="stop-color:#00f6ff;stop-opacity:0;"
offset="1"
id="stop3037" /></linearGradient><linearGradient
id="linearGradient1665"><stop
style="stop-color:#008aff;stop-opacity:1;"
offset="0"
id="stop1661" /><stop
style="stop-color:#45fff4;stop-opacity:1;"
offset="1"
id="stop1663" /></linearGradient><linearGradient
xlink:href="#linearGradient1665"
id="linearGradient1667"
x1="85.019402"
y1="71.595741"
x2="84.520836"
y2="76.488464"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(50.357103,-35.631533)" /><linearGradient
xlink:href="#linearGradient3039"
id="linearGradient1795"
x1="152.33582"
y1="82.115822"
x2="152.33582"
y2="200.5448"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-15.82495,-42.81918)" /><linearGradient
xlink:href="#linearGradient3039"
id="linearGradient3041"
x1="33.152203"
y1="74.15995"
x2="33.152203"
y2="194.45027"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(96.065247,-37.06566)" /></defs><g
inkscape:label="图层 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-34.080953,20.171032)"><g
inkscape:label="图层 1"
id="layer1-5"
transform="translate(-92.543446,-55.229021)"><path
style="fill:#006ecb;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 131.34241,158.53888 9.58158,-2.21514 -5.40281,-4.15299 -8.86763,1.44405"
id="path1797" /><path
style="fill:url(#linearGradient1667);fill-opacity:1;stroke:#00eaff;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 126.91567,36.943854 4.83157,4.18973 8.85596,-1.786353 -5.16734,-4.147179 z"
id="path356" /><path
style="opacity:0.65;fill:#006ecb;fill-opacity:0.6;stroke:#00eaff;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 131.76418,41.204803 8.95384,-1.739676 V 156.38448 l -9.31452,2.01815 z"
id="path1765" /><path
style="opacity:0.6;fill:url(#linearGradient1795);fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 131.74358,41.377964 9.31451,-2.084676 V 156.21264 l -9.31451,2.01815 z"
id="path1765-1" /><path
style="fill:#005dab;fill-opacity:0.6;stroke:#00eaff;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 126.75669,37.13388 5.01817,4.014544 -0.45477,117.205786 -4.5634,-4.79862 z"
id="path2213" /><path
style="opacity:0.6;fill:url(#linearGradient3041);fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 126.73358,36.989961 5.01817,4.014544 V 157.48893 l -5.01817,-4.07726 z"
id="path2213-9" /><path
style="opacity:0.3;fill:#005dab;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 135.30378,35.337071 5.10533,4.133594 0.28988,116.816085 -5.4082,-4.12501 z"
id="path4495" /></g></g></svg>

124
public/cdn/pillar_prev_active.svg

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="27.556688mm"
height="238.23886mm"
viewBox="0 0 27.556688 238.23886"
version="1.1"
id="svg5"
xml:space="preserve"
sodipodi:docname="绿.svg"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.26362494"
inkscape:cx="-383.12004"
inkscape:cy="394.49985"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs2"><linearGradient
inkscape:collect="always"
id="linearGradient17788"><stop
style="stop-color:#15c941;stop-opacity:1;"
offset="0"
id="stop17784" /><stop
style="stop-color:#15c941;stop-opacity:0;"
offset="1"
id="stop17786" /></linearGradient><linearGradient
id="linearGradient919"><stop
style="stop-color:#18e773;stop-opacity:1;"
offset="0"
id="stop915" /><stop
style="stop-color:#18e77d;stop-opacity:0;"
offset="1"
id="stop917" /></linearGradient><linearGradient
id="linearGradient3039"><stop
style="stop-color:#18e773;stop-opacity:1;"
offset="0"
id="stop3035" /><stop
style="stop-color:#18e773;stop-opacity:0;"
offset="1"
id="stop3037" /></linearGradient><linearGradient
id="linearGradient1665"><stop
style="stop-color:#15c941;stop-opacity:1;"
offset="0"
id="stop1661" /><stop
style="stop-color:#30e783;stop-opacity:1;"
offset="1"
id="stop1663" /></linearGradient><linearGradient
xlink:href="#linearGradient1665"
id="linearGradient1667"
x1="85.019402"
y1="71.595741"
x2="84.520836"
y2="76.488464"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9270942,0,0,1.9270942,-18.220826,-88.717107)" /><linearGradient
xlink:href="#linearGradient3039"
id="linearGradient1795"
x1="152.33582"
y1="82.115822"
x2="152.33582"
y2="200.5448"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9270942,0,0,1.9270942,-146.27273,-102.73933)" /><linearGradient
xlink:href="#linearGradient919"
id="linearGradient3041"
x1="33.152203"
y1="74.15995"
x2="33.152203"
y2="194.45027"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.9270942,0,0,1.9270942,69.900545,-91.906854)" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient17788"
id="linearGradient17790"
x1="148.14207"
y1="58.195663"
x2="146.52113"
y2="284.51544"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-0.23382081,0.17048175)" /></defs><g
inkscape:label="图层 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-128.7534,-47.508262)"><path
style="fill:#18e799;fill-opacity:1;stroke:none;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 137.84548,285.46757 18.46461,-4.26879 -10.41171,-8.0032 -17.08877,2.78282"
id="path1797" /><path
style="fill:url(#linearGradient1667);fill-opacity:1;stroke:#18e773;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 129.31474,51.142501 9.31089,8.074005 17.06628,-3.442471 -9.95795,-7.992004 z"
id="path356" /><path
style="opacity:1;fill:#15c941;fill-opacity:0.60000002;stroke:#18e773;stroke-width:0.51;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 138.8244,59.191319 17.25489,-3.35252 V 281.1534 l -17.94996,3.88916 z"
id="path1765" /><path
style="opacity:0.6;fill:url(#linearGradient17790);fill-opacity:1;stroke:none;stroke-width:0.509876;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 137.8719,59.686978 17.94995,-4.017367 V 280.9842 l -17.94995,3.88917 z"
id="path1765-1" /><path
style="fill:#00883c;fill-opacity:0.6;stroke:#18e773;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 129.05269,51.464344 9.6705,7.736405 -0.87639,225.866581 -8.79411,-9.24739 z"
id="path2213" /><path
style="opacity:0.6;fill:url(#linearGradient3041);fill-opacity:1;stroke:none;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 129.00133,50.805304 9.67049,7.736404 V 283.01816 l -9.67049,-7.85727 z"
id="path2213-9" /><path
style="opacity:0.3;fill:#00883c;fill-opacity:1;stroke:none;stroke-width:0.509876px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 145.65446,47.41696 9.83844,7.965825 0.55863,225.115595 -10.42211,-7.94928 z"
id="path4495" /></g></svg>

3
public/cdn/pinyin-match-master/.babelrc

@ -0,0 +1,3 @@
{
"presets": ["@babel/preset-env"]
}

12
public/cdn/pinyin-match-master/.gitignore

@ -0,0 +1,12 @@
.DS_Store
dist/electron/*
dist/web/*
build/*
!build/icons
node_modules/
npm-debug.log
npm-debug.log.*
thumbs.db
!.gitkeep
.idea
package-lock.json

1
public/cdn/pinyin-match-master/.npmignore

@ -0,0 +1 @@
/typeTest

43
public/cdn/pinyin-match-master/CHANGELOG.md

@ -0,0 +1,43 @@
## 更新日志
### 1.1.0
*2020-03-30*
#### BUG修复
- 重写内部 getIndex 方法
- 修复某些情况下,匹配字符没有按顺序的问题[#7](https://github.com/xmflswood/pinyin-match/issues/7)
### 1.1.4
*2020-12-09*
#### 优化
- 移除多音字 大(tai)的读音
- 调整打包为rollup 支持es
### 1.2.0
*2021-02-18*
#### 拓展
- 新增繁体版本
### 1.2.3
*2023-02-12*
#### 优化
- 增加喆、钭
- 移除多音字 体(ben)的读音
### 1.2.4
*2023-02-25*
#### 优化
- 优化拼音中 ü 的 u v打法,详见 [issues/37](https://github.com/xmflswood/pinyin-match/issues/37)
### 1.2.5
*2023-11-25*
#### 优化
- 优化拼音中 ü 的 u v打法,详见 [输入时的 nv和lv识别失败问题](https://github.com/xmflswood/pinyin-match/pull/43)

37
public/cdn/pinyin-match-master/LICENSE

@ -0,0 +1,37 @@
The Star And Thank Author License (SATA)
Copyright © <2020> xmflswood(xmflswood@gmail.com))
Project Url: https://github.com/xmflswood/pinyin-match
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
And wait, the most important, you shall star/+1/like the project(s) in project url
section above first, and then thank the author(s) in Copyright section.
Here are some suggested ways:
- Email the authors a thank-you letter, and make friends with him/her/them.
- Report bugs or issues.
- Tell friends what a wonderful project this is.
- And, sure, you can just express thanks in your mind without telling the world.
Contributors of this project by forking have the option to add his/her name and
forked project url at copyright and project url sections, but shall not delete
or modify anything else in these two sections.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

106
public/cdn/pinyin-match-master/README.md

@ -0,0 +1,106 @@
# 如果有帮助,麻烦点个Star
# 具体实现文档
https://juejin.cn/post/6844904161461403661
# pinyin-match
能够使用拼音快速检索目标。
1. 简体版27KB (gzip ≈ 19KB),繁体版86KB (gzip ≈ 60KB)
2. 支持多音字、繁体字、拼音首字母匹配,具备分词功能
3. 返回位置信息,可用于高亮匹配字符
4. 在长多音字串下依然有高性能
在线演示:<https://xmflswood.github.io/pinyin-match/>;
## 安装
```shell
npm install pinyin-match --save
```
支持`<script>`
简体:`<script src="pinyin-match/dist/main.js"></script>`
繁体:`<script src="pinyin-match/dist/traditional.js"></script>`
使用方式:
`PinyinMatch.match('xxx', 'x')`
## API
### .match(input, keyword)
查询匹配拼音的数据。
参数:
1. input `{string}` 目标字符串
2. keyword `{string}` 输入的拼音或其他关键词
返回:
`{[Array]|{Boolean}}`
## 使用范例
引入简体版:
```
import PinyinMatch from 'pinyin-match'; // es
const PinyinMatch = require('pinyin-match'); // commonjs
```
引入繁体版(es):
```
import PinyinMatch from 'pinyin-match/es/traditional.js'; // es
const PinyinMatch = require('pinyin-match/lib/traditional.js'); // commonjs
```
列表项为字符串:
```js
let test = '123曾经沧海难为水除却巫山不是云'
PinyinMatch.match(test, '23曾'); // [1, 3]
PinyinMatch.match(test, 'cjc') // [3, 5]
PinyinMatch.match(test, 'cengjingcanghai') // [3, 6]
PinyinMatch.match(test, 'cengjingcangha') // [3, 6]
PinyinMatch.match(test, 'engjingcanghai') // false
PinyinMatch.match(test, 'zengjingcang') // [3, 5]
PinyinMatch.match(test, 'sdjkelwqf') // false
PinyinMatch.match(test, 'zengji ng cang') // [3, 5]
PinyinMatch.match(test, 'zengji ng cangsdjfkl') // false
PinyinMatch.match(' 我 爱你 中 国 ', 'nzg') // [6, 12]
PinyinMatch.match(' 我 爱你 中 国 ', '爱你中') // [5, 8]
PinyinMatch.match('發', 'fa') // [0, 0]
```
## 许可证
pinyin-match is under The Star And Thank Author License (SATA)
本项目基于MIT协议发布,并增加了SATA协议
## 其他语言版本
欢迎其他语言开发者增加对应版本(标明来自本项目即可)
### GO
https://github.com/limawanyan/go-pinyin-match
## 仓库
https://github.com/xmflswood/pinyin-match

1
public/cdn/pinyin-match-master/dist/main.js
File diff suppressed because it is too large
View File

1
public/cdn/pinyin-match-master/dist/traditional.js
File diff suppressed because it is too large
View File

1
public/cdn/pinyin-match-master/es/main.js
File diff suppressed because it is too large
View File

1
public/cdn/pinyin-match-master/es/traditional.js
File diff suppressed because it is too large
View File

6
public/cdn/pinyin-match-master/index.d.ts

@ -0,0 +1,6 @@
declare namespace Pinyin {
export function match(input: string, keys: string): [number, number] | boolean;
}
export as namespace Pinyin;
export default Pinyin;

16
public/cdn/pinyin-match-master/index.html

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
<script type="module">
const text = '曾长还石弹曾长还曾经沧海难为水除却踢踢踢踢踢踢巫山不是云石弹曾长还床前明月光疑似地上霜石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹先天下之忧而忧后天下之乐而乐曾长还石弹曾长还曾经沧海难为水除却巫山不是云石弹曾长还床前明月光疑似地上霜石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹先天下之忧而忧后天下之乐而乐曾长还石弹曾长还曾经沧海难为水除却巫山不是云石弹曾长还床前明月光疑似地上霜石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹先天下之忧而忧后天下之乐而乐曾长还石弹曾长还曾经沧海难为水除却巫山不是云石弹曾长还床前明月光疑似地上霜石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹先天下之忧而忧后天下之乐而乐曾长还石弹曾长还曾经沧海难为水除却巫山不是云石弹曾长还床前明月光疑似地上霜石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还石弹曾长还我曾经开始加快速度较快的石弹曾长还石弹曾长还石弹曾长还石弹曾2长还石弹曾长还石弹先天下312之忧而忧后天下哈哈哈哈哈之乐而乐'
import Py from './src/simplified.js'
console.log(Py.match(text, 'xiantianxia312'))
</script>
</html>

1
public/cdn/pinyin-match-master/lib/main.js
File diff suppressed because it is too large
View File

1
public/cdn/pinyin-match-master/lib/traditional.js
File diff suppressed because it is too large
View File

38
public/cdn/pinyin-match-master/package.json

@ -0,0 +1,38 @@
{
"name": "pinyin-match",
"version": "1.2.5",
"description": "支持多音字, 繁体字,首字母缩写的拼音搜索引擎",
"typings": "index.d.ts",
"main": "lib/main.js",
"unpkg": "dist/main.js",
"module": "es/main.js",
"scripts": {
"test": "mocha",
"build": "cross-env NODE_ENV=production rollup -c",
"dev": "rollup -c -w"
},
"keywords": [
"拼音",
"chinese",
"pinyin",
"match"
],
"repository": {
"type": "git",
"url": "https://github.com/xmflswood/pinyin-match.git"
},
"author": "774898896@qq.com",
"license": "SATA",
"devDependencies": {
"@babel/core": "^7.12.9",
"@babel/plugin-transform-runtime": "^7.12.10",
"@babel/preset-env": "^7.12.7",
"babel-plugin-add-module-exports": "^1.0.4",
"cross-env": "^7.0.3",
"mocha": "^5.2.0",
"rollup": "^2.50.1",
"rollup-plugin-babel": "^4.4.0",
"rollup-plugin-serve": "^1.1.0",
"rollup-plugin-terser": "^7.0.2"
}
}

57
public/cdn/pinyin-match-master/rollup.config.js

@ -0,0 +1,57 @@
import babel from 'rollup-plugin-babel'
import serve from 'rollup-plugin-serve'
import {terser} from 'rollup-plugin-terser'
const mTerser = () => terser({
compress: {
pure_getters: true,
unsafe: true,
unsafe_comps: true
}
})
const plugins = [
babel(),
mTerser(),
]
if (process.env.NODE_ENV !== 'production') {
plugins.push(serve({
port: 8080
}))
}
export default [{
input: 'src/simplified.js',
output: [{
file: 'lib/main.js',
format: 'cjs',
indent: false
}, {
file: 'es/main.js',
format: 'es',
indent: false,
exports: 'default'
}, {
file: 'dist/main.js',
format: 'umd',
name: 'PinyinMatch'
}],
plugins
}, {
input: 'src/traditional.js',
output: [{
file: 'lib/traditional.js',
format: 'cjs',
indent: false
}, {
file: 'es/traditional.js',
format: 'es',
indent: false,
exports: 'default'
}, {
file: 'dist/traditional.js',
format: 'umd',
name: 'PinyinMatch'
}],
plugins: [
babel(),
mTerser()
]
}]

196
public/cdn/pinyin-match-master/src/core.js

@ -0,0 +1,196 @@
let allPinyin = []
let notone = {};
let storage = {}
function init(dict) {
// https://github.com/xmflswood/pinyin-match/issues/37
const handledDict = {}
const uv = ['ju','jun','jue','juan','qu','qun','que','xuan','xu','xue','yu','yuan','yue','yun','nve','lve']
// https://github.com/xmflswood/pinyin-match/pull/43
const vList = ['lv', 'lve', 'nv', 'nve']
Object.keys(dict).forEach(key => {
handledDict[key] = dict[key]
allPinyin.push(key)
if (uv.includes(key)) {
const replacedKey = replaceUv(key)
handledDict[replacedKey] = dict[key]
allPinyin.push(replacedKey)
}
if (vList.includes(key)) {
const replacedKey = key.replace('v', 'ü')
handledDict[replacedKey] = dict[key]
allPinyin.push(replacedKey)
}
})
notone = parseDict(handledDict)
return match
}
function replaceUv(str) {
if (str.indexOf('u') !== -1) return str.replace('u', 'v')
return str.replace('v', 'u')
}
function parseDict(dict) {
let parseDict = {}
for (let i in dict) {
let temp = dict[i]
for (let j = 0, len = temp.length; j < len; j++) {
if (!parseDict[temp[j]]) {
parseDict[temp[j]] = i
} else {
parseDict[temp[j]] = parseDict[temp[j]] + ' ' + i
}
}
}
return parseDict
}
function getPinyin(cn) {
let result = []
for (let i = 0, len = cn.length; i < len; i++) {
let temp = cn.charAt(i)
result.push(notone[temp] || temp)
}
return result
}
// 对输入拼音进行切分
function wordBreak(s) {
let result = []
let solutions = []
let len = s.length
let possible = []
for (let i = 0; i <= len; i++) {
possible.push(true)
}
getAllSolutions(0, s, result, solutions, possible)
return solutions
}
function getAllSolutions(start, s, result, solutions, possible) {
let len = s.length
if (start === len) {
solutions.push(result.join(' '))
return
}
for (let i = start; i < len; i++) {
let piece = s.substring(start, i + 1)
let match = false
// 最后一个音特殊处理,不需要全部打完整
if (allPinyin.some(i => i.indexOf(piece) === 0) && !s[i + 1] && possible[i + 1]) {
if (piece.length === 1) {
result.push(piece)
} else {
let s = []
allPinyin.forEach(i => {
if (i.indexOf(piece) === 0) {
s.push(i)
}
})
result.push(s)
}
match = true
} else {
if (allPinyin.indexOf(piece) !== -1 && possible[i + 1]) {
result.push(piece)
match = true
}
}
if (match) {
let beforeChange = solutions.length
getAllSolutions(i + 1, s, result, solutions, possible)
if (solutions.length === beforeChange) {
possible[i + 1] = false
}
result.pop()
}
}
}
// 获取输入拼音的所有组合(切分 + 首字母)
function getFullKey(key) {
let result = []
wordBreak(key).forEach(i => {
let item = i.split(' ')
let last = item.length - 1
if (item[last].indexOf(',')) {
let keys = item[last].split(',')
keys.forEach(j => {
item.splice(last, 1, j)
result.push(JSON.parse(JSON.stringify(item)))
})
} else {
result.push(item)
}
})
if (result.length === 0 || (result[0].length !== key.length)) {
result.push(key.split(''))
}
// 缓存当前结果 避免重复计算
storage = {[key]: result}
return result
}
function point2point(test, key, last, extend) {
if (!test) return false
let a = test.split(' ')
a.forEach(i => {
if (i.length > 0 && extend) {
a.push(i.charAt(0))
}
})
if (!last) {
return a.indexOf(key) !== -1
}
return a.some((i) => i.indexOf(key) === 0)
}
function match(input, keys) {
if (!input || !keys) return false
input = input.toLowerCase()
keys = keys.replace(/\s+/g, '').toLowerCase()
let indexOf = input.indexOf(keys)
if (indexOf !== -1) {
return [indexOf, indexOf + keys.length - 1]
}
// 原文匹配(带空格)
let noPyIndex = getIndex(input.split(''), [keys.split('')], keys)
if (noPyIndex) return noPyIndex
// pinyin匹配
let py = getPinyin(input)
let fullString = storage[keys] || getFullKey(keys)
return getIndex(py, fullString, keys)
}
function getIndex(py, fullString, keys) {
for (let p = 0; p < py.length; p++) {
for (let k = 0; k < fullString.length; k++) {
let key = fullString[k]
let keyLength = key.length
let extend = (keyLength === keys.length)
let isMatch = true
let i = 0
let preSpaceNum = 0
let spaceNum = 0
if (keyLength <= py.length) {
for (; i < key.length; i++) {
if (i === 0 && py[p + i + preSpaceNum] === ' ') {
preSpaceNum += 1
i -= 1
} else {
if (py[p + i + spaceNum] === ' ') {
spaceNum += 1
i -= 1
} else {
if (!point2point(py[p + i + spaceNum], key[i], (py[p + i + 1] && key[i + 1]) ? false : true, extend)) {
isMatch = false
break
}
}
}
}
if (isMatch) {
return [p + preSpaceNum, spaceNum + p + i - 1]
}
}
}
}
return false
}
export default init

7
public/cdn/pinyin-match-master/src/simplified.js

@ -0,0 +1,7 @@
import { dict } from './simplified_dict.js'
import init from './core.js'
var pinyin = {
match: init(dict)
}
export default pinyin

6
public/cdn/pinyin-match-master/src/simplified_dict.js
File diff suppressed because it is too large
View File

7
public/cdn/pinyin-match-master/src/traditional.js

@ -0,0 +1,7 @@
import { dict } from './traditional_dict'
import init from './core'
var pinyin = {
match: init(dict)
}
export default pinyin

6
public/cdn/pinyin-match-master/src/traditional_dict.js
File diff suppressed because it is too large
View File

89
public/cdn/pinyin-match-master/test/index.test.js

@ -0,0 +1,89 @@
const assert = require('assert')
const PinyinMatch = require('../dist/main.js')
const PinyinMatch2 = require('../dist/traditional.js') // 繁体字
let text = '123曾经沧海难为水除却巫山不是云'
describe('PinyinMatch', () => {
describe('#match', () => {
it('精准匹配', () => {
assert.deepEqual([1, 3], PinyinMatch.match(text, '23曾'))
})
it('首字母匹配', () => {
assert.deepEqual([3, 5], PinyinMatch.match(text, 'cjc'))
})
it('完整拼音匹配', () => {
assert.deepEqual([3, 6], PinyinMatch.match(text, 'cengjingcanghai'))
})
it('最后一个拼音不完整', () => {
assert.deepEqual([3, 6], PinyinMatch.match(text, 'cengjingcangha'))
})
it('分词功能', () => {
assert.equal(false, PinyinMatch.match(text, 'engjing'))
})
it('多音字', () => {
assert.deepEqual([3, 5], PinyinMatch.match(text, 'zengjingcang'))
})
it('忽略空格', () => {
assert.deepEqual([3, 5], PinyinMatch.match(text, 'zengji ng cang'))
})
it('超出', () => {
assert.deepEqual(false, PinyinMatch.match(text, 'zengji ng cangsdjfkl'))
})
it('忽略空格', () => {
assert.deepEqual([6, 12], PinyinMatch.match(' 我 爱你 中 国 ', 'nzg'))
})
it('忽略空格原文', () => {
assert.deepEqual([5, 8], PinyinMatch.match(' 我 爱你 中 国s ', '爱你中'))
})
it('忽略空格原文', () => {
assert.deepEqual([5, 13], PinyinMatch.match(' 我 爱你 中 国s ', '爱你中国s'))
})
it('超出原文', () => {
assert.deepEqual(false, PinyinMatch.match(' 我 爱你 中 国s ', '爱你中国sj'))
})
it('bao', () => {
assert.deepEqual([1, 1], PinyinMatch.match('淘宝', 'bao'))
})
it('issues 7', () => {
assert.deepEqual([0, 0], PinyinMatch.match('卡号打开', 'ka'))
})
it('嫚', () => {
assert.deepEqual([0, 0], PinyinMatch.match('嫚', 'man'))
})
it('喆', () => {
assert.deepEqual([0, 0], PinyinMatch.match('喆', 'zhe'))
})
it('钭', () => {
assert.deepEqual([0, 0], PinyinMatch.match('钭', 'tou'))
})
it('lue', () => {
assert.deepEqual([0, 0], PinyinMatch.match('略', 'lue'))
})
it('lve', () => {
assert.deepEqual([0, 0], PinyinMatch.match('略', 'lve'))
})
it('que', () => {
assert.deepEqual([0, 0], PinyinMatch.match('缺', 'que'))
})
it('qve', () => {
assert.deepEqual([0, 0], PinyinMatch.match('缺', 'qve'))
})
it('nü', () => {
assert.deepEqual([0, 0], PinyinMatch.match('女', 'nü'))
})
it('lüe', () => {
assert.deepEqual([0, 0], PinyinMatch.match('略', 'lüe'))
})
it('ü !== v', () => {
assert.equal(false, PinyinMatch.match('v', 'ü'))
})
})
})
describe('PinyinMatch2', () => {
describe('#match 繁体', () => {
it('繁体字匹配', () => {
assert.deepEqual([0, 0], PinyinMatch2.match('發', 'fa'))
})
})
})

8
public/cdn/pinyin-match-master/tsconfig.json

@ -0,0 +1,8 @@
{
"compilerOptions": {
"target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
"outDir": "./dist", /* Redirect output structure to the directory. */
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
}
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save