tremble 3 lat temu
commit
0f5d552bef
100 zmienionych plików z 124859 dodań i 0 usunięć
  1. 23 0
      .gitignore
  2. 10 0
      lerna.json
  3. 54160 0
      package-lock.json
  4. 23 0
      package.json
  5. 3 0
      packages/code/.browserslistrc
  6. 7 0
      packages/code/.env
  7. 13 0
      packages/code/.env.bendi
  8. 8 0
      packages/code/.env.prod
  9. 8 0
      packages/code/.env.testprod
  10. 22 0
      packages/code/.eslintrc.js
  11. 24 0
      packages/code/.gitignore
  12. 24 0
      packages/code/README.md
  13. 14 0
      packages/code/babel.config.js
  14. 9 0
      packages/code/jsconfig.json
  15. 35924 0
      packages/code/package-lock.json
  16. 46 0
      packages/code/package.json
  17. 26 0
      packages/code/public/edit.html
  18. BIN
      packages/code/public/favicon.ico
  19. BIN
      packages/code/public/fonts/element-icons.ttf
  20. BIN
      packages/code/public/fonts/element-icons.woff
  21. 31 0
      packages/code/public/material.html
  22. 26 0
      packages/code/public/show.html
  23. 77 0
      packages/code/public/showMobile.html
  24. 175 0
      packages/code/public/static/css/alivideo.css
  25. 4663 0
      packages/code/public/static/css/redefine.css
  26. 1523 0
      packages/code/public/static/css/response.css
  27. 1311 0
      packages/code/public/static/css/zui-theme.css
  28. 17 0
      packages/code/public/static/css/zui.min.css
  29. BIN
      packages/code/public/static/fonts/captcha.ttf
  30. BIN
      packages/code/public/static/fonts/zenicon.woff
  31. BIN
      packages/code/public/static/images/kr/close.png
  32. BIN
      packages/code/public/static/images/kr/left-white.png
  33. BIN
      packages/code/public/static/images/kr/radar-active.png
  34. BIN
      packages/code/public/static/images/kr/radar-out.png
  35. BIN
      packages/code/public/static/images/kr/right-white.png
  36. BIN
      packages/code/public/static/images/kr/tourpoint.png
  37. BIN
      packages/code/public/static/images/kr/vr-btn-scene.png
  38. BIN
      packages/code/public/static/images/loading.gif
  39. BIN
      packages/code/public/static/images/skin1/bgmusic-close.png
  40. BIN
      packages/code/public/static/images/skin1/bgmusic-open.png
  41. BIN
      packages/code/public/static/images/skin1/commentclose.png
  42. BIN
      packages/code/public/static/images/skin1/footmark.png
  43. BIN
      packages/code/public/static/images/skin1/full-screen.png
  44. BIN
      packages/code/public/static/images/skin1/full-stop.png
  45. BIN
      packages/code/public/static/images/skin1/gyro-close.png
  46. BIN
      packages/code/public/static/images/skin1/gyro-open.png
  47. BIN
      packages/code/public/static/images/skin1/iconfont-link.png
  48. BIN
      packages/code/public/static/images/skin1/more.png
  49. BIN
      packages/code/public/static/images/skin1/music-close.png
  50. BIN
      packages/code/public/static/images/skin1/music-open.png
  51. BIN
      packages/code/public/static/images/skin1/radar.png
  52. BIN
      packages/code/public/static/images/skin1/radar_open.png
  53. BIN
      packages/code/public/static/images/skin1/vr-btn-comment.png
  54. BIN
      packages/code/public/static/images/skin1/vr-btn-desc.png
  55. BIN
      packages/code/public/static/images/skin1/vr-btn-good-click.png
  56. BIN
      packages/code/public/static/images/skin1/vr-btn-good.png
  57. BIN
      packages/code/public/static/images/skin1/vr-btn-scene.png
  58. BIN
      packages/code/public/static/images/skin1/vr-btn-share.png
  59. BIN
      packages/code/public/static/images/skin1/vrmode.png
  60. BIN
      packages/code/public/static/img/g.png
  61. 4336 0
      packages/code/public/static/js/alivideo.js
  62. 5 0
      packages/code/public/static/js/jquery-1.9.1.js
  63. 22 0
      packages/code/public/static/js/object.js
  64. 271 0
      packages/code/public/static/js/uhweb.js
  65. 518 0
      packages/code/public/static/js/vrshow.js
  66. 6448 0
      packages/code/public/static/js/zui.js
  67. 755 0
      packages/code/public/static/lib/Tween.js
  68. 11 0
      packages/code/public/static/lib/animate/animate.min.css
  69. 236 0
      packages/code/public/static/lib/audio.min.1.0.4.js
  70. 1 0
      packages/code/public/static/lib/base64.min.js
  71. 90 0
      packages/code/public/static/lib/bytebuffer.min.js
  72. 197 0
      packages/code/public/static/lib/canvas2Image.js
  73. 7 0
      packages/code/public/static/lib/clipboard.min.js
  74. 7 0
      packages/code/public/static/lib/events.js
  75. 90 0
      packages/code/public/static/lib/flexible.js
  76. 109 0
      packages/code/public/static/lib/flexible.min.js
  77. 4 0
      packages/code/public/static/lib/howler.min.js
  78. 6 0
      packages/code/public/static/lib/html2canvas.js
  79. 539 0
      packages/code/public/static/lib/iconfont/demo.css
  80. 5161 0
      packages/code/public/static/lib/iconfont/demo_index.html
  81. 885 0
      packages/code/public/static/lib/iconfont/iconfont.css
  82. BIN
      packages/code/public/static/lib/iconfont/iconfont.eot
  83. 1 0
      packages/code/public/static/lib/iconfont/iconfont.js
  84. 1528 0
      packages/code/public/static/lib/iconfont/iconfont.json
  85. 677 0
      packages/code/public/static/lib/iconfont/iconfont.svg
  86. BIN
      packages/code/public/static/lib/iconfont/iconfont.ttf
  87. BIN
      packages/code/public/static/lib/iconfont/iconfont.woff
  88. BIN
      packages/code/public/static/lib/iconfont/iconfont.woff2
  89. 539 0
      packages/code/public/static/lib/iconfontQJ1.1.0/demo.css
  90. 2787 0
      packages/code/public/static/lib/iconfontQJ1.1.0/demo_index.html
  91. 467 0
      packages/code/public/static/lib/iconfontQJ1.1.0/iconfont.css
  92. 1 0
      packages/code/public/static/lib/iconfontQJ1.1.0/iconfont.js
  93. 800 0
      packages/code/public/static/lib/iconfontQJ1.1.0/iconfont.json
  94. BIN
      packages/code/public/static/lib/iconfontQJ1.1.0/iconfont.ttf
  95. BIN
      packages/code/public/static/lib/iconfontQJ1.1.0/iconfont.woff
  96. BIN
      packages/code/public/static/lib/iconfontQJ1.1.0/iconfont.woff2
  97. 193 0
      packages/code/public/static/lib/iconfontVR/iconfont.css
  98. BIN
      packages/code/public/static/lib/iconfontVR/iconfont.eot
  99. 1 0
      packages/code/public/static/lib/iconfontVR/iconfont.js
  100. 0 0
      packages/code/public/static/lib/iconfontVR/iconfont.json

+ 23 - 0
.gitignore

@@ -0,0 +1,23 @@
+.DS_Store
+node_modules
+dist
+
+
+# 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?

+ 10 - 0
lerna.json

@@ -0,0 +1,10 @@
+{
+  "packages": [
+    "packages/code",
+    "packages/v4_page"
+  ],
+  "useWorkspaces": true,
+  "npmClient": "yarn",
+  "useNx": false,
+  "version": "0.0.0"
+}

Plik diff jest za duży
+ 54160 - 0
package-lock.json


+ 23 - 0
package.json

@@ -0,0 +1,23 @@
+{
+  "name": "root",
+  "private": true,
+  "workspaces": [
+    "packages/*"
+  ],
+  "devDependencies": {
+    "lerna": "^5.1.6"
+  },
+  "scripts": {
+    "main:serve": "yarn workspace qjkankan run serve",
+    "main:serve-testprod": "yarn workspace qjkankan run serve-testprod",
+    "main:build": "yarn workspace qjkankan run build",
+    "main:build-testprod": "yarn workspace qjkankan run build-testprod",
+    "v4_page:build": "yarn workspace v4_page run build",
+    "v4_page:serve": "yarn workspace v4_page run serve",
+    "build": "npm-run-all -s main:build v4_page:build",
+    "build-testprod": "npm-run-all -s main:build-testprod v4_page:build"
+  },
+  "dependencies": {
+    "npm-run-all": "^4.1.5"
+  }
+}

+ 3 - 0
packages/code/.browserslistrc

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

+ 7 - 0
packages/code/.env

@@ -0,0 +1,7 @@
+VUE_APP_MAIN_COLOR=''
+VUE_APP_STATIC_DIR=static
+VUE_APP_INNERNET=https://fcb.intranet.4dkankan.com
+VUE_APP_CDN=https://4dkk.4dage.com
+VUE_APP_PROXY_URL='http://www.4dkankan.com/qjkankan/'
+VUE_APP_PROXY_4DKANKAN_URL='http://www.4dkankan.com'
+VUE_APP_URL_FILL=/qjkankan

+ 13 - 0
packages/code/.env.bendi

@@ -0,0 +1,13 @@
+VUE_APP_MAIN_COLOR=''
+VUE_APP_STATIC_DIR=static
+VUE_APP_INNERNET=https://fcb.intranet.4dkankan.com
+VUE_APP_CDN=https://oss-xiaoan.oss-cn-shenzhen.aliyuncs.com
+VUE_APP_PROXY_URL='http://test.4dkankan.com/qjkankan/'
+VUE_APP_URL_FILL=/qjkankan
+
+VUE_APP_MAIN_COLOR=''
+VUE_APP_STATIC_DIR=static
+VUE_APP_INNERNET=https://fcb.intranet.4dkankan.com
+VUE_APP_CDN=https://oss-xiaoan.oss-cn-shenzhen.aliyuncs.com
+VUE_APP_PROXY_URL='http://192.168.0.135:8001/'
+VUE_APP_URL_FILL='/'

+ 8 - 0
packages/code/.env.prod

@@ -0,0 +1,8 @@
+NODE_ENV=production
+VUE_APP_MAIN_COLOR=''
+VUE_APP_STATIC_DIR=static
+VUE_APP_INNERNET=https://fcb.intranet.4dkankan.com
+VUE_APP_CDN=https://4dkk.4dage.com
+VUE_APP_PROXY_URL='http://www.4dkankan.com/qjkankan/'
+VUE_APP_PROXY_4DKANKAN_URL=''
+VUE_APP_URL_FILL=/qjkankan

+ 8 - 0
packages/code/.env.testprod

@@ -0,0 +1,8 @@
+NODE_ENV=production
+VUE_APP_MAIN_COLOR=''
+VUE_APP_STATIC_DIR=static
+VUE_APP_INNERNET=https://fcb.intranet.4dkankan.com
+VUE_APP_CDN=https://oss-xiaoan.oss-cn-shenzhen.aliyuncs.com
+VUE_APP_PROXY_URL='http://test.4dkankan.com/qjkankan/'
+VUE_APP_PROXY_4DKANKAN_URL=''
+VUE_APP_URL_FILL=/qjkankan

+ 22 - 0
packages/code/.eslintrc.js

@@ -0,0 +1,22 @@
+module.exports = {
+  root: true,
+  env: {
+    node: true,
+    browser: true,
+    es6: true,
+    commonjs: true,
+    jquery: true,
+  },
+  'extends': [
+    'plugin:vue/essential',
+    'eslint:recommended'
+  ],
+  parserOptions: {
+    parser: 'babel-eslint'
+  },
+  rules: {
+    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
+    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
+    'no-unused-vars': 'off',
+  },
+}

+ 24 - 0
packages/code/.gitignore

@@ -0,0 +1,24 @@
+dist.zip
+.DS_Store
+node_modules
+/dist
+
+
+# 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?

+ 24 - 0
packages/code/README.md

@@ -0,0 +1,24 @@
+# code2.6
+
+## Project setup
+```
+npm install
+```
+
+### Compiles and hot-reloads for development
+```
+npm run serve
+```
+
+### Compiles and minifies for production
+```
+npm run build
+```
+
+### Lints and fixes files
+```
+npm run lint
+```
+
+### Customize configuration
+See [Configuration Reference](https://cli.vuejs.org/config/).

+ 14 - 0
packages/code/babel.config.js

@@ -0,0 +1,14 @@
+module.exports = {
+  presets: [
+    '@vue/cli-plugin-babel/preset'
+  ],
+  plugins: [
+    [
+      "component",
+      {
+        "libraryName": "element-ui",
+        "styleLibraryName": "theme-chalk"
+      }
+    ]
+  ]
+}

+ 9 - 0
packages/code/jsconfig.json

@@ -0,0 +1,9 @@
+{
+  "compilerOptions": {
+    "baseUrl": ".",
+    "paths": {
+      "@/*": ["./src/*"]
+    }
+  },
+  "exclude": ["node_modues", "dist"],
+}

Plik diff jest za duży
+ 35924 - 0
packages/code/package-lock.json


+ 46 - 0
packages/code/package.json

@@ -0,0 +1,46 @@
+{
+  "name": "qjkankan",
+  "version": "0.1.0",
+  "private": true,
+  "scripts": {
+    "clean": "rimraf dist/**/*",
+    "serve": "vue-cli-service serve",
+    "serve-prod": "vue-cli-service serve --mode prod",
+    "serve-testprod": "vue-cli-service serve --mode testprod",
+    "serve-local": "vue-cli-service serve --mode bendi",
+    "build": "vue-cli-service build",
+    "build-prod": "vue-cli-service build --mode prod",
+    "build-testprod": "vue-cli-service build --mode testprod",
+    "lint": "vue-cli-service lint"
+  },
+  "dependencies": {
+    "core-js": "^3.8.2",
+    "element-ui": "^2.15.1",
+    "html2canvas": "^1.4.1",
+    "photoswipe": "^4.1.3",
+    "swiper": "^5.3.8",
+    "v-viewer": "^1.5.1",
+    "video.js": "^7.11.8",
+    "vue": "^2.6.12",
+    "vue-awesome-swiper": "^4.1.1",
+    "vue-cropperjs": "^4.2.0",
+    "vue-i18n": "^8.22.3",
+    "vue-photo-preview": "^1.1.3",
+    "vue-router": "^3.4.9",
+    "vuedraggable": "^2.24.3",
+    "vuex": "^3.6.0"
+  },
+  "devDependencies": {
+    "@vue/cli-plugin-babel": "^4.5.9",
+    "@vue/cli-plugin-eslint": "^4.5.9",
+    "@vue/cli-plugin-router": "^4.5.9",
+    "@vue/cli-service": "^4.5.9",
+    "babel-eslint": "^10.1.0",
+    "babel-plugin-component": "^1.1.1",
+    "eslint": "^6.8.0",
+    "eslint-plugin-vue": "^6.2.2",
+    "less": "^3.13.1",
+    "less-loader": "^5.0.0",
+    "vue-template-compiler": "^2.6.12"
+  }
+}

+ 26 - 0
packages/code/public/edit.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="zh">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width,initial-scale=1.0">
+    <link rel="icon" href="./favicon.ico" />
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfont/iconfont.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontQJ1.1.0/iconfont.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontVR/iconfont.css"/>
+    <link rel="stylesheet" href="//at.alicdn.com/t/font_2410347_3sp3zd6hsff.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/animate/animate.min.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/mCustomScrollbar/jquery.mCustomScrollbar.min.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/scrollbar/perfect-scrollbar.css"/>
+    <title>全景看看作品制作工具</title>
+  </head>
+  <body>
+    <div id="app"></div>
+    <!-- built files will be auto injected -->
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/jquery-2.1.1.min.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/krpano/js/tour.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/mCustomScrollbar/jquery.mCustomScrollbar.concat.min.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/scrollbar/perfect-scrollbar.min.js"></script>
+  </body>
+</html>

BIN
packages/code/public/favicon.ico


BIN
packages/code/public/fonts/element-icons.ttf


BIN
packages/code/public/fonts/element-icons.woff


+ 31 - 0
packages/code/public/material.html

@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html lang="zh">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width,initial-scale=1.0">
+    <link rel="icon" href="./favicon.ico" />
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfont/iconfont.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontQJ1.1.0/iconfont.css"/>
+    <link rel="stylesheet" href="//at.alicdn.com/t/font_2947721_fdnuf7rzr.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/animate/animate.min.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/mCustomScrollbar/jquery.mCustomScrollbar.min.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/scrollbar/perfect-scrollbar.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/tooltipster/tooltipster.bundle.min.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/tooltipster/tooltipster-sideTip-borderless.min.css"/>
+
+    <title>四维·全景看看</title>
+  </head>
+  <body>
+    <div id="app"></div>
+    <!-- built files will be auto injected -->
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/jquery-2.1.1.min.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/krpano/js/tour.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/mCustomScrollbar/jquery.mCustomScrollbar.concat.min.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/scrollbar/perfect-scrollbar.min.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/audio.min.1.0.4.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/tooltipster/tooltipster.bundle.js"></script>
+
+  </body>
+</html>

+ 26 - 0
packages/code/public/show.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="zh">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width,initial-scale=1.0">
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfont/iconfont.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontQJ1.1.0/iconfont.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontVR/iconfont.css"/>
+    <link rel="stylesheet" href="//at.alicdn.com/t/font_2410347_4htx35g8w1b.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/scrollbar/perfect-scrollbar.css"/>
+    <link rel="icon" href="./favicon.ico" />
+    <title>VR作品</title>
+  </head>
+  <body>
+    <div id="app"></div>
+    <!-- built files will be auto injected -->
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/jquery-2.1.1.min.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/krpano/js/tour.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/mCustomScrollbar/jquery.mCustomScrollbar.concat.min.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/scrollbar/perfect-scrollbar.min.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/sly.min.js"></script>
+
+  </body>
+</html>

+ 77 - 0
packages/code/public/showMobile.html

@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html lang="zh">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta content="yes" name="apple-mobile-web-app-capable" />  
+    <meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfont/iconfont.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontQJ1.1.0/iconfont.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontVR/iconfont.css"/>
+    <link rel="stylesheet" href="//at.alicdn.com/t/font_2947721_fdnuf7rzr.css"/>
+    <link rel="stylesheet" href="//at.alicdn.com/t/font_1064953_6ikt2gc1snb.css"/>
+    <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/lib/animate/animate.min.css" />
+    <link rel="icon" href="./favicon.ico" />
+    <!-- <style>
+      #consoleLog{ 
+        width: 120px;
+        height: 153px;
+        position: fixed;
+        right: 0px;
+        bottom: 160px;
+        z-index: 999999;
+        color: black;
+        opacity: 0.9;
+        font-size: 12px;
+      }
+    </style> -->
+    <title>VR作品</title>
+  </head>
+  <body>
+    <div id="app"></div>
+    <!-- built files will be auto injected -->
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/jquery-2.1.1.min.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/krpano/js/tour.js"></script>
+    
+    <script src="https://4dkk.4dage.com/v4/www/sdk/kankan-sdk-deps.js?v=4.0.0-alpha.44"></script>
+    <script src="https://4dkk.4dage.com/v4/www/sdk/kankan-sdk.js?v=4.0.0-alpha.44"></script>
+
+    <script src="https://res2.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
+
+<!-- 
+    <script>
+      let href = window.location.href
+
+      var changeLog = ()=>{
+      
+          if(href.indexOf('724')>-1){
+              var textarea = document.createElement('textarea');
+                textarea.id = "consoleLog";
+
+                document.getElementsByTagName("body")[0].appendChild(textarea);
+                var list = ["log", "error", "warn", "debug", "info", "time", "timeEnd"]
+                var exchange = function (o) {
+                  console["old" + o] = console[o];
+                  console[o] = function (str) {
+                    console["old" + o](str);
+                    var t = document.getElementById("consoleLog").innerHTML;
+                    document.getElementById("consoleLog").innerHTML = str + "\n\n" + t;
+                  }
+                }
+
+                for (var i = 0; i < list.length; i++) {
+                  exchange(list[i])
+                } 
+         
+          }
+          
+      }
+
+      setTimeout(() => {
+        changeLog()
+      }, 1000);
+  </script> -->
+
+  </body>
+</html>

