Early code base

Note: preact/spectre are not yet defined
This commit is contained in:
Luc
2022-06-07 17:43:12 +08:00
parent a0d1710317
commit d3b7e74692
31 changed files with 15635 additions and 0 deletions

12
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,12 @@
# These are supported funding model platforms
#github: luc-github
#patreon: # Replace with a single Patreon username
#open_collective: # Replace with a single Open Collective username
ko_fi: ESP3D # Replace with a single Ko-fi username
#tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
#community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: ESP3D
#issuehunt: # Replace with a single IssueHunt username
#otechie: # Replace with a single Otechie username
custom: https://www.paypal.com/donate/?hosted_button_id=FQL59C749A78L

View File

@@ -0,0 +1,34 @@
---
name: Bug report / Problem
about: Create a report to help us improve and help you
title: "[BUG]<Enter comprehensive title>"
labels: bug
assignees: ''
---
**Describe the bug**
<!--A clear and concise description of what the bug is.-->
**To Reproduce**
<!--Steps to reproduce the behavior:-->
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
<!--A clear and concise description of what you expected to happen.-->
**Screenshots**
<!--If applicable, add screenshots to help explain your problem.-->
**Additional context**
<!--Add any other context about the problem here.
Wiring, decoded stack, etc...-->

11
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: Wiki
url: https://github.com/luc-github/ESP3D/wiki
about: The Wiki has lot of informations.
- name: F.A.Q. (Frequent asked questions)
url: https://github.com/luc-github/ESP3D/issues?utf8=%E2%9C%93&q=label%3AFAQ
about: The usual questions / problems meet and their solution
- name: Discord chat
url: https://discord.gg/Z4ujTwE
about: Join the discord for support and discussion.

View File

@@ -0,0 +1,24 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[FEATURE REQUEST]<Enter comprehensive title>"
labels: Feature request
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
<!--A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]-->
**Describe the solution you'd like**
<!--A clear and concise description of what you want to happen.-->
**Describe alternatives you've considered**
<!--A clear and concise description of any alternative solutions or features you've considered.-->
**Additional context**
<!--Add any other context or screenshots about the feature request here.-->

View File

@@ -0,0 +1,11 @@
---
name: Question template
about: Ask your question, if not bug neither feature request, neither an error you
meet.
title: "[Question]<Enter comprehensive title>"
labels: question
assignees: ''
---
What is your question ?

49
.github/stale.yml vendored Normal file
View File

@@ -0,0 +1,49 @@
# Configuration for probot-stale - https://github.com/probot/stale
# Number of days of inactivity before an Issue or Pull Request becomes stale
daysUntilStale: 21
# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
daysUntilClose: 3
# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
onlyLabels: []
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
exemptLabels:
- pinned
- security
- "Under Investigation"
- "Work in progress"
- Planned
- "Feedback Welcome"
# Set to true to ignore issues in a project (defaults to false)
exemptProjects: false
# Set to true to ignore issues in a milestone (defaults to false)
exemptMilestones: false
# Set to true to ignore issues with an assignee (defaults to false)
exemptAssignees: false
# Label to use when marking as stale
staleLabel: stale
# Comment to post when marking as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when removing the stale label.
unmarkComment: >
This issue has been removed from the stale queue. Please ensure activity to keep it openin the future.
# Comment to post when closing a stale Issue or Pull Request.
closeComment: >
This stale issue has been automatically closed. Thank you for your contributions.
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30
# Limit to only `issues` or `pulls`
only: issues

13
.github/workflows/greetings.yml vendored Normal file
View File

@@ -0,0 +1,13 @@
name: Greetings
on: [pull_request, issues]
jobs:
greeting:
runs-on: ubuntu-latest
steps:
- uses: actions/first-interaction@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
issue-message: 'Thank your for submiting'
pr-message: 'Thank you for your contribution, be patient, review can take a time.'

26
.github/workflows/lock.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
name: 'Lock threads'
on:
schedule:
- cron: '0 0 * * *'
jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v2
with:
github-token: ${{ github.token }}
issue-lock-inactive-days: '10'
issue-exclude-created-before: ''
issue-exclude-labels: 'planned'
issue-lock-labels: 'outdated'
issue-lock-comment: 'This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.'
issue-lock-reason: 'resolved'
pr-lock-inactive-days: '365'
pr-exclude-created-before: ''
pr-exclude-labels: ''
pr-lock-labels: ''
pr-lock-comment: ''
pr-lock-reason: 'resolved'
process-only: 'issues'

27
.github/workflows/wiki.yml vendored Normal file
View File

@@ -0,0 +1,27 @@
name: Deploy Wiki
on:
push:
paths:
# Trigger only when wiki directory changes
- 'wiki/**'
branches:
# And only on main branch
- main
jobs:
deploy-wiki:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Push Wiki Changes
uses: Andrew-Chen-Wang/github-wiki-action@v3
env:
# Make sure you have that / at the end. We use rsync
# WIKI_DIR's default is wiki/
WIKI_DIR: wiki/
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_MAIL: ${{ secrets.MY_EMAIL }}
GH_NAME: ${{ github.repository_owner }}
EXCLUDED_FILES: "a/ b.md"

4
.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
node_modules
.vscode
build

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
14.16.1

18
.prettierrc Normal file
View File

@@ -0,0 +1,18 @@
{
"trailingComma": "es5",
"tabWidth": 4,
"semi": false,
"overrides": [
{
"files": "*.js",
"options": {
"parser": "babel"
}
},
{"files": "*.scss",
"options": {
"parser": "css"
}
}
]
}

16
Notes.txt Normal file
View File

@@ -0,0 +1,16 @@
* Fix dev websocket server cannot work under Linux
> sudo apt-get install libcap2-bin
> sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``
* Fix and “ need space to be displayed under Linux
> setxkbmap -layout us
* Fix for sass div warning
>npm install -g sass-migrator
>sass-migrator division **/*.scss
Note:
on windows need change script policy first:
> Get-ExecutionPolicy -List
>Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
then when done, put back default (the one got by initial Get-ExecutionPolicy -List)
>Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope CurrentUser

40
config/server.js Normal file
View File

@@ -0,0 +1,40 @@
const express = require("express");
const chalk = require("chalk");
let path = require("path");
const fs = require("fs");
const port = 8080;
/*
* Web Server for development
*/
const wscolor = chalk.cyan;
const expresscolor = chalk.green;
const commandcolor = chalk.white;
const app = express();
let serverpath = path.normalize(__dirname + "/../server/public/");
app.listen(port, () =>
console.log(expresscolor(`[express] Listening on port ${port}!`))
);

53
config/webpack.dev.js Normal file
View File

@@ -0,0 +1,53 @@
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
mode: "development", // this will trigger some webpack default stuffs for dev
entry: path.resolve(__dirname, "../src/index.js"), // if not set, default path to './src/index.js'. Accepts an object with multiple key-value pairs, with key as your custom bundle filename(substituting the [name]), and value as the corresponding file path
output: {
filename: "[name].bundle.js", // [name] will take whatever the input filename is. defaults to 'main' if only a single entry value
path: path.resolve(__dirname, "../dist"), // the folder containing you final dist/build files. Default to './dist'
},
devServer: {
historyApiFallback: true, // to make our SPA works after a full reload, so that it serves 'index.html' when 404 response
open: true,
static: {
directory: path.resolve(__dirname, "./dist"),
},
port: 8088,
proxy: {
context: () => true,
target: "http://localhost:8080",
},
},
stats: "minimal", // default behaviour spit out way too much info. adjust to your need.
devtool: "source-map", // a sourcemap type. map to original source with line number
plugins: [
new HtmlWebpackPlugin({
template: path.join(__dirname, "../src/index.html"),
inlineSource: ".(js|css)$",
inject: true,
}),
], // automatically creates a 'index.html' for us with our <link>, <style>, <script> tags inserted! Visit https://github.com/jantimon/html-webpack-plugin for more options
module: {
rules: [
{
test: /\.js$/,
exclude: /(node_modules)/,
use: {
loader: "babel-loader",
options: {
presets: ["@babel/preset-env"],
},
},
},
{
test: /\.css$/, // run the loaders below only on .css files
// this are the loaders. they interpret files, in this case css. they run from right to left sequence.
// css-loader: "interprets @import and url() like import/require() and will resolve them."
// style-loader: "Adds CSS to the DOM by injecting a <style> tag". this is fine for development.
use: ["style-loader", "css-loader"],
},
],
},
};

90
config/webpack.prod.js Normal file
View File

@@ -0,0 +1,90 @@
const path = require("path");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const HtmlMinimizerPlugin = require("html-minimizer-webpack-plugin");
const HtmlInlineScriptPlugin = require("html-inline-script-webpack-plugin");
const HTMLInlineCSSWebpackPlugin = require("html-inline-css-webpack-plugin")
.default;
const Compression = require("compression-webpack-plugin");
module.exports = {
mode: "production", // this trigger webpack out-of-box prod optimizations
entry: path.resolve(__dirname, "../src/index.js"),
output: {
filename: `[name].[hash].js`, // [hash] is useful for cache busting!
path: path.resolve(__dirname, "../dist"),
},
module: {
rules: [
{
test: /\.css$/,
use: [MiniCssExtractPlugin.loader, "css-loader"],
},
{
test: /\.js$/,
exclude: /node_modules/,
use: [
{
loader: "babel-loader",
options: {
presets: [
[
"@babel/preset-env",
{
useBuiltIns: "usage",
debug: false,
corejs: 3,
targets: {"chrome": "88"},
},
],
],
},
},
],
},
],
},
plugins: [
// always deletes the dist folder first in each build run.
new CleanWebpackPlugin(),
new MiniCssExtractPlugin({
filename: "[name].css",
chunkFilename: "[id].css",
}),
new HtmlWebpackPlugin({
template: path.join(__dirname, "../src/index.html"),
inlineSource: ".(js|css)$",
inject: true,
}),
new HtmlInlineScriptPlugin([/\.(js)$/]),
new HTMLInlineCSSWebpackPlugin(),
new Compression({
test: /\.(html)$/,
filename: "[path][base].gz",
algorithm: "gzip",
exclude: /.map$/,
deleteOriginalAssets: "keep-source-map",
}),
],
optimization: {
minimize: true,
minimizer: [
new HtmlMinimizerPlugin({
minimizerOptions: {
collapseWhitespace: true,
minifyCSS: true,
minifyJS: true,
},
minify: (data, minimizerOptions) => {
const htmlMinifier = require("html-minifier-terser");
const [[filename, input]] = Object.entries(data);
return htmlMinifier.minify(input, minimizerOptions);
},
}),
],
},
devtool: "source-map", // supposedly the ideal type without bloating bundle size
};

BIN
dist/index.html.gz vendored Normal file

Binary file not shown.

1
dist/index.html/index.html vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/main.css.map vendored Normal file

File diff suppressed because one or more lines are too long

11
images/esp3d.svg Normal file
View File

@@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 283.5 283.5">
<path fill="white" d="m 227,91.9 -97,-0.3 0,100.4 83,0 c 20,0 46,-6 47,-36 l 0,-24 c 1,-20 -13,-40 -33,-40.1 z" />
<path d="M79.7,200.2h124c-15.5,16.5-37.6,26.7-62,26.7S95.3,216.7,79.7,200.2z"/>
<path d="M203.7,83.2h-124c15.5-16.5,37.6-26.7,62-26.7S188.2,66.8,203.7,83.2z"/>
<path d="M200.3,152.7c0,2.7-0.5,5-1.5,7.1s-2.4,3.8-4.2,5.2c-1.8,1.4-4,2.5-6.5,3.2c-2.5,0.7-5.3,1.1-8.3,1.1c-1.8,0-3.5-0.1-5.1-0.4c-1.6-0.3-3-0.6-4.2-1c-1.2-0.4-2.2-0.8-3-1.2c-0.8-0.4-1.3-0.7-1.6-0.9c-0.2-0.2-0.4-0.5-0.6-0.7c-0.1-0.3-0.2-0.6-0.3-1c-0.1-0.4-0.2-0.8-0.2-1.4c0-0.6-0.1-1.2-0.1-2c0-1.3,0.1-2.2,0.3-2.7c0.2-0.5,0.5-0.8,1-0.8c0.3,0,0.7,0.2,1.4,0.6c0.7,0.4,1.5,0.8,2.6,1.2c1,0.4,2.3,0.8,3.7,1.2c1.4,0.4,3,0.6,4.8,0.6c1.5,0,2.8-0.2,4-0.5c1.2-0.4,2.1-0.9,2.9-1.5c0.8-0.6,1.4-1.4,1.8-2.3c0.4-0.9,0.6-1.9,0.6-3.1c0-1.2-0.2-2.3-0.7-3.3c-0.5-1-1.2-1.8-2.1-2.5c-0.9-0.7-2.1-1.2-3.6-1.6c-1.4-0.4-3.1-0.6-5.1-0.6h-4.6c-0.4,0-0.7,0-0.9-0.1c-0.2-0.1-0.5-0.3-0.6-0.6c-0.2-0.3-0.3-0.7-0.3-1.3c-0.1-0.5-0.1-1.2-0.1-2.1c0-0.8,0-1.4,0.1-2c0.1-0.5,0.2-0.9,0.3-1.2c0.2-0.3,0.3-0.5,0.6-0.6c0.2-0.1,0.5-0.2,0.8-0.2h4.6c1.6,0,3-0.2,4.2-0.6c1.2-0.4,2.3-0.9,3.1-1.6c0.8-0.7,1.5-1.5,1.9-2.5c0.4-1,0.7-2,0.7-3.2c0-0.9-0.2-1.8-0.5-2.6c-0.3-0.8-0.7-1.5-1.3-2.1c-0.6-0.6-1.3-1.1-2.3-1.4c-0.9-0.3-2-0.5-3.3-0.5c-1.4,0-2.8,0.2-4,0.6c-1.3,0.4-2.4,0.9-3.4,1.4c-1,0.5-1.8,1-2.5,1.4c-0.7,0.4-1.2,0.7-1.5,0.7c-0.2,0-0.4,0-0.6-0.1c-0.2-0.1-0.3-0.3-0.4-0.6c-0.1-0.3-0.2-0.7-0.2-1.2c-0.1-0.5-0.1-1.2-0.1-2c0-0.7,0-1.3,0-1.7c0-0.5,0.1-0.8,0.2-1.1c0.1-0.3,0.2-0.6,0.3-0.8c0.1-0.2,0.3-0.5,0.6-0.7c0.3-0.3,0.8-0.7,1.7-1.2c0.8-0.5,1.9-1,3.2-1.5c1.3-0.5,2.8-0.9,4.5-1.3c1.7-0.3,3.5-0.5,5.5-0.5c2.6,0,4.9,0.3,6.8,0.9c2,0.6,3.7,1.5,5,2.6c1.4,1.1,2.4,2.5,3.1,4.2c0.7,1.7,1,3.5,1,5.6c0,1.6-0.2,3.1-0.6,4.5c-0.4,1.4-1,2.6-1.8,3.7c-0.8,1.1-1.8,2-3,2.8c-1.2,0.8-2.6,1.3-4.1,1.7v0.1c1.9,0.2,3.5,0.7,5,1.4c1.5,0.7,2.7,1.6,3.8,2.7c1,1.1,1.8,2.3,2.4,3.7C200,149.7,200.3,151.2,200.3,152.7z"/>
<path d="M249.6,141c0,4.9-0.6,9-1.9,12.5c-1.3,3.5-3.1,6.3-5.5,8.5c-2.4,2.2-5.3,3.8-8.7,4.8c-3.4,1-7.5,1.5-12.2,1.5h-12.7c-0.9,0-1.7-0.3-2.3-0.8c-0.6-0.5-0.9-1.4-0.9-2.6v-46.4c0-1.2,0.3-2.1,0.9-2.6c0.6-0.5,1.4-0.8,2.3-0.8h13.6c4.7,0,8.8,0.6,12.1,1.7c3.3,1.1,6.1,2.8,8.3,4.9c2.3,2.2,4,4.9,5.2,8.1C249,133,249.6,136.7,249.6,141z M238.5,141.3c0-2.5-0.3-4.9-0.9-7c-0.6-2.2-1.5-4-2.8-5.6c-1.3-1.6-3-2.8-5-3.7c-2-0.9-4.7-1.3-8-1.3h-5.5v36.2h5.6c3,0,5.5-0.4,7.5-1.2c2-0.8,3.7-1.9,5.1-3.5c1.4-1.5,2.4-3.5,3-5.8C238.1,147.1,238.5,144.4,238.5,141.3z"/>
<path d="M222.1,90.3h-34.9H61.4c-21.5,0-39,17.5-39,39v24.9c0,21.5,17.5,39,39,39h68.4h92.3c21.5,0,39-17.5,39-39v-24.9C261.1,107.8,243.6,90.3,222.1,90.3z M155.1,179.4c5-7,4.9-16.5,4.9-16.5v-42.5c0-15,12.2-27.2,27.2-27.2h34.9c19.8,0,36,16.1,36,36v24.9c0,19.8-16.1,36-36,36h-79.2C142.9,190.2,149.6,187.2,155.1,179.4z"/>
<path fill="white" d="M69.7,164.1c0,0.8,0,1.5-0.1,2c-0.1,0.5-0.2,1-0.3,1.3c-0.1,0.3-0.3,0.6-0.5,0.7c-0.2,0.2-0.4,0.2-0.7,0.2H41.4c-0.9,0-1.7-0.3-2.3-0.8c-0.6-0.5-0.9-1.4-0.9-2.6v-46.4c0-1.2,0.3-2.1,0.9-2.6c0.6-0.5,1.4-0.8,2.3-0.8H68c0.2,0,0.5,0.1,0.7,0.2c0.2,0.1,0.4,0.4,0.5,0.7c0.1,0.3,0.2,0.8,0.3,1.3c0.1,0.5,0.1,1.2,0.1,2c0,0.8,0,1.4-0.1,2c-0.1,0.5-0.2,1-0.3,1.3c-0.1,0.3-0.3,0.6-0.5,0.7c-0.2,0.2-0.4,0.2-0.7,0.2H49v13H65c0.2,0,0.5,0.1,0.7,0.2c0.2,0.2,0.4,0.4,0.5,0.7c0.1,0.3,0.2,0.7,0.3,1.3c0.1,0.5,0.1,1.2,0.1,2c0,0.8,0,1.5-0.1,2c-0.1,0.5-0.2,0.9-0.3,1.3c-0.1,0.3-0.3,0.5-0.5,0.7c-0.2,0.1-0.4,0.2-0.7,0.2H49v15h19.2c0.2,0,0.5,0.1,0.7,0.2c0.2,0.2,0.4,0.4,0.5,0.7c0.1,0.3,0.2,0.8,0.3,1.3C69.7,162.6,69.7,163.3,69.7,164.1z"/>
<path fill="white" d="M109.4,152.4c0,2.8-0.5,5.2-1.6,7.4c-1,2.1-2.5,3.9-4.2,5.3c-1.8,1.4-3.9,2.5-6.2,3.2c-2.4,0.7-4.9,1.1-7.6,1.1c-1.8,0-3.5-0.2-5.1-0.5c-1.6-0.3-3-0.7-4.2-1.1c-1.2-0.4-2.2-0.9-3-1.3c-0.8-0.5-1.4-0.9-1.7-1.2c-0.4-0.4-0.6-0.9-0.8-1.5c-0.2-0.7-0.2-1.6-0.2-2.9c0-0.8,0-1.6,0.1-2.1c0.1-0.6,0.1-1,0.3-1.4c0.1-0.4,0.3-0.6,0.5-0.8c0.2-0.2,0.4-0.2,0.7-0.2c0.4,0,0.9,0.2,1.6,0.7c0.7,0.5,1.6,1,2.7,1.5c1.1,0.5,2.4,1,3.9,1.5c1.5,0.5,3.3,0.7,5.3,0.7c1.3,0,2.5-0.2,3.5-0.5c1-0.3,1.9-0.8,2.7-1.3c0.7-0.6,1.3-1.3,1.7-2.1c0.4-0.8,0.6-1.8,0.6-2.8c0-1.2-0.3-2.2-1-3.1c-0.7-0.9-1.5-1.6-2.6-2.3c-1.1-0.7-2.3-1.3-3.6-1.9c-1.3-0.6-2.7-1.2-4.2-1.9c-1.4-0.7-2.8-1.4-4.2-2.2c-1.3-0.8-2.5-1.8-3.6-3c-1.1-1.2-1.9-2.5-2.6-4.1c-0.7-1.6-1-3.5-1-5.7c0-2.5,0.5-4.8,1.4-6.7c0.9-1.9,2.2-3.5,3.8-4.8c1.6-1.3,3.5-2.2,5.7-2.9c2.2-0.6,4.5-0.9,6.9-0.9c1.3,0,2.5,0.1,3.8,0.3c1.3,0.2,2.4,0.5,3.5,0.8c1.1,0.3,2.1,0.7,2.9,1.1c0.8,0.4,1.4,0.8,1.7,1c0.3,0.3,0.5,0.5,0.6,0.7c0.1,0.2,0.2,0.4,0.2,0.8c0.1,0.3,0.1,0.7,0.1,1.2c0,0.5,0,1.1,0,1.8c0,0.8,0,1.5-0.1,2c0,0.5-0.1,1-0.2,1.4c-0.1,0.4-0.2,0.6-0.4,0.8c-0.2,0.2-0.4,0.2-0.7,0.2c-0.3,0-0.8-0.2-1.4-0.6c-0.7-0.4-1.5-0.8-2.4-1.3c-1-0.5-2.1-0.9-3.3-1.2c-1.3-0.4-2.6-0.6-4.2-0.6c-1.2,0-2.2,0.1-3.1,0.4c-0.9,0.3-1.6,0.7-2.2,1.2c-0.6,0.5-1,1.1-1.3,1.8c-0.3,0.7-0.4,1.5-0.4,2.3c0,1.2,0.3,2.2,1,3.1c0.6,0.9,1.5,1.6,2.6,2.3c1.1,0.7,2.3,1.3,3.7,1.9c1.4,0.6,2.8,1.2,4.2,1.9c1.4,0.7,2.8,1.4,4.2,2.2c1.4,0.8,2.6,1.8,3.7,3c1.1,1.2,1.9,2.5,2.6,4.1C109.1,148.4,109.4,150.2,109.4,152.4z"/>
<path fill="white" d="M151.4,131.2c0,3-0.5,5.6-1.4,7.9c-0.9,2.3-2.3,4.2-4.1,5.8c-1.8,1.6-4,2.8-6.6,3.6c-2.6,0.8-5.6,1.2-9.1,1.2h-4.4v17c0,0.3-0.1,0.5-0.3,0.7c-0.2,0.2-0.5,0.4-0.9,0.5c-0.4,0.1-1,0.2-1.6,0.3c-0.7,0.1-1.6,0.1-2.6,0.1c-1,0-1.9,0-2.6-0.1c-0.7-0.1-1.3-0.2-1.7-0.3c-0.4-0.1-0.7-0.3-0.9-0.5c-0.2-0.2-0.2-0.5-0.2-0.7v-47.8c0-1.3,0.3-2.3,1-2.9c0.7-0.6,1.6-1,2.7-1h12.5c1.3,0,2.5,0,3.6,0.1c1.1,0.1,2.5,0.3,4.1,0.6c1.6,0.3,3.2,0.9,4.8,1.7c1.6,0.8,3,1.9,4.2,3.2c1.2,1.3,2,2.8,2.6,4.6C151.1,127.1,151.4,129,151.4,131.2z M140.1,132c0-1.9-0.3-3.4-1-4.6c-0.7-1.2-1.5-2.1-2.4-2.7c-1-0.6-2-0.9-3-1.1c-1.1-0.2-2.1-0.2-3.3-0.2h-4.6v18h4.8c1.7,0,3.2-0.2,4.3-0.7c1.2-0.5,2.1-1.1,2.9-2c0.7-0.8,1.3-1.8,1.7-3C139.9,134.6,140.1,133.3,140.1,132z"/>
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

1
images/logo.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 158 KiB

1
images/logob&W.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 40 KiB

14733
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

40
package.json Normal file
View File

@@ -0,0 +1,40 @@
{
"name": "ESP3D-Configurator",
"version": "1.0.0",
"description": "Web Configurator for ESP3D V3.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"front": "webpack serve --config config/webpack.dev.js ",
"server": "nodemon config/server.js",
"dev": "concurrently \"npm run server\" \"npm run front\"",
"build": "webpack --config config/webpack.prod.js"
},
"author": "",
"license": "ISC",
"devDependencies": {
"@babel/core": "^7.16.7",
"@babel/preset-env": "^7.16.7",
"babel-loader": "^8.2.3",
"chalk": "^4.1.2",
"clean-webpack-plugin": "^3.0.0",
"compression-webpack-plugin": "^7.1.2",
"concurrently": "^7.0.0",
"core-js": "^3.20.2",
"css-loader": "^5.2.7",
"express": "^4.17.2",
"express-fileupload": "^1.2.1",
"express-ws": "^4.0.0",
"html-inline-css-webpack-plugin": "^1.11.1",
"html-inline-script-webpack-plugin": "^1.1.6",
"html-minimizer-webpack-plugin": "^2.1.0",
"html-webpack-plugin": "^5.5.0",
"mini-css-extract-plugin": "^1.6.2",
"nodemon": "^2.0.15",
"regenerator-runtime": "^0.13.9",
"style-loader": "^2.0.0",
"webpack": "^5.65.0",
"webpack-cli": "^4.9.1",
"webpack-dev-server": "^4.7.4"
}
}

BIN
server/public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

28
server/public/fr.json Normal file
View File

@@ -0,0 +1,28 @@
{
"lang" : "Français",
"S1" : "Chargement...",
"S2" : "Connection websocket...",
"S3" : "Apparement vous êtes connecté depuis une autre page, donc cette page est désormais déconnectée",
"S4" : "Erreur traitement lors du fichier de configuration, le fichier est incorrecte",
"S5" : "Impossible de se connecter au serveur de la carte",
"S6" : "Erreur de connection WebSocket",
"S7" : "Erreur lors du traitement du fichier de préférences, le fichier est incorrecte",
"S8" : "SVP reconnectez-moi",
"S9" : "déconnecté",
"S10" : "Connection with board is lost",
"S11" : "Aidez nous",
"S12" : "A propos d'ESP3D",
"S13" : "Tableau de bord",
"S14" : "Parmètres",
"S15" : "Donation pour ESP3D",
"S16" : "Version micrologiciel",
"S17" : "Version interface",
"S18" : "Version navigateur",
"S19" : "Inconnu",
"S20" : "Go to github",
"S21" : "Parsing data error, data are incorrect",
"S22" : "Erreur",
"S23" : "Refresh information",
"S24" : "Fermer",
"T9" : "Utilisation sytème de fichiers"
}

BIN
server/public/index.html.gz Normal file

Binary file not shown.

1
src/footer.txt Normal file
View File

@@ -0,0 +1 @@
#endif //__embedded_h

20
src/index.html Normal file
View File

@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- Chrome, Firefox OS and Opera -->
<meta name="theme-color" content="#5755d9">
<!-- Windows Phone -->
<meta name="msapplication-navbutton-color" content="#5755d9">
<!-- iOS Safari -->
<meta name="apple-mobile-web-app-status-bar-style" content="#5755d9">
<title>Document</title>
</head>
<body>
<div>
Configurator
</div>
</body>
</html>

1
src/index.js Normal file
View File

@@ -0,0 +1 @@
import "./style.css"

368
src/style.css Normal file
View File

@@ -0,0 +1,368 @@
* {
font-family: sans-serif;
color: #5755d9;
background-color: #eef0f3;
-webkit-user-select: none; /* Chrome all / Safari all */
-moz-user-select: none; /* Firefox all */
-ms-user-select: none; /* IE 10+ */
user-select: none;
}
body {
min-width: 360px;
}
hr {
border-top: 1px solid #5755d9;
}
.controlBar {
display: flex;
flex-wrap: wrap;
padding: 10px;
padding-left: 15px;
background-color: white;
margin-bottom: 6px;
}
.cmd {
color: #555555;
}
label {
display: block;
width: auto;
padding: 3px 12px;
color: #5755d9;
background-color: #ffffff;
cursor: pointer;
}
pre {
padding-left: 5px;
padding-right: 5px;
}
.modal {
position: fixed; /* Stay in place */
z-index: 10000; /* Sit on top */
padding-top: 100px; /* Location of the box */
left: 0;
top: 0;
width: 100%; /* Full width */
height: 100%; /* Full height */
overflow: auto; /* Enable scroll if needed */
background-color: rgb(0, 0, 0); /* Fallback color */
background-color: rgba(0, 0, 0, 0.4); /* Black w/ opacity */
}
/* Modal Content */
.modal-content {
border-top-left-radius: 10px;
border-top-right-radius: 10px;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
background-color: #5755d9;
border: 1px solid #5755d9;
position: relative;
margin: auto;
padding: 0;
max-width: 450px;
}
.modal-header {
padding: 16px 16px;
color: #ffffff;
background-color: #5755d9;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
border-bottom: 1px solid #5755d9;
height: 2.5rem;
line-height: 2.5rem;
font-size: 1.5rem;
}
.modal-body {
padding: 10px 16px;
background-color: #ffffff;
}
.modal-footer {
padding: 16px 16px;
height: 2.5em;
background-color: #ffffff;
border-top: 1px solid #5755d9;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
display: flex;
flex-direction: row-reverse;
}
input {
display: block;
width: auto;
height: 1.5rem;
padding: 6px 12px;
line-height: 1.42857143;
border-radius: 4px;
color: #5755d9;
background-color: #ffffff;
outline: 0;
}
input {
border: 1px solid #5755d9;
}
button {
display: block;
width: auto;
height: 2.4rem;
padding: 6px 12px;
line-height: 1.42857143;
vertical-align: middle;
cursor: pointer;
border: 1px solid black;
white-space: nowrap;
border-radius: 4px;
color: #ffffff;
background-color: #5755d9;
}
::-moz-progress-bar {
background-color: #5755d9;
}
::-webkit-progress-value {
background-color: #5755d9;
}
::-webkit-progress-bar {
background-color: #f1f1f1;
}
progress,
.progbar {
margin-top: 10px;
height: 1rem;
background-color: #f1f1f1;
border: 1px solid #5755d9;
}
.label {
height: 2.4rem;
padding: 6px 12px;
line-height: 1.42857143;
vertical-align: middle;
display: inline-block;
width: auto;
color: #5755d9;
background-color: #ffffff;
overflow-wrap: anywhere;
}
.controlBar > button {
margin-right: 15px;
}
meter {
background-color: #ffffff;
}
button:active {
background-color: #0b0899;
}
ul {
display: flex;
flex-wrap: wrap;
list-style-type: none;
margin: 3px;
padding: 3px;
}
pre {
margin: 10px 10px;
min-height: 350px;
max-height: 350px;
border: 1px solid #5755d9;
overflow-y: auto;
overflow-wrap: anywhere;
}
li {
padding: 9px 14px;
margin: 0px 1rem;
border: 1px hidden;
}
.menuspacer {
flex-grow: 1;
pointer-events: none;
}
.panel {
margin: 10px 10px;
border-radius: 10px;
}
.text-primary {
color: #5755d9;
}
.text-error {
color: red;
}
.text-error-login {
background-color: white;
color: red;
text-align: center;
}
.disabled {
pointer-events: none;
}
.panel-header {
border-top-left-radius: 10px;
border-top-right-radius: 10px;
background-color: #5755d9;
color: white;
height: 2rem;
line-height: 2rem;
padding: 2px 15px;
cursor: pointer;
}
.no-header {
border-top-left-radius: 10px;
border-top-right-radius: 10px;
border-top: 1px solid #5755d9;
}
.no-footer {
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
border-bottom: 1px solid #5755d9;
}
.panel-footer {
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
border: 1px solid #5755d9;
background-color: white;
min-height: 2rem;
line-height: 2rem;
padding: 2px 15px;
margin: 0px 0px;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.panel-footer span {
background-color: white;
}
.panel-body {
min-height: 50px;
background-color: white;
border-right: 1px solid #5755d9;
border-left: 1px solid #5755d9;
}
.no-header {
padding: 10px 10px;
}
.hide {
display: none;
}
.filesize,
.filetype,
.fileitem,
.fileicon {
padding: 5px 5px;
border-radius: 5px 5px;
background-color: white;
}
.fileLineTail {
background-color: white;
display: flex;
justify-content: space-between;
column-gap: 10px;
}
.fileLineHead {
background-color: white;
display: flex;
justify-content: space-between;
column-gap: 10px;
}
.fileLine {
display: flex;
justify-content: space-between;
line-height: 1.42857143;
vertical-align: center;
border-top: 1px solid #5755d9;
background-color: white;
padding: 8px;
}
svg {
background-color: white;
}
.fileicon:hover {
cursor: pointer;
background-color: #5755d9;
color: #5755d9;
}
.fileitem:hover,
li:active,
li:hover {
cursor: pointer;
background-color: #5755d9;
color: white;
text-align: center;
}
.fileitem:active {
background-color: #0b0899;
}
.fileicon:hover > svg {
cursor: pointer;
background-color: #5755d9;
color: #5755d9;
}
.m-1{
margin-left: 1rem;
margin-right: 1rem;
}
button > svg {
background-color: #5755d9;
text-decoration-color: #ffffff;
color: white !important;
}
button:active > svg,
.fileicon:active > svg,
.fileicon:active {
background-color: #0b0899;
}
#MSG {
text-align: center;
}
#monitor_enable_autoscroll {
margin: 0px 0px;
cursor: pointer;
}
@media screen and (max-width: 600px) {
.menuspacer {
display: none;
}
}