first commit

This commit is contained in:
2026-01-16 18:36:43 +01:00
commit 7dca231004
133 changed files with 20000 additions and 0 deletions

44
.gitignore vendored Normal file
View File

@@ -0,0 +1,44 @@
# Dependencies
node_modules/
# Build output
dist/
build/
# Cache
.cache/
.parcel-cache/
# OS files
.DS_Store
Thumbs.db
# Editor directories and files
.idea/
.vscode/
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
# Environment files
.env
.env.local
.env.*
# Logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Test coverage
coverage/
# Temporary files
tmp/
temp/
# 3D model files
*.stl

83
bundler/webpack.common.js Normal file
View File

@@ -0,0 +1,83 @@
const CopyWebpackPlugin = require('copy-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { ProvidePlugin } = require('webpack');
const path = require('path');
module.exports = {
entry: path.resolve(__dirname, '../src/index.js'),
output: {
filename: 'bundle.[hash].js',
path: path.resolve(__dirname, '../dist'),
},
devtool: 'source-map',
plugins: [
new ProvidePlugin({
$: 'jquery', // Rende $ disponibile globalmente
jQuery: 'jquery',
'window.jQuery': 'jquery',
}),
new HtmlWebpackPlugin({
template: path.resolve(__dirname, '../src/index.html'),
minify: true
}),
new CopyWebpackPlugin({ patterns: [
{ from: path.resolve(__dirname, '../static') },
{ from: 'src/assets', to: 'assets' },
],
}),
],
module: {
rules: [
// HTML
{
test: /\.(html)$/,
use: ['html-loader'],
},
// JS
{
test: /\.js$/,
exclude: /node_modules/,
use: ['babel-loader'],
},
// CSS
{
test: /\.css$/,
use: ['style-loader', 'css-loader'],
},
// Images
{
test: /\.(jpg|png|gif|svg)$/,
type: 'asset/resource',
generator: {
filename: 'assets/images/[name].[hash][ext][query]',
},
},
// Fonts
{
test: /\.(woff|woff2)$/,
type: 'asset/resource',
generator: {
filename: 'assets/fonts/[name].[hash][ext][query]',
},
},
// Shaders
{
test: /\.(glsl|vs|fs|vert|frag)$/,
exclude: /node_modules/,
use: ['raw-loader', 'glslify-loader'],
},
],
},
resolve: {
alias: {
// Add any aliases here if needed
},
fallback: {
"path": require.resolve("path-browserify")
}
},
};

View File

@@ -0,0 +1,83 @@
const CopyWebpackPlugin = require('copy-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { ProvidePlugin } = require('webpack');
const path = require('path');
module.exports = {
entry: path.resolve(__dirname, '../src/index.js'),
output: {
filename: 'bundle.[hash].js',
path: path.resolve(__dirname, '../dist'),
},
devtool: 'source-map',
plugins: [
new ProvidePlugin({
$: 'jquery', // Rende $ disponibile globalmente
jQuery: 'jquery',
'window.jQuery': 'jquery',
}),
new HtmlWebpackPlugin({
template: path.resolve(__dirname, '../src/index.html'),
minify: true
}),
new CopyWebpackPlugin({ patterns: [
{ from: path.resolve(__dirname, '../static') },
{ from: 'src/assets', to: 'assets' },
],
}),
],
module: {
rules: [
// HTML
{
test: /\.(html)$/,
use: ['html-loader'],
},
// JS
{
test: /\.js$/,
exclude: /node_modules/,
use: ['babel-loader'],
},
// CSS
{
test: /\.css$/,
use: ['style-loader', 'css-loader'],
},
// Images
{
test: /\.(jpg|png|gif|svg)$/,
type: 'asset/resource',
generator: {
filename: 'assets/images/[name].[hash][ext][query]',
},
},
// Fonts
{
test: /\.(woff|woff2)$/,
type: 'asset/resource',
generator: {
filename: 'assets/fonts/[name].[hash][ext][query]',
},
},
// Shaders
{
test: /\.(glsl|vs|fs|vert|frag)$/,
exclude: /node_modules/,
use: ['raw-loader', 'glslify-loader'],
},
],
},
resolve: {
alias: {
// Add any aliases here if needed
},
fallback: {
"path": require.resolve("path-browserify")
}
},
};

20
bundler/webpack.dev.js Normal file
View File

@@ -0,0 +1,20 @@
const commonConfiguration = require('./webpack.common.js');
module.exports = {
...commonConfiguration,
mode: 'development',
watch: true,
watchOptions: {
ignored: /node_modules/,
aggregateTimeout: 300,
poll: 1000,
},
devServer: {
host: '0.0.0.0',
static: './dist',
liveReload: true,
open: true,
allowedHosts: 'all',
https: false
},
};

79
bundler/webpack.prod.js Normal file
View File

@@ -0,0 +1,79 @@
const commonConfiguration = require('./webpack.common.js');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { ProvidePlugin } = require('webpack');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const path = require('path');
module.exports = {
// ...commonConfiguration,
mode: 'production',
entry: path.resolve(__dirname, '../src/index.js'),
output: {
filename: 'bundle.[hash].js',
path: path.resolve(__dirname, '../dist'),
},
plugins: [
new CleanWebpackPlugin(),
new ProvidePlugin({
$: 'jquery', // Rende $ disponibile globalmente
jQuery: 'jquery',
'window.jQuery': 'jquery',
}),
new HtmlWebpackPlugin({
template: path.resolve(__dirname, '../src/index.html'),
minify: true
}),
new CopyWebpackPlugin({ patterns: [
{ from: path.resolve(__dirname, '../static') },
{ from: 'src/assets', to: 'assets' },
],
}),
],
module: {
rules: [
// HTML
{
test: /\.(html)$/,
use: ['html-loader'],
},
// JS
{
test: /\.js$/,
exclude: /node_modules/,
use: ['babel-loader'],
},
// CSS
{
test: /\.css$/,
use: ['style-loader', 'css-loader'],
},
// Images
{
test: /\.(jpg|png|gif|svg)$/,
type: 'asset/resource',
generator: {
filename: 'assets/images/[name].[hash][ext][query]',
},
},
// Fonts
{
test: /\.(woff|woff2)$/,
type: 'asset/resource',
generator: {
filename: 'assets/fonts/[name].[hash][ext][query]',
},
},
// Shaders
{
test: /\.(glsl|vs|fs|vert|frag)$/,
exclude: /node_modules/,
use: ['raw-loader', 'glslify-loader'],
},
],
},
};

13582
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

58
package.json Normal file
View File

@@ -0,0 +1,58 @@
{
"name": "webpack-three-js-template",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"build": "webpack --config ./bundler/webpack.prod.js",
"dev": "webpack-dev-server --config ./bundler/webpack.dev.js"
},
"repository": {
"type": "git",
"url": "git+https://github.com/brunosimon/webpack-three-js-template.git"
},
"keywords": [],
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/brunosimon/webpack-three-js-template/issues"
},
"homepage": "https://github.com/brunosimon/webpack-three-js-template#readme",
"devDependencies": {
"@babel/core": "^7.9.6",
"@babel/preset-env": "^7.9.6",
"babel-loader": "^9.1.3",
"clean-webpack-plugin": "^3.0.0",
"copy-webpack-plugin": "^10.2.0",
"css-loader": "^6.8.1",
"file-loader": "^6.0.0",
"glslify-loader": "^1.0.2",
"html-loader": "^4.2.0",
"html-webpack-plugin": "^5.5.3",
"jquery": "^3.6.0",
"raw-loader": "^4.0.2",
"style-loader": "^3.3.3",
"three": "^0.154.0",
"url-loader": "^4.1.1",
"webpack": "^5.89.0",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^4.15.1",
"webpack-merge": "^5.9.0"
},
"dependencies": {
"@fortawesome/fontawesome-free": "^6.4.2",
"@popperjs/core": "^2.11.6",
"@simonwep/pickr": "^1.8.2",
"bootstrap": "^5.2.1",
"camera-controls": "^1.36.2",
"font-awesome": "^4.7.0",
"gsap": "^3.11.1",
"jszip": "^3.10.1",
"jszip-utils": "^0.1.0",
"path-browserify": "^1.0.1",
"popper.js": "^1.16.1",
"three-bvh-csg": "^0.0.13",
"three-story-controls": "^1.0.6",
"three-ziploader": "0.0.1"
}
}