+ 175 - 0
packages/code/public/static/css/alivideo.css

@@ -0,0 +1,175 @@
+/**
+ * @fileoverview 默认皮肤的样式
+ * @author 首作<aloysious.ld@taobao.com>
+ * @date 2015-01-12
+ *
+ * 约定:
+ * 1. 这个文件只定义所有ui组件的尺寸、在prite图中的位置(background、width、height);
+ * 2. 与layout相关的属性(position、margin等)不在此定义,而交由js的layout模块完成;
+ * 3. 对于复杂的ui组件,其内层的所有样式都可以在这个文件定制(如进度条、音量控制条);
+ * 4. 在首次迭代中,这个文件开发者会手动编辑,以后与sprite图相关的属性应由代码自动化生成。
+ */
+.prism-player .prism-big-play-btn {
+  width: 90px;
+  height: 90px;
+  background: url("//gw.alicdn.com/tps/TB1YuE3KFXXXXaAXFXXXXXXXXXX-256-512.png") no-repeat -2px -2px;
+}
+.prism-player .prism-play-btn {
+  width: 27px;
+  height: 30px;
+  background: url("//gw.alicdn.com/tps/TB1YuE3KFXXXXaAXFXXXXXXXXXX-256-512.png") no-repeat -2px -250px;
+}
+.prism-player .prism-live-display {
+  width: 56px;
+  height: 19px;
+  background: url("//gw.alicdn.com/tps/TB1YuE3KFXXXXaAXFXXXXXXXXXX-256-512.png") no-repeat -186px -2px;
+}
+.prism-player .prism-play-btn.playing {
+  width: 27px;
+  height: 30px;
+  background: url("//gw.alicdn.com/tps/TB1YuE3KFXXXXaAXFXXXXXXXXXX-256-512.png") no-repeat -208px -269px;
+}
+.prism-player .prism-fullscreen-btn {
+  width: 30px;
+  height: 30px;
+  background: url("//gw.alicdn.com/tps/TB1YuE3KFXXXXaAXFXXXXXXXXXX-256-512.png") no-repeat -124px -190px;
+}
+.prism-player .prism-fullscreen-btn.fullscreen {
+  width: 30px;
+  height: 30px;
+  background: url("//gw.alicdn.com/tps/TB1YuE3KFXXXXaAXFXXXXXXXXXX-256-512.png") no-repeat -161px -183px;
+}
+.prism-player .prism-volume {
+  width: 33px;
+  height: 30px;
+  background: url("//gw.alicdn.com/tps/TB1YuE3KFXXXXaAXFXXXXXXXXXX-256-512.png") no-repeat -199px -119px;
+}
+.prism-player .prism-volume.mute {
+  width: 33px;
+  height: 30px;
+  background: url("//gw.alicdn.com/tps/TB1YuE3KFXXXXaAXFXXXXXXXXXX-256-512.png") no-repeat -164px -151px;
+}
+.prism-player {
+  background-color: #000;
+  position: relative;
+  /* bigPlayButton */
+  /* controlBar */
+  /* playButton */
+  /* liveDisplay */
+  /* timeDisplay */
+  /* fullscreenButton */
+  /* volume */
+  /* progress */
+}
+.prism-player .prism-cover {
+  width: 100%;
+  height: 100%;
+  background-color: #000;
+  background-repeat: no-repeat;
+  background-position: center;
+  background-size: contain;
+  position: absolute;
+  top: 0;
+  left: 0;
+}
+.prism-player .prism-controlbar {
+  width: 100%;
+  height: 61px;
+  position: relative;
+  z-index: 1;
+}
+.prism-player .prism-controlbar .prism-controlbar-bg {
+  background-color: #262626;
+  width: 100%;
+  height: 50px;
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  z-index: -1;
+}
+.prism-player .prism-time-display {
+  height: 33px;
+  line-height: 33px;
+  color: #666666;
+}
+.prism-player .prism-time-display .current-time {
+  color: #fff;
+}
+.prism-player .prism-progress {
+  width: 100%;
+  height: 6px;
+  margin-top: 5px;
+  background-color: #363636;
+  position: relative;
+}
+.prism-player .prism-progress .prism-progress-loaded {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 0;
+  height: 100%;
+  background-color: #7e2c1f;
+}
+.prism-player .prism-progress .prism-progress-played {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 0;
+  height: 100%;
+  background-color: #ee2a10;
+}
+.prism-player .prism-progress .prism-progress-cursor {
+  position: absolute;
+  width: 8px;
+  height: 8px;
+  top: -5px;
+  left: 0;
+  margin-left: -8px;
+  background-color: #5b5b5b;
+  border: 4px solid #fff;
+  border-radius: 8px;
+  -webkit-box-shadow: 0 0 5px #000;
+  box-shadow: 0 0 5px #000;
+  overflow: hidden;
+  -webkit-box-sizing: content-box;
+  -moz-box-sizing: content-box;
+  box-sizing: content-box;
+}
+:-webkit-full-screen {
+  width: 100%!important;
+  height: 100%!important;
+}
+:-moz-full-screen {
+  width: 100%!important;
+  height: 100%!important;
+}
+:-ms-full-screen {
+  width: 100%!important;
+  height: 100%!important;
+}
+:-ms-fullscreen {
+  width: 100%!important;
+  height: 100%!important;
+}
+:fullscreen {
+  width: 100%!important;
+  height: 100%!important;
+}
+body.prism-full-window {
+  padding: 0;
+  margin: 0;
+  height: 100%;
+  overflow-y: auto;
+}
+.prism-fullscreen {
+  position: fixed;
+  overflow: hidden;
+  z-index: 99999;
+  left: 0;
+  top: 0;
+  bottom: 0;
+  right: 0;
+  width: 100% !important;
+  height: 100% !important;
+  _position: absolute;
+}

Plik diff jest za duży
+ 4663 - 0
packages/code/public/static/css/redefine.css


Plik diff jest za duży
+ 1523 - 0
packages/code/public/static/css/response.css


Plik diff jest za duży
+ 1311 - 0
packages/code/public/static/css/zui-theme.css


Plik diff jest za duży
+ 17 - 0
packages/code/public/static/css/zui.min.css


BIN
packages/code/public/static/fonts/captcha.ttf


BIN
packages/code/public/static/fonts/zenicon.woff


BIN
packages/code/public/static/images/kr/close.png


BIN
packages/code/public/static/images/kr/left-white.png


BIN
packages/code/public/static/images/kr/radar-active.png


BIN
packages/code/public/static/images/kr/radar-out.png


BIN
packages/code/public/static/images/kr/right-white.png


BIN
packages/code/public/static/images/kr/tourpoint.png


BIN
packages/code/public/static/images/kr/vr-btn-scene.png


BIN
packages/code/public/static/images/loading.gif


BIN
packages/code/public/static/images/skin1/bgmusic-close.png


BIN
packages/code/public/static/images/skin1/bgmusic-open.png


BIN
packages/code/public/static/images/skin1/commentclose.png


BIN
packages/code/public/static/images/skin1/footmark.png


BIN
packages/code/public/static/images/skin1/full-screen.png


BIN
packages/code/public/static/images/skin1/full-stop.png


BIN
packages/code/public/static/images/skin1/gyro-close.png


BIN
packages/code/public/static/images/skin1/gyro-open.png


BIN
packages/code/public/static/images/skin1/iconfont-link.png


BIN
packages/code/public/static/images/skin1/more.png


BIN
packages/code/public/static/images/skin1/music-close.png


BIN
packages/code/public/static/images/skin1/music-open.png


BIN
packages/code/public/static/images/skin1/radar.png


BIN
packages/code/public/static/images/skin1/radar_open.png


BIN
packages/code/public/static/images/skin1/vr-btn-comment.png


BIN
packages/code/public/static/images/skin1/vr-btn-desc.png


BIN
packages/code/public/static/images/skin1/vr-btn-good-click.png


BIN
packages/code/public/static/images/skin1/vr-btn-good.png


BIN
packages/code/public/static/images/skin1/vr-btn-scene.png


BIN
packages/code/public/static/images/skin1/vr-btn-share.png


BIN
packages/code/public/static/images/skin1/vrmode.png


BIN
packages/code/public/static/img/g.png


Plik diff jest za duży
+ 4336 - 0
packages/code/public/static/js/alivideo.js


Plik diff jest za duży
+ 5 - 0
packages/code/public/static/js/jquery-1.9.1.js


+ 22 - 0
packages/code/public/static/js/object.js

@@ -0,0 +1,22 @@
+//flag 标识是否从预览页打开 true
+function obj_buildframes(oid,sceneName){
+	var krpano = document.getElementById('krpanoSWFObject');
+	var objs = getObj(oid,sceneName);
+	for(var i=0 ; i<objs.length; i++){
+		var fname = 'frame'+i;
+		krpano.call('addplugin('+fname+');'+
+				 'plugin['+fname+'].loadstyle(frame);'+
+				 'set(plugin['+fname+'].url,'+objs[i].imgsrc+');');
+	}
+	toggleBtns(false);
+	krpano.call("set(currentframe,0);set(framecount,"+objs.length+");set(oldmousex,0);showframe(0);");
+}
+function getObj(oid,sceneName){
+	var objs = data.hotspot[sceneName]['obj'];
+	for(var i= 0 ; i< objs.length;i++){
+		var o = objs[i];
+		if (o.objid == oid) {
+			return o.objs;
+		}
+	}
+}

+ 271 - 0
packages/code/public/static/js/uhweb.js

@@ -0,0 +1,271 @@
+/**
+ *UHWEB JS
+ */
+(function (w, d, undefined) {
+    /*
+     *生成全局遮罩层
+     */
+    //document.writeln('<div id="div_Mask" style="width:100%;position:absolute; z-index:99999; top:0; left:0; background:#E6E6E6; height:' + 0/*document.documentElement.clientHeight*/ + 'px;"><div style="z-index:99999;font-size:12px;color: #ce8f22;position:absolute;top:0px;right:0px;padding:2px 10px 2px 10px;">' +
+    //    '加载中,请稍候......</div></div>');
+    //document.close();
+
+    /**
+     * 定义全局作用域变量UHWEB
+     */
+    w.UHWEB = (function (w, d, undefined) {
+        /**
+         *是否是IE浏览器
+         */
+        var isIE = (navigator.userAgent.toLowerCase().indexOf('msie') != -1),
+            /**
+             * 创建UHWEB对象的临时变量
+             */
+            U,
+            /**
+             * 缓存document.getElementsByTagName
+             */
+            queryTag = function (tag) {
+                return this.getElementsByTagName(tag);
+            },
+            /**
+             * 缓存document.createElement
+             */
+            createEl = function (tag) {
+                return this.createElement(tag);
+            },
+            /**
+             * 是否是服务器模式,uhweb可在静态环境和服务器环境运行
+             */
+            isServer = !(d.domain == ''),
+            /**
+             * 业务js,就是定义在uhweb.js的script节点上的bizjs属性
+             */
+            bizJs,
+            /**
+             *业务css,就是定义在uhweb.js的script节点上的bizcss属性
+             */
+            bizCss,
+            /**
+             * 是否是客户端缓存服务端
+             */
+            clientCache,
+            isLoginPage = "false",
+
+        /*
+         * 调试模式,静态模式或者服务器模式下在url后拼接uhweb-debug=true即可开启调试模式.
+         * 要查看调试信息,请开启浏览器控制台
+         */
+            _DEBUG = false;
+        if (!isServer || w.location.search.indexOf('uhweb-debug=true') > 0) {
+            _DEBUG = true;
+        }
+
+        /**
+         * 获取uhweb所在的根目录
+         * @return {String}
+         */
+        var getRoot = function () {
+            var s = queryTag.call(d, 'script'),
+                /**
+                 * 某些情况时需要添加例外
+                 */
+                id = 0;
+            var p = s[id].src, sign = "uhweb.js", realpath = "uhweb/uhweb.js";
+            if (p.lastIndexOf(sign) > 0) {
+                bizJs = s[id].getAttribute('bizjs');
+                isLoginPage = s[id].getAttribute('isLoginPage');
+                bizCss = s[id].getAttribute('bizcss');
+                clientCache = s[id].getAttribute('CacheServer');
+                return p.replace(realpath, '');
+            } else {
+                throw '引入的uhweb.js的script节点必须放在页面引用的第一个script节点上!';
+            }
+        };
+        var head = queryTag.call(d, 'HEAD').item(0),
+        //静态运行时加载js
+            local = function (url, func) {
+                var s = createEl.call(d, 'script');
+                s.language = 'javascript';
+                s.type = 'text/javascript';
+                s.async = false;
+                s['src'] = url;
+                s.onload = s.onreadystatechange = function () {
+                    var st = this.readyState;
+                    if (!st || st == 'loaded' || st == 'complete') {
+                        _U.log('finishLoad js file ' + url);
+                        s.onload = s.onreadystatechange = null;
+                        if (func) {
+                            func.delay(10);
+                        }
+                    }
+                };
+                head.appendChild(s);
+                return s;
+            },
+        //服务器模式时加载js
+            server = function (url, func) {
+                var req = ((w.ActiveXObject) ? new ActiveXObject('MsXml2.XmlHttp') : new XMLHttpRequest());
+                req.open('get', url, false);
+                req.setRequestHeader('Content-Type', 'text/plain;charset=gb2312');
+                req.send(null);
+                if (req.readyState == 4) {
+                    if (req.status == 200) {
+                        if (req.responseText != '') {
+                            if (isIE) {
+                                execScript(req.responseText);
+                            } else {
+                                w.eval(req.responseText);
+                            }
+                            if (func)func();
+                        }
+                    }
+                }
+            };
+        U = {
+            //版本号
+            ver: 'V1.0',
+            //全局根目录
+            root: getRoot(),
+            isLoginPage : isLoginPage,
+            //是否是开发模式
+            isDev: (typeof jQuery === 'undefined'),
+            //是否是服务器端运行
+            isServer: isServer,
+            //调试开关
+            debug: _DEBUG,
+            //加载js
+            loadJs: function (url, f) {
+                (isServer) ? server(url, f) : local(url, f);
+            },
+            //加载css
+            loadCss: function (url) {
+                var link = createEl.call(d, 'link');
+                link.href = url;
+                link.type = 'text/css';
+                link.rel = 'stylesheet';
+                head.appendChild(link);
+            },
+            //初始化配置文件
+            initCfg: function (cfg) {
+                var me = this;
+                me.config = cfg;
+                if (me.process) {
+                    me.process();
+                } else {
+                    _U.loadCss('../uhweb/styles/' + _U.getCfg('style').sys_style + '/uhweb_min.css');
+                }
+                //加载业务js文件
+                var bizjs = (bizJs) ? eval(bizJs) : [], url, bizcss = (bizCss) ? eval(bizCss) : [];
+                for (i = 0; i < bizjs.length; i++) {
+                    url = me.root + bizjs[i];
+                    _U.log('add bizjs ' + url, 'uhweb');
+                    me.loadJs(url);
+                }
+                for (i = 0; i < bizcss.length; i++) {
+                    url = me.root + bizcss[i];
+                    _U.log('add bizcss ' + url, 'uhweb');
+                    me.loadCss(url);
+                }
+            },
+            //获取配置信息
+            getCfg: function (name) {
+                return this.config[name];
+            }
+        };
+        //实现默认的浅拷贝
+        U.mix = function (o) {
+            var me = this;
+            for (var k in o) {
+                if (me[k]) {
+                    me.warn('UHWEB对象已经有属性[' + k + ']!', 'uhweb');
+                } else {
+                    me[k] = o[k];
+                }
+            }
+        };
+        U.getParamFromUrl = function (param) {
+            var query = window.location.search;
+            var v = query.match(new RegExp("(^|&)" + param + "=([^&]*)(&|$)", "i"));
+            if (v != null) {
+                v = unescape(v[2]);
+            }
+            return v;
+        };
+        //全局屏蔽一些按键
+        U.shielding = function () {
+            var s = _U.getCfg('shields');
+            $(window).addEvent((Browser.firefox) ? 'keypress' : 'keydown', function (e) {
+                var k = e.key, c = e.control, el = $(e.target);
+                if ((k == 'f5' || (c && k == 'r')) && s.f5) {
+                    e.stop();
+                    return false;
+                } else if (k == 'backspace' && s.backspace) {
+                    var type = el.get('type') || el.get('tag');
+                    if (!['button', 'text', 'password', 'textarea', 'submit'].contains(type)) {
+                        e.stop();
+                        return false;
+                    }
+                }
+            });
+            if (s.contextMenu) {
+                $(document).oncontextmenu = function (e) {
+                    return false;
+                }
+            }
+        };
+        //统一处理iframe的初始化以及跳转
+        //解决按下backspace或者浏览器回退键会使iframe变为空白的问题
+        U.setIfrSrc = function (ifr, src) {
+            ifr.src = src;
+            ifr.contentWindow.location.replace(src);
+            /*//要注意跨域的问题.可能无跨域问题
+             Function.attempt(function () {
+             }, function () {
+
+             })*/
+        };
+        return U;
+    })(w, d, undefined);
+    /**
+     * 新增一个别名,减少字符开销
+     */
+    var _U = w._U = w.Uhweb = w.UHWEB,
+        /**
+         *日志输出级别,为兼容,暂支持4种级别
+         */
+        mtd = ['log', 'warn', 'error', 'info'];
+    /**
+     * 隐藏蒙版,框架启动加载完毕之后会调用
+     */
+    for (var k = 0; k < mtd.length; k++) {
+        _U[mtd[k]] = (function (c) {
+            return function (msg, src) {
+                U_LOG(msg, c, src);
+            }
+        })(mtd[k]);
+    }
+    /**
+     * 日志输出
+     * @param msg 要输出的信息
+     * @param cat 级别
+     * @param src 信息来源
+     */
+    function U_LOG(msg, cat, src) {
+        if (_U.debug) {
+            msg = ((src) ? src : 'SYSTEM') + ': ' + msg;
+            if (w['console'] !== undefined && console.log) {
+                console[cat && console[cat] ? cat : 'log'](msg);
+            }
+        }
+    }
+
+    _U.process = function () {
+
+    };
+
+    //加载子界面.
+    _U.initSubPage = function (ns, func) {
+        $.fn[ns] = {};
+        func($, $.fn[ns], _U);
+    };
+})(window, document, undefined);

