├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .postcssrc.js ├── .stylintrc ├── README.md ├── babel.config.js ├── package-lock.json ├── package.json ├── quasar.conf.js └── src ├── App.vue ├── assets ├── quasar-logo-full.svg └── sad.svg ├── boot ├── .gitkeep ├── axios.js ├── speech.js └── websocket-client.js ├── components └── .gitkeep ├── css ├── app.styl └── quasar.variables.styl ├── index.template.html ├── layouts └── MyLayout.vue ├── pages ├── Chat.vue ├── Error404.vue ├── Index copy.vue └── Index.vue ├── router ├── index.js └── routes.js └── statics ├── app-logo-128x128.png ├── icons ├── apple-icon-120x120.png ├── apple-icon-152x152.png ├── apple-icon-167x167.png ├── apple-icon-180x180.png ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon-96x96.png ├── favicon.ico ├── icon-128x128.png ├── icon-192x192.png ├── icon-256x256.png ├── icon-384x384.png ├── icon-512x512.png ├── ms-icon-144x144.png └── safari-pinned-tab.svg └── logo-512x512.png /.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 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | 4 | parserOptions: { 5 | parser: 'babel-eslint', 6 | sourceType: 'module' 7 | }, 8 | 9 | env: { 10 | browser: true 11 | }, 12 | 13 | extends: [ 14 | // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention 15 | // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules. 16 | 'plugin:vue/essential', 17 | '@vue/standard' 18 | ], 19 | 20 | // required to lint *.vue files 21 | plugins: [ 22 | 'vue' 23 | ], 24 | 25 | globals: { 26 | 'ga': true, // Google Analytics 27 | 'cordova': true, 28 | '__statics': true, 29 | 'process': true 30 | }, 31 | 32 | // add your custom rules here 33 | rules: { 34 | // allow async-await 35 | 'generator-star-spacing': 'off', 36 | // allow paren-less arrow functions 37 | 'arrow-parens': 'off', 38 | 'one-var': 'off', 39 | 40 | 'import/first': 'off', 41 | 'import/named': 'error', 42 | 'import/namespace': 'error', 43 | 'import/default': 'error', 44 | 'import/export': 'error', 45 | 'import/extensions': 'off', 46 | 'import/no-unresolved': 'off', 47 | 'import/no-extraneous-dependencies': 'off', 48 | 'prefer-promise-reject-errors': 'off', 49 | 50 | // allow console.log during development only 51 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 52 | // allow debugger during development only 53 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .quasar 2 | .DS_Store 3 | .thumbs.db 4 | node_modules 5 | /dist 6 | /src-cordova/node_modules 7 | /src-cordova/platforms 8 | /src-cordova/plugins 9 | /src-cordova/www 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | plugins: [ 5 | // to edit target browsers: use "browserslist" field in package.json 6 | require('autoprefixer') 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /.stylintrc: -------------------------------------------------------------------------------- 1 | { 2 | "blocks": "never", 3 | "brackets": "never", 4 | "colons": "never", 5 | "colors": "always", 6 | "commaSpace": "always", 7 | "commentSpace": "always", 8 | "cssLiteral": "never", 9 | "depthLimit": false, 10 | "duplicates": true, 11 | "efficient": "always", 12 | "extendPref": false, 13 | "globalDupe": true, 14 | "indentPref": 2, 15 | "leadingZero": "never", 16 | "maxErrors": false, 17 | "maxWarnings": false, 18 | "mixed": false, 19 | "namingConvention": false, 20 | "namingConventionStrict": false, 21 | "none": "never", 22 | "noImportant": false, 23 | "parenSpace": "never", 24 | "placeholder": false, 25 | "prefixVarsWithDollar": "always", 26 | "quotePref": "single", 27 | "semicolons": "never", 28 | "sortOrder": false, 29 | "stackedProperties": "never", 30 | "trailingWhitespace": "never", 31 | "universal": "never", 32 | "valid": true, 33 | "zeroUnits": "never", 34 | "zIndexNormalize": false 35 | } 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Quasar socket client (quasar-socket-client) 2 | 3 | Projeto de chat com acessibilidade usando Quasar framework e socket.io 4 | 5 | ## Install the dependencies 6 | ```bash 7 | npm install 8 | ``` 9 | 10 | ### Start the app in development mode (hot-code reloading, error reporting, etc.) 11 | ```bash 12 | quasar dev 13 | ``` 14 | 15 | ### Lint the files 16 | ```bash 17 | npm run lint 18 | ``` 19 | 20 | ### Build the app for production 21 | ```bash 22 | quasar build 23 | ``` 24 | 25 | ### Customize the configuration 26 | See [Configuring quasar.conf.js](https://quasar.dev/quasar-cli/quasar-conf-js). 27 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@quasar/babel-preset-app' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "quasar-socket-client", 3 | "version": "0.0.1", 4 | "description": "Projeto de chat", 5 | "productName": "Vue Norte Chat", 6 | "cordovaId": "org.cordova.quasar.app", 7 | "author": "eng.patrickmonteiro@gmail.com", 8 | "private": true, 9 | "scripts": { 10 | "lint": "eslint --ext .js,.vue src", 11 | "test": "echo \"No test specified\" && exit 0" 12 | }, 13 | "dependencies": { 14 | "@quasar/extras": "^1.0.0", 15 | "axios": "^0.18.1", 16 | "quasar": "^1.0.0", 17 | "vue-socket.io": "^3.0.7" 18 | }, 19 | "devDependencies": { 20 | "@quasar/app": "^1.0.0", 21 | "@vue/eslint-config-standard": "^4.0.0", 22 | "babel-eslint": "^10.0.1", 23 | "electron-packager": "^13.1.1", 24 | "eslint": "^5.10.0", 25 | "eslint-loader": "^2.1.1", 26 | "eslint-plugin-vue": "^5.0.0" 27 | }, 28 | "engines": { 29 | "node": ">= 8.9.0", 30 | "npm": ">= 5.6.0", 31 | "yarn": ">= 1.6.0" 32 | }, 33 | "browserslist": [ 34 | "last 1 version, not dead, ie >= 11" 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /quasar.conf.js: -------------------------------------------------------------------------------- 1 | // Configuration for your app 2 | // https://quasar.dev/quasar-cli/quasar-conf-js 3 | 4 | module.exports = function (ctx) { 5 | return { 6 | // app boot file (/src/boot) 7 | // --> boot files are part of "main.js" 8 | boot: [ 9 | 'axios', 10 | 'websocket-client', 11 | 'speech' 12 | ], 13 | 14 | css: [ 15 | 'app.styl' 16 | ], 17 | 18 | extras: [ 19 | // 'ionicons-v4', 20 | // 'mdi-v3', 21 | // 'fontawesome-v5', 22 | // 'eva-icons', 23 | // 'themify', 24 | // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both! 25 | 26 | 'roboto-font', // optional, you are not bound to it 27 | 'material-icons' // optional, you are not bound to it 28 | ], 29 | 30 | framework: { 31 | // iconSet: 'ionicons-v4', 32 | // lang: 'de', // Quasar language 33 | 34 | // all: true, // --- includes everything; for dev only! 35 | 36 | components: [ 37 | 'QLayout', 38 | 'QHeader', 39 | 'QDrawer', 40 | 'QPageContainer', 41 | 'QPage', 42 | 'QToolbar', 43 | 'QToolbarTitle', 44 | 'QBtn', 45 | 'QIcon', 46 | 'QList', 47 | 'QItem', 48 | 'QItemSection', 49 | 'QItemLabel', 50 | 'QInput', 51 | 'QChatMessage', 52 | 'QScrollArea' 53 | ], 54 | 55 | directives: [ 56 | 'Ripple' 57 | ], 58 | 59 | // Quasar plugins 60 | plugins: [ 61 | 'Notify' 62 | ] 63 | }, 64 | 65 | supportIE: false, 66 | 67 | build: { 68 | scopeHoisting: true, 69 | // vueRouterMode: 'history', 70 | // vueCompiler: true, 71 | // gzip: true, 72 | // analyze: true, 73 | // extractCSS: false, 74 | extendWebpack (cfg) { 75 | cfg.module.rules.push({ 76 | enforce: 'pre', 77 | test: /\.(js|vue)$/, 78 | loader: 'eslint-loader', 79 | exclude: /node_modules/, 80 | options: { 81 | formatter: require('eslint').CLIEngine.getFormatter('stylish') 82 | } 83 | }) 84 | } 85 | }, 86 | 87 | devServer: { 88 | // https: true, 89 | // port: 8080, 90 | open: true // opens browser window automatically 91 | }, 92 | 93 | // animations: 'all', // --- includes all animations 94 | animations: [], 95 | 96 | ssr: { 97 | pwa: false 98 | }, 99 | 100 | pwa: { 101 | // workboxPluginMode: 'InjectManifest', 102 | // workboxOptions: {}, // only for NON InjectManifest 103 | manifest: { 104 | // name: 'W3 Texto Fala Desktop', 105 | // short_name: 'W3 Texto Fala Desktop', 106 | // description: 'Projeto de texto fala desktop usando Electron + Socket.io', 107 | display: 'standalone', 108 | orientation: 'portrait', 109 | background_color: '#ffffff', 110 | theme_color: '#027be3', 111 | icons: [ 112 | { 113 | 'src': 'statics/icons/icon-128x128.png', 114 | 'sizes': '128x128', 115 | 'type': 'image/png' 116 | }, 117 | { 118 | 'src': 'statics/icons/icon-192x192.png', 119 | 'sizes': '192x192', 120 | 'type': 'image/png' 121 | }, 122 | { 123 | 'src': 'statics/icons/icon-256x256.png', 124 | 'sizes': '256x256', 125 | 'type': 'image/png' 126 | }, 127 | { 128 | 'src': 'statics/icons/icon-384x384.png', 129 | 'sizes': '384x384', 130 | 'type': 'image/png' 131 | }, 132 | { 133 | 'src': 'statics/icons/icon-512x512.png', 134 | 'sizes': '512x512', 135 | 'type': 'image/png' 136 | } 137 | ] 138 | } 139 | }, 140 | 141 | cordova: { 142 | // id: 'org.cordova.quasar.app', 143 | // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing 144 | }, 145 | 146 | electron: { 147 | bundler: 'packager', // builder or 'packager' 148 | 149 | extendWebpack (cfg) { 150 | // do something with Electron main process Webpack cfg 151 | // chainWebpack also available besides this extendWebpack 152 | }, 153 | 154 | packager: { 155 | // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options 156 | 157 | // OS X / Mac App Store 158 | // appBundleId: '', 159 | // appCategoryType: '', 160 | // osxSign: '', 161 | // protocol: 'myapp://path', 162 | 163 | // Windows only 164 | // win32metadata: { ... } 165 | }, 166 | 167 | builder: { 168 | // https://www.electron.build/configuration/configuration 169 | 170 | // appId: 'w3-texto-fala-desktop' 171 | } 172 | } 173 | } 174 | } 175 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 27 | 28 | 30 | -------------------------------------------------------------------------------- /src/assets/quasar-logo-full.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 63 | 66 | 69 | 75 | 79 | 83 | 87 | 91 | 95 | 99 | 103 | 104 | 105 | 106 | 107 | 113 | 118 | 126 | 133 | 142 | 151 | 160 | 169 | 178 | 187 | 188 | 189 | 190 | 191 | 192 | -------------------------------------------------------------------------------- /src/assets/sad.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/boot/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/boot/.gitkeep -------------------------------------------------------------------------------- /src/boot/axios.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | export default async ({ Vue }) => { 4 | Vue.prototype.$axios = axios 5 | } 6 | -------------------------------------------------------------------------------- /src/boot/speech.js: -------------------------------------------------------------------------------- 1 | import { Loading, QSpinnerAudio, QSpinnerBars } from 'quasar' 2 | export default async ({ Vue }) => { 3 | Vue.prototype.$speechTalk = (text, lang = 'pt-BR') => { 4 | return new Promise((resolve, reject) => { 5 | let speech = new SpeechSynthesisUtterance() 6 | speech.lang = lang 7 | speech.text = text 8 | speech.volume = 1 9 | speech.rate = 1 10 | speech.pitch = 1 11 | setTimeout(() => { 12 | window.speechSynthesis.speak(speech) 13 | }, 300) 14 | 15 | speech.addEventListener('start', () => { 16 | Loading.show({ 17 | delay: 0, 18 | spinner: QSpinnerAudio, // ms, 19 | backgroundColor: 'primary' 20 | }) 21 | }) 22 | 23 | speech.addEventListener('end', () => { 24 | Loading.hide() 25 | resolve(true) 26 | }) 27 | }) 28 | } 29 | const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition 30 | const recognition = SpeechRecognition ? new SpeechRecognition() : false 31 | 32 | Vue.prototype.$speechToText = { 33 | start: (lang = 'pt-BR', continuous = false) => { 34 | return new Promise((resolve, reject) => { 35 | let text = '' 36 | setTimeout(() => { 37 | Loading.show({ 38 | // delay: 400, 39 | spinner: QSpinnerBars, // ms, 40 | backgroundColor: 'primary', 41 | message: 'Aguardando áudio', 42 | messageColor: 'white' 43 | }) 44 | recognition.lang = lang // this.voiceSelect 45 | recognition.continuous = continuous 46 | recognition.start() 47 | }, 400) 48 | 49 | recognition.onresult = (event) => { 50 | let current = event.resultIndex 51 | // Get a transcript of what was said. 52 | let transcript = event.results[current][0].transcript 53 | // Add the current transcript to the contents of our Note. 54 | // var noteContent += transcript 55 | text += transcript 56 | console.log('SUCESSO') 57 | resolve(text) 58 | } 59 | recognition.onspeechend = (event) => { 60 | // if (continuous) { 61 | // reject(false) 62 | Loading.hide() 63 | // console.log('end') 64 | // } 65 | } 66 | recognition.nomatch = () => { 67 | Loading.hide() 68 | // reject(false) 69 | } 70 | recognition.onend = () => { 71 | text = '' 72 | Loading.hide() 73 | if (!continuous) { 74 | reject(false) 75 | } 76 | } 77 | }) 78 | }, 79 | stop: () => { 80 | recognition.stop() 81 | } 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /src/boot/websocket-client.js: -------------------------------------------------------------------------------- 1 | // import axios from 'axios' 2 | // export default async ({ Vue }) => { 3 | // Vue.prototype.$axios = axios 4 | // } 5 | import Vue from 'vue' 6 | import VueSocketIO from 'vue-socket.io' 7 | Vue.use(new VueSocketIO({ 8 | debug: true, 9 | connection: 'https://quasar-socket-server.herokuapp.com' 10 | })) 11 | -------------------------------------------------------------------------------- /src/components/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/components/.gitkeep -------------------------------------------------------------------------------- /src/css/app.styl: -------------------------------------------------------------------------------- 1 | // app global css 2 | -------------------------------------------------------------------------------- /src/css/quasar.variables.styl: -------------------------------------------------------------------------------- 1 | // Quasar Stylus Variables 2 | // -------------------------------------------------- 3 | // To customize the look and feel of this app, you can override 4 | // the Stylus variables found in Quasar's source Stylus files. 5 | 6 | // Check documentation for full list of Quasar variables 7 | 8 | // It's highly recommended to change the default colors 9 | // to match your app's branding. 10 | // Tip: Use the "Theme Builder" on Quasar's documentation website. 11 | 12 | $primary = #027BE3 13 | $secondary = #26A69A 14 | $accent = #9C27B0 15 | 16 | $positive = #21BA45 17 | $negative = #C10015 18 | $info = #31CCEC 19 | $warning = #F2C037 20 | -------------------------------------------------------------------------------- /src/index.template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <%= htmlWebpackPlugin.options.productName %> 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /src/layouts/MyLayout.vue: -------------------------------------------------------------------------------- 1 | 63 | 64 | 79 | 80 | 82 | -------------------------------------------------------------------------------- /src/pages/Chat.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | 34 | 35 | 68 | -------------------------------------------------------------------------------- /src/pages/Error404.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 23 | -------------------------------------------------------------------------------- /src/pages/Index copy.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 35 | 36 | 73 | -------------------------------------------------------------------------------- /src/pages/Index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | import routes from './routes' 5 | 6 | Vue.use(VueRouter) 7 | 8 | /* 9 | * If not building with SSR mode, you can 10 | * directly export the Router instantiation 11 | */ 12 | 13 | export default function (/* { store, ssrContext } */) { 14 | const Router = new VueRouter({ 15 | scrollBehavior: () => ({ x: 0, y: 0 }), 16 | routes, 17 | 18 | // Leave these as is and change from quasar.conf.js instead! 19 | // quasar.conf.js -> build -> vueRouterMode 20 | // quasar.conf.js -> build -> publicPath 21 | mode: process.env.VUE_ROUTER_MODE, 22 | base: process.env.VUE_ROUTER_BASE 23 | }) 24 | 25 | return Router 26 | } 27 | -------------------------------------------------------------------------------- /src/router/routes.js: -------------------------------------------------------------------------------- 1 | 2 | const routes = [ 3 | { 4 | path: '/', 5 | component: () => import('layouts/MyLayout.vue'), 6 | children: [ 7 | { path: '', component: () => import('pages/Index.vue') }, 8 | { path: '/chat', component: () => import('pages/Chat.vue') } 9 | ] 10 | } 11 | ] 12 | 13 | // Always leave this as last one 14 | if (process.env.MODE !== 'ssr') { 15 | routes.push({ 16 | path: '*', 17 | component: () => import('pages/Error404.vue') 18 | }) 19 | } 20 | 21 | export default routes 22 | -------------------------------------------------------------------------------- /src/statics/app-logo-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/app-logo-128x128.png -------------------------------------------------------------------------------- /src/statics/icons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/icons/apple-icon-120x120.png -------------------------------------------------------------------------------- /src/statics/icons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/icons/apple-icon-152x152.png -------------------------------------------------------------------------------- /src/statics/icons/apple-icon-167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/icons/apple-icon-167x167.png -------------------------------------------------------------------------------- /src/statics/icons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/icons/apple-icon-180x180.png -------------------------------------------------------------------------------- /src/statics/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/icons/favicon-16x16.png -------------------------------------------------------------------------------- /src/statics/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/icons/favicon-32x32.png -------------------------------------------------------------------------------- /src/statics/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/icons/favicon-96x96.png -------------------------------------------------------------------------------- /src/statics/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/icons/favicon.ico -------------------------------------------------------------------------------- /src/statics/icons/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/icons/icon-128x128.png -------------------------------------------------------------------------------- /src/statics/icons/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/icons/icon-192x192.png -------------------------------------------------------------------------------- /src/statics/icons/icon-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/icons/icon-256x256.png -------------------------------------------------------------------------------- /src/statics/icons/icon-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/icons/icon-384x384.png -------------------------------------------------------------------------------- /src/statics/icons/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/icons/icon-512x512.png -------------------------------------------------------------------------------- /src/statics/icons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/icons/ms-icon-144x144.png -------------------------------------------------------------------------------- /src/statics/icons/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/statics/logo-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patrickmonteiro/quasar-socket-client/27b9f610d20600d9cd728772fa05e825cc9ef804/src/statics/logo-512x512.png --------------------------------------------------------------------------------