diff --git a/i18n-2.xlsm b/i18n-2.xlsm index 4845a5d..b994a42 100644 Binary files a/i18n-2.xlsm and b/i18n-2.xlsm differ diff --git a/package-lock.json b/package-lock.json index ab95073..287f00b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,11 +10,11 @@ "hasInstallScript": true, "dependencies": { "@quasar/cli": "^2.5.0", - "@quasar/extras": "^1.16.4", - "@quasar/vite-plugin": "^1.9.0", + "@quasar/extras": "^1.17.0", + "@quasar/vite-plugin": "^1.10.0", "axios": "^1.2.1", "pinia": "^2.0.11", - "quasar": "^2.18.1", + "quasar": "^2.18.2", "vue": "^3.4.18", "vue-i18n": "^9.2.2", "vue-router": "^4.0.12" @@ -22,7 +22,8 @@ "devDependencies": { "@eslint/js": "^9.14.0", "@intlify/unplugin-vue-i18n": "^2.0.0", - "@quasar/app-vite": "^2.0.0", + "@quasar/app-vite": "^2.3.0", + "@quasar/quasar-app-extension-qmarkdown": "^2.0.5", "@twa-dev/types": "^8.0.2", "@types/node": "^20.17.30", "@types/telegram-web-app": "^7.10.1", @@ -1134,15 +1135,15 @@ } }, "node_modules/@quasar/app-vite": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@quasar/app-vite/-/app-vite-2.1.4.tgz", - "integrity": "sha512-UBsF+HFirXB7tMs1GHcSqB4fb7TY+mbeEHjlwDx6NiHX+LawuzktQBAx9V36QqoMV95kNgZDJrwcbMcUNd0HsA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@quasar/app-vite/-/app-vite-2.3.0.tgz", + "integrity": "sha512-AHMRa5cdZ/TmV9mJ0jg/fbTMaMtFDfxvOjuPHL75AH6cZHECkXZ7ndTdVM0mU3i6lYwWf8Rx5OEi/PCwAMYJng==", "dev": true, "license": "MIT", "dependencies": { "@quasar/render-ssr-error": "^1.0.3", "@quasar/ssl-certificate": "^1.0.0", - "@quasar/vite-plugin": "^1.9.0", + "@quasar/vite-plugin": "^1.10.0", "@types/chrome": "^0.0.262", "@types/compression": "^1.7.5", "@types/cordova": "^11.0.3", @@ -1412,15 +1413,74 @@ } }, "node_modules/@quasar/extras": { - "version": "1.16.16", - "resolved": "https://registry.npmjs.org/@quasar/extras/-/extras-1.16.16.tgz", - "integrity": "sha512-aswGUbEyLvt45KB1u6hBD3s82KnOdkqTn6YVu3xX5aGgwQkCWPyqb3FMTEHG+4+gGTMp4pIcnng96RlqswQctQ==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@quasar/extras/-/extras-1.17.0.tgz", + "integrity": "sha512-KqAHdSJfIDauiR1nJ8rqHWT0diqD0QradZKoVIZJAilHAvgwyPIY7MbyR2z4RIMkUIMUSqBZcbshMpEw+9A30w==", "license": "MIT", "funding": { "type": "github", "url": "https://donate.quasar.dev" } }, + "node_modules/@quasar/quasar-app-extension-qmarkdown": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@quasar/quasar-app-extension-qmarkdown/-/quasar-app-extension-qmarkdown-2.0.5.tgz", + "integrity": "sha512-jiruPjE0tUuDxdMQc2day+PDFkQOEXKU04Ij2Q/u7KXH2hEPw4UbFO7BchyYfj1uOdh23HDFS/UskkaKE9HgEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@quasar/quasar-ui-qmarkdown": "^2.0.5", + "front-matter": "^4.0.2", + "markdown-it-abbr": "^1.0.4", + "markdown-it-deflist": "^2.1.0", + "markdown-it-emoji": "^2.0.0", + "markdown-it-footnote": "^3.0.3", + "markdown-it-ins": "^3.0.1", + "markdown-it-mark": "^3.0.1", + "markdown-it-sub": "^1.0.0", + "markdown-it-sup": "^1.0.0", + "markdown-it-task-lists": "^2.1.1", + "raw-loader": "^4.0.2", + "webpack-merge": "^5.8.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/hawkeye64" + } + }, + "node_modules/@quasar/quasar-app-extension-qmarkdown/node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@quasar/quasar-ui-qmarkdown": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@quasar/quasar-ui-qmarkdown/-/quasar-ui-qmarkdown-2.0.5.tgz", + "integrity": "sha512-8RpaH8fVLxr2a3rAo8k6J/sEf1W9lWHRYx1MluMk/HgmqMF0KPZSVh4NY9RR34uAG9LAEFVUavERJPMfDisZ2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "markdown-it": "^12.3.2", + "markdown-it-container": "^3.0.0", + "markdown-it-imsize": "^2.0.1", + "markdown-it-toc-and-anchor": "^4.2.0", + "prismjs": "^1.29.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/hawkeye64" + } + }, "node_modules/@quasar/render-ssr-error": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@quasar/render-ssr-error/-/render-ssr-error-1.0.3.tgz", @@ -1456,21 +1516,21 @@ } }, "node_modules/@quasar/vite-plugin": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@quasar/vite-plugin/-/vite-plugin-1.9.0.tgz", - "integrity": "sha512-r1MFtI2QZJ2g20pe75Zuv4aoi0uoK8oP0yEdzLWRoOLCbhtf2+StJpUza9TydYi3KcvCl9+4HUf3OAWVKoxDmQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@quasar/vite-plugin/-/vite-plugin-1.10.0.tgz", + "integrity": "sha512-4PJoTclz4ZjAfyqe0+hlkKcFJt0e2NX3Ac3hy8ILqUPdtZ24nCo5/xEHvTxZGBQMKRPwwePbO8CVs4n9EKJEug==", "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "type": "github", "url": "https://donate.quasar.dev" }, "peerDependencies": { - "@vitejs/plugin-vue": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", + "@vitejs/plugin-vue": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", "quasar": "^2.16.0", - "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", + "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", "vue": "^3.0.0" } }, @@ -1831,6 +1891,30 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -2395,6 +2479,198 @@ "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", "license": "MIT" }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, "node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", @@ -2431,9 +2707,9 @@ } }, "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "devOptional": true, "license": "MIT", "bin": { @@ -2443,6 +2719,20 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -2470,6 +2760,61 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, "node_modules/alien-signals": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-0.2.2.tgz", @@ -2878,6 +3223,16 @@ "node": ">=0.6" } }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -3339,9 +3694,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001695", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", - "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", + "version": "1.0.30001735", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001735.tgz", + "integrity": "sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==", "dev": true, "funding": [ { @@ -3408,6 +3763,17 @@ "fsevents": "~2.3.2" } }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, "node_modules/ci-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.1.0.tgz", @@ -4240,6 +4606,16 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "license": "MIT" }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", @@ -4249,6 +4625,21 @@ "node": ">= 0.8" } }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -4345,6 +4736,14 @@ "node": ">= 0.4" } }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", @@ -5188,6 +5587,24 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause", + "peer": true + }, "node_modules/fastq": { "version": "1.18.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", @@ -5427,6 +5844,40 @@ "node": ">= 0.6" } }, + "node_modules/front-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", + "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1" + } + }, + "node_modules/front-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/front-matter/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/fs-extra": { "version": "11.3.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", @@ -5606,6 +6057,14 @@ "node": ">= 6" } }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true + }, "node_modules/global-dirs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", @@ -6713,6 +7172,39 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -6739,6 +7231,14 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "license": "MIT" }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -6915,6 +7415,42 @@ "node": ">= 0.8.0" } }, + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -7000,6 +7536,131 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-abbr": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-it-abbr/-/markdown-it-abbr-1.0.4.tgz", + "integrity": "sha512-ZeA4Z4SaBbYysZap5iZcxKmlPL6bYA8grqhzJIHB1ikn7njnzaP8uwbtuXc4YXD5LicI4/2Xmc0VwmSiFV04gg==", + "dev": true, + "license": "MIT" + }, + "node_modules/markdown-it-container": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-container/-/markdown-it-container-3.0.0.tgz", + "integrity": "sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw==", + "dev": true, + "license": "MIT" + }, + "node_modules/markdown-it-deflist": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/markdown-it-deflist/-/markdown-it-deflist-2.1.0.tgz", + "integrity": "sha512-3OuqoRUlSxJiuQYu0cWTLHNhhq2xtoSFqsZK8plANg91+RJQU1ziQ6lA2LzmFAEes18uPBsHZpcX6We5l76Nzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/markdown-it-emoji": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz", + "integrity": "sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/markdown-it-footnote": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/markdown-it-footnote/-/markdown-it-footnote-3.0.3.tgz", + "integrity": "sha512-YZMSuCGVZAjzKMn+xqIco9d1cLGxbELHZ9do/TSYVzraooV8ypsppKNmUJ0fVH5ljkCInQAtFpm8Rb3eXSrt5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/markdown-it-imsize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/markdown-it-imsize/-/markdown-it-imsize-2.0.1.tgz", + "integrity": "sha512-5SH90ademqcR8ifQCBXRCfIR4HGfZZOh5pO0j2TglulfSQH+SBXM4Iw/QlTUbSoUwVZArCYgECoMvktDS2kP3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/markdown-it-ins": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/markdown-it-ins/-/markdown-it-ins-3.0.1.tgz", + "integrity": "sha512-32SSfZqSzqyAmmQ4SHvhxbFqSzPDqsZgMHDwxqPzp+v+t8RsmqsBZRG+RfRQskJko9PfKC2/oxyOs4Yg/CfiRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/markdown-it-mark": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/markdown-it-mark/-/markdown-it-mark-3.0.1.tgz", + "integrity": "sha512-HyxjAu6BRsdt6Xcv6TKVQnkz/E70TdGXEFHRYBGLncRE9lBFwDNLVtFojKxjJWgJ+5XxUwLaHXy+2sGBbDn+4A==", + "dev": true, + "license": "MIT" + }, + "node_modules/markdown-it-sub": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-sub/-/markdown-it-sub-1.0.0.tgz", + "integrity": "sha512-z2Rm/LzEE1wzwTSDrI+FlPEveAAbgdAdPhdWarq/ZGJrGW/uCQbKAnhoCsE4hAbc3SEym26+W2z/VQB0cQiA9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/markdown-it-sup": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-sup/-/markdown-it-sup-1.0.0.tgz", + "integrity": "sha512-E32m0nV9iyhRR7CrhnzL5msqic7rL1juWre6TQNxsnApg7Uf+F97JOKxUijg5YwXz86lZ0mqfOnutoryyNdntQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/markdown-it-task-lists": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz", + "integrity": "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==", + "dev": true, + "license": "ISC" + }, + "node_modules/markdown-it-toc-and-anchor": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/markdown-it-toc-and-anchor/-/markdown-it-toc-and-anchor-4.2.0.tgz", + "integrity": "sha512-DusSbKtg8CwZ92ztN7bOojDpP4h0+w7BVOPuA3PHDIaabMsERYpwsazLYSP/UlKedoQjOz21mwlai36TQ04EpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^2.1.0", + "uslug": "^1.0.4" + } + }, + "node_modules/markdown-it-toc-and-anchor/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -7009,6 +7670,13 @@ "node": ">= 0.4" } }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true, + "license": "MIT" + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -7252,6 +7920,14 @@ "node": ">= 0.6" } }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -7868,6 +8544,16 @@ "node": ">= 0.8.0" } }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -7957,9 +8643,9 @@ } }, "node_modules/quasar": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/quasar/-/quasar-2.18.1.tgz", - "integrity": "sha512-db/P64Mzpt1uXJ0MapaG+IYJQ9hHDb5KtTCoszwC78DR7sA+Uoj7nBW2EytwYykIExEmqavOvKrdasTvqhkgEg==", + "version": "2.18.2", + "resolved": "https://registry.npmjs.org/quasar/-/quasar-2.18.2.tgz", + "integrity": "sha512-SeSAamH4vgYH9alLTdVL2o1fTTwz7VZnS2+gvIwt6qsH3ndrn/tQW64sWE78VSvrHlWINYbXESVF/cvWEuTYxg==", "license": "MIT", "engines": { "node": ">= 10.18.1", @@ -8045,6 +8731,27 @@ "node": ">= 0.8" } }, + "node_modules/raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -8257,6 +8964,17 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -9058,6 +9776,25 @@ "dev": true, "license": "ISC" }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/selfsigned": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", @@ -9375,6 +10112,13 @@ "source-map": "^0.6.0" } }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/stack-trace": { "version": "1.0.0-pre2", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-1.0.0-pre2.tgz", @@ -9618,6 +10362,17 @@ "node": ">=16.0.0" } }, + "node_modules/tapable": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/tar-stream": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", @@ -9649,6 +10404,103 @@ "node": ">=10" } }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -9957,6 +10809,13 @@ "typescript": ">=4.8.4 <5.8.0" } }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true, + "license": "MIT" + }, "node_modules/ufo": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", @@ -10013,6 +10872,16 @@ "node": ">= 10.0.0" } }, + "node_modules/unorm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", + "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==", + "dev": true, + "license": "MIT or GPL-2.0", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -10126,6 +10995,18 @@ "punycode": "^2.1.0" } }, + "node_modules/uslug": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/uslug/-/uslug-1.0.4.tgz", + "integrity": "sha512-Jrbpp/NS3TvIGNjfJT1sn3/BCeykoxR8GbNYW5lF6fUscLkbXFwj1b7m4DvIkHm8k3Qr6Co68lbTmoZTMGk/ow==", + "dev": true, + "dependencies": { + "unorm": ">= 1.0.0" + }, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -10560,6 +11441,21 @@ "typescript": ">=5.0.0" } }, + "node_modules/watchpack": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -10570,6 +11466,56 @@ "defaults": "^1.0.3" } }, + "node_modules/webpack": { + "version": "5.101.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.0.tgz", + "integrity": "sha512-B4t+nJqytPeuZlHuIKTbalhljIFXeNRqrUGAQgTGlfOl2lXXKXw+yZu6bicycP+PUlM44CxBjCFD6aciKFT3LQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.2", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", + "webpack-sources": "^3.3.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, "node_modules/webpack-merge": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", @@ -10585,6 +11531,17 @@ "node": ">=18.0.0" } }, + "node_modules/webpack-sources": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/webpack-virtual-modules": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", @@ -10592,6 +11549,101 @@ "dev": true, "license": "MIT" }, + "node_modules/webpack/node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/webpack/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index f1ef496..b9ff6b1 100644 --- a/package.json +++ b/package.json @@ -15,11 +15,11 @@ }, "dependencies": { "@quasar/cli": "^2.5.0", - "@quasar/extras": "^1.16.4", - "@quasar/vite-plugin": "^1.9.0", + "@quasar/extras": "^1.17.0", + "@quasar/vite-plugin": "^1.10.0", "axios": "^1.2.1", "pinia": "^2.0.11", - "quasar": "^2.18.1", + "quasar": "^2.18.2", "vue": "^3.4.18", "vue-i18n": "^9.2.2", "vue-router": "^4.0.12" @@ -27,7 +27,8 @@ "devDependencies": { "@eslint/js": "^9.14.0", "@intlify/unplugin-vue-i18n": "^2.0.0", - "@quasar/app-vite": "^2.0.0", + "@quasar/app-vite": "^2.3.0", + "@quasar/quasar-app-extension-qmarkdown": "^2.0.5", "@twa-dev/types": "^8.0.2", "@types/node": "^20.17.30", "@types/telegram-web-app": "^7.10.1", diff --git a/quasar.extensions.json b/quasar.extensions.json index 9e26dfe..3c9d325 100644 --- a/quasar.extensions.json +++ b/quasar.extensions.json @@ -1 +1,5 @@ -{} \ No newline at end of file +{ + "@quasar/qmarkdown": { + "import_md": true + } +} \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index 9ce3f54..9d502b5 100644 --- a/src/App.vue +++ b/src/App.vue @@ -3,8 +3,18 @@ diff --git a/src/components/accountHelper.vue b/src/components/accountHelper.vue index be9f1b4..13596ba 100644 --- a/src/components/accountHelper.vue +++ b/src/components/accountHelper.vue @@ -10,7 +10,7 @@ @@ -38,7 +40,7 @@
{{$t('account_helper__confirm_email_message')}}
@@ -101,11 +105,13 @@ @click="handleSubmit" color="primary" :label="$t('account_helper__finish')" - :disabled = "!isPasswordValid" + :disabled="!isPasswordValid" + :unelevated="!isPasswordValid" + class="fix-disabled-btn" /> -
-
- {{ fileText }} -
-
- {{ $t(type + '__not_ready') }} -
-
+
-
- -
diff --git a/src/components/pnPageCard.vue b/src/components/pnPageCard.vue index 7f4b394..1a6a822 100644 --- a/src/components/pnPageCard.vue +++ b/src/components/pnPageCard.vue @@ -6,7 +6,7 @@ -
+
diff --git a/src/composables/useUserSection.ts b/src/composables/useUserSection.ts index 2bb7191..b525b3c 100644 --- a/src/composables/useUserSection.ts +++ b/src/composables/useUserSection.ts @@ -19,10 +19,10 @@ export function useUserSection() { const section3 = ( user.company_id && companiesStore.companyById(user.company_id) - ? companiesStore.companyById(user.company_id)?.name + ((user.role || user.department) ? ' / ' : '') + ? companiesStore.companyById(user.company_id)?.name + ((user.role || user.department) ? ' - ' : '') : '' ) + - (user.department ? user.department + (user.role ? ' / ' : '') : '') + + (user.department ? user.department + (user.role ? ' - ' : '') : '') + (user.role ?? '') return { diff --git a/src/css/quasar.variables.scss b/src/css/quasar.variables.scss index d7f7c94..deab353 100644 --- a/src/css/quasar.variables.scss +++ b/src/css/quasar.variables.scss @@ -1,4 +1,4 @@ -$primary : #27A7E7; +$primary : #3390ec; $secondary : #26A69A; $accent : #9C27B0; @@ -12,7 +12,7 @@ $warning : #F2C037; $lightgrey : #DCDCDC; -$brand: #27A7E7; +$brand: #3390ec; $brand2: #F36D3A; $body-font-size: var(--dynamic-font-size); diff --git a/src/i18n/en-US/index.ts b/src/i18n/en-US/index.ts index ddfda2b..6701ecb 100644 --- a/src/i18n/en-US/index.ts +++ b/src/i18n/en-US/index.ts @@ -1 +1 @@ -export default { EN: 'EN', RU: 'RU', continue: 'Continue', back: 'Back', close: 'Close', cancel: 'Cancel', code: 'Code', month: 'month', months: 'months', slogan: 'Work together - it\'s magic!', under_construction: 'Under construction.', login__email: 'E-mail', login__password: 'Password', login__forgot_password: 'Forgot Password?', login__sign_in: 'Log in', login__incorrect_login_data: 'User data not found. Edit your auth details before continuing', login__or_continue_as: 'or continue as', login__terms_of_use: 'Terms of use', login__accept_terms_of_use: 'I accept the', login__register: 'Create account', login__register_title: 'Register', login__registration_message_error: 'Error', login__licensing_agreement: 'Licensing agreement', login__have_account: 'Already have an accont?', login__incorrect_email: 'Please enter a valid email address', login__password_require: 'At least 8 characters', user__logout: 'Logout', projects__projects: 'Projects', projects__search: 'Search', projects__show_archive: 'Show archive', projects__hide_archive: 'Hide archive', projects__dialog_archive_title: 'Archive project?', projects__dialog_archive_message: 'Chat tracking will stop.', projects__dialog_archive_message2: 'Chat data during archiving will be lost!', projects__dialog_archive_ok: 'Archive', projects__dialog_restore_title: 'Restore project?', projects__dialog_restore_message: 'Chat tracking will resume.', projects__dialog_restore_message2: 'Archive period data won\'t be recovered!', projects__dialog_restore_ok: 'Restore', projects__lets_start: 'Create a Project', projects__lets_start_description: 'Projects isolate data: contacts, tasks, documents, and chats are visible only to members', project__chats: 'Chats', project__users: 'Team', project__companies: 'Companies', project_create__title_card: 'New project', project_create__btn: 'Create', project_edit__title_card: 'Edit project', project_edit__btn: 'Apply', project_block__project_name: 'Name', project_block__project_description: 'Description', project_block__image_use_as_background_chats: 'logo as background for chats', project_block__error_name: 'Field is required', chats__search: 'Search', chats__send_chat: 'Request for attach chat', chats__send_chat_description: 'Provide instructions to the chat admin', chats__attach_chat: 'Attach chat', chats__attach_chat_description: 'Requires chat administrator privileges', chats_disabled_FAB: 'To add chats, please use the Telegram app', chats__send_chat_title: 'To connect the chat to ProjectsNode, add the bot to it using the provided link:', chats__dialog_unlink_title: 'Unlink chat?', chats__dialog_unlink_message: 'Chat tracking will be discontinued.', chats__dialog_unlink_message2: 'If necessary, the cat can be attached again.', chats__dialog_unlink_ok: 'Unlink', chats__onboard_msg1: 'Attach chats to the project', chats__onboard_msg2: 'Chat control is enabled from the moment of attachment', chat_card__title: 'Chat card', chat_card__go_chat: 'Go to chat', chat_card__members: 'Members', chat_page__user_blocked: 'Blocked', users__search: 'Search', users__show_blocked_users: 'Show Blocked', users__hide_blocked_users: 'Hide Blocked', users__show_left_users: 'Show Leavers (inactive)', users__hide_left_users: 'Hide Leavers (inactive)', users__dialog_block_title: 'Block Employee?', users__dialog_block_message: 'System access will be disabled.', users__dialog_block_message2: 'The employee will be removed from all chats (except those where they are the owner).', users__dialog_block_ok: 'Block', users__dialog_restore_title: 'Restore Employee?', users__dialog_restore_message: 'System access will be restored.', users__dialog_restore_message2: 'Add them to chats manually if required.', users__dialog_restore_ok: 'Restore', users__onboard_msg1: 'Project Contact List', users__onboard_msg2: 'After attaching chats, members are imported automatically. You’ll need to define who is who', user_edit__title_card: 'Edit employee', user_edit__btn: 'Apply', user_block__name: 'Name', user_block__company: 'Company', user_block__department: 'Department', user_block__role: 'Role', user_block__no_company: 'Not specified', user_block__user_blocked: 'BLOCKED', user_block__user_leave: 'Inactive', companies__dialog_delete_title: 'Delete company?', companies__dialog_delete_message: 'This action cannot be undone!', companies__dialog_delete_message2: 'Company employees will be moved to \'No Company\'', companies__dialog_delete_ok: 'Delete', companies__mask: 'Cloacking', companies__my_company: 'My company', companies__onboard_msg1: 'Add Companies', companies__onboard_msg2: 'Recommended for projects involving 3+ companies', company_add__title_card: 'Add company', company_add__btn: 'Add', company_edit__title_card: 'Edit company', company_edit__btn: 'Apply', company_edit__my_company: 'My company', company_edit__my_company_hint: 'Form pre-filling is configured in \n Account > Your company data', company_block__name: 'Name', company_block__error_name: 'Field is required', company_block__description: 'Description', company_block__users: 'Employees', mask__title_table: 'Excluded', mask__help_title: 'Cloaking ', mask__help_message1: 'Cloaking conceals a company by making its personnel appear as if they belong to other companies, except those listed as "Visible"', mask__help_message2: 'Use the Toggle to enable or disable cloaking. Configure exceptions using the "+" button.', mask__help_message3: 'Your company\'s employees will see all companies, regardless of the cloaking settings.', mask__table_header_company: 'Company', mask__table_header_visible: 'Visible', mask__table_visible_none: 'None', mask__table_visible_all: 'All', account_helper__enter_email: 'Enter account e-mail', account_helper__email: 'E-mail', account_helper__confirm_email: 'Confirm e-mail', account_helper__confirm_email_message: 'Enter the Code from e-mail to continue. If you haven\'t received an e-mail with the Code, check the Spam folder.', account_helper__code: 'Code', account_helper__code_error: 'Incorrect code. Ensure your e-mail is correct and try again.', account_helper__set_password: 'Set password', account_helper__password: 'Password', account_helper__finish: 'Finish', account_helper__register_message1: 'Welcome!', account_helper__forgot_password_message1: 'Password set!', account_helper__change_password_message1: 'Password changed!', account_helper__change_method_message1: 'Login method changed!', account_helper__go_projects: 'Go to projects…', account_change_email__title: 'Change account e-mail', account_change_email__current_email: 'Current account e-mail', account_change_email__email: 'E-mail', account_change_email__confirm_current_email: 'Confirm current e-mail', account_change_email__confirm_email_message: 'Enter the Code from e-mail to continue. If you haven\'t received an e-mail with the Code, check the Spam folder.', account_change_email__code: 'Code', account_change_email__code_error: 'Incorrect code. Ensure your e-mail is correct and try again.', account_change_email__new_email: 'New account e-mail', account_change_email__confirm_new_email: 'Confirm new e-mail', account_change_email__set_password: 'Set password', account_change_email__password: 'Password', account_change_email__finish: 'Finish', account_change_email__finish_after_message: 'Done!', account_change_email__ok_message1: 'The email address has been successfully updated!', account_change_email__ok_message2: 'Go to account…', account__user_settings: 'User settings', account__your_company: 'Your company', account__change_auth_message_2: 'After creating a user, all data from the Telegram account will be transferred to the new account.', account__change_auth_btn: 'Create system account', account__change_auth_warning: 'WARNING!', account__change_auth_warning_message: 'Reverse data transfer is not possible.', account__chats: 'Chats', account__chats_active: 'Active', account__chats_unbound: 'Unbound', account__chats_free: 'Free', account__chats_total: 'Total', account__subscribe: 'Subscribe', account__subscribe_description: 'With a subscription, you can attach more active chats.', account__auth_change_method: 'Change authorization method', account__auth_change_method_description: 'In case of corporate use, it is recommended to log in with a username and password.', account__auth_change_password: 'Change account password', account__auth_change_password_description: 'Access to the email address used for system login is required.', account__auth_change_account: 'Change account e-mail', account__auth_change_account_description: 'Access to both the current and new email addresses used for system authentication is required.', account__company_data: 'Your company data', account__company_data_description: 'The description will be automatically added to your company list for new projects.', account__manual: 'Manual', account__manual_description: 'Go to our Telegram channel with video tutorials.', account__settings: 'Settings', account__settings_description: 'Fonts size, language and etc.', account__support: 'Support', account__support_description: 'Need help? Contact us!', account__3rd_party_software: '3rd party software', account__3rd_party_software_description: 'List of third-party software packages included in the software', account__terms_of_use: 'Terms of use', account__privacy: 'Privacy and Cookie Policy', account__change_password: 'Change password', account__change_auth_method: 'Change authorization method', account_company__title_card: 'My company', account_company__btn: 'Apply', forgot_password__password_recovery: 'Password recovery', settings__title: 'Settings', settings__software_title: 'Application', settings__bot_title: 'Messages in chats (bot)', settings__language: 'Language', settings__font_size: 'Font size', settings__fontsize_small: 'Small', settings__fontsize_medium: 'Medium (default)', settings__fontsize_large: 'Large', settings__timezone: 'Time zone', settings__timezone_search: 'Search', terms_of_use__title: 'Terms of use', terms_of_use__not_ready: 'Document not ready', privacy__title: 'Privacy and Cookie Policy', privacy_of_use__not_ready: 'Document not ready', subscribe__title: 'Subscribe', subscribe__current_balance: 'Current balance', subscribe__token_formula: '1 = 1 day of access to 1 chat', subscribe__token_formula_description: 'unbound and free chats are not counted', subscribe__info: 'With a subscription, you can attach more chats. Archived chats are not counted.', subscribe__about: 'about', subscribe__select_payment_1: 'You can pay for your subscription using ', subscribe__select_payment_2: 'Telegram stars', subscribe__select_option_1: 'Telegram stars', subscribe__select_option_2: 'Telegram stars', subscribe__select_option_3: 'Telegram stars', subscribe__select_option_user: 'Telegram stars', support__title: 'Support', support__ask_question: 'Ask Question', support__work_time_text: 'Support is available on weekdays', support__work_time_time: '10:00 - 19:00 (Moscow, GMT+3)', support__or: 'or contact us via email', AUTH_ERROR: 'Incorrect e-mail or password!', software__title: '3rd party software', software__description: 'This software contains third-party software packages.', error404: 'Oops. Nothing here…' } \ No newline at end of file +export default { EN: 'EN', RU: 'RU', continue: 'Continue', back: 'Back', close: 'Close', cancel: 'Cancel', code: 'Code', month: 'month', months: 'months', slogan: 'Work together - it\'s magic!', under_construction: 'Under construction.', login__email: 'E-mail', login__password: 'Password', login__forgot_password: 'Forgot Password?', login__sign_in: 'Log in', login__incorrect_login_data: 'User data not found. Edit your auth details before continuing', login__or_continue_as: 'or continue as', login__terms_of_use: 'Terms of use', login__accept_terms_of_use: 'I accept the', login__register: 'Create account', login__register_title: 'Register', login__registration_message_error: 'Error', login__licensing_agreement: 'Licensing agreement', login__have_account: 'Already have an accont?', login__incorrect_email: 'Please enter a valid email address', login__password_require: 'At least 8 characters', user__logout: 'Logout', projects__projects: 'Projects', projects__search: 'Search', projects__show_archive: 'Show archive', projects__hide_archive: 'Hide archive', projects__dialog_archive_title: 'Archive project?', projects__dialog_archive_message: 'Chat tracking will stop.', projects__dialog_archive_message2: 'Chat data during archiving will be lost!', projects__dialog_archive_ok: 'Archive', projects__dialog_restore_title: 'Restore project?', projects__dialog_restore_message: 'Chat tracking will resume.', projects__dialog_restore_message2: 'Archive period data won\'t be recovered!', projects__dialog_restore_ok: 'Restore', projects__lets_start: 'Create a Project', projects__lets_start_description: 'Projects isolate data: contacts, tasks, documents, and chats are visible only to members', header__to_projects: 'Projects', project__chats: 'Chats', project__users: 'Team', project__companies: 'Companies', project_create__title_card: 'New project', project_create__btn: 'Create', project_edit__title_card: 'Edit project', project_edit__btn: 'Apply', project_block__project_name: 'Name', project_block__project_description: 'Description', project_block__image_use_as_background_chats: 'logo as background for chats', project_block__error_name: 'Field is required', chats__search: 'Search', chats__send_chat: 'Request for attach chat', chats__send_chat_description: 'Provide instructions to the chat admin', chats__attach_chat: 'Attach chat', chats__attach_chat_description: 'Requires chat administrator privileges', chats_disabled_FAB: 'To add chats, please use the Telegram app', chats__send_chat_title: 'To connect the chat to ProjectsNode, add the bot to it using the provided link:', chats__dialog_unlink_title: 'Unlink chat?', chats__dialog_unlink_message: 'Chat tracking will be discontinued.', chats__dialog_unlink_message2: 'If necessary, the cat can be attached again.', chats__dialog_unlink_ok: 'Unlink', chats__onboard_msg1: 'Attach chats to the project', chats__onboard_msg2: 'Chat control is enabled from the moment of attachment', chat_card__title: 'Chat card', chat_card__go_chat: 'Go to chat', chat_card__members: 'Members', chat_page__user_blocked: 'Blocked', users__search: 'Search', users__show_blocked_users: 'Show Blocked', users__hide_blocked_users: 'Hide Blocked', users__show_left_users: 'Show Leavers (inactive)', users__hide_left_users: 'Hide Leavers (inactive)', users__dialog_block_title: 'Block Employee?', users__dialog_block_message: 'System access will be disabled.', users__dialog_block_message2: 'The employee will be removed from all chats (except those where they are the owner).', users__dialog_block_ok: 'Block', users__dialog_restore_title: 'Restore Employee?', users__dialog_restore_message: 'System access will be restored.', users__dialog_restore_message2: 'Add them to chats manually if required.', users__dialog_restore_ok: 'Restore', users__onboard_msg1: 'Project Contact List', users__onboard_msg2: 'After attaching chats, members are imported automatically. You’ll need to define who is who', user_edit__title_card: 'Edit employee', user_edit__btn: 'Apply', user_block__name: 'Name', user_block__company: 'Company', user_block__department: 'Department', user_block__role: 'Role', user_block__no_company: 'Not specified', user_block__user_blocked: 'BLOCKED', user_block__user_leave: 'Inactive', companies__dialog_delete_title: 'Delete company?', companies__dialog_delete_message: 'This action cannot be undone!', companies__dialog_delete_message2: 'Company employees will be moved to \'No Company\'', companies__dialog_delete_ok: 'Delete', companies__mask: 'Cloacking', companies__my_company: 'My company', companies__onboard_msg1: 'Add Companies', companies__onboard_msg2: 'Recommended for projects involving 3+ companies', company_add__title_card: 'Add company', company_add__btn: 'Add', company_edit__title_card: 'Edit company', company_edit__btn: 'Apply', company_edit__my_company: 'My company', company_edit__my_company_hint: 'Form pre-filling is configured in Settings:', company_edit__my_company_href: 'Your company data', company_block__name: 'Name', company_block__error_name: 'Field is required', company_block__description: 'Description', company_block__users: 'Employees', mask__title: 'Companies cloaking ', mask__help_title: 'Cloaking ', mask__help_message1: 'Cloaking conceals a company by making its personnel appear as if they belong to other companies, except those listed as "Visible"', mask__help_message2: 'Use the Toggle to enable or disable cloaking. Configure exceptions using the "+" button.', mask__info_block: 'Your company\'s employees will see all companies, regardless of the cloaking settings.', mask__table_header_company: 'Company', mask__table_header_visible: 'Visible', mask__table_visible_none: 'None', mask__table_visible_all: 'All', mask__btn_ok: 'Apply', account_helper__enter_email: 'Enter account e-mail', account_helper__email: 'E-mail', account_helper__confirm_email: 'Confirm e-mail', account_helper__confirm_email_message: 'Enter the Code from e-mail to continue. If you haven\'t received an e-mail with the Code, check the Spam folder.', account_helper__code: 'Code', account_helper__code_error: 'Incorrect code. Ensure your e-mail is correct and try again.', account_helper__set_password: 'Set password', account_helper__password: 'Password', account_helper__finish: 'Finish', account_helper__register_message1: 'Welcome!', account_helper__forgot_password_message1: 'Password set!', account_helper__change_password_message1: 'Password changed!', account_helper__change_method_message1: 'Login method changed!', account_helper__go_projects: 'Go to projects…', account_change_email__title: 'Change account e-mail', account_change_email__current_email: 'Current account e-mail', account_change_email__email: 'E-mail', account_change_email__confirm_current_email: 'Confirm current e-mail', account_change_email__confirm_email_message: 'Enter the Code from e-mail to continue. If you haven\'t received an e-mail with the Code, check the Spam folder.', account_change_email__code: 'Code', account_change_email__code_error: 'Incorrect code. Ensure your e-mail is correct and try again.', account_change_email__new_email: 'New account e-mail', account_change_email__confirm_new_email: 'Confirm new e-mail', account_change_email__set_password: 'Set password', account_change_email__password: 'Password', account_change_email__finish: 'Finish', account_change_email__finish_after_message: 'Done!', account_change_email__ok_message1: 'The email address has been successfully updated!', account_change_email__ok_message2: 'Go to account…', account__user_settings: 'User settings', account__your_company: 'Your company', account__change_auth_message_2: 'After creating a user, all data from the Telegram account will be transferred to the new account.', account__change_auth_btn: 'Create system account', account__change_auth_warning: 'WARNING!', account__change_auth_warning_message: 'Reverse data transfer is not possible.', account__chats: 'Chats', account__chats_active: 'Active', account__chats_unbound: 'Unbound', account__chats_free: 'Free', account__chats_total: 'Total', account__subscribe: 'Subscribe', account__subscribe_description: 'With a subscription, you can attach more active chats.', account__auth_change_method: 'Change authorization method', account__auth_change_method_description: 'In case of corporate use, it is recommended to log in with a username and password.', account__auth_change_password: 'Change account password', account__auth_change_password_description: 'Access to the email address used for system login is required.', account__auth_change_account: 'Change account e-mail', account__auth_change_account_description: 'Access to both the current and new email addresses used for system authentication is required.', account__company_data: 'Your company data', account__company_data_description: 'The description will be automatically added to your company list for new projects.', account__manual: 'Manual', account__manual_description: 'Go to our Telegram channel with video tutorials.', account__settings: 'App parametrs', account__settings_description: 'Fonts size, language and etc.', account__support: 'Support', account__support_description: 'Need help? Contact us!', account__3rd_party_software: '3rd party software', account__3rd_party_software_description: 'List of third-party software packages included in the software', account__terms_of_use: 'Terms of use', account__privacy: 'Privacy Policy', account__stop_using: 'Opt-Out from Application Usage', account__stop_using_description: 'Includes Withdrawal of Consent for Personal Data Processing', account__stop_using_dialog_title: 'Refuse to Use the Application?', account__stop_using_dialog_message1: 'The action is irreversible - your data will become inaccessible!', account__stop_using_dialog_message2: 'This action also entails the withdrawal of Consent for Personal Data Processing.', account__stop_using_dialog_btn_ok: 'Confirm', account__change_password: 'Change password', account__change_auth_method: 'Change authorization method', account_company__title_card: 'My company', account_company__btn: 'Apply', forgot_password__password_recovery: 'Password recovery', settings__title: 'App parametrs', settings__software_title: 'Application', settings__bot_title: 'Messages in chats (bot)', settings__language: 'Language', settings__font_size: 'Font size', settings__fontsize_small: 'Small', settings__fontsize_medium: 'Medium (default)', settings__fontsize_large: 'Large', settings__timezone: 'Time zone', settings__timezone_search: 'Search', terms_of_use__title: 'Terms of use', terms_of_use__not_ready: 'Document not ready', privacy__title: 'Privacy Policy', consent__title: 'Consent to Personal Data Processing', privacy_of_use__not_ready: 'Document not ready', subscribe__title: 'Subscribe', subscribe__current_balance: 'Current balance', subscribe__token_formula: '1 = 1 day of access to 1 chat', subscribe__token_formula_description: 'unbound and free chats are not counted', subscribe__info: 'With a subscription, you can attach more chats. Archived chats are not counted.', subscribe__about: 'about', subscribe__select_payment_1: 'You can pay for your subscription using ', subscribe__select_payment_2: 'Telegram stars', subscribe__select_option_1: 'Telegram stars', subscribe__select_option_2: 'Telegram stars', subscribe__select_option_3: 'Telegram stars', subscribe__select_option_user: 'Telegram stars', support__title: 'Support', support__ask_question: 'Ask Question', support__work_time_text: 'Support is available on weekdays', support__work_time_time: '10:00 - 19:00 (Moscow, GMT+3)', support__or: 'or contact us via email', AUTH_ERROR: 'Incorrect e-mail or password!', software__title: '3rd party software', software__description: 'This software contains third-party software packages.', error404: 'Oops. Nothing here…', agreements__title: 'Agreements', agreements__description: 'To use the application, you must agree to the terms:', agreements__checkbox_agreement_terms: 'I accept the', agreements__checkbox_agreement_terms_doc: 'Terms of Use', agreements__checkbox_agreement_consent: 'I', agreements__checkbox_agreement_consent_doc: 'consent to the processing of my personal data', agreements__checkbox_agreement_privacy: 'and accept the', agreements__checkbox_agreement_privacy_doc: 'Privacy Policy', agreements__btn_agree: 'Agree and continue', agreements__btn_decline: 'Decline', agreements__btn_decline_description: '(close app)' } \ No newline at end of file diff --git a/src/i18n/ru-RU/index.ts b/src/i18n/ru-RU/index.ts index 897f884..4c1f61b 100644 --- a/src/i18n/ru-RU/index.ts +++ b/src/i18n/ru-RU/index.ts @@ -1 +1 @@ -export default { EN: 'EN', RU: 'RU', continue: 'Продолжить', back: 'Назад', close: 'Закрыть', cancel: 'Отмена', code: 'Код', month: 'мес.', months: 'мес.', slogan: 'Работайте вместе - это волшебство!', under_construction: 'В разработке.', login__email: 'Электронная почта', login__password: 'Пароль', login__forgot_password: 'Забыли пароль?', login__sign_in: 'Войти', login__incorrect_login_data: 'Пользователь с такими данными не найден. Отредактируйте введенные данные', login__or_continue_as: 'или продолжить', login__terms_of_use: 'Пользовательское соглашение', login__accept_terms_of_use: 'Я принимаю', login__register: 'Зарегистрироваться', login__register_title: 'Регистрация', login__registration_message_error: 'Ошибка', login__licensing_agreement: 'Договор о лицензировании', login__have_account: 'Есть учетная запись', login__incorrect_email: 'Адрес почты некорректный', login__password_require: 'Мин. 8 символов', user__logout: 'Выход', projects__projects: 'Проекты', projects__search: 'Поиск', projects__show_archive: 'Показать архив', projects__hide_archive: 'Скрыть архив', projects__dialog_archive_title: 'Отправить проект в архив?', projects__dialog_archive_message: 'Отслеживание чатов будет остановлено.', projects__dialog_archive_message2: 'Данные из чатов за период архивации будут утеряны!', projects__dialog_archive_ok: 'В архив', projects__dialog_restore_title: 'Восстановить проект из архива?', projects__dialog_restore_message: 'Отслеживание чатов будет восстановлено.', projects__dialog_restore_message2: 'При восстановлении данные из чатов за период архивации не будут добавлены!', projects__dialog_restore_ok: 'Восстановить', projects__lets_start: 'Создайте проект', projects__lets_start_description: 'Проекты помогают изолировать данные: контакты, задачи, документы и чаты доступны только участникам', project__chats: 'Чаты', project__users: 'Команда', project__companies: 'Компании', project_create__title_card: 'Новый проект', project_create__btn: 'Создать', project_edit__title_card: 'Редактировать проект', project_edit__btn: 'Сохранить', project_block__project_name: 'Название', project_block__project_description: 'Описание', project_block__image_use_as_background_chats: 'логотип в качестве фона для чатов', project_block__error_name: 'Поле обязательно к заполнению', chats__search: 'Поиск', chats__send_chat: 'Запрос на добавление чата', chats__send_chat_description: 'Отправить инструкцию администратору чата', chats__attach_chat: 'Добавить чат', chats__attach_chat_description: 'Необходимы права администратора чата', chats_disabled_FAB: 'Добавление чатов возможно только в приложении Telegram', chats__send_chat_title: 'Для присоединения чата к ProjectsNode необходимо добавить в него бота с помощью ссылки:', chats__dialog_unlink_title: 'Открепить чат?', chats__dialog_unlink_message: 'Отслеживание чата будет прекращено.', chats__dialog_unlink_message2: 'При необходимости чат можно будет подключить снова.', chats__dialog_unlink_ok: 'Открепить', chats__onboard_msg1: 'Прикрепите чаты к проекту', chats__onboard_msg2: 'Контроль чатов осуществляется только с момента прикрепления', chat_card__title: 'Карточка чата', chat_card__go_chat: 'Перейти к чату', chat_card__members: 'Участники', chat_page__user_blocked: 'Заблокирован', users__search: 'Поиск', users__show_blocked_users: 'Показать заблокированных', users__hide_blocked_users: 'Скрыть заблокированных', users__show_left_users: 'Показать неактивных', users__hide_left_users: 'Скрыть неактивных', users__dialog_block_title: 'Заблокировать сотрудника?', users__dialog_block_message: 'Доступ к системе будет отключен.', users__dialog_block_message2: 'Сотрудник будет исключен из всех чатов (кроме тех, где он является владельцем).', users__dialog_block_ok: 'Заблокировать', users__dialog_restore_title: 'Восстановить сотрудника?', users__dialog_restore_message: 'Доступ к системе будет восстановлен.', users__dialog_restore_message2: 'При необходимости нужно добавить сотрудника в чаты вручную.', users__dialog_restore_ok: 'Восстановить', users__onboard_msg1: 'Адресная книга проекта', users__onboard_msg2: 'После прикрепления чатов их участники добавляются автоматически. Остается указать - кто есть кто. ', user_edit__title_card: 'Редактирование данных сотрудника', user_edit__btn: 'Сохранить', user_block__name: 'ФИО', user_block__company: 'Компания', user_block__department: 'Подразделение', user_block__role: 'Функционал (должность)', user_block__no_company: 'Не указано', user_block__user_blocked: 'ЗАБЛОКИРОВАН', user_block__user_leave: 'Неактивный', companies__dialog_delete_title: 'Удалить компанию?', companies__dialog_delete_message: 'Это действие нельзя отменить!', companies__dialog_delete_message2: 'Сотрудники компании будут помечены "Без компании".', companies__dialog_delete_ok: 'Удалить', companies__mask: 'Маскировка', companies__my_company: 'Моя компания', companies__onboard_msg1: 'Добавьте компании', companies__onboard_msg2: 'Рекомендуется если в проекте участвует 3 и более компаний.', company_add__title_card: 'Добавить компанию', company_add__btn: 'Создать', company_edit__title_card: 'Редактировать компанию', company_edit__btn: 'Сохранить', company_edit__my_company: 'Моя компания', company_edit__my_company_hint: 'Заполнение формы преднастраивается в разделе \n Аккаунт > Данные вашей компании', company_block__name: 'Название', company_block__error_name: 'Поле обязательно к заполнению', company_block__description: 'Описание', company_block__users: 'Сотрудники', mask__title_table: 'Исключения', mask__help_title: 'Маскировка', mask__help_message1: 'Маскировка позволяет скрывать компанию, представляя ее персонал как собственный для других компаний, кроме тех, что есть в перечне исключений "Видно". ', mask__help_message2: 'Для включения и отключения маскировки используйте Переключатель. Настройка исключений осуществляется с помощью "+".', mask__help_message3: 'Сотрудники вашей компании будут видеть все компании, независимо от настроек маскировки.', mask__table_header_company: 'Компания', mask__table_header_visible: 'Видно', mask__table_visible_none: 'Никому', mask__table_visible_all: 'Всем', account_helper__enter_email: 'Введите электронную почту', account_helper__email: 'Электронная почта', account_helper__confirm_email: 'Подтверждение электронной почты', account_helper__confirm_email_message: 'Введите код из письма для продолжения . Если не получили письмо с кодом - проверьте папку Спам', account_helper__code: 'Код', account_helper__code_error: 'Был введен неверный код. Проверьте адрес электронной почты и повторите попытку.', account_helper__set_password: 'Установка пароля', account_helper__password: 'Пароль', account_helper__finish: 'Отправить', account_helper__register_message1: 'Добро пожаловать!', account_helper__forgot_password_message1: 'Пароль установлен!', account_helper__change_password_message1: 'Пароль изменен!', account_helper__change_method_message1: 'Способ входа в систему изменен!', account_helper__go_projects: 'Переходим к проектам…', account_change_email__title: 'Изменение адреса электронной почты учетной записи', account_change_email__current_email: 'Текущий адрес электронной почты ', account_change_email__email: 'Электронная почта', account_change_email__confirm_current_email: 'Подтверждение адреса текущей электронной почты', account_change_email__confirm_email_message: 'Введите код из письма для продолжения. Если не получили письмо с кодом - проверьте папку Спам', account_change_email__code: 'Код', account_change_email__code_error: 'Был введен неверный код. Проверьте адрес электронной почты и повторите попытку.', account_change_email__new_email: 'Новый адрес электронной почты ', account_change_email__confirm_new_email: 'Подтверждение адреса новой электронной почты', account_change_email__set_password: 'Установка пароля', account_change_email__password: 'Пароль', account_change_email__finish: 'Отправить', account_change_email__finish_after_message: 'Готово!', account_change_email__ok_message1: 'Адрес электронной почты успешно изменен!', account_change_email__ok_message2: 'Переходим учетной записи…', account__user_settings: 'Пользовательские настройки', account__your_company: 'Ваша компания', account__change_auth_message_2: 'После создания пользователя все данные с учетной записи Telegram будут перенесены на новую учетную запись.', account__change_auth_btn: 'Создать пользователя', account__change_auth_warning: 'ВНИМАНИЕ!', account__change_auth_warning_message: 'Обратный перенос данных не возможен.', account__chats: 'Чаты', account__chats_active: 'Активные', account__chats_unbound: 'Открепленные', account__chats_free: 'Бесплатные', account__chats_total: 'Всего', account__subscribe: 'Подписка', account__subscribe_description: 'С помощью подписки можно подключить дополнительные чаты.', account__auth_change_method: 'Сменить способ авторизации', account__auth_change_method_description: 'В случае корпоративного использования рекомендуется входить в систему, указав логин и пароль.', account__auth_change_password: 'Изменить пользовательский пароль', account__auth_change_password_description: 'Необходим доступ к электронной почте, используемой для входа в систему.', account__auth_change_account: 'Сменить электронную почту учетной записи', account__auth_change_account_description: 'Необходим доступ к текущей и новой электронной почте, используемым для входа в систему.', account__company_data: 'Данные вашей компании', account__company_data_description: 'Описание будет автоматически добавляться в перечень компаний для новых проектов. ', account__manual: 'Инструкции', account__manual_description: 'Перейдите в наш Telegram-канал с обучающими видеороликами.', account__settings: 'Настройки', account__settings_description: 'Размер текста, язык и т.п.', account__support: 'Поддержка', account__support_description: 'Есть вопросы - напишите нам!', account__3rd_party_software: 'Сторонее ПО', account__3rd_party_software_description: 'Список сторонних программных пакетов, включённых в ПО', account__terms_of_use: 'Пользовательское соглашение', account__privacy: 'Политика конфидециальности', account__change_password: 'Изменить пароль', account__change_auth_method: 'Сменить способ авторизации', account_company__title_card: 'Моя компания', account_company__btn: 'Применить', forgot_password__password_recovery: 'Восстановление пароля', settings__title: 'Настройки', settings__software_title: 'Приложение', settings__bot_title: 'Сообщения в чатах (бот)', settings__language: 'Язык', settings__font_size: 'Размер текста', settings__fontsize_small: 'Мелкий', settings__fontsize_medium: 'Средний (по умолчанию)', settings__fontsize_large: 'Большой', settings__timezone: 'Часовой пояс', settings__timezone_search: 'Поиск', terms_of_use__title: 'Пользовательское соглашение', terms_of_use__not_ready: 'Документ не готов', privacy__title: 'Политика конфидециальности', privacy_of_use__not_ready: 'Документ не готов', subscribe__title: 'Подписка', subscribe__current_balance: 'Текущий баланс', subscribe__token_formula: '1 = 1 день подключения к 1 чату', subscribe__token_formula_description: 'отвязанные и бесплатные чаты не учитываются', subscribe__info: 'С помощью подписки можно подключить к бесплатным групповым чатам дополнительные. Архивные чаты не учитываются. ', subscribe__about: 'около', subscribe__select_payment_1: 'Вы можете оплатить подписку с помощью', subscribe__select_payment_2: 'Telegram stars', subscribe__select_option_1: 'Telegram stars', subscribe__select_option_2: 'Telegram stars', subscribe__select_option_3: 'Telegram stars', subscribe__select_option_user: 'Telegram stars', support__title: 'Поддержка', support__ask_question: 'Задайте вопрос', support__work_time_text: 'Поддержка оказывается в рабочие дни ', support__work_time_time: '10:00 - 19:00 (Москва, GMT+3)', support__or: 'или напишите нам на электронную почту', AUTH_ERROR: 'Электронная почта или пароль введены неверно!', software__title: 'Стороннее ПО', software__description: 'Данное программное обеспечение содержит пакеты программного обеспечения сторонних разработчиков.', error404: 'Тут ничего нет. Как вы сюда попали?' } \ No newline at end of file +export default { EN: 'EN', RU: 'RU', continue: 'Продолжить', back: 'Назад', close: 'Закрыть', cancel: 'Отмена', code: 'Код', month: 'мес.', months: 'мес.', slogan: 'Работайте вместе - это волшебство!', under_construction: 'В разработке.', login__email: 'Электронная почта', login__password: 'Пароль', login__forgot_password: 'Забыли пароль?', login__sign_in: 'Войти', login__incorrect_login_data: 'Пользователь с такими данными не найден. Отредактируйте введенные данные', login__or_continue_as: 'или продолжить', login__terms_of_use: 'Пользовательское соглашение', login__accept_terms_of_use: 'Я принимаю', login__register: 'Зарегистрироваться', login__register_title: 'Регистрация', login__registration_message_error: 'Ошибка', login__licensing_agreement: 'Договор о лицензировании', login__have_account: 'Есть учетная запись', login__incorrect_email: 'Адрес почты некорректный', login__password_require: 'Мин. 8 символов', user__logout: 'Выход', projects__projects: 'Проекты', projects__search: 'Поиск', projects__show_archive: 'Показать архив', projects__hide_archive: 'Скрыть архив', projects__dialog_archive_title: 'Отправить проект в архив?', projects__dialog_archive_message: 'Отслеживание чатов будет остановлено.', projects__dialog_archive_message2: 'Данные из чатов за период архивации будут утеряны!', projects__dialog_archive_ok: 'В архив', projects__dialog_restore_title: 'Восстановить проект из архива?', projects__dialog_restore_message: 'Отслеживание чатов будет восстановлено.', projects__dialog_restore_message2: 'При восстановлении данные из чатов за период архивации не будут добавлены!', projects__dialog_restore_ok: 'Восстановить', projects__lets_start: 'Создайте проект', projects__lets_start_description: 'Проекты помогают изолировать данные: контакты, задачи, документы и чаты доступны только участникам', header__to_projects: 'Проекты', project__chats: 'Чаты', project__users: 'Команда', project__companies: 'Компании', project_create__title_card: 'Новый проект', project_create__btn: 'Создать', project_edit__title_card: 'Редактировать проект', project_edit__btn: 'Сохранить', project_block__project_name: 'Название', project_block__project_description: 'Описание', project_block__image_use_as_background_chats: 'логотип в качестве фона для чатов', project_block__error_name: 'Поле обязательно к заполнению', chats__search: 'Поиск', chats__send_chat: 'Запрос на добавление чата', chats__send_chat_description: 'Отправить инструкцию администратору чата', chats__attach_chat: 'Добавить чат', chats__attach_chat_description: 'Необходимы права администратора чата', chats_disabled_FAB: 'Добавление чатов возможно только в приложении Telegram', chats__send_chat_title: 'Для присоединения чата к ProjectsNode необходимо добавить в него бота с помощью ссылки:', chats__dialog_unlink_title: 'Открепить чат?', chats__dialog_unlink_message: 'Отслеживание чата будет прекращено.', chats__dialog_unlink_message2: 'При необходимости чат можно будет подключить снова.', chats__dialog_unlink_ok: 'Открепить', chats__onboard_msg1: 'Прикрепите чаты к проекту', chats__onboard_msg2: 'Контроль чатов осуществляется только с момента прикрепления', chat_card__title: 'Карточка чата', chat_card__go_chat: 'Перейти к чату', chat_card__members: 'Участники', chat_page__user_blocked: 'Заблокирован', users__search: 'Поиск', users__show_blocked_users: 'Показать заблокированных', users__hide_blocked_users: 'Скрыть заблокированных', users__show_left_users: 'Показать неактивных', users__hide_left_users: 'Скрыть неактивных', users__dialog_block_title: 'Заблокировать сотрудника?', users__dialog_block_message: 'Доступ к системе будет отключен.', users__dialog_block_message2: 'Сотрудник будет исключен из всех чатов (кроме тех, где он является владельцем).', users__dialog_block_ok: 'Заблокировать', users__dialog_restore_title: 'Восстановить сотрудника?', users__dialog_restore_message: 'Доступ к системе будет восстановлен.', users__dialog_restore_message2: 'При необходимости нужно добавить сотрудника в чаты вручную.', users__dialog_restore_ok: 'Восстановить', users__onboard_msg1: 'Адресная книга проекта', users__onboard_msg2: 'После прикрепления чатов их участники добавляются автоматически. Остается указать - кто есть кто. ', user_edit__title_card: 'Редактирование данных сотрудника', user_edit__btn: 'Сохранить', user_block__name: 'ФИО', user_block__company: 'Компания', user_block__department: 'Подразделение', user_block__role: 'Функционал (должность)', user_block__no_company: 'Не указано', user_block__user_blocked: 'ЗАБЛОКИРОВАН', user_block__user_leave: 'Неактивный', companies__dialog_delete_title: 'Удалить компанию?', companies__dialog_delete_message: 'Это действие нельзя отменить!', companies__dialog_delete_message2: 'Сотрудники компании будут помечены "Без компании".', companies__dialog_delete_ok: 'Удалить', companies__mask: 'Маскировка', companies__my_company: 'Моя компания', companies__onboard_msg1: 'Добавьте компании', companies__onboard_msg2: 'Рекомендуется если в проекте участвует 3 и более компаний.', company_add__title_card: 'Добавить компанию', company_add__btn: 'Создать', company_edit__title_card: 'Редактировать компанию', company_edit__btn: 'Сохранить', company_edit__my_company: 'Моя компания', company_edit__my_company_hint: 'Заполнение формы преднастраивается в Настройках:', company_edit__my_company_href: 'Данные вашей компании', company_block__name: 'Название', company_block__error_name: 'Поле обязательно к заполнению', company_block__description: 'Описание', company_block__users: 'Сотрудники', mask__title: 'Маскировка компаний', mask__help_title: 'Маскировка', mask__help_message1: 'Маскировка позволяет скрывать компанию, представляя ее персонал как собственный для других компаний, кроме тех, кто есть в перечне исключений "Видно". ', mask__help_message2: 'Для включения и отключения маскировки используйте Переключатель. Настройка исключений осуществляется с помощью "+".', mask__info_block: 'Сотрудники вашей компании будут видеть все компании, независимо от настроек маскировки.', mask__table_header_company: 'Компания', mask__table_header_visible: 'Видно', mask__table_visible_none: 'Никому', mask__table_visible_all: 'Всем', mask__btn_ok: 'Сохранить', account_helper__enter_email: 'Введите электронную почту', account_helper__email: 'Электронная почта', account_helper__confirm_email: 'Подтверждение электронной почты', account_helper__confirm_email_message: 'Введите код из письма для продолжения . Если не получили письмо с кодом - проверьте папку Спам', account_helper__code: 'Код', account_helper__code_error: 'Был введен неверный код. Проверьте адрес электронной почты и повторите попытку.', account_helper__set_password: 'Установка пароля', account_helper__password: 'Пароль', account_helper__finish: 'Отправить', account_helper__register_message1: 'Добро пожаловать!', account_helper__forgot_password_message1: 'Пароль установлен!', account_helper__change_password_message1: 'Пароль изменен!', account_helper__change_method_message1: 'Способ входа в систему изменен!', account_helper__go_projects: 'Переходим к проектам…', account_change_email__title: 'Изменение адреса электронной почты учетной записи', account_change_email__current_email: 'Текущий адрес электронной почты ', account_change_email__email: 'Электронная почта', account_change_email__confirm_current_email: 'Подтверждение адреса текущей электронной почты', account_change_email__confirm_email_message: 'Введите код из письма для продолжения. Если не получили письмо с кодом - проверьте папку Спам', account_change_email__code: 'Код', account_change_email__code_error: 'Был введен неверный код. Проверьте адрес электронной почты и повторите попытку.', account_change_email__new_email: 'Новый адрес электронной почты ', account_change_email__confirm_new_email: 'Подтверждение адреса новой электронной почты', account_change_email__set_password: 'Установка пароля', account_change_email__password: 'Пароль', account_change_email__finish: 'Отправить', account_change_email__finish_after_message: 'Готово!', account_change_email__ok_message1: 'Адрес электронной почты успешно изменен!', account_change_email__ok_message2: 'Переходим учетной записи…', account__user_settings: 'Пользовательские настройки', account__your_company: 'Ваша компания', account__change_auth_message_2: 'После создания пользователя все данные с учетной записи Telegram будут перенесены на новую учетную запись.', account__change_auth_btn: 'Создать пользователя', account__change_auth_warning: 'ВНИМАНИЕ!', account__change_auth_warning_message: 'Обратный перенос данных не возможен.', account__chats: 'Чаты', account__chats_active: 'Активные', account__chats_unbound: 'Открепленные', account__chats_free: 'Бесплатные', account__chats_total: 'Всего', account__subscribe: 'Подписка', account__subscribe_description: 'С помощью подписки можно подключить дополнительные чаты.', account__auth_change_method: 'Сменить способ авторизации', account__auth_change_method_description: 'В случае корпоративного использования рекомендуется входить в систему, указав логин и пароль.', account__auth_change_password: 'Изменить пользовательский пароль', account__auth_change_password_description: 'Необходим доступ к электронной почте, используемой для входа в систему.', account__auth_change_account: 'Сменить электронную почту учетной записи', account__auth_change_account_description: 'Необходим доступ к текущей и новой электронной почте, используемым для входа в систему.', account__company_data: 'Данные вашей компании', account__company_data_description: 'Описание будет автоматически добавляться в перечень компаний для новых проектов. ', account__manual: 'Инструкции', account__manual_description: 'Перейдите в наш Telegram-канал с обучающими видеороликами.', account__settings: 'Параметры приложения', account__settings_description: 'Размер текста, язык и т.п.', account__support: 'Поддержка', account__support_description: 'Есть вопросы - напишите нам!', account__3rd_party_software: 'Сторонее ПО', account__3rd_party_software_description: 'Список сторонних программных пакетов, включённых в ПО', account__terms_of_use: 'Пользовательское соглашение', account__privacy: 'Политика конфидециальности', account__stop_using: 'Отказ от использования приложения', account__stop_using_description: 'Включает отзыв Согласия на обработку ПДн', account__stop_using_dialog_title: 'Отказаться от использования приложения?', account__stop_using_dialog_message1: 'Действие необратимо - ваши данные станут недоступны!', account__stop_using_dialog_message2: 'Это также отзовет ваше Cогласие на обработку данных.', account__stop_using_dialog_btn_ok: 'Подтвердить', account__change_password: 'Изменить пароль', account__change_auth_method: 'Сменить способ авторизации', account_company__title_card: 'Моя компания', account_company__btn: 'Применить', forgot_password__password_recovery: 'Восстановление пароля', settings__title: 'Параметры приложения', settings__software_title: 'Приложение', settings__bot_title: 'Сообщения в чатах (бот)', settings__language: 'Язык', settings__font_size: 'Размер текста', settings__fontsize_small: 'Мелкий', settings__fontsize_medium: 'Средний (по умолчанию)', settings__fontsize_large: 'Большой', settings__timezone: 'Часовой пояс', settings__timezone_search: 'Поиск', terms_of_use__title: 'Пользовательское соглашение', terms_of_use__not_ready: 'Документ не готов', privacy__title: 'Политика конфидециальности', consent__title: 'Согласие на обработку персональных данных', privacy_of_use__not_ready: 'Документ не готов', subscribe__title: 'Подписка', subscribe__current_balance: 'Текущий баланс', subscribe__token_formula: '1 = 1 день подключения к 1 чату', subscribe__token_formula_description: 'отвязанные и бесплатные чаты не учитываются', subscribe__info: 'С помощью подписки можно подключить к бесплатным групповым чатам дополнительные. Архивные чаты не учитываются. ', subscribe__about: 'около', subscribe__select_payment_1: 'Вы можете оплатить подписку с помощью', subscribe__select_payment_2: 'Telegram stars', subscribe__select_option_1: 'Telegram stars', subscribe__select_option_2: 'Telegram stars', subscribe__select_option_3: 'Telegram stars', subscribe__select_option_user: 'Telegram stars', support__title: 'Поддержка', support__ask_question: 'Задайте вопрос', support__work_time_text: 'Поддержка оказывается в рабочие дни ', support__work_time_time: '10:00 - 19:00 (Москва, GMT+3)', support__or: 'или напишите нам на электронную почту', AUTH_ERROR: 'Электронная почта или пароль введены неверно!', software__title: 'Стороннее ПО', software__description: 'Данное программное обеспечение содержит пакеты программного обеспечения сторонних разработчиков.', error404: 'Тут ничего нет. Как вы сюда попали?', agreements__title: 'Соглашения', agreements__description: 'Для использования приложения необходимо согласиться с условиями:', agreements__checkbox_agreement_terms: 'Я принимаю', agreements__checkbox_agreement_terms_doc: 'Пользовательское соглашение', agreements__checkbox_agreement_consent: 'Я даю', agreements__checkbox_agreement_consent_doc: 'Согласие на обработку своих персональных данных', agreements__checkbox_agreement_privacy: 'и принимаю условия', agreements__checkbox_agreement_privacy_doc: 'Политики конфиденциальности', agreements__btn_agree: 'Подтвердить и продолжить', agreements__btn_decline: 'Отказаться', agreements__btn_decline_description: '(закрыть приложение)' } \ No newline at end of file diff --git a/src/pages/AccountPage.vue b/src/pages/AccountPage.vue index 0f61fd6..e4365e3 100644 --- a/src/pages/AccountPage.vue +++ b/src/pages/AccountPage.vue @@ -40,12 +40,26 @@ + + - diff --git a/src/pages/LoginPage.vue b/src/pages/LoginPage.vue index f31dc6f..056fd83 100644 --- a/src/pages/LoginPage.vue +++ b/src/pages/LoginPage.vue @@ -74,8 +74,9 @@ {{$t('login__sign_in')}} diff --git a/src/pages/ProjectsPage.vue b/src/pages/ProjectsPage.vue index 6b8b9f6..abd98d7 100644 --- a/src/pages/ProjectsPage.vue +++ b/src/pages/ProjectsPage.vue @@ -69,17 +69,29 @@ {{item.description}} - -
-
- - {{ item.chat_count }} + + +
+
+ + {{ item.chat_count }} +
+
+ + {{ item.user_count }} +
-
- - {{ item.user_count }} -
-
+ + + + @@ -225,6 +237,10 @@ await router.push({ name: 'chats', params: { id }}) } + async function editProject (id: number) { + await router.push({ name: 'project_info', params: { id }}) + } + async function goAccount () { await router.push({ name: 'account' }) } diff --git a/src/pages/account/AgreementsPage.vue b/src/pages/account/AgreementsPage.vue new file mode 100644 index 0000000..797b30e --- /dev/null +++ b/src/pages/account/AgreementsPage.vue @@ -0,0 +1,104 @@ + + + + + \ No newline at end of file diff --git a/src/pages/account/ConsentPage.vue b/src/pages/account/ConsentPage.vue new file mode 100644 index 0000000..e555124 --- /dev/null +++ b/src/pages/account/ConsentPage.vue @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/src/pages/project-page/ProjectPageHeader.vue b/src/pages/project-page/ProjectPageHeader.vue index d9ada2d..7f4c3ab 100644 --- a/src/pages/project-page/ProjectPageHeader.vue +++ b/src/pages/project-page/ProjectPageHeader.vue @@ -52,12 +52,17 @@
+ @click="toProjects" + flat + no-caps + dense + class="q-ml-xl" + > + + {{ $t('header__to_projects') }} + + +
@@ -93,9 +98,8 @@ expandProjectInfo.value = !expandProjectInfo.value } - async function editProject () { - if (currentProjectId.value) - await router.push({ name: 'project_info', params: { id: currentProjectId.value } }) + async function toProjects () { + await router.push({ name: 'projects' }) } interface sizeParams { diff --git a/src/pages/project-page/ProjectPageUsers.vue b/src/pages/project-page/ProjectPageUsers.vue index 629ef07..95b5639 100644 --- a/src/pages/project-page/ProjectPageUsers.vue +++ b/src/pages/project-page/ProjectPageUsers.vue @@ -45,7 +45,7 @@ {{item.section1}} - + {{item.section3}} @@ -172,7 +172,7 @@ {{item.section1}} - + {{item.section3}} diff --git a/src/router/index.ts b/src/router/index.ts index 1338783..44bec5b 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -37,6 +37,14 @@ export default defineRouter(function (/* { store, ssrContext } */) { const authStore = useAuthStore() const projectsStore = useProjectsStore() + if (to.name === '404' || to.name === 'terms' || to.name === 'privacy' || to.name === 'consent') return true + + if (to.name === 'login') return true + + if (to.name === 'agreements' && authStore.isAuth) return true + + // if (!authStore.isTermsAccepted && authStore.isAuth) return { name: 'agreements' } + if (to.meta.guestOnly && authStore.isAuth) { return { name: 'projects' } } diff --git a/src/router/routes.ts b/src/router/routes.ts index 3e0c2f5..b038463 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -135,6 +135,11 @@ const routes: RouteRecordRaw[] = [ component: () => import('pages/account/SubscribePage.vue'), meta: { requiresAuth: true } }, + { + name: 'agreements', + path: '/agreements', + component: () => import('pages/account/AgreementsPage.vue') + }, { name: 'terms', path: '/terms-of-use', @@ -143,12 +148,17 @@ const routes: RouteRecordRaw[] = [ { name: 'privacy', path: '/privacy', - component: () => import('pages/account/PrivacyPage.vue'), + component: () => import('pages/account/PrivacyPage.vue') + }, + { + name: 'consent', + path: '/consent-pd', + component: () => import('pages/account/ConsentPage.vue') }, { name: 'support', path: '/support', - component: () => import('src/pages/account/SupportPage.vue'), + component: () => import('src/pages/account/SupportPage.vue') }, { name: 'your_company', diff --git a/src/stores/auth.ts b/src/stores/auth.ts index 9877276..f677e2c 100644 --- a/src/stores/auth.ts +++ b/src/stores/auth.ts @@ -33,6 +33,7 @@ export type AuthFlowType = keyof typeof ENDPOINT_MAP export const useAuthStore = defineStore('auth', () => { const customer = ref(null) + const isTermsAccepted = ref(false) const wsEvent = ref(null) const projectsStore = useProjectsStore() @@ -126,8 +127,20 @@ export const useAuthStore = defineStore('auth', () => { if (response.status === 200 && customer.value) customer.value.company = companyData } + // agreement + async function termsAccepted () { + const { data } = await api.post('/terms/accept') + if (data.success) isTermsAccepted.value = true + } + + async function termsRevoked () { + const { data } = await api.post('/terms/revoke') + if (data.success) isTermsAccepted.value = false + } + return { customer, + isTermsAccepted, isAuth, wsEvent, initialize, @@ -142,6 +155,8 @@ export const useAuthStore = defineStore('auth', () => { confirmCurrentEmailCode, getCodeNewEmail, confirmNewEmailCode, - setNewEmailPassword + setNewEmailPassword, + termsAccepted, + termsRevoked } }) \ No newline at end of file diff --git a/src/stores/companies.ts b/src/stores/companies.ts index c7a4a95..d23368a 100644 --- a/src/stores/companies.ts +++ b/src/stores/companies.ts @@ -18,12 +18,7 @@ export const useCompaniesStore = defineStore('companies', () => { const { data }= await api.get('/project/' + currentProjectId.value + '/company') const companiesAPI = data.data companies.value.push(...(companiesAPI.sort((a: Company, b: Company) => (a.id - b.id)))) - companiesMask.value = [ - { "company_id": 11, "company_list": [ 9, 12 ] }, - { "company_id": 9, "company_list": [ 11, 12 ] }, - { "company_id": 12, "company_list": [ 9, 10, 13 ] } - ] - // await getCompanyMasked() + await getCompanyMasked() isInit.value = true } @@ -61,16 +56,17 @@ export const useCompaniesStore = defineStore('companies', () => { async function getCompanyMasked () { const { data } = await api.get('/project/' + currentProjectId.value + '/company/mapping') - const companiesMaskAPI = data.data + const companiesMaskAPI = data.data // arr [company_id, company_list[]] companiesMask.value = companiesMaskAPI + console.log(11, companiesMaskAPI) } function checkCompanyMasked (id: number) { - return companiesMask.value.some(el => el.company_id === id) + return companiesMask.value.some(el => Number(el.company_id) === id) } async function updateMask (mask: CompanyMask[]) { - const { data } = await api.post('/project/' + currentProjectId.value + '/company/mapping', mask) + const { data } = await api.put('/project/' + currentProjectId.value + '/company/mapping', mask) const maskAPI = data.data companiesMask.value = maskAPI } diff --git a/src/types/Chat.ts b/src/types/Chat.ts index 13aac84..2535c90 100644 --- a/src/types/Chat.ts +++ b/src/types/Chat.ts @@ -11,7 +11,7 @@ interface Chat { logo: string | null owner_id?: number invite_link: string - chat_users: number [] + users: number [] [key: string]: number | string | boolean | null | number[] } diff --git a/tsconfig.json b/tsconfig.json index c77a8cc..c648758 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "./.quasar/tsconfig.json", "compilerOptions": { - "types": ["@twa-dev/types", "node"] + "types": ["@twa-dev/types", "node", "vite/client"] }, "include": ["src/**/*", "types/**/*"] } \ No newline at end of file