+ 518 - 0
packages/code/public/static/js/vrshow.js

@@ -0,0 +1,518 @@
+var pk_works_main;
+var mapModalEl;
+var _user_view_uuid;
+var _name;
+var _userList;
+var plugins_init_function = new Array();//接收显示时的init方法
+
+//krpano loadcomplete调用
+function showPanoBtns(sceneCount){
+    if (sceneCount > 1) {
+        $(".vrshow_container_3_min .img_desc_container_min:eq(0)").show();
+    }else{
+        $(".vrshow_container_3_min .img_desc_container_min:eq(0)").hide();
+    }
+    $("#panoBtns").show();
+}
+
+function fullscreen(el){
+    //krpano.call("switch(fullscreen);");
+    //launchFullScreen(document.documentElement);
+    if($(el).hasClass('btn_fullscreen')){
+        launchFullScreen(document.getElementById('fullscreenid'));
+        var krpano = document.getElementById('krpanoSWFObject');
+        krpano.call("skin_showthumbs(false);");
+    }else{
+        exitFullscreen();
+    }
+    toggleFullscreenBtn(el);
+}
+
+function launchFullScreen(element) {
+    if(element.requestFullscreen) {
+        element.requestFullscreen();
+    } else if(element.mozRequestFullScreen) {
+        element.mozRequestFullScreen();
+    } else if(element.webkitRequestFullscreen) {
+        element.webkitRequestFullscreen();
+    } else if(element.msRequestFullscreen) {
+        element.msRequestFullscreen();
+    }
+}
+
+function exitFullscreen() {
+    if (document.exitFullscreen) {
+        document.exitFullscreen();
+    }
+    else if (document.mozCancelFullScreen) {
+        document.mozCancelFullScreen();
+    }
+    else if (document.webkitCancelFullScreen) {
+        document.webkitCancelFullScreen();
+    }
+    else if (document.msExitFullscreen) {
+        document.msExitFullscreen();
+    }
+}
+
+function toggleFullscreenBtn(el){
+    if($(el).hasClass("btn_fullscreen")){
+        $(el).removeClass("btn_fullscreen");
+        $(el).addClass("btn_fullscreen_off");
+    }else{
+        $(el).removeClass("btn_fullscreen_off");
+        $(el).addClass("btn_fullscreen");
+    }
+}
+
+function toggleBtns(flag){
+    if(flag){
+        $("#panoBtns").show();
+    }else{
+        $("#panoBtns").hide();
+        var krpano = document.getElementById('krpanoSWFObject');
+        krpano.call('skin_showthumbs(false);');
+    }
+}
+
+function showWebVR(){
+    var krpano = document.getElementById('krpanoSWFObject');
+    var webvr = krpano.get("webvr");
+    webvr.entervr();
+}
+
+
+
+function showthumbs(){
+    var krpano = document.getElementById('krpanoSWFObject');
+    krpano.call("skin_showthumbs();");
+}
+
+
+
+function hidePictext() {
+    $('#pictextModal').modal('hide');
+    toggleBtns(true);
+}
+
+function showPictext(title,content) {
+    toggleBtns(false);
+    //var data = $("body").data("panoData");
+    // $('#pictextWorkName').text('');
+    // $('#pictextContent').text('');
+    $('#pictextWorkName').text(title);
+    $('#pictextContent').html(imgtext_decode(content));
+    //$('#pictextContent').append(content);
+    $('#pictextModal').modal("show");
+}
+
+//krpano调用 初始化高级设置
+function initAdvancedSetting(sceneName){
+    //initViewSetting(sceneName);
+    initEffectSetting(sceneName);
+    initHotspotSetting(sceneName);
+    initSandTableSetting(sceneName);
+    initTourGuideSetting(sceneName);
+    //作者信息 TODO
+    // initAuthourInfo(sceneName);
+}
+
+function initTourGuideSetting(sceneName){
+    var krpano = document.getElementById('krpanoSWFObject');
+    var tourGuideObj = $("body").data("panoData").tour_guide;
+    if(tourGuideObj.points.length > 0){
+        $('#pano .vrshow_tour_btn').show();
+    }else{
+        $('#pano .vrshow_tour_btn').hide();
+    }
+}
+
+var lsTourGuideObj = null;
+function startTourGuide(){
+    toggleBtns(false);
+    lsTourGuideObj = $("body").data("panoData").tour_guide;
+    var krpano = document.getElementById('krpanoSWFObject');
+    //krpano.call('showlog(true)');
+    var curSceneName = krpano.get('xml.scene');
+    var firstPoint = lsTourGuideObj.points[0];
+    if(lsTourGuideObj.useStartImg){
+        krpano.call('show_tour_guide_alert('+lsTourGuideObj.startImgUrl+');');
+    }
+    if(this.sceneName != curSceneName){
+        krpano.call('loadscene('+firstPoint.sceneName+', null, MERGE);');
+    }
+    var curfov = krpano.get('view.fov');
+    krpano.call('lookto('+firstPoint.ath+','+firstPoint.atv+','+curfov+',smooth(720,-720,720),true,true,js(looktoCallBack('+1+')));');
+}
+
+function looktoCallBack(idx){
+    var krpano = document.getElementById('krpanoSWFObject');
+    if(idx < lsTourGuideObj.points.length){
+        var pointObj = lsTourGuideObj.points[idx];
+        var curSceneName = krpano.get('xml.scene');
+        var curfov = krpano.get('view.fov');
+        if(pointObj.sceneName != curSceneName){
+            krpano.call('loadscene('+pointObj.sceneName+', null, MERGE);');
+            krpano.call('lookto('+pointObj.ath+','+pointObj.atv+','+curfov+',smooth(720,-720,720),true,true,js(looktoCallBack('+(parseInt(idx)+1)+')));');
+        }else{
+            krpano.call('lookto('+pointObj.ath+','+pointObj.atv+','+curfov+',tween(easeInOutQuad,'+parseInt(pointObj.moveTime)+'),true,true,js(looktoCallBack('+(parseInt(idx)+1)+')));');
+        }
+    }else{
+        if(lsTourGuideObj.useEndImg){
+            krpano.call('show_tour_guide_alert('+lsTourGuideObj.endImgUrl+');');
+        }
+        toggleBtns(true);
+    }
+}
+
+function initSandTableSetting(sceneName){
+    var krpano = document.getElementById('krpanoSWFObject');
+    var sandTableObj = $("body").data("panoData").sand_table;
+    var existFlag = false;
+    $(sandTableObj.sandTables).each(function(idx){
+        if(this.sceneOpt[sceneName]){
+            //设置背景图片
+            krpano.set("layer[map].url",this.imgPath);
+            $.each(this.sceneOpt,function(sceneName,value){
+                var spotName = 'spot_'+sceneName;
+                addRadarSpot(spotName,value.krpLeft,value.krpTop);
+            });
+            var hlookatIncre = krpano.get('view.hlookat') - this.sceneOpt[sceneName].hlookat;
+            krpano.call('activatespot('+(parseFloat(this.sceneOpt[sceneName].rotate)+parseFloat(hlookatIncre))+');');
+            existFlag = true;
+            return false;
+        }
+    });
+    if(!existFlag){
+        $('.vrshow_radar_btn').hide();
+        krpano.set('layer[mapcontainer].visible',false);
+    }else{
+        $('.vrshow_radar_btn').show();
+        if(sandTableObj.isOpen){
+            krpano.set('layer[mapcontainer].visible',true);
+        }
+    }
+}
+
+function toggleKrpSandTable(){
+    var krpano = document.getElementById('krpanoSWFObject');
+    var isVisible = krpano.get('layer[mapcontainer].visible');
+    if(isVisible){
+        krpano.set('layer[mapcontainer].visible',false);
+    }else{
+        krpano.set('layer[mapcontainer].visible',true);
+    }
+}
+
+function addRadarSpot(name,x,y){
+    //console.log(x+','+y);
+    var krpano = document.getElementById('krpanoSWFObject');
+    krpano.call('addlayer('+name+');');
+    krpano.set('layer['+name+'].style','spot');
+    krpano.set('layer['+name+'].x',x);
+    krpano.set('layer['+name+'].y',y);
+    krpano.set('layer['+name+'].parent','radarmask');
+    krpano.call('layer['+name+'].loadstyle(spot);');
+    //krpano.set('layer['+name+'].keep','true');
+    //krpano.set('layer['+name+'].visible','true');
+}
+
+function initHotspotSetting(sceneName){
+    var krpano = document.getElementById('krpanoSWFObject');
+    var hotspotObj = ($("body").data("panoData").hotspot)[sceneName];
+    if(hotspotObj){
+        $.each(hotspotObj,function(key,value){
+            if(key == 'scene'){
+                $(value).each(function(idx){
+                    krpano.call('addSceneChangeHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+this.linkedscene+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true)');
+                });
+            }else if(key == 'link'){
+                $(value).each(function(idx){
+                    krpano.call('addLinkHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+this.link+','+this.isShowSpotName+')');
+                });
+            }else if(key == 'image'){
+                $(value).each(function(idx){
+                    krpano.call('addImgHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+this.galleryName+','+this.isShowSpotName+')');
+                });
+            }else if(key == 'text'){
+                $(value).each(function(idx){
+                    krpano.call('addWordHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+html_encode(this.wordContent)+','+this.isShowSpotName+')');
+                });
+            }else if(key == 'voice'){
+                $(value).each(function(idx){
+                    krpano.call('addVoiceHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+this.musicSrc+','+this.isShowSpotName+')');
+                });
+            }else if(key == 'around'){
+                $(value).each(function(idx){
+                    krpano.call('addAroundHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+this.aroundPath+','+this.fileCount+','+this.isShowSpotName+')');
+                });
+            }else if(key == 'imgtext'){
+                $(value).each(function(idx){
+                    krpano.call('addImgTextHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+imgtext_encode(this.imgtext_wordContent)+','+this.isShowSpotName+')');
+                });
+            }else if(key == 'obj'){
+                $(value).each(function(idx){
+                    krpano.call('addObjHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+this.objid+','+this.isShowSpotName+')');
+                });
+            }else if(key == 'video'){
+                $(value).each(function(idx){
+                    krpano.call('addVideoHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+this.location+','+this.isShowSpotName+')');
+                });
+            }
+        });
+    }
+}
+
+function initEffectSetting(sceneName){
+    var krpano = document.getElementById('krpanoSWFObject');
+    var effectObj = null;
+    var effectData = $("body").data("panoData").special_effects;
+    $(effectData.effectSettings).each(function(idx){
+        if(this.sceneName == sceneName){
+            effectObj = this;
+            return false;
+        }
+    });
+    if(effectObj){
+        if(effectObj.isOpen){
+            if(effectObj.effectType == 'sunshine'){
+                //krpano.set('lensflares[obj].item[lensitemobj].scene',sceneName);
+                //krpano.set('lensflares[obj].item[lensitemobj].ath',effectObj.ath);
+                //krpano.set('lensflares[obj].item[lensitemobj].atv',effectObj.atv);
+                krpano.call('addLensflares('+effectObj.ath+','+effectObj.atv+')');
+            }else{
+                krpano.call('addEffect("'+effectObj.effectType+'","'+effectObj.effectImgPath+'")');
+            }
+        }
+    }
+}
+
+function littlePlaneOpen(sceneName){
+    var krpano = document.getElementById('krpanoSWFObject');
+    var lookatObj = null;
+    var angleData = $("body").data("panoData").angle_of_view;
+    $(angleData.viewSettings).each(function(idx){
+        if(this.sceneName == sceneName){
+            lookatObj = this;
+            return false;
+        }
+    });
+    if(lookatObj){
+        krpano.set('view.vlookat',lookatObj.vlookat);
+        krpano.set('view.hlookat',lookatObj.hlookat);
+        krpano.set('view.fov',lookatObj.fov);
+        krpano.set('view.fovmax',lookatObj.fovmax);
+        if(lookatObj.hlookatmin){
+            krpano.set('view.hlookatmin',lookatObj.hlookatmin);
+        }
+        if(lookatObj.hlookatmax){
+            krpano.set('view.hlookatmax',lookatObj.hlookatmax);
+        }
+        krpano.call('skin_setup_littleplanetintro('+lookatObj.fovmin+','+(-1*lookatObj.vlookatmax)+','+(-1*lookatObj.vlookatmin)+','+(lookatObj.keepView ? "off" : "0.0")+');');
+    }else{
+        krpano.call('skin_setup_littleplanetintro(5,-90,90,"0.0");');
+    }
+}
+
+//场景载入时加载视角设置
+function initViewSetting(sceneName){
+    var krpano = document.getElementById('krpanoSWFObject');
+    var lookatObj = null;
+    var angleData = $("body").data("panoData").angle_of_view;
+    $(angleData.viewSettings).each(function(idx){
+        if(this.sceneName == sceneName){
+            lookatObj = this;
+            return false;
+        }
+    });
+    if(lookatObj){
+        krpano.set('view.vlookat',lookatObj.vlookat);
+        krpano.set('view.hlookat',lookatObj.hlookat);
+        krpano.set('view.fov',lookatObj.fov);
+        krpano.set('view.fovmin',lookatObj.fovmin);
+        krpano.set('view.fovmax',lookatObj.fovmax);
+        krpano.set('view.vlookatmin',-1*lookatObj.vlookatmax);
+        krpano.set('view.vlookatmax',-1*lookatObj.vlookatmin);
+        krpano.set('autorotate.horizon',lookatObj.keepView ? "off" : "0.0");
+        if(lookatObj.hlookatmin){
+            krpano.set('view.hlookatmin',lookatObj.hlookatmin);
+        }
+        if(lookatObj.hlookatmax){
+            krpano.set('view.hlookatmax',lookatObj.hlookatmax);
+        }
+    }
+}
+
+function loadGallery(){
+    var krpano = document.getElementById('krpanoSWFObject');
+    var hotspotObj = $("body").data("panoData").hotspot;
+    //var xmlStr = '';
+    $.each(hotspotObj,function(sceneName,value){
+        if(value){
+            $(value.image).each(function(idx){
+                var xmlStr = '<gallery name="'+this.galleryName+'" title="">';
+                $(this.imgs).each(function(idx){
+                    xmlStr += '<img name="img'+idx+'" url="'+this.src+'" title="" />';
+                });
+                xmlStr += '</gallery>';
+                krpano.call('loadxml('+xmlStr+');');
+            });
+        }
+    });
+}
+
+function reloadGallery(gallery){
+    var krpano = document.getElementById('krpanoSWFObject');
+    var ua = window.navigator.userAgent.toLowerCase();
+    if(typeof(wx)!='undefined' && ua.match(/MicroMessenger/i) == 'micromessenger'){
+        //整合gallery的图片到数组 
+        var urls = new Array();
+        for(var i=0; i<krpano.get('gallery['+gallery+'].img.count'); i++){
+            urls.push(krpano.get('gallery['+gallery+'].img['+i+'].url'));
+        }
+        wx.previewImage({
+            current: krpano.get('gallery['+gallery+'].img[0].url'), // 当前显示图片的http链接
+            urls: urls // 需要预览的图片http链接列表
+        }); 
+    }
+    else{
+        toggleBtns();
+        krpano.call('show_gallery('+gallery+')');   
+    }
+}
+
+function getWorkPrivacyFlag(){
+    var privacy_flag = '0';
+
+    return privacy_flag;
+}
+
+
+
+function initPano(){//TODO
+   
+   if(data.pk_works_main == undefined){
+       window.location.href = '/404.html';
+       return ;
+   }
+   //微信分享
+   // initWxConfig(data);
+   // initQQShare(data);
+   //存储作者的信息
+   // _user_view_uuid = data.user_view_uuid;
+   _user_view_uuid = "admin";
+
+   _name = data.name;
+   document.title = _name;
+   //$("#thumb_img").attr("src",data.absolutelocation);
+   //var descContent='';
+   //if(data.profile){
+   //    descContent = data.profile;
+   //}else{
+   //    descContent = data.name;
+   //}
+   //$("head").append('<meta name="description" content="'+descContent+'"/>');
+
+   $("body").data("panoData",data);
+   pk_works_main = data.pk_works_main;
+   var settings = {};
+   settings["events[skin_events].onloadcomplete"] = "skin_showloading(false);";
+   settings["onstart"] = '';
+   
+   //是否开始时弹出场景选择
+   if (data.scenechoose=='1') {
+       settings["events[skin_events].onloadcomplete"] += "open_show_scene_thumb();";
+   }
+   
+   //统计人气
+   if(data.browsing_num!='0'){
+       $("#user_viewNum").text(parseInt(data.browsing_num)+1);
+   }else{
+       $("#user_viewNum").text("1");
+   }
+   //启动画面
+   var loadingObj = data.loading_img;
+   if (loadingObj && loadingObj.useLoading) {
+       settings["onstart"] += "showloadingimg('" + loadingObj.loadingImgPathWebsite + "','" + loadingObj.loadingImgPathMobile + "');";
+   }
+   for(var i=0 ; i<plugins_init_function.length;i++){
+        plugins_init_function[i](data,settings);
+   }
+   if(data.scene_group.sceneGroups.length>0) {
+         $(".vrshow_container_3_min .img_desc_container_min:eq(0) img").attr('src',data.scene_group.sceneGroups[0].imgPath);
+    }
+   settings['skin_settings.littleplanetintro'] = data.littleplanet=="1" ? true : false;
+
+   settings['autorotate.enabled'] = data.autorotate=="1" ? true : false;
+   embedpano({
+       swf: "tour.swf",
+       xml: "tour.xml",
+       target: "pano",
+       html5:'prefer',
+       //flash:'only',
+       wmode:'opaque-flash',
+       mobilescale:0.7,
+       vars: settings
+   });
+}
+function html_encode(str)
+  {
+    var s = "";
+    if (str.length == 0) return "";
+    s = str.replace(/\'/g, "&#39;");
+    s = s.replace(/\"/g, "&quot;");
+    s = s.replace(/\(/g, "(");
+    s = s.replace(/\)/g, ")");
+    s = s.replace(/,/g, ",");
+    return s;
+  }
+function imgtext_encode(str){
+     var s = "";
+    if (str.length == 0) return "";
+    s = str.replace(/\'/g, "&#39;");
+    s = s.replace(/\"/g, "&quot;");
+    s = s.replace(/\(/g, "(");
+    s = s.replace(/\)/g, ")");
+    s = s.replace(/\,/g,"%2C");
+    return s;
+}
+function imgtext_decode(str){
+     var s = "";
+    if (str.length == 0) return "";
+    s = str.replace(/&quot;/g, "\"");
+     s = s.replace(/%2C/g,",");
+    return s;
+}
+
+function showFullscreenBtn(){
+    $(".btn_fullscreen").show();
+}
+
+
+
+function radarRotate(sceneName,hlookat){
+
+}
+
+function openSpeechVoiceBtn(){
+    var voiceOff = $('.btn_music_off');
+    voiceOff.removeClass('btn_music_off');
+    voiceOff.addClass('btn_music');
+}
+var player ;
+function playvideo(url){
+   var location = window.location.href;
+   url = location.substring(0,location.lastIndexOf("\/")+1)+url;
+   player = new prismplayer({
+      id: "J_prismPlayer", // 容器id
+      source:url,
+      autoplay: true,      // 自动播放
+      width: "100%",       // 播放器宽度
+      height: "400px"      // 播放器高度
+    });
+   $("#video_player_modal").modal('show');
+}
+function close_video_player(){
+    player.pause();
+    $("#video_player_modal").modal('hide');
+}

Plik diff jest za duży
+ 6448 - 0
packages/code/public/static/js/zui.js


+ 755 - 0
packages/code/public/static/lib/Tween.js

@@ -0,0 +1,755 @@
+/**
+ * Tween.js - Licensed under the MIT license
+ * https://github.com/sole/tween.js
+ * ----------------------------------------------
+ *
+ * See https://github.com/sole/tween.js/graphs/contributors for the full list of contributors.
+ * Thank you all, you're awesome!
+ */
+
+// Date.now shim for (ahem) Internet Explo(d|r)er
+if ( Date.now === undefined ) {
+
+	Date.now = function () {
+
+		return new Date().valueOf();
+
+	};
+
+}
+
+var TWEEN = TWEEN || ( function () {
+
+	var _tweens = [];
+
+	return {
+
+		REVISION: '14',
+
+		getAll: function () {
+
+			return _tweens;
+
+		},
+
+		removeAll: function () {
+
+			_tweens = [];
+
+		},
+
+		add: function ( tween ) {
+
+			_tweens.push( tween );
+
+		},
+
+		remove: function ( tween ) {
+
+			var i = _tweens.indexOf( tween );
+
+			if ( i !== -1 ) {
+
+				_tweens.splice( i, 1 );
+
+			}
+
+		},
+
+		update: function ( time ) {
+
+			if ( _tweens.length === 0 ) return false;
+
+			var i = 0;
+
+			time = time !== undefined ? time : ( typeof window !== 'undefined' && window.performance !== undefined && window.performance.now !== undefined ? window.performance.now() : Date.now() );
+
+			while ( i < _tweens.length ) {
+
+				if ( _tweens[ i ].update( time ) ) {
+
+					i++;
+
+				} else {
+
+					_tweens.splice( i, 1 );
+
+				}
+
+			}
+
+			return true;
+
+		}
+	};
+
+} )();
+
+TWEEN.Tween = function ( object ) {
+
+	var _object = object;
+	var _valuesStart = {};
+	var _valuesEnd = {};
+	var _valuesStartRepeat = {};
+	var _duration = 1000;
+	var _repeat = 0;
+	var _yoyo = false;
+	var _isPlaying = false;
+	var _reversed = false;
+	var _delayTime = 0;
+	var _startTime = null;
+	var _easingFunction = TWEEN.Easing.Linear.None;
+	var _interpolationFunction = TWEEN.Interpolation.Linear;
+	var _chainedTweens = [];
+	var _onStartCallback = null;
+	var _onStartCallbackFired = false;
+	var _onUpdateCallback = null;
+	var _onCompleteCallback = null;
+	var _onStopCallback = null;
+
+	// Set all starting values present on the target object
+	for ( var field in object ) {
+
+		_valuesStart[ field ] = parseFloat(object[field], 10);
+
+	}
+
+	this.to = function ( properties, duration ) {
+
+		if ( duration !== undefined ) {
+
+			_duration = duration;
+
+		}
+
+		_valuesEnd = properties;
+
+		return this;
+
+	};
+
+	this.start = function ( time ) {
+
+		TWEEN.add( this );
+
+		_isPlaying = true;
+
+		_onStartCallbackFired = false;
+
+		_startTime = time !== undefined ? time : ( typeof window !== 'undefined' && window.performance !== undefined && window.performance.now !== undefined ? window.performance.now() : Date.now() );
+		_startTime += _delayTime;
+
+		for ( var property in _valuesEnd ) {
+
+			// check if an Array was provided as property value
+			if ( _valuesEnd[ property ] instanceof Array ) {
+
+				if ( _valuesEnd[ property ].length === 0 ) {
+
+					continue;
+
+				}
+
+				// create a local copy of the Array with the start value at the front
+				_valuesEnd[ property ] = [ _object[ property ] ].concat( _valuesEnd[ property ] );
+
+			}
+
+			_valuesStart[ property ] = _object[ property ];
+
+			if( ( _valuesStart[ property ] instanceof Array ) === false ) {
+				_valuesStart[ property ] *= 1.0; // Ensures we're using numbers, not strings
+			}
+
+			_valuesStartRepeat[ property ] = _valuesStart[ property ] || 0;
+
+		}
+
+		return this;
+
+	};
+
+	this.stop = function () {
+
+		if ( !_isPlaying ) {
+			return this;
+		}
+
+		TWEEN.remove( this );
+		_isPlaying = false;
+
+		if ( _onStopCallback !== null ) {
+
+			_onStopCallback.call( _object );
+
+		}
+
+		this.stopChainedTweens();
+		return this;
+
+	};
+
+	this.stopChainedTweens = function () {
+
+		for ( var i = 0, numChainedTweens = _chainedTweens.length; i < numChainedTweens; i++ ) {
+
+			_chainedTweens[ i ].stop();
+
+		}
+
+	};
+
+	this.delay = function ( amount ) {
+
+		_delayTime = amount;
+		return this;
+
+	};
+
+	this.repeat = function ( times ) {
+
+		_repeat = times;
+		return this;
+
+	};
+
+	this.yoyo = function( yoyo ) {
+
+		_yoyo = yoyo;
+		return this;
+
+	};
+
+
+	this.easing = function ( easing ) {
+
+		_easingFunction = easing;
+		return this;
+
+	};
+
+	this.interpolation = function ( interpolation ) {
+
+		_interpolationFunction = interpolation;
+		return this;
+
+	};
+
+	this.chain = function () {
+
+		_chainedTweens = arguments;
+		return this;
+
+	};
+
+	this.onStart = function ( callback ) {
+
+		_onStartCallback = callback;
+		return this;
+
+	};
+
+	this.onUpdate = function ( callback ) {
+
+		_onUpdateCallback = callback;
+		return this;
+
+	};
+
+	this.onComplete = function ( callback ) {
+
+		_onCompleteCallback = callback;
+		return this;
+
+	};
+
+	this.onStop = function ( callback ) {
+
+		_onStopCallback = callback;
+		return this;
+
+	};
+
+	this.update = function ( time ) {
+
+		var property;
+
+		if ( time < _startTime ) {
+
+			return true;
+
+		}
+
+		if ( _onStartCallbackFired === false ) {
+
+			if ( _onStartCallback !== null ) {
+
+				_onStartCallback.call( _object );
+
+			}
+
+			_onStartCallbackFired = true;
+
+		}
+
+		var elapsed = ( time - _startTime ) / _duration;
+		elapsed = elapsed > 1 ? 1 : elapsed;
+
+		var value = _easingFunction( elapsed );
+
+		for ( property in _valuesEnd ) {
+
+			var start = _valuesStart[ property ] || 0;
+			var end = _valuesEnd[ property ];
+
+			if ( end instanceof Array ) {
+
+				_object[ property ] = _interpolationFunction( end, value );
+
+			} else {
+
+				// Parses relative end values with start as base (e.g.: +10, -3)
+				if ( typeof(end) === "string" ) {
+					end = start + parseFloat(end, 10);
+				}
+
+				// protect against non numeric properties.
+				if ( typeof(end) === "number" ) {
+					_object[ property ] = start + ( end - start ) * value;
+				}
+
+			}
+
+		}
+
+		if ( _onUpdateCallback !== null ) {
+
+			_onUpdateCallback.call( _object, value );
+
+		}
+
+		if ( elapsed == 1 ) {
+
+			if ( _repeat > 0 ) {
+
+				if( isFinite( _repeat ) ) {
+					_repeat--;
+				}
+
+				// reassign starting values, restart by making startTime = now
+				for( property in _valuesStartRepeat ) {
+
+					if ( typeof( _valuesEnd[ property ] ) === "string" ) {
+						_valuesStartRepeat[ property ] = _valuesStartRepeat[ property ] + parseFloat(_valuesEnd[ property ], 10);
+					}
+
+					if (_yoyo) {
+						var tmp = _valuesStartRepeat[ property ];
+						_valuesStartRepeat[ property ] = _valuesEnd[ property ];
+						_valuesEnd[ property ] = tmp;
+					}
+
+					_valuesStart[ property ] = _valuesStartRepeat[ property ];
+
+				}
+
+				if (_yoyo) {
+					_reversed = !_reversed;
+				}
+
+				_startTime = time + _delayTime;
+
+				return true;
+
+			} else {
+
+				if ( _onCompleteCallback !== null ) {
+
+					_onCompleteCallback.call( _object );
+
+				}
+
+				for ( var i = 0, numChainedTweens = _chainedTweens.length; i < numChainedTweens; i++ ) {
+
+					_chainedTweens[ i ].start( time );
+
+				}
+
+				return false;
+
+			}
+
+		}
+
+		return true;
+
+	};
+
+};
+
+
+TWEEN.Easing = {
+
+	Linear: {
+
+		None: function ( k ) {
+
+			return k;
+
+		}
+
+	},
+
+	Quadratic: {
+
+		In: function ( k ) {
+
+			return k * k;
+
+		},
+
+		Out: function ( k ) {
+
+			return k * ( 2 - k );
+
+		},
+
+		InOut: function ( k ) {
+
+			if ( ( k *= 2 ) < 1 ) return 0.5 * k * k;
+			return - 0.5 * ( --k * ( k - 2 ) - 1 );
+
+		}
+
+	},
+
+	Cubic: {
+
+		In: function ( k ) {
+
+			return k * k * k;
+
+		},
+
+		Out: function ( k ) {
+
+			return --k * k * k + 1;
+
+		},
+
+		InOut: function ( k ) {
+
+			if ( ( k *= 2 ) < 1 ) return 0.5 * k * k * k;
+			return 0.5 * ( ( k -= 2 ) * k * k + 2 );
+
+		}
+
+	},
+
+	Quartic: {
+
+		In: function ( k ) {
+
+			return k * k * k * k;
+
+		},
+
+		Out: function ( k ) {
+
+			return 1 - ( --k * k * k * k );
+
+		},
+
+		InOut: function ( k ) {
+
+			if ( ( k *= 2 ) < 1) return 0.5 * k * k * k * k;
+			return - 0.5 * ( ( k -= 2 ) * k * k * k - 2 );
+
+		}
+
+	},
+
+	Quintic: {
+
+		In: function ( k ) {
+
+			return k * k * k * k * k;
+
+		},
+
+		Out: function ( k ) {
+
+			return --k * k * k * k * k + 1;
+
+		},
+
+		InOut: function ( k ) {
+
+			if ( ( k *= 2 ) < 1 ) return 0.5 * k * k * k * k * k;
+			return 0.5 * ( ( k -= 2 ) * k * k * k * k + 2 );
+
+		}
+
+	},
+
+	Sinusoidal: {
+
+		In: function ( k ) {
+
+			return 1 - Math.cos( k * Math.PI / 2 );
+
+		},
+
+		Out: function ( k ) {
+
+			return Math.sin( k * Math.PI / 2 );
+
+		},
+
+		InOut: function ( k ) {
+
+			return 0.5 * ( 1 - Math.cos( Math.PI * k ) );
+
+		}
+
+	},
+
+	Exponential: {
+
+		In: function ( k ) {
+
+			return k === 0 ? 0 : Math.pow( 1024, k - 1 );
+
+		},
+
+		Out: function ( k ) {
+
+			return k === 1 ? 1 : 1 - Math.pow( 2, - 10 * k );
+
+		},
+
+		InOut: function ( k ) {
+
+			if ( k === 0 ) return 0;
+			if ( k === 1 ) return 1;
+			if ( ( k *= 2 ) < 1 ) return 0.5 * Math.pow( 1024, k - 1 );
+			return 0.5 * ( - Math.pow( 2, - 10 * ( k - 1 ) ) + 2 );
+
+		}
+
+	},
+
+	Circular: {
+
+		In: function ( k ) {
+
+			return 1 - Math.sqrt( 1 - k * k );
+
+		},
+
+		Out: function ( k ) {
+
+			return Math.sqrt( 1 - ( --k * k ) );
+
+		},
+
+		InOut: function ( k ) {
+
+			if ( ( k *= 2 ) < 1) return - 0.5 * ( Math.sqrt( 1 - k * k) - 1);
+			return 0.5 * ( Math.sqrt( 1 - ( k -= 2) * k) + 1);
+
+		}
+
+	},
+
+	Elastic: {
+
+		In: function ( k ) {
+
+			var s, a = 0.1, p = 0.4;
+			if ( k === 0 ) return 0;
+			if ( k === 1 ) return 1;
+			if ( !a || a < 1 ) { a = 1; s = p / 4; }
+			else s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );
+			return - ( a * Math.pow( 2, 10 * ( k -= 1 ) ) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) );
+
+		},
+
+		Out: function ( k ) {
+
+			var s, a = 0.1, p = 0.4;
+			if ( k === 0 ) return 0;
+			if ( k === 1 ) return 1;
+			if ( !a || a < 1 ) { a = 1; s = p / 4; }
+			else s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );
+			return ( a * Math.pow( 2, - 10 * k) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) + 1 );
+
+		},
+
+		InOut: function ( k ) {
+
+			var s, a = 0.1, p = 0.4;
+			if ( k === 0 ) return 0;
+			if ( k === 1 ) return 1;
+			if ( !a || a < 1 ) { a = 1; s = p / 4; }
+			else s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );
+			if ( ( k *= 2 ) < 1 ) return - 0.5 * ( a * Math.pow( 2, 10 * ( k -= 1 ) ) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) );
+			return a * Math.pow( 2, -10 * ( k -= 1 ) ) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) * 0.5 + 1;
+
+		}
+
+	},
+
+	Back: {
+
+		In: function ( k ) {
+
+			var s = 1.70158;
+			return k * k * ( ( s + 1 ) * k - s );
+
+		},
+
+		Out: function ( k ) {
+
+			var s = 1.70158;
+			return --k * k * ( ( s + 1 ) * k + s ) + 1;
+
+		},
+
+		InOut: function ( k ) {
+
+			var s = 1.70158 * 1.525;
+			if ( ( k *= 2 ) < 1 ) return 0.5 * ( k * k * ( ( s + 1 ) * k - s ) );
+			return 0.5 * ( ( k -= 2 ) * k * ( ( s + 1 ) * k + s ) + 2 );
+
+		}
+
+	},
+
+	Bounce: {
+
+		In: function ( k ) {
+
+			return 1 - TWEEN.Easing.Bounce.Out( 1 - k );
+
+		},
+
+		Out: function ( k ) {
+
+			if ( k < ( 1 / 2.75 ) ) {
+
+				return 7.5625 * k * k;
+
+			} else if ( k < ( 2 / 2.75 ) ) {
+
+				return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75;
+
+			} else if ( k < ( 2.5 / 2.75 ) ) {
+
+				return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375;
+
+			} else {
+
+				return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375;
+
+			}
+
+		},
+
+		InOut: function ( k ) {
+
+			if ( k < 0.5 ) return TWEEN.Easing.Bounce.In( k * 2 ) * 0.5;
+			return TWEEN.Easing.Bounce.Out( k * 2 - 1 ) * 0.5 + 0.5;
+
+		}
+
+	}
+
+};
+
+TWEEN.Interpolation = {
+
+	Linear: function ( v, k ) {
+
+		var m = v.length - 1, f = m * k, i = Math.floor( f ), fn = TWEEN.Interpolation.Utils.Linear;
+
+		if ( k < 0 ) return fn( v[ 0 ], v[ 1 ], f );
+		if ( k > 1 ) return fn( v[ m ], v[ m - 1 ], m - f );
+
+		return fn( v[ i ], v[ i + 1 > m ? m : i + 1 ], f - i );
+
+	},
+
+	Bezier: function ( v, k ) {
+
+		var b = 0, n = v.length - 1, pw = Math.pow, bn = TWEEN.Interpolation.Utils.Bernstein, i;
+
+		for ( i = 0; i <= n; i++ ) {
+			b += pw( 1 - k, n - i ) * pw( k, i ) * v[ i ] * bn( n, i );
+		}
+
+		return b;
+
+	},
+
+	CatmullRom: function ( v, k ) {
+
+		var m = v.length - 1, f = m * k, i = Math.floor( f ), fn = TWEEN.Interpolation.Utils.CatmullRom;
+
+		if ( v[ 0 ] === v[ m ] ) {
+
+			if ( k < 0 ) i = Math.floor( f = m * ( 1 + k ) );
+
+			return fn( v[ ( i - 1 + m ) % m ], v[ i ], v[ ( i + 1 ) % m ], v[ ( i + 2 ) % m ], f - i );
+
+		} else {
+
+			if ( k < 0 ) return v[ 0 ] - ( fn( v[ 0 ], v[ 0 ], v[ 1 ], v[ 1 ], -f ) - v[ 0 ] );
+			if ( k > 1 ) return v[ m ] - ( fn( v[ m ], v[ m ], v[ m - 1 ], v[ m - 1 ], f - m ) - v[ m ] );
+
+			return fn( v[ i ? i - 1 : 0 ], v[ i ], v[ m < i + 1 ? m : i + 1 ], v[ m < i + 2 ? m : i + 2 ], f - i );
+
+		}
+
+	},
+
+	Utils: {
+
+		Linear: function ( p0, p1, t ) {
+
+			return ( p1 - p0 ) * t + p0;
+
+		},
+
+		Bernstein: function ( n , i ) {
+
+			var fc = TWEEN.Interpolation.Utils.Factorial;
+			return fc( n ) / fc( i ) / fc( n - i );
+
+		},
+
+		Factorial: ( function () {
+
+			var a = [ 1 ];
+
+			return function ( n ) {
+
+				var s = 1, i;
+				if ( a[ n ] ) return a[ n ];
+				for ( i = n; i > 1; i-- ) s *= i;
+				return a[ n ] = s;
+
+			};
+
+		} )(),
+
+		CatmullRom: function ( p0, p1, p2, p3, t ) {
+
+			var v0 = ( p2 - p0 ) * 0.5, v1 = ( p3 - p1 ) * 0.5, t2 = t * t, t3 = t * t2;
+			return ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1;
+
+		}
+
+	}
+
+};

