web-core-tcm 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/.editorconfig +7 -0
- package/.github/workflows/test.yml +33 -0
- package/.prettierrc.json +5 -0
- package/.vscode/extensions.json +15 -0
- package/.vscode/settings.json +9 -0
- package/README.md +3 -0
- package/eslint.config.js +83 -0
- package/index.html +24 -0
- package/package.json +44 -0
- package/postcss.config.js +29 -0
- package/public/favicon.ico +0 -0
- package/public/icons/favicon-128x128.png +0 -0
- package/public/icons/favicon-16x16.png +0 -0
- package/public/icons/favicon-32x32.png +0 -0
- package/public/icons/favicon-96x96.png +0 -0
- package/quasar.config.ts +217 -0
- package/src/App.vue +7 -0
- package/src/api/test/test.ts +4 -0
- package/src/assets/quasar-logo-vertical.svg +15 -0
- package/src/boot/.gitkeep +0 -0
- package/src/components/ExampleComponent.vue +37 -0
- package/src/components/models.ts +8 -0
- package/src/css/app.scss +1 -0
- package/src/css/quasar.variables.scss +25 -0
- package/src/env.d.ts +7 -0
- package/tsconfig.json +3 -0
package/.editorconfig
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: Publish to NPM
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
push:
|
|
7
|
+
branches:
|
|
8
|
+
- main
|
|
9
|
+
- master
|
|
10
|
+
jobs:
|
|
11
|
+
publish-npm:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v3
|
|
15
|
+
- name: Setup Node.js
|
|
16
|
+
uses: actions/setup-node@v3
|
|
17
|
+
with:
|
|
18
|
+
node-version: '22'
|
|
19
|
+
registry-url: 'https://registry.npmjs.org'
|
|
20
|
+
- name: Install dependencies
|
|
21
|
+
run: npm ci
|
|
22
|
+
- name: Update package.json version
|
|
23
|
+
run: |
|
|
24
|
+
# 从 release tag 获取版本号(移除可能的 'v' 前缀)
|
|
25
|
+
VERSION=${TAG_NAME#v}
|
|
26
|
+
echo "Setting version to: $VERSION"
|
|
27
|
+
npm version $VERSION --no-git-tag-version --allow-same-version
|
|
28
|
+
env:
|
|
29
|
+
TAG_NAME: ${{ github.event.release.tag_name }}
|
|
30
|
+
- name: Publish to npm
|
|
31
|
+
run: npm publish
|
|
32
|
+
env:
|
|
33
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
package/.prettierrc.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"recommendations": [
|
|
3
|
+
"dbaeumer.vscode-eslint",
|
|
4
|
+
"esbenp.prettier-vscode",
|
|
5
|
+
"editorconfig.editorconfig",
|
|
6
|
+
"vue.volar",
|
|
7
|
+
"wayou.vscode-todo-highlight"
|
|
8
|
+
],
|
|
9
|
+
"unwantedRecommendations": [
|
|
10
|
+
"octref.vetur",
|
|
11
|
+
"hookyqr.beautify",
|
|
12
|
+
"dbaeumer.jshint",
|
|
13
|
+
"ms-vscode.vscode-typescript-tslint-plugin"
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"editor.bracketPairColorization.enabled": true,
|
|
3
|
+
"editor.guides.bracketPairs": true,
|
|
4
|
+
"editor.formatOnSave": true,
|
|
5
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
6
|
+
"editor.codeActionsOnSave": ["source.fixAll.eslint"],
|
|
7
|
+
"eslint.validate": ["javascript", "javascriptreact", "typescript", "vue"],
|
|
8
|
+
"typescript.tsdk": "node_modules/typescript/lib"
|
|
9
|
+
}
|
package/README.md
ADDED
package/eslint.config.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import js from '@eslint/js';
|
|
2
|
+
import globals from 'globals';
|
|
3
|
+
import pluginVue from 'eslint-plugin-vue';
|
|
4
|
+
import pluginQuasar from '@quasar/app-vite/eslint';
|
|
5
|
+
import { defineConfigWithVueTs, vueTsConfigs } from '@vue/eslint-config-typescript';
|
|
6
|
+
import prettierSkipFormatting from '@vue/eslint-config-prettier/skip-formatting';
|
|
7
|
+
|
|
8
|
+
export default defineConfigWithVueTs(
|
|
9
|
+
{
|
|
10
|
+
/**
|
|
11
|
+
* Ignore the following files.
|
|
12
|
+
* Please note that pluginQuasar.configs.recommended() already ignores
|
|
13
|
+
* the "node_modules" folder for you (and all other Quasar project
|
|
14
|
+
* relevant folders and files).
|
|
15
|
+
*
|
|
16
|
+
* ESLint requires "ignores" key to be the only one in this object
|
|
17
|
+
*/
|
|
18
|
+
// ignores: []
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
pluginQuasar.configs.recommended(),
|
|
22
|
+
js.configs.recommended,
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* https://eslint.vuejs.org
|
|
26
|
+
*
|
|
27
|
+
* pluginVue.configs.base
|
|
28
|
+
* -> Settings and rules to enable correct ESLint parsing.
|
|
29
|
+
* pluginVue.configs[ 'flat/essential']
|
|
30
|
+
* -> base, plus rules to prevent errors or unintended behavior.
|
|
31
|
+
* pluginVue.configs["flat/strongly-recommended"]
|
|
32
|
+
* -> Above, plus rules to considerably improve code readability and/or dev experience.
|
|
33
|
+
* pluginVue.configs["flat/recommended"]
|
|
34
|
+
* -> Above, plus rules to enforce subjective community defaults to ensure consistency.
|
|
35
|
+
*/
|
|
36
|
+
pluginVue.configs['flat/essential'],
|
|
37
|
+
|
|
38
|
+
{
|
|
39
|
+
files: ['**/*.ts', '**/*.vue'],
|
|
40
|
+
rules: {
|
|
41
|
+
'@typescript-eslint/consistent-type-imports': ['error', { prefer: 'type-imports' }],
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
// https://github.com/vuejs/eslint-config-typescript
|
|
45
|
+
vueTsConfigs.recommendedTypeChecked,
|
|
46
|
+
|
|
47
|
+
{
|
|
48
|
+
languageOptions: {
|
|
49
|
+
ecmaVersion: 'latest',
|
|
50
|
+
sourceType: 'module',
|
|
51
|
+
|
|
52
|
+
globals: {
|
|
53
|
+
...globals.browser,
|
|
54
|
+
...globals.node, // SSR, Electron, config files
|
|
55
|
+
process: 'readonly', // process.env.*
|
|
56
|
+
ga: 'readonly', // Google Analytics
|
|
57
|
+
cordova: 'readonly',
|
|
58
|
+
Capacitor: 'readonly',
|
|
59
|
+
chrome: 'readonly', // BEX related
|
|
60
|
+
browser: 'readonly', // BEX related
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
|
|
64
|
+
// add your custom rules here
|
|
65
|
+
rules: {
|
|
66
|
+
'prefer-promise-reject-errors': 'off',
|
|
67
|
+
|
|
68
|
+
// allow debugger during development only
|
|
69
|
+
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
{
|
|
74
|
+
files: ['src-pwa/custom-service-worker.ts'],
|
|
75
|
+
languageOptions: {
|
|
76
|
+
globals: {
|
|
77
|
+
...globals.serviceworker,
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
|
|
82
|
+
prettierSkipFormatting,
|
|
83
|
+
);
|
package/index.html
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title><%= productName %></title>
|
|
5
|
+
|
|
6
|
+
<meta charset="utf-8" />
|
|
7
|
+
<meta name="description" content="<%= productDescription %>" />
|
|
8
|
+
<meta name="format-detection" content="telephone=no" />
|
|
9
|
+
<meta name="msapplication-tap-highlight" content="no" />
|
|
10
|
+
<meta
|
|
11
|
+
name="viewport"
|
|
12
|
+
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>"
|
|
13
|
+
/>
|
|
14
|
+
|
|
15
|
+
<link rel="icon" type="image/png" sizes="128x128" href="icons/favicon-128x128.png" />
|
|
16
|
+
<link rel="icon" type="image/png" sizes="96x96" href="icons/favicon-96x96.png" />
|
|
17
|
+
<link rel="icon" type="image/png" sizes="32x32" href="icons/favicon-32x32.png" />
|
|
18
|
+
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon-16x16.png" />
|
|
19
|
+
<link rel="icon" type="image/ico" href="favicon.ico" />
|
|
20
|
+
</head>
|
|
21
|
+
<body>
|
|
22
|
+
<!-- quasar:entry-point -->
|
|
23
|
+
</body>
|
|
24
|
+
</html>
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "web-core-tcm",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Core",
|
|
5
|
+
"productName": "Core",
|
|
6
|
+
"author": "wywywywywywywywywy <qa123456_0714@qq.com>",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"private": false,
|
|
9
|
+
"scripts": {
|
|
10
|
+
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
|
|
11
|
+
"format": "prettier --write \"**/*.{js,ts,vue,scss,html,md,json}\" --ignore-path .gitignore",
|
|
12
|
+
"test": "echo \"No test specified\" && exit 0",
|
|
13
|
+
"dev": "quasar dev",
|
|
14
|
+
"build": "quasar build",
|
|
15
|
+
"postinstall": "quasar prepare"
|
|
16
|
+
},
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@quasar/extras": "^1.16.4",
|
|
19
|
+
"quasar": "^2.16.0",
|
|
20
|
+
"vue": "^3.5.22",
|
|
21
|
+
"vue-router": "^4.0.12"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@eslint/js": "^9.14.0",
|
|
25
|
+
"eslint": "^9.14.0",
|
|
26
|
+
"eslint-plugin-vue": "^10.4.0",
|
|
27
|
+
"globals": "^16.4.0",
|
|
28
|
+
"vue-tsc": "^3.0.7",
|
|
29
|
+
"@vue/eslint-config-typescript": "^14.4.0",
|
|
30
|
+
"vite-plugin-checker": "^0.11.0",
|
|
31
|
+
"vue-eslint-parser": "^10.2.0",
|
|
32
|
+
"@vue/eslint-config-prettier": "^10.1.0",
|
|
33
|
+
"prettier": "^3.3.3",
|
|
34
|
+
"@types/node": "^20.5.9",
|
|
35
|
+
"@quasar/app-vite": "^2.1.0",
|
|
36
|
+
"autoprefixer": "^10.4.2",
|
|
37
|
+
"typescript": "^5.9.2"
|
|
38
|
+
},
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": "^28 || ^26 || ^24 || ^22 || ^20",
|
|
41
|
+
"npm": ">= 6.13.4",
|
|
42
|
+
"yarn": ">= 1.21.1"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// https://github.com/michael-ciniawsky/postcss-load-config
|
|
2
|
+
|
|
3
|
+
import autoprefixer from 'autoprefixer';
|
|
4
|
+
// import rtlcss from 'postcss-rtlcss'
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
plugins: [
|
|
8
|
+
// https://github.com/postcss/autoprefixer
|
|
9
|
+
autoprefixer({
|
|
10
|
+
overrideBrowserslist: [
|
|
11
|
+
'last 4 Chrome versions',
|
|
12
|
+
'last 4 Firefox versions',
|
|
13
|
+
'last 4 Edge versions',
|
|
14
|
+
'last 4 Safari versions',
|
|
15
|
+
'last 4 Android versions',
|
|
16
|
+
'last 4 ChromeAndroid versions',
|
|
17
|
+
'last 4 FirefoxAndroid versions',
|
|
18
|
+
'last 4 iOS versions',
|
|
19
|
+
],
|
|
20
|
+
}),
|
|
21
|
+
|
|
22
|
+
// https://github.com/elchininet/postcss-rtlcss
|
|
23
|
+
// If you want to support RTL css, then
|
|
24
|
+
// 1. yarn/pnpm/bun/npm install postcss-rtlcss
|
|
25
|
+
// 2. optionally set quasar.config.js > framework > lang to an RTL language
|
|
26
|
+
// 3. uncomment the following line (and its import statement above):
|
|
27
|
+
// rtlcss()
|
|
28
|
+
],
|
|
29
|
+
};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/quasar.config.ts
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
// Configuration for your app
|
|
2
|
+
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-file
|
|
3
|
+
|
|
4
|
+
import { defineConfig } from '#q-app/wrappers';
|
|
5
|
+
|
|
6
|
+
export default defineConfig((/* ctx */) => {
|
|
7
|
+
return {
|
|
8
|
+
// https://v2.quasar.dev/quasar-cli-vite/prefetch-feature
|
|
9
|
+
// preFetch: true,
|
|
10
|
+
|
|
11
|
+
// app boot file (/src/boot)
|
|
12
|
+
// --> boot files are part of "main.js"
|
|
13
|
+
// https://v2.quasar.dev/quasar-cli-vite/boot-files
|
|
14
|
+
boot: [],
|
|
15
|
+
|
|
16
|
+
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#css
|
|
17
|
+
css: ['app.scss'],
|
|
18
|
+
|
|
19
|
+
// https://github.com/quasarframework/quasar/tree/dev/extras
|
|
20
|
+
extras: [
|
|
21
|
+
// 'ionicons-v4',
|
|
22
|
+
// 'mdi-v7',
|
|
23
|
+
// 'fontawesome-v6',
|
|
24
|
+
// 'eva-icons',
|
|
25
|
+
// 'themify',
|
|
26
|
+
// 'line-awesome',
|
|
27
|
+
// 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
|
|
28
|
+
|
|
29
|
+
'roboto-font', // optional, you are not bound to it
|
|
30
|
+
'material-icons', // optional, you are not bound to it
|
|
31
|
+
],
|
|
32
|
+
|
|
33
|
+
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#build
|
|
34
|
+
build: {
|
|
35
|
+
target: {
|
|
36
|
+
browser: ['es2022', 'firefox115', 'chrome115', 'safari14'],
|
|
37
|
+
node: 'node20',
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
typescript: {
|
|
41
|
+
strict: true,
|
|
42
|
+
vueShim: true,
|
|
43
|
+
// extendTsConfig (tsConfig) {}
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
vueRouterMode: 'hash', // available values: 'hash', 'history'
|
|
47
|
+
// vueRouterBase,
|
|
48
|
+
// vueDevtools,
|
|
49
|
+
// vueOptionsAPI: false,
|
|
50
|
+
|
|
51
|
+
// rebuildCache: true, // rebuilds Vite/linter/etc cache on startup
|
|
52
|
+
|
|
53
|
+
// publicPath: '/',
|
|
54
|
+
// analyze: true,
|
|
55
|
+
// env: {},
|
|
56
|
+
// rawDefine: {}
|
|
57
|
+
// ignorePublicFolder: true,
|
|
58
|
+
// minify: false,
|
|
59
|
+
// polyfillModulePreload: true,
|
|
60
|
+
// distDir
|
|
61
|
+
|
|
62
|
+
// extendViteConf (viteConf) {},
|
|
63
|
+
// viteVuePluginOptions: {},
|
|
64
|
+
|
|
65
|
+
vitePlugins: [
|
|
66
|
+
[
|
|
67
|
+
'vite-plugin-checker',
|
|
68
|
+
{
|
|
69
|
+
vueTsc: true,
|
|
70
|
+
eslint: {
|
|
71
|
+
lintCommand: 'eslint -c ./eslint.config.js "./src*/**/*.{ts,js,mjs,cjs,vue}"',
|
|
72
|
+
useFlatConfig: true,
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
{ server: false },
|
|
76
|
+
],
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
|
|
80
|
+
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#devserver
|
|
81
|
+
devServer: {
|
|
82
|
+
// https: true,
|
|
83
|
+
open: true, // opens browser window automatically
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#framework
|
|
87
|
+
framework: {
|
|
88
|
+
config: {},
|
|
89
|
+
|
|
90
|
+
// iconSet: 'material-icons', // Quasar icon set
|
|
91
|
+
// lang: 'en-US', // Quasar language pack
|
|
92
|
+
|
|
93
|
+
// For special cases outside of where the auto-import strategy can have an impact
|
|
94
|
+
// (like functional components as one of the examples),
|
|
95
|
+
// you can manually specify Quasar components/directives to be available everywhere:
|
|
96
|
+
//
|
|
97
|
+
// components: [],
|
|
98
|
+
// directives: [],
|
|
99
|
+
|
|
100
|
+
// Quasar plugins
|
|
101
|
+
plugins: [],
|
|
102
|
+
},
|
|
103
|
+
|
|
104
|
+
// animations: 'all', // --- includes all animations
|
|
105
|
+
// https://v2.quasar.dev/options/animations
|
|
106
|
+
animations: [],
|
|
107
|
+
|
|
108
|
+
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#sourcefiles
|
|
109
|
+
// sourceFiles: {
|
|
110
|
+
// rootComponent: 'src/App.vue',
|
|
111
|
+
// router: 'src/router/index',
|
|
112
|
+
// store: 'src/store/index',
|
|
113
|
+
// pwaRegisterServiceWorker: 'src-pwa/register-service-worker',
|
|
114
|
+
// pwaServiceWorker: 'src-pwa/custom-service-worker',
|
|
115
|
+
// pwaManifestFile: 'src-pwa/manifest.json',
|
|
116
|
+
// electronMain: 'src-electron/electron-main',
|
|
117
|
+
// electronPreload: 'src-electron/electron-preload'
|
|
118
|
+
// bexManifestFile: 'src-bex/manifest.json
|
|
119
|
+
// },
|
|
120
|
+
|
|
121
|
+
// https://v2.quasar.dev/quasar-cli-vite/developing-ssr/configuring-ssr
|
|
122
|
+
ssr: {
|
|
123
|
+
prodPort: 3000, // The default port that the production server should use
|
|
124
|
+
// (gets superseded if process.env.PORT is specified at runtime)
|
|
125
|
+
|
|
126
|
+
middlewares: [
|
|
127
|
+
'render', // keep this as last one
|
|
128
|
+
],
|
|
129
|
+
|
|
130
|
+
// extendPackageJson (json) {},
|
|
131
|
+
// extendSSRWebserverConf (esbuildConf) {},
|
|
132
|
+
|
|
133
|
+
// manualStoreSerialization: true,
|
|
134
|
+
// manualStoreSsrContextInjection: true,
|
|
135
|
+
// manualStoreHydration: true,
|
|
136
|
+
// manualPostHydrationTrigger: true,
|
|
137
|
+
|
|
138
|
+
pwa: false,
|
|
139
|
+
// pwaOfflineHtmlFilename: 'offline.html', // do NOT use index.html as name!
|
|
140
|
+
|
|
141
|
+
// pwaExtendGenerateSWOptions (cfg) {},
|
|
142
|
+
// pwaExtendInjectManifestOptions (cfg) {}
|
|
143
|
+
},
|
|
144
|
+
|
|
145
|
+
// https://v2.quasar.dev/quasar-cli-vite/developing-pwa/configuring-pwa
|
|
146
|
+
pwa: {
|
|
147
|
+
workboxMode: 'GenerateSW', // 'GenerateSW' or 'InjectManifest'
|
|
148
|
+
// swFilename: 'sw.js',
|
|
149
|
+
// manifestFilename: 'manifest.json',
|
|
150
|
+
// extendManifestJson (json) {},
|
|
151
|
+
// useCredentialsForManifestTag: true,
|
|
152
|
+
// injectPwaMetaTags: false,
|
|
153
|
+
// extendPWACustomSWConf (esbuildConf) {},
|
|
154
|
+
// extendGenerateSWOptions (cfg) {},
|
|
155
|
+
// extendInjectManifestOptions (cfg) {}
|
|
156
|
+
},
|
|
157
|
+
|
|
158
|
+
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-cordova-apps/configuring-cordova
|
|
159
|
+
cordova: {
|
|
160
|
+
// noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
|
|
161
|
+
},
|
|
162
|
+
|
|
163
|
+
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-capacitor-apps/configuring-capacitor
|
|
164
|
+
capacitor: {
|
|
165
|
+
hideSplashscreen: true,
|
|
166
|
+
},
|
|
167
|
+
|
|
168
|
+
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-electron-apps/configuring-electron
|
|
169
|
+
electron: {
|
|
170
|
+
// extendElectronMainConf (esbuildConf) {},
|
|
171
|
+
// extendElectronPreloadConf (esbuildConf) {},
|
|
172
|
+
|
|
173
|
+
// extendPackageJson (json) {},
|
|
174
|
+
|
|
175
|
+
// Electron preload scripts (if any) from /src-electron, WITHOUT file extension
|
|
176
|
+
preloadScripts: ['electron-preload'],
|
|
177
|
+
|
|
178
|
+
// specify the debugging port to use for the Electron app when running in development mode
|
|
179
|
+
inspectPort: 5858,
|
|
180
|
+
|
|
181
|
+
bundler: 'packager', // 'packager' or 'builder'
|
|
182
|
+
|
|
183
|
+
packager: {
|
|
184
|
+
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
|
|
185
|
+
// OS X / Mac App Store
|
|
186
|
+
// appBundleId: '',
|
|
187
|
+
// appCategoryType: '',
|
|
188
|
+
// osxSign: '',
|
|
189
|
+
// protocol: 'myapp://path',
|
|
190
|
+
// Windows only
|
|
191
|
+
// win32metadata: { ... }
|
|
192
|
+
},
|
|
193
|
+
|
|
194
|
+
builder: {
|
|
195
|
+
// https://www.electron.build/configuration/configuration
|
|
196
|
+
|
|
197
|
+
appId: 'web-core-tcm',
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
|
|
201
|
+
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-browser-extensions/configuring-bex
|
|
202
|
+
bex: {
|
|
203
|
+
// extendBexScriptsConf (esbuildConf) {},
|
|
204
|
+
// extendBexManifestJson (json) {},
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* The list of extra scripts (js/ts) not in your bex manifest that you want to
|
|
208
|
+
* compile and use in your browser extension. Maybe dynamic use them?
|
|
209
|
+
*
|
|
210
|
+
* Each entry in the list should be a relative filename to /src-bex/
|
|
211
|
+
*
|
|
212
|
+
* @example [ 'my-script.ts', 'sub-folder/my-other-script.js' ]
|
|
213
|
+
*/
|
|
214
|
+
extraScripts: [],
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
});
|
package/src/App.vue
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 356 360">
|
|
2
|
+
<path
|
|
3
|
+
d="M43.4 303.4c0 3.8-2.3 6.3-7.1 6.3h-15v-22h14.4c4.3 0 6.2 2.2 6.2 5.2 0 2.6-1.5 4.4-3.4 5 2.8.4 4.9 2.5 4.9 5.5zm-8-13H24.1v6.9H35c2.1 0 4-1.3 4-3.8 0-2.2-1.3-3.1-3.7-3.1zm5.1 12.6c0-2.3-1.8-3.7-4-3.7H24.2v7.7h11.7c3.4 0 4.6-1.8 4.6-4zm36.3 4v2.7H56v-22h20.6v2.7H58.9v6.8h14.6v2.3H58.9v7.5h17.9zm23-5.8v8.5H97v-8.5l-11-13.4h3.4l8.9 11 8.8-11h3.4l-10.8 13.4zm19.1-1.8V298c0-7.9 5.2-10.7 12.7-10.7 7.5 0 13 2.8 13 10.7v1.4c0 7.9-5.5 10.8-13 10.8s-12.7-3-12.7-10.8zm22.7 0V298c0-5.7-3.9-8-10-8-6 0-9.8 2.3-9.8 8v1.4c0 5.8 3.8 8.1 9.8 8.1 6 0 10-2.3 10-8.1zm37.2-11.6v21.9h-2.9l-15.8-17.9v17.9h-2.8v-22h3l15.6 18v-18h2.9zm37.9 10.2v1.3c0 7.8-5.2 10.4-12.4 10.4H193v-22h11.2c7.2 0 12.4 2.8 12.4 10.3zm-3 0c0-5.3-3.3-7.6-9.4-7.6h-8.4V307h8.4c6 0 9.5-2 9.5-7.7V298zm50.8-7.6h-9.7v19.3h-3v-19.3h-9.7v-2.6h22.4v2.6zm34.4-2.6v21.9h-3v-10.1h-16.8v10h-2.8v-21.8h2.8v9.2H296v-9.2h2.9zm34.9 19.2v2.7h-20.7v-22h20.6v2.7H316v6.8h14.5v2.3H316v7.5h17.8zM24 340.2v7.3h13.9v2.4h-14v9.6H21v-22h20v2.7H24zm41.5 11.4h-9.8v7.9H53v-22h13.3c5.1 0 8 1.9 8 6.8 0 3.7-2 6.3-5.6 7l6 8.2h-3.3l-5.8-8zm-9.8-2.6H66c3.1 0 5.3-1.5 5.3-4.7 0-3.3-2.2-4.1-5.3-4.1H55.7v8.8zm47.9 6.2H89l-2 4.3h-3.2l10.7-22.2H98l10.7 22.2h-3.2l-2-4.3zm-1-2.3l-6.3-13-6 13h12.2zm46.3-15.3v21.9H146v-17.2L135.7 358h-2.1l-10.2-15.6v17h-2.8v-21.8h3l11 16.9 11.3-17h3zm35 19.3v2.6h-20.7v-22h20.6v2.7H166v6.8h14.5v2.3H166v7.6h17.8zm47-19.3l-8.3 22h-3l-7.1-18.6-7 18.6h-3l-8.2-22h3.3L204 356l6.8-18.5h3.4L221 356l6.6-18.5h3.3zm10 11.6v-1.4c0-7.8 5.2-10.7 12.7-10.7 7.6 0 13 2.9 13 10.7v1.4c0 7.9-5.4 10.8-13 10.8-7.5 0-12.7-3-12.7-10.8zm22.8 0v-1.4c0-5.7-4-8-10-8s-9.9 2.3-9.9 8v1.4c0 5.8 3.8 8.2 9.8 8.2 6.1 0 10-2.4 10-8.2zm28.3 2.4h-9.8v7.9h-2.8v-22h13.2c5.2 0 8 1.9 8 6.8 0 3.7-2 6.3-5.6 7l6 8.2h-3.3l-5.8-8zm-9.8-2.6h10.2c3 0 5.2-1.5 5.2-4.7 0-3.3-2.1-4.1-5.2-4.1h-10.2v8.8zm40.3-1.5l-6.8 5.6v6.4h-2.9v-22h2.9v12.3l15.2-12.2h3.7l-9.9 8.1 10.3 13.8h-3.6l-8.9-12z" />
|
|
4
|
+
<path fill="#050A14"
|
|
5
|
+
d="M188.4 71.7a10.4 10.4 0 01-20.8 0 10.4 10.4 0 1120.8 0zM224.2 45c-2.2-3.9-5-7.5-8.2-10.7l-12 7c-3.7-3.2-8-5.7-12.6-7.3a49.4 49.4 0 00-9.7 13.9 59 59 0 0140.1 14l7.6-4.4a57 57 0 00-5.2-12.5zM178 125.1c4.5 0 9-.6 13.4-1.7v-14a40 40 0 0012.5-7.2 47.7 47.7 0 00-7.1-15.3 59 59 0 01-32.2 27.7v8.7c4.4 1.2 8.9 1.8 13.4 1.8zM131.8 45c-2.3 4-4 8.1-5.2 12.5l12 7a40 40 0 000 14.4c5.7 1.5 11.3 2 16.9 1.5a59 59 0 01-8-41.7l-7.5-4.3c-3.2 3.2-6 6.7-8.2 10.6z" />
|
|
6
|
+
<path fill="#00B4FF"
|
|
7
|
+
d="M224.2 98.4c2.3-3.9 4-8 5.2-12.4l-12-7a40 40 0 000-14.5c-5.7-1.5-11.3-2-16.9-1.5a59 59 0 018 41.7l7.5 4.4c3.2-3.2 6-6.8 8.2-10.7zm-92.4 0c2.2 4 5 7.5 8.2 10.7l12-7a40 40 0 0012.6 7.3c4-4.1 7.3-8.8 9.7-13.8a59 59 0 01-40-14l-7.7 4.4c1.2 4.3 3 8.5 5.2 12.4zm46.2-80c-4.5 0-9 .5-13.4 1.7V34a40 40 0 00-12.5 7.2c1.5 5.7 4 10.8 7.1 15.4a59 59 0 0132.2-27.7V20a53.3 53.3 0 00-13.4-1.8z" />
|
|
8
|
+
<path fill="#00B4FF"
|
|
9
|
+
d="M178 9.2a62.6 62.6 0 11-.1 125.2A62.6 62.6 0 01178 9.2m0-9.2a71.7 71.7 0 100 143.5A71.7 71.7 0 00178 0z" />
|
|
10
|
+
<path fill="#050A14"
|
|
11
|
+
d="M96.6 212v4.3c-9.2-.8-15.4-5.8-15.4-17.8V180h4.6v18.4c0 8.6 4 12.6 10.8 13.5zm16-31.9v18.4c0 8.9-4.3 12.8-10.9 13.5v4.4c9.2-.7 15.5-5.6 15.5-18v-18.3h-4.7zM62.2 199v-2.2c0-12.7-8.8-17.4-21-17.4-12.1 0-20.7 4.7-20.7 17.4v2.2c0 12.8 8.6 17.6 20.7 17.6 1.5 0 3-.1 4.4-.3l11.8 6.2 2-3.3-8.2-4-6.4-3.1a32 32 0 01-3.6.2c-9.8 0-16-3.9-16-13.3v-2.2c0-9.3 6.2-13.1 16-13.1 9.9 0 16.3 3.8 16.3 13.1v2.2c0 5.3-2.1 8.7-5.6 10.8l4.8 2.4c3.4-2.8 5.5-7 5.5-13.2zM168 215.6h5.1L156 179.7h-4.8l17 36zM143 205l7.4-15.7-2.4-5-15.1 31.4h5.1l3.3-7h18.3l-1.8-3.7H143zm133.7 10.7h5.2l-17.3-35.9h-4.8l17 36zm-25-10.7l7.4-15.7-2.4-5-15.1 31.4h5.1l3.3-7h18.3l-1.7-3.7h-14.8zm73.8-2.5c6-1.2 9-5.4 9-11.4 0-8-4.5-10.9-12.9-10.9h-21.4v35.5h4.6v-31.3h16.5c5 0 8.5 1.4 8.5 6.7 0 5.2-3.5 7.7-8.5 7.7h-11.4v4.1h10.7l9.3 12.8h5.5l-9.9-13.2zm-117.4 9.9c-9.7 0-14.7-2.5-18.6-6.3l-2.2 3.8c5.1 5 11 6.7 21 6.7 1.6 0 3.1-.1 4.6-.3l-1.9-4h-3zm18.4-7c0-6.4-4.7-8.6-13.8-9.4l-10.1-1c-6.7-.7-9.3-2.2-9.3-5.6 0-2.5 1.4-4 4.6-5l-1.8-3.8c-4.7 1.4-7.5 4.2-7.5 8.9 0 5.2 3.4 8.7 13 9.6l11.3 1.2c6.4.6 8.9 2 8.9 5.4 0 2.7-2.1 4.7-6 5.8l1.8 3.9c5.3-1.6 8.9-4.7 8.9-10zm-20.3-21.9c7.9 0 13.3 1.8 18.1 5.7l1.8-3.9a30 30 0 00-19.6-5.9c-2 0-4 .1-5.7.3l1.9 4 3.5-.2z" />
|
|
12
|
+
<path fill="#00B4FF"
|
|
13
|
+
d="M.5 251.9c29.6-.5 59.2-.8 88.8-1l88.7-.3 88.7.3 44.4.4 44.4.6-44.4.6-44.4.4-88.7.3-88.7-.3a7981 7981 0 01-88.8-1z" />
|
|
14
|
+
<path fill="none" d="M-565.2 324H-252v15.8h-313.2z" />
|
|
15
|
+
</svg>
|
|
File without changes
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<p>{{ title }}</p>
|
|
4
|
+
<ul>
|
|
5
|
+
<li v-for="todo in todos" :key="todo.id" @click="increment">
|
|
6
|
+
{{ todo.id }} - {{ todo.content }}
|
|
7
|
+
</li>
|
|
8
|
+
</ul>
|
|
9
|
+
<p>Count: {{ todoCount }} / {{ meta.totalCount }}</p>
|
|
10
|
+
<p>Active: {{ active ? 'yes' : 'no' }}</p>
|
|
11
|
+
<p>Clicks on todos: {{ clickCount }}</p>
|
|
12
|
+
</div>
|
|
13
|
+
</template>
|
|
14
|
+
|
|
15
|
+
<script setup lang="ts">
|
|
16
|
+
import { computed, ref } from 'vue';
|
|
17
|
+
import type { Todo, Meta } from './models';
|
|
18
|
+
|
|
19
|
+
interface Props {
|
|
20
|
+
title: string;
|
|
21
|
+
todos?: Todo[];
|
|
22
|
+
meta: Meta;
|
|
23
|
+
active: boolean;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
27
|
+
todos: () => [],
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const clickCount = ref(0);
|
|
31
|
+
function increment() {
|
|
32
|
+
clickCount.value += 1;
|
|
33
|
+
return clickCount.value;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const todoCount = computed(() => props.todos.length);
|
|
37
|
+
</script>
|
package/src/css/app.scss
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// app global css in SCSS form
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Quasar SCSS (& Sass) Variables
|
|
2
|
+
// --------------------------------------------------
|
|
3
|
+
// To customize the look and feel of this app, you can override
|
|
4
|
+
// the Sass/SCSS variables found in Quasar's source Sass/SCSS files.
|
|
5
|
+
|
|
6
|
+
// Check documentation for full list of Quasar variables
|
|
7
|
+
|
|
8
|
+
// Your own variables (that are declared here) and Quasar's own
|
|
9
|
+
// ones will be available out of the box in your .vue/.scss/.sass files
|
|
10
|
+
|
|
11
|
+
// It's highly recommended to change the default colors
|
|
12
|
+
// to match your app's branding.
|
|
13
|
+
// Tip: Use the "Theme Builder" on Quasar's documentation website.
|
|
14
|
+
|
|
15
|
+
$primary: #1976d2;
|
|
16
|
+
$secondary: #26a69a;
|
|
17
|
+
$accent: #9c27b0;
|
|
18
|
+
|
|
19
|
+
$dark: #1d1d1d;
|
|
20
|
+
$dark-page: #121212;
|
|
21
|
+
|
|
22
|
+
$positive: #21ba45;
|
|
23
|
+
$negative: #c10015;
|
|
24
|
+
$info: #31ccec;
|
|
25
|
+
$warning: #f2c037;
|
package/src/env.d.ts
ADDED
package/tsconfig.json
ADDED