16
readme.md Normal file
View File

@@ -0,0 +1,16 @@
# Webpack THREE.js Template
## Setup
Download [Node.js](https://nodejs.org/en/download/).
Run this followed commands:
``` bash
# Install dependencies (only for first time)
npm i
# Serve at localhost:8080
npm run dev
# Build for production in the dist/ directory
npm run build
```

724
src/assets/backupdata.json Normal file
View File

@@ -0,0 +1,724 @@
[
{
"label":"Scudi Laterali",
"fields":[
{
"field_type": "select",
"data_type":"model",
"material":"plastic",
"color": "#56a396",
"label": "Forma",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Tipo Frankel esteso al fornice",
"value": "2-scudo Frankel esteso al fornice"
},{
"label":"Tipo Frankel esteso media",
"value": "2-scudo Frankel estensione media"
},{
"label":"Tipo Frankel esteso al Cervera",
"value": "3-scudo tipo Cervera"
}
]
},{
"field_type": "group",
"label":"Spessore",
"fields":[
{
"field_type": "select",
"data_type":"model",
"label": "Spessore Destra",
"color":"#4f4f4f",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"3 mm",
"value": "spessore scudi laterali 3 dx"
},{
"label":"4 mm",
"value": "spessore scudi laterali 4 dx"
},{
"label":"5 mm",
"value": "spessore scudi laterali 5 dx"
}
]
},
{
"field_type": "select",
"data_type":"model",
"label": "Spessore Sinistra",
"color":"#4f4f4f",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"3 mm",
"value": "spessore scudi laterali 3 sx"
},{
"label":"4 mm",
"value": "spessore scudi laterali 4 sx"
},{
"label":"5 mm",
"value": "spessore scudi laterali 5 sx"
}
]
}
]
},
{
"field_type": "group",
"label":"Distanza",
"fields":[
{
"field_type": "select",
"data_type":"model",
"label": "Distanza Destra",
"color":"#4f4f4f",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"3 mm",
"value": "distanza interna scudi laterali"
},{
"label":"4 mm",
"value": "distanza interna scudi laterali"
},{
"label":"5 mm",
"value": "distanza interna scudi laterali"
}
]
},
{
"field_type": "select",
"data_type":"model",
"label": "Distanza Sinistra",
"color":"#4f4f4f",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"3 mm",
"value": "distanza interna scudi laterali"
},{
"label":"4 mm",
"value": "distanza interna scudi laterali"
},{
"label":"5 mm",
"value": "distanza interna scudi laterali"
}
]
}
]
}
]
},{
"label":"Lip Bumper",
"fields":[
{
"field_type":"group",
"label": "Superiore",
"fields":[
{
"field_type": "select",
"data_type":"model",
"material": "plastic",
"label": "Forma",
"color":"#4fee8c",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Tipo Frankel",
"value": "5-lip bumper superiore tipo Frankel"
}
]
},{
"field_type": "select",
"data_type":"text",
"label": "Dimensione",
"color":"#4fee8c",
"options": [
{
"label":"",
"value": ""
},{
"label":"Medio",
"value": "lip-superiore-medio"
},{
"label":"Grande",
"value": "lip-superiore-grande"
}
]
},{
"field_type": "select",
"data_type":"text",
"label": "Distanza denti/processi alveolari",
"color":"#4fee8c",
"options": [
{
"label":"",
"value": ""
},{
"label":"2.5",
"value": "lip-superiore-dist-2.5"
},{
"label":"3",
"value": "lip-superiore-dist-3"
},{
"label":"3.5",
"value": "lip-superiore-dist-3.5"
}
]
}
]
},{
"field_type":"group",
"label": "Inferiore",
"fields":[
{
"field_type": "select",
"data_type":"model",
"label": "Forma",
"color":"#4fee8c",
"color_bk":"#E27E85",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Tipo Frankel",
"value": "4-lip bumper inferiore tipo Frankel"
},{
"label":"Ovoidale",
"value":"6-lip bumper inferiore ovoidale (solo inferiore)"
}
]
},{
"field_type": "select",
"data_type":"text",
"label": "Dimensione",
"color":"#E27E85",
"options": [
{
"label":"",
"value": ""
},{
"label":"Medio",
"value": "lip-inferiore-medio"
},{
"label":"Grande",
"value": "lip-inferiore-grande"
}
]
},{
"field_type": "select",
"data_type":"text",
"label": "Distanza denti/processi alveolari",
"color":"#E27E85",
"options": [
{
"label":"",
"value": ""
},{
"label":"2.5",
"value": "lip-inferiore-dist-2.5"
},{
"label":"3",
"value": "lip-inferiore-dist-3"
},{
"label":"3.5",
"value": "lip-inferiore-dist-3.5"
}
]
}
]
}
]
},{
"label":"Arco Vestibolare",
"fields":[
{
"field_type": "select",
"data_type":"model",
"label": "Superiore",
"color":"#728FD5",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Non a contatto",
"value": "arco vestibolare superiore non a contatto"
},{
"label":"Primo contatto",
"value": "arco vestibolare superiore non a contatto"
},{
"label":"Contatto totale",
"value": "arco vestibolare superiore contatto totale"
}
]
},{
"field_type": "select",
"data_type":"model",
"label": "Inferiore",
"color":"#55A6d8",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Non a contatto",
"value": "9-arco vestibolare inferiore"
},{
"label":"Primo contatto",
"value": "9-arco vestibolare inferiore"
},{
"label":"Contatto totale",
"value": "9-arco vestibolare inferiore"
}
]
}
]
},{
"label":"BITE",
"fields":[
{
"field_type":"group",
"fields": [
{
"field_type": "select",
"data_type":"model",
"label": "Superiore Anteriore",
"material":"plastic",
"color":"#FF94CD",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Non a contatto",
"value": "10-Bite superiore anteriore non a contatto"
},{
"label":"Primo contatto",
"value": "11-Bite superiore anteriore primo contatto"
}
]
},{
"field_type": "select",
"data_type":"model",
"label": "Inferiore Anteriore",
"color":"#FEBEDA",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Non a contatto",
"value": "12-Bite inferiore anteriore non a contatto"
},{
"label":"Primo contatto",
"value": "13-Bite inferiore anteriore primo contatto"
}
]
}
]
},
{
"field_type":"group",
"label": "Anteriore superiore + inferiore",
"fields": [
{
"field_type": "select",
"data_type":"model",
"label": "Tipologia",
"color":"#FF94CD",
"action": {"toggle": ["bite_superiore_anteriore", "bite_inferiore_anteriore"]},
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Ingranato",
"value": "14-Bite anteriore ingranato"
},{
"label":"Primo contatto",
"value": "15-Bite anteriore primo contatto"
}
]
},{
"field_type":"checkbox",
"label": "Favorire estrusione",
"data_type": "text"
}
]
},{
"field_type":"group",
"label": "Superiore posteriore",
"fields": [
{
"field_type": "select",
"data_type":"model",
"label": "Destra",
"color":"#FF94CD",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Primo Contatto",
"value": "16-Bite superiore posteriore primo contatto inferiore"
},{
"label":"Primo contatto capping Dx 16",
"value": "18-Bite superiore posteriore primo contatto inferiore capping 16-26"
},{
"label":"Non a contatto",
"value": "17-Bite superiore posteriore non a contatto inferiore"
}
]
},
{
"field_type": "select",
"data_type":"model",
"label": "Sinistra",
"color":"#FF94CD",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Primo Contatto",
"value": "16-Bite superiore posteriore primo contatto inferiore_sx"
},{
"label":"Primo contatto capping Sx 26",
"value": "18-Bite superiore posteriore primo contatto inferiore capping 16-26"
},{
"label":"Non a contatto",
"value": "17-Bite superiore posteriore non a contatto inferiore_sx"
}
]
}
]
},{
"field_type":"group",
"label": "Inferiore posteriore",
"fields": [
{
"field_type": "select",
"data_type":"model",
"label": "Destra",
"color":"#FF94CD",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Primo Contatto",
"value": "19-Bite inferiore posteriore primo contatto"
},{
"label":"Primo contatto capping Dx 46",
"value": "21-Bite inferiore posteriore primo contatto capping 36-46"
},{
"label":"Non a contatto",
"value": "20-Bite inferiore posteriore non a contatto superiore"
}
]
},{
"field_type": "select",
"data_type":"model",
"label": "Sinistra",
"color":"#FF94CD",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Primo Contatto",
"value": "19-Bite inferiore posteriore primo contatto"
},{
"label":"Primo contatto capping Sx 36",
"value": "19-Bite inferiore posteriore primo contatto"
},{
"label":"Non a contatto",
"value": "21-Bite inferiore posteriore primo contatto capping 36-46"
}
]
}
]
},{
"field_type":"group",
"label": "Posteriore",
"fields": [
{
"field_type":"group",
"fields":[
{
"field_type": "select",
"data_type":"model",
"label": "Destra",
"color":"#FF94CD",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Ingranato",
"value": "22-Bite posteriore ingranato"
},{
"label":"Primo Contatto",
"value": "23-Bite posteriore primo contatto"
}
]
}
]
},{
"field_type":"group",
"fields":[
{
"field_type": "select",
"data_type":"model",
"label": "Sinistra",
"color":"#FF94CD",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Ingranato",
"value": "22-Bite posteriore ingranato"
},{
"label":"Primo Contatto",
"value": "23-Bite posteriore primo contatto"
}
]
}
]
},{
"field_type":"checkbox",
"label": "Favorire estrusione",
"value":"Favorire estrusione",
"data_type": "text"
}
]
},{
"field_type":"group",
"label": "Attachments",
"fields":[
{
"field_type": "group",
"label": "Inf.post. per distalizzare",
"color":"#F6E36A",
"fields": [
{
"color":"#F6E36A",
"field_type":"checkbox",
"data_type":"model",
"label":"36",
"value": "25-attacchi 36-46 per distalizzare"
},{
"color":"#F6E36A",
"field_type":"checkbox",
"data_type":"model",
"label":"46",
"value": "25-attacchi 36-46 per distalizzare"
}
]
},{
"field_type": "group",
"label": "Sup.post. per distalizzare",
"fields": [
{
"color":"#F6E36A",
"field_type":"checkbox",
"data_type":"model",
"label":"16",
"value": "27-attacchi 16-26 per distalizzare"
},{
"color":"#F6E36A",
"field_type":"checkbox",
"data_type":"model",
"label":"26",
"value": "27-attacchi 16-26 per distalizzare"
}
]
},{
"field_type": "group",
"label": "Post. per distalizzare",
"fields": [
{
"color":"#FF94CD",
"field_type":"checkbox",
"data_type":"model",
"label":"16",
"value": "28-Bite posteriore unico per distalizzare con attacchi 16.26.36.46"
},{
"color":"#FF94CD",
"field_type":"checkbox",
"data_type":"model",
"label":"26",
"value": "28-Bite posteriore unico per distalizzare con attacchi 16.26.36.46"
},{
"color":"#FF94CD",
"field_type":"checkbox",
"data_type":"model",
"label":"36",
"value": "28-Bite posteriore unico per distalizzare con attacchi 16.26.36.46"
},{
"color":"#FF94CD",
"field_type":"checkbox",
"data_type":"model",
"label":"46",
"value": "28-Bite posteriore unico per distalizzare con attacchi 16.26.36.46"
}
]
}
]
},{
"field_type":"group",
"fields":[
{
"field_type": "select",
"data_type":"model",
"label": "Placca Retroincisiva Inferiore",
"color":"#E56161",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Accollettata",
"value": "29-placca retroincisiva inferiore"
},{
"label":"Punti di contatto",
"value": "29-placca retroincisiva inferiore"
}
]
},{
"field_type": "select",
"data_type":"model",
"label": "Arco Retroincisivo Superiore",
"color":"#d1e27e",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Regolare",
"value": "30-arco retroincisivo regolare"
},{
"label":"Con supporto a vite",
"value": "31-arco retroincisivo con supporto a vite"
}
]
},{
"field_type": "select",
"data_type":"model",
"label": "Arco Palatale + Bottone Nance",
"color":"#99eaf5",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Regolare",
"value": "32-Arco palatino"
},{
"label":"Con supporto a Nance",
"value": "33-Arco palatino con bottone Nance"
}
]
},{
"field_type": "select",
"data_type":"model",
"label": "Scudo Linguale",
"color":"#ffa3a3",
"options": [
{
"label":"Nessuno",
"value": ""
},{
"label":"Regolare",
"value": "34-Scudo linguale"
}
]
}
]
}
]
},{
"label":"ELEMENTI ACCESSORI METALLICI",
"fields":[
{
"field_type":"select",
"select_type":"multi",
"material":"metal",
"color":"#FFFFFF",
"data_type":"model",
"label":"Molle retroincisive superiori su elementi",
"options":[
{
"label": "Nessuna",
"value": ""
},
{
"label":"11",
"value": "35-molle retroincisive superiori"
},{
"label":"12",
"value": "35-molle retroincisive superiori"
},{
"label":"21",
"value": "35-molle retroincisive superiori"
},{
"label":"22",
"value": "35-molle retroincisive superiori"
}
]
},{
"field_type":"select",
"select_type":"multi",
"data_type":"model",
"material":"metal",
"color":"#FFFFFF",
"label":"Molle espansione laterale superiore",
"options":[
{
"label":"Nessuna",
"value": ""
},
{
"label":"Dx",
"value": "36-molle laterali superiori"
},{
"label":"Sx",
"value": "36-molle laterali superiori"
}
]
}
]
}
]

