├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .npmrc ├── .vscode ├── extensions.json └── settings.json ├── README.md ├── index.html ├── jsconfig.json ├── package-lock.json ├── package.json ├── postcss.config.js ├── public ├── favicon.ico ├── icons │ ├── favicon-128x128.png │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ └── favicon-96x96.png └── images.png ├── quasar.config.js ├── src-electron ├── electron-flag.d.ts ├── electron-main.js ├── electron-preload.js └── icons │ ├── icon.icns │ ├── icon.ico │ └── icon.png ├── src ├── App.vue ├── assets │ └── quasar-logo-vertical.svg ├── boot │ └── .gitkeep ├── components │ └── EssentialLink.vue ├── css │ ├── app.scss │ └── quasar.variables.scss ├── layouts │ └── MainLayout.vue ├── pages │ ├── Code.vue │ ├── Customizer.vue │ ├── Dashboard.vue │ ├── Discounts.vue │ ├── ErrorNotFound.vue │ ├── IndexPage.vue │ ├── Integrations.vue │ ├── Management.vue │ ├── Midisify.vue │ ├── Orders.vue │ ├── Shipping.vue │ ├── Subscription.vue │ └── Upsells.vue └── router │ ├── index.js │ └── routes.js └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | /dist 2 | /src-capacitor 3 | /src-cordova 4 | /.quasar 5 | /node_modules 6 | .eslintrc.js 7 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | // https://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy 3 | // This option interrupts the configuration hierarchy at this file 4 | // Remove this if you have an higher level ESLint config file (it usually happens into a monorepos) 5 | root: true, 6 | 7 | parserOptions: { 8 | ecmaVersion: '2021', // Allows for the parsing of modern ECMAScript features 9 | }, 10 | 11 | env: { 12 | node: true, 13 | browser: true, 14 | 'vue/setup-compiler-macros': true 15 | }, 16 | 17 | // Rules order is important, please avoid shuffling them 18 | extends: [ 19 | // Base ESLint recommended rules 20 | // 'eslint:recommended', 21 | 22 | // Uncomment any of the lines below to choose desired strictness, 23 | // but leave only one uncommented! 24 | // See https://eslint.vuejs.org/rules/#available-rules 25 | 'plugin:vue/vue3-essential', // Priority A: Essential (Error Prevention) 26 | // 'plugin:vue/vue3-strongly-recommended', // Priority B: Strongly Recommended (Improving Readability) 27 | // 'plugin:vue/vue3-recommended', // Priority C: Recommended (Minimizing Arbitrary Choices and Cognitive Overhead) 28 | 29 | 'standard' 30 | 31 | ], 32 | 33 | plugins: [ 34 | // https://eslint.vuejs.org/user-guide/#why-doesn-t-it-work-on-vue-files 35 | // required to lint *.vue files 36 | 'vue', 37 | 38 | ], 39 | 40 | globals: { 41 | ga: 'readonly', // Google Analytics 42 | cordova: 'readonly', 43 | __statics: 'readonly', 44 | __QUASAR_SSR__: 'readonly', 45 | __QUASAR_SSR_SERVER__: 'readonly', 46 | __QUASAR_SSR_CLIENT__: 'readonly', 47 | __QUASAR_SSR_PWA__: 'readonly', 48 | process: 'readonly', 49 | Capacitor: 'readonly', 50 | chrome: 'readonly' 51 | }, 52 | 53 | // add your custom rules here 54 | rules: { 55 | 56 | // allow async-await 57 | 'generator-star-spacing': 'off', 58 | // allow paren-less arrow functions 59 | 'arrow-parens': 'off', 60 | 'one-var': 'off', 61 | 'no-void': 'off', 62 | 'multiline-ternary': 'off', 63 | 64 | 'import/first': 'off', 65 | 'import/named': 'error', 66 | 'import/namespace': 'error', 67 | 'import/default': 'error', 68 | 'import/export': 'error', 69 | 'import/extensions': 'off', 70 | 'import/no-unresolved': 'off', 71 | 'import/no-extraneous-dependencies': 'off', 72 | 73 | 'prefer-promise-reject-errors': 'off', 74 | 75 | // allow debugger during development only 76 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .thumbs.db 3 | node_modules 4 | 5 | # Quasar core related directories 6 | .quasar 7 | /dist 8 | 9 | # Cordova related directories and files 10 | /src-cordova/node_modules 11 | /src-cordova/platforms 12 | /src-cordova/plugins 13 | /src-cordova/www 14 | 15 | # Capacitor related directories and files 16 | /src-capacitor/www 17 | /src-capacitor/node_modules 18 | 19 | # Log files 20 | npm-debug.log* 21 | yarn-debug.log* 22 | yarn-error.log* 23 | 24 | # Editor directories and files 25 | .idea 26 | *.suo 27 | *.ntvs* 28 | *.njsproj 29 | *.sln 30 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | # pnpm-related options 2 | shamefully-hoist=true 3 | strict-peer-dependencies=false 4 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "dbaeumer.vscode-eslint", 4 | "editorconfig.editorconfig", 5 | "vue.volar", 6 | "wayou.vscode-todo-highlight" 7 | ], 8 | "unwantedRecommendations": [ 9 | "octref.vetur", 10 | "hookyqr.beautify", 11 | "dbaeumer.jshint", 12 | "ms-vscode.vscode-typescript-tslint-plugin" 13 | ] 14 | } -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.bracketPairColorization.enabled": true, 3 | "editor.guides.bracketPairs": true, 4 | "editor.formatOnSave": false, 5 | "editor.defaultFormatter": "dbaeumer.vscode-eslint", 6 | "editor.codeActionsOnSave": [ 7 | "source.fixAll.eslint" 8 | ], 9 | "eslint.validate": [ 10 | "javascript", 11 | "javascriptreact", 12 | "typescript", 13 | "vue" 14 | ], 15 | "scss.format.enable": true, 16 | "[vue]": { 17 | "editor.defaultFormatter": "octref.vetur" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Quasar App (quasar-project) 2 | 3 | A Quasar Project 4 | 5 | ## Install the dependencies 6 | ```bash 7 | yarn 8 | # or 9 | npm install 10 | ``` 11 | 12 | ### Start the app in development mode (hot-code reloading, error reporting, etc.) 13 | ```bash 14 | quasar dev 15 | ``` 16 | 17 | 18 | ### Lint the files 19 | ```bash 20 | yarn lint 21 | # or 22 | npm run lint 23 | ``` 24 | 25 | 26 | 27 | ### Build the app for production 28 | ```bash 29 | quasar build 30 | ``` 31 | 32 | ### Customize the configuration 33 | See [Configuring quasar.config.js](https://v2.quasar.dev/quasar-cli-vite/quasar-config-js). 34 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <%= productName %> 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "src/*": [ 6 | "src/*" 7 | ], 8 | "app/*": [ 9 | "*" 10 | ], 11 | "components/*": [ 12 | "src/components/*" 13 | ], 14 | "layouts/*": [ 15 | "src/layouts/*" 16 | ], 17 | "pages/*": [ 18 | "src/pages/*" 19 | ], 20 | "assets/*": [ 21 | "src/assets/*" 22 | ], 23 | "boot/*": [ 24 | "src/boot/*" 25 | ], 26 | "stores/*": [ 27 | "src/stores/*" 28 | ], 29 | "vue$": [ 30 | "node_modules/vue/dist/vue.runtime.esm-bundler.js" 31 | ] 32 | } 33 | }, 34 | "exclude": [ 35 | "dist", 36 | ".quasar", 37 | "node_modules" 38 | ] 39 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "quasar-project", 3 | "version": "0.0.1", 4 | "description": "A Quasar Project", 5 | "productName": "Quasar App", 6 | "author": "sayjun0505 ", 7 | "private": true, 8 | "scripts": { 9 | "lint": "eslint --ext .js,.vue ./", 10 | "test": "echo \"No test specified\" && exit 0", 11 | "dev": "quasar dev", 12 | "build": "quasar build" 13 | }, 14 | "dependencies": { 15 | "@quasar/extras": "^1.0.0", 16 | "electron": "^24.1.3", 17 | "quasar": "^2.6.0", 18 | "vue": "^3.0.0", 19 | "vue-router": "^4.0.0" 20 | }, 21 | "devDependencies": { 22 | "@quasar/app-vite": "^1.0.0", 23 | "autoprefixer": "^10.4.2", 24 | "electron-packager": "^15.2.0", 25 | "eslint": "^8.10.0", 26 | "eslint-config-standard": "^17.0.0", 27 | "eslint-plugin-import": "^2.19.1", 28 | "eslint-plugin-n": "^15.0.0", 29 | "eslint-plugin-promise": "^6.0.0", 30 | "eslint-plugin-vue": "^9.0.0", 31 | "postcss": "^8.4.14" 32 | }, 33 | "engines": { 34 | "node": "^18 || ^16 || ^14.19", 35 | "npm": ">= 6.13.4", 36 | "yarn": ">= 1.21.1" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // https://github.com/michael-ciniawsky/postcss-load-config 3 | 4 | module.exports = { 5 | plugins: [ 6 | // https://github.com/postcss/autoprefixer 7 | require('autoprefixer')({ 8 | overrideBrowserslist: [ 9 | 'last 4 Chrome versions', 10 | 'last 4 Firefox versions', 11 | 'last 4 Edge versions', 12 | 'last 4 Safari versions', 13 | 'last 4 Android versions', 14 | 'last 4 ChromeAndroid versions', 15 | 'last 4 FirefoxAndroid versions', 16 | 'last 4 iOS versions' 17 | ] 18 | }) 19 | 20 | // https://github.com/elchininet/postcss-rtlcss 21 | // If you want to support RTL css, then 22 | // 1. yarn/npm install postcss-rtlcss 23 | // 2. optionally set quasar.config.js > framework > lang to an RTL language 24 | // 3. uncomment the following line: 25 | // require('postcss-rtlcss') 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sayjun0505/VueQuasar/4abfb001aa1449f63c93cb17e77bbe534289fc05/public/favicon.ico -------------------------------------------------------------------------------- /public/icons/favicon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sayjun0505/VueQuasar/4abfb001aa1449f63c93cb17e77bbe534289fc05/public/icons/favicon-128x128.png -------------------------------------------------------------------------------- /public/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sayjun0505/VueQuasar/4abfb001aa1449f63c93cb17e77bbe534289fc05/public/icons/favicon-16x16.png -------------------------------------------------------------------------------- /public/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sayjun0505/VueQuasar/4abfb001aa1449f63c93cb17e77bbe534289fc05/public/icons/favicon-32x32.png -------------------------------------------------------------------------------- /public/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sayjun0505/VueQuasar/4abfb001aa1449f63c93cb17e77bbe534289fc05/public/icons/favicon-96x96.png -------------------------------------------------------------------------------- /public/images.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sayjun0505/VueQuasar/4abfb001aa1449f63c93cb17e77bbe534289fc05/public/images.png -------------------------------------------------------------------------------- /quasar.config.js: -------------------------------------------------------------------------------- 1 | /* eslint-env node */ 2 | 3 | /* 4 | * This file runs in a Node context (it's NOT transpiled by Babel), so use only 5 | * the ES6 features that are supported by your Node version. https://node.green/ 6 | */ 7 | 8 | // Configuration for your app 9 | // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js 10 | 11 | const { configure } = require('quasar/wrappers') 12 | 13 | module.exports = configure(function (/* ctx */) { 14 | return { 15 | eslint: { 16 | // fix: true, 17 | // include: [], 18 | // exclude: [], 19 | // rawOptions: {}, 20 | warnings: true, 21 | errors: true 22 | }, 23 | 24 | // https://v2.quasar.dev/quasar-cli/prefetch-feature 25 | // preFetch: true, 26 | 27 | // app boot file (/src/boot) 28 | // --> boot files are part of "main.js" 29 | // https://v2.quasar.dev/quasar-cli/boot-files 30 | boot: [ 31 | 32 | ], 33 | 34 | // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#css 35 | css: [ 36 | 'app.scss' 37 | ], 38 | 39 | // https://github.com/quasarframework/quasar/tree/dev/extras 40 | extras: [ 41 | 'ionicons-v4', 42 | 'mdi-v5', 43 | 'fontawesome-v6', 44 | 'eva-icons', 45 | 'themify', 46 | 'line-awesome', 47 | 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both! 48 | 49 | 'roboto-font', // optional, you are not bound to it 50 | 'material-icons', // optional, you are not bound to it 51 | 'material-icons-outlined' // optional, you are not bound to it 52 | ], 53 | 54 | // Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#build 55 | build: { 56 | target: { 57 | browser: ['es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1'], 58 | node: 'node16' 59 | }, 60 | 61 | vueRouterMode: 'hash' // available values: 'hash', 'history' 62 | // vueRouterBase, 63 | // vueDevtools, 64 | // vueOptionsAPI: false, 65 | 66 | // rebuildCache: true, // rebuilds Vite/linter/etc cache on startup 67 | 68 | // publicPath: '/', 69 | // analyze: true, 70 | // env: {}, 71 | // rawDefine: {} 72 | // ignorePublicFolder: true, 73 | // minify: false, 74 | // polyfillModulePreload: true, 75 | // distDir 76 | 77 | // extendViteConf (viteConf) {}, 78 | // viteVuePluginOptions: {}, 79 | 80 | // vitePlugins: [ 81 | // [ 'package-name', { ..options.. } ] 82 | // ] 83 | }, 84 | 85 | // Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#devServer 86 | devServer: { 87 | // https: true 88 | open: true // opens browser window automatically 89 | }, 90 | 91 | // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#framework 92 | framework: { 93 | config: {}, 94 | 95 | // iconSet: 'material-icons', // Quasar icon set 96 | // lang: 'en-US', // Quasar language pack 97 | 98 | // For special cases outside of where the auto-import strategy can have an impact 99 | // (like functional components as one of the examples), 100 | // you can manually specify Quasar components/directives to be available everywhere: 101 | // 102 | // components: [], 103 | // directives: [], 104 | 105 | // Quasar plugins 106 | plugins: [] 107 | }, 108 | 109 | // animations: 'all', // --- includes all animations 110 | // https://v2.quasar.dev/options/animations 111 | animations: [], 112 | 113 | // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#property-sourcefiles 114 | // sourceFiles: { 115 | // rootComponent: 'src/App.vue', 116 | // router: 'src/router/index', 117 | // store: 'src/store/index', 118 | // registerServiceWorker: 'src-pwa/register-service-worker', 119 | // serviceWorker: 'src-pwa/custom-service-worker', 120 | // pwaManifestFile: 'src-pwa/manifest.json', 121 | // electronMain: 'src-electron/electron-main', 122 | // electronPreload: 'src-electron/electron-preload' 123 | // }, 124 | 125 | // https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr 126 | ssr: { 127 | // ssrPwaHtmlFilename: 'offline.html', // do NOT use index.html as name! 128 | // will mess up SSR 129 | 130 | // extendSSRWebserverConf (esbuildConf) {}, 131 | // extendPackageJson (json) {}, 132 | 133 | pwa: false, 134 | 135 | // manualStoreHydration: true, 136 | // manualPostHydrationTrigger: true, 137 | 138 | prodPort: 3000, // The default port that the production server should use 139 | // (gets superseded if process.env.PORT is specified at runtime) 140 | 141 | middlewares: [ 142 | 'render' // keep this as last one 143 | ] 144 | }, 145 | 146 | // https://v2.quasar.dev/quasar-cli/developing-pwa/configuring-pwa 147 | pwa: { 148 | workboxMode: 'generateSW', // or 'injectManifest' 149 | injectPwaMetaTags: true, 150 | swFilename: 'sw.js', 151 | manifestFilename: 'manifest.json', 152 | useCredentialsForManifestTag: false 153 | // useFilenameHashes: true, 154 | // extendGenerateSWOptions (cfg) {} 155 | // extendInjectManifestOptions (cfg) {}, 156 | // extendManifestJson (json) {} 157 | // extendPWACustomSWConf (esbuildConf) {} 158 | }, 159 | 160 | // Full list of options: https://v2.quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova 161 | cordova: { 162 | // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing 163 | }, 164 | 165 | // Full list of options: https://v2.quasar.dev/quasar-cli/developing-capacitor-apps/configuring-capacitor 166 | capacitor: { 167 | hideSplashscreen: true 168 | }, 169 | 170 | // Full list of options: https://v2.quasar.dev/quasar-cli/developing-electron-apps/configuring-electron 171 | electron: { 172 | // extendElectronMainConf (esbuildConf) 173 | // extendElectronPreloadConf (esbuildConf) 174 | 175 | inspectPort: 5858, 176 | 177 | bundler: 'packager', // 'packager' or 'builder' 178 | 179 | packager: { 180 | // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options 181 | 182 | // OS X / Mac App Store 183 | // appBundleId: '', 184 | // appCategoryType: '', 185 | // osxSign: '', 186 | // protocol: 'myapp://path', 187 | 188 | // Windows only 189 | // win32metadata: { ... } 190 | }, 191 | 192 | builder: { 193 | // https://www.electron.build/configuration/configuration 194 | 195 | appId: 'quasar-project' 196 | } 197 | }, 198 | 199 | // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-browser-extensions/configuring-bex 200 | bex: { 201 | contentScripts: [ 202 | 'my-content-script' 203 | ] 204 | 205 | // extendBexScriptsConf (esbuildConf) {} 206 | // extendBexManifestJson (json) {} 207 | } 208 | } 209 | }) 210 | -------------------------------------------------------------------------------- /src-electron/electron-flag.d.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | // THIS FEATURE-FLAG FILE IS AUTOGENERATED, 3 | // REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING 4 | import "quasar/dist/types/feature-flag"; 5 | 6 | declare module "quasar/dist/types/feature-flag" { 7 | interface QuasarFeatureFlags { 8 | electron: true; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src-electron/electron-main.js: -------------------------------------------------------------------------------- 1 | import { app, BrowserWindow, nativeTheme } from 'electron' 2 | import path from 'path' 3 | import os from 'os' 4 | 5 | // needed in case process is undefined under Linux 6 | const platform = process.platform || os.platform() 7 | 8 | try { 9 | if (platform === 'win32' && nativeTheme.shouldUseDarkColors === true) { 10 | require('fs').unlinkSync(path.join(app.getPath('userData'), 'DevTools Extensions')) 11 | } 12 | } catch (_) { } 13 | 14 | let mainWindow 15 | 16 | function createWindow () { 17 | /** 18 | * Initial window options 19 | */ 20 | mainWindow = new BrowserWindow({ 21 | icon: path.resolve(__dirname, 'icons/icon.png'), // tray icon 22 | width: 1000, 23 | height: 600, 24 | useContentSize: true, 25 | webPreferences: { 26 | contextIsolation: true, 27 | // More info: https://v2.quasar.dev/quasar-cli-vite/developing-electron-apps/electron-preload-script 28 | preload: path.resolve(__dirname, process.env.QUASAR_ELECTRON_PRELOAD) 29 | } 30 | }) 31 | 32 | mainWindow.loadURL(process.env.APP_URL) 33 | 34 | if (process.env.DEBUGGING) { 35 | // if on DEV or Production with debug enabled 36 | mainWindow.webContents.openDevTools() 37 | } else { 38 | // we're on production; no access to devtools pls 39 | mainWindow.webContents.on('devtools-opened', () => { 40 | mainWindow.webContents.closeDevTools() 41 | }) 42 | } 43 | 44 | mainWindow.on('closed', () => { 45 | mainWindow = null 46 | }) 47 | } 48 | 49 | app.whenReady().then(createWindow) 50 | 51 | app.on('window-all-closed', () => { 52 | if (platform !== 'darwin') { 53 | app.quit() 54 | } 55 | }) 56 | 57 | app.on('activate', () => { 58 | if (mainWindow === null) { 59 | createWindow() 60 | } 61 | }) 62 | -------------------------------------------------------------------------------- /src-electron/electron-preload.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This file is used specifically for security reasons. 3 | * Here you can access Nodejs stuff and inject functionality into 4 | * the renderer thread (accessible there through the "window" object) 5 | * 6 | * WARNING! 7 | * If you import anything from node_modules, then make sure that the package is specified 8 | * in package.json > dependencies and NOT in devDependencies 9 | * 10 | * Example (injects window.myAPI.doAThing() into renderer thread): 11 | * 12 | * import { contextBridge } from 'electron' 13 | * 14 | * contextBridge.exposeInMainWorld('myAPI', { 15 | * doAThing: () => {} 16 | * }) 17 | * 18 | * WARNING! 19 | * If accessing Node functionality (like importing @electron/remote) then in your 20 | * electron-main.js you will need to set the following when you instantiate BrowserWindow: 21 | * 22 | * mainWindow = new BrowserWindow({ 23 | * // ... 24 | * webPreferences: { 25 | * // ... 26 | * sandbox: false // <-- to be able to import @electron/remote in preload script 27 | * } 28 | * } 29 | */ 30 | -------------------------------------------------------------------------------- /src-electron/icons/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sayjun0505/VueQuasar/4abfb001aa1449f63c93cb17e77bbe534289fc05/src-electron/icons/icon.icns -------------------------------------------------------------------------------- /src-electron/icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sayjun0505/VueQuasar/4abfb001aa1449f63c93cb17e77bbe534289fc05/src-electron/icons/icon.ico -------------------------------------------------------------------------------- /src-electron/icons/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sayjun0505/VueQuasar/4abfb001aa1449f63c93cb17e77bbe534289fc05/src-electron/icons/icon.png -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 12 | -------------------------------------------------------------------------------- /src/assets/quasar-logo-vertical.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 15 | -------------------------------------------------------------------------------- /src/boot/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sayjun0505/VueQuasar/4abfb001aa1449f63c93cb17e77bbe534289fc05/src/boot/.gitkeep -------------------------------------------------------------------------------- /src/components/EssentialLink.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 46 | 51 | -------------------------------------------------------------------------------- /src/css/app.scss: -------------------------------------------------------------------------------- 1 | // app global css in SCSS form 2 | 3 | .w-100 { 4 | width: 100%; 5 | } 6 | 7 | .bg-menubar-custom { 8 | background: #050824; 9 | } 10 | 11 | .font-white { 12 | color: white; 13 | } 14 | 15 | .menubar-list-custom:hover { 16 | background: linear-gradient(90deg, #4EFDEA 6.67%, #5766FF 92.08%); 17 | } 18 | .avatasize{ 19 | width:32px; 20 | height: 32px; 21 | } 22 | 23 | .avatarbtn{ 24 | background: rgba(75, 78, 104, 0.3); 25 | border-radius: 16px; 26 | width:80%; 27 | display: flex; 28 | align-items: center; 29 | justify-content: center; 30 | margin-left: 10%; 31 | margin-top:100%; 32 | height: 60px; 33 | } 34 | .avatarbtnlabel{ 35 | margin-left: 25px; 36 | font-style: normal; 37 | font-weight: 500; 38 | font-size: 16px; 39 | line-height: 24px; 40 | color:white; 41 | } 42 | .mt-120 { 43 | margin-top: 140px; 44 | } 45 | 46 | .avatar-customs { 47 | position: fixed; 48 | width: 200px; 49 | height: 70px; 50 | bottom: 50px; 51 | left: 20px; 52 | background: rgba(75, 78, 104, 0.3) !important; 53 | color: white; 54 | border-radius: 16px; 55 | height: 20px; 56 | } 57 | .avatar-name{ 58 | margin-left: 13px; 59 | } 60 | .bg-cyan{ 61 | background: rgba(75, 78, 104, 0.3) !important; 62 | } 63 | .avatar-custom-size { 64 | height: 25px; 65 | width: 25px; 66 | } 67 | 68 | .q-table__container { 69 | box-shadow: none; 70 | } 71 | -------------------------------------------------------------------------------- /src/css/quasar.variables.scss: -------------------------------------------------------------------------------- 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; 26 | -------------------------------------------------------------------------------- /src/layouts/MainLayout.vue: -------------------------------------------------------------------------------- 1 | 34 | 128 | -------------------------------------------------------------------------------- /src/pages/Code.vue: -------------------------------------------------------------------------------- 1 | 4 | 14 | -------------------------------------------------------------------------------- /src/pages/Customizer.vue: -------------------------------------------------------------------------------- 1 | 4 | 14 | -------------------------------------------------------------------------------- /src/pages/Dashboard.vue: -------------------------------------------------------------------------------- 1 | 4 | 15 | -------------------------------------------------------------------------------- /src/pages/Discounts.vue: -------------------------------------------------------------------------------- 1 | 4 | 14 | -------------------------------------------------------------------------------- /src/pages/ErrorNotFound.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 32 | -------------------------------------------------------------------------------- /src/pages/IndexPage.vue: -------------------------------------------------------------------------------- 1 | 148 | 149 | 230 | 596 | 621 | -------------------------------------------------------------------------------- /src/pages/Integrations.vue: -------------------------------------------------------------------------------- 1 | 4 | 14 | -------------------------------------------------------------------------------- /src/pages/Management.vue: -------------------------------------------------------------------------------- 1 | 4 | 14 | -------------------------------------------------------------------------------- /src/pages/Midisify.vue: -------------------------------------------------------------------------------- 1 | 153 | 154 | 236 | 568 | 593 | -------------------------------------------------------------------------------- /src/pages/Orders.vue: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line vue/multi-word-component-names 2 | 5 | 15 | -------------------------------------------------------------------------------- /src/pages/Shipping.vue: -------------------------------------------------------------------------------- 1 | 4 | 14 | -------------------------------------------------------------------------------- /src/pages/Subscription.vue: -------------------------------------------------------------------------------- 1 | 4 | 14 | -------------------------------------------------------------------------------- /src/pages/Upsells.vue: -------------------------------------------------------------------------------- 1 | 4 | 14 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import { route } from 'quasar/wrappers' 2 | import { createRouter, createMemoryHistory, createWebHistory, createWebHashHistory } from 'vue-router' 3 | import routes from './routes' 4 | 5 | /* 6 | * If not building with SSR mode, you can 7 | * directly export the Router instantiation; 8 | * 9 | * The function below can be async too; either use 10 | * async/await or return a Promise which resolves 11 | * with the Router instance. 12 | */ 13 | 14 | export default route(function (/* { store, ssrContext } */) { 15 | const createHistory = process.env.SERVER 16 | ? createMemoryHistory 17 | : (process.env.VUE_ROUTER_MODE === 'history' ? createWebHistory : createWebHashHistory) 18 | 19 | const Router = createRouter({ 20 | scrollBehavior: () => ({ left: 0, top: 0 }), 21 | routes, 22 | 23 | // Leave this as is and make changes in quasar.conf.js instead! 24 | // quasar.conf.js -> build -> vueRouterMode 25 | // quasar.conf.js -> build -> publicPath 26 | history: createHistory(process.env.VUE_ROUTER_BASE) 27 | }) 28 | 29 | return Router 30 | }) 31 | 32 | // import { route } from 'quasar/wrappers' 33 | // import { createRouter, createWebHistory } from 'vue-router' 34 | // import routes from './routes' 35 | 36 | // export default route(function (/* { store, ssrContext } */) { 37 | // const createHistory = createWebHistory 38 | 39 | // const Router = createRouter({ 40 | // scrollBehavior: () => ({ left: 0, top: 0 }), 41 | // routes, 42 | 43 | // // Leave this as is and make changes in quasar.conf.js instead! 44 | // // quasar.conf.js -> build -> vueRouterMode 45 | // // quasar.conf.js -> build -> publicPath 46 | // history: createHistory(process.env.VUE_ROUTER_BASE) 47 | // }) 48 | 49 | // return Router 50 | // }) 51 | -------------------------------------------------------------------------------- /src/router/routes.js: -------------------------------------------------------------------------------- 1 | 2 | const routes = [ 3 | { 4 | path: '/', 5 | component: () => import('layouts/MainLayout.vue'), 6 | children: [ 7 | { path: '', component: () => import('pages/IndexPage.vue') }, 8 | { path: '/DashboardPage', component: () => import('pages/Dashboard.vue') }, 9 | { path: '/SubscriptionPage', component: () => import('pages/Subscription.vue') }, 10 | { path: '/ManagementPage', component: () => import('pages/Management.vue') }, 11 | { path: '/UpsellsPage', component: () => import('pages/Upsells.vue') }, 12 | { path: '/ShippingPage', component: () => import('pages/Shipping.vue') }, 13 | { path: '/DiscountsPage', component: () => import('pages/Discounts.vue') }, 14 | { path: '/OrdersPage', component: () => import('pages/Orders.vue') }, 15 | { path: '/MidisifyPage', component: () => import('pages/Midisify.vue') }, 16 | { path: '/CodePage', component: () => import('pages/Code.vue') }, 17 | { path: '/IntegrationsPage', component: () => import('pages/Integrations.vue') }, 18 | { path: '/CustomizerPage', component: () => import('pages/Customizer.vue') } 19 | ] 20 | }, 21 | 22 | // Always leave this as last one, 23 | // but you can also remove it 24 | { 25 | path: '/:catchAll(.*)*', 26 | component: () => import('pages/ErrorNotFound.vue') 27 | } 28 | ] 29 | 30 | export default routes 31 | 32 | // const routes = [ 33 | // { 34 | // path: '/', 35 | // component: () => import('layouts/MainLayout.vue'), 36 | // children: [ 37 | // { path: '', component: () => import('pages/IndexPage.vue') }, 38 | // { path: '/DashboardPage', component: () => import('pages/Dashboard.vue') }, 39 | // { path: '/SubscriptionPage', component: () => import('pages/Subscription.vue') }, 40 | // { path: '/ManagementPage', component: () => import('pages/Management.vue') }, 41 | // { path: '/UpsellsPage', component: () => import('pages/Upsells.vue') }, 42 | // { path: '/ShippingPage', component: () => import('pages/Shipping.vue') }, 43 | // { path: '/DiscountsPage', component: () => import('pages/Discounts.vue') }, 44 | // { path: '/OrdersPage', component: () => import('pages/Orders.vue') }, 45 | // { path: '/MidisifyPage', component: () => import('pages/Midisify.vue') }, 46 | // { path: '/CodePage', component: () => import('pages/Code.vue') }, 47 | // { path: '/IntegrationsPage', component: () => import('pages/Integrations.vue') }, 48 | // { path: '/CustomizerPage', component: () => import('pages/Customizer.vue') } 49 | // ] 50 | // } 51 | // ] 52 | 53 | // export default routes 54 | --------------------------------------------------------------------------------