Plik diff jest za duży
+ 11 - 0
packages/code/public/static/lib/animate/animate.min.css


+ 236 - 0
packages/code/public/static/lib/audio.min.1.0.4.js

@@ -0,0 +1,236 @@
+/*
+ * $(selector).initAudioPlayer();
+ * 不支持自动播放-想了下,用播放器样式的一般都不自动播放,影响用户体验。一般要自动播放的都不需要进度条之类的,需要一个切换按钮即可。
+ * 不支持audio的浏览器直接return
+ */
+
+(function($, window, document, undefined) {
+  // 播放器样式 - 替换到css更改样式即可
+  console.log("tete");
+  var onMobile = "ontouchstart" in window,
+    eStart = onMobile ? "touchstart" : "mousedown",
+    eMove = onMobile ? "touchmove" : "mousemove",
+    eCancel = onMobile ? "touchcancel" : "mouseup",
+    hackPrefixes = ["webkit", "moz", "ms", "o"],
+    hackHiddenProperty = getHackHidden();
+
+  $.fn.initAudioPlayer = function() {
+    // 遍历处理audio
+    console.log(this);
+    this.each(function() {
+      if (
+        $(this)
+          .prop("tagName")
+          .toLowerCase() !== "audio"
+      ) {
+        return;
+      }
+
+      var $this = $(this),
+        file = $this.attr("src"),
+        isSupport = false;
+
+      if (canFilePlay(file)) {
+        isSupport = true;
+      } else {
+        $this.find("source").each(function() {
+          if (canFilePlay($(this).attr("src"))) {
+            isSupport = true;
+            return false;
+          }
+        });
+      }
+
+      if (!isSupport) {
+        return;
+      }
+
+      // 添加播放器盒子
+      var $player = $(
+          '<div class="ppq-audio-player">' +
+            $("<div>")
+              .append($this.eq(0).clone())
+              .html() +
+            '<div class="play-pause-btn"><a href="javascript: void(0);" class="play-pause-icon"></a></div></div>'
+        ),
+        audioEle = $player.find("audio")[0];
+
+      $player.find("audio").addClass("audio-hidden");
+      $player.append(
+        '<div class="player-time player-time-current"></div>\
+				<div class="player-time player-time-duration"></div>\
+				<div class="player-bar">\
+					<div class="player-bar-loaded"></div>\
+					<div class="player-bar-played"></div>\
+				</div>'
+      );
+
+      var $bar = $player.find(".player-bar"),
+        $played = $player.find(".player-bar-played"),
+        $loaded = $player.find(".player-bar-loaded"),
+        $current = $player.find(".player-time-current"),
+        $duration = $player.find(".player-time-duration");
+
+      $current.html("00:00");
+      $duration.html("&hellip;");
+
+      initAudioEvents();
+      bindPageEvents();
+      $this.replaceWith($player);
+
+      function initAudioEvents() {
+        // 监听loadeddata,渲染进度条和时间
+        audioEle.addEventListener("loadeddata", function() {
+          var loadTimer = setInterval(function() {
+            if (audioEle.buffered.length < 1) {
+              return true;
+            }
+            $loaded.width(
+              (audioEle.buffered.end(0) / audioEle.duration) * 100 + "%"
+            );
+            if (
+              Math.floor(audioEle.buffered.end(0)) >=
+              Math.floor(audioEle.duration)
+            ) {
+              clearInterval(loadTimer);
+            }
+          }, 100);
+          $duration.html(
+            $.isNumeric(audioEle.duration)
+              ? convertTimeStr(audioEle.duration)
+              : "&hellip;"
+          );
+        });
+
+        // 监听timeupdate,更新时间和进度条
+        audioEle.addEventListener("timeupdate", function() {
+          $current.html(convertTimeStr(audioEle.currentTime));
+          $played.width((audioEle.currentTime / audioEle.duration) * 100 + "%");
+        });
+
+        // 监听ended,播放完恢复暂停状态
+        audioEle.addEventListener("ended", function() {
+          $player.removeClass("player-playing").addClass("player-paused");
+        });
+      }
+
+      function bindPageEvents() {
+        // 监听进度条touch,更新进度条和播放进度
+        $bar
+          .on(eStart, function(e) {
+            audioEle.currentTime = getCurrentTime(e);
+            $bar.on(eMove, function(e) {
+              audioEle.currentTime = getCurrentTime(e);
+            });
+          })
+          .on(eCancel, function() {
+            $bar.unbind(eMove);
+          });
+
+        // 监听播放暂停按钮click
+        $player.find(".play-pause-btn").on("click", function() {
+          if ($player.hasClass("player-playing")) {
+            $player.removeClass("player-playing").addClass("player-paused");
+            audioEle.pause();
+          } else {
+            $player.addClass("player-playing").removeClass("player-paused");
+            audioEle.play();
+          }
+          return false;
+        });
+      }
+
+      function getCurrentTime(e) {
+        var et = onMobile ? e.originalEvent.touches[0] : e;
+        return Math.round(
+          (audioEle.duration * (et.pageX - $bar.offset().left)) / $bar.width()
+        );
+      }
+
+      if (hackHiddenProperty) {
+        var evtname =
+          hackHiddenProperty.replace(/[H|h]idden/, "") + "visibilitychange";
+        document.addEventListener(
+          evtname,
+          function() {
+            if (isHidden() || getHackVisibilityState() === "hidden") {
+              $player.removeClass("player-playing").addClass("player-paused");
+              audioEle.pause();
+            }
+          },
+          false
+        );
+      }
+
+      window.addEventListener(
+        "beforeunload",
+        function() {
+          $player.removeClass("player-playing").addClass("player-paused");
+          audioEle.pause();
+        },
+        false
+      );
+    });
+    return this;
+  };
+
+  // 秒转为时间字符串
+  function convertTimeStr(secs) {
+    var m = Math.floor(secs / 60),
+      s = Math.floor(secs - m * 60);
+    return (m < 10 ? "0" + m : m) + ":" + (s < 10 ? "0" + s : s);
+  }
+
+  // 判断文件能不能播放
+  function canFilePlay(file) {
+    if (!file) {
+      return false;
+    }
+    var media = document.createElement("audio");
+    if (typeof media.canPlayType !== "function") {
+      return false;
+    }
+
+    var res = media.canPlayType(
+      "audio/" +
+        file
+          .split(".")
+          .pop()
+          .toLowerCase()
+    );
+    return res === "probably" || res === "maybe";
+  }
+
+  function getHackHidden() {
+    if ("hidden" in document) {
+      return "hidden";
+    }
+    for (var i = 0; i < hackPrefixes.length; i++) {
+      if (hackPrefixes[i] + "Hidden" in document) {
+        return hackPrefixes[i] + "Hidden";
+      }
+    }
+    return null;
+  }
+
+  function getHackVisibilityState() {
+    if ("visibilityState" in document) {
+      return "visibilityState";
+    }
+    for (var i = 0; i < hackPrefixes.length; i++) {
+      if (hackPrefixes[i] + "VisibilityState" in document) {
+        return hackPrefixes[i] + "VisibilityState";
+      }
+    }
+    return null;
+  }
+
+  function isHidden() {
+    var hide = getHackHidden();
+    if (!hide) {
+      return false;
+    }
+
+    return document[hide];
+  }
+})(jQuery, window, document);