882
src/assets/data copy.json Normal file
View File

@@ -0,0 +1,882 @@
[
{
"label": "Scudi Laterali",
"fields": [
{
"field_type": "select",
"data_type": "model",
"material": "plastic",
"color": "#56a396",
"label": "Forma",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Tipo Frankel esteso al fornice",
"value": "2-scudo Frankel esteso al fornice"
},
{
"label": "Tipo Frankel esteso media",
"value": "2-scudo Frankel estensione media"
},
{
"label": "Tipo Frankel esteso al Cervera",
"value": "3-scudo tipo Cervera"
}
],
"parent_id": 1,
"id": "input-1"
},
{
"field_type": "group",
"label": "Spessore",
"fields": [
{
"field_type": "select",
"data_type": "model",
"label": "Spessore Destra",
"color": "#4f4f4f",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "3 mm",
"value": "spessore scudi laterali 3 dx"
},
{
"label": "4 mm",
"value": "spessore scudi laterali 4 dx"
},
{
"label": "5 mm",
"value": "spessore scudi laterali 5 dx"
}
],
"parent_id": 2,
"id": "input-2"
},
{
"field_type": "select",
"data_type": "model",
"label": "Spessore Sinistra",
"color": "#4f4f4f",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "3 mm",
"value": "spessore scudi laterali 3 sx"
},
{
"label": "4 mm",
"value": "spessore scudi laterali 4 sx"
},
{
"label": "5 mm",
"value": "spessore scudi laterali 5 sx"
}
],
"parent_id": 2,
"id": "input-3"
}
],
"parent_id": 1,
"id": 2
},
{
"field_type": "group",
"label": "Distanza",
"fields": [
{
"field_type": "select",
"data_type": "model",
"label": "Distanza Destra",
"color": "#4f4f4f",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "3 mm",
"value": "distanza interna scudi laterali"
},
{
"label": "4 mm",
"value": "distanza interna scudi laterali"
},
{
"label": "5 mm",
"value": "distanza interna scudi laterali"
}
],
"parent_id": 3,
"id": "input-4"
},
{
"field_type": "select",
"data_type": "model",
"label": "Distanza Sinistra",
"color": "#4f4f4f",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "3 mm",
"value": "distanza interna scudi laterali"
},
{
"label": "4 mm",
"value": "distanza interna scudi laterali"
},
{
"label": "5 mm",
"value": "distanza interna scudi laterali"
}
],
"parent_id": 3,
"id": "input-5"
}
],
"parent_id": 1,
"id": 3
}
],
"id": 1
},
{
"label": "Lip Bumper",
"fields": [
{
"field_type": "group",
"label": "Superiore",
"fields": [
{
"field_type": "select",
"data_type": "model",
"material": "plastic",
"label": "Forma",
"color": "#4fee8c",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Tipo Frankel",
"value": "5-lip bumper superiore tipo Frankel"
}
],
"parent_id": 5,
"id": "input-6"
},
{
"field_type": "select",
"data_type": "text",
"label": "Distanza denti/processi alveolari",
"color": "#4fee8c",
"options": [
{
"label": "",
"value": ""
},
{
"label": "2.5",
"value": "lip-superiore-dist-2.5"
},
{
"label": "3",
"value": "lip-superiore-dist-3"
},
{
"label": "3.5",
"value": "lip-superiore-dist-3.5"
}
],
"parent_id": 5,
"id": "input-7"
}
],
"parent_id": 4,
"id": 5
},
{
"field_type": "group",
"label": "Inferiore",
"fields": [
{
"field_type": "select",
"data_type": "model",
"label": "Forma",
"color": "#4fee8c",
"color_bk": "#E27E85",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Tipo Frankel",
"value": "4-lip bumper inferiore tipo Frankel"
},
{
"label": "Ovoidale",
"value": "6-lip bumper inferiore ovoidale (solo inferiore)"
}
],
"parent_id": 6,
"id": "input-8"
},
{
"field_type": "select",
"data_type": "text",
"label": "Distanza denti/processi alveolari",
"color": "#E27E85",
"options": [
{
"label": "",
"value": ""
},
{
"label": "2.5",
"value": "lip-inferiore-dist-2.5"
},
{
"label": "3",
"value": "lip-inferiore-dist-3"
},
{
"label": "3.5",
"value": "lip-inferiore-dist-3.5"
}
],
"parent_id": 6,
"id": "input-9"
}
],
"parent_id": 4,
"id": 6
}
],
"id": 4
},
{
"label": "Arco Vestibolare",
"fields": [
{
"field_type": "select",
"data_type": "model",
"label": "Superiore",
"color": "#728FD5",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Non a contatto",
"value": "arco vestibolare superiore non a contatto"
},
{
"label": "Primo contatto",
"value": "arco vestibolare superiore primo contatto"
},
{
"label": "Contatto totale",
"value": "arco vestibolare superiore contatto totale"
}
],
"parent_id": 7,
"id": "input-10"
},
{
"field_type": "select",
"data_type": "model",
"label": "Inferiore",
"color": "#55A6d8",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Non a contatto",
"value": "9-arco vestibolare inferiore"
},
{
"label": "Primo contatto",
"value": "9-arco vestibolare inferiore"
},
{
"label": "Contatto totale",
"value": "9-arco vestibolare inferiore"
}
],
"parent_id": 7,
"id": "input-11"
}
],
"id": 7
},
{
"label": "BITE",
"fields": [
{
"field_type": "group",
"fields": [
{
"field_type": "select",
"data_type": "model",
"label": "Superiore Anteriore",
"material": "plastic",
"color": "#FF94CD",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Non a contatto",
"value": "10-Bite superiore anteriore non a contatto"
},
{
"label": "Primo contatto",
"value": "11-Bite superiore anteriore primo contatto"
}
],
"parent_id": 9,
"id": "input-12"
},
{
"field_type": "select",
"data_type": "model",
"label": "Inferiore Anteriore",
"color": "#FEBEDA",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Non a contatto",
"value": "12-Bite inferiore anteriore non a contatto"
},
{
"label": "Primo contatto",
"value": "13-Bite inferiore anteriore primo contatto"
}
],
"parent_id": 9,
"id": "input-13"
}
],
"parent_id": 8,
"id": 9
},
{
"field_type": "group",
"label": "Anteriore superiore + inferiore",
"fields": [
{
"field_type": "select",
"data_type": "model",
"label": "Tipologia",
"color": "#FF94CD",
"action": {
"toggle": [
"bite_superiore_anteriore",
"bite_inferiore_anteriore"
]
},
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Ingranato",
"value": "14-Bite anteriore ingranato"
},
{
"label": "Primo contatto",
"value": "15-Bite anteriore primo contatto"
}
],
"parent_id": 10,
"id": "input-14"
},
{
"field_type": "checkbox",
"label": "Favorire estrusione",
"data_type": "text",
"parent_id": 10,
"id": "input-15"
}
],
"parent_id": 8,
"id": 10
},
{
"field_type": "group",
"label": "Superiore posteriore",
"fields": [
{
"field_type": "select",
"data_type": "model",
"label": "Destra",
"color": "#FF94CD",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Primo Contatto",
"value": "16-Bite superiore posteriore primo contatto inferiore"
},
{
"label": "Primo contatto capping Dx 16",
"value": "18-Bite superiore posteriore primo contatto inferiore capping 16-26"
},
{
"label": "Non a contatto",
"value": "17-Bite superiore posteriore non a contatto inferiore"
}
],
"parent_id": 11,
"id": "input-16"
},
{
"field_type": "select",
"data_type": "model",
"label": "Sinistra",
"color": "#FF94CD",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Primo Contatto",
"value": "16-Bite superiore posteriore primo contatto inferiore_sx"
},
{
"label": "Primo contatto capping Sx 26",
"value": "18-Bite superiore posteriore primo contatto inferiore capping 16-26"
},
{
"label": "Non a contatto",
"value": "17-Bite superiore posteriore non a contatto inferiore_sx"
}
],
"parent_id": 11,
"id": "input-17"
}
],
"parent_id": 8,
"id": 11
},
{
"field_type": "group",
"label": "Inferiore posteriore",
"fields": [
{
"field_type": "select",
"data_type": "model",
"label": "Destra",
"color": "#FF94CD",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Primo Contatto",
"value": "19-Bite inferiore posteriore primo contatto"
},
{
"label": "Primo contatto capping Dx 46",
"value": "21-Bite inferiore posteriore primo contatto capping 36-46"
},
{
"label": "Non a contatto",
"value": "20-Bite inferiore posteriore non a contatto superiore"
}
],
"parent_id": 12,
"id": "input-18"
},
{
"field_type": "select",
"data_type": "model",
"label": "Sinistra",
"color": "#FF94CD",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Primo Contatto",
"value": "19-Bite inferiore posteriore primo contatto"
},
{
"label": "Primo contatto capping Sx 36",
"value": "19-Bite inferiore posteriore primo contatto"
},
{
"label": "Non a contatto",
"value": "21-Bite inferiore posteriore primo contatto capping 36-46"
}
],
"parent_id": 12,
"id": "input-19"
}
],
"parent_id": 8,
"id": 12
},
{
"field_type": "group",
"label": "Posteriore",
"fields": [
{
"field_type": "group",
"fields": [
{
"field_type": "select",
"data_type": "model",
"label": "Destra",
"color": "#FF94CD",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Ingranato",
"value": "22-Bite posteriore ingranato"
},
{
"label": "Primo Contatto",
"value": "23-Bite posteriore primo contatto"
}
],
"parent_id": 14,
"id": "input-20"
}
],
"parent_id": 13,
"id": 14
},
{
"field_type": "group",
"fields": [
{
"field_type": "select",
"data_type": "model",
"label": "Sinistra",
"color": "#FF94CD",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Ingranato",
"value": "22-Bite posteriore ingranato"
},
{
"label": "Primo Contatto",
"value": "23-Bite posteriore primo contatto"
}
],
"parent_id": 15,
"id": "input-21"
}
],
"parent_id": 13,
"id": 15
},
{
"field_type": "checkbox",
"label": "Favorire estrusione",
"value": "Favorire estrusione",
"data_type": "text",
"parent_id": 13,
"id": "input-22"
}
],
"parent_id": 8,
"id": 13
},
{
"field_type": "group",
"label": "Attachments",
"fields": [
{
"field_type": "group",
"label": "Inf.post. per distalizzare",
"color": "#F6E36A",
"fields": [
{
"color": "#F6E36A",
"field_type": "checkbox",
"data_type": "model",
"label": "36",
"value": "25-attacchi 36-46 per distalizzare",
"parent_id": 17,
"id": "input-23"
},
{
"color": "#F6E36A",
"field_type": "checkbox",
"data_type": "model",
"label": "46",
"value": "25-attacchi 36-46 per distalizzare",
"parent_id": 17,
"id": "input-24"
}
],
"parent_id": 16,
"id": 17
},
{
"field_type": "group",
"label": "Sup.post. per distalizzare",
"fields": [
{
"color": "#F6E36A",
"field_type": "checkbox",
"data_type": "model",
"label": "16",
"value": "27-attacchi 16-26 per distalizzare",
"parent_id": 18,
"id": "input-25"
},
{
"color": "#F6E36A",
"field_type": "checkbox",
"data_type": "model",
"label": "26",
"value": "27-attacchi 16-26 per distalizzare",
"parent_id": 18,
"id": "input-26"
}
],
"parent_id": 16,
"id": 18
},
{
"field_type": "group",
"label": "Post. per distalizzare",
"fields": [
{
"color": "#FF94CD",
"field_type": "checkbox",
"data_type": "model",
"label": "16",
"value": "28-Bite posteriore unico per distalizzare con attacchi 16.26.36.46",
"parent_id": 19,
"id": "input-27"
},
{
"color": "#FF94CD",
"field_type": "checkbox",
"data_type": "model",
"label": "26",
"value": "28-Bite posteriore unico per distalizzare con attacchi 16.26.36.46",
"parent_id": 19,
"id": "input-28"
},
{
"color": "#FF94CD",
"field_type": "checkbox",
"data_type": "model",
"label": "36",
"value": "28-Bite posteriore unico per distalizzare con attacchi 16.26.36.46",
"parent_id": 19,
"id": "input-29"
},
{
"color": "#FF94CD",
"field_type": "checkbox",
"data_type": "model",
"label": "46",
"value": "28-Bite posteriore unico per distalizzare con attacchi 16.26.36.46",
"parent_id": 19,
"id": "input-30"
}
],
"parent_id": 16,
"id": 19
}
],
"parent_id": 8,
"id": 16
},
{
"field_type": "group",
"fields": [
{
"field_type": "select",
"data_type": "model",
"label": "Placca Retroincisiva Inferiore",
"color": "#E56161",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Accollettata",
"value": "29-placca retroincisiva inferiore"
},
{
"label": "Punti di contatto",
"value": "29-placca retroincisiva inferiore"
}
],
"parent_id": 20,
"id": "input-31"
},
{
"field_type": "select",
"data_type": "model",
"label": "Arco Retroincisivo Superiore",
"color": "#d1e27e",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Regolare",
"value": "30-arco retroincisivo regolare"
},
{
"label": "Con supporto a vite",
"value": "31-arco retroincisivo con supporto a vite"
}
],
"parent_id": 20,
"id": "input-32"
},
{
"field_type": "select",
"data_type": "model",
"label": "Arco Palatale + Bottone Nance",
"color": "#99eaf5",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Regolare",
"value": "32-Arco palatino"
},
{
"label": "Con supporto a Nance",
"value": "33-Arco palatino con bottone Nance"
}
],
"parent_id": 20,
"id": "input-33"
},
{
"field_type": "select",
"data_type": "model",
"label": "Scudo Linguale",
"color": "#ffa3a3",
"options": [
{
"label": "Nessuno",
"value": ""
},
{
"label": "Regolare",
"value": "34-Scudo linguale"
}
],
"parent_id": 20,
"id": "input-34"
}
],
"parent_id": 8,
"id": 20
}
],
"id": 8
},
{
"label": "ELEMENTI ACCESSORI METALLICI",
"fields": [
{
"field_type": "select",
"select_type": "multi",
"material": "metal",
"color": "#FFFFFF",
"data_type": "model",
"label": "Molle retroincisive superiori su elementi",
"options": [
{
"label": "Nessuna",
"value": ""
},
{
"label": "11",
"value": "35-molle retroincisive superiori"
},
{
"label": "12",
"value": "35-molle retroincisive superiori"
},
{
"label": "21",
"value": "35-molle retroincisive superiori"
},
{
"label": "22",
"value": "35-molle retroincisive superiori"
}
],
"parent_id": 21,
"id": "input-35"
},
{
"field_type": "select",
"select_type": "multi",
"data_type": "model",
"material": "metal",
"color": "#FFFFFF",
"label": "Molle espansione laterale superiore",
"options": [
{
"label": "Nessuna",
"value": ""
},
{
"label": "Dx",
"value": "36-molle laterali superiori"
},
{
"label": "Sx",
"value": "36-molle laterali superiori"
}
],
"parent_id": 21,
"id": "input-36"
}
],
"id": 21
}
]

