refactor: update GCode Viewer to 3.1.0 (#847)
Co-authored-by: Stefan Dej <meteyou@gmail.com>
This commit is contained in:
parent
8b4d534e86
commit
9f4fb30b98
403
package-lock.json
generated
403
package-lock.json
generated
@ -18,7 +18,7 @@
|
||||
"@codemirror/state": "^0.19.6",
|
||||
"@codemirror/stream-parser": "^0.19.2",
|
||||
"@codemirror/view": "^0.19.28",
|
||||
"@sindarius/gcodeviewer": "^2.1.17",
|
||||
"@sindarius/gcodeviewer": "^3.1.0",
|
||||
"@types/node": "^16.11.22",
|
||||
"@types/overlayscrollbars": "^1.12.1",
|
||||
"axios": "^0.26.0",
|
||||
@ -1876,43 +1876,49 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babylonjs/core": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-4.2.2.tgz",
|
||||
"integrity": "sha512-gAgetSyoxFZ/xzMVVnGPKaP941NHA59Ho8GGKFW98OTEp8yZcnzJjNOD2zfF1eKmlvR/6WwSmcrKWTJtPF1pyA==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-5.8.0.tgz",
|
||||
"integrity": "sha512-1/p2XxuwoGStoEc0Nh0O4iBrSfWpRAYzkWXRqxjTqD/CU1bufZuHFLlBQp6GuVei33RU/yGjVI/W5d/rhSIXYA==",
|
||||
"dependencies": {
|
||||
"tslib": ">=1.10.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@babylonjs/gui": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-4.2.2.tgz",
|
||||
"integrity": "sha512-iFKnSb0m9Zz7oeD1LTZWE9Hxcp0QMytXZenLNgrbHOm8mo2V+Y6OiVEP9SpvZRqks6bTDTFrpfjMTy1DrZyTGQ==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-5.8.0.tgz",
|
||||
"integrity": "sha512-uqrJiu2oqyYmY4IgGMfWx0vabUKjkb3PK/ZTO+75rYne6yFFOp5Wivyi03O3Ew+m69W7Igt/gwtVCMaAit+g6w==",
|
||||
"dependencies": {
|
||||
"@babylonjs/core": "4.2.2",
|
||||
"tslib": ">=1.10.0"
|
||||
"@babylonjs/core": "^5.8.0",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@babylonjs/gui-editor": {
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/gui-editor/-/gui-editor-5.8.0.tgz",
|
||||
"integrity": "sha512-Fa/m+l8tOIeK81diylQ05t0+8JFYoW5Dm+mX7ekZKPNjViZIBDatsUHYiWBbwA0L2YLwYgADIO+NmhQZe1ns0g==",
|
||||
"dependencies": {
|
||||
"@babylonjs/core": "^5.8.0",
|
||||
"@babylonjs/gui": "^5.8.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
"peerDependencies": {
|
||||
"@types/react": ">=16.7.3",
|
||||
"@types/react-dom": ">=16.0.9"
|
||||
}
|
||||
},
|
||||
"node_modules/@babylonjs/inspector": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/inspector/-/inspector-4.2.2.tgz",
|
||||
"integrity": "sha512-aTK9u+wKv9pvL+/ftRMQxIiwyvxUs4AF0RaN/WQgDRqLKdYf+NGCjc2NX5P4Krcs5hU6CD7CjyOIhhtJXGRk7g==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/inspector/-/inspector-5.8.0.tgz",
|
||||
"integrity": "sha512-HJ/4iDdf5G5Jh67FLDlW+tNdKIMSB0NVrExXgY+Vgbj9AtIFqSR/WU2Zo2P3qNnCvq2w9AmDXxfJPkqVq+/hJw==",
|
||||
"dependencies": {
|
||||
"@babylonjs/core": "4.2.2",
|
||||
"@babylonjs/gui": "4.2.2",
|
||||
"@babylonjs/loaders": "4.2.2",
|
||||
"@babylonjs/materials": "4.2.2",
|
||||
"@babylonjs/serializers": "4.2.2",
|
||||
"babylonjs-gltf2interface": "4.2.2",
|
||||
"tslib": ">=1.10.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
"@babylonjs/core": "^5.8.0",
|
||||
"@babylonjs/gui": "^5.8.0",
|
||||
"@babylonjs/gui-editor": "^5.8.0",
|
||||
"@babylonjs/loaders": "^5.8.0",
|
||||
"@babylonjs/materials": "^5.8.0",
|
||||
"@babylonjs/serializers": "^5.8.0",
|
||||
"@fortawesome/fontawesome-svg-core": "^6.1.0",
|
||||
"@fortawesome/free-regular-svg-icons": "^6.0.0",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@types/react": ">=16.7.3",
|
||||
@ -1920,41 +1926,32 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babylonjs/loaders": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-4.2.2.tgz",
|
||||
"integrity": "sha512-Qk8r4xp4eOznbX3AsNYv8HgwS+tzGu6TwSpDX4il3g0B+k1N5k6KE5ghrnwDytoxUDVjGZ/VKk2cQqiHsg/NLg==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-5.8.0.tgz",
|
||||
"integrity": "sha512-8hA6xGlJcNvktJ7kzLZyNcWUaoy/LgINNjGKc1l6kvzf2sTLZ2xC0w8ZkHPlOB9Y7o4U4VNRvoxgtewYnTI+8g==",
|
||||
"dependencies": {
|
||||
"@babylonjs/core": "4.2.2",
|
||||
"babylonjs-gltf2interface": "4.2.2",
|
||||
"tslib": ">=1.10.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
"@babylonjs/core": "^5.8.0",
|
||||
"babylonjs-gltf2interface": "^5.8.0",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@babylonjs/materials": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-4.2.2.tgz",
|
||||
"integrity": "sha512-Y7umjVEYV5ZsLYVxgrkb5+4lPsz35acgOEqiZErFBdGXJw3AHJLJmalcmL5WXqUBR2SzyShFLCJOdbFQbkmaxg==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-5.8.0.tgz",
|
||||
"integrity": "sha512-jXP6xFzhctt3zi7JSpLN0FM38P/BO6xfWFN+odnCcA+RZm66Pm9QhcCU3m6vbn/8fZuj3/u2HUve0LusdBr9XQ==",
|
||||
"dependencies": {
|
||||
"@babylonjs/core": "4.2.2",
|
||||
"tslib": ">=1.10.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
"@babylonjs/core": "^5.8.0",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@babylonjs/serializers": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-4.2.2.tgz",
|
||||
"integrity": "sha512-PEW09qqScaWV5c9UA44uY2YuF9aQJ6gYTMvjopul9YsiPoJolL4QrHO9OxikaYWQb7rgll3XukoRejhZ+HanTQ==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-5.8.0.tgz",
|
||||
"integrity": "sha512-KZNK5p9dlSaEjeS/jH50pAD9liJjkQCdWg9SXc1l537wiJHSqBdkYQ1akgTrVIbYhrjr5sYh/4+Eh8qx378eBg==",
|
||||
"dependencies": {
|
||||
"@babylonjs/core": "4.2.2",
|
||||
"babylonjs-gltf2interface": "4.2.2",
|
||||
"tslib": ">=1.10.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
"@babylonjs/core": "^5.8.0",
|
||||
"babylonjs-gltf2interface": "^5.8.0",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@codemirror/autocomplete": {
|
||||
@ -2295,6 +2292,51 @@
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@fortawesome/fontawesome-common-types": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.1.1.tgz",
|
||||
"integrity": "sha512-wVn5WJPirFTnzN6tR95abCx+ocH+3IFLXAgyavnf9hUmN0CfWoDjPT/BAWsUVwSlYYVBeCLJxaqi7ZGe4uSjBA==",
|
||||
"hasInstallScript": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/@fortawesome/fontawesome-svg-core": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.1.1.tgz",
|
||||
"integrity": "sha512-NCg0w2YIp81f4V6cMGD9iomfsIj7GWrqmsa0ZsPh59G7PKiGN1KymZNxmF00ssuAlo/VZmpK6xazsGOwzKYUMg==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-common-types": "6.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/@fortawesome/free-regular-svg-icons": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.1.1.tgz",
|
||||
"integrity": "sha512-xXiW7hcpgwmWtndKPOzG+43fPH7ZjxOaoeyooptSztGmJxCAflHZxXNK0GcT0uEsR4jTGQAfGklDZE5NHoBhKg==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-common-types": "6.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/@fortawesome/free-solid-svg-icons": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.1.1.tgz",
|
||||
"integrity": "sha512-0/5exxavOhI/D4Ovm2r3vxNojGZioPwmFrKg0ZUH69Q68uFhFPs6+dhAToh6VEQBntxPRYPuT5Cg1tpNa9JUPg==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-common-types": "6.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/@humanwhocodes/config-array": {
|
||||
"version": "0.9.5",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz",
|
||||
@ -2683,14 +2725,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sindarius/gcodeviewer": {
|
||||
"version": "2.1.18",
|
||||
"resolved": "https://registry.npmjs.org/@sindarius/gcodeviewer/-/gcodeviewer-2.1.18.tgz",
|
||||
"integrity": "sha512-uGD5uozEfUjbQaJw2D4pr1+ai1+X6cNf6W1olpaO/R7Ijr9E4NXllsXMeTKYjeMynNdhElDuefTRC843+egAOA==",
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sindarius/gcodeviewer/-/gcodeviewer-3.1.0.tgz",
|
||||
"integrity": "sha512-SS9+tw16aPYi3UGwxUJL5uuBeYN42flYhfy2+4gBS2HPJnbrRXytlPywYRIFir9b1PI5sf9c4M+OEZPRdqYOXA==",
|
||||
"dependencies": {
|
||||
"@babylonjs/core": "^4.2.0",
|
||||
"@babylonjs/inspector": "^4.2.0",
|
||||
"@babylonjs/materials": "^4.2.0",
|
||||
"d3": "^7.0.0"
|
||||
"@babylonjs/core": "^5.8.0",
|
||||
"@babylonjs/inspector": "^5.8.0",
|
||||
"@babylonjs/loaders": "^5.8.0",
|
||||
"@babylonjs/materials": "^5.8.0",
|
||||
"d3": "^7.4.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@surma/rollup-plugin-off-main-thread": {
|
||||
@ -2752,15 +2795,15 @@
|
||||
"integrity": "sha512-V25YHbSoKQN35UasHf0EKD9U2vcmexRSp78qa8UglxFH8H3D+adEa9zGZwrqpH4TdvqeMrgMqVqsLB4woAryrQ=="
|
||||
},
|
||||
"node_modules/@types/prop-types": {
|
||||
"version": "15.7.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz",
|
||||
"integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==",
|
||||
"version": "15.7.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
|
||||
"integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@types/react": {
|
||||
"version": "17.0.40",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.40.tgz",
|
||||
"integrity": "sha512-UrXhD/JyLH+W70nNSufXqMZNuUD2cXHu6UjCllC6pmOQgBX4SGXOH8fjRka0O0Ee0HrFxapDD8Bwn81Kmiz6jQ==",
|
||||
"version": "18.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz",
|
||||
"integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/prop-types": "*",
|
||||
@ -2769,9 +2812,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@types/react-dom": {
|
||||
"version": "17.0.13",
|
||||
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.13.tgz",
|
||||
"integrity": "sha512-wEP+B8hzvy6ORDv1QBhcQia4j6ea4SFIBttHYpXKPFZRviBvknq0FRh3VrIxeXUmsPkwuXVZrVGG7KUVONmXCQ==",
|
||||
"version": "18.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz",
|
||||
"integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/react": "*"
|
||||
@ -3554,12 +3597,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/babylonjs-gltf2interface": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-4.2.2.tgz",
|
||||
"integrity": "sha512-LCQgW1lM+EpKK4yWMiPEgi6ONwJ7W4JrSu3t9JixNRgvnic72OnN2f0bt91rE30EJr1ZaokvkXD/aEiBp/Juyg==",
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-5.8.0.tgz",
|
||||
"integrity": "sha512-60vqZ100RtwexfYnTD2CuKxOpKi8D0KCdU05GCU87BgV6ZavdmmDi04EsGYaH0AH8ygq3AusFyWFiuhTC0gCKQ=="
|
||||
},
|
||||
"node_modules/balanced-match": {
|
||||
"version": "1.0.2",
|
||||
@ -4094,9 +4134,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/csstype": {
|
||||
"version": "3.0.11",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz",
|
||||
"integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==",
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
|
||||
"integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/cypress": {
|
||||
@ -4163,9 +4203,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/d3": {
|
||||
"version": "7.3.0",
|
||||
"resolved": "https://registry.npmjs.org/d3/-/d3-7.3.0.tgz",
|
||||
"integrity": "sha512-MDRLJCMK232OJQRqGljQ/gCxtB8k3/sLKFjftMjzPB3nKVUODpdW9Rb3vcq7U8Ka5YKoZkAmp++Ur6I+6iNWIw==",
|
||||
"version": "7.4.4",
|
||||
"resolved": "https://registry.npmjs.org/d3/-/d3-7.4.4.tgz",
|
||||
"integrity": "sha512-97FE+MYdAlV3R9P74+R3Uar7wUKkIFu89UWMjEaDhiJ9VxKvqaMxauImy8PC2DdBkdM2BxJOIoLxPrcZUyrKoQ==",
|
||||
"dependencies": {
|
||||
"d3-array": "3",
|
||||
"d3-axis": "3",
|
||||
@ -4203,9 +4243,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/d3-array": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.1.1.tgz",
|
||||
"integrity": "sha512-33qQ+ZoZlli19IFiQx4QEpf2CBEayMRzhlisJHSCsSUbDXv6ZishqS1x7uFVClKG4Wr7rZVHvaAttoLow6GqdQ==",
|
||||
"version": "3.1.6",
|
||||
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.1.6.tgz",
|
||||
"integrity": "sha512-DCbBBNuKOeiR9h04ySRBMW52TFVc91O9wJziuyXw6Ztmy8D3oZbmCkOO3UHKC7ceNJsN2Mavo9+vwV8EAEUXzA==",
|
||||
"dependencies": {
|
||||
"internmap": "1 - 2"
|
||||
},
|
||||
@ -4248,9 +4288,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/d3-color": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.0.1.tgz",
|
||||
"integrity": "sha512-6/SlHkDOBLyQSJ1j1Ghs82OIUXpKWlR0hCsw0XrLSQhuUPuCSmLQ1QPH98vpnQxMUQM2/gfAkUEWsupVpd9JGw==",
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
|
||||
"integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
@ -4381,9 +4421,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/d3-hierarchy": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.1.tgz",
|
||||
"integrity": "sha512-LtAIu54UctRmhGKllleflmHalttH3zkfSi4NlKrTAoFKjC+AFBJohsCAdgCBYQwH0F8hIOGY89X1pPqAchlMkA==",
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
|
||||
"integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
@ -10699,63 +10739,74 @@
|
||||
}
|
||||
},
|
||||
"@babylonjs/core": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-4.2.2.tgz",
|
||||
"integrity": "sha512-gAgetSyoxFZ/xzMVVnGPKaP941NHA59Ho8GGKFW98OTEp8yZcnzJjNOD2zfF1eKmlvR/6WwSmcrKWTJtPF1pyA==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-5.8.0.tgz",
|
||||
"integrity": "sha512-1/p2XxuwoGStoEc0Nh0O4iBrSfWpRAYzkWXRqxjTqD/CU1bufZuHFLlBQp6GuVei33RU/yGjVI/W5d/rhSIXYA==",
|
||||
"requires": {
|
||||
"tslib": ">=1.10.0"
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"@babylonjs/gui": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-4.2.2.tgz",
|
||||
"integrity": "sha512-iFKnSb0m9Zz7oeD1LTZWE9Hxcp0QMytXZenLNgrbHOm8mo2V+Y6OiVEP9SpvZRqks6bTDTFrpfjMTy1DrZyTGQ==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-5.8.0.tgz",
|
||||
"integrity": "sha512-uqrJiu2oqyYmY4IgGMfWx0vabUKjkb3PK/ZTO+75rYne6yFFOp5Wivyi03O3Ew+m69W7Igt/gwtVCMaAit+g6w==",
|
||||
"requires": {
|
||||
"@babylonjs/core": "4.2.2",
|
||||
"tslib": ">=1.10.0"
|
||||
"@babylonjs/core": "^5.8.0",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"@babylonjs/gui-editor": {
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/gui-editor/-/gui-editor-5.8.0.tgz",
|
||||
"integrity": "sha512-Fa/m+l8tOIeK81diylQ05t0+8JFYoW5Dm+mX7ekZKPNjViZIBDatsUHYiWBbwA0L2YLwYgADIO+NmhQZe1ns0g==",
|
||||
"requires": {
|
||||
"@babylonjs/core": "^5.8.0",
|
||||
"@babylonjs/gui": "^5.8.0"
|
||||
}
|
||||
},
|
||||
"@babylonjs/inspector": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/inspector/-/inspector-4.2.2.tgz",
|
||||
"integrity": "sha512-aTK9u+wKv9pvL+/ftRMQxIiwyvxUs4AF0RaN/WQgDRqLKdYf+NGCjc2NX5P4Krcs5hU6CD7CjyOIhhtJXGRk7g==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/inspector/-/inspector-5.8.0.tgz",
|
||||
"integrity": "sha512-HJ/4iDdf5G5Jh67FLDlW+tNdKIMSB0NVrExXgY+Vgbj9AtIFqSR/WU2Zo2P3qNnCvq2w9AmDXxfJPkqVq+/hJw==",
|
||||
"requires": {
|
||||
"@babylonjs/core": "4.2.2",
|
||||
"@babylonjs/gui": "4.2.2",
|
||||
"@babylonjs/loaders": "4.2.2",
|
||||
"@babylonjs/materials": "4.2.2",
|
||||
"@babylonjs/serializers": "4.2.2",
|
||||
"babylonjs-gltf2interface": "4.2.2",
|
||||
"tslib": ">=1.10.0"
|
||||
"@babylonjs/core": "^5.8.0",
|
||||
"@babylonjs/gui": "^5.8.0",
|
||||
"@babylonjs/gui-editor": "^5.8.0",
|
||||
"@babylonjs/loaders": "^5.8.0",
|
||||
"@babylonjs/materials": "^5.8.0",
|
||||
"@babylonjs/serializers": "^5.8.0",
|
||||
"@fortawesome/fontawesome-svg-core": "^6.1.0",
|
||||
"@fortawesome/free-regular-svg-icons": "^6.0.0",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"@babylonjs/loaders": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-4.2.2.tgz",
|
||||
"integrity": "sha512-Qk8r4xp4eOznbX3AsNYv8HgwS+tzGu6TwSpDX4il3g0B+k1N5k6KE5ghrnwDytoxUDVjGZ/VKk2cQqiHsg/NLg==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-5.8.0.tgz",
|
||||
"integrity": "sha512-8hA6xGlJcNvktJ7kzLZyNcWUaoy/LgINNjGKc1l6kvzf2sTLZ2xC0w8ZkHPlOB9Y7o4U4VNRvoxgtewYnTI+8g==",
|
||||
"requires": {
|
||||
"@babylonjs/core": "4.2.2",
|
||||
"babylonjs-gltf2interface": "4.2.2",
|
||||
"tslib": ">=1.10.0"
|
||||
"@babylonjs/core": "^5.8.0",
|
||||
"babylonjs-gltf2interface": "^5.8.0",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"@babylonjs/materials": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-4.2.2.tgz",
|
||||
"integrity": "sha512-Y7umjVEYV5ZsLYVxgrkb5+4lPsz35acgOEqiZErFBdGXJw3AHJLJmalcmL5WXqUBR2SzyShFLCJOdbFQbkmaxg==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-5.8.0.tgz",
|
||||
"integrity": "sha512-jXP6xFzhctt3zi7JSpLN0FM38P/BO6xfWFN+odnCcA+RZm66Pm9QhcCU3m6vbn/8fZuj3/u2HUve0LusdBr9XQ==",
|
||||
"requires": {
|
||||
"@babylonjs/core": "4.2.2",
|
||||
"tslib": ">=1.10.0"
|
||||
"@babylonjs/core": "^5.8.0",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"@babylonjs/serializers": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-4.2.2.tgz",
|
||||
"integrity": "sha512-PEW09qqScaWV5c9UA44uY2YuF9aQJ6gYTMvjopul9YsiPoJolL4QrHO9OxikaYWQb7rgll3XukoRejhZ+HanTQ==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-5.8.0.tgz",
|
||||
"integrity": "sha512-KZNK5p9dlSaEjeS/jH50pAD9liJjkQCdWg9SXc1l537wiJHSqBdkYQ1akgTrVIbYhrjr5sYh/4+Eh8qx378eBg==",
|
||||
"requires": {
|
||||
"@babylonjs/core": "4.2.2",
|
||||
"babylonjs-gltf2interface": "4.2.2",
|
||||
"tslib": ">=1.10.0"
|
||||
"@babylonjs/core": "^5.8.0",
|
||||
"babylonjs-gltf2interface": "^5.8.0",
|
||||
"tslib": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"@codemirror/autocomplete": {
|
||||
@ -11092,6 +11143,35 @@
|
||||
"strip-json-comments": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"@fortawesome/fontawesome-common-types": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.1.1.tgz",
|
||||
"integrity": "sha512-wVn5WJPirFTnzN6tR95abCx+ocH+3IFLXAgyavnf9hUmN0CfWoDjPT/BAWsUVwSlYYVBeCLJxaqi7ZGe4uSjBA=="
|
||||
},
|
||||
"@fortawesome/fontawesome-svg-core": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.1.1.tgz",
|
||||
"integrity": "sha512-NCg0w2YIp81f4V6cMGD9iomfsIj7GWrqmsa0ZsPh59G7PKiGN1KymZNxmF00ssuAlo/VZmpK6xazsGOwzKYUMg==",
|
||||
"requires": {
|
||||
"@fortawesome/fontawesome-common-types": "6.1.1"
|
||||
}
|
||||
},
|
||||
"@fortawesome/free-regular-svg-icons": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.1.1.tgz",
|
||||
"integrity": "sha512-xXiW7hcpgwmWtndKPOzG+43fPH7ZjxOaoeyooptSztGmJxCAflHZxXNK0GcT0uEsR4jTGQAfGklDZE5NHoBhKg==",
|
||||
"requires": {
|
||||
"@fortawesome/fontawesome-common-types": "6.1.1"
|
||||
}
|
||||
},
|
||||
"@fortawesome/free-solid-svg-icons": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.1.1.tgz",
|
||||
"integrity": "sha512-0/5exxavOhI/D4Ovm2r3vxNojGZioPwmFrKg0ZUH69Q68uFhFPs6+dhAToh6VEQBntxPRYPuT5Cg1tpNa9JUPg==",
|
||||
"requires": {
|
||||
"@fortawesome/fontawesome-common-types": "6.1.1"
|
||||
}
|
||||
},
|
||||
"@humanwhocodes/config-array": {
|
||||
"version": "0.9.5",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz",
|
||||
@ -11398,14 +11478,15 @@
|
||||
}
|
||||
},
|
||||
"@sindarius/gcodeviewer": {
|
||||
"version": "2.1.18",
|
||||
"resolved": "https://registry.npmjs.org/@sindarius/gcodeviewer/-/gcodeviewer-2.1.18.tgz",
|
||||
"integrity": "sha512-uGD5uozEfUjbQaJw2D4pr1+ai1+X6cNf6W1olpaO/R7Ijr9E4NXllsXMeTKYjeMynNdhElDuefTRC843+egAOA==",
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sindarius/gcodeviewer/-/gcodeviewer-3.1.0.tgz",
|
||||
"integrity": "sha512-SS9+tw16aPYi3UGwxUJL5uuBeYN42flYhfy2+4gBS2HPJnbrRXytlPywYRIFir9b1PI5sf9c4M+OEZPRdqYOXA==",
|
||||
"requires": {
|
||||
"@babylonjs/core": "^4.2.0",
|
||||
"@babylonjs/inspector": "^4.2.0",
|
||||
"@babylonjs/materials": "^4.2.0",
|
||||
"d3": "^7.0.0"
|
||||
"@babylonjs/core": "^5.8.0",
|
||||
"@babylonjs/inspector": "^5.8.0",
|
||||
"@babylonjs/loaders": "^5.8.0",
|
||||
"@babylonjs/materials": "^5.8.0",
|
||||
"d3": "^7.4.4"
|
||||
}
|
||||
},
|
||||
"@surma/rollup-plugin-off-main-thread": {
|
||||
@ -11467,15 +11548,15 @@
|
||||
"integrity": "sha512-V25YHbSoKQN35UasHf0EKD9U2vcmexRSp78qa8UglxFH8H3D+adEa9zGZwrqpH4TdvqeMrgMqVqsLB4woAryrQ=="
|
||||
},
|
||||
"@types/prop-types": {
|
||||
"version": "15.7.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz",
|
||||
"integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==",
|
||||
"version": "15.7.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
|
||||
"integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
|
||||
"peer": true
|
||||
},
|
||||
"@types/react": {
|
||||
"version": "17.0.40",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.40.tgz",
|
||||
"integrity": "sha512-UrXhD/JyLH+W70nNSufXqMZNuUD2cXHu6UjCllC6pmOQgBX4SGXOH8fjRka0O0Ee0HrFxapDD8Bwn81Kmiz6jQ==",
|
||||
"version": "18.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz",
|
||||
"integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@types/prop-types": "*",
|
||||
@ -11484,9 +11565,9 @@
|
||||
}
|
||||
},
|
||||
"@types/react-dom": {
|
||||
"version": "17.0.13",
|
||||
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.13.tgz",
|
||||
"integrity": "sha512-wEP+B8hzvy6ORDv1QBhcQia4j6ea4SFIBttHYpXKPFZRviBvknq0FRh3VrIxeXUmsPkwuXVZrVGG7KUVONmXCQ==",
|
||||
"version": "18.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz",
|
||||
"integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@types/react": "*"
|
||||
@ -12045,9 +12126,9 @@
|
||||
}
|
||||
},
|
||||
"babylonjs-gltf2interface": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-4.2.2.tgz",
|
||||
"integrity": "sha512-LCQgW1lM+EpKK4yWMiPEgi6ONwJ7W4JrSu3t9JixNRgvnic72OnN2f0bt91rE30EJr1ZaokvkXD/aEiBp/Juyg=="
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-5.8.0.tgz",
|
||||
"integrity": "sha512-60vqZ100RtwexfYnTD2CuKxOpKi8D0KCdU05GCU87BgV6ZavdmmDi04EsGYaH0AH8ygq3AusFyWFiuhTC0gCKQ=="
|
||||
},
|
||||
"balanced-match": {
|
||||
"version": "1.0.2",
|
||||
@ -12433,9 +12514,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"csstype": {
|
||||
"version": "3.0.11",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz",
|
||||
"integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==",
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
|
||||
"integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==",
|
||||
"peer": true
|
||||
},
|
||||
"cypress": {
|
||||
@ -12497,9 +12578,9 @@
|
||||
}
|
||||
},
|
||||
"d3": {
|
||||
"version": "7.3.0",
|
||||
"resolved": "https://registry.npmjs.org/d3/-/d3-7.3.0.tgz",
|
||||
"integrity": "sha512-MDRLJCMK232OJQRqGljQ/gCxtB8k3/sLKFjftMjzPB3nKVUODpdW9Rb3vcq7U8Ka5YKoZkAmp++Ur6I+6iNWIw==",
|
||||
"version": "7.4.4",
|
||||
"resolved": "https://registry.npmjs.org/d3/-/d3-7.4.4.tgz",
|
||||
"integrity": "sha512-97FE+MYdAlV3R9P74+R3Uar7wUKkIFu89UWMjEaDhiJ9VxKvqaMxauImy8PC2DdBkdM2BxJOIoLxPrcZUyrKoQ==",
|
||||
"requires": {
|
||||
"d3-array": "3",
|
||||
"d3-axis": "3",
|
||||
@ -12534,9 +12615,9 @@
|
||||
}
|
||||
},
|
||||
"d3-array": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.1.1.tgz",
|
||||
"integrity": "sha512-33qQ+ZoZlli19IFiQx4QEpf2CBEayMRzhlisJHSCsSUbDXv6ZishqS1x7uFVClKG4Wr7rZVHvaAttoLow6GqdQ==",
|
||||
"version": "3.1.6",
|
||||
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.1.6.tgz",
|
||||
"integrity": "sha512-DCbBBNuKOeiR9h04ySRBMW52TFVc91O9wJziuyXw6Ztmy8D3oZbmCkOO3UHKC7ceNJsN2Mavo9+vwV8EAEUXzA==",
|
||||
"requires": {
|
||||
"internmap": "1 - 2"
|
||||
}
|
||||
@ -12567,9 +12648,9 @@
|
||||
}
|
||||
},
|
||||
"d3-color": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.0.1.tgz",
|
||||
"integrity": "sha512-6/SlHkDOBLyQSJ1j1Ghs82OIUXpKWlR0hCsw0XrLSQhuUPuCSmLQ1QPH98vpnQxMUQM2/gfAkUEWsupVpd9JGw=="
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
|
||||
"integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA=="
|
||||
},
|
||||
"d3-contour": {
|
||||
"version": "3.0.1",
|
||||
@ -12655,9 +12736,9 @@
|
||||
}
|
||||
},
|
||||
"d3-hierarchy": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.1.tgz",
|
||||
"integrity": "sha512-LtAIu54UctRmhGKllleflmHalttH3zkfSi4NlKrTAoFKjC+AFBJohsCAdgCBYQwH0F8hIOGY89X1pPqAchlMkA=="
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
|
||||
"integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA=="
|
||||
},
|
||||
"d3-interpolate": {
|
||||
"version": "3.0.1",
|
||||
|
@ -32,7 +32,7 @@
|
||||
"@codemirror/state": "^0.19.6",
|
||||
"@codemirror/stream-parser": "^0.19.2",
|
||||
"@codemirror/view": "^0.19.28",
|
||||
"@sindarius/gcodeviewer": "^2.1.17",
|
||||
"@sindarius/gcodeviewer": "^3.1.0",
|
||||
"@types/node": "^16.11.22",
|
||||
"@types/overlayscrollbars": "^1.12.1",
|
||||
"axios": "^0.26.0",
|
||||
|
@ -2,66 +2,52 @@
|
||||
<style>
|
||||
.viewer {
|
||||
width: 100%;
|
||||
height: calc(var(--app-height) - 266px);
|
||||
height: calc(var(--app-height) - 240px);
|
||||
border: 1px solid #3f3f3f;
|
||||
}
|
||||
|
||||
.slider-autoheight,
|
||||
.slider-autoheight .v-slider {
|
||||
height: calc(var(--app-height) - 286px);
|
||||
.withScrubber .viewer {
|
||||
height: calc(var(--app-height) - 300px);
|
||||
}
|
||||
|
||||
@media (min-width: 600px) and (max-width: 959px) {
|
||||
.viewer {
|
||||
height: calc(var(--app-height) - 318px);
|
||||
height: calc(var(--app-height) - 295px);
|
||||
}
|
||||
.slider-autoheight,
|
||||
.slider-autoheight .v-slider {
|
||||
height: calc(var(--app-height) - 338px);
|
||||
|
||||
.withScrubber .viewer {
|
||||
height: calc(var(--app-height) - 360px);
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 599px) {
|
||||
.viewer {
|
||||
height: calc(var(--app-height) - 356px);
|
||||
height: calc(var(--app-height) - 340px);
|
||||
}
|
||||
.slider-autoheight,
|
||||
.slider-autoheight .v-slider {
|
||||
height: calc(var(--app-height) - 376px);
|
||||
}
|
||||
}
|
||||
|
||||
.slider-autoheight .v-slider {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.slider-autoheight .v-input__slot {
|
||||
height: 100%;
|
||||
.withScrubber .viewer {
|
||||
height: calc(var(--app-height) - 340px);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style scoped>
|
||||
.progress-text {
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
.progress-container {
|
||||
position: absolute;
|
||||
width: 80.5%;
|
||||
}
|
||||
|
||||
.disable-transition {
|
||||
transition: none !important;
|
||||
}
|
||||
|
||||
.gcode-viewer-panel {
|
||||
.scrubber {
|
||||
position: relative;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 5px;
|
||||
z-index: 19 !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<panel :title="$t('GCodeViewer.Title')" :icon="mdiVideo3d" card-class="gcode-viewer-panel">
|
||||
<panel
|
||||
:title="$t('GCodeViewer.Title')"
|
||||
:icon="mdiVideo3d"
|
||||
card-class="gcode-viewer-panel"
|
||||
:margin-bottom="false">
|
||||
<template #buttons>
|
||||
<v-btn
|
||||
v-show="reloadRequired"
|
||||
@ -79,19 +65,36 @@
|
||||
</v-btn>
|
||||
</template>
|
||||
<v-card-text>
|
||||
<v-row>
|
||||
<v-row :class="showScrubber ? 'withScrubber' : ''">
|
||||
<v-col>
|
||||
<div ref="viewerCanvasContainer"></div>
|
||||
</v-col>
|
||||
<v-col class="col-auto pr-6">
|
||||
</v-row>
|
||||
<v-row v-show="showScrubber" class="scrubber">
|
||||
<v-col class="pt-0">
|
||||
<v-slider
|
||||
vertical
|
||||
:disabled="loading || !loadedFile"
|
||||
:max="maxZSlider"
|
||||
:min="0"
|
||||
:value="zSlider"
|
||||
class="slider-autoheight mt-3"
|
||||
@input="updateZSlider"></v-slider>
|
||||
v-model="scrubPosition"
|
||||
:hint="scrubPosition + '/' + scrubFileSize"
|
||||
:max="scrubFileSize"
|
||||
dense
|
||||
min="0"
|
||||
persistent-hint></v-slider>
|
||||
</v-col>
|
||||
<v-col class="col-auto pt-0 text-center">
|
||||
<v-btn class="px-2 minwidth-0" color="primary" @click="scrubPlaying = !scrubPlaying">
|
||||
<v-icon v-if="scrubPlaying">{{ mdiPause }}</v-icon>
|
||||
<v-icon v-else>{{ mdiPlay }}</v-icon>
|
||||
</v-btn>
|
||||
<v-btn class="px-2 minwidth-0 mx-3" color="primary" @click="fastForward">
|
||||
<v-icon>{{ mdiFastForward }}</v-icon>
|
||||
</v-btn>
|
||||
<v-btn-toggle v-model="scrubSpeed" class="mt-3 mt-sm-0" dense mandatory rounded>
|
||||
<v-btn :value="1">1x</v-btn>
|
||||
<v-btn :value="2">2x</v-btn>
|
||||
<v-btn :value="5">5x</v-btn>
|
||||
<v-btn :value="10">10x</v-btn>
|
||||
<v-btn :value="20">20x</v-btn>
|
||||
</v-btn-toggle>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row class="mt-0 d-flex align-top">
|
||||
@ -116,7 +119,10 @@
|
||||
v-html="tracking ? mdiToggleSwitch : mdiToggleSwitchOffOutline"></v-icon>
|
||||
{{ $t('GCodeViewer.Tracking') }}
|
||||
</v-btn>
|
||||
<v-btn @click="clearLoadedFile">{{ $t('GCodeViewer.ClearLoadedFile') }}</v-btn>
|
||||
<v-btn @click="clearLoadedFile">
|
||||
<v-icon left>{{ mdiBroom }}</v-icon>
|
||||
{{ $t('GCodeViewer.ClearLoadedFile') }}
|
||||
</v-btn>
|
||||
</template>
|
||||
</v-col>
|
||||
<v-col class="col-12 col-sm-6 col-md-4">
|
||||
@ -129,7 +135,7 @@
|
||||
hide-details
|
||||
outlined></v-select>
|
||||
</v-col>
|
||||
<v-col order-md="3" class="col-12 col-sm-6 col-md-4">
|
||||
<v-col order-md="3" class="col-12 col-sm-6 col-md-4 d-flex">
|
||||
<v-select
|
||||
v-model="renderQuality"
|
||||
:items="renderQualities"
|
||||
@ -138,82 +144,82 @@
|
||||
dense
|
||||
hide-details
|
||||
outlined></v-select>
|
||||
<v-menu
|
||||
:offset-y="true"
|
||||
:offset-x="true"
|
||||
top
|
||||
:close-on-content-click="false"
|
||||
:title="$t('Files.SetupCurrentList')">
|
||||
<template #activator="{ on, attrs }">
|
||||
<v-btn class="minwidth-0 px-2 ml-3" v-bind="attrs" v-on="on">
|
||||
<v-icon>{{ mdiCog }}</v-icon>
|
||||
</v-btn>
|
||||
</template>
|
||||
<v-list>
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="showCursor"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.ShowToolhead')"></v-checkbox>
|
||||
</v-list-item>
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="showTravelMoves"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.ShowTravelMoves')"></v-checkbox>
|
||||
</v-list-item>
|
||||
<v-list-item
|
||||
v-if="loadedFile === sdCardFilePath && printing_objects.length > 1"
|
||||
class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="showObjectSelection"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.ShowObjectSelection')"></v-checkbox>
|
||||
</v-list-item>
|
||||
<v-divider></v-divider>
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="hdRendering"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.HDRendering')"></v-checkbox>
|
||||
</v-list-item>
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="forceLineRendering"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.ForceLineRendering')"></v-checkbox>
|
||||
</v-list-item>
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="transparency"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.Transparency')"></v-checkbox>
|
||||
</v-list-item>
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="voxelMode"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.VoxelMode')"></v-checkbox>
|
||||
</v-list-item>
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="specularLighting"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.SpecularLighting')"></v-checkbox>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
</v-menu>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-col>
|
||||
<v-menu
|
||||
:offset-y="true"
|
||||
:offset-x="true"
|
||||
top
|
||||
:close-on-content-click="false"
|
||||
:title="$t('Files.SetupCurrentList')">
|
||||
<template #activator="{ on, attrs }">
|
||||
<v-btn class="minwidth-0 px-2 mr-3 mt-3" v-bind="attrs" v-on="on">
|
||||
<v-icon>{{ mdiCog }}</v-icon>
|
||||
</v-btn>
|
||||
</template>
|
||||
<v-list>
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="showCursor"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.ShowToolhead')"></v-checkbox>
|
||||
</v-list-item>
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="showTravelMoves"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.ShowTravelMoves')"></v-checkbox>
|
||||
</v-list-item>
|
||||
<v-list-item
|
||||
v-if="loadedFile === sdCardFilePath && printing_objects.length > 1"
|
||||
class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="showObjectSelection"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.ShowObjectSelection')"></v-checkbox>
|
||||
</v-list-item>
|
||||
<v-divider></v-divider>
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="hdRendering"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.HDRendering')"></v-checkbox>
|
||||
</v-list-item>
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="forceLineRendering"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.ForceLineRendering')"></v-checkbox>
|
||||
</v-list-item>
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="transparency"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.Transparency')"></v-checkbox>
|
||||
</v-list-item>
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="voxelMode"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.VoxelMode')"></v-checkbox>
|
||||
</v-list-item>
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox
|
||||
v-model="specularLighting"
|
||||
class="mt-0"
|
||||
hide-details
|
||||
:label="$t('GCodeViewer.SpecularLighting')"></v-checkbox>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
</v-menu>
|
||||
</v-row>
|
||||
<input
|
||||
ref="fileInput"
|
||||
@ -280,6 +286,10 @@ import {
|
||||
mdiToggleSwitch,
|
||||
mdiToggleSwitchOffOutline,
|
||||
mdiVideo3d,
|
||||
mdiPlay,
|
||||
mdiPause,
|
||||
mdiFastForward,
|
||||
mdiBroom,
|
||||
} from '@mdi/js'
|
||||
import { Debounce } from 'vue-debounce-decorator'
|
||||
|
||||
@ -311,6 +321,10 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
mdiClose = mdiClose
|
||||
mdiCog = mdiCog
|
||||
mdiVideo3d = mdiVideo3d
|
||||
mdiPlay = mdiPlay
|
||||
mdiPause = mdiPause
|
||||
mdiFastForward = mdiFastForward
|
||||
mdiBroom = mdiBroom
|
||||
|
||||
formatFilesize = formatFilesize
|
||||
|
||||
@ -323,11 +337,14 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
|
||||
private reloadRequired = false
|
||||
private fileSize = 0
|
||||
private maxZSlider = 100000
|
||||
private zSlider = this.maxZSlider
|
||||
private zSlicerHeight = 100
|
||||
private renderQuality = this.renderQualities[2]
|
||||
|
||||
private scrubPosition = 0
|
||||
private scrubPlaying = false
|
||||
private scrubSpeed = 1
|
||||
private scrubInterval: ReturnType<typeof setInterval> | undefined = undefined
|
||||
private scrubFileSize = 0
|
||||
|
||||
private downloadSnackbar: downloadSnackbar = {
|
||||
status: false,
|
||||
filename: '',
|
||||
@ -362,8 +379,9 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
async mounted() {
|
||||
this.loadedFile = this.$store.state.gcodeviewer?.loadedFileBackup ?? null
|
||||
viewer = this.$store.state.gcodeviewer?.viewerBackup ?? null
|
||||
|
||||
await this.init()
|
||||
|
||||
if (this.loadedFile !== null) this.scrubFileSize = viewer.fileSize
|
||||
}
|
||||
|
||||
beforeDestroy() {
|
||||
@ -372,6 +390,12 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
this.$store.dispatch('gcodeviewer/setLoadedFileBackup', this.loadedFile)
|
||||
this.$store.dispatch('gcodeviewer/setViewerBackup', viewer)
|
||||
}
|
||||
|
||||
this.scrubPlaying = false
|
||||
if (this.scrubInterval) {
|
||||
clearInterval(this.scrubInterval)
|
||||
this.scrubInterval = undefined
|
||||
}
|
||||
}
|
||||
|
||||
@Debounce(200)
|
||||
@ -424,22 +448,20 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
}
|
||||
}
|
||||
|
||||
if (viewer === null) {
|
||||
await this.viewerInit(canvasElement)
|
||||
}
|
||||
if (viewer === null) await this.viewerInit(canvasElement)
|
||||
|
||||
this.registerProgressCallback()
|
||||
|
||||
if (this.$route.query?.filename && this.loadedFile !== this.$route.query?.filename?.toString()) {
|
||||
//TODO: test without sleep
|
||||
await this.sleep(1000) //Give the store a chance to initializ before loading the file.
|
||||
await this.sleep(1000) //Give the store a chance to initialize before loading the file.
|
||||
await this.loadFile(this.$route.query.filename.toString())
|
||||
}
|
||||
}
|
||||
|
||||
viewerInit(element: HTMLCanvasElement) {
|
||||
async viewerInit(element: HTMLCanvasElement) {
|
||||
viewer = new GCodeViewer(element)
|
||||
viewer.init()
|
||||
await viewer.init()
|
||||
viewer.setBackgroundColor(this.backgroundColor)
|
||||
viewer.bed.setBedColor(this.gridColor)
|
||||
viewer.setCursorVisiblity(this.showCursor)
|
||||
@ -495,6 +517,8 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
|
||||
clearLoadedFile() {
|
||||
if (viewer) {
|
||||
this.scrubPlaying = false
|
||||
this.scrubFileSize = 0
|
||||
viewer.clearScene(true)
|
||||
this.loadedFile = null
|
||||
this.tracking = false
|
||||
@ -508,8 +532,6 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
}
|
||||
|
||||
finishLoad() {
|
||||
this.maxZSlider = viewer.getMaxHeight() + 1
|
||||
this.zSlider = this.maxZSlider
|
||||
this.loading = false
|
||||
viewer.setCursorVisiblity(this.showCursor)
|
||||
|
||||
@ -531,6 +553,7 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
viewer.buildObjects.loadObjectBoundaries(objects)
|
||||
viewer.buildObjects.showObjectSelection(this.showObjectSelection)
|
||||
}
|
||||
this.scrubFileSize = viewer.fileSize
|
||||
|
||||
viewer.gcodeProcessor.updateFilePosition(viewer.fileSize)
|
||||
}
|
||||
@ -593,6 +616,7 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
await viewer.processFile(text)
|
||||
this.loadingPercent = 100
|
||||
this.finishLoad()
|
||||
this.scrubFileSize = viewer.fileSize
|
||||
}
|
||||
|
||||
cancelDownload() {
|
||||
@ -672,8 +696,7 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
async trackingChanged(newVal: boolean) {
|
||||
if (!viewer) return
|
||||
if (newVal) {
|
||||
//Set zSlider to max value
|
||||
this.zSlider = this.maxZSlider
|
||||
this.scrubPlaying = false
|
||||
//Force renderers reload.
|
||||
viewer.gcodeProcessor.updateFilePosition(0)
|
||||
viewer?.forceRender()
|
||||
@ -989,12 +1012,6 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
}
|
||||
}
|
||||
|
||||
@Watch('zSlider')
|
||||
zSliderChanged(newVal: number) {
|
||||
viewer?.setZClipPlane(newVal, -1)
|
||||
viewer?.forceRender()
|
||||
}
|
||||
|
||||
get progressColor() {
|
||||
return this.$store.state.gui.gcodeViewer?.progressColor ?? '#FFFFFF'
|
||||
}
|
||||
@ -1004,8 +1021,46 @@ export default class Viewer extends Mixins(BaseMixin) {
|
||||
viewer?.setProgressColor(newVal)
|
||||
}
|
||||
|
||||
updateZSlider(newVal: any) {
|
||||
this.zSlider = newVal
|
||||
@Watch('scrubPlaying')
|
||||
scrubPlayingChanged(to: boolean): void {
|
||||
if (to) {
|
||||
if (this.scrubInterval) {
|
||||
clearInterval(this.scrubInterval)
|
||||
this.scrubInterval = undefined
|
||||
}
|
||||
this.scrubPlaying = true
|
||||
if (this.scrubPosition >= this.scrubFileSize) {
|
||||
this.scrubPosition = 0
|
||||
}
|
||||
|
||||
viewer.gcodeProcessor.updateFilePosition(this.scrubPosition - 30000)
|
||||
this.scrubInterval = setInterval(() => {
|
||||
this.scrubPosition += 100 * this.scrubSpeed
|
||||
viewer.gcodeProcessor.updateFilePosition(this.scrubPosition)
|
||||
if (this.tracking || this.scrubPosition >= this.scrubFileSize) {
|
||||
this.scrubPlaying = false
|
||||
}
|
||||
}, 200)
|
||||
} else {
|
||||
if (this.scrubInterval) clearInterval(this.scrubInterval)
|
||||
this.scrubPlaying = false
|
||||
this.scrubInterval = undefined
|
||||
}
|
||||
}
|
||||
|
||||
get showScrubber() {
|
||||
return !this.tracking && this.scrubFileSize > 0
|
||||
}
|
||||
|
||||
@Debounce(200)
|
||||
@Watch('scrubPosition')
|
||||
updateScrubPosition(to: number): void {
|
||||
if (!this.tracking) viewer.gcodeProcessor.updateFilePosition(to)
|
||||
}
|
||||
|
||||
fastForward(): void {
|
||||
this.scrubPosition = this.scrubFileSize
|
||||
viewer.gcodeProcessor.updateFilePosition(this.scrubPosition)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -1321,7 +1321,7 @@ export default class GcodefilesPanel extends Mixins(BaseMixin) {
|
||||
}
|
||||
|
||||
view3D(item: FileStateFile) {
|
||||
this.$router.push({ path: '/viewer', query: { filename: this.currentPath + '/' + item.filename } })
|
||||
this.$router.push({ path: '/viewer', query: { filename: 'gcodes' + this.currentPath + '/' + item.filename } })
|
||||
}
|
||||
|
||||
deleteSelectedFiles() {
|
||||
|
@ -37,6 +37,24 @@
|
||||
</v-menu>
|
||||
</settings-row>
|
||||
<v-divider class="my-2"></v-divider>
|
||||
<settings-row :title="$t('Settings.GCodeViewerTab.ProgressColor')">
|
||||
<v-menu :close-on-content-click="false" bottom left offset-y>
|
||||
<template #activator="{ on, attrs }">
|
||||
<v-btn
|
||||
:color="progressColor"
|
||||
class="minwidth-0 px-5"
|
||||
small
|
||||
v-bind="attrs"
|
||||
v-on="on"></v-btn>
|
||||
</template>
|
||||
<v-color-picker
|
||||
:value="progressColor"
|
||||
hide-mode-switch
|
||||
mode="rgba"
|
||||
@update:color="updateColorValue('progressColor', $event)"></v-color-picker>
|
||||
</v-menu>
|
||||
</settings-row>
|
||||
<v-divider class="my-2"></v-divider>
|
||||
<settings-row :title="$t('Settings.GCodeViewerTab.ExtruderColor')">
|
||||
<v-row no-gutters>
|
||||
<v-menu
|
||||
@ -172,6 +190,14 @@ export default class SettingsGCodeViewerTab extends Mixins(BaseMixin) {
|
||||
this.$store.dispatch('gui/saveSetting', { name: 'gcodeViewer.gridColor', value: newVal })
|
||||
}
|
||||
|
||||
get progressColor(): string {
|
||||
return this.$store.state.gui.gcodeViewer.progressColor
|
||||
}
|
||||
|
||||
set progressColor(newVal: string) {
|
||||
this.$store.dispatch('gui/saveSetting', { name: 'gcodeViewer.progressColor', value: newVal })
|
||||
}
|
||||
|
||||
@Debounce(500)
|
||||
updateColorValue(colorElement: string, newVal: any): void {
|
||||
Vue.set(this, colorElement, this.clearColorObject(newVal))
|
||||
@ -219,13 +245,5 @@ export default class SettingsGCodeViewerTab extends Mixins(BaseMixin) {
|
||||
if (this.minFeed < 1) this.minFeed = 1
|
||||
if (this.maxFeed < this.minFeed) this.maxFeed = this.minFeed + 1
|
||||
}
|
||||
|
||||
get progressColor(): string {
|
||||
return this.$store.state.gui.gcodeViewer.progressColor
|
||||
}
|
||||
|
||||
set progressColor(newVal: string) {
|
||||
this.$store.dispatch('gui/saveSetting', { name: 'gcodeViewer.progressColor', value: newVal })
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -724,6 +724,7 @@
|
||||
"GridColor": "Gitterfarbe",
|
||||
"MaxFeed": "Max Vorschub",
|
||||
"MinFeed": "Min Vorschub",
|
||||
"ProgressColor": "Fortschrittsfarbe",
|
||||
"ShowAxes": "Zeige Achsen an"
|
||||
},
|
||||
"GeneralTab": {
|
||||
|
@ -772,6 +772,7 @@
|
||||
"GridColor": "Grid Color",
|
||||
"MaxFeed": "Max Feed Rate",
|
||||
"MinFeed": "Min Feed Rate",
|
||||
"ProgressColor": "Progress Color",
|
||||
"ShowAxes": "Show Axes"
|
||||
},
|
||||
"GeneralTab": {
|
||||
|
@ -118,7 +118,7 @@ export const getDefaultState = (): GuiState => {
|
||||
maxFeed: 100,
|
||||
minFeedColor: '#2196f3',
|
||||
maxFeedColor: '#D41216',
|
||||
progressColor: '#FFFFFFB2',
|
||||
progressColor: '#ECECEC',
|
||||
showCursor: true,
|
||||
showTravelMoves: false,
|
||||
showObjectSelection: false,
|
||||
|
Loading…
x
Reference in New Issue
Block a user