Plik diff jest za duży
+ 1 - 0
packages/code/public/static/lib/base64.min.js


Plik diff jest za duży
+ 90 - 0
packages/code/public/static/lib/bytebuffer.min.js


+ 197 - 0
packages/code/public/static/lib/canvas2Image.js

@@ -0,0 +1,197 @@
+/*
+ * Canvas2Image v0.1
+ * Copyright (c) 2008 Jacob Seidelin, cupboy@gmail.com
+ * MIT License [http://www.opensource.org/licenses/mit-license.php]
+ */
+
+var Canvas2Image = (function() {
+    // check if we have canvas support
+    var oCanvas = document.createElement("canvas"),
+        sc = String.fromCharCode,
+        strDownloadMime = "image/octet-stream",
+        bReplaceDownloadMime = false;
+
+    // no canvas, bail out.
+    if (!oCanvas.getContext) {
+        return {
+            saveAsBMP : function(){},
+            saveAsPNG : function(){},
+            saveAsJPEG : function(){}
+        }
+    }
+
+    var bHasImageData = !!(oCanvas.getContext("2d").getImageData),
+        bHasDataURL = !!(oCanvas.toDataURL),
+        bHasBase64 = !!(window.btoa);
+
+    // ok, we're good
+    var readCanvasData = function(oCanvas) {
+        var iWidth = parseInt(oCanvas.width),
+            iHeight = parseInt(oCanvas.height);
+        return oCanvas.getContext("2d").getImageData(0,0,iWidth,iHeight);
+    }
+
+    // base64 encodes either a string or an array of charcodes
+    var encodeData = function(data) {
+        var i, aData, strData = "";
+
+        if (typeof data == "string") {
+            strData = data;
+        } else {
+            aData = data;
+            for (i = 0; i < aData.length; i++) {
+                strData += sc(aData[i]);
+            }
+        }
+        return btoa(strData);
+    }
+
+    // creates a base64 encoded string containing BMP data takes an imagedata object as argument
+    var createBMP = function(oData) {
+        var strHeader = '',
+            iWidth = oData.width,
+            iHeight = oData.height;
+
+        strHeader += 'BM';
+
+        var iFileSize = iWidth*iHeight*4 + 54; // total header size = 54 bytes
+        strHeader += sc(iFileSize % 256); iFileSize = Math.floor(iFileSize / 256);
+        strHeader += sc(iFileSize % 256); iFileSize = Math.floor(iFileSize / 256);
+        strHeader += sc(iFileSize % 256); iFileSize = Math.floor(iFileSize / 256);
+        strHeader += sc(iFileSize % 256);
+
+        strHeader += sc(0, 0, 0, 0, 54, 0, 0, 0); // data offset
+        strHeader += sc(40, 0, 0, 0); // info header size
+
+        var iImageWidth = iWidth;
+        strHeader += sc(iImageWidth % 256); iImageWidth = Math.floor(iImageWidth / 256);
+        strHeader += sc(iImageWidth % 256); iImageWidth = Math.floor(iImageWidth / 256);
+        strHeader += sc(iImageWidth % 256); iImageWidth = Math.floor(iImageWidth / 256);
+        strHeader += sc(iImageWidth % 256);
+
+        var iImageHeight = iHeight;
+        strHeader += sc(iImageHeight % 256); iImageHeight = Math.floor(iImageHeight / 256);
+        strHeader += sc(iImageHeight % 256); iImageHeight = Math.floor(iImageHeight / 256);
+        strHeader += sc(iImageHeight % 256); iImageHeight = Math.floor(iImageHeight / 256);
+        strHeader += sc(iImageHeight % 256);
+
+        strHeader += sc(1, 0, 32, 0); // num of planes & num of bits per pixel
+        strHeader += sc(0, 0, 0, 0); // compression = none
+
+        var iDataSize = iWidth*iHeight*4;
+        strHeader += sc(iDataSize % 256); iDataSize = Math.floor(iDataSize / 256);
+        strHeader += sc(iDataSize % 256); iDataSize = Math.floor(iDataSize / 256);
+        strHeader += sc(iDataSize % 256); iDataSize = Math.floor(iDataSize / 256);
+        strHeader += sc(iDataSize % 256);
+
+        strHeader += sc(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); // these bytes are not used
+
+        var aImgData = oData.data,
+            strPixelData = "",
+            c, x, y = iHeight,
+            iOffsetX, iOffsetY, strPixelRow;
+
+        do {
+            iOffsetY = iWidth*(y-1)*4;
+            strPixelRow = "";
+            for (x = 0; x < iWidth; x++) {
+                iOffsetX = 4*x;
+                strPixelRow += sc(
+                    aImgData[iOffsetY + iOffsetX + 2], // B
+                    aImgData[iOffsetY + iOffsetX + 1], // G
+                    aImgData[iOffsetY + iOffsetX], // R
+                    aImgData[iOffsetY + iOffsetX + 3] // A
+                );
+            }
+            strPixelData += strPixelRow;
+        } while (--y);
+
+        return encodeData(strHeader + strPixelData);
+    }
+
+    // sends the generated file to the client
+    var saveFile = function(strData) {
+        if (!window.open(strData)) {
+            document.location.href = strData;
+        }
+    }
+
+    var makeDataURI = function(strData, strMime) {
+        return "data:" + strMime + ";base64," + strData;
+    }
+
+    // generates a <img> object containing the imagedata
+    var makeImageObject = function(strSource) {
+        var oImgElement = document.createElement("img");
+        oImgElement.src = strSource;
+        return oImgElement;
+    }
+
+    var scaleCanvas = function(oCanvas, iWidth, iHeight) {
+        if (iWidth && iHeight) {
+            var oSaveCanvas = document.createElement("canvas");
+
+            oSaveCanvas.width = iWidth;
+            oSaveCanvas.height = iHeight;
+            oSaveCanvas.style.width = iWidth+"px";
+            oSaveCanvas.style.height = iHeight+"px";
+
+            var oSaveCtx = oSaveCanvas.getContext("2d");
+
+            oSaveCtx.drawImage(oCanvas, 0, 0, oCanvas.width, oCanvas.height, 0, 0, iWidth, iWidth);
+
+            return oSaveCanvas;
+        }
+        return oCanvas;
+    }
+
+    return {
+        saveAsPNG : function(oCanvas, bReturnImg, iWidth, iHeight) {
+            if (!bHasDataURL) return false;
+            var oScaledCanvas = scaleCanvas(oCanvas, iWidth, iHeight),
+                strMime = "image/png",
+                strData = oScaledCanvas.toDataURL(strMime);
+
+            if (bReturnImg) {
+                return makeImageObject(strData);
+            } else {
+                saveFile(bReplaceDownloadMime ? strData.replace(strMime, strDownloadMime) : strData);
+            }
+            return true;
+        },
+
+        saveAsJPEG : function(oCanvas, bReturnImg, iWidth, iHeight) {
+            if (!bHasDaaURL) return false;
+
+            var oScaledCanvas = scaleCanvas(oCanvas, iWidth, iHeight),
+                strMime = "image/jpeg",
+                strData = oScaledCanvas.toDataURL(strMime);
+
+            // check if browser actually supports jpeg by looking for the mime type in the data uri. if not, return false
+            if (strData.indexOf(strMime) != 5) return false;
+
+            if (bReturnImg) {
+                return makeImageObject(strData);
+            } else {
+                saveFile(bReplaceDownloadMime ? strData.replace(strMime, strDownloadMime) : strData);
+            }
+            return true;
+        },
+
+        saveAsBMP : function(oCanvas, bReturnImg, iWidth, iHeight) {
+            if (!(bHasDataURL && bHasImageData && bHasBase64)) return false;
+
+            var oScaledCanvas = scaleCanvas(oCanvas, iWidth, iHeight),
+                strMime = "image/bmp",
+                oData = readCanvasData(oScaledCanvas),
+                strImgData = createBMP(oData);
+
+            if (bReturnImg) {
+                return makeImageObject(makeDataURI(strImgData, strMime));
+            } else {
+                saveFile(makeDataURI(strImgData, strMime));
+            }
+            return true;
+        }
+    };
+})();

Plik diff jest za duży
+ 7 - 0
packages/code/public/static/lib/clipboard.min.js


Plik diff jest za duży
+ 7 - 0
packages/code/public/static/lib/events.js


+ 90 - 0
packages/code/public/static/lib/flexible.js

@@ -0,0 +1,90 @@
+;
+(function(win) {
+    var doc = win.document;
+    var docEl = doc.documentElement;
+    var metaEl = doc.querySelector('meta[name="viewport"]');
+    var dpr = 0;
+    var scale = 0;
+    var tid;
+    var flexible = {};
+    if (metaEl) {
+        console.warn('将根据已有的meta标签来设置缩放比例');
+        var match = metaEl.getAttribute('content').match(/initial-scale=([d.]+)/);
+        if (match) {
+            scale = parseFloat(match[1]);
+            dpr = parseInt(1 / scale);
+        }
+    }
+    if (!dpr && !scale) {
+        var isIPhone = win.navigator.appVersion.match(/iphone/gi);
+        var devicePixelRatio = win.devicePixelRatio;
+        if (isIPhone) {
+            // iOS下,对于2和3的屏,用2倍的方案,其余的用1倍方案
+            if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {
+                dpr = 3;
+            } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)) {
+                dpr = 2;
+            } else {
+                dpr = 1;
+            }
+        } else {
+            // 其他设备下,仍旧使用1倍的方案
+            dpr = 1;
+        }
+        scale = 1 / dpr;
+    }
+    docEl.setAttribute('data-dpr', dpr);
+    if (!metaEl) {
+        metaEl = doc.createElement('meta');
+        metaEl.setAttribute('name', 'viewport');
+        metaEl.setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');
+        if (docEl.firstElementChild) {
+            docEl.firstElementChild.appendChild(metaEl);
+        } else {
+            var wrap = doc.createElement('div');
+            wrap.appendChild(metaEl);
+            doc.write(wrap.innerHTML);
+        }
+    }
+
+    function refreshRem() {
+        var width = docEl && docEl.clientWidth || doc.body.clientWidth || win.innerWidth;
+        var rem = width / 10;
+        docEl.style.fontSize = rem + 'px';
+        flexible.rem = win.rem = rem;
+    }
+    win.addEventListener('resize', function() {
+        clearTimeout(tid);
+        tid = setTimeout(refreshRem, 300);
+    }, false);
+    win.addEventListener('pageshow', function(e) {
+        if (e.persisted) {
+            clearTimeout(tid);
+            tid = setTimeout(refreshRem, 300);
+        }
+    }, false);
+
+    if (doc.readyState === 'complete') {
+        doc.body.style.fontSize = 12 * dpr + 'px';
+    } else {
+        doc.addEventListener('DOMContentLoaded', function(e) {
+            doc.body.style.fontSize = 12 * dpr + 'px';
+        }, false);
+    }
+    refreshRem();
+    flexible.rem2px = function(d) {
+        var val = parseFloat(d) * this.rem;
+        if (typeof d === 'string' && d.match(/rem$/)) {
+            val += 'px';
+        }
+        return val;
+    }
+    flexible.px2rem = function(d) {
+        var val = parseFloat(d) / this.rem;
+        if (typeof d === 'string' && d.match(/px$/)) {
+            val += 'rem';
+        }
+        return val;
+    }
+    win.flexible = flexible;
+})(window);

+ 109 - 0
packages/code/public/static/lib/flexible.min.js