477
src/assets/data.json Normal file
View File

@@ -0,0 +1,477 @@
{
"gen_id": 80,
"section_id": 26,
"data":[
{
"label": "Bande laterali",
"label_en": "Lateral bands",
"fields": [
{
"field_type": "select",
"data_type": "model",
"material": "metal",
"color": "#FFFFFF",
"label": "DX",
"label_en": "",
"options": [
{
"label": "Nessuno",
"label_en": "None",
"value": ""
},
{
"label_en": "Band 14",
"label": "Banda 14",
"value": "2_banda 14"
},
{
"label_en": "Band 15",
"label": "Banda 15",
"value": "2_banda 15"
},
{
"label_en": "Band 16",
"label": "Banda 16",
"value": "2_banda 16"
}
],
"parent_id": 1,
"id": "input-1"
},
{
"field_type": "select",
"data_type": "model",
"material": "metal",
"color": "#FFFFFF",
"label": "SX",
"label_en": "",
"options": [
{
"label": "Nessuno",
"label_en": "None",
"value": ""
},
{
"label_en": "Band 24",
"label": "Banda 24",
"value": "2_banda 24"
},
{
"label_en": "Band 25",
"label": "Banda 25",
"value": "2_banda 25"
},
{
"label_en": "Band 26",
"label": "Banda 26",
"value": "2_banda 26"
}
],
"parent_id": 1,
"id": "input-2"
}
],
"id": 1
},
{
"label": "TADS",
"fields": [
{
"field_type": "select",
"data_type": "model",
"material": "metal",
"color": "#FFFFFF",
"label": "Numero di Tads",
"label_en": "Number of Tads",
"options": [
{
"label": "Nessuno",
"label_en": "None",
"value": ""
},
{
"label_en": "2 Tads",
"label": "2 Tads",
"value": "3_2 tads"
},
{
"label_en": "4 Tads",
"label": "4 Tads",
"value": "3_4 tads"
}
],
"parent_id": 2,
"id": "input-3"
}
],
"id": 2
},
{
"label": "VITI",
"fields": [
{
"field_type": "select",
"data_type": "model",
"material": "metal",
"color": "#FFFFFF",
"label": "Numero di Tads",
"label_en": "Number of Tads",
"options": [
{
"label": "Nessuno",
"label_en": "None",
"value": ""
},
{
"label_en": "Hyrax screw 2 Tads",
"depends_on": {"id":"input-3", "value":"3_2 tads"},
"label": "Vite hyrax 2 tads",
"value": "4_vite hyrax 2 tads"
},
{
"label_en": "Hyrax screw 4 Tads",
"depends_on": {"id":"input-3", "value":"3_4 tads"},
"label": "Vite hyrax 4 tads",
"value": "4_vite hyrax 4 tads"
},
{
"label_en": "Telescopic screw 2 Tads",
"depends_on": {"id":"input-3", "value":"3_2 tads"},
"label": "Vite Telescopica 2 tads",
"value": "4_vite telescopica 2 tads"
},
{
"label_en": "Telescopic screw 4 Tads",
"depends_on": {"id":"input-3", "value":"3_4 tads"},
"label": "Vite Telescopica 4 tads",
"value": "4_vite telescopica 4 tads"
}
],
"parent_id": 3,
"id": "input-4"
}
],
"id": 3
},
{
"label": "TADS Hybrid",
"label_en": "TADS Hybrid",
"fields": [
{
"field_type": "select",
"data_type": "model",
"label": "TADS Hybrid",
"label_en": "TADS Hybrid",
"material": "metal",
"color": "#FFFFFF",
"options": [
{
"label": "Nessuno",
"label_en": "None",
"value": ""
},
{
"label_en": "Hybrid Module",
"label": "Modulo Hybrid",
"value": "5_modulo hybrid"
}
],
"parent_id": 4,
"id": "input-5"
}
],
"id": 4
},
{
"label": "TADS Bone born",
"label_en": "TADS Bone born",
"fields": [
{
"field_type": "select",
"data_type": "text",
"label_en": "",
"label": "",
"material": "plastic",
"color": "#FF94CD",
"options": [
{
"label": "No",
"label_en": "No",
"value": ""
},
{
"label_en": "Yes",
"label": "Si",
"value": ""
}
],
"parent_id": 5,
"id": "input-6"
}
],
"id": 5
},
{
"label": "TADS Tandem",
"label_en": "TADS Tandem",
"fields": [
{
"field_type": "select",
"data_type": "model",
"label": "TADS Tandem",
"label_en": "TADS Tandem",
"material": "metal",
"color": "#FFFFFF",
"options": [
{
"label": "Nessuno",
"label_en": "None",
"value": ""
},
{
"label_en": "Tandem Device",
"label": "Tandem Device",
"value": "7_tandem device"
}
],
"parent_id": 6,
"id": "input-7"
}
],
"id": 6
},
{
"label": "TADS espansione + distalizzazione",
"label_en": "TADS espansione + distalizzazione",
"fields": [
{
"field_type": "checkbox",
"data_type": "model",
"label": "Modulo DX",
"label_en": "Right Module",
"material": "metal",
"value": "8_modulo dx",
"color": "#FFFFFF",
"parent_id": 7,
"id": "input-8"
},{
"field_type": "checkbox",
"data_type": "model",
"label": "Modulo SX",
"label_en": "Left Module",
"material": "metal",
"value": "8_modulo sx",
"color": "#FFFFFF",
"parent_id": 7,
"id": "input-9"
}
],
"id": 7
},
{
"label": "TADS espansione + mesializzazione",
"label_en": "TADS espansione + mesializzazione",
"fields": [
{
"field_type": "checkbox",
"data_type": "model",
"label": "Modulo DX",
"label_en": "Right Module",
"material": "metal",
"value": "9_modulo dx",
"color": "#FFFFFF",
"parent_id": 8,
"id": "input-10"
},{
"field_type": "checkbox",
"data_type": "model",
"label": "Modulo SX",
"label_en": "Left Module",
"material": "metal",
"value": "9_modulo sx",
"color": "#FFFFFF",
"parent_id": 8,
"id": "input-11"
}
],
"id": 8
},
{
"label": "Distal Device",
"label_en": "Distal Device",
"fields": [
{
"field_type": "checkbox",
"data_type": "model",
"label": "Modulo DX",
"label_en": "Right Module",
"material": "metal",
"value": "10_modulo dx",
"color": "#FFFFFF",
"parent_id": 9,
"id": "input-12"
},{
"field_type": "checkbox",
"data_type": "model",
"label": "Modulo SX",
"label_en": "Left Module",
"material": "metal",
"value": "10_modulo sx",
"color": "#FFFFFF",
"parent_id": 9,
"id": "input-13"
}
],
"id": 9
},{
"label": "Mesial Device",
"label_en": "Mesial Device",
"fields": [
{
"field_type": "checkbox",
"data_type": "model",
"label": "Modulo DX",
"label_en": "Right Module",
"material": "metal",
"value": "11_modulo dx",
"color": "#FFFFFF",
"parent_id": 10,
"id": "input-14"
},{
"field_type": "checkbox",
"data_type": "model",
"label": "Modulo SX",
"label_en": "Left Module",
"material": "metal",
"value": "11_modulo sx",
"color": "#FFFFFF",
"parent_id": 10,
"id": "input-15"
}
],
"id": 10
},{
"label": "Tads per estrudere",
"label_en": "Tads for extrusion",
"fields": [
{
"field_type": "checkbox",
"data_type": "model",
"label": "Modulo DX",
"label_en": "Right Module",
"material": "metal",
"value": "12_modulo dx",
"color": "#FFFFFF",
"parent_id": 11,
"id": "input-16"
},{
"field_type": "checkbox",
"data_type": "model",
"label": "Modulo SX",
"label_en": "Left Module",
"material": "metal",
"value": "12_modulo sx",
"color": "#FFFFFF",
"parent_id": 11,
"id": "input-17"
}
],
"id": 11
},{
"label": "Tads per intrudere",
"label_en": "Tads for intrusion",
"fields": [
{
"field_type": "checkbox",
"data_type": "model",
"label": "Modulo DX",
"label_en": "Right Module",
"material": "metal",
"value": "13_modulo x intrudere dx",
"color": "#FFFFFF",
"parent_id": 12,
"id": "input-18"
},{
"field_type": "checkbox",
"data_type": "model",
"label": "Modulo SX",
"label_en": "Left Module",
"material": "metal",
"value": "13_modulo x intrudere sx",
"color": "#FFFFFF",
"parent_id": 12,
"id": "input-19"
}
],
"id": 12
},{
"label": "Ausiliari",
"label_en": "Auxiliaries",
"fields": [
{
"field_type": "checkbox",
"data_type": "model",
"label": "Attacchi per Mask",
"label_en": "Mask Hooks",
"material": "metal",
"value": "14_attacchi x mask",
"color": "#FFFFFF",
"parent_id": 13,
"id": "input-20"
},{
"field_type": "checkbox",
"data_type": "model",
"label": "Attacco doppia canula DX",
"label_en": "Double Cannula Hook Right",
"material": "metal",
"value": "14_attacco doppia canula dx",
"color": "#FFFFFF",
"parent_id": 13,
"id": "input-21"
},{
"field_type": "checkbox",
"data_type": "model",
"label": "Attacco doppia canula SX",
"label_en": "Double Cannula Hook Left",
"material": "metal",
"value": "14_attacco doppia canula sx",
"color": "#FFFFFF",
"parent_id": 13,
"id": "input-22"
},{
"field_type": "checkbox",
"data_type": "model",
"label": "Ganci x delaire esterna",
"label_en": "External Delaire Hooks",
"material": "metal",
"value": "14_ganci x delaire esterna",
"color": "#FFFFFF",
"parent_id": 13,
"id": "input-23"
},{
"field_type": "checkbox",
"data_type": "model",
"label": "Ganci per delaire interna",
"label_en": "Internal Delaire Hooks",
"material": "metal",
"value": "14_ganci x delaire interna",
"color": "#FFFFFF",
"parent_id": 13,
"id": "input-24"
},{
"field_type": "checkbox",
"data_type": "model",
"label": "Gradino",
"label_en": "Step",
"material": "metal",
"value": "14_gradino",
"color": "#FFFFFF",
"parent_id": 13,
"id": "input-25"
}
],
"id": 13
}
]
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
src/assets/glb/3_2 tads.glb Normal file

Binary file not shown.

BIN
src/assets/glb/3_4 tads.glb Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
src/assets/icone/destra.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
src/assets/icone/jump.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

BIN
src/assets/images/apri.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

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