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 ADDED
@@ -0,0 +1,7 @@
1
+ [*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue}]
2
+ charset = utf-8
3
+ indent_size = 2
4
+ indent_style = space
5
+ end_of_line = lf
6
+ insert_final_newline = true
7
+ trim_trailing_whitespace = true
@@ -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 }}
@@ -0,0 +1,5 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/prettierrc",
3
+ "singleQuote": true,
4
+ "printWidth": 100
5
+ }
@@ -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
@@ -0,0 +1,3 @@
1
+ # web.core.tcm
2
+
3
+ 中前端核心包
@@ -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
@@ -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,7 @@
1
+ <template>
2
+ <router-view />
3
+ </template>
4
+
5
+ <script setup lang="ts">
6
+ //
7
+ </script>
@@ -0,0 +1,4 @@
1
+ export function isNumber(value: any): value is number {
2
+ console.log("OvO");
3
+ return typeof value === 'number'
4
+ }
@@ -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>
@@ -0,0 +1,8 @@
1
+ export interface Todo {
2
+ id: number;
3
+ content: string;
4
+ }
5
+
6
+ export interface Meta {
7
+ totalCount: number;
8
+ }
@@ -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
@@ -0,0 +1,7 @@
1
+ declare namespace NodeJS {
2
+ interface ProcessEnv {
3
+ NODE_ENV: string;
4
+ VUE_ROUTER_MODE: 'hash' | 'history' | 'abstract' | undefined;
5
+ VUE_ROUTER_BASE: string | undefined;
6
+ }
7
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "./.quasar/tsconfig.json"
3
+ }