@@ -0,0 +1,109 @@
+(function(win, lib) {
+    var doc = win.document;
+    var docEl = doc.documentElement;
+    var metaEl = doc.querySelector('meta[name="viewport"]');
+    var flexibleEl = doc.querySelector('meta[name="flexible"]');
+    var dpr = 0;
+    var scale = 0;
+    var tid;
+    var flexible = lib.flexible || (lib.flexible = {});
+     
+    if (metaEl) {
+        console.warn('将根据已有的meta标签来设置缩放比例');
+        var match = metaEl.getAttribute('content').match(/initial\-scale=([\d\.]+)/);
+        if (match) {
+            scale = parseFloat(match[1]);
+            dpr = parseInt(1 / scale);
+        }
+    } else if (flexibleEl) {
+        var content = flexibleEl.getAttribute('content');
+        if (content) {
+            var initialDpr = content.match(/initial\-dpr=([\d\.]+)/);
+            var maximumDpr = content.match(/maximum\-dpr=([\d\.]+)/);
+            if (initialDpr) {
+                dpr = parseFloat(initialDpr[1]);
+                scale = parseFloat((1 / dpr).toFixed(2));   
+            }
+            if (maximumDpr) {
+                dpr = parseFloat(maximumDpr[1]);
+                scale = parseFloat((1 / dpr).toFixed(2));   
+            }
+        }
+    }
+    if (!dpr && !scale) {
+        var isAndroid = win.navigator.appVersion.match(/android/gi);
+        var isIPhone = win.navigator.appVersion.match(/iphone/gi);
+        var devicePixelRatio = win.devicePixelRatio;
+        if (isIPhone) {
+            // iOS下,对于2和3的屏,用2倍的方案,其余的用1倍方案
+            if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {               
+                dpr = 3;
+            } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)){
+                dpr = 2;
+            } else {
+                dpr = 1;
+            }
+        } else {
+            // 其他设备下,仍旧使用1倍的方案
+            dpr = 1;
+        }
+        scale = 1 / dpr;
+    }
+    docEl.setAttribute('data-dpr', dpr);
+    if (!metaEl) {
+        metaEl = doc.createElement('meta');
+        metaEl.setAttribute('name', 'viewport');
+        metaEl.setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');
+        if (docEl.firstElementChild) {
+            docEl.firstElementChild.appendChild(metaEl);
+        } else {
+            var wrap = doc.createElement('div');
+            wrap.appendChild(metaEl);
+            doc.write(wrap.innerHTML);
+        }
+    }
+    function refreshRem(){
+        var width = docEl.getBoundingClientRect().width;
+        if (width / dpr > 540) {
+            width = 540 * dpr;
+        }
+        var rem = width / 10;
+        docEl.style.fontSize = rem + 'px';
+        flexible.rem = win.rem = rem;
+    }
+    win.addEventListener('resize', function() {
+        clearTimeout(tid);
+        tid = setTimeout(refreshRem, 300);
+    }, false);
+    win.addEventListener('pageshow', function(e) {
+        if (e.persisted) {
+            clearTimeout(tid);
+            tid = setTimeout(refreshRem, 300);
+        }
+    }, false);
+    if (doc.readyState === 'complete') {
+        doc.body.style.fontSize = 12 * dpr + 'px';
+    } else {
+        doc.addEventListener('DOMContentLoaded', function(e) {
+            doc.body.style.fontSize = 12 * dpr + 'px';
+        }, false);
+    }
+     
+    refreshRem();
+    flexible.dpr = win.dpr = dpr;
+    flexible.refreshRem = refreshRem;
+    flexible.rem2px = function(d) {
+        var val = parseFloat(d) * this.rem;
+        if (typeof d === 'string' && d.match(/rem$/)) {
+            val += 'px';
+        }
+        return val;
+    }
+    flexible.px2rem = function(d) {
+        var val = parseFloat(d) / this.rem;
+        if (typeof d === 'string' && d.match(/px$/)) {
+            val += 'rem';
+        }
+        return val;
+    }
+})(window, window['lib'] || (window['lib'] = {}));

Plik diff jest za duży
+ 4 - 0
packages/code/public/static/lib/howler.min.js


Plik diff jest za duży
+ 6 - 0
packages/code/public/static/lib/html2canvas.js


+ 539 - 0
packages/code/public/static/lib/iconfont/demo.css

