diff --git a/domain-server/resources/web/web-new/.eslintrc.js b/domain-server/resources/web/web-new/.eslintrc.js index 0fa47d0c7d..e767e0d16c 100644 --- a/domain-server/resources/web/web-new/.eslintrc.js +++ b/domain-server/resources/web/web-new/.eslintrc.js @@ -88,12 +88,20 @@ module.exports = { 'import/no-extraneous-dependencies': 'off', 'prefer-promise-reject-errors': 'off', 'indent': ["error", 4], + 'semi': ["error", "always"], // TypeScript quotes: ['warn', 'single', { avoidEscape: true }], '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', + // TypeScript -> Remove these when we start using TypeScript in the project. + '@typescript-eslint/no-unsafe-assignment': 'off', + '@typescript-eslint/no-unsafe-call': 'off', + '@typescript-eslint/unbound-method': 'off', + '@typescript-eslint/no-unsafe-member-access': 'off', + '@typescript-eslint/no-floating-promises': 'off', + // allow debugger during development only 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' } diff --git a/domain-server/resources/web/web-new/package-lock.json b/domain-server/resources/web/web-new/package-lock.json index 33a0f16dcf..8cb14881ee 100644 --- a/domain-server/resources/web/web-new/package-lock.json +++ b/domain-server/resources/web/web-new/package-lock.json @@ -8846,6 +8846,11 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "three": { + "version": "0.132.2", + "resolved": "https://registry.npmjs.org/three/-/three-0.132.2.tgz", + "integrity": "sha512-0wcR7LxxkXMn6Gi58gEs3QvY8WpTVXA31L2VOvpjm4ZPYFRHCZC13UqynheFoS5OXDYgtBneN0dhbaNBE8iLhQ==" + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -9224,6 +9229,11 @@ "spdx-expression-parse": "^3.0.0" } }, + "vanta": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/vanta/-/vanta-0.5.21.tgz", + "integrity": "sha512-UYW6rYXVl8klFbQrhmgDMZ7SCys9hKROIuTlq5M+v6j346BPu1wqBwVRQPHiYsuooWkUYY6HSXV/9HrJBSuo6g==" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", diff --git a/domain-server/resources/web/web-new/package.json b/domain-server/resources/web/web-new/package.json index ddd3c6db06..3f8ac5deb5 100644 --- a/domain-server/resources/web/web-new/package.json +++ b/domain-server/resources/web/web-new/package.json @@ -15,6 +15,8 @@ "axios": "^0.21.1", "core-js": "^3.6.5", "quasar": "^2.0.0", + "three": "^0.132.2", + "vanta": "^0.5.21", "vuex": "^4.0.1" }, "devDependencies": { diff --git a/domain-server/resources/web/web-new/quasar.conf.js b/domain-server/resources/web/web-new/quasar.conf.js index b2a301cdfe..5d710be10b 100644 --- a/domain-server/resources/web/web-new/quasar.conf.js +++ b/domain-server/resources/web/web-new/quasar.conf.js @@ -8,7 +8,7 @@ /* eslint-env node */ /* eslint-disable @typescript-eslint/no-var-requires */ -const { configure } = require('quasar/wrappers') +const { configure } = require('quasar/wrappers'); module.exports = configure(function (ctx) { return { @@ -105,7 +105,7 @@ module.exports = configure(function (ctx) { // animations: 'all', // --- includes all animations // https://v2.quasar.dev/options/animations - animations: [], + animations: 'all', // https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr ssr: { @@ -224,5 +224,5 @@ module.exports = configure(function (ctx) { // extendWebpackPreload also available besides this chainWebpackPreload } } - } -}) + }; +}); diff --git a/domain-server/resources/web/web-new/src/App.vue b/domain-server/resources/web/web-new/src/App.vue index 8f1db85464..1918a1bc81 100644 --- a/domain-server/resources/web/web-new/src/App.vue +++ b/domain-server/resources/web/web-new/src/App.vue @@ -2,9 +2,9 @@ diff --git a/domain-server/resources/web/web-new/src/boot/axios.ts b/domain-server/resources/web/web-new/src/boot/axios.ts index 2a0603672f..29a45500fc 100644 --- a/domain-server/resources/web/web-new/src/boot/axios.ts +++ b/domain-server/resources/web/web-new/src/boot/axios.ts @@ -1,5 +1,5 @@ -import { boot } from 'quasar/wrappers' -import axios, { AxiosInstance } from 'axios' +import { boot } from 'quasar/wrappers'; +import axios, { AxiosInstance } from 'axios'; declare module '@vue/runtime-core' { interface ComponentCustomProperties { @@ -13,18 +13,18 @@ declare module '@vue/runtime-core' { // good idea to move this instance creation inside of the // "export default () => {}" function below (which runs individually // for each client) -const api = axios.create({ baseURL: 'https://api.example.com' }) +const api = axios.create({ baseURL: 'https://api.example.com' }); export default boot(({ app }) => { // for use inside Vue files (Options API) through this.$axios and this.$api - app.config.globalProperties.$axios = axios + app.config.globalProperties.$axios = axios; // ^ ^ ^ this will allow you to use this.$axios (for Vue Options API form) // so you won't necessarily have to import axios in each vue file - app.config.globalProperties.$api = api + app.config.globalProperties.$api = api; // ^ ^ ^ this will allow you to use this.$api (for Vue Options API form) // so you can easily perform requests against your app's API -}) +}); -export { api } +export { api }; diff --git a/domain-server/resources/web/web-new/src/layouts/FirstTimeWizard.vue b/domain-server/resources/web/web-new/src/layouts/FirstTimeWizard.vue index de09b0f92f..7fca47dd85 100644 --- a/domain-server/resources/web/web-new/src/layouts/FirstTimeWizard.vue +++ b/domain-server/resources/web/web-new/src/layouts/FirstTimeWizard.vue @@ -1,15 +1,75 @@ - diff --git a/domain-server/resources/web/web-new/src/pages/Error404.vue b/domain-server/resources/web/web-new/src/pages/Error404.vue index 790d6b2786..91e7511ec4 100644 --- a/domain-server/resources/web/web-new/src/pages/Error404.vue +++ b/domain-server/resources/web/web-new/src/pages/Error404.vue @@ -23,9 +23,9 @@ diff --git a/domain-server/resources/web/web-new/src/pages/FirstTimeWizard/Index.vue b/domain-server/resources/web/web-new/src/pages/FirstTimeWizard/Index.vue index d617c367b2..7ba0a2ac45 100644 --- a/domain-server/resources/web/web-new/src/pages/FirstTimeWizard/Index.vue +++ b/domain-server/resources/web/web-new/src/pages/FirstTimeWizard/Index.vue @@ -1,11 +1,288 @@ + + - diff --git a/domain-server/resources/web/web-new/src/pages/Index.vue b/domain-server/resources/web/web-new/src/pages/Index.vue index 3147af41d5..4a94f57099 100644 --- a/domain-server/resources/web/web-new/src/pages/Index.vue +++ b/domain-server/resources/web/web-new/src/pages/Index.vue @@ -3,9 +3,9 @@ diff --git a/domain-server/resources/web/web-new/src/router/index.ts b/domain-server/resources/web/web-new/src/router/index.ts index 6106c1ae6a..b6a4bba0ed 100644 --- a/domain-server/resources/web/web-new/src/router/index.ts +++ b/domain-server/resources/web/web-new/src/router/index.ts @@ -1,12 +1,12 @@ -import { route } from 'quasar/wrappers' +import { route } from 'quasar/wrappers'; import { createMemoryHistory, createRouter, createWebHashHistory, createWebHistory -} from 'vue-router' -import { StateInterface } from '../store' -import routes from './routes' +} from 'vue-router'; +import { StateInterface } from '../store'; +import routes from './routes'; /* * If not building with SSR mode, you can @@ -20,7 +20,7 @@ import routes from './routes' export default route(function (/* { store, ssrContext } */) { const createHistory = process.env.SERVER ? createMemoryHistory - : (process.env.VUE_ROUTER_MODE === 'history' ? createWebHistory : createWebHashHistory) + : (process.env.VUE_ROUTER_MODE === 'history' ? createWebHistory : createWebHashHistory); const Router = createRouter({ scrollBehavior: () => ({ left: 0, top: 0 }), @@ -32,7 +32,7 @@ export default route(function (/* { store, ssrContext } */) { history: createHistory( process.env.MODE === 'ssr' ? void 0 : process.env.VUE_ROUTER_BASE ) - }) + }); - return Router -}) + return Router; +}); diff --git a/domain-server/resources/web/web-new/src/router/routes.ts b/domain-server/resources/web/web-new/src/router/routes.ts index b72bd796fb..c12e0b8674 100644 --- a/domain-server/resources/web/web-new/src/router/routes.ts +++ b/domain-server/resources/web/web-new/src/router/routes.ts @@ -1,4 +1,4 @@ -import { RouteRecordRaw } from 'vue-router' +import { RouteRecordRaw } from 'vue-router'; const routes: RouteRecordRaw[] = [ { @@ -18,6 +18,6 @@ const routes: RouteRecordRaw[] = [ path: '/:catchAll(.*)*', component: () => import('pages/Error404.vue') } -] +]; -export default routes +export default routes; diff --git a/domain-server/resources/web/web-new/src/shims-vue.d.ts b/domain-server/resources/web/web-new/src/shims-vue.d.ts index 26163c4063..194793619c 100644 --- a/domain-server/resources/web/web-new/src/shims-vue.d.ts +++ b/domain-server/resources/web/web-new/src/shims-vue.d.ts @@ -1,6 +1,6 @@ // Mocks all files ending in `.vue` showing them as plain Vue instances declare module '*.vue' { - import { ComponentOptions } from 'vue' - const component: ComponentOptions - export default component + import { ComponentOptions } from 'vue'; + const component: ComponentOptions; + export default component; } diff --git a/domain-server/resources/web/web-new/src/store/index.ts b/domain-server/resources/web/web-new/src/store/index.ts index 63a1a05644..95352cdc04 100644 --- a/domain-server/resources/web/web-new/src/store/index.ts +++ b/domain-server/resources/web/web-new/src/store/index.ts @@ -1,10 +1,10 @@ -import { store } from 'quasar/wrappers' -import { InjectionKey } from 'vue' +import { store } from 'quasar/wrappers'; +import { InjectionKey } from 'vue'; import { createStore, Store as VuexStore, useStore as vuexUseStore -} from 'vuex' +} from 'vuex'; // import example from './module-example' // import { ExampleStateInterface } from './module-example/state'; @@ -33,7 +33,7 @@ declare module '@vue/runtime-core' { } // provide typings for `useStore` helper -export const storeKey: InjectionKey> = Symbol('vuex-key') +export const storeKey: InjectionKey> = Symbol('vuex-key'); export default store(function (/* { ssrContext } */) { const Store = createStore({ @@ -44,11 +44,11 @@ export default store(function (/* { ssrContext } */) { // enable strict mode (adds overhead!) // for dev mode and --debug builds only strict: !!process.env.DEBUGGING - }) + }); - return Store -}) + return Store; +}); export function useStore () { - return vuexUseStore(storeKey) + return vuexUseStore(storeKey); } diff --git a/domain-server/resources/web/web-new/src/store/module-example/actions.ts b/domain-server/resources/web/web-new/src/store/module-example/actions.ts index d4197f7dd6..20c77c84c6 100644 --- a/domain-server/resources/web/web-new/src/store/module-example/actions.ts +++ b/domain-server/resources/web/web-new/src/store/module-example/actions.ts @@ -1,11 +1,11 @@ -import { ActionTree } from 'vuex' -import { StateInterface } from '../index' -import { ExampleStateInterface } from './state' +import { ActionTree } from 'vuex'; +import { StateInterface } from '../index'; +import { ExampleStateInterface } from './state'; const actions: ActionTree = { someAction (/* context */) { // your code } -} +}; -export default actions +export default actions; diff --git a/domain-server/resources/web/web-new/src/store/module-example/getters.ts b/domain-server/resources/web/web-new/src/store/module-example/getters.ts index 043410a718..30c8f3dca1 100644 --- a/domain-server/resources/web/web-new/src/store/module-example/getters.ts +++ b/domain-server/resources/web/web-new/src/store/module-example/getters.ts @@ -1,11 +1,11 @@ -import { GetterTree } from 'vuex' -import { StateInterface } from '../index' -import { ExampleStateInterface } from './state' +import { GetterTree } from 'vuex'; +import { StateInterface } from '../index'; +import { ExampleStateInterface } from './state'; const getters: GetterTree = { someAction (/* context */) { // your code } -} +}; -export default getters +export default getters; diff --git a/domain-server/resources/web/web-new/src/store/module-example/index.ts b/domain-server/resources/web/web-new/src/store/module-example/index.ts index 120c16e582..4a81f2502a 100644 --- a/domain-server/resources/web/web-new/src/store/module-example/index.ts +++ b/domain-server/resources/web/web-new/src/store/module-example/index.ts @@ -1,9 +1,9 @@ -import { Module } from 'vuex' -import { StateInterface } from '../index' -import state, { ExampleStateInterface } from './state' -import actions from './actions' -import getters from './getters' -import mutations from './mutations' +import { Module } from 'vuex'; +import { StateInterface } from '../index'; +import state, { ExampleStateInterface } from './state'; +import actions from './actions'; +import getters from './getters'; +import mutations from './mutations'; const exampleModule: Module = { namespaced: true, @@ -11,6 +11,6 @@ const exampleModule: Module = { getters, mutations, state -} +}; -export default exampleModule +export default exampleModule; diff --git a/domain-server/resources/web/web-new/src/store/module-example/mutations.ts b/domain-server/resources/web/web-new/src/store/module-example/mutations.ts index 01d609733e..db1fd6c262 100644 --- a/domain-server/resources/web/web-new/src/store/module-example/mutations.ts +++ b/domain-server/resources/web/web-new/src/store/module-example/mutations.ts @@ -1,10 +1,10 @@ -import { MutationTree } from 'vuex' -import { ExampleStateInterface } from './state' +import { MutationTree } from 'vuex'; +import { ExampleStateInterface } from './state'; const mutation: MutationTree = { someMutation (/* state: ExampleStateInterface */) { // your code } -} +}; -export default mutation +export default mutation; diff --git a/domain-server/resources/web/web-new/src/store/module-example/state.ts b/domain-server/resources/web/web-new/src/store/module-example/state.ts index 32314874f0..c3c67ad7d2 100644 --- a/domain-server/resources/web/web-new/src/store/module-example/state.ts +++ b/domain-server/resources/web/web-new/src/store/module-example/state.ts @@ -5,7 +5,7 @@ export interface ExampleStateInterface { function state (): ExampleStateInterface { return { prop: false - } + }; } -export default state +export default state;