bx-1379-redesign #15

Merged
ksenia_mikhailova merged 124 commits from bx-1379-redesign into dev 2024-09-06 15:39:13 +03:00
9 changed files with 154 additions and 97 deletions
Showing only changes of commit 73d3e661ea - Show all commits

View File

@ -10,7 +10,7 @@ declare module 'vue' {
Composer: typeof import('./src/components/Promo/composer.vue')['default'] Composer: typeof import('./src/components/Promo/composer.vue')['default']
Env: typeof import('./src/components/Promo/env.vue')['default'] Env: typeof import('./src/components/Promo/env.vue')['default']
Floorplan: typeof import('./src/components/Floorplan/index.vue')['default'] Floorplan: typeof import('./src/components/Floorplan/index.vue')['default']
Gallery: typeof import('./src/components/Gallery/index.vue')['default'] Gallery: typeof import('./src/components/Gallery/gallery.vue')['default']
Game: typeof import('./src/components/Game.vue')['default'] Game: typeof import('./src/components/Game.vue')['default']
Home: typeof import('./src/components/Home.vue')['default'] Home: typeof import('./src/components/Home.vue')['default']
IIconMdiHomeOutline: typeof import('~icons/ic/on-mdi-home-outline')['default'] IIconMdiHomeOutline: typeof import('~icons/ic/on-mdi-home-outline')['default']
@ -35,7 +35,7 @@ declare module 'vue' {
Item: typeof import('./src/components/Floorplan/item.vue')['default'] Item: typeof import('./src/components/Floorplan/item.vue')['default']
Load: typeof import('./src/components/load.vue')['default'] Load: typeof import('./src/components/load.vue')['default']
Load_models: typeof import('./src/components/Promo/load_models.vue')['default'] Load_models: typeof import('./src/components/Promo/load_models.vue')['default']
Main: typeof import('./src/components/Promo/main.vue')['default'] Main: typeof import('./src/components/Main/index.vue')['default']
ModelItem: typeof import('./src/components/Promo/modelItem.vue')['default'] ModelItem: typeof import('./src/components/Promo/modelItem.vue')['default']
Models: typeof import('./src/components/Promo/models.vue')['default'] Models: typeof import('./src/components/Promo/models.vue')['default']
Nav: typeof import('./src/components/nav.vue')['default'] Nav: typeof import('./src/components/nav.vue')['default']

159
front/package-lock.json generated
View File

@ -14,7 +14,7 @@
"@iconify/vue": "^4.1.2", "@iconify/vue": "^4.1.2",
"@monogrid/gainmap-js": "^3.0.5", "@monogrid/gainmap-js": "^3.0.5",
"@tresjs/cientos": "^3.9.0", "@tresjs/cientos": "^3.9.0",
"@tresjs/core": "^4.0.2", "@tresjs/core": "^4.2.9",
"@tresjs/leches": "^0.14.0", "@tresjs/leches": "^0.14.0",
"@tresjs/post-processing": "^0.7.1", "@tresjs/post-processing": "^0.7.1",
"@vueuse/components": "^10.9.0", "@vueuse/components": "^10.9.0",
@ -828,13 +828,14 @@
} }
}, },
"node_modules/@tresjs/core": { "node_modules/@tresjs/core": {
"version": "4.0.2", "version": "4.2.9",
"resolved": "https://registry.npmjs.org/@tresjs/core/-/core-4.0.2.tgz", "resolved": "https://registry.npmjs.org/@tresjs/core/-/core-4.2.9.tgz",
"integrity": "sha512-+Shy5ch4m9gQSHRlArZAn4nv2apaFJJv21bAvpOKRXTCtGu0BakKGUpWcTzzmDsTs9t6yndbjCWzyifggjFpQQ==", "integrity": "sha512-e5RIRSlIOtrIHBZr4t/5bQ0v+egzDkojENaLOPELJ2TxwJAs33QJUfPTkPPVXc0gSDHzH47qFHqUCGIQ/LYG3w==",
"license": "MIT",
"dependencies": { "dependencies": {
"@alvarosabu/utils": "^3.2.0", "@alvarosabu/utils": "^3.2.0",
"@vue/devtools-api": "^6.6.2", "@vue/devtools-api": "^6.6.3",
"@vueuse/core": "^10.10.0" "@vueuse/core": "^10.11.0"
}, },
"peerDependencies": { "peerDependencies": {
"three": ">=0.133", "three": ">=0.133",
@ -842,24 +843,26 @@
} }
}, },
"node_modules/@tresjs/core/node_modules/@vueuse/core": { "node_modules/@tresjs/core/node_modules/@vueuse/core": {
"version": "10.10.0", "version": "10.11.1",
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.10.0.tgz", "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.1.tgz",
"integrity": "sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw==", "integrity": "sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==",
"license": "MIT",
"dependencies": { "dependencies": {
"@types/web-bluetooth": "^0.0.20", "@types/web-bluetooth": "^0.0.20",
"@vueuse/metadata": "10.10.0", "@vueuse/metadata": "10.11.1",
"@vueuse/shared": "10.10.0", "@vueuse/shared": "10.11.1",
"vue-demi": ">=0.14.7" "vue-demi": ">=0.14.8"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/antfu" "url": "https://github.com/sponsors/antfu"
} }
}, },
"node_modules/@tresjs/core/node_modules/@vueuse/core/node_modules/vue-demi": { "node_modules/@tresjs/core/node_modules/@vueuse/core/node_modules/vue-demi": {
"version": "0.14.8", "version": "0.14.10",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
"integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT",
"bin": { "bin": {
"vue-demi-fix": "bin/vue-demi-fix.js", "vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js" "vue-demi-switch": "bin/vue-demi-switch.js"
@ -881,29 +884,32 @@
} }
}, },
"node_modules/@tresjs/core/node_modules/@vueuse/metadata": { "node_modules/@tresjs/core/node_modules/@vueuse/metadata": {
"version": "10.10.0", "version": "10.11.1",
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.10.0.tgz", "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.1.tgz",
"integrity": "sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug==", "integrity": "sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==",
"license": "MIT",
"funding": { "funding": {
"url": "https://github.com/sponsors/antfu" "url": "https://github.com/sponsors/antfu"
} }
}, },
"node_modules/@tresjs/core/node_modules/@vueuse/shared": { "node_modules/@tresjs/core/node_modules/@vueuse/shared": {
"version": "10.10.0", "version": "10.11.1",
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.10.0.tgz", "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.1.tgz",
"integrity": "sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og==", "integrity": "sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==",
"license": "MIT",
"dependencies": { "dependencies": {
"vue-demi": ">=0.14.7" "vue-demi": ">=0.14.8"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/antfu" "url": "https://github.com/sponsors/antfu"
} }
}, },
"node_modules/@tresjs/core/node_modules/@vueuse/shared/node_modules/vue-demi": { "node_modules/@tresjs/core/node_modules/@vueuse/shared/node_modules/vue-demi": {
"version": "0.14.8", "version": "0.14.10",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
"integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT",
"bin": { "bin": {
"vue-demi-fix": "bin/vue-demi-fix.js", "vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js" "vue-demi-switch": "bin/vue-demi-switch.js"
@ -1318,31 +1324,32 @@
} }
}, },
"node_modules/@volar/language-core": { "node_modules/@volar/language-core": {
"version": "2.2.0-alpha.10", "version": "2.4.1",
"resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.2.0-alpha.10.tgz", "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.1.tgz",
"integrity": "sha512-njVJLtpu0zMvDaEk7K5q4BRpOgbyEUljU++un9TfJoJNhxG0z/hWwpwgTRImO42EKvwIxF3XUzeMk+qatAFy7Q==", "integrity": "sha512-9AKhC7Qn2mQYxj7Dz3bVxeOk7gGJladhWixUYKef/o0o7Bm4an+A3XvmcTHVqZ8stE6lBVH++g050tBtJ4TZPQ==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@volar/source-map": "2.2.0-alpha.10" "@volar/source-map": "2.4.1"
} }
}, },
"node_modules/@volar/source-map": { "node_modules/@volar/source-map": {
"version": "2.2.0-alpha.10", "version": "2.4.1",
"resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.2.0-alpha.10.tgz", "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.1.tgz",
"integrity": "sha512-nrdWApVkP5cksAnDEyy1JD9rKdwOJsEq1B+seWO4vNXmZNcxQQCx4DULLBvKt7AzRUAQiAuw5aQkb9RBaSqdVA==", "integrity": "sha512-Xq6ep3OZg9xUqN90jEgB9ztX5SsTz1yiV8wiQbcYNjWkek+Ie3dc8l7AVt3EhDm9mSIR58oWczHkzM2H6HIsmQ==",
"dev": true, "dev": true,
"dependencies": { "license": "MIT"
"muggle-string": "^0.4.0"
}
}, },
"node_modules/@volar/typescript": { "node_modules/@volar/typescript": {
"version": "2.2.0-alpha.10", "version": "2.4.1",
"resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.2.0-alpha.10.tgz", "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.1.tgz",
"integrity": "sha512-GCa0vTVVdA9ULUsu2Rx7jwsIuyZQPvPVT9o3NrANTbYv+523Ao1gv3glC5vzNSDPM6bUl37r94HbCj7KINQr+g==", "integrity": "sha512-UoRzC0PXcwajFQTu8XxKSYNsWNBtVja6Y9gC8eLv7kYm+UEKJCcZ8g7dialsOYA0HKs3Vpg57MeCsawFLC6m9Q==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@volar/language-core": "2.2.0-alpha.10", "@volar/language-core": "2.4.1",
"path-browserify": "^1.0.1" "path-browserify": "^1.0.1",
"vscode-uri": "^3.0.8"
} }
}, },
"node_modules/@vue/compiler-core": { "node_modules/@vue/compiler-core": {
@ -1391,24 +1398,38 @@
"@vue/shared": "3.4.25" "@vue/shared": "3.4.25"
} }
}, },
"node_modules/@vue/compiler-vue2": {
"version": "2.7.16",
"resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz",
"integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==",
"dev": true,
"license": "MIT",
"dependencies": {
"de-indent": "^1.0.2",
"he": "^1.2.0"
}
},
"node_modules/@vue/devtools-api": { "node_modules/@vue/devtools-api": {
"version": "6.6.2", "version": "6.6.3",
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.2.tgz", "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz",
"integrity": "sha512-134clD8u7cBBXdmBbXI282gHGF7T/eAbD/G7mAK2llQF62IbI4ny28IVamZVMoJSvfImC2Xxnj732hXkJvUj6g==" "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==",
"license": "MIT"
}, },
"node_modules/@vue/language-core": { "node_modules/@vue/language-core": {
"version": "2.0.14", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.14.tgz", "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.2.tgz",
"integrity": "sha512-3q8mHSNcGTR7sfp2X6jZdcb4yt8AjBXAfKk0qkZIh7GAJxOnoZ10h5HToZglw4ToFvAnq+xu/Z2FFbglh9Icag==", "integrity": "sha512-tt2J7C+l0J/T5PaLhJ0jvCCi0JNwu3e8azWTYxW3jmAW5B/dac0g5UxmI7l59CQgCGFotqUqI3tXjfZgoWNtog==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@volar/language-core": "2.2.0-alpha.10", "@volar/language-core": "~2.4.1",
"@vue/compiler-dom": "^3.4.0", "@vue/compiler-dom": "^3.4.0",
"@vue/compiler-vue2": "^2.7.16",
"@vue/shared": "^3.4.0", "@vue/shared": "^3.4.0",
"computeds": "^0.0.1", "computeds": "^0.0.1",
"minimatch": "^9.0.3", "minimatch": "^9.0.3",
"path-browserify": "^1.0.1", "muggle-string": "^0.4.1",
"vue-template-compiler": "^2.7.14" "path-browserify": "^1.0.1"
}, },
"peerDependencies": { "peerDependencies": {
"typescript": "*" "typescript": "*"
@ -1700,7 +1721,8 @@
"version": "0.0.1", "version": "0.0.1",
"resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz",
"integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==",
"dev": true "dev": true,
"license": "MIT"
}, },
"node_modules/confbox": { "node_modules/confbox": {
"version": "0.1.7", "version": "0.1.7",
@ -2735,12 +2757,13 @@
"integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==" "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw=="
}, },
"node_modules/micromatch": { "node_modules/micromatch": {
"version": "4.0.5", "version": "4.0.8",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"braces": "^3.0.2", "braces": "^3.0.3",
"picomatch": "^2.3.1" "picomatch": "^2.3.1"
}, },
"engines": { "engines": {
@ -2793,7 +2816,8 @@
"version": "0.4.1", "version": "0.4.1",
"resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz",
"integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==",
"dev": true "dev": true,
"license": "MIT"
}, },
"node_modules/nanoid": { "node_modules/nanoid": {
"version": "3.3.7", "version": "3.3.7",
@ -2901,7 +2925,8 @@
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
"integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
"dev": true "dev": true,
"license": "MIT"
}, },
"node_modules/path-exists": { "node_modules/path-exists": {
"version": "4.0.0", "version": "4.0.0",
@ -3683,6 +3708,13 @@
"vue": ">=3.2.13" "vue": ">=3.2.13"
} }
}, },
"node_modules/vscode-uri": {
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz",
"integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==",
"dev": true,
"license": "MIT"
},
"node_modules/vue": { "node_modules/vue": {
"version": "3.4.25", "version": "3.4.25",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.4.25.tgz", "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.25.tgz",
@ -3747,26 +3779,29 @@
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz",
"integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==",
"dev": true, "dev": true,
"optional": true,
"peer": true,
"dependencies": { "dependencies": {
"de-indent": "^1.0.2", "de-indent": "^1.0.2",
"he": "^1.2.0" "he": "^1.2.0"
} }
}, },
"node_modules/vue-tsc": { "node_modules/vue-tsc": {
"version": "2.0.14", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.14.tgz", "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.1.2.tgz",
"integrity": "sha512-DgAO3U1cnCHOUO7yB35LENbkapeRsBZ7Ugq5hGz/QOHny0+1VQN8eSwSBjYbjLVPfvfw6EY7sNPjbuHHUhckcg==", "integrity": "sha512-PH1BDxWT3eaPhl73elyZj6DV0nR3K4IFoUM1sGzMXXQneovVUwHQytdSyAHiED5MtEINGSHpL/Hs9ch+c/tDTw==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@volar/typescript": "2.2.0-alpha.10", "@volar/typescript": "~2.4.1",
"@vue/language-core": "2.0.14", "@vue/language-core": "2.1.2",
"semver": "^7.5.4" "semver": "^7.5.4"
}, },
"bin": { "bin": {
"vue-tsc": "bin/vue-tsc.js" "vue-tsc": "bin/vue-tsc.js"
}, },
"peerDependencies": { "peerDependencies": {
"typescript": "*" "typescript": ">=5.0.0"
} }
}, },
"node_modules/webpack-sources": { "node_modules/webpack-sources": {

View File

@ -16,7 +16,7 @@
"@iconify/vue": "^4.1.2", "@iconify/vue": "^4.1.2",
"@monogrid/gainmap-js": "^3.0.5", "@monogrid/gainmap-js": "^3.0.5",
"@tresjs/cientos": "^3.9.0", "@tresjs/cientos": "^3.9.0",
"@tresjs/core": "^4.0.2", "@tresjs/core": "^4.2.9",
"@tresjs/leches": "^0.14.0", "@tresjs/leches": "^0.14.0",
"@tresjs/post-processing": "^0.7.1", "@tresjs/post-processing": "^0.7.1",
"@vueuse/components": "^10.9.0", "@vueuse/components": "^10.9.0",

View File

@ -1,9 +1,17 @@
<script setup lang="ts">
import { watch } from 'vue';
import { useRoute } from 'vue-router';
const route = useRoute()
watch(() => route.params, () => {
console.log(route.params)
}, { deep: true })
</script>
<template> <template>
<Suspense> <Suspense>
<Load /> <Load />
</Suspense> </Suspense>
<Suspense> <Suspense>
<RouterView /> <RouterView :key="route.fullPath" />
</Suspense> </Suspense>
<Suspense> <Suspense>
<Nav /> <Nav />

View File

@ -0,0 +1,5 @@
<script setup lang="ts">
</script>
<template>
123
</template>

View File

@ -45,15 +45,7 @@ const controlsState = reactive({
const raw_dataStore = useRawData() const raw_dataStore = useRawData()
const route = useRoute() const route = useRoute()
const source = ref(route.params.target) watch(() => route.params.target, sidebar.close)
watch(() => route.params.target, () => {
let t = '1'
if (route.params.target) t = route.params.target as string
if (source.value !== t) {
source.value = t
sidebar.close()
}
})
const sidebarFunc = () => { const sidebarFunc = () => {
if (sidebar.is_open) { if (sidebar.is_open) {
sidebar.close() sidebar.close()
@ -71,11 +63,10 @@ const sidebarFunc = () => {
<div :class="[{ 'loading': raw_dataStore.data.loading }, 'canvas-wrapper']"> <div :class="[{ 'loading': raw_dataStore.data.loading }, 'canvas-wrapper']">
<TresCanvas window-size :alpha="false" power-preference="high-performance" :clear-color="PROMOBG" <TresCanvas window-size :alpha="false" power-preference="high-performance" :clear-color="PROMOBG"
:shadows="false"> :shadows="false">
<Stats />
<TresPerspectiveCamera :position="cameraPosition" ref="camera" /> <TresPerspectiveCamera :position="cameraPosition" ref="camera" />
<OrbitControls v-bind="controlsState" @change="onChange" make-default /> <OrbitControls v-bind="controlsState" @change="onChange" make-default />
<Suspense> <Suspense>
<LoadModels :source="source" :loaded_pan="loadedPan" v-if="route.name == 'scene'" :key="source as string" /> <LoadModels :source="route.params.target" :loaded_pan="loadedPan" />
</Suspense> </Suspense>
</TresCanvas> </TresCanvas>
<div class="homelink" :class="[{ open: sidebar.is_open }]"> <div class="homelink" :class="[{ open: sidebar.is_open }]">

View File

@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, onUnmounted, reactive, Ref, ref, watch } from 'vue'; import { onMounted, onUnmounted, onUpdated, reactive, Ref, ref, watch } from 'vue';
import { import {
Box3, Color, DoubleSide, Group, Mesh, PlaneGeometry, Box3, Color, DoubleSide, Group, Mesh, PlaneGeometry,
MeshStandardMaterial, MeshStandardMaterialParameters, MeshStandardMaterial, MeshStandardMaterialParameters,
@ -22,7 +22,7 @@ import { mobileAndTabletCheck } from '../../helpers';
import { useTimer } from '../../stores/timer'; import { useTimer } from '../../stores/timer';
import { useRawData } from '../../stores/raw_data'; import { useRawData } from '../../stores/raw_data';
const props = defineProps(['source', 'loaded_pan']) const props = defineProps(['source'])
const CON_MOVETO_COUNT = 150; const CON_MOVETO_COUNT = 150;
const CAM_MOVETO_COUNT = 100; const CAM_MOVETO_COUNT = 100;
@ -134,6 +134,9 @@ const clearValues = () => {
sidebar_visible = [] sidebar_visible = []
} }
const loadModels = async () => { const loadModels = async () => {
if (!props.source) return
if (!raw_dataStore.data) return
console.log(`load models ${props.source} ${process_loading.value}`) console.log(`load models ${props.source} ${process_loading.value}`)
clearValues() clearValues()
@ -243,12 +246,12 @@ const loadModels = async () => {
} }
}); });
const box_size = new Vector3(); const box_size = new Vector3();
box.getSize(box_size) box.getSize(box_size);
props.loaded_pan( // props.loaded_pan(
new Vector3(box_size.x * 0.5, box_size.y * 0.5, box_size.z * 0.5), // new Vector3(box_size.x * 0.5, box_size.y * 0.5, box_size.z * 0.5),
new Vector3(box_size.x * -0.25, box_size.y * -0.25, box_size.z * -0.25), // new Vector3(box_size.x * -0.25, box_size.y * -0.25, box_size.z * -0.25),
); // );
(controls.value as any).enabled = true; (controls.value as any).enabled = true;
raw_dataStore.data.loading = false; raw_dataStore.data.loading = false;
@ -278,18 +281,20 @@ const gotoCenterAndDistance = () => {
}); });
} }
watch(() => [props.source, process_loading.value], ([source, process]) => { watch(props, () => {
if (source !== process) { if (props.source) {
raw_dataStore.$reset() raw_dataStore.$reset()
const loaded = seekByName(scene.value, 'loaded') const loaded = seekByName(scene.value, 'loaded')
if (loaded) { if (loaded) {
loaded.children = [] loaded.children = []
} }
console.log('props change')
sidebar.close() sidebar.close()
loadModels() // loadModels()
} else {
renderer.value.dispose()
} }
}) }, { deep: true })
watch(() => sidebar, () => { watch(() => sidebar, () => {
if (sidebar.is_open == false) { if (sidebar.is_open == false) {
@ -416,6 +421,8 @@ const clickEvent = (event: MouseEvent) => {
} }
const timerEvent = ['click', 'contextmenu', 'mousedown', 'mouseup', 'touchstart', 'touchend', 'touchmove'] const timerEvent = ['click', 'contextmenu', 'mousedown', 'mouseup', 'touchstart', 'touchend', 'touchmove']
onMounted(() => { onMounted(() => {
console.log('mount')
clearValues()
loadModels() loadModels()
document.addEventListener('click', clickEvent) document.addEventListener('click', clickEvent)
@ -435,10 +442,11 @@ onUnmounted(() => {
timerEvent.map((event: string) => { timerEvent.map((event: string) => {
document.removeEventListener(event, stopTimer) document.removeEventListener(event, stopTimer)
}) })
renderer.value.dispose()
}) })
</script> </script>
<template> <template>
<TresGroup name="loaded" :key="props.source"> <TresGroup name="loaded" :key="props.source" ref="loaded">
<Env v-bind="envVars" /> <Env v-bind="envVars" />
<!-- <PostProcessing /> --> <!-- <PostProcessing /> -->
<template v-for="item in models"> <template v-for="item in models">

View File

@ -1,17 +1,14 @@
<script setup lang="ts"> <script setup lang="ts">
import { useRoute, useRouter } from 'vue-router'; import { useRoute } from 'vue-router';
import { useItem } from '../stores/item'; import { useItem } from '../stores/item';
const route = useRoute() const route = useRoute()
const router = useRouter()
const pageStore = useItem() const pageStore = useItem()
</script> </script>
<template> <template>
<div class="nav"> <div class="nav">
<div class="nav-group"> <div class="nav-group">
<span class="nav-icon" :class="[{ 'active': route.name == 'home' || route.fullPath == '/' }]"> <span class="nav-icon" :class="[{ 'active': route.name == 'main' }]">
<RouterLink :to="`/${pageStore.page.slug}`"> <RouterLink :to="`/${pageStore.page.slug}`">
<i-mdi-home-outline /> <i-mdi-home-outline />
</RouterLink> </RouterLink>
@ -21,7 +18,7 @@ const pageStore = useItem()
<i-mdi:video-3d /> <i-mdi:video-3d />
</RouterLink> </RouterLink>
</span> </span>
<span class="nav-icon" style="font-size: 1.375rem;"> <span class="nav-icon" :class="[{ 'active': route.name == 'gallery' }]" style="font-size: 1.375rem;">
<RouterLink :to="`/${pageStore.page.slug}/gallery`"> <RouterLink :to="`/${pageStore.page.slug}/gallery`">
<i-mdi:vector-arrange-below /> <i-mdi:vector-arrange-below />
</RouterLink> </RouterLink>

View File

@ -5,11 +5,13 @@ import { createWebHistory, createRouter } from 'vue-router'
import './assets/main.scss' import './assets/main.scss'
import App from './App.vue' import App from './App.vue'
import Main from './components/Main/index.vue'
import Gallery from './components/Gallery/index.vue' import Gallery from './components/Gallery/index.vue'
import Promo from './components/Promo/index.vue' import Promo from './components/Promo/index.vue'
const routes = [ const routes = [
{ path: '/', component: Gallery, name: 'home_no' }, { path: '/', component: Gallery, name: 'home_no' },
{ path: '/:item', component: Main, name: 'main' },
{ path: '/:item/gallery', component: Gallery, name: 'gallery' }, { path: '/:item/gallery', component: Gallery, name: 'gallery' },
{ path: '/:item/:target', component: Promo, name: 'scene' }, { path: '/:item/:target', component: Promo, name: 'scene' },
] ]
@ -19,6 +21,17 @@ const router = createRouter({
routes, routes,
}) })
router.beforeEach((to, from, next) => {
// This function will be called before each route change
console.log('Navigating from', from.fullPath, 'to', to.fullPath);
// You can perform any additional logic here
// Make sure to call next() to continue with the navigation
next();
});
const pinia = createPinia() const pinia = createPinia()
const app = createApp(App) const app = createApp(App)