@@ -0,0 +1,539 @@
+/* Logo 字体 */
+@font-face {
+  font-family: "iconfont logo";
+  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
+  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
+}
+
+.logo {
+  font-family: "iconfont logo";
+  font-size: 160px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+/* tabs */
+.nav-tabs {
+  position: relative;
+}
+
+.nav-tabs .nav-more {
+  position: absolute;
+  right: 0;
+  bottom: 0;
+  height: 42px;
+  line-height: 42px;
+  color: #666;
+}
+
+#tabs {
+  border-bottom: 1px solid #eee;
+}
+
+#tabs li {
+  cursor: pointer;
+  width: 100px;
+  height: 40px;
+  line-height: 40px;
+  text-align: center;
+  font-size: 16px;
+  border-bottom: 2px solid transparent;
+  position: relative;
+  z-index: 1;
+  margin-bottom: -1px;
+  color: #666;
+}
+
+
+#tabs .active {
+  border-bottom-color: #f00;
+  color: #222;
+}
+
+.tab-container .content {
+  display: none;
+}
+
+/* 页面布局 */
+.main {
+  padding: 30px 100px;
+  width: 960px;
+  margin: 0 auto;
+}
+
+.main .logo {
+  color: #333;
+  text-align: left;
+  margin-bottom: 30px;
+  line-height: 1;
+  height: 110px;
+  margin-top: -50px;
+  overflow: hidden;
+  *zoom: 1;
+}
+
+.main .logo a {
+  font-size: 160px;
+  color: #333;
+}
+
+.helps {
+  margin-top: 40px;
+}
+
+.helps pre {
+  padding: 20px;
+  margin: 10px 0;
+  border: solid 1px #e7e1cd;
+  background-color: #fffdef;
+  overflow: auto;
+}
+
+.icon_lists {
+  width: 100% !important;
+  overflow: hidden;
+  *zoom: 1;
+}
+
+.icon_lists li {
+  width: 100px;
+  margin-bottom: 10px;
+  margin-right: 20px;
+  text-align: center;
+  list-style: none !important;
+  cursor: default;
+}
+
+.icon_lists li .code-name {
+  line-height: 1.2;
+}
+
+.icon_lists .icon {
+  display: block;
+  height: 100px;
+  line-height: 100px;
+  font-size: 42px;
+  margin: 10px auto;
+  color: #333;
+  -webkit-transition: font-size 0.25s linear, width 0.25s linear;
+  -moz-transition: font-size 0.25s linear, width 0.25s linear;
+  transition: font-size 0.25s linear, width 0.25s linear;
+}
+
+.icon_lists .icon:hover {
+  font-size: 100px;
+}
+
+.icon_lists .svg-icon {
+  /* 通过设置 font-size 来改变图标大小 */
+  width: 1em;
+  /* 图标和文字相邻时,垂直对齐 */
+  vertical-align: -0.15em;
+  /* 通过设置 color 来改变 SVG 的颜色/fill */
+  fill: currentColor;
+  /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
+      normalize.css 中也包含这行 */
+  overflow: hidden;
+}
+
+.icon_lists li .name,
+.icon_lists li .code-name {
+  color: #666;
+}
+
+/* markdown 样式 */
+.markdown {
+  color: #666;
+  font-size: 14px;
+  line-height: 1.8;
+}
+
+.highlight {
+  line-height: 1.5;
+}
+
+.markdown img {
+  vertical-align: middle;
+  max-width: 100%;
+}
+
+.markdown h1 {
+  color: #404040;
+  font-weight: 500;
+  line-height: 40px;
+  margin-bottom: 24px;
+}
+
+.markdown h2,
+.markdown h3,
+.markdown h4,
+.markdown h5,
+.markdown h6 {
+  color: #404040;
+  margin: 1.6em 0 0.6em 0;
+  font-weight: 500;
+  clear: both;
+}
+
+.markdown h1 {
+  font-size: 28px;
+}
+
+.markdown h2 {
+  font-size: 22px;
+}
+
+.markdown h3 {
+  font-size: 16px;
+}
+
+.markdown h4 {
+  font-size: 14px;
+}
+
+.markdown h5 {
+  font-size: 12px;
+}
+
+.markdown h6 {
+  font-size: 12px;
+}
+
+.markdown hr {
+  height: 1px;
+  border: 0;
+  background: #e9e9e9;
+  margin: 16px 0;
+  clear: both;
+}
+
+.markdown p {
+  margin: 1em 0;
+}
+
+.markdown>p,
+.markdown>blockquote,
+.markdown>.highlight,
+.markdown>ol,
+.markdown>ul {
+  width: 80%;
+}
+
+.markdown ul>li {
+  list-style: circle;
+}
+
+.markdown>ul li,
+.markdown blockquote ul>li {
+  margin-left: 20px;
+  padding-left: 4px;
+}
+
+.markdown>ul li p,
+.markdown>ol li p {
+  margin: 0.6em 0;
+}
+
+.markdown ol>li {
+  list-style: decimal;
+}
+
+.markdown>ol li,
+.markdown blockquote ol>li {
+  margin-left: 20px;
+  padding-left: 4px;
+}
+
+.markdown code {
+  margin: 0 3px;
+  padding: 0 5px;
+  background: #eee;
+  border-radius: 3px;
+}
+
+.markdown strong,
+.markdown b {
+  font-weight: 600;
+}
+
+.markdown>table {
+  border-collapse: collapse;
+  border-spacing: 0px;
+  empty-cells: show;
+  border: 1px solid #e9e9e9;
+  width: 95%;
+  margin-bottom: 24px;
+}
+
+.markdown>table th {
+  white-space: nowrap;
+  color: #333;
+  font-weight: 600;
+}
+
+.markdown>table th,
+.markdown>table td {
+  border: 1px solid #e9e9e9;
+  padding: 8px 16px;
+  text-align: left;
+}
+
+.markdown>table th {
+  background: #F7F7F7;
+}
+
+.markdown blockquote {
+  font-size: 90%;
+  color: #999;
+  border-left: 4px solid #e9e9e9;
+  padding-left: 0.8em;
+  margin: 1em 0;
+}
+
+.markdown blockquote p {
+  margin: 0;
+}
+
+.markdown .anchor {
+  opacity: 0;
+  transition: opacity 0.3s ease;
+  margin-left: 8px;
+}
+
+.markdown .waiting {
+  color: #ccc;
+}
+
+.markdown h1:hover .anchor,
+.markdown h2:hover .anchor,
+.markdown h3:hover .anchor,
+.markdown h4:hover .anchor,
+.markdown h5:hover .anchor,
+.markdown h6:hover .anchor {
+  opacity: 1;
+  display: inline-block;
+}
+
+.markdown>br,
+.markdown>p>br {
+  clear: both;
+}
+
+
+.hljs {
+  display: block;
+  background: white;
+  padding: 0.5em;
+  color: #333333;
+  overflow-x: auto;
+}
+
+.hljs-comment,
+.hljs-meta {
+  color: #969896;
+}
+
+.hljs-string,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-strong,
+.hljs-emphasis,
+.hljs-quote {
+  color: #df5000;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-type {
+  color: #a71d5d;
+}
+
+.hljs-literal,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-attribute {
+  color: #0086b3;
+}
+
+.hljs-section,
+.hljs-name {
+  color: #63a35c;
+}
+
+.hljs-tag {
+  color: #333333;
+}
+
+.hljs-title,
+.hljs-attr,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+  color: #795da3;
+}
+
+.hljs-addition {
+  color: #55a532;
+  background-color: #eaffea;
+}
+
+.hljs-deletion {
+  color: #bd2c00;
+  background-color: #ffecec;
+}
+
+.hljs-link {
+  text-decoration: underline;
+}
+
+/* 代码高亮 */
+/* PrismJS 1.15.0
+https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
+/**
+ * prism.js default theme for JavaScript, CSS and HTML
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+code[class*="language-"],
+pre[class*="language-"] {
+  color: black;
+  background: none;
+  text-shadow: 0 1px white;
+  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+  text-align: left;
+  white-space: pre;
+  word-spacing: normal;
+  word-break: normal;
+  word-wrap: normal;
+  line-height: 1.5;
+
+  -moz-tab-size: 4;
+  -o-tab-size: 4;
+  tab-size: 4;
+
+  -webkit-hyphens: none;
+  -moz-hyphens: none;
+  -ms-hyphens: none;
+  hyphens: none;
+}
+
+pre[class*="language-"]::-moz-selection,
+pre[class*="language-"] ::-moz-selection,
+code[class*="language-"]::-moz-selection,
+code[class*="language-"] ::-moz-selection {
+  text-shadow: none;
+  background: #b3d4fc;
+}
+
+pre[class*="language-"]::selection,
+pre[class*="language-"] ::selection,
+code[class*="language-"]::selection,
+code[class*="language-"] ::selection {
+  text-shadow: none;
+  background: #b3d4fc;
+}
+
+@media print {
+
+  code[class*="language-"],
+  pre[class*="language-"] {
+    text-shadow: none;
+  }
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+  padding: 1em;
+  margin: .5em 0;
+  overflow: auto;
+}
+
+:not(pre)>code[class*="language-"],
+pre[class*="language-"] {
+  background: #f5f2f0;
+}
+
+/* Inline code */
+:not(pre)>code[class*="language-"] {
+  padding: .1em;
+  border-radius: .3em;
+  white-space: normal;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+  color: slategray;
+}
+
+.token.punctuation {
+  color: #999;
+}
+
+.namespace {
+  opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol,
+.token.deleted {
+  color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+  color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+  color: #9a6e3a;
+  background: hsla(0, 0%, 100%, .5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+  color: #07a;
+}
+
+.token.function,
+.token.class-name {
+  color: #DD4A68;
+}
+
+.token.regex,
+.token.important,
+.token.variable {
+  color: #e90;
+}
+
+.token.important,
+.token.bold {
+  font-weight: bold;
+}
+
+.token.italic {
+  font-style: italic;
+}
+
+.token.entity {
+  cursor: help;
+}

Plik diff jest za duży
+ 5161 - 0
packages/code/public/static/lib/iconfont/demo_index.html


Plik diff jest za duży
+ 885 - 0
packages/code/public/static/lib/iconfont/iconfont.css


BIN
packages/code/public/static/lib/iconfont/iconfont.eot


Plik diff jest za duży
+ 1 - 0
packages/code/public/static/lib/iconfont/iconfont.js


Plik diff jest za duży
+ 1528 - 0
packages/code/public/static/lib/iconfont/iconfont.json


Plik diff jest za duży
+ 677 - 0
packages/code/public/static/lib/iconfont/iconfont.svg


BIN
packages/code/public/static/lib/iconfont/iconfont.ttf


BIN
packages/code/public/static/lib/iconfont/iconfont.woff


BIN
packages/code/public/static/lib/iconfont/iconfont.woff2


+ 539 - 0
packages/code/public/static/lib/iconfontQJ1.1.0/demo.css

@@ -0,0 +1,539 @@
+/* Logo 字体 */
+@font-face {
+  font-family: "iconfont logo";
+  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
+  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
+}
+
+.logo {
+  font-family: "iconfont logo";
+  font-size: 160px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+/* tabs */
+.nav-tabs {
+  position: relative;
+}
+
+.nav-tabs .nav-more {
+  position: absolute;
+  right: 0;
+  bottom: 0;
+  height: 42px;
+  line-height: 42px;
+  color: #666;
+}
+
+#tabs {
+  border-bottom: 1px solid #eee;
+}
+
+#tabs li {
+  cursor: pointer;
+  width: 100px;
+  height: 40px;
+  line-height: 40px;
+  text-align: center;
+  font-size: 16px;
+  border-bottom: 2px solid transparent;
+  position: relative;
+  z-index: 1;
+  margin-bottom: -1px;
+  color: #666;
+}
+
+
+#tabs .active {
+  border-bottom-color: #f00;
+  color: #222;
+}
+
+.tab-container .content {
+  display: none;
+}
+
+/* 页面布局 */
+.main {
+  padding: 30px 100px;
+  width: 960px;
+  margin: 0 auto;
+}
+
+.main .logo {
+  color: #333;
+  text-align: left;
+  margin-bottom: 30px;
+  line-height: 1;
+  height: 110px;
+  margin-top: -50px;
+  overflow: hidden;
+  *zoom: 1;
+}
+
+.main .logo a {
+  font-size: 160px;
+  color: #333;
+}
+
+.helps {
+  margin-top: 40px;
+}
+
+.helps pre {
+  padding: 20px;
+  margin: 10px 0;
+  border: solid 1px #e7e1cd;
+  background-color: #fffdef;
+  overflow: auto;
+}
+
+.icon_lists {
+  width: 100% !important;
+  overflow: hidden;
+  *zoom: 1;
+}
+
+.icon_lists li {
+  width: 100px;
+  margin-bottom: 10px;
+  margin-right: 20px;
+  text-align: center;
+  list-style: none !important;
+  cursor: default;
+}
+
+.icon_lists li .code-name {
+  line-height: 1.2;
+}
+
+.icon_lists .icon {
+  display: block;
+  height: 100px;
+  line-height: 100px;
+  font-size: 42px;
+  margin: 10px auto;
+  color: #333;
+  -webkit-transition: font-size 0.25s linear, width 0.25s linear;
+  -moz-transition: font-size 0.25s linear, width 0.25s linear;
+  transition: font-size 0.25s linear, width 0.25s linear;
+}
+
+.icon_lists .icon:hover {
+  font-size: 100px;
+}
+
+.icon_lists .svg-icon {
+  /* 通过设置 font-size 来改变图标大小 */
+  width: 1em;
+  /* 图标和文字相邻时,垂直对齐 */
+  vertical-align: -0.15em;
+  /* 通过设置 color 来改变 SVG 的颜色/fill */
+  fill: currentColor;
+  /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
+      normalize.css 中也包含这行 */
+  overflow: hidden;
+}
+
+.icon_lists li .name,
+.icon_lists li .code-name {
+  color: #666;
+}
+
+/* markdown 样式 */
+.markdown {
+  color: #666;
+  font-size: 14px;
+  line-height: 1.8;
+}
+
+.highlight {
+  line-height: 1.5;
+}
+
+.markdown img {
+  vertical-align: middle;
+  max-width: 100%;
+}
+
+.markdown h1 {
+  color: #404040;
+  font-weight: 500;
+  line-height: 40px;
+  margin-bottom: 24px;
+}
+
+.markdown h2,
+.markdown h3,
+.markdown h4,
+.markdown h5,
+.markdown h6 {
+  color: #404040;
+  margin: 1.6em 0 0.6em 0;
+  font-weight: 500;
+  clear: both;
+}
+
+.markdown h1 {
+  font-size: 28px;
+}
+
+.markdown h2 {
+  font-size: 22px;
+}
+
+.markdown h3 {
+  font-size: 16px;
+}
+
+.markdown h4 {
+  font-size: 14px;
+}
+
+.markdown h5 {
+  font-size: 12px;
+}
+
+.markdown h6 {
+  font-size: 12px;
+}
+
+.markdown hr {
+  height: 1px;
+  border: 0;
+  background: #e9e9e9;
+  margin: 16px 0;
+  clear: both;
+}
+
+.markdown p {
+  margin: 1em 0;
+}
+
+.markdown>p,
+.markdown>blockquote,
+.markdown>.highlight,
+.markdown>ol,
+.markdown>ul {
+  width: 80%;
+}
+
+.markdown ul>li {
+  list-style: circle;
+}
+
+.markdown>ul li,
+.markdown blockquote ul>li {
+  margin-left: 20px;
+  padding-left: 4px;
+}
+
+.markdown>ul li p,
+.markdown>ol li p {
+  margin: 0.6em 0;
+}
+
+.markdown ol>li {
+  list-style: decimal;
+}
+
+.markdown>ol li,
+.markdown blockquote ol>li {
+  margin-left: 20px;
+  padding-left: 4px;
+}
+
+.markdown code {
+  margin: 0 3px;
+  padding: 0 5px;
+  background: #eee;
+  border-radius: 3px;
+}
+
+.markdown strong,
+.markdown b {
+  font-weight: 600;
+}
+
+.markdown>table {
+  border-collapse: collapse;
+  border-spacing: 0px;
+  empty-cells: show;
+  border: 1px solid #e9e9e9;
+  width: 95%;
+  margin-bottom: 24px;
+}
+
+.markdown>table th {
+  white-space: nowrap;
+  color: #333;
+  font-weight: 600;
+}
+
+.markdown>table th,
+.markdown>table td {
+  border: 1px solid #e9e9e9;
+  padding: 8px 16px;
+  text-align: left;
+}
+
+.markdown>table th {
+  background: #F7F7F7;
+}
+
+.markdown blockquote {
+  font-size: 90%;
+  color: #999;
+  border-left: 4px solid #e9e9e9;
+  padding-left: 0.8em;
+  margin: 1em 0;
+}
+
+.markdown blockquote p {
+  margin: 0;
+}
+
+.markdown .anchor {
+  opacity: 0;
+  transition: opacity 0.3s ease;
+  margin-left: 8px;
+}
+
+.markdown .waiting {
+  color: #ccc;
+}
+
+.markdown h1:hover .anchor,
+.markdown h2:hover .anchor,
+.markdown h3:hover .anchor,
+.markdown h4:hover .anchor,
+.markdown h5:hover .anchor,
+.markdown h6:hover .anchor {
+  opacity: 1;
+  display: inline-block;
+}
+
+.markdown>br,
+.markdown>p>br {
+  clear: both;
+}
+
+
+.hljs {
+  display: block;
+  background: white;
+  padding: 0.5em;
+  color: #333333;
+  overflow-x: auto;
+}
+
+.hljs-comment,
+.hljs-meta {
+  color: #969896;
+}
+
+.hljs-string,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-strong,
+.hljs-emphasis,
+.hljs-quote {
+  color: #df5000;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-type {
+  color: #a71d5d;
+}
+
+.hljs-literal,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-attribute {
+  color: #0086b3;
+}
+
+.hljs-section,
+.hljs-name {
+  color: #63a35c;
+}
+
+.hljs-tag {
+  color: #333333;
+}
+
+.hljs-title,
+.hljs-attr,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+  color: #795da3;
+}
+
+.hljs-addition {
+  color: #55a532;
+  background-color: #eaffea;
+}
+
+.hljs-deletion {
+  color: #bd2c00;
+  background-color: #ffecec;
+}
+
+.hljs-link {
+  text-decoration: underline;
+}
+
+/* 代码高亮 */
+/* PrismJS 1.15.0
+https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
+/**
+ * prism.js default theme for JavaScript, CSS and HTML
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+code[class*="language-"],
+pre[class*="language-"] {
+  color: black;
+  background: none;
+  text-shadow: 0 1px white;
+  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+  text-align: left;
+  white-space: pre;
+  word-spacing: normal;
+  word-break: normal;
+  word-wrap: normal;
+  line-height: 1.5;
+
+  -moz-tab-size: 4;
+  -o-tab-size: 4;
+  tab-size: 4;
+
+  -webkit-hyphens: none;
+  -moz-hyphens: none;
+  -ms-hyphens: none;
+  hyphens: none;
+}
+
+pre[class*="language-"]::-moz-selection,
+pre[class*="language-"] ::-moz-selection,
+code[class*="language-"]::-moz-selection,
+code[class*="language-"] ::-moz-selection {
+  text-shadow: none;
+  background: #b3d4fc;
+}
+
+pre[class*="language-"]::selection,
+pre[class*="language-"] ::selection,
+code[class*="language-"]::selection,
+code[class*="language-"] ::selection {
+  text-shadow: none;
+  background: #b3d4fc;
+}
+
+@media print {
+
+  code[class*="language-"],
+  pre[class*="language-"] {
+    text-shadow: none;
+  }
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+  padding: 1em;
+  margin: .5em 0;
+  overflow: auto;
+}
+
+:not(pre)>code[class*="language-"],
+pre[class*="language-"] {
+  background: #f5f2f0;
+}
+
+/* Inline code */
+:not(pre)>code[class*="language-"] {
+  padding: .1em;
+  border-radius: .3em;
+  white-space: normal;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+  color: slategray;
+}
+
+.token.punctuation {
+  color: #999;
+}
+
+.namespace {
+  opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol,
+.token.deleted {
+  color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+  color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+  color: #9a6e3a;
+  background: hsla(0, 0%, 100%, .5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+  color: #07a;
+}
+
+.token.function,
+.token.class-name {
+  color: #DD4A68;
+}
+
+.token.regex,
+.token.important,
+.token.variable {
+  color: #e90;
+}
+
+.token.important,
+.token.bold {
+  font-weight: bold;
+}
+
+.token.italic {
+  font-style: italic;
+}
+
+.token.entity {
+  cursor: help;
+}

Plik diff jest za duży
+ 2787 - 0
packages/code/public/static/lib/iconfontQJ1.1.0/demo_index.html


+ 467 - 0
packages/code/public/static/lib/iconfontQJ1.1.0/iconfont.css

@@ -0,0 +1,467 @@
+@font-face {
+  font-family: "iconfont"; /* Project id 2947721 */
+  src: url('iconfont.woff2?t=1642757115929') format('woff2'),
+       url('iconfont.woff?t=1642757115929') format('woff'),
+       url('iconfont.ttf?t=1642757115929') format('truetype');
+}
+
+.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-top:before {
+  content: "\e6f3";
+}
+
+.icon-editor_play:before {
+  content: "\e6ef";
+}
+
+.icon-editor_3d:before {
+  content: "\e6f0";
+}
+
+.icon-editor_update:before {
+  content: "\e6f1";
+}
+
+.icon-editor_list_delete:before {
+  content: "\e6f2";
+}
+
+.icon-material_panoramic_picture:before {
+  content: "\e6e8";
+}
+
+.icon-material_preview_upload:before {
+  content: "\e6e9";
+}
+
+.icon-toast_yellow:before {
+  content: "\e6ea";
+}
+
+.icon-works_search:before {
+  content: "\e6eb";
+}
+
+.icon-works_share:before {
+  content: "\e6ec";
+}
+
+.icon-works_look:before {
+  content: "\e6ed";
+}
+
+.icon-works_delete:before {
+  content: "\e6ee";
+}
+
+.icon-editor_folder_off:before {
+  content: "\e6c5";
+}
+
+.icon-editor_folder_on:before {
+  content: "\e6c6";
+}
+
+.icon-editor_add:before {
+  content: "\e6c7";
+}
+
+.icon-editor_hot_add:before {
+  content: "\e6c8";
+}
+
+.icon-editor_off:before {
+  content: "\e6c9";
+}
+
+.icon-editor_list_add:before {
+  content: "\e6ca";
+}
+
+.icon-editor_on:before {
+  content: "\e6cb";
+}
+
+.icon-editor_playback:before {
+  content: "\e6cc";
+}
+
+.icon-editor_list_edit:before {
+  content: "\e6cd";
+}
+
+.icon-material_image:before {
+  content: "\e6ce";
+}
+
+.icon-material_music:before {
+  content: "\e6cf";
+}
+
+.icon-editor_panoramic:before {
+  content: "\e6d0";
+}
+
+.icon-editor_list_image:before {
+  content: "\e6d1";
+}
+
+.icon-material_preview_drop_out:before {
+  content: "\e6d2";
+}
+
+.icon-editor_preview:before {
+  content: "\e6d3";
+}
+
+.icon-editor_search:before {
+  content: "\e6d4";
+}
+
+.icon-material_operation_delete:before {
+  content: "\e6d5";
+}
+
+.icon-material_operation_editor:before {
+  content: "\e6d6";
+}
+
+.icon-editor_return:before {
+  content: "\e6d7";
+}
+
+.icon-material_preview_full_screen:before {
+  content: "\e6d8";
+}
+
+.icon-material_preview_enlarge:before {
+  content: "\e6d9";
+}
+
+.icon-editor_save:before {
+  content: "\e6da";
+}
+
+.icon-material_preview_next1:before {
+  content: "\e6db";
+}
+
+.icon-material_preview_next:before {
+  content: "\e6dc";
+}
+
+.icon-material_preview_narrow:before {
+  content: "\e6dd";
+}
+
+.icon-material_preview_previous:before {
+  content: "\e6de";
+}
+
+.icon-material_operation_image:before {
+  content: "\e6df";
+}
+
+.icon-material_video:before {
+  content: "\e6e0";
+}
+
+.icon-material_preview_upload_collect:before {
+  content: "\e6e1";
+}
+
+.icon-pop-ups_shut-down:before {
+  content: "\e6e2";
+}
+
+.icon-toast_green:before {
+  content: "\e6e3";
+}
+
+.icon-toast_red:before {
+  content: "\e6e4";
+}
+
+.icon-works_editor:before {
+  content: "\e6e5";
+}
+
+.icon-pop-ups_crop:before {
+  content: "\e6e6";
+}
+
+.icon-material_prompt:before {
+  content: "\e6e7";
+}
+
+.icon-bs_close:before {
+  content: "\e74c";
+}
+
+.icon-bs_folder:before {
+  content: "\e74d";
+}
+
+.icon-bs_list_menu:before {
+  content: "\e74e";
+}
+
+.icon-bs_list_edit:before {
+  content: "\e74f";
+}
+
+.icon-bs_list_info:before {
+  content: "\e750";
+}
+
+.icon-bs_list_play:before {
+  content: "\e751";
+}
+
+.icon-bs_list_stop:before {
+  content: "\e752";
+}
+
+.icon-bs_plus:before {
+  content: "\e753";
+}
+
+.icon-bs_reduce:before {
+  content: "\e754";
+}
+
+.icon-bs_next:before {
+  content: "\e755";
+}
+
+.icon-bs_nav_panorama:before {
+  content: "\e756";
+}
+
+.icon-bs_upload:before {
+  content: "\e757";
+}
+
+.icon-bs_search:before {
+  content: "\e758";
+}
+
+.icon-bs_nav_photo:before {
+  content: "\e759";
+}
+
+.icon-bs_nav_video:before {
+  content: "\e75a";
+}
+
+.icon-edit_add:before {
+  content: "\e75b";
+}
+
+.icon-bs_nav_sound:before {
+  content: "\e75c";
+}
+
+.icon-edit_input_arrow:before {
+  content: "\e75d";
+}
+
+.icon-edit_close:before {
+  content: "\e75e";
+}
+
+.icon-edit_case_delete:before {
+  content: "\e75f";
+}
+
+.icon-bs_share:before {
+  content: "\e760";
+}
+
+.icon-edit_input_unvisible:before {
+  content: "\e761";
+}
+
+.icon-edit_input_visible:before {
+  content: "\e762";
+}
+
+.icon-edit_list_more:before {
+  content: "\e763";
+}
+
+.icon-edit_list_default:before {
+  content: "\e764";
+}
+
+.icon-edit_nav_hotpoint:before {
+  content: "\e765";
+}
+
+.icon-edit_nav_base:before {
+  content: "\e766";
+}
+
+.icon-edit_next:before {
+  content: "\e767";
+}
+
+.icon-edit_jumpsview:before {
+  content: "\e768";
+}
+
+.icon-edit_pre:before {
+  content: "\e769";
+}
+
+.icon-edit_linkview:before {
+  content: "\e76a";
+}
+
+.icon-edit_select:before {
+  content: "\e76b";
+}
+
+.icon-edit_nav_scenenav:before {
+  content: "\e76c";
+}
+
+.icon-edit_soundview:before {
+  content: "\e76d";
+}
+
+.icon-edit_photoview:before {
+  content: "\e76e";
+}
+
+.icon-edit_search:before {
+  content: "\e76f";
+}
+
+.icon-edit_textview:before {
+  content: "\e770";
+}
+
+.icon-edit_nav_screen:before {
+  content: "\e771";
+}
+
+.icon-edit_type_3d:before {
+  content: "\e772";
+}
+
+.icon-edit_top_save:before {
+  content: "\e773";
+}
+
+.icon-edit_type_panorama:before {
+  content: "\e774";
+}
+
+.icon-edit_top_view:before {
+  content: "\e775";
+}
+
+.icon-edit_videoview:before {
+  content: "\e776";
+}
+
+.icon-list_views:before {
+  content: "\e777";
+}
+
+.icon-nav_scene_down:before {
+  content: "\e778";
+}
+
+.icon-tool_about:before {
+  content: "\e779";
+}
+
+.icon-nav_scene_up:before {
+  content: "\e77a";
+}
+
+.icon-tool_vr:before {
+  content: "\e77b";
+}
+
+.icon-tool_window:before {
+  content: "\e77c";
+}
+
+.icon-tool_full:before {
+  content: "\e77d";
+}
+
+.icon-img_logo:before {
+  content: "\e77e";
+}
+
+.icon-bs_list_cover:before {
+  content: "\e77f";
+}
+
+.icon-list_delete:before {
+  content: "\e780";
+}
+
+.icon-bs_stop:before {
+  content: "\e781";
+}
+
+.icon-bs_play:before {
+  content: "\e782";
+}
+
+.icon-bs_list_circle:before {
+  content: "\e783";
+}
+
+.icon-show_playback:before {
+  content: "\e681";
+}
+
+.icon-show_suspension:before {
+  content: "\e683";
+}
+
+.icon-show_3d_normal:before {
+  content: "\e677";
+}
+
+.icon-show_plane_normal:before {
+  content: "\e67d";
+}
+
+.icon-show_roaming_selected:before {
+  content: "\e682";
+}
+
+.icon-show_plane_selected:before {
+  content: "\e684";
+}
+
+.icon-show_3d_selected:before {
+  content: "\e685";
+}
+
+.icon-show_roaming_normal:before {
+  content: "\e686";
+}
+
+.icon-show_function_collect:before {
+  content: "\e687";
+}
+
+.icon-show_drop-down:before {
+  content: "\e673";
+}
+

Plik diff jest za duży
+ 1 - 0
packages/code/public/static/lib/iconfontQJ1.1.0/iconfont.js


+ 800 - 0
packages/code/public/static/lib/iconfontQJ1.1.0/iconfont.json

@@ -0,0 +1,800 @@
+{
+  "id": "2947721",
+  "name": "全景看看1.1.0",
+  "font_family": "iconfont",
+  "css_prefix_text": "icon-",
+  "description": "全景看看1.1.0",
+  "glyphs": [
+    {
+      "icon_id": "27373469",
+      "name": "top",
+      "font_class": "top",
+      "unicode": "e6f3",
+      "unicode_decimal": 59123
+    },
+    {
+      "icon_id": "25824857",
+      "name": "editor_play",
+      "font_class": "editor_play",
+      "unicode": "e6ef",
+      "unicode_decimal": 59119
+    },
+    {
+      "icon_id": "25824858",
+      "name": "editor_3d",
+      "font_class": "editor_3d",
+      "unicode": "e6f0",
+      "unicode_decimal": 59120
+    },
+    {
+      "icon_id": "25824859",
+      "name": "editor_update",
+      "font_class": "editor_update",
+      "unicode": "e6f1",
+      "unicode_decimal": 59121
+    },
+    {
+      "icon_id": "25824860",
+      "name": "editor_list_delete",
+      "font_class": "editor_list_delete",
+      "unicode": "e6f2",
+      "unicode_decimal": 59122
+    },
+    {
+      "icon_id": "25824816",
+      "name": "material_panoramic_picture",
+      "font_class": "material_panoramic_picture",
+      "unicode": "e6e8",
+      "unicode_decimal": 59112
+    },
+    {
+      "icon_id": "25824817",
+      "name": "material_preview_upload",
+      "font_class": "material_preview_upload",
+      "unicode": "e6e9",
+      "unicode_decimal": 59113
+    },
+    {
+      "icon_id": "25824818",
+      "name": "toast_yellow",
+      "font_class": "toast_yellow",
+      "unicode": "e6ea",
+      "unicode_decimal": 59114
+    },
+    {
+      "icon_id": "25824819",
+      "name": "works_search",
+      "font_class": "works_search",
+      "unicode": "e6eb",
+      "unicode_decimal": 59115
+    },
+    {
+      "icon_id": "25824820",
+      "name": "works_share",
+      "font_class": "works_share",
+      "unicode": "e6ec",
+      "unicode_decimal": 59116
+    },
+    {
+      "icon_id": "25824821",
+      "name": "works_look",
+      "font_class": "works_look",
+      "unicode": "e6ed",
+      "unicode_decimal": 59117
+    },
+    {
+      "icon_id": "25824822",
+      "name": "works_delete",
+      "font_class": "works_delete",
+      "unicode": "e6ee",
+      "unicode_decimal": 59118
+    },
+    {
+      "icon_id": "25824780",
+      "name": "editor_folder_off",
+      "font_class": "editor_folder_off",
+      "unicode": "e6c5",
+      "unicode_decimal": 59077
+    },
+    {
+      "icon_id": "25824781",
+      "name": "editor_folder_on",
+      "font_class": "editor_folder_on",
+      "unicode": "e6c6",
+      "unicode_decimal": 59078
+    },
+    {
+      "icon_id": "25824782",
+      "name": "editor_add",
+      "font_class": "editor_add",
+      "unicode": "e6c7",
+      "unicode_decimal": 59079
+    },
+    {
+      "icon_id": "25824783",
+      "name": "editor_hot_add",
+      "font_class": "editor_hot_add",
+      "unicode": "e6c8",
+      "unicode_decimal": 59080
+    },
+    {
+      "icon_id": "25824784",
+      "name": "editor_off",
+      "font_class": "editor_off",
+      "unicode": "e6c9",
+      "unicode_decimal": 59081
+    },
+    {
+      "icon_id": "25824785",
+      "name": "editor_list_add",
+      "font_class": "editor_list_add",
+      "unicode": "e6ca",
+      "unicode_decimal": 59082
+    },
+    {
+      "icon_id": "25824786",
+      "name": "editor_on",
+      "font_class": "editor_on",
+      "unicode": "e6cb",
+      "unicode_decimal": 59083
+    },
+    {
+      "icon_id": "25824787",
+      "name": "editor_playback",
+      "font_class": "editor_playback",
+      "unicode": "e6cc",
+      "unicode_decimal": 59084
+    },
+    {
+      "icon_id": "25824788",
+      "name": "editor_list_edit",
+      "font_class": "editor_list_edit",
+      "unicode": "e6cd",
+      "unicode_decimal": 59085
+    },
+    {
+      "icon_id": "25824789",
+      "name": "material_image",
+      "font_class": "material_image",
+      "unicode": "e6ce",
+      "unicode_decimal": 59086
+    },
+    {
+      "icon_id": "25824790",
+      "name": "material_music",
+      "font_class": "material_music",
+      "unicode": "e6cf",
+      "unicode_decimal": 59087
+    },
+    {
+      "icon_id": "25824791",
+      "name": "editor_panoramic",
+      "font_class": "editor_panoramic",
+      "unicode": "e6d0",
+      "unicode_decimal": 59088
+    },
+    {
+      "icon_id": "25824792",
+      "name": "editor_list_image",
+      "font_class": "editor_list_image",
+      "unicode": "e6d1",
+      "unicode_decimal": 59089
+    },
+    {
+      "icon_id": "25824793",
+      "name": "material_preview_drop_out",
+      "font_class": "material_preview_drop_out",
+      "unicode": "e6d2",
+      "unicode_decimal": 59090
+    },
+    {
+      "icon_id": "25824794",
+      "name": "editor_preview",
+      "font_class": "editor_preview",
+      "unicode": "e6d3",
+      "unicode_decimal": 59091
+    },
+    {
+      "icon_id": "25824795",
+      "name": "editor_search",
+      "font_class": "editor_search",
+      "unicode": "e6d4",
+      "unicode_decimal": 59092
+    },
+    {
+      "icon_id": "25824796",
+      "name": "material_operation_delete",
+      "font_class": "material_operation_delete",
+      "unicode": "e6d5",
+      "unicode_decimal": 59093
+    },
+    {
+      "icon_id": "25824797",
+      "name": "material_operation_editor",
+      "font_class": "material_operation_editor",
+      "unicode": "e6d6",
+      "unicode_decimal": 59094
+    },
+    {
+      "icon_id": "25824798",
+      "name": "editor_return",
+      "font_class": "editor_return",
+      "unicode": "e6d7",
+      "unicode_decimal": 59095
+    },
+    {
+      "icon_id": "25824799",
+      "name": "material_preview_full_screen",
+      "font_class": "material_preview_full_screen",
+      "unicode": "e6d8",
+      "unicode_decimal": 59096
+    },
+    {
+      "icon_id": "25824800",
+      "name": "material_preview_enlarge",
+      "font_class": "material_preview_enlarge",
+      "unicode": "e6d9",
+      "unicode_decimal": 59097
+    },
+    {
+      "icon_id": "25824801",
+      "name": "editor_save",
+      "font_class": "editor_save",
+      "unicode": "e6da",
+      "unicode_decimal": 59098
+    },
+    {
+      "icon_id": "25824803",
+      "name": "material_preview_next1",
+      "font_class": "material_preview_next1",
+      "unicode": "e6db",
+      "unicode_decimal": 59099
+    },
+    {
+      "icon_id": "25824804",
+      "name": "material_preview_next",
+      "font_class": "material_preview_next",
+      "unicode": "e6dc",
+      "unicode_decimal": 59100
+    },
+    {
+      "icon_id": "25824805",
+      "name": "material_preview_narrow",
+      "font_class": "material_preview_narrow",
+      "unicode": "e6dd",
+      "unicode_decimal": 59101
+    },
+    {
+      "icon_id": "25824806",
+      "name": "material_preview_previous",
+      "font_class": "material_preview_previous",
+      "unicode": "e6de",
+      "unicode_decimal": 59102
+    },
+    {
+      "icon_id": "25824807",
+      "name": "material_operation_image",
+      "font_class": "material_operation_image",
+      "unicode": "e6df",
+      "unicode_decimal": 59103
+    },
+    {
+      "icon_id": "25824808",
+      "name": "material_video",
+      "font_class": "material_video",
+      "unicode": "e6e0",
+      "unicode_decimal": 59104
+    },
+    {
+      "icon_id": "25824809",
+      "name": "material_preview_upload_collect",
+      "font_class": "material_preview_upload_collect",
+      "unicode": "e6e1",
+      "unicode_decimal": 59105
+    },
+    {
+      "icon_id": "25824810",
+      "name": "pop-ups_shut-down",
+      "font_class": "pop-ups_shut-down",
+      "unicode": "e6e2",
+      "unicode_decimal": 59106
+    },
+    {
+      "icon_id": "25824811",
+      "name": "toast_green",
+      "font_class": "toast_green",
+      "unicode": "e6e3",
+      "unicode_decimal": 59107
+    },
+    {
+      "icon_id": "25824812",
+      "name": "toast_red",
+      "font_class": "toast_red",
+      "unicode": "e6e4",
+      "unicode_decimal": 59108
+    },
+    {
+      "icon_id": "25824813",
+      "name": "works_editor",
+      "font_class": "works_editor",
+      "unicode": "e6e5",
+      "unicode_decimal": 59109
+    },
+    {
+      "icon_id": "25824814",
+      "name": "pop-ups_crop",
+      "font_class": "pop-ups_crop",
+      "unicode": "e6e6",
+      "unicode_decimal": 59110
+    },
+    {
+      "icon_id": "25824815",
+      "name": "material_prompt",
+      "font_class": "material_prompt",
+      "unicode": "e6e7",
+      "unicode_decimal": 59111
+    },
+    {
+      "icon_id": "20281176",
+      "name": "bs_close",
+      "font_class": "bs_close",
+      "unicode": "e74c",
+      "unicode_decimal": 59212
+    },
+    {
+      "icon_id": "20281177",
+      "name": "bs_folder",
+      "font_class": "bs_folder",
+      "unicode": "e74d",
+      "unicode_decimal": 59213
+    },
+    {
+      "icon_id": "20281178",
+      "name": "bs_list_menu",
+      "font_class": "bs_list_menu",
+      "unicode": "e74e",
+      "unicode_decimal": 59214
+    },
+    {
+      "icon_id": "20281179",
+      "name": "bs_list_edit",
+      "font_class": "bs_list_edit",
+      "unicode": "e74f",
+      "unicode_decimal": 59215
+    },
+    {
+      "icon_id": "20281180",
+      "name": "bs_list_info",
+      "font_class": "bs_list_info",
+      "unicode": "e750",
+      "unicode_decimal": 59216
+    },
+    {
+      "icon_id": "20281181",
+      "name": "bs_list_play",
+      "font_class": "bs_list_play",
+      "unicode": "e751",
+      "unicode_decimal": 59217
+    },
+    {
+      "icon_id": "20281182",
+      "name": "bs_list_stop",
+      "font_class": "bs_list_stop",
+      "unicode": "e752",
+      "unicode_decimal": 59218
+    },
+    {
+      "icon_id": "20281183",
+      "name": "bs_plus",
+      "font_class": "bs_plus",
+      "unicode": "e753",
+      "unicode_decimal": 59219
+    },
+    {
+      "icon_id": "20281184",
+      "name": "bs_reduce",
+      "font_class": "bs_reduce",
+      "unicode": "e754",
+      "unicode_decimal": 59220
+    },
+    {
+      "icon_id": "20281185",
+      "name": "bs_next",
+      "font_class": "bs_next",
+      "unicode": "e755",
+      "unicode_decimal": 59221
+    },
+    {
+      "icon_id": "20281186",
+      "name": "bs_nav_panorama",
+      "font_class": "bs_nav_panorama",
+      "unicode": "e756",
+      "unicode_decimal": 59222
+    },
+    {
+      "icon_id": "20281187",
+      "name": "bs_upload",
+      "font_class": "bs_upload",
+      "unicode": "e757",
+      "unicode_decimal": 59223
+    },
+    {
+      "icon_id": "20281188",
+      "name": "bs_search",
+      "font_class": "bs_search",
+      "unicode": "e758",
+      "unicode_decimal": 59224
+    },
+    {
+      "icon_id": "20281189",
+      "name": "bs_nav_photo",
+      "font_class": "bs_nav_photo",
+      "unicode": "e759",
+      "unicode_decimal": 59225
+    },
+    {
+      "icon_id": "20281190",
+      "name": "bs_nav_video",
+      "font_class": "bs_nav_video",
+      "unicode": "e75a",
+      "unicode_decimal": 59226
+    },
+    {
+      "icon_id": "20281191",
+      "name": "edit_add",
+      "font_class": "edit_add",
+      "unicode": "e75b",
+      "unicode_decimal": 59227
+    },
+    {
+      "icon_id": "20281192",
+      "name": "bs_nav_sound",
+      "font_class": "bs_nav_sound",
+      "unicode": "e75c",
+      "unicode_decimal": 59228
+    },
+    {
+      "icon_id": "20281193",
+      "name": "edit_input_arrow",
+      "font_class": "edit_input_arrow",
+      "unicode": "e75d",
+      "unicode_decimal": 59229
+    },
+    {
+      "icon_id": "20281194",
+      "name": "edit_close",
+      "font_class": "edit_close",
+      "unicode": "e75e",
+      "unicode_decimal": 59230
+    },
+    {
+      "icon_id": "20281195",
+      "name": "edit_case_delete",
+      "font_class": "edit_case_delete",
+      "unicode": "e75f",
+      "unicode_decimal": 59231
+    },
+    {
+      "icon_id": "20281196",
+      "name": "bs_share",
+      "font_class": "bs_share",
+      "unicode": "e760",
+      "unicode_decimal": 59232
+    },
+    {
+      "icon_id": "20281197",
+      "name": "edit_input_unvisible",
+      "font_class": "edit_input_unvisible",
+      "unicode": "e761",
+      "unicode_decimal": 59233
+    },
+    {
+      "icon_id": "20281198",
+      "name": "edit_input_visible",
+      "font_class": "edit_input_visible",
+      "unicode": "e762",
+      "unicode_decimal": 59234
+    },
+    {
+      "icon_id": "20281199",
+      "name": "edit_list_more",
+      "font_class": "edit_list_more",
+      "unicode": "e763",
+      "unicode_decimal": 59235
+    },
+    {
+      "icon_id": "20281200",
+      "name": "edit_list_default",
+      "font_class": "edit_list_default",
+      "unicode": "e764",
+      "unicode_decimal": 59236
+    },
+    {
+      "icon_id": "20281201",
+      "name": "edit_nav_hotpoint",
+      "font_class": "edit_nav_hotpoint",
+      "unicode": "e765",
+      "unicode_decimal": 59237
+    },
+    {
+      "icon_id": "20281202",
+      "name": "edit_nav_base",
+      "font_class": "edit_nav_base",
+      "unicode": "e766",
+      "unicode_decimal": 59238
+    },
+    {
+      "icon_id": "20281203",
+      "name": "edit_next",
+      "font_class": "edit_next",
+      "unicode": "e767",
+      "unicode_decimal": 59239
+    },
+    {
+      "icon_id": "20281204",
+      "name": "edit_jumpsview",
+      "font_class": "edit_jumpsview",
+      "unicode": "e768",
+      "unicode_decimal": 59240
+    },
+    {
+      "icon_id": "20281205",
+      "name": "edit_pre",
+      "font_class": "edit_pre",
+      "unicode": "e769",
+      "unicode_decimal": 59241
+    },
+    {
+      "icon_id": "20281206",
+      "name": "edit_linkview",
+      "font_class": "edit_linkview",
+      "unicode": "e76a",
+      "unicode_decimal": 59242
+    },
+    {
+      "icon_id": "20281207",
+      "name": "edit_select",
+      "font_class": "edit_select",
+      "unicode": "e76b",
+      "unicode_decimal": 59243
+    },
+    {
+      "icon_id": "20281208",
+      "name": "edit_nav_scenenav",
+      "font_class": "edit_nav_scenenav",
+      "unicode": "e76c",
+      "unicode_decimal": 59244
+    },
+    {
+      "icon_id": "20281209",
+      "name": "edit_soundview",
+      "font_class": "edit_soundview",
+      "unicode": "e76d",
+      "unicode_decimal": 59245
+    },
+    {
+      "icon_id": "20281210",
+      "name": "edit_photoview",
+      "font_class": "edit_photoview",
+      "unicode": "e76e",
+      "unicode_decimal": 59246
+    },
+    {
+      "icon_id": "20281211",
+      "name": "edit_search",
+      "font_class": "edit_search",
+      "unicode": "e76f",
+      "unicode_decimal": 59247
+    },
+    {
+      "icon_id": "20281212",
+      "name": "edit_textview",
+      "font_class": "edit_textview",
+      "unicode": "e770",
+      "unicode_decimal": 59248
+    },
+    {
+      "icon_id": "20281213",
+      "name": "edit_nav_screen",
+      "font_class": "edit_nav_screen",
+      "unicode": "e771",
+      "unicode_decimal": 59249
+    },
+    {
+      "icon_id": "20281214",
+      "name": "edit_type_3d",
+      "font_class": "edit_type_3d",
+      "unicode": "e772",
+      "unicode_decimal": 59250
+    },
+    {
+      "icon_id": "20281215",
+      "name": "edit_top_save",
+      "font_class": "edit_top_save",
+      "unicode": "e773",
+      "unicode_decimal": 59251
+    },
+    {
+      "icon_id": "20281216",
+      "name": "edit_type_panorama",
+      "font_class": "edit_type_panorama",
+      "unicode": "e774",
+      "unicode_decimal": 59252
+    },
+    {
+      "icon_id": "20281217",
+      "name": "edit_top_view",
+      "font_class": "edit_top_view",
+      "unicode": "e775",
+      "unicode_decimal": 59253
+    },
+    {
+      "icon_id": "20281218",
+      "name": "edit_videoview",
+      "font_class": "edit_videoview",
+      "unicode": "e776",
+      "unicode_decimal": 59254
+    },
+    {
+      "icon_id": "20335636",
+      "name": "list_views",
+      "font_class": "list_views",
+      "unicode": "e777",
+      "unicode_decimal": 59255
+    },
+    {
+      "icon_id": "20434823",
+      "name": "nav_scene_down",
+      "font_class": "nav_scene_down",
+      "unicode": "e778",
+      "unicode_decimal": 59256
+    },
+    {
+      "icon_id": "20434824",
+      "name": "tool_about",
+      "font_class": "tool_about",
+      "unicode": "e779",
+      "unicode_decimal": 59257
+    },
+    {
+      "icon_id": "20434825",
+      "name": "nav_scene_up",
+      "font_class": "nav_scene_up",
+      "unicode": "e77a",
+      "unicode_decimal": 59258
+    },
+    {
+      "icon_id": "20434826",
+      "name": "tool_vr",
+      "font_class": "tool_vr",
+      "unicode": "e77b",
+      "unicode_decimal": 59259
+    },
+    {
+      "icon_id": "20434827",
+      "name": "tool_window",
+      "font_class": "tool_window",
+      "unicode": "e77c",
+      "unicode_decimal": 59260
+    },
+    {
+      "icon_id": "20434829",
+      "name": "tool_full",
+      "font_class": "tool_full",
+      "unicode": "e77d",
+      "unicode_decimal": 59261
+    },
+    {
+      "icon_id": "20434835",
+      "name": "img_logo",
+      "font_class": "img_logo",
+      "unicode": "e77e",
+      "unicode_decimal": 59262
+    },
+    {
+      "icon_id": "20468141",
+      "name": "list_cover",
+      "font_class": "bs_list_cover",
+      "unicode": "e77f",
+      "unicode_decimal": 59263
+    },
+    {
+      "icon_id": "20468257",
+      "name": "list_delete",
+      "font_class": "list_delete",
+      "unicode": "e780",
+      "unicode_decimal": 59264
+    },
+    {
+      "icon_id": "20863638",
+      "name": "bs_stop",
+      "font_class": "bs_stop",
+      "unicode": "e781",
+      "unicode_decimal": 59265
+    },
+    {
+      "icon_id": "20863639",
+      "name": "bs_play",
+      "font_class": "bs_play",
+      "unicode": "e782",
+      "unicode_decimal": 59266
+    },
+    {
+      "icon_id": "20863640",
+      "name": "bs_list_circle",
+      "font_class": "bs_list_circle",
+      "unicode": "e783",
+      "unicode_decimal": 59267
+    },
+    {
+      "icon_id": "19543934",
+      "name": "show_playback",
+      "font_class": "show_playback",
+      "unicode": "e681",
+      "unicode_decimal": 59009
+    },
+    {
+      "icon_id": "19543936",
+      "name": "show_suspension",
+      "font_class": "show_suspension",
+      "unicode": "e683",
+      "unicode_decimal": 59011
+    },
+    {
+      "icon_id": "20066551",
+      "name": "show_3d_normal",
+      "font_class": "show_3d_normal",
+      "unicode": "e677",
+      "unicode_decimal": 58999
+    },
+    {
+      "icon_id": "20066554",
+      "name": "show_plane_normal",
+      "font_class": "show_plane_normal",
+      "unicode": "e67d",
+      "unicode_decimal": 59005
+    },
+    {
+      "icon_id": "20066556",
+      "name": "show_roaming_selected",
+      "font_class": "show_roaming_selected",
+      "unicode": "e682",
+      "unicode_decimal": 59010
+    },
+    {
+      "icon_id": "20066557",
+      "name": "show_plane_selected",
+      "font_class": "show_plane_selected",
+      "unicode": "e684",
+      "unicode_decimal": 59012
+    },
+    {
+      "icon_id": "20066558",
+      "name": "show_3d_selected",
+      "font_class": "show_3d_selected",
+      "unicode": "e685",
+      "unicode_decimal": 59013
+    },
+    {
+      "icon_id": "20066559",
+      "name": "show_roaming_normal",
+      "font_class": "show_roaming_normal",
+      "unicode": "e686",
+      "unicode_decimal": 59014
+    },
+    {
+      "icon_id": "20066572",
+      "name": "show_function_collect",
+      "font_class": "show_function_collect",
+      "unicode": "e687",
+      "unicode_decimal": 59015
+    },
+    {
+      "icon_id": "19543922",
+      "name": "show_drop-down",
+      "font_class": "show_drop-down",
+      "unicode": "e673",
+      "unicode_decimal": 58995
+    }
+  ]
+}

BIN
packages/code/public/static/lib/iconfontQJ1.1.0/iconfont.ttf


BIN
packages/code/public/static/lib/iconfontQJ1.1.0/iconfont.woff


BIN
packages/code/public/static/lib/iconfontQJ1.1.0/iconfont.woff2


Plik diff jest za duży
+ 193 - 0
packages/code/public/static/lib/iconfontVR/iconfont.css


BIN
packages/code/public/static/lib/iconfontVR/iconfont.eot


Plik diff jest za duży
+ 1 - 0
packages/code/public/static/lib/iconfontVR/iconfont.js


+ 0 - 0
packages/code/public/static/lib/iconfontVR/iconfont.json


Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików