@fdm-monster/client-next 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.all-contributorsrc +57 -0
- package/.browserslistrc +4 -0
- package/.editorconfig +5 -0
- package/.env +1 -0
- package/.eslintrc-auto-import.json +73 -0
- package/.eslintrc.js +126 -0
- package/.github/FUNDING.yml +3 -0
- package/.github/workflows/release-client.yml +94 -0
- package/.github/workflows/vue-publish.yml +26 -0
- package/.prettierignore +15 -0
- package/.prettierrc.cjs +7 -0
- package/.whitesource +12 -0
- package/.yarn/releases/yarn-4.5.1.cjs +934 -0
- package/.yarnrc.yml +3 -0
- package/CODE_OF_CONDUCT.md +46 -0
- package/README.md +93 -0
- package/RELEASE_NOTES.MD +11 -0
- package/index.html +16 -0
- package/package.default.json +42 -0
- package/package.json +26 -0
- package/public/favicon.ico +0 -0
- package/public/img/DavidZwart.jpg +0 -0
- package/public/img/OIG.JYDC2RaWdz7g9.jpg +0 -0
- package/public/img/OIG.jpg +0 -0
- package/public/img/icons/android-chrome-192x192.png +0 -0
- package/public/img/icons/android-chrome-256x256.png +0 -0
- package/public/img/icons/android-chrome-384x384.png +0 -0
- package/public/img/icons/android-chrome-512x512.png +0 -0
- package/public/img/icons/favicon.svg +1 -0
- package/public/img/logo.png +0 -0
- package/public/img/logo.svg +1 -0
- package/public/img/manifest.webmanifest +33 -0
- package/public/img/octoprint-tentacle.svg +144 -0
- package/public/img/thumbail_unknown.jpg +0 -0
- package/public/img/vbanner.jpg +0 -0
- package/public/index.html +17 -0
- package/public/robots.txt +2 -0
- package/renovate.json +30 -0
- package/src/App.vue +60 -0
- package/src/AppLoader.vue +383 -0
- package/src/assets/adjectives.json +1468 -0
- package/src/assets/android-chrome-192x192.png +0 -0
- package/src/assets/logo.png +0 -0
- package/src/assets/logo.svg +6 -0
- package/src/assets/nouns.json +4309 -0
- package/src/auto-imports.d.ts +139 -0
- package/src/backend/app.service.ts +39 -0
- package/src/backend/auth.service.ts +56 -0
- package/src/backend/base.service.ts +57 -0
- package/src/backend/batch.service.ts +37 -0
- package/src/backend/camera-stream.service.ts +33 -0
- package/src/backend/custom-gcode.service.ts +11 -0
- package/src/backend/dto/octoprint-settings.dto.ts +168 -0
- package/src/backend/first-time-setup.service.ts +17 -0
- package/src/backend/floor.service.ts +84 -0
- package/src/backend/index.ts +4 -0
- package/src/backend/print-completions.service.ts +11 -0
- package/src/backend/printer-file.service.ts +91 -0
- package/src/backend/printer-group.service.ts +62 -0
- package/src/backend/printer-job.service.ts +20 -0
- package/src/backend/printer-settings.service.ts +28 -0
- package/src/backend/printers.service.ts +136 -0
- package/src/backend/server-private.service.ts +55 -0
- package/src/backend/server.api.ts +132 -0
- package/src/backend/settings.service.ts +85 -0
- package/src/backend/user.service.ts +51 -0
- package/src/components/AboutHelp/AboutView.vue +164 -0
- package/src/components/CameraGrid/CameraGridView.vue +111 -0
- package/src/components/FirstTimeSetup/FirstTimeSetupView.vue +354 -0
- package/src/components/Generic/Actions/PrinterConnectionAction.vue +56 -0
- package/src/components/Generic/Actions/PrinterCreateAction.vue +22 -0
- package/src/components/Generic/Actions/PrinterDeleteAction.vue +29 -0
- package/src/components/Generic/Actions/PrinterQuickStopAction.vue +35 -0
- package/src/components/Generic/Actions/PrinterSettingsAction.vue +35 -0
- package/src/components/Generic/Actions/PrinterUrlAction.vue +24 -0
- package/src/components/Generic/Actions/RefreshFilesAction.vue +50 -0
- package/src/components/Generic/Actions/SyncPrinterNameAction.vue +36 -0
- package/src/components/Generic/Dialogs/AddOrUpdateCameraStreamDialog.vue +131 -0
- package/src/components/Generic/Dialogs/AddOrUpdateFloorDialog.vue +141 -0
- package/src/components/Generic/Dialogs/AddOrUpdatePrinterDialog.vue +303 -0
- package/src/components/Generic/Dialogs/BaseDialog.vue +81 -0
- package/src/components/Generic/Dialogs/BatchJsonCreateDialog.vue +109 -0
- package/src/components/Generic/Dialogs/BatchReprintDialog.vue +190 -0
- package/src/components/Generic/Dialogs/PrinterChecksPanel.vue +37 -0
- package/src/components/Generic/Dialogs/PrinterControlDialog.vue +202 -0
- package/src/components/Generic/Dialogs/PrinterMaintenanceDialog.vue +130 -0
- package/src/components/Generic/Dialogs/YamlImportExportDialog.vue +186 -0
- package/src/components/Generic/Dialogs/dialog.constants.ts +19 -0
- package/src/components/Generic/FileExplorerSideNav.vue +734 -0
- package/src/components/Generic/Loaders/GridLoader.vue +68 -0
- package/src/components/Generic/NavigationDrawer.vue +69 -0
- package/src/components/Generic/PrintJobsMenu.vue +148 -0
- package/src/components/Generic/Snackbars/AppErrorSnackbar.vue +64 -0
- package/src/components/Generic/Snackbars/AppInfoSnackbar.vue +63 -0
- package/src/components/Generic/Snackbars/AppProgressSnackbar.vue +158 -0
- package/src/components/Generic/Vuetify/TooltipButton.vue +47 -0
- package/src/components/HelpOverlay/HelpOverlay.vue +57 -0
- package/src/components/Login/LoginForm.vue +206 -0
- package/src/components/Login/LoginView.spec.ts +64 -0
- package/src/components/Login/LoginView.vue +65 -0
- package/src/components/Login/Logo.vue +13 -0
- package/src/components/Login/PermissionDenied.vue +109 -0
- package/src/components/Login/RegistrationForm.vue +207 -0
- package/src/components/Login/RegistrationView.vue +17 -0
- package/src/components/Login/__snapshots__/LoginView.spec.ts.snap +1051 -0
- package/src/components/NotFound/NotFoundView.vue +39 -0
- package/src/components/PrintStatistics/PrintStatistics.vue +168 -0
- package/src/components/PrintStatistics/PrintStatisticsView.vue +15 -0
- package/src/components/PrinterGrid/HomeToolbar.vue +90 -0
- package/src/components/PrinterGrid/PrinterGrid.vue +164 -0
- package/src/components/PrinterGrid/PrinterGridTile.vue +438 -0
- package/src/components/PrinterGrid/PrinterGridView.vue +210 -0
- package/src/components/PrinterList/FileControlList.vue +40 -0
- package/src/components/PrinterList/PrinterDetails.vue +91 -0
- package/src/components/PrinterList/PrintersView.vue +492 -0
- package/src/components/Settings/AccountSettings.vue +163 -0
- package/src/components/Settings/DiagnosticsSettings.vue +137 -0
- package/src/components/Settings/EmergencyCommands.vue +265 -0
- package/src/components/Settings/FloorSettings.vue +276 -0
- package/src/components/Settings/GridSettings.vue +127 -0
- package/src/components/Settings/OctoPrintSettings.vue +188 -0
- package/src/components/Settings/ServerProtectionSettings.vue +370 -0
- package/src/components/Settings/SettingsView.vue +73 -0
- package/src/components/Settings/SoftwareUpgradeSettings.vue +297 -0
- package/src/components/Settings/UserManagementSettings.vue +257 -0
- package/src/components/TopBar.vue +147 -0
- package/src/components.d.ts +70 -0
- package/src/directives/file-upload.directive.ts +117 -0
- package/src/directives/printer-drop-position.directive.ts +92 -0
- package/src/env.d.ts +6 -0
- package/src/main.ts +76 -0
- package/src/models/batch/reprint.dto.ts +79 -0
- package/src/models/batch.model.ts +11 -0
- package/src/models/camera-streams/camera-stream.ts +19 -0
- package/src/models/floors/floor.model.ts +30 -0
- package/src/models/octoprint/connection-options.model.ts +8 -0
- package/src/models/plugins/firmware-updates/prusa-firmware-release.model.ts +57 -0
- package/src/models/print-completions/print-completions.model.ts +49 -0
- package/src/models/printers/crud/create-printer.model.ts +26 -0
- package/src/models/printers/file-upload-commands.model.ts +4 -0
- package/src/models/printers/gcode/gcode-analysis.model.ts +30 -0
- package/src/models/printers/printer-current-job.model.ts +90 -0
- package/src/models/printers/printer-file.model.ts +48 -0
- package/src/models/printers/printer.model.ts +18 -0
- package/src/models/server/client-releases.model.ts +27 -0
- package/src/models/server/export-yaml.model.ts +11 -0
- package/src/models/server/features.model.ts +37 -0
- package/src/models/server/github-rate-limit.model.ts +21 -0
- package/src/models/server/version.model.ts +14 -0
- package/src/models/settings/printer-file-clean-settings.model.ts +5 -0
- package/src/models/settings/server-settings.dto.ts +19 -0
- package/src/models/settings/settings.model.ts +57 -0
- package/src/models/socketio-messages/socketio-message.model.ts +53 -0
- package/src/models/uploads/queued-upload.model.ts +12 -0
- package/src/models/user.model.ts +15 -0
- package/src/plugins/README.md +3 -0
- package/src/plugins/index.ts +17 -0
- package/src/plugins/vuetify.ts +53 -0
- package/src/router/index.ts +192 -0
- package/src/router/route-names.ts +14 -0
- package/src/router/utils.ts +23 -0
- package/src/shared/alert.events.ts +14 -0
- package/src/shared/app.constants.ts +23 -0
- package/src/shared/auth.constants.ts +34 -0
- package/src/shared/dialog.composable.ts +41 -0
- package/src/shared/drag.constants.ts +19 -0
- package/src/shared/experimental.constants.ts +1 -0
- package/src/shared/http-client.ts +162 -0
- package/src/shared/noun-adjectives.data.ts +24 -0
- package/src/shared/printer-grid.constants.ts +5 -0
- package/src/shared/printer-state.constants.ts +194 -0
- package/src/shared/snackbar.composable.ts +66 -0
- package/src/shared/socketio.service.ts +104 -0
- package/src/store/auth.store.ts +255 -0
- package/src/store/connection.store.ts +66 -0
- package/src/store/dialog.store.ts +114 -0
- package/src/store/features.store.ts +57 -0
- package/src/store/floor.store.ts +173 -0
- package/src/store/grid.store.ts +10 -0
- package/src/store/index.ts +4 -0
- package/src/store/printer-state.store.ts +246 -0
- package/src/store/printer.store.ts +236 -0
- package/src/store/profile.store.ts +25 -0
- package/src/store/settings.store.ts +64 -0
- package/src/store/test-printer.store.ts +70 -0
- package/src/store/uploads.store.ts +75 -0
- package/src/styles/README.md +3 -0
- package/src/styles/settings.scss +10 -0
- package/src/types/global.d.ts +15 -0
- package/src/utils/array.utils.ts +15 -0
- package/src/utils/date.utils.ts +5 -0
- package/src/utils/download-file.util.ts +25 -0
- package/src/utils/error.utils.ts +3 -0
- package/src/utils/file-size.util.ts +11 -0
- package/src/utils/id.type.ts +1 -0
- package/src/utils/sentry.util.ts +8 -0
- package/src/utils/test.util.ts +30 -0
- package/src/utils/time.utils.ts +2 -0
- package/src/utils/uploads-state.utils.ts +58 -0
- package/src/utils/validation.utils.ts +14 -0
- package/src/vite-env.d.ts +7 -0
- package/test/setup-axios-mock.ts +15 -0
- package/tsconfig.json +47 -0
- package/tsconfig.node.json +9 -0
- package/vite.config.mts +106 -0
package/.yarnrc.yml
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
|
6
|
+
|
|
7
|
+
## Our Standards
|
|
8
|
+
|
|
9
|
+
Examples of behavior that contributes to creating a positive environment include:
|
|
10
|
+
|
|
11
|
+
* Using welcoming and inclusive language
|
|
12
|
+
* Being respectful of differing viewpoints and experiences
|
|
13
|
+
* Gracefully accepting constructive criticism
|
|
14
|
+
* Focusing on what is best for the community
|
|
15
|
+
* Showing empathy towards other community members
|
|
16
|
+
|
|
17
|
+
Examples of unacceptable behavior by participants include:
|
|
18
|
+
|
|
19
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
|
20
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
|
21
|
+
* Public or private harassment
|
|
22
|
+
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
|
23
|
+
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
|
24
|
+
|
|
25
|
+
## Our Responsibilities
|
|
26
|
+
|
|
27
|
+
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
|
28
|
+
|
|
29
|
+
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
|
|
30
|
+
|
|
31
|
+
## Scope
|
|
32
|
+
|
|
33
|
+
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
|
|
34
|
+
|
|
35
|
+
## Enforcement
|
|
36
|
+
|
|
37
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [davidzwa@gmail.com](mailto:davidzwa@gmail.com). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
|
38
|
+
|
|
39
|
+
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
|
|
40
|
+
|
|
41
|
+
## Attribution
|
|
42
|
+
|
|
43
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [https://contributor-covenant.org/version/1/4][version]
|
|
44
|
+
|
|
45
|
+
[homepage]: https://contributor-covenant.org
|
|
46
|
+
[version]: https://contributor-covenant.org/version/1/4/
|
package/README.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Vuetify (Default)
|
|
2
|
+
|
|
3
|
+
This is the official scaffolding tool for Vuetify, designed to give you a head start in building your new Vuetify application. It sets up a base template with all the necessary configurations and standard directory structure, enabling you to begin development without the hassle of setting up the project from scratch.
|
|
4
|
+
|
|
5
|
+
## Notes to self
|
|
6
|
+
|
|
7
|
+
- Example to fix alias includes https://github.com/mutoe/vue3-realworld-example-app/blob/master/tsconfig.json
|
|
8
|
+
```json
|
|
9
|
+
"include": [
|
|
10
|
+
"src/**/*.ts",
|
|
11
|
+
"src/**/*.d.ts",
|
|
12
|
+
"src/**/*.tsx",
|
|
13
|
+
"src/**/*.vue"
|
|
14
|
+
],
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## ❗️ Important Links
|
|
18
|
+
|
|
19
|
+
- 📄 [Docs](https://vuetifyjs.com/)
|
|
20
|
+
- 🚨 [Issues](https://issues.vuetifyjs.com/)
|
|
21
|
+
- 🏬 [Store](https://store.vuetifyjs.com/)
|
|
22
|
+
- 🎮 [Playground](https://play.vuetifyjs.com/)
|
|
23
|
+
- 💬 [Discord](https://community.vuetifyjs.com)
|
|
24
|
+
|
|
25
|
+
## 💿 Install
|
|
26
|
+
|
|
27
|
+
Set up your project using your preferred package manager. Use the corresponding command to install the dependencies:
|
|
28
|
+
|
|
29
|
+
| Package Manager | Command |
|
|
30
|
+
|---------------------------------------------------------------|----------------|
|
|
31
|
+
| [yarn](https://yarnpkg.com/getting-started) | `yarn install` |
|
|
32
|
+
| [npm](https://docs.npmjs.com/cli/v7/commands/npm-install) | `npm install` |
|
|
33
|
+
| [pnpm](https://pnpm.io/installation) | `pnpm install` |
|
|
34
|
+
| [bun](https://bun.sh/#getting-started) | `bun install` |
|
|
35
|
+
|
|
36
|
+
After completing the installation, your environment is ready for Vuetify development.
|
|
37
|
+
|
|
38
|
+
## ✨ Features
|
|
39
|
+
|
|
40
|
+
- 🖼️ **Optimized Front-End Stack**: Leverage the latest Vue 3 and Vuetify 3 for a modern, reactive UI development experience. [Vue 3](https://v3.vuejs.org/) | [Vuetify 3](https://vuetifyjs.com/en/)
|
|
41
|
+
- 🗃️ **State Management**: Integrated with [Pinia](https://pinia.vuejs.org/), the intuitive, modular state management solution for Vue.
|
|
42
|
+
- 🚦 **Routing and Layouts**: Utilizes Vue Router for SPA navigation and vite-plugin-vue-layouts for organizing Vue file layouts. [Vue Router](https://router.vuejs.org/) | [vite-plugin-vue-layouts](https://github.com/JohnCampionJr/vite-plugin-vue-layouts)
|
|
43
|
+
- 💻 **Enhanced Development Experience**: Benefit from TypeScript's static type checking and the ESLint plugin suite for Vue, ensuring code quality and consistency. [TypeScript](https://www.typescriptlang.org/) | [ESLint Plugin Vue](https://eslint.vuejs.org/)
|
|
44
|
+
- ⚡ **Next-Gen Tooling**: Powered by Vite, experience fast cold starts and instant HMR (Hot Module Replacement). [Vite](https://vitejs.dev/)
|
|
45
|
+
- 🧩 **Automated Component Importing**: Streamline your workflow with unplugin-vue-components, automatically importing components as you use them. [unplugin-vue-components](https://github.com/antfu/unplugin-vue-components)
|
|
46
|
+
- 🛠️ **Strongly-Typed Vue**: Use vue-tsc for type-checking your Vue components, and enjoy a robust development experience. [vue-tsc](https://github.com/johnsoncodehk/volar/tree/master/packages/vue-tsc)
|
|
47
|
+
|
|
48
|
+
These features are curated to provide a seamless development experience from setup to deployment, ensuring that your Vuetify application is both powerful and maintainable.
|
|
49
|
+
|
|
50
|
+
## 💡 Usage
|
|
51
|
+
|
|
52
|
+
This section covers how to start the development server and build your project for production.
|
|
53
|
+
|
|
54
|
+
### Starting the Development Server
|
|
55
|
+
|
|
56
|
+
To start the development server with hot-reload, run the following command. The server will be accessible at [http://localhost:3000](http://localhost:3000):
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
yarn dev
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
(Repeat for npm, pnpm, and bun with respective commands.)
|
|
63
|
+
|
|
64
|
+
> Add NODE_OPTIONS='--no-warnings' to suppress the JSON import warnings that happen as part of the Vuetify import mapping. If you are on Node [v21.3.0](https://nodejs.org/en/blog/release/v21.3.0) or higher, you can change this to NODE_OPTIONS='--disable-warning=5401'. If you don't mind the warning, you can remove this from your package.json dev script.
|
|
65
|
+
|
|
66
|
+
### Building for Production
|
|
67
|
+
|
|
68
|
+
To build your project for production, use:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
yarn build
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
(Repeat for npm, pnpm, and bun with respective commands.)
|
|
75
|
+
|
|
76
|
+
Once the build process is completed, your application will be ready for deployment in a production environment.
|
|
77
|
+
|
|
78
|
+
## 💪 Support Vuetify Development
|
|
79
|
+
|
|
80
|
+
This project is built with [Vuetify](https://vuetifyjs.com/en/), a UI Library with a comprehensive collection of Vue components. Vuetify is an MIT licensed Open Source project that has been made possible due to the generous contributions by our [sponsors and backers](https://vuetifyjs.com/introduction/sponsors-and-backers/). If you are interested in supporting this project, please consider:
|
|
81
|
+
|
|
82
|
+
- [Requesting Enterprise Support](https://support.vuetifyjs.com/)
|
|
83
|
+
- [Sponsoring John on Github](https://github.com/users/johnleider/sponsorship)
|
|
84
|
+
- [Sponsoring Kael on Github](https://github.com/users/kaelwd/sponsorship)
|
|
85
|
+
- [Supporting the team on Open Collective](https://opencollective.com/vuetify)
|
|
86
|
+
- [Becoming a sponsor on Patreon](https://www.patreon.com/vuetify)
|
|
87
|
+
- [Becoming a subscriber on Tidelift](https://tidelift.com/subscription/npm/vuetify)
|
|
88
|
+
- [Making a one-time donation with Paypal](https://paypal.me/vuetify)
|
|
89
|
+
|
|
90
|
+
## 📑 License
|
|
91
|
+
[MIT](http://opensource.org/licenses/MIT)
|
|
92
|
+
|
|
93
|
+
Copyright (c) 2016-present Vuetify, LLC
|
package/RELEASE_NOTES.MD
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Client 13/04/2024 1.5.8
|
|
2
|
+
|
|
3
|
+
Changes:
|
|
4
|
+
|
|
5
|
+
- yaml import dialog: convert to setup script
|
|
6
|
+
|
|
7
|
+
Fixes:
|
|
8
|
+
|
|
9
|
+
- yaml import: clear import file field when closing dialog
|
|
10
|
+
- yaml import: also clear import file field when an error has occurred during import
|
|
11
|
+
- yaml import: show an error message to provide context about why import has failed
|
package/index.html
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8" />
|
|
6
|
+
<link rel="icon" href="/favicon.ico" />
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
+
<title>FDM Monster</title>
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body>
|
|
12
|
+
<div id="app"></div>
|
|
13
|
+
<script type="module" src="/src/main.ts"></script>
|
|
14
|
+
</body>
|
|
15
|
+
|
|
16
|
+
</html>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "fdm-monster-client",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"dev": "vite",
|
|
6
|
+
"build": "vue-tsc --noEmit && vite build",
|
|
7
|
+
"preview": "vite preview",
|
|
8
|
+
"lint": "eslint . --fix --ignore-path .gitignore"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@mdi/font": "6.2.95",
|
|
12
|
+
"core-js": "3.36.1",
|
|
13
|
+
"roboto-fontface": "*",
|
|
14
|
+
"vue": "3.4.21",
|
|
15
|
+
"vuetify": "3.5.14"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@babel/types": "7.24.0",
|
|
19
|
+
"@types/node": "20.12.4",
|
|
20
|
+
"@vitejs/plugin-vue": "5.0.4",
|
|
21
|
+
"@vue/eslint-config-typescript": "13.0.0",
|
|
22
|
+
"eslint": "8.57.0",
|
|
23
|
+
"eslint-config-standard": "17.1.0",
|
|
24
|
+
"eslint-plugin-import": "2.29.1",
|
|
25
|
+
"eslint-plugin-n": "16.6.2",
|
|
26
|
+
"eslint-plugin-node": "11.1.0",
|
|
27
|
+
"eslint-plugin-promise": "6.1.1",
|
|
28
|
+
"eslint-plugin-vue": "9.24.0",
|
|
29
|
+
"pinia": "2.1.7",
|
|
30
|
+
"sass": "1.74.1",
|
|
31
|
+
"typescript": "5.4.4",
|
|
32
|
+
"unplugin-auto-import": "0.17.5",
|
|
33
|
+
"unplugin-fonts": "1.1.1",
|
|
34
|
+
"unplugin-vue-components": "0.26.0",
|
|
35
|
+
"unplugin-vue-router": "0.8.5",
|
|
36
|
+
"vite": "5.2.8",
|
|
37
|
+
"vite-plugin-vue-layouts": "0.11.0",
|
|
38
|
+
"vite-plugin-vuetify": "2.0.3",
|
|
39
|
+
"vue-router": "4.3.0",
|
|
40
|
+
"vue-tsc": "2.0.10"
|
|
41
|
+
}
|
|
42
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fdm-monster/client-next",
|
|
3
|
+
"repository": {
|
|
4
|
+
"type": "git",
|
|
5
|
+
"url": "git+https://github.com/fdm-monster/fdm-monster-client-next.git"
|
|
6
|
+
},
|
|
7
|
+
"author": "David Zwart",
|
|
8
|
+
"license": "AGPL-3.0-or-later",
|
|
9
|
+
"publishConfig": {
|
|
10
|
+
"access": "public"
|
|
11
|
+
},
|
|
12
|
+
"version": "0.0.1",
|
|
13
|
+
"description": "FDM Monster Client Next is the Vue3 frontend for FDM Monster.",
|
|
14
|
+
"scripts": {
|
|
15
|
+
"dev": "vite",
|
|
16
|
+
"build": "vue-tsc --noEmit && vite build",
|
|
17
|
+
"preview": "vite preview",
|
|
18
|
+
"lint": "eslint . --fix --ignore-path .gitignore",
|
|
19
|
+
"test:unit": "vitest --environment jsdom",
|
|
20
|
+
"test:coverage": "vitest run --coverage --environment jsdom",
|
|
21
|
+
"test:e2e": "start-server-and-test preview http://127.0.0.1:5050/ 'cypress open'"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {},
|
|
24
|
+
"devDependencies": {},
|
|
25
|
+
"packageManager": "yarn@4.5.1"
|
|
26
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><svg id="_레이어_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 412.42 412.42"><defs><style>.cls-1{fill:#e60012;}</style></defs><g id="_레이어_1-2"><circle cx="206.21" cy="206.21" r="206.21"/><path d="M34.9,185.49c-.71,5.88-1.13,11.86-1.26,17.9,22.27-14.3,45.49-25.72,45.49-25.72-14.56-.07-33.13,4.59-44.23,7.82Z"/><g><path class="cls-1" d="M127.11,154.6c-21.55,.7-61.54,5-91.52,25.69-3.61,2.49-7.07,5.22-10.34,8.21,0,0,3.78-1.31,9.64-3.01,11.1-3.23,29.67-7.89,44.23-7.82,0,0-23.22,11.42-45.49,25.72-.03,1.28-.05,2.55-.05,3.83,0,7.19,.44,14.27,1.26,21.23,28.85-38.28,73.71-64.21,92.26-73.85Z"/><path class="cls-1" d="M316.16,304.46c-13.24,9.59-32.06,2.21-26.71-14.19,0,0-8.39,6.35-16.59-1.14-8.2-7.49-5.32-14.28-5.32-14.28,0,0-4.76,5.93-15.82-1.2-4.18-2.69-4.92-3.16-6.61-8.41-5.2-16.2,.4-27.23,11.47-36.03,14.05-11.62,27.38-10.43,32.98-10.03,18.18,1.3,21.3,16.88,21.3,16.88,49.54-20.18,37.78,30.33,37.78,30.33,25.69-9.17,21.51-58.49,21.51-58.49-63.73,1.75-69.01-33.33-69.01-33.33h0c-73.34-32.35-98.93-136.88-98.93-136.88-10.09,33.49,8.45,101.01,8.45,101.01-41.28-21.1-66.05-63.3-66.05-63.3-2.69,20.6,29.6,66.99,31.13,69.18-1.05-1.46-16.46-21.08-81.61-15.27,0,0,43.43,8.91,47.96,23.52-1.19,.34-2.36,.68-3.53,1.02-45.03,20.97-82.6,57.7-102.36,83.99,8.94,52.17,40.31,96.68,83.84,123.22-29.33-58.5,4.94-109.29,21.47-121.26,15.22-11.02,28.12-12.32,34.24-10.75-8.32-18.53-31.75-29.17-31.75-29.17,45.98,15.71,39.57,45.39,39.57,45.39,0,0-4.35,14.14-5.8,13.79-.09,.17-.14,.26-.14,.26,105.64,26.71,92.52,74.54,92.52,74.54,37.61-6.42,46.18-29.67,46.18-29.67m-22.54-100.14c-4.43,.24-20.05-7.97-25.11-12.39-5.9-5.16-15.37-31.65-15.37-31.65,0,0,14.68,12.21,25.98,21.53,9.88,8.15,16.96,13.82,18.1,17.98l-3.6,4.53Z"/></g></g></svg>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><svg id="_레이어_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 412.42 412.42"><defs><style>.cls-1{fill:#e60012;}</style></defs><g id="_레이어_1-2"><circle cx="206.21" cy="206.21" r="206.21"/><path d="M34.9,185.49c-.71,5.88-1.13,11.86-1.26,17.9,22.27-14.3,45.49-25.72,45.49-25.72-14.56-.07-33.13,4.59-44.23,7.82Z"/><g><path class="cls-1" d="M127.11,154.6c-21.55,.7-61.54,5-91.52,25.69-3.61,2.49-7.07,5.22-10.34,8.21,0,0,3.78-1.31,9.64-3.01,11.1-3.23,29.67-7.89,44.23-7.82,0,0-23.22,11.42-45.49,25.72-.03,1.28-.05,2.55-.05,3.83,0,7.19,.44,14.27,1.26,21.23,28.85-38.28,73.71-64.21,92.26-73.85Z"/><path class="cls-1" d="M316.16,304.46c-13.24,9.59-32.06,2.21-26.71-14.19,0,0-8.39,6.35-16.59-1.14-8.2-7.49-5.32-14.28-5.32-14.28,0,0-4.76,5.93-15.82-1.2-4.18-2.69-4.92-3.16-6.61-8.41-5.2-16.2,.4-27.23,11.47-36.03,14.05-11.62,27.38-10.43,32.98-10.03,18.18,1.3,21.3,16.88,21.3,16.88,49.54-20.18,37.78,30.33,37.78,30.33,25.69-9.17,21.51-58.49,21.51-58.49-63.73,1.75-69.01-33.33-69.01-33.33h0c-73.34-32.35-98.93-136.88-98.93-136.88-10.09,33.49,8.45,101.01,8.45,101.01-41.28-21.1-66.05-63.3-66.05-63.3-2.69,20.6,29.6,66.99,31.13,69.18-1.05-1.46-16.46-21.08-81.61-15.27,0,0,43.43,8.91,47.96,23.52-1.19,.34-2.36,.68-3.53,1.02-45.03,20.97-82.6,57.7-102.36,83.99,8.94,52.17,40.31,96.68,83.84,123.22-29.33-58.5,4.94-109.29,21.47-121.26,15.22-11.02,28.12-12.32,34.24-10.75-8.32-18.53-31.75-29.17-31.75-29.17,45.98,15.71,39.57,45.39,39.57,45.39,0,0-4.35,14.14-5.8,13.79-.09,.17-.14,.26-.14,.26,105.64,26.71,92.52,74.54,92.52,74.54,37.61-6.42,46.18-29.67,46.18-29.67m-22.54-100.14c-4.43,.24-20.05-7.97-25.11-12.39-5.9-5.16-15.37-31.65-15.37-31.65,0,0,14.68,12.21,25.98,21.53,9.88,8.15,16.96,13.82,18.1,17.98l-3.6,4.53Z"/></g></g></svg>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"theme_color": "#9B0505",
|
|
3
|
+
"background_color": "#424242",
|
|
4
|
+
"display": "browser",
|
|
5
|
+
"scope": "/",
|
|
6
|
+
"start_url": "/",
|
|
7
|
+
"name": "FDM Monster",
|
|
8
|
+
"short_name": "FDM Monster",
|
|
9
|
+
"description": "Visit our github on https://github.com/fdm-monster/fdm-monster",
|
|
10
|
+
"icons": [
|
|
11
|
+
{
|
|
12
|
+
"src": "/img/icons/android-chrome-192x192.png",
|
|
13
|
+
"sizes": "192x192",
|
|
14
|
+
"type": "image/png"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"src": "/img/icons/android-chrome-256x256.png",
|
|
18
|
+
"sizes": "256x256",
|
|
19
|
+
"type": "image/png"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"src": "/img/icons/android-chrome-384x384.png",
|
|
23
|
+
"sizes": "384x384",
|
|
24
|
+
"type": "image/png"
|
|
25
|
+
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"src": "/img/icons/android-chrome-512x512.png",
|
|
29
|
+
"sizes": "512x512",
|
|
30
|
+
"type": "image/png"
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
|
+
|
|
4
|
+
<svg
|
|
5
|
+
width="119.2866"
|
|
6
|
+
height="108.72864"
|
|
7
|
+
id="svg2"
|
|
8
|
+
version="1.1"
|
|
9
|
+
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
|
10
|
+
sodipodi:docname="octoprint-tentacle.svg"
|
|
11
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
12
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
13
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
14
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
|
15
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
16
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
|
17
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
18
|
+
<defs
|
|
19
|
+
id="defs4">
|
|
20
|
+
<clipPath
|
|
21
|
+
clipPathUnits="userSpaceOnUse"
|
|
22
|
+
id="clipPath2999">
|
|
23
|
+
<path
|
|
24
|
+
d="M 0,600 H 800 V 0 H 0 Z"
|
|
25
|
+
id="path3001" />
|
|
26
|
+
</clipPath>
|
|
27
|
+
<clipPath
|
|
28
|
+
clipPathUnits="userSpaceOnUse"
|
|
29
|
+
id="clipPath3179">
|
|
30
|
+
<path
|
|
31
|
+
d="M 351,309.913 H 484 V 175.812 H 351 Z"
|
|
32
|
+
id="path3181" />
|
|
33
|
+
</clipPath>
|
|
34
|
+
<clipPath
|
|
35
|
+
clipPathUnits="userSpaceOnUse"
|
|
36
|
+
id="clipPath3195">
|
|
37
|
+
<path
|
|
38
|
+
d="m 361.6,295.312 h 19.5 v -19 h -19.5 z"
|
|
39
|
+
id="path3197" />
|
|
40
|
+
</clipPath>
|
|
41
|
+
<clipPath
|
|
42
|
+
clipPathUnits="userSpaceOnUse"
|
|
43
|
+
id="clipPath3211">
|
|
44
|
+
<path
|
|
45
|
+
d="m 351.7,260.413 h 16 v -15 h -16 z"
|
|
46
|
+
id="path3213" />
|
|
47
|
+
</clipPath>
|
|
48
|
+
<clipPath
|
|
49
|
+
clipPathUnits="userSpaceOnUse"
|
|
50
|
+
id="clipPath3227">
|
|
51
|
+
<path
|
|
52
|
+
d="m 344.1,254.212 h 8.3 v -3.9 h -8.3 z"
|
|
53
|
+
id="path3229" />
|
|
54
|
+
</clipPath>
|
|
55
|
+
<clipPath
|
|
56
|
+
clipPathUnits="userSpaceOnUse"
|
|
57
|
+
id="clipPath3243">
|
|
58
|
+
<path
|
|
59
|
+
d="m 340.9,226.913 h 44.9 v -51 h -44.9 z"
|
|
60
|
+
id="path3245" />
|
|
61
|
+
</clipPath>
|
|
62
|
+
<clipPath
|
|
63
|
+
clipPathUnits="userSpaceOnUse"
|
|
64
|
+
id="clipPath3259">
|
|
65
|
+
<path
|
|
66
|
+
d="m 351.7,230.012 h 63.7 v -48.3 h -63.7 z"
|
|
67
|
+
id="path3261" />
|
|
68
|
+
</clipPath>
|
|
69
|
+
<clipPath
|
|
70
|
+
clipPathUnits="userSpaceOnUse"
|
|
71
|
+
id="clipPath3299">
|
|
72
|
+
<path
|
|
73
|
+
d="m 385.8,184.512 h 53.4 v -9.275 h -53.4 z"
|
|
74
|
+
id="path3301" />
|
|
75
|
+
</clipPath>
|
|
76
|
+
<clipPath
|
|
77
|
+
clipPathUnits="userSpaceOnUse"
|
|
78
|
+
id="clipPath3323">
|
|
79
|
+
<path
|
|
80
|
+
d="m 426.9,185.212 h 18 v -3.6 h -18 z"
|
|
81
|
+
id="path3325" />
|
|
82
|
+
</clipPath>
|
|
83
|
+
</defs>
|
|
84
|
+
<sodipodi:namedview
|
|
85
|
+
id="base"
|
|
86
|
+
pagecolor="#ffffff"
|
|
87
|
+
bordercolor="#666666"
|
|
88
|
+
borderopacity="1.0"
|
|
89
|
+
inkscape:pageopacity="0.0"
|
|
90
|
+
inkscape:pageshadow="2"
|
|
91
|
+
inkscape:zoom="0.98994949"
|
|
92
|
+
inkscape:cx="73.741136"
|
|
93
|
+
inkscape:cy="-90.913729"
|
|
94
|
+
inkscape:document-units="px"
|
|
95
|
+
inkscape:current-layer="g2997"
|
|
96
|
+
showgrid="false"
|
|
97
|
+
borderlayer="false"
|
|
98
|
+
inkscape:window-width="3072"
|
|
99
|
+
inkscape:window-height="1630"
|
|
100
|
+
inkscape:window-x="0"
|
|
101
|
+
inkscape:window-y="0"
|
|
102
|
+
inkscape:window-maximized="1"
|
|
103
|
+
inkscape:showpageshadow="2"
|
|
104
|
+
inkscape:pagecheckerboard="0"
|
|
105
|
+
inkscape:deskcolor="#d1d1d1" />
|
|
106
|
+
<metadata
|
|
107
|
+
id="metadata7">
|
|
108
|
+
<rdf:RDF>
|
|
109
|
+
<cc:Work
|
|
110
|
+
rdf:about="">
|
|
111
|
+
<dc:format>image/svg+xml</dc:format>
|
|
112
|
+
<dc:type
|
|
113
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
114
|
+
</cc:Work>
|
|
115
|
+
</rdf:RDF>
|
|
116
|
+
</metadata>
|
|
117
|
+
<g
|
|
118
|
+
inkscape:label="Layer 1"
|
|
119
|
+
inkscape:groupmode="layer"
|
|
120
|
+
id="layer1"
|
|
121
|
+
transform="translate(-242.53139,-547.66593)">
|
|
122
|
+
<g
|
|
123
|
+
clip-path="url(#clipPath2999)"
|
|
124
|
+
id="g2997"
|
|
125
|
+
transform="matrix(0.72275231,-1.0198672,-1.0198672,-0.72275231,326.4038,1224.3601)">
|
|
126
|
+
<g
|
|
127
|
+
id="g4632"
|
|
128
|
+
transform="translate(-169.63313,-42.957391)">
|
|
129
|
+
<path
|
|
130
|
+
id="path3017"
|
|
131
|
+
transform="matrix(0.46256148,-0.652715,-0.652715,-0.46256148,648.17639,779.39047)"
|
|
132
|
+
d="m 384.4375,343.625 c -15.99755,0.30664 -30.52222,6.12188 -43.6875,17.78125 -8.14057,6.94712 -13.84608,14.98947 -17.125,24.15625 -2.84209,13.30651 -3.04201,26.33484 -0.65625,38.75 1.42265,7.86377 4.4336,17.15087 9.0625,28.03125 h 32.0625 c -2.23008,-6.5513 -4.39213,-11.64423 -6.4375,-15.375 -8.76436,-16.16947 -10.72333,-31.96741 -5.78125,-47.15625 1.79887,-4.70023 4.24569,-9.24781 7.28125,-13.53125 1.08413,-1.5298 2.49815,-3.12606 4.0625,-4.46875 2.04057,-2.23086 6.6777,-5.0753 14.03125,-8.75 2.88617,-1.47839 5.92925,-2.52099 9.3125,-3.1875 0.4208,-0.16141 3.13198,-0.53808 7.96875,-1.09375 3.16643,-0.36054 7.46794,0.0782 12.9375,1.65625 5.19331,1.53547 9.05886,3.20482 11.8125,5.15625 3.56954,2.52963 6.54008,5.24284 9.09375,8.125 0.67134,0.78218 1.15917,1.40686 1.65625,2.21875 0.90503,1.10099 2.17671,2.76831 3.8125,5 0.91788,0.65048 1.5374,1.2717 1.65625,1.96875 0.33567,0.39109 0.53933,0.54641 0.875,0.9375 0.83275,1.20297 1.67548,2.40055 2.40625,3.53125 0.59907,0.88416 1.04394,1.96113 1.46875,2.875 0.5999,-2.7922 0.49448,-6.54185 -0.65625,-11.1875 -1.37157,-5.41497 -2.97273,-9.15501 -4.8125,-11.53125 -3.8538,-4.72276 -6.14616,-7.58151 -7.09375,-8.40625 -0.23368,-0.31881 -2.36627,-1.83752 -6.34375,-4.65625 -3.67152,-2.60191 -7.53322,-4.72184 -11.375,-6.21875 -7.539,-3.1978 -16.23194,-4.7759 -25.53125,-4.625 z m -30.21875,99.9375 c 0.20397,0.14455 0.34683,0.40148 0.40625,0.75 -0.10199,-0.0723 -0.22375,-0.14494 -0.5,-0.1875 0.14455,-0.20397 0.12346,-0.38824 0.0937,-0.5625 z"
|
|
133
|
+
style="fill:#13c100;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
|
134
|
+
inkscape:connector-curvature="0" />
|
|
135
|
+
<path
|
|
136
|
+
id="path3101"
|
|
137
|
+
transform="matrix(0.46256148,-0.652715,-0.652715,-0.46256148,648.17639,779.39047)"
|
|
138
|
+
d="m 397.125,358.65625 c -0.93277,-0.0147 -1.80214,0.0349 -2.59375,0.125 -4.83677,0.55567 -7.54795,0.93234 -7.96875,1.09375 -3.38325,0.66651 -6.42633,1.70911 -9.3125,3.1875 -7.35355,3.6747 -11.99068,6.51914 -14.03125,8.75 -1.56435,1.34269 -2.97837,2.93895 -4.0625,4.46875 -3.03556,4.28344 -5.48238,8.83102 -7.28125,13.53125 -4.94208,15.18884 -2.98311,30.98678 5.78125,47.15625 2.04537,3.73077 4.20742,8.8237 6.4375,15.375 h 32.375 c -1.17829,-3.4936 -2.92961,-7.46935 -5.40625,-11.9375 -1.87349,-3.62578 -4.0443,-7.45858 -6.5,-11.34375 -0.10199,-0.0723 -0.0312,-0.15625 -0.0312,-0.15625 -0.39509,-0.73961 -0.74984,-1.31789 -1.1875,-1.78125 -0.23368,-0.31881 -0.39132,-0.55619 -0.625,-0.875 l -1.375,-1.9375 c -0.52679,-0.98615 -1.06542,-1.96936 -1.5625,-2.78125 -1.86948,-2.5505 -3.30033,-4.62469 -4.46875,-6.21875 -0.99416,-1.62377 -1.98282,-3.261 -2.875,-4.8125 -8.48894,-12.45054 -7.74709,-23.23497 2.1875,-32.28125 2.8396,-2.27743 6.15377,-4.38436 10.1875,-5.96875 2.42281,-1.04073 4.99629,-1.81603 7.40625,-2.40625 17.61732,-2.37609 33.1565,3.5878 46.5625,17.53125 -0.73077,-1.1307 -1.5735,-2.35953 -2.40625,-3.5625 -0.33567,-0.39109 -0.53933,-0.51516 -0.875,-0.90625 -0.11885,-0.69705 -0.73837,-1.31827 -1.65625,-1.96875 -1.63579,-2.23169 -2.90747,-3.89901 -3.8125,-5 -0.49708,-0.81189 -0.98491,-1.43657 -1.65625,-2.21875 -2.55367,-2.88216 -5.52421,-5.59537 -9.09375,-8.125 -2.75364,-1.95143 -6.61919,-3.62078 -11.8125,-5.15625 -4.10217,-1.18353 -7.54545,-1.73719 -10.34375,-1.78125 z"
|
|
139
|
+
style="fill:#169300;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
|
140
|
+
inkscape:connector-curvature="0" />
|
|
141
|
+
</g>
|
|
142
|
+
</g>
|
|
143
|
+
</g>
|
|
144
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en" data-build-timestamp-utc="<%= new Date().toISOString() %>">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
6
|
+
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
|
7
|
+
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
|
8
|
+
<title>FDM Monster</title>
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<noscript>
|
|
12
|
+
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
|
|
13
|
+
</noscript>
|
|
14
|
+
<div id="app"></div>
|
|
15
|
+
<!-- built files will be auto injected -->
|
|
16
|
+
</body>
|
|
17
|
+
</html>
|
package/renovate.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": [
|
|
3
|
+
"config:base"
|
|
4
|
+
],
|
|
5
|
+
"assignees": [
|
|
6
|
+
"davidzwa"
|
|
7
|
+
],
|
|
8
|
+
"labels": [
|
|
9
|
+
"renovate"
|
|
10
|
+
],
|
|
11
|
+
"automerge": true,
|
|
12
|
+
"packageRules": [
|
|
13
|
+
{
|
|
14
|
+
"matchUpdateTypes": [
|
|
15
|
+
"minor",
|
|
16
|
+
"patch",
|
|
17
|
+
"pin",
|
|
18
|
+
"digest"
|
|
19
|
+
],
|
|
20
|
+
"automerge": true
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"matchPackagePatterns": [
|
|
24
|
+
"@vueuse/*"
|
|
25
|
+
],
|
|
26
|
+
"groupName": "@vueuse",
|
|
27
|
+
"automerge": true
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
package/src/App.vue
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-app>
|
|
3
|
+
<AppInfoSnackbar />
|
|
4
|
+
<AppErrorSnackbar />
|
|
5
|
+
<AppProgressSnackbar />
|
|
6
|
+
|
|
7
|
+
<NavigationDrawer
|
|
8
|
+
v-if="
|
|
9
|
+
(authStore.hasAuthToken && !authStore.isLoginExpired) ||
|
|
10
|
+
!authStore.loginRequired
|
|
11
|
+
"
|
|
12
|
+
/>
|
|
13
|
+
<TopBar
|
|
14
|
+
v-if="
|
|
15
|
+
(authStore.hasAuthToken && !authStore.isLoginExpired) ||
|
|
16
|
+
!authStore.loginRequired
|
|
17
|
+
"
|
|
18
|
+
/>
|
|
19
|
+
|
|
20
|
+
<AppLoader>
|
|
21
|
+
<v-main>
|
|
22
|
+
<router-view />
|
|
23
|
+
</v-main>
|
|
24
|
+
</AppLoader>
|
|
25
|
+
|
|
26
|
+
<AddOrUpdatePrinterDialog />
|
|
27
|
+
<AddOrUpdateCameraStreamDialog />
|
|
28
|
+
<AddOrUpdateFloorDialog />
|
|
29
|
+
<PrinterMaintenanceDialog />
|
|
30
|
+
<BatchJsonCreateDialog />
|
|
31
|
+
<YamlImportExportDialog />
|
|
32
|
+
<FileExplorerSideNav />
|
|
33
|
+
<BatchReprintDialog />
|
|
34
|
+
<PrinterControlDialog />
|
|
35
|
+
</v-app>
|
|
36
|
+
</template>
|
|
37
|
+
|
|
38
|
+
<script lang="ts" setup>
|
|
39
|
+
import { onMounted, watch } from 'vue'
|
|
40
|
+
import { useUploadsStore } from './store/uploads.store'
|
|
41
|
+
import { uploadProgressTest } from './utils/test.util'
|
|
42
|
+
import { useAuthStore } from './store/auth.store'
|
|
43
|
+
import AppLoader from './AppLoader.vue'
|
|
44
|
+
|
|
45
|
+
const uploadsStore = useUploadsStore()
|
|
46
|
+
const authStore = useAuthStore()
|
|
47
|
+
|
|
48
|
+
const queuedUploads = uploadsStore.queuedUploads
|
|
49
|
+
|
|
50
|
+
watch(queuedUploads, async () => {
|
|
51
|
+
await uploadsStore.handleNextUpload()
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
onMounted(() => {
|
|
55
|
+
console.debug(
|
|
56
|
+
`App.vue mounted. Logged in: ${authStore.hasAuthToken}, Expired: ${authStore.isLoginExpired}`
|
|
57
|
+
)
|
|
58
|
+
uploadProgressTest(false)
|
|
59
|
+
})
|
|
60
|
+
</script>
|