gemercheung 1 yıl önce
işleme
4c1ad92b83
100 değiştirilmiş dosya ile 33870 ekleme ve 0 silme
  1. 5 0
      .browserslistrc
  2. 8 0
      .env
  3. 9 0
      .env.eurdev
  4. 10 0
      .env.eurprod
  5. 10 0
      .env.eurtestdev
  6. 10 0
      .env.eurtestprod
  7. 11 0
      .env.prod
  8. 13 0
      .env.testdev
  9. 13 0
      .env.testprod
  10. 10 0
      .eslintrc.js
  11. 23 0
      .gitignore
  12. 24 0
      README.md
  13. 25 0
      babel.config.js
  14. 19 0
      jsconfig.json
  15. 58 0
      package.json
  16. 7653 0
      pnpm-lock.yaml
  17. BIN
      public/favicon.png
  18. 53 0
      public/show.html
  19. 66 0
      public/showMobile.html
  20. 11 0
      public/showviewer/lib/animate/animate.min.css
  21. 4 0
      public/showviewer/lib/howler/howler.min.js
  22. 539 0
      public/showviewer/lib/iconfont/demo.css
  23. 5161 0
      public/showviewer/lib/iconfont/demo_index.html
  24. 885 0
      public/showviewer/lib/iconfont/iconfont.css
  25. BIN
      public/showviewer/lib/iconfont/iconfont.eot
  26. 1 0
      public/showviewer/lib/iconfont/iconfont.js
  27. 1528 0
      public/showviewer/lib/iconfont/iconfont.json
  28. 677 0
      public/showviewer/lib/iconfont/iconfont.svg
  29. BIN
      public/showviewer/lib/iconfont/iconfont.ttf
  30. BIN
      public/showviewer/lib/iconfont/iconfont.woff
  31. BIN
      public/showviewer/lib/iconfont/iconfont.woff2
  32. 539 0
      public/showviewer/lib/iconfontQJ1.1.0/demo.css
  33. 2787 0
      public/showviewer/lib/iconfontQJ1.1.0/demo_index.html
  34. 467 0
      public/showviewer/lib/iconfontQJ1.1.0/iconfont.css
  35. 1 0
      public/showviewer/lib/iconfontQJ1.1.0/iconfont.js
  36. 800 0
      public/showviewer/lib/iconfontQJ1.1.0/iconfont.json
  37. BIN
      public/showviewer/lib/iconfontQJ1.1.0/iconfont.ttf
  38. BIN
      public/showviewer/lib/iconfontQJ1.1.0/iconfont.woff
  39. BIN
      public/showviewer/lib/iconfontQJ1.1.0/iconfont.woff2
  40. 539 0
      public/showviewer/lib/iconfontV1.2.0/demo.css
  41. 3270 0
      public/showviewer/lib/iconfontV1.2.0/demo_index.html
  42. 551 0
      public/showviewer/lib/iconfontV1.2.0/iconfont.css
  43. 1 0
      public/showviewer/lib/iconfontV1.2.0/iconfont.js
  44. 947 0
      public/showviewer/lib/iconfontV1.2.0/iconfont.json
  45. BIN
      public/showviewer/lib/iconfontV1.2.0/iconfont.ttf
  46. BIN
      public/showviewer/lib/iconfontV1.2.0/iconfont.woff
  47. BIN
      public/showviewer/lib/iconfontV1.2.0/iconfont.woff2
  48. 193 0
      public/showviewer/lib/iconfontVR/iconfont.css
  49. BIN
      public/showviewer/lib/iconfontVR/iconfont.eot
  50. 1 0
      public/showviewer/lib/iconfontVR/iconfont.js
  51. 317 0
      public/showviewer/lib/iconfontVR/iconfont.json
  52. 158 0
      public/showviewer/lib/iconfontVR/iconfont.svg
  53. BIN
      public/showviewer/lib/iconfontVR/iconfont.ttf
  54. BIN
      public/showviewer/lib/iconfontVR/iconfont.woff
  55. BIN
      public/showviewer/lib/iconfontVR/iconfont.woff2
  56. 4 0
      public/showviewer/lib/jquery-2.1.1.min.js
  57. 5 0
      public/showviewer/lib/jssor/jssor.slider-28.1.0.min.js
  58. 12 0
      public/showviewer/lib/krpano/js/tour.js
  59. 5 0
      public/showviewer/lib/krpano/plugins/bingmaps.js
  60. 493 0
      public/showviewer/lib/krpano/plugins/combobox.xml
  61. 5 0
      public/showviewer/lib/krpano/plugins/googlemaps.js
  62. 5 0
      public/showviewer/lib/krpano/plugins/gyro2.js
  63. 19 0
      public/showviewer/lib/krpano/plugins/scrollarea.js
  64. 5 0
      public/showviewer/lib/krpano/plugins/soundinterface.js
  65. 5 0
      public/showviewer/lib/krpano/plugins/videoplayer.js
  66. 5 0
      public/showviewer/lib/krpano/plugins/webvr.js
  67. 881 0
      public/showviewer/lib/krpano/plugins/webvr.xml
  68. BIN
      public/showviewer/lib/krpano/plugins/webvr_cursor_80x80_17f.png
  69. 21 0
      public/showviewer/lib/krpano/skin/img_doticon_01.svg
  70. BIN
      public/showviewer/lib/krpano/skin/krpano-roundlogo.png
  71. BIN
      public/showviewer/lib/krpano/skin/masking.png
  72. BIN
      public/showviewer/lib/krpano/skin/masking_en.png
  73. BIN
      public/showviewer/lib/krpano/skin/masking_zh.png
  74. BIN
      public/showviewer/lib/krpano/skin/rotate_device.png
  75. 1281 0
      public/showviewer/lib/krpano/skin/vtourskin copy 2.xml
  76. 1 0
      public/showviewer/lib/krpano/skin/vtourskin copy.xml
  77. BIN
      public/showviewer/lib/krpano/skin/vtourskin.png
  78. 1299 0
      public/showviewer/lib/krpano/skin/vtourskin.xml
  79. 1281 0
      public/showviewer/lib/krpano/skin/vtourskin.xml.backup-2022-11-16-09-02-39
  80. 28 0
      public/showviewer/lib/krpano/skin/vtourskin_design_117.xml
  81. 31 0
      public/showviewer/lib/krpano/skin/vtourskin_design_117round.xml
  82. 71 0
      public/showviewer/lib/krpano/skin/vtourskin_design_black.xml
  83. 42 0
      public/showviewer/lib/krpano/skin/vtourskin_design_flat_light.xml
  84. 40 0
      public/showviewer/lib/krpano/skin/vtourskin_design_glass.xml
  85. 58 0
      public/showviewer/lib/krpano/skin/vtourskin_design_ultra_light.xml
  86. BIN
      public/showviewer/lib/krpano/skin/vtourskin_hotspot.png
  87. BIN
      public/showviewer/lib/krpano/skin/vtourskin_light.png
  88. BIN
      public/showviewer/lib/krpano/skin/vtourskin_mapspot.png
  89. BIN
      public/showviewer/lib/krpano/skin/vtourskin_mapspotactive.png
  90. 447 0
      public/showviewer/lib/krpano/tooltip.xml
  91. 146 0
      public/showviewer/lib/krpano/tour.xml
  92. 207 0
      public/showviewer/lib/krpano/tour_test1.xml
  93. 13 0
      public/showviewer/lib/swiper/swiper-bundle.min.css
  94. 14 0
      public/showviewer/lib/swiper/swiper-bundle.min.js
  95. 13 0
      public/showviewer/lib/swiper/swiper.min.css
  96. 14 0
      public/showviewer/lib/swiper/swiper.min.js
  97. 1 0
      public/showviewer/lib/swiper/swiper.min.js.map
  98. BIN
      public/showviewer/panoassets/images/hotspot/icon-old/img_doticon_01.png
  99. 21 0
      public/showviewer/panoassets/images/hotspot/icon-old/img_doticon_01.svg
  100. 0 0
      public/showviewer/panoassets/images/hotspot/icon-old/img_doticon_01@2x.png

+ 5 - 0
.browserslistrc

@@ -0,0 +1,5 @@
+> 1%
+last 1 versions
+and_uc 9
+not dead
+not ie 11

+ 8 - 0
.env

@@ -0,0 +1,8 @@
+VUE_APP_STATIC_DIR=showviewer
+VUE_APP_CDN=https://4dkk.4dage.com
+VUE_APP_PROXY_URL_ROOT='https://test.4dkankan.com'
+VUE_APP_PROXY_URL='https://test.4dkankan.com/qjkankan/'
+VUE_APP_URL_FILL=
+
+# 接口请求地址
+VUE_APP_APIS_URL=https://test.4dkankan.com/

+ 9 - 0
.env.eurdev

@@ -0,0 +1,9 @@
+VUE_APP_STATIC_DIR=showviewer
+VUE_APP_CDN=https://eurs3.4dkankan.com
+VUE_APP_PROXY_URL_ROOT='https://eur.4dkankan.com'
+VUE_APP_PROXY_URL='https://eur.4dkankan.com/qjkankan/'
+VUE_APP_URL_FILL=
+
+# 接口请求地址
+VUE_APP_APIS_URL=https://eur.4dkankan.com/
+

+ 10 - 0
.env.eurprod

@@ -0,0 +1,10 @@
+NODE_ENV=production
+VUE_APP_STATIC_DIR=showviewer
+VUE_APP_CDN=https://eurs3.4dkankan.com
+VUE_APP_PROXY_URL_ROOT='https://eur.4dkankan.com'
+VUE_APP_RESOURCE_URL='https://eur.4dkankan.com/panorama/'
+VUE_APP_PROXY_URL='https://eur.4dkankan.com/qjkankan/'
+VUE_APP_URL_FILL=/qjkankan
+# 接口请求地址
+VUE_APP_APIS_URL=https://eur.4dkankan.com/
+VUE_APP_DEBBUG_FLAG=0126-01

+ 10 - 0
.env.eurtestdev

@@ -0,0 +1,10 @@
+VUE_APP_STATIC_DIR=showviewer
+VUE_APP_CDN=https://testeurs3.4dkankan.com
+VUE_APP_PROXY_URL_ROOT='https://testeur.4dkankan.com'
+VUE_APP_RESOURCE_URL='https://testeur.4dkankan.com/panorama/'
+VUE_APP_PROXY_URL='https://testeur.4dkankan.com/qjkankan/'
+VUE_APP_URL_FILL=
+
+# 接口请求地址
+VUE_APP_APIS_URL=https://testeur.4dkankan.com/
+

+ 10 - 0
.env.eurtestprod

@@ -0,0 +1,10 @@
+NODE_ENV=production
+VUE_APP_STATIC_DIR=showviewer
+VUE_APP_CDN=https://testeurs3.4dkankan.com
+VUE_APP_PROXY_URL_ROOT='https://testeur.4dkankan.com'
+VUE_APP_RESOURCE_URL='https://testeur.4dkankan.com/panorama/'
+VUE_APP_PROXY_URL='https://testeur.4dkankan.com/qjkankan/'
+VUE_APP_URL_FILL=/qjkankan
+# 接口请求地址
+VUE_APP_APIS_URL=https://testeur.4dkankan.com/
+VUE_APP_DEBBUG_FLAG=0124-01

+ 11 - 0
.env.prod

@@ -0,0 +1,11 @@
+NODE_ENV=production
+VUE_APP_STATIC_DIR=showviewer
+VUE_APP_CDN=https://4dkk.4dage.com
+VUE_APP_PROXY_URL_ROOT='https://www.4dkankan.com'
+VUE_APP_RESOURCE_URL='https://www.4dkankan.com/panorama/'
+VUE_APP_PROXY_URL='https://www.4dkankan.com/qjkankan/'
+VUE_APP_URL_FILL=/qjkankan
+
+# 接口请求地址
+VUE_APP_APIS_URL=https://www.4dkankan.com/
+VUE_APP_DEBBUG_FLAG=0425

+ 13 - 0
.env.testdev

@@ -0,0 +1,13 @@
+VUE_APP_STATIC_DIR=showviewer
+VUE_APP_CDN=https://ossxiaoan.4dage.com
+VUE_APP_PROXY_URL_ROOT='https://test.4dkankan.com'
+VUE_APP_RESOURCE_URL='https://test.4dkankan.com/panorama/'
+VUE_APP_PROXY_URL='https://test.4dkankan.com/qjkankan/'
+VUE_APP_URL_FILL=
+
+# 接口请求地址
+VUE_APP_APIS_URL=https://test.4dkankan.com/
+VUE_APP_DEBBUG_FLAG=0516-03
+VUE_APP_DEBBUG_NOTIFY=0
+VUE_APP_DEBBUG_V4=1
+VUE_APP_DEBBUG_V4_URL="http://192.168.0.37:8081"

+ 13 - 0
.env.testprod

@@ -0,0 +1,13 @@
+NODE_ENV=production
+VUE_APP_STATIC_DIR=showviewer
+VUE_APP_CDN=https://ossxiaoan.4dage.com
+VUE_APP_PROXY_URL_ROOT='https://test.4dkankan.com'
+VUE_APP_RESOURCE_URL='https://test.4dkankan.com/panorama/'
+VUE_APP_PROXY_URL='https://test.4dkankan.com/qjkankan/'
+VUE_APP_URL_FILL=/qjkankan
+# 接口请求地址
+VUE_APP_APIS_URL=https://test.4dkankan.com/
+VUE_APP_DEBBUG_FLAG=20240412
+VUE_APP_DEBBUG_NOTIFY=0
+VUE_APP_DEBBUG_V4=0
+VUE_APP_DEBBUG_V4_URL="http://192.168.0.186:8081"

+ 10 - 0
.eslintrc.js

@@ -0,0 +1,10 @@
+module.exports = {
+    "env": {
+        "node": true,
+        "es6": true
+    },
+    "parserOptions": {
+        "ecmaVersion": 8,
+        "sourceType": "module"
+    }
+}

+ 23 - 0
.gitignore

@@ -0,0 +1,23 @@
+.DS_Store
+node_modules
+/dist
+/public/data
+
+# 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
README.md

@@ -0,0 +1,24 @@
+# view_page
+
+## 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/).

+ 25 - 0
babel.config.js

@@ -0,0 +1,25 @@
+
+module.exports = {
+
+  presets: [
+    '@vue/cli-plugin-babel/preset',
+    [
+      '@babel/preset-env',
+      {
+        // useBuiltIns: 'entry',
+        useBuiltIns: 'usage',
+        corejs: '3.8.3', // 指定 corejs 的版本,如果package.json没有core-js,还需要另外安装
+        // corejs: 3, // 指定 corejs 的版本,如果package.json没有core-js,还需要另外安装
+        targets: ['chrome 69', 'and_uc 9']
+      }
+    ]
+  ],
+  plugins: [ // 如未用到@babel/plugin-transform-runtime可不配置
+    [
+      "@babel/plugin-transform-runtime",
+      {
+        "corejs": 3 // 指定 runtime-corejs 的版本,目前有 2 3 两个版本
+      }
+    ]
+  ]
+}

+ 19 - 0
jsconfig.json

@@ -0,0 +1,19 @@
+{
+  "compilerOptions": {
+    "target": "es5",
+    "module": "esnext",
+    "baseUrl": "./",
+    "moduleResolution": "node",
+    "paths": {
+      "@/*": [
+        "src/*"
+      ]
+    },
+    "lib": [
+      "esnext",
+      "dom",
+      "dom.iterable",
+      "scripthost"
+    ]
+  }
+}

+ 58 - 0
package.json

@@ -0,0 +1,58 @@
+{
+  "name": "@qjkankan/view",
+  "version": "1.4.0",
+  "private": true,
+  "scripts": {
+    "serve": "vue-cli-service serve --mode testdev",
+    "serve-eurtestdev": "vue-cli-service serve --mode eurtestdev",
+    "serve-eurdev": "vue-cli-service serve --mode eurdev",
+    "build-testprod": "vue-cli-service build --mode testprod",
+    "build-eurtestprod": "vue-cli-service build --mode eurtestprod",
+    "build-eurprod": "vue-cli-service build --mode eurprod",
+    "build-prod": "vue-cli-service build --mode prod",
+    "lint": "vue-cli-service lint"
+  },
+  "dependencies": {
+    "@babel/polyfill": "^7.12.1",
+    "@floating-ui/dom": "^1.0.4",
+    "axios": "^0.27.2",
+    "clipboard": "^2.0.11",
+    "consola": "^3.1.0",
+    "core-js": "^3.8.3",
+    "lodash-es": "^4.17.21",
+    "mitt": "^3.0.0",
+    "photoswipe": "^5.2.2",
+    "swiper": "^9.2.3",
+    "tiny-emitter": "^2.1.0",
+    "vue": "^3.2.13",
+    "vue-i18n": "^9.1.10",
+    "vue-marquee-text-component": "^2.0.1",
+    "vue-toastification": "^2.0.0-rc.5",
+    "vue3-lazyload": "^0.3.6",
+    "vuex": "^4.0.0"
+  },
+  "devDependencies": {
+    "@babel/core": "^7.12.16",
+    "@babel/eslint-parser": "^7.12.16",
+    "@babel/plugin-transform-runtime": "^7.21.4",
+    "@babel/preset-env": "^7.21.5",
+    "@babel/register": "^7.21.0",
+    "@babel/runtime-corejs3": "^7.21.5",
+    "@intlify/vue-i18n-loader": "^4.2.0",
+    "@vue/cli-plugin-babel": "~5.0.0",
+    "@vue/cli-plugin-eslint": "~5.0.0",
+    "@vue/cli-plugin-vuex": "~5.0.0",
+    "@vue/cli-service": "~5.0.0",
+    "eslint": "^7.32.0",
+    "eslint-config-prettier": "^8.3.0",
+    "eslint-plugin-prettier": "^4.0.0",
+    "eslint-plugin-vue": "^8.0.3",
+    "prettier": "^2.4.1",
+    "sass": "^1.26.5",
+    "sass-loader": "^8.0.2",
+    "webpackbar": "^5.0.2"
+  },
+  "browser": {
+    "process": false
+  }
+}

Dosya farkı çok büyük olduğundan ihmal edildi
+ 7653 - 0
pnpm-lock.yaml


BIN
public/favicon.png


+ 53 - 0
public/show.html

@@ -0,0 +1,53 @@
+<!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,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable=no"
+    />
+    <meta name="description" content="" />
+    <meta name="cover" content="" />
+    <!-- <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="<%= VUE_APP_STATIC_DIR %>/lib/iconfontV1.2.0/iconfont.css"
+    /> -->
+
+    <link
+      rel="stylesheet"
+      href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontV1.2.0/iconfont.css"
+    />
+    <link rel="stylesheet" href="//at.alicdn.com/t/c/font_2625385_h1q9uyoxhsd.css"/>
+
+    <link
+      rel="stylesheet"
+      href="<%= VUE_APP_STATIC_DIR %>/lib/swiper/swiper-bundle.min.css"
+    />
+    <link rel="icon" href="./favicon.png" />
+    <meta name="description" content="" />
+    <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/howler/howler.min.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/swiper/swiper-bundle.min.js"></script>
+    <!-- <script src="<%= VUE_APP_STATIC_DIR %>/lib/jssor/jssor.slider-28.1.0.min.js"></script> -->
+  </body>
+</html>

+ 66 - 0
public/showMobile.html

@@ -0,0 +1,66 @@
+<!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"
+    />
+    <meta name="description" content="" />
+    <meta name="cover" content="" />
+
+    <link
+      rel="stylesheet"
+      href="<%= VUE_APP_STATIC_DIR %>/lib/iconfontV1.2.0/iconfont.css"
+    />
+    <link
+      rel="stylesheet"
+      href="//at.alicdn.com/t/c/font_2625385_h1q9uyoxhsd.css"
+    />
+    <!-- <link
+      rel="stylesheet"
+      href="<%= VUE_APP_STATIC_DIR %>/lib/iconfont/iconfont.css"
+    /> -->
+    <!-- <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="<%= VUE_APP_STATIC_DIR %>/lib/iconfontV1.2.0/iconfont.css"
+    /> -->
+    <link
+      rel="stylesheet"
+      href="<%= VUE_APP_STATIC_DIR %>/lib/swiper/swiper-bundle.min.css"
+    />
+    <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
+    <link rel="icon" href="./favicon.png" />
+    <title>-</title>
+    <script src="https://4dkk.4dage.com/v4-test/www/viewer/static/lib/vconsole.js"></script>
+    <!-- <script src="https://4dkk.4dage.com/v4-test/www/viewer/static/lib/vconsole.js"></script>
+    <script>
+      var vConsole = new window.VConsole();
+    </script> -->
+  </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/howler/howler.min.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/lib/swiper/swiper-bundle.min.js"></script>
+    <!-- <script src="<%= VUE_APP_STATIC_DIR %>/lib/jssor/jssor.slider-28.1.0.min.js"></script> -->
+ 
+  </body>
+</html>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 11 - 0
public/showviewer/lib/animate/animate.min.css


Dosya farkı çok büyük olduğundan ihmal edildi
+ 4 - 0
public/showviewer/lib/howler/howler.min.js


+ 539 - 0
public/showviewer/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;
+}

Dosya farkı çok büyük olduğundan ihmal edildi
+ 5161 - 0
public/showviewer/lib/iconfont/demo_index.html


Dosya farkı çok büyük olduğundan ihmal edildi
+ 885 - 0
public/showviewer/lib/iconfont/iconfont.css


BIN
public/showviewer/lib/iconfont/iconfont.eot


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
public/showviewer/lib/iconfont/iconfont.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1528 - 0
public/showviewer/lib/iconfont/iconfont.json


Dosya farkı çok büyük olduğundan ihmal edildi
+ 677 - 0
public/showviewer/lib/iconfont/iconfont.svg


BIN
public/showviewer/lib/iconfont/iconfont.ttf


BIN
public/showviewer/lib/iconfont/iconfont.woff


BIN
public/showviewer/lib/iconfont/iconfont.woff2


+ 539 - 0
public/showviewer/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;
+}

Dosya farkı çok büyük olduğundan ihmal edildi
+ 2787 - 0
public/showviewer/lib/iconfontQJ1.1.0/demo_index.html


+ 467 - 0
public/showviewer/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-help_i: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";
+}
+

Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
public/showviewer/lib/iconfontQJ1.1.0/iconfont.js


+ 800 - 0
public/showviewer/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
public/showviewer/lib/iconfontQJ1.1.0/iconfont.ttf


BIN
public/showviewer/lib/iconfontQJ1.1.0/iconfont.woff


BIN
public/showviewer/lib/iconfontQJ1.1.0/iconfont.woff2


+ 539 - 0
public/showviewer/lib/iconfontV1.2.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;
+}

Dosya farkı çok büyük olduğundan ihmal edildi
+ 3270 - 0
public/showviewer/lib/iconfontV1.2.0/demo_index.html


+ 551 - 0
public/showviewer/lib/iconfontV1.2.0/iconfont.css

@@ -0,0 +1,551 @@
+@font-face {
+  font-family: "iconfont"; /* Project id 2947721 */
+  src: url('iconfont.woff2?t=1668570386938') format('woff2'),
+       url('iconfont.woff?t=1668570386938') format('woff'),
+       url('iconfont.ttf?t=1668570386938') format('truetype');
+}
+
+.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-logo_black:before {
+  content: "\e719";
+}
+
+.icon-logo_white:before {
+  content: "\e71a";
+}
+
+.icon-more:before {
+  content: "\e717";
+}
+
+.icon-collect:before {
+  content: "\e718";
+}
+
+.icon-checkbox-n:before {
+  content: "\e715";
+}
+
+.icon-checkbox-s:before {
+  content: "\e716";
+}
+
+.icon-player_volume01:before {
+  content: "\e710";
+}
+
+.icon-player_volume02:before {
+  content: "\e712";
+}
+
+.icon-player_volume03:before {
+  content: "\e713";
+}
+
+.icon-player_close:before {
+  content: "\e70c";
+}
+
+.icon-material_text:before {
+  content: "\e70d";
+}
+
+.icon-player_playback:before {
+  content: "\e70f";
+}
+
+.icon-player_pause:before {
+  content: "\e711";
+}
+
+.icon-material_reduction:before {
+  content: "\e70e";
+}
+
+.icon-a-help_:before {
+  content: "\e70a";
+}
+
+.icon-eye_on:before {
+  content: "\e6f4";
+}
+
+.icon-eye_off:before {
+  content: "\e6f5";
+}
+
+.icon-show_more_finish:before {
+  content: "\e67a";
+}
+
+.icon-show_more_music:before {
+  content: "\e67c";
+}
+
+.icon-show_more:before {
+  content: "\e67e";
+}
+
+.icon-show_more_vr:before {
+  content: "\e67f";
+}
+
+.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-help_i: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";
+}
+

Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
public/showviewer/lib/iconfontV1.2.0/iconfont.js


+ 947 - 0
public/showviewer/lib/iconfontV1.2.0/iconfont.json

@@ -0,0 +1,947 @@
+{
+  "id": "2947721",
+  "name": "全景看看1.1.0",
+  "font_family": "iconfont",
+  "css_prefix_text": "icon-",
+  "description": "全景看看1.1.0",
+  "glyphs": [
+    {
+      "icon_id": "32366619",
+      "name": "logo_black",
+      "font_class": "logo_black",
+      "unicode": "e719",
+      "unicode_decimal": 59161
+    },
+    {
+      "icon_id": "32366620",
+      "name": "logo_white",
+      "font_class": "logo_white",
+      "unicode": "e71a",
+      "unicode_decimal": 59162
+    },
+    {
+      "icon_id": "32337115",
+      "name": "more",
+      "font_class": "more",
+      "unicode": "e717",
+      "unicode_decimal": 59159
+    },
+    {
+      "icon_id": "32337116",
+      "name": "collect",
+      "font_class": "collect",
+      "unicode": "e718",
+      "unicode_decimal": 59160
+    },
+    {
+      "icon_id": "32290078",
+      "name": "checkbox-n",
+      "font_class": "checkbox-n",
+      "unicode": "e715",
+      "unicode_decimal": 59157
+    },
+    {
+      "icon_id": "32290079",
+      "name": "checkbox-s",
+      "font_class": "checkbox-s",
+      "unicode": "e716",
+      "unicode_decimal": 59158
+    },
+    {
+      "icon_id": "32254769",
+      "name": "player_volume01",
+      "font_class": "player_volume01",
+      "unicode": "e710",
+      "unicode_decimal": 59152
+    },
+    {
+      "icon_id": "32254770",
+      "name": "player_volume02",
+      "font_class": "player_volume02",
+      "unicode": "e712",
+      "unicode_decimal": 59154
+    },
+    {
+      "icon_id": "32254771",
+      "name": "player_volume03",
+      "font_class": "player_volume03",
+      "unicode": "e713",
+      "unicode_decimal": 59155
+    },
+    {
+      "icon_id": "32251669",
+      "name": "player_close",
+      "font_class": "player_close",
+      "unicode": "e70c",
+      "unicode_decimal": 59148
+    },
+    {
+      "icon_id": "32251670",
+      "name": "material_text",
+      "font_class": "material_text",
+      "unicode": "e70d",
+      "unicode_decimal": 59149
+    },
+    {
+      "icon_id": "32251671",
+      "name": "player_playback",
+      "font_class": "player_playback",
+      "unicode": "e70f",
+      "unicode_decimal": 59151
+    },
+    {
+      "icon_id": "32251673",
+      "name": "player_pause",
+      "font_class": "player_pause",
+      "unicode": "e711",
+      "unicode_decimal": 59153
+    },
+    {
+      "icon_id": "32250353",
+      "name": "material_reduction",
+      "font_class": "material_reduction",
+      "unicode": "e70e",
+      "unicode_decimal": 59150
+    },
+    {
+      "icon_id": "32250052",
+      "name": "help_?",
+      "font_class": "a-help_",
+      "unicode": "e70a",
+      "unicode_decimal": 59146
+    },
+    {
+      "icon_id": "30581503",
+      "name": "eye_on",
+      "font_class": "eye_on",
+      "unicode": "e6f4",
+      "unicode_decimal": 59124
+    },
+    {
+      "icon_id": "30581504",
+      "name": "eye_off",
+      "font_class": "eye_off",
+      "unicode": "e6f5",
+      "unicode_decimal": 59125
+    },
+    {
+      "icon_id": "19543927",
+      "name": "show_more_finish",
+      "font_class": "show_more_finish",
+      "unicode": "e67a",
+      "unicode_decimal": 59002
+    },
+    {
+      "icon_id": "19543929",
+      "name": "show_more_music",
+      "font_class": "show_more_music",
+      "unicode": "e67c",
+      "unicode_decimal": 59004
+    },
+    {
+      "icon_id": "19543931",
+      "name": "show_more",
+      "font_class": "show_more",
+      "unicode": "e67e",
+      "unicode_decimal": 59006
+    },
+    {
+      "icon_id": "19543932",
+      "name": "show_more_vr",
+      "font_class": "show_more_vr",
+      "unicode": "e67f",
+      "unicode_decimal": 59007
+    },
+    {
+      "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
public/showviewer/lib/iconfontV1.2.0/iconfont.ttf


BIN
public/showviewer/lib/iconfontV1.2.0/iconfont.woff


BIN
public/showviewer/lib/iconfontV1.2.0/iconfont.woff2


Dosya farkı çok büyük olduğundan ihmal edildi
+ 193 - 0
public/showviewer/lib/iconfontVR/iconfont.css


BIN
public/showviewer/lib/iconfontVR/iconfont.eot


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
public/showviewer/lib/iconfontVR/iconfont.js


+ 317 - 0
public/showviewer/lib/iconfontVR/iconfont.json

@@ -0,0 +1,317 @@
+{
+  "id": "2410347",
+  "name": "四维·全景看看",
+  "font_family": "iconfont",
+  "css_prefix_text": "icon",
+  "description": "",
+  "glyphs": [
+    {
+      "icon_id": "20335636",
+      "name": "list_views",
+      "font_class": "list_views",
+      "unicode": "e777",
+      "unicode_decimal": 59255
+    },
+    {
+      "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": "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
+    }
+  ]
+}

Dosya farkı çok büyük olduğundan ihmal edildi
+ 158 - 0
public/showviewer/lib/iconfontVR/iconfont.svg


BIN
public/showviewer/lib/iconfontVR/iconfont.ttf


BIN
public/showviewer/lib/iconfontVR/iconfont.woff


BIN
public/showviewer/lib/iconfontVR/iconfont.woff2


Dosya farkı çok büyük olduğundan ihmal edildi
+ 4 - 0
public/showviewer/lib/jquery-2.1.1.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 5 - 0
public/showviewer/lib/jssor/jssor.slider-28.1.0.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 12 - 0
public/showviewer/lib/krpano/js/tour.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 5 - 0
public/showviewer/lib/krpano/plugins/bingmaps.js


+ 493 - 0
public/showviewer/lib/krpano/plugins/combobox.xml

@@ -0,0 +1,493 @@
+<krpano>
+
+	<!--
+		combobox.xml Plugin - krpano 1.19-pr13
+
+		- This plugin converts <combobox> elements in the current xml
+		  into <layer> container, scrollarea and textfield elements.
+		- Additionally it's also possible to add and remove combobox
+		  elements also dynamically.
+		- The full xml implementation allows many ways of customizing
+		  for own needs - custom designs/styles, custom functionality.
+		- The plugin works automatically the same for HTML5 and Flash.
+		- It's possible to use this plugin as replacement for the old
+		  combobox.swf/combobox.js plugins, the action interfaces are
+		  the same.
+
+
+		Syntax for Static XML Code:
+
+			<combobox name="..." design="..." ...any layer settings...>
+				<item name="..." caption="..." onclick="..." />
+				<item name="..." caption="..." onclick="..." />
+			</combobox>
+
+		Syntax for Dynamic XML Code:
+
+		 - Global Actions:
+
+			addComboboxLayer(cbname, design*)
+			removeComboboxLayer(cbname);
+
+		 - Combobox Layer Actions:
+
+			layer[cbname].addItem(caption, onclick)
+			layer[cbname].addNamedItem(name, caption, onclick)
+			layer[cbname].addIdItem(name, caption, onclick);       same as addNamedItem (for combobox.js compatibility)
+			layer[cbname].selectItem(caption)
+			layer[cbname].selectItemByName(name_or_index)
+			layer[cbname].selectIdItem(name_or_index)              same as selectItemByName (for combobox.js compatibility)
+			layer[cbname].removeAll()
+			layer[cbname].openList()
+			layer[cbname].closeList()
+
+		 - Events/Callbacks:
+
+			layer[cbname].onChange
+
+		- Combobox Layer Attributes:
+
+			layer[cbname].item              - krpano Array of the items
+			layer[cbname].selecteditemindex - current selected item index
+	-->
+
+	<!-- path to the scrollarea plugin -->
+	<combobox_scrollareaplugin
+		url.html5="%SWFPATH%/plugins/scrollarea.js"
+		url.flash="%SWFPATH%/plugins/scrollarea.swf"
+		/>
+
+	<!-- core internal layer styles -->
+	<style name="combobox_container_style" type="container" maskchildren="true" bgcapture="true" visible="false" onclick="combobox_onclick_event();" mergedalpha="false" alpha="1.0" />
+	<style name="combobox_marker_style" type="text" align="righttop" edge="center" html="▼" havemarkersize="false" onautosized="set(havemarkersize,true);" mergedalpha="false" alpha="1.0" />
+	<style name="combobox_item_style" type="text" wordwrap="false" vcenter="true" align="lefttop" onover="if(!combbox_item_pressed,onoveritem());asyncloop(hovering,,if(!combbox_item_pressed,onoutitem()));" ondown="onoveritem(); set(combbox_item_pressed,true);" onup="onoutitem(); set(combbox_item_pressed,false);" onoveritem="set(bg,true);" onoutitem="set(bg,false);" mergedalpha="false" alpha="1.0" />
+
+	<!-- several pre-defined designs -->
+	<combobox_design name="default" margin="2" open_close_speed="0.25">
+		<!-- default design - white box with black text and blue selection -->
+		<style name="combobox_container_style" bgalpha="1.0" bgcolor="0xFFFFFF" bgborder="1 0xFFFFFF 0.5" bgroundedge="1" bgshadow="0 1 3 0x000000 1.0" />
+		<style name="combobox_marker_style" css="color:#FFFFFF;" bg="false" txtshadow="0 0 2 0x000000 1" />
+		<style name="combobox_item_style" css="color:#222222;" padding="4 4" bg="false" bgcolor="0xC7E4FC" bgalpha="1.0" bgroundedge="1" txtshadow="0 0 1 0xFFFFFF 1.0" />
+	</combobox_design>
+
+	<combobox_design name="vtour" margin="4" open_close_speed="0.25">
+		<!-- default vtourskin.xml design -->
+		<style name="combobox_container_style" bgalpha="0.8" bgcolor="0x2D3E50" bgborder="0" bgroundedge="1" bgshadow="0 4 10 0x000000 0.3" />
+		<style name="combobox_marker_style" css="color:#FFFFFF;" bg="false" txtshadow="0 0 2 0x000000 1" />
+		<style name="combobox_item_style" css="color:#FFFFFF;" padding="4 4" bg="false" bgcolor="0xFFFFFF" bgalpha="0.5" bgroundedge="0" txtshadow="0 0 2 0x000000 1" />
+	</combobox_design>
+
+
+	<!-- internal events -->
+	<events name="combobox_xml_plugin_events" keep="true"
+	        onxmlcomplete="combobox_parse_xml_elements();"
+	        onresize="combobox_closelist();"
+	        />
+
+
+	<!-- krpano version check -->
+	<action name="combobox_versioncheck" autorun="preinit">
+		if(build LT '2017-09-13',
+			error('combobox.xml - too old krpano version!');
+			set(events[combobox_xml_plugin_events].name, null);
+			set(action[addComboboxLayer].content, '');
+			set(action[removeComboboxLayer].content, '');
+		);
+	</action>
+
+
+	<!-- convert all <combobox> elements to layers -->
+	<action name="combobox_parse_xml_elements" scope="local">
+		if(global.combobox,
+			def(i, integer, 0);
+			def(cnt, integer, get(global.combobox.count));
+			copy(combobox_src, global.combobox);
+			delete(global.combobox);
+			if(cnt GT 0, loop(i LT cnt,
+				copy(cb, combobox_src[get(i)]);
+				if(cb AND cb.name AND cb.parsed != true,
+					set(cb.parsed, true);
+					addComboboxLayer(get(cb.name), get(cb.design));
+					copy(ly, layer[get(cb.name)]);
+					copyattributes(get(ly), get(cb));
+					set(ly.keep, true);
+					def(item_cnt, integer, get(cb.item.count));
+					if(item_cnt GT 0,
+						def(item_i, integer, 0);
+						loop(item_i LT  item_cnt,
+							combobox_additem(get(ly.name), get(cb.item[get(item_i)].name), get(cb.item[get(item_i)].caption), get(cb.item[get(item_i)].onclick));
+							inc(item_i);
+						);
+					);
+				);
+				inc(i);
+			));
+		);
+	</action>
+
+
+	<!-- dynamically add a combobox layer -->
+	<action name="addComboboxLayer" scope="local" args="cbname, design">
+		<!-- create the layer -->
+		addlayer(get(cbname));
+		copy(cb, layer[get(cbname)]);
+		set(cb.keep, true);
+		
+		<!-- copy the design settings (or set defaults) -->
+		if(!combobox_design[get(design)].name, set(design,'default'));
+		copy(cb.cbdesign, combobox_design[get(design)]);
+		calc(cb.margin, cb.cbdesign.margin !== null ? cb.cbdesign.margin : 2);
+		calc(cb.open_close_speed, cb.cbdesign.open_close_speed !== null ? cb.cbdesign.open_close_speed : 0.25);
+		<!-- load the styles and copy the design style settings -->
+		cb.loadstyle(combobox_container_style);
+		copyattributes(get(cb), get(cb.cbdesign.style[combobox_container_style]));
+
+		<!-- add/build/map actions -->
+		calc(cb.addItem,          'combobox_additem(' + cbname + ', null, "%%1", "%%2");');
+		calc(cb.addNamedItem,     'combobox_additem(' + cbname + ', "%%1", "%%2", "%%3");');
+		calc(cb.addIdItem,        'combobox_additem(' + cbname + ', "%%1", "%%2", "%%3");');
+		calc(cb.selectItem,       'combobox_finditem(' + cbname + ', "%%1", __cb_fi); if(__cb_fi GE 0, combobox_selectitem(' + cbname + ', get(__cb_fi))); delete(__cb_fi);');
+		calc(cb.selectItemByName, 'combobox_selectitem(' + cbname + ', "%%1");');
+		calc(cb.selectIdItem,     'combobox_selectitem(' + cbname + ', "%%1");');
+		calc(cb.removeAll,        'combobox_removeitems(' + cbname + ');');
+		calc(cb.openList,         'combobox_openlist(' + cbname + ');');
+		calc(cb.closeList,        'combobox_closelist(' + cbname + ');');
+
+		<!-- create sub-layers -->
+		def(saname, string, 'combobox_%1_scrollarea');
+		addlayer(get(saname));
+		copy(sa, layer[get(saname)]);
+		copy(sa.parent, cbname);
+		copy(sa.url, combobox_scrollareaplugin.url);
+		copy(sa.keep, true);
+		copy(sa.align, lefttop);
+		set(sa.direction, v);
+		set(sa.enabled, false);
+		set(sa.width, 100%);
+		set(sa.height, 100%);
+		copy(cb.scrollarea, sa);
+
+		def(mkname, string, 'combobox_%1_marker');
+		addlayer(get(mkname));
+		copy(mk, layer[get(mkname)]);
+		copy(mk.parent, saname);
+		copy(mk.keep, true);
+		mk.loadstyle(combobox_marker_style);
+		copyattributes(get(mk), get(cb.cbdesign.style[combobox_marker_style]));
+		copy(cb.marker, mk);
+
+		<!-- item data array -->
+		cb.createarray('item');
+
+		<!-- item autosizing information -->
+		set(cb.autosize_i, 0);
+		set(cb.autosize_cnt, 0);
+		set(cb.autosize_max_w, 0);
+		set(cb.autosize_max_h, 0);
+
+		set(cb.lastselecteditemindex, 0);
+		set(cb.selecteditemindex, 0);
+	</action>
+
+
+	<!-- dynamically remove a combobox element -->
+	<action name="removeComboboxLayer" scope="local" args="cbname">
+		if(layer[get(cbname)],
+			copy(cb, layer[get(cbname)]);
+			if(cb === global.openedcombobox, delete(global.openedcombobox));
+			if(cb,
+				removelayer(get(cbname), true);
+			);
+		);
+	</action>
+
+
+	<!-- default onclick event for combobox elements: open the list -->
+	<action name="combobox_onclick_event">
+		combobox_openlist(get(name));
+	</action>
+
+
+	<!-- dynamically add items -->
+	<action name="combobox_additem" scope="local" args="cbname, itemname, itemcaption, itemonclick">
+		copy(cb, layer[get(cbname)]);
+
+		<!-- when no item name is set, generate an automatic one -->
+		if(itemname === null, calc(itemname, 'autoname_' + cb.item.count); );
+
+		<!-- save the item caption and onclick event -->
+		copy(cb.item[get(itemname)].caption, itemcaption);
+		copy(cb.item[get(itemname)].onclick, itemonclick);
+
+		inc(cb.autosize_cnt);
+
+		<!-- create the item layer/textfield -->
+		calc(itemlayername, 'comboboxitem_' + cbname + '_' + itemname);
+		addlayer(get(itemlayername));
+		copy(li, layer[get(itemlayername)]);
+		li.loadstyle(combobox_item_style);
+		copyattributes(get(li), get(cb.cbdesign.style[combobox_item_style]));
+		copy(li.parent, cb.scrollarea.name);
+		copy(li.keep, true);
+		copy(li.cblayername, cb.name);
+		copy(li.itemname, itemname);
+		copy(li.html, itemcaption);
+		set(li.onautosized, delayedcall(0,combobox_item_autosize_update()) );
+		set(li.onclick, combobox_item_onclick() );
+
+		copy(cb.item[get(itemname)].itemlayername, itemlayername);
+	</action>
+
+
+	<!-- onautosized callback from the item textfield -->
+	<action name="combobox_item_autosize_update" scope="local">
+		copy(cb, layer[get(caller.cblayername)]);
+		inc(cb.autosize_i);
+		Math.max(cb.autosize_max_w, caller.width);
+		Math.max(cb.autosize_max_h, caller.height);
+		if(cb.autosize_i == cb.autosize_cnt, combobox_align_items(get(cb.name)); );
+	</action>
+
+
+	<!-- align the image and set the combobox size -->
+	<action name="combobox_align_items" scope="local" args="cbname">
+		copy(cb, layer[get(cbname)]);
+		if(cb.marker.havemarkersize == false OR cb.scrollarea.loaded == false,
+			<!-- wait until everything is ready -->
+			delayedcall(calc(cb.name + '_waitformarkersize'), 0.01, combobox_align_items(get(cbname)) );
+		  ,
+			<!-- set the item positions and the combobox size -->
+			if(global.openedcombobox === cb, combobox_closelist() );
+			copy(sa, cb.scrollarea);
+			calc(itemwidth, cb.margin GT 0 ? -2 * cb.margin : '100%');
+			copy(mk_w, cb.marker.width);
+			copy(item_cnt, cb.autosize_cnt);
+
+			for(def(item_i, integer, 0), item_i LT item_cnt, inc(item_i),
+				copy(li, layer[get(cb.item[get(item_i)].itemlayername)]);
+				set(li.x, get(cb.margin));
+				copy(li.width, itemwidth);
+				copy(li.height, cb.autosize_max_h);
+				calc(li.y, cb.margin + item_i * (cb.autosize_max_h + cb.margin));
+			);
+
+			if(cb.width == null OR cb.width == cb.lastautosizedwidth,
+				<!-- no combobox width (or an autosized width) set - set the largest item width -->
+				calc(cb.width, cb.margin + cb.autosize_max_w + 2 + mk_w + cb.margin);
+				copy(cb.lastautosizedwidth, cb.width);
+			);
+
+			calc(cb.height, 2*cb.margin + cb.autosize_max_h);
+			calc(sa.height, cb.margin + item_cnt*(cb.margin+cb.autosize_max_h));
+			calc(sa.y, -(cb.selecteditemindex * (cb.autosize_max_h + cb.margin)));
+			calc(cb.marker.x, cb.margin + mk_w/2);
+			tween(layer[get(cb.name)].marker.y, calc(cb.margin + cb.selecteditemindex*(cb.autosize_max_h + cb.margin) + cb.autosize_max_h/2), 0.1);
+
+			<!-- when all is done, show the combobox -->
+			delayedcall(0.1, set(layer[get(cb.name)].visible,true); );
+		);
+	</action>
+
+
+	<!-- default onclick event for items: select the current item, close the list and call the item onclick event -->
+	<action name="combobox_item_onclick" scope="local">
+		copy(cb, layer[get(caller.cblayername)]);
+		copy(itemname, caller.itemname);
+		combobox_selectitem(get(cb.name), get(itemname));
+
+		if(global.openedcombobox === cb, combobox_closelist() );
+
+		if(cb.item[get(itemname)].onclick,
+			<!-- call the onclick event after the combobox has closed -->
+			delayedcall(get(cb.open_close_speed),
+				copy(cb.curitem, cb.item[get(itemname)]);
+				callwith(cb,
+					cb.item[get(itemname)].onclick();
+				);
+			);
+		);
+	</action>
+
+
+	<!-- select an item -->
+	<action name="combobox_selectitem" scope="local" args="cbname, itemname">
+		if(global.combbox_item_pressed != true,
+			copy(cb, layer[get(cbname)]);
+			copy(cb.lastselecteditemindex, cb.selecteditemindex);
+			copy(cb.selecteditemindex, cb.item[get(itemname)].index);
+			<!-- call onchange event on selection change -->
+			if(cb.lastselecteditemindex != cb.selecteditemindex AND cb.onchange,
+				callwith(cb, onchange() );
+			);
+			if(global.openedcombobox === cb,
+				<!-- when opened, just close to the selected item -->
+				combobox_closelist();
+			  ,
+				if(layer[get(cbname)].scrollarea.loaded,
+					layer[get(cbname)].scrollarea.stopscrolling();
+					calc(offset, cb.selecteditemindex*(cb.autosize_max_h + cb.margin));
+					tween(layer[get(cbname)].marker.y, calc(cb.margin + offset + cb.autosize_max_h/2), 0);
+					tween(layer[get(cbname)].scrollarea.y, calc(-offset), 0, default, layer[get(cbname)].scrollarea.update(); );
+				);
+			);
+		);
+	</action>
+
+
+	<!-- find an item by its caption, the global variable defined in 'returnvariable' will contain the index  -->
+	<action name="combobox_finditem" scope="local" args="cbname, itemcaption, returnvariable">
+		copy(cb, layer[get(cbname)]);
+		copy(item_cnt, cb.item.count);
+		set(calc('global.' + returnvariable), -1);
+		for(def(item_i, integer, 0), item_i LT  item_cnt, inc(item_i),
+			if(cb.item[get(item_i)].caption == itemcaption,
+				copy(calc('global.' + returnvariable), item_i);
+				copy(item_i, item_cnt);
+			);
+		);
+	</action>
+
+
+	<!-- remove all items (to be able to add new ones) -->
+	<action name="combobox_removeitems" scope="local" args="cbname">
+		copy(cb, layer[get(cbname)]);
+		if(global.openedcombobox === cb, combobox_closelist() );
+
+		<!-- remove all item layers -->
+		calc(item_i, cb.item.count - 1);
+		loop(item_i GE 0,
+			removelayer(get(cb.item[get(item_i)].itemlayername));
+			dec(item_i);
+		);
+
+		<!-- reset the item information -->
+		set(cb.item.count, 0);
+		set(cb.autosize_i,0);
+		set(cb.autosize_cnt, 0);
+		set(cb.autosize_max_w, 0);
+		set(cb.autosize_max_h, 0);
+		set(cb.selecteditemindex, 0);
+		set(cb.lastselecteditemindex, 0);
+		if(cb.width == cb.lastautosizedwidth, set(cb.width, null));
+	</action>
+
+
+	<!-- open the combobox list -->
+	<action name="combobox_openlist" scope="local" args="cbname">
+		<!-- if another combobox is already open, close that one first -->
+		if(global.openedcombobox !== null, combobox_closelist() );
+
+		copy(cb, layer[get(cbname)]);
+		copy(global.openedcombobox, cb);
+
+		<!-- find the available screen space above or below the combobox -->
+		calc(cbheight, 2*cb.margin + cb.autosize_max_h);
+		set(lx1, 0);
+		set(ly1, 0);
+		copy(lx2, cb.pixelwidth);
+		copy(ly2, cbheight);
+		layertoscreen(get(cbname), lx1,ly1, lx1,ly1);
+		layertoscreen(get(cbname), lx2,ly2, lx2,ly2);
+		calc(space_above, ly1 - area.pixely);
+		calc(space_below, area.pixelheight - (ly2 - area.pixely));
+
+		<!-- the required space for full opening: -->
+		calc(openheight, cb.margin + cb.autosize_cnt*(cb.margin+cb.autosize_max_h) );
+
+		<!-- vertical centered alignment? -->
+		calc(cb_edge, cb.edge ? cb.edge : cb.align);
+		calc(iscentered, cb_edge == 'left' OR cb_edge == 'center' OR cb_edge == 'right');
+		if(iscentered,
+			calc(openheight_max, space_above + space_below);
+		  ,
+			Math.max(openheight_max, space_above, space_below);
+		);
+
+		<!-- limit the height to the available space (minus some margin) -->
+		Math.min(openheight, calc(openheight_max + cbheight - 20));
+
+		<!-- need vertical offset? (depending on the available space and the align/edge setting) -->
+		set(yoffset, null);
+		calc(top_overflow, -ly1 + area.pixely + openheight/2);
+		calc(bottom_overflow, ly2 - area.pixely + openheight/2 - area.pixelheight);
+		if(cb.parent,
+			<!-- no vertical offset inside other layers, do only a height clipping -->
+			Math.max(max_overflow, top_overflow, bottom_overflow, 0);
+			sub(openheight, max_overflow);
+		  ,
+			if(iscentered,
+				if(openheight GE (area.pixelheight - 20),
+					set(yoffset,0);
+				  ,
+					if(top_overflow GT 0, calc(yoffset, cb.y + top_overflow); );
+					if(bottom_overflow GT 0, calc(yoffset, cb.y - bottom_overflow); );
+				);
+			,
+				indexoftxt(isbottomalign, get(cb_edge), 'bottom');
+				if(space_above GT space_below,
+					if(isbottomalign LT 0, calc(yoffset, cb.y - openheight + cbheight); );
+				  ,
+					if(isbottomalign GE 0, calc(yoffset, cb.y - openheight + cbheight); );
+				);
+			);
+		);
+		if(yoffset != null,
+			copy(cb.ybackup, cb.y);
+			tween(layer[get(cbname)].y, calc(yoffset), get(cb.open_close_speed));
+		);
+
+		<!-- center the opened list at the selected item -->
+		calc(centeritem_y, -1 * (cb.margin + cb.selecteditemindex*(cb.margin+cb.autosize_max_h) + cb.autosize_max_h/2 - openheight/2));
+		clamp(centeritem_y, calc(openheight - cb.scrollarea.height), 0);
+
+		<!-- apply the changes now -->
+		tween(layer[get(cbname)].height, get(openheight), get(cb.open_close_speed));
+		tween(layer[get(cbname)].scrollarea.y, get(centeritem_y), get(cb.open_close_speed), default, layer[get(cbname)].scrollarea.update(); );
+
+		<!-- special html5/flash case:
+			 rotating textfields (the marker symbol here) are not possible in
+			 flash (a flashplayer limitation), so use a rotated symbol instead.
+		-->
+		if(device.html5,
+			tween(layer[get(cbname)].marker.rotate, 90, get(cb.open_close_speed));
+		  ,
+			set(layer[get(cbname)].marker.html, '◀');
+		);
+
+		<!-- enable the scrollarea to allow the user to drag it -->
+		set(cb.scrollarea.enabled, true);
+
+		<!-- install a global onmousedown event to close the list when clicking at the pano -->
+		set(events[combobox_xml_plugin_events].onmousedown, combobox_closelist() );
+	</action>
+
+
+	<!-- close the current open list -->
+	<action name="combobox_closelist" scope="local">
+		if(global.openedcombobox !== null,
+			copy(cb, global.openedcombobox);
+			delete(global.openedcombobox);
+			
+			<!-- clear the global onmousedown event -->
+			set(events[combobox_xml_plugin_events].onmousedown, null);
+
+			<!-- disable the dragging -->
+			set(cb.scrollarea.enabled, false);
+
+			<!-- closing animations -->
+			calc(offset, cb.selecteditemindex*(cb.autosize_max_h + cb.margin));
+			if(cb.ybackup !== null, tween(cb.y, get(cb.ybackup), get(cb.open_close_speed)));
+			layer[get(cb.name)].scrollarea.stopscrolling();
+			tween(layer[get(cb.name)].height, calc(2*cb.margin + cb.autosize_max_h), get(cb.open_close_speed));
+			tween(layer[get(cb.name)].scrollarea.y, calc(-offset), get(cb.open_close_speed), default, layer[get(cb.name)].scrollarea.update(); );
+			tween(layer[get(cb.name)].marker.y, calc(cb.margin + offset + cb.autosize_max_h/2), get(cb.open_close_speed));
+			<!-- special html5/flash case: rotate marker or change symbol -->
+			if(device.html5,
+				tween(layer[get(cb.name)].marker.rotate, 0, get(cb.open_close_speed));
+			  ,
+				set(layer[get(cb.name)].marker.html, '▼');
+			);
+		);
+	</action>
+
+</krpano>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 5 - 0
public/showviewer/lib/krpano/plugins/googlemaps.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 5 - 0
public/showviewer/lib/krpano/plugins/gyro2.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 19 - 0
public/showviewer/lib/krpano/plugins/scrollarea.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 5 - 0
public/showviewer/lib/krpano/plugins/soundinterface.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 5 - 0
public/showviewer/lib/krpano/plugins/videoplayer.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 5 - 0
public/showviewer/lib/krpano/plugins/webvr.js


+ 881 - 0
public/showviewer/lib/krpano/plugins/webvr.xml

@@ -0,0 +1,881 @@
+<krpano>
+
+	<!-- load the WebVR plugin and assign it to a 'webvr' variable for easier usage -->
+	<plugin name="WebVR" devices="html5" keep="true"
+	        url="webvr.js"
+	        onloaded="copy(webvr, plugin[WebVR]);"
+	        mousespeed="0.00125"
+	        multireslock="true"
+	        mobilevr_support="true"
+	        mobilevr_ipd="63.5"
+	        mobilevr_screensize="auto"
+	        mobilevr_lens_overlap="1.0"
+	        mobilevr_lens_fov="96"
+	        mobilevr_lens_dist="0.6"
+	        mobilevr_lens_dist2="1|0|0|0"
+	        mobilevr_lens_ca="0.0"
+	        mobilevr_lens_vign="100"
+	        mobilevr_webvr_dist="false"
+	        mobilevr_wakelock="true"
+	        mobilevr_sensor_mode="3"
+	        mobilevr_autocalibration="false"
+	        mobilevr_touch_support="false"
+	        mobilevr_fake_support="false"
+	        vr_cursor="hotspot[vr_cursor]"
+	        vr_cursor_enabled="true"
+	        vr_cursor_onover="if(handcursor, tween(hotspot[vr_cursor].scale,0.4,0.1); vr_auto_click(get(vr_timeout)); );"
+	        vr_cursor_onout="tween(hotspot[vr_cursor].scale,0.3,0.1);"
+	        onavailable="webvr_onavailable();"
+	        onunavailable=""
+	        onunknowndevice="set(ask_user_for_screensize,true);"
+	        onentervr="webvr_onentervr();"
+	        onexitvr="webvr_onexitvr();"
+	        />
+
+	
+	<!-- a custom xml data structure with the supported VR headsets -->
+	<vrheadsets>
+		<headset name="cb1" caption="Cardboard A"   overlap="1.10" fov="96.0"  dist="1.00" dist2="1|0|0|0" ca="0.000" vig="100" />
+		<headset name="cb2" caption="Cardboard B"   overlap="1.00" fov="96.0"  dist="0.60" dist2="1|0|0|0" ca="0.000" vig="100" />
+		<headset name="gvr" caption="GearVR"        overlap="1.00" fov="112.0" dist="0.95" dist2="1|0|0|0" ca="0.090" vig="100" />
+		<headset name="hom" caption="HOMiDO"        overlap="1.00" fov="101.0" dist="1.10" dist2="1|0|0|0" ca="0.075" vig="100" />
+		<headset name="one" caption="VR ONE"        overlap="1.00" fov="109.9" dist="0.00" dist2="1.139|0.093|0.018|0.207" ca="0.090" vig="35" />
+		<headset name="ccr" caption="ColorCross VR" overlap="1.00" fov="70.0"  dist="0.65" dist2="1|0|0|0" ca="0.000" vig="100" />
+		<headset name="nod" caption="No Distortion" overlap="1.00" fov="96.0"  dist="0.00" dist2="1|0|0|0" ca="0.000" vig="100" />
+	</vrheadsets>
+
+
+	<!-- the VR cursor hotspot -->
+	<hotspot name="vr_cursor" keep="true"
+	         url="webvr_cursor_80x80_17f.png"
+	         visible="false"
+	         enabled="false"
+	         distorted="true"
+	         crop="0|0|80|80"
+	         scale="0.3"
+	         depth="1000"
+	         />
+
+
+	<!-- vr_auto_click() - call this action in the onover event of a
+	     hotspot to trigger automatically a click after some time.  -->
+	<action name="vr_auto_click">
+		if(webvr.isenabled,
+			if(%1 != null, set(vr_aclk_timeout, %1), set(vr_aclk_timeout, 2000));
+			copy(vr_aclk_t1, timertick);
+			set(vr_aclk_waiting, true);
+			set(hotspot[vr_cursor].crop,'0|0|80|80');
+
+			asyncloop(vr_aclk_waiting,
+				sub(dt, timertick,vr_aclk_t1);
+
+				if(!hovering,
+					set(vr_aclk_waiting, false);
+					set(hotspot[vr_cursor].crop,'0|0|80|80');
+				  ,
+					div(f, dt, vr_aclk_timeout);
+					mul(f, 16);
+					roundval(f);
+					Math.min(f, 16);
+					mul(f, 80);
+
+					txtadd(hotspot[vr_cursor].crop,get(f),'|0|80|80');
+
+					<!-- wait another 100ms delay after finishing the animation before doing the click -->
+					sub(dt, 100);
+					if(dt GT vr_aclk_timeout,
+						set(vr_aclk_waiting,false);
+						set(hotspot[vr_cursor].crop,'0|0|80|80');
+						<!-- call onclick -->
+						onclick();
+					  );
+				  );
+				);
+		  );
+	</action>
+
+
+	<!-- by pressing SPACE the Oculus Rift could be re-centered -->
+	<events name="webvr_events" devices="html5" keep="true"
+	        onkeydown="if(keycode==32, webvr.resetSensor(0) );"
+	        onmousedown="if(webvr AND webvr.isenabled, webvr_showbuttons() );"
+	        />
+
+
+	<!-- when WebVR support is available show an EnterVR button -->
+	<action name="webvr_onavailable">
+
+		delayedcall(0.5, tween(layer[webvr_enterbutton].alpha,1.0); );
+	</action>
+
+
+	<action name="webvr_onentervr">
+		trace('vr-in');
+		tween(layer[webvr_enterbutton].alpha,0,0);
+
+		webvr_showbuttons();
+		webvr_hide_all_non_vr_layers();
+
+		<!-- when the screen size is unknown an no custom size is set, open the setup screen on entering the VR mode -->
+		if(webvr.ismobilevr == true AND !webvr.isfake AND ask_user_for_screensize == true AND webvr.mobilevr_screensize == 'auto',
+			set(ask_user_for_screensize, false);
+			<!-- vr_setup(); -->
+		  );
+		if(webvr.isfake,
+			webvr_show_fakemode_info(true);
+		  );
+	</action>
+
+
+	<action name="webvr_onexitvr">
+		trace('vr-out');
+		stopdelayedcall(vr_button_fadeout);
+
+		tween(layer[webvr_enterbutton].alpha,1);
+		tween(layer[webvr_exitbutton].alpha,0);
+		<!-- tween(layer[webvr_setupbutton].alpha,0); -->
+		
+		webvr_show_fakemode_info(false);
+		webvr_restore_layers();
+		js(window.onExitVrStatus);
+	</action>
+
+
+	<action name="webvr_hide_all_non_vr_layers">
+		for(set(i,0), i LT layer.count, inc(i),
+			copy(lr, layer[get(i)]);
+			if(lr.vr !== true,
+				copy(lr.vr_backup_visible, lr.visible);
+				set(lr.visible, false);
+			  );
+		  );
+		for(set(i,0), i LT hotspot.count, inc(i),
+			copy(lh, hotspot[get(i)]);
+			if(lh.vr !== true,
+				copy(lh.vr_backup_visible, lh.visible);
+				set(lh.visible, false);
+			  );
+		  );
+	</action>
+
+	<action name="webvr_restore_layers">
+		for(set(i,0), i LT layer.count, inc(i),
+			copy(lr, layer[get(i)]);
+			if(lr.vr_backup_visible,
+				copy(lr.visible, lr.vr_backup_visible);
+				delete(lr.vr_backup_visible);
+			  );
+		  );
+		for(set(i,0), i LT hotspot.count, inc(i),
+			copy(lh, hotspot[get(i)]);
+			if(lh.vr_backup_visible,
+				copy(lh.visible, lh.vr_backup_visible);
+				delete(lh.vr_backup_visible);
+			  );
+		  );
+	</action>
+	
+	<action name="webvr_show_fakemode_info">
+		if('%1' == 'true',
+			addlayer(webvr_fakemode_info);
+			set(layer[webvr_fakemode_info].url, '%SWFPATH%/plugins/textfield.swf');
+			set(layer[webvr_fakemode_info].keep, true);
+			set(layer[webvr_fakemode_info].align, 'bottom');
+			set(layer[webvr_fakemode_info].y, 80);
+			set(layer[webvr_fakemode_info].background, false);
+			set(layer[webvr_fakemode_info].css, 'color:#FFFFFF;text-align:center;');
+			set(layer[webvr_fakemode_info].html, '');
+		  ,
+			removelayer(webvr_fakemode_info);
+		  );
+	</action>
+	
+	
+	<!-- ensure the same scaling on mobiles (regardless if mobilescale is 0.5 or 1.0) -->
+	<krpano webvr_setup_scale="calc:(1.0 + 1.0*(device.mobile AND stagescale LT 1.0)) / (1.0 + 1.0*device.mobile)"
+	        webvr_button_scale.normal="1.0"
+	        webvr_button_scale.mobile="1.6"
+	        />
+
+	
+	<!-- the EnterVR/ExitVR and SetupVR buttons -->
+	<style name="webvr_button_style"
+	       url="%SWFPATH%/plugins/textfield.swf"
+	       backgroundcolor="0x000000"
+	       backgroundalpha="0.5"
+	       roundedge="calc:9*webvr_setup_scale*webvr_button_scale"
+	       css="calc:'color:#FFFFFF;font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
+	       padding="calc:6*webvr_setup_scale*webvr_button_scale + ' ' + 10*webvr_setup_scale*webvr_button_scale"
+	       />
+	
+	<layer name="webvr_enterbutton" keep="true" vr="true"
+	       style="webvr_button_style"
+	       html=""
+	       align="top" y="24"
+	       autoalpha="true" alpha="0.0"
+	       onclick="webvr.enterVR();"
+	       />
+
+	<layer name="webvr_exitbutton" keep="true" vr="true"
+	       style="webvr_button_style"
+	       html="退出VR模式"
+	       align="top" y="24"
+	       autoalpha="true" alpha="0.0"
+	       onclick="webvr.exitVR();"
+	       />
+
+	<layer name="webvr_setupbutton" keep="true" vr="true"
+	       autoalpha="true" alpha="0.0"
+	       />
+
+	<action name="webvr_showbuttons">
+		stopdelayedcall(vr_button_fadeout);
+		if(webvr.ismobilevr,
+			tween(layer[webvr_exitbutton].alpha|layer[webvr_setupbutton].alpha, 1.0|1.0, 0.25);
+			delayedcall(vr_button_fadeout, 0.5, tween(layer[webvr_exitbutton].alpha|layer[webvr_setupbutton].alpha, 0.0|0.0, 1.0); );
+		  ,
+			tween(layer[webvr_exitbutton].alpha, 1.0, 0.25);
+			delayedcall(vr_button_fadeout, 0.5, tween(layer[webvr_exitbutton].alpha, 0.0, 1.0); );
+		  );
+	</action>
+
+
+
+	<!--
+		VR Setup
+	-->
+
+	<action name="vr_setup">
+		<!-- disable cursor -->
+		set(webvr.vr_cursor_enabled, false);
+		
+		<!-- hide VR buttons -->
+		tween(layer[webvr_exitbutton].alpha,0);
+		tween(layer[webvr_setupbutton].alpha,0);
+		
+		<!-- create background layer -->
+		addlayer(vr_setup_bg);
+		set(layer[vr_setup_bg].type, container);
+		set(layer[vr_setup_bg].bgcolor, 0x000000);
+		set(layer[vr_setup_bg].bgalpha, 0.5);
+		set(layer[vr_setup_bg].bgcapture, true);
+		set(layer[vr_setup_bg].handcursor, false);
+		set(layer[vr_setup_bg].align, lefttop);
+		set(layer[vr_setup_bg].width, 100%);
+		set(layer[vr_setup_bg].height, 100%);
+		set(layer[vr_setup_bg].zorder, 99999);
+		
+		<!-- get and prepare device infos and settings -->
+		copy(i_screensize, webvr.mobilevr_screensize);
+		if(i_screensize == 'auto', copy(i_screensize, webvr.devicesize));
+		if(i_screensize LE 0, set(i_screensize, 5.0));
+		roundval(i_screensize, 1);
+		txtadd(i_screensize, ' inch');
+
+		copy(i_ipd, webvr.mobilevr_ipd);
+		roundval(i_ipd, 1);
+		txtadd(i_ipd, ' mm');
+
+		copy(i_fov, webvr.mobilevr_lens_fov);
+		roundval(i_fov, 1);
+
+		copy(i_dist, webvr.mobilevr_lens_dist);
+		roundval(i_dist, 2);
+		
+		copy(i_dist2, webvr.mobilevr_lens_dist2);
+		txtsplit(i_dist2, '|', i_dist2_k1, i_dist2_k2, i_dist2_k3, i_dist2_k4);
+		mul(i_dist2_k1,1);
+		mul(i_dist2_k2,10);
+		mul(i_dist2_k3,10);
+		mul(i_dist2_k4,10);
+		roundval(i_dist2_k1,2);
+		roundval(i_dist2_k2,2);
+		roundval(i_dist2_k3,2);
+		roundval(i_dist2_k4,2);
+
+		copy(i_vig, webvr.mobilevr_lens_vign);
+		roundval(i_vig, 0);
+		
+		copy(i_overlap, webvr.mobilevr_lens_overlap);
+		roundval(i_overlap, 2);
+		
+		copy(i_ca, webvr.mobilevr_lens_ca);
+		roundval(i_ca, 3);
+
+		set(i_headset, 'Custom');
+		for(set(i,0), i LT vrheadsets.headset.count, inc(i),
+			copy(hs, vrheadsets.headset[get(i)]);
+			if(i_overlap == hs.overlap AND i_fov == hs.fov AND i_dist == hs.dist AND i_dist2 == hs.dist2 AND i_ca == hs.ca AND i_vig == hs.vig , copy(i_headset, hs.caption));
+		   );
+
+		<!-- when the screen size is unknown, mark it red -->
+		set(known_size, true);
+		set(sizcol, #FFFFFF);
+		copy(i_devicename, webvr.devicename);
+		if(i_devicename == 'Unknown',
+			if(webvr.mobilevr_screensize == 'auto',
+				set(sizcol, #AA0000);
+				set(known_size, false);
+			  ,
+				set(i_devicename, 'Custom');
+			  );
+		  );
+
+		
+		<!-- create layer for the main menu -->
+		addlayer(vr_setup_m1);
+		set(layer[vr_setup_m1].type, container);
+		set(layer[vr_setup_m1].parent, vr_setup_bg);
+		set(layer[vr_setup_m1].align, lefttop);
+		set(layer[vr_setup_m1].width, 100%);
+		set(layer[vr_setup_m1].height, 100%);
+		
+		<!-- create layer for the headset customization menu -->
+		addlayer(vr_setup_m3);
+		set(layer[vr_setup_m3].type, container);
+		set(layer[vr_setup_m3].parent, vr_setup_bg);
+		set(layer[vr_setup_m3].align, lefttop);
+		set(layer[vr_setup_m3].width, 100%);
+		set(layer[vr_setup_m3].height, 100%);
+		set(layer[vr_setup_m3].visible, false);
+		
+		<!-- create layer for the calibration menu -->
+		addlayer(vr_setup_m2);
+		set(layer[vr_setup_m2].type, container);
+		set(layer[vr_setup_m2].parent, vr_setup_bg);
+		set(layer[vr_setup_m2].align, lefttop);
+		set(layer[vr_setup_m2].width, 100%);
+		set(layer[vr_setup_m2].height, 100%);
+		set(layer[vr_setup_m2].visible, false);
+		
+		<!-- create the text elements -->
+		set(vr_setup_text_parent, 'vr_setup_m1');
+		vr_setup_createtext(vr_setup_title, 'VR设置',       center, center, 0, -225, #FFFFFF,     false);
+
+		vr_setup_createtext(vr_setup_dvn1, '设备:',         center, right,  0, -145, #FFFFFF,     true, vr_setup_select('screen') );
+		vr_setup_createtext(vr_setup_dvn2, get(i_devicename), center, left,   0, -145, get(sizcol), true, vr_setup_select('screen') );
+		vr_setup_createtext(vr_setup_siz1, '屏幕尺寸:',     center, right,  0, -105, #FFFFFF,     true, vr_setup_select('screen') );
+		vr_setup_createtext(vr_setup_siz2, get(i_screensize), center, left,   0, -105, get(sizcol), true, vr_setup_select('screen') );
+
+		vr_setup_createtext(vr_setup_ipd1, '瞳距:',            center, right,  0,  -35, #FFFFFF,     true, vr_setup_select('ipd') );
+		vr_setup_createtext(vr_setup_ipd2, get(i_ipd),        center, left,   0,  -35, #FFFFFF,     true, vr_setup_select('ipd') );
+
+		vr_setup_createtext(vr_setup_hmd1, '设置头显:',     center, right,  0,  +35, #FFFFFF,     true, vr_setup_select('headset') );
+		vr_setup_createtext(vr_setup_hmd2, get(i_headset),    center, left,   0,  +35, #FFFFFF,     true, vr_setup_select('headset') );
+		
+		vr_setup_createtext(vr_setup_hmd3, '调节头显',       center, center, 0,  +75, #FFFFFF,     true, set(background,true), set(background,false), vr_setup_customize_headset() );
+
+		
+
+		if(webvr.iswebvr == false,
+			vr_setup_createtext(vr_setup_cal, '陀螺仪校准',   center, center,    0, +145, #FFFFFF,     true, set(background,true), set(background,false), vr_setup_calibration() );
+		  );
+
+		vr_setup_createtext(vr_setup_sav, '保存',          center, center, -200, +225, #FFFFFF,     true, set(background,true), set(background,false), vr_setup_save() );
+		vr_setup_createtext(vr_setup_rst, '重置',         center, center,    0, +225, #FFFFFF,     true, set(background,true), set(background,false), vr_setup_reset() );
+		vr_setup_createtext(vr_setup_cls, '关闭',         center, center, +200, +225, #FFFFFF,     true, set(background,true), set(background,false), vr_setup_close() );
+		
+		<!-- and the adjusting buttons -->
+		vr_setup_createbutton(vr_setup_btn1, '&#60;', left,  left,  5%, -35, #FFFFFF, true, null);
+		vr_setup_createbutton(vr_setup_btn2, '&#62;', right, right, 5%, -35, #FFFFFF, true, null);
+		
+		
+		<!-- create the customize_headset text elements -->
+		set(vr_setup_text_parent, 'vr_setup_m3');
+		vr_setup_createtext(vr_setup_m31, '头显设置', center, center, 0, -225, #FFFFFF, false);
+		
+		vr_setup_createtext(vr_setup_fov1,  'FOV:',           center, right,  0,  -80,  #FFFFFF,    true, vr_setup_select('fov') );
+		vr_setup_createtext(vr_setup_fov2, get(i_fov),        center, left,   0,  -80,  #FFFFFF,    true, vr_setup_select('fov') );
+		vr_setup_createtext(vr_setup_dst1, 'Distortion:',     center, right,  0,  -32,  #FFFFFF,    true, vr_setup_select('dist') );
+		vr_setup_createtext(vr_setup_dst2, get(i_dist),       center, left,   0,  -32,  #FFFFFF,    true, vr_setup_select('dist') );
+		vr_setup_createtext(vr_setup_d2tx, 'Dist2:',          center, right,  0,  +16,  #FFFFFF,    true, vr_setup_select('dist2k1') );
+		vr_setup_createtext(vr_setup_d2k1, get(i_dist2_k1),   center, left,   0,  +16,  #FFFFFF,    true, vr_setup_select('dist2k1') );
+		vr_setup_createtext(vr_setup_d2k2, get(i_dist2_k2),   center, left, +100, +16,  #FFFFFF,    true, vr_setup_select('dist2k2') );
+		vr_setup_createtext(vr_setup_d2k3, get(i_dist2_k3),   center, left, +200, +16,  #FFFFFF,    true, vr_setup_select('dist2k3') );
+		vr_setup_createtext(vr_setup_d2k4, get(i_dist2_k4),   center, left, +300, +16,  #FFFFFF,    true, vr_setup_select('dist2k4') );
+		
+		
+		vr_setup_createtext(vr_setup_cac1, 'CA Corr:',        center, right,  0,  +64,  #FFFFFF,    true, vr_setup_select('ca') );
+		vr_setup_createtext(vr_setup_cac2, get(i_ca),         center, left,   0,  +64,  #FFFFFF,    true, vr_setup_select('ca') );
+		vr_setup_createtext(vr_setup_vig1, 'Vignette:',       center, right,  0, +112,  #FFFFFF,    true, vr_setup_select('vignette') );
+		vr_setup_createtext(vr_setup_vig2, get(i_vig),        center, left,   0, +112,  #FFFFFF,    true, vr_setup_select('vignette') );
+		vr_setup_createtext(vr_setup_olp1, 'Overlap:',        center, right,  0, +160,  #FFFFFF,    true, vr_setup_select('overlap') );
+		vr_setup_createtext(vr_setup_olp2, get(i_overlap),    center, left,   0, +160,  #FFFFFF,    true, vr_setup_select('overlap') );
+				
+		vr_setup_createtext(vr_setup_m35, '关闭',       center, center, 0, +225, #FFFFFF, true, set(background,true), set(background,false), vr_setup_close_sub_menus() );
+		
+		
+		<!-- create the calibration text elements -->
+		set(vr_setup_text_parent, 'vr_setup_m2');
+		vr_setup_createtext(vr_setup_cb1, '陀螺仪', center, center, 0, -225, #FFFFFF, false);
+		vr_setup_createtext(vr_setup_cb2, '水平放置后校准', center, center, 0, -95, #FFFFFF, false, vr_setup_select('screen') );
+		vr_setup_createtext(vr_setup_cb3, '校准',   center, center, 0,  +55, #FFFFFF, true, set(background,true), set(background,false), vr_setup_do_calibration() );
+		vr_setup_createtext(vr_setup_cb4, '重置',       center, center, 0, +125, #FFFFFF, true, set(background,true), set(background,false), webvr.resetcalibration() );
+		vr_setup_createtext(vr_setup_cb5, '关闭',       center, center, 0, +225, #FFFFFF, true, set(background,true), set(background,false), vr_setup_close_sub_menus() );
+		
+		vr_setup_createtext(vr_setup_cb6, 'Calibrating...',      bottom, center, 0, 40, #FFFFFF, false, null );
+		vr_setup_createtext(vr_setup_cb7, 'Calibration okay.',   bottom, center, 0, 40, #FFFFFF, false, null );
+		vr_setup_createtext(vr_setup_cb8, 'Calibration failed!', bottom, center, 0, 40, #FFFFFF, false, null );
+		set(layer[vr_setup_cb6].autoalpha, true);
+		set(layer[vr_setup_cb7].autoalpha, true);
+		set(layer[vr_setup_cb8].autoalpha, true);
+		set(layer[vr_setup_cb6].alpha, 0.0);
+		set(layer[vr_setup_cb7].alpha, 0.0);
+		set(layer[vr_setup_cb8].alpha, 0.0);
+		
+		
+		<!-- pre-select the screen size for adjusting when it is unknown, otherwise the IPD -->
+		if(known_size == false,
+			vr_setup_select('screen', true);
+		  ,
+			vr_setup_select('ipd', true);
+		  );
+	</action>
+
+
+
+	<action name="vr_setup_createtext">
+		<!--
+			%1 = name
+			%2 = text
+			%3 = align
+			%4 = edge
+			%5 = x
+			%6 = y
+			%7 = color
+			%8 = enabled
+			%9 = ondown
+			%10 = onup
+			%11 = onclick
+		-->
+		addlayer(%1);
+		set(layer[%1].parent, get(vr_setup_text_parent));
+		set(layer[%1].url, '%SWFPATH%/plugins/textfield.swf');
+		set(layer[%1].css, calc('text-align:%3;color:%7;font-size:'+40*webvr_setup_scale+'px;font-weight:bold;'));
+		set(layer[%1].padding, calc(0 + ' ' + 8*webvr_setup_scale));
+		set(layer[%1].roundedge, calc(8*webvr_setup_scale));
+		set(layer[%1].background, false);
+		set(layer[%1].backgroundcolor, 0xFFFFFF);
+		set(layer[%1].backgroundalpha, 0.25);
+		set(layer[%1].align, %3);
+		set(layer[%1].edge, %4);
+		set(layer[%1].x, calc(%5 * webvr_setup_scale));
+		set(layer[%1].y, calc(%6 * webvr_setup_scale));
+		set(layer[%1].html, %2);
+		set(layer[%1].enabled, %8);
+		set(layer[%1].ondown, %9);
+		set(layer[%1].onup, %10);
+		set(layer[%1].onclick, %11);
+	</action>
+
+
+	<action name="vr_setup_createbutton">
+		vr_setup_createtext(%1,%2,%3,%4,%5,%6,%7,%8,%9);
+		set(layer[%1].css, calc('vertical-align:middle;text-align:center;color:%7;font-size:'+60*webvr_setup_scale+'px;font-weight:bold;'));
+		set(layer[%1].background, true);
+		set(layer[%1].padding, 0);
+		set(layer[%1].roundedge, calc(40 * webvr_setup_scale));
+		set(layer[%1].width, calc(70 * webvr_setup_scale));
+		set(layer[%1].height, calc(70 * webvr_setup_scale));
+		set(layer[%1].vcenter, true);
+	</action>
+
+
+	<action name="vr_setup_reset">
+		<!-- reset to the defaults -->
+		set(webvr.mobilevr_screensize, 'auto');
+		copy(i_screensize, webvr.devicesize);
+		if(i_screensize LE 0, set(i_screensize, 5.0));
+		roundval(i_screensize, 1);
+		set(layer[vr_setup_dvn2].html, get(webvr.devicename));
+		txtadd(layer[vr_setup_siz2].html, get(i_screensize), ' inch');
+
+		set(webvr.mobilevr_ipd, 63.5);
+		copy(i_ipd, webvr.mobilevr_ipd);
+		roundval(i_ipd, 1);
+		txtadd(layer[vr_setup_ipd2].html, get(i_ipd), ' mm');
+
+		<!-- set fake custom lens settings and call 'next' headset to switch to the default 'Cardboard' settings -->
+		set(webvr.mobilevr_lens_fov, 100);
+		set(webvr.mobilevr_lens_dist, 0.5);
+		set(webvr.mobilevr_lens_vign, 100);
+		set(webvr.mobilevr_lens_overlap, 1.0);
+		set(webvr.mobilevr_lens_ca, 0.0);
+		vr_setup_change_headset(+1);
+
+		vr_setup_select(get(selected_var));
+	</action>
+
+
+	<action name="vr_setup_close">
+		<!-- 2. parameter == true => remove children elements too -->
+		removelayer(vr_setup_bg, true);
+		
+		<!-- enable cursor -->
+		set(webvr.vr_cursor_enabled, true);
+	</action>
+
+
+	<action name="vr_setup_save">
+		webvr.saveSettings();
+		vr_setup_close();
+	</action>
+	
+	
+	<action name="vr_setup_customize_headset">
+		set(layer[vr_setup_bg].bgalpha, 0.1);
+		
+		set(layer[vr_setup_m1].visible,false);
+		set(layer[vr_setup_m2].visible,false);
+		set(layer[vr_setup_m3].visible,true);
+		
+		set(layer[vr_setup_hmd1].parent, vr_setup_m3);
+		set(layer[vr_setup_hmd2].parent, vr_setup_m3);
+		set(layer[vr_setup_btn1].parent, vr_setup_m3);
+		set(layer[vr_setup_btn2].parent, vr_setup_m3);
+		
+		set(layer[vr_setup_hmd1].y, calc(-145 * webvr_setup_scale));
+		set(layer[vr_setup_hmd2].y, calc(-145 * webvr_setup_scale));
+		
+		copy(old_selection, selected_var);
+		vr_setup_select('headset');
+	</action>
+	
+	
+
+	<action name="vr_setup_calibration">
+		set(layer[vr_setup_m1].visible,false);
+		set(layer[vr_setup_m2].visible,true);
+	</action>
+	
+	<action name="vr_setup_close_sub_menus">
+		set(layer[vr_setup_bg].bgalpha, 0.5);
+		
+		set(layer[vr_setup_m1].visible,true);
+		set(layer[vr_setup_m2].visible,false);
+		set(layer[vr_setup_m3].visible,false);
+		
+		set(layer[vr_setup_hmd1].parent, vr_setup_m1);
+		set(layer[vr_setup_hmd2].parent, vr_setup_m1);
+		set(layer[vr_setup_btn1].parent, vr_setup_m1);
+		set(layer[vr_setup_btn2].parent, vr_setup_m1);
+		
+		set(layer[vr_setup_hmd1].y, calc(+35 * webvr_setup_scale));
+		set(layer[vr_setup_hmd2].y, calc(+35 * webvr_setup_scale));
+		
+		if(old_selection,
+			vr_setup_select(get(old_selection));
+			delete(old_selection);
+		  );
+	</action>
+	
+	<action name="vr_setup_do_calibration">
+		if(!webvr.isfake,
+			tween(layer[vr_setup_cb6].alpha, 1.0, 0.1);
+			tween(layer[vr_setup_cb7].alpha, 0.0, 0.1);
+			tween(layer[vr_setup_cb8].alpha, 0.0, 0.1);
+			webvr.calibrate(
+				tween(layer[vr_setup_cb6].alpha, 0.0, 0.1);
+				tween(layer[vr_setup_cb7].alpha, 1.0, 0.1);
+				delayedcall(2.0, tween(layer[vr_setup_cb7].alpha, 0.0, 0.25) );
+			  ,
+				tween(layer[vr_setup_cb6].alpha, 0.0, 0.1);
+				tween(layer[vr_setup_cb8].alpha, 1.0, 0.1);
+				delayedcall(2.0, tween(layer[vr_setup_cb8].alpha, 0.0, 0.25) );
+			  );
+		  );
+	</action>
+
+	<action name="vr_setup_update_dist2">
+		txtadd(webvr.mobilevr_lens_dist2, get(i_dist2_k1), '|', calc(i_dist2_k2/10.0), '|', calc(i_dist2_k3/10.0), '|', calc(i_dist2_k4/10.0));
+		vr_setup_change_headset(0);
+	</action>
+
+	<action name="vr_setup_select">
+		<!-- select a setting for adjusting -->
+		set(layer[vr_setup_siz2].background, false);
+		set(layer[vr_setup_ipd2].background, false);
+		set(layer[vr_setup_hmd2].background, false);
+		set(layer[vr_setup_fov2].background, false);
+		set(layer[vr_setup_dst2].background, false);
+		set(layer[vr_setup_d2k1].background, false);
+		set(layer[vr_setup_d2k2].background, false);
+		set(layer[vr_setup_d2k3].background, false);
+		set(layer[vr_setup_d2k4].background, false);
+		set(layer[vr_setup_vig2].background, false);
+		set(layer[vr_setup_cac2].background, false);
+		set(layer[vr_setup_olp2].background, false);
+
+		set(selected_setting, null);
+		delete(selected_var_value);
+
+		set(layer[vr_setup_btn1].ondown, vr_setup_change_ondown(-1) );
+		set(layer[vr_setup_btn2].ondown, vr_setup_change_ondown(+1) );
+		set(selected_var_callback, null);
+
+		set(selected_var, %1);
+
+		if(selected_var == 'screen',
+			set(selected_setting,      vr_setup_siz2);
+			set(selected_var_name,     'webvr.mobilevr_screensize');
+			set(selected_var_postfix,  ' inch');
+			copy(selected_var_value,   get(selected_var_name));
+			if(selected_var_value == 'auto', copy(selected_var_value, webvr.devicesize));
+			if(selected_var_value LE 0, set(selected_var_value, 5.0));
+			set(selected_var_step,     0.1);
+			set(selected_var_min,      4);
+			set(selected_var_max,      10);
+			set(selected_var_round,    1);
+			set(selected_var_callback, vr_setup_change_screen() );
+		  );
+
+		if(selected_var == 'ipd',
+			set(selected_setting,      vr_setup_ipd2);
+			set(selected_var_name,     'webvr.mobilevr_ipd');
+			set(selected_var_postfix,  ' mm');
+			copy(selected_var_value,   get(selected_var_name));
+			set(selected_var_step,     0.1);
+			set(selected_var_min,      40);
+			set(selected_var_max,      80);
+			set(selected_var_round,    1);
+		  );
+
+		if(selected_var == 'headset',
+			set(selected_setting,      vr_setup_hmd2);
+			set(layer[vr_setup_btn1].ondown, vr_setup_change_headset(-1) );
+			set(layer[vr_setup_btn2].ondown, vr_setup_change_headset(+1) );
+		  );
+
+		if(selected_var == 'fov',
+			set(selected_setting,      vr_setup_fov2);
+			set(selected_var_name,     'webvr.mobilevr_lens_fov');
+			set(selected_var_postfix,  '');
+			copy(selected_var_value,   get(selected_var_name));
+			set(selected_var_step,     0.1);
+			set(selected_var_min,      40);
+			set(selected_var_max,      179);
+			set(selected_var_round,    1);
+			set(selected_var_callback, vr_setup_change_headset(0) );
+		  );
+
+		if(selected_var == 'dist',
+			set(selected_setting,      vr_setup_dst2);
+			set(selected_var_name,     'webvr.mobilevr_lens_dist');
+			set(selected_var_postfix,  '');
+			copy(selected_var_value,   get(selected_var_name));
+			set(selected_var_step,     0.01);
+			set(selected_var_min,      0);
+			set(selected_var_max,      5);
+			set(selected_var_round,    2);
+			set(selected_var_callback, vr_setup_change_headset(0) );
+		  );
+		
+		if(selected_var == 'dist2k1',
+			set(selected_setting,      vr_setup_d2k1);
+			set(selected_var_name,     'i_dist2_k1');
+			set(selected_var_postfix,  '');
+			copy(selected_var_value,   get(selected_var_name));
+			set(selected_var_step,     0.01);
+			set(selected_var_min,      -9);
+			set(selected_var_max,      +9);
+			set(selected_var_round,    2);
+			set(selected_var_callback, vr_setup_update_dist2() );
+		  );
+		
+		if(selected_var == 'dist2k2',
+			set(selected_setting,      vr_setup_d2k2);
+			set(selected_var_name,     'i_dist2_k2');
+			set(selected_var_postfix,  '');
+			copy(selected_var_value,   get(selected_var_name));
+			set(selected_var_step,     0.01);
+			set(selected_var_min,      -9);
+			set(selected_var_max,      +9);
+			set(selected_var_round,    2);
+			set(selected_var_callback, vr_setup_update_dist2() );
+		  );
+		
+		if(selected_var == 'dist2k3',
+			set(selected_setting,      vr_setup_d2k3);
+			set(selected_var_name,     'i_dist2_k3');
+			set(selected_var_postfix,  '');
+			copy(selected_var_value,   get(selected_var_name));
+			set(selected_var_step,     0.01);
+			set(selected_var_min,      -9);
+			set(selected_var_max,      +9);
+			set(selected_var_round,    2);
+			set(selected_var_callback, vr_setup_update_dist2() );
+		  );
+
+		if(selected_var == 'dist2k4',
+			set(selected_setting,      vr_setup_d2k4);
+			set(selected_var_name,     'i_dist2_k4');
+			set(selected_var_postfix,  '');
+			copy(selected_var_value,   get(selected_var_name));
+			set(selected_var_step,     0.01);
+			set(selected_var_min,      -9);
+			set(selected_var_max,      +9);
+			set(selected_var_round,    2);
+			set(selected_var_callback, vr_setup_update_dist2() );
+		  );
+
+		if(selected_var == 'vignette',
+			set(selected_setting,      vr_setup_vig2);
+			set(selected_var_name,     'webvr.mobilevr_lens_vign');
+			set(selected_var_postfix,  '');
+			copy(selected_var_value,   get(selected_var_name));
+			set(selected_var_step,     1);
+			set(selected_var_min,      10);
+			set(selected_var_max,      200);
+			set(selected_var_round,    0);
+			set(selected_var_callback, vr_setup_change_headset(0) );
+		  );
+
+		if(selected_var == 'ca',
+			set(selected_setting,      vr_setup_cac2);
+			set(selected_var_name,     'webvr.mobilevr_lens_ca');
+			set(selected_var_postfix,  '');
+			copy(selected_var_value,   get(selected_var_name));
+			set(selected_var_step,     0.01);
+			set(selected_var_min,      -1.0);
+			set(selected_var_max,      +1.0);
+			set(selected_var_round,    2);
+			set(selected_var_callback, vr_setup_change_headset(0) );
+		  );
+		  
+		if(selected_var == 'overlap',
+			set(selected_setting,      vr_setup_olp2);
+			set(selected_var_name,     'webvr.mobilevr_lens_overlap');
+			set(selected_var_postfix,  '');
+			copy(selected_var_value,   get(selected_var_name));
+			set(selected_var_step,     0.01);
+			set(selected_var_min,      0.5);
+			set(selected_var_max,      2.0);
+			set(selected_var_round,    2);
+			set(selected_var_callback, vr_setup_change_headset(0) );
+		  );
+
+		if(selected_setting != null,
+			set(layer[get(selected_setting)].background, true);
+			if(%2 == true,
+				set(layer[vr_setup_btn1].y, get(layer[get(selected_setting)].y));
+				set(layer[vr_setup_btn2].y, get(layer[get(selected_setting)].y));
+			  ,
+				tween(layer[vr_setup_btn1].y, get(layer[get(selected_setting)].y));
+				tween(layer[vr_setup_btn2].y, get(layer[get(selected_setting)].y));
+			  );
+		  );
+	</action>
+
+
+	<action name="vr_setup_change_screen">
+		set(layer[vr_setup_dvn2].html, 'Custom');
+		set(layer[vr_setup_dvn2].css, calc('color:#FFFFFF;font-size:'+40*webvr_setup_scale+'px;font-weight:bold;'));
+		set(layer[vr_setup_siz2].css, calc('color:#FFFFFF;font-size:'+40*webvr_setup_scale+'px;font-weight:bold;'));
+	</action>
+
+
+	<action name="vr_setup_change_ondown">
+		copy(t0,timertick);
+		set(t1,0);
+		asyncloop(pressed,
+			copy(t2,timertick);
+			sub(dt,t2,t1);
+			if(dt GT 100,
+				copy(t1,t2);
+				sub(dt,t1,t0);
+				div(dt,1000);
+				Math.max(dt,1);
+				mul(dt,%1);
+				vr_setup_adjust(get(dt));
+			  );
+		  );
+	</action>
+
+
+	<action name="vr_setup_adjust">
+		if(selected_setting != null,
+			mul(change, selected_var_step, %1);
+			add(selected_var_value, change);
+			Math.max(selected_var_value, selected_var_min);
+			Math.min(selected_var_value, selected_var_max);
+			roundval(selected_var_value, get(selected_var_round));
+			tween(get(selected_var_name), get(selected_var_value), 0.1);
+			txtadd(layer[get(selected_setting)].html, get(selected_var_value), get(selected_var_postfix));
+			if(selected_var_callback != null, selected_var_callback());
+		  );
+	</action>
+
+
+	<action name="vr_setup_change_headset">
+		set(i_headset, 'Custom');
+		if(%1 != 0,
+			copy(i_fov, webvr.mobilevr_lens_fov);
+			roundval(i_fov, 1);
+			copy(i_dist, webvr.mobilevr_lens_dist);
+			roundval(i_dist, 2);
+			copy(i_dist2, webvr.mobilevr_lens_dist2);
+			copy(i_vig, webvr.mobilevr_lens_vign);
+			roundval(i_vig, 0);
+			copy(i_ca, webvr.mobilevr_lens_ca);
+			roundval(i_ca, 3);
+			copy(i_overlap, webvr.mobilevr_lens_overlap);
+			roundval(i_overlap, 2);
+			set(i_hsindex, -1);
+			copy(i_hscount, vrheadsets.headset.count);
+			for(set(i,0), i LT i_hscount, inc(i),
+				copy(hs, vrheadsets.headset[get(i)]);
+				if(i_overlap == hs.overlap AND i_fov == hs.fov AND i_dist == hs.dist AND i_dist2 == hs.dist2 AND i_ca == hs.ca AND i_vig == hs.vig , copy(i_hsindex, i); copy(i_headset, hs.caption); );
+			   );
+
+			if(%1 GT 0,
+				<!-- loop right -->
+				add(i_hsindex, 1);
+				if(i_hsindex GE i_hscount, set(i_hsindex,0));
+			  ,
+				<!-- loop left -->
+				sub(i_hsindex, 1);
+				if(i_hsindex LT 0, sub(i_hsindex,i_hscount,1));
+			  );
+
+			copy(hs, vrheadsets.headset[get(i_hsindex)]);
+			copy(i_headset, hs.caption);
+			copy(i_overlap, hs.overlap);
+			copy(i_fov,     hs.fov);
+			copy(i_dist,    hs.dist);
+			copy(i_dist2,   hs.dist2);
+			copy(i_ca,      hs.ca);
+			copy(i_vig,     hs.vig);
+		  );
+
+		copy(layer[vr_setup_hmd2].html, i_headset);
+		if(%1 != 0,
+			copy(webvr.mobilevr_lens_overlap, i_overlap);
+			copy(webvr.mobilevr_lens_fov, i_fov);
+			copy(webvr.mobilevr_lens_dist, i_dist);
+			copy(webvr.mobilevr_lens_dist2, i_dist2);
+			copy(webvr.mobilevr_lens_ca, i_ca);
+			copy(webvr.mobilevr_lens_vign, i_vig);
+			copy(layer[vr_setup_olp2].html, i_overlap);
+			copy(layer[vr_setup_fov2].html, i_fov);
+			copy(layer[vr_setup_dst2].html, i_dist);
+			
+			txtsplit(i_dist2, '|', i_dist2_k1, i_dist2_k2, i_dist2_k3, i_dist2_k4);
+			mul(i_dist2_k1,1);
+			mul(i_dist2_k2,10);
+			mul(i_dist2_k3,10);
+			mul(i_dist2_k4,10);
+			roundval(i_dist2_k1,2);
+			roundval(i_dist2_k2,2);
+			roundval(i_dist2_k3,2);
+			roundval(i_dist2_k4,2);
+			copy(layer[vr_setup_d2k1].html, i_dist2_k1);
+			copy(layer[vr_setup_d2k2].html, i_dist2_k2);
+			copy(layer[vr_setup_d2k3].html, i_dist2_k3);
+			copy(layer[vr_setup_d2k4].html, i_dist2_k4);
+			
+			copy(layer[vr_setup_cac2].html, i_ca);
+			copy(layer[vr_setup_vig2].html, i_vig);
+		  );
+	</action>
+
+</krpano>

BIN
public/showviewer/lib/krpano/plugins/webvr_cursor_80x80_17f.png


+ 21 - 0
public/showviewer/lib/krpano/skin/img_doticon_01.svg

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="28px" height="28px" viewBox="0 0 28 28" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>img_doticon_01</title>
+    <g id="编辑器" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="icon" transform="translate(-301.000000, -514.000000)" fill-rule="nonzero">
+            <g id="img_doticon_01" transform="translate(301.000000, 514.000000)">
+                <rect id="box" fill-opacity="0" fill="#FFFFFF" x="0" y="0" width="28" height="28"></rect>
+                <g id="组_3856" transform="translate(0.000000, 6.000000)">
+                    <path d="M14.001,7.555 L0.056,15.785 C0.0126054449,15.8112854 -0.00867245421,15.8627216 0.00347072632,15.9119816 C0.0156139069,15.9612417 0.058360381,15.9968951 0.109,16 L6.222,16 L13.999,11.41 L21.776,16 L27.89,16 C27.9406396,15.9968951 27.9833861,15.9612417 27.9955293,15.9119816 C28.0076725,15.8627216 27.9863946,15.8112854 27.943,15.785 L14.001,7.555 Z" id="路径_1339-2" fill="#000000" opacity="0.4"></path>
+                    <path d="M14.002,4.683 L19.961,7.875 L24.511,7.875 C24.5624468,7.87202014 24.6057597,7.83545696 24.6173305,7.78523975 C24.6289013,7.73502254 24.6059555,7.68319237 24.561,7.658 L14.002,2 L3.443,7.658 C3.39804452,7.68319237 3.37509869,7.73502254 3.38666948,7.78523975 C3.39824026,7.83545696 3.44155322,7.87202014 3.493,7.875 L8.043,7.875 L14.002,4.683 Z" id="路径_1340-2" fill="#000000" opacity="0.6"></path>
+                    <g id="编组" transform="translate(0.000000, 5.000000)" fill="#FFFFFF" opacity="0.8">
+                        <path d="M13.998,0.553 L0.051,8.796 C0.00871211887,8.82153017 -0.0116166444,8.87193307 0.00112551213,8.91965824 C0.0138676686,8.96738341 0.0566143459,9.00094578 0.106,9.002 L6.227,9.002 L13.996,4.411 L21.765,9.002 L27.888,9.002 C27.9373857,9.00094578 27.9801323,8.96738341 27.9928745,8.91965824 C28.0056166,8.87193307 27.9852879,8.82153017 27.943,8.796 L13.998,0.553 Z" id="路径_1339-3-2"></path>
+                    </g>
+                    <g id="编组" transform="translate(3.000000, 0.000000)" fill="#FFFFFF">
+                        <path d="M11.003,2.681 L16.956,5.873 L21.517,5.873 C21.567027,5.87169479 21.6099942,5.83707541 21.6219116,5.78847112 C21.633829,5.73986684 21.6117492,5.68929839 21.568,5.665 L11.003,-0.001 L0.437,5.665 C0.393250843,5.68929839 0.371170959,5.73986684 0.383088355,5.78847112 C0.395005751,5.83707541 0.437973037,5.87169479 0.488,5.873 L5.05,5.873 L11.003,2.681 Z" id="路径_1340-3-2"></path>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>

BIN
public/showviewer/lib/krpano/skin/krpano-roundlogo.png


BIN
public/showviewer/lib/krpano/skin/masking.png


BIN
public/showviewer/lib/krpano/skin/masking_en.png


BIN
public/showviewer/lib/krpano/skin/masking_zh.png


BIN
public/showviewer/lib/krpano/skin/rotate_device.png


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1281 - 0
public/showviewer/lib/krpano/skin/vtourskin copy 2.xml


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
public/showviewer/lib/krpano/skin/vtourskin copy.xml


BIN
public/showviewer/lib/krpano/skin/vtourskin.png


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1299 - 0
public/showviewer/lib/krpano/skin/vtourskin.xml


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1281 - 0
public/showviewer/lib/krpano/skin/vtourskin.xml.backup-2022-11-16-09-02-39


+ 28 - 0
public/showviewer/lib/krpano/skin/vtourskin_design_117.xml

@@ -0,0 +1,28 @@
+<krpano>
+
+	<!-- Version 1.17 Design -->
+
+	<skin_settings layout_width="100%"
+	               layout_maxwidth=""
+	               controlbar_width="100%"
+	               controlbar_height.normal="40"
+	               controlbar_height.mobile="38"
+	               controlbar_offset.normal="20"
+	               controlbar_offset.mobile="0"
+	               controlbar_offset_closed="-2"
+	               controlbar_overlap="0"
+	               design_skin_images="vtourskin.png"
+	               design_bgcolor="0x000000"
+	               design_bgalpha="0.5"
+	               design_bgborder="1,0 0xFFFFFF 1"
+	               design_bgroundedge.no-ios="0"
+	               design_bgroundedge.ios="1"
+	               design_bgshadow="0 0 20 0x000000 1.0"
+	               design_thumbborder_bgborder="4 0xFFFFFF 1.0"
+	               design_thumbborder_padding="2"
+	               design_thumbborder_bgroundedge="3"
+	               design_text_css="color:#FFFFFF; font-family:Arial; font-weight:bold;"
+	               design_text_shadow="1"
+	               />
+
+</krpano>

+ 31 - 0
public/showviewer/lib/krpano/skin/vtourskin_design_117round.xml

@@ -0,0 +1,31 @@
+<krpano>
+
+	<!-- Version 1.17 Round Design -->
+
+	<skin_settings layout_width="100%"
+	               layout_maxwidth.normal="900"
+	               layout_maxwidth.mobile=""
+	               controlbar_width.normal="-44"
+	               controlbar_width.mobile="100%"
+	               controlbar_height.normal="38"
+	               controlbar_height.mobile="34"
+	               controlbar_offset.normal="22"
+	               controlbar_offset.mobile="0"
+	               controlbar_offset_closed="-40"
+	               controlbar_overlap.normal="7"
+	               controlbar_overlap.mobile="2"
+	               design_skin_images="vtourskin.png"
+	               design_bgcolor="0x000000"
+	               design_bgalpha="0.5"
+	               design_bgborder="0 0xFFFFFF 1.0"
+	               design_bgroundedge.normal="9"
+	               design_bgroundedge.mobile="1"
+	               design_bgshadow="0 0 9 0xFFFFFF 0.5"
+	               design_thumbborder_bgborder="4 0xFFFFFF 1.0"
+	               design_thumbborder_padding="2"
+	               design_thumbborder_bgroundedge="5"
+	               design_text_css="color:#FFFFFF; font-family:Arial; font-weight:bold;"
+	               design_text_shadow="1"
+	               />
+
+</krpano>

+ 71 - 0
public/showviewer/lib/krpano/skin/vtourskin_design_black.xml

@@ -0,0 +1,71 @@
+<krpano>
+
+	<!-- Flat Light Design -->
+
+	<!-- modify the <skin_settings> values -->
+	<skin_settings layout_width="100%"
+	               layout_maxwidth="100%"
+	               controlbar_width="100%"
+	               controlbar_height="40"
+	               controlbar_offset.normal="0"
+	               controlbar_offset.mobile="0"
+	               controlbar_offset_closed="-40"
+	               controlbar_overlap.no-fractionalscaling="0"
+	               controlbar_overlap.fractionalscaling="0"
+	               design_skin_images="vtourskin.png"
+	               design_bgcolor="0x000000"
+	               design_bgalpha="1.0"
+	               design_bgborder="0"
+	               design_bgroundedge="0"
+	               design_bgshadow="0 4 10 0xFFFFFF 0.3"
+	               design_thumbborder_bgborder="3 0xB2B2B2 1.0"
+	               design_thumbborder_padding="2"
+	               design_thumbborder_bgroundedge="0"
+	               design_text_css="color:#FFFFFF; font-family:Arial;"
+	               design_text_shadow="0"
+	               />
+
+	<!-- adjust the design of some skin elements  -->
+	<layer name="skin_layer">
+		<layer name="skin_loadingtext" width="100%" css="calc:skin_settings.design_text_css + ' text-align:center; font-size:20px;'" padding="4 6" textshadow="calc:2.0" textshadowrange="1.0" textshadowangle="90" textshadowcolor="0x2D3E50" textshadowalpha="1.0" />
+		<layer name="skin_control_bar" alpha="0.7" />
+	</layer>
+
+
+	<!-- use a fullscreen map -->
+	<action name="skin_showmap">
+		if(%1 == null, if(layer[skin_map].state == 'closed', set(show,true), set(show,false)); , set(show,%1); );
+		mul(mh, layer[skin_scroll_layer].pixelheight, -1);
+		if(show,
+			tween(layer[skin_thumbs_container].alpha, 0.0, 0.25, default, set(layer[skin_thumbs_container].visible,false));
+			set(layer[skin_map].visible, true);
+			tween(layer[skin_map].alpha, 1.0, 0.25);
+			set(layer[skin_map].state, 'opened');
+			sub(hh,area.pixelheight,skin_settings.controlbar_offset);
+			sub(hh,layer[skin_control_bar].height);
+			sub(hh,0);
+			add(mh,hh);
+			sub(hh,skin_settings.controlbar_overlap);
+			copy(layer[skin_map].height, hh);
+			tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint);
+		  ,
+		  	if(layer[skin_map].state != 'closed',
+				set(layer[skin_map].state, 'closed');
+				add(mh, layer[skin_scroll_layer].y_offset);
+				tween(layer[skin_map].alpha, 0.0, 0.5, easeOutQuint);
+				tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint, set(layer[skin_map].visible,false) );
+			  );
+		  );
+	</action>
+
+
+	<!-- webvr button style (adjust to match skin style) -->
+	<style name="webvr_button_style"
+	       border="false"
+	       roundedge="calc:1.0"
+	       backgroundcolor="get:skin_settings.design_bgcolor" backgroundalpha="get:skin_settings.design_bgalpha"
+	       shadow="0.01" shadowrange="10.0" shadowangle="90.0" shadowcolor="0x30261B" shadowalpha="0.50"
+	       css="calc:skin_settings.design_text_css + ' font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
+	       />
+
+</krpano>

+ 42 - 0
public/showviewer/lib/krpano/skin/vtourskin_design_flat_light.xml

@@ -0,0 +1,42 @@
+<krpano>
+
+	<!-- Flat Light Design -->
+
+	<!-- modify the <skin_settings> values -->
+	<skin_settings layout_width="100%"
+	               layout_maxwidth="814"
+	               controlbar_width="-24"
+	               controlbar_height="40"
+	               controlbar_offset.normal="20"
+	               controlbar_offset.mobile="20"
+	               controlbar_offset_closed="-40"
+	               controlbar_overlap.no-fractionalscaling="10"
+	               controlbar_overlap.fractionalscaling="0"
+	               design_skin_images="vtourskin_light.png"
+	               design_bgcolor="0x2D3E50"
+	               design_bgalpha="0.8"
+	               design_bgborder="0"
+	               design_bgroundedge="1"
+	               design_bgshadow="0 4 10 0x000000 0.3"
+	               design_thumbborder_bgborder="2 0xFFFFFF 0.8"
+	               design_thumbborder_padding="2"
+	               design_thumbborder_bgroundedge="0"
+	               design_text_css="color:#FFFFFF; font-family:Arial; font-weight:lighter;"
+	               design_text_shadow="1"
+	               />
+
+	<!-- adjust the design of some skin elements  -->
+	<layer name="skin_layer">
+		<layer name="skin_loadingtext" width="100%" css="calc:skin_settings.design_text_css + ' text-align:center; font-size:20px;'" padding="4 6" textshadow="calc:2.0" textshadowrange="1.0" textshadowangle="90" textshadowcolor="0x2D3E50" textshadowalpha="1.0" />
+	</layer>
+
+	<!-- webvr button style (adjust to match skin style) -->
+	<style name="webvr_button_style"
+	       border="false"
+	       roundedge="calc:1.0"
+	       backgroundcolor="get:skin_settings.design_bgcolor" backgroundalpha="get:skin_settings.design_bgalpha"
+	       shadow="0.01" shadowrange="10.0" shadowangle="90.0" shadowcolor="0x30261B" shadowalpha="0.50"
+	       css="calc:skin_settings.design_text_css + ' font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
+	       />
+
+</krpano>

+ 40 - 0
public/showviewer/lib/krpano/skin/vtourskin_design_glass.xml

@@ -0,0 +1,40 @@
+<krpano>
+
+	<!-- Glass Design -->
+
+	<!-- modify the <skin_settings> values -->
+	<skin_settings thumbs_scrollindicator="true"
+	               layout_width="100%"
+	               layout_maxwidth="680"
+	               xcontrolbar_width="-44"
+	               controlbar_width="-20"
+	               controlbar_height="36"
+	               controlbar_offset.normal="40"
+	               controlbar_offset.mobile="12"
+	               controlbar_offset_closed="-40"
+	               controlbar_overlap="10"
+	               design_skin_images="vtourskin.png"
+	               design_bgcolor="0xFFFFFF"
+	               design_bgalpha="0.25"
+	               design_bgborder="2 0xFFFFFF 0.1"
+	               design_bgroundedge="13"
+	               design_bgshadow="0"
+	               design_thumbborder_bgborder="3 0xFFFFFF 1.0"
+	               design_thumbborder_padding="2"
+	               design_thumbborder_bgroundedge="5"
+	               design_text_css="color:#FFFFFF; font-family:Arial; font-weight:bold;"
+	               design_text_shadow="0"
+	               />
+
+	<!-- webvr button style (adjust to match default skin style) -->
+	<style name="webvr_button_style"
+	       border="true" borderwidth="2" bordercolor="0xFFFFFF" borderalpha="0.25"
+	       backgroundcolor="get:skin_settings.design_bgcolor" backgroundalpha="get:skin_settings.design_bgalpha"
+	       shadow="0"
+	       css="calc:skin_settings.design_text_css + ' color:#FFFFFF; font-weight:normal; font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
+	       />
+
+	<!-- contextmenu style (adjust to match skin style) -->
+	<contextmenu customstyle="default|default|default|0x77AAAAAA|0xFFFFFF|0xBBBBBB|2|0x7FFFFFFF|13|0|0|0|0xFFFFFF|0|0|4|6|7|0xAAFFFFFF|none|3|0|0|0|3|0xAAFFFFFF|0xAAFFFFFF|0xFFFFFF|12|8" />
+
+</krpano>

+ 58 - 0
public/showviewer/lib/krpano/skin/vtourskin_design_ultra_light.xml

@@ -0,0 +1,58 @@
+<krpano>
+
+	<!-- Ultra Light Design -->
+
+	<!-- modify the <skin_settings> values -->
+	<skin_settings title="false"
+	               layout_width="100%"
+	               layout_maxwidth="814"
+	               controlbar_width="-24"
+	               controlbar_height="40"
+	               controlbar_offset.normal="30"
+	               controlbar_offset.mobile="20"
+	               controlbar_offset_closed="-40"
+	               controlbar_overlap="0"
+	               design_skin_images="vtourskin_light.png"
+	               design_bgcolor="0x2D3E50"
+	               design_bgalpha="0.0"
+	               design_bgborder="0,0,1,0 0xFFFFFF 1"
+	               design_bgroundedge="0"
+	               design_bgshadow="0"
+	               design_thumbborder_bgborder="1 0xFFFFFF 0.8"
+	               design_thumbborder_padding="0"
+	               design_thumbborder_bgroundedge="0"
+	               design_text_css="color:#FFFFFF; font-family:Arial; font-weight:lighter;"
+	               design_text_shadow="0"
+	               />
+
+	<!-- webvr button style (adjust to match skin style) -->
+	<style name="webvr_button_style"
+	       border="false"
+	       roundedge="calc:1.0"
+	       backgroundcolor="get:skin_settings.design_bgcolor" backgroundalpha="get:skin_settings.design_bgalpha"
+	       shadow="0.01" shadowrange="10.0" shadowangle="90.0" shadowcolor="0x30261B" shadowalpha="0.50"
+	       css="calc:skin_settings.design_text_css + ' font-size:' + 20*webvr_setup_scale*webvr_button_scale + 'px;'"
+	       />
+
+	<!-- adjust video controls to match skin style -->
+	<layer name="skin_layer">
+		<layer name="skin_scroll_window">
+			<layer name="skin_scroll_layer">
+				<layer name="skin_video_controls">
+					<layer name="skin_video_seekbar_container">
+						<layer name="skin_video_seekbar" height="1" y="4">
+							<layer name="skin_video_loadbar" height="1" />
+							<layer name="skin_video_seekpos" bgroundedge="2" width="6" height="6" />
+						</layer>
+					</layer>
+					<layer name="skin_video_time" y="-4" />
+				</layer>
+			</layer>
+		</layer>
+	</layer>
+					
+
+	<!-- contextmenu style (adjust to match skin style) -->
+	<contextmenu customstyle="default|default|default|0x7F000000|0xFFFFFF|0xBBBBBB|0|0x20FFFFFF|1|0|0|0|0xFFFFFF|0|0xFFFFFF|4|6|7|0xAAFFFFFF|none|3|0|0|0|3|0xFFFFFF|0xFFFFFF|0x000000|12|8" />
+
+</krpano>

BIN
public/showviewer/lib/krpano/skin/vtourskin_hotspot.png


BIN
public/showviewer/lib/krpano/skin/vtourskin_light.png


BIN
public/showviewer/lib/krpano/skin/vtourskin_mapspot.png


BIN
public/showviewer/lib/krpano/skin/vtourskin_mapspotactive.png


+ 447 - 0
public/showviewer/lib/krpano/tooltip.xml

@@ -0,0 +1,447 @@
+<krpano>
+    <!-- 1.20. 新热点模式 -->
+    <action name="addJQHotspot">
+        <!-- showlog(); -->
+        set(hsp_name,%1); 
+        set(hsp_type,%2); 
+        txtadd(iconUrl,'',%4);
+        txtreplace(iconUrl,'|',',');
+
+        <!-- trace('opentype::',%11); -->
+        if(%2 LE 1,
+             <!-- trace('id==',get(hsp_name),"::",get(iconUrl)); -->
+             set(hotspot[get(hsp_name)].type,'image');
+             set(hotspot[get(hsp_name)].url,get(iconUrl));
+         );
+        ifnot(%2 LE 1, set(hotspot[get(hsp_name)].type, 'text'));
+
+        <!-- 其他标签 (0,1,2)-->
+    
+        set(hotspot[get(hsp_name)].name,%1);
+        set(hotspot[get(hsp_name)].hotspottype,%2);
+        set(hotspot[get(hsp_name)].hotspottitle,%3);
+        set(hotspot[get(hsp_name)].hoverstatus,%9);
+        set(hotspot[get(hsp_name)].hotspotStyle,%10);
+        set(hotspot[get(hsp_name)].opentype,%11);
+        set(hotspot[get(hsp_name)].hotlink,%7);
+        set(hotspot[get(hsp_name)].ath,%5);
+        set(hotspot[get(hsp_name)].atv,%6);
+        set(hotspot[get(hsp_name)].visible,true);
+        set(hotspot[get(hsp_name)].alpha,1);
+        set(hotspot[get(hsp_name)].scale,1);
+  
+        set(hotspot[get(hsp_name)].autoalpha,false);
+        set(hotspot[get(hsp_name)].distorted,false);
+        set(hotspot[get(hsp_name)].border,false);
+        <!-- set(hotspot[get(hsp_name)].onclick,'js(__krfn.utils.linkopen(%7,%1)); '); -->
+        set(hotspot[get(hsp_name)].onclick,'js(__sdk.Tags.linkopen(%11,%1)); ');
+        <!-- set(hotspot[get(hsp_name)].ondown,dragJQhotspot(););
+        set(hotspot[get(hsp_name)].onup,js(console.log('0');__krfn.angle.updateHotSpotData(get(xml.scene),get(name),get(ath),get(atv)))); -->
+
+        txtsplit(%10,'|',fontSize,pos,isHover,borderColor,fillColor,textColor,isShowLine,isTextWrap,lineDirection,textDirection,textNumPerLine,duration,frameNumber,framewidth);
+        set(hotspot[get(hsp_name)].pos,pos);
+        txtadd(hotspot[get(hsp_name)].onloaded,"add_tooltip_label();add_tooltip_dot();");
+
+        if(%2 LE 2,
+            set(hotspot[get(hsp_name)].height,%8);
+            set(hotspot[get(hsp_name)].width,%8);
+            set(hotspot[get(hsp_name)].crop,'');
+        
+               
+                if(%2 == 0,
+                txtreplace(iconUrl,'.svg','.png');
+                <!-- trace('system::',get(iconUrl)); -->
+                set(hotspot[get(hsp_name)].url,get(iconUrl));
+                set(hotspot[get(hsp_name)].frameNumber,60);
+                
+                set(hotspot[get(hsp_name)].duration,1);
+                set(hotspot[get(hsp_name)].frameRate,calc(1.0 / 60));
+                set(hotspot[get(hsp_name)].framewidth,84);
+                );
+                if(%2 == 1,
+                set(hotspot[get(hsp_name)].url,get(iconUrl));
+                set(hotspot[get(hsp_name)].animatiedOn,0);
+                );
+                if(%2 == 2,
+                <!-- trace('ser_frame::',get(framewidth)); -->
+                set(hotspot[get(hsp_name)].duration, get(duration));
+                set(hotspot[get(hsp_name)].frameRate,calc(duration / frameNumber));
+                trace(calc('当前热点序列::' + get(hotspot[get(hsp_name)].hotspottitle)+'::duration::'+get(duration)+'frameNumber::'+get(frameNumber) +'frameRate::'+get(calc(duration / frameNumber))));
+                set(hotspot[get(hsp_name)].url,get(iconUrl));
+                set(hotspot[get(hsp_name)].framewidth,get(framewidth));
+                set(hotspot[get(hsp_name)].frameNumber,get(frameNumber));
+                );
+        );
+        
+        <!-- 个性化标签(3) -->
+        if(%2 == 3,    
+           
+            set(hotspot[get(hsp_name)].height,80);
+            set(hotspot[get(hsp_name)].width,1);
+            set(hotspot[get(hsp_name)].padding,0);
+            set(hotspot[get(hsp_name)].background,false);
+            txtadd(line,'<div style="background-color: ',get(borderColor),';width:1px;height:80px;"></div>');
+            copy(hotspot[get(hsp_name)].html,line);
+            <!-- txtadd(hotspot[get(hsp_name)].onloaded,"add_tooltip_label();add_tooltip_dot();"); -->
+            if(isShowLine == 1, 
+            txtadd(tooltipname, 'tooltip_', get(hsp_name)); 
+            txtadd(tooltipdot, 'tooldot_', get(hsp_name)); 
+            set(hotspot[get(hsp_name)].visible,false);
+            set(layer[get(tooltipname)].visible,false);
+            set(layer[get(tooltipdot)].visible,false);
+             
+            set_label_dir(get(hsp_name),get(lineDirection),0);
+            );
+           
+             if(isShowLine == 0, 
+                txtadd(tooltipname, 'tooltip_', get(hsp_name)); 
+                txtadd(tooltipdot, 'tooldot_', get(hsp_name)); 
+                <!-- set_label_dir(get(hsp_name),get(lineDirection),0); -->
+                set(hotspot[get(hsp_name)].width,0);
+                <!-- trace('隐藏标线::',get(tooltipdot)); -->
+                set(layer[get(tooltipname)].x,0);
+                set(layer[get(tooltipname)].y,0);
+                set(layer[get(tooltipname)].rotate,0);
+                set(hotspot[get(hsp_name)].visible,true);
+                set(layer[get(tooltipname)].visible,true);
+                set(layer[get(tooltipdot)].visible,false);
+             );  
+        );
+     
+        txtadd(hotspot[get(hsp_name)].onloaded,"make_hotsport_animation(get(framewidth),get(framewidth),get(frameRate));");
+        <!-- trace('last_add::',hotspot[get(hsp_name)].onloaded); -->
+        addhotspot(get(hsp_name));
+    </action>
+
+	<action name="make_hotsport_animation">
+    <!-- 1 square:(w/h) 2:imageW 3 imageH 4 frameRate -->
+       <!-- trace('imagewidth::',imagewidth,'::imageheight::',imageheight); -->
+        registerattribute(xframes, calc((imagewidth / %1) BOR 0));
+        registerattribute(yframes, calc((imageheight / %2) BOR 0)); 
+        registerattribute(frames, calc(xframes * yframes));
+        registerattribute(frame, 0); 
+        registerattribute(animatiedOn, 1); 
+        registerattribute(frameRate, %3);
+        <!-- trace('frameRate::',get(frameRate)); -->
+        set(crop, '0|0|%1|%2'); 
+        clearinterval(calc('crop_anim_' + name));
+        <!-- trace('frameRate',get(frameRate));  -->
+        if(%3 == '' OR frameRate == 0 OR isNaN(frameRate),
+        set(frameRate,calc(1.0 / 60));
+        <!-- trace('没有frameRate',get(calc(1.0 / 60)));
+        trace('没有frameRate-1',get(frameRate)); -->
+        );
+        <!-- trace('params::1::',%1,'::2::',%2,'::3::',%3,':frameRate:',get(frameRate));
+        trace('xframes1::',get(xframes),'::yframes1::',get(yframes)); -->
+   
+               
+        if(frameRate GE 0,
+        setinterval(
+            calc('crop_anim_' + name),
+            get(frameRate),
+            if(loaded, 
+                inc(frame); 
+               
+                <!-- trace('frame::',get(frame),'xframes2::',get(xframes),'::yframes2::',get(yframes)); -->
+                if(frame GE frames, if(onlastframe !== null, onlastframe() ); set(frame,0); );
+                mod(xpos,frame, xframes); 
+                div(ypos, frame, xframes);
+                Math.floor(ypos);
+                mul(xpos, %1);
+                mul(ypos, %2); 
+                calc(crop, xpos +'|' + ypos + '|%1|%2');
+ 
+                if(animatiedOn == 0, 
+                 calc(stopAniCrop,'0|0|'+imagewidth+'|'+imageheight +'|');
+                 set(crop, stopAniCrop);
+                );,
+                clearinterval(calc('crop_anim_' + name));
+            );
+        );
+        );   
+	</action>
+
+    <action name="add_tooltip_label">
+        txtadd(tooltipname, 'tooltip_', get(name)); 
+      
+        txtsplit(hotspotStyle,'|',fontSize,pos,isHover,borderColor,fillColor,textColor,isShowLine,isTextWrap,lineDirection,textDirection,textNumPerLine,duration,frameNumber);
+        txtadd(pName, get(name)); 
+        addlayer(get(tooltipname));
+        txtadd(layer[get(tooltipname)].parent, 'hotspot[', get(name), ']');
+        set(layer[get(tooltipname)].autowidth, true);
+        set(layer[get(tooltipname)].width,'prop');
+        set(layer[get(tooltipname)].autoheight,true); 
+        set(layer[get(tooltipname)].edge,center);
+        set(layer[get(tooltipname)].background,false);
+        set(layer[get(tooltipname)].pos,pos);
+        set(layer[get(tooltipname)].padding,0);
+        set(layer[get(tooltipname)].type,'html');
+        set(layer[get(tooltipname)].url,'%SWFPATH%/plugins/textfield.swf');
+        set(layer[get(tooltipname)].border,false);
+        set(layer[get(tooltipname)].align,center);
+        copy(layer[get(tooltipname)].hotlink, hotspot[get(name)].hotlink);
+        <!-- set(layer[get(tooltipname)].ondown,'dragJQlayer();'); -->
+        
+        set(layer[get(tooltipname)].onclick,JQlayerClick);
+        <!-- set(layer[get(tooltipname)].onup,js(console.log('1');__krfn.angle.updateHotSpotData(get(xml.scene),get(hsName),get(ath),get(atv)))); -->
+        <!-- set(hotspot[get(hsp_name)].onup,js(__krfn.angle.updateHotSpotData(get(xml.scene),get(name),get(ath),get(atv)))); -->
+        txtadd(labelCode, '<div style="display: flex; align-items: center; justify-content: center; position: relative; border: 1px solid ',get(borderColor),'; padding: 6px 10px; white-space: pre; border-radius: 5px; background: ',get(fillColor),'">','            <div style="text-align: left; font-size:',get(fontSize),'px; color: ',get(textColor),'; line-height: 1.4;">',get(hotspottitle),'</div>
+        </div>'); 
+        
+                                <!-- label方位 -->
+        if(get(hotspottype) LE 2,
+         copy(hoverstatus,hotspot[get(name)].hoverstatus); 
+         <!-- trace('hovering-label::',get(hoverstatus)); -->
+        <!-- delayedcall(0.1,
+            txtadd(tooltipname, 'tooltip_', get(name)); 
+            set_label_pos(get(tooltipname),get(pos));
+         ); -->
+          if(hoverstatus == 0,
+            delayedcall(0.5,
+            txtadd(tooltipname, 'tooltip_', get(name)); 
+            set_label_pos(get(tooltipname),get(pos));
+            );
+         );
+        if(hoverstatus == 1,
+            set(layer[get(tooltipname)].visible,false);
+         );
+          <!-- 2 hover  -->
+        if(hoverstatus == 2,
+            <!-- trace('测试'); -->
+           set(layer[get(tooltipname)].visible,false);
+            delayedcall(0.5,
+             txtadd(tooltipname, 'tooltip_', get(name)); 
+                set_label_pos(get(tooltipname),get(pos));
+                set(layer[get(tooltipname)].visible,false);
+            );
+            set(hotspot[get(name)].onhover,txtadd(tooltipname, 'tooltip_', get(name)); set(layer[get(tooltipname)].visible,true););
+            set(hotspot[get(name)].onout,
+             txtadd(tooltipname, 'tooltip_', get(name)); 
+             set(layer[get(tooltipname)].visible,false);
+            );
+         );
+       );
+
+        <!-- 个性化标签(3) -->
+        if(get(hotspottype) == 3,    
+           if(
+            isShowLine==1,
+            set(layer[get(tooltipname)].direction,get(lineDirection));
+            delayedcall(0.2,txtadd(tooltipname, 'tooltip_', get(name)); set_label_dir(get(tooltipname),get(layer[get(tooltipname)].direction),1); );
+          );
+        );
+        copy(layer[get(tooltipname)].html, labelCode);
+        
+            
+    </action>
+    <!-- <style name="tooltip_dot_bg" type="container" border-radius="50%" bgcolor="0xFFFFFF" bgalpha="0.9" height="20" width="20" keep="true" /> -->
+    <action name='add_tooltip_dot'>
+        txtadd(tooldot, 'tooldot_', get(name)); 
+        <!-- trace('hey::',get(borderColor)); -->
+
+        <!-- trace('add-dot-type::',get(name),'::',get(hotspottype)); -->
+        addlayer(get(tooldot));
+        txtadd(layer[get(tooldot)].parent, 'hotspot[', get(name), ']');
+        set(layer[get(tooldot)].width,10); 
+        set(layer[get(tooldot)].height,10); 
+        set(layer[get(tooldot)].padding,0); 
+       
+        set(layer[get(tooldot)].align,center);
+        set(layer[get(tooldot)].type,'text');
+        set(layer[get(tooldot)].background,false);
+        txtadd(dborderColor,'rgba(255,255,255,0.5)');
+        txtadd(dot,'<div style="background-color: ',get(borderColor),';width:10px;height:10px;"></div>');
+        copy(layer[get(tooldot)].html,dot);
+        set(layer[get(tooldot)].backgroundcolor,get(borderColor)); 
+        set(layer[get(tooldot)].backgroundalpha,0.9); 
+        set(layer[get(tooldot)].bgroundedge,5);
+        set(layer[get(tooldot)].onclick,JQlayerClick);
+        <!-- set(layer[get(tooldot)].ondown,'dragJQlayer();'); -->
+        set(layer[get(tooldot)].visible,false);
+        <!-- set(layer[get(tooldot)].onup,js(console.log('2');__krfn.angle.updateHotSpotData(get(xml.scene),get(hsName),get(ath),get(atv)))); -->
+
+        <!-- 个性化标签(3) -->
+        if(get(hotspottype) == 3,    
+    
+            if(isShowLine ==1,set(layer[get(tooldot)].visible,true);set_label_dir(get(tooldot),get(lineDirection),2););
+            if(isShowLine ==0,set(layer[get(tooldot)].visible,false););
+                  
+        );
+
+    </action>
+    <action name='set_label_dir'>
+     txtadd(dirItem,'',%1);
+     txtadd(lineDirection,'',%2);
+     txtadd(dir,'',%3);
+     <!-- trace('get-lineDirection::',%2); -->
+     <!-- trace('set_label_dir::1::',get(dirItem),'::2::',get(lineDirection),'::3::',get(dir)); -->
+     if(
+        get(dir)==1,
+        <!-- trace('set_label_dir::1::',get(dirItem),'::2::',get(lineDirection),'::3::',get(dir)); -->
+        copy(labelWidth,layer[get(dirItem)].width);
+        copy(labelHeight,layer[get(dirItem)].height);
+  
+  
+     );
+
+        if(
+             get(lineDirection) == 'right-top',
+            if(get(dir)==0,set(hotspot[get(dirItem)].rotate,35));
+            if(get(dir)==1,add(allHeight,labelHeight,80);div(allHeight,2);mul(allHeight,-1);set(layer[get(dirItem)].rotate,0);set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,get(allHeight));set(layer[get(dirItem)].rotate,-35););
+            if(get(dir)==2,set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,40););
+        );
+        if(
+             get(lineDirection) == 'right-center',
+             if(get(dir)==0,set(hotspot[get(dirItem)].rotate,90););
+             if(get(dir)==1,
+                set(layer[get(dirItem)].rotate,-90);
+               add(allWidth,labelWidth,80);
+                div(allWidth,2);
+                mul(allWidth,-1);
+                trace('allWidth::',get(allWidth));
+                set(layer[get(dirItem)].x,0);
+                set(layer[get(dirItem)].y,get(allWidth));
+                );
+           
+             if(get(dir)==2,set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,40););
+        );
+        if(
+             get(lineDirection) == 'right-bottom',
+            if(get(dir)==0,set(hotspot[get(dirItem)].rotate,-35));
+            if(get(dir)==1,add(allHeight,labelHeight,80);div(allHeight,2);mul(allHeight,1);set(layer[get(dirItem)].rotate,0);set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,get(allHeight));set(layer[get(dirItem)].rotate,35););
+           if(get(dir)==2,set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,-40););
+        );
+        if(
+             get(lineDirection) == 'center-top',
+            if(get(dir)==0,
+            set(hotspot[get(dirItem)].rotate,0);
+            );
+            if(get(dir)==1,add(allHeight,labelHeight,80);div(allHeight,2);mul(allHeight,-1);set(layer[get(dirItem)].rotate,0);set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,get(allHeight)););
+            if(get(dir)==2,set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,40););
+        );
+        if(get(lineDirection) == 'center-bottom',
+            if(get(dir)==0,set(hotspot[get(dirItem)].rotate,0));
+            if(get(dir)==1,add(allHeight,labelHeight,80);div(allHeight,2);mul(allHeight,1);
+               set(layer[get(dirItem)].rotate,0);
+               set(layer[get(dirItem)].x,0);
+               set(layer[get(dirItem)].y,get(allHeight));     
+              );
+            if(get(dir)==2,set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,-40););
+        );
+        if( get(lineDirection) == 'left-top',
+        <!-- newx = distance * Math.cos(direction) + x
+        newy = distance * Math.sin(direction) + y -->
+            <!-- showlog(); -->
+            if(get(dir)==0,set(hotspot[get(dirItem)].rotate,-35));
+            if(get(dir)==1,
+            add(allHeight,labelHeight,80);
+            div(allHeight,2);mul(allHeight,-1);
+            set(rr,calc((Math.PI / 180) * -35));
+            <!-- set(newY,calc(allHeight * Math.asin(rr))); -->
+            trace('newY',allHeight);
+            set(layer[get(dirItem)].rotate,0);
+            set(layer[get(dirItem)].x,0);
+            set(layer[get(dirItem)].y,get(allHeight));
+            set(layer[get(dirItem)].rotate,35););
+            if(get(dir)==2,set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,40););
+        );
+        if(
+             get(lineDirection) == 'left-center',
+             if(get(dir)==0,set(hotspot[get(dirItem)].rotate,90));
+             
+             if(get(dir)==1,
+                set(layer[get(dirItem)].rotate,-90);
+               add(allWidth,labelWidth,80);
+                div(allWidth,2);
+                trace('allWidth::',get(allWidth));
+                set(layer[get(dirItem)].x,0);
+                set(layer[get(dirItem)].y,get(allWidth));
+                );
+             if(get(dir)==2,set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,-40););
+        );
+        if(
+            get(lineDirection) == 'left-bottom',
+            if(get(dir)==0,set(hotspot[get(dirItem)].rotate,35));
+            if(get(dir)==1,add(allHeight,labelHeight,80);div(allHeight,2);mul(allHeight,1);set(layer[get(dirItem)].rotate,0);set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,get(allHeight));set(layer[get(dirItem)].rotate,-35););
+            if(get(dir)==2,set(layer[get(dirItem)].x,0);set(layer[get(dirItem)].y,-40););
+
+        );
+          
+          if(get(dir)==0, set(hotspot[get(dirItem)].visible,true););
+          if(get(dir)==1, set(layer[get(dirItem)].visible,true););
+          if(get(dir)==2, set(layer[get(dirItem)].visible,true););
+
+    </action>
+
+    <action name='set_label_pos'>
+        <!-- label方位 -->
+       <!-- showlog(); -->
+       set(posName,%1);
+       set(pos,%2);
+       copy(hp,posName);
+       txtreplace(hp,'tooltip_','');
+
+       copy(hwidth, hotspot[get(hp)].width);
+       copy(hheight, hotspot[get(hp)].height);
+       <!-- trace('hwidth::',get(hwidth)); -->
+       copy(lwidth, layer[get(posName)].width);
+       copy(lheight, layer[get(posName)].height);
+       trace(calc('当前热点pos::' + get(pos)));
+       trace(calc('当前热点动态宽::' + get(hp)+"::"),get(lwidth));
+       trace(calc('当前热点动态高::' + get(hp)+"::"),get(lheight));
+
+        if(
+            pos == 'top',
+            add(all,lheight,hheight);
+            div(dpy,all,2); 
+            add(lastPy,dpy,5);
+            <!-- trace('dpy::',dpy); -->
+            mul(lastPy, -1);
+            set(layer[get(posName)].align,center);
+            set(layer[get(posName)].y,get(lastPy));
+            set(layer[get(posName)].x,0);
+        );
+         if(
+            pos == 'bottom',
+            add(all,lheight,hheight);
+            div(dpy,all,2); 
+            add(lastPy,dpy,5);
+            mul(lastPy, 1);
+            set(layer[get(posName)].align,center);
+            set(layer[get(posName)].y,get(lastPy));
+            set(layer[get(posName)].x,0);
+        );
+        if(
+            pos == 'left',
+            add(all,lwidth,hwidth);
+            div(dpx,all,2); 
+            add(lastPx,dpx,10);
+            mul(lastPx, -1);
+            set(layer[get(posName)].align,center);
+            set(layer[get(posName)].x,get(lastPx));
+            set(layer[get(posName)].y,0);
+        );
+        if(
+            pos == 'right',
+            add(all,lwidth,hwidth);
+            div(dpx,all,2); 
+            add(lastPx,dpx,10);
+            mul(lastPx, 1);
+            set(layer[get(posName)].align,center);
+            set(layer[get(posName)].x,get(lastPx));
+            set(layer[get(posName)].y,0);
+        );
+    </action>
+
+ 
+
+<action name='JQlayerClick'>
+       txtadd(clickName, '', get(name)); 
+       txtreplace(clickName, 'tooltip_', ''); 
+       txtreplace(clickName, 'tooldot_', ''); 
+       <!-- trace('opentype::',get(hotspot[get(clickName)].opentype));
+       trace('clickName::',get(clickName)); -->
+       js(__sdk.Tags.linkopen(get(hotspot[get(clickName)].opentype),get(clickName)));
+</action>
+
+</krpano>

+ 146 - 0
public/showviewer/lib/krpano/tour.xml

@@ -0,0 +1,146 @@
+<krpano version="1.19" title="Virtual Tour">
+
+	<include url="%SWFPATH%/skin/vtourskin.xml" />
+
+	<!-- customize skin settings: maps, gyro, webvr, thumbnails, tooltips, layout, design, ... -->
+	<skin_settings maps="false"
+	               maps_type="google"
+	               maps_bing_api_key=""
+	               maps_google_api_key=""
+	               maps_zoombuttons="false"
+	               gyro="true"
+	               webvr="true"
+	               webvr_gyro_keeplookingdirection="false"
+	               webvr_prev_next_hotspots="true"
+	               littleplanetintro="true"
+	               title="true"
+	               thumbs="true"
+	               thumbs_width="120" thumbs_height="80" thumbs_padding="10" thumbs_crop="0|40|240|160"
+	               thumbs_opened="false"
+	               thumbs_text="false"
+	               thumbs_dragging="true"
+	               thumbs_onhoverscrolling="false"
+	               thumbs_scrollbuttons="false"
+	               thumbs_scrollindicator="false"
+	               thumbs_loop="false"
+	               tooltips_buttons="false"
+	               tooltips_thumbs="false"
+	               tooltips_hotspots="false"
+	               tooltips_mapspots="false"
+	               deeplinking="false"
+	               loadscene_flags="MERGE"
+	               loadscene_blend="OPENBLEND(0.5, 0.0, 0.75, 0.05, linear)"
+	               loadscene_blend_prev="SLIDEBLEND(0.5, 180, 0.75, linear)"
+	               loadscene_blend_next="SLIDEBLEND(0.5,   0, 0.75, linear)"
+	               loadingtext="loading..."
+	               layout_width="100%"
+	               layout_maxwidth="814"
+	               controlbar_width="-24"
+	               controlbar_height="40"
+	               controlbar_offset="20"
+	               controlbar_offset_closed="-40"
+	               controlbar_overlap.no-fractionalscaling="10"
+	               controlbar_overlap.fractionalscaling="0"
+	               design_skin_images="vtourskin.png"
+	               design_bgcolor="0x2D3E50"
+	               design_bgalpha="0.8"
+	               design_bgborder="0"
+	               design_bgroundedge="1"
+	               design_bgshadow="0 4 10 0x000000 0.3"
+	               design_thumbborder_bgborder="3 0xFFFFFF 1.0"
+	               design_thumbborder_padding="2"
+	               design_thumbborder_bgroundedge="0"
+	               design_text_css="color:#FFFFFF; font-family:Arial;"
+	               design_text_shadow="1"
+	               />
+
+	<!--
+	    For an alternative skin design either change the <skin_settings> values 
+	    from above or optionally include one of the predefined designs from below.
+	-->
+	<!-- <include url="skin/vtourskin_design_flat_light.xml"  /> -->
+	<!-- <include url="skin/vtourskin_design_glass.xml"       /> -->
+	<!-- <include url="skin/vtourskin_design_ultra_light.xml" /> -->
+	<!-- <include url="skin/vtourskin_design_117.xml"         /> -->
+	<!-- <include url="skin/vtourskin_design_117round.xml"    /> -->
+	<!-- <include url="skin/vtourskin_design_black.xml"       /> -->
+
+
+	<!-- startup action - load the first scene -->
+	<action name="startup" autorun="onstart">
+		if(startscene === null OR !scene[get(startscene)], copy(startscene,scene[0].name); );
+		loadscene(get(startscene), null, MERGE);
+		if(startactions !== null, startactions() );
+	</action>
+
+
+	
+	 
+	
+	<scene name="scene_LC720_0t8dybyQW" title="LC720_0t8dybyQW" onstart="" thumburl="panos/LC720_0t8dybyQW.tiles/thumb.jpg" lat="" lng="" heading="">
+
+		<view hlookat="0.0" vlookat="0.0" fovtype="MFOV" fov="120" maxpixelzoom="2.0" fovmin="70" fovmax="140" limitview="auto" />
+
+		<preview url="panos/LC720_0t8dybyQW.tiles/preview.jpg" />
+
+		<image type="CUBE" multires="true" tilesize="512">
+			<level tiledimagewidth="5376" tiledimageheight="5376">
+				<cube url="panos/LC720_0t8dybyQW.tiles/%s/l4/%v/l4_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="2688" tiledimageheight="2688">
+				<cube url="panos/LC720_0t8dybyQW.tiles/%s/l3/%v/l3_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="1280" tiledimageheight="1280">
+				<cube url="panos/LC720_0t8dybyQW.tiles/%s/l2/%v/l2_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="640" tiledimageheight="640">
+				<cube url="panos/LC720_0t8dybyQW.tiles/%s/l1/%v/l1_%s_%v_%h.jpg" />
+			</level>
+		</image>
+
+	</scene>
+
+
+	
+	<scene name="scene_LC720_LPxLKsriO" title="LC720_LPxLKsriO" onstart="" thumburl="panos/LC720_LPxLKsriO.tiles/thumb.jpg" lat="" lng="" heading="">
+
+		<view hlookat="0.0" vlookat="0.0" fovtype="MFOV" fov="120" maxpixelzoom="2.0" fovmin="70" fovmax="140" limitview="auto" />
+
+		<preview url="panos/LC720_LPxLKsriO.tiles/preview.jpg" />
+
+		<image type="CUBE" multires="true" tilesize="512">
+			<level tiledimagewidth="2624" tiledimageheight="2624">
+				<cube url="panos/LC720_LPxLKsriO.tiles/%s/l3/%v/l3_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="1280" tiledimageheight="1280">
+				<cube url="panos/LC720_LPxLKsriO.tiles/%s/l2/%v/l2_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="640" tiledimageheight="640">
+				<cube url="panos/LC720_LPxLKsriO.tiles/%s/l1/%v/l1_%s_%v_%h.jpg" />
+			</level>
+		</image>
+
+	</scene>
+
+
+<scene name="scene_fd720_HLWHObl0I" title="fd720_HLWHObl0I" onstart="" thumburl="https://ossxiaoan.4dage.com/720yun_fd_manage/fd720_HLWHObl0I/vtour/panos/fd720_HLWHObl0I.tiles/thumb.jpg" lat="" lng="" heading="">
+<view hlookat="0.0" vlookat="0.0" fovtype="MFOV" fov="120" maxpixelzoom="2.0" fovmin="70" fovmax="140" limitview="auto"/>
+<preview url="https://ossxiaoan.4dage.com/720yun_fd_manage/fd720_HLWHObl0I/vtour/panos/fd720_HLWHObl0I.tiles/preview.jpg"/>
+		<image type="CUBE" multires="true" tilesize="512">
+		<level tiledimagewidth="5184" tiledimageheight="5184">
+		<cube url="https://ossxiaoan.4dage.com/720yun_fd_manage/fd720_HLWHObl0I/vtour/panos/fd720_HLWHObl0I.tiles/%s/l4/%v/l4_%s_%v_%h.jpg"/>
+		</level>
+		<level tiledimagewidth="2624" tiledimageheight="2624">
+		<cube url="https://ossxiaoan.4dage.com/720yun_fd_manage/fd720_HLWHObl0I/vtour/panos/fd720_HLWHObl0I.tiles/%s/l3/%v/l3_%s_%v_%h.jpg"/>
+		</level>
+		<level tiledimagewidth="1280" tiledimageheight="1280">
+		<cube url="https://ossxiaoan.4dage.com/720yun_fd_manage/fd720_HLWHObl0I/vtour/panos/fd720_HLWHObl0I.tiles/%s/l2/%v/l2_%s_%v_%h.jpg"/>
+		</level>
+		<level tiledimagewidth="640" tiledimageheight="640">
+		<cube url="https://ossxiaoan.4dage.com/720yun_fd_manage/fd720_HLWHObl0I/vtour/panos/fd720_HLWHObl0I.tiles/%s/l1/%v/l1_%s_%v_%h.jpg"/>
+		</level>
+		</image>
+</scene>
+
+
+ </krpano>

+ 207 - 0
public/showviewer/lib/krpano/tour_test1.xml

@@ -0,0 +1,207 @@
+<krpano version="1.19" debugmode="true" logkey="true" title="Virtual Tour">
+
+	<include url="%SWFPATH%/skin/vtourskin.xml" />
+
+	<!-- customize skin settings: maps, gyro, webvr, thumbnails, tooltips, layout, design, ... -->
+	<skin_settings maps="false"
+	               maps_type="google"
+	               maps_bing_api_key=""
+	               maps_google_api_key=""
+	               maps_zoombuttons="false"
+	               gyro="true"
+	               webvr="true"
+	               webvr_gyro_keeplookingdirection="false"
+	               webvr_prev_next_hotspots="true"
+	               littleplanetintro="false"
+	               title="true"
+	               thumbs="true"
+	               thumbs_width="120" thumbs_height="80" thumbs_padding="10" thumbs_crop="0|40|240|160"
+	               thumbs_opened="false"
+	               thumbs_text="false"
+	               thumbs_dragging="true"
+	               thumbs_onhoverscrolling="false"
+	               thumbs_scrollbuttons="false"
+	               thumbs_scrollindicator="false"
+	               thumbs_loop="false"
+	               tooltips_buttons="false"
+	               tooltips_thumbs="false"
+	               tooltips_hotspots="false"
+	               tooltips_mapspots="false"
+	               deeplinking="false"
+	               loadscene_flags="MERGE"
+	               loadscene_blend="OPENBLEND(0.5, 0.0, 0.75, 0.05, linear)"
+	               loadscene_blend_prev="SLIDEBLEND(0.5, 180, 0.75, linear)"
+	               loadscene_blend_next="SLIDEBLEND(0.5,   0, 0.75, linear)"
+	               loadingtext="loading..."
+	               layout_width="100%"
+	               layout_maxwidth="814"
+	               controlbar_width="-24"
+	               controlbar_height="40"
+	               controlbar_offset="20"
+	               controlbar_offset_closed="-40"
+	               controlbar_overlap.no-fractionalscaling="10"
+	               controlbar_overlap.fractionalscaling="0"
+	               design_skin_images="vtourskin.png"
+	               design_bgcolor="0x2D3E50"
+	               design_bgalpha="0.8"
+	               design_bgborder="0"
+	               design_bgroundedge="1"
+	               design_bgshadow="0 4 10 0x000000 0.3"
+	               design_thumbborder_bgborder="3 0xFFFFFF 1.0"
+	               design_thumbborder_padding="2"
+	               design_thumbborder_bgroundedge="0"
+	               design_text_css="color:#FFFFFF; font-family:Arial;"
+	               design_text_shadow="1"
+	               />
+
+	<!--
+	    For an alternative skin design either change the <skin_settings> values 
+	    from above or optionally include one of the predefined designs from below.
+	-->
+	<!-- <include url="skin/vtourskin_design_flat_light.xml"  /> -->
+	<!-- <include url="skin/vtourskin_design_glass.xml"       /> -->
+	<!-- <include url="skin/vtourskin_design_ultra_light.xml" /> -->
+	<!-- <include url="skin/vtourskin_design_117.xml"         /> -->
+	<!-- <include url="skin/vtourskin_design_117round.xml"    /> -->
+	<!-- <include url="skin/vtourskin_design_black.xml"       /> -->
+
+
+
+	
+	 
+
+
+	
+	<scene name="scene_LC720_0t8dybyQW" title="LC720_0t8dybyQW" onstart="" thumburl="http://192.168.0.245:8007/pano/LC720_0t8dybyQW/panos/LC720_0t8dybyQW.tiles/thumb.jpg" lat="" lng="" heading="">
+
+		<view hlookat="0.0" vlookat="0.0" fovtype="MFOV" fov="120" maxpixelzoom="2.0" fovmin="70" fovmax="140" limitview="auto" />
+
+		<preview url="http://192.168.0.245:8007/pano/LC720_0t8dybyQW/panos/LC720_0t8dybyQW.tiles/preview.jpg" />
+
+		<image type="CUBE" multires="true" tilesize="512">
+			<level tiledimagewidth="5376" tiledimageheight="5376">
+				<cube url="http://192.168.0.245:8007/pano/LC720_0t8dybyQW/panos/LC720_0t8dybyQW.tiles/%s/l4/%v/l4_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="2688" tiledimageheight="2688">
+				<cube url="http://192.168.0.245:8007/pano/LC720_0t8dybyQW/panos/LC720_0t8dybyQW.tiles/%s/l3/%v/l3_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="1280" tiledimageheight="1280">
+				<cube url="http://192.168.0.245:8007/pano/LC720_0t8dybyQW/panos/LC720_0t8dybyQW.tiles/%s/l2/%v/l2_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="640" tiledimageheight="640">
+				<cube url="http://192.168.0.245:8007/pano/LC720_0t8dybyQW/panos/LC720_0t8dybyQW.tiles/%s/l1/%v/l1_%s_%v_%h.jpg" />
+			</level>
+		</image>
+
+	</scene>
+
+
+
+
+
+
+	
+	<scene name="scene_LC720_LPxLKsriO" title="LC720_LPxLKsriO" onstart="" thumburl="http://192.168.0.245:8007/pano/LC720_LPxLKsriO/panos/LC720_LPxLKsriO.tiles/thumb.jpg" lat="" lng="" heading="">
+
+		<view hlookat="0.0" vlookat="0.0" fovtype="MFOV" fov="120" maxpixelzoom="2.0" fovmin="70" fovmax="140" limitview="auto" />
+
+		<preview url="http://192.168.0.245:8007/pano/LC720_LPxLKsriO/panos/LC720_LPxLKsriO.tiles/preview.jpg" />
+
+		<image type="CUBE" multires="true" tilesize="512">
+			<level tiledimagewidth="2624" tiledimageheight="2624">
+				<cube url="http://192.168.0.245:8007/pano/LC720_LPxLKsriO/panos/LC720_LPxLKsriO.tiles/%s/l3/%v/l3_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="1280" tiledimageheight="1280">
+				<cube url="http://192.168.0.245:8007/pano/LC720_LPxLKsriO/panos/LC720_LPxLKsriO.tiles/%s/l2/%v/l2_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="640" tiledimageheight="640">
+				<cube url="http://192.168.0.245:8007/pano/LC720_LPxLKsriO/panos/LC720_LPxLKsriO.tiles/%s/l1/%v/l1_%s_%v_%h.jpg" />
+			</level>
+		</image>
+
+	</scene>
+
+
+
+
+
+
+	
+	<scene name="scene_LC720_E9iaNYFNU" title="LC720_E9iaNYFNU" onstart="" thumburl="http://192.168.0.245:8007/pano/LC720_E9iaNYFNU/panos/LC720_E9iaNYFNU.tiles/thumb.jpg" lat="" lng="" heading="">
+
+		<view hlookat="0.0" vlookat="0.0" fovtype="MFOV" fov="120" maxpixelzoom="2.0" fovmin="70" fovmax="140" limitview="auto" />
+
+		<preview url="http://192.168.0.245:8007/pano/LC720_E9iaNYFNU/panos/LC720_E9iaNYFNU.tiles/preview.jpg" />
+
+		<image type="CUBE" multires="true" tilesize="512">
+			<level tiledimagewidth="1280" tiledimageheight="1280">
+				<cube url="http://192.168.0.245:8007/pano/LC720_E9iaNYFNU/panos/LC720_E9iaNYFNU.tiles/%s/l2/%v/l2_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="640" tiledimageheight="640">
+				<cube url="http://192.168.0.245:8007/pano/LC720_E9iaNYFNU/panos/LC720_E9iaNYFNU.tiles/%s/l1/%v/l1_%s_%v_%h.jpg" />
+			</level>
+		</image>
+
+	</scene>
+
+
+
+
+
+
+	
+	<scene name="scene_LC720_iFNiGfEaD" title="LC720_iFNiGfEaD" onstart="" thumburl="http://192.168.0.245:8007/pano/LC720_iFNiGfEaD/panos/LC720_iFNiGfEaD.tiles/thumb.jpg" lat="" lng="" heading="">
+
+		<view hlookat="0.0" vlookat="0.0" fovtype="MFOV" fov="120" maxpixelzoom="2.0" fovmin="70" fovmax="140" limitview="auto" />
+
+		<preview url="http://192.168.0.245:8007/pano/LC720_iFNiGfEaD/panos/LC720_iFNiGfEaD.tiles/preview.jpg" />
+
+		<image type="CUBE" multires="true" tilesize="512">
+			<level tiledimagewidth="5376" tiledimageheight="5376">
+				<cube url="http://192.168.0.245:8007/pano/LC720_iFNiGfEaD/panos/LC720_iFNiGfEaD.tiles/%s/l4/%v/l4_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="2688" tiledimageheight="2688">
+				<cube url="http://192.168.0.245:8007/pano/LC720_iFNiGfEaD/panos/LC720_iFNiGfEaD.tiles/%s/l3/%v/l3_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="1280" tiledimageheight="1280">
+				<cube url="http://192.168.0.245:8007/pano/LC720_iFNiGfEaD/panos/LC720_iFNiGfEaD.tiles/%s/l2/%v/l2_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="640" tiledimageheight="640">
+				<cube url="http://192.168.0.245:8007/pano/LC720_iFNiGfEaD/panos/LC720_iFNiGfEaD.tiles/%s/l1/%v/l1_%s_%v_%h.jpg" />
+			</level>
+		</image>
+
+	</scene>
+
+
+
+
+
+
+	
+	<scene name="scene_LC720_xBDfIKWZu" title="LC720_xBDfIKWZu" onstart="" thumburl="http://192.168.0.245:8007/pano/LC720_xBDfIKWZu/panos/LC720_xBDfIKWZu.tiles/thumb.jpg" lat="" lng="" heading="">
+
+		<view hlookat="0.0" vlookat="0.0" fovtype="MFOV" fov="120" maxpixelzoom="2.0" fovmin="70" fovmax="140" limitview="auto" />
+
+		<preview url="http://192.168.0.245:8007/pano/LC720_xBDfIKWZu/panos/LC720_xBDfIKWZu.tiles/preview.jpg" />
+
+		<image type="CUBE" multires="true" tilesize="512">
+			<level tiledimagewidth="5376" tiledimageheight="5376">
+				<cube url="http://192.168.0.245:8007/pano/LC720_xBDfIKWZu/panos/LC720_xBDfIKWZu.tiles/%s/l4/%v/l4_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="2688" tiledimageheight="2688">
+				<cube url="http://192.168.0.245:8007/pano/LC720_xBDfIKWZu/panos/LC720_xBDfIKWZu.tiles/%s/l3/%v/l3_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="1280" tiledimageheight="1280">
+				<cube url="http://192.168.0.245:8007/pano/LC720_xBDfIKWZu/panos/LC720_xBDfIKWZu.tiles/%s/l2/%v/l2_%s_%v_%h.jpg" />
+			</level>
+			<level tiledimagewidth="640" tiledimageheight="640">
+				<cube url="http://192.168.0.245:8007/pano/LC720_xBDfIKWZu/panos/LC720_xBDfIKWZu.tiles/%s/l1/%v/l1_%s_%v_%h.jpg" />
+			</level>
+		</image>
+
+	</scene>
+
+
+
+ </krpano>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 13 - 0
public/showviewer/lib/swiper/swiper-bundle.min.css


Dosya farkı çok büyük olduğundan ihmal edildi
+ 14 - 0
public/showviewer/lib/swiper/swiper-bundle.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 13 - 0
public/showviewer/lib/swiper/swiper.min.css


Dosya farkı çok büyük olduğundan ihmal edildi
+ 14 - 0
public/showviewer/lib/swiper/swiper.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
public/showviewer/lib/swiper/swiper.min.js.map


BIN
public/showviewer/panoassets/images/hotspot/icon-old/img_doticon_01.png


+ 21 - 0
public/showviewer/panoassets/images/hotspot/icon-old/img_doticon_01.svg

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="28px" height="28px" viewBox="0 0 28 28" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>img_doticon_01</title>
+    <g id="编辑器" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="icon" transform="translate(-301.000000, -514.000000)" fill-rule="nonzero">
+            <g id="img_doticon_01" transform="translate(301.000000, 514.000000)">
+                <rect id="box" fill-opacity="0" fill="#FFFFFF" x="0" y="0" width="28" height="28"></rect>
+                <g id="组_3856" transform="translate(0.000000, 6.000000)">
+                    <path d="M14.001,7.555 L0.056,15.785 C0.0126054449,15.8112854 -0.00867245421,15.8627216 0.00347072632,15.9119816 C0.0156139069,15.9612417 0.058360381,15.9968951 0.109,16 L6.222,16 L13.999,11.41 L21.776,16 L27.89,16 C27.9406396,15.9968951 27.9833861,15.9612417 27.9955293,15.9119816 C28.0076725,15.8627216 27.9863946,15.8112854 27.943,15.785 L14.001,7.555 Z" id="路径_1339-2" fill="#000000" opacity="0.4"></path>
+                    <path d="M14.002,4.683 L19.961,7.875 L24.511,7.875 C24.5624468,7.87202014 24.6057597,7.83545696 24.6173305,7.78523975 C24.6289013,7.73502254 24.6059555,7.68319237 24.561,7.658 L14.002,2 L3.443,7.658 C3.39804452,7.68319237 3.37509869,7.73502254 3.38666948,7.78523975 C3.39824026,7.83545696 3.44155322,7.87202014 3.493,7.875 L8.043,7.875 L14.002,4.683 Z" id="路径_1340-2" fill="#000000" opacity="0.6"></path>
+                    <g id="编组" transform="translate(0.000000, 5.000000)" fill="#FFFFFF" opacity="0.8">
+                        <path d="M13.998,0.553 L0.051,8.796 C0.00871211887,8.82153017 -0.0116166444,8.87193307 0.00112551213,8.91965824 C0.0138676686,8.96738341 0.0566143459,9.00094578 0.106,9.002 L6.227,9.002 L13.996,4.411 L21.765,9.002 L27.888,9.002 C27.9373857,9.00094578 27.9801323,8.96738341 27.9928745,8.91965824 C28.0056166,8.87193307 27.9852879,8.82153017 27.943,8.796 L13.998,0.553 Z" id="路径_1339-3-2"></path>
+                    </g>
+                    <g id="编组" transform="translate(3.000000, 0.000000)" fill="#FFFFFF">
+                        <path d="M11.003,2.681 L16.956,5.873 L21.517,5.873 C21.567027,5.87169479 21.6099942,5.83707541 21.6219116,5.78847112 C21.633829,5.73986684 21.6117492,5.68929839 21.568,5.665 L11.003,-0.001 L0.437,5.665 C0.393250843,5.68929839 0.371170959,5.73986684 0.383088355,5.78847112 C0.395005751,5.83707541 0.437973037,5.87169479 0.488,5.873 L5.05,5.873 L11.003,2.681 Z" id="路径_1340-3-2"></path>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>

+ 0 - 0
public/showviewer/panoassets/images/hotspot/icon-old/img_doticon_01@2x.png


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor