commit 1d6c55807cb5f9ab99fb1dd8181ce74db6dccb76 Author: Paolo Arena Date: Tue Aug 31 18:09:59 2021 +0200 First Committ diff --git a/.babelrc b/.babelrc new file mode 100755 index 00000000..c533ff02 --- /dev/null +++ b/.babelrc @@ -0,0 +1,34 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "modules": false, + "loose": false + } + ] + ], + "plugins": [ + [ + "@babel/transform-runtime", + { + "regenerator": false + } + ], + "@babel/plugin-syntax-dynamic-import", + "@babel/plugin-syntax-import-meta", + "@babel/plugin-proposal-class-properties", + "@babel/plugin-proposal-json-strings", + [ + "@babel/plugin-proposal-decorators", + { + "legacy": true + } + ], + "@babel/plugin-proposal-function-sent", + "@babel/plugin-proposal-export-namespace-from", + "@babel/plugin-proposal-numeric-separator", + "@babel/plugin-proposal-throw-expressions" + ], + "comments": false +} diff --git a/.editorconfig b/.editorconfig new file mode 100755 index 00000000..9d08a1a8 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/.eslintignore b/.eslintignore new file mode 100755 index 00000000..0cc1d660 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,9 @@ +/dist +/src-bex/www +/src-capacitor +/src-cordova +/.quasar +/node_modules +.eslintrc.js +babel.config.js +/src-ssr \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100755 index 00000000..4691c4d1 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,129 @@ +const { resolve } = require('path'); +module.exports = { + // https://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy + // This option interrupts the configuration hierarchy at this file + // Remove this if you have an higher level ESLint config file (it usually happens into a monorepos) + root: true, + + // https://eslint.vuejs.org/user-guide/#how-to-use-custom-parser + // Must use parserOptions instead of "parser" to allow vue-eslint-parser to keep working + // `parser: 'vue-eslint-parser'` is already included with any 'plugin:vue/**' config and should be omitted + parserOptions: { + // https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/parser#configuration + // https://github.com/TypeStrong/fork-ts-checker-webpack-plugin#eslint + // Needed to make the parser take into account 'vue' files + extraFileExtensions: ['.vue'], + parser: '@typescript-eslint/parser', + project: resolve(__dirname, './tsconfig.json'), + tsconfigRootDir: __dirname, + ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features + sourceType: 'module', // Allows for the use of imports + }, + + env: { + browser: true, + }, + + // Rules order is important, please avoid shuffling them + extends: [ + 'airbnb-typescript/base', + // Base ESLint recommended rules + // 'eslint:recommended', + + // https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin#usage + // ESLint typescript rules + // 'plugin:@typescript-eslint/recommended', + // consider disabling this class of rules if linting takes too long + // 'plugin:@typescript-eslint/recommended-requiring-type-checking', + + // Uncomment any of the lines below to choose desired strictness, + // but leave only one uncommented! + // See https://eslint.vuejs.org/rules/#available-rules + 'plugin:vue/vue3-essential', // Priority A: Essential (Error Prevention) + // 'plugin:vue/vue3-strongly-recommended', // Priority B: Strongly Recommended (Improving Readability) + // 'plugin:vue/vue3-recommended', // Priority C: Recommended (Minimizing Arbitrary Choices and Cognitive Overhead) + + ], + + plugins: [ + // required to apply rules which need type information + '@typescript-eslint', + + 'import', + // https://eslint.vuejs.org/user-guide/#why-doesn-t-it-work-on-vue-file + // required to lint *.vue files + 'vue', + + ], + + globals: { + ga: 'readonly', // Google Analytics + cordova: 'readonly', + __statics: 'readonly', + __QUASAR_SSR__: 'readonly', + __QUASAR_SSR_SERVER__: 'readonly', + __QUASAR_SSR_CLIENT__: 'readonly', + __QUASAR_SSR_PWA__: 'readonly', + process: 'readonly', + Capacitor: 'readonly', + chrome: 'readonly', + }, + + // add your custom rules here + rules: { + // allow async-await + 'generator-star-spacing': 'off', + // allow paren-less arrow functions + 'arrow-parens': 'off', + 'one-var': 'off', + 'no-void': 'off', + "comma-dangle": [2, "always-multiline"], + // 'multiline-ternary': 'off', + 'vue/max-attributes-per-line': [ + 'error', { + 'singleline': { + 'max': 6, + 'allowFirstLine': true, + }, + 'multiline': { + 'max': 6, + 'allowFirstLine': false, + }, + }], + 'import/first': 'off', + 'import/named': 'error', + 'import/namespace': 'error', + 'import/default': 'error', + 'import/export': 'error', + 'import/extensions': 'off', + 'import/no-unresolved': 'off', + 'import/no-extraneous-dependencies': 'off', + 'prefer-promise-reject-errors': 'off', + 'no-bitwise': 'off', + "no-console": 'off', + 'no-restricted-syntax': 'off', + 'no-param-reassign': 'off', + 'no-plusplus': 'off', + + // TypeScript + quotes: ['warn', 'single', { avoidEscape: true }], + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/semi': 'off', + + // allow debugger during development only + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', + + 'max-classes-per-file': 'off', + 'no-useless-constructor': 'off', + 'no-empty-function': 'off', + '@typescript-eslint/no-useless-constructor': 'error', + 'import/prefer-default-export': 'off', + 'no-use-before-define': 'off', + '@typescript-eslint/no-unused-vars': 'off', + "@typescript-eslint/max-len": 'off', + "max-len": 'off', + "@typescript-eslint/naming-convention": 'off', + "no-underscore-dangle": 'off', + }, +}; diff --git a/.gitignore b/.gitignore new file mode 100755 index 00000000..553e1345 --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +.DS_Store +.thumbs.db +node_modules + +# Quasar core related directories +.quasar +/dist + +# Cordova related directories and files +/src-cordova/node_modules +/src-cordova/platforms +/src-cordova/plugins +/src-cordova/www + +# Capacitor related directories and files +/src-capacitor/www +/src-capacitor/node_modules + +# BEX related directories and files +/src-bex/www +/src-bex/js/core + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +*.suo +*.ntvs* +*.njsproj +*.sln diff --git a/.postcssrc.js b/.postcssrc.js new file mode 100755 index 00000000..1174fe52 --- /dev/null +++ b/.postcssrc.js @@ -0,0 +1,8 @@ +// https://github.com/michael-ciniawsky/postcss-load-config + +module.exports = { + plugins: [ + // to edit target browsers: use "browserslist" field in package.json + require('autoprefixer') + ] +} diff --git a/README.md b/README.md new file mode 100755 index 00000000..3eba280c --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# First Proj (firstproj) + +A Quasar Framework app + +## Install the dependencies +```bash +yarn +``` + +### Start the app in development mode (hot-code reloading, error reporting, etc.) +```bash +quasar dev +``` + +### Lint the files +```bash +yarn run lint +``` + +### Build the app for production +```bash +quasar build +``` + +### Customize the configuration +See [Configuring quasar.conf.js](https://v2.quasar.dev/quasar-cli/quasar-conf-js). diff --git a/babel.config.js b/babel.config.js new file mode 100755 index 00000000..a72eeb11 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,12 @@ +/* eslint-env node */ + +module.exports = api => ({ + presets: [ + [ + '@quasar/babel-preset-app', + api.caller(caller => caller && caller.target === 'node') + ? { targets: { node: 'current' } } + : {}, + ], + ], +}) diff --git a/config/envparser.js b/config/envparser.js new file mode 100755 index 00000000..808b2834 --- /dev/null +++ b/config/envparser.js @@ -0,0 +1,27 @@ +const DotEnv = require('dotenv') + +let path +switch (process.env.NODE_ENV) { + case 'test': + path = '.env.test' + break + case 'development': + path = '.env.development' + break + default: + path = '.env.production' + break +} + +// console.log("PATH", path) +const parsedEnv = DotEnv.config({ path }).parsed; + +module.exports = function () { + // Let's stringify our variables + for (const key in parsedEnv) { + if (typeof parsedEnv[key] === 'string') { + // parsedEnv[key] = JSON.stringify(parsedEnv[key]) + } + } + return parsedEnv +}; diff --git a/config/helpers/env.js b/config/helpers/env.js new file mode 100755 index 00000000..f17d2e4c --- /dev/null +++ b/config/helpers/env.js @@ -0,0 +1,3 @@ +module.exports = function (key, fallback) { + return process.env[key] || fallback +} diff --git a/config/webpack.config.base.js b/config/webpack.config.base.js new file mode 100755 index 00000000..bce20e4d --- /dev/null +++ b/config/webpack.config.base.js @@ -0,0 +1,120 @@ +const path = require('path'); +const webpack = require('webpack') +const FaviconsWebpackPlugin = require('favicons-webpack-plugin'); +const CopyWebpackPlugin = require('copy-webpack-plugin'); +const autoprefixer = require('autoprefixer'); +const cssNext = require('postcss-cssnext'); +const postcssImport = require('postcss-import'); +const helpers = require('./helpers'); + +const baseConfig = { + entry: { + bundle: path.resolve(__dirname, '/src/main.ts'), + }, + output: { + filename: '[nametranslate].js', + publicPath: '/', + path: path.resolve(__dirname, 'dist'), + }, + resolve: { + extensions: [ + '.ts', '.js', '.vue', + ], + alias: { + vue: '@vue/compat', + '@components': path.resolve(__dirname, 'src/components/index.ts'), + '@boot': path.resolve(__dirname, 'src/boot/*'), + '@costanti': path.resolve(__dirname, 'src/store/Modules/costanti.ts'), + '@views': path.resolve(__dirname, 'src/views/index.ts'), + '@': path.resolve(__dirname, 'src'), + '@src': path.resolve(__dirname, 'src'), + '@icons': path.resolve(__dirname, 'src/assets/icons'), + '@images': path.resolve(__dirname, 'src/assets/images'), + '@classes': path.resolve(__dirname, 'src/classes/index.ts'), + '@fonts': path.resolve(__dirname, 'src/assets/fonts'), + '@utils': path.resolve(__dirname, 'src/utils/index.ts'), + '@css': path.resolve(__dirname, 'src/styles/variables.scss'), + '@router': path.resolve(__dirname, 'src/router/index.ts'), + '@validators': path.resolve(__dirname, 'src/utils/validators.ts'), + '@methods': path.resolve(__dirname, 'src/utils/methods.ts'), + '@filters': path.resolve(__dirname, 'src/utils/filters.ts'), + '@api': path.resolve(__dirname, 'src/store/Api/index.ts'), + '@paths': path.resolve(__dirname, 'src/store/Api/ApiRoutes.ts'), + '@storemod': path.resolve(__dirname, 'src/store/Modules/*'), + '@store/*': path.resolve(__dirname, 'src/store/*'), + '@modules': path.resolve(__dirname, 'src/store/Modules/index.ts'), + '@model': path.resolve(__dirname, 'src/model/index.ts'), + }, + }, + module: { + rules: [{ + test: /\.vue$/, + use: { + loader: 'vue-loader', + options: { + compilerOptions: { + compatConfig: { + MODE: 2, + }, + }, + postcss: { + plugins: [cssNext()], + options: { + sourceMap: true, + }, + }, + cssSourceMap: true, + loaders: { + scss: ['vue-style-loader', 'css-loader', 'sass-loader', { + loader: 'sass-resources-loader', + options: { + resources: path.resolve(__dirname, 'src/styles/variables.scss'), + esModule: true, + }, + }], + ts: 'ts-loader', + }, + }, + }, + }, { + test: /\.ts$/, + exclude: /node_modules/, + loader: 'ts-loader', + options: { + appendTsSuffixTo: [/\.vue$/], + }, + }, { + test: /\.(jpe?g|png|ttf|eot|woff(2)?)(\?[a-z0-9=&.]+)?$/, + use: 'base64-inline-loader?limit=1000&nametranslate=[nametranslate].[ext]', + }, { + test: /\.(svg)(\?[a-z0-9=&.]+)?$/, + use: 'base64-inline-loader?limit=4000&nametranslate=[nametranslate].[ext]', + }, + ], + }, + plugins: [ + new FaviconsWebpackPlugin({ + logo: path.resolve(__dirname, 'src/assets/images/logo_M.png'), + persistentCache: true, + inject: true, + background: '#fff', + icons: { + android: false, + appleIcon: false, + appleStartup: false, + coast: false, + favicons: true, + firefox: false, + opengraph: false, + twitter: false, + yandex: false, + windows: false, + }, + }), + new CopyWebpackPlugin([{ + from: path.resolve(__dirname, 'src/assets'), + }]), + ], +}; + +module.exports = baseConfig; diff --git a/config/webpack.config.dev.js b/config/webpack.config.dev.js new file mode 100755 index 00000000..4a6bc7c1 --- /dev/null +++ b/config/webpack.config.dev.js @@ -0,0 +1,90 @@ +const webpack = require('webpack') +const path = require('path'); +const merge = require('webpack-merge') +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); +const WebpackDashboard = require('webpack-dashboard/plugin'); +const DefinePlugin = require('webpack/lib/DefinePlugin'); +const autoprefixer = require('autoprefixer'); +const helpers = require('./helpers'); +const env = require('../environment/dev.env'); +const webpackBaseConfig = require('./webpack.config.base'); + +const webpackDevConfig = { + module: { + rules: [{ + test: /\.s?css$/, + use: [{ + loader: 'style-loader', + }, { + loader: 'css-loader', + options: { + minimize: false, + sourceMap: true, + importLoaders: 2, + }, + }, { + loader: 'postcss-loader', + options: { + plugins: () => [autoprefixer], + sourceMap: true, + }, + }, { + loader: 'sass-loader', + options: { + outputStyle: 'expanded', + sourceMap: true, + sourceMapContents: true, + }, + }], + }], + }, + plugins: [ + new HtmlWebpackPlugin({ + inject: true, + template: helpers.root('/src/index.html'), + filename: 'index.html', + favicon: helpers.root('/src/assets/images/logo_M.png'), + }), + new DefinePlugin({ + 'process.env': env, + }), + new WebpackDashboard(), + new FriendlyErrorsPlugin(), + new webpack.HotModuleReplacementPlugin(), + new webpack.NamedModulesPlugin(), + ], + devServer: { + contentBase: path.join(__dirname, 'dist'), + port: 5000, + historyApiFallback: true, + disableHostCheck: true, + host: '0.0.0.0', + hot: true, + open: true, + quiet: true, + inline: true, + noInfo: true, + stats: { + colors: true, + hash: false, + version: false, + timings: false, + assets: false, + chunks: false, + modules: false, + reasons: false, + children: false, + source: false, + errors: true, + errorDetails: true, + warnings: false, + publicPath: false, + }, + }, + devtool: 'cheap-module-eval-source-map', +} + +const devExport = merge(webpackBaseConfig, webpackDevConfig); + +module.exports = devExport; diff --git a/helpers.js b/helpers.js new file mode 100755 index 00000000..309db6cc --- /dev/null +++ b/helpers.js @@ -0,0 +1,10 @@ +const path = require('path'); + +const ROOT = path.resolve(__dirname, '.'); + +function root(args) { + args = Array.prototype.slice.call(arguments, 0); + return path.join.apply(path, [ROOT].concat(args)); +} + +exports.root = root; diff --git a/jest.config.js b/jest.config.js new file mode 100755 index 00000000..b481d373 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,53 @@ +module.exports = { + globals: { + __DEV__: true, + }, + verbose: true, + testURL: 'http://localhost/', + collectCoverage: false, + coverageDirectory: '/test/coverage', + collectCoverageFrom: [ + '/src/components/**/*.vue', + '/src/common/**/*.ts', + '/src/directives/**/*.ts', + '/src/layouts/**/*.vue', + '/src/mixins/**/*.ts', + '/src/model/**/*.ts', + '/src/pages/**/*.vue', + '/src/plugins/**/*.ts', + '/src/root/**/*.ts', + '/src/utils/**/*.ts', + '/src/views/**/*.ts', + '/src/views/**/*.vue', + ], + coverageThreshold: { + global: { + branches: 50, + functions: 50, + lines: 50, + statements: 50, + }, + }, + testMatch: [ + '/**/__tests__/**/*.spec.ts', + ], + moduleFileExtensions: [ + 'ts', + 'js', + 'json', + 'vue', + ], + moduleNameMapper: { + '^vue$': '/node_modules/vue/dist/vue.common.js', + '^quasar$': '/tmp/quasar.common.js', + '^~/(.*)$': '/$1', + '^@/(.*)$': '/src/$1', + }, + transform: { + '.*\\.vue$': '/node_modules/vue-jest', + '.*\\.ts$': '/node_modules/ts-jest', + }, + snapshotSerializers: [ + '/node_modules/jest-serializer-vue', + ], +} diff --git a/package.json b/package.json new file mode 100755 index 00000000..07b3d61c --- /dev/null +++ b/package.json @@ -0,0 +1,123 @@ +{ + "name": "firstproj", + "version": "0.0.1", + "description": "A Quasar Framework app", + "productName": "First Proj", + "author": "Paolo Arena ", + "private": true, + "scripts": { + "dev": "quasar dev", + "build": "quasar build", + "lint": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./", + "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", + "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", + "fix": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ --fix", + "pwa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m pwa", + "test": "echo \"No test specified\" && exit 0", + "generate-sw": "workbox generateSW workbox-config.js" + }, + "dependencies": { + "@quasar/extras": "^1.10.11", + "@types/googlemaps": "^3.43.3", + "@types/vuelidate": "^0.7.15", + "@vue/compat": "^3.2.6", + "@vue/compiler-sfc": "^3.2.6", + "@vue/eslint-config-standard": "^6.1.0", + "acorn": "^8.4.1", + "autoprefixer": "^10.3.2", + "axios": "^0.21.1", + "bcrypt-nodejs": "0.0.3", + "bcryptjs": "^2.4.3", + "core-js": "^3.16.2", + "date-fns": "^2.23.0", + "dotenv": "^10.0.0", + "element-ui": "^2.15.5", + "eslint-plugin-quasar": "^1.0.0", + "graphql": "^15.5.1", + "graphql-tag": "^2.12.5", + "gsap": "^3.7.1", + "jquery": "^3.6.0", + "js-cookie": "^3.0.0", + "localforage": "^1.10.0", + "lodash": "^4.17.21", + "normalize.css": "^8.0.1", + "npm": "^7.21.0", + "nprogress": "^0.2.0", + "pinia": "^2.0.0-beta.5", + "prerender-spa-plugin": "^3.4.0", + "quasar": "^2.0.4", + "quasar-extras": "^2.0.9", + "register-service-worker": "^1.7.2", + "vee-validate": "^3.4.11", + "vue": "^3.1.0", + "vue-class-component": "^8.0.0-rc.1", + "vue-i18n": "^9.1.7", + "vue-idb": "^0.2.0", + "vue-loader": "^16.0.0", + "vue-property-decorator": "^10.0.0-rc.3", + "vue-router": "^4.0.11", + "vue-scroll-reveal": "^1.0.11", + "vue-svgicon": "^3.2.9", + "vue2-dragula": "^2.5.5", + "vuelidate": "^0.7.6", + "vuex": "^4.0.1", + "vuex-module-decorators": "^1.0.1", + "vuex-router-sync": "^5.0.0", + "vuex-typex": "^3.1.9", + "workbox": "0.0.0" + }, + "devDependencies": { + "@babel/eslint-parser": "^7.15.0", + "@quasar/app": "^3.1.0", + "@types/dotenv": "^8.2.0", + "@types/jest": "^27.0.1", + "@types/js-cookie": "^2.2.7", + "@types/node": "^16.7.1", + "@types/nprogress": "^0.2.0", + "@typescript-eslint/eslint-plugin": "^4.29.3", + "@typescript-eslint/parser": "^4.29.3", + "eslint": "^7.32.0", + "eslint-config-airbnb-base": "^14.2.1", + "eslint-config-airbnb-typescript": "^14.0.0", + "eslint-plugin-import": "^2.24.1", + "eslint-plugin-vue": "^7.16.0", + "eslint-webpack-plugin": "^3.0.1", + "file-loader": "^6.2.0", + "html-webpack-plugin": "^5.3.2", + "http-proxy-middleware": "^2.0.1", + "jest": "^27.0.6", + "json-loader": "^0.5.7", + "node-sass": "^6.0.1", + "npm-check-updates": "^11.8.3", + "optimize-css-assets-webpack-plugin": "^6.0.1", + "postcss-loader": "^6.1.1", + "sass-loader": "^12.1.0", + "strip-ansi": "=7.0.0", + "ts-jest": "^27.0.5", + "ts-loader": "^9.2.5", + "tslint": "^6.1.3", + "tslint-config-standard": "^9.0.0", + "tslint-loader": "^3.5.4", + "typescript": "^4.3.5", + "vue-cli-plugin-element-ui": "^1.1.4", + "vueify": "^9.4.1", + "workbox-cli": "^6.2.4", + "workbox-webpack-plugin": "^6.2.4" + }, + "browserslist": [ + "last 10 Chrome versions", + "last 10 Firefox versions", + "last 4 Edge versions", + "last 7 Safari versions", + "last 8 Android versions", + "last 8 ChromeAndroid versions", + "last 8 FirefoxAndroid versions", + "last 10 iOS versions", + "last 5 Opera versions" + ], + "engines": { + "node": ">= 14.15.0", + "npm": ">= 6.14.8", + "yarn": ">= 1.21.1" + } +} diff --git a/public/css/dragula.css b/public/css/dragula.css new file mode 100755 index 00000000..b18c16e7 --- /dev/null +++ b/public/css/dragula.css @@ -0,0 +1,22 @@ +.gu-mirror { + position: fixed !important; + margin: 0 !important; + z-index: 9999 !important; + opacity: 0.8; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; + filter: alpha(opacity=80); +} +.gu-hide { + display: none !important; +} +.gu-unselectable { + -webkit-user-select: none !important; + -moz-user-select: none !important; + -ms-user-select: none !important; + user-select: none !important; +} +.gu-transit { + opacity: 0.2; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)"; + filter: alpha(opacity=20); +} diff --git a/public/css/variables.scss b/public/css/variables.scss new file mode 100755 index 00000000..05aac929 --- /dev/null +++ b/public/css/variables.scss @@ -0,0 +1,184 @@ +// Couleurs +$mainStyle: #4975BA; +$mainColor: #3c4858; + + + +$yellow1: #f8ab1c; +$yellow2: rgb(221, 144, 35); +$yellow3: #f8d71c; + +$blue1: #4286f4; +$blue2: #a9dff5; + +$red1: #c84242; +$orange1: #cf7219; +$rose1: #dd4587; + +$green1: #5cb85c; +$green2: #CEE8DF; +$green3: #70BEB1; +$green4: #4c964c; + +$brown1: #D99E7E; + +:export { + mainStyle: $mainStyle; + red1: $red1; + blue2: $blue2; + yellow1: $yellow1; + yellow2: $yellow2; + yellow3: $yellow3; + mainColor: $mainColor; + green1: $green1; + green2: $green2; + green3: $green3; +} + + + +$w255: rgb(255, 255, 255); +$w250: rgb(250, 250, 250); +$w245: rgb(245, 245, 245); +$w240: rgb(240, 240, 240); +$w235: rgb(235, 235, 235); +$w230: rgb(230, 230, 230); +$w225: rgb(225, 225, 225); +$w220: rgb(220, 220, 220); +$w210: rgb(210, 210, 210); +$w200: rgb(200, 200, 200); +$w190: rgb(190, 190, 190); +$w180: rgb(180, 180, 180); +$w170: rgb(170, 170, 170); +$w160: rgb(160, 160, 160); +$w150: rgb(150, 150, 150); +$w140: rgb(140, 140, 140); +$w130: rgb(130, 130, 130); +$w120: rgb(120, 120, 120); +$w110: rgb(110, 110, 110); +$w100: rgb(100, 100, 100); + +$g90: rgb(90, 90, 90); +$g80: rgb(80, 80, 80); +$g70: rgb(70, 70, 70); +$g60: rgb(60, 60, 60); +$g50: rgb(50, 50, 50); +$g40: rgb(40, 40, 40); +$g30: rgb(30, 30, 30); +$g20: rgb(20, 20, 20); +$g10: rgb(10, 10, 10); +$g0: rgb(0, 0, 0); + +$ombre: rgba(10,10,10,0.2); + + +$mainFont: 'Arial, sans-serif'; + +$mini: "(max-width: 1000px)"; +$desktop: "(min-width: 1001px)"; + + +$Loadersize: 20px; + +//tailles + +$headerHeight: 60px; +$headerColor: #373F46; + + +$boutonfont: 14px; +$boutonH: 20px; + +$aside-w: 180px; + +$contentSize: 170px; + +// fonts + + + +@mixin transition($args...) { + -webkit-transition: $args; + -moz-transition: $args; + -o-transition: $args; + -ms-transition: $args; + transition: $args; +} + +@mixin scale($scale) { + -webkit-transform: scale($scale); + -moz-transform: scale($scale); + -o-transform: scale($scale); + -ms-transform: scale($scale); + transform: scale($scale); +} + +@mixin rotate($angle) { + -webkit-transform: rotate($angle); + -moz-transform: rotate($angle); + -o-transform: rotate($angle); + -ms-transform: rotate($angle); + transform: rotate($angle); +} + +@mixin translateX($value) { + -webkit-transform: translateX($value); + -moz-transform: translateX($value); + -o-transform: translateX($value); + -ms-transform: translateX($value); + transform: translateX($value); +} + +@mixin translateY($value) { + -webkit-transform: translateY($value); + -moz-transform: translateY($value); + -o-transform: translateY($value); + -ms-transform: translateY($value); + transform: translateY($value); +} + +@mixin translate($x, $y) { + -webkit-transform: translate($x, $y); + -moz-transform: translate($x, $y); + -o-transform: translate($x, $y); + -ms-transform: translate($x, $y); + transform: translate($x, $y); +} + +@mixin userselect { + -webkit-user-select: none; + -o-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +@mixin ellipsis { + overflow: hidden; + text-overflow: ellipsis; + word-wrap: break-word; + white-space: nowrap; +} + +@mixin inputbase { + outline: none; + border: none; + background: none; + padding: 0; +} + +@mixin bg-center { + background: { + size: cover; + position: center center; + repeat: no-repeat; + }; +} + +@mixin filter($property) { + -webkit-filter: $property; + -o-filter: $property; + -moz-filter: $property; + -ms-filter: $property; + filter: $property; +} \ No newline at end of file diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100755 index 00000000..ae7bbdb7 Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/icons/.directory b/public/icons/.directory new file mode 100755 index 00000000..e5d50763 --- /dev/null +++ b/public/icons/.directory @@ -0,0 +1,4 @@ +[Dolphin] +PreviewsShown=true +Timestamp=2018,11,1,10,45,49 +Version=4 diff --git a/public/icons/android-chrome-192x192.png b/public/icons/android-chrome-192x192.png new file mode 100755 index 00000000..ef8f28f1 Binary files /dev/null and b/public/icons/android-chrome-192x192.png differ diff --git a/public/icons/android-chrome-512x512.png b/public/icons/android-chrome-512x512.png new file mode 100755 index 00000000..46cdc868 Binary files /dev/null and b/public/icons/android-chrome-512x512.png differ diff --git a/public/icons/apple-touch-icon.png b/public/icons/apple-touch-icon.png new file mode 100755 index 00000000..5291627b Binary files /dev/null and b/public/icons/apple-touch-icon.png differ diff --git a/public/icons/favicon-16x16.png b/public/icons/favicon-16x16.png new file mode 100755 index 00000000..f052d7c2 Binary files /dev/null and b/public/icons/favicon-16x16.png differ diff --git a/public/icons/favicon-32x32.png b/public/icons/favicon-32x32.png new file mode 100755 index 00000000..9855a45c Binary files /dev/null and b/public/icons/favicon-32x32.png differ diff --git a/public/icons/favicon.ico b/public/icons/favicon.ico new file mode 100755 index 00000000..fd1950b5 Binary files /dev/null and b/public/icons/favicon.ico differ diff --git a/public/icons/flag_de.svg b/public/icons/flag_de.svg new file mode 100755 index 00000000..1acf302d --- /dev/null +++ b/public/icons/flag_de.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/icons/flag_es.svg b/public/icons/flag_es.svg new file mode 100755 index 00000000..8791e51a --- /dev/null +++ b/public/icons/flag_es.svg @@ -0,0 +1,544 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/icons/flag_gb.svg b/public/icons/flag_gb.svg new file mode 100755 index 00000000..64d1a1c3 --- /dev/null +++ b/public/icons/flag_gb.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/icons/flag_it.svg b/public/icons/flag_it.svg new file mode 100755 index 00000000..615c58fb --- /dev/null +++ b/public/icons/flag_it.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/icons/flag_us.svg b/public/icons/flag_us.svg new file mode 100755 index 00000000..5b552671 --- /dev/null +++ b/public/icons/flag_us.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/images/.directory b/public/images/.directory new file mode 100755 index 00000000..7f0268a6 --- /dev/null +++ b/public/images/.directory @@ -0,0 +1,5 @@ +[Dolphin] +PreviewsShown=true +Timestamp=2019,2,24,19,27,34 +Version=4 +ViewMode=1 diff --git a/public/images/advcash.jpg b/public/images/advcash.jpg new file mode 100755 index 00000000..889450f3 Binary files /dev/null and b/public/images/advcash.jpg differ diff --git a/public/images/all_together.jpg b/public/images/all_together.jpg new file mode 100755 index 00000000..07667df4 Binary files /dev/null and b/public/images/all_together.jpg differ diff --git a/public/images/avatar-1.svg b/public/images/avatar-1.svg new file mode 100755 index 00000000..e12224c5 --- /dev/null +++ b/public/images/avatar-1.svg @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/cibo_sano.jpg b/public/images/cibo_sano.jpg new file mode 100755 index 00000000..7a88ebb5 Binary files /dev/null and b/public/images/cibo_sano.jpg differ diff --git a/public/images/cover.jpg b/public/images/cover.jpg new file mode 100755 index 00000000..af6d14f1 Binary files /dev/null and b/public/images/cover.jpg differ diff --git a/public/images/de.png b/public/images/de.png new file mode 100755 index 00000000..97cb239c Binary files /dev/null and b/public/images/de.png differ diff --git a/public/images/es.png b/public/images/es.png new file mode 100755 index 00000000..d66a9504 Binary files /dev/null and b/public/images/es.png differ diff --git a/public/images/foto1.jpg b/public/images/foto1.jpg new file mode 100755 index 00000000..83fef46b Binary files /dev/null and b/public/images/foto1.jpg differ diff --git a/public/images/foto2.jpg b/public/images/foto2.jpg new file mode 100755 index 00000000..83fef46b Binary files /dev/null and b/public/images/foto2.jpg differ diff --git a/public/images/foto3.jpg b/public/images/foto3.jpg new file mode 100755 index 00000000..83fef46b Binary files /dev/null and b/public/images/foto3.jpg differ diff --git a/public/images/freeplanet-logo-full-prec.svg b/public/images/freeplanet-logo-full-prec.svg new file mode 100755 index 00000000..6c9eaaae --- /dev/null +++ b/public/images/freeplanet-logo-full-prec.svg @@ -0,0 +1,1186 @@ + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/freeplanet-logo-full.odg b/public/images/freeplanet-logo-full.odg new file mode 100755 index 00000000..854da650 Binary files /dev/null and b/public/images/freeplanet-logo-full.odg differ diff --git a/public/images/freeplanet-logo-full.svg b/public/images/freeplanet-logo-full.svg new file mode 100755 index 00000000..b9c10df3 --- /dev/null +++ b/public/images/freeplanet-logo-full.svg @@ -0,0 +1,1186 @@ + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/freeplanet-logo-full_old2.svg b/public/images/freeplanet-logo-full_old2.svg new file mode 100755 index 00000000..db5a6b47 --- /dev/null +++ b/public/images/freeplanet-logo-full_old2.svg @@ -0,0 +1,726 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FreePlanet + FreePlanet + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/gb.png b/public/images/gb.png new file mode 100755 index 00000000..fa38aaa5 Binary files /dev/null and b/public/images/gb.png differ diff --git a/public/images/group-together.jpg b/public/images/group-together.jpg new file mode 100755 index 00000000..58cafa43 Binary files /dev/null and b/public/images/group-together.jpg differ diff --git a/public/images/hand_people.jpg b/public/images/hand_people.jpg new file mode 100755 index 00000000..19671ef5 Binary files /dev/null and b/public/images/hand_people.jpg differ diff --git a/public/images/imglogonotif.png b/public/images/imglogonotif.png new file mode 100755 index 00000000..b5e10dbb Binary files /dev/null and b/public/images/imglogonotif.png differ diff --git a/public/images/it.png b/public/images/it.png new file mode 100755 index 00000000..3db1442f Binary files /dev/null and b/public/images/it.png differ diff --git a/public/images/landing_first_section.png b/public/images/landing_first_section.png new file mode 100755 index 00000000..328d9af7 Binary files /dev/null and b/public/images/landing_first_section.png differ diff --git a/public/images/mountains.jpg b/public/images/mountains.jpg new file mode 100755 index 00000000..83fef46b Binary files /dev/null and b/public/images/mountains.jpg differ diff --git a/public/images/old.freeplanet-logo-full.svg b/public/images/old.freeplanet-logo-full.svg new file mode 100755 index 00000000..763ad10a --- /dev/null +++ b/public/images/old.freeplanet-logo-full.svg @@ -0,0 +1,482 @@ + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Free Planet + Free Planet + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/payeer.jpg b/public/images/payeer.jpg new file mode 100755 index 00000000..04b07595 Binary files /dev/null and b/public/images/payeer.jpg differ diff --git a/public/images/paypal.jpg b/public/images/paypal.jpg new file mode 100755 index 00000000..a6173a79 Binary files /dev/null and b/public/images/paypal.jpg differ diff --git a/public/images/regalo.jpg b/public/images/regalo.jpg new file mode 100755 index 00000000..32d09c99 Binary files /dev/null and b/public/images/regalo.jpg differ diff --git a/public/images/revolut.jpg b/public/images/revolut.jpg new file mode 100755 index 00000000..35e00b0b Binary files /dev/null and b/public/images/revolut.jpg differ diff --git a/public/js/fetch.js b/public/js/fetch.js new file mode 100755 index 00000000..5516b6e6 --- /dev/null +++ b/public/js/fetch.js @@ -0,0 +1,457 @@ +(function (self) { + if (self.fetch) { + return + } + + const support = { + searchParams: 'URLSearchParams' in self, + iterable: 'Symbol' in self && 'iterator' in Symbol, + blob: 'FileReader' in self && 'Blob' in self && (function () { + try { + new Blob() + return true + } catch (e) { + return false + } + }()), + formData: 'FormData' in self, + arrayBuffer: 'ArrayBuffer' in self, + } + + if (support.arrayBuffer) { + const viewClasses = [ + '[object Int8Array]', + '[object Uint8Array]', + '[object Uint8ClampedArray]', + '[object Int16Array]', + '[object Uint16Array]', + '[object Int32Array]', + '[object Uint32Array]', + '[object Float32Array]', + '[object Float64Array]', + ] + + var isDataView = function (obj) { + return obj && DataView.prototype.isPrototypeOf(obj) + } + + var isArrayBufferView = ArrayBuffer.isView || function (obj) { + return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1 + } + } + + function normalizeName(name) { + if (typeof name !== 'string') { + name = String(name) + } + if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) { + throw new TypeError('Invalid character in header field nametranslate') + } + return name.toLowerCase() + } + + function normalizeValue(value) { + if (typeof value !== 'string') { + value = String(value) + } + return value + } + + // Build a destructive iterator for the value list + function iteratorFor(items) { + const iterator = { + next() { + const value = items.shift() + return { done: value === undefined, value } + }, + } + + if (support.iterable) { + iterator[Symbol.iterator] = function () { + return iterator + } + } + + return iterator + } + + function Headers(headers) { + this.map = {} + + if (headers instanceof Headers) { + headers.forEach(function (value, name) { + this.append(name, value) + }, this) + } else if (Array.isArray(headers)) { + headers.forEach(function (header) { + this.append(header[0], header[1]) + }, this) + } else if (headers) { + Object.getOwnPropertyNames(headers).forEach(function (name) { + this.append(name, headers[name]) + }, this) + } + } + + Headers.prototype.append = function (name, value) { + name = normalizeName(name) + value = normalizeValue(value) + const oldValue = this.map[name] + this.map[name] = oldValue ? `${oldValue},${value}` : value + } + + Headers.prototype.delete = function (name) { + delete this.map[normalizeName(name)] + } + + Headers.prototype.get = function (name) { + name = normalizeName(name) + return this.has(name) ? this.map[name] : null + } + + Headers.prototype.has = function (name) { + return this.map.hasOwnProperty(normalizeName(name)) + } + + Headers.prototype.set = function (name, value) { + this.map[normalizeName(name)] = normalizeValue(value) + } + + Headers.prototype.forEach = function (callback, thisArg) { + for (const name in this.map) { + if (this.map.hasOwnProperty(name)) { + callback.call(thisArg, this.map[name], name, this) + } + } + } + + Headers.prototype.keys = function () { + const items = [] + this.forEach((value, name) => { items.push(name) }) + return iteratorFor(items) + } + + Headers.prototype.values = function () { + const items = [] + this.forEach((value) => { items.push(value) }) + return iteratorFor(items) + } + + Headers.prototype.entries = function () { + const items = [] + this.forEach((value, name) => { items.push([name, value]) }) + return iteratorFor(items) + } + + if (support.iterable) { + Headers.prototype[Symbol.iterator] = Headers.prototype.entries + } + + function consumed(body) { + if (body.bodyUsed) { + return Promise.reject(new TypeError('Already read')) + } + body.bodyUsed = true + } + + function fileReaderReady(reader) { + return new Promise((resolve, reject) => { + reader.onload = function () { + resolve(reader.result) + } + reader.onerror = function () { + reject(reader.error) + } + }) + } + + function readBlobAsArrayBuffer(blob) { + const reader = new FileReader() + const promise = fileReaderReady(reader) + reader.readAsArrayBuffer(blob) + return promise + } + + function readBlobAsText(blob) { + const reader = new FileReader() + const promise = fileReaderReady(reader) + reader.readAsText(blob) + return promise + } + + function readArrayBufferAsText(buf) { + const view = new Uint8Array(buf) + const chars = new Array(view.length) + + for (let i = 0; i < view.length; i++) { + chars[i] = String.fromCharCode(view[i]) + } + return chars.join('') + } + + function bufferClone(buf) { + if (buf.slice) { + return buf.slice(0) + } + const view = new Uint8Array(buf.byteLength) + view.set(new Uint8Array(buf)) + return view.buffer + } + + function Body() { + this.bodyUsed = false + + this._initBody = function (body) { + this._bodyInit = body + if (!body) { + this._bodyText = '' + } else if (typeof body === 'string') { + this._bodyText = body + } else if (support.blob && Blob.prototype.isPrototypeOf(body)) { + this._bodyBlob = body + } else if (support.formData && FormData.prototype.isPrototypeOf(body)) { + this._bodyFormData = body + } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { + this._bodyText = body.toString() + } else if (support.arrayBuffer && support.blob && isDataView(body)) { + this._bodyArrayBuffer = bufferClone(body.buffer) + // IE 10-11 can't handle a DataView body. + this._bodyInit = new Blob([this._bodyArrayBuffer]) + } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) { + this._bodyArrayBuffer = bufferClone(body) + } else { + throw new Error('unsupported BodyInit type') + } + + if (!this.headers.get('content-type')) { + if (typeof body === 'string') { + this.headers.set('content-type', 'text/plain;charset=UTF-8') + } else if (this._bodyBlob && this._bodyBlob.type) { + this.headers.set('content-type', this._bodyBlob.type) + } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { + this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8') + } + } + } + + if (support.blob) { + this.blob = function () { + const rejected = consumed(this) + if (rejected) { + return rejected + } + + if (this._bodyBlob) { + return Promise.resolve(this._bodyBlob) + } if (this._bodyArrayBuffer) { + return Promise.resolve(new Blob([this._bodyArrayBuffer])) + } if (this._bodyFormData) { + throw new Error('could not read FormData body as blob') + } else { + return Promise.resolve(new Blob([this._bodyText])) + } + } + + this.arrayBuffer = function () { + if (this._bodyArrayBuffer) { + return consumed(this) || Promise.resolve(this._bodyArrayBuffer) + } + return this.blob().then(readBlobAsArrayBuffer) + } + } + + this.text = function () { + const rejected = consumed(this) + if (rejected) { + return rejected + } + + if (this._bodyBlob) { + return readBlobAsText(this._bodyBlob) + } if (this._bodyArrayBuffer) { + return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer)) + } if (this._bodyFormData) { + throw new Error('could not read FormData body as text') + } else { + return Promise.resolve(this._bodyText) + } + } + + if (support.formData) { + this.formData = function () { + return this.text().then(decode) + } + } + + this.json = function () { + return this.text().then(JSON.parse) + } + + return this + } + + // HTTP methods whose capitalization should be normalized + const methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'] + + function normalizeMethod(method) { + const upcased = method.toUpperCase() + return (methods.indexOf(upcased) > -1) ? upcased : method + } + + function Request(input, options) { + options = options || {} + let { body } = options + + if (input instanceof Request) { + if (input.bodyUsed) { + throw new TypeError('Already read') + } + this.url = input.url + this.credentials = input.credentials + if (!options.headers) { + this.headers = new Headers(input.headers) + } + this.method = input.method + this.mode = input.mode + if (!body && input._bodyInit != null) { + body = input._bodyInit + input.bodyUsed = true + } + } else { + this.url = String(input) + } + + this.credentials = options.credentials || this.credentials || 'omit' + if (options.headers || !this.headers) { + this.headers = new Headers(options.headers) + } + this.method = normalizeMethod(options.method || this.method || 'GET') + this.mode = options.mode || this.mode || null + this.referrer = null + + if ((this.method === 'GET' || this.method === 'HEAD') && body) { + throw new TypeError('Body not allowed for GET or HEAD requests') + } + this._initBody(body) + } + + Request.prototype.clone = function () { + return new Request(this, { body: this._bodyInit }) + } + + function decode(body) { + const form = new FormData() + body.trim().split('&').forEach((bytes) => { + if (bytes) { + const split = bytes.split('=') + const name = split.shift().replace(/\+/g, ' ') + const value = split.join('=').replace(/\+/g, ' ') + form.append(decodeURIComponent(name), decodeURIComponent(value)) + } + }) + return form + } + + function parseHeaders(rawHeaders) { + const headers = new Headers() + rawHeaders.split(/\r?\n/).forEach((line) => { + const parts = line.split(':') + const key = parts.shift().trim() + if (key) { + const value = parts.join(':').trim() + headers.append(key, value) + } + }) + return headers + } + + Body.call(Request.prototype) + + function Response(bodyInit, options) { + if (!options) { + options = {} + } + + this.type = 'default' + this.status = 'status' in options ? options.status : 200 + this.ok = this.status >= 200 && this.status < 300 + this.statusText = 'statusText' in options ? options.statusText : 'OK' + this.headers = new Headers(options.headers) + this.url = options.url || '' + this._initBody(bodyInit) + } + + Body.call(Response.prototype) + + Response.prototype.clone = function () { + return new Response(this._bodyInit, { + status: this.status, + statusText: this.statusText, + headers: new Headers(this.headers), + url: this.url, + }) + } + + Response.error = function () { + const response = new Response(null, { status: 0, statusText: '' }) + response.type = 'error' + return response + } + + const redirectStatuses = [301, 302, 303, 307, 308] + + Response.redirect = function (url, status) { + if (redirectStatuses.indexOf(status) === -1) { + throw new RangeError('Invalid status code') + } + + return new Response(null, { status, headers: { location: url } }) + } + + self.Headers = Headers + self.Request = Request + self.Response = Response + + self.fetch = function (input, init) { + return new Promise((resolve, reject) => { + const request = new Request(input, init) + const xhr = new XMLHttpRequest() + + xhr.onload = function () { + const options = { + status: xhr.status, + statusText: xhr.statusText, + headers: parseHeaders(xhr.getAllResponseHeaders() || ''), + } + options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL') + const body = 'response' in xhr ? xhr.response : xhr.responseText + resolve(new Response(body, options)) + } + + xhr.onerror = function () { + reject(new TypeError('Network request failed')) + } + + xhr.ontimeout = function () { + reject(new TypeError('Network request failed')) + } + + xhr.open(request.method, request.url, true) + + if (request.credentials === 'include') { + xhr.withCredentials = true + } + + if ('responseType' in xhr && support.blob) { + xhr.responseType = 'blob' + } + + request.headers.forEach((value, name) => { + xhr.setRequestHeader(name, value) + }) + + xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit) + }) + } + self.fetch.polyfill = true +}(typeof self !== 'undefined' ? self : this)); diff --git a/public/js/globalenv.js b/public/js/globalenv.js new file mode 100755 index 00000000..f88f9996 --- /dev/null +++ b/public/js/globalenv.js @@ -0,0 +1,25 @@ +// importScripts('/public/js/immortal-db.min.js'); + +/* +const cfgenv = { + website: 'http://localhost:8081', + serverweb: 'http://localhost:3000', + dbname: 'mydb3', + dbversion: 10, +} +*/ + +/* +async function clearAllDataImmortal(table) { + console.log('clearAllDataImmortal', table) + const db = ImmortalDB.ImmortalDB + await db.remove(table) +} + +async function writeDataImmortal(table, datavalue) { + console.log('writeDataImmortal', table, datavalue) + const db = ImmortalDB.ImmortalDB + await db.set(table, datavalue) +} + +*/ diff --git a/public/js/idb.js b/public/js/idb.js new file mode 100755 index 00000000..3feb6255 --- /dev/null +++ b/public/js/idb.js @@ -0,0 +1,306 @@ +(function () { + function toArray(arr) { + return Array.prototype.slice.call(arr); + } + + function promisifyRequest(request) { + return new Promise((resolve, reject) => { + request.onsuccess = function () { + resolve(request.result); + }; + + request.onerror = function () { + reject(request.error); + }; + }); + } + + function promisifyRequestCall(obj, method, args) { + let request; + const p = new Promise((resolve, reject) => { + request = obj[method].apply(obj, args); + promisifyRequest(request).then(resolve, reject); + }); + + p.request = request; + return p; + } + + function promisifyCursorRequestCall(obj, method, args) { + const p = promisifyRequestCall(obj, method, args); + return p.then((value) => { + if (!value) return; + return new Cursor(value, p.request); + }); + } + + function proxyProperties(ProxyClass, targetProp, properties) { + properties.forEach((prop) => { + Object.defineProperty(ProxyClass.prototype, prop, { + get() { + return this[targetProp][prop]; + }, + set(val) { + this[targetProp][prop] = val; + }, + }); + }); + } + + function proxyRequestMethods(ProxyClass, targetProp, Constructor, properties) { + properties.forEach((prop) => { + if (!(prop in Constructor.prototype)) return; + ProxyClass.prototype[prop] = function () { + return promisifyRequestCall(this[targetProp], prop, arguments); + }; + }); + } + + function proxyMethods(ProxyClass, targetProp, Constructor, properties) { + properties.forEach((prop) => { + if (!(prop in Constructor.prototype)) return; + ProxyClass.prototype[prop] = function () { + return this[targetProp][prop].apply(this[targetProp], arguments); + }; + }); + } + + function proxyCursorRequestMethods(ProxyClass, targetProp, Constructor, properties) { + properties.forEach((prop) => { + if (!(prop in Constructor.prototype)) return; + ProxyClass.prototype[prop] = function () { + return promisifyCursorRequestCall(this[targetProp], prop, arguments); + }; + }); + } + + function Index(index) { + this._index = index; + } + + proxyProperties(Index, '_index', [ + 'name', + 'keyPath', + 'multiEntry', + 'unique', + ]); + + proxyRequestMethods(Index, '_index', IDBIndex, [ + 'get', + 'getKey', + 'getAll', + 'getAllKeys', + 'count', + ]); + + proxyCursorRequestMethods(Index, '_index', IDBIndex, [ + 'openCursor', + 'openKeyCursor', + ]); + + function Cursor(cursor, request) { + this._cursor = cursor; + this._request = request; + } + + proxyProperties(Cursor, '_cursor', [ + 'direction', + 'key', + 'primaryKey', + 'value', + ]); + + proxyRequestMethods(Cursor, '_cursor', IDBCursor, [ + 'update', + 'delete', + ]); + + // proxy 'next' methods + ['advance', 'continue', 'continuePrimaryKey'].forEach((methodName) => { + if (!(methodName in IDBCursor.prototype)) return; + Cursor.prototype[methodName] = function () { + const cursor = this; + const args = arguments; + return Promise.resolve().then(() => { + cursor._cursor[methodName].apply(cursor._cursor, args); + return promisifyRequest(cursor._request).then((value) => { + if (!value) return; + return new Cursor(value, cursor._request); + }); + }); + }; + }); + + function ObjectStore(store) { + this._store = store; + } + + ObjectStore.prototype.createIndex = function () { + return new Index(this._store.createIndex.apply(this._store, arguments)); + }; + + ObjectStore.prototype.index = function () { + return new Index(this._store.index.apply(this._store, arguments)); + }; + + proxyProperties(ObjectStore, '_store', [ + 'name', + 'keyPath', + 'indexNames', + 'autoIncrement', + ]); + + proxyRequestMethods(ObjectStore, '_store', IDBObjectStore, [ + 'put', + 'add', + 'delete', + 'clear', + 'get', + 'getAll', + 'getKey', + 'getAllKeys', + 'count', + ]); + + proxyCursorRequestMethods(ObjectStore, '_store', IDBObjectStore, [ + 'openCursor', + 'openKeyCursor', + ]); + + proxyMethods(ObjectStore, '_store', IDBObjectStore, [ + 'deleteIndex', + ]); + + function Transaction(idbTransaction) { + this._tx = idbTransaction; + this.complete = new Promise((resolve, reject) => { + idbTransaction.oncomplete = function () { + resolve(); + }; + idbTransaction.onerror = function () { + reject(idbTransaction.error); + }; + idbTransaction.onabort = function () { + reject(idbTransaction.error); + }; + }); + } + + Transaction.prototype.objectStore = function () { + return new ObjectStore(this._tx.objectStore.apply(this._tx, arguments)); + }; + + proxyProperties(Transaction, '_tx', [ + 'objectStoreNames', + 'mode', + ]); + + proxyMethods(Transaction, '_tx', IDBTransaction, [ + 'abort', + ]); + + function UpgradeDB(db, oldVersion, transaction) { + this._db = db; + this.oldVersion = oldVersion; + this.transaction = new Transaction(transaction); + } + + UpgradeDB.prototype.createObjectStore = function () { + return new ObjectStore(this._db.createObjectStore.apply(this._db, arguments)); + }; + + proxyProperties(UpgradeDB, '_db', [ + 'name', + 'version', + 'objectStoreNames', + ]); + + proxyMethods(UpgradeDB, '_db', IDBDatabase, [ + 'deleteObjectStore', + 'close', + ]); + + function DB(db) { + this._db = db; + } + + DB.prototype.transaction = function () { + return new Transaction(this._db.transaction.apply(this._db, arguments)); + }; + + proxyProperties(DB, '_db', [ + 'name', + 'version', + 'objectStoreNames', + ]); + + proxyMethods(DB, '_db', IDBDatabase, [ + 'close', + ]); + + // Add cursor iterators + // TODO: remove this once browsers do the right thing with promises + ['openCursor', 'openKeyCursor'].forEach((funcName) => { + [ObjectStore, Index].forEach((Constructor) => { + Constructor.prototype[funcName.replace('open', 'iterate')] = function () { + const args = toArray(arguments); + const callback = args[args.length - 1]; + const nativeObject = this._store || this._index; + const request = nativeObject[funcName].apply(nativeObject, args.slice(0, -1)); + request.onsuccess = function () { + callback(request.result); + }; + }; + }); + }); + + // polyfill getAll + [Index, ObjectStore].forEach((Constructor) => { + if (Constructor.prototype.getAll) return; + Constructor.prototype.getAll = function (query, count) { + const instance = this; + const items = []; + + return new Promise((resolve) => { + instance.iterateCursor(query, (cursor) => { + if (!cursor) { + resolve(items); + return; + } + items.push(cursor.value); + + if (!!count && items.length == count) { + resolve(items); + return; + } + cursor.continue(); + }); + }); + }; + }); + + const exp = { + open(name, version, upgradeCallback) { + const p = promisifyRequestCall(indexedDB, 'open', [name, version]); + const { request } = p; + + request.onupgradeneeded = function (event) { + if (upgradeCallback) { + upgradeCallback(new UpgradeDB(request.result, event.oldVersion, request.transaction)); + } + }; + + return p.then((db) => new DB(db)); + }, + delete(name) { + return promisifyRequestCall(indexedDB, 'deleteDatabase', [name]); + }, + }; + + if (typeof module !== 'undefined') { + module.exports = exp; + module.exports.default = module.exports; + } else { + self.idb = exp; + } +}()); diff --git a/public/js/material.min.js b/public/js/material.min.js new file mode 100755 index 00000000..46524fbc --- /dev/null +++ b/public/js/material.min.js @@ -0,0 +1,10 @@ +/** + * material-design-lite - Material Design Components in CSS, JS and HTML + * @version v1.3.0 + * @license Apache-2.0 + * @copyright 2015 Google, Inc. + * @link https://github.com/google/material-design-lite + */ +!function(){"use strict";function e(e,t){if(e){if(t.element_.classList.contains(t.CssClasses_.MDL_JS_RIPPLE_EFFECT)){var s=document.createElement("span");s.classList.add(t.CssClasses_.MDL_RIPPLE_CONTAINER),s.classList.add(t.CssClasses_.MDL_JS_RIPPLE_EFFECT);var i=document.createElement("span");i.classList.add(t.CssClasses_.MDL_RIPPLE),s.appendChild(i),e.appendChild(s)}e.addEventListener("click",function(s){if("#"===e.getAttribute("href").charAt(0)){s.preventDefault();var i=e.href.split("#")[1],n=t.element_.querySelector("#"+i);t.resetTabState_(),t.resetPanelState_(),e.classList.add(t.CssClasses_.ACTIVE_CLASS),n.classList.add(t.CssClasses_.ACTIVE_CLASS)}})}}function t(e,t,s,i){function n(){var n=e.href.split("#")[1],a=i.content_.querySelector("#"+n);i.resetTabState_(t),i.resetPanelState_(s),e.classList.add(i.CssClasses_.IS_ACTIVE),a.classList.add(i.CssClasses_.IS_ACTIVE)}if(i.tabBar_.classList.contains(i.CssClasses_.JS_RIPPLE_EFFECT)){var a=document.createElement("span");a.classList.add(i.CssClasses_.RIPPLE_CONTAINER),a.classList.add(i.CssClasses_.JS_RIPPLE_EFFECT);var l=document.createElement("span");l.classList.add(i.CssClasses_.RIPPLE),a.appendChild(l),e.appendChild(a)}i.tabBar_.classList.contains(i.CssClasses_.TAB_MANUAL_SWITCH)||e.addEventListener("click",function(t){"#"===e.getAttribute("href").charAt(0)&&(t.preventDefault(),n())}),e.show=n}var s={upgradeDom:function(e,t){},upgradeElement:function(e,t){},upgradeElements:function(e){},upgradeAllRegistered:function(){},registerUpgradedCallback:function(e,t){},register:function(e){},downgradeElements:function(e){}};s=function(){function e(e,t){for(var s=0;s0&&l(t.children))}function o(t){var s="undefined"==typeof t.widget&&"undefined"==typeof t.widget,i=!0;s||(i=t.widget||t.widget);var n={classConstructor:t.constructor||t.constructor,className:t.classAsString||t.classAsString,cssClass:t.cssClass||t.cssClass,widget:i,callbacks:[]};if(c.forEach(function(e){if(e.cssClass===n.cssClass)throw new Error("The provided cssClass has already been registered: "+e.cssClass);if(e.className===n.className)throw new Error("The provided className has already been registered")}),t.constructor.prototype.hasOwnProperty(C))throw new Error("MDL component classes must not have "+C+" defined as a property.");var a=e(t.classAsString,n);a||c.push(n)}function r(t,s){var i=e(t);i&&i.callbacks.push(s)}function _(){for(var e=0;e0&&this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)&&(e.keyCode===this.Keycodes_.UP_ARROW?(e.preventDefault(),t[t.length-1].focus()):e.keyCode===this.Keycodes_.DOWN_ARROW&&(e.preventDefault(),t[0].focus()))}},d.prototype.handleItemKeyboardEvent_=function(e){if(this.element_&&this.container_){var t=this.element_.querySelectorAll("."+this.CssClasses_.ITEM+":not([disabled])");if(t&&t.length>0&&this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)){var s=Array.prototype.slice.call(t).indexOf(e.target);if(e.keyCode===this.Keycodes_.UP_ARROW)e.preventDefault(),s>0?t[s-1].focus():t[t.length-1].focus();else if(e.keyCode===this.Keycodes_.DOWN_ARROW)e.preventDefault(),t.length>s+1?t[s+1].focus():t[0].focus();else if(e.keyCode===this.Keycodes_.SPACE||e.keyCode===this.Keycodes_.ENTER){e.preventDefault();var i=new MouseEvent("mousedown");e.target.dispatchEvent(i),i=new MouseEvent("mouseup"),e.target.dispatchEvent(i),e.target.click()}else e.keyCode===this.Keycodes_.ESCAPE&&(e.preventDefault(),this.hide())}}},d.prototype.handleItemClick_=function(e){e.target.hasAttribute("disabled")?e.stopPropagation():(this.closing_=!0,window.setTimeout(function(e){this.hide(),this.closing_=!1}.bind(this),this.Constant_.CLOSE_TIMEOUT))},d.prototype.applyClip_=function(e,t){this.element_.classList.contains(this.CssClasses_.UNALIGNED)?this.element_.style.clip="":this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT)?this.element_.style.clip="rect(0 "+t+"px 0 "+t+"px)":this.element_.classList.contains(this.CssClasses_.TOP_LEFT)?this.element_.style.clip="rect("+e+"px 0 "+e+"px 0)":this.element_.classList.contains(this.CssClasses_.TOP_RIGHT)?this.element_.style.clip="rect("+e+"px "+t+"px "+e+"px "+t+"px)":this.element_.style.clip=""},d.prototype.removeAnimationEndListener_=function(e){e.target.classList.remove(d.prototype.CssClasses_.IS_ANIMATING)},d.prototype.addAnimationEndListener_=function(){this.element_.addEventListener("transitionend",this.removeAnimationEndListener_),this.element_.addEventListener("webkitTransitionEnd",this.removeAnimationEndListener_)},d.prototype.show=function(e){if(this.element_&&this.container_&&this.outline_){var t=this.element_.getBoundingClientRect().height,s=this.element_.getBoundingClientRect().width;this.container_.style.width=s+"px",this.container_.style.height=t+"px",this.outline_.style.width=s+"px",this.outline_.style.height=t+"px";for(var i=this.Constant_.TRANSITION_DURATION_SECONDS*this.Constant_.TRANSITION_DURATION_FRACTION,n=this.element_.querySelectorAll("."+this.CssClasses_.ITEM),a=0;a0&&this.showSnackbar(this.queuedNotifications_.shift())},C.prototype.cleanup_=function(){this.element_.classList.remove(this.cssClasses_.ACTIVE),setTimeout(function(){this.element_.setAttribute("aria-hidden","true"),this.textElement_.textContent="",Boolean(this.actionElement_.getAttribute("aria-hidden"))||(this.setActionHidden_(!0),this.actionElement_.textContent="",this.actionElement_.removeEventListener("click",this.actionHandler_)),this.actionHandler_=void 0,this.message_=void 0,this.actionText_=void 0,this.active=!1,this.checkQueue_()}.bind(this),this.Constant_.ANIMATION_LENGTH)},C.prototype.setActionHidden_=function(e){e?this.actionElement_.setAttribute("aria-hidden","true"):this.actionElement_.removeAttribute("aria-hidden")},s.register({constructor:C,classAsString:"MaterialSnackbar",cssClass:"mdl-js-snackbar",widget:!0});var u=function(e){this.element_=e,this.init()};window.MaterialSpinner=u,u.prototype.Constant_={MDL_SPINNER_LAYER_COUNT:4},u.prototype.CssClasses_={MDL_SPINNER_LAYER:"mdl-spinner__layer",MDL_SPINNER_CIRCLE_CLIPPER:"mdl-spinner__circle-clipper",MDL_SPINNER_CIRCLE:"mdl-spinner__circle",MDL_SPINNER_GAP_PATCH:"mdl-spinner__gap-patch",MDL_SPINNER_LEFT:"mdl-spinner__left",MDL_SPINNER_RIGHT:"mdl-spinner__right"},u.prototype.createLayer=function(e){var t=document.createElement("div");t.classList.add(this.CssClasses_.MDL_SPINNER_LAYER),t.classList.add(this.CssClasses_.MDL_SPINNER_LAYER+"-"+e);var s=document.createElement("div");s.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE_CLIPPER),s.classList.add(this.CssClasses_.MDL_SPINNER_LEFT);var i=document.createElement("div");i.classList.add(this.CssClasses_.MDL_SPINNER_GAP_PATCH);var n=document.createElement("div");n.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE_CLIPPER),n.classList.add(this.CssClasses_.MDL_SPINNER_RIGHT);for(var a=[s,i,n],l=0;l=this.maxRows&&e.preventDefault()},L.prototype.onFocus_=function(e){this.element_.classList.add(this.CssClasses_.IS_FOCUSED)},L.prototype.onBlur_=function(e){this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)},L.prototype.onReset_=function(e){this.updateClasses_()},L.prototype.updateClasses_=function(){this.checkDisabled(),this.checkValidity(),this.checkDirty(),this.checkFocus()},L.prototype.checkDisabled=function(){this.input_.disabled?this.element_.classList.add(this.CssClasses_.IS_DISABLED):this.element_.classList.remove(this.CssClasses_.IS_DISABLED)},L.prototype.checkDisabled=L.prototype.checkDisabled,L.prototype.checkFocus=function(){Boolean(this.element_.querySelector(":focus"))?this.element_.classList.add(this.CssClasses_.IS_FOCUSED):this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)},L.prototype.checkFocus=L.prototype.checkFocus,L.prototype.checkValidity=function(){this.input_.validity&&(this.input_.validity.valid?this.element_.classList.remove(this.CssClasses_.IS_INVALID):this.element_.classList.add(this.CssClasses_.IS_INVALID))},L.prototype.checkValidity=L.prototype.checkValidity,L.prototype.checkDirty=function(){this.input_.value&&this.input_.value.length>0?this.element_.classList.add(this.CssClasses_.IS_DIRTY):this.element_.classList.remove(this.CssClasses_.IS_DIRTY)},L.prototype.checkDirty=L.prototype.checkDirty,L.prototype.disable=function(){this.input_.disabled=!0,this.updateClasses_()},L.prototype.disable=L.prototype.disable,L.prototype.enable=function(){this.input_.disabled=!1,this.updateClasses_()},L.prototype.enable=L.prototype.enable,L.prototype.change=function(e){this.input_.value=e||"",this.updateClasses_()},L.prototype.change=L.prototype.change,L.prototype.init=function(){if(this.element_&&(this.label_=this.element_.querySelector("."+this.CssClasses_.LABEL),this.input_=this.element_.querySelector("."+this.CssClasses_.INPUT),this.input_)){this.input_.hasAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE)&&(this.maxRows=parseInt(this.input_.getAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE),10),isNaN(this.maxRows)&&(this.maxRows=this.Constant_.NO_MAX_ROWS)),this.input_.hasAttribute("placeholder")&&this.element_.classList.add(this.CssClasses_.HAS_PLACEHOLDER),this.boundUpdateClassesHandler=this.updateClasses_.bind(this),this.boundFocusHandler=this.onFocus_.bind(this),this.boundBlurHandler=this.onBlur_.bind(this),this.boundResetHandler=this.onReset_.bind(this),this.input_.addEventListener("input",this.boundUpdateClassesHandler),this.input_.addEventListener("focus",this.boundFocusHandler),this.input_.addEventListener("blur",this.boundBlurHandler),this.input_.addEventListener("reset",this.boundResetHandler),this.maxRows!==this.Constant_.NO_MAX_ROWS&&(this.boundKeyDownHandler=this.onKeyDown_.bind(this),this.input_.addEventListener("keydown",this.boundKeyDownHandler));var e=this.element_.classList.contains(this.CssClasses_.IS_INVALID);this.updateClasses_(),this.element_.classList.add(this.CssClasses_.IS_UPGRADED),e&&this.element_.classList.add(this.CssClasses_.IS_INVALID),this.input_.hasAttribute("autofocus")&&(this.element_.focus(),this.checkFocus())}},s.register({constructor:L,classAsString:"MaterialTextfield",cssClass:"mdl-js-textfield",widget:!0});var I=function(e){this.element_=e,this.init()};window.MaterialTooltip=I,I.prototype.Constant_={},I.prototype.CssClasses_={IS_ACTIVE:"is-active",BOTTOM:"mdl-tooltip--bottom",LEFT:"mdl-tooltip--left",RIGHT:"mdl-tooltip--right",TOP:"mdl-tooltip--top"},I.prototype.handleMouseEnter_=function(e){var t=e.target.getBoundingClientRect(),s=t.left+t.width/2,i=t.top+t.height/2,n=-1*(this.element_.offsetWidth/2),a=-1*(this.element_.offsetHeight/2);this.element_.classList.contains(this.CssClasses_.LEFT)||this.element_.classList.contains(this.CssClasses_.RIGHT)?(s=t.width/2,i+a<0?(this.element_.style.top="0",this.element_.style.marginTop="0"):(this.element_.style.top=i+"px",this.element_.style.marginTop=a+"px")):s+n<0?(this.element_.style.left="0",this.element_.style.marginLeft="0"):(this.element_.style.left=s+"px",this.element_.style.marginLeft=n+"px"),this.element_.classList.contains(this.CssClasses_.TOP)?this.element_.style.top=t.top-this.element_.offsetHeight-10+"px":this.element_.classList.contains(this.CssClasses_.RIGHT)?this.element_.style.left=t.left+t.width+10+"px":this.element_.classList.contains(this.CssClasses_.LEFT)?this.element_.style.left=t.left-this.element_.offsetWidth-10+"px":this.element_.style.top=t.top+t.height+10+"px",this.element_.classList.add(this.CssClasses_.IS_ACTIVE)},I.prototype.hideTooltip_=function(){this.element_.classList.remove(this.CssClasses_.IS_ACTIVE)},I.prototype.init=function(){if(this.element_){var e=this.element_.getAttribute("for")||this.element_.getAttribute("data-mdl-for");e&&(this.forElement_=document.getElementById(e)),this.forElement_&&(this.forElement_.hasAttribute("tabindex")||this.forElement_.setAttribute("tabindex","0"),this.boundMouseEnterHandler=this.handleMouseEnter_.bind(this),this.boundMouseLeaveAndScrollHandler=this.hideTooltip_.bind(this),this.forElement_.addEventListener("mouseenter",this.boundMouseEnterHandler,!1),this.forElement_.addEventListener("touchend",this.boundMouseEnterHandler,!1),this.forElement_.addEventListener("mouseleave",this.boundMouseLeaveAndScrollHandler,!1),window.addEventListener("scroll",this.boundMouseLeaveAndScrollHandler,!0),window.addEventListener("touchstart",this.boundMouseLeaveAndScrollHandler))}},s.register({constructor:I,classAsString:"MaterialTooltip",cssClass:"mdl-tooltip"});var f=function(e){this.element_=e,this.init()};window.MaterialLayout=f,f.prototype.Constant_={MAX_WIDTH:"(max-width: 1024px)",TAB_SCROLL_PIXELS:100,RESIZE_TIMEOUT:100,MENU_ICON:"",CHEVRON_LEFT:"chevron_left",CHEVRON_RIGHT:"chevron_right"},f.prototype.Keycodes_={ENTER:13,ESCAPE:27,SPACE:32},f.prototype.Mode_={STANDARD:0,SEAMED:1,WATERFALL:2,SCROLL:3},f.prototype.CssClasses_={CONTAINER:"mdl-layout__container",HEADER:"mdl-layout__header",DRAWER:"mdl-layout__drawer",CONTENT:"mdl-layout__content",DRAWER_BTN:"mdl-layout__drawer-button",ICON:"material-icons",JS_RIPPLE_EFFECT:"mdl-js-ripple-effect",RIPPLE_CONTAINER:"mdl-layout__tab-ripple-container",RIPPLE:"mdl-ripple",RIPPLE_IGNORE_EVENTS:"mdl-js-ripple-effect--ignore-events",HEADER_SEAMED:"mdl-layout__header--seamed",HEADER_WATERFALL:"mdl-layout__header--waterfall",HEADER_SCROLL:"mdl-layout__header--scroll",FIXED_HEADER:"mdl-layout--fixed-header",OBFUSCATOR:"mdl-layout__obfuscator",TAB_BAR:"mdl-layout__tab-bar",TAB_CONTAINER:"mdl-layout__tab-bar-container",TAB:"mdl-layout__tab",TAB_BAR_BUTTON:"mdl-layout__tab-bar-button",TAB_BAR_LEFT_BUTTON:"mdl-layout__tab-bar-left-button",TAB_BAR_RIGHT_BUTTON:"mdl-layout__tab-bar-right-button",TAB_MANUAL_SWITCH:"mdl-layout__tab-manual-switch",PANEL:"mdl-layout__tab-panel",HAS_DRAWER:"has-drawer",HAS_TABS:"has-tabs",HAS_SCROLLING_HEADER:"has-scrolling-header",CASTING_SHADOW:"is-casting-shadow",IS_COMPACT:"is-compact",IS_SMALL_SCREEN:"is-small-screen",IS_DRAWER_OPEN:"is-visible",IS_ACTIVE:"is-active",IS_UPGRADED:"is-upgraded",IS_ANIMATING:"is-animating",ON_LARGE_SCREEN:"mdl-layout--large-screen-only",ON_SMALL_SCREEN:"mdl-layout--small-screen-only"},f.prototype.contentScrollHandler_=function(){if(!this.header_.classList.contains(this.CssClasses_.IS_ANIMATING)){var e=!this.element_.classList.contains(this.CssClasses_.IS_SMALL_SCREEN)||this.element_.classList.contains(this.CssClasses_.FIXED_HEADER);this.content_.scrollTop>0&&!this.header_.classList.contains(this.CssClasses_.IS_COMPACT)?(this.header_.classList.add(this.CssClasses_.CASTING_SHADOW),this.header_.classList.add(this.CssClasses_.IS_COMPACT),e&&this.header_.classList.add(this.CssClasses_.IS_ANIMATING)):this.content_.scrollTop<=0&&this.header_.classList.contains(this.CssClasses_.IS_COMPACT)&&(this.header_.classList.remove(this.CssClasses_.CASTING_SHADOW),this.header_.classList.remove(this.CssClasses_.IS_COMPACT),e&&this.header_.classList.add(this.CssClasses_.IS_ANIMATING))}},f.prototype.keyboardEventHandler_=function(e){e.keyCode===this.Keycodes_.ESCAPE&&this.drawer_.classList.contains(this.CssClasses_.IS_DRAWER_OPEN)&&this.toggleDrawer()},f.prototype.screenSizeHandler_=function(){this.screenSizeMediaQuery_.matches?this.element_.classList.add(this.CssClasses_.IS_SMALL_SCREEN):(this.element_.classList.remove(this.CssClasses_.IS_SMALL_SCREEN),this.drawer_&&(this.drawer_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN),this.obfuscator_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN)))},f.prototype.drawerToggleHandler_=function(e){if(e&&"keydown"===e.type){if(e.keyCode!==this.Keycodes_.SPACE&&e.keyCode!==this.Keycodes_.ENTER)return;e.preventDefault()}this.toggleDrawer()},f.prototype.headerTransitionEndHandler_=function(){this.header_.classList.remove(this.CssClasses_.IS_ANIMATING)},f.prototype.headerClickHandler_=function(){this.header_.classList.contains(this.CssClasses_.IS_COMPACT)&&(this.header_.classList.remove(this.CssClasses_.IS_COMPACT),this.header_.classList.add(this.CssClasses_.IS_ANIMATING))},f.prototype.resetTabState_=function(e){for(var t=0;t0?c.classList.add(this.CssClasses_.IS_ACTIVE):c.classList.remove(this.CssClasses_.IS_ACTIVE),this.tabBar_.scrollLeft0)return;this.setFrameCount(1);var i,n,a=e.currentTarget.getBoundingClientRect();if(0===e.clientX&&0===e.clientY)i=Math.round(a.width/2),n=Math.round(a.height/2);else{var l=void 0!==e.clientX?e.clientX:e.touches[0].clientX,o=void 0!==e.clientY?e.clientY:e.touches[0].clientY;i=Math.round(l-a.left),n=Math.round(o-a.top)}this.setRippleXY(i,n),this.setRippleStyles(!0),window.requestAnimationFrame(this.animFrameHandler.bind(this))}},S.prototype.upHandler_=function(e){e&&2!==e.detail&&window.setTimeout(function(){this.rippleElement_.classList.remove(this.CssClasses_.IS_VISIBLE)}.bind(this),0)},S.prototype.init=function(){if(this.element_){var e=this.element_.classList.contains(this.CssClasses_.RIPPLE_CENTER);this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT_IGNORE_EVENTS)||(this.rippleElement_=this.element_.querySelector("."+this.CssClasses_.RIPPLE),this.frameCount_=0,this.rippleSize_=0,this.x_=0,this.y_=0,this.ignoringMouseDown_=!1,this.boundDownHandler=this.downHandler_.bind(this),this.element_.addEventListener("mousedown",this.boundDownHandler),this.element_.addEventListener("touchstart",this.boundDownHandler),this.boundUpHandler=this.upHandler_.bind(this),this.element_.addEventListener("mouseup",this.boundUpHandler),this.element_.addEventListener("mouseleave",this.boundUpHandler),this.element_.addEventListener("touchend",this.boundUpHandler),this.element_.addEventListener("blur",this.boundUpHandler),this.getFrameCount=function(){return this.frameCount_},this.setFrameCount=function(e){this.frameCount_=e},this.getRippleElement=function(){return this.rippleElement_},this.setRippleXY=function(e,t){this.x_=e,this.y_=t},this.setRippleStyles=function(t){if(null!==this.rippleElement_){var s,i,n,a="translate("+this.x_+"px, "+this.y_+"px)";t?(i=this.Constant_.INITIAL_SCALE,n=this.Constant_.INITIAL_SIZE):(i=this.Constant_.FINAL_SCALE,n=this.rippleSize_+"px",e&&(a="translate("+this.boundWidth/2+"px, "+this.boundHeight/2+"px)")),s="translate(-50%, -50%) "+a+i,this.rippleElement_.style.webkitTransform=s,this.rippleElement_.style.msTransform=s,this.rippleElement_.style.transform=s,t?this.rippleElement_.classList.remove(this.CssClasses_.IS_ANIMATING):this.rippleElement_.classList.add(this.CssClasses_.IS_ANIMATING)}},this.animFrameHandler=function(){this.frameCount_-- >0?window.requestAnimationFrame(this.animFrameHandler.bind(this)):this.setRippleStyles(!1)})}},s.register({constructor:S,classAsString:"MaterialRipple",cssClass:"mdl-js-ripple-effect",widget:!1})}(); +//# sourceMappingURL=material.min.js.map diff --git a/public/js/promise.js b/public/js/promise.js new file mode 100755 index 00000000..b90788a6 --- /dev/null +++ b/public/js/promise.js @@ -0,0 +1,368 @@ +/** + * setImmediate polyfill v1.0.1, supports IE9+ + * © 2014–2015 Dmitry Korobkin + * Released under the MIT license + * github.com/Octane/setImmediate + */ +window.setImmediate || (function () { + let uid = 0; + const storage = {}; + let firstCall = true; + const { slice } = Array.prototype; + const message = 'setImmediatePolyfillMessage'; + + function fastApply(args) { + const func = args[0]; + switch (args.length) { + case 1: + return func(); + case 2: + return func(args[1]); + case 3: + return func(args[1], args[2]); + } + return func.apply(window, slice.call(args, 1)); + } + + function callback(event) { + const key = event.data; + let data; + if (typeof key === 'string' && key.indexOf(message) == 0) { + data = storage[key]; + if (data) { + delete storage[key]; + fastApply(data); + } + } + } + + window.setImmediate = function setImmediate() { + const id = uid++; + const key = message + id; + let i = arguments.length; + const args = new Array(i); + while (i--) { + args[i] = arguments[i]; + } + storage[key] = args; + if (firstCall) { + firstCall = false; + window.addEventListener('message', callback); + } + window.postMessage(key, '*'); + return id; + }; + + window.clearImmediate = function clearImmediate(id) { + delete storage[message + id]; + }; +}()); + +/** + * Promise polyfill v1.0.10 + * requires setImmediate + * + * © 2014–2015 Dmitry Korobkin + * Released under the MIT license + * github.com/Octane/Promise + */ +(function (global) { + const STATUS = '[[PromiseStatus]]'; + const VALUE = '[[PromiseValue]]'; + const ON_FUlFILLED = '[[OnFulfilled]]'; + const ON_REJECTED = '[[OnRejected]]'; + const ORIGINAL_ERROR = '[[OriginalError]]'; + const PENDING = 'pending'; + const INTERNAL_PENDING = 'internal pending'; + const FULFILLED = 'fulfilled'; + const REJECTED = 'rejected'; + const NOT_ARRAY = 'not an array.'; + const REQUIRES_NEW = 'constructor Promise requires "new".'; + const CHAINING_CYCLE = 'then() cannot return same Promise that it resolves.'; + + const setImmediate = global.setImmediate || require('timers').setImmediate; + const isArray = Array.isArray || function (anything) { + return Object.prototype.toString.call(anything) == '[object Array]'; + }; + + function InternalError(originalError) { + this[ORIGINAL_ERROR] = originalError; + } + + function isInternalError(anything) { + return anything instanceof InternalError; + } + + function isObject(anything) { + // Object.create(null) instanceof Object → false + return Object(anything) === anything; + } + + function isCallable(anything) { + return typeof anything === 'function'; + } + + function isPromise(anything) { + return anything instanceof Promise; + } + + function identity(value) { + return value; + } + + function thrower(reason) { + throw reason; + } + + function enqueue(promise, onFulfilled, onRejected) { + if (!promise[ON_FUlFILLED]) { + promise[ON_FUlFILLED] = []; + promise[ON_REJECTED] = []; + } + promise[ON_FUlFILLED].push(onFulfilled); + promise[ON_REJECTED].push(onRejected); + } + + function clearAllQueues(promise) { + delete promise[ON_FUlFILLED]; + delete promise[ON_REJECTED]; + } + + function callEach(queue) { + let i; + const { length } = queue; + for (i = 0; i < length; i++) { + queue[i](); + } + } + + function call(resolve, reject, value) { + const anything = toPromise(value); + if (isPromise(anything)) { + anything.then(resolve, reject); + } else if (isInternalError(anything)) { + reject(anything[ORIGINAL_ERROR]); + } else { + resolve(value); + } + } + + function toPromise(anything) { + let then; + if (isPromise(anything)) { + return anything; + } + if (isObject(anything)) { + try { + then = anything.then; + } catch (error) { + return new InternalError(error); + } + if (isCallable(then)) { + return new Promise((resolve, reject) => { + setImmediate(() => { + try { + then.call(anything, resolve, reject); + } catch (error) { + reject(error); + } + }); + }); + } + } + return null; + } + + function resolvePromise(promise, resolver) { + function resolve(value) { + if (promise[STATUS] == PENDING) { + fulfillPromise(promise, value); + } + } + function reject(reason) { + if (promise[STATUS] == PENDING) { + rejectPromise(promise, reason); + } + } + try { + resolver(resolve, reject); + } catch (error) { + reject(error); + } + } + + function fulfillPromise(promise, value) { + let queue; + const anything = toPromise(value); + if (isPromise(anything)) { + promise[STATUS] = INTERNAL_PENDING; + anything.then( + (value) => { + fulfillPromise(promise, value); + }, + (reason) => { + rejectPromise(promise, reason); + }, + ); + } else if (isInternalError(anything)) { + rejectPromise(promise, anything[ORIGINAL_ERROR]); + } else { + promise[STATUS] = FULFILLED; + promise[VALUE] = value; + queue = promise[ON_FUlFILLED]; + if (queue && queue.length) { + clearAllQueues(promise); + callEach(queue); + } + } + } + + function rejectPromise(promise, reason) { + const queue = promise[ON_REJECTED]; + promise[STATUS] = REJECTED; + promise[VALUE] = reason; + if (queue && queue.length) { + clearAllQueues(promise); + callEach(queue); + } + } + + function Promise(resolver) { + const promise = this; + if (!isPromise(promise)) { + throw new TypeError(REQUIRES_NEW); + } + promise[STATUS] = PENDING; + promise[VALUE] = undefined; + resolvePromise(promise, resolver); + } + + Promise.prototype.then = function (onFulfilled, onRejected) { + const promise = this; + let nextPromise; + onFulfilled = isCallable(onFulfilled) ? onFulfilled : identity; + onRejected = isCallable(onRejected) ? onRejected : thrower; + nextPromise = new Promise((resolve, reject) => { + function tryCall(func) { + let value; + try { + value = func(promise[VALUE]); + } catch (error) { + reject(error); + return; + } + if (value === nextPromise) { + reject(new TypeError(CHAINING_CYCLE)); + } else { + call(resolve, reject, value); + } + } + function asyncOnFulfilled() { + setImmediate(tryCall, onFulfilled); + } + function asyncOnRejected() { + setImmediate(tryCall, onRejected); + } + switch (promise[STATUS]) { + case FULFILLED: + asyncOnFulfilled(); + break; + case REJECTED: + asyncOnRejected(); + break; + default: + enqueue(promise, asyncOnFulfilled, asyncOnRejected); + } + }); + return nextPromise; + }; + + Promise.prototype.catch = function (onRejected) { + return this.then(identity, onRejected); + }; + + Promise.resolve = function (value) { + const anything = toPromise(value); + if (isPromise(anything)) { + return anything; + } + return new Promise((resolve, reject) => { + if (isInternalError(anything)) { + reject(anything[ORIGINAL_ERROR]); + } else { + resolve(value); + } + }); + }; + + Promise.reject = function (reason) { + return new Promise((resolve, reject) => { + reject(reason); + }); + }; + + Promise.race = function (values) { + return new Promise((resolve, reject) => { + let i; + let length; + if (isArray(values)) { + length = values.length; + for (i = 0; i < length; i++) { + call(resolve, reject, values[i]); + } + } else { + reject(new TypeError(NOT_ARRAY)); + } + }); + }; + + Promise.all = function (values) { + return new Promise((resolve, reject) => { + let fulfilledCount = 0; + let promiseCount = 0; + let anything; + let length; + let value; + let i; + if (isArray(values)) { + values = values.slice(0); + length = values.length; + for (i = 0; i < length; i++) { + value = values[i]; + anything = toPromise(value); + if (isPromise(anything)) { + promiseCount++; + anything.then( + (function (index) { + return function (value) { + values[index] = value; + fulfilledCount++; + if (fulfilledCount == promiseCount) { + resolve(values); + } + }; + }(i)), + reject, + ); + } else if (isInternalError(anything)) { + reject(anything[ORIGINAL_ERROR]); + } else { + // [1, , 3] → [1, undefined, 3] + values[i] = value; + } + } + if (!promiseCount) { + resolve(values); + } + } else { + reject(new TypeError(NOT_ARRAY)); + } + }); + }; + + if (typeof module !== 'undefined' && module.exports) { + module.exports = global.Promise || Promise; + } else if (!global.Promise) { + global.Promise = Promise; + } +}(this)); diff --git a/public/js/storage.js b/public/js/storage.js new file mode 100755 index 00000000..0ebdab0a --- /dev/null +++ b/public/js/storage.js @@ -0,0 +1,144 @@ +const OtherTables = ['categories', 'config', 'swmsg'] +const MainTables = ['todos', 'projects'] +const allMethod = ['sync_post_', 'sync_patch_', 'delete_'] + +// ------------------------------------- + +let idbKeyval = (() => { + let db; + + // console.log('idbKeyval...') + + function getDB() { + if (!db) { + // console.log('CREO DB STORAGE JS !') + db = new Promise((resolve, reject) => { + const openreq = indexedDB.open('mydb3', 11); + + openreq.onerror = () => { + reject(openreq.error); + }; + + openreq.onupgradeneeded = () => { + // First time setup: create an empty object store + for (const mytab of MainTables) { + openreq.result.createObjectStore(mytab, { keyPath: '_id' }); + for (const mymeth of allMethod) { + const tab = mymeth + mytab + openreq.result.createObjectStore(tab, { keyPath: '_id' }); + } + } + for (const mytab of OtherTables) { + openreq.result.createObjectStore(mytab, { keyPath: '_id' }); + } + }; + + openreq.onsuccess = () => { + resolve(openreq.result); + }; + }); + } + return db; + } + + async function withStore(type, table, callback) { + const db = await getDB(); + return new Promise((resolve, reject) => { + const transaction = db.transaction(table, type); + transaction.oncomplete = () => resolve(); + transaction.onerror = () => reject(transaction.error); + callback(transaction.objectStore(table)); + }); + } + + return { + getArrayByTable(nametable, data) { + if (nametable === 'todos') { + return data.todos + } if (nametable === 'projects') { + return data.projects + } + }, + + async get(key) { + let req; + await withStore('readonly', 'keyval', store => { + req = store.get(key); + }); + return req.result; + }, + + // jsonCopy(src) { + // return JSON.parse(JSON.stringify(src)); + // }, + + // contains(a, b) { + // // array matches + // if (Array.isArray(b)) { + // return b.some(x => a.indexOf(x) > -1); + // } + // // string match + // return a.indexOf(b) > -1; + // }, + + async getdata(table, key) { + let req; + + await withStore('readonly', table, store => { + // console.log('store', store, 'key', key) + req = store.get(key); + }); + + return req.result; + }, + async getalldata(table) { + let req; + await withStore('readonly', table, store => { + req = store.getAll(); + }); + return req.result; + }, + async set(key, value) { + let req; + await withStore('readwrite', 'keyval', store => { + req = store.put(value, key); + }); + return req.result; + }, + async setdata(table, value) { + let req; + // console.log('setdata', table, value) + + await withStore('readwrite', table, store => { + req = store.put(value); + }); + return req.result; + }, + async delete(key) { + return withStore('readwrite', 'keyval', store => { + store.delete(key); + }); + }, + async deletedata(table, key) { + return withStore('readwrite', table, store => { + store.delete(key); + }); + }, + async clearalldata(table) { + // console.log('clearalldata', table) + return withStore('readwrite', table, store => { + store.clear(); + }); + }, + }; +})(); + +// iOS add-to-homescreen is missing IDB, or at least it used to. +// I haven't tested this in a while. +if (!self.indexedDB) { + idbKeyval = { + get: key => Promise.resolve(localStorage.getItem(key)), + set: (key, val) => Promise.resolve(localStorage.setItem(key, val)), + delete: key => Promise.resolve(localStorage.removeItem(key)), + }; +} diff --git a/public/js/track.js b/public/js/track.js new file mode 100755 index 00000000..5f97353e --- /dev/null +++ b/public/js/track.js @@ -0,0 +1,34 @@ +function geturl() { + const miaurl = document.location.href + + if (miaurl.includes('localhost')) { + return 'http://localhost:8084/' + } + return 'https://mandalasolidale.freeplanet.app/' +} + +function getidtrack() { + const miaurl = document.location.href + + if (miaurl.includes('test.') || miaurl.includes('localhost')) { + return '4c40a07bc88a9c50c9b70dc9c5cd8e2e' + } + return 'ccfd6c90e17b6809f9717675764c3f5d' // Associazione Shen +} + +let owa_baseUrl = `${geturl()}owa/`; +if (owa_cmds) var owa_cmds = []; +else var owa_cmds = owa_cmds || []; +owa_cmds.push(['setSiteId', getidtrack()]); +owa_cmds.push(['trackPageView']); +// owa_cmds.push(['trackClicks']); + +(function () { + const _owa = document.createElement('script'); + _owa.type = 'text/javascript'; + _owa.async = true; + owa_baseUrl = (document.location.protocol == 'https:' ? window.owa_baseSecUrl || owa_baseUrl.replace(/http:/, 'https:') : owa_baseUrl); + _owa.src = `${owa_baseUrl}modules/base/js/owa.tracker-combined-min.js`; + const _owa_s = document.getElementsByTagName('script')[0]; + _owa_s.parentNode.insertBefore(_owa, _owa_s); +}()); diff --git a/public/js/workbox-sw-3-0-0.js.off b/public/js/workbox-sw-3-0-0.js.off new file mode 100755 index 00000000..86617af1 --- /dev/null +++ b/public/js/workbox-sw-3-0-0.js.off @@ -0,0 +1,3 @@ +var workbox=function(){"use strict";try{self.workbox.v["workbox:sw:3.0.0"]=1}catch(t){}const t="https://storage.googleapis.com/workbox-cdn/releases/3.0.0",e={backgroundSync:"background-sync",core:"core",expiration:"cache-expiration",googleAnalytics:"google-analytics",strategies:"strategies",precaching:"precaching",routing:"routing",cacheableResponse:"cacheable-response",broadcastUpdate:"broadcast-cache-update",rangeRequests:"range-requests"};return new class{constructor(){return this.v={},this.t={debug:"localhost"===self.location.hostname,modulePathPrefix:null,modulePathCb:null},this.e=this.t.debug?"dev":"prod",this.s=!1,new Proxy(this,{get(t,s){if(t[s])return t[s];const o=e[s];return o&&t.loadModule(`workbox-${o}`),t[s]}})}setConfig(t={}){if(this.s)throw new Error("Config must be set before accessing workbox.* modules");Object.assign(this.t,t),this.e=this.t.debug?"dev":"prod"}skipWaiting(){self.addEventListener("install",()=>self.skipWaiting())}clientsClaim(){self.addEventListener("activate",()=>self.clients.claim())}loadModule(t){const e=this.o(t);try{importScripts(e),this.s=!0}catch(s){throw console.error(`Unable to import module '${t}' from '${e}'.`),s}}o(e){if(this.t.modulePathCb)return this.t.modulePathCb(e,this.t.debug);let s=[t];const o=`${e}.${this.e}.js`,r=this.t.modulePathPrefix;return r&&""===(s=r.split("/"))[s.length-1]&&s.splice(s.length-1,1),s.push(o),s.join("/")}}}(); + +//# sourceMappingURL=workbox-sw.js.map diff --git a/public/js/workbox-sw.js b/public/js/workbox-sw.js new file mode 100755 index 00000000..867e50b6 --- /dev/null +++ b/public/js/workbox-sw.js @@ -0,0 +1,23 @@ +const workbox = (function () { + try { self.workbox.v['workbox:sw:3.4.1'] = 1 } catch (t) {} const t = 'https://storage.googleapis.com/workbox-cdn/releases/3.4.1', + e = { + backgroundSync: 'background-sync', broadcastUpdate: 'broadcast-cache-update', cacheableResponse: 'cacheable-response', core: 'core', expiration: 'cache-expiration', googleAnalytics: 'google-analytics', navigationPreload: 'navigation-preload', precaching: 'precaching', rangeRequests: 'range-requests', routing: 'routing', strategies: 'strategies', streams: 'streams', + }; return new class { + constructor() { return this.v = {}, this.t = { debug: self.location.hostname === 'localhost', modulePathPrefix: null, modulePathCb: null }, this.e = this.t.debug ? 'dev' : 'prod', this.s = !1, new Proxy(this, { get(t, s) { if (t[s]) return t[s]; const o = e[s]; return o && t.loadModule(`workbox-${o}`), t[s] } }) } + + setConfig(t = {}) { if (this.s) throw new Error('Config must be set before accessing workbox.* modules'); Object.assign(this.t, t), this.e = this.t.debug ? 'dev' : 'prod' } + + skipWaiting() { self.addEventListener('install', () => self.skipWaiting()) } + + clientsClaim() { self.addEventListener('activate', () => self.clients.claim()) } + + loadModule(t) { const e = this.o(t); try { importScripts(e), this.s = !0 } catch (s) { throw console.error(`Unable to import module '${t}' from '${e}'.`), s } } + + o(e) { + if (this.t.modulePathCb) return this.t.modulePathCb(e, this.t.debug); let s = [t]; const o = `${e}.${this.e}.js`, + r = this.t.modulePathPrefix; return r && (s = r.split('/'))[s.length - 1] === '' && s.splice(s.length - 1, 1), s.push(o), s.join('/') + } + }() +}()); + +// # sourceMappingURL=workbox-sw.js.map diff --git a/public/js/workbox-sw3-4-1.js.off b/public/js/workbox-sw3-4-1.js.off new file mode 100755 index 00000000..0908b00d --- /dev/null +++ b/public/js/workbox-sw3-4-1.js.off @@ -0,0 +1,3 @@ +var workbox=function(){"use strict";try{self.workbox.v["workbox:sw:3.4.1"]=1}catch(t){}const t="https://storage.googleapis.com/workbox-cdn/releases/3.4.1",e={backgroundSync:"background-sync",broadcastUpdate:"broadcast-cache-update",cacheableResponse:"cacheable-response",core:"core",expiration:"cache-expiration",googleAnalytics:"google-analytics",navigationPreload:"navigation-preload",precaching:"precaching",rangeRequests:"range-requests",routing:"routing",strategies:"strategies",streams:"streams"};return new class{constructor(){return this.v={},this.t={debug:"localhost"===self.location.hostname,modulePathPrefix:null,modulePathCb:null},this.e=this.t.debug?"dev":"prod",this.s=!1,new Proxy(this,{get(t,s){if(t[s])return t[s];const o=e[s];return o&&t.loadModule(`workbox-${o}`),t[s]}})}setConfig(t={}){if(this.s)throw new Error("Config must be set before accessing workbox.* modules");Object.assign(this.t,t),this.e=this.t.debug?"dev":"prod"}skipWaiting(){self.addEventListener("install",()=>self.skipWaiting())}clientsClaim(){self.addEventListener("activate",()=>self.clients.claim())}loadModule(t){const e=this.o(t);try{importScripts(e),this.s=!0}catch(s){throw console.error(`Unable to import module '${t}' from '${e}'.`),s}}o(e){if(this.t.modulePathCb)return this.t.modulePathCb(e,this.t.debug);let s=[t];const o=`${e}.${this.e}.js`,r=this.t.modulePathPrefix;return r&&""===(s=r.split("/"))[s.length-1]&&s.splice(s.length-1,1),s.push(o),s.join("/")}}}(); + +//# sourceMappingURL=workbox-sw.js.map diff --git a/quasar.conf.js b/quasar.conf.js new file mode 100755 index 00000000..a7787217 --- /dev/null +++ b/quasar.conf.js @@ -0,0 +1,363 @@ +/* + * This file runs in a Node context (it's NOT transpiled by Babel), so use only + * the ES6 features that are supported by your Node version. https://node.green/ + */ + +// Configuration for your app +// https://v2.quasar.dev/quasar-cli/quasar-conf-js + +/* eslint-env node */ +/* eslint-disable @typescript-eslint/no-var-requires */ +/* eslint func-names: 0 */ +/* eslint global-require: 0 */ +const { configure } = require('quasar/wrappers'); + +const path = require('path') +const webpack = require('webpack') +const helpers = require('./helpers') +const envparser = require('./config/envparser') + +module.exports = configure((ctx) => ({ + // https://v2.quasar.dev/quasar-cli/supporting-ts + supportTS: { + tsCheckerConfig: { + eslint: { + enabled: true, + files: './src/**/*.{ts,tsx,jsx,vue}', + }, + }, + }, + + // https://v2.quasar.dev/quasar-cli/prefetch-feature + // preFetch: true, + + // app boot file (/src/boot) + // --> boot files are part of "main.js" + // https://v2.quasar.dev/quasar-cli/boot-files + // boot: ['vue-i18n', 'vue-meta', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'vue-idb', 'dragula', 'guard'], + boot: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines'], + + // https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css + css: [ + 'app.scss', + ], + + // https://github.com/quasarframework/quasar/tree/dev/extras + extras: [ + // 'ionicons-v4', + // 'mdi-v5', + // 'eva-icons', + // 'themify', + // 'line-awesome', + 'ionicons-v4', + // 'mdi-v3', + 'fontawesome-v5', + 'roboto-font', // optional, you are not bound to it + 'material-icons', // optional, you are not bound to it + ], + + aliases: { + quasar: path.resolve(__dirname, 'node_modules/@quasar/'), + src: path.resolve(__dirname, 'src'), + statics: path.resolve(__dirname, 'src/statics'), + components: path.resolve(__dirname, 'src/components'), + views: path.resolve(__dirname, 'src/views/index.ts'), + icons: path.resolve(__dirname, 'src/assets/icons'), + images: path.resolve(__dirname, 'src/assets/images'), + classes: path.resolve(__dirname, 'src/classes/index.ts'), + fonts: path.resolve(__dirname, 'src/assets/fonts'), + utils: path.resolve(__dirname, 'src/utils/index.ts'), + css: path.resolve(__dirname, 'src/styles/variables.scss'), + router: path.resolve(__dirname, 'src/router/index.ts'), + validators: path.resolve(__dirname, 'src/utils/validators.ts'), + methods: path.resolve(__dirname, 'src/utils/methods.ts'), + filters: path.resolve(__dirname, 'src/utils/filters.ts'), + api: path.resolve(__dirname, 'src/store/Api/index.ts'), + paths: path.resolve(__dirname, 'src/store/Api/ApiRoutes.ts'), + store: path.resolve(__dirname, 'src/store/index.ts'), + modules: path.resolve(__dirname, 'src/store/Modules/index.ts'), + model: path.resolve(__dirname, 'src/model/index.ts'), + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build + build: { + env: envparser(), + vueRouterMode: 'history', + vueCompiler: true, + gzip: false, // gzip true + analyze: false, // true + + chainWebpack(chain, { isServer, isClient }) { + chain.resolve.alias + // .set('myalias', path.resolve(__dirname, './src/somefolder')) + .set('@components', helpers.root('src/components/index.ts')) + .set('@boot', helpers.root('src/boot/*')) + .set('@costanti', helpers.root('src/store/Modules/costanti.ts')) + // .set('@components', helpers.root('src/components')) + .set('@views', path.resolve(__dirname, 'src/views/index.ts')) + // .set('@views', path.resolve(__dirname, 'src/components/views')) + .set('@src', path.resolve(__dirname, 'src')) + .set('@css', path.resolve(__dirname, 'src/public/css/variables.scss')) + .set('@icons', path.resolve(__dirname, 'src/public/icons/*')) + .set('@images', path.resolve(__dirname, 'src/public/images/*')) + .set('@classes', path.resolve(__dirname, 'src/classes/index.ts')) + .set('@utils', path.resolve(__dirname, 'src/utils/index.ts')) + .set('@utils', path.resolve(__dirname, 'src/utils/*')) + .set('@router', path.resolve(__dirname, 'src/router/index.ts')) + .set('@validators', path.resolve(__dirname, 'src/utils/validators.ts')) + .set('@methods', path.resolve(__dirname, 'src/utils/methods.ts')) + .set('@api', path.resolve(__dirname, 'src/store/Api/index.ts')) + .set('@paths', path.resolve(__dirname, 'src/store/Api/ApiRoutes.ts')) + .set('@storemod', path.resolve(__dirname, 'src/store/Modules/*')) + .set('@store', path.resolve(__dirname, 'src/store')) + .set('@modules', path.resolve(__dirname, 'src/store/Modules/index.ts')) + .set('@model', path.resolve(__dirname, 'src/model/index.ts')) + }, + // extractCSS: false, + // transpile: false, + + // Add dependencies for transpiling with Babel (Array of string/regex) + // (from node_modules, which are by default not transpiled). + // Applies only if "transpile" is set to true. + // transpileDependencies: [], + + // rtl: true, // https://v2.quasar.dev/options/rtl-support + // preloadChunks: true, + // showProgress: false, + // gzip: true, + // analyze: true, + + // Options below are automatically set depending on the env, set them if you want to override + // extractCSS: false, + + // https://v2.quasar.dev/quasar-cli/handling-webpack + // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-devServer + dev: { + env: require('./.env.development'), + }, + devServer: { + https: false, + port: 8082, + open: false, // opens browser window automatically + }, + + // https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework + framework: { + config: {}, + + // iconSet: 'material-icons', // Quasar icon set + // lang: 'en-US', // Quasar language pack + + // For special cases outside of where the auto-import strategy can have an impact + // (like functional components as one of the examples), + // you can manually specify Quasar components/directives to be available everywhere: + // + components: [ + 'QLayout', + 'QDrawer', + 'QItemSection', + 'QHeader', + 'QFooter', + 'QPageContainer', + 'QPage', + 'QPopupProxy', + 'QToolbar', + 'QToolbarTitle', + 'QBtn', + 'QBtnDropdown', + 'QColor', + 'QIcon', + 'QList', + 'QKnob', + 'QItemLabel', + 'QItem', + 'QCard', + 'QMarkupTable', + 'QSpace', + 'QDialog', + 'QBadge', + 'QForm', + 'QCardSection', + 'QCardActions', + 'QField', + 'QInput', + 'QSelect', + 'QMenu', + 'QToggle', + 'QFab', + 'QInfiniteScroll', + 'QAjaxBar', + 'QChip', + 'QExpansionItem', + 'QCheckbox', + 'QBanner', + 'QInnerLoading', + 'QSpinnerGears', + 'QDate', + 'QTime', + 'QSlideTransition', + 'QTable', + 'QTh', + 'QTr', + 'QTd', + 'QLinearProgress', + 'QSlider', + 'QPopupEdit', + 'QCarousel', + 'QCarouselControl', + 'QCarouselSlide', + 'QPageScroller', + 'QAvatar', + 'QImg', + 'QSplitter', + 'QRating', + 'QParallax', + 'QTab', + 'QTabs', + 'QTabPanels', + 'QTabPanel', + 'QTree', + 'QSeparator', + ], + directives: [ + 'Ripple', + 'ClosePopup', + ], + // Quasar plugins + plugins: [ + 'Meta', + 'Dialog', + 'Notify', + 'Cookies', + 'Loading', + ], + iconSet: 'fontawesome-v5', + lang: 'it', // Quasar language + }, + + // animations: 'all', // --- includes all animations + // https://v2.quasar.dev/options/animations + animations: [], + + // https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr + ssr: { + pwa: false, + + // manualStoreHydration: true, + // manualPostHydrationTrigger: true, + + prodPort: 3000, // The default port that the production server should use + // (gets superseded if process.env.PORT is specified at runtime) + + maxAge: 1000 * 60 * 60 * 24 * 30, + // Tell browser when a file from the server should expire from cache (in ms) + + chainWebpackWebserver(/* chain */) { + // + }, + + middlewares: [ + ctx.prod ? 'compression' : '', + 'render', // keep this as last one + ], + }, + + // https://v2.quasar.dev/quasar-cli/developing-pwa/configuring-pwa + pwa: { + workboxPluginMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest' + workboxOptions: {}, // only for GenerateSW + + // for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts]) + // if using workbox in InjectManifest mode + chainWebpackCustomSW(chain) { + chain.plugin('eslint-webpack-plugin') + .use(ESLintPlugin, [{ extensions: ['js'] }]) + }, + + manifest: { + name: 'First Proj', + short_name: 'First Proj', + description: 'A Quasar Framework app', + display: 'standalone', + orientation: 'portrait', + background_color: '#ffffff', + theme_color: '#027be3', + icons: [ + { + src: 'icons/icon-128x128.png', + sizes: '128x128', + type: 'image/png', + }, + { + src: 'icons/icon-192x192.png', + sizes: '192x192', + type: 'image/png', + }, + { + src: 'icons/icon-256x256.png', + sizes: '256x256', + type: 'image/png', + }, + { + src: 'icons/icon-384x384.png', + sizes: '384x384', + type: 'image/png', + }, + { + src: 'icons/icon-512x512.png', + sizes: '512x512', + type: 'image/png', + }, + ], + }, + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova + cordova: { + // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli/developing-capacitor-apps/configuring-capacitor + capacitor: { + hideSplashscreen: true, + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli/developing-electron-apps/configuring-electron + electron: { + bundler: 'packager', // 'packager' or 'builder' + + packager: { + // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options + + // OS X / Mac App Store + // appBundleId: '', + // appCategoryType: '', + // osxSign: '', + // protocol: 'myapp://path', + + // Windows only + // win32metadata: { ... } + }, + + builder: { + // https://www.electron.build/configuration/configuration + + appId: 'firstproj', + }, + + // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain + chainWebpack(/* chain */) { + // do something with the Electron main process Webpack cfg + // extendWebpackMain also available besides this chainWebpackMain + }, + + // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain + chainWebpackPreload(/* chain */) { + // do something with the Electron main process Webpack cfg + // extendWebpackPreload also available besides this chainWebpackPreload + }, + }, +})) diff --git a/src-pwa/custom-service-worker.js b/src-pwa/custom-service-worker.js new file mode 100755 index 00000000..6521ebda --- /dev/null +++ b/src-pwa/custom-service-worker.js @@ -0,0 +1,531 @@ +/* + * This file (which will be your service worker) + * is picked up by the build system ONLY if + * quasar.conf > pwa > workboxPluginMode is set to "InjectManifest" + */ + +// Questo è il swSrc + +console.log(' [ VER-0.0.63 ] _---------________------ PAO: this is my custom service worker') + +importScripts('../public/js/idb.js') +importScripts('../public/js/storage.js') +importScripts('../public/js/workbox-sw.js') + +// importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.0.0/workbox-sw.js'); + +let port = 3000 +if (self.location.hostname.startsWith('test')) { + port = 3001 +} +// console.log('SW-06 1'); +const cfgenv = { + serverweb: `${self.location.protocol}//${self.location.hostname}:${port}`, + dbname: 'mydb3', + dbversion: 11, +} + +// console.log('serverweb', cfgenv.serverweb) + +async function writeData(table, data) { + // console.log('writeData', table, data); + await idbKeyval.setdata(table, data) +} + +async function readAllData(table) { + // console.log('readAllData', table); + return idbKeyval.getalldata(table) +} + +async function clearAllData(table) { + // console.log('clearAllData', table); + await idbKeyval.clearalldata(table) +} + +async function deleteItemFromData(table, id) { + // console.log('deleteItemFromData', table, 'ID:', id); + + await idbKeyval.deletedata(table, id) +} + +// self.addEventListener('activate', function(event) { +// event.waitUntil( +// // createDB() +// ); +// }); + +if (!workbox) { + const workbox = new self.WorkboxSW() +} + +if (workbox) { + // console.log('WORKBOX PRESENT') + // const url = new URL(location.href); + // const debug = url.searchParams.has('debug'); + const debug = false + workbox.setConfig({ debug }) + + workbox.core.setCacheNameDetails({ prefix: self.location.hostname }) + + /** + * The workboxSW.precacheAndRoute() method efficiently caches and responds to + * requests for URLs in the manifest. + * See https://goo.gl/S9QRab + */ + self.__precacheManifest = [].concat(self.__precacheManifest || []) + workbox.precaching.suppressWarnings() + workbox.precaching.precacheAndRoute(self.__precacheManifest, {}) + + // workbox.routing.registerRoute(/^http/, workbox.strategies.networkFirst(), 'GET'); + + workbox.routing.registerRoute( + new RegExp(/\.(?:png|gif|jpg|jpeg|svg)$/), + new workbox.strategies.CacheFirst({ + cacheName: 'images', + plugins: [ + new workbox.expiration.Plugin({ + maxEntries: 60, + maxAgeSeconds: 30 * 24 * 60 * 60, // 30 Days + }), + ], + }), + ) + + // Per Articoli.... + const articleHandler = workbox.strategies.networkFirst({ + cacheName: 'articles-cache', + plugins: [ + new workbox.expiration.Plugin({ + maxEntries: 50, + }), + ], + }) + + workbox.routing.registerRoute( + new RegExp(/(.*)article(.*)\.html/), args => articleHandler.handle(args), + ) + + workbox.routing.registerRoute( + new RegExp(/.*(?:googleapis|gstatic)\.com.*$/), + workbox.strategies.staleWhileRevalidate({ + cacheName: 'google-fonts', + plugins: [ + new workbox.expiration.Plugin({ + maxEntries: 30, + }), + ], + }), + ) + + // console.log(' routing.registerRoute function declaration:') + + function Execute_Fetch(table, args) { + console.log('Execute_Fetch registerRoute! ', + `${cfgenv.serverweb}/${table}/`) + // console.log('DATABODY:', args.event.request.body) + let myres = null + // return fetch(args.event.request, args.event.headers) + return fetch(args.event.request, args.event.headers) + .then((res) => { + myres = res + if (res.status === 200) { + const clonedRes = res.clone() + + let secondatab = '' + if (table === 'todos') { + secondatab = 'categories' + } + console.log('1) clearAllData: ', table) + return clearAllData(table) + .then(() => { + if (secondatab !== '') { + // console.log('2) clearAllData(todos)') + return clearAllData(secondatab) + .then(() => + // console.log('3) ....return clonedRes') + clonedRes) + } + return clonedRes + }) + } + }) + .then((clonedRes) => { + // console.log(' 3) ') + if (clonedRes) return clonedRes.json() + return null + }) + .then(data => { + // console.log(' 4) data = ', data) + if (data) { + myarr = idbKeyval.getArrayByTable(table, data) + if (myarr) { + let promiseChain = Promise.resolve() + + console.log('*********+++++++++++++++++********** Records ', + `${table} Received from Server [`, myarr.length, 'record]', myarr) + + if (table === 'todos') { + for (const cat in data.categories) { + promiseChain = promiseChain.then(() => writeData('categories', { + _id: cat, + valore: data.categories[cat], + })) + } + + for (const arrsing of myarr) { + for (const rec of arrsing) { + promiseChain = promiseChain.then(() => writeData(table, rec)) + } + } + } else { + // Others tables + for (const rec of myarr) { + promiseChain = promiseChain.then(() => writeData(table, rec)) + } + } + + // console.log('promiseChain', promiseChain) + + return promiseChain + } + } + }) + .then(() => myres) + .catch(err => { + console.log('ERROR registerRoute FETCH:', err) + return myres + }) + } + + for (const table of MainTables) { + workbox.routing.registerRoute( + new RegExp(`${cfgenv.serverweb}/${table}/`), + (args) => { + Execute_Fetch(table, args) + }, + ) + } + + workbox.routing.registerRoute( + (routeData) => (routeData.event.request.headers.get('accept') + .includes('text/html')), (args) => caches.match(args.event.request) + .then((response) => { + if (response) { + return response + } + return fetch(args.event.request) + .then((res) => caches.open('dynamic') + .then((cache) => { + cache.put(args.event.request.url, res.clone()) + return res + })) + .catch((err) => caches.match('/offline') + .then((res) => res)) + }), + ) + + workbox.routing.registerRoute( + new RegExp(/.*\/(?:statics\/icons).*$/), + new workbox.strategies.CacheFirst({ + cacheName: 'image-cache', + plugins: [ + new workbox.expiration.Plugin({ + maxAgeSeconds: 30 * 24 * 60 * 60, + }), + ], + }), + ) + + workbox.routing.registerRoute( + new RegExp(/\.(?:js|css|font)$/), + new workbox.strategies.StaleWhileRevalidate({ + cacheName: 'js-css-fonts', + }), + ) + + // Storage + workbox.routing.registerRoute( + new RegExp(/.*(?:storage)/), + workbox.strategies.staleWhileRevalidate({ + cacheName: 'storage', + plugins: [ + new workbox.expiration.Plugin({ + maxAgeSeconds: 30 * 24 * 60 * 60, + // Only cache 10 requests. + maxEntries: 200, + }), + ], + }), + ) + + workbox.routing.registerRoute( + new RegExp(/.*\/(?:statics).*$/), + new workbox.strategies.CacheFirst({ + cacheName: 'statics', + plugins: [ + new workbox.expiration.Plugin({ + maxAgeSeconds: 10 * 24 * 60 * 60, + // Only cache 10 requests. + }), + ], + }), + ) + + workbox.routing.registerRoute( + new RegExp('/admin/'), + workbox.strategies.networkOnly(), + ) + + workbox.routing.registerRoute( + new RegExp('/owa/'), + workbox.strategies.networkOnly(), + ) +} + +if ('serviceWorker' in navigator) { + + // console.log('***************** Entering in custom-service-worker.js:') + +} + +// self.addEventListener('fetch', (event) => { +// if (event.request.url === '/') { +// const staleWhileRevalidate = new workbox.strategies.StaleWhileRevalidate(); +// event.respondWith(staleWhileRevalidate.handle({ event })); +// } +// }); + +// self.addEventListener('fetch', function (event) { +// console.log('[Service Worker] Fetching something ....', event); +// console.log('event.request.cache=', event.request.cache) +// if (event.request.cache === 'only-if-cached' && event.request.mode !== 'same-origin') { +// console.log('SAME ORIGIN!', event); +// return; +// } +// event.respondWith(caches.match(event.request)); +// }); +// + +// const syncStore = {} +// self.addEventListener('message', event => { +// if (event.data.type === 'sync') { +// // get a unique id to save the data +// const id = uuid() +// syncStore[id] = event.data +// // register a sync and pass the id as tag for it to get the data +// self.registration.sync.register(id) +// } +// console.log(event.data) +// }) + +// addEventListener('fetch', event => { +// // Prevent the default, and handle the request ourselves. +// event.respondWith(async function() { +// // Try to get the response from a cache. +// const cachedResponse = await caches.match(event.request); +// // Return it if we found one. +// if (cachedResponse && (event.request.cache !== 'no-cache')) +// return cachedResponse; +// +// // If we didn't find a match in the cache, use the network. +// return fetch(event.request); +// }()); +// }); + +// self.addEventListener('fetch', function (event) { +// event.respondWith( +// caches.match(event.request).then(function (response) { +// return response || +// fetch(event.request, event.headers) +// .catch(err => { +// console.log('_______________________ ERRORE FETCH SW: ', event.request, err) +// writeData('config', { _id: 2, stateconn: 'offline' }) +// return caches.match(event.request); +// }) +// }) +// ); +// }); + +// self.addEventListener('fetch', function (event) { +// event.respondWith( +// fetch(event.request, event.headers) +// .catch(err => { +// console.log('_______________________ ERRORE FETCH SW: ', event.request, err) +// writeData('config', {_id: 2, stateconn: 'offline'}) +// return caches.match(event.request); +// }) +// ); +// }); + +// self.addEventListener('sync', function (event) { +// console.log('[Service Worker V5] Background syncing', event.tag); +// +// let mystrparam = event.tag +// let multiparams = mystrparam.split('|') +// if (multiparams) { +// if (multiparams.length > 3) { +// let cmd = multiparams[0] +// let table = multiparams[1] +// let method = multiparams[2] +// let token = multiparams[3] +// // let lang = multiparams[3] +// +// if (cmd === 'sync-todos') { +// console.log('[Service Worker] Syncing', cmd, table, method); +// +// const headers = new Headers() +// headers.append('content-Type', 'application/json') +// headers.append('Accept', 'application/json') +// headers.append('x-auth', token) +// +// +// // console.log('A1) INIZIO.............................................................'); +// +// event.waitUntil( +// readAllData(table) +// .then(function (alldata) { +// const myrecs = [...alldata] +// console.log('----------------------- LEGGO QUALCOSA DAL WAITUNTIL ') +// let errorfromserver = false +// if (myrecs) { +// for (let rec of myrecs) { +// //console.log('syncing', table, '', rec.descr) +// let link = cfgenv.serverweb + '/todos' +// +// if (method !== 'POST') +// link += '/' + rec._id +// +// console.log('++++++++++++++++++ SYNCING !!!! ', rec.descr, table, 'FETCH: ', method, link, 'data:') +// +// // console.log('DATATOSAVE:', JSON.stringify(rec)) +// +// // Insert/Delete/Update table to the server +// fetch(link, { +// method: method, +// headers: headers, +// cache: 'no-cache', +// mode: 'cors', // 'no-cors', +// body: JSON.stringify(rec) +// }) +// .then(() => { +// deleteItemFromData(table, rec._id) +// }) +// .then(() => { +// deleteItemFromData('swmsg', mystrparam) +// }) +// .catch(function (err) { +// console.log('!!!!!!!!!!!!!!! Error while sending data', err, err.message); +// if (err.message === 'Failed to fetch') { +// errorfromserver = true +// } +// }) +// } +// return errorfromserver +// } +// }) +// .then((errorfromserver) => { +// const mystate = !errorfromserver ? 'online' : 'offline' +// writeData('config', { _id: 2, stateconn: mystate }) +// }) +// ); +// // console.log('A2) ?????????????????????????? ESCO DAL LOOP !!!!!!!!! err=') +// } +// } +// } +// }) +// ; + +/* + +// send message to serviceWorker +function sync (url, options) { + navigator.serviceWorker.controller.postMessage({type: 'sync', url, options}) +} + +const syncStore = {} +self.addEventListener('message', event => { + if(event.data.type === 'sync') { + // get a unique id to save the data + const id = uuid() + syncStore[id] = event.data + // register a sync and pass the id as tag for it to get the data + self.registration.sync.register(id) + } + console.log(event.data) +}) + +self.addEventListener('sync', event => { + // get the data by tag + const {url, options} = syncStore[event.tag] + event.waitUntil(fetch(url, options)) +}) +*/ + +self.addEventListener('notificationclick', (event) => { + const { notification } = event + const { action } = event + + console.log(notification) + + if (action === 'confirm') { + console.log('Confirm was chosen') + notification.close() + } else { + console.log(action) + event.waitUntil( + clients.matchAll() + .then((clis) => { + const client = clis.find((c) => c.visibilityState === 'visible') + + if (client) { + client.navigate(notification.data.url) + client.focus() + } else { + clients.openWindow(notification.data.url) + } + notification.close() + }), + ) + } +}) + +self.addEventListener('notificationclose', (event) => { + console.log('Notification was closed', event) +}) + +self.addEventListener('push', (event) => { + console.log('Push Notification received', event) + + let data = { + title: 'New!', + content: 'Something new happened!', + url: '/', + } + + try { + if (event.data) { + try { + data = JSON.parse(event.data.text()) + } catch (e) { + data = event.data.text() + } + } + + const options = { + body: data.content, + icon: '/public/icons/android-chrome-192x192.png', + badge: '/public/icons/android-chrome-192x192.png', + data: { + url: data.url, + }, + tag: 'received', + renitify: true, // vibrate also with others messages. + } + + event.waitUntil( + self.registration.showNotification(data.title, options), + ) + } catch (e) { + console.log('Error on event push:', e) + } +}) diff --git a/src-pwa/pwa-flag.d.ts b/src-pwa/pwa-flag.d.ts new file mode 100755 index 00000000..cda1c0ec --- /dev/null +++ b/src-pwa/pwa-flag.d.ts @@ -0,0 +1,10 @@ +/* eslint-disable */ +// THIS FEATURE-FLAG FILE IS AUTOGENERATED, +// REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING +import "quasar/dist/types/feature-flag"; + +declare module "quasar/dist/types/feature-flag" { + interface QuasarFeatureFlags { + pwa: true; + } +} diff --git a/src-pwa/register-service-worker.js b/src-pwa/register-service-worker.js new file mode 100755 index 00000000..7415cb25 --- /dev/null +++ b/src-pwa/register-service-worker.js @@ -0,0 +1,36 @@ +/* + * This file is picked up by the build system only + * when building for PRODUCTION + */ + +import { register } from 'register-service-worker' + +register(process.env.SERVICE_WORKER_FILE ? process.env.SERVICE_WORKER_FILE : '', { + ready() { + console.log('READY::: App is being served from cache by a service worker.') + }, + + registered(registration) { // registration -> a ServiceWorkerRegistration instance + console.log('REGISTERED::: !!!', process.env.SERVICE_WORKER_FILE) + }, + cached(registration) { + console.log('CACHED::: Content has been cached for offline use.') + }, + updatefound(registration) { + console.log('UPDATEFOUND::: New content is downloading.') + // $('#newvers').addClass('btnNewVersShow').removeClass("btnNewVersHide") + }, + updated(registration) { + console.log('New content is available; please refresh.') + }, + offline() { + console.log('No internet connection found. App is running in offline mode.') + }, + error(err) { + console.error('Error during service worker registration:', err) + }, +}); + +// ServiceWorkerRegistration: https://developer.mozilla.org/enUs/docs/Web/API/ServiceWorkerRegistration + +// "build": "quasar build -m pwa && workbox generateSW workbox-config.js", diff --git a/src/App.scss b/src/App.scss new file mode 100755 index 00000000..11310ea5 --- /dev/null +++ b/src/App.scss @@ -0,0 +1,314 @@ +body { + font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + color: #a7a7a7; + line-height: 1.5; + //font-size: 1rem; +} + +html { + font-size: 100%; // default font size (browser 16) -> (10 62.5%) +} + +p { + font-size: 125%; // default font size (browser 16) -> (10 62.5%) + margin: 0 0 8px; +} + +$grayshadow: #555; + +$graytext: #555; + +$textcol: blue; +$textcol_scuro: darkblue; +$heightBtn: 100%; + +.flex-item { + // background-color: #d5e2eb; + display: flex; + padding: 2px; + margin: 2px; + margin-left: 3px; + margin-right: 3px; + color: #000; + font-size: 1rem; + height: $heightBtn; + line-height: $heightBtn; + vertical-align: middle; + //flex: 0 0 100%; +} + +.fade-enter-active, .fade-leave-active { + transition: opacity .2s; +} + +.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ +{ + opacity: 0; +} + +.slide-enter { +} + +.slide-enter-active { + animation: slide-in 0.2s ease-out forwards; +} + +.slide-leave { +} + +.slide-leave-active { + animation: slide-out 0.5s ease-out forwards; +} + +@keyframes slide-in { + from { + transform: translateX(-500px); + } + to { + transform: translateX(0); + } +} + +@keyframes slide-out { + from { + transform: translateX(0); + } + + to { + transform: translateX(1600px); + } +} + + +.my-notif-class{ + font-weight: bold; +} + +.mybanner { + font-weight: bold; + font-size: 1.1rem; + text-align: center; +} + +.lowperc { + color: red; +} +.medperc { + color: blue; +} +.highperc { + color: green; +} + + +.hide-if-small { + @media (max-width: 600px) { + display: none; + } +} + +.thiny-if-small { + @media (max-width: 600px) { + max-width: 22px; + } +} + +.links, .links a { + text-shadow: 1px 1px 1px #555 !important; + // font-weight: bold; + color: cornflowerblue !important; +} +.links:hover { + color: white !important; +} + +.text-subtitle1 { + font-size: 1.35rem; + font-weight: 400; + line-height: 1.75rem; + text-shadow: .25 .25rem .5rem $grayshadow; + letter-spacing: .00937em; + &.big { + font-size: 1.5rem; + } +} + +.text-subtitle2 { + font-size: 1.15rem; + font-weight: 400; + line-height: 1.75rem; + letter-spacing: .00937em; + text-shadow: .25rem .25rem .5rem $grayshadow; +} + +.text-subtitle3 { + font-size: 1rem; + font-weight: 400; + line-height: 1.75rem; + letter-spacing: .00937em; +} + + +@media (max-width: 718px) { + // PER VERSIONE MOBILE + + p { + font-size: 100%; // default font size (browser 16) -> (10 62.5%) + font-family: "Abyssinica SIL", serif; + text-justify: auto; + margin: 0 0 4px; + } + + .text-subtitle1 { + font-size: 1.25rem; + } + .text-subtitle2 { + font-size: 1rem; + } + .text-subtitle3 { + font-size: 0.75rem; + } + + .cltexth3 { + font-size: 1.25rem; + } + + .text-big{ + font-size: 1.25rem; + } + +} + +.my-card { + width: 100%; + max-width: 350px; + min-width: 300px; + padding: 1rem 1rem; + + box-shadow: none; +} + +.text-trans { + opacity: 0.9; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"; + filter: alpha(opacity=90); +} + +.text-spacetrans { + padding: 0 !important; + background: rgba(0,0,0,0.3) !important; + border-radius: 30px !important; +} + +.text-shadow { + text-shadow: .15rem .15rem .15rem $grayshadow; +} + +.citazione{ + font-size: 0.75rem; + font-family: "Lucida Calligraphy", serif; +} + +.cltexth3, .cltexth2, .cltexth4 { + font-size: 1.25rem; + font-weight: 400; + line-height: 1.75rem; + letter-spacing: .01em; + text-align: center !important; +} + +.cltexth4 { + font-size: 1rem; +} + +.cltexth2 { + font-size: 1.5rem; +} + +.boldhigh, .boldop, .text-big{ + font-weight: 500; + text-shadow: .05rem .05rem .05rem $grayshadow; +} +.boldop{ + color: darkblue; +} + +.text-big{ + font-size: 1.5rem; +} + + + +.center_to_image{ + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + width: 100%; + text-align: center; +} + + +.center_img { + display: block; + margin-left: auto; + margin-right: auto; +} + +.padding_cell { + padding: 0.75rem 0.5rem; +} + +@media (max-width: 3000px) { + .q-parallax__media > img { + max-height: 550px !important; + min-width:inherit !important; + min-height: inherit !important; + } +} + +@media (max-width: 1000px) { + .q-parallax__media > img { + max-height: 500px !important; + min-width:inherit !important; + min-height: inherit !important; + } +} + +@media (max-width: 800px) { + .q-parallax__media > img { + max-height: 450px !important; + min-width:inherit !important; + min-height: inherit !important; + } +} + + +@media (max-width: 718px) { + .q-parallax__media > img { + max-height: 450px !important; + min-height: inherit !important; + min-width:100% !important; + } +} + +// preloading images: +@media screen { + div#preloader { + position: absolute; + left: -9999px; + top: -9999px; + } + div#preloader img { + display: block; + } +} +@media print { + div#preloader, + div#preloader img { + visibility: hidden; + display: none; + } +} diff --git a/src/App.ts b/src/App.ts new file mode 100755 index 00000000..989151fc --- /dev/null +++ b/src/App.ts @@ -0,0 +1,91 @@ +import { useRoute } from 'vue-router' +import { useQuasar } from 'quasar' +import { BannerCookies } from '@components' +import { useI18n } from '@src/boot/i18n' +import { useGlobalStore } from './store/globalStore' +import { useUserStore } from './store/UserStore' +import { Header } from './components/Header' + +export default { + components: { + appHeader: Header, + BannerCookies, /* , CPreloadImages */ + }, + setup() { + const route = useRoute() + + const backgroundColor = 'whitesmoke' + const $q = useQuasar() + const userStore = useUserStore() + const globalStore = useGlobalStore() + const { t } = useI18n(); + + const listaRoutingNoLogin = ['/vreg?', '/offline'] + + function meta() { + return { + title: t('msg.myAppName'), + keywords: [{ name: 'keywords', content: 'associazione shen, centro olistico lugo' }, + { name: 'description', content: t('msg.myAppDescription') }], + // equiv: { 'http-equiv': 'Content-Type', 'content': 'text/html; charset=UTF-8' } + } + } + + function created() { + if (process.env.DEV) { + console.info('SESSIONE IN SVILUPPO ! (DEV)') + // console.info(process.env) + } + if (process.env.PROD) { + console.info('SESSIONE IN PRODUZIONE!') + // console.info(process.env) + } + + // Make autologin only if some routing + + // console.log('window.location.href', window.location.href) + + let chiamaautologin = true + listaRoutingNoLogin.forEach((mystr) => { + if (window.location.href.includes(mystr)) { + chiamaautologin = false + } + }) + + if (chiamaautologin) { + // console.log('CHIAMA autologin_FromLocalStorage') + userStore.autologin_FromLocalStorage() + .then((loadstorage) => { + if (loadstorage) { + + /* + if (toolsext.getLocale() !== '') { + // console.log('SETLOCALE :', this.$i18n.locale) + this.$i18n.locale = toolsext.getLocale() // Set Lang + } else { + userStore.setlang(this.$i18n.locale) + } + */ + + // console.log('lang CARICATO:', this.$i18n.locale) + + // ++Todo: conv: globalroutines(this, 'loadapp', '') + // this.$router.replace('/') + + // Create Subscription to Push Notification + // ++Todo: conv: globalStore.createPushSubscription() + } + }) + } + + // Calling the Server for updates ? + // Check the verified_email + } + + created() + + return { + + } + }, +} diff --git a/src/App.vue b/src/App.vue new file mode 100755 index 00000000..3d555e39 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,25 @@ + + + diff --git a/src/App.vue.test b/src/App.vue.test new file mode 100755 index 00000000..ba633827 --- /dev/null +++ b/src/App.vue.test @@ -0,0 +1,18 @@ + + + diff --git a/src/assets/quasar-logo-vertical.svg b/src/assets/quasar-logo-vertical.svg new file mode 100755 index 00000000..82108310 --- /dev/null +++ b/src/assets/quasar-logo-vertical.svg @@ -0,0 +1,15 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/boot/.directory b/src/boot/.directory new file mode 100755 index 00000000..7030f626 --- /dev/null +++ b/src/boot/.directory @@ -0,0 +1,7 @@ +[Dolphin] +Timestamp=2019,10,10,17,25,7 +Version=4 +ViewMode=1 + +[Settings] +HiddenFilesShown=true diff --git a/src/boot/.gitkeep b/src/boot/.gitkeep new file mode 100755 index 00000000..e69de29b diff --git a/src/boot/axios.ts b/src/boot/axios.ts new file mode 100755 index 00000000..cae9d15c --- /dev/null +++ b/src/boot/axios.ts @@ -0,0 +1,20 @@ +import axios from 'axios' +import { boot } from 'quasar/wrappers' + +// const api = axios.create({ baseURL: 'https://api.example.com' }) + +export default boot(({ app }) => { +// for use inside Vue files (Options API) through this.$axios and this.$api + + app.config.globalProperties.$axios = axios + // ^ ^ ^ this will allow you to use this.$axios (for Vue Options API form) + // so you won't necessarily have to import axios in each vue file + + // app.config.globalProperties.$api = api +// ^ ^ ^ this will allow you to use this.$api (for Vue Options API form) +// so you can easily perform requests against your app's API +// +}) + +export { axios } +// export { axios, api } diff --git a/src/boot/dialog.ts b/src/boot/dialog.ts new file mode 100755 index 00000000..49231282 --- /dev/null +++ b/src/boot/dialog.ts @@ -0,0 +1,6 @@ +import { Dialog } from 'quasar' +import { boot } from 'quasar/wrappers' + +export default boot(({ app }) => { + app.use(Dialog) +}) diff --git a/src/boot/dragula.ts.off b/src/boot/dragula.ts.off new file mode 100755 index 00000000..6a863d91 --- /dev/null +++ b/src/boot/dragula.ts.off @@ -0,0 +1,12 @@ +import { Vue, Options } from "vue-class-component" +// import { Vue2Dragula } from 'vue2-dragula' + +import { boot } from 'quasar/wrappers' + +export default ({ app }) => { + app.use(Vue2Dragula, { + logging: { + service: false // to only log methods in service (DragulaService) + } + }) +} diff --git a/src/boot/error-handler.ts b/src/boot/error-handler.ts new file mode 100755 index 00000000..794433e8 --- /dev/null +++ b/src/boot/error-handler.ts @@ -0,0 +1,9 @@ +import { boot } from 'quasar/wrappers' +// import something here +import errorHandler from '../error-handler' + +// leave the export, even if you don't use it +export default boot(({ app, router }) => { + // something to do + app.config.globalProperties.$errorHandler = errorHandler +}) diff --git a/src/boot/globalroutines.ts b/src/boot/globalroutines.ts new file mode 100755 index 00000000..60fd656c --- /dev/null +++ b/src/boot/globalroutines.ts @@ -0,0 +1,8 @@ +import { boot } from 'quasar/wrappers' +import globalroutines from '../globalroutines' + +// @ts-ignore +export default boot(({ app, router, store }) => { + // something to do + app.config.globalProperties.$globalroutines = globalroutines +}) diff --git a/src/boot/googlemap.ts b/src/boot/googlemap.ts new file mode 100755 index 00000000..814db2d3 --- /dev/null +++ b/src/boot/googlemap.ts @@ -0,0 +1,6 @@ +// import google from '../googlemap' +import { boot } from 'quasar/wrappers' + +export default boot(({ app, router }) => { + // app.config.globalProperties.$google = google +}) diff --git a/src/boot/guard.ts b/src/boot/guard.ts new file mode 100755 index 00000000..85773007 --- /dev/null +++ b/src/boot/guard.ts @@ -0,0 +1,57 @@ +// import something here + +// import { isEqual } from 'lodash' +// import { ProgressBar } from '@src/store/Modules/Interface' +// import { UserStore } from "@store" + +// @ts-ignore +import { boot } from 'quasar/wrappers' + +export default boot(({ app, router }) => { + // ****************************************** + // *** Per non permettere di accedere alle pagine in cui è necessario essere Loggati ! *** + // ****************************************** + + // Creates a `nextMiddleware()` function which not only + // runs the default `next()` callback but also triggers + // the subsequent Middleware function. + + /* router.beforeEach((to, from, next) => { + var accessToken = store.state.session.userSession.accessToken + // ESTANDO LOGEADO + if (accessToken) { + // SE PERMITE IR DE AREA PUBLICA A PRIVADA + if (!from.matched.some(record => record.meta.requiresAuth) && to.matched.some(record => record.meta.requiresAuth)) { + next() + } + // SE PERMITE IR DE UNA AREA PRIVADA A OTRA PRIVADA + if (from.matched.some(record => record.meta.requiresAuth) && to.matched.some(record => record.meta.requiresAuth)) { + next() + } + // NO SE PERMITE IR A UN AREA PUBLICA DESDE UN AREA PRIVADA + if (from.matched.some(record => record.meta.requiresAuth) && !to.matched.some(record => record.meta.requiresAuth)) { + next(false) + } + // SE REDIRIJE AL PANEL + if (!from.matched.some(record => record.meta.requiresAuth) && !to.matched.some(record => record.meta.requiresAuth)) { + next('/Panel') + } + // NO ESTA LOGEADO + } else { + // SE PERMITE IR DE UNA AREA PUBLICA A OTRA PUBLICA + if (!from.matched.some(record => record.meta.requiresAuth) && !to.matched.some(record => record.meta.requiresAuth)) { + next() + } + // SE PERMITE IR DE UNA AREA PRIVADA A UNA PUBLICA (LOGOUT) + if (from.matched.some(record => record.meta.requiresAuth) && !to.matched.some(record => record.meta.requiresAuth)) { + next() + } + // NO SE PERMITE IR DE UNA AREA PUBLICA A UNA PRIVADA + if (!from.matched.some(record => record.meta.requiresAuth) && to.matched.some(record => record.meta.requiresAuth)) { + // REDIRIGIR A LOGIN + next('/') + } + } + }) */ + +}) diff --git a/src/boot/i18n.ts b/src/boot/i18n.ts new file mode 100755 index 00000000..219b12e5 --- /dev/null +++ b/src/boot/i18n.ts @@ -0,0 +1,33 @@ +import { createI18n } from 'vue-i18n' +import messages from '../statics/i18n' +import { boot } from 'quasar/wrappers' +// you'll need to create the src/i18n/index.js file too + +const i18n = createI18n({ + locale: 'it', + messages, +}) + +export default ({ app }: { app: any }) => { + // Set i18n instance on app + app.use(i18n) +} + +export function useI18n() { + // eslint-disable-next-line @typescript-eslint/unbound-method + const { + t, te, tm, rt, d, n, ...globalApi + } = i18n.global; + + return { + t: t.bind(i18n), + te: te.bind(i18n), + tm: tm.bind(i18n), + rt: rt.bind(i18n), + d: d.bind(i18n), + n: n.bind(i18n), + ...globalApi, + }; +} + +export { i18n } diff --git a/src/boot/local-storage.ts b/src/boot/local-storage.ts new file mode 100755 index 00000000..b0d72146 --- /dev/null +++ b/src/boot/local-storage.ts @@ -0,0 +1,8 @@ +// import something here +import { boot } from 'quasar/wrappers' +import { _LocalStorage } from '../local-storage' +// leave the export, even if you don't use it +export default boot(({ app, router }) => { + // something to do + app.config.globalProperties.$_localStorage = _LocalStorage +}) diff --git a/src/boot/mycharts.ts.off b/src/boot/mycharts.ts.off new file mode 100755 index 00000000..6eff0e85 --- /dev/null +++ b/src/boot/mycharts.ts.off @@ -0,0 +1,5 @@ +import Chartkick from 'vue-chartkick' + +export default async ({ Vue }) => { + Vue.use(Chartkick) +} diff --git a/src/boot/myconfig.ts b/src/boot/myconfig.ts new file mode 100755 index 00000000..689b1291 --- /dev/null +++ b/src/boot/myconfig.ts @@ -0,0 +1,10 @@ +// import something here +import { boot } from 'quasar/wrappers' +import myconfig from '../myconfig' + +// leave the export, even if you don't use it +export default boot(({ app }) => { + // Vue.use(myconfig); + // something to do + app.config.globalProperties.$myconfig = myconfig +}) diff --git a/src/boot/mypao.ts b/src/boot/mypao.ts new file mode 100644 index 00000000..ce97c66c --- /dev/null +++ b/src/boot/mypao.ts @@ -0,0 +1,7 @@ +import { boot } from 'quasar/wrappers' + +// "async" is optional; +// more info on params: https://v2.quasar.dev/quasar-cli/boot-files +export default boot(async ({ app, router }) => { + // something to do +}) diff --git a/src/boot/track-disattivato-riutilizzare.ts.off b/src/boot/track-disattivato-riutilizzare.ts.off new file mode 100755 index 00000000..c1a9cc6d --- /dev/null +++ b/src/boot/track-disattivato-riutilizzare.ts.off @@ -0,0 +1,8 @@ +// import something here +import track from '../track' + +// leave the export, even if you don't use it +export default ({ app, router, store, Vue }) => { + // something to do + Vue.prototype.$track = track +} diff --git a/src/boot/vee-validate.ts b/src/boot/vee-validate.ts new file mode 100644 index 00000000..9d4e5860 --- /dev/null +++ b/src/boot/vee-validate.ts @@ -0,0 +1,7 @@ +import { boot } from 'quasar/wrappers' + +// "async" is optional; +// more info on params: https://v2.quasar.dev/quasar-cli/boot-files +export default boot(async (/* { app, router, ... } */) => { + // something to do +}) diff --git a/src/boot/vee-validate.ts.off b/src/boot/vee-validate.ts.off new file mode 100755 index 00000000..ae3f1f84 --- /dev/null +++ b/src/boot/vee-validate.ts.off @@ -0,0 +1,6 @@ +import VeeValidate from 'vee-validate' +import { boot } from 'quasar/wrappers' + +export default boot(({ app }) => { + app.use(VeeValidate, { inject: false }) +}) diff --git a/src/boot/vue-i18n.ts.off b/src/boot/vue-i18n.ts.off new file mode 100755 index 00000000..3768fa1b --- /dev/null +++ b/src/boot/vue-i18n.ts.off @@ -0,0 +1,34 @@ +// src/boot/vue-i18n.js +import { createI18n } from 'vue-i18n' +import { toolsext } from '@src/store/Modules/toolsext' +import messages from '../statics/i18n' +import { tools } from '../store/Modules/tools' +import { createPinia } from 'pinia' + +export default ({ app }: { app: any }) => { + // Vue.config.lang = process.env.LANG_DEFAULT; + + const pinia = createPinia() + app.use(pinia) + + let mylang = tools.getItemLS(toolsext.localStorage.lang) + console.log(`LANG LocalStorage ${mylang}`) + + if ((navigator)) { + const mylangnav = navigator.language + console.log(`LANG NAVIGATOR ${mylangnav}`) + if (mylang === '') mylang = mylangnav + } + + mylang = toolsext.checkLangPassed(mylang) + + app.config.globalProperties.lang = mylang + + const i18n = createI18n({ + fallbackLocale: mylang, + locale: 'en-US', + messages, + }) + + app.use(i18n) +} diff --git a/src/boot/vue-idb.ts.off b/src/boot/vue-idb.ts.off new file mode 100755 index 00000000..01ff6865 --- /dev/null +++ b/src/boot/vue-idb.ts.off @@ -0,0 +1,7 @@ +import VueIdb from 'vue-idb' +import { boot } from "quasar/wrappers" + +export default boot(({ app }) => { + app.use(VueIdb) + +}) diff --git a/src/boot/vue-meta.ts.off b/src/boot/vue-meta.ts.off new file mode 100755 index 00000000..b0c79337 --- /dev/null +++ b/src/boot/vue-meta.ts.off @@ -0,0 +1,6 @@ +import Component from 'vue-class-component' + +// Register the meta hook +Component.registerHooks([ + 'meta' +]) diff --git a/src/boot/vuelidate.ts b/src/boot/vuelidate.ts new file mode 100755 index 00000000..b2d0cca1 --- /dev/null +++ b/src/boot/vuelidate.ts @@ -0,0 +1,7 @@ +import Vuelidate from 'vuelidate' +import { boot } from 'quasar/wrappers' + +export default boot(({ app }) => { + // @ts-ignore + app.use(Vuelidate) +}) diff --git a/src/boot/vuetelinput.ts.off b/src/boot/vuetelinput.ts.off new file mode 100755 index 00000000..0dd3a1b4 --- /dev/null +++ b/src/boot/vuetelinput.ts.off @@ -0,0 +1,8 @@ +import VueTelInput from 'vue-tel-input' +import { boot } from "quasar/wrappers" + +// "async" is optional +export default boot(async ({ app }) => { + // something to do + app.use(VueTelInput) +}) diff --git a/src/classes/debounce.ts b/src/classes/debounce.ts new file mode 100755 index 00000000..042f4e7f --- /dev/null +++ b/src/classes/debounce.ts @@ -0,0 +1,41 @@ +/** + * A function that emits a side effect and does not return anything. + */ +export type Procedure = (...args: any[]) => void + +export type Options = { + isImmediate: boolean +} + +export function debounce( + func: F, + waitMilliseconds: number = 50, + options: Options = { + isImmediate: false, + }, +): F { + let timeoutId: NodeJS.Timeout | undefined + + return function retA(this: any, ...args: any[]) { + const context = this + + const doLater = function retB() { + timeoutId = undefined + if (!options.isImmediate) { + func.apply(context, args) + } + } + + const shouldCallNow = options.isImmediate && timeoutId === undefined + + if (timeoutId) { + clearTimeout(timeoutId) + } + + timeoutId = setTimeout(doLater, waitMilliseconds) + + if (shouldCallNow) { + func.apply(context, args) + } + } as any +} diff --git a/src/classes/index.ts b/src/classes/index.ts new file mode 100755 index 00000000..36427baa --- /dev/null +++ b/src/classes/index.ts @@ -0,0 +1 @@ +// export * from './DateController'; diff --git a/src/common/axios.ts b/src/common/axios.ts new file mode 100755 index 00000000..25875cf8 --- /dev/null +++ b/src/common/axios.ts @@ -0,0 +1,69 @@ +import axios, { + AxiosError, + AxiosRequestConfig, + AxiosResponse, +} from 'axios' + +// import { default as VueRouter } from 'vue-router' +import { serv_constants } from '@src/store/Modules/serv_constants' +// import { TokenHelper } from "./token-helper"; + +let initialized: boolean = false + +interface IRequestConfig extends AxiosRequestConfig { + ignore: number[] +} + +function handle(status: number, exclude: number[]) { + if (exclude.length === 0) return true + return exclude.find(o => o === status) === undefined +} + +export function UseAxios(router: any) { // VueRouter + if (!initialized) { + // @ts-ignore + axios.interceptors.request.use((config: IRequestConfig) => { + if (!config.headers.Authorization) { + // append authorization header + /* ++Todo: disattivato per ora... + let bearerToken = TokenHelper.getBearerToken() + + if (bearerToken.Authorization) + Object.assign(config.headers, bearerToken) + */ + } + + // ensure axios does not follow redirects, so custom response interceptor below can push to app login page + if (!config.maxRedirects || (config.maxRedirects === 5)) { + config.maxRedirects = 0 + } + + return config + }) + + axios.interceptors.response.use(undefined, (config: AxiosError) => { + // @ts-ignore + const { response } = config + const exclude = (config.config).ignore || [] + + if (response) { + if (response.status === 401 && handle(response.status, exclude)) { + const location: string = response.headers.location || response.headers.Location + + if (location) { + const redirectTo = `/${location}` + window.setTimeout(() => router.replace(redirectTo), 200) + } + } + + if (response.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN && handle(response.status, exclude)) { + window.setTimeout(() => router.replace('/forbidden'), 200) + } + } + + return config + }) + + initialized = true + } +} diff --git a/src/common/debounce.ts b/src/common/debounce.ts new file mode 100755 index 00000000..f4d399fe --- /dev/null +++ b/src/common/debounce.ts @@ -0,0 +1,58 @@ +/** + * Returns a function, that, as long as it continues to be invoked, will not + * be triggered. The function will be called after it stops being called for + * N milliseconds. If `immediate` is passed, trigger the function on the + * leading edge, instead of the trailing. The function also has a property 'clear' + * that is a function which will clear the timer to prevent previously scheduled executions. + * + * @source underscore.js + * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/ + * @param {Function} function to wrap + * @param {Number} timeout in ms (`100`) + * @param {Boolean} whether to execute at the beginning (`false`) + * @api public + */ + +export function Debounce(func: Function, wait?: number, immediate?: boolean) { + // @ts-ignore + let timeout: any, + args: any, + context: any, + timestamp: any, + result: any + if (wait == null) wait = 100 + + function later() { + const last = Date.now() - timestamp + + // @ts-ignore + if (last < wait && last > 0) { + // @ts-ignore + timeout = setTimeout(later, wait - last) + } else { + timeout = null + if (!immediate) { + result = func.apply(context, args) + context = args == null + } + } + } + + return function a2() { + // @ts-ignore + context = this + // @ts-ignore + // args = arguments + timestamp = Date.now() + const callNow = immediate && !timeout + if (!timeout) { + timeout = setTimeout(later, wait) + } + if (callNow) { + result = func.apply(context, args) + context = args == null + } + + return result + } +} diff --git a/src/common/index.ts b/src/common/index.ts new file mode 100755 index 00000000..bcc0db6b --- /dev/null +++ b/src/common/index.ts @@ -0,0 +1,5 @@ +export * from './pattern' +export * from './axios' +export * from './debounce' +export * from './message' +export { default as GlobalConfig } from '../config' diff --git a/src/common/message.ts b/src/common/message.ts new file mode 100755 index 00000000..b53e7f94 --- /dev/null +++ b/src/common/message.ts @@ -0,0 +1,8 @@ +export const PayloadMessageTypes = { + error: 'Error', + info: 'Info', + failure: 'Failure', + success: 'Success', + warning: 'Warning', + statusfound: 200, +} diff --git a/src/common/pattern.ts b/src/common/pattern.ts new file mode 100755 index 00000000..fb2ca581 --- /dev/null +++ b/src/common/pattern.ts @@ -0,0 +1,20 @@ +export class Patterns { + /** + * Alphanumeric, spaces and dashes allowed. Min 2 characters length. + */ + public static DisplayName: RegExp = /^[0-9a-zA-Z\s-]{2,}/i + + /** + * Same pattern used by JQuery userName validation + */ + public static Email: RegExp = /^((“[\w-\s]+”)|([\w-]+(?:\.[\w-]+)*)|(“[\w-\s]+”)([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}[0-9];{1,2})\]?$)/i + + /** + * 6 to 20 characters string with at least one digit, one upper case letter, one lower case letter and one special symbol + * + * public static Password: RegExp = /^((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%!\-]).{6,20})/i + * + * 8 to 20 characters string with at least one digit, one upper case letter, one lower case letter and one special symbol + */ + public static Password: RegExp = /^((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,30})/i +} diff --git a/src/common/shared_nodejs.js b/src/common/shared_nodejs.js new file mode 100755 index 00000000..ae959cdf --- /dev/null +++ b/src/common/shared_nodejs.js @@ -0,0 +1,117 @@ +module.exports = { + Accepted: { + CHECK_READ_GUIDELINES: 1, + CHECK_SEE_VIDEO_PRINCIPI: 2, + }, + + ALL_SAW_AND_ACCEPTED: 3, + // --------------------- + + FILTER_EXTRALIST_NOT_REGISTERED: 1, + FILTER_EXTRALIST_NOT_CONTACTED: 2, + FILTER_EXTRALIST_WITH_NOTE: 4, + FILTER_USER_NO_ZOOM: 8, + FILTER_USER_NO_INVITANTE: 16, + FILTER_USER_NO_TELEGRAM_ID: 32, + FILTER_USER_CODICE_AUTH_TELEGRAM: 64, + FILTER_USER_NO_EMAIL_VERIFICATA: 128, + FILTER_USER_NO_DREAM: 256, + FILTER_EXTRALIST_DELETED: 512, + FILTER_USER_TELEGRAM_BLOCKED: 1024, + FILTER_ATTIVI: 2048, + FILTER_NASCOSTI: 4096, + FILTER_NAVI_NON_PRESENTI: 8192, + FILTER_QUALIFIED: 16384, + FILTER_ASK_ZOOM_VISTO: 32768, + FILTER_HOURS_MYLIST: 65536, + FILTER_HOURS_ALL: 131072, + FILTER_MISSING_PAYMENT: 262144, + FILTER_TO_MAKE_MEMBERSHIP_CARD: 524288, + FILTER_MEMBERSHIP_CARD_OK: 1048576, + + REPORT_FILT_RESP: 1, + REPORT_FILT_ATTIVITA: 2, + + PaymentTypes: [ + 'Nessuno', + 'Bonifico Bancario', + 'Paypal', + 'In Contanti alla CNM', + ], + + CashType: { + None: 0, + Incoming: 1, + Outcoming: 2, + }, + + WalletFinalStatusType: { + None: 0, + InCommonCash: 1, + InMyWallet: 2, + }, + + Permissions: { + Admin: 1, + Manager: 2, + Teacher: 4, + Tutor: 8, + Editor: 16, + Zoomeri: 32, + Department: 64, + }, + + MessageOptions: { + Notify_ByEmail: 2, + Notify_ByPushNotification: 4, + }, + + TypeMsg: { + SEND_TO_ALL: 1, + SEND_TO_SOCI: 2, + SEND_TO_SOCIO_RESIDENTE: 3, + SEND_TO_CONSIGLIO: 5, + SEND_TO_NON_SOCI: 10, + SEND_TO_PAOLO: 20, + }, + + TypeMsg_Actions: { + NORMAL: 0, + YESNO: 1, + OPZ1_2: 2, + }, + + CallFunz: { + SOSTITUISCI: 345, + AGGIUNGI_NUOVO_IMBARCO: 380, + CANCELLA_IMBARCO: 385, + DAMMI_PRIMO_UTENTE_LIBERO: 390, + GET_VALBYTABLE: 400, + SET_VALBYTABLE: 410, + ZOOM_GIA_PARTECIPATO: 510, + }, + + OrderStatus: { + NONE: 0, + IN_CART: 1, + CHECKOUT_SENT: 2, + ORDER_CONFIRMED: 3, + PAYED: 4, + DELIVEDED: 5, + RECEIVED: 6, + CANCELED: 10, + }, + + OrderStatusView: { + CHECKOUT_SENT: 2, + ORDER_CONFIRMED: 3, + PAYED: 4, + RECEIVED: 6, + CANCELED: 10, + }, + + fieldsUserToChange() { + return ['_id', 'index', 'username', 'email', 'name', 'surname', 'perm', 'date_reg', 'verified_email', 'ipaddr', 'lasttimeonline', 'profile', 'calcstat', 'news_on', 'aportador_solidario', 'made_gift', 'ind_order', 'old_order', 'numinvitati', 'numinvitatiattivi', 'qualified'] + }, + +}; diff --git a/src/common/shared_vuejs.ts b/src/common/shared_vuejs.ts new file mode 100755 index 00000000..274bc73d --- /dev/null +++ b/src/common/shared_vuejs.ts @@ -0,0 +1,225 @@ + +export const shared_consts = { + + Accepted: { + CHECK_READ_GUIDELINES: { + value: 1, + label: 'steps.linee_guida', + icon: 'fas fa-user-shield', + color: 'red', + }, + CHECK_SEE_VIDEO_PRINCIPI: { + value: 2, + label: 'steps.video_intro', + icon: 'fas fa-tools', + color: 'green', + }, + }, + + ALL_SAW_AND_ACCEPTED: 3, + + FILTER_EXTRALIST_NOT_REGISTERED: 1, + FILTER_EXTRALIST_NOT_CONTACTED: 2, + FILTER_EXTRALIST_WITH_NOTE: 4, + FILTER_USER_NO_ZOOM: 8, + FILTER_USER_NO_INVITANTE: 16, + FILTER_USER_NO_TELEGRAM_ID: 32, + FILTER_USER_CODICE_AUTH_TELEGRAM: 64, + FILTER_USER_NO_EMAIL_VERIFICATA: 128, + FILTER_USER_NO_DREAM: 256, + FILTER_EXTRALIST_DELETED: 512, + FILTER_USER_TELEGRAM_BLOCKED: 1024, + FILTER_ATTIVI: 2048, + FILTER_NASCOSTI: 4096, + FILTER_NAVI_NON_PRESENTI: 8192, + FILTER_QUALIFIED: 16384, + FILTER_ASK_ZOOM_VISTO: 32768, + FILTER_HOURS_MYLIST: 65536, + FILTER_HOURS_ALL: 131072, + FILTER_MISSING_PAYMENT: 262144, + FILTER_TO_MAKE_MEMBERSHIP_CARD: 524288, + FILTER_MEMBERSHIP_CARD_OK: 1048576, + + REPORT_FILT_RESP: 1, + REPORT_FILT_ATTIVITA: 2, + + CashType: { + None: 0, + Incoming: 1, + Outcoming: 2, + }, + + Permissions: { + Admin: { + value: 1, + label: 'pages.Admin', + icon: 'fas fa-user-shield', + color: 'red', + }, + Manager: { + value: 2, + label: 'otherpages.manage.manager', + icon: 'fas fa-tools', + color: 'green', + }, + Teacher: { + value: 4, + label: 'event.teacher', + icon: 'fas fa-user-tie', + color: 'blue', + }, + Tutor: { + value: 8, + label: 'dashboard.tutor', + icon: 'fas fa-user-tie', + color: 'fuchsia', + }, + Editor: { + value: 16, + label: 'dashboard.Editor', + icon: 'fas fa-user-tie', + color: 'orange', + }, + Zoomeri: { + value: 32, + label: 'dashboard.zoomeri', + icon: 'fas fa-user-tie', + color: 'yellow', + }, + Department: { + value: 64, + label: 'pages.department', + icon: 'fas fa-user-tie', + color: 'yellow', + }, + }, + + MessageOptions: { + Notify_ByEmail: 2, + Notify_ByPushNotification: 4, + }, + + TypeMsg: { + SEND_TO_ALL: 1, + SEND_TO_SOCI: 2, + SEND_TO_SOCIO_RESIDENTE: 3, + SEND_TO_NON_SOCI: 10, + SEND_TO_PAOLO: 20, + }, + + TypeMsg_Actions: { + NORMAL: 0, + YESNO: 1, + OPZ1_2: 2, + }, + + selectActions: [ + { + id: 0, + label: 'Normale', + value: 0, + }, + { + id: 1, + label: 'Si / No', + value: 1, + }, + { + id: 2, + label: 'Opzione 1 / Opzione 2', + value: 2, + }, + ], + + selectDestination: [ + { + id: 0, + label: 'A Tutti', + value: 1, + }, + { + id: 1, + label: 'Solo ai Soci', + value: 2, + }, + { + id: 2, + label: 'Solo ai Soci Residenti', + value: 3, + }, + { + id: 3, + label: 'Solo ai NON Soci', + value: 10, + }, + { + id: 4, + label: 'a Paolo (test)', + value: 20, + }, + ], + + OrderStatus: { + NONE: 0, + IN_CART: 1, + CHECKOUT_SENT: 2, + ORDER_CONFIRMED: 3, + PAYED: 4, + DELIVEDED: 5, + RECEIVED: 6, + CANCELED: 10, + }, + + OrderStatusView: [ + 2, + 3, + 4, + 6, + 10, + ], + + OrderStatusStr: [ + { + label: 'Nessuno', + value: 0, + }, + { + label: 'In Carrello', + value: 1, + }, + { + label: 'Ordine in Lavorazione', + value: 2, + }, + { + label: 'Ordine Confermato', + value: 3, + }, + { + label: 'Pagato', + value: 4, + }, + { + label: 'Spedito', + value: 5, + }, + { + label: 'Ricevuto', + value: 6, + }, + { + label: 'Cancellato', + value: 10, + }, + ], + + getStatusStr(status: number) { + const trovatorec = this.OrderStatusStr.find((rec) => rec.value === status) + return (trovatorec) ? trovatorec.label : '' + }, + + fieldsUserToChange() { + return ['_id', 'username', 'email', 'name', 'surname', 'perm', 'date_reg', 'verified_email', 'img', 'ipaddr', 'lasttimeonline', 'profile', 'news_on'] + }, + +} diff --git a/src/components/.directory b/src/components/.directory new file mode 100755 index 00000000..35e7ed1c --- /dev/null +++ b/src/components/.directory @@ -0,0 +1,4 @@ +[Dolphin] +Timestamp=2019,10,10,16,45,34 +Version=4 +ViewMode=1 diff --git a/src/components/BannerCookies/BannerCookies.scss b/src/components/BannerCookies/BannerCookies.scss new file mode 100755 index 00000000..320e7a87 --- /dev/null +++ b/src/components/BannerCookies/BannerCookies.scss @@ -0,0 +1,34 @@ +// Animations +// slideFromBottom +.slideFromBottom-enter, .slideFromBottom-leave-to { + transform: translate(0px, 10em); +} + +.slideFromBottom-enter-to, .slideFromBottom-leave { + transform: translate(0px, 0px); +} + +.slideFromBottom-enter-active { + transition: transform .2s ease-out; +} + +.slideFromBottom-leave-active { + transition: transform .2s ease-in; +} + +.tothebottomfixed { + position: fixed; + left: 0; + right: 60px; + bottom: 0; + height: -100%; + z-index: 1000; +} + +.margin_buttons_cook { + margin: -8px -8px; +} + +.margin_buttons_cook > * { + margin: 8px 8px !important; +} diff --git a/src/components/BannerCookies/BannerCookies.ts b/src/components/BannerCookies/BannerCookies.ts new file mode 100755 index 00000000..10237ed2 --- /dev/null +++ b/src/components/BannerCookies/BannerCookies.ts @@ -0,0 +1,141 @@ +import { useQuasar } from 'quasar' +import { + defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRefs, watch, +} from 'vue' +import { useI18n } from '@src/boot/i18n' + +// PropType, + +export default defineComponent({ + name: 'BannerCookies', + components: {}, + props: { + urlInfo: { + type: String, + required: true, + }, + }, + + setup(props, context) { + const $q = useQuasar() + const { t } = useI18n(); + + const elementId = ref('id'); + const disableDecline = ref(true); + const debug = ref(false); + const status = ref(null); + const supportsLocalStorage = ref(true); + const isOpen = ref(false); + + const getCookieStatus = (): string | null => { + if (supportsLocalStorage.value) { + return localStorage.getItem(`cookie-${elementId.value}`) + } + return null + // return tinyCookie.get(`cookie-${this.elementId}`) + } + + const init = (): void => { + const visitedType = getCookieStatus() + if (visitedType && (visitedType === 'accept' || visitedType === 'decline' || visitedType === 'postpone')) { + isOpen.value = false + } + + if (!visitedType) { + isOpen.value = true + } + if (!supportsLocalStorage.value) isOpen.value = false + + status.value = visitedType + context.emit('status', visitedType) + } + + const checkLocalStorageFunctionality = (): void => { + // Check for availability of localStorage + try { + const test = '__cookie-check-localStorage' + window.localStorage.setItem(test, test) + window.localStorage.removeItem(test) + } catch (e) { + console.error('Local storage is not supported, falling back to cookie use') + supportsLocalStorage.value = false + } + } + + const setCookieStatus = (type: string): void => { + if (supportsLocalStorage.value) { + if (type === 'accept') { + localStorage.setItem(`cookie-${elementId.value}`, 'accept') + } + if (type === 'decline') { + localStorage.setItem(`cookie-${elementId.value}`, 'decline') + } + if (type === 'postpone') { + localStorage.setItem(`cookie-${elementId.value}`, 'postpone') + } + } else { + /* if (type === 'accept') { + tinyCookie.set(`cookie-${elementId}`, 'accept') + } + if (type === 'decline') { + tinyCookie.set(`cookie-${elementId}`, 'decline') + } + if (type === 'postpone') { + tinyCookie.set(`cookie-${elementId}`, 'postpone') + } */ + } + } + + const accept = (): void => { + if (!debug.value) { + setCookieStatus('accept') + } + + status.value = 'accept' + isOpen.value = false + context.emit('clicked-accept') + } + + const decline = (): void => { + if (!debug.value) { + setCookieStatus('decline') + } + + status.value = 'decline' + isOpen.value = false + context.emit('clicked-decline') + } + + const clickInfo = (): void => { + isOpen.value = false + } + const postpone = (): void => { + if (!debug.value) { + setCookieStatus('postpone') + } + + status.value = 'postpone' + isOpen.value = false + context.emit('clicked-postpone') + } + const removeCookie = (): void => { + localStorage.removeItem(`cookie-${elementId.value}`) + status.value = null + context.emit('removed-cookie') + } + + onMounted(init) + + return { + disableDecline, + decline, + accept, + postpone, + checkLocalStorageFunctionality, + clickInfo, + removeCookie, + isOpen, + t, + } + }, +}) diff --git a/src/components/BannerCookies/BannerCookies.vue b/src/components/BannerCookies/BannerCookies.vue new file mode 100755 index 00000000..bf8bcef4 --- /dev/null +++ b/src/components/BannerCookies/BannerCookies.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/src/components/BannerCookies/index.ts b/src/components/BannerCookies/index.ts new file mode 100755 index 00000000..994517b0 --- /dev/null +++ b/src/components/BannerCookies/index.ts @@ -0,0 +1 @@ +export { default as BannerCookies } from './BannerCookies.vue' diff --git a/src/components/CImgText/CImgText.scss b/src/components/CImgText/CImgText.scss new file mode 100755 index 00000000..6164b554 --- /dev/null +++ b/src/components/CImgText/CImgText.scss @@ -0,0 +1,56 @@ + +.imgtext { + display: flex; + justify-content: space-between; + /* flex-flow: row nowrap; */ + + padding: 1rem 0 1rem 0; + margin: .125rem; + + * { + width: 100%; + flex: 1; + margin-left: auto; + margin-right: auto; + } + + &__img { + min-width: 250px; + } + &__imgh100 { + max-height: 100px; + } + &__imgh150 { + max-height: 150px; + } + &__imgw150 { + max-width: 150px; + } + &__imgw100 { + max-width: 100px; + } +} + + +@media (max-width: 400px) { + + // PER VERSIONE MOBILE + .landing > section.padding_testo { + padding-top: 0.5rem; + padding-bottom: 0.1rem; + } + + .imgtext { + padding: 0.25rem 0 0.25rem 0; + } + +} + +.landing > section.padding_testo { + padding-top: 1rem; + padding-bottom: 0.25rem; +} + +.section_text { + padding: 10px; +} diff --git a/src/components/CImgText/CImgText.ts b/src/components/CImgText/CImgText.ts new file mode 100755 index 00000000..8f2d99cf --- /dev/null +++ b/src/components/CImgText/CImgText.ts @@ -0,0 +1,53 @@ +import { + defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRef, toRefs, watch, +} from 'vue' + +import { tools } from '@src/store/Modules/tools' + +export default defineComponent({ + name: 'CImgText', + props: { + src: { + type: String, + default: '', + }, + src2: { + type: String, + default: '', + }, + class1: { + type: String, + default: 'myclimg', + }, + style1: { + type: String, + default: '', + }, + alt1: { + type: String, + default: 'image', + }, + alt2: { + type: String, + default: 'image', + }, + }, + + setup() { + function clrowcol() { + let mycl = 'row' + if (tools.isMobile()) mycl = 'column' + + return mycl + } + + function myclass() { + return `${clrowcol()} items-start q-col-gutter-xs imgtext ` + } + + return { + clrowcol, + myclass, + } + }, +}) diff --git a/src/components/CImgText/CImgText.vue b/src/components/CImgText/CImgText.vue new file mode 100755 index 00000000..bf7b66d7 --- /dev/null +++ b/src/components/CImgText/CImgText.vue @@ -0,0 +1,21 @@ + + + + diff --git a/src/components/CImgText/index.ts b/src/components/CImgText/index.ts new file mode 100755 index 00000000..6e38c9a7 --- /dev/null +++ b/src/components/CImgText/index.ts @@ -0,0 +1 @@ +export { default as CImgText } from './CImgText.vue' diff --git a/src/components/CImgTitle/CImgTitle.scss b/src/components/CImgTitle/CImgTitle.scss new file mode 100755 index 00000000..97086d18 --- /dev/null +++ b/src/components/CImgTitle/CImgTitle.scss @@ -0,0 +1,90 @@ + +.imgtitle { + display: flex; + justify-content: space-between; + /* flex-flow: row nowrap; */ + + padding: 1rem 0 1rem 0; + margin: .125rem; + + * { + width: 100%; + flex: 1; + margin-left: auto; + margin-right: auto; + } + + &__img { + min-width: 250px; + } + &__imgh100 { + max-height: 100px; + } + &__imgh150 { + max-height: 150px; + } + &__imgw150 { + max-width: 150px; + } + &__imgw100 { + max-width: 100px; + } +} + + +@media (max-width: 718px) { + // PER VERSIONE MOBILE + .landing > section.padding_testo { + padding-top: 0.5rem; + padding-bottom: 0.1rem; + } + + .imgtitle { + padding: 0.25rem 0 0.25rem 0; + } + +} + +.landing > section.padding_testo { + padding-top: 1rem; + padding-bottom: 0.25rem; +} + +.section_text { + padding: 10px; +} + +.title{ + font-size: 3rem; + padding: 10px; + text-shadow: .2rem .2rem .2rem #3d3d3d; +} + +@media (max-width: 400px) { + .title{ + padding: 5px; + font-size: 2.5rem; + } +} + +.mylegendinside{ + font-size: 1rem; + margin-bottom: 50px; + opacity: .8; + + @media (max-width: 400px) { + margin-bottom: -10px; + } +} + +.mylegend{ + text-align: center; + color: black; + font-size: 1rem; + font-style: italic; + opacity: .8; + text-shadow: .05rem .05rem .05rem #aeaeae; + z-index: 1000; + @media (max-width: 400px) { + } +} diff --git a/src/components/CImgTitle/CImgTitle.ts b/src/components/CImgTitle/CImgTitle.ts new file mode 100755 index 00000000..2c61e6d3 --- /dev/null +++ b/src/components/CImgTitle/CImgTitle.ts @@ -0,0 +1,58 @@ +import { defineComponent, ref } from 'vue' + +import { tools } from '@src/store/Modules/tools' + +export default defineComponent({ + name: 'CImgTitle', + props: { + src: { + type: String, + required: false, + default: '', + }, + title: { + type: String, + required: false, + default: '', + }, + myheight: { + type: Number, + required: false, + default: 0, + }, + myheightmobile: { + type: Number, + required: false, + default: 0, + }, + legendinside: { + type: String, + required: false, + default: '', + }, + legend: { + type: String, + required: false, + default: '', + }, + }, + + setup(props) { + function getsrc(): string { + const filefull = tools.getimgFullpathbysize(props.src) + + return tools.getimgbysize(filefull.path, filefull.file) + } + + function getaltimg(): string { + const filefull = tools.getimgFullpathbysize(props.src) + return tools.getaltimg(filefull.path, filefull.file, props.title) + } + + return { + getsrc, + getaltimg, + } + }, + +}) diff --git a/src/components/CImgTitle/CImgTitle.vue b/src/components/CImgTitle/CImgTitle.vue new file mode 100755 index 00000000..facc8674 --- /dev/null +++ b/src/components/CImgTitle/CImgTitle.vue @@ -0,0 +1,15 @@ + + + + diff --git a/src/components/CImgTitle/index.ts b/src/components/CImgTitle/index.ts new file mode 100755 index 00000000..4a31c182 --- /dev/null +++ b/src/components/CImgTitle/index.ts @@ -0,0 +1 @@ +export { default as CImgTitle } from './CImgTitle.vue' diff --git a/src/components/CMyPage/CMyPage.scss b/src/components/CMyPage/CMyPage.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/components/CMyPage/CMyPage.ts b/src/components/CMyPage/CMyPage.ts new file mode 100755 index 00000000..1d626c07 --- /dev/null +++ b/src/components/CMyPage/CMyPage.ts @@ -0,0 +1,67 @@ +import { + defineComponent, onMounted, ref, toRef, +} from 'vue' + +import { IMyPage } from '@src/model' +import { useQuasar } from 'quasar' +import { useGlobalStore } from '@store/globalStore' +import { Footer } from '../Footer' + +import { CImgTitle } from '../CImgTitle/index' +import { CTitle } from '../CTitle/index' +import MixinsMetaTags from '../../mixins/mixin-metatags' + +export default defineComponent({ + name: 'CMyPage', + components: { Footer, CImgTitle, CTitle }, + mixins: [MixinsMetaTags], + props: { + title: String, + mypath: { + type: String, + required: false, + default: '', + }, + img: { + type: String, + required: false, + default: '', + }, + imgbackground: { + type: String, + required: false, + default: '', + }, + sizes: { + type: String, + required: false, + default: '', + }, + styleadd: { + type: String, + required: false, + default: '', + }, + nofooter: { + type: Boolean, + required: false, + default: false, + }, + }, + + setup(props) { + const $q = useQuasar() + const rec = ref(null) + const mypath = toRef(props, 'mypath') + + const globalStore = useGlobalStore() + + const load = async (): Promise => { + if (mypath.value !== '') rec.value = await globalStore.loadPage(mypath.value) + } + onMounted(load) + + return { rec } + }, + +}) diff --git a/src/components/CMyPage/CMyPage.vue b/src/components/CMyPage/CMyPage.vue new file mode 100755 index 00000000..27cba92c --- /dev/null +++ b/src/components/CMyPage/CMyPage.vue @@ -0,0 +1,53 @@ + + + + diff --git a/src/components/CMyPage/index.ts b/src/components/CMyPage/index.ts new file mode 100755 index 00000000..4097d69d --- /dev/null +++ b/src/components/CMyPage/index.ts @@ -0,0 +1 @@ +export { default as CMyPage } from './CMyPage.vue' diff --git a/src/components/CTitle/CTitle.scss b/src/components/CTitle/CTitle.scss new file mode 100755 index 00000000..ab083089 --- /dev/null +++ b/src/components/CTitle/CTitle.scss @@ -0,0 +1,29 @@ + +.cltitlebg{ + +} + +.titletext { + color: white; + font-size: 3rem; + font-weight: 500; + line-height: 3rem; + text-shadow: .25rem .25rem .5rem black; + letter-spacing: .00937em; + opacity: 0.9; +} + +@media (max-width: 718px) { + // PER VERSIONE MOBILE + .titletext { + color: white; + font-size: 2rem; + font-weight: 500; + line-height: 2rem; + text-shadow: .25rem .25rem .5rem black; + } +} + +.q-img__content > div{ + background: rgba(0,0,0,0.17) !important; +} diff --git a/src/components/CTitle/CTitle.ts b/src/components/CTitle/CTitle.ts new file mode 100755 index 00000000..b05174fd --- /dev/null +++ b/src/components/CTitle/CTitle.ts @@ -0,0 +1,56 @@ +import { + defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRef, toRefs, watch, +} from 'vue' + +import { tools } from '@store/Modules/tools' + +export default defineComponent({ + name: 'CTitle', + props: { + headtitle: { + type: String, + required: true, + default: '', + }, + imgbackground: { + type: String, + default: '', + }, + imghead: { + type: String, + default: '', + }, + sizes: { + type: String, + default: '', + }, + styleadd: { + type: String, + default: '', + }, + }, + + setup(props, { attrs, slots, emit }) { + const { headtitle } = toRefs(props) // REQUIRED PROP ! + const imgbackground = toRef(props, 'imgbackground') // OPTIONAL PROP + + function getsrc(): string { + const filefull = tools.getimgFullpathbysize(imgbackground.value) + + return tools.getimgbysize(filefull.path, filefull.file) + } + + function getaltimg(): string { + if (headtitle.value) { + return headtitle.value + } + const filefull = tools.getimgFullpathbysize(imgbackground.value) + return tools.getaltimg(filefull.path, filefull.file, headtitle.value) + } + + return { + getsrc, + getaltimg, + } + }, +}) diff --git a/src/components/CTitle/CTitle.vue b/src/components/CTitle/CTitle.vue new file mode 100755 index 00000000..b18ff6ae --- /dev/null +++ b/src/components/CTitle/CTitle.vue @@ -0,0 +1,28 @@ + + + + diff --git a/src/components/CTitle/index.ts b/src/components/CTitle/index.ts new file mode 100755 index 00000000..e17195f3 --- /dev/null +++ b/src/components/CTitle/index.ts @@ -0,0 +1 @@ +export { default as CTitle } from './CTitle.vue' diff --git a/src/components/ClassComponent.vue b/src/components/ClassComponent.vue new file mode 100755 index 00000000..45682c4c --- /dev/null +++ b/src/components/ClassComponent.vue @@ -0,0 +1,40 @@ + + + diff --git a/src/components/EssentialLink.vue b/src/components/EssentialLink.vue new file mode 100755 index 00000000..8c002692 --- /dev/null +++ b/src/components/EssentialLink.vue @@ -0,0 +1,39 @@ + + + diff --git a/src/components/Footer/Footer.scss b/src/components/Footer/Footer.scss new file mode 100755 index 00000000..1d869e8b --- /dev/null +++ b/src/components/Footer/Footer.scss @@ -0,0 +1,188 @@ +$grayshadow: #555; + +$textcol: blue; +$textcol_scuro: darkblue; + + +.landing__footer { + //background: -webkit-gradient(linear, left top, left bottom, color-stop(65%, rgba(0, 0, 0, .1)), to(#000)); + background: linear-gradient(180deg, rgba(0, 0, 0, .8) 95%, #FFF); + padding-top: 4.5rem !important; + padding-bottom: 4.5rem !important; + padding-left: 1.25rem; + padding-right: 1.25rem; + color: #9f9f9f; +} + +.icon_contact:hover { + color: blue; + border-color: white; + border-width: .0625rem; +} + +.landing__footer .doc-link { + color: $textcol; +} + +.landing__footer .doc-link:hover { + opacity: .8 +} + +.landing__swirl-bg { + background-repeat: no-repeat !important; + background-position: top; + background-size: contain !important; + background-image: url(../../../public/images/landing_first_section.png) !important +} + + +.landing__footer-icons { + font-size: 2rem +} + +.landing__footer-icons a { + margin: 0 .5rem .5rem; + text-decoration: none; + outline: 0; + color: $textcol; + transition: color .28s +} + +.landing__footer-icons a:hover { + color: $textcol_scuro; +} + +.doc-img { + max-width: 100%; +} + +.mylist { + background: #3fdaff; + padding-left: 1.25rem; +} + +.clgutter { + margin-top: 1.25rem; + padding: .62rem; +} + +.carousel_img_3 { + //background-image: url(../../public/images/cibo_sano.jpg); + background-size: cover !important; + background-position: 50% center !important; + background-repeat: no-repeat !important; +} + + +@media (max-width: 718px) { + // PER VERSIONE MOBILE + + .landing__hero { + text-align: center + } + .landing__header { + height: 7vh + } + .clgutter { + margin-top: 0; + padding: 0; + } + .landing__hero .text-h1 { + font-size: 3rem; + line-height: 3.05rem; + margin-bottom: 1.5rem + } + + .landing > section.padding { + padding: 2.5rem 1rem; + } + + .landing > section.padding_testo { + padding-top: 1.25rem; + padding-bottom: 1rem; + } + + .landing > section.padding_gallery { + padding-top: 3.125rem; + padding-bottom: 5.625rem; + } + + .landing__features h4, .landing__features h6 { + margin: 1.25rem 0 + } + + h4 { + line-height: 1.4; + text-shadow: 0.25rem 0.25rem 0.5rem $grayshadow; + } + + .landing .feature-item { + text-align: center; + margin-top: 1.25rem; + } + .landing__hero-content { + padding-bottom: 11.25rem; + } + .landing__hero-btns { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center + } + + .q-col-gutter-sm { + padding: .625rem .315rem; + } + + .text-vers{ + font-size: 0.6rem; + } + +} + +.custom-caption { + text-align: center; + padding: .75rem; + color: $textcol; + background-color: rgba(0, 0, 0, .3); +} + +.mycontacts { + color: gray; + letter-spacing: 0.078rem; +} + +.copyrights { + color: gray; + letter-spacing: 0.078rem; +} + +.mycontacts_title { + text-shadow: 0.125rem 0.125rem 0.125rem #555; + font-weight: bold; + color: #999; + letter-spacing: 0.125rem; +} + +.mycontacts_text { + font-size: 1rem; + color: #999; + letter-spacing: normal !important; +} + +.footer_link { + font-size: 1rem; + color:gray; +} + +.footer_link:hover { + color:white; +} + + +.margin_buttons_footer { + margin: -4px -4px; +} + +.margin_buttons_footer > * { + margin: 4px 8px; +} diff --git a/src/components/Footer/Footer.ts b/src/components/Footer/Footer.ts new file mode 100755 index 00000000..543e52cc --- /dev/null +++ b/src/components/Footer/Footer.ts @@ -0,0 +1,69 @@ +import { + defineComponent, +} from 'vue' + +import { tools } from '@src/store/Modules/tools' +import { static_data } from '@src/db/static_data' + +import { useQuasar } from 'quasar' +import { useGlobalStore } from '@store/globalStore' +import { FormNewsletter } from '../FormNewsletter' +import { MixinBase } from '../../mixins/mixin-base' +import { Logo } from '../logo' +import { useI18n } from '@src/boot/i18n' + +export default defineComponent({ + name: 'Footer', + mixins: [MixinBase], + components: { Logo, FormNewsletter }, + + setup() { + const $q = useQuasar() + const { t } = useI18n() + const globalStore = useGlobalStore() + + console.log('Footer - INIT') + + function TelegramSupport() { + return globalStore.getValueSettingsByKey('TELEGRAM_SUPPORT', false) + } + + function Whatsapp_Cell() { + return globalStore.getValueSettingsByKey('WHATSAPP_CELL', false) + } + + function Telegram_UsernameHttp() { + return tools.getHttpForTelegram(globalStore.getValueSettingsByKey('TELEGRAM_USERNAME', false)) + } + + function FBPage() { + const fb = globalStore.getValueSettingsByKey('URL_FACEBOOK', false) + return fb + } + + function InstagramPage() { + return globalStore.getValueSettingsByKey('URL_INSTAGRAM', false) + } + + function TwitterPage() { + return globalStore.getValueSettingsByKey('URL_TWITTER', false) + } + + function ChatWhatsapp() { + // @ts-ignore + return tools.getHttpForWhatsapp(this.Whatsapp_Cell) + } + + return { + TelegramSupport, + InstagramPage, + Whatsapp_Cell, + TwitterPage, + ChatWhatsapp, + FBPage, + Telegram_UsernameHttp, + static_data, + t, + } + }, +}) diff --git a/src/components/Footer/Footer.vue b/src/components/Footer/Footer.vue new file mode 100755 index 00000000..31a87ff3 --- /dev/null +++ b/src/components/Footer/Footer.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/src/components/Footer/index.ts b/src/components/Footer/index.ts new file mode 100755 index 00000000..d6068fd6 --- /dev/null +++ b/src/components/Footer/index.ts @@ -0,0 +1 @@ +export { default as Footer } from './Footer.vue' diff --git a/src/components/FormNewsletter/FormNewsletter.scss b/src/components/FormNewsletter/FormNewsletter.scss new file mode 100755 index 00000000..1f76c9d2 --- /dev/null +++ b/src/components/FormNewsletter/FormNewsletter.scss @@ -0,0 +1,30 @@ +// Animations +// slideFromBottom +.slideFromBottom-enter, .slideFromBottom-leave-to { + transform: translate(0px, 10em); +} + +.slideFromBottom-enter-to, .slideFromBottom-leave { + transform: translate(0px, 0px); +} + +.slideFromBottom-enter-active { + transition: transform .2s ease-out; +} + +.slideFromBottom-leave-active { + transition: transform .2s ease-in; +} + +.news_title { + color: white; + font-size: 1rem; +} + +.news_link { + color: gray; +} + +.news_link:hover { + color: white; +} diff --git a/src/components/FormNewsletter/FormNewsletter.ts b/src/components/FormNewsletter/FormNewsletter.ts new file mode 100755 index 00000000..9da50bbc --- /dev/null +++ b/src/components/FormNewsletter/FormNewsletter.ts @@ -0,0 +1,125 @@ +import { + defineComponent, toRef, +} from 'vue' + +import { useQuasar } from 'quasar' +import { useI18n } from '@src/boot/i18n' +import Api from '@api' +import { serv_constants } from '@store/Modules/serv_constants' +import { MixinBase } from '../../mixins/mixin-base' +import { toolsext } from '@src/store/Modules/toolsext' + +export default defineComponent({ + name: 'FormNewsletter', + mixins: [MixinBase], + props: { + name: { + required: false, + type: String, + default: '', + }, + surname: { + required: false, + type: String, + default: '', + }, + email: { + required: false, + type: String, + default: '', + }, + accept: { + required: false, + type: Boolean, + default: false, + }, + idwebsite: { + required: false, + type: String, + default: '', + }, + locale: { + required: false, + type: String, + default: '', + }, + }, + setup(props) { + const $q = useQuasar() + const { t } = useI18n(); + const accept = toRef(props, 'accept') + const name = toRef(props, 'name') + const surname = toRef(props, 'surname') + const email = toRef(props, 'email') + const idwebsite = toRef(props, 'idwebsite') + const locale = toRef(props, 'locale') + + const onSubmit = async function a2() { + if (accept.value !== true) { + $q.notify({ + color: 'red-5', + textColor: 'white', + icon: 'fas fa-exclamation-triangle', + message: t('newsletter.license'), + }) + return null + } + const usertosend = { + email: email.value, + firstName: name.value, + lastName: surname.value, + idwebsite: idwebsite.value, + locale: locale.value, + settomailchimp: toolsext.getValDb('MAILCHIMP_ON', true, false), + } + console.log(usertosend) + + return Api.SendReq('/news/signup', 'POST', usertosend, false) + .then((res) => { + // console.log('res', res) + if (res.data.code === serv_constants.RIS_SUBSCRIBED_OK) { + $q.notify({ + color: 'green-4', + textColor: 'white', + icon: 'fas fa-check-circle', + // message: t('newsletter.submitted') + message: res.data.msg, + }) + } else if (res.data.code === serv_constants.RIS_SUBSCRIBED_ALREADYEXIST) { + $q.notify({ + color: 'orange-4', + textColor: 'white', + icon: 'fas fa-check-circle', + // message: t('newsletter.submitted') + message: res.data.msg, + }) + } else { + $q.notify({ + color: 'red-5', + textColor: 'white', + icon: 'fas fa-exclamation-triangle', + message: res.data.msg, + }) + } + }) + .catch((error) => { + console.error(error) + // UserStore.mutations.setErrorCatch(error) + return false + }) + } + + function onReset() { + name.value = '' + surname.value = '' + email.value = '' + accept.value = false + } + + return { + onSubmit, + onReset, + } + }, + +}) diff --git a/src/components/FormNewsletter/FormNewsletter.vue b/src/components/FormNewsletter/FormNewsletter.vue new file mode 100755 index 00000000..f8dca443 --- /dev/null +++ b/src/components/FormNewsletter/FormNewsletter.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/src/components/FormNewsletter/index.ts b/src/components/FormNewsletter/index.ts new file mode 100755 index 00000000..62a3fe93 --- /dev/null +++ b/src/components/FormNewsletter/index.ts @@ -0,0 +1 @@ +export { default as FormNewsletter } from './FormNewsletter.vue' diff --git a/src/components/Header/Header.scss b/src/components/Header/Header.scss new file mode 100755 index 00000000..4f5872b2 --- /dev/null +++ b/src/components/Header/Header.scss @@ -0,0 +1,317 @@ +.layout-padding { + padding: 1em 4em; +} + +.item-content { + font-size: 0.8rem; + font-weight: 350; +} + +.q-toolbar__title{ + padding: 0 12px; +} + +@media screen and (max-width: 600px) { + .q-toolbar__title{ + padding: 0; + } + .layout-padding { + padding: 1.5em .5em; + } +} + +.fixed-left:hover { + cursor: ew-resize; +} + +/* +@-webkit-keyframes moveFromLeftFade { + from { + opacity: 0.3; + -webkit-transform: translateX(-100%); + } +} + +@keyframes moveFromLeftFade { + from { + opacity: 0.3; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } +} + +@-webkit-keyframes moveFromTopFade { + from { + opacity: 0.3; + -webkit-transform: translateY(0%); + } +} +@keyframes moveFromTopFade { + from { + opacity: 0.3; + -webkit-transform: translateY(0%); + transform: translateY(-50%); + } +} + + +@-webkit-keyframes moveToRight { + from { + } + to { + -webkit-transform: translateX(100%); + } +} + +@keyframes cartOut { + from { + transform: translate(0px, 0px); + } + to { + transform: translate(1200px, 0px); + animation-timing-function: ease-out; + } + +} + +@-webkit-keyframes moveToLeft { + from { + } + to { + opacity: .5; + -webkit-transform: translateX(-100%); + } +} + +@keyframes moveToLeft { + from { + } + to { + opacity: .5; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } +} + +@-webkit-keyframes moveToBottom { + from { + } + to { + opacity: .5; + -webkit-transform: translateY(-100%); + } +} + +@keyframes moveToBottom { + from { + } + to { + opacity: .5; + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + } +} + +@-webkit-keyframes moveFromRight { + from { + opacity: .7; + -webkit-transform: translateX(100%); + } +} + +@keyframes moveFromRight { + from { + opacity: .7; + -webkit-transform: translateX(100%); + transform: translateX(100%); + } +} +*/ + +.drawer-closer .item-content { + margin-left: 20px !important; +} + +.drawer-content .list-label { + line-height: 25px; +} + +.drawer-content .item { + height: 25px; +} + +.router-link-active .item-primary { + color: #027be3; +} + +.q-picker-textfield .q-picker-textfield-label { + color: inherit !important; +} + +.label-success .q-picker-textfield-label { + color: #4caf50 !important; +} + +.label-error .q-picker-textfield-label { + color: #f44336 !important; +} + +select { + -webkit-appearance: none; + -moz-appearance: none; + text-indent: 1px; + text-overflow: ''; +} + +.label-success .q-picker-textfield:after, .label-error .q-picker-textfield:after { + content: "" !important; +} + +#android-preview iframe { + margin-top: 64px; + width: 357px; + height: 590px; + background: #fff; +} + +#ios-preview iframe { + margin-top: 64px; + width: 320px; + height: 590px; + background: #fff; +} + +canvas { + width: 270px !important; +} + +@media only screen and (min-width: 601px) { + .adv-form-one .timeline-badge { + right: auto !important; + left: auto !important; + } + + .adv-form-one .timeline-content { + margin-left: 3.9rem; + } + + .adv-form-one .timeline-item { + width: 100% !important; + } + + .adv-form-one .timeline-title { + text-align: inherit !important; + margin-left: 3.9rem; + } + + .timeline:before { + left: 1.6rem; + } +} + +.adv-form-one .timeline-content .group .primary { + display: none !important; +} + + +.toolbar { + min-height: 43px; +} + +.right-itens a, .right-itens button { + margin-right: 10px; +} + +.sel_lang { + padding: 5px; + color: white; +} + +.fa-facebook:before { + content: url('../../../public/icons/flag_it.svg'); +} + +.clIconOnline { + color: white; +} + +.clIconOffline { + color: red; +} + +.flagimg { + width: 30px; + height: 24px; +} + +.clCloudUpload { + transition: all 1s ease-out; + color: initial; + &.send { + transition: all 1s ease-in; + background-color: lightgreen; + } + &.receive { + transition: all 1s ease-in; + background-color: yellow; + } + &.error { + transition: all 1s ease-in; + background-color: red; + } +} + +.clIndexeddb { + transition: all 1s ease-out; + color: initial; + &.receive { + transition: all 1s ease-in; + background-color: yellow; + } + &.send { + transition: all 1s ease-in; + background-color: lightgreen; + } + &.error { + transition: all 1s ease-in; + background-color: red; + } +} + +.btnNewVersHide { + display: none; +} + +.btnNewVersShow { + display: inline-block; + padding: 4px 2px; +} + +.text-user { + text-shadow: .05rem .05rem .15rem #fff; + background-color: limegreen; + border-radius: 1rem !important; + text-align: center; + margin: 1px; + margin-bottom: 5px; +} + +.text-cart { + font-size: 1.15rem; + text-shadow: .05rem .05rem .15rem #fff; + background-color: limegreen; + border-radius: 1rem !important; + text-align: center; + margin: 1px; + margin-bottom: 5px; +} + +.roundimg { + border-radius: 50% !important; + color: red; + background-color: red; +} + +.titlesite { + font-size: 1rem; +} diff --git a/src/components/Header/Header.ts b/src/components/Header/Header.ts new file mode 100755 index 00000000..26ac4b53 --- /dev/null +++ b/src/components/Header/Header.ts @@ -0,0 +1,459 @@ +import { useQuasar } from 'quasar' +import { + defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRefs, watch, inject, computed, +} from 'vue' + +import { tools } from '@store/Modules/tools' + +import { shared_consts } from '@src/common/shared_vuejs' +import { useI18n } from '@src/boot/i18n' +import { boot } from 'quasar/wrappers' +import { useRouter } from 'vue-router' +import MixinUsers from '../../mixins/mixin-users' +import { static_data } from '../../db/static_data' +import messagePopover from '../../layouts/toolbar/messagePopover/messagePopover.vue' +import drawer from '../../layouts/drawer/drawer.vue' +import { toolsext } from '@store/Modules/toolsext' +import { useGlobalStore } from '@store/globalStore' +import { useTestStore } from '@store/testStore' +import { useUserStore } from '@store/UserStore' + +export default defineComponent({ + name: 'Header', + mixins: [MixinUsers], + components: { + drawer, messagePopover, // CSigninNoreg, CMyAvatar, CMyCart + }, + props: { + extraContent: { + required: false, + default: '', + }, + clBase: { + required: false, + default: '', + }, + }, + + setup() { + const store = inject('store') + const $q = useQuasar() + const { t } = useI18n() + + const isUserNotAuth = ref(false) + const iconConn = ref('wifi') + const clIconConn = ref('clIconOnline') + const strConn = ref('') + const langshort = ref('') + const clCloudUpload = ref('') + const clCloudDownload = ref('') + const clCloudUp_Indexeddb = ref('') + const tabcmd = ref('') + const clCloudDown_Indexeddb = ref('clIndexeddbsend') + const photo = ref('') + const visuimg = ref(true) + + const userStore = useUserStore() + const globalStore = useGlobalStore() + const testStore = useTestStore() + + const stateconn = ref(globalStore.stateConnection) + + function isonline() { + return globalStore.stateConnection === 'online' + } + + function isAdmin() { + return userStore.isAdmin + } + + function isManager() { + return userStore.isManager + } + + const isSocio = computed(() => userStore.my.profile.socio) + + function isSocioResidente() { + return userStore.my.profile.socioresidente + } + + function isConsiglio() { + return userStore.my.profile.consiglio + } + + function getcolormenu() { + // @ts-ignore + return this.isSocio ? 'green-7' : 'white' + } + + function isTutor() { + return userStore.isTutor + } + + function isZoomeri() { + return userStore.isZoomeri + } + + function isTratuttrici() { + return userStore.isTratuttrici + } + + function conndata_changed() { + return globalStore.connData + } + + function snakeToCamel(str: string) { + return str.replace(/(-\w)/g, (m) => m[1].toUpperCase()) + } + + function setLangAtt(mylang: string) { + console.log('LANG =', mylang) + // console.log('PRIMA $q.lang.isoName', $q.lang.isoName) + + // dynamic import, so loading on demand only + import(`quasar/lang/${mylang}`).then((lang) => { + $q.lang.set(lang.default) + + import('../../statics/i18n').then(() => { + // console.log('MY LANG DOPO=', $q.lang.isoName) + }) + }) + + globalStore.addDynamicPages() + } + + function setshortlang(lang: string) { + for (const indrec in static_data.lang_available) { + if (static_data.lang_available[indrec].value === lang) { + // console.log('static_data.lang_available[indrec].short', static_data.lang_available[indrec].short, static_data.lang_available[indrec].value) + langshort.value = static_data.lang_available[indrec].short + return + } + } + } + + function isNewVersionAvailable() { + return globalStore.isNewVersionAvailable + } + + // ------------------------------------------------------------------------- + // QUASAR Example using myevent to open drawer from another component or page + // ------------------------------------------------------------------------- + // (1) This code is inside layout file that have a drawer + // if leftDrawerOpen is true, drawer is displayed + + // (2) Listen for an myevent in created + /* created(){ + $root.$on("openLeftDrawer", openLeftDrawercb); + }, + methods: { + openURL, + // (3) Define the callback in methods + openLeftDrawercb() { + leftDrawerOpen = !leftDrawerOpen; + } + } + + // (4) In another component or page, emit the myevent! + // Call the method when clicking button etc. + methods: { + openLeftDrawer() { + $root.$emit("openLeftDrawer"); + } + } + // ------------------------------------------------------------------------- + */ + + const leftDrawerOpen = computed({ + get: () => globalStore.leftDrawerOpen, + set: val => { + globalStore.leftDrawerOpen = val + }, + }) + + const rightDrawerOpen = computed({ + get: () => globalStore.rightDrawerOpen, + set: val => { + globalStore.rightDrawerOpen = val + if (globalStore.rightDrawerOpen) globalStore.rightCartOpen = false + }, + }) + + const rightCartOpen = computed({ + get: () => globalStore.rightCartOpen, + set: val => { + globalStore.rightCartOpen = val + if (globalStore.rightCartOpen) globalStore.rightDrawerOpen = false + }, + }) + + const lang = computed({ + get: () => $q.lang.isoName, + set: mylang => { + console.log('set lang', $q.lang.getLocale()) + $q.lang.set(snakeToCamel(mylang)) + // tools.showNotif($q, 'IMPOSTA LANG= ' + $i18n.locale) + // console.log('IMPOSTA LANG= ' + $i18n.locale) + + userStore.setlang($q.lang.getLocale()) + + let mylangtopass = mylang + + mylangtopass = toolsext.checkLangPassed(mylangtopass) + + setshortlang(mylangtopass) + + setLangAtt(mylangtopass) + + userStore.setLangServer() + }, + }) + + watch( + stateconn, + // @ts-ignore + (value: string, oldValue: string) => { + globalStore.stateConnection = value + }, + ) + + watch( + conndata_changed, + (value, oldValue) => { + clCloudUpload.value = (value.uploading_server === 1) ? 'clCloudUpload send' : 'clCloudUpload' + clCloudUpload.value = (value.downloading_server === 1) ? 'clCloudUpload receive' : 'clCloudUpload' + clCloudUp_Indexeddb.value = (value.uploading_indexeddb === 1) ? 'clIndexeddb send' : 'clIndexeddb' + clCloudUp_Indexeddb.value = (value.downloading_indexeddb === 1) ? 'clIndexeddb receive' : 'clIndexeddb' + + /* clCloudUpload.value = (value.uploading_server === -1) ? 'clCloudUpload error' : clCloudUpload + clCloudUpload.value = (value.downloading_server === -1) ? 'clCloudUpload error' : clCloudDownload + clCloudUp_Indexeddb.value = (value.uploading_indexeddb === -1) ? 'clIndexeddb error' : clCloudUp_Indexeddb + clCloudUp_Indexeddb.value = (value.downloading_indexeddb === -1) ? 'clIndexeddb error' : clCloudDown_Indexeddb + + */ + }, + ) + + /* + @Watch('conn_changed', { immediate: true, deep: true }) + function changeconn_changed(value: string, oldValue: string) { + if (value !== oldValue) { + + // console.log('SSSSSSSS: ', value, oldValue) + + const color = (value === 'online') ? 'positive' : 'warning' + const statoconn = t('connection.conn') + ' ' + ((value === 'online') ? t('connection.online') : t('connection.offline')) + + if (static_data.functionality.SHOW_IF_IS_SERVER_CONNECTION) { + + if (!!oldValue) { + tools.showNotif($q, statoconn, { + color, + icon: 'wifi' + }) + } + + changeIconConn() + } + } + } + + */ + + function RefreshApp() { + // Unregister Service Worker + navigator.serviceWorker.getRegistrations().then((registrations) => { + for (const registration of registrations) { + registration.unregister() + } + }) + window.location.reload(true) + } + + function changeIconConn() { + iconConn.value = globalStore.stateConnection === 'online' ? 'wifi' : 'wifi_off' + clIconConn.value = globalStore.stateConnection === 'online' ? 'clIconOnline' : 'clIconOffline' + } + + function getAppVersion() { + // return "AA" + let strv = '' + if (process.env.DEV) { + strv = 'DEV ' + } else if (process.env.TEST) { + strv = 'TEST ' + } + return `[${strv}${process.env.APP_VERSION}]` + } + + function getLangAtt() { + return $q.lang.isoName + } + + function BeforeMount() { + // Estrai la Lang dal Localstorage + + // console.log('$q.i18n=', $q.i18n, '$q.getLocale()=', $q.lang.isoName) + const mybrowserLang = getLangAtt() + // tools.showNotif($q, 'prima: ' + String(my)) + + let mylang = tools.getItemLS(toolsext.localStorage.lang) + if (mylang === '') { + if (navigator) { + mylang = navigator.language + // console.log(`LANG2 NAVIGATOR ${mylang}`) + } else { + mylang = $q.lang.isoName + } + + // console.log('IMPOSTA LANGMY', mylang) + } + + mylang = toolsext.checkLangPassed(mylang) + + setLangAtt(mylang) + setshortlang(mylang) + } + + function mounted() { + // Test this by running the code snippet below and then + // use the "TableOnlyView" checkbox in DevTools Network panel + + // console.log('Event LOAD') + if (window) { + window.addEventListener('load', () => { + // console.log('2) ENTERING Event LOAD') + + function updateOnlineStatus(event: any) { + if (navigator.onLine) { + console.log('EVENT ONLINE!') + // handle online status + globalStore.setStateConnection('online') + // mychangeIconConn() + } else { + console.log('EVENT OFFLINE!') + // handle offline status + globalStore.setStateConnection('offline') + // mychangeIconConn() + } + } + + window.addEventListener('online', updateOnlineStatus) + window.addEventListener('offline', updateOnlineStatus) + }) + } + } + + function imglogo() { + return `../../${tools.getimglogo()}` + } + + function getappname() { + return tools.getsuffisso() + tools.getappname(tools.isMobile()) + } + + function toggleanimation() { + console.log('toggleanimation') + visuimg.value = false + setTimeout(() => { + visuimg.value = true + }, 100) + } + + function logoutHandler() { + userStore.logout() + .then(() => { + // $router.replace('/logout') + // + // setTimeout(() => { + // $router.replace('/') + // }, 1000) + + tools.showNotif($q, t('logout.uscito'), { icon: 'exit_to_app' }) + }) + } + + function isLogged() { + return userStore.isLogged + } + + function isEmailVerified() { + return userStore.my.verified_email + } + + function clickregister() { + rightDrawerOpen.value = false + + const $router = useRouter() + $router.replace('/signup') + } + + function getnumItemsCart() { + /* const arrcart = Products.cart + if (!!arrcart) { + if (!!arrcart.items) { + const total = arrcart.items.reduce((sum, item) => sum + item.order.quantity, 0) + return total + } + } + + */ + return 0 + } + + function getnumOrdersCart() { + /* const arrorderscart = Products.orders.filter((rec) => rec.status < shared_consts.OrderStatus.RECEIVED) + // const arrorderscart = Products.orders + if (!!arrorderscart) { + return arrorderscart.length + } + + */ + return 0 + } + + function getcart() { + // return Products.cart + return null + } + + function getClassColorHeader() { + if (tools.isTest()) return 'bg-warning' + if (tools.isDebug()) return 'bg-info' + return 'bg-primary' + } + + function changecmd(value: any) { + console.log('changecmd', value) + globalStore.changeCmdClick(value) + } + + onBeforeMount(BeforeMount) + onMounted(mounted) + + return { + store, + static_data, + globalStore, + leftDrawerOpen, + rightDrawerOpen, + rightCartOpen, + lang, + isLogged, + isEmailVerified, + getnumOrdersCart, + t, + isonline, + isAdmin, + isManager, isSocio, isSocioResidente, isConsiglio, getcolormenu, + isNewVersionAvailable, + getAppVersion, + RefreshApp, + changecmd, + imglogo, + getappname, + toggleanimation, + } + }, + +}) diff --git a/src/components/Header/Header.vue b/src/components/Header/Header.vue new file mode 100755 index 00000000..e3212a09 --- /dev/null +++ b/src/components/Header/Header.vue @@ -0,0 +1,237 @@ + + + + + diff --git a/src/components/Header/index.ts b/src/components/Header/index.ts new file mode 100755 index 00000000..9f67ddec --- /dev/null +++ b/src/components/Header/index.ts @@ -0,0 +1 @@ +export { default as Header } from './Header.vue' diff --git a/src/components/index.ts b/src/components/index.ts new file mode 100755 index 00000000..3b72a8ee --- /dev/null +++ b/src/components/index.ts @@ -0,0 +1,11 @@ +export * from './logo' +export * from './CMyPage' +export * from './CTitle' +export * from './CImgTitle' +export * from './BannerCookies' +export * from './testpao' +export * from './Footer' +export * from './FormNewsletter' +// export * from './PagePolicy' +// export * from './CFacebookFrame' +// export * from './CPreloadImages' diff --git a/src/components/logo/index.ts b/src/components/logo/index.ts new file mode 100755 index 00000000..0f94d605 --- /dev/null +++ b/src/components/logo/index.ts @@ -0,0 +1 @@ +export { default as Logo } from './logo.vue' diff --git a/src/components/logo/logo.scss b/src/components/logo/logo.scss new file mode 100755 index 00000000..c426c1e6 --- /dev/null +++ b/src/components/logo/logo.scss @@ -0,0 +1,39 @@ + +.svgclass { + color: white; + transform: translateY(0px); + +} + + +.svgclass_animate { + transform: translateY(-70px); + color: red; +} + +#sun { + animation: gravity 5s infinite; + +} + +#logoimg { + height: 50px; + width: auto; + @media screen and (max-width: 600px) { + } +} + +@keyframes gravity { + 0% { + transform: rotateY(0deg); + } + 100% { + transform: rotateY(360deg); + } +} + +#smile { + opacity: 0.1 !important; + fill: red; +} + diff --git a/src/components/logo/logo.ts b/src/components/logo/logo.ts new file mode 100755 index 00000000..bae625d1 --- /dev/null +++ b/src/components/logo/logo.ts @@ -0,0 +1,33 @@ +import { + defineComponent, +} from 'vue' +import { tools } from '@src/store/Modules/tools' +import { useQuasar } from 'quasar' +import { useI18n } from '@src/boot/i18n' + +export default defineComponent({ + name: 'Logo', + props: { + mystyle: { + type: Boolean, + required: false, + default: false, + }, + }, + + setup() { + function logoimg() { + return `${tools.getimglogo()}` + } + + function logoalt() { + const { t } = useI18n(); + return t('ws.sitename') + } + + return { + logoimg, + logoalt, + } + }, +}) diff --git a/src/components/logo/logo.vue b/src/components/logo/logo.vue new file mode 100755 index 00000000..de733c83 --- /dev/null +++ b/src/components/logo/logo.vue @@ -0,0 +1,11 @@ + + + + diff --git a/src/components/models.ts b/src/components/models.ts new file mode 100755 index 00000000..69459204 --- /dev/null +++ b/src/components/models.ts @@ -0,0 +1,8 @@ +export interface Todo { + id: number; + content: string; +} + +export interface Meta { + totalCount: number; +} diff --git a/src/components/testpao/index.ts b/src/components/testpao/index.ts new file mode 100755 index 00000000..c4a6b668 --- /dev/null +++ b/src/components/testpao/index.ts @@ -0,0 +1 @@ +export { default as TestPao } from './testpao.vue' diff --git a/src/components/testpao/testpao.scss b/src/components/testpao/testpao.scss new file mode 100755 index 00000000..c426c1e6 --- /dev/null +++ b/src/components/testpao/testpao.scss @@ -0,0 +1,39 @@ + +.svgclass { + color: white; + transform: translateY(0px); + +} + + +.svgclass_animate { + transform: translateY(-70px); + color: red; +} + +#sun { + animation: gravity 5s infinite; + +} + +#logoimg { + height: 50px; + width: auto; + @media screen and (max-width: 600px) { + } +} + +@keyframes gravity { + 0% { + transform: rotateY(0deg); + } + 100% { + transform: rotateY(360deg); + } +} + +#smile { + opacity: 0.1 !important; + fill: red; +} + diff --git a/src/components/testpao/testpao.ts b/src/components/testpao/testpao.ts new file mode 100755 index 00000000..8462c63b --- /dev/null +++ b/src/components/testpao/testpao.ts @@ -0,0 +1,41 @@ +import { + defineComponent, +} from 'vue' +import { tools } from '@src/store/Modules/tools' +import { static_data } from '@src/db/static_data' + +import { useQuasar } from 'quasar' +import { useGlobalStore } from '@store/globalStore' +import { FormNewsletter } from '../FormNewsletter' +import { MixinBase } from '../../mixins/mixin-base' +import { Logo } from '../logo' +import { useI18n } from '@src/boot/i18n' + +export default defineComponent({ + name: 'TestPao', + mixins: [MixinBase], + components: { Logo, FormNewsletter }, + props: { + mystyle: { + type: Boolean, + required: false, + default: false, + }, + }, + + setup() { + function logoimg() { + return `${tools.getimglogo()}` + } + + function logoalt() { + const { t } = useI18n(); + return t('ws.sitename') + } + + return { + logoimg, + logoalt, + } + }, +}) diff --git a/src/components/testpao/testpao.vue b/src/components/testpao/testpao.vue new file mode 100755 index 00000000..4edc8e8b --- /dev/null +++ b/src/components/testpao/testpao.vue @@ -0,0 +1,11 @@ + + + + diff --git a/src/config.ts b/src/config.ts new file mode 100755 index 00000000..89591ba7 --- /dev/null +++ b/src/config.ts @@ -0,0 +1,36 @@ +interface IUriConfig { + auth?: string + content?: string + site?: string + services?: string +} + +const uri: IUriConfig = {} + +const addProp = (obj: {}, propName: string, value: string) => { + Object.defineProperty(obj, propName, { + enumerable: false, + get: () => `//${window.location.host}${value}`, + }) +} + +addProp(uri, 'auth', '/auth/') +addProp(uri, 'content', '/api/content/') +addProp(uri, 'site', process.env.MONGODB_HOST ? process.env.MONGODB_HOST : '') +addProp(uri, 'services', '/api/') + +const config = { + claimsNamespace: '//toucan/claims', + uri, + auth: { + accessTokenKey: 'AUTH-LOCAL', + externalProviderKey: 'AUTH-EXTERNAL', + }, + uopt: 'UOPT', + xsrf: { + cookieName: 'XSRF-TOKEN', + headerName: 'X-XSRF-TOKEN', + }, +} + +export default config diff --git a/src/css/app.scss b/src/css/app.scss new file mode 100755 index 00000000..ecac98f3 --- /dev/null +++ b/src/css/app.scss @@ -0,0 +1 @@ +// app global css in SCSS form diff --git a/src/css/app.styl b/src/css/app.styl new file mode 100755 index 00000000..e69de29b diff --git a/src/css/quasar.variables.scss b/src/css/quasar.variables.scss new file mode 100755 index 00000000..dd1fb01f --- /dev/null +++ b/src/css/quasar.variables.scss @@ -0,0 +1,24 @@ +// Quasar SCSS (& Sass) Variables +// -------------------------------------------------- +// To customize the look and feel of this app, you can override +// the Sass/SCSS variables found in Quasar's source Sass/SCSS files. + +// Check documentation for full list of Quasar variables + +// Your own variables (that are declared here) and Quasar's own +// ones will be available out of the box in your .vue/.scss/.sass files + +// It's highly recommended to change the default colors +// to match your app's branding. +// Tip: Use the "Theme Builder" on Quasar's documentation website. + +$primary : #1976D2; +$secondary : #26A69A; +$accent : #9C27B0; + +$dark : #1D1D1D; + +$positive : #21BA45; +$negative : #C10015; +$info : #31CCEC; +$warning : #F2C037; diff --git a/src/db/db_data.js b/src/db/db_data.js new file mode 100755 index 00000000..a6d707ca --- /dev/null +++ b/src/db/db_data.js @@ -0,0 +1,89 @@ +import { IEvents } from '../model'; + +export const db_data = { + URL_FACEBOOK: 'https://www.facebook.com/associazioneshen', + + userdata: { + calendar_editable: false, + + }, + + events: [ + { + title: 'Scambi Reiki', + details: 'Nelle serate esperienziali è possibile Dare e Ricevere un trattamento completo.
' + + 'Possono partecipare le persone che hanno già preso parte al seminario di 1° livello, ma anche tutti quelli che hanno il desiderio di conoscere il Reiki e sperimentarlo per la prima volta: in questo caso invitiamo gli interessati a contattarci per un appuntamento prima dell’inizio della serata per ricevere le informazioni pratiche.', + date: '2019-07-11', + time: '21:00', + duration: 120, + side: 'left', + bgcolor: 'orange', + icon: 'fas fa-praying-hands', + img: 'images/reiki/reikisfondo.jpg', + where: 'Centro Shen', + // whereicon: 'shen.png', + teacher: 'Cristina Barattoni', + avatar: 'cristina.png', + infoextra: '', + linkpdf: 'files/eventi/Reiki_aMICHI.pdf', + }, + { + title: 'Scambi Reiki', + details: 'Nelle serate esperienziali è possibile Dare e Ricevere un trattamento completo.
' + + 'Possono partecipare le persone che hanno già preso parte al seminario di 1° livello, ma anche tutti quelli che hanno il desiderio di conoscere il Reiki e sperimentarlo per la prima volta: in questo caso invitiamo gli interessati a contattarci per un appuntamento prima dell’inizio della serata per ricevere le informazioni pratiche.', + date: '2019-07-20', + time: '21:00', + duration: 120, + side: 'left', + bgcolor: 'orange', + icon: 'fas fa-praying-hands', + img: 'images/reiki/reikisfondo.jpg', + where: 'Centro Shen', + // whereicon: 'shen.png', + teacher: 'Cristina Barattoni', + avatar: 'cristina.png', + infoextra: '', + linkpdf: '', + }, + { + title: 'Seminario Reiki 1° Livello', + details: 'I seminari vengono organizzati volutamente in gruppi poco numerosi.\n' + + 'Si crea così un ambiente accogliente e tranquillo con un atmosfera conviviale.
' + + '' + + 'Per info vedi Seminari Reiki', + date: '2019-07-22', + days: 2, + time: '9:00', + side: 'left', + bgcolor: 'red', + icon: 'fas fa-chalkboard-teacher', + img: 'images/reiki/reikisfondo.jpg', + where: 'Centro Shen', + // whereicon: 'shen.png', + teacher: 'Cristina Barattoni', + avatar: 'cristina.png', + teacher2: 'Elisa Ghizzardi', + avatar2: 'elisa.png', + infoextra: 'sabato e domenica dalle 10.00 alle 18.00', + linkpdf: '', + }, + { + title: 'Presentazione Corsi per Operatori del Massaggio del Benessere', + details: 'Vieni alla presentazione dei Corsi!
10 settembre a Ravenna, 17 settembre a Lugo', + date: '2019-09-10', + time: '20:30', + duration: 120, + side: 'left', + bgcolor: 'blue', + icon: 'fas fa-praying-hands', + img: 'images/scuolaopbenessere/img1.jpg', + where: 'Centro Shen', + // whereicon: 'shen.png', + teacher: 'Operatori', + avatar: 'cristina.png', + avatar2: 'elisa.png', + infoextra: '', + linkpdf: '', + }, + ], +} diff --git a/src/db/i18n_website.js b/src/db/i18n_website.js new file mode 100755 index 00000000..c1059426 --- /dev/null +++ b/src/db/i18n_website.js @@ -0,0 +1,390 @@ +const msg_website = { + it: { + pages: { + home: 'Principale', + SignUp: 'Registrazione', + SignIn: 'Login', + vreg: 'Verifica Reg', + Test: 'Test', + Category: 'Categorie', + Todo: 'Todo', + personal: 'Personale', + work: 'Lavoro', + shopping: 'Spesa', + Admin: 'Admin', + Test1: 'Test1', + Test2: 'Test2', + projects: 'Progetti', + favproj: 'Favoriti', + }, + projall: 'Tutti', + projectsShared: 'Miei Condivisi', + myprojects: 'Miei Personali', + msg: { + hello: 'Buongiorno', + myAppName: 'FreePlanet', + myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito e senza Pubblicità', + underconstruction: 'App in costruzione...', + myDescriz: '', + sottoTitoloApp: 'Il primo Vero Social', + sottoTitoloApp2: 'Libero, Equo e Solidale', + sottoTitoloApp3: 'dove Vive Consapevolezza e Aiuto Comunitario', + sottoTitoloApp4: 'Gratuito e senza Pubblicità', + }, + homepage: { + descrapp_title1: 'Uniti per Evolvere e Sperimentare', + descrapp_pag1: 'Riscopri come il valore della Condivisione e della Cooperazione, possa aiutarci a ritrovare il profondo ' + + 'senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza' + + ' che intere popolazioni antiche conoscevano bene.', + descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti Tecnologici a nostro favore, per Liberarci ' + + 'così piano piano dalla schiavitù del "Lavoro per generare Denaro" e trasformando le nostre Capacitá in ' + + 'Risorse Umane per poterci sostenere e vivere in Armonia con gli altri.', + freesocial: { + title: 'Free Social', + descr: 'Una Community organizzata per Categorie, dove potrai unirti a Gruppi Tematici, ' + + 'Condividere Esperienze e unire Competenze per organizzare e sostenere Progetti Innovativi per il Popolo.

' + + 'Verranno evidenziati sviluppi Etici come l\'Auto-Produzione, la Sostenibilitá, ' + + 'la Buona Salute Naturale e il Rispetto per l\'Ambiente e per tutti gli Esseri Viventi di questo ' + + 'Pianeta. Chiunque potrá esprimere il proprio Consenso o Dissenso partecipando a Sondaggi Interattivi' + + ' e realizzare insieme i Cambiamenti necessari alla nostra Società.', + }, + freetalent: { + title: 'Free Talent', + descr: 'Condividi i tuoi Talenti e Abilità, ' + + 'al posto del denaro guadagnagnerai Tempo.
' + + '"1 ora" diventa moneta di scambio, uguale per tutti.
' + + 'Potrai utilizzare questi tuoi "Crediti Tempo" per soddisfare le tue necessità, cercando nelle Competenze Disponibili.
' + + 'Nel Dare e Ricevere, si creeranno così legami di Amicizia, Solidarietà, Cooperazione e Divertimento

' + + 'Questo progetto vuole diffondere, ora in maniera informatizzata, questa realtà che gia esiste da tanti anni, e viene chiamata "Banca del Tempo". ' + + 'Le segreterie sparse in tutto il mondo, serviranno a dare maggiore affidabilità e fiducia negli scambi di talenti tra persone sconosciute. ' + + 'Creeremo così una rete di fiducia nel vicinato, come giá viene praticato in numerosi Ecovillaggi e Comunità del mondo.', + }, + freegas: { + title: 'Free G.A.S.', + descr: 'Ti piacerebbe utilizzare una App che ti permetta facilmente di acquistare Prodotti Locali direttamente dal Produttore?
' + + 'Con i Gruppi di Acquisto Solidale si evitano intermediazioni inutili, ottenendo parecchi benefici tra cui:
' + + '
  • Qualitá Superiore del prodotto
  • ' + + '
  • Le Recensioni dei consumatori favoriranno i Produttori con Sani Intenti
  • ' + + '
  • Possiblità d\'interagire con il Produttore
  • ' + + '
  • Apertura alle Relazioni tra persone, condividendo Ricette e Consigli preziosi
  • ' + + '
  • Risparmio di soldi (prezzi all\'Ingrosso)
  • ' + + '
  • Valorizzare il Territorio e l\'Economia Locale
  • ' + + '
  • Condizioni Eque per i Lavoratori
  • ' + + '
  • Ridotto Impatto Ambientale
', + }, + freeliving: { + title: 'Free Co-Living', + descr: 'Unire più realtà, condividendo l\'esperienza di abitare insieme, per un periodo definito:
' + + '1) C\'è chi Vive solo ed ha una casa.
' + + '2) Chi ha bisogno di un alloggio temporaneo.

' + + 'Oggi sempre più persone abitano da sole e vorrebbero continuare a vivere nella propria abitazione.
' + + 'Altre persone invece hanno bisogno di una stanza, per scelta o per necessita, ed in cambio sono disponibili a ' + + 'contribuire alle spese per le utenze domestiche o magari aiutare la persona a fare la spesa, cucinare, pulire casa oppure offrendogli semplicemente compagnia.

' + + 'Tramite questo strumento, le persone potranno trovarsi, mettersi in contatto e decidere in che forma co-abitare e per quanto tempo. Le recensioni rilasciate ed il dettaglio dei profili utenti, ' + + 'aiuterà nella scelta della persona più in sintonia.', + + }, + freecollabora: { + title: 'Chi può Collaborare?', + descr: 'Tutti coloro che sono in linea con Princìpi Etici e ricerca del Benessere Globale del Pianeta
' + + 'Pertanto sono i benvenuti:' + + '
    ' + + '
  • Associazioni no-profit, Ecovillaggi, Comunità
  • ' + + '
  • Gruppi che intendono promuovere Progetti Sociali Innovativi per una Decrescita Felice
  • ' + + '
  • Chi gestisce un Gruppo di Acquisto Solidale (G.A.S.)
  • ' + + '
  • Produttori Locali Etici
  • ' + + '
  • Chi gestisce una Banca del Tempo
  • ' + + '
  • Chiunque voglia partecipare, nella forma che ritiene più opportuna.
  • ' + + '
', + }, + freesostieni: { + title: 'Come Sostenere il progetto?', + descr: '
    ' + + '
  • Condividendolo a tutti coloro che vogliono far parte insieme della crescita e sviluppo di una Nuova Era
  • ' + + '
  • Rispondendo ai Sondaggi Popolari e lasciando Feedback
  • ' + + '
  • Tramite una donazione (anche 1€ ) per le spese.
    ' + + '
' + + 'Vedo un futuro dove non si utilizzerà più denaro. Dove le persone si aiuteranno a vicenda e non avranno bisogno di "possedere" cose, ma le condivideranno con gli altri.
', + }, + multiplatform: { + title: 'Multi-piattaforma', + descr: 'E\' compatibile con Google Chrome, Firefox, Safari, iOS, Android e PC. L\'Applicazione s\'installa facilmente, senza passare dallo store. ' + + 'basta condividere il nome del sito www.freeplanet.app.
' + + 'Dopo la registrazione chiederà di aggiungerlo alla lista delle applicazioni e sullo sfondo', + }, + free: { + title: 'Gratuita, Open Source e Niente Pubblicità', + descr: 'Questa App non è in vendita, non ha scopi commerciali, non ha prezzo ed appartiene al Popolo del Nuovo Mondo.
Chiunque potrá utilizzarla e beneficiarne.
A me il compito di gestirla e proteggerla. ' + + 'Verranno accettate solo donazioni Libere di privati ed Associazioni no-profit, in linea con i Principi, che serviranno per coprire le spese.
' + + 'Grazie a Tutti per il sostegno. ', + }, + contacts: 'Contatti', + }, + }, + es: { + pages: { + home: 'Principal', + SignUp: 'Nueva Cuenta', + SignIn: 'Entrar', + vreg: 'Verifica Reg', + Test: 'Test', + Category: 'Categorías', + Todo: 'Tareas', + personal: 'Personal', + work: 'Trabajo', + shopping: 'Compras', + Admin: 'Administración', + Test1: 'Test1', + Test2: 'Test2', + projects: 'Proyectos', + }, + favproj: 'Favoritos', + projall: 'Todos', + projectsShared: 'Mis Compartidos', + myprojects: 'Mis Personales', + msg: { + hello: 'Buenos Días', + myAppName: 'FreePlanet', + myAppDescription: 'El primer Verdadero Social Libre, justo y Solidario Donde vive Conciencia y Ayuda comunitaria, Gratis y sin publicidad', + underconstruction: 'App en construcción...', + myDescriz: '', + sottoTitoloApp: 'El primer Verdadero Social', + sottoTitoloApp2: 'Libre, justo y Solidario', + sottoTitoloApp3: 'Donde vive Conciencia y Ayuda comunitaria', + sottoTitoloApp4: 'Gratis y sin publicidad', + }, + homepage: { + descrapp_title1: 'Unidos para evolucionar y experimentar', + descrapp_pag1: 'Redescubra cómo el valor de Compartir y Cooperación puede ayudarnos a encontrar el profundo ' + + 'sentido de la Vida, perdido en esta sociedad consumista, y mostrando esos Principios Naturales Saludables y la Hermandad Humana' + + 'que toda la población antigua conocía bien.', + descrapp_pag2: 'Ha llegado el momento de utilizar las nuevas herramientas tecnológicas en nuestro favor, para liberarnos ' + + 'tan lentamente desde la esclavitud de "Trabaja para generar dinero" y transformando nuestra Capacidad en' + + 'Recursos humanos para poder apoyar y vivir en Armonia con otros.', + freesocial: { + title: 'Free Social', + descr: 'Una comunidad organizada por Categorías, donde puedes unirte a Grupos temáticos, ' + + 'Compartir experiencias y combinar habilidades para organizar y apoyar proyectos innovadores para la gente.

' + + 'Los desarrollos éticos como :
Auto-producción
, Sostenibilidad, ' + + 'la Buena Salud natural y Respeto por el Medio Ambiente y para todos los Seres vivos de este' + + 'Planeta. Cualquiera puede expresar su consentimiento o disidencia participando en Encuestas Interactivas ' + + 'y llevar a cabo juntos los Cambios necesarios para nuestra sociedad.', + }, + freetalent: { + title: 'Free Talent', + descr: 'Comparte tus Talentos y Habilidades, ' + + 'en lugar de dinero, ganarás Tiempo.
' + + '"1 hora" se convierte en una moneda de intercambio, igual para todos.
' + + 'Puedes usar estos "Créditos de tiempo" para satisfacer tus necesidades, buscando en Habilidades disponibles.
' + + 'En Dar y Recibir, crearemos así vínculos de Amistad, Solidaridad, Cooperación y Diversión.

' + + 'Este proyecto apunta a difundir esta realidad, que ya existe desde hace muchos años y se llama "Banco de tiempo". ' + + 'Las secretarías dispersas por todo el mundo, servirán para dar mayor fiabilidad y confianza en el intercambio de talentos entre personas desconocidas. ' + + 'Así crearemos una red de confianza en el vecindario, como ya se practica en numerosos Ecoaldeas y en la Comunidades del mundo.', + }, + freegas: { + title: 'Free G.A.S. (G.C.S.)', + descr: '¿Le gustaría usar una aplicación que le permita comprar productos locales directamente desde el Productor?
' + + 'Con Grupos de Compra Solidarios evitamos intermediarios innecesarios, obteniendo muchos beneficios, incluyendo:
' + + '
  • Superior Quality del producto
  • ' + + '
  • Opiniones de consumidores favorecerá a los productores con intenciones saludables
  • ' + + '
  • Posibilidad de interactuar con el Productor
  • ' + + '
  • Abierto a relaciones entre personas, compartiendo Recetas y Consejos preciosos
  • ' + + '
  • Ahorros de dinero (precios al por mayor)
  • ' + + '
  • Mejorando el Territorio y la Economía Local
  • ' + + '
  • Condiciones Justa para Trabajadores
  • ' + + '
  • Reducido Impacto Ambiental
', + }, + freeliving: { + title: 'Free Co-Living', + descr: 'Para unir más realidad, compartiendo la experiencia de vivir juntos, por un período definido:
' + + '1) Hay quien vive solo y tiene un hogar.
' + + '2) Quién necesita un alojamiento temporal.

' + + 'Hoy en día, más y más personas viven solas y les gustaría seguir viviendo en sus propios hogares.
' + + 'Otras personas necesitan una Habitación, por elección o por necesidad, y a cambio están disponibles en' + + 'contribuir a los gastos para los billetes de casa o tal vez ayuda a la persona mayor para ir de compras, cocinar, limpiar casa o simplemente ofreciéndole compañía.

' + + 'A través de esta herramienta, las personas pueden ponerse en contacto y decidir en qué forma co-habitar. Los comentarios publicados y el detalle de los perfiles de usuario, ' + + 'ayudará a elegir a la persona más en armonía.', + + }, + freecollabora: { + title: '¿Quién puede colaborar?', + descr: 'Todos aquellos que están en línea con Principios éticos y la investigación de Bienestar Global del Planeta
' + + 'Por eso son bienvenidos:' + + '
    ' + + '
  • Asociaciones sin ánimo de lucro, Ecoaldeas, Comunidades
  • ' + + '
  • Grupos que desean promover Proyectos sociales innovadores para Feliz Decrecimiento
  • ' + + '
  • Quién administra un Grupo de Compra Solidario (G.C.S.)
  • ' + + '
  • Productores locales Éticos
  • ' + + '
  • Quién administra un Banco de Tiempo
  • ' + + '
  • Cualquier persona que quiera participar, en la forma que considere más apropiada.
  • ' + + '
', + }, + freesostieni: { + title: '¿Cómo apoyar el proyecto?', + descr: '
    ' + + '
  • Compartiéndolo a todos aquellos que quieran unirse en el crecimiento y desarrollo de una Nueva Era
  • ' + + '
  • Respondiendo a Encuestas populares y dejando Comentarios
  • ' + + '
  • A través de una donación (incluso € 1) para los gastos.
    ' + + '
' + + '
Veo un futuro en el que ya no usarás dinero. Donde las personas se ayudarán unos a otros y no necesiten "poseer" cosas, pero compartirán con otros.
', + }, + multiplatform: { + title: 'Multi-plataforma', + descr: 'Compatible con Google Chrome, Firefox, Safari, iOS, Android y PC. La aplicación se instala fácilmente, sin pasar por el store. ' + + 'para compartirlo, necesita solo el nombre del sitio web: www.freeplanet.app.
' + + 'Después del registro, le pedirá que lo agregue a la lista de aplicaciones y en la pantalla.', + }, + free: { + title: 'Libre, Código Abierto y Sin Publicidad', + descr: 'Esta aplicación no está a la venta, no tiene un propósito comercial, no tiene precio y pertenece a la Gente del Nuevo Mundo.
' + + 'Cualquiera puede usarla y beneficiarse.
A mí la tarea de gestionarlo y protegerlo. ' + + 'Solo se aceptarán donaciones de particulares y asociaciones sin änimo de lucro, en línea con los Principios, que se utilizarán para cubrir los gastos.
' + + 'Gracias a todos por el apoyo. ', + }, + contacts: 'Contactos', + }, + }, + enUs: { + pages: { + home: 'Dashboard', + SignUp: 'SignUp', + SignIn: 'SignIn', + vreg: 'Verify Reg', + Test: 'Test', + Category: 'Category', + Todo: 'Todo', + personal: 'Personal', + work: 'Work', + shopping: 'Shopping', + Admin: 'Admin', + Test1: 'Test1', + Test2: 'Test2', + projects: 'Projects', + }, + favproj: 'Favorite', + projall: 'All', + projectsShared: 'My Shared', + myprojects: 'My Personals', + msg: { + hello: 'Hello!', + myAppName: 'FreePlanet', + myAppDescription: 'The first Real Social Free, Fair and Equitable Where the conscience and community help live. Free and without advertising', + underconstruction: 'App in construction...', + myDescriz: '', + sottoTitoloApp: 'The first Real Social', + sottoTitoloApp2: 'Free, Fair and Equitable', + sottoTitoloApp3: 'Where the conscience and community help live', + sottoTitoloApp4: 'Free and without advertising', + }, + homepage: { + descrapp_title1: 'Together to Evolve and Experiment', + descrapp_pag1: 'Rediscover how the value of Sharing and Cooperation, can help us find the deep meaning of' + + 'Life, lost in this consumer society, and showing those Healthy Natural Principles and Human Brotherhood' + + 'that entire ancient populations knew well.', + descrapp_pag2: 'The time has come to use the new Technological tools in our favor, to Free ourselves ' + + 'so slowly from the slavery of the "Work to generate Money" and transforming our Capacity into' + + 'Human Resources to be able to support and live in Harmony with others.', + freesocial: { + title: 'Free Social', + descr: 'A Community organized by Categories, where you can join Thematic Groups, ' + + 'Share Experiences and combine Skills to organize and support Innovative Projects for the People.

' + + 'Ethical developments such as Auto-Production, Sustainability, ' + + 'Good Natural Health and Respect for the Environment and for all Living Beings of this' + + 'Planet. Anyone can express their Consent or Dissent by participating in Interactive Surveys ' + + 'and carry out together the Changes needed for our society.', + }, + freetalent: { + title: 'Free Talent', + descr: 'Share your Talents and Skills, ' + + 'instead of money, you\'ll earn Time.
' + + '"1 hour" becomes a currency of exchange, equal for all.
' + + 'You can use these "Time Credits" to meet your needs, looking in Available Skills.
' + + 'In Giving and Receiving, we will thus create bonds of Friendship, Solidarity, Cooperation and Enjoyment

' + + 'This project aims to spread this reality, which already exists for many years and is called "Time Bank". ' + + 'The secretariats in all over the world, will serve an extra to give greater reliability and trust in the exchange of talents between unknown people. ' + + 'We will thus create a trust network in the neighborhood, as is already practiced in numerous Ecovillages and Community of the world. ', + }, + freegas: { + title: 'Free G.A.S.', + descr: 'Would you like to use an App that allows you to easily Buy Local Products directly from Manufacturer?
' + + 'With Solidarity Purchase Groups (in Italian: "Gruppo di Aacquisto Solidale") we avoid unnecessary intermediaries, obtaining many benefits including:
' + + '
  • Superior Quality of the product
  • ' + + '
  • Consumer Reviews will favor Producers with Healthy Intents
  • ' + + '
  • Possibility to interact with the Producer
  • ' + + '
  • Open to Relations between people, sharing Recipes and precious Tips
  • ' + + '
  • Savings money (wholesale prices)
  • ' + + '
  • Enhancing the Territory and the Local Economy
  • ' + + '
  • Fair Conditions for Workers
  • ' + + '
  • Reduced Environmental Impact
', + }, + freeliving: { + title: 'Free Co-Living', + descr: 'Join more reality, sharing the experience of living together, for a defined period:
' + + '1) Someone Lives alone and has a house.
' + + '2) Who needs a temporary accommodation .

' + + 'Today more and more people live alone and would like to continue living in their own house.
' + + 'Other people instead need a room, by choice or by necessity, and in return they are available to' + + 'contribute to expenses for households or maybe help to go shopping, cooking, cleaning house or simply offering him companionship.
' + + 'Through this tool, people can get in touch and decide in which way co-living. The reviews released and the detail of user profiles, ' + + 'will help in choosing the person more in tune.', + + }, + freecollabora: { + title: 'Who can collaborate?', + descr: 'All those who are in line with Ethical Principles and research of Global Wellness of the Planet
' + + 'Therefore they are welcome:' + + '
    ' + + '
  • Non-profit associations, Ecovillages, Communities
  • ' + + '
  • Groups that want to promote Innovative Social Projects for Happy Degrowth
  • ' + + '
  • Who manages a Solidarity Purchase Group
  • ' + + '
  • Local Ethical Producers
  • ' + + '
  • Who manages a Time Bank
  • ' + + '
  • Anyone who wants to participate, in the form it considers most appropriate.
  • ' + + '
', + }, + freesostieni: { + title: 'How to support the project?', + descr: '
    ' + + '
  • Sharing it to all those who want to join together in the growth and development of a New Era
  • ' + + '
  • Answering to Popular Polls and leaving Feedback
  • ' + + '
  • Through a donation (even $ 1) for expenses.
    ' + + '

' + + 'I see a future where you will no longer use money. Where people will help each other and won\'t need to "own" things, but will share with others.
', + }, + multiplatform: { + title: 'Multi-platform', + descr: 'It is compatible with Google Chrome, Firefox, Safari, iOS, Android and PC. The Application is easily installed, without going through the store. ' + + 'just share the nametranslate of this site www.freeplanet.app.
' + + 'After registration it will ask to be added to the application list and in the screen', + }, + free: { + title: 'Free, Open Source and No Advertising', + descr: 'This App is not for sale, has no commercial purpose, is priceless and belongs to the New World People.' + + '
Anyone can use it and benefit from it.
To me the task of managing it and protecting it. ' + + 'Only donations from private individuals and non-profit associations will be accepted, in line with the Principles, which will be used to cover the expenses.
' + + 'Thanks all for the support. ', + }, + contacts: 'Contacts', + }, + }, + fr: { + pages: { + + }, + msg: { + + }, + + }, + de: { + pages: { + + }, + msg: { + + }, + + }, +} + +export default msg_website; diff --git a/src/db/lang/ws_de.js b/src/db/lang/ws_de.js new file mode 100755 index 00000000..0a88fde2 --- /dev/null +++ b/src/db/lang/ws_de.js @@ -0,0 +1,85 @@ +const msg_website_de = { + ws: { + sitename: 'AYNI', + siteshortname: 'Ayni', + botname: 'AYNI BOT', + }, + pages: { + home: 'Home', + profile: 'Profilo', + payment: 'Pagamenti', + regok: 'Registrazione Confermata', + presentazione: 'Presentazione', + presentazione2: 'Presentazione', + invita: 'Invita Persone', + SignUp: 'Nuova Registrazione', + SignUp_alreadylista: 'Registrazione per quelli che erano già nella lista di Notevole (del 2019) !', + SignUp2: 'Registrazione', + SignIn: 'Login', + status: 'Statistiche', + nextzoom: 'Conferenze', + requestresetpwd: 'Richiesta Reset Password', + vreg: 'Verifica Reg', + dashboard: 'Lavagna', + statoattuale: 'Stato Attuale', + posizione_in_programmazione: 'Lista d\'Imbarco', + posizione_in_nave: 'Lista Navi', + nave: 'Nave', + testimonial: 'Testimonianze', + Test: 'Test', + Category: 'Categorie', + Admin: 'Admin', + extralist: 'Lista Extra', + Test1: 'Test1', + Test2: 'Test2', + chisiamo: 'Chi Siamo', + linkamici: 'Link Amici', + dovesiamo: 'Dove Siamo', + evento: 'Evento', + eventodef: 'Evento:', + prova: 'prova', + dbop: 'Operazioni', + statusreg: { + reg: 'Partecipanti', + passeggeri: 'Passeggeri Navi', + giainlista: 'Gia in Lista', + newreg: 'Ultime Registrazioni:', + nationality: 'Nazionalità', + verified: 'Verificata', + nonverified: 'Non Verificata', + req7: 'Con 5 passi entri nella lista d\'Imbarco', + req9: 'Con 7 passi aiuti {sitename} a Crescere!', + req: 'Passi', + people: 'Inv.', + peoplelegend: 'Numero d\'Invitati', + }, + }, + msg: { + myAppDescription: '', + keywords_base: '', + myDescriz: '', + sottoTitoloApp: '', + sottoTitoloApp2: '', + sottoTitoloApp3: '', + sottoTitoloApp4: '', + }, + homepage: { + nostra_missione: 'Nostra Missione', + associazione: '', + tit_come_associarsi: 'Come Associarsi', + testo_come_associarsi: '', + titlecontatti: 'CONTATTI', + }, + text: { + videotitle: 'VIDEO', + how: 'COME FUNZIONA', + what: 'COSA TI SERVE', + step: 'PASSI DA COMPIERE', + testimonial: 'TESTIMONIANZE', + faq: 'DOMANDE FREQUENTI (FAQ)', + advise: 'SUGGERIMENTI', + download: 'MATERIALE DISPONIBILE', + }, +}; + +export default msg_website_de; diff --git a/src/db/lang/ws_enUs.js b/src/db/lang/ws_enUs.js new file mode 100755 index 00000000..8dfea3ab --- /dev/null +++ b/src/db/lang/ws_enUs.js @@ -0,0 +1,73 @@ +const msg_website_enUs = { + ws: { + sitename: 'Comunità Nuovo Mondo', + siteshortname: 'CNM', + botname: 'CNM BOT', + }, + pages: { + home: 'Home', + profile: 'Profile', + payment: 'Payments', + regok: 'Registration Confirmed', + presentazione: 'Presentation', + presentazione2: 'Presentation', + invita: 'Invite People', + SignUp: 'Registration', + SignUp_alreadylista: 'Registration for those who are already in the List!', + SignUp2: 'Registration', + SignIn: 'Login', + status: 'Current state', + nextzoom: 'Conferences', + requestresetpwd: 'Password Reset Request', + vreg: 'Check Registration', + dashboard: 'Dashboard', + statoattuale: 'Current Status', + posizione_in_programmazione: 'Boarding List', + posizione_in_nave: 'Ships List', + nave: 'Ship', + testimonial: 'Reviews', + Test: 'Test', + Category: 'Categorie', + Admin: 'Admin', + Test1: 'Test1', + Test2: 'Test2', + statusreg: { + reg: 'Participants', + passeggeri: 'Passengers Ships', + giainlista: 'Already in the List', + newreg: 'New registrations:', + nationality: 'Nationality', + verified: 'Verified', + nonverified: 'Not Verified', + req7: 'With 5 steps you enter the boarding list.', + req9: 'With 7 steps help {sitename} to grow!', + req: 'Steps', + people: 'Gue.', + peoplelegend: 'Number of guests', + }, + }, + msg: { + myAppDescription: '', + keywords_base: '', + myDescriz: '', + sottoTitoloApp: '..', + sottoTitoloApp2: '..', + sottoTitoloApp3: '..', + sottoTitoloApp4: '', + }, + homepage: { + titlecontatti: 'CONTACTS', + }, + text: { + how: 'HOW TO WORK', + what: 'WHAT YOU NEED', + step: 'STEPS TO DO', + videotitle: 'VIDEO', + testimonial: 'REVIEWS', + faq: 'FREQUENTLY ASKED QUESTIONS (FAQ)', + advise: 'ADVISE', + download: 'AVAILABLE DOCUMENTS', + }, +}; + +export default msg_website_enUs; diff --git a/src/db/lang/ws_es.js b/src/db/lang/ws_es.js new file mode 100755 index 00000000..be36b4fb --- /dev/null +++ b/src/db/lang/ws_es.js @@ -0,0 +1,73 @@ +const msg_website_es = { + ws: { + sitename: 'AYNI', + siteshortname: 'Ayni', + botname: 'AYNI BOT', + }, + pages: { + home: 'Home', + profile: 'Perfil', + payment: 'Paiements', + regok: 'Registro confirmado', + presentazione: 'Presentación', + presentazione2: 'Presentación', + invita: 'Invitar a la gente', + SignUp: 'Registro', + SignUp_alreadylista: 'Inscripción para los que ya están en la Lista!', + SignUp2: 'Registro', + SignIn: 'Login', + status: 'Estadísticas', + nextzoom: 'Conferencias', + requestresetpwd: 'Solicitud de restablecimiento de contraseña', + vreg: 'Verifica Reg', + dashboard: 'Tablero', + statoattuale: 'Estado Actual', + posizione_in_programmazione: 'Lista de embarque', + posizione_in_nave: 'Lista de Naves', + nave: 'Nave', + testimonial: 'Opiniones', + Test: 'Test', + Category: 'Categorie', + Admin: 'Admin', + Test1: 'Test1', + Test2: 'Test2', + statusreg: { + reg: 'Participantes', + passeggeri: 'Barcos de pasajeros', + giainlista: 'Gia in Lista', + newreg: 'Nuevas inscripciones :', + nationality: 'Nacionalidad', + verified: 'Verificada', + nonverified: 'No Verificada', + req7: 'Con 5 pasos usted entra en la lista de embarque', + req9: 'Con 7 pasos ayuda a {sitename} a crecer!', + req: 'Pasos', + people: 'Inv.', + peoplelegend: 'Número de invitados', + }, + }, + msg: { + myAppDescription: '', + keywords_base: '', + myDescriz: '', + sottoTitoloApp: '..', + sottoTitoloApp2: '..', + sottoTitoloApp3: '..', + sottoTitoloApp4: '', + }, + homepage: { + titlecontatti: 'CONTACTOS', + }, + text: { + how: 'COMO FUNCIONA', + what: 'QUE NECESITAS', + step: 'PASOS A REALIZAR', + videotitle: 'VIDEO', + testimonial: 'TESTIMONIOS', + faq: 'PREGUNTAS FRECUENTES (FAQ)', + advise: 'CONSEJOS', + download: 'MATERIAL DISPONIBLES', + }, +}; + +export default msg_website_es; diff --git a/src/db/lang/ws_fr.js b/src/db/lang/ws_fr.js new file mode 100755 index 00000000..990562aa --- /dev/null +++ b/src/db/lang/ws_fr.js @@ -0,0 +1,63 @@ +const msg_website_fr = { + ws: { + sitename: 'AYNI', + siteshortname: 'Ayni', + botname: 'AYNI BOT', + }, + homepage: { + titlecontatti: 'CONTACTS', + }, + pages: { + home: 'Home', + profile: 'profil', + payment: 'paiements', + regok: 'Inscription confirmée', + presentazione: 'Présentation', + presentazione2: 'Présentation', + invita: 'Inviter des personnes', + SignUp: 'Inscription', + SignUp_alreadylista: 'Inscription pour ceux qui sont déjà inscrits sur la liste!', + SignUp2: 'Inscription', + SignIn: 'Login', + status: 'État actuel', + nextzoom: 'Conférences', + requestresetpwd: 'Demande de réinitialisation du mot de passe', + vreg: 'Vérifier l\'inscription', + dashboard: 'Tableau de bord', + statoattuale: 'Situation Actuelle', + posizione_in_programmazione: 'Liste d\'embarquement', + posizione_in_nave: 'Liste des Navires', + nave: 'Navires', + testimonial: 'Commentaires', + Test: 'Test', + Category: 'Categorie', + Admin: 'Admin', + Test1: 'Test1', + Test2: 'Test2', + statusreg: { + reg: 'Participants', + passeggeri: 'Navires à passagers', + giainlista: 'Gia in Lista', + newreg: 'Nouvelles inscriptions:', + nationality: 'Nationalité', + verified: 'Vérifié', + nonverified: 'Non Vérifié', + req7: 'Avec 5 étapes, vous entrez dans la liste d\'embarquement.', + req9: 'Avec 7 étapes, aidez {sitename} à se développer !', + req: 'Étapes', + people: 'Inv.', + peoplelegend: 'Nombre d\'invités', + }, + }, + msg: { + myAppDescription: '', + keywords_base: '', + myDescriz: '', + sottoTitoloApp: '..', + sottoTitoloApp2: '..', + sottoTitoloApp3: '..', + sottoTitoloApp4: '', + }, +}; + +export default msg_website_fr; diff --git a/src/db/lang/ws_it.js b/src/db/lang/ws_it.js new file mode 100755 index 00000000..834701e9 --- /dev/null +++ b/src/db/lang/ws_it.js @@ -0,0 +1,122 @@ +const msg_website_it = { + ws: { + sitename: 'Prima APP', + siteshortname: 'Prima APP', + botname: 'Prima APP', + }, + products: { + quantity: 'Quantità', + quantityAvailable: 'Disponibili', + weight: 'Peso', + stars: 'Voto', + }, + hours: { + descr: 'Descrizione', + date: 'Data', + time_start: 'Ora Inizio', + time_end: 'Ora Fine', + hours: 'Ore', + note: 'Note Extra', + }, + pages: { + home: 'Home', + profile: 'Profilo', + projects: 'Progetti', + report: 'Report Ore', + producer: 'Produttore', + orderinfo: 'Ordini Effettuati', + products: 'Prodotti', + productslist: 'Lista Prodotti', + collabora: 'Collabora', + storehouses: 'Magazzino', + departments: 'Uffici', + orders: 'Ordini Ricevuti', + orders2: 'Ordini Ricevuti', + sharewithus: 'Condividi con Noi', + checkout: 'Carrello', + payment: 'Pagamenti', + regok: 'Registrazione Confermata', + presentazione: 'Presentazione', + presentazione2: 'Presentazione', + invita: 'Invita Persone', + SignUp: 'Nuova Registrazione', + SignUpIscrizione: 'Diventa Socio CNM', + SignUp_alreadylista: 'Registrazione per quelli che erano già nella lista di Notevole (del 2019) !', + SignUp2: 'Registrazione', + SignIn: 'Login', + status: 'Statistiche', + nextzoom: 'Conferenze', + requestresetpwd: 'Richiesta Reset Password', + vreg: 'Verifica Reg', + dashboard: 'Lavagna', + statoattuale: 'Stato Attuale', + posizione_in_programmazione: 'Lista d\'Imbarco', + posizione_in_nave: 'Lista Navi', + nave: 'Nave', + testimonial: 'Testimonianze', + Test: 'Test', + Category: 'Categorie', + Admin: 'Admin', + Sites: 'Siti Web', + extralist: 'Lista Extra', + Test1: 'Test1', + Test2: 'Test2', + chisiamo: 'Chi Siamo', + linkamici: 'Link Amici', + dovesiamo: 'Dove Siamo', + calendarioeventi: 'Calendario Eventi', + evento: 'Evento', + eventodef: 'Evento:', + prova: 'prova', + dbop: 'Operazioni', + projall: 'Comunitari', + groups: 'Lista Gruppi', + projectsShared: 'Condivisi da me', + myprojects: 'Privati', + favproj: 'Favoriti', + statusreg: { + reg: 'Partecipanti', + passeggeri: 'Passeggeri Navi', + giainlista: 'Gia in Lista', + newreg: 'Ultime Registrazioni:', + nationality: 'Nazionalità', + nationality_born: 'Nazione di Nascita', + verified: 'Verificata', + nonverified: 'Non Verificata', + req7: 'Con 5 passi entri nella lista d\'Imbarco', + req9: 'Con 7 passi aiuti {sitename} a Crescere!', + req: 'Passi', + people: 'Inv.', + peoplelegend: 'Numero d\'Invitati', + }, + admin_ecommerce: 'ECommerce', + ecommerce: 'Prodotti', + ecommerce_menu: 'ECommerce1', + hours: 'Ore', + }, + msg: { + myAppDescription: '', + keywords_base: '', + myDescriz: '', + sottoTitoloApp: 'Il primo Vero Social', + sottoTitoloApp2: '', + sottoTitoloApp3: '', + sottoTitoloApp4: '', + }, + homepage: { + descrapp_title1: 'Uniti per Evolvere e Sperimentare', + descrapp_pag1: 'Riscopri come il valore della Condivisione e della Cooperazione, possa aiutarci a ritrovare il profondo ' + + 'senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza' + + ' che intere popolazioni antiche conoscevano bene.', + descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti Tecnologici a nostro favore, per Liberarci ' + + 'così piano piano dalla schiavitù del "Lavoro per generare Denaro" e trasformando le nostre Capacitá in ' + + 'Risorse Umane per poterci sostenere e vivere in Armonia con gli altri.', + nostra_missione: 'Nostra Missione', + associazione: '', + tit_come_associarsi: 'Come Associarsi', + testo_come_associarsi: '', + titlecontatti: 'CONTATTI', + }, +}; + +export default msg_website_it; diff --git a/src/db/lang/ws_pt.js b/src/db/lang/ws_pt.js new file mode 100755 index 00000000..ef644459 --- /dev/null +++ b/src/db/lang/ws_pt.js @@ -0,0 +1,73 @@ +const msg_website_pt = { + ws: { + sitename: 'CNM', + siteshortname: 'CNM', + botname: 'CNM BOT', + }, + pages: { + home: 'Home', + profile: 'Perfil', + payment: 'Pagamentos', + regok: 'Inscrição confirmada', + presentazione: 'Apresentação', + presentazione2: 'Apresentação', + invita: 'Convidar Pessoas', + SignUp: 'Inscrição', + SignUp_alreadylista: 'Inscrição para os que já estão na Lista!', + SignUp2: 'Inscrição', + SignIn: 'Login', + status: 'Estatísticas', + nextzoom: 'Conférences', + requestresetpwd: 'Pedido de redefinição de senha', + vreg: '', + dashboard: 'Tablero', + statoattuale: 'Status Atual', + posizione_in_programmazione: 'Lista de Embarque', + posizione_in_nave: 'Lista de Navios', + nave: 'Navios', + testimonial: 'Opiniones', + Test: 'Test', + Category: 'Categorie', + Admin: 'Admin', + Test1: 'Test1', + Test2: 'Test2', + statusreg: { + reg: 'Participantes', + passeggeri: 'Navios de Passageiros', + giainlista: 'Já na lista', + newreg: 'Últimas Inscrições:', + nationality: 'Nacionalidade', + verified: 'Verificado', + nonverified: 'Não verificado', + req7: 'Com 5 passos, o usuário entra na lista de embarque.', + req9: 'Com 7 passos ajudam a {sitename} a crescer!', + req: 'Passos', + people: 'Con.', + peoplelegend: 'Número de convidados', + }, + }, + msg: { + myAppDescription: '', + keywords_base: '', + myDescriz: '', + sottoTitoloApp: '..', + sottoTitoloApp2: '..', + sottoTitoloApp3: '..', + sottoTitoloApp4: '', + }, + homepage: { + titlecontatti: 'CONTACTOS', + }, + text: { + how: 'COMO FUNCIONA', + what: 'QUE NECESITAS', + step: 'PASOS A REALIZAR', + videotitle: 'VIDEO', + testimonial: 'TESTIMONIOS', + faq: 'PREGUNTAS FRECUENTES (FAQ)', + advise: 'CONSEJOS', + download: 'MATERIAL DISPONIBLES', + }, +}; + +export default msg_website_pt; diff --git a/src/db/lang/ws_si.js b/src/db/lang/ws_si.js new file mode 100755 index 00000000..25f6b3ab --- /dev/null +++ b/src/db/lang/ws_si.js @@ -0,0 +1,59 @@ +const msg_website_si = { + ws: { + sitename: 'AYNI', + siteshortname: 'Ayni', + botname: 'AYNI BOT', + }, + pages: { + home: 'Domača stran', + profile: 'Profil', + payment: 'Plačila', + regok: 'Registracija potrjena', + presentazione: 'Predstavitev', + presentazione2: 'Predstavitev', + invita: 'Povabi osebe', + SignUp: 'Nova Registracija', + SignUp2: 'Registracija', + SignIn: 'Vpis', + status: 'Statistika', + nextzoom: 'Conferenze', + requestresetpwd: 'Prošnja za ponastavitev Gesla', + vreg: 'Preveri Registracijo', + dashboard: 'Tabla', + statoattuale: 'TrenutniStatus', + posizione_in_programmazione: 'Seznam Plovbe', + posizione_in_nave: 'Seznam Ladiji', + nave: 'Ladje', + Admin: 'Administrator', + evento: 'Dogodek', + eventodef: 'Dogodek:', + statusreg: { + reg: 'Udeleženci', + passeggeri: 'Potniki Ladjic', + giainlista: 'Že na seznamu', + newreg: 'Zadnje Registracije:', + nationality: 'Nacionalnost', + verified: 'Preveri', + nonverified: 'Ni preverjeno', + req7: 'S 7 koraki vstopis na seznam za plovbo', + req9: 'Z 9-imi koraki pomagaš, da {sitename} Raste!', + req: 'Koraki', + people: 'Pov.', + peoplelegend: 'Število \'Povabljenih', + }, + }, + msg: { + myAppDescription: '', + keywords_base: '', + myDescriz: '', + sottoTitoloApp: '', + sottoTitoloApp2: '', + sottoTitoloApp3: '', + sottoTitoloApp4: '', + }, + homepage: { + titlecontatti: 'Kontakt', + }, +}; + +export default msg_website_si; diff --git a/src/db/static_data.ts b/src/db/static_data.ts new file mode 100755 index 00000000..c748f77d --- /dev/null +++ b/src/db/static_data.ts @@ -0,0 +1,147 @@ +import { + IListRoutes, + ILang, + IFunctionality, + IPreloadImages, +} from '@model' + +const functionality: IFunctionality = { + PWA: true, + SHOW_USER_MENU: true, // Cambiare con true + SHOW_PROFILE: true, + SHOW_REG_BUTTON: true, + ENABLE_REGISTRATION: true, // Cambiare con true + ENABLE_REG_AYNI: false, + SHOW_NEWSLETTER: false, + SHOW_ONLY_POLICY: false, + ENABLE_TODOS_LOADING: true, + ENABLE_PROJECTS_LOADING: true, + SHOW_IF_IS_SERVER_CONNECTION: false, + SHOW_MESSAGES: false, + BOOKING_EVENTS: false, + ENABLE_ECOMMERCE: true, + ENABLE_REG_CNM: true, +} + +// const SHOW_PROJINTHEMENU = false +// +// let arrlistafavourite = [] +// let arrlistaprojtutti = [] +// let arrlistaprojmiei = [] +// if (SHOW_PROJINTHEMENU) { +// arrlistaprojtutti = Projects.getters.listaprojects(RouteNames.projectsall) +// arrlistaprojmiei = Projects.getters.listaprojects(RouteNames.myprojects) +// arrlistafavourite = Projects.getters.listaprojects(RouteNames.favouriteprojects) +// } +// PROGETTI -> FAVORITI : + +// if (arrlistafavourite.length > 0) { +// arrMenu.push({ +// icon: 'favorite_border', +// nametranslate: 'pages.' + RouteNames.favouriteprojects, +// urlroute: RouteNames.favouriteprojects, +// level_parent: 0.0, +// level_child: 0.5, +// routes2: arrlistafavourite, +// idelem: '' +// }) +// } + +const routes_todo: IListRoutes[] = [] +const arrlista = [ + { nametranslate: 'personal', description: 'personal' }, + { nametranslate: 'work', description: 'work' }, + { nametranslate: 'shopping', description: 'shopping' }, +] + +const baseroutes: IListRoutes[] = [ + { + order: 4, + path: '/ciao', + materialIcon: 'ciao', + name: 'pages.ciao', + component: () => import('@src/root/ciao/ciao.vue'), + reqauth: false, + inmenu: true, + infooter: true, + }, + { + order: 5, + path: '/', + materialIcon: 'home', + name: 'pages.home', + component: () => import('@src/root/home/home.vue'), + reqauth: false, + inmenu: true, + infooter: true, + }, + { + order: 6, + path: '/b', + faIcon: 'fa fa-list-alt', + materialIcon: 'format_list_numbered', + name: 'pages.Todo', + routes2: routes_todo, + level_parent: 0, + level_child: 0.5, + inmenu: true, + solotitle: true, + infooter: true, + }, + { + order: 7, + path: '/c', + faIcon: 'fa fa-list-alt', + materialIcon: 'next_week', + name: 'pages.projects', + // routes2: routes_projects, + level_parent: 0, + level_child: 0.5, + inmenu: true, + solotitle: true, + infooter: true, + }, + // --- NOT IN MENU: --- + /*{ + order: 8, + path: '/policy', + name: 'pages.policy', + component: () => import('@src/root/policy/policy.vue'), + },*/ +] + +const arrLangUsed = [ + 'it', + 'enUs', + 'es', +] + +const lang_available: ILang[] = [ + { + label: 'Italiano', icon: 'fa-flag-it', value: 'it', image: '../public/images/it.png', short: 'IT', + }, + { + label: 'English', icon: 'fa-flag-us', value: 'enUs', image: '../public/images/gb.png', short: 'EN', + }, + { + label: 'Español', icon: 'fa-flag-es', value: 'es', image: '../public/images/es.png', short: 'ES', + }, +// { label: 'Français', icon: 'fa-facebook', value: 'fr', image: '../public/images/fr.png', short: 'FR' } +// { label: 'German', icon: 'fa-flag-de', value: 'de', image: '../public/images/de.png', short: 'DE' }, +] + +const preLoadImages: IPreloadImages[] = [] + +export const preloadedimages = [] + +export const routes = baseroutes + +export const static_data = { + baseroutes, + routes, + functionality, + lang_available, + preLoadImages, + arrLangUsed, + preloadedimages, +} diff --git a/src/env.d.ts b/src/env.d.ts new file mode 100755 index 00000000..12dcd189 --- /dev/null +++ b/src/env.d.ts @@ -0,0 +1,7 @@ +declare namespace NodeJS { + interface ProcessEnv { + NODE_ENV: string; + VUE_ROUTER_MODE: 'hash' | 'history' | 'abstract' | undefined; + VUE_ROUTER_BASE: string | undefined; + } +} diff --git a/src/error-handler/backend.ts b/src/error-handler/backend.ts new file mode 100755 index 00000000..66edf327 --- /dev/null +++ b/src/error-handler/backend.ts @@ -0,0 +1,25 @@ +// import { i18n } from '../boot/vue-i18n' +import { Notify } from 'quasar' + +export default (error: any) => { +/* + let message = this.$i18n.t('errors.backend.undefined') + if (error.response.data.error && error.response.data.message) { + message = error.response.data.message + } + + if (error.response.data.errors) { + const errors = Object.keys(error.response.data.errors) + message = error.response.data.errors[errors[0]][0] + } + + Notify.create({ + message, + position: 'center' + }) + + if (message === this.$i18n.t('errors.backend.undefined')) { + console.log(error.response) + } +*/ +} diff --git a/src/error-handler/firebase.ts b/src/error-handler/firebase.ts new file mode 100755 index 00000000..dca3a5c6 --- /dev/null +++ b/src/error-handler/firebase.ts @@ -0,0 +1,24 @@ +import { Notify } from 'quasar' +import store from '../store' +// import { i18n } from '../boot/vue-i18n' + +export default (error: any) => { +/* + switch (error.code) { + case 'messaging/notifications-blocked': + case 'messaging/permission-blocked': + store.commit('session/fcmNotificationPromptShowed', true) + store.commit('session/fcmNotificationsBlocked', true) + break + case 'messaging/token-unsubscribe-failed': + Notify.create({ + message: i18n.t('errors.firebase.try_again'), + position: 'center' + }) + break + default: + console.error(error) + break + } +*/ +} diff --git a/src/error-handler/graphql.ts b/src/error-handler/graphql.ts new file mode 100755 index 00000000..cec9eba3 --- /dev/null +++ b/src/error-handler/graphql.ts @@ -0,0 +1,22 @@ +// import { i18n } from '../boot/vue-i18n' +import { Notify } from 'quasar' + +export default (error: any) => { +/* + let message = this.$i18n.t('errors.graphql.undefined') + + if (error[0].validation) { + let errors = Object.keys(error[0].validation) + message = error[0].validation[errors[0]][0] + } + + Notify.create({ + message, + position: 'center' + }) + + if (message === this.$i18n.t('errors.graphql.undefined')) { + console.log(error.response) + } +*/ +} diff --git a/src/error-handler/index.ts b/src/error-handler/index.ts new file mode 100755 index 00000000..8bc7641c --- /dev/null +++ b/src/error-handler/index.ts @@ -0,0 +1,21 @@ +// import Backend from './backend' +// import Firebase from './firebase' +import Graphql from './graphql' + +export default (context: any, error: any) => { + /* + if (error.constructor.nametranslate === 'FirebaseError') { + Firebase(error) + return + } + if (error.response && error.response.data && error.response.data.backend) { + Backend(error) + return + } */ + + if (error[0] && error[0].locations && error[0].validation) { + Graphql(error) + return + } + console.log('Error handler', error) +} diff --git a/src/globalroutines/index.ts b/src/globalroutines/index.ts new file mode 100755 index 00000000..41dea926 --- /dev/null +++ b/src/globalroutines/index.ts @@ -0,0 +1,31 @@ +// import { useGlobalStore } from '@store/globalStore' +// import indexdb from './indexdb' + +import { idbKeyval as storage } from '@src/js/storage' + +export default async (context: any, cmd: string, table: string, data: any = null, id = '') => { + // const globalStore = useGlobalStore() + + // const descr = data !== null ? data.descr : '' + // console.log('globalroutines', cmd, table, descr, id) + return storage.setdata(table, data) + /*return indexdb(context, cmd, table, data, id) + .then((ris) => { + // console.log('globalStore.state.connData', globalStore.state.connData) + + setTimeout(() => { + // globalStore.connData.uploading_indexeddb = 0 + // globalStore.connData.downloading_indexeddb = 0 + }, 1000) + return ris + }).catch((err) => { + setTimeout(() => { + // globalStore.connData.uploading_indexeddb = (globalStore.connData.uploading_indexeddb === 1) ? -1 : globalStore.connData.uploading_indexeddb + // globalStore.connData.downloading_indexeddb = (globalStore.connData.downloading_indexeddb === 1) ? -1 : globalStore.connData.downloading_indexeddb + }, 1000) + + console.log('ERROR INDEXEDDB: ', err) + }) + + */ +} diff --git a/src/globalroutines/indexdb.ts b/src/globalroutines/indexdb.ts new file mode 100755 index 00000000..ec69f9c9 --- /dev/null +++ b/src/globalroutines/indexdb.ts @@ -0,0 +1,134 @@ +import { costanti } from '@store/Modules/costanti' +import { ICfgData } from '@src/model' +import { tools } from '@src/store/Modules/tools' +import { toolsext } from '@src/store/Modules/toolsext' +import { useUserStore } from '@store/UserStore' +import { useGlobalStore } from '@store/globalStore' +import { idbKeyval as storage } from '../js/storage.js' + +function writeConfigIndexDb(context: any, data: any) { + // console.log('writeConfigIndexDb', data) + + storage.setdata('config', data) +} + +function saveConfigIndexDb(context: any) { + const userStore = useUserStore() + + const data: ICfgData = { + _id: costanti.CONFIG_ID_CFG, + lang: toolsext.getLocale(), + token: userStore.x_auth_token, + userId: userStore.my._id, + } + + writeConfigIndexDb('config', data) +} + +async function readfromIndexDbToState(context: any, table: string) { + console.log('*** readfromIndexDbToState ***', table) + + return storage.getalldata(table) + .then((reccat) => { + // console.log('&&&&&&& readfromIndexDbToState OK: Num RECORD: ', records.length) + if (table === 'categories') { + console.log('reccat', reccat) + /* Todos.categories = [] + for (const elem of reccat) { + Todos.categories.push(elem.valore) + } + + console.log('ARRAY Categories', Todos.categories) + table = 'todos' + + return storage.getalldata(table) + .then((records) => { + console.log(table + ' records', records) + // console.log('&&&&&&& readfromIndexDbToState OK: Num RECORD: ', records.length) + + const arrinit = [] + + for (const mytodo of records) { + const cat = mytodo.category + const indcat = Todos.categories.indexOf(cat) + if (arrinit.indexOf(indcat) < 0) { + Todos.todos[indcat] = [] + arrinit.push(indcat) + } + + Todos.todos[indcat].push(mytodo) + + } + + console.log('************ ARRAYS SALVATI IN MEMORIA ', table, records) + }) + + */ + } else { + // ++Todo conv : const arrris = tools.setArrayMainByTable(table, reccat) + // console.log('************ ARRAYS SALVATI IN MEMORIA ', table, arrris) + + } + }).catch((error) => { + console.log('err readfromIndexDbToState: ', error) + }) +} + +function consolelogpao(str: string, str2: string = '', str3: string = '') { + console.log(str, str2, str3) + // Todos.mutations.setTestpao(str + str2 + str3) +} + +export default async (context: any, cmd: string, table: string, datakey: any = null, id = '') => { + const globalStore = useGlobalStore() + try { + // console.log('TABLE', table, 'cmd', cmd) + if (cmd === 'loadapp') { + // ****** LOAD APP AL CARICAMENTO ! ******* + return saveConfigIndexDb(context) + } + if (cmd === 'write') { + if (globalStore) { + globalStore.connData.uploading_indexeddb = 1 + } + return await storage.setdata(table, datakey) + } + if (cmd === 'updatefromIndexedDbToState') { + return await readfromIndexDbToState(context, table) + } + if (cmd === 'readall') { + if (globalStore) { + globalStore.connData.downloading_indexeddb = 1 + console.log('getalldata table', table) + } + return await storage.getalldata(table) + } + if (cmd === 'count') { + return await storage.count(table) + } + if (cmd === 'read') { + if (globalStore) { + globalStore.connData.downloading_indexeddb = 1 + } + return await storage.getdata(table, id) + } + if (cmd === 'delete') { + if (globalStore) { + globalStore.connData.uploading_indexeddb = 1 + } + return await storage.deletedata(table, id) + } + if (cmd === 'clearalldata') { + if (globalStore) { + globalStore.connData.uploading_indexeddb = 1 + } + return await storage.clearalldata(table) + } + if (cmd === 'log') { + consolelogpao(table) + } + } catch (e) { + console.error('error INDEXdb', e) + } + return null +} diff --git a/src/globalroutines/util.ts b/src/globalroutines/util.ts new file mode 100755 index 00000000..ce590dba --- /dev/null +++ b/src/globalroutines/util.ts @@ -0,0 +1,25 @@ +import { toolsext } from '@src/store/Modules/toolsext' +import { tools } from '@src/store/Modules/tools' +import messages from '../statics/i18n' + +function translate(params: any) { + const msg = params.split('.') + const lang = toolsext.getLocale() + + // @ts-ignore + const stringa = messages[lang] + + let ris = stringa + if (ris) { + msg.forEach((param: any) => { + ris = ris[param] + }) + } else { + console.log('ERRORE IN TRANSLATE! ', params, ' NON ESISTE!') + return params + } + + return ris +} + +export default translate diff --git a/src/helpers.js b/src/helpers.js new file mode 100755 index 00000000..309db6cc --- /dev/null +++ b/src/helpers.js @@ -0,0 +1,10 @@ +const path = require('path'); + +const ROOT = path.resolve(__dirname, '.'); + +function root(args) { + args = Array.prototype.slice.call(arguments, 0); + return path.join.apply(path, [ROOT].concat(args)); +} + +exports.root = root; diff --git a/src/index.template.html b/src/index.template.html new file mode 100755 index 00000000..8157cbff --- /dev/null +++ b/src/index.template.html @@ -0,0 +1,22 @@ + + + + <%= productName %> + + + + + + + + + + + + + + + +
+ + diff --git a/src/jquery.d.ts.off b/src/jquery.d.ts.off new file mode 100755 index 00000000..b6381484 --- /dev/null +++ b/src/jquery.d.ts.off @@ -0,0 +1,8004 @@ +// Type definitions for jquery 3.2 +// Project: https://jquery.com +// Definitions by: Leonard Thieu +// Boris Yankov +// Christian Hoffmeister +// Steve Fenton +// Diullei Gomes +// Tass Iliopoulos +// Jason Swearingen +// Sean Hill +// Guus Goossens +// Kelly Summerlin +// Basarat Ali Syed +// Nicholas Wolverson +// Derek Cicerone +// Andrew Gaspar +// Seikichi Kondo +// Benjamin Jackman +// Poul Sorensen +// Josh Strobl +// John Reilly +// Dick van den Brink +// Thomas Schulz +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +declare module 'jquery' { + export = jQuery +} + +declare module 'jquery/dist/jquery.slim' { + export = jQuery +} + +declare const jQuery: JQueryStatic +declare const $: JQueryStatic + +// Used by JQuery.Event +type _Event = Event +// Used by JQuery.Promise3 and JQuery.Promise +type _Promise = Promise + +interface JQueryStatic { + /** + * A factory function that returns a chainable utility object with methods to register multiple + * callbacks into callback queues, invoke callback queues, and relay the success or failure state of + * any synchronous or asynchronous function. + * + * @param beforeStart A function that is called just before the constructor returns. + * @see {@link https://api.jquery.com/jQuery.Deferred/} + * @since 1.5 + */ + Deferred: JQuery.DeferredStatic + Event: JQuery.EventStatic + /** + * Hook directly into jQuery to override how particular CSS properties are retrieved or set, normalize + * CSS property naming, or create custom properties. + * + * @see {@link https://api.jquery.com/jQuery.cssHooks/} + * @since 1.4.3 + */ + cssHooks: JQuery.PlainObject> + /** + * An object containing all CSS properties that may be used without a unit. The .css() method uses this + * object to see if it may append px to unitless values. + * + * @see {@link https://api.jquery.com/jQuery.cssNumber/} + * @since 1.4.3 + */ + cssNumber: JQuery.PlainObject + readonly fn: JQuery + fx: { + /** + * The rate (in milliseconds) at which animations fire. + * + * @see {@link https://api.jquery.com/jQuery.fx.interval/} + * @since 1.4.3 + * @deprecated 3.0 + */ + interval: number; + /** + * Globally disable all animations. + * + * @see {@link https://api.jquery.com/jQuery.fx.off/} + * @since 1.3 + */ + off: boolean; + step: JQuery.PlainObject>; + } + /** + * A Promise-like object (or "thenable") that resolves when the document is ready. + * + * @see {@link https://api.jquery.com/jQuery.ready/} + * @since 1.8 + */ + ready: JQuery.Thenable> + /** + * A collection of properties that represent the presence of different browser features or bugs. + * Intended for jQuery's internal use; specific properties may be removed when they are no longer + * needed internally to improve page startup performance. For your own project's feature-detection + * needs, we strongly recommend the use of an external library such as Modernizr instead of dependency + * on properties in jQuery.support. + * + * @see {@link https://api.jquery.com/jQuery.support/} + * @since 1.3 + * @deprecated 1.9 + */ + support: JQuery.PlainObject + valHooks: JQuery.PlainObject> + /** + * Creates DOM elements on the fly from the provided string of raw HTML. + * + * @param html A string of HTML to create on the fly. Note that this parses HTML, not XML. + * A string defining a single, standalone, HTML element (e.g.
or
). + * @param ownerDocument_attributes A document in which the new elements will be created. + * An object of attributes, events, and methods to call on the newly-created element. + * @see {@link https://api.jquery.com/jQuery/} + * @since 1.0 + * @since 1.4 + */ + (html: JQuery.htmlString, ownerDocument_attributes: Document | JQuery.PlainObject): JQuery + /** + * Accepts a string containing a CSS selector which is then used to match a set of elements. + * + * @param selector A string containing a selector expression + * @param context A DOM Element, Document, or jQuery to use as context + * @see {@link https://api.jquery.com/jQuery/} + * @since 1.0 + */ + (selector: JQuery.Selector, context: Element | Document | JQuery | undefined): JQuery + // HACK: This is the factory function returned when importing jQuery without a DOM. Declaring it separately breaks using the type parameter on JQueryStatic. + // HACK: The discriminator parameter handles the edge case of passing a Window object to JQueryStatic. It doesn't actually exist on the factory function. + (window: Window, discriminator: boolean): JQueryStatic + /** + * Creates DOM elements on the fly from the provided string of raw HTML. + * + * Binds a function to be executed when the DOM has finished loading. + * + * @param selector_object_callback A string containing a selector expression + * A DOM element to wrap in a jQuery object. + * An array containing a set of DOM elements to wrap in a jQuery object. + * A plain object to wrap in a jQuery object. + * An existing jQuery object to clone. + * The function to execute when the DOM is ready. + * @see {@link https://api.jquery.com/jQuery/} + * @since 1.0 + * @since 1.4 + */ + (selector_object_callback?: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery | + JQuery.PlainObject | + ((this: Document, $: JQueryStatic) => void)): JQuery + /** + * A multi-purpose callbacks list object that provides a powerful way to manage callback lists. + * + * @param flags An optional list of space-separated flags that change how the callback list behaves. + * @see {@link https://api.jquery.com/jQuery.Callbacks/} + * @since 1.7 + */ + Callbacks(flags?: string): JQuery.Callbacks + /** + * Perform an asynchronous HTTP (Ajax) request. + * + * @param url A string containing the URL to which the request is sent. + * @param settings A set of key/value pairs that configure the Ajax request. All settings are optional. A default can + * be set for any option with $.ajaxSetup(). See jQuery.ajax( settings ) below for a complete list of all settings. + * @see {@link https://api.jquery.com/jQuery.ajax/} + * @since 1.5 + */ + ajax(url: string, settings?: JQuery.AjaxSettings): JQuery.jqXHR + /** + * Perform an asynchronous HTTP (Ajax) request. + * + * @param settings A set of key/value pairs that configure the Ajax request. All settings are optional. A default can + * be set for any option with $.ajaxSetup(). + * @see {@link https://api.jquery.com/jQuery.ajax/} + * @since 1.0 + */ + ajax(settings?: JQuery.AjaxSettings): JQuery.jqXHR + /** + * Handle custom Ajax options or modify existing options before each request is sent and before they + * are processed by $.ajax(). + * + * @param dataTypes An optional string containing one or more space-separated dataTypes + * @param handler A handler to set default values for future Ajax requests. + * @see {@link https://api.jquery.com/jQuery.ajaxPrefilter/} + * @since 1.5 + */ + ajaxPrefilter(dataTypes: string, + handler: (options: JQuery.AjaxSettings, originalOptions: JQuery.AjaxSettings, jqXHR: JQuery.jqXHR) => string | void): void + /** + * Handle custom Ajax options or modify existing options before each request is sent and before they + * are processed by $.ajax(). + * + * @param handler A handler to set default values for future Ajax requests. + * @see {@link https://api.jquery.com/jQuery.ajaxPrefilter/} + * @since 1.5 + */ + ajaxPrefilter(handler: (options: JQuery.AjaxSettings, originalOptions: JQuery.AjaxSettings, jqXHR: JQuery.jqXHR) => string | void): void + /** + * Set default values for future Ajax requests. Its use is not recommended. + * + * @param options A set of key/value pairs that configure the default Ajax request. All options are optional. + * @see {@link https://api.jquery.com/jQuery.ajaxSetup/} + * @since 1.1 + */ + ajaxSetup(options: JQuery.AjaxSettings): JQuery.AjaxSettings + /** + * Creates an object that handles the actual transmission of Ajax data. + * + * @param dataType A string identifying the data type to use + * @param handler A handler to return the new transport object to use with the data type provided in the first argument. + * @see {@link https://api.jquery.com/jQuery.ajaxTransport/} + * @since 1.5 + */ + ajaxTransport(dataType: string, + handler: (options: JQuery.AjaxSettings, originalOptions: JQuery.AjaxSettings, jqXHR: JQuery.jqXHR) => JQuery.Transport | void): void + /** + * Check to see if a DOM element is a descendant of another DOM element. + * + * @param container The DOM element that may contain the other element. + * @param contained The DOM element that may be contained by (a descendant of) the other element. + * @see {@link https://api.jquery.com/jQuery.contains/} + * @since 1.4 + */ + contains(container: Element, contained: Element): boolean + css(elem: Element, unknown: any): any + /** + * Returns value at named data store for the element, as set by jQuery.data(element, nametranslate, value), or + * the full data store for the element. + * + * @param element The DOM element to query for the data. + * @param key Name of the data stored. + * @param undefined + * @see {@link https://api.jquery.com/jQuery.data/} + * @since 1.2.3 + */ + data(element: Element, key: string, undefined: undefined): any // tslint:disable-line:unified-signatures + /** + * Store arbitrary data associated with the specified element. Returns the value that was set. + * + * @param element The DOM element to associate with the data. + * @param key A string naming the piece of data to set. + * @param value The new data value; this can be any Javascript type except undefined. + * @see {@link https://api.jquery.com/jQuery.data/} + * @since 1.2.3 + */ + data(element: Element, key: string, value: T): T + /** + * Returns value at named data store for the element, as set by jQuery.data(element, nametranslate, value), or + * the full data store for the element. + * + * @param element The DOM element to query for the data. + * @param key Name of the data stored. + * @see {@link https://api.jquery.com/jQuery.data/} + * @since 1.2.3 + * @since 1.4 + */ + data(element: Element, key?: string): any + /** + * Execute the next function on the queue for the matched element. + * + * @param element A DOM element from which to remove and execute a queued function. + * @param queueName A string containing the nametranslate of the queue. Defaults to fx, the standard effects queue. + * @see {@link https://api.jquery.com/jQuery.dequeue/} + * @since 1.3 + */ + dequeue(element: Element, queueName?: string): void + /** + * A generic iterator function, which can be used to seamlessly iterate over both objects and arrays. + * Arrays and array-like objects with a length property (such as a function's arguments object) are + * iterated by numeric index, from 0 to length-1. Other objects are iterated via their named properties. + * + * @param array The array to iterate over. + * @param callback The function that will be executed on every object. + * @see {@link https://api.jquery.com/jQuery.each/} + * @since 1.0 + */ + each(array: ArrayLike, callback: (this: T, indexInArray: number, value: T) => false | any): ArrayLike + /** + * A generic iterator function, which can be used to seamlessly iterate over both objects and arrays. + * Arrays and array-like objects with a length property (such as a function's arguments object) are + * iterated by numeric index, from 0 to length-1. Other objects are iterated via their named properties. + * + * @param obj The object to iterate over. + * @param callback The function that will be executed on every object. + * @see {@link https://api.jquery.com/jQuery.each/} + * @since 1.0 + */ + each(obj: T, callback: (this: T[K], propertyName: K, valueOfProperty: T[K]) => false | any): T + /** + * Takes a string and throws an exception containing it. + * + * @param message The message to send out. + * @see {@link https://api.jquery.com/jQuery.error/} + * @since 1.4.1 + */ + error(message: string): any + /** + * Escapes any character that has a special meaning in a CSS selector. + * + * @param selector A string containing a selector expression to escape. + * @see {@link https://api.jquery.com/jQuery.escapeSelector/} + * @since 3.0 + */ + escapeSelector(selector: JQuery.Selector): JQuery.Selector + /** + * Merge the contents of two or more objects together into the first object. + * + * @param deep If true, the merge becomes recursive (aka. deep copy). Passing false for this argument is not supported. + * @param target The object to extend. It will receive the new properties. + * @see {@link https://api.jquery.com/jQuery.extend/} + * @since 1.1.4 + */ + extend(deep: true, target: T, object1: U, object2: V, object3: W, object4: X, object5: Y, object6: Z): T & U & V & W & X & Y & Z + /** + * Merge the contents of two or more objects together into the first object. + * + * @param deep If true, the merge becomes recursive (aka. deep copy). Passing false for this argument is not supported. + * @param target The object to extend. It will receive the new properties. + * @see {@link https://api.jquery.com/jQuery.extend/} + * @since 1.1.4 + */ + extend(deep: true, target: T, object1: U, object2: V, object3: W, object4: X, object5: Y): T & U & V & W & X & Y + /** + * Merge the contents of two or more objects together into the first object. + * + * @param deep If true, the merge becomes recursive (aka. deep copy). Passing false for this argument is not supported. + * @param target The object to extend. It will receive the new properties. + * @see {@link https://api.jquery.com/jQuery.extend/} + * @since 1.1.4 + */ + extend(deep: true, target: T, object1: U, object2: V, object3: W, object4: X): T & U & V & W & X + /** + * Merge the contents of two or more objects together into the first object. + * + * @param deep If true, the merge becomes recursive (aka. deep copy). Passing false for this argument is not supported. + * @param target The object to extend. It will receive the new properties. + * @see {@link https://api.jquery.com/jQuery.extend/} + * @since 1.1.4 + */ + extend(deep: true, target: T, object1: U, object2: V, object3: W): T & U & V & W + /** + * Merge the contents of two or more objects together into the first object. + * + * @param deep If true, the merge becomes recursive (aka. deep copy). Passing false for this argument is not supported. + * @param target The object to extend. It will receive the new properties. + * @see {@link https://api.jquery.com/jQuery.extend/} + * @since 1.1.4 + */ + extend(deep: true, target: T, object1: U, object2: V): T & U & V + /** + * Merge the contents of two or more objects together into the first object. + * + * @param deep If true, the merge becomes recursive (aka. deep copy). Passing false for this argument is not supported. + * @param target The object to extend. It will receive the new properties. + * @see {@link https://api.jquery.com/jQuery.extend/} + * @since 1.1.4 + */ + extend(deep: true, target: T, object1: U): T & U + /** + * Merge the contents of two or more objects together into the first object. + * + * @param deep If true, the merge becomes recursive (aka. deep copy). Passing false for this argument is not supported. + * @param target The object to extend. It will receive the new properties. + * @see {@link https://api.jquery.com/jQuery.extend/} + * @since 1.1.4 + */ + extend(deep: true, target: any, object1: any, ...objects: any[]): any + /** + * Merge the contents of two or more objects together into the first object. + * + * @param target An object that will receive the new properties if additional objects are passed in or that will + * extend the jQuery namespace if it is the sole argument. + * @see {@link https://api.jquery.com/jQuery.extend/} + * @since 1.0 + */ + extend(target: T, object1: U, object2: V, object3: W, object4: X, object5: Y, object6: Z): T & U & V & W & X & Y & Z + /** + * Merge the contents of two or more objects together into the first object. + * + * @param target An object that will receive the new properties if additional objects are passed in or that will + * extend the jQuery namespace if it is the sole argument. + * @see {@link https://api.jquery.com/jQuery.extend/} + * @since 1.0 + */ + extend(target: T, object1: U, object2: V, object3: W, object4: X, object5: Y): T & U & V & W & X & Y + /** + * Merge the contents of two or more objects together into the first object. + * + * @param target An object that will receive the new properties if additional objects are passed in or that will + * extend the jQuery namespace if it is the sole argument. + * @see {@link https://api.jquery.com/jQuery.extend/} + * @since 1.0 + */ + extend(target: T, object1: U, object2: V, object3: W, object4: X): T & U & V & W & X + /** + * Merge the contents of two or more objects together into the first object. + * + * @param target An object that will receive the new properties if additional objects are passed in or that will + * extend the jQuery namespace if it is the sole argument. + * @see {@link https://api.jquery.com/jQuery.extend/} + * @since 1.0 + */ + extend(target: T, object1: U, object2: V, object3: W): T & U & V & W + /** + * Merge the contents of two or more objects together into the first object. + * + * @param target An object that will receive the new properties if additional objects are passed in or that will + * extend the jQuery namespace if it is the sole argument. + * @see {@link https://api.jquery.com/jQuery.extend/} + * @since 1.0 + */ + extend(target: T, object1: U, object2: V): T & U & V + /** + * Merge the contents of two or more objects together into the first object. + * + * @param target An object that will receive the new properties if additional objects are passed in or that will + * extend the jQuery namespace if it is the sole argument. + * @see {@link https://api.jquery.com/jQuery.extend/} + * @since 1.0 + */ + extend(target: T, object1: U): T & U + /** + * Merge the contents of two or more objects together into the first object. + * + * @param target An object that will receive the new properties if additional objects are passed in or that will + * extend the jQuery namespace if it is the sole argument. + * @see {@link https://api.jquery.com/jQuery.extend/} + * @since 1.0 + */ + extend(target: any, object1: any, ...objects: any[]): any + /** + * Load data from the server using a HTTP GET request. + * + * @param url A string containing the URL to which the request is sent. + * @param data A plain object or string that is sent to the server with the request. + * @param success A callback function that is executed if the request succeeds. Required if dataType is provided, but + * you can use null or jQuery.noop as a placeholder. + * @param dataType The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html). + * @see {@link https://api.jquery.com/jQuery.get/} + * @since 1.0 + */ + get(url: string, + data: JQuery.PlainObject | string, + success: JQuery.jqXHR.DoneCallback | null, + dataType?: string): JQuery.jqXHR + /** + * Load data from the server using a HTTP GET request. + * + * @param url A string containing the URL to which the request is sent. + * @param success A callback function that is executed if the request succeeds. Required if dataType is provided, but + * you can use null or jQuery.noop as a placeholder. + * @param dataType The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html). + * @see {@link https://api.jquery.com/jQuery.get/} + * @since 1.0 + */ + get(url: string, + success: JQuery.jqXHR.DoneCallback | null, + dataType: string): JQuery.jqXHR + /** + * Load data from the server using a HTTP GET request. + * + * @param url A string containing the URL to which the request is sent. + * @param success_data A callback function that is executed if the request succeeds. Required if dataType is provided, but + * you can use null or jQuery.noop as a placeholder. + * A plain object or string that is sent to the server with the request. + * @see {@link https://api.jquery.com/jQuery.get/} + * @since 1.0 + */ + get(url: string, + success_data: JQuery.jqXHR.DoneCallback | JQuery.PlainObject | string): JQuery.jqXHR + /** + * Load data from the server using a HTTP GET request. + * + * @param url_settings A string containing the URL to which the request is sent. + * A set of key/value pairs that configure the Ajax request. All properties except for url are + * optional. A default can be set for any option with $.ajaxSetup(). See jQuery.ajax( settings ) for a + * complete list of all settings. The type option will automatically be set to GET. + * @see {@link https://api.jquery.com/jQuery.get/} + * @since 1.0 + * @since 1.12 + * @since 2.2 + */ + get(url_settings?: string | JQuery.UrlAjaxSettings): JQuery.jqXHR + /** + * Load JSON-encoded data from the server using a GET HTTP request. + * + * @param url A string containing the URL to which the request is sent. + * @param data A plain object or string that is sent to the server with the request. + * @param success A callback function that is executed if the request succeeds. + * @see {@link https://api.jquery.com/jQuery.getJSON/} + * @since 1.0 + */ + getJSON(url: string, + data: JQuery.PlainObject | string, + success: JQuery.jqXHR.DoneCallback): JQuery.jqXHR + /** + * Load JSON-encoded data from the server using a GET HTTP request. + * + * @param url A string containing the URL to which the request is sent. + * @param success_data A callback function that is executed if the request succeeds. + * A plain object or string that is sent to the server with the request. + * @see {@link https://api.jquery.com/jQuery.getJSON/} + * @since 1.0 + */ + getJSON(url: string, + success_data?: JQuery.jqXHR.DoneCallback | JQuery.PlainObject | string): JQuery.jqXHR + /** + * Load a JavaScript file from the server using a GET HTTP request, then execute it. + * + * @param url A string containing the URL to which the request is sent. + * @param success A callback function that is executed if the request succeeds. + * @see {@link https://api.jquery.com/jQuery.getScript/} + * @since 1.0 + */ + getScript(url: string, + success?: JQuery.jqXHR.DoneCallback): JQuery.jqXHR + /** + * Execute some JavaScript code globally. + * + * @param code The JavaScript code to execute. + * @see {@link https://api.jquery.com/jQuery.globalEval/} + * @since 1.0.4 + */ + globalEval(code: string): void + /** + * Finds the elements of an array which satisfy a filter function. The original array is not affected. + * + * @param array The array-like object to search through. + * @param fn The function to process each item against. The first argument to the function is the item, and the + * second argument is the index. The function should return a Boolean value. this will be the global window object. + * @param invert If "invert" is false, or not provided, then the function returns an array consisting of all elements + * for which "callback" returns true. If "invert" is true, then the function returns an array + * consisting of all elements for which "callback" returns false. + * @see {@link https://api.jquery.com/jQuery.grep/} + * @since 1.0 + */ + grep(array: ArrayLike, + fn: (elementOfArray: T, indexInArray: number) => boolean, + invert?: boolean): T[] + /** + * Determine whether an element has any jQuery data associated with it. + * + * @param element A DOM element to be checked for data. + * @see {@link https://api.jquery.com/jQuery.hasData/} + * @since 1.5 + */ + hasData(element: Element): boolean + /** + * Holds or releases the execution of jQuery's ready event. + * + * @param hold Indicates whether the ready hold is being requested or released + * @see {@link https://api.jquery.com/jQuery.holdReady/} + * @since 1.6 + * @deprecated 3.2 + */ + holdReady(hold: boolean): void + /** + * Modify and filter HTML strings passed through jQuery manipulation methods. + * + * @param html The HTML string on which to operate. + * @see {@link https://api.jquery.com/jQuery.htmlPrefilter/} + * @since 1.12/2.2 + */ + htmlPrefilter(html: JQuery.htmlString): JQuery.htmlString + /** + * Search for a specified value within an array and return its index (or -1 if not found). + * + * @param value The value to search for. + * @param array An array through which to search. + * @param fromIndex The index of the array at which to begin the search. The default is 0, which will search the whole array. + * @see {@link https://api.jquery.com/jQuery.inArray/} + * @since 1.2 + */ + inArray(value: T, array: T[], fromIndex?: number): number + /** + * Determine whether the argument is an array. + * + * @param obj Object to test whether or not it is an array. + * @see {@link https://api.jquery.com/jQuery.isArray/} + * @since 1.3 + * @deprecated 3.2 + */ + isArray(obj: any): obj is any[] + /** + * Check to see if an object is empty (contains no enumerable properties). + * + * @param obj The object that will be checked to see if it's empty. + * @see {@link https://api.jquery.com/jQuery.isEmptyObject/} + * @since 1.4 + */ + isEmptyObject(obj: any): boolean + /** + * Determine if the argument passed is a JavaScript function object. + * + * @param obj Object to test whether or not it is a function. + * @see {@link https://api.jquery.com/jQuery.isFunction/} + * @since 1.2 + */ + isFunction(obj: any): obj is Function + /** + * Determines whether its argument represents a JavaScript number. + * + * @param value The value to be tested. + * @see {@link https://api.jquery.com/jQuery.isNumeric/} + * @since 1.7 + */ + isNumeric(value: any): value is number + /** + * Check to see if an object is a plain object (created using "{}" or "new Object"). + * + * @param obj The object that will be checked to see if it's a plain object. + * @see {@link https://api.jquery.com/jQuery.isPlainObject/} + * @since 1.4 + */ + isPlainObject(obj: any): obj is JQuery.PlainObject + /** + * Determine whether the argument is a window. + * + * @param obj Object to test whether or not it is a window. + * @see {@link https://api.jquery.com/jQuery.isWindow/} + * @since 1.4.3 + */ + isWindow(obj: any): obj is Window + /** + * Check to see if a DOM node is within an XML document (or is an XML document). + * + * @param node The DOM node that will be checked to see if it's in an XML document. + * @see {@link https://api.jquery.com/jQuery.isXMLDoc/} + * @since 1.1.4 + */ + isXMLDoc(node: Node): boolean + /** + * Convert an array-like object into a true JavaScript array. + * + * @param obj Any object to turn into a native Array. + * @see {@link https://api.jquery.com/jQuery.makeArray/} + * @since 1.2 + */ + makeArray(obj: ArrayLike): T[] + /** + * Translate all items in an array or object to new array of items. + * + * @param array The Array to translate. + * @param callback The function to process each item against. The first argument to the function is the array item, the + * second argument is the index in array The function can return any value. A returned array will be + * flattened into the resulting array. Within the function, this refers to the global (window) object. + * @see {@link https://api.jquery.com/jQuery.map/} + * @since 1.0 + */ + map(array: T[], callback: (elementOfArray: T, indexInArray: number) => R): R[] + /** + * Translate all items in an array or object to new array of items. + * + * @param obj The Object to translate. + * @param callback The function to process each item against. The first argument to the function is the value; the + * second argument is the key of the object property. The function can return any value to add to the + * array. A returned array will be flattened into the resulting array. Within the function, this refers + * to the global (window) object. + * @see {@link https://api.jquery.com/jQuery.map/} + * @since 1.6 + */ + map(obj: T, callback: (propertyOfObject: T[K], key: K) => R): R[] + /** + * Merge the contents of two arrays together into the first array. + * + * @param first The first array-like object to merge, the elements of second added. + * @param second The second array-like object to merge into the first, unaltered. + * @see {@link https://api.jquery.com/jQuery.merge/} + * @since 1.0 + */ + merge(first: ArrayLike, second: ArrayLike): Array + /** + * Relinquish jQuery's control of the $ variable. + * + * @param removeAll A Boolean indicating whether to remove all jQuery variables from the global scope (including jQuery itself). + * @see {@link https://api.jquery.com/jQuery.noConflict/} + * @since 1.0 + */ + noConflict(removeAll?: boolean): this + /** + * An empty function. + * + * @see {@link https://api.jquery.com/jQuery.noop/} + * @since 1.4 + */ + noop(): undefined + /** + * Return a number representing the current time. + * + * @see {@link https://api.jquery.com/jQuery.now/} + * @since 1.4.3 + */ + now(): number + /** + * Create a serialized representation of an array, a plain object, or a jQuery object suitable for use + * in a URL query string or Ajax request. In case a jQuery object is passed, it should contain input + * elements with nametranslate/value properties. + * + * @param obj An array, a plain object, or a jQuery object to serialize. + * @param traditional A Boolean indicating whether to perform a traditional "shallow" serialization. + * @see {@link https://api.jquery.com/jQuery.param/} + * @since 1.2 + * @since 1.4 + */ + param(obj: any[] | JQuery.PlainObject | JQuery, traditional?: boolean): string + /** + * Parses a string into an array of DOM nodes. + * + * @param data HTML string to be parsed + * @param context Document element to serve as the context in which the HTML fragment will be created + * @param keepScripts A Boolean indicating whether to include scripts passed in the HTML string + * @see {@link https://api.jquery.com/jQuery.parseHTML/} + * @since 1.8 + */ + parseHTML(data: string, context: Document | null | undefined, keepScripts: boolean): JQuery.Node[] + /** + * Parses a string into an array of DOM nodes. + * + * @param data HTML string to be parsed + * @param context_keepScripts Document element to serve as the context in which the HTML fragment will be created + * A Boolean indicating whether to include scripts passed in the HTML string + * @see {@link https://api.jquery.com/jQuery.parseHTML/} + * @since 1.8 + */ + parseHTML(data: string, context_keepScripts?: Document | null | undefined | boolean): JQuery.Node[] + /** + * Takes a well-formed JSON string and returns the resulting JavaScript value. + * + * @param json The JSON string to parse. + * @see {@link https://api.jquery.com/jQuery.parseJSON/} + * @since 1.4.1 + * @deprecated 3.0 + */ + parseJSON(json: string): any + /** + * Parses a string into an XML document. + * + * @param data a well-formed XML string to be parsed + * @see {@link https://api.jquery.com/jQuery.parseXML/} + * @since 1.5 + */ + parseXML(data: string): XMLDocument + /** + * Load data from the server using a HTTP POST request. + * + * @param url A string containing the URL to which the request is sent. + * @param data A plain object or string that is sent to the server with the request. + * @param success A callback function that is executed if the request succeeds. Required if dataType is provided, but + * can be null in that case. + * @param dataType The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html). + * @see {@link https://api.jquery.com/jQuery.post/} + * @since 1.0 + */ + post(url: string, + data: JQuery.PlainObject | string, + success: JQuery.jqXHR.DoneCallback | null, + dataType?: string): JQuery.jqXHR + /** + * Load data from the server using a HTTP POST request. + * + * @param url A string containing the URL to which the request is sent. + * @param success A callback function that is executed if the request succeeds. Required if dataType is provided, but + * can be null in that case. + * @param dataType The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html). + * @see {@link https://api.jquery.com/jQuery.post/} + * @since 1.0 + */ + post(url: string, + success: JQuery.jqXHR.DoneCallback | null, + dataType: string): JQuery.jqXHR + /** + * Load data from the server using a HTTP POST request. + * + * @param url A string containing the URL to which the request is sent. + * @param success_data A callback function that is executed if the request succeeds. Required if dataType is provided, but + * can be null in that case. + * A plain object or string that is sent to the server with the request. + * @see {@link https://api.jquery.com/jQuery.post/} + * @since 1.0 + */ + post(url: string, + success_data: JQuery.jqXHR.DoneCallback | JQuery.PlainObject | string): JQuery.jqXHR + /** + * Load data from the server using a HTTP POST request. + * + * @param url_settings A string containing the URL to which the request is sent. + * A set of key/value pairs that configure the Ajax request. All properties except for url are + * optional. A default can be set for any option with $.ajaxSetup(). See jQuery.ajax( settings ) for a + * complete list of all settings. Type will automatically be set to POST. + * @see {@link https://api.jquery.com/jQuery.post/} + * @since 1.0 + * @since 1.12 + * @since 2.2 + */ + post(url_settings?: string | JQuery.UrlAjaxSettings): JQuery.jqXHR + + // region proxy + + // region (fn, null | undefined) + + // region 0 to 7 arguments + + // region 0 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): () => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F): () => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E): () => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D): () => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C) => TReturn, + context: null | undefined, + a: A, b: B, c: C): () => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B) => TReturn, + context: null | undefined, + a: A, b: B): () => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4` + * @since 1.6 + */ + proxy(fn: (a: A) => TReturn, + context: null | undefined, + a: A): () => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: () => TReturn, + context: null | undefined): () => TReturn + + // endregion + + // region 1 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, + t: T) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): (t: T) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, + t: T) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F): (t: T) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, + t: T) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E): (t: T) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, + t: T) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D): (t: T) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, + t: T) => TReturn, + context: null | undefined, + a: A, b: B, c: C): (t: T) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, + t: T) => TReturn, + context: null | undefined, + a: A, b: B): (t: T) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, + t: T) => TReturn, + context: null | undefined, + a: A): (t: T) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (t: T) => TReturn, + context: null | undefined): (t: T) => TReturn + + // endregion + + // region 2 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, + t: T, u: U) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): (t: T, u: U) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, + t: T, u: U) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F): (t: T, u: U) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, + t: T, u: U) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E): (t: T, u: U) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, + t: T, u: U) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D): (t: T, u: U) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, + t: T, u: U) => TReturn, + context: null | undefined, + a: A, b: B, c: C): (t: T, u: U) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, + t: T, u: U) => TReturn, + context: null | undefined, + a: A, b: B): (t: T, u: U) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, + t: T, u: U) => TReturn, + context: null | undefined, + a: A): (t: T, u: U) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (t: T, u: U) => TReturn, + context: null | undefined): (t: T, u: U) => TReturn + + // endregion + + // region 3 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, + t: T, u: U, v: V) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): (t: T, u: U, v: V) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, + t: T, u: U, v: V) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F): (t: T, u: U, v: V) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, + t: T, u: U, v: V) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E): (t: T, u: U, v: V) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, + t: T, u: U, v: V) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D): (t: T, u: U, v: V) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, + t: T, u: U, v: V) => TReturn, + context: null | undefined, + a: A, b: B, c: C): (t: T, u: U, v: V) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, + t: T, u: U, v: V) => TReturn, + context: null | undefined, + a: A, b: B): (t: T, u: U, v: V) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, + t: T, u: U, v: V) => TReturn, + context: null | undefined, + a: A): (t: T, u: U, v: V) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (t: T, u: U, v: V) => TReturn, + context: null | undefined): (t: T, u: U, v: V) => TReturn + + // endregion + + // region 4 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, + t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): (t: T, u: U, v: V, w: W) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, + t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F): (t: T, u: U, v: V, w: W) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, + t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E): (t: T, u: U, v: V, w: W) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, + t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D): (t: T, u: U, v: V, w: W) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, + t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined, + a: A, b: B, c: C): (t: T, u: U, v: V, w: W) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, + t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined, + a: A, b: B): (t: T, u: U, v: V, w: W) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, + t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined, + a: A): (t: T, u: U, v: V, w: W) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined): (t: T, u: U, v: V, w: W) => TReturn + + // endregion + + // region 5 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, + t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): (t: T, u: U, v: V, w: W, x: X) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, + t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F): (t: T, u: U, v: V, w: W, x: X) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, + t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E): (t: T, u: U, v: V, w: W, x: X) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, + t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D): (t: T, u: U, v: V, w: W, x: X) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, + t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined, + a: A, b: B, c: C): (t: T, u: U, v: V, w: W, x: X) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, + t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined, + a: A, b: B): (t: T, u: U, v: V, w: W, x: X) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, + t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined, + a: A): (t: T, u: U, v: V, w: W, x: X) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined): (t: T, u: U, v: V, w: W, x: X) => TReturn + + // endregion + + // region 6 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, + t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, + t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, + t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, + t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, + t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined, + a: A, b: B, c: C): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, + t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined, + a: A, b: B): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, + t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined, + a: A): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + + // endregion + + // region 7+ parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, + t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, + t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E, f: F): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, + t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D, e: E): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, d: D, + t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: null | undefined, + a: A, b: B, c: C, d: D): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, c: C, + t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: null | undefined, + a: A, b: B, c: C): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, b: B, + t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: null | undefined, + a: A, b: B): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (a: A, + t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: null | undefined, + a: A): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: null | undefined): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + + // endregion + + // endregion + + // region 8+ arguments + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @param additionalArguments Any number of arguments to be passed to the function referenced in the function argument. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.9 + */ + proxy(fn: (...args: any[]) => TReturn, + context: null | undefined, + ...additionalArguments: any[]): (...args: any[]) => TReturn + + // endregion + + // endregion + + // region (fn, context) + + // region 0 to 7 arguments + + // region 0 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): (this: TContext) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F): (this: TContext) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E): (this: TContext) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D): (this: TContext) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C) => TReturn, + context: TContext, + a: A, b: B, c: C): (this: TContext) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B) => TReturn, + context: TContext, + a: A, b: B): (this: TContext) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4` + * @since 1.6 + */ + proxy(fn: (a: A) => TReturn, + context: TContext, + a: A): (this: TContext) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: () => TReturn, + context: TContext): (this: TContext) => TReturn + + // endregion + + // region 1 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, + t: T) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): (this: TContext, t: T) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, + t: T) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F): (this: TContext, t: T) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, + t: T) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E): (this: TContext, t: T) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, + t: T) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D): (this: TContext, t: T) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, + t: T) => TReturn, + context: TContext, + a: A, b: B, c: C): (this: TContext, t: T) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, + t: T) => TReturn, + context: TContext, + a: A, b: B): (this: TContext, t: T) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, + t: T) => TReturn, + context: TContext, + a: A): (this: TContext, t: T) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (t: T) => TReturn, + context: TContext): (this: TContext, t: T) => TReturn + + // endregion + + // region 2 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, + t: T, u: U) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): (this: TContext, t: T, u: U) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, + t: T, u: U) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F): (this: TContext, t: T, u: U) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, + t: T, u: U) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E): (this: TContext, t: T, u: U) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, + t: T, u: U) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D): (this: TContext, t: T, u: U) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, + t: T, u: U) => TReturn, + context: TContext, + a: A, b: B, c: C): (this: TContext, t: T, u: U) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, + t: T, u: U) => TReturn, + context: TContext, + a: A, b: B): (this: TContext, t: T, u: U) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, + t: T, u: U) => TReturn, + context: TContext, + a: A): (this: TContext, t: T, u: U) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (t: T, u: U) => TReturn, + context: TContext): (this: TContext, t: T, u: U) => TReturn + + // endregion + + // region 3 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, + t: T, u: U, v: V) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): (this: TContext, t: T, u: U, v: V) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, + t: T, u: U, v: V) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F): (this: TContext, t: T, u: U, v: V) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, + t: T, u: U, v: V) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E): (this: TContext, t: T, u: U, v: V) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, + t: T, u: U, v: V) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D): (this: TContext, t: T, u: U, v: V) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, + t: T, u: U, v: V) => TReturn, + context: TContext, + a: A, b: B, c: C): (this: TContext, t: T, u: U, v: V) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, + t: T, u: U, v: V) => TReturn, + context: TContext, + a: A, b: B): (this: TContext, t: T, u: U, v: V) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, + t: T, u: U, v: V) => TReturn, + context: TContext, + a: A): (this: TContext, t: T, u: U, v: V) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (t: T, u: U, v: V) => TReturn, + context: TContext): (this: TContext, t: T, u: U, v: V) => TReturn + + // endregion + + // region 4 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, + t: T, u: U, v: V, w: W) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): (this: TContext, t: T, u: U, v: V, w: W) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, + t: T, u: U, v: V, w: W) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F): (this: TContext, t: T, u: U, v: V, w: W) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, + t: T, u: U, v: V, w: W) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E): (this: TContext, t: T, u: U, v: V, w: W) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, + t: T, u: U, v: V, w: W) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D): (this: TContext, t: T, u: U, v: V, w: W) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, + t: T, u: U, v: V, w: W) => TReturn, + context: TContext, + a: A, b: B, c: C): (this: TContext, t: T, u: U, v: V, w: W) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, + t: T, u: U, v: V, w: W) => TReturn, + context: TContext, + a: A, b: B): (this: TContext, t: T, u: U, v: V, w: W) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, + t: T, u: U, v: V, w: W) => TReturn, + context: TContext, + a: A): (this: TContext, t: T, u: U, v: V, w: W) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (t: T, u: U, v: V, w: W) => TReturn, + context: TContext): (this: TContext, t: T, u: U, v: V, w: W) => TReturn + + // endregion + + // region 5 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, + t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): (this: TContext, t: T, u: U, v: V, w: W, x: X) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, + t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F): (this: TContext, t: T, u: U, v: V, w: W, x: X) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, + t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E): (this: TContext, t: T, u: U, v: V, w: W, x: X) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, + t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D): (this: TContext, t: T, u: U, v: V, w: W, x: X) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, + t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext, + a: A, b: B, c: C): (this: TContext, t: T, u: U, v: V, w: W, x: X) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, + t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext, + a: A, b: B): (this: TContext, t: T, u: U, v: V, w: W, x: X) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, + t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext, + a: A): (this: TContext, t: T, u: U, v: V, w: W, x: X) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext): (this: TContext, t: T, u: U, v: V, w: W, x: X) => TReturn + + // endregion + + // region 6 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, + t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, + t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, + t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, + t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, + t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: TContext, + a: A, b: B, c: C): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, + t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: TContext, + a: A, b: B): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, + t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: TContext, + a: A): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: TContext): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn + + // endregion + + // region 7+ parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, + t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F, g: G): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, f: F, + t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E, f: F): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, e: E, + t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D, e: E): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, d: D, + t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: TContext, + a: A, b: B, c: C, d: D): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, c: C, + t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: TContext, + a: A, b: B, c: C): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, b: B, + t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: TContext, + a: A, b: B): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (a: A, + t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: TContext, + a: A): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: TContext): (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn + + // endregion + + // endregion + + // region 8+ arguments + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param fn The function whose context will be changed. + * @param context The object to which the context (this) of the function should be set. + * @param additionalArguments Any number of arguments to be passed to the function referenced in the function argument. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(fn: (...args: any[]) => TReturn, + context: TContext, + ...additionalArguments: any[]): (this: TContext, ...args: any[]) => TReturn + + // endregion + + // endregion + + // region (context, nametranslate) + + /** + * Takes a function and returns a new one that will always have a particular context. + * + * @param context The object to which the context of the function should be set. + * @param name The nametranslate of the function whose context will be changed (should be a property of the context object). + * @param additionalArguments Any number of arguments to be passed to the function named in the nametranslate argument. + * @see {@link https://api.jquery.com/jQuery.proxy/} + * @since 1.4 + * @since 1.6 + */ + proxy(context: TContext, + name: keyof TContext, + ...additionalArguments: any[]): (this: TContext, ...args: any[]) => any + + // endregion + + // endregion + + /** + * Manipulate the queue of functions to be executed on the matched element. + * + * @param element A DOM element where the array of queued functions is attached. + * @param queueName A string containing the nametranslate of the queue. Defaults to fx, the standard effects queue. + * @param newQueue The new function to add to the queue. + * An array of functions to replace the current queue contents. + * @see {@link https://api.jquery.com/jQuery.queue/} + * @since 1.3 + */ + queue(element: T, queueName?: string, newQueue?: JQuery.TypeOrArray>): JQuery.Queue + /** + * Handles errors thrown synchronously in functions wrapped in jQuery(). + * + * @param error An error thrown in the function wrapped in jQuery(). + * @see {@link https://api.jquery.com/jQuery.readyException/} + * @since 3.1 + */ + readyException(error: Error): any + /** + * Remove a previously-stored piece of data. + * + * @param element A DOM element from which to remove data. + * @param name A string naming the piece of data to remove. + * @see {@link https://api.jquery.com/jQuery.removeData/} + * @since 1.2.3 + */ + removeData(element: Element, name?: string): void + /** + * Creates an object containing a set of properties ready to be used in the definition of custom animations. + * + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/jQuery.speed/} + * @since 1.1 + */ + speed(duration: JQuery.Duration, easing: string, complete: (this: TElement) => void): JQuery.EffectsOptions + /** + * Creates an object containing a set of properties ready to be used in the definition of custom animations. + * + * @param duration A string or number determining how long the animation will run. + * @param easing_complete A string indicating which easing function to use for the transition. + * A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/jQuery.speed/} + * @since 1.0 + * @since 1.1 + */ + speed(duration: JQuery.Duration, + easing_complete: string | ((this: TElement) => void)): JQuery.EffectsOptions + /** + * Creates an object containing a set of properties ready to be used in the definition of custom animations. + * + * @param duration_complete_settings A string or number determining how long the animation will run. + * A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/jQuery.speed/} + * @since 1.0 + * @since 1.1 + */ + speed(duration_complete_settings?: JQuery.Duration | ((this: TElement) => void) | JQuery.SpeedSettings): JQuery.EffectsOptions + /** + * Remove the whitespace from the beginning and end of a string. + * + * @param str The string to trim. + * @see {@link https://api.jquery.com/jQuery.trim/} + * @since 1.0 + */ + trim(str: string): string + /** + * Determine the internal JavaScript [[Class]] of an object. + * + * @param obj Object to get the internal JavaScript [[Class]] of. + * @see {@link https://api.jquery.com/jQuery.type/} + * @since 1.4.3 + */ + type(obj: any): 'array' | 'boolean' | 'date' | 'error' | 'function' | 'null' | 'number' | 'object' | 'regexp' | 'string' | 'symbol' | 'undefined' + /** + * Sorts an array of DOM elements, in place, with the duplicates removed. Note that this only works on + * arrays of DOM elements, not strings or numbers. + * + * @param array The Array of DOM elements. + * @see {@link https://api.jquery.com/jQuery.unique/} + * @since 1.1.3 + * @deprecated 3.0 + */ + unique(array: T[]): T[] + /** + * Sorts an array of DOM elements, in place, with the duplicates removed. Note that this only works on + * arrays of DOM elements, not strings or numbers. + * + * @param array The Array of DOM elements. + * @see {@link https://api.jquery.com/jQuery.uniqueSort/} + * @since 1.12 + * @since 2.2 + */ + uniqueSort(array: T[]): T[] + /** + * Provides a way to execute callback functions based on zero or more Thenable objects, usually + * Deferred objects that represent asynchronous events. + * + * @see {@link https://api.jquery.com/jQuery.when/} + * @since 1.5 + */ + when + (deferredT: JQuery.Promise | JQuery.Thenable | TR1, + deferredU: JQuery.Promise | JQuery.Thenable | UR1, + deferredV: JQuery.Promise | JQuery.Thenable | VR1): JQuery.Promise3 + /** + * Provides a way to execute callback functions based on zero or more Thenable objects, usually + * Deferred objects that represent asynchronous events. + * + * @see {@link https://api.jquery.com/jQuery.when/} + * @since 1.5 + */ + when + (deferredT: JQuery.Promise | JQuery.Thenable | TR1, + deferredU: JQuery.Promise | JQuery.Thenable | UR1): JQuery.Promise2 + /** + * Provides a way to execute callback functions based on zero or more Thenable objects, usually + * Deferred objects that represent asynchronous events. + * + * @see {@link https://api.jquery.com/jQuery.when/} + * @since 1.5 + */ + when + (deferredT: JQuery.Promise3 | + JQuery.Promise2): JQuery.Promise3 + /** + * Provides a way to execute callback functions based on zero or more Thenable objects, usually + * Deferred objects that represent asynchronous events. + * + * @see {@link https://api.jquery.com/jQuery.when/} + * @since 1.5 + */ + when(deferred: JQuery.Promise | JQuery.Thenable | TR1): JQuery.Promise + /** + * Provides a way to execute callback functions based on zero or more Thenable objects, usually + * Deferred objects that represent asynchronous events. + * + * @param deferreds Zero or more Thenable objects. + * @see {@link https://api.jquery.com/jQuery.when/} + * @since 1.5 + */ + when(...deferreds: Array | JQuery.Thenable | TR1>): JQuery.Promise + /** + * Provides a way to execute callback functions based on zero or more Thenable objects, usually + * Deferred objects that represent asynchronous events. + * + * @param deferreds Zero or more Thenable objects. + * @see {@link https://api.jquery.com/jQuery.when/} + * @since 1.5 + */ + when(...deferreds: any[]): JQuery.Promise +} + +interface JQuery extends Iterable { + /** + * A string containing the jQuery version number. + * + * @see {@link https://api.jquery.com/jquery/} + * @since 1.0 + */ + jquery: string + /** + * The number of elements in the jQuery object. + * + * @see {@link https://api.jquery.com/length/} + * @since 1.0 + */ + length: number + /** + * Create a new jQuery object with elements added to the set of matched elements. + * + * @param selector A string representing a selector expression to find additional elements to add to the set of matched elements. + * @param context The point in the document at which the selector should begin matching; similar to the context + * argument of the $(selector, context) method. + * @see {@link https://api.jquery.com/add/} + * @since 1.4 + */ + add(selector: JQuery.Selector, context: Element): this + /** + * Create a new jQuery object with elements added to the set of matched elements. + * + * @param selector A string representing a selector expression to find additional elements to add to the set of matched elements. + * One or more elements to add to the set of matched elements. + * An HTML fragment to add to the set of matched elements. + * An existing jQuery object to add to the set of matched elements. + * @see {@link https://api.jquery.com/add/} + * @since 1.0 + * @since 1.3.2 + */ + add(selector: JQuery.Selector | JQuery.TypeOrArray | JQuery.htmlString | JQuery): this + /** + * Add the previous set of elements on the stack to the current set, optionally filtered by a selector. + * + * @param selector A string containing a selector expression to match the current set of elements against. + * @see {@link https://api.jquery.com/addBack/} + * @since 1.8 + */ + addBack(selector?: JQuery.Selector): this + /** + * Adds the specified class(es) to each element in the set of matched elements. + * + * @param className One or more space-separated classes to be added to the class attribute of each matched element. + * A function returning one or more space-separated class names to be added to the existing class + * nametranslate(s). Receives the index position of the element in the set and the existing class nametranslate(s) as + * arguments. Within the function, this refers to the current element in the set. + * @see {@link https://api.jquery.com/addClass/} + * @since 1.0 + * @since 1.4 + */ + addClass(className: string | ((this: TElement, index: number, currentClassName: string) => string)): this + /** + * Insert content, specified by the parameter, after each element in the set of matched elements. + * + * @param contents One or more additional DOM elements, text nodes, arrays of elements and text nodes, HTML strings, or + * jQuery objects to insert after each element in the set of matched elements. + * @see {@link https://api.jquery.com/after/} + * @since 1.0 + */ + after(...contents: Array | JQuery>): this + /** + * Insert content, specified by the parameter, after each element in the set of matched elements. + * + * @param fn A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert + * after each element in the set of matched elements. Receives the index position of the element in the + * set and the old HTML value of the element as arguments. Within the function, this refers to the + * current element in the set. + * @see {@link https://api.jquery.com/after/} + * @since 1.4 + * @since 1.10 + */ + after(fn: (this: TElement, index: number, html: string) => JQuery.htmlString | JQuery.TypeOrArray | JQuery): this + /** + * Register a handler to be called when Ajax requests complete. This is an AjaxEvent. + * + * @param handler The function to be invoked. + * @see {@link https://api.jquery.com/ajaxComplete/} + * @since 1.0 + */ + ajaxComplete(handler: (this: Document, event: JQuery.Event, jqXHR: JQuery.jqXHR, ajaxOptions: JQuery.AjaxSettings) => void | false): this + /** + * Register a handler to be called when Ajax requests complete with an error. This is an Ajax Event. + * + * @param handler The function to be invoked. + * @see {@link https://api.jquery.com/ajaxError/} + * @since 1.0 + */ + ajaxError(handler: (this: Document, event: JQuery.Event, jqXHR: JQuery.jqXHR, ajaxSettings: JQuery.AjaxSettings, thrownError: string) => void | false): this + /** + * Attach a function to be executed before an Ajax request is sent. This is an Ajax Event. + * + * @param handler The function to be invoked. + * @see {@link https://api.jquery.com/ajaxSend/} + * @since 1.0 + */ + ajaxSend(handler: (this: Document, event: JQuery.Event, jqXHR: JQuery.jqXHR, ajaxOptions: JQuery.AjaxSettings) => void | false): this + /** + * Register a handler to be called when the first Ajax request begins. This is an Ajax Event. + * + * @param handler The function to be invoked. + * @see {@link https://api.jquery.com/ajaxStart/} + * @since 1.0 + */ + ajaxStart(handler: (this: Document) => void | false): this + /** + * Register a handler to be called when all Ajax requests have completed. This is an Ajax Event. + * + * @param handler The function to be invoked. + * @see {@link https://api.jquery.com/ajaxStop/} + * @since 1.0 + */ + ajaxStop(handler: (this: Document) => void | false): this + /** + * Attach a function to be executed whenever an Ajax request completes successfully. This is an Ajax Event. + * + * @param handler The function to be invoked. + * @see {@link https://api.jquery.com/ajaxSuccess/} + * @since 1.0 + */ + ajaxSuccess(handler: (this: Document, event: JQuery.Event, jqXHR: JQuery.jqXHR, ajaxOptions: JQuery.AjaxSettings, data: JQuery.PlainObject) => void | false): this + /** + * Perform a custom animation of a set of CSS properties. + * + * @param properties An object of CSS properties and values that the animation will move toward. + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/animate/} + * @since 1.0 + */ + animate(properties: JQuery.PlainObject, + duration: JQuery.Duration, + easing: string, + complete?: (this: TElement) => void): this + /** + * Perform a custom animation of a set of CSS properties. + * + * @param properties An object of CSS properties and values that the animation will move toward. + * @param duration_easing A string or number determining how long the animation will run. + * A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/animate/} + * @since 1.0 + */ + animate(properties: JQuery.PlainObject, + duration_easing: JQuery.Duration | string, + complete?: (this: TElement) => void): this + /** + * Perform a custom animation of a set of CSS properties. + * + * @param properties An object of CSS properties and values that the animation will move toward. + * @param options A map of additional options to pass to the method. + * @see {@link https://api.jquery.com/animate/} + * @since 1.0 + */ + animate(properties: JQuery.PlainObject, + options: JQuery.EffectsOptions): this + /** + * Perform a custom animation of a set of CSS properties. + * + * @param properties An object of CSS properties and values that the animation will move toward. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/animate/} + * @since 1.0 + */ + animate(properties: JQuery.PlainObject, + complete?: (this: TElement) => void): this + /** + * Insert content, specified by the parameter, to the end of each element in the set of matched elements. + * + * @param contents One or more additional DOM elements, text nodes, arrays of elements and text nodes, HTML strings, or + * jQuery objects to insert at the end of each element in the set of matched elements. + * @see {@link https://api.jquery.com/append/} + * @since 1.0 + */ + append(...contents: Array | JQuery>): this + /** + * Insert content, specified by the parameter, to the end of each element in the set of matched elements. + * + * @param fn A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert at + * the end of each element in the set of matched elements. Receives the index position of the element + * in the set and the old HTML value of the element as arguments. Within the function, this refers to + * the current element in the set. + * @see {@link https://api.jquery.com/append/} + * @since 1.4 + */ + append(fn: (this: TElement, index: number, html: string) => JQuery.htmlString | JQuery.TypeOrArray | JQuery): this + /** + * Insert every element in the set of matched elements to the end of the target. + * + * @param target A selector, element, HTML string, array of elements, or jQuery object; the matched set of elements + * will be inserted at the end of the element(s) specified by this parameter. + * @see {@link https://api.jquery.com/appendTo/} + * @since 1.0 + */ + appendTo(target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery): this + /** + * Set one or more attributes for the set of matched elements. + * + * @param attributeName The nametranslate of the attribute to set. + * @param value A value to set for the attribute. If null, the specified attribute will be removed (as in .removeAttr()). + * A function returning the value to set. this is the current element. Receives the index position of + * the element in the set and the old attribute value as arguments. + * @see {@link https://api.jquery.com/attr/} + * @since 1.0 + * @since 1.1 + */ + attr(attributeName: string, + value: string | number | null | ((this: TElement, index: number, attr: string) => string | number | void | undefined)): this + /** + * Set one or more attributes for the set of matched elements. + * + * @param attributes An object of attribute-value pairs to set. + * @see {@link https://api.jquery.com/attr/} + * @since 1.0 + */ + attr(attributes: JQuery.PlainObject): this + /** + * Get the value of an attribute for the first element in the set of matched elements. + * + * @param attributeName The nametranslate of the attribute to get. + * @see {@link https://api.jquery.com/attr/} + * @since 1.0 + */ + attr(attributeName: string): string | undefined + /** + * Insert content, specified by the parameter, before each element in the set of matched elements. + * + * @param contents One or more additional DOM elements, text nodes, arrays of elements and text nodes, HTML strings, or + * jQuery objects to insert before each element in the set of matched elements. + * @see {@link https://api.jquery.com/before/} + * @since 1.0 + */ + before(...contents: Array | JQuery>): this + /** + * Insert content, specified by the parameter, before each element in the set of matched elements. + * + * @param fn A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert + * before each element in the set of matched elements. Receives the index position of the element in + * the set and the old HTML value of the element as arguments. Within the function, this refers to the + * current element in the set. + * @see {@link https://api.jquery.com/before/} + * @since 1.4 + * @since 1.10 + */ + before(fn: (this: TElement, index: number, html: string) => JQuery.htmlString | JQuery.TypeOrArray | JQuery): this + // [bind() overloads] https://github.com/jquery/api.jquery.com/issues/1048 + /** + * Attach a handler to an event for the elements. + * + * @param eventType A string containing one or more DOM event types, such as "click" or "submit," or custom event names. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/bind/} + * @since 1.0 + * @since 1.4.3 + * @deprecated 3.0 + */ + bind(eventType: string, + eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Attach a handler to an event for the elements. + * + * @param eventType A string containing one or more DOM event types, such as "click" or "submit," or custom event names. + * @param handler A function to execute each time the event is triggered. + * Setting the second argument to false will attach a function that prevents the default action from + * occurring and stops the event from bubbling. + * @see {@link https://api.jquery.com/bind/} + * @since 1.0 + * @since 1.4.3 + * @deprecated 3.0 + */ + bind(eventType: string, + handler: JQuery.EventHandler | JQuery.EventHandlerBase> | false | null | undefined): this + /** + * Attach a handler to an event for the elements. + * + * @param events An object containing one or more DOM event types and functions to execute for them. + * @see {@link https://api.jquery.com/bind/} + * @since 1.4 + * @deprecated 3.0 + */ + bind(events: JQuery.PlainObject | JQuery.EventHandlerBase> | false>): this + /** + * Bind an event handler to the "blur" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/blur/} + * @since 1.4.3 + */ + blur(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "blur" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/blur/} + * @since 1.0 + */ + blur(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Bind an event handler to the "change" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/change/} + * @since 1.4.3 + */ + change(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "change" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/change/} + * @since 1.0 + */ + change(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Get the children of each element in the set of matched elements, optionally filtered by a selector. + * + * @param selector A string containing a selector expression to match elements against. + * @see {@link https://api.jquery.com/children/} + * @since 1.0 + */ + children(selector?: JQuery.Selector): this + /** + * Remove from the queue all items that have not yet been run. + * + * @param queueName A string containing the nametranslate of the queue. Defaults to fx, the standard effects queue. + * @see {@link https://api.jquery.com/clearQueue/} + * @since 1.4 + */ + clearQueue(queueName?: string): this + /** + * Bind an event handler to the "click" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/click/} + * @since 1.4.3 + */ + click(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "click" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/click/} + * @since 1.0 + */ + click(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Create a deep copy of the set of matched elements. + * + * @param withDataAndEvents A Boolean indicating whether event handlers and data should be copied along with the elements. The + * default value is false. *In jQuery 1.5.0 the default value was incorrectly true; it was changed back + * to false in 1.5.1 and up. + * @param deepWithDataAndEvents A Boolean indicating whether event handlers and data for all children of the cloned element should + * be copied. By default its value matches the first argument's value (which defaults to false). + * @see {@link https://api.jquery.com/clone/} + * @since 1.0 + * @since 1.5 + */ + clone(withDataAndEvents?: boolean, deepWithDataAndEvents?: boolean): this + /** + * For each element in the set, get the first element that matches the selector by testing the element + * itself and traversing up through its ancestors in the DOM tree. + * + * @param selector A string containing a selector expression to match elements against. + * @param context A DOM element within which a matching element may be found. + * @see {@link https://api.jquery.com/closest/} + * @since 1.4 + */ + closest(selector: JQuery.Selector, context: Element): this + /** + * For each element in the set, get the first element that matches the selector by testing the element + * itself and traversing up through its ancestors in the DOM tree. + * + * @param selector A string containing a selector expression to match elements against. + * A jQuery object to match elements against. + * An element to match elements against. + * @see {@link https://api.jquery.com/closest/} + * @since 1.3 + * @since 1.6 + */ + closest(selector: JQuery.Selector | Element | JQuery): this + /** + * Get the children of each element in the set of matched elements, including text and comment nodes. + * + * @see {@link https://api.jquery.com/contents/} + * @since 1.2 + */ + contents(): JQuery + /** + * Bind an event handler to the "contextmenu" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/contextmenu/} + * @since 1.4.3 + */ + contextmenu(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "contextmenu" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/contextmenu/} + * @since 1.0 + */ + contextmenu(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Set one or more CSS properties for the set of matched elements. + * + * @param propertyName A CSS property nametranslate. + * @param value A value to set for the property. + * A function returning the value to set. this is the current element. Receives the index position of + * the element in the set and the old value as arguments. + * @see {@link https://api.jquery.com/css/} + * @since 1.0 + * @since 1.4 + */ + css(propertyName: string, + value: string | number | ((this: TElement, index: number, value: string) => string | number | void | undefined)): this + /** + * Set one or more CSS properties for the set of matched elements. + * + * @param properties An object of property-value pairs to set. + * @see {@link https://api.jquery.com/css/} + * @since 1.0 + */ + css(properties: JQuery.PlainObject string | number | void | undefined)>): this + /** + * Get the computed style properties for the first element in the set of matched elements. + * + * @param propertyName A CSS property. + * An array of one or more CSS properties. + * @see {@link https://api.jquery.com/css/} + * @since 1.0 + */ + css(propertyName: string): string + /** + * Get the computed style properties for the first element in the set of matched elements. + * + * @param propertyNames An array of one or more CSS properties. + * @see {@link https://api.jquery.com/css/} + * @since 1.9 + */ + css(propertyNames: string[]): JQuery.PlainObject + /** + * Return the value at the named data store for the first element in the jQuery collection, as set by + * data(nametranslate, value) or by an HTML5 data-* attribute. + * + * @param key Name of the data stored. + * @param undefined + * @see {@link https://api.jquery.com/data/} + * @since 1.2.3 + */ + data(key: string, undefined: undefined): any // tslint:disable-line:unified-signatures + /** + * Store arbitrary data associated with the matched elements. + * + * @param key A string naming the piece of data to set. + * @param value The new data value; this can be any Javascript type except undefined. + * @see {@link https://api.jquery.com/data/} + * @since 1.2.3 + */ + data(key: string, value: any): this + /** + * Store arbitrary data associated with the matched elements. + * + * @param obj An object of key-value pairs of data to update. + * @see {@link https://api.jquery.com/data/} + * @since 1.4.3 + */ + data(obj: JQuery.PlainObject): this + /** + * Return the value at the named data store for the first element in the jQuery collection, as set by + * data(nametranslate, value) or by an HTML5 data-* attribute. + * + * @param key Name of the data stored. + * @see {@link https://api.jquery.com/data/} + * @since 1.2.3 + */ + data(key: string): any + /** + * Return the value at the named data store for the first element in the jQuery collection, as set by + * data(nametranslate, value) or by an HTML5 data-* attribute. + * + * @see {@link https://api.jquery.com/data/} + * @since 1.4 + */ + data(): JQuery.PlainObject + /** + * Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/dblclick/} + * @since 1.4.3 + */ + dblclick(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/dblclick/} + * @since 1.0 + */ + dblclick(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Set a timer to delay execution of subsequent items in the queue. + * + * @param duration An integer indicating the number of milliseconds to delay execution of the next item in the queue. + * @param queueName A string containing the nametranslate of the queue. Defaults to fx, the standard effects queue. + * @see {@link https://api.jquery.com/delay/} + * @since 1.4 + */ + delay(duration: JQuery.Duration, queueName?: string): this + /** + * Attach a handler to one or more events for all elements that match the selector, now or in the + * future, based on a specific set of root elements. + * + * @param selector A selector to filter the elements that trigger the event. + * @param eventType A string containing one or more space-separated JavaScript event types, such as "click" or + * "keydown," or custom event names. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/delegate/} + * @since 1.4.2 + * @deprecated 3.0 + */ + delegate(selector: JQuery.Selector, + eventType: string, + eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Attach a handler to one or more events for all elements that match the selector, now or in the + * future, based on a specific set of root elements. + * + * @param selector A selector to filter the elements that trigger the event. + * @param eventType A string containing one or more space-separated JavaScript event types, such as "click" or + * "keydown," or custom event names. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/delegate/} + * @since 1.4.2 + * @deprecated 3.0 + */ + delegate(selector: JQuery.Selector, + eventType: string, + handler: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Attach a handler to one or more events for all elements that match the selector, now or in the + * future, based on a specific set of root elements. + * + * @param selector A selector to filter the elements that trigger the event. + * @param events A plain object of one or more event types and functions to execute for them. + * @see {@link https://api.jquery.com/delegate/} + * @since 1.4.3 + * @deprecated 3.0 + */ + delegate(selector: JQuery.Selector, + events: JQuery.PlainObject | JQuery.EventHandlerBase> | false>): this + /** + * Execute the next function on the queue for the matched elements. + * + * @param queueName A string containing the nametranslate of the queue. Defaults to fx, the standard effects queue. + * @see {@link https://api.jquery.com/dequeue/} + * @since 1.2 + */ + dequeue(queueName?: string): this + /** + * Remove the set of matched elements from the DOM. + * + * @param selector A selector expression that filters the set of matched elements to be removed. + * @see {@link https://api.jquery.com/detach/} + * @since 1.4 + */ + detach(selector?: JQuery.Selector): this + /** + * Iterate over a jQuery object, executing a function for each matched element. + * + * @param fn A function to execute for each matched element. + * @see {@link https://api.jquery.com/each/} + * @since 1.0 + */ + each(fn: (this: TElement, index: number, element: TElement) => void | false): this + /** + * Remove all child nodes of the set of matched elements from the DOM. + * + * @see {@link https://api.jquery.com/empty/} + * @since 1.0 + */ + empty(): this + /** + * End the most recent filtering operation in the current chain and return the set of matched elements + * to its previous state. + * + * @see {@link https://api.jquery.com/end/} + * @since 1.0 + */ + end(): this + /** + * Reduce the set of matched elements to the one at the specified index. + * + * @param index An integer indicating the 0-based position of the element. + * An integer indicating the position of the element, counting backwards from the last element in the set. + * @see {@link https://api.jquery.com/eq/} + * @since 1.1.2 + * @since 1.4 + */ + eq(index: number): this + /** + * Merge the contents of an object onto the jQuery prototype to provide new jQuery instance methods. + * + * @param obj An object to merge onto the jQuery prototype. + * @see {@link https://api.jquery.com/jQuery.fn.extend/} + * @since 1.0 + */ + extend(obj: object): this + /** + * Display the matched elements by fading them to opaque. + * + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/fadeIn/} + * @since 1.4.3 + */ + fadeIn(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this + /** + * Display the matched elements by fading them to opaque. + * + * @param duration_easing A string or number determining how long the animation will run. + * A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/fadeIn/} + * @since 1.0 + * @since 1.4.3 + */ + fadeIn(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this + /** + * Display the matched elements by fading them to opaque. + * + * @param duration_easing_complete_options A string or number determining how long the animation will run. + * A string indicating which easing function to use for the transition. + * A function to call once the animation is complete, called once per matched element. + * A map of additional options to pass to the method. + * @see {@link https://api.jquery.com/fadeIn/} + * @since 1.0 + * @since 1.4.3 + */ + fadeIn(duration_easing_complete_options?: JQuery.Duration | string | ((this: TElement) => void) | JQuery.EffectsOptions): this + /** + * Hide the matched elements by fading them to transparent. + * + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/fadeOut/} + * @since 1.4.3 + */ + fadeOut(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this + /** + * Hide the matched elements by fading them to transparent. + * + * @param duration_easing A string or number determining how long the animation will run. + * A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/fadeOut/} + * @since 1.0 + * @since 1.4.3 + */ + fadeOut(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this + /** + * Hide the matched elements by fading them to transparent. + * + * @param duration_easing_complete_options A string or number determining how long the animation will run. + * A string indicating which easing function to use for the transition. + * A function to call once the animation is complete, called once per matched element. + * A map of additional options to pass to the method. + * @see {@link https://api.jquery.com/fadeOut/} + * @since 1.0 + * @since 1.4.3 + */ + fadeOut(duration_easing_complete_options?: JQuery.Duration | string | ((this: TElement) => void) | JQuery.EffectsOptions): this + /** + * Adjust the opacity of the matched elements. + * + * @param duration A string or number determining how long the animation will run. + * @param opacity A number between 0 and 1 denoting the target opacity. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/fadeTo/} + * @since 1.4.3 + */ + fadeTo(duration: JQuery.Duration, opacity: number, easing: string, complete?: (this: TElement) => void): this + /** + * Adjust the opacity of the matched elements. + * + * @param duration A string or number determining how long the animation will run. + * @param opacity A number between 0 and 1 denoting the target opacity. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/fadeTo/} + * @since 1.0 + */ + fadeTo(duration: JQuery.Duration, opacity: number, complete?: (this: TElement) => void): this + /** + * Display or hide the matched elements by animating their opacity. + * + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/fadeToggle/} + * @since 1.4.4 + */ + fadeToggle(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this + /** + * Display or hide the matched elements by animating their opacity. + * + * @param duration_easing A string or number determining how long the animation will run. + * A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/fadeToggle/} + * @since 1.0 + * @since 1.4.3 + */ + fadeToggle(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this + /** + * Display or hide the matched elements by animating their opacity. + * + * @param duration_easing_complete_options A string or number determining how long the animation will run. + * A string indicating which easing function to use for the transition. + * A function to call once the animation is complete, called once per matched element. + * A map of additional options to pass to the method. + * @see {@link https://api.jquery.com/fadeToggle/} + * @since 1.0 + * @since 1.4.3 + */ + fadeToggle(duration_easing_complete_options?: JQuery.Duration | string | ((this: TElement) => void) | JQuery.EffectsOptions): this + /** + * Reduce the set of matched elements to those that match the selector or pass the function's test. + * + * @param selector A string containing a selector expression to match the current set of elements against. + * One or more DOM elements to match the current set of elements against. + * An existing jQuery object to match the current set of elements against. + * A function used as a test for each element in the set. this is the current DOM element. + * @see {@link https://api.jquery.com/filter/} + * @since 1.0 + * @since 1.4 + */ + filter(selector: JQuery.Selector | JQuery.TypeOrArray | JQuery | ((this: TElement, index: number, element: TElement) => boolean)): this + /** + * Get the descendants of each element in the current set of matched elements, filtered by a selector, + * jQuery object, or element. + * + * @param selector A string containing a selector expression to match elements against. + * An element or a jQuery object to match elements against. + * @see {@link https://api.jquery.com/find/} + * @since 1.0 + * @since 1.6 + */ + find(selector: JQuery.Selector | Element | JQuery): this + /** + * Stop the currently-running animation, remove all queued animations, and complete all animations for + * the matched elements. + * + * @param queue The nametranslate of the queue in which to stop animations. + * @see {@link https://api.jquery.com/finish/} + * @since 1.9 + */ + finish(queue?: string): this + /** + * Reduce the set of matched elements to the first in the set. + * + * @see {@link https://api.jquery.com/first/} + * @since 1.4 + */ + first(): this + /** + * Bind an event handler to the "focus" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/focus/} + * @since 1.4.3 + */ + focus(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "focus" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/focus/} + * @since 1.0 + */ + focus(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Bind an event handler to the "focusin" event. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/focusin/} + * @since 1.4.3 + */ + focusin(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "focusin" event. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/focusin/} + * @since 1.4 + */ + focusin(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Bind an event handler to the "focusout" JavaScript event. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/focusout/} + * @since 1.4.3 + */ + focusout(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "focusout" JavaScript event. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/focusout/} + * @since 1.4 + */ + focusout(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Retrieve one of the elements matched by the jQuery object. + * + * @param index A zero-based integer indicating which element to retrieve. + * @see {@link https://api.jquery.com/get/} + * @since 1.0 + */ + get(index: number): TElement + /** + * Retrieve the elements matched by the jQuery object. + * + * @see {@link https://api.jquery.com/get/} + * @since 1.0 + */ + get(): TElement[] + /** + * Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element. + * + * @param selector A string containing a selector expression to match elements against. + * A DOM element to match elements against. + * @see {@link https://api.jquery.com/has/} + * @since 1.4 + */ + has(selector: string | Element): this + /** + * Determine whether any of the matched elements are assigned the given class. + * + * @param className The class nametranslate to search for. + * @see {@link https://api.jquery.com/hasClass/} + * @since 1.2 + */ + hasClass(className: string): boolean + /** + * Set the CSS height of every matched element. + * + * @param value An integer representing the number of pixels, or an integer with an optional unit of measure + * appended (as a string). + * A function returning the height to set. Receives the index position of the element in the set and + * the old height as arguments. Within the function, this refers to the current element in the set. + * @see {@link https://api.jquery.com/height/} + * @since 1.0 + * @since 1.4.1 + */ + height(value: string | number | ((this: TElement, index: number, height: number) => string | number)): this + /** + * Get the current computed height for the first element in the set of matched elements. + * + * @see {@link https://api.jquery.com/height/} + * @since 1.0 + */ + height(): number | undefined + /** + * Hide the matched elements. + * + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/hide/} + * @since 1.4.3 + */ + hide(duration: JQuery.Duration, easing: string, complete: (this: TElement) => void): this + /** + * Hide the matched elements. + * + * @param duration A string or number determining how long the animation will run. + * @param easing_complete A string indicating which easing function to use for the transition. + * A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/hide/} + * @since 1.0 + * @since 1.4.3 + */ + hide(duration: JQuery.Duration, easing_complete: string | ((this: TElement) => void)): this + /** + * Hide the matched elements. + * + * @param duration_complete_options A string or number determining how long the animation will run. + * A function to call once the animation is complete, called once per matched element. + * A map of additional options to pass to the method. + * @see {@link https://api.jquery.com/hide/} + * @since 1.0 + */ + hide(duration_complete_options?: JQuery.Duration | ((this: TElement) => void) | JQuery.EffectsOptions): this + /** + * Bind one or two handlers to the matched elements, to be executed when the mouse pointer enters and + * leaves the elements. + * + * @param handlerInOut A function to execute when the mouse pointer enters or leaves the element. + * @param handlerOut A function to execute when the mouse pointer leaves the element. + * @see {@link https://api.jquery.com/hover/} + * @since 1.0 + * @since 1.4 + */ + hover(handlerInOut: JQuery.EventHandler | JQuery.EventHandlerBase> | false, + handlerOut?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Set the HTML contents of each element in the set of matched elements. + * + * @param htmlString A string of HTML to set as the content of each matched element. + * A function returning the HTML content to set. Receives the index position of the element in the set + * and the old HTML value as arguments. jQuery empties the element before calling the function; use the + * oldhtml argument to reference the previous content. Within the function, this refers to the current element in the set. + * @see {@link https://api.jquery.com/html/} + * @since 1.0 + * @since 1.4 + */ + html(htmlString: JQuery.htmlString | ((this: TElement, index: number, oldhtml: JQuery.htmlString) => JQuery.htmlString)): this + /** + * Get the HTML contents of the first element in the set of matched elements. + * + * @see {@link https://api.jquery.com/html/} + * @since 1.0 + */ + html(): string + /** + * Search for a given element from among the matched elements. + * + * @param element The DOM element or first element within the jQuery object to look for. + * A selector representing a jQuery collection in which to look for an element. + * @see {@link https://api.jquery.com/index/} + * @since 1.0 + * @since 1.4 + */ + index(element?: JQuery.Selector | Element | JQuery): number + /** + * Set the CSS inner height of each element in the set of matched elements. + * + * @param value A number representing the number of pixels, or a number along with an optional unit of measure + * appended (as a string). + * A function returning the inner height (including padding but not border) to set. Receives the index + * position of the element in the set and the old inner height as arguments. Within the function, this + * refers to the current element in the set. + * @see {@link https://api.jquery.com/innerHeight/} + * @since 1.8.0 + */ + innerHeight(value: string | number | ((this: TElement, index: number, height: number) => string | number)): this + /** + * Get the current computed height for the first element in the set of matched elements, including + * padding but not border. + * + * @see {@link https://api.jquery.com/innerHeight/} + * @since 1.2.6 + */ + innerHeight(): number | undefined + /** + * Set the CSS inner width of each element in the set of matched elements. + * + * @param value A number representing the number of pixels, or a number along with an optional unit of measure + * appended (as a string). + * A function returning the inner width (including padding but not border) to set. Receives the index + * position of the element in the set and the old inner width as arguments. Within the function, this + * refers to the current element in the set. + * @see {@link https://api.jquery.com/innerWidth/} + * @since 1.8.0 + */ + innerWidth(value: string | number | ((this: TElement, index: number, width: number) => string | number)): this + /** + * Get the current computed inner width for the first element in the set of matched elements, including + * padding but not border. + * + * @see {@link https://api.jquery.com/innerWidth/} + * @since 1.2.6 + */ + innerWidth(): number | undefined + /** + * Insert every element in the set of matched elements after the target. + * + * @param target A selector, element, array of elements, HTML string, or jQuery object; the matched set of elements + * will be inserted after the element(s) specified by this parameter. + * @see {@link https://api.jquery.com/insertAfter/} + * @since 1.0 + */ + insertAfter(target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery): this + /** + * Insert every element in the set of matched elements before the target. + * + * @param target A selector, element, array of elements, HTML string, or jQuery object; the matched set of elements + * will be inserted before the element(s) specified by this parameter. + * @see {@link https://api.jquery.com/insertBefore/} + * @since 1.0 + */ + insertBefore(target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery): this + /** + * Check the current matched set of elements against a selector, element, or jQuery object and return + * true if at least one of these elements matches the given arguments. + * + * @param selector A string containing a selector expression to match elements against. + * A function used as a test for every element in the set. It accepts two arguments, index, which is + * the element's index in the jQuery collection, and element, which is the DOM element. Within the + * function, this refers to the current DOM element. + * An existing jQuery object to match the current set of elements against. + * One or more elements to match the current set of elements against. + * @see {@link https://api.jquery.com/is/} + * @since 1.0 + * @since 1.6 + */ + is(selector: JQuery.Selector | JQuery.TypeOrArray | JQuery | ((this: TElement, index: number, element: TElement) => boolean)): boolean + /** + * Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/keydown/} + * @since 1.4.3 + */ + keydown(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/keydown/} + * @since 1.0 + */ + keydown(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/keypress/} + * @since 1.4.3 + */ + keypress(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/keypress/} + * @since 1.0 + */ + keypress(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/keyup/} + * @since 1.4.3 + */ + keyup(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/keyup/} + * @since 1.0 + */ + keyup(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Reduce the set of matched elements to the final one in the set. + * + * @see {@link https://api.jquery.com/last/} + * @since 1.4 + */ + last(): this + /** + * Load data from the server and place the returned HTML into the matched element. + * + * @param url A string containing the URL to which the request is sent. + * @param data A plain object or string that is sent to the server with the request. + * @param complete A callback function that is executed when the request completes. + * @see {@link https://api.jquery.com/load/} + * @since 1.0 + */ + load(url: string, + data: string | JQuery.PlainObject, + complete: (this: TElement, responseText: string, textStatus: JQuery.Ajax.TextStatus, jqXHR: JQuery.jqXHR) => void): this + /** + * Load data from the server and place the returned HTML into the matched element. + * + * @param url A string containing the URL to which the request is sent. + * @param complete_data A callback function that is executed when the request completes. + * A plain object or string that is sent to the server with the request. + * @see {@link https://api.jquery.com/load/} + * @since 1.0 + */ + load(url: string, + complete_data?: ((this: TElement, responseText: string, textStatus: JQuery.Ajax.TextStatus, jqXHR: JQuery.jqXHR) => void) | string | JQuery.PlainObject): this + /** + * Pass each element in the current matched set through a function, producing a new jQuery object + * containing the return values. + * + * @param callback A function object that will be invoked for each element in the current set. + * @see {@link https://api.jquery.com/map/} + * @since 1.2 + */ + map(callback: (this: TElement, index: number, domElement: TElement) => any | any[] | null | undefined): this + /** + * Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/mousedown/} + * @since 1.4.3 + */ + mousedown(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/mousedown/} + * @since 1.0 + */ + mousedown(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/mouseenter/} + * @since 1.4.3 + */ + mouseenter(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/mouseenter/} + * @since 1.0 + */ + mouseenter(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/mouseleave/} + * @since 1.4.3 + */ + mouseleave(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/mouseleave/} + * @since 1.0 + */ + mouseleave(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/mousemove/} + * @since 1.4.3 + */ + mousemove(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/mousemove/} + * @since 1.0 + */ + mousemove(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/mouseout/} + * @since 1.4.3 + */ + mouseout(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/mouseout/} + * @since 1.0 + */ + mouseout(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/mouseover/} + * @since 1.4.3 + */ + mouseover(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/mouseover/} + * @since 1.0 + */ + mouseover(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/mouseup/} + * @since 1.4.3 + */ + mouseup(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/mouseup/} + * @since 1.0 + */ + mouseup(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Get the immediately following sibling of each element in the set of matched elements. If a selector + * is provided, it retrieves the next sibling only if it matches that selector. + * + * @param selector A string containing a selector expression to match elements against. + * @see {@link https://api.jquery.com/next/} + * @since 1.0 + */ + next(selector?: JQuery.Selector): this + /** + * Get all following siblings of each element in the set of matched elements, optionally filtered by a selector. + * + * @param selector A string containing a selector expression to match elements against. + * @see {@link https://api.jquery.com/nextAll/} + * @since 1.2 + */ + nextAll(selector?: string): this + /** + * Get all following siblings of each element up to but not including the element matched by the + * selector, DOM node, or jQuery object passed. + * + * @param selector A string containing a selector expression to indicate where to stop matching following sibling elements. + * A DOM node or jQuery object indicating where to stop matching following sibling elements. + * @param filter A string containing a selector expression to match elements against. + * @see {@link https://api.jquery.com/nextUntil/} + * @since 1.4 + * @since 1.6 + */ + nextUntil(selector?: JQuery.Selector | Element | JQuery, filter?: JQuery.Selector): this + /** + * Remove elements from the set of matched elements. + * + * @param selector A string containing a selector expression, a DOM element, or an array of elements to match against the set. + * A function used as a test for each element in the set. It accepts two arguments, index, which is the + * element's index in the jQuery collection, and element, which is the DOM element. Within the + * function, this refers to the current DOM element. + * An existing jQuery object to match the current set of elements against. + * @see {@link https://api.jquery.com/not/} + * @since 1.0 + * @since 1.4 + */ + not(selector: JQuery.Selector | JQuery.TypeOrArray | JQuery | ((this: TElement, index: number, element: TElement) => boolean)): this + /** + * Remove an event handler. + * + * @param events One or more space-separated event types and optional namespaces, or just namespaces, such as + * "click", "keydown.myPlugin", or ".myPlugin". + * @param selector A selector which should match the one originally passed to .on() when attaching event handlers. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/off/} + * @since 1.7 + */ + off(events: string, selector: JQuery.Selector, handler: JQuery.EventHandlerBase> | false): this + /** + * Remove an event handler. + * + * @param events One or more space-separated event types and optional namespaces, or just namespaces, such as + * "click", "keydown.myPlugin", or ".myPlugin". + * @param selector_handler A selector which should match the one originally passed to .on() when attaching event handlers. + * A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/off/} + * @since 1.7 + */ + off(events: string, selector_handler?: JQuery.Selector | JQuery.EventHandlerBase> | false): this + /** + * Remove an event handler. + * + * @param events An object where the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent handler functions previously attached for the event(s). + * @param selector A selector which should match the one originally passed to .on() when attaching event handlers. + * @see {@link https://api.jquery.com/off/} + * @since 1.7 + */ + off(events: JQuery.PlainObject> | false>, selector?: JQuery.Selector): this + /** + * Remove an event handler. + * + * @param event A jQuery.Event object. + * @see {@link https://api.jquery.com/off/} + * @since 1.7 + */ + off(event?: JQuery.Event): this + /** + * Set the current coordinates of every element in the set of matched elements, relative to the document. + * + * @param coordinates An object containing the properties top and left, which are numbers indicating the new top and left + * coordinates for the elements. + * A function to return the coordinates to set. Receives the index of the element in the collection as + * the first argument and the current coordinates as the second argument. The function should return an + * object with the new top and left properties. + * @see {@link https://api.jquery.com/offset/} + * @since 1.4 + */ + offset(coordinates: JQuery.Coordinates | ((this: TElement, index: number, coords: JQuery.Coordinates) => JQuery.Coordinates)): this + /** + * Get the current coordinates of the first element in the set of matched elements, relative to the document. + * + * @see {@link https://api.jquery.com/offset/} + * @since 1.2 + */ + offset(): JQuery.Coordinates | undefined + /** + * Get the closest ancestor element that is positioned. + * + * @see {@link https://api.jquery.com/offsetParent/} + * @since 1.2.6 + */ + offsetParent(): this + /** + * Attach an event handler function for one or more events to the selected elements. + * + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the + * selector is null or omitted, the event is always triggered when it reaches the selected element. + * @param data Data to be passed to the handler in event.data when an event is triggered. + * @param handler A function to execute when the event is triggered. + * @see {@link https://api.jquery.com/on/} + * @since 1.7 + */ + on(events: string, + selector: JQuery.Selector | null, + data: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Attach an event handler function for one or more events to the selected elements. + * + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the + * selector is null or omitted, the event is always triggered when it reaches the selected element. + * @param handler A function to execute when the event is triggered. The value false is also allowed as a shorthand + * for a function that simply does return false. + * @see {@link https://api.jquery.com/on/} + * @since 1.7 + */ + on(events: string, + selector: JQuery.Selector, + handler: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Attach an event handler function for one or more events to the selected elements. + * + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param data Data to be passed to the handler in event.data when an event is triggered. + * @param handler A function to execute when the event is triggered. + * @see {@link https://api.jquery.com/on/} + * @since 1.7 + */ + on(events: string, + data: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Attach an event handler function for one or more events to the selected elements. + * + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param handler A function to execute when the event is triggered. The value false is also allowed as a shorthand + * for a function that simply does return false. + * @see {@link https://api.jquery.com/on/} + * @since 1.7 + */ + on(events: string, + handler: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Attach an event handler function for one or more events to the selected elements. + * + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If + * the selector is null or omitted, the handler is always called when it reaches the selected element. + * @param data Data to be passed to the handler in event.data when an event occurs. + * @see {@link https://api.jquery.com/on/} + * @since 1.7 + */ + on(events: JQuery.PlainObject | JQuery.EventHandlerBase> | false>, + selector: JQuery.Selector | null, + data: TData): this + /** + * Attach an event handler function for one or more events to the selected elements. + * + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If + * the selector is null or omitted, the handler is always called when it reaches the selected element. + * @see {@link https://api.jquery.com/on/} + * @since 1.7 + */ + on(events: JQuery.PlainObject | JQuery.EventHandlerBase> | false>, + selector: JQuery.Selector): this // tslint:disable-line:unified-signatures + /** + * Attach an event handler function for one or more events to the selected elements. + * + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @param data Data to be passed to the handler in event.data when an event occurs. + * @see {@link https://api.jquery.com/on/} + * @since 1.7 + */ + on(events: JQuery.PlainObject | JQuery.EventHandlerBase> | false>, + data: TData): this + /** + * Attach an event handler function for one or more events to the selected elements. + * + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @see {@link https://api.jquery.com/on/} + * @since 1.7 + */ + on(events: JQuery.PlainObject | JQuery.EventHandlerBase> | false>): this + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the + * selector is null or omitted, the event is always triggered when it reaches the selected element. + * @param data Data to be passed to the handler in event.data when an event is triggered. + * @param handler A function to execute when the event is triggered. + * @see {@link https://api.jquery.com/one/} + * @since 1.7 + */ + one(events: string, + selector: JQuery.Selector | null, + data: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the + * selector is null or omitted, the event is always triggered when it reaches the selected element. + * @param handler A function to execute when the event is triggered. The value false is also allowed as a shorthand + * for a function that simply does return false. + * @see {@link https://api.jquery.com/one/} + * @since 1.7 + */ + one(events: string, + selector: JQuery.Selector, + handler: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param data Data to be passed to the handler in event.data when an event is triggered. + * @param handler A function to execute when the event is triggered. + * @see {@link https://api.jquery.com/one/} + * @since 1.7 + */ + one(events: string, + data: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param handler A function to execute when the event is triggered. The value false is also allowed as a shorthand + * for a function that simply does return false. + * @see {@link https://api.jquery.com/one/} + * @since 1.7 + */ + one(events: string, + handler: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If + * the selector is null or omitted, the handler is always called when it reaches the selected element. + * @param data Data to be passed to the handler in event.data when an event occurs. + * @see {@link https://api.jquery.com/one/} + * @since 1.7 + */ + one(events: JQuery.PlainObject | JQuery.EventHandlerBase> | false>, + selector: JQuery.Selector | null, + data: TData): this + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If + * the selector is null or omitted, the handler is always called when it reaches the selected element. + * @see {@link https://api.jquery.com/one/} + * @since 1.7 + */ + one(events: JQuery.PlainObject | JQuery.EventHandlerBase> | false>, + selector: JQuery.Selector): this // tslint:disable-line:unified-signatures + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @param data Data to be passed to the handler in event.data when an event occurs. + * @see {@link https://api.jquery.com/one/} + * @since 1.7 + */ + one(events: JQuery.PlainObject | JQuery.EventHandlerBase> | false>, + data: TData): this + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @see {@link https://api.jquery.com/one/} + * @since 1.7 + */ + one(events: JQuery.PlainObject | JQuery.EventHandlerBase> | false>): this + /** + * Set the CSS outer height of each element in the set of matched elements. + * + * @param value A number representing the number of pixels, or a number along with an optional unit of measure + * appended (as a string). + * @see {@link https://api.jquery.com/outerHeight/} + * @since 1.8.0 + */ + outerHeight(value: string | number | ((this: TElement, index: number, height: number) => string | number)): this + /** + * Get the current computed outer height (including padding, border, and optionally margin) for the + * first element in the set of matched elements. + * + * @param includeMargin A Boolean indicating whether to include the element's margin in the calculation. + * @see {@link https://api.jquery.com/outerHeight/} + * @since 1.2.6 + */ + outerHeight(includeMargin?: boolean): number | undefined + /** + * Set the CSS outer width of each element in the set of matched elements. + * + * @param value A number representing the number of pixels, or a number along with an optional unit of measure + * appended (as a string). + * A function returning the outer width to set. Receives the index position of the element in the set + * and the old outer width as arguments. Within the function, this refers to the current element in the set. + * @see {@link https://api.jquery.com/outerWidth/} + * @since 1.8.0 + */ + outerWidth(value: string | number | ((this: TElement, index: number, width: number) => string | number)): this + /** + * Get the current computed outer width (including padding, border, and optionally margin) for the + * first element in the set of matched elements. + * + * @param includeMargin A Boolean indicating whether to include the element's margin in the calculation. + * @see {@link https://api.jquery.com/outerWidth/} + * @since 1.2.6 + */ + outerWidth(includeMargin?: boolean): number | undefined + /** + * Get the parent of each element in the current set of matched elements, optionally filtered by a selector. + * + * @param selector A string containing a selector expression to match elements against. + * @see {@link https://api.jquery.com/parent/} + * @since 1.0 + */ + parent(selector?: JQuery.Selector): this + /** + * Get the ancestors of each element in the current set of matched elements, optionally filtered by a selector. + * + * @param selector A string containing a selector expression to match elements against. + * @see {@link https://api.jquery.com/parents/} + * @since 1.0 + */ + parents(selector?: JQuery.Selector): this + /** + * Get the ancestors of each element in the current set of matched elements, up to but not including + * the element matched by the selector, DOM node, or jQuery object. + * + * @param selector A string containing a selector expression to indicate where to stop matching ancestor elements. + * A DOM node or jQuery object indicating where to stop matching ancestor elements. + * @param filter A string containing a selector expression to match elements against. + * @see {@link https://api.jquery.com/parentsUntil/} + * @since 1.4 + * @since 1.6 + */ + parentsUntil(selector?: JQuery.Selector | Element | JQuery, filter?: JQuery.Selector): this + /** + * Get the current coordinates of the first element in the set of matched elements, relative to the offset parent. + * + * @see {@link https://api.jquery.com/position/} + * @since 1.2 + */ + position(): JQuery.Coordinates + /** + * Insert content, specified by the parameter, to the beginning of each element in the set of matched elements. + * + * @param contents One or more additional DOM elements, text nodes, arrays of elements and text nodes, HTML strings, or + * jQuery objects to insert at the beginning of each element in the set of matched elements. + * @see {@link https://api.jquery.com/prepend/} + * @since 1.0 + */ + prepend(...contents: Array | JQuery>): this + /** + * Insert content, specified by the parameter, to the beginning of each element in the set of matched elements. + * + * @param fn A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert at + * the beginning of each element in the set of matched elements. Receives the index position of the + * element in the set and the old HTML value of the element as arguments. Within the function, this + * refers to the current element in the set. + * @see {@link https://api.jquery.com/prepend/} + * @since 1.4 + */ + prepend(fn: (this: TElement, index: number, html: string) => JQuery.htmlString | JQuery.TypeOrArray | JQuery): this + /** + * Insert every element in the set of matched elements to the beginning of the target. + * + * @param target A selector, element, HTML string, array of elements, or jQuery object; the matched set of elements + * will be inserted at the beginning of the element(s) specified by this parameter. + * @see {@link https://api.jquery.com/prependTo/} + * @since 1.0 + */ + prependTo(target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery): this + /** + * Get the immediately preceding sibling of each element in the set of matched elements. If a selector + * is provided, it retrieves the previous sibling only if it matches that selector. + * + * @param selector A string containing a selector expression to match elements against. + * @see {@link https://api.jquery.com/prev/} + * @since 1.0 + */ + prev(selector?: JQuery.Selector): this + /** + * Get all preceding siblings of each element in the set of matched elements, optionally filtered by a selector. + * + * @param selector A string containing a selector expression to match elements against. + * @see {@link https://api.jquery.com/prevAll/} + * @since 1.2 + */ + prevAll(selector?: JQuery.Selector): this + /** + * Get all preceding siblings of each element up to but not including the element matched by the + * selector, DOM node, or jQuery object. + * + * @param selector A string containing a selector expression to indicate where to stop matching preceding sibling elements. + * A DOM node or jQuery object indicating where to stop matching preceding sibling elements. + * @param filter A string containing a selector expression to match elements against. + * @see {@link https://api.jquery.com/prevUntil/} + * @since 1.4 + * @since 1.6 + */ + prevUntil(selector?: JQuery.Selector | Element | JQuery, filter?: JQuery.Selector): this + /** + * Return a Promise object to observe when all actions of a certain type bound to the collection, + * queued or not, have finished. + * + * @param type The type of queue that needs to be observed. + * @param target Object onto which the promise methods have to be attached + * @see {@link https://api.jquery.com/promise/} + * @since 1.6 + */ + promise(type: string, target: T): T & JQuery.Promise + /** + * Return a Promise object to observe when all actions of a certain type bound to the collection, + * queued or not, have finished. + * + * @param target Object onto which the promise methods have to be attached + * @see {@link https://api.jquery.com/promise/} + * @since 1.6 + */ + promise(target: T): T & JQuery.Promise + /** + * Return a Promise object to observe when all actions of a certain type bound to the collection, + * queued or not, have finished. + * + * @param type The type of queue that needs to be observed. + * @see {@link https://api.jquery.com/promise/} + * @since 1.6 + */ + promise(type?: string): JQuery.Promise + /** + * Set one or more properties for the set of matched elements. + * + * @param propertyName The nametranslate of the property to set. + * @param value A function returning the value to set. Receives the index position of the element in the set and the + * old property value as arguments. Within the function, the keyword this refers to the current element. + * @see {@link https://api.jquery.com/prop/} + * @since 1.6 + */ + prop(propertyName: string, value: (this: TElement, index: number, oldPropertyValue: any) => any): this + /** + * Set one or more properties for the set of matched elements. + * + * @param propertyName The nametranslate of the property to set. + * @param value A value to set for the property. + * @see {@link https://api.jquery.com/prop/} + * @since 1.6 + */ + prop(propertyName: string, value: any): this // tslint:disable-line:unified-signatures + /** + * Set one or more properties for the set of matched elements. + * + * @param properties An object of property-value pairs to set. + * @see {@link https://api.jquery.com/prop/} + * @since 1.6 + */ + prop(properties: JQuery.PlainObject): this + /** + * Get the value of a property for the first element in the set of matched elements. + * + * @param propertyName The nametranslate of the property to get. + * @see {@link https://api.jquery.com/prop/} + * @since 1.6 + */ + prop(propertyName: string): any | undefined + /** + * Add a collection of DOM elements onto the jQuery stack. + * + * @param elements An array of elements to push onto the stack and make into a new jQuery object. + * @param name The nametranslate of a jQuery method that generated the array of elements. + * @param args The arguments that were passed in to the jQuery method (for serialization). + * @see {@link https://api.jquery.com/pushStack/} + * @since 1.3 + */ + pushStack(elements: ArrayLike, name: string, args: any[]): this + /** + * Add a collection of DOM elements onto the jQuery stack. + * + * @param elements An array of elements to push onto the stack and make into a new jQuery object. + * @see {@link https://api.jquery.com/pushStack/} + * @since 1.0 + */ + pushStack(elements: ArrayLike): this + /** + * Manipulate the queue of functions to be executed, once for each matched element. + * + * @param queueName A string containing the nametranslate of the queue. Defaults to fx, the standard effects queue. + * @param newQueue The new function to add to the queue, with a function to call that will dequeue the next item. + * An array of functions to replace the current queue contents. + * @see {@link https://api.jquery.com/queue/} + * @since 1.2 + */ + queue(queueName: string, newQueue: JQuery.TypeOrArray>): this + /** + * Manipulate the queue of functions to be executed, once for each matched element. + * + * @param newQueue The new function to add to the queue, with a function to call that will dequeue the next item. + * An array of functions to replace the current queue contents. + * @see {@link https://api.jquery.com/queue/} + * @since 1.2 + */ + queue(newQueue: JQuery.TypeOrArray>): this + /** + * Show the queue of functions to be executed on the matched elements. + * + * @param queueName A string containing the nametranslate of the queue. Defaults to fx, the standard effects queue. + * @see {@link https://api.jquery.com/queue/} + * @since 1.2 + */ + queue(queueName?: string): JQuery.Queue + /** + * Specify a function to execute when the DOM is fully loaded. + * + * @param handler A function to execute after the DOM is ready. + * @see {@link https://api.jquery.com/ready/} + * @since 1.0 + * @deprecated 3.0 + */ + ready(handler: ($: JQueryStatic) => void): this + /** + * Remove the set of matched elements from the DOM. + * + * @param selector A selector expression that filters the set of matched elements to be removed. + * @see {@link https://api.jquery.com/remove/} + * @since 1.0 + */ + remove(selector?: string): this + /** + * Remove an attribute from each element in the set of matched elements. + * + * @param attributeName An attribute to remove; as of version 1.7, it can be a space-separated list of attributes. + * @see {@link https://api.jquery.com/removeAttr/} + * @since 1.0 + */ + removeAttr(attributeName: string): this + /** + * Remove a single class, multiple classes, or all classes from each element in the set of matched elements. + * + * @param className One or more space-separated classes to be removed from the class attribute of each matched element. + * A function returning one or more space-separated class names to be removed. Receives the index + * position of the element in the set and the old class value as arguments. + * @see {@link https://api.jquery.com/removeClass/} + * @since 1.0 + * @since 1.4 + */ + removeClass(className?: string | ((this: TElement, index: number, className: string) => string)): this + /** + * Remove a previously-stored piece of data. + * + * @param name A string naming the piece of data to delete. + * An array or space-separated string naming the pieces of data to delete. + * @see {@link https://api.jquery.com/removeData/} + * @since 1.2.3 + * @since 1.7 + */ + removeData(name?: JQuery.TypeOrArray): this + /** + * Remove a property for the set of matched elements. + * + * @param propertyName The nametranslate of the property to remove. + * @see {@link https://api.jquery.com/removeProp/} + * @since 1.6 + */ + removeProp(propertyName: string): this + /** + * Replace each target element with the set of matched elements. + * + * @param target A selector string, jQuery object, DOM element, or array of elements indicating which element(s) to replace. + * @see {@link https://api.jquery.com/replaceAll/} + * @since 1.2 + */ + replaceAll(target: JQuery.Selector | JQuery | JQuery.TypeOrArray): this + /** + * Replace each element in the set of matched elements with the provided new content and return the set + * of elements that was removed. + * + * @param newContent The content to insert. May be an HTML string, DOM element, array of DOM elements, or jQuery object. + * A function that returns content with which to replace the set of matched elements. + * @see {@link https://api.jquery.com/replaceWith/} + * @since 1.2 + * @since 1.4 + */ + replaceWith(newContent: JQuery.htmlString | JQuery | JQuery.TypeOrArray | ((this: TElement) => any)): this + /** + * Bind an event handler to the "resize" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/resize/} + * @since 1.4.3 + */ + resize(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "resize" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/resize/} + * @since 1.0 + */ + resize(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/scroll/} + * @since 1.4.3 + */ + scroll(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/scroll/} + * @since 1.0 + */ + scroll(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Set the current horizontal position of the scroll bar for each of the set of matched elements. + * + * @param value An integer indicating the new position to set the scroll bar to. + * @see {@link https://api.jquery.com/scrollLeft/} + * @since 1.2.6 + */ + scrollLeft(value: number): this + /** + * Get the current horizontal position of the scroll bar for the first element in the set of matched elements. + * + * @see {@link https://api.jquery.com/scrollLeft/} + * @since 1.2.6 + */ + scrollLeft(): number | undefined + /** + * Set the current vertical position of the scroll bar for each of the set of matched elements. + * + * @param value A number indicating the new position to set the scroll bar to. + * @see {@link https://api.jquery.com/scrollTop/} + * @since 1.2.6 + */ + scrollTop(value: number): this + /** + * Get the current vertical position of the scroll bar for the first element in the set of matched + * elements or set the vertical position of the scroll bar for every matched element. + * + * @see {@link https://api.jquery.com/scrollTop/} + * @since 1.2.6 + */ + scrollTop(): number | undefined + /** + * Bind an event handler to the "select" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/select/} + * @since 1.4.3 + */ + select(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "select" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/select/} + * @since 1.0 + */ + select(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Encode a set of form elements as a string for submission. + * + * @see {@link https://api.jquery.com/serialize/} + * @since 1.0 + */ + serialize(): string + /** + * Encode a set of form elements as an array of names and values. + * + * @see {@link https://api.jquery.com/serializeArray/} + * @since 1.2 + */ + serializeArray(): JQuery.NameValuePair[] + /** + * Display the matched elements. + * + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/show/} + * @since 1.4.3 + */ + show(duration: JQuery.Duration, easing: string, complete: (this: TElement) => void): this + /** + * Display the matched elements. + * + * @param duration A string or number determining how long the animation will run. + * @param easing_complete A string indicating which easing function to use for the transition. + * A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/show/} + * @since 1.0 + * @since 1.4.3 + */ + show(duration: JQuery.Duration, easing_complete: string | ((this: TElement) => void)): this + /** + * Display the matched elements. + * + * @param duration_complete_options A string or number determining how long the animation will run. + * A function to call once the animation is complete, called once per matched element. + * A map of additional options to pass to the method. + * @see {@link https://api.jquery.com/show/} + * @since 1.0 + */ + show(duration_complete_options?: JQuery.Duration | ((this: TElement) => void) | JQuery.EffectsOptions): this + /** + * Get the siblings of each element in the set of matched elements, optionally filtered by a selector. + * + * @param selector A string containing a selector expression to match elements against. + * @see {@link https://api.jquery.com/siblings/} + * @since 1.0 + */ + siblings(selector?: JQuery.Selector): this + /** + * Reduce the set of matched elements to a subset specified by a range of indices. + * + * @param start An integer indicating the 0-based position at which the elements begin to be selected. If negative, + * it indicates an offset from the end of the set. + * @param end An integer indicating the 0-based position at which the elements stop being selected. If negative, + * it indicates an offset from the end of the set. If omitted, the range continues until the end of the set. + * @see {@link https://api.jquery.com/slice/} + * @since 1.1.4 + */ + slice(start: number, end?: number): this + /** + * Display the matched elements with a sliding motion. + * + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/slideDown/} + * @since 1.4.3 + */ + slideDown(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this + /** + * Display the matched elements with a sliding motion. + * + * @param duration_easing A string or number determining how long the animation will run. + * A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/slideDown/} + * @since 1.0 + * @since 1.4.3 + */ + slideDown(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this + /** + * Display the matched elements with a sliding motion. + * + * @param duration_easing_complete_options A string or number determining how long the animation will run. + * A string indicating which easing function to use for the transition. + * A function to call once the animation is complete, called once per matched element. + * A map of additional options to pass to the method. + * @see {@link https://api.jquery.com/slideDown/} + * @since 1.0 + * @since 1.4.3 + */ + slideDown(duration_easing_complete_options?: JQuery.Duration | string | ((this: TElement) => void) | JQuery.EffectsOptions): this + /** + * Display or hide the matched elements with a sliding motion. + * + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/slideToggle/} + * @since 1.4.3 + */ + slideToggle(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this + /** + * Display or hide the matched elements with a sliding motion. + * + * @param duration_easing A string or number determining how long the animation will run. + * A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/slideToggle/} + * @since 1.0 + * @since 1.4.3 + */ + slideToggle(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this + /** + * Display or hide the matched elements with a sliding motion. + * + * @param duration_easing_complete_options A string or number determining how long the animation will run. + * A string indicating which easing function to use for the transition. + * A function to call once the animation is complete, called once per matched element. + * A map of additional options to pass to the method. + * @see {@link https://api.jquery.com/slideToggle/} + * @since 1.0 + * @since 1.4.3 + */ + slideToggle(duration_easing_complete_options?: JQuery.Duration | string | ((this: TElement) => void) | JQuery.EffectsOptions): this + /** + * Hide the matched elements with a sliding motion. + * + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/slideUp/} + * @since 1.4.3 + */ + slideUp(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this + /** + * Hide the matched elements with a sliding motion. + * + * @param duration_easing A string or number determining how long the animation will run. + * A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/slideUp/} + * @since 1.0 + * @since 1.4.3 + */ + slideUp(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this + /** + * Hide the matched elements with a sliding motion. + * + * @param duration_easing_complete_options A string or number determining how long the animation will run. + * A string indicating which easing function to use for the transition. + * A function to call once the animation is complete, called once per matched element. + * A map of additional options to pass to the method. + * @see {@link https://api.jquery.com/slideUp/} + * @since 1.0 + * @since 1.4.3 + */ + slideUp(duration_easing_complete_options?: JQuery.Duration | string | ((this: TElement) => void) | JQuery.EffectsOptions): this + /** + * Stop the currently-running animation on the matched elements. + * + * @param queue The nametranslate of the queue in which to stop animations. + * @param clearQueue A Boolean indicating whether to remove queued animation as well. Defaults to false. + * @param jumpToEnd A Boolean indicating whether to complete the current animation immediately. Defaults to false. + * @see {@link https://api.jquery.com/stop/} + * @since 1.7 + */ + stop(queue: string, clearQueue?: boolean, jumpToEnd?: boolean): this + /** + * Stop the currently-running animation on the matched elements. + * + * @param clearQueue A Boolean indicating whether to remove queued animation as well. Defaults to false. + * @param jumpToEnd A Boolean indicating whether to complete the current animation immediately. Defaults to false. + * @see {@link https://api.jquery.com/stop/} + * @since 1.2 + */ + stop(clearQueue?: boolean, jumpToEnd?: boolean): this + /** + * Bind an event handler to the "submit" JavaScript event, or trigger that event on an element. + * + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/submit/} + * @since 1.4.3 + */ + submit(eventData: TData, + handler: JQuery.EventHandler | JQuery.EventHandlerBase>): this + /** + * Bind an event handler to the "submit" JavaScript event, or trigger that event on an element. + * + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/submit/} + * @since 1.0 + */ + submit(handler?: JQuery.EventHandler | JQuery.EventHandlerBase> | false): this + /** + * Set the content of each element in the set of matched elements to the specified text. + * + * @param text The text to set as the content of each matched element. When Number or Boolean is supplied, it will + * be converted to a String representation. + * A function returning the text content to set. Receives the index position of the element in the set + * and the old text value as arguments. + * @see {@link https://api.jquery.com/text/} + * @since 1.0 + * @since 1.4 + */ + text(text: string | number | boolean | ((this: TElement, index: number, text: string) => string | number | boolean)): this + /** + * Get the combined text contents of each element in the set of matched elements, including their descendants. + * + * @see {@link https://api.jquery.com/text/} + * @since 1.0 + */ + text(): string + /** + * Retrieve all the elements contained in the jQuery set, as an array. + * + * @see {@link https://api.jquery.com/toArray/} + * @since 1.4 + */ + toArray(): TElement[] + /** + * Display or hide the matched elements. + * + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/toggle/} + * @since 1.4.3 + */ + toggle(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this + /** + * Display or hide the matched elements. + * + * @param duration A string or number determining how long the animation will run. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see {@link https://api.jquery.com/toggle/} + * @since 1.0 + */ + toggle(duration: JQuery.Duration, complete: (this: TElement) => void): this + /** + * Display or hide the matched elements. + * + * @param duration_complete_options_display A string or number determining how long the animation will run. + * A function to call once the animation is complete, called once per matched element. + * A map of additional options to pass to the method. + * Use true to show the element or false to hide it. + * @see {@link https://api.jquery.com/toggle/} + * @since 1.0 + * @since 1.3 + */ + toggle(duration_complete_options_display?: JQuery.Duration | ((this: TElement) => void) | JQuery.EffectsOptions | boolean): this + /** + * Add or remove one or more classes from each element in the set of matched elements, depending on + * either the class's presence or the value of the state argument. + * + * @param className One or more class names (separated by spaces) to be toggled for each element in the matched set. + * A function that returns class names to be toggled in the class attribute of each element in the + * matched set. Receives the index position of the element in the set, the old class value, and the state as arguments. + * @param state A Boolean (not just truthy/falsy) value to determine whether the class should be added or removed. + * @see {@link https://api.jquery.com/toggleClass/} + * @since 1.0 + * @since 1.3 + * @since 1.4 + */ + toggleClass(className: string | ((this: TElement, index: number, className: string, state: TState) => string), + state?: TState): this + /** + * Add or remove one or more classes from each element in the set of matched elements, depending on + * either the class's presence or the value of the state argument. + * + * @param state A boolean value to determine whether the class should be added or removed. + * @see {@link https://api.jquery.com/toggleClass/} + * @since 1.4 + * @deprecated 3.0 + */ + toggleClass(state?: boolean): this + /** + * Execute all handlers and behaviors attached to the matched elements for the given event type. + * + * @param eventType A string containing a JavaScript event type, such as click or submit. + * A jQuery.Event object. + * @param extraParameters Additional parameters to pass along to the event handler. + * @see {@link https://api.jquery.com/trigger/} + * @since 1.0 + * @since 1.3 + */ + trigger(eventType: string | JQuery.Event, extraParameters?: any[] | JQuery.PlainObject | string | number): this + /** + * Execute all handlers attached to an element for an event. + * + * @param eventType A string containing a JavaScript event type, such as click or submit. + * A jQuery.Event object. + * @param extraParameters Additional parameters to pass along to the event handler. + * @see {@link https://api.jquery.com/triggerHandler/} + * @since 1.2 + * @since 1.3 + */ + triggerHandler(eventType: string | JQuery.Event, extraParameters?: any[] | JQuery.PlainObject | string | number): undefined | any + /** + * Remove a previously-attached event handler from the elements. + * + * @param event A string containing one or more DOM event types, such as "click" or "submit," or custom event names. + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/unbind/} + * @since 1.0 + * @since 1.4.3 + * @deprecated 3.0 + */ + unbind(event: string, handler: JQuery.EventHandlerBase> | false): this + /** + * Remove a previously-attached event handler from the elements. + * + * @param event A string containing one or more DOM event types, such as "click" or "submit," or custom event names. + * A jQuery.Event object. + * @see {@link https://api.jquery.com/unbind/} + * @since 1.0 + * @deprecated 3.0 + */ + unbind(event?: string | JQuery.Event): this + /** + * Remove a handler from the event for all elements which match the current selector, based upon a + * specific set of root elements. + * + * @param selector A selector which will be used to filter the event results. + * @param eventType A string containing a JavaScript event type, such as "click" or "keydown" + * @param handler A function to execute each time the event is triggered. + * @see {@link https://api.jquery.com/undelegate/} + * @since 1.4.2 + * @deprecated 3.0 + */ + undelegate(selector: JQuery.Selector, eventType: string, handler: JQuery.EventHandlerBase> | false): this + /** + * Remove a handler from the event for all elements which match the current selector, based upon a + * specific set of root elements. + * + * @param selector A selector which will be used to filter the event results. + * @param eventTypes A string containing a JavaScript event type, such as "click" or "keydown" + * An object of one or more event types and previously bound functions to unbind from them. + * @see {@link https://api.jquery.com/undelegate/} + * @since 1.4.2 + * @since 1.4.3 + * @deprecated 3.0 + */ + undelegate(selector: JQuery.Selector, eventTypes: string | JQuery.PlainObject> | false>): this + /** + * Remove a handler from the event for all elements which match the current selector, based upon a + * specific set of root elements. + * + * @param namespace A selector which will be used to filter the event results. + * @see {@link https://api.jquery.com/undelegate/} + * @since 1.4.2 + * @since 1.6 + * @deprecated 3.0 + */ + undelegate(namespace?: string): this + /** + * Remove the parents of the set of matched elements from the DOM, leaving the matched elements in their place. + * + * @param selector A selector to check the parent element against. If an element's parent does not match the selector, + * the element won't be unwrapped. + * @see {@link https://api.jquery.com/unwrap/} + * @since 1.4 + * @since 3.0 + */ + unwrap(selector?: string): this + /** + * Set the value of each element in the set of matched elements. + * + * @param value A string of text, a number, or an array of strings corresponding to the value of each matched + * element to set as selected/checked. + * A function returning the value to set. this is the current element. Receives the index position of + * the element in the set and the old value as arguments. + * @see {@link https://api.jquery.com/val/} + * @since 1.0 + * @since 1.4 + */ + val(value: string | number | string[] | ((this: TElement, index: number, value: string) => string)): this + /** + * Get the current value of the first element in the set of matched elements. + * + * @see {@link https://api.jquery.com/val/} + * @since 1.0 + */ + val(): string | number | string[] | undefined + /** + * Set the CSS width of each element in the set of matched elements. + * + * @param value An integer representing the number of pixels, or an integer along with an optional unit of measure + * appended (as a string). + * A function returning the width to set. Receives the index position of the element in the set and the + * old width as arguments. Within the function, this refers to the current element in the set. + * @see {@link https://api.jquery.com/width/} + * @since 1.0 + * @since 1.4.1 + */ + width(value: string | number | ((this: TElement, index: number, value: number) => string | number)): this + /** + * Get the current computed width for the first element in the set of matched elements. + * + * @see {@link https://api.jquery.com/width/} + * @since 1.0 + */ + width(): number | undefined + /** + * Wrap an HTML structure around each element in the set of matched elements. + * + * @param wrappingElement A selector, element, HTML string, or jQuery object specifying the structure to wrap around the + * matched elements. When you pass a jQuery collection containing more than one element, or a selector + * matching more than one element, the first element will be used. + * A callback function returning the HTML content or jQuery object to wrap around the matched elements. + * Receives the index position of the element in the set as an argument. Within the function, this + * refers to the current element in the set. + * @see {@link https://api.jquery.com/wrap/} + * @since 1.0 + * @since 1.4 + */ + wrap(wrappingElement: JQuery.Selector | JQuery.htmlString | Element | JQuery | ((this: TElement, index: number) => string | JQuery)): this + /** + * Wrap an HTML structure around all elements in the set of matched elements. + * + * @param wrappingElement A selector, element, HTML string, or jQuery object specifying the structure to wrap around the matched elements. + * A callback function returning the HTML content or jQuery object to wrap around all the matched + * elements. Within the function, this refers to the first element in the set. Prior to jQuery 3.0, the + * callback was incorrectly called for every element in the set and received the index position of the + * element in the set as an argument. + * @see {@link https://api.jquery.com/wrapAll/} + * @since 1.2 + * @since 1.4 + */ + wrapAll(wrappingElement: JQuery.Selector | JQuery.htmlString | Element | JQuery | ((this: TElement) => string | JQuery)): this + /** + * Wrap an HTML structure around the content of each element in the set of matched elements. + * + * @param wrappingElement An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap + * around the content of the matched elements. + * A callback function which generates a structure to wrap around the content of the matched elements. + * Receives the index position of the element in the set as an argument. Within the function, this + * refers to the current element in the set. + * @see {@link https://api.jquery.com/wrapInner/} + * @since 1.2 + * @since 1.4 + */ + wrapInner(wrappingElement: JQuery.Selector | JQuery.htmlString | Element | JQuery | ((this: TElement, index: number) => string | JQuery | Element)): this + + [n: number]: TElement +} + +declare namespace JQuery { + type TypeOrArray = T | T[] + type Node = Element | Text | Comment + + /** + * A string is designated htmlString in jQuery documentation when it is used to represent one or more + * DOM elements, typically to be created and inserted in the document. When passed as an argument of + * the jQuery() function, the string is identified as HTML if it starts with ) and is parsed + * as such until the final > character. Prior to jQuery 1.9, a string was considered to be HTML if it + * contained anywhere within the string. + */ + type htmlString = string + /** + * A selector is used in jQuery to select DOM elements from a DOM document. That document is, in most + * cases, the DOM document present in all browsers, but can also be an XML document received via Ajax. + */ + type Selector = string + + /** + * The PlainObject type is a JavaScript object containing zero or more key-value pairs. The plain + * object is, in other words, an Object object. It is designated "plain" in jQuery documentation to + * distinguish it from other kinds of JavaScript objects: for example, null, user-defined arrays, and + * host objects such as document, all of which have a typeof value of "object." + */ + interface PlainObject { + [key: string]: T + } + + // region Ajax + + interface AjaxSettings extends Ajax.AjaxSettingsBase { + /** + * A string containing the URL to which the request is sent. + */ + url?: string + } + + interface UrlAjaxSettings extends Ajax.AjaxSettingsBase { + /** + * A string containing the URL to which the request is sent. + */ + url: string + } + + namespace Ajax { + type SuccessTextStatus = 'success' | 'notmodified' | 'nocontent' + type ErrorTextStatus = 'timeout' | 'error' | 'abort' | 'parsererror' + type TextStatus = SuccessTextStatus | ErrorTextStatus + + interface SuccessCallback { + (this: TContext, data: any, textStatus: SuccessTextStatus, jqXHR: JQuery.jqXHR): void + } + + interface ErrorCallback { + (this: TContext, jqXHR: jqXHR, textStatus: ErrorTextStatus, errorThrown: string): void + } + + interface CompleteCallback { + (this: TContext, jqXHR: jqXHR, textStatus: TextStatus): void + } + + /** + * @see {@link http://api.jquery.com/jquery.ajax/#jQuery-ajax-settings} + */ + interface AjaxSettingsBase { + /** + * A set of key/value pairs that map a given dataType to its MIME type, which gets sent in the Accept + * request header. This header tells the server what kind of response it will accept in return. + */ + accepts?: PlainObject + /** + * By default, all requests are sent asynchronously (i.e. this is set to true by default). If you need + * synchronous requests, set this option to false. Cross-domain requests and dataType: "jsonp" requests + * do not support synchronous operation. Note that synchronous requests may temporarily lock the + * browser, disabling any actions while the request is active. As of jQuery 1.8, the use of async: + * false with jqXHR ($.Deferred) is deprecated; you must use the success/error/complete callback + * options instead of the corresponding methods of the jqXHR object such as jqXHR.done(). + */ + async?: boolean + /** + * A pre-request callback function that can be used to modify the jqXHR (in jQuery 1.4.x, + * XMLHTTPRequest) object before it is sent. Use this to set custom headers, etc. The jqXHR and + * settings objects are passed as arguments. This is an Ajax Event. Returning false in the beforeSend + * function will cancel the request. As of jQuery 1.5, the beforeSend option will be called regardless + * of the type of request. + */ + beforeSend?(this: TContext, jqXHR: jqXHR, settings: AjaxSettingsBase): false | void + /** + * If set to false, it will force requested pages not to be cached by the browser. Note: Setting cache + * to false will only work correctly with HEAD and GET requests. It works by appending "_={timestamp}" + * to the GET parameters. The parameter is not needed for other types of requests, except in IE8 when a + * POST is made to a URL that has already been requested by a GET. + */ + cache?: boolean + /** + * A function to be called when the request finishes (after success and error callbacks are executed). + * The function gets passed two arguments: The jqXHR (in jQuery 1.4.x, XMLHTTPRequest) object and a + * string categorizing the status of the request ("success", "notmodified", "nocontent", "error", + * "timeout", "abort", or "parsererror"). As of jQuery 1.5, the complete setting can accept an array of + * functions. Each function will be called in turn. This is an Ajax Event. + */ + complete?: TypeOrArray> + /** + * An object of string/regular-expression pairs that determine how jQuery will parse the response, + * given its content type. + */ + contents?: PlainObject + /** + * When sending data to the server, use this content type. Default is + * "application/x-www-form-urlencoded; charset=UTF-8", which is fine for most cases. If you explicitly + * pass in a content-type to $.ajax(), then it is always sent to the server (even if no data is sent). + * As of jQuery 1.6 you can pass false to tell jQuery to not set any content type header. Note: The W3C + * XMLHttpRequest specification dictates that the charset is always UTF-8; specifying another charset + * will not force the browser to change the encoding. Note: For cross-domain requests, setting the + * content type to anything other than application/x-www-form-urlencoded, multipart/form-data, or + * text/plain will trigger the browser to send a preflight OPTIONS request to the server. + */ + contentType?: string | false + /** + * This object will be the context of all Ajax-related callbacks. By default, the context is an object + * that represents the Ajax settings used in the call ($.ajaxSettings merged with the settings passed to $.ajax). + */ + context?: TContext + /** + * An object containing dataType-to-dataType converters. Each converter's value is a function that + * returns the transformed value of the response. + */ + converters?: PlainObject<((value: any) => any) | true> + /** + * If you wish to force a crossDomain request (such as JSONP) on the same domain, set the value of + * crossDomain to true. This allows, for example, server-side redirection to another domain. + */ + crossDomain?: boolean + /** + * Data to be sent to the server. It is converted to a query string, if not already a string. It's + * appended to the url for GET-requests. See processData option to prevent this automatic processing. + * Object must be Key/Value pairs. If value is an Array, jQuery serializes multiple values with same + * key based on the value of the traditional setting (described below). + */ + data?: PlainObject | string + /** + * A function to be used to handle the raw response data of XMLHttpRequest. This is a pre-filtering + * function to sanitize the response. You should return the sanitized data. The function accepts two + * arguments: The raw data returned from the server and the 'dataType' parameter. + */ + dataFilter?(data: string, type: string): any + /** + * The type of data that you're expecting back from the server. If none is specified, jQuery will try + * to infer it based on the MIME type of the response (an XML MIME type will yield XML, in 1.4 JSON + * will yield a JavaScript object, in 1.4 script will execute the script, and anything else will be + * returned as a string). The available types (and the result passed as the first argument to your + * success callback) are: + * + * "xml": Returns a XML document that can be processed via jQuery. + * + * "html": Returns HTML as plain text; included script tags are evaluated when inserted in the DOM. + * + * "script": Evaluates the response as JavaScript and returns it as plain text. Disables caching by + * appending a query string parameter, _=[TIMESTAMP], to the URL unless the cache option is set to + * true. Note: This will turn POSTs into GETs for remote-domain requests. + * + * "json": Evaluates the response as JSON and returns a JavaScript object. Cross-domain "json" requests + * are converted to "jsonp" unless the request includes jsonp: false in its request options. The JSON + * data is parsed in a strict manner; any malformed JSON is rejected and a parse error is thrown. As of + * jQuery 1.9, an empty response is also rejected; the server should return a response of null or {} + * instead. (See json.org for more information on proper JSON formatting.) + * + * "jsonp": Loads in a JSON block using JSONP. Adds an extra "?callback=?" to the end of your URL to + * specify the callback. Disables caching by appending a query string parameter, "_=[TIMESTAMP]", to + * the URL unless the cache option is set to true. + * + * "text": A plain text string. + * + * multiple, space-separated values: As of jQuery 1.5, jQuery can convert a dataType from what it + * received in the Content-Type header to what you require. For example, if you want a text response to + * be treated as XML, use "text xml" for the dataType. You can also make a JSONP request, have it + * received as text, and interpreted by jQuery as XML: "jsonp text xml". Similarly, a shorthand string + * such as "jsonp xml" will first attempt to convert from jsonp to xml, and, failing that, convert from + * jsonp to text, and then from text to xml. + */ + dataType?: 'xml' | 'html' | 'script' | 'json' | 'jsonp' | 'text' | string + /** + * A function to be called if the request fails. The function receives three arguments: The jqXHR (in + * jQuery 1.4.x, XMLHttpRequest) object, a string describing the type of error that occurred and an + * optional exception object, if one occurred. Possible values for the second argument (besides null) + * are "timeout", "error", "abort", and "parsererror". When an HTTP error occurs, errorThrown receives + * the textual portion of the HTTP status, such as "Not Found" or "Internal Server Error." As of jQuery + * 1.5, the error setting can accept an array of functions. Each function will be called in turn. Note: + * This handler is not called for cross-domain script and cross-domain JSONP requests. This is an Ajax Event. + */ + error?: TypeOrArray> + /** + * Whether to trigger global Ajax event handlers for this request. The default is true. Set to false to + * prevent the global handlers like ajaxStart or ajaxStop from being triggered. This can be used to + * control various Ajax Events. + */ + global?: boolean + /** + * An object of additional header key/value pairs to send along with requests using the XMLHttpRequest + * transport. The header X-Requested-With: XMLHttpRequest is always added, but its default + * XMLHttpRequest value can be changed here. Values in the headers setting can also be overwritten from + * within the beforeSend function. + */ + headers?: PlainObject + /** + * Allow the request to be successful only if the response has changed since the last request. This is + * done by checking the Last-Modified header. Default value is false, ignoring the header. In jQuery + * 1.4 this technique also checks the 'etag' specified by the server to catch unmodified data. + */ + ifModified?: boolean + /** + * Allow the current environment to be recognized as "local," (e.g. the filesystem), even if jQuery + * does not recognize it as such by default. The following protocols are currently recognized as local: + * file, *-extension, and widget. If the isLocal setting needs modification, it is recommended to do so + * once in the $.ajaxSetup() method. + */ + isLocal?: boolean + /** + * Override the callback function nametranslate in a JSONP request. This value will be used instead of + * 'callback' in the 'callback=?' part of the query string in the url. So {jsonp:'onJSONPLoad'} would + * result in 'onJSONPLoad=?' passed to the server. As of jQuery 1.5, setting the jsonp option to false + * prevents jQuery from adding the "?callback" string to the URL or attempting to use "=?" for + * transformation. In this case, you should also explicitly set the jsonpCallback setting. For example, + * { jsonp: false, jsonpCallback: "callbackName" }. If you don't trust the target of your Ajax + * requests, consider setting the jsonp property to false for security reasons. + */ + jsonp?: string | false + /** + * Specify the callback function nametranslate for a JSONP request. This value will be used instead of the + * random nametranslate automatically generated by jQuery. It is preferable to let jQuery generate a unique nametranslate + * as it'll make it easier to manage the requests and provide callbacks and error handling. You may + * want to specify the callback when you want to enable better browser caching of GET requests. As of + * jQuery 1.5, you can also use a function for this setting, in which case the value of jsonpCallback + * is set to the return value of that function. + */ + jsonpCallback?: string | ((this: TContext) => string) + /** + * The HTTP method to use for the request (e.g. "POST", "GET", "PUT"). + */ + method?: string + /** + * A mime type to override the XHR mime type. + */ + mimeType?: string + /** + * A password to be used with XMLHttpRequest in response to an HTTP access authentication request. + */ + password?: string + /** + * By default, data passed in to the data option as an object (technically, anything other than a + * string) will be processed and transformed into a query string, fitting to the default content-type + * "application/x-www-form-urlencoded". If you want to send a DOMDocument, or other non-processed data, + * set this option to false. + */ + processData?: boolean + /** + * Only applies when the "script" transport is used (e.g., cross-domain requests with "jsonp" or + * "script" dataType and "GET" type). Sets the charset attribute on the script tag used in the request. + * Used when the character set on the local page is not the same as the one on the remote script. + */ + scriptCharset?: string + /** + * An object of numeric HTTP codes and functions to be called when the response has the corresponding + * code. + * + * If the request is successful, the status code functions take the same parameters as the success + * callback; if it results in an error (including 3xx redirect), they take the same parameters as the error callback. + */ + statusCode?: StatusCodeCallbacks + /** + * A function to be called if the request succeeds. The function gets passed three arguments: The data + * returned from the server, formatted according to the dataType parameter or the dataFilter callback + * function, if specified; a string describing the status; and the jqXHR (in jQuery 1.4.x, + * XMLHttpRequest) object. As of jQuery 1.5, the success setting can accept an array of functions. Each + * function will be called in turn. This is an Ajax Event. + */ + success?: TypeOrArray> + /** + * Set a timeout (in milliseconds) for the request. A value of 0 means there will be no timeout. This + * will override any global timeout set with $.ajaxSetup(). The timeout period starts at the point the + * $.ajax call is made; if several other requests are in progress and the browser has no connections + * available, it is possible for a request to time out before it can be sent. In jQuery 1.4.x and + * below, the XMLHttpRequest object will be in an invalid state if the request times out; accessing any + * object members may throw an exception. In Firefox 3.0+ only, script and JSONP requests cannot be + * cancelled by a timeout; the script will run even if it arrives after the timeout period. + */ + timeout?: number + /** + * Set this to true if you wish to use the traditional style of param serialization. + */ + traditional?: boolean + /** + * An alias for method. You should use type if you're using versions of jQuery prior to 1.9.0. + */ + type?: string + /** + * A username to be used with XMLHttpRequest in response to an HTTP access authentication request. + */ + username?: string + // ActiveXObject requires "lib": ["scripthost"] which consumers would also require + /** + * Callback for creating the XMLHttpRequest object. Defaults to the ActiveXObject when available (IE), + * the XMLHttpRequest otherwise. Override to provide your own implementation for XMLHttpRequest or + * enhancements to the factory. + */ + xhr?(): XMLHttpRequest + /** + * An object of fieldName-fieldValue pairs to set on the native XHR object. + * + * In jQuery 1.5, the withCredentials property was not propagated to the native XHR and thus CORS + * requests requiring it would ignore this flag. For this reason, we recommend using jQuery 1.5.1+ + * should you require the use of it. + */ + xhrFields?: XHRFields + } + + type StatusCodeCallbacks = { + // region Success Status Codes + + // jQuery treats 2xx and 304 status codes as a success + + 200?: SuccessCallback; + 201?: SuccessCallback; + 202?: SuccessCallback; + 203?: SuccessCallback; + 204?: SuccessCallback; + 205?: SuccessCallback; + 206?: SuccessCallback; + 207?: SuccessCallback; + 208?: SuccessCallback; + 209?: SuccessCallback; + 210?: SuccessCallback; + 211?: SuccessCallback; + 212?: SuccessCallback; + 213?: SuccessCallback; + 214?: SuccessCallback; + 215?: SuccessCallback; + 216?: SuccessCallback; + 217?: SuccessCallback; + 218?: SuccessCallback; + 219?: SuccessCallback; + 220?: SuccessCallback; + 221?: SuccessCallback; + 222?: SuccessCallback; + 223?: SuccessCallback; + 224?: SuccessCallback; + 225?: SuccessCallback; + 226?: SuccessCallback; + 227?: SuccessCallback; + 228?: SuccessCallback; + 229?: SuccessCallback; + 230?: SuccessCallback; + 231?: SuccessCallback; + 232?: SuccessCallback; + 233?: SuccessCallback; + 234?: SuccessCallback; + 235?: SuccessCallback; + 236?: SuccessCallback; + 237?: SuccessCallback; + 238?: SuccessCallback; + 239?: SuccessCallback; + 240?: SuccessCallback; + 241?: SuccessCallback; + 242?: SuccessCallback; + 243?: SuccessCallback; + 244?: SuccessCallback; + 245?: SuccessCallback; + 246?: SuccessCallback; + 247?: SuccessCallback; + 248?: SuccessCallback; + 249?: SuccessCallback; + 250?: SuccessCallback; + 251?: SuccessCallback; + 252?: SuccessCallback; + 253?: SuccessCallback; + 254?: SuccessCallback; + 255?: SuccessCallback; + 256?: SuccessCallback; + 257?: SuccessCallback; + 258?: SuccessCallback; + 259?: SuccessCallback; + 260?: SuccessCallback; + 261?: SuccessCallback; + 262?: SuccessCallback; + 263?: SuccessCallback; + 264?: SuccessCallback; + 265?: SuccessCallback; + 266?: SuccessCallback; + 267?: SuccessCallback; + 268?: SuccessCallback; + 269?: SuccessCallback; + 270?: SuccessCallback; + 271?: SuccessCallback; + 272?: SuccessCallback; + 273?: SuccessCallback; + 274?: SuccessCallback; + 275?: SuccessCallback; + 276?: SuccessCallback; + 277?: SuccessCallback; + 278?: SuccessCallback; + 279?: SuccessCallback; + 280?: SuccessCallback; + 281?: SuccessCallback; + 282?: SuccessCallback; + 283?: SuccessCallback; + 284?: SuccessCallback; + 285?: SuccessCallback; + 286?: SuccessCallback; + 287?: SuccessCallback; + 288?: SuccessCallback; + 289?: SuccessCallback; + 290?: SuccessCallback; + 291?: SuccessCallback; + 292?: SuccessCallback; + 293?: SuccessCallback; + 294?: SuccessCallback; + 295?: SuccessCallback; + 296?: SuccessCallback; + 297?: SuccessCallback; + 298?: SuccessCallback; + 299?: SuccessCallback; + 304?: SuccessCallback; + + // endregion + + // region Error Status Codes + + 300?: ErrorCallback; + 301?: ErrorCallback; + 302?: ErrorCallback; + 303?: ErrorCallback; + 305?: ErrorCallback; + 306?: ErrorCallback; + 307?: ErrorCallback; + 308?: ErrorCallback; + 309?: ErrorCallback; + 310?: ErrorCallback; + 311?: ErrorCallback; + 312?: ErrorCallback; + 313?: ErrorCallback; + 314?: ErrorCallback; + 315?: ErrorCallback; + 316?: ErrorCallback; + 317?: ErrorCallback; + 318?: ErrorCallback; + 319?: ErrorCallback; + 320?: ErrorCallback; + 321?: ErrorCallback; + 322?: ErrorCallback; + 323?: ErrorCallback; + 324?: ErrorCallback; + 325?: ErrorCallback; + 326?: ErrorCallback; + 327?: ErrorCallback; + 328?: ErrorCallback; + 329?: ErrorCallback; + 330?: ErrorCallback; + 331?: ErrorCallback; + 332?: ErrorCallback; + 333?: ErrorCallback; + 334?: ErrorCallback; + 335?: ErrorCallback; + 336?: ErrorCallback; + 337?: ErrorCallback; + 338?: ErrorCallback; + 339?: ErrorCallback; + 340?: ErrorCallback; + 341?: ErrorCallback; + 342?: ErrorCallback; + 343?: ErrorCallback; + 344?: ErrorCallback; + 345?: ErrorCallback; + 346?: ErrorCallback; + 347?: ErrorCallback; + 348?: ErrorCallback; + 349?: ErrorCallback; + 350?: ErrorCallback; + 351?: ErrorCallback; + 352?: ErrorCallback; + 353?: ErrorCallback; + 354?: ErrorCallback; + 355?: ErrorCallback; + 356?: ErrorCallback; + 357?: ErrorCallback; + 358?: ErrorCallback; + 359?: ErrorCallback; + 360?: ErrorCallback; + 361?: ErrorCallback; + 362?: ErrorCallback; + 363?: ErrorCallback; + 364?: ErrorCallback; + 365?: ErrorCallback; + 366?: ErrorCallback; + 367?: ErrorCallback; + 368?: ErrorCallback; + 369?: ErrorCallback; + 370?: ErrorCallback; + 371?: ErrorCallback; + 372?: ErrorCallback; + 373?: ErrorCallback; + 374?: ErrorCallback; + 375?: ErrorCallback; + 376?: ErrorCallback; + 377?: ErrorCallback; + 378?: ErrorCallback; + 379?: ErrorCallback; + 380?: ErrorCallback; + 381?: ErrorCallback; + 382?: ErrorCallback; + 383?: ErrorCallback; + 384?: ErrorCallback; + 385?: ErrorCallback; + 386?: ErrorCallback; + 387?: ErrorCallback; + 388?: ErrorCallback; + 389?: ErrorCallback; + 390?: ErrorCallback; + 391?: ErrorCallback; + 392?: ErrorCallback; + 393?: ErrorCallback; + 394?: ErrorCallback; + 395?: ErrorCallback; + 396?: ErrorCallback; + 397?: ErrorCallback; + 398?: ErrorCallback; + 399?: ErrorCallback; + 400?: ErrorCallback; + 401?: ErrorCallback; + 402?: ErrorCallback; + 403?: ErrorCallback; + 404?: ErrorCallback; + 405?: ErrorCallback; + 406?: ErrorCallback; + 407?: ErrorCallback; + 408?: ErrorCallback; + 409?: ErrorCallback; + 410?: ErrorCallback; + 411?: ErrorCallback; + 412?: ErrorCallback; + 413?: ErrorCallback; + 414?: ErrorCallback; + 415?: ErrorCallback; + 416?: ErrorCallback; + 417?: ErrorCallback; + 418?: ErrorCallback; + 419?: ErrorCallback; + 420?: ErrorCallback; + 421?: ErrorCallback; + 422?: ErrorCallback; + 423?: ErrorCallback; + 424?: ErrorCallback; + 425?: ErrorCallback; + 426?: ErrorCallback; + 427?: ErrorCallback; + 428?: ErrorCallback; + 429?: ErrorCallback; + 430?: ErrorCallback; + 431?: ErrorCallback; + 432?: ErrorCallback; + 433?: ErrorCallback; + 434?: ErrorCallback; + 435?: ErrorCallback; + 436?: ErrorCallback; + 437?: ErrorCallback; + 438?: ErrorCallback; + 439?: ErrorCallback; + 440?: ErrorCallback; + 441?: ErrorCallback; + 442?: ErrorCallback; + 443?: ErrorCallback; + 444?: ErrorCallback; + 445?: ErrorCallback; + 446?: ErrorCallback; + 447?: ErrorCallback; + 448?: ErrorCallback; + 449?: ErrorCallback; + 450?: ErrorCallback; + 451?: ErrorCallback; + 452?: ErrorCallback; + 453?: ErrorCallback; + 454?: ErrorCallback; + 455?: ErrorCallback; + 456?: ErrorCallback; + 457?: ErrorCallback; + 458?: ErrorCallback; + 459?: ErrorCallback; + 460?: ErrorCallback; + 461?: ErrorCallback; + 462?: ErrorCallback; + 463?: ErrorCallback; + 464?: ErrorCallback; + 465?: ErrorCallback; + 466?: ErrorCallback; + 467?: ErrorCallback; + 468?: ErrorCallback; + 469?: ErrorCallback; + 470?: ErrorCallback; + 471?: ErrorCallback; + 472?: ErrorCallback; + 473?: ErrorCallback; + 474?: ErrorCallback; + 475?: ErrorCallback; + 476?: ErrorCallback; + 477?: ErrorCallback; + 478?: ErrorCallback; + 479?: ErrorCallback; + 480?: ErrorCallback; + 481?: ErrorCallback; + 482?: ErrorCallback; + 483?: ErrorCallback; + 484?: ErrorCallback; + 485?: ErrorCallback; + 486?: ErrorCallback; + 487?: ErrorCallback; + 488?: ErrorCallback; + 489?: ErrorCallback; + 490?: ErrorCallback; + 491?: ErrorCallback; + 492?: ErrorCallback; + 493?: ErrorCallback; + 494?: ErrorCallback; + 495?: ErrorCallback; + 496?: ErrorCallback; + 497?: ErrorCallback; + 498?: ErrorCallback; + 499?: ErrorCallback; + 500?: ErrorCallback; + 501?: ErrorCallback; + 502?: ErrorCallback; + 503?: ErrorCallback; + 504?: ErrorCallback; + 505?: ErrorCallback; + 506?: ErrorCallback; + 507?: ErrorCallback; + 508?: ErrorCallback; + 509?: ErrorCallback; + 510?: ErrorCallback; + 511?: ErrorCallback; + 512?: ErrorCallback; + 513?: ErrorCallback; + 514?: ErrorCallback; + 515?: ErrorCallback; + 516?: ErrorCallback; + 517?: ErrorCallback; + 518?: ErrorCallback; + 519?: ErrorCallback; + 520?: ErrorCallback; + 521?: ErrorCallback; + 522?: ErrorCallback; + 523?: ErrorCallback; + 524?: ErrorCallback; + 525?: ErrorCallback; + 526?: ErrorCallback; + 527?: ErrorCallback; + 528?: ErrorCallback; + 529?: ErrorCallback; + 530?: ErrorCallback; + 531?: ErrorCallback; + 532?: ErrorCallback; + 533?: ErrorCallback; + 534?: ErrorCallback; + 535?: ErrorCallback; + 536?: ErrorCallback; + 537?: ErrorCallback; + 538?: ErrorCallback; + 539?: ErrorCallback; + 540?: ErrorCallback; + 541?: ErrorCallback; + 542?: ErrorCallback; + 543?: ErrorCallback; + 544?: ErrorCallback; + 545?: ErrorCallback; + 546?: ErrorCallback; + 547?: ErrorCallback; + 548?: ErrorCallback; + 549?: ErrorCallback; + 550?: ErrorCallback; + 551?: ErrorCallback; + 552?: ErrorCallback; + 553?: ErrorCallback; + 554?: ErrorCallback; + 555?: ErrorCallback; + 556?: ErrorCallback; + 557?: ErrorCallback; + 558?: ErrorCallback; + 559?: ErrorCallback; + 560?: ErrorCallback; + 561?: ErrorCallback; + 562?: ErrorCallback; + 563?: ErrorCallback; + 564?: ErrorCallback; + 565?: ErrorCallback; + 566?: ErrorCallback; + 567?: ErrorCallback; + 568?: ErrorCallback; + 569?: ErrorCallback; + 570?: ErrorCallback; + 571?: ErrorCallback; + 572?: ErrorCallback; + 573?: ErrorCallback; + 574?: ErrorCallback; + 575?: ErrorCallback; + 576?: ErrorCallback; + 577?: ErrorCallback; + 578?: ErrorCallback; + 579?: ErrorCallback; + 580?: ErrorCallback; + 581?: ErrorCallback; + 582?: ErrorCallback; + 583?: ErrorCallback; + 584?: ErrorCallback; + 585?: ErrorCallback; + 586?: ErrorCallback; + 587?: ErrorCallback; + 588?: ErrorCallback; + 589?: ErrorCallback; + 590?: ErrorCallback; + 591?: ErrorCallback; + 592?: ErrorCallback; + 593?: ErrorCallback; + 594?: ErrorCallback; + 595?: ErrorCallback; + 596?: ErrorCallback; + 597?: ErrorCallback; + 598?: ErrorCallback; + 599?: ErrorCallback; + + // endregion + } & { + // Status codes not listed require type annotations when defining the callback + [index: number]: SuccessCallback | ErrorCallback; + } + + // Writable properties on XMLHttpRequest + interface XHRFields extends Partial> { } + } + + interface Transport { + send(headers: PlainObject, completeCallback: Transport.SuccessCallback): void + abort(): void + } + + namespace Transport { + interface SuccessCallback { + (status: number, statusText: Ajax.TextStatus, responses?: PlainObject, headers?: string): void + } + } + + /** + * @see {@link http://api.jquery.com/jquery.ajax/#jqXHR} + */ + interface jqXHR extends Promise3, never, + Ajax.SuccessTextStatus, Ajax.ErrorTextStatus, never, + jqXHR, string, never>, + Pick, + Partial> { + responseJSON?: any + + /** + * Determine the current state of a Deferred object. + * + * @see {@link https://api.jquery.com/deferred.state/} + * @since 1.7 + */ + state(): 'pending' | 'resolved' | 'rejected' + statusCode(map: Ajax.StatusCodeCallbacks): void + } + + namespace jqXHR { + /** + * @deprecated + */ + interface DoneCallback> extends Deferred.Callback3 { } + + /** + * @deprecated + */ + interface FailCallback extends Deferred.Callback3 { } + + /** + * @deprecated + */ + interface AlwaysCallback> extends Deferred.Callback3 { } + } + + // endregion + + // region Callbacks + + interface Callbacks { + /** + * Add a callback or a collection of callbacks to a callback list. + * + * @param callback A function, or array of functions, that are to be added to the callback list. + * @param callbacks A function, or array of functions, that are to be added to the callback list. + * @see {@link https://api.jquery.com/callbacks.add/} + * @since 1.7 + */ + add(callback: TypeOrArray, ...callbacks: Array>): this + /** + * Disable a callback list from doing anything more. + * + * @see {@link https://api.jquery.com/callbacks.disable/} + * @since 1.7 + */ + disable(): this + /** + * Determine if the callbacks list has been disabled. + * + * @see {@link https://api.jquery.com/callbacks.disabled/} + * @since 1.7 + */ + disabled(): boolean + /** + * Remove all of the callbacks from a list. + * + * @see {@link https://api.jquery.com/callbacks.empty/} + * @since 1.7 + */ + empty(): this + /** + * Call all of the callbacks with the given arguments. + * + * @param args The argument or list of arguments to pass back to the callback list. + * @see {@link https://api.jquery.com/callbacks.fire/} + * @since 1.7 + */ + fire(...args: any[]): this + /** + * Call all callbacks in a list with the given context and arguments. + * + * @param context A reference to the context in which the callbacks in the list should be fired. + * @param args An argument, or array of arguments, to pass to the callbacks in the list. + * @see {@link https://api.jquery.com/callbacks.fireWith/} + * @since 1.7 + */ + fireWith(context: object, args?: ArrayLike): this + /** + * Determine if the callbacks have already been called at least once. + * + * @see {@link https://api.jquery.com/callbacks.fired/} + * @since 1.7 + */ + fired(): boolean + /** + * Determine whether or not the list has any callbacks attached. If a callback is provided as an + * argument, determine whether it is in a list. + * + * @param callback The callback to search for. + * @see {@link https://api.jquery.com/callbacks.has/} + * @since 1.7 + */ + has(callback?: T): boolean + /** + * Lock a callback list in its current state. + * + * @see {@link https://api.jquery.com/callbacks.lock/} + * @since 1.7 + */ + lock(): this + /** + * Determine if the callbacks list has been locked. + * + * @see {@link https://api.jquery.com/callbacks.locked/} + * @since 1.7 + */ + locked(): boolean + /** + * Remove a callback or a collection of callbacks from a callback list. + * + * @param callbacks A function, or array of functions, that are to be removed from the callback list. + * @see {@link https://api.jquery.com/callbacks.remove/} + * @since 1.7 + */ + remove(...callbacks: T[]): this + } + + // endregion + + // region CSS + + interface CSSHook { + get(this: this, elem: TElement, computed: any, extra: any): any + set(this: this, elem: TElement, value: any): void + } + + // endregion + + // region Deferred + + /** + * Any object that has a then method. + */ + interface Thenable extends PromiseLike { } + + // Type parameter guide + // -------------------- + // Each type parameter represents a parameter in one of the three possible callbacks. + // + // The first letter indicates which position the parameter is in. + // + // T = A = 1st position + // U = B = 2nd position + // V = C = 3rd position + // S = R = rest position + // + // The second letter indicates which whether it is a [R]esolve, Re[J]ect, or [N]otify value. + // + // The third letter indicates whether the value is returned in the [D]one filter, [F]ail filter, or [P]rogress filter. + + /** + * This object provides a subset of the methods of the Deferred object (then, done, fail, always, + * pipe, progress, state and promise) to prevent users from changing the state of the Deferred. + * + * @see {@link http://api.jquery.com/Types/#Promise} + * @deprecated Experimental. Avoid referncing this type directly in your code. + */ + interface PromiseBase extends _Promise, PromiseLike { + /** + * Add handlers to be called when the Deferred object is either resolved or rejected. + * + * @param alwaysCallback A function, or array of functions, that is called when the Deferred is resolved or rejected. + * @param alwaysCallbacks Optional additional functions, or arrays of functions, that are called when the Deferred is resolved or rejected. + * @see {@link https://api.jquery.com/deferred.always/} + * @since 1.6 + */ + always(alwaysCallback: TypeOrArray>, + ...alwaysCallbacks: Array>>): this + /** + * Add handlers to be called when the Deferred object is resolved. + * + * @param doneCallback A function, or array of functions, that are called when the Deferred is resolved. + * @param doneCallbacks Optional additional functions, or arrays of functions, that are called when the Deferred is resolved. + * @see {@link https://api.jquery.com/deferred.done/} + * @since 1.5 + */ + done(doneCallback: TypeOrArray>, + ...doneCallbacks: Array>>): this + /** + * Add handlers to be called when the Deferred object is rejected. + * + * @param failCallback A function, or array of functions, that are called when the Deferred is rejected. + * @param failCallbacks Optional additional functions, or arrays of functions, that are called when the Deferred is rejected. + * @see {@link https://api.jquery.com/deferred.fail/} + * @since 1.5 + */ + fail(failCallback: TypeOrArray>, + ...failCallbacks: Array>>): this + /** + * Add handlers to be called when the Deferred object generates progress notifications. + * + * @param progressCallback A function, or array of functions, to be called when the Deferred generates progress notifications. + * @param progressCallbacks Optional additional functions, or arrays of functions, to be called when the Deferred generates + * progress notifications. + * @see {@link https://api.jquery.com/deferred.progress/} + * @since 1.7 + */ + progress(progressCallback: TypeOrArray>, + ...progressCallbacks: Array>>): this + /** + * Return a Deferred's Promise object. + * + * @param target Object onto which the promise methods have to be attached + * @see {@link https://api.jquery.com/deferred.promise/} + * @since 1.5 + */ + promise(target: TTarget): this & TTarget + /** + * Return a Deferred's Promise object. + * + * @see {@link https://api.jquery.com/deferred.promise/} + * @since 1.5 + */ + promise(): this + /** + * Determine the current state of a Deferred object. + * + * @see {@link https://api.jquery.com/deferred.state/} + * @since 1.7 + */ + state(): 'pending' | 'resolved' | 'rejected' + + // region pipe + + /** + * Utility method to filter and/or chain Deferreds. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.pipe/} + * @since 1.6 + * @since 1.7 + * @deprecated 1.8 + */ + pipe + (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, + failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | AJF, + progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Utility method to filter and/or chain Deferreds. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.pipe/} + * @since 1.6 + * @since 1.7 + * @deprecated 1.8 + */ + pipe + (doneFilter: null, + failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | AJF, + progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Utility method to filter and/or chain Deferreds. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.pipe/} + * @since 1.6 + * @since 1.7 + * @deprecated 1.8 + */ + pipe + (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, + failFilter: null, + progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Utility method to filter and/or chain Deferreds. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.pipe/} + * @since 1.6 + * @since 1.7 + * @deprecated 1.8 + */ + pipe + (doneFilter: null, + failFilter: null, + progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Utility method to filter and/or chain Deferreds. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.pipe/} + * @since 1.6 + * @since 1.7 + * @deprecated 1.8 + */ + pipe + (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, + failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | AJF, + progressFilter?: null): PromiseBase + /** + * Utility method to filter and/or chain Deferreds. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.pipe/} + * @since 1.6 + * @since 1.7 + * @deprecated 1.8 + */ + pipe + (doneFilter: null, + failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | AJF, + progressFilter?: null): PromiseBase + /** + * Utility method to filter and/or chain Deferreds. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.pipe/} + * @since 1.6 + * @since 1.7 + * @deprecated 1.8 + */ + pipe + (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, + failFilter?: null, + progressFilter?: null): PromiseBase + + // endregion + + // region then + + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.then/} + * @since 1.8 + */ + then + (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, + failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, + progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.then/} + * @since 1.8 + */ + then + (doneFilter: null, + failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, + progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.then/} + * @since 1.8 + */ + then + (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, + failFilter: null, + progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.then/} + * @since 1.8 + */ + then + (doneFilter: null, + failFilter: null, + progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.then/} + * @since 1.8 + */ + then + (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, + failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, + progressFilter?: null): PromiseBase + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.then/} + * @since 1.8 + */ + then + (doneFilter: null, + failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, + progressFilter?: null): PromiseBase + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.then/} + * @since 1.8 + */ + then + (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, + failFilter?: null, + progressFilter?: null): PromiseBase + + // endregion + + /** + * Add handlers to be called when the Deferred object is rejected. + * + * @param failFilter A function that is called when the Deferred is rejected. + * @see {@link https://api.jquery.com/deferred.catch/} + * @since 3.0 + */ + catch + (failFilter?: ((t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF) | undefined | null): PromiseBase + } + + /** + * This object provides a subset of the methods of the Deferred object (then, done, fail, always, + * pipe, progress, state and promise) to prevent users from changing the state of the Deferred. + * + * @see {@link http://api.jquery.com/Types/#Promise} + */ + interface Promise3 extends PromiseBase { } + + /** + * This object provides a subset of the methods of the Deferred object (then, done, fail, always, + * pipe, progress, state and promise) to prevent users from changing the state of the Deferred. + * + * @see {@link http://api.jquery.com/Types/#Promise} + */ + interface Promise2 extends PromiseBase { } + + /** + * This object provides a subset of the methods of the Deferred object (then, done, fail, always, + * pipe, progress, state and promise) to prevent users from changing the state of the Deferred. + * + * @see {@link http://api.jquery.com/Types/#Promise} + */ + interface Promise extends PromiseBase { } + + interface DeferredStatic { + // https://jquery.com/upgrade-guide/3.0/#callback-exit + exceptionHook: any + (beforeStart?: (this: JQuery.Deferred, deferred: JQuery.Deferred) => void): JQuery.Deferred + } + + interface Deferred { + /** + * Call the progressCallbacks on a Deferred object with the given args. + * + * @param args Optional arguments that are passed to the progressCallbacks. + * @see {@link https://api.jquery.com/deferred.notify/} + * @since 1.7 + */ + notify(...args: TN[]): this + /** + * Call the progressCallbacks on a Deferred object with the given context and args. + * + * @param context Context passed to the progressCallbacks as the this object. + * @param args An optional array of arguments that are passed to the progressCallbacks. + * @see {@link https://api.jquery.com/deferred.notifyWith/} + * @since 1.7 + */ + notifyWith(context: object, args?: ArrayLike): this + /** + * Reject a Deferred object and call any failCallbacks with the given args. + * + * @param args Optional arguments that are passed to the failCallbacks. + * @see {@link https://api.jquery.com/deferred.reject/} + * @since 1.5 + */ + reject(...args: TJ[]): this + /** + * Reject a Deferred object and call any failCallbacks with the given context and args. + * + * @param context Context passed to the failCallbacks as the this object. + * @param args An optional array of arguments that are passed to the failCallbacks. + * @see {@link https://api.jquery.com/deferred.rejectWith/} + * @since 1.5 + */ + rejectWith(context: object, args?: ArrayLike): this + /** + * Resolve a Deferred object and call any doneCallbacks with the given args. + * + * @param args Optional arguments that are passed to the doneCallbacks. + * @see {@link https://api.jquery.com/deferred.resolve/} + * @since 1.5 + */ + resolve(...args: TR[]): this + /** + * Resolve a Deferred object and call any doneCallbacks with the given context and args. + * + * @param context Context passed to the doneCallbacks as the this object. + * @param args An optional array of arguments that are passed to the doneCallbacks. + * @see {@link https://api.jquery.com/deferred.resolveWith/} + * @since 1.5 + */ + resolveWith(context: object, args?: ArrayLike): this + + /** + * Add handlers to be called when the Deferred object is either resolved or rejected. + * + * @param alwaysCallback A function, or array of functions, that is called when the Deferred is resolved or rejected. + * @param alwaysCallbacks Optional additional functions, or arrays of functions, that are called when the Deferred is resolved or rejected. + * @see {@link https://api.jquery.com/deferred.always/} + * @since 1.6 + */ + always(alwaysCallback: TypeOrArray>, + ...alwaysCallbacks: Array>>): this + /** + * Add handlers to be called when the Deferred object is resolved. + * + * @param doneCallback A function, or array of functions, that are called when the Deferred is resolved. + * @param doneCallbacks Optional additional functions, or arrays of functions, that are called when the Deferred is resolved. + * @see {@link https://api.jquery.com/deferred.done/} + * @since 1.5 + */ + done(doneCallback: TypeOrArray>, + ...doneCallbacks: Array>>): this + /** + * Add handlers to be called when the Deferred object is rejected. + * + * @param failCallback A function, or array of functions, that are called when the Deferred is rejected. + * @param failCallbacks Optional additional functions, or arrays of functions, that are called when the Deferred is rejected. + * @see {@link https://api.jquery.com/deferred.fail/} + * @since 1.5 + */ + fail(failCallback: TypeOrArray>, + ...failCallbacks: Array>>): this + /** + * Add handlers to be called when the Deferred object generates progress notifications. + * + * @param progressCallback A function, or array of functions, to be called when the Deferred generates progress notifications. + * @param progressCallbacks Optional additional functions, or arrays of functions, to be called when the Deferred generates + * progress notifications. + * @see {@link https://api.jquery.com/deferred.progress/} + * @since 1.7 + */ + progress(progressCallback: TypeOrArray>, + ...progressCallbacks: Array>>): this + /** + * Return a Deferred's Promise object. + * + * @param target Object onto which the promise methods have to be attached + * @see {@link https://api.jquery.com/deferred.promise/} + * @since 1.5 + */ + promise(target: TTarget): JQuery.Promise & TTarget + /** + * Return a Deferred's Promise object. + * + * @see {@link https://api.jquery.com/deferred.promise/} + * @since 1.5 + */ + promise(): JQuery.Promise + /** + * Determine the current state of a Deferred object. + * + * @see {@link https://api.jquery.com/deferred.state/} + * @since 1.7 + */ + state(): 'pending' | 'resolved' | 'rejected' + + // region pipe + + /** + * Utility method to filter and/or chain Deferreds. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.pipe/} + * @since 1.6 + * @since 1.7 + * @deprecated 1.8 + */ + pipe + (doneFilter: (...t: TR[]) => PromiseBase | Thenable | ARD, + failFilter: (...t: TJ[]) => PromiseBase | Thenable | AJF, + progressFilter: (...t: TN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Utility method to filter and/or chain Deferreds. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.pipe/} + * @since 1.6 + * @since 1.7 + * @deprecated 1.8 + */ + pipe + (doneFilter: null, + failFilter: (...t: TJ[]) => PromiseBase | Thenable | AJF, + progressFilter: (...t: TN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Utility method to filter and/or chain Deferreds. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.pipe/} + * @since 1.6 + * @since 1.7 + * @deprecated 1.8 + */ + pipe + (doneFilter: (...t: TR[]) => PromiseBase | Thenable | ARD, + failFilter: null, + progressFilter: (...t: TN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Utility method to filter and/or chain Deferreds. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.pipe/} + * @since 1.6 + * @since 1.7 + * @deprecated 1.8 + */ + pipe + (doneFilter: null, + failFilter: null, + progressFilter?: (...t: TN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Utility method to filter and/or chain Deferreds. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.pipe/} + * @since 1.6 + * @since 1.7 + * @deprecated 1.8 + */ + pipe + (doneFilter: (...t: TR[]) => PromiseBase | Thenable | ARD, + failFilter: (...t: TJ[]) => PromiseBase | Thenable | AJF, + progressFilter?: null): PromiseBase + /** + * Utility method to filter and/or chain Deferreds. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.pipe/} + * @since 1.6 + * @since 1.7 + * @deprecated 1.8 + */ + pipe + (doneFilter: null, + failFilter: (...t: TJ[]) => PromiseBase | Thenable | AJF, + progressFilter?: null): PromiseBase + /** + * Utility method to filter and/or chain Deferreds. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.pipe/} + * @since 1.6 + * @since 1.7 + * @deprecated 1.8 + */ + pipe + (doneFilter: (...t: TR[]) => PromiseBase | Thenable | ARD, + failFilter?: null, + progressFilter?: null): PromiseBase + + // endregion + + // region then + + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * + * @param doneFilter A function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.then/} + * @since 1.8 + */ + then + (doneFilter: (...t: TR[]) => PromiseBase | Thenable | ARD, + failFilter: (...t: TJ[]) => PromiseBase | Thenable | ARF, + progressFilter: (...t: TN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * + * @param doneFilter A function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.then/} + * @since 1.8 + */ + then + (doneFilter: null, + failFilter: (...t: TJ[]) => PromiseBase | Thenable | ARF, + progressFilter: (...t: TN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * + * @param doneFilter A function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.then/} + * @since 1.8 + */ + then + (doneFilter: (...t: TR[]) => PromiseBase | Thenable | ARD, + failFilter: null, + progressFilter: (...t: TN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * + * @param doneFilter A function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.then/} + * @since 1.8 + */ + then + (doneFilter: null, + failFilter: null, + progressFilter?: (...t: TN[]) => PromiseBase | Thenable | ANP): PromiseBase + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.then/} + * @since 1.8 + */ + then + (doneFilter: (...t: TR[]) => PromiseBase | Thenable | ARD, + failFilter: (...t: TJ[]) => PromiseBase | Thenable | ARF, + progressFilter?: null): PromiseBase + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.then/} + * @since 1.8 + */ + then + (doneFilter: null, + failFilter: (...t: TJ[]) => PromiseBase | Thenable | ARF, + progressFilter?: null): PromiseBase + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see {@link https://api.jquery.com/deferred.then/} + * @since 1.8 + */ + then + (doneFilter: (...t: TR[]) => PromiseBase | Thenable | ARD, + failFilter?: null, + progressFilter?: null): PromiseBase + + // endregion + + /** + * Add handlers to be called when the Deferred object is rejected. + * + * @param failFilter A function that is called when the Deferred is rejected. + * @see {@link https://api.jquery.com/deferred.catch/} + * @since 3.0 + */ + catch + (failFilter?: ((...t: TJ[]) => PromiseBase | Thenable | ARF) | undefined | null): PromiseBase + } + + namespace Deferred { + interface CallbackBase { + (t: T, u: U, v: V, ...r: R[]): void + } + + interface Callback3 extends CallbackBase { } + + interface Callback { + (...args: T[]): void + } + + /** + * @deprecated + */ + interface DoneCallback extends Callback { } + + /** + * @deprecated + */ + interface FailCallback extends Callback { } + + /** + * @deprecated + */ + interface AlwaysCallback extends Callback { } + + /** + * @deprecated + */ + interface ProgressCallback extends Callback { } + } + + // endregion + + // region Effects + + type Duration = number | 'fast' | 'slow' + // TODO: Is the first element always a string or is that specific to the 'fx' queue? + type Queue = { 0: string; } & Array> + + interface QueueFunction { + (this: TElement, next: () => void): void + } + + /** + * @see {@link https://api.jquery.com/animate/#animate-properties-options} + */ + interface EffectsOptions { + /** + * A function to be called when the animation on an element completes or stops without completing (its + * Promise object is either resolved or rejected). + */ + always?(this: TElement, animation: JQuery.Promise, jumpedToEnd: boolean): void + /** + * A function that is called once the animation on an element is complete. + */ + complete?(this: TElement): void + /** + * A function to be called when the animation on an element completes (its Promise object is resolved). + */ + done?(this: TElement, animation: JQuery.Promise, jumpedToEnd: boolean): void + /** + * A string or number determining how long the animation will run. + */ + duration?: Duration + /** + * A string indicating which easing function to use for the transition. + */ + easing?: string + /** + * A function to be called when the animation on an element fails to complete (its Promise object is rejected). + */ + fail?(this: TElement, animation: JQuery.Promise, jumpedToEnd: boolean): void + /** + * A function to be called after each step of the animation, only once per animated element regardless + * of the number of animated properties. + */ + progress?(this: TElement, animation: JQuery.Promise, progress: number, remainingMs: number): void + /** + * A Boolean indicating whether to place the animation in the effects queue. If false, the animation + * will begin immediately. As of jQuery 1.7, the queue option can also accept a string, in which case + * the animation is added to the queue represented by that string. When a custom queue nametranslate is used the + * animation does not automatically start; you must call .dequeue("queuename") to start it. + */ + queue?: boolean | string + /** + * An object containing one or more of the CSS properties defined by the properties argument and their + * corresponding easing functions. + */ + specialEasing?: PlainObject + /** + * A function to call when the animation on an element begins. + */ + start?(this: TElement, animation: JQuery.Promise): void + /** + * A function to be called for each animated property of each animated element. This function provides + * an opportunity to modify the Tween object to change the value of the property before it is set. + */ + step?(this: TElement, now: number, tween: Tween): void + } + + interface SpeedSettings { + /** + * A string or number determining how long the animation will run. + */ + duration?: Duration + /** + * A string indicating which easing function to use for the transition. + */ + easing?: string + /** + * A function to call once the animation is complete. + */ + complete?(this: TElement): void + } + + // This should be a class but doesn't work correctly under the JQuery namespace. Tween should be an inner class of jQuery. + // Undocumented + // https://github.com/jquery/api.jquery.com/issues/391 + // https://github.com/jquery/api.jquery.com/issues/61 + interface Tween { + easing: string + elem: TElement + end: number + now: number + options: EffectsOptions + pos: number + prop: string + start: number + unit: string + } + + interface AnimationHook { + (fx: JQuery.Tween): void + } + + // endregion + + // region Events + + // region Event + + // This should be a class but doesn't work correctly under the JQuery namespace. Event should be an inner class of jQuery. + + // Static members + interface EventStatic { + (event: string, properties?: T): JQuery.Event & T + (properties: T): JQuery.Event & T + new (event: string, properties?: T): JQuery.Event & T + new (properties: T): JQuery.Event & T + } + + // Instance members + interface Event { + /** + * Indicates whether the META key was pressed when the event fired. + * + * @see {@link https://api.jquery.com/event.metaKey/} + * @since 1.0.4 + */ + metaKey: boolean + /** + * The namespace specified when the event was triggered. + * + * @see {@link https://api.jquery.com/event.namespace/} + * @since 1.4.3 + */ + namespace: string + /** + * The mouse position relative to the left edge of the document. + * + * @see {@link https://api.jquery.com/event.pageX/} + * @since 1.0.4 + */ + pageX: number + /** + * The mouse position relative to the top edge of the document. + * + * @see {@link https://api.jquery.com/event.pageY/} + * @since 1.0.4 + */ + pageY: number + /** + * The last value returned by an event handler that was triggered by this event, unless the value was undefined. + * + * @see {@link https://api.jquery.com/event.result/} + * @since 1.3 + */ + result: any + /** + * The difference in milliseconds between the time the browser created the event and January 1, 1970. + * + * @see {@link https://api.jquery.com/event.timeStamp/} + * @since 1.2.6 + */ + timeStamp: number + /** + * Describes the nature of the event. + * + * @see {@link https://api.jquery.com/event.type/} + * @since 1.0 + */ + type: string + /** + * For key or mouse events, this property indicates the specific key or button that was pressed. + * + * @see {@link https://api.jquery.com/event.which/} + * @since 1.1.3 + */ + which: number + /** + * Returns whether event.preventDefault() was ever called on this event object. + * + * @see {@link https://api.jquery.com/event.isDefaultPrevented/} + * @since 1.3 + */ + isDefaultPrevented(): boolean + /** + * Returns whether event.stopImmediatePropagation() was ever called on this event object. + * + * @see {@link https://api.jquery.com/event.isImmediatePropagationStopped/} + * @since 1.3 + */ + isImmediatePropagationStopped(): boolean + /** + * Returns whether event.stopPropagation() was ever called on this event object. + * + * @see {@link https://api.jquery.com/event.isPropagationStopped/} + * @since 1.3 + */ + isPropagationStopped(): boolean + /** + * If this method is called, the default action of the event will not be triggered. + * + * @see {@link https://api.jquery.com/event.preventDefault/} + * @since 1.0 + */ + preventDefault(): void + /** + * Keeps the rest of the handlers from being executed and prevents the event from bubbling up the DOM tree. + * + * @see {@link https://api.jquery.com/event.stopImmediatePropagation/} + * @since 1.3 + */ + stopImmediatePropagation(): void + /** + * Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event. + * + * @see {@link https://api.jquery.com/event.stopPropagation/} + * @since 1.0 + */ + stopPropagation(): void + } + + // Generic members + interface Event extends Partial> { + /** + * The current DOM element within the event bubbling phase. + * + * @see {@link https://api.jquery.com/event.currentTarget/} + * @since 1.3 + */ + currentTarget: TTarget + /** + * An optional object of data passed to an event method when the current executing handler is bound. + * + * @see {@link https://api.jquery.com/event.data/} + * @since 1.1 + */ + data: TData + /** + * The element where the currently-called jQuery event handler was attached. + * + * @see {@link https://api.jquery.com/event.delegateTarget/} + * @since 1.7 + */ + delegateTarget: TTarget + originalEvent: _Event + /** + * The other DOM element involved in the event, if any. + * + * @see {@link https://api.jquery.com/event.relatedTarget/} + * @since 1.1.4 + */ + relatedTarget: TTarget | null + /** + * The DOM element that initiated the event. + * + * @see {@link https://api.jquery.com/event.target/} + * @since 1.0 + */ + target: TTarget + } + + interface EventLike { + type: string + } + + // endregion + + interface EventHandler extends EventHandlerBase> { } + + interface EventHandlerBase { + // Extra parameters can be passed from trigger() + (this: TContext, t: T, ...args: any[]): void | false | any + } + + // Provided for convenience for use with jQuery.Event.which + const enum Mouse { + None = 0, + Left = 1, + Middle = 2, + Right = 3 + } + + // Provided for convenience for use with jQuery.Event.which + const enum Key { + Backspace = 8, + Tab = 9, + Enter = 13, + Shift = 16, + Control = 17, + Alt = 18, + CapsLock = 20, + Escape = 27, + Space = 32, + PageUp = 33, + PageDown = 34, + End = 35, + Home = 36, + ArrowLeft = 37, + ArrowUp = 38, + ArrowRight = 39, + ArrowDown = 40, + + Semicolon = 186, + Colon = 186, + EqualsSign = 187, + Plus = 187, + Comma = 188, + LessThanSign = 188, + Minus = 189, + Underscore = 189, + Period = 190, + GreaterThanSign = 190, + ForwardSlash = 191, + QuestionMark = 191, + Backtick = 192, + Tilde = 192, + OpeningSquareBracket = 219, + OpeningCurlyBrace = 219, + Backslash = 220, + Pipe = 220, + ClosingSquareBracket = 221, + ClosingCurlyBrace = 221, + SingleQuote = 222, + DoubleQuote = 222, + + Pause = 19, + PrintScreen = 44, + Insert = 45, + Delete = 46, + Num0 = 48, + Num1 = 49, + Num2 = 50, + Num3 = 51, + Num4 = 52, + Num5 = 53, + Num6 = 54, + Num7 = 55, + Num8 = 56, + Num9 = 57, + A = 65, + B = 66, + C = 67, + D = 68, + E = 69, + F = 70, + G = 71, + H = 72, + I = 73, + J = 74, + K = 75, + L = 76, + M = 77, + N = 78, + O = 79, + P = 80, + Q = 81, + R = 82, + S = 83, + T = 84, + U = 85, + V = 86, + W = 87, + X = 88, + Y = 89, + Z = 90, + MetaLeft = 91, + MetaRight = 92, + ContextMenu = 93, + Numpad0 = 96, + Numpad1 = 97, + Numpad2 = 98, + Numpad3 = 99, + Numpad4 = 100, + Numpad5 = 101, + Numpad6 = 102, + Numpad7 = 103, + Numpad8 = 104, + Numpad9 = 105, + NumpadMultiply = 106, + NumpadAdd = 107, + NumpadSubtract = 109, + NumpadDecimal = 110, + NumpadDivide = 111, + F1 = 112, + F2 = 113, + F3 = 114, + F4 = 115, + F5 = 116, + F6 = 117, + F7 = 118, + F8 = 119, + F9 = 120, + F10 = 121, + F11 = 122, + F12 = 123, + NumLock = 144, + ScrollLock = 145 + } + + // endregion + + interface NameValuePair { + name: string + value: string + } + + interface Coordinates { + left: number + top: number + } + + interface ValHook { + get?(elem: TElement): any + set?(elem: TElement, value: any): any + } +} + +// region Legacy types + +interface JQueryCallback extends JQuery.Callbacks { } +interface JQueryDeferred extends JQuery.Deferred { } +interface JQueryEventConstructor extends JQuery.Event { } +interface JQueryDeferred extends JQuery.Deferred { } +interface JQueryAjaxSettings extends JQuery.AjaxSettings { } +interface JQueryAnimationOptions extends JQuery.EffectsOptions { } +interface JQueryCoordinates extends JQuery.Coordinates { } +interface JQueryGenericPromise extends JQuery.Thenable { } +interface JQueryXHR extends JQuery.jqXHR { } +interface JQueryPromise extends JQuery.Promise { } +interface JQuerySerializeArrayElement extends JQuery.NameValuePair { } + +/** + * @deprecated 1.9 + */ +interface JQuerySupport extends JQuery.PlainObject { } + +// Legacy types that are not represented in the current type definitions are marked deprecated. + +/** + * @deprecated + */ +interface JQueryPromiseCallback { + (value?: T, ...args: any[]): void +} +/** + * @deprecated + */ +interface JQueryParam { + /** + * Create a serialized representation of an array or object, suitable for use in a URL query string or Ajax request. + * + * @param obj An array or object to serialize. + * @param traditional A Boolean indicating whether to perform a traditional "shallow" serialization. + */ + (obj: any, traditional?: boolean): string +} +/** + * @deprecated + */ +interface BaseJQueryEventObject extends Event { + /** + * The current DOM element within the event bubbling phase. + * @see {@link https://api.jquery.com/event.currentTarget/} + */ + currentTarget: Element + /** + * An optional object of data passed to an event method when the current executing handler is bound. + * @see {@link https://api.jquery.com/event.data/} + */ + data: any + /** + * The element where the currently-called jQuery event handler was attached. + * @see {@link https://api.jquery.com/event.delegateTarget/} + */ + delegateTarget: Element + /** + * Returns whether event.preventDefault() was ever called on this event object. + * @see {@link https://api.jquery.com/event.isDefaultPrevented/} + */ + isDefaultPrevented(): boolean + /** + * Returns whether event.stopImmediatePropagation() was ever called on this event object. + * @see {@link https://api.jquery.com/event.isImmediatePropagationStopped/} + */ + isImmediatePropagationStopped(): boolean + /** + * Returns whether event.stopPropagation() was ever called on this event object. + * @see {@link https://api.jquery.com/event.isPropagationStopped/} + */ + isPropagationStopped(): boolean + /** + * The namespace specified when the event was triggered. + * @see {@link https://api.jquery.com/event.namespace/} + */ + namespace: string + /** + * The browser's original Event object. + * @see {@link https://api.jquery.com/category/events/event-object/} + */ + originalEvent: Event + /** + * If this method is called, the default action of the event will not be triggered. + * @see {@link https://api.jquery.com/event.preventDefault/} + */ + preventDefault(): any + /** + * The other DOM element involved in the event, if any. + * @see {@link https://api.jquery.com/event.relatedTarget/} + */ + relatedTarget: Element + /** + * The last value returned by an event handler that was triggered by this event, unless the value was undefined. + * @see {@link https://api.jquery.com/event.result/} + */ + result: any + /** + * Keeps the rest of the handlers from being executed and prevents the event from bubbling up the DOM tree. + * @see {@link https://api.jquery.com/event.stopImmediatePropagation/} + */ + stopImmediatePropagation(): void + /** + * Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event. + * @see {@link https://api.jquery.com/event.stopPropagation/} + */ + stopPropagation(): void + /** + * The DOM element that initiated the event. + * @see {@link https://api.jquery.com/event.target/} + */ + target: Element + /** + * The mouse position relative to the left edge of the document. + * @see {@link https://api.jquery.com/event.pageX/} + */ + pageX: number + /** + * The mouse position relative to the top edge of the document. + * @see {@link https://api.jquery.com/event.pageY/} + */ + pageY: number + /** + * For key or mouse events, this property indicates the specific key or button that was pressed. + * @see {@link https://api.jquery.com/event.which/} + */ + which: number + /** + * Indicates whether the META key was pressed when the event fired. + * @see {@link https://api.jquery.com/event.metaKey/} + */ + metaKey: boolean +} +/** + * @deprecated + */ +interface JQueryInputEventObject extends BaseJQueryEventObject { + altKey: boolean + ctrlKey: boolean + metaKey: boolean + shiftKey: boolean +} +/** + * @deprecated + */ +interface JQueryMouseEventObject extends JQueryInputEventObject { + button: number + clientX: number + clientY: number + offsetX: number + offsetY: number + pageX: number + pageY: number + screenX: number + screenY: number +} +/** + * @deprecated + */ +interface JQueryKeyEventObject extends JQueryInputEventObject { + char: any + charCode: number + key: any + keyCode: number +} +/** + * @deprecated + */ +interface JQueryEventObject extends BaseJQueryEventObject, JQueryInputEventObject, JQueryMouseEventObject, JQueryKeyEventObject { } +/** + * @deprecated + */ +interface JQueryPromiseOperator { + (callback1: JQuery.TypeOrArray>, + ...callbacksN: Array>>): JQueryPromise +} +/** + * @deprecated + */ +interface JQueryEasingFunction { + (percent: number): number +} +/** + * @deprecated + */ +interface JQueryEasingFunctions { + [name: string]: JQueryEasingFunction + linear: JQueryEasingFunction + swing: JQueryEasingFunction +} + +// endregion diff --git a/src/js/fetch.js b/src/js/fetch.js new file mode 100755 index 00000000..82686a21 --- /dev/null +++ b/src/js/fetch.js @@ -0,0 +1,457 @@ +(function (self) { + if (self.fetch) { + return + } + + const support = { + searchParams: 'URLSearchParams' in self, + iterable: 'Symbol' in self && 'iterator' in Symbol, + blob: 'FileReader' in self && 'Blob' in self && (function () { + try { + new Blob() + return true + } catch (e) { + return false + } + }()), + formData: 'FormData' in self, + arrayBuffer: 'ArrayBuffer' in self, + } + + if (support.arrayBuffer) { + const viewClasses = [ + '[object Int8Array]', + '[object Uint8Array]', + '[object Uint8ClampedArray]', + '[object Int16Array]', + '[object Uint16Array]', + '[object Int32Array]', + '[object Uint32Array]', + '[object Float32Array]', + '[object Float64Array]', + ] + + var isDataView = function (obj) { + return obj && DataView.prototype.isPrototypeOf(obj) + } + + var isArrayBufferView = ArrayBuffer.isView || function (obj) { + return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1 + } + } + + function normalizeName(name) { + if (typeof name !== 'string') { + name = String(name) + } + if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) { + throw new TypeError('Invalid character in header field nametranslate') + } + return name.toLowerCase() + } + + function normalizeValue(value) { + if (typeof value !== 'string') { + value = String(value) + } + return value + } + + // Build a destructive iterator for the value list + function iteratorFor(items) { + const iterator = { + next() { + const value = items.shift() + return { done: value === undefined, value } + }, + } + + if (support.iterable) { + iterator[Symbol.iterator] = function () { + return iterator + } + } + + return iterator + } + + function Headers(headers) { + this.map = {} + + if (headers instanceof Headers) { + headers.forEach(function (value, name) { + this.append(name, value) + }, this) + } else if (Array.isArray(headers)) { + headers.forEach(function (header) { + this.append(header[0], header[1]) + }, this) + } else if (headers) { + Object.getOwnPropertyNames(headers).forEach(function (name) { + this.append(name, headers[name]) + }, this) + } + } + + Headers.prototype.append = function (name, value) { + name = normalizeName(name) + value = normalizeValue(value) + const oldValue = this.map[name] + this.map[name] = oldValue ? `${oldValue},${value}` : value + } + + Headers.prototype.delete = function (name) { + delete this.map[normalizeName(name)] + } + + Headers.prototype.get = function (name) { + name = normalizeName(name) + return this.has(name) ? this.map[name] : null + } + + Headers.prototype.has = function (name) { + return this.map.hasOwnProperty(normalizeName(name)) + } + + Headers.prototype.set = function (name, value) { + this.map[normalizeName(name)] = normalizeValue(value) + } + + Headers.prototype.forEach = function (callback, thisArg) { + for (const name in this.map) { + if (this.map.hasOwnProperty(name)) { + callback.call(thisArg, this.map[name], name, this) + } + } + } + + Headers.prototype.keys = function () { + const items = [] + this.forEach((value, name) => { items.push(name) }) + return iteratorFor(items) + } + + Headers.prototype.values = function () { + const items = [] + this.forEach((value) => { items.push(value) }) + return iteratorFor(items) + } + + Headers.prototype.entries = function () { + const items = [] + this.forEach((value, name) => { items.push([name, value]) }) + return iteratorFor(items) + } + + if (support.iterable) { + Headers.prototype[Symbol.iterator] = Headers.prototype.entries + } + + function consumed(body) { + if (body.bodyUsed) { + return Promise.reject(new TypeError('Already read')) + } + body.bodyUsed = true + } + + function fileReaderReady(reader) { + return new Promise((resolve, reject) => { + reader.onload = function () { + resolve(reader.result) + } + reader.onerror = function () { + reject(reader.error) + } + }) + } + + function readBlobAsArrayBuffer(blob) { + const reader = new FileReader() + const promise = fileReaderReady(reader) + reader.readAsArrayBuffer(blob) + return promise + } + + function readBlobAsText(blob) { + const reader = new FileReader() + const promise = fileReaderReady(reader) + reader.readAsText(blob) + return promise + } + + function readArrayBufferAsText(buf) { + const view = new Uint8Array(buf) + const chars = new Array(view.length) + + for (let i = 0; i < view.length; i++) { + chars[i] = String.fromCharCode(view[i]) + } + return chars.join('') + } + + function bufferClone(buf) { + if (buf.slice) { + return buf.slice(0) + } + const view = new Uint8Array(buf.byteLength) + view.set(new Uint8Array(buf)) + return view.buffer + } + + function Body() { + this.bodyUsed = false + + this._initBody = function (body) { + this._bodyInit = body + if (!body) { + this._bodyText = '' + } else if (typeof body === 'string') { + this._bodyText = body + } else if (support.blob && Blob.prototype.isPrototypeOf(body)) { + this._bodyBlob = body + } else if (support.formData && FormData.prototype.isPrototypeOf(body)) { + this._bodyFormData = body + } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { + this._bodyText = body.toString() + } else if (support.arrayBuffer && support.blob && isDataView(body)) { + this._bodyArrayBuffer = bufferClone(body.buffer) + // IE 10-11 can't handle a DataView body. + this._bodyInit = new Blob([this._bodyArrayBuffer]) + } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) { + this._bodyArrayBuffer = bufferClone(body) + } else { + throw new Error('unsupported BodyInit type') + } + + if (!this.headers.get('content-type')) { + if (typeof body === 'string') { + this.headers.set('content-type', 'text/plain;charset=UTF-8') + } else if (this._bodyBlob && this._bodyBlob.type) { + this.headers.set('content-type', this._bodyBlob.type) + } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { + this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8') + } + } + } + + if (support.blob) { + this.blob = function () { + const rejected = consumed(this) + if (rejected) { + return rejected + } + + if (this._bodyBlob) { + return Promise.resolve(this._bodyBlob) + } if (this._bodyArrayBuffer) { + return Promise.resolve(new Blob([this._bodyArrayBuffer])) + } if (this._bodyFormData) { + throw new Error('could not read FormData body as blob') + } else { + return Promise.resolve(new Blob([this._bodyText])) + } + } + + this.arrayBuffer = function () { + if (this._bodyArrayBuffer) { + return consumed(this) || Promise.resolve(this._bodyArrayBuffer) + } + return this.blob().then(readBlobAsArrayBuffer) + } + } + + this.text = function () { + const rejected = consumed(this) + if (rejected) { + return rejected + } + + if (this._bodyBlob) { + return readBlobAsText(this._bodyBlob) + } if (this._bodyArrayBuffer) { + return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer)) + } if (this._bodyFormData) { + throw new Error('could not read FormData body as text') + } else { + return Promise.resolve(this._bodyText) + } + } + + if (support.formData) { + this.formData = function () { + return this.text().then(decode) + } + } + + this.json = function () { + return this.text().then(JSON.parse) + } + + return this + } + + // HTTP methods whose capitalization should be normalized + const methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT', 'PATCH'] + + function normalizeMethod(method) { + const upcased = method.toUpperCase() + return (methods.indexOf(upcased) > -1) ? upcased : method + } + + function Request(input, options) { + options = options || {} + let { body } = options + + if (input instanceof Request) { + if (input.bodyUsed) { + throw new TypeError('Already read') + } + this.url = input.url + this.credentials = input.credentials + if (!options.headers) { + this.headers = new Headers(input.headers) + } + this.method = input.method + this.mode = input.mode + if (!body && input._bodyInit != null) { + body = input._bodyInit + input.bodyUsed = true + } + } else { + this.url = String(input) + } + + this.credentials = options.credentials || this.credentials || 'omit' + if (options.headers || !this.headers) { + this.headers = new Headers(options.headers) + } + this.method = normalizeMethod(options.method || this.method || 'GET') + this.mode = options.mode || this.mode || null + this.referrer = null + + if ((this.method === 'GET' || this.method === 'HEAD') && body) { + throw new TypeError('Body not allowed for GET or HEAD requests') + } + this._initBody(body) + } + + Request.prototype.clone = function () { + return new Request(this, { body: this._bodyInit }) + } + + function decode(body) { + const form = new FormData() + body.trim().split('&').forEach((bytes) => { + if (bytes) { + const split = bytes.split('=') + const name = split.shift().replace(/\+/g, ' ') + const value = split.join('=').replace(/\+/g, ' ') + form.append(decodeURIComponent(name), decodeURIComponent(value)) + } + }) + return form + } + + function parseHeaders(rawHeaders) { + const headers = new Headers() + rawHeaders.split(/\r?\n/).forEach((line) => { + const parts = line.split(':') + const key = parts.shift().trim() + if (key) { + const value = parts.join(':').trim() + headers.append(key, value) + } + }) + return headers + } + + Body.call(Request.prototype) + + function Response(bodyInit, options) { + if (!options) { + options = {} + } + + this.type = 'default' + this.status = 'status' in options ? options.status : 200 + this.ok = this.status >= 200 && this.status < 300 + this.statusText = 'statusText' in options ? options.statusText : 'OK' + this.headers = new Headers(options.headers) + this.url = options.url || '' + this._initBody(bodyInit) + } + + Body.call(Response.prototype) + + Response.prototype.clone = function () { + return new Response(this._bodyInit, { + status: this.status, + statusText: this.statusText, + headers: new Headers(this.headers), + url: this.url, + }) + } + + Response.error = function () { + const response = new Response(null, { status: 0, statusText: '' }) + response.type = 'error' + return response + } + + const redirectStatuses = [301, 302, 303, 307, 308] + + Response.redirect = function (url, status) { + if (redirectStatuses.indexOf(status) === -1) { + throw new RangeError('Invalid status code') + } + + return new Response(null, { status, headers: { location: url } }) + } + + self.Headers = Headers + self.Request = Request + self.Response = Response + + self.fetch = function (input, init) { + return new Promise((resolve, reject) => { + const request = new Request(input, init) + const xhr = new XMLHttpRequest() + + xhr.onload = function () { + const options = { + status: xhr.status, + statusText: xhr.statusText, + headers: parseHeaders(xhr.getAllResponseHeaders() || ''), + } + options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL') + const body = 'response' in xhr ? xhr.response : xhr.responseText + resolve(new Response(body, options)) + } + + xhr.onerror = function () { + reject(new TypeError('Network request failed')) + } + + xhr.ontimeout = function () { + reject(new TypeError('Network request failed')) + } + + xhr.open(request.method, request.url, true) + + if (request.credentials === 'include') { + xhr.withCredentials = true + } + + if ('responseType' in xhr && support.blob) { + xhr.responseType = 'blob' + } + + request.headers.forEach((value, name) => { + xhr.setRequestHeader(name, value) + }) + + xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit) + }) + } + self.fetch.polyfill = true +}(typeof self !== 'undefined' ? self : this)); diff --git a/src/js/immortal-db.min.js b/src/js/immortal-db.min.js new file mode 100755 index 00000000..7735d363 --- /dev/null +++ b/src/js/immortal-db.min.js @@ -0,0 +1,8 @@ +var ImmortalDB=function(t){var r={};function n(e){if(r[e])return r[e].exports;var o=r[e]={i:e,l:!1,exports:{}};return t[e].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=r,n.d=function(t,r,e){n.o(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:e})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,r){if(1&r&&(t=n(t)),8&r)return t;if(4&r&&"object"==typeof t&&t&&t.__esModule)return t;var e=Object.create(null);if(n.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:t}),2&r&&"string"!=typeof t)for(var o in t)n.d(e,o,function(r){return t[r]}.bind(null,o));return e},n.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(r,"a",r),r},n.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},n.p="",n(n.s=68)}([function(t,r,n){var e=n(39)("wks"),o=n(19),i=n(1).Symbol,u="function"==typeof i;(t.exports=function(t){return e[t]||(e[t]=u&&i[t]||(u?i:o)("Symbol."+t))}).store=e},function(t,r){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,r){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,r,n){var e=n(1),o=n(13),i=n(10),u=n(12),c=n(7),a=function(t,r,n){var s,f,l,p,h=t&a.F,v=t&a.G,y=t&a.S,d=t&a.P,m=t&a.B,g=v?e:y?e[r]||(e[r]={}):(e[r]||{}).prototype,w=v?o:o[r]||(o[r]={}),x=w.prototype||(w.prototype={});for(s in v&&(n=r),n)l=((f=!h&&g&&void 0!==g[s])?g:n)[s],p=m&&f?c(l,e):d&&"function"==typeof l?c(Function.call,l):l,g&&u(g,s,l,t&a.U),w[s]!=l&&i(w,s,p),d&&x[s]!=l&&(x[s]=l)};e.core=o,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},function(t,r,n){var e=n(6),o=n(67),i=n(43),u=Object.defineProperty;r.f=n(5)?Object.defineProperty:function(t,r,n){if(e(t),r=i(r,!0),e(n),o)try{return u(t,r,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[r]=n.value),t}},function(t,r,n){t.exports=!n(9)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,r,n){var e=n(2);t.exports=function(t){if(!e(t))throw TypeError(t+" is not an object!");return t}},function(t,r,n){var e=n(18);t.exports=function(t,r,n){if(e(t),void 0===r)return t;switch(n){case 1:return function(n){return t.call(r,n)};case 2:return function(n,e){return t.call(r,n,e)};case 3:return function(n,e,o){return t.call(r,n,e,o)}}return function(){return t.apply(r,arguments)}}},function(t,r){var n={}.hasOwnProperty;t.exports=function(t,r){return n.call(t,r)}},function(t,r){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,r,n){var e=n(4),o=n(20);t.exports=n(5)?function(t,r,n){return e.f(t,r,o(1,n))}:function(t,r,n){return t[r]=n,t}},function(t,r,n){var e=n(61),o=n(41);t.exports=function(t){return e(o(t))}},function(t,r,n){var e=n(1),o=n(10),i=n(8),u=n(19)("src"),c=Function.toString,a=(""+c).split("toString");n(13).inspectSource=function(t){return c.call(t)},(t.exports=function(t,r,n,c){var s="function"==typeof n;s&&(i(n,"name")||o(n,"name",r)),t[r]!==n&&(s&&(i(n,u)||o(n,u,t[r]?""+t[r]:a.join(String(r)))),t===e?t[r]=n:c?t[r]?t[r]=n:o(t,r,n):(delete t[r],o(t,r,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[u]||c.call(this)})},function(t,r){var n=t.exports={version:"2.6.1"};"number"==typeof __e&&(__e=n)},function(t,r,n){var e=n(4).f,o=n(8),i=n(0)("toStringTag");t.exports=function(t,r,n){t&&!o(t=n?t:t.prototype,i)&&e(t,i,{configurable:!0,value:r})}},function(t,r){t.exports=!1},function(t,r){t.exports={}},function(t,r){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,r){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,r){var n=0,e=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+e).toString(36))}},function(t,r){t.exports=function(t,r){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:r}}},function(t,r,n){var e=n(6),o=n(83),i=n(31),u=n(32)("IE_PROTO"),c=function(){},a=function(){var t,r=n(44)("iframe"),e=i.length;for(r.style.display="none",n(59).appendChild(r),r.src="javascript:",(t=r.contentWindow.document).open(),t.write(" diff --git a/src/layouts/drawer/drawer.scss b/src/layouts/drawer/drawer.scss new file mode 100755 index 00000000..e427ce66 --- /dev/null +++ b/src/layouts/drawer/drawer.scss @@ -0,0 +1,49 @@ +.background-red { + background-color: red; + padding: 2px; +} + +.fixed-bottom { + margin-bottom: 1%; +} + +.fixed-bottom a img { + width: 25px; + height: 25px; +} + +#avatar { + padding: 20px; +} + +#profile { + background-color: #009688; +} + +#user-name { + left: 90px; + bottom: 77px; + position: relative; + width: 159px; +} + +#user-actions { + //left: 90px; + //bottom: 40px; + //position: relative; + //width: 171px; +} + +#menu-collapse { + margin-top: 5%; +} + +.fixed-left:hover { + cursor: ew-resize; +} + +footer { + small { + color: red; + } +} diff --git a/src/layouts/drawer/drawer.ts b/src/layouts/drawer/drawer.ts new file mode 100755 index 00000000..5865ce1d --- /dev/null +++ b/src/layouts/drawer/drawer.ts @@ -0,0 +1,20 @@ +import { defineComponent } from 'vue' +import menuOne from '../menuone/menuOne.vue' + +export default defineComponent({ + name: 'Drawer', + components: { + menuOne, + }, + props: { + clBase: { + type: String, + required: false, + default: 'my-menu', + }, + }, + + setup(props) { + return {} + }, +}) diff --git a/src/layouts/drawer/drawer.vue b/src/layouts/drawer/drawer.vue new file mode 100755 index 00000000..b46842cb --- /dev/null +++ b/src/layouts/drawer/drawer.vue @@ -0,0 +1,11 @@ + + + + diff --git a/src/layouts/menuone/menuOne.scss b/src/layouts/menuone/menuOne.scss new file mode 100755 index 00000000..97aae1f9 --- /dev/null +++ b/src/layouts/menuone/menuOne.scss @@ -0,0 +1,129 @@ +.q-list-header { + min-height: 12px; + padding: 5px 8px; +} + +.menu-hr { + border-color: #dedede; + height: 0.5px; +} + +.router-link-active { + color: #027be3; + background-color: #dadada !important; + border-right: 2px solid #027be3; +} + +.list-label:first-child { + line-height: 20px; + padding: 5px; + margin: 1px; +} + +/* +.menu-enter-active, .scale-enter { + -webkit-animation: moveFromTopFade .5s ease both; + animation: moveFromTopFade .5s ease both; +} + +.menu-leave-to, .scale-leave-active { + -webkit-animation: moveToBottom .5s ease both; + animation: moveToBottom .5s ease both; +} +*/ + +.router-link-active { + color: #027be3; + background-color: #dadada !important; + border-right: 2px solid #027be3; +} + +.router-link-active .item-primary { + color: #027be3; +} + +.menu_freccina { + position: absolute; + right: 10px; + display: inline-block; + padding: 0 0px 0px 0px; + -webkit-transform: rotate(-180deg); + transform: rotate(-180deg); +} + +.my-menu, .my-menu > i{ + min-height: 40px; + min-width: 26px; + font-size: 1rem; +} + +.my-menu-small, .my-menu-small > i{ + min-height: 40px; + min-width: 26px; + font-size: 0.75rem; +} + +.isAdmin { + color: red; +} + +.isSocioResidente { + color: darkgreen; +} + +.isCalendar { + color: #fff241; +} + +.isManager { + color: green; +} + +.isTutor { + color: #201a80; +} + +.my-menu-icon{ + min-width: 2px; + font-size: 1rem; +} + +.my-menu-icon > i{ + min-width: 26px; + font-size: 1.25rem; +} + +.clexpansion{ + min-width: 0px !important; +} + +.my-menu-active { + background-color: rgba(174, 189, 241, 0.71); +} + +.my-menu-separat > i{ + min-width: 26px; + font-size: 1rem; +} + +.my-menu-icon-none > i{ + display: none; +} + +.clicon img, .clicon { + font-size: 16px; +} + +.q-item__section--avatar{ + min-width: 30px; +} + +.q-item__section--side{ + padding-right: 8px; +} + + +.imgicon img { + font-size: 2.5rem !important; + border-radius: 8px; +} diff --git a/src/layouts/menuone/menuOne.ts b/src/layouts/menuone/menuOne.ts new file mode 100755 index 00000000..dafa166e --- /dev/null +++ b/src/layouts/menuone/menuOne.ts @@ -0,0 +1,88 @@ +import { IListRoutes } from '@src/model' +import { useGlobalStore } from '@store/globalStore' +import { tools } from '@store/Modules/tools' +import { computed, defineComponent, watch } from 'vue' +import { useRoute } from 'vue-router' + +export default defineComponent({ + name: 'MenuOne', + props: { + clBase: { + type: String, + required: false, + default: 'my-menu', + }, + }, + + setup(props) { + const route = useRoute() + + const path = computed(() => route.path) + + function getmenu(): any { + const globalStore = useGlobalStore() + return globalStore.getmenu + } + + function setParentVisibilityBasedOnRoute(parent: any) { + parent.routes.forEach((item: any) => { + if (path.value === item.path) { + parent.show = true + } + }) + } + + watch(path, (to: string, from: string) => { + Object.keys(getmenu()).forEach((parentName: any) => { + // @ts-ignore + setParentVisibilityBasedOnRoute(getmenu[parentName]) + }) + }) + + function isfinishLoading() { + const globalStore = useGlobalStore() + return globalStore.finishLoading + } + + /* function replaceUnderlineToSpace(text: string) { + while (text.indexOf('_') !== -1) { + text = text.replace('_', ' ') + } + return text + } */ + + function getroute(elem: IListRoutes) { + if (elem.idelem) { + return tools.getUrlByTipoProj(elem.urlroute ? elem.urlroute : '') + elem.idelem + } + return elem.path + } + + function getmymenuclass(elem: IListRoutes) { + let menu: string = props.clBase + + if (elem.color) { + menu += ` ${elem.color}` + } else { + if (elem.onlyAdmin) menu += ' isAdmin' + if (elem.onlyManager) menu += ' isManager' + if (elem.onlySocioResidente) menu += ' isSocioResidente' + if (elem.onlyConsiglio) menu += ' isConsiglio' + if (elem.onlyDepartment) menu += ' isDepartment' + if (elem.onlyTutor) menu += ' isTutor' + if (elem.onlyEditor) menu += ' isEditor' + } + + if (elem.extraclass) menu += ` ${elem.extraclass}` + + return menu + } + + return { + getmenu, + isfinishLoading, + getmymenuclass, + getroute, + } + }, +}) diff --git a/src/layouts/menuone/menuOne.vue b/src/layouts/menuone/menuOne.vue new file mode 100755 index 00000000..d18fda65 --- /dev/null +++ b/src/layouts/menuone/menuOne.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/src/layouts/toolbar/messagePopover/messagePopover.scss b/src/layouts/toolbar/messagePopover/messagePopover.scss new file mode 100755 index 00000000..771673dc --- /dev/null +++ b/src/layouts/toolbar/messagePopover/messagePopover.scss @@ -0,0 +1,17 @@ +.list { + max-width: 400px; +} + +.item > img.item-primary:not(.thumbnail) { + border-radius: 10px !important; +} + +.item > img.item-primary { + width: 48px; + height: 46px; +} + +.item > .item-secondary { + width: 57px; + font-size: 13px; +} diff --git a/src/layouts/toolbar/messagePopover/messagePopover.ts b/src/layouts/toolbar/messagePopover/messagePopover.ts new file mode 100755 index 00000000..1afcaa7d --- /dev/null +++ b/src/layouts/toolbar/messagePopover/messagePopover.ts @@ -0,0 +1,81 @@ +import { defineComponent } from 'vue' + +import { + IMessage, +} from '@model' + +import './messagePopover.scss' +import { tools } from '@src/store/Modules/tools' + +import { useRouter } from 'vue-router' +import MixinUsers from '../../../mixins/mixin-users' + +const namespace = 'MessageModule' + +export default defineComponent({ + name: 'MessagePopover', + + mixins: [MixinUsers], + + setup(props) { + const $router = useRouter() + // function lasts_messages (state: IUserState) => IMessage[] { + // + // } + + function lasts_messages() { + // ++Todo: lasts_messages + return [] + } + + // if (GlobalStore.state.posts.length < 1) { + // this.requestPosts() + // } + function created() {} + + function clickChat(msg: IMessage) { + // $router.replace(`/messages/${ msg.dest.username}`) + } + + function getNumNotifUnread() { + return 0 + } + + function randomDate(): Date { + const myval = Math.floor(Math.random() * 10000000000) + return tools.getstrDateTime(new Date(tools.getTimestampsNow() - myval)) + } + + function randomAvatarUrl() { + // return `https://api.adorable.io/avatars/face/${this.randomEye()}/${this.randomNose()}/${this.randomMouth()}/${this.randomHexColor()}` + } + + function randomHexColor() { + return Math.random().toString(16).slice(2, 8) + } + + function randomArrayElement(array: any) { + return array[Math.floor((Math.random() * array.length))] + } + + /* + function randomEye() { + return this.randomArrayElement(['eyes1', 'eyes10', 'eyes2', 'eyes3', 'eyes4', 'eyes5', 'eyes6', 'eyes7', 'eyes9']) + } + + function randomNose() { + return this.randomArrayElement(['nose2', 'nose3', 'nose4', 'nose5', 'nose6', 'nose7', 'nose8', 'nose9']) + } + + function randomMouth() { + return this.randomArrayElement(['mouth1', 'mouth10', 'mouth11', 'mouth3', 'mouth5', 'mouth6', 'mouth7', 'mouth9']) + } + + */ + + return { + lasts_messages, + clickChat, + } + }, +}) diff --git a/src/layouts/toolbar/messagePopover/messagePopover.vue b/src/layouts/toolbar/messagePopover/messagePopover.vue new file mode 100755 index 00000000..70c26d98 --- /dev/null +++ b/src/layouts/toolbar/messagePopover/messagePopover.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/local-storage/index.ts b/src/local-storage/index.ts new file mode 100755 index 00000000..35c59efb --- /dev/null +++ b/src/local-storage/index.ts @@ -0,0 +1,60 @@ +import { LocalStorage } from 'quasar' + +let authorized = false + +export default () => Promise.resolve(true) + +// #Todo: Fix localStorage security ... +/* + if (config.localStorage.enableListener) { + window.addEventListener('storage', (e) => { + if (!authorized) { + console.warn('Unauthorized local storage change') + switch (config.localStorage.unauthChange) { + case 'block': + if (e.key === 'null' || e.key === null) { + reload() + } else { + _LocalStorage.setNative(e.key, e.oldValue) + } + break + case 'clear': + reload() + break + default: + reload() + break + } + } + }, false) + } + */ +const reload = () => { + // onFail().then(success => appSetup()) +} + +export const _LocalStorage = { + setNative(key: any, value: any) { + authorized = true + localStorage.setItem(key, value) + authorized = false + }, + set(key: any, value: any) { + authorized = true + LocalStorage.set(key, value) + authorized = false + }, + remove(key: any) { + authorized = true + LocalStorage.remove(key) + authorized = false + }, + clear() { + authorized = true + LocalStorage.clear() + authorized = false + }, + get(key: any) { + return LocalStorage.get.item(key) + }, +} diff --git a/src/middleware/auth.ts b/src/middleware/auth.ts new file mode 100755 index 00000000..fb23286c --- /dev/null +++ b/src/middleware/auth.ts @@ -0,0 +1,11 @@ +import { toolsext } from '@store/Modules/toolsext' +import { tools } from '@store/Modules/tools' + +export default function auth({ next, router }: { next: any, router: any }) { + const tok = tools.getItemLS(toolsext.localStorage.token) + if (!tok) { + return router.push({ name: 'login' }) + } + + return next() +} diff --git a/src/mixins/mixin-base.ts b/src/mixins/mixin-base.ts new file mode 100755 index 00000000..dd720a50 --- /dev/null +++ b/src/mixins/mixin-base.ts @@ -0,0 +1,189 @@ +import { toolsext } from '@src/store/Modules/toolsext' + +import { useI18n } from '@src/boot/i18n' + +// import { fieldsTable } from '@src/store/Modules/fieldsTable' +import MixinMetaTags from '@src/mixins/mixin-metatags' + +import { useUserStore } from '@store/UserStore' +import { useGlobalStore } from '@store/globalStore' +import { useQuasar } from 'quasar' +import { IDataPass } from '@model' +import { shared_consts } from '../common/shared_vuejs' +import { tools } from '../store/Modules/tools' +import { func_tools } from '../store/Modules/toolsext' +import { costanti } from '@costanti' + +// You can declare a mixin as the same style as components. +export const MixinBase = { + created() { + + }, + mythis() { + return this + }, + + showNotif(msg: string) { + const $q = useQuasar() + + const { t } = useI18n(); + + tools.showNotif($q, t(msg)) + }, + + db_fieldsTable() { + // return fieldsTable + }, + + getValDb(keystr: string, serv: boolean, def?: any, table?: string, subkey?: any, id?: any, idmain?: any) { + console.log('getValDb') + return toolsext.getValDb(keystr, serv, def, table, subkey, id, idmain) + }, + + getValDbLang(keystr: string, serv: boolean, def?: any, table?: string, subkey?: any) { + let ris = toolsext.getValDb(`${keystr}_${toolsext.getLocale()}`, serv, def, table, subkey) + if (ris === def) ris = toolsext.getValDb(`${keystr}_it`, serv, def, table, subkey) + return ris + }, + + async setValDb(key: string, value: any, type: any, serv: boolean, table?: string, subkey?: string, id?: any) { + const userStore = useUserStore() + const globalStore = useGlobalStore() + const $q = useQuasar() + const { t } = useI18n(); + + // console.log('setValDb', key, value, serv, table, subkey) + let mydatatosave: IDataPass | null = null + if (table === 'users') { + const myid = userStore.my._id + + const myfield: any = {} + + if (key === 'profile') { + // @ts-ignore + userStore.my.profile[subkey] = value + } else { + // @ts-ignore + userStore.my[key] = value + } + + // Save to the DB: + if (subkey) { + myfield[`${key}.${subkey}`] = value + } else { + myfield[key] = value + } + + // console.log('myfield', myfield) + + mydatatosave = { + id: myid, + table, + fieldsvalue: myfield, + } + } else if (table === 'todos') { + const myfield: any = {} + + // Save to the DB: + if (subkey) { + myfield[`${key}.${subkey}`] = value + } else { + myfield[key] = value + } + + // console.log('myfield', myfield) + + mydatatosave = { + id, + table, + fieldsvalue: myfield, + } + } else if (table === 'settings') { + globalStore.setValueSettingsByKey({ key, value, serv }) + + let myrec = globalStore.getrecSettingsByKey(key, serv) + if (myrec === undefined) { + myrec = { + idapp: process.env.APP_ID, + key, + type, + } + myrec.serv = serv + if ((myrec.type === costanti.FieldType.date) || (myrec.type === costanti.FieldType.onlydate)) myrec.value_date = value + else if ((myrec.type === costanti.FieldType.number) || (myrec.type === costanti.FieldType.hours)) myrec.value_num = value + else if (myrec.type === costanti.FieldType.boolean) myrec.value_bool = value + else myrec.value_str = value + + myrec = await tools.createNewRecord($q, 'settings', myrec).then( + (myrecris) => { + // console.log('myrec') + let recsett = null + if (serv) recsett = globalStore.serv_settings + else recsett = globalStore.settings + + if (myrecris) recsett.push(myrecris) + // @ts-ignore + return recsett.find((rec) => rec.key === key) + }, + ) + } + // console.log('myrec', myrec) + + mydatatosave = { + // @ts-ignore + id: myrec ? myrec._id : '', + table: 'settings', + // @ts-ignore + fieldsvalue: myrec, + } + } else { + const myfield: any = {} + + // Save to the DB: + if (subkey) { + myfield[`${key}.${subkey}`] = value + } else { + myfield[key] = value + } + + // console.log('myfield', myfield) + + mydatatosave = { + id, + table: table || '', + fieldsvalue: myfield, + } + } + + // console.log('mydatatosave', mydatatosave) + + // @ts-ignore + globalStore.saveFieldValue(mydatatosave).then((esito) => { + if (esito) { + tools.showPositiveNotif($q, t('db.recupdated')) + } else { + tools.showNegativeNotif($q, t('db.recfailed')) + // Undo... + } + }) + }, + + getarrValDb(keystr: string, serv: boolean) { + const globalStore = useGlobalStore() + + const myval = globalStore.getValueSettingsByKey(keystr, serv) + // console.log('myval', myval) + try { + if (myval) { + const myrec: any = JSON.parse(myval) + // console.log('*************** getarrValDb') + // console.table(myrec) + return myrec + } + return [] + } catch (e) { + return [] + } + }, + +} diff --git a/src/mixins/mixin-metatags.ts b/src/mixins/mixin-metatags.ts new file mode 100755 index 00000000..7d8f217b --- /dev/null +++ b/src/mixins/mixin-metatags.ts @@ -0,0 +1,34 @@ +import { + defineComponent, ref, +} from 'vue' +import { IMetaTags } from '@model' +import { tools } from '@store/Modules/tools' +import { useQuasar } from 'quasar' + +// You can declare a mixin as the same style as components. +export default defineComponent({ + name: 'MixinMetaTags', + setup() { + const mymeta = ref({ title: '', description: '', keywords: '' }) + + const $q = useQuasar() + + function setmeta(mym: IMetaTags) { + mymeta.value = mym + } + + function getsrcbyimg(myimg: string) { + // return src + const filefull = tools.getimgFullpathbysize(myimg) + + return tools.getimgbysize(filefull.path, filefull.file) + } + + return { + $q, + setmeta, + getsrcbyimg, + } + }, + +}) diff --git a/src/mixins/mixin-users.ts b/src/mixins/mixin-users.ts new file mode 100755 index 00000000..665a41fa --- /dev/null +++ b/src/mixins/mixin-users.ts @@ -0,0 +1,153 @@ +import { Vue, Options } from 'vue-class-component' +import { defineComponent, ref } from 'vue' + +import { IMessage } from '@src/model' +import { useUserStore } from '@store/UserStore' +import { useGlobalStore } from '@store/globalStore' +import { tools } from '../store/Modules/tools' +import { func_tools } from '../store/Modules/toolsext' + +// You can declare a mixin as the same style as components. +export default defineComponent({ + name: 'MixinUsers', + setup(props) { + function getUserByUsername(username: string) { + const userStore = useUserStore() + return userStore.getNameSurnameByUsername(username) + } + + function getImgByUsername(username: string) { + const userStore = useUserStore() + return `public/${userStore.getImgByUsername(username)}` + } + + function isValidUsername(username: string) { + return username && username !== 'nessuno' && username !== 'none' + } + + function getMyUsername() { + const userStore = useUserStore() + return userStore.my.username + } + + function getUsernameChatByMsg(msg: IMessage) { + if (msg) { + if (msg.dest) { + if (msg.dest.username !== getMyUsername()) return msg.dest.username + return msg.origin ? msg.origin.username : {} + } + } else { + return '' + } + return '' + } + + function getnumItemsCart(): any { + // ++Todo: conv + /* const arrcart = Products.cart + if (!!arrcart) { + if (!!arrcart.items) { + // @ts-ignore + const total = arrcart.items.reduce((sum, item) => sum + item.order.quantity, 0) + return total + } + } */ + return 0 + } + + function getImgByMsg(msg: IMessage) { + const userStore = useUserStore() + // @ts-ignore + return `public/${userStore.getImgByUsername(this.getUsernameChatByMsg(msg))}` + } + + function getMyImg() { + const userStore = useUserStore() + const ris = userStore.getImgByUsername(userStore.my.username) + return (ris !== '') ? `public/${ris}` : '' + } + + function getMyImgforIcon() { + const userStore = useUserStore() + const ris = userStore.getImgByUsername(userStore.my.username) + return (ris !== '') ? `img:public/${ris}` : 'fas fa-user' + } + + function getIconCart() { + const iconcart = 'fas fa-shopping-cart' + + return iconcart + } + + function MenuCollapse() { + const globalStore = useGlobalStore() + return globalStore.menuCollapse + // return true + } + + function Username() { + const userStore = useUserStore() + return userStore.my.username + } + + function myName() { + const userStore = useUserStore() + return userStore.my.name + } + + function mySurname() { + const userStore = useUserStore() + return userStore.my.surname + } + + function myCell() { + const userStore = useUserStore() + return userStore.my.profile.cell + } + + function Verificato() { + const userStore = useUserStore() + return userStore.my.verified_email + } + + function MadeGift() { + const userStore = useUserStore() + return userStore.my.made_gift + } + + function Email() { + const userStore = useUserStore() + return userStore.my.email + } + + function getNumMsg() { + // ++Todo: conv + /* + return MessageStore.getlasts_messages().length + */ + + return 0 + } + + function getNumMsgUnread() { + // return userStore.getlasts_messages().length + // ++Todo: conv + // return MessageStore.getnumMsgUnread() + return 0 + } + + function getMsgText(msg: IMessage, inarray: boolean) { + let add = '' + if (msg.origin && msg.origin.username === getMyUsername()) add = 'Tu: ' + + const ris = add + msg.message + if (inarray) return [ris] + return ris + } + + return { + getUsernameChatByMsg, + getMyUsername, + } + }, +}) diff --git a/src/model/BookingStore.ts b/src/model/BookingStore.ts new file mode 100755 index 00000000..b8a7083e --- /dev/null +++ b/src/model/BookingStore.ts @@ -0,0 +1,5 @@ +import { IEvents } from '@src/model/Calendar' + +export interface IBookingState { + bookinglist: IEvents[] +} diff --git a/src/model/Calendar.ts b/src/model/Calendar.ts new file mode 100755 index 00000000..71113caf --- /dev/null +++ b/src/model/Calendar.ts @@ -0,0 +1,114 @@ +import { IInternalPage, IMyPage, IOperators } from '@src/model/GlobalStore' + +export interface IEvents { + _id?: any + typol?: string + short_tit?: string + title?: string + details?: string + bodytext?: string + dateTimeStart?: Date + dateTimeEnd?: Date + side?: string + bgcolor?: string + icon?: string + img?: string + img_small?: string + wherecode?: string + contribtype?: string + price?: number + infoafterprice?: string + teacher?: string + teacher2?: string + teacher3?: string + teacher4?: string + infoextra?: string + linkpage?: string + pagefooter?: IInternalPage[] + linkpdf?: string + nobookable?: boolean + lunchAvailable?: boolean + dinnerAvailable?: boolean + dinnerSharedAvailable?: boolean + lunchType?: number + dinnerType?: number + lunchPrice?: number + dinnerPrice?: number + internal?: boolean + note?: string + news?: boolean + facebook?: string + canceled?: boolean + deleted?: boolean + dupId?: any + modified?: boolean +} + +export interface IBookedEvent { + _id?: any + userId: string + id_bookedevent?: any + numpeople: number + numpeopleLunch?: number + numpeopleDinner?: number + numpeopleDinnerShared?: number + infoevent: string + msgbooking: string + datebooked?: Date + modified: boolean + booked: boolean +} + +export interface IWheres { + code: string + placename: string + whereicon: string +} + +export interface IContribtype { + _id: any + label: string + showprice: boolean +} + +export enum EState { + None, Creating, Modifying, +} + +export interface IBookedEventPage { + show: boolean + bookedevent: IBookedEvent + state: EState +} + +export interface ICalendarState { + editable: boolean + eventlist: IEvents[] + bookedevent: IBookedEvent[] + operators: IOperators[] + internalpages: IMyPage[] + wheres: IWheres[] + contribtype: IContribtype[] + // --------------- + titlebarHeight: number + locale: string, + maxDays: number, + fiveDayWorkWeek: boolean, + shortMonthLabel: boolean, + showDayOfYearLabel: boolean, + shortWeekdayLabel: boolean, + shortIntervalLabel: boolean, + hour24Format: boolean, + hideHeader: boolean, + noScroll: boolean, + showMonthLabel: boolean, + showWorkWeeks: boolean, + intervalRange: { min: number, max: number }, + intervalRangeStep: number, + intervalHeight: number, + resourceHeight: number, + resourceWidth: number, + dayHeight: number, + enableThemes: boolean, + theme: {} +} diff --git a/src/model/Categories.ts b/src/model/Categories.ts new file mode 100755 index 00000000..f3f4b2fb --- /dev/null +++ b/src/model/Categories.ts @@ -0,0 +1,7 @@ +export interface ICategory { + id?: number, + descr_it?: string + descr_en?: string + descr_es?: string + campo2bool: boolean +} diff --git a/src/model/Estimate.ts b/src/model/Estimate.ts new file mode 100755 index 00000000..65374b65 --- /dev/null +++ b/src/model/Estimate.ts @@ -0,0 +1,18 @@ +import { tools } from '@src/store/Modules/tools' +import { toolsext } from '@src/store/Modules/toolsext' + +export interface IEstimate { + id?: number + title: string + advanced?: boolean + description?: string + viewlist?: number[] + listsel?: number + qtaName?: string + icon?: string + numpag?: number + qta?: number + price?: number + pricebase?: number + checksel?: boolean +} diff --git a/src/model/GlobalStore.ts b/src/model/GlobalStore.ts new file mode 100755 index 00000000..8a4f12e3 --- /dev/null +++ b/src/model/GlobalStore.ts @@ -0,0 +1,510 @@ +import { IAction } from '@src/model/Projects' +import { IPaymentType } from '@src/model/UserStore' +import { + ICart, IDepartment, IProducer, IProduct, IShareWithUs, IStorehouse, +} from '@src/model/Products' + +export interface IPost { + title: string +} + +export interface IConnData { + downloading_server: number + downloading_indexeddb: number + uploading_server: number + uploading_indexeddb: number +} + +export interface ICfgServer { + chiave: string + idapp: string + userId: string + valore: string +} + +export interface ICfgData { + _id?: string + lang?: string + token?: string + userId?: string +} + +export interface ITemplEmail { + _id?: string + subject?: string + content?: string + options?: ISettings[] +} + +export interface ISettings { + _id?: string + idapp?: string + key?: string + type?: number + value_str?: string + value_date?: Date, + value_num?: number + value_bool?: boolean + serv?: boolean +} + +export interface ITeachUname { + username?: string +} + +export interface IInternalPage { + path?: string +} + +export interface IResp { + _id?: string + username?: string + name?: string + surname?: string +} + +export interface IMyPage { + _id?: string + author_username?: string + lang?: string + title?: string + icon?: string + order?: number + path?: string + keywords?: string + description?: string + img1?: string + content?: string + video1?: string + img2?: string + content2?: string + video2?: string + img3?: string + content3?: string + video3?: string + content4?: string + active?: boolean + inmenu?: boolean + color?: string + onlyif_logged?: boolean + only_residenti?: boolean + only_consiglio?: boolean + submenu?: boolean + l_par?: number, + l_child?: number, + infooter?: boolean + internalpage?: boolean +} + +export interface ISites { + _id?: string + attiva?: boolean + idapp?: string + name?: string + adminemail?: string + manageremail?: string + replyTo?: string + host?: string + portapp?: string + dir?: string + email_from?: string + email_pwd?: string + telegram_key?: string + telegram_bot_name?: string + pathreg_add?: string +} + +export interface INewsToSent { + _id: string + idapp?: string + label?: string + templemail_str?: string + numemail_tot?: number + numemail_sent?: number + datetoSent?: Date + datestartJob?: Date + datefinishJob?: Date + lastemailsent_Job?: Date + starting_job?: boolean + finish_job?: boolean + error_job?: string +} + +export interface ICalZoom { + lang?: string + title?: string + typeconf?: string + date_start?: string + date_end?: Date + id_conf_zoom?: number + note?: string +} + +export interface IGroup { + _id?: any + descr?: string +} + +export interface IMailinglist { + name?: string + surname?: string + email: string + lastid_newstosent?: string +} + +export interface IDiscipline { + typol_code?: string + order?: number + label?: string + description?: string + linkpage?: string + color?: string + icon?: string + img_small?: string + showinhome?: boolean + showinnewsletter?: boolean + img?: string + teachers?: ITeachUname[] +} + +export interface ITestp1 { + contatore: number + mioarray: ICfgServer[] +} + +export type StateConnection = 'online' | 'offline' + +export interface IConfig { + _id: string, + key?: string, + value: string +} + +export interface IMetaTags { + title?: string + keywords?: string + description?: string +} + +export interface IGlobalState { + finishLoading: boolean + conta: number + wasAlreadySubOnDb: boolean + wasAlreadySubscribed: boolean + isLoginPage: boolean + layoutNeeded: boolean + mobileMode: boolean + menuCollapse: boolean + leftDrawerOpen: boolean + rightDrawerOpen: boolean + rightCartOpen: boolean + category: string + stateConnection: string + networkDataReceived: boolean + clickcmd?: string + cfgServer: ICfgServer[] + testp1: ITestp1 + connData: IConnData + posts: IPost[] + menulinks: {} + listatodo: IMenuList[] + arrConfig: IConfig[] + lastaction: IAction + serv_settings: ISettings[], + settings: ISettings[], + disciplines: IDiscipline[], + paymenttypes: IPaymentType[], + newstosent: INewsToSent[], + gallery: IGallery[], + mypage: IMyPage[], + templemail: ITemplEmail[], + opzemail: ISettings[], + mailinglist: IMailinglist[], + calzoom: ICalZoom[], + producers: IProducer[], + storehouses: IStorehouse[], + departments: IDepartment[], + sharewithus: IShareWithUs[], + groups: IGroup[], + resps: IResp[], + workers: IResp[], + autoplaydisc: number + TIMER: any + TIMEOUT: any + CUT: any + TIMER_STATE: number + URL_RITORNA: string + URL_RESTORE: string +} + +export interface IMenuList { + nametranslate: string + description?: string + idelem?: string + icon?: string + name?: string + level_parent?: number + level_child?: number + urlroute?: string + routes2?: IMenuList[] +} + +export interface IPathFile { + path: string + file: string +} + +export interface IListRoutes { + active?: boolean + order: number + path: string + name: string + lang?: string + materialIcon?: string + component?: any + reqauth?: boolean + isseparator?: boolean + inmenu?: boolean + solotitle?: boolean + infooter?: boolean + submenu?: boolean + onlyAdmin?: boolean + onlyif_logged?: boolean + onlyManager?: boolean + onlySocioResidente?: boolean + onlyConsiglio?: boolean + onlyNotSoci?: boolean + onlyDepartment?: boolean + onlyTutor?: boolean + color?: string + onlyEditor?: boolean + extraclass?: string + meta?: any + idelem?: string + urlroute?: string + img?: string + // ------------------------ + faIcon?: string + text?: string + routes2?: IListRoutes[] + level_parent?: number + level_child?: number + separator?: boolean +} + +export interface IOperators { + username: string + name: string + surname: string + email?: string + qualification?: string + disciplines?: string + certifications?: string + img?: string + cell?: string + usertelegram?: string + paginaweb?: string + paginafb?: string + intro?: string + info?: string + vario?: string + tab?: string +} + +export interface IPreloadImages { + imgname: string + alt: string + mobile: boolean +} + +export interface ILang { + label: string + icon: string + value: string + image: string + short: string +} + +export interface IAllLang { + es?: string + enUs?: string + fr?: string + de?: string + it?: string +} + +export interface ITimeLineEntry { + date: string + title: string + description: IAllLang + description2?: IAllLang + description3?: IAllLang + icon: string + image: string + image2?: string + image3?: string + image4?: string + video?: string + side: string + link_url?: string + link_url_lang?: IAllLang + link_text?: IAllLang + ingallery?: boolean +} + +export interface ITimeLineMain { + titlemain: IAllLang + body: ITimeLineEntry[] +} + +export interface IImgGallery { + _id?: string + imagefile: string + order?: number + alt?: string + description?: string +} + +export interface IGallery { + _id?: string + author_username?: string + title?: string + directory?: string + list?: IImgGallery[] +} + +export interface IColl { + title: IAllLang + date?: string + subtitle?: IAllLang + img: string + img2?: string + linkagg?: string + linkagg_type?: number + width?: number + height?: number + ingallery?: boolean + inexibitions?: boolean +} + +export interface ICollaborations { + withwhom_title: IAllLang + list: IColl[] +} + +export interface IParamDialog { + param1?: any + param2?: any + param3?: any +} + +export interface IFunctionality { + PWA?: boolean + ENABLE_REGISTRATION?: boolean + SHOW_REG_BUTTON?: boolean + SHOW_PROFILE?: boolean + SHOW_USER_MENU?: boolean + SHOW_IF_IS_SERVER_CONNECTION?: boolean + ENABLE_TODOS_LOADING?: boolean + ENABLE_PROJECTS_LOADING?: boolean + ENABLE_ECOMMERCE?: boolean + SHOW_NEWSLETTER?: boolean + SHOW_ONLY_POLICY?: boolean + SHOW_MESSAGES?: boolean + BOOKING_EVENTS?: boolean + ENABLE_REG_AYNI?: boolean + ENABLE_REG_SIP?: boolean + ENABLE_REG_CNM?: boolean +} + +export interface IParamsQuery { + table: string + startRow: number + endRow: number + filter: string + filterand: string + sortBy: any + descending: number + userId: string + codeId?: string + lk_tab?: string, + af_objId_tab?: string, + lk_LF?: string, + lk_FF?: string, + lk_as?: string, + lk_proj?: string, + lk_col2?: string, +} + +export interface IColGridTable { + name: string + subfield?: string + required?: boolean + label?: string + label_trans?: string + align?: string + field?: string + sortable?: boolean + disable?: boolean + titlepopupedit?: string + visible?: boolean + icon?: string + action?: any + askaction?: string + foredit?: boolean + fieldtype?: number + jointable?: string + resultjoin?: string[] + visuonlyEditVal?: boolean + notShowInNewRec?: boolean +} + +export interface ITableRec { + label: string + value: string + columns: IColGridTable[] + colkey: string + collabel: string + colicon?: string + onlyAdmin?: boolean + noshow: boolean +} + +export interface IFilter { + label: string + value: string + hide?: boolean + default?: boolean +} + +export interface IDataPass { + id: string + table: string + fieldsvalue: object +} + +export interface INewsState { + lastnewstosent: INewsToSent | null + nextnewstosent: INewsToSent | null + totemail: number + totsubscribed: number + totunsubscribed: number + totsentlastid: number +} + +export const DefaultNewsState: INewsState = { + lastnewstosent: null, + nextnewstosent: null, + totemail: 0, + totsubscribed: 0, + totunsubscribed: 0, + totsentlastid: 0, +} + +export interface IPagination { + sortBy: string, + descending: boolean + rowsNumber: number + page: number, + rowsPerPage: number // specifying this determines pagination is server-side +} diff --git a/src/model/MessageStore.ts b/src/model/MessageStore.ts new file mode 100755 index 00000000..c66f48e8 --- /dev/null +++ b/src/model/MessageStore.ts @@ -0,0 +1,81 @@ +import { shared_consts } from '@src/common/shared_vuejs' +import { EState } from './Calendar' + +export interface IMessagePage { + show: boolean + msg: IMessage + state: EState +} + +export interface ISource { + page?: string + event_id?: string + infoevent?: string +} + +export interface IIdentity { + idapp?: string + username?: string +} + +export const enum StatusMessage { + None = 0, + WaitingToSend = 1, + Sending = 2, + Sent = 3, + Received = 4, + Readit = 5, +} + +export const MsgDefault: IMessage = { + _id: '', + idapp: '', + source: { + event_id: '', + infoevent: '', + page: '', + }, + origin: { + username: '', + idapp: '', + }, + dest: { + idapp: '', + username: '', + }, + message: '', + datemsg: new Date(), + read: false, + deleted: false, + status: StatusMessage.None, +} + +export interface IMessage { + _id?: any + idapp?: string + source?: ISource + origin?: IIdentity + dest?: IIdentity + message: string + datemsg?: Date + read?: boolean + deleted?: boolean + status?: StatusMessage + options?: number +} + +export interface IChat { + username: string + lasttimeActive?: Date +} + +export interface IMsgUsers { + username: string + msgs: IMessage[] + lastdataread?: Date +} + +export interface IMessageState { + last_msgs: IMessage[] + users_msg: IMsgUsers[] +} diff --git a/src/model/NotevoleStore.ts b/src/model/NotevoleStore.ts new file mode 100755 index 00000000..fe03870f --- /dev/null +++ b/src/model/NotevoleStore.ts @@ -0,0 +1,31 @@ +import { IUserFields, IUserProfile } from '@src/model/UserStore' + +export interface ICheckUser { + verified_email?: boolean + teleg_id?: number + profile?: IUserProfile +} + +export interface INotData { + num_reg?: number + num_passeggeri?: number + num_imbarcati?: number + email_non_verif?: number + num_teleg_attivo?: number + num_teleg_pending?: number + num_part_zoom?: number + num_part_accepted?: number + num_modalita_pagamento?: number + arr_nations?: string + lastsreg?: IUserFields[] + checkuser?: ICheckUser | any + numreg_untilday?: number + reg_daily?: string + imbarcati_daily?: string + imbarcati_weekly?: string + reg_weekly?: string +} + +export interface INotevoleState { + datastat: INotData +} diff --git a/src/model/Products.ts b/src/model/Products.ts new file mode 100755 index 00000000..4488d157 --- /dev/null +++ b/src/model/Products.ts @@ -0,0 +1,131 @@ +export interface IProduct { + _id?: any + active?: boolean + idProducer?: string, + idStorehouses?: string[], + producer?: IProducer, + storehouses?: IStorehouse[], + code?: string, + name?: string, + description?: string, + department?: string, + category?: string, + price?: number, + after_price?: string, + color?: string, + size?: string, + quantityAvailable?: number, + canBeShipped?: boolean, + canBeBuyOnline?: boolean, + weight?: number, + stars?: number, + date?: Date, + icon?: string, + img?: string +} + +export interface IBaseOrder { + order?: IOrder +} + +export interface IOrder { + _id?: any + idapp?: string + userId?: string + status?: number + idProduct?: string + idProducer?: string + idStorehouse?: string + price?: number + after_price?: string + color?: string + size?: string + quantity?: number + weight?: number + stars?: number + product?: IProduct + producer?: IProducer + storehouse?: IStorehouse + date_created?: Date + date_checkout?: Date + date_payment?: Date + date_shipping?: Date + date_delivered?: Date + notes?: string +} + +export interface IProductsState { + products: IProduct[] + cart: ICart + orders: IOrderCart[] +} + +export interface IProducer { + _id?: any + idapp?: string + name?: string, + description?: string, + referent?: string, + username?: string, + region?: string, + city?: string, + img?: string, + website?: string, +} + +export interface IDepartment { + _id?: any + idapp?: string + name?: string, + username?: string, +} + +export interface IStorehouse { + _id?: any + idapp?: string + name?: string, + description?: string, + referent?: string, + address?: string, + city?: string, + region?: string, + img?: string, + website?: string, +} + +export interface ICart { + _id?: any + idapp?: string + userId?: string + totalQty?: number + totalPrice?: number + department?: string + items?: IBaseOrder[] + note?: string + modify_at?: Date +} + +export interface IOrderCart { + _id?: any + idapp?: string + numorder?: number + userId?: string + totalQty?: number + totalPrice?: number + department?: string + items?: IBaseOrder[] + nameSurname?: string + status?: number + note?: string + modify_at?: Date + completed_at?: Date +} + +export interface IShareWithUs { + _id?: any + idapp?: string + userId?: string + description?: string + numshared?: number + rating?: number +} diff --git a/src/model/Projects.ts b/src/model/Projects.ts new file mode 100755 index 00000000..c55fdb36 --- /dev/null +++ b/src/model/Projects.ts @@ -0,0 +1,78 @@ +export interface IAction { + table: string + type: number + _id: any + cat?: string +} + +export interface IProject { + _id?: any, + userId?: string + category?: string + typeproj?: number + id_main_project?: string + id_parent?: string + descr?: string + note?: string + longdescr?: string + priority?: number + statusproj?: number + created_at?: Date + modify_at?: Date + completed_at?: Date + expiring_at?: Date + enableExpiring?: boolean + modified?: boolean + favourite?: number + pos?: number + order?: number + live_url?: string + test_url?: string + hoursplanned?: number + hoursleft?: number + hoursworked?: number + progressCalc?: number + begin_development?: Date + hoursweeky_plannedtowork?: number + endwork_estimate?: Date + begin_test?: Date + totalphases?: number + actualphase?: number + privacyread?: string + privacywrite?: string + tipovisu?: number + themecolor?: string + themebgcolor?: string + groupId?: string + respUsername?: string + viceRespUsername?: string + vice2RespUsername?: string + view?: string +} + +export interface IProjectsState { + showtype: number + projects: IProject[] + insidePending: boolean + visuLastCompleted: number +} + +export const Privacy = { + all: 'all', + friends: 'friends', + mygroup: 'mygroup', + onlyme: 'onlyme', + inherited: 'inherited', +} + +export const TipoVisu = { + inherited: 0, + simplelist: 1, + taskProgress: 2, + responsabili: 3, +} + +export const TypeProj = { + TYPE_PROJECT: 1, + TYPE_SUBDIR: 2, +} diff --git a/src/model/Test.ts b/src/model/Test.ts new file mode 100755 index 00000000..3ac27162 --- /dev/null +++ b/src/model/Test.ts @@ -0,0 +1,5 @@ +export interface TestState { + ready: boolean, + mybool: boolean, + mystring: string, +} diff --git a/src/model/Todos.ts b/src/model/Todos.ts new file mode 100755 index 00000000..ba75d094 --- /dev/null +++ b/src/model/Todos.ts @@ -0,0 +1,71 @@ +import { IAction } from '@src/model/Projects' + +export interface ITodo { + _id?: any, + userId?: string + category?: string + descr?: string, + note?: string, + priority?: number, + statustodo?: number, + created_at?: Date, + modify_at?: Date, + completed_at?: Date, + expiring_at?: Date, + enableExpiring?: boolean, + modified?: boolean, + pos?: number, + order?: number, + progress?: number + progressCalc?: number + phase?: number + assigned_to_userId?: string + hoursplanned?: number + hoursworked?: number + start_date?: Date + themecolor?: string + themebgcolor?: string + assignedToUsers?: string[] +} + +export interface IParamTodo { + categorySel?: string + checkPending?: boolean + id?: string + objtodo?: ITodo + atfirst?: boolean +} + +export interface IDrag { + field?: string + idelemtochange?: string + prioritychosen?: number + oldIndex?: number + newIndex?: number + category?: string + id_proj?: string + atfirst?: boolean + tipoproj?: string +} + +export interface ITodosState { + showtype: number + todos: {} + categories: string[] + // todos_changed: number + reload_fromServer: number + testpao: string + insidePending: boolean + visuLastCompleted: number +} + +export interface IHours { + _id?: any, + userId?: string + descr?: string, + todoId?: string, + date?: Date, + time_start: number + time_end: number + hours: number +} diff --git a/src/model/UserStore.ts b/src/model/UserStore.ts new file mode 100755 index 00000000..a82326ab --- /dev/null +++ b/src/model/UserStore.ts @@ -0,0 +1,107 @@ +import { IToken } from '@model/other' +import { ICart, IOrderCart, IShareWithUs } from '@src/model/Products' + +const enum ESexType { + None = 0, + Male = 1, + Female = 2, +} + +export interface IUserProfile { + img?: string + nationality?: string + intcode_cell?: string + iso2_cell?: string + cell?: string + dateofbirth?: Date + sex?: ESexType + country_pay?: string + email_paypal?: string + payeer_id?: string + advcash_id?: string + revolut?: string + link_payment?: string + note_payment?: string + username_telegram?: string + teleg_id?: number + teleg_checkcode?: number + my_dream?: string + paymenttypes?: IPaymentType[] + manage_telegram?: boolean + saw_zoom_presentation?: boolean + ask_zoom_partecipato?: boolean + saw_and_accepted?: boolean + qualified?: boolean + qualified_2invitati?: boolean + myshares?: IShareWithUs[] + socio?: boolean + socioresidente?: boolean + consiglio?: boolean +} + +export interface IPaymentType { + key: string + label: string +} + +export interface IUserFields { + _id: string + ind_order?: number + email?: string + username: string + name: string + surname: string + password?: string + ipaddr?: string + perm?: number + verified_email?: boolean + aportador_solidario?: string + + made_gift?: boolean + tokens?: IToken[] + lasttimeonline?: Date + profile: IUserProfile + qualified?: boolean + numNaviEntrato?: number + numinvitati?: number + numinvitatiattivi?: number + cart?: ICart + ordercart?: IOrderCart +} + +/* +password?: string + lang + */ + +export interface IPerm { + _id: number + label: string +} + +export interface IUserState { + my: IUserFields + lang: string + repeatPassword?: string + + categorySel?: string + + tokenforgot?: string + + servercode?: number + msg?: string + resStatus?: number + x_auth_token: string + isLogged?: boolean + isAdmin?: boolean + isManager?: boolean + isDepartment?: boolean + isTutor?: boolean + isZoomeri?: boolean + isTratuttrici?: boolean + isEditor?: boolean + isTeacher?: boolean + usersList?: IUserFields[] + countusers?: number + lastparamquery?: any +} diff --git a/src/model/index.ts b/src/model/index.ts new file mode 100755 index 00000000..a05578b2 --- /dev/null +++ b/src/model/index.ts @@ -0,0 +1,16 @@ +export * from './UserStore' +export * from './NotevoleStore' +export * from './MessageStore' +export * from './GlobalStore' +export * from './signin-option' +export * from './signup-option' +export * from './key-value' +// export * from './payload' + +export * from './Categories' +export * from './Todos' +export * from './Projects' + +export * from './Calendar' +export * from './Estimate' +export * from './Products' diff --git a/src/model/key-value.ts b/src/model/key-value.ts new file mode 100755 index 00000000..acad595b --- /dev/null +++ b/src/model/key-value.ts @@ -0,0 +1 @@ +export type KeyValue = { key: string, value: string }; diff --git a/src/model/other.ts b/src/model/other.ts new file mode 100755 index 00000000..c493356b --- /dev/null +++ b/src/model/other.ts @@ -0,0 +1,19 @@ +export interface IToken { + access: string + // browser: string + token: string + data_login: Date +} + +export interface ILinkReg { + idlink: string +} + +export interface IIdToken { + x_auth_token: string +} + +export interface IResult { + status: number + statusText: string +} diff --git a/src/model/session.ts b/src/model/session.ts new file mode 100755 index 00000000..778a18bd --- /dev/null +++ b/src/model/session.ts @@ -0,0 +1,29 @@ +import { IUserState } from '@src/model/UserStore' + +export interface SessionState { + redirectUri: string | null, + timestamp: number | null, + token: string | null, + user: IUserState | null, +} + +export interface CsrfCookie { + message: string | null, +} + +export interface AuthUser { + redirectUri?: string | null, + token?: string | null, +} + +export interface LoginUser { + email: string, + password: string, + 'device_name': string, + 'remember_me': boolean, +} + +export interface AuthResponse { + token: string | null, + user: IUserState | null, +} diff --git a/src/model/signin-option.ts b/src/model/signin-option.ts new file mode 100755 index 00000000..fd32e6d1 --- /dev/null +++ b/src/model/signin-option.ts @@ -0,0 +1,4 @@ +export interface ISigninOptions { + username: string + password: string +} diff --git a/src/model/signup-option.ts b/src/model/signup-option.ts new file mode 100755 index 00000000..a8596f4c --- /dev/null +++ b/src/model/signup-option.ts @@ -0,0 +1,51 @@ +import { IUserProfile } from '@src/model/UserStore' + +export interface ISignupOptions { + email?: string + username: string + name?: string + surname?: string + password?: string + lang?: string + repeatPassword?: string + terms?: boolean + aportador_solidario?: string + profile?: IUserProfile + // already_registered: boolean +} + +export interface ISignupIscrizioneConacreisOptions { + userId?: string + name?: string + surname?: string + email?: string + fiscalcode?: string + residency_address?: string + residency_city?: string + residency_province?: string + residency_country?: string + residency_zipcode?: string + dateofbirth?: Date + dateofreg?: Date + dateofapproved?: Date + born_city?: string + born_province?: string + born_country?: string + cell_phone?: string + newsletter_on?: boolean + accetta_carta_costituzionale_on?: boolean + metodo_pagamento?: number + iscrizione_compilata?: boolean + ha_pagato?: boolean + codiceConacreis?: string + annoTesseramento?: number + numTesseraInterna?: number + motivazioni?: string + competenze_professionalita?: string + cosa_potrei_offrire?: string + cosa_vorrei_ricevere?: string + altre_comunicazioni?: string + come_ci_hai_conosciuto?: string + terms?: boolean + note?: string +} diff --git a/src/myconfig/index.ts b/src/myconfig/index.ts new file mode 100755 index 00000000..e275349c --- /dev/null +++ b/src/myconfig/index.ts @@ -0,0 +1,11 @@ +export default { + // apiGraphQL: 'http://localhost:8000/graphql', + i18n: { + default: 'it', + fallbackTo: 'it', + }, + socialLogin: { + facebook: false, + google: false, + }, +} diff --git a/src/pages/Error404.vue b/src/pages/Error404.vue new file mode 100644 index 00000000..e330c446 --- /dev/null +++ b/src/pages/Error404.vue @@ -0,0 +1,31 @@ + + + diff --git a/src/pages/Index.vue b/src/pages/Index.vue new file mode 100644 index 00000000..b9b810c2 --- /dev/null +++ b/src/pages/Index.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/quasar.d.ts b/src/quasar.d.ts new file mode 100755 index 00000000..86030c8c --- /dev/null +++ b/src/quasar.d.ts @@ -0,0 +1 @@ +declare module 'quasar' diff --git a/src/root/My404page/My404page.ts b/src/root/My404page/My404page.ts new file mode 100755 index 00000000..606ff443 --- /dev/null +++ b/src/root/My404page/My404page.ts @@ -0,0 +1,8 @@ +import { defineComponent } from 'vue' + +export default defineComponent({ + name: 'My404page', + setup() { + return {} + }, +}) diff --git a/src/root/My404page/My404page.vue b/src/root/My404page/My404page.vue new file mode 100755 index 00000000..cc1891d7 --- /dev/null +++ b/src/root/My404page/My404page.vue @@ -0,0 +1,8 @@ + + diff --git a/src/root/ciao/ciao.scss b/src/root/ciao/ciao.scss new file mode 100755 index 00000000..db7b581d --- /dev/null +++ b/src/root/ciao/ciao.scss @@ -0,0 +1,438 @@ + +.testo-banda { + //background: -webkit-gradient(linear, left top, left bottom, from(#3144f0), to(transparent)); + //background: linear-gradient(180deg, #3144f0, transparent); + //background: rgba(0, 0, 0, .6) +} + +$grayshadow: #555; + +$textcol: blue; +$textcol_scuro: darkblue; + +p { + margin: 0 0 1.25rem; + //text-shadow: .125rem .125rem .25rem $grayshadow; +} + +h4 { + font-size: 1.25rem; +} + +.mycard { + visibility: hidden; +} + +.landing { +} + +.landing_background { + background: #000 url(../../../public/images/foto1.jpg) no-repeat 50% fixed; + background-size: cover +} + +.landing > section { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + //padding: 0 16px +} + +.intro { + display: flex; + justify-content: space-between; + align-items: stretch; + /* flex-flow: row nowrap; */ + + padding: 1.25rem 0 1.25rem 0; + margin: .125rem; + + * { + width: 100%; + flex: 1; + margin-left: auto; + margin-right: auto; + } + + &__associazione { + min-width: 350px; + } + + &__comeassociarsi{ + min-width: 350px; + } +} + +.subtitle { + font-weight: 600; + text-align: center; + letter-spacing: 0.125rem; + text-transform: uppercase; + font-size: 1rem; +} + +.landing > section.padding { + padding: 5.62rem 1rem; +} + +.landing > section.padding_testo { + padding-top: 1.25rem; + padding-bottom: 1rem; +} + +.landing > section.padding_gallery { + padding-top: 3.125rem; + padding-bottom: 5.625rem; +} + +.landing > section > div { + position: relative; + max-width: 1240px; + width: 100% +} + +.landing__toolbar { + background: -webkit-gradient(linear, left top, left bottom, from(#000), to(transparent)); + background: linear-gradient(180deg, #000, transparent); + padding: 0 !important +} + +.landing__toolbar .q-btn { + border-radius: 0 0 .315rem .315rem; + -ms-flex-item-align: stretch; + align-self: stretch +} + +.landing__hero { + min-height: 50vh +} + +.landing__header { + height: 18vh +} + +.landing__arrow { + bottom: 1.5rem; + opacity: .4 +} + +.landing__front { + background: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(15%, rgba(0, 0, 0, .6))); + background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .6) 15%) +} + +.landing__logo { + width: 9.40rem; + height: 9.40rem; + margin-top: 1.315rem; + //-webkit-animation: logo-rotate 240s linear infinite; + //animation: logo-rotate 240s linear infinite +} + +.landing__features .q-icon { + font-size: 4rem +} + +h4 { + line-height: 1.5; + text-shadow: .25rem .25rem .5rem $grayshadow; +} + +.landing__features h4, .landing__features h6 { + margin: 1rem 0 +} + +.landing__features p { + opacity: .7; + font-size: 1rem; + line-height: 1.5; +} + +.landing__footer { + //background: -webkit-gradient(linear, left top, left bottom, color-stop(65%, rgba(0, 0, 0, .1)), to(#000)); + background: linear-gradient(180deg, rgba(0, 0, 0, .8) 95%, #FFF); + padding-top: 4.5rem !important; + padding-bottom: 4.5rem !important; + padding-left: 1.25rem; + padding-right: 1.25rem; + color: #9f9f9f; +} + +.icon_contact:hover { + color: blue; + border-color: white; + border-width: .0625rem; +} + +.landing__footer .doc-link { + color: $textcol; +} + +.landing__footer .doc-link:hover { + opacity: .8 +} + +.landing__swirl-bg { + background-repeat: no-repeat !important; + background-position: top; + background-size: contain !important; + background-image: url(../../../public/images/landing_first_section.png) !important +} + +.feat-descr { + font-size: 1.15rem; +} + +.feat-descr:hover { + transition: opacity 0.5s ease-in-out; + opacity: 0.9; +} + +.q-col-gutter-sm { + padding: 3.125rem 3.125rem; + //margin-left: -48px +} + +body.mobile .landing { + //background: unset +} + +body.mobile .landing:before { + content: ""; + position: fixed; + top: 0; + height: 100vh; + left: 0; + right: 0; + bottom: 0; + z-index: -1; + //background: #000 url(../../public/images/cover.jpg) 50%; + + background-size: cover +} + +/* +@-webkit-keyframes logo-rotate { + to { + -webkit-transform: rotate(-1turn); + transform: rotate(-1turn) + } +} + +@keyframes logo-rotate { + to { + -webkit-transform: rotate(-1turn); + transform: rotate(-1turn) + } +} +*/ + +.home { + //background-color: rgb(250, 250, 250); + padding: 3.125rem; + display: flex; + //flex-wrap: nowrap; + flex-direction: column; + align-items: center; + justify-content: space-between; +} + +.btn-start { + margin: 3.125rem; +} + +.shadow { + //color: white; + text-shadow: 0.125rem 0.125rem 0.25rem $grayshadow; +} + +.shadow-max { + //color: white; + text-shadow: .25rem .25rem .5rem $grayshadow; +} + +.text-h1 { + font-size: 6rem; + font-weight: 300; + line-height: 6rem; + letter-spacing: -.01562em; +} + +.text-h2 { + font-size: 3.75rem; + font-weight: 300; + line-height: 3.75rem; + letter-spacing: -.00833em; +} + +.text-weight-bold { + font-weight: 700; +} + +.text-vers{ + font-size: 0.75rem; + font-weight: 400; + line-height: 1.75rem; + letter-spacing: .00937em; + text-shadow: .25rem .25rem .5rem $grayshadow; +} + +.homep-cover-img-1 { + background: #000 url(../../../public/images/foto1.jpg) no-repeat 50% fixed; + //transition: background-image 1s ease-in-out; +} + +.homep-cover-img-2 { + background: #000 url(../../../public/images/foto2.jpg) no-repeat 50% fixed; + //transition: background-image 1s ease-in-out; +} + +.homep-cover-img-3 { + background: #000 url(../../../public/images/foto3.jpg) no-repeat 50% fixed; + //transition: background-image 1s ease-in-out; +} + +.homep-cover-img.hide-filter:before { + opacity: 0 +} + +.landing__footer-icons { + font-size: 1.75rem +} + +.landing__footer-icons a { + margin: 0 .5rem .5rem; + text-decoration: none; + outline: 0; + color: $textcol; + transition: color .28s +} + +.landing__footer-icons a:hover { + color: $textcol_scuro; +} + +.doc-img { + max-width: 100%; +} + +.mylist { + background: #3fdaff; + padding-left: 1.25rem; +} + +.clgutter { + margin-top: 1.25rem; + padding: .62rem; +} + +.carousel_img_3 { + //background-image: url(../../public/images/cibo_sano.jpg); + background-size: cover !important; + background-position: 50% center !important; + background-repeat: no-repeat !important; +} + + +@media (max-width: 718px) { + // PER VERSIONE MOBILE + + .landing__hero { + text-align: center + } + .landing__header { + height: 7vh + } + .clgutter { + margin-top: 0; + padding: 0; + } + .landing__hero .text-h1 { + font-size: 3rem; + line-height: 3.05rem; + margin-bottom: 1.5rem + } + + .landing > section.padding { + padding: 2.5rem 1rem; + } + + .landing > section.padding_testo { + padding-top: 1.25rem; + padding-bottom: 1rem; + } + + .landing > section.padding_gallery { + padding-top: 3.125rem; + padding-bottom: 5.625rem; + } + + .landing__features h4, .landing__features h6 { + margin: 1.25rem 0 + } + + h4 { + line-height: 1.4; + text-shadow: 0.25rem 0.25rem 0.5rem $grayshadow; + } + + .landing .feature-item { + text-align: center; + margin-top: 1.25rem; + } + .landing__hero-content { + padding-bottom: 11.25rem; + } + .landing__hero-btns { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center + } + + .q-col-gutter-sm { + padding: .625rem .315rem; + } + + .text-subtitle1 { + font-size: 1.25rem; + } + .text-vers{ + font-size: 0.6rem; + } + + .carousel_img_3 { + //background-image: url(../../public/images/cibo_sano.jpg); + background-size: 620px 620px !important; + background-position: 50% top !important; + background-repeat: no-repeat !important; + } + +} + +.custom-caption { + text-align: center; + padding: .75rem; + color: $textcol; + background-color: rgba(0, 0, 0, .3); +} + +.mycontacts { + color: gray; + letter-spacing: 0.078rem; +} + +.mycontacts_title { + text-shadow: 0.125rem 0.125rem 0.125rem #555; + font-weight: bold; + color: #999; + letter-spacing: 0.125rem; +} + +.mycontacts_text { + color: #999; + letter-spacing: 0.093rem; +} + diff --git a/src/root/ciao/ciao.ts b/src/root/ciao/ciao.ts new file mode 100755 index 00000000..b255e3b9 --- /dev/null +++ b/src/root/ciao/ciao.ts @@ -0,0 +1,25 @@ +import { useUserStore } from '@store/UserStore' +import { useI18n } from '@src/boot/i18n' +import { + defineComponent, ref, onBeforeUnmount, onMounted, +} from 'vue' +import { useRouter } from 'vue-router' +import { Footer } from '../../components/Footer' +import { Logo } from '../../components/logo' +import { useQuasar } from 'quasar' +import { TestPao } from '../../components/testpao' + +export default defineComponent({ + name: 'Ciao', + components: { Logo, TestPao }, + + setup() { + const $q = useQuasar() + + const { t } = useI18n(); + + return { + t, + } + }, +}) diff --git a/src/root/ciao/ciao.vue b/src/root/ciao/ciao.vue new file mode 100755 index 00000000..4b4f7117 --- /dev/null +++ b/src/root/ciao/ciao.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/root/home/home.scss b/src/root/home/home.scss new file mode 100755 index 00000000..db7b581d --- /dev/null +++ b/src/root/home/home.scss @@ -0,0 +1,438 @@ + +.testo-banda { + //background: -webkit-gradient(linear, left top, left bottom, from(#3144f0), to(transparent)); + //background: linear-gradient(180deg, #3144f0, transparent); + //background: rgba(0, 0, 0, .6) +} + +$grayshadow: #555; + +$textcol: blue; +$textcol_scuro: darkblue; + +p { + margin: 0 0 1.25rem; + //text-shadow: .125rem .125rem .25rem $grayshadow; +} + +h4 { + font-size: 1.25rem; +} + +.mycard { + visibility: hidden; +} + +.landing { +} + +.landing_background { + background: #000 url(../../../public/images/foto1.jpg) no-repeat 50% fixed; + background-size: cover +} + +.landing > section { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + //padding: 0 16px +} + +.intro { + display: flex; + justify-content: space-between; + align-items: stretch; + /* flex-flow: row nowrap; */ + + padding: 1.25rem 0 1.25rem 0; + margin: .125rem; + + * { + width: 100%; + flex: 1; + margin-left: auto; + margin-right: auto; + } + + &__associazione { + min-width: 350px; + } + + &__comeassociarsi{ + min-width: 350px; + } +} + +.subtitle { + font-weight: 600; + text-align: center; + letter-spacing: 0.125rem; + text-transform: uppercase; + font-size: 1rem; +} + +.landing > section.padding { + padding: 5.62rem 1rem; +} + +.landing > section.padding_testo { + padding-top: 1.25rem; + padding-bottom: 1rem; +} + +.landing > section.padding_gallery { + padding-top: 3.125rem; + padding-bottom: 5.625rem; +} + +.landing > section > div { + position: relative; + max-width: 1240px; + width: 100% +} + +.landing__toolbar { + background: -webkit-gradient(linear, left top, left bottom, from(#000), to(transparent)); + background: linear-gradient(180deg, #000, transparent); + padding: 0 !important +} + +.landing__toolbar .q-btn { + border-radius: 0 0 .315rem .315rem; + -ms-flex-item-align: stretch; + align-self: stretch +} + +.landing__hero { + min-height: 50vh +} + +.landing__header { + height: 18vh +} + +.landing__arrow { + bottom: 1.5rem; + opacity: .4 +} + +.landing__front { + background: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(15%, rgba(0, 0, 0, .6))); + background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .6) 15%) +} + +.landing__logo { + width: 9.40rem; + height: 9.40rem; + margin-top: 1.315rem; + //-webkit-animation: logo-rotate 240s linear infinite; + //animation: logo-rotate 240s linear infinite +} + +.landing__features .q-icon { + font-size: 4rem +} + +h4 { + line-height: 1.5; + text-shadow: .25rem .25rem .5rem $grayshadow; +} + +.landing__features h4, .landing__features h6 { + margin: 1rem 0 +} + +.landing__features p { + opacity: .7; + font-size: 1rem; + line-height: 1.5; +} + +.landing__footer { + //background: -webkit-gradient(linear, left top, left bottom, color-stop(65%, rgba(0, 0, 0, .1)), to(#000)); + background: linear-gradient(180deg, rgba(0, 0, 0, .8) 95%, #FFF); + padding-top: 4.5rem !important; + padding-bottom: 4.5rem !important; + padding-left: 1.25rem; + padding-right: 1.25rem; + color: #9f9f9f; +} + +.icon_contact:hover { + color: blue; + border-color: white; + border-width: .0625rem; +} + +.landing__footer .doc-link { + color: $textcol; +} + +.landing__footer .doc-link:hover { + opacity: .8 +} + +.landing__swirl-bg { + background-repeat: no-repeat !important; + background-position: top; + background-size: contain !important; + background-image: url(../../../public/images/landing_first_section.png) !important +} + +.feat-descr { + font-size: 1.15rem; +} + +.feat-descr:hover { + transition: opacity 0.5s ease-in-out; + opacity: 0.9; +} + +.q-col-gutter-sm { + padding: 3.125rem 3.125rem; + //margin-left: -48px +} + +body.mobile .landing { + //background: unset +} + +body.mobile .landing:before { + content: ""; + position: fixed; + top: 0; + height: 100vh; + left: 0; + right: 0; + bottom: 0; + z-index: -1; + //background: #000 url(../../public/images/cover.jpg) 50%; + + background-size: cover +} + +/* +@-webkit-keyframes logo-rotate { + to { + -webkit-transform: rotate(-1turn); + transform: rotate(-1turn) + } +} + +@keyframes logo-rotate { + to { + -webkit-transform: rotate(-1turn); + transform: rotate(-1turn) + } +} +*/ + +.home { + //background-color: rgb(250, 250, 250); + padding: 3.125rem; + display: flex; + //flex-wrap: nowrap; + flex-direction: column; + align-items: center; + justify-content: space-between; +} + +.btn-start { + margin: 3.125rem; +} + +.shadow { + //color: white; + text-shadow: 0.125rem 0.125rem 0.25rem $grayshadow; +} + +.shadow-max { + //color: white; + text-shadow: .25rem .25rem .5rem $grayshadow; +} + +.text-h1 { + font-size: 6rem; + font-weight: 300; + line-height: 6rem; + letter-spacing: -.01562em; +} + +.text-h2 { + font-size: 3.75rem; + font-weight: 300; + line-height: 3.75rem; + letter-spacing: -.00833em; +} + +.text-weight-bold { + font-weight: 700; +} + +.text-vers{ + font-size: 0.75rem; + font-weight: 400; + line-height: 1.75rem; + letter-spacing: .00937em; + text-shadow: .25rem .25rem .5rem $grayshadow; +} + +.homep-cover-img-1 { + background: #000 url(../../../public/images/foto1.jpg) no-repeat 50% fixed; + //transition: background-image 1s ease-in-out; +} + +.homep-cover-img-2 { + background: #000 url(../../../public/images/foto2.jpg) no-repeat 50% fixed; + //transition: background-image 1s ease-in-out; +} + +.homep-cover-img-3 { + background: #000 url(../../../public/images/foto3.jpg) no-repeat 50% fixed; + //transition: background-image 1s ease-in-out; +} + +.homep-cover-img.hide-filter:before { + opacity: 0 +} + +.landing__footer-icons { + font-size: 1.75rem +} + +.landing__footer-icons a { + margin: 0 .5rem .5rem; + text-decoration: none; + outline: 0; + color: $textcol; + transition: color .28s +} + +.landing__footer-icons a:hover { + color: $textcol_scuro; +} + +.doc-img { + max-width: 100%; +} + +.mylist { + background: #3fdaff; + padding-left: 1.25rem; +} + +.clgutter { + margin-top: 1.25rem; + padding: .62rem; +} + +.carousel_img_3 { + //background-image: url(../../public/images/cibo_sano.jpg); + background-size: cover !important; + background-position: 50% center !important; + background-repeat: no-repeat !important; +} + + +@media (max-width: 718px) { + // PER VERSIONE MOBILE + + .landing__hero { + text-align: center + } + .landing__header { + height: 7vh + } + .clgutter { + margin-top: 0; + padding: 0; + } + .landing__hero .text-h1 { + font-size: 3rem; + line-height: 3.05rem; + margin-bottom: 1.5rem + } + + .landing > section.padding { + padding: 2.5rem 1rem; + } + + .landing > section.padding_testo { + padding-top: 1.25rem; + padding-bottom: 1rem; + } + + .landing > section.padding_gallery { + padding-top: 3.125rem; + padding-bottom: 5.625rem; + } + + .landing__features h4, .landing__features h6 { + margin: 1.25rem 0 + } + + h4 { + line-height: 1.4; + text-shadow: 0.25rem 0.25rem 0.5rem $grayshadow; + } + + .landing .feature-item { + text-align: center; + margin-top: 1.25rem; + } + .landing__hero-content { + padding-bottom: 11.25rem; + } + .landing__hero-btns { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center + } + + .q-col-gutter-sm { + padding: .625rem .315rem; + } + + .text-subtitle1 { + font-size: 1.25rem; + } + .text-vers{ + font-size: 0.6rem; + } + + .carousel_img_3 { + //background-image: url(../../public/images/cibo_sano.jpg); + background-size: 620px 620px !important; + background-position: 50% top !important; + background-repeat: no-repeat !important; + } + +} + +.custom-caption { + text-align: center; + padding: .75rem; + color: $textcol; + background-color: rgba(0, 0, 0, .3); +} + +.mycontacts { + color: gray; + letter-spacing: 0.078rem; +} + +.mycontacts_title { + text-shadow: 0.125rem 0.125rem 0.125rem #555; + font-weight: bold; + color: #999; + letter-spacing: 0.125rem; +} + +.mycontacts_text { + color: #999; + letter-spacing: 0.093rem; +} + diff --git a/src/root/home/home.ts b/src/root/home/home.ts new file mode 100755 index 00000000..185cefd4 --- /dev/null +++ b/src/root/home/home.ts @@ -0,0 +1,158 @@ +import { useUserStore } from '@store/UserStore' +import { useI18n } from '@src/boot/i18n' +import { + defineComponent, ref, onBeforeUnmount, onMounted, +} from 'vue' +import { useRouter } from 'vue-router' +import { Footer } from '../../components/Footer' +import { Logo } from '../../components/logo' +import { tools } from '@src/store/Modules/tools' + +export default defineComponent({ + name: 'Home', + components: { Logo }, + + setup() { + const { t } = useI18n(); + const $router = useRouter() + const visibile = ref(false) + const cardvisible = ref('hidden') + const displaycard = ref('block') + const firstClassSection = ref('fade homep-cover-img animate-fade homep-cover-img-1') + const polling: any = ref() + const slide = ref('first') + const animare = ref(0) + + function initprompt() { + window.addEventListener('beforeinstallprompt', (event) => { + // console.log('******************************** beforeinstallprompt fired') + event.preventDefault() + // console.log('§§§§§§§§§§§§§§§§§§§§ IMPOSTA DEFERRED PROMPT !!!!!!!!!!!!!!!!! ') + // #Todo++ IMPOSTA DEFERRED PROMPT + return false + }) + } + + function created() { + initprompt() + + animare.value = process.env.DEV ? 0 : 8000 + } + + onMounted(() => { + let primo = true + const mytime = 10000 + polling.value = setInterval(() => { + firstClassSection.value = `landing_background fade homep-cover-img ${primo ? 'homep-cover-img-2' : 'homep-cover-img-1'}` + primo = !primo + + // console.log('this.firstClassSection', this.firstClassSection) + }, mytime) + }) + + function appname() { + return t('msg.myAppName') + } + + onBeforeUnmount(() => { + console.log('beforeDestroy') + clearInterval(polling.value) + }) + + function isLogged() { + const userStore = useUserStore() + return userStore.isLogged + } + + function TelegramSupport() { + return process.env.TELEGRAM_SUPPORT + } + + function FBPage() { + return process.env.URL_FACEBOOK + } + + function meta() { + return { + keywords: { name: 'keywords', content: 'Quasar website' }, + // meta tags + meta: { + mykey: { name: 'mykey', content: 'Key 1' }, + description: { name: 'description', content: 'Page 1' }, + keywords: { name: 'keywords', content: 'Quasar website' }, + equiv: { 'http-equiv': 'Content-Type', content: 'text/html; charset=UTF-8' }, + }, + } + } + + function mystilecard() { + return { + visibility: cardvisible.value, + display: displaycard.value, + } + } + + function getenv(myvar: any) { + try { + return process.env[myvar] + } catch (e) { + return '' + } + } + + function isInCostruction() { + return process.env.IN_CONSTRUCTION === '1' + } + + function getPermission() { + return Notification.permission + } + + function NotServiceWorker() { + return (!('serviceWorker' in navigator)) + } + + function PagLogin() { + $router.replace('/signin') + } + + function PagReg() { + $router.replace('/signup') + } + + function openCreatePostModal() { + console.log('APERTO ! openCreatePostModal') + + visibile.value = !visibile.value + + if (visibile.value) { + displaycard.value = 'block' + cardvisible.value = 'visible' + } else { + displaycard.value = 'block' + cardvisible.value = 'hidden' + } + } + + created() + + return { + t, + appname, + isLogged, + TelegramSupport, + FBPage, + meta, + mystilecard, + getenv, + isInCostruction, + getPermission, + NotServiceWorker, + PagLogin, + PagReg, + openCreatePostModal, + slide, + tools, + } + }, +}) diff --git a/src/root/home/home.vue b/src/root/home/home.vue new file mode 100755 index 00000000..3c166863 --- /dev/null +++ b/src/root/home/home.vue @@ -0,0 +1,440 @@ + + + diff --git a/src/root/mypage/mypage.scss b/src/root/mypage/mypage.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/root/mypage/mypage.ts b/src/root/mypage/mypage.ts new file mode 100755 index 00000000..8a71fb6d --- /dev/null +++ b/src/root/mypage/mypage.ts @@ -0,0 +1,57 @@ +import { defineComponent } from 'vue' + +/* +import { Component, Prop, Watch } from 'vue-property-decorator' +import { GlobalStore, UserStore } from '@store' + +import { tools } from '../../store/Modules/tools' +import { toolsext } from '../../store/Modules/toolsext' +import { static_data } from '../../db/static_data' +import { Screen } from 'quasar' + +import { colmypage } from '@src/store/Modules/fieldsTable' + +import { CImgText } from '../../components/CImgText/index' +import { CCard, CGridTableRec, CMyPage, CTitleBanner } from '@components' +import MixinMetaTags from '../../mixins/mixin-metatags' +import MixinBase from '@src/mixins/mixin-base' +import { IMyPage } from '@src/model/GlobalStore' + +@Component({ + mixins: [MixinBase], + components: { CImgText, CCard, CMyPage, CTitleBanner } +})*/ + +export default defineComponent({ + name: 'Mypage', + setup() { + return {} + }, +}) +/* +export default class Mypage extends MixinMetaTags { + public heightimg + public imgback + public rec: IMyPage = {} + + public async mounted() { + // console.log('this.$route.path', this.$route.path) + this.rec = await GlobalStore.actions.loadPage(this.$route.path) + // console.log('mounted', this.rec) + } + + @Watch('$route.path') + public async changepage() { + // console.log('changepage') + this.rec = await GlobalStore.actions.loadPage(this.$route.path) + } + + public meta() { + return tools.metafunc(this) + } + + get static_data() { + return static_data + } +} +*/ diff --git a/src/root/mypage/mypage.vue b/src/root/mypage/mypage.vue new file mode 100755 index 00000000..4fd293c4 --- /dev/null +++ b/src/root/mypage/mypage.vue @@ -0,0 +1,12 @@ + + + + diff --git a/src/root/mypage/mypage.vue.orig b/src/root/mypage/mypage.vue.orig new file mode 100755 index 00000000..c7d14b69 --- /dev/null +++ b/src/root/mypage/mypage.vue.orig @@ -0,0 +1,47 @@ + + + diff --git a/src/rootgen/sito_offline/sito_offline.ts b/src/rootgen/sito_offline/sito_offline.ts new file mode 100755 index 00000000..134accad --- /dev/null +++ b/src/rootgen/sito_offline/sito_offline.ts @@ -0,0 +1,8 @@ +import { defineComponent } from 'vue' + +export default defineComponent({ + name: 'sito_offline', + setup() { + return {} + }, +}) diff --git a/src/rootgen/sito_offline/sito_offline.vue b/src/rootgen/sito_offline/sito_offline.vue new file mode 100755 index 00000000..44125b97 --- /dev/null +++ b/src/rootgen/sito_offline/sito_offline.vue @@ -0,0 +1,7 @@ + + diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100755 index 00000000..45800034 --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,25 @@ +import { + createMemoryHistory, createRouter, createWebHashHistory, createWebHistory, +} from 'vue-router' + +import { cfgrouter } from './route-config' + +export default function (/* { store, ssrContext } */) { + const routermode = process.env.VUE_ROUTER_MODE === 'history' ? createWebHistory : createWebHashHistory + + const createHistory = process.env.SERVER + ? createMemoryHistory + : routermode + + return createRouter({ + scrollBehavior: () => ({ left: 0, top: 0 }), + routes: cfgrouter.getmenu(), + + // Leave this as is and make changes in quasar.conf.js instead! + // quasar.conf.js -> build -> vueRouterMode + // quasar.conf.js -> build -> publicPath + history: createHistory( + process.env.MODE === 'ssr' ? void 0 : process.env.VUE_ROUTER_BASE, + ), + }) +} diff --git a/src/router/permission.ts b/src/router/permission.ts new file mode 100644 index 00000000..ceaf04de --- /dev/null +++ b/src/router/permission.ts @@ -0,0 +1,164 @@ +import { useGlobalStore } from '@store/globalStore' +import { static_data } from '@src/db/static_data' +import { useProgressBar } from '@store/Modules/ProgressBar' +import { tools } from '@store/Modules/tools' +import { useUserStore } from '@store/UserStore' +import { useRouter } from 'vue-router' + +const progressBar = useProgressBar() + +const getRouteData = async (to: any) => { + if (!to.meta.transparent) { + progressBar.start() + } + const titleToDisplay: any = await to.meta.asyncData(to) +} + +const $router = useRouter() + +// router().beforeEach(async (to: IMyRoute, from: IMyRoute, next) => { +$router.beforeEach(async (to, from, next) => { + const userStore = useUserStore() + const globalStore = useGlobalStore() + + try { + if (globalStore) { + if (!globalStore.finishLoading) { + let eseguicheck = true + + // Controlla se c'è nella lista allora non eseguire il controllo: + for (const route of static_data.routes) { + if (route.path === to.path) { + eseguicheck = false + break + } + } + + if (eseguicheck) { + // Qui arrivano gli URL che non sono della lista ROUTE. + // quindi ad esempio http://localhost:8085/signup/paoloar77 + + if (!globalStore.TIMER && to.path !== '/') { + // console.log('TIMER') + globalStore.TIMER = setInterval(() => { + // console.log('SETINTERVAL') + if (globalStore.finishLoading) { + if (globalStore.TIMER) { + // console.log('TIMER_STATE', TIMER_STATE, 'URL_RITORNA', URL_RITORNA) + if (globalStore.TIMER_STATE === 2) { + clearInterval(globalStore.TIMER) + globalStore.TIMER = null + // console.log('TERMINA INTERVALLO') + // next('/prova') + // return + } + // se mi ero salvato un url per doverci ritornare, allora puntalo a questo: + if (globalStore.URL_RITORNA !== '') { + // next(URL_RITORNA) + globalStore.TIMER_STATE = 2 + } else if (globalStore.TIMER_STATE === 0) { + globalStore.URL_RESTORE = to.path + // next('/') + globalStore.TIMER_STATE = 1 + } + } + } + }, 200) + } + } + } + if (globalStore.finishLoading) { + if (globalStore.TIMER) { + // console.log('TIMER_STATE', TIMER_STATE, 'to.path', to.path) + if (globalStore.URL_RITORNA === '' && globalStore.URL_RESTORE !== '') { + globalStore.URL_RITORNA = globalStore.URL_RESTORE + // onsole.log('URL_RITORNA', URL_RITORNA) + } + } + } + + // await tools.aspettansec(4000) + } + + if (from.name && from.matched[0].name === to.name && from.meta.isModal) { + next() + console.log('Route interceptor log: <1>') + return + } + // else if (from.name === to.name && isEqual(from.params, to.params)) { + if (from.name === to.name) { + console.log('Route interceptor log: <2>') + console.log('from e to: ', from, to) + next() + } else { + if (!to.meta.transparent && !to.meta.isModal) { + // console.log('Route interceptor log: <4>') + progressBar.start() + } else if (to.meta.transparent && !from.name) { + console.log('Route interceptor log: <5>') + progressBar.start() + } else if (to.meta.transparent && !to.matched.some((m) => m.name === from.name)) { + console.log('Route interceptor log: <6>') + progressBar.start() + } + + // Check requires auth + if (to.matched.some((m) => m.meta.requiresAuth)) { + // await LoginStore.actions.refreshUserInfos() + if (tools.isLoggedToSystem()) { + if (to.meta.asyncData) { + await getRouteData(to) + } + } else { + // LoginStore.mutations.showLoginRoute(to.fullPath) + if (from.name) { + progressBar.hide() + } else { + // next('/') + } + + $router.push({ name: 'pages.SignIn' }) + return + } + } else if (to.matched.some((m) => m.meta.noAuth) && userStore.isLogged) { + next('/') + } else if (to.meta.asyncData) { + await getRouteData(to) + return + } + } + + // if (to.meta.middleware) { + // const middleware = Array.isArray(to.meta.middleware) + // ? to.meta.middleware + // : [to.meta.middleware] + // + // const context = { + // from, + // next, + // Router, + // to + // } + // + // const nextMiddleware = nextFactory(context, middleware, 1) + // + // return middleware[0]({ ...context, next: nextMiddleware }) + // } + // + return next() + } catch + (err) { + console.log('Route error:', err) + progressBar.fail() + } +}) + +// const getRouteData = async (to: IMyRoute | IMyRouteRecord) => { + +/* +router().afterEach(async (from: IMyRoute, next) => { + progressBar.finish() + // AlertsStore.mutations.hideAlert() + // EventBus.$emit('closePopups') +}) +*/ diff --git a/src/router/route-config.ts b/src/router/route-config.ts new file mode 100755 index 00000000..906b6e80 --- /dev/null +++ b/src/router/route-config.ts @@ -0,0 +1,42 @@ +import { static_data } from '@src/db/static_data' +import type { RouteRecordRaw } from 'vue-router' +import { tools } from '@store/Modules/tools' + +interface IMyMeta { + title?: string, + headerShadow?: boolean, + contentProp?: boolean, + transparent?: boolean, + isModal?: boolean, + requiresAuth?: boolean, + isTab?: boolean, + noAuth?: boolean, + // asyncData?: (to?: IMyRoute | IMyRouteRecord) => Promise<{title?: string} | void>, + asyncData?: (to?: any) => Promise<{ title?: string } | void>, + isAuthorized?: (to?: any) => boolean + middleware?: any[] +} + +/* +export interface IMyRoute extends Route { + meta: IMyMeta, + matched: IMyRouteRecord[] +} + +export interface IMyRouteRecord extends RouteRecord { + meta: IMyMeta, +} +*/ + +export const cfgrouter = { + + getmenu(): RouteRecordRaw[] { + const arrroutes: RouteRecordRaw[] = [] + + for (const route of static_data.routes) { + tools.addRoute(arrroutes, route) + } + + return arrroutes + }, +} diff --git a/src/router/route-names.ts b/src/router/route-names.ts new file mode 100755 index 00000000..9c9fb825 --- /dev/null +++ b/src/router/route-names.ts @@ -0,0 +1,12 @@ +export const RouteNames = { + home: 'home', + login: 'login', + projects: 'projects', + projectsall: 'projall', + projectsshared: 'projectsShared', + myprojects: 'myprojects', + favouriteprojects: 'favproj', + listprojects: 'listproj', + livelli: 'livelli', + ecommerce: 'ecommerce', +} diff --git a/src/shims-quasar.d.ts b/src/shims-quasar.d.ts new file mode 100755 index 00000000..ab9da40c --- /dev/null +++ b/src/shims-quasar.d.ts @@ -0,0 +1,13 @@ +import { Vue, Options } from 'vue-class-component' + +declare module 'vue/types/vue' { + interface Vue { + $q: any + } +} + +declare module 'vue/types/options' { + interface ComponentOptions { + preFectch?: (options: any) => void | Promise + } +} diff --git a/src/shims-vue.d.ts b/src/shims-vue.d.ts new file mode 100755 index 00000000..101bfa81 --- /dev/null +++ b/src/shims-vue.d.ts @@ -0,0 +1,8 @@ +// Mocks all files ending in `.vue` showing them as plain Vue instances/* eslint-disable */ +/* eslint-disable */ +declare module '*.vue' { + import { defineComponent } from 'vue'; + const Component: ReturnType; + export default Component; + +} diff --git a/src/statics/i18n.js b/src/statics/i18n.js new file mode 100755 index 00000000..624974fd --- /dev/null +++ b/src/statics/i18n.js @@ -0,0 +1,63 @@ +import msg_it from '../../../freeplanet/src/statics/lang/it' +import msg_es from '../../../freeplanet/src/statics/lang/es' +import msg_si from '../../../freeplanet/src/statics/lang/si' +import msg_enUs from '../../../freeplanet/src/statics/lang/enUs' +import msg_fr from '../../../freeplanet/src/statics/lang/fr' +import msg_de from '../../../freeplanet/src/statics/lang/de' +import msg_pt from '../../../freeplanet/src/statics/lang/pt' + +import msg_website_de from '../db/lang/ws_de'; +import msg_website_enUs from '../db/lang/ws_enUs'; +import msg_website_es from '../db/lang/ws_es'; +import msg_website_fr from '../db/lang/ws_fr'; +import msg_website_it from '../db/lang/ws_it'; +import msg_website_pt from '../db/lang/ws_pt'; +import msg_website_si from '../db/lang/ws_si'; + +const msgde = { ...msg_website_de, ...msg_de.de }; +const msgenUs = { ...msg_website_enUs, ...msg_enUs.enUs }; +const msges = { ...msg_website_es, ...msg_es.es }; +const msgfr = { ...msg_website_fr, ...msg_fr.fr }; +const msgit = { ...msg_website_it, ...msg_it.it }; +const msgpt = { ...msg_website_pt, ...msg_pt.pt }; +const msgsi = { ...msg_website_si, ...msg_si.si }; + +const messages = { + it: { + ...msgit, + pages: { ...msg_website_it.pages, ...msg_it.it.pages }, + msg: { ...msg_website_it.msg, ...msg_it.it.msg }, + }, + si: { + ...msgsi, + pages: { ...msg_website_si.pages, ...msg_si.si.pages }, + msg: { ...msg_website_si.msg, ...msg_si.si.msg }, + }, + es: { + ...msges, + pages: { ...msg_website_es.pages, ...msg_es.es.pages }, + msg: { ...msg_website_es.msg, ...msg_es.es.msg }, + }, + enUs: { + ...msgenUs, + pages: { ...msg_website_enUs.pages, ...msg_enUs.enUs.pages }, + msg: { ...msg_website_enUs.msg, ...msg_enUs.enUs.msg }, + }, + fr: { + ...msgfr, + pages: { ...msg_website_fr.pages, ...msg_fr.fr.pages }, + msg: { ...msg_website_fr.msg, ...msg_fr.fr.msg }, + }, + pt: { + ...msgpt, + pages: { ...msg_website_pt.pages, ...msg_pt.pt.pages }, + msg: { ...msg_website_pt.msg, ...msg_pt.pt.msg }, + }, + de: { + ...msgde, + pages: { ...msg_website_de.pages, ...msg_de.de.pages }, + msg: { ...msg_website_de.msg, ...msg_de.de.msg }, + }, +}; + +export default messages; diff --git a/src/statics/lang.old/de.js b/src/statics/lang.old/de.js new file mode 100755 index 00000000..251f5025 --- /dev/null +++ b/src/statics/lang.old/de.js @@ -0,0 +1,427 @@ +const msg_de = { + de: { + words: { + da: 'from', + a: 'to', + }, + home: { + guida: 'Guide', + guida_passopasso: 'Step By Step Guide', + }, + grid: { + editvalues: 'Edit Values', + addrecord: 'Add Row', + showprevedit: 'Show Past Events', + nodata: 'No data', + columns: 'Columns', + tableslist: 'Tables', + }, + otherpages: { + sito_offline: 'Sito in Aggiornamento', + modifprof: 'Modify Profile', + biografia: 'Biografia', + admin: { + menu: 'Administration', + eventlist: 'Your Booking', + usereventlist: 'Users Booking', + userlist: 'Users List', + tableslist: 'List of tables', + newsletter: 'Newsletter', + pages: 'Pages', + media: 'Medias', + }, + manage: { + menu: 'Manage', + manager: 'Manager', + nessuno: 'None', + }, + messages: { + menu: 'Your Messages', + }, + }, + sendmsg: { + write: 'write', + }, + dialog: { + continue: 'Continue', + close: 'Close', + copyclipboard: 'Copied to clipboard', + ok: 'Ok', + yes: 'Yes', + no: 'No', + delete: 'Delete', + update: 'Update', + add: 'Add', + cancel: 'Cancel', + today: 'Today', + book: 'Book', + avanti: 'Avanti', + indietro: 'Indietro', + finish: 'Fine', + sendmsg: 'Send Message', + sendonlymsg: 'Send only a Msg', + msg: { + titledeleteTask: 'Delete Task', + deleteTask: 'Delete Task {mytodo}?', + }, + }, + comp: { + Conta: 'Count', + }, + db: { + recupdated: 'Record Updated', + recfailed: 'Error during update Record', + reccanceled: 'Canceled Update. Restore previous value', + deleterecord: 'Delete Record', + deletetherecord: 'Delete the Record?', + deletedrecord: 'Record Deleted', + recdelfailed: 'Error during deletion of the Record', + duplicatedrecord: 'Duplicate Record', + recdupfailed: 'Error during record duplication', + }, + components: { + authentication: { + telegram: { + open: 'Click here to open the BOT Telegram and follow the instructions', + openbot: 'Open BOT Telegram', + }, + login: { + facebook: 'Facebook', + }, + email_verification: { + title: 'Begin your registration', + introduce_email: 'Enter your email', + email: 'Email', + invalid_email: 'Your email is invalid', + verify_email: 'Verify your email', + go_login: 'Back to Login', + incorrect_input: 'Incorrect input.', + link_sent: 'Now read your email and confirm registration', + se_non_ricevo: 'If you do not receive the email, try checking in the spam, or contact us', + title_unsubscribe: 'Disiscrizione alla newsletter', + title_unsubscribe_done: 'Disiscrizione completata correttamente', + }, + }, + }, + fetch: { + errore_generico: 'Generic Error', + errore_server: 'Unable to access to the Server. Retry. Thank you.', + error_doppiologin: 'Signup again. Another access was made with another device.', + }, + user: { + notregistered: 'You need first to SignUp before storing data', + loggati: 'User not logged in', + }, + templemail: { + subject: 'Subject Email', + testoheadermail: 'Header Email', + content: 'Content', + img: 'Image 1', + img2: 'Image 2', + content2: 'Content 2', + options: 'Options', + }, + dashboard: { + downline: 'People you\'ve invited', + }, + reg: { + volte: 'time', + volta: 'times', + verified_email: 'Email Verified', + reg_lista_prec: 'Please enter the First Name, Last Name and mobile phone number you left in the past when you signed up for the Chat!
This way the system will recognize you and keep the position of the list', + nuove_registrazioni: 'If this is a NEW registration, you must contact the person who INVITED you, who will leave you the CORRECT LINK to do the Registration under him/her', + you: 'You', + cancella_invitato: 'Delete Invited', + regala_invitato: 'Give invited', + messaggio_invito: 'Invitation Message', + messaggio_invito_msg: 'Copia il messaggio qui sotto e condividilo a tutti coloro a cui vuoi condividere questo Movimento !', + aportador_solidario: 'Solidarity Contributor', + aportador_solidario_nome_completo: 'A.S. Name', + aportador_solidario_ind_order: 'A.S.Ind', + reflink: 'Links to share to your friends:', + linkzoom: 'Link to enter in Zoom', + page_title: 'Registration', + made_gift: 'Donated', + note: 'Note', + incorso: 'Registration please wait...', + richiesto: 'Field Required', + email: 'Email', + intcode_cell: 'International Code', + cell: 'Mobile Telegram', + cellreg: 'Cellulare con cui ti eri registrato', + nationality: 'Nationality', + email_paypal: 'Email Paypal', + revolut: 'Revolut', + country_pay: 'Country of Destination Payments', + username_telegram: 'Username Telegram', + telegram: 'Chat Telegram \'{botname}\'', + teleg_id: 'Telegram ID', + teleg_auth: 'Authorization Code', + paymenttype: 'Available Payment Methods', + selected: 'Selected', + teleg_checkcode: 'Codice Telegram', + my_dream: 'My Dream', + saw_zoom_presentation: 'Ha visto Zoom', + manage_telegram: 'Gestori Telegram', + img: 'File Image', + date_reg: 'Reg. Date', + requirement: 'Requirements', + perm: 'Permissions', + username_login: 'Username or email', + username: 'Username (Pseudonym)', + username_short: 'Username', + name: 'Name', + surname: 'Surname', + password: 'Password', + repeatPassword: 'Repeat password', + terms: 'I agree with the terms and privacy', + onlyadult: "I confirm that I'm at least 18 years old", + submit: 'Submit', + title_verif_reg: 'Verify Registration', + reg_ok: 'Successful Registration', + verificato: 'Verified', + non_verificato: 'Not Verified', + forgetpassword: 'Forget Password?', + modificapassword: 'Modify Password', + err: { + required: 'is required', + email: 'must be a valid email', + errore_generico: 'Please review fields again', + atleast: 'must be at least', + complexity: 'must contains at least 1 lowercase letter, 1 uppercase letter, 1 digit', + notmore: 'must not be more than', + char: 'characters long', + terms: 'You need to agree with the terms & conditions.', + email_not_exist: 'Email is not present in the archive, check if it is correct', + duplicate_email: 'Email was already registered', + user_already_exist: 'La registrazione con questi dati (nome, cognome e cellulare) è stata già effettuata. Per accedere al sito, cliccare sul bottone LOGIN dalla HomePage.', + user_extralist_not_found: 'User in archive not found, insert the Name, Surname and mobile phone sent previously', + duplicate_username: 'Username is already taken', + aportador_not_exist: 'The username of the person who invited you is not present in the archive. Verify that it is correct.', + sameaspassword: 'Passwords must be identical', + }, + }, + op: { + qualification: 'Qualification', + usertelegram: 'Username Telegram', + disciplines: 'Disciplines', + certifications: 'Certifications', + intro: 'Introduction', + info: 'Biography', + webpage: 'Web Page', + days_working: 'Working Days', + facebook: 'Facebook Page', + }, + login: { + page_title: 'Login', + incorso: 'Login...', + enter: 'Login', + esci: 'Logout', + errato: 'Username or password wrong. Please retry again', + completato: 'Login successfully!', + needlogin: 'You must login before continuing', + }, + reset: { + title_reset_pwd: 'Reset your Password', + send_reset_pwd: 'Send password request', + incorso: 'Request New Email...', + email_sent: 'Email sent', + check_email: 'Check your email for a message with a link to update your password. This link will expire in 4 hours for security reasons.', + title_update_pwd: 'Update your password', + update_password: 'Update Password', + }, + logout: { + uscito: 'Logout successfully', + }, + errors: { + graphql: { + undefined: 'undefined', + }, + }, + showbigmap: 'Show the largest map', + todo: { + titleprioritymenu: 'Priority:', + inserttop: 'Insert Task at the top', + insertbottom: 'Insert Task at the bottom', + edit: 'Task Description:', + completed: 'Lasts Completed', + usernotdefined: 'Attention, you need to be Signed In to add a new Task', + start_date: 'Start Date', + status: 'Status', + completed_at: 'Completition Date', + expiring_at: 'Expiring Date', + phase: 'Phase', + }, + notification: { + status: 'Status', + ask: 'Enable Notification', + waitingconfirm: 'Confirm the Request Notification', + confirmed: 'Notifications Enabled!', + denied: 'Notifications Disabled! Attention, you will not see your messages incoming. Reenable it for see it', + titlegranted: 'Notification Permission Granted!', + statusnot: 'status Notification', + titledenied: 'Notification Permission Denied!', + title_subscribed: 'Subscribed to FreePlanet.app!', + subscribed: 'You can now receive Notification and Messages.', + newVersionAvailable: 'Upgrade', + }, + connection: 'Conexión', + proj: { + newproj: 'Project Title', + newsubproj: 'SubProject Title', + insertbottom: 'Insert New Project', + longdescr: 'Description', + hoursplanned: 'Estimated Hours', + hoursleft: 'Left Hours', + hoursadded: 'Additional Hours', + hoursworked: 'Worked Hours', + begin_development: 'Start Dev', + begin_test: 'Start Test', + progresstask: 'Progression', + actualphase: 'Actual Phase', + hoursweeky_plannedtowork: 'Scheduled weekly hours', + endwork_estimate: 'Estimated completion date', + privacyread: 'Who can see it:', + privacywrite: 'Who can modify if:', + totalphases: 'Total Phase', + themecolor: 'Theme Color', + themebgcolor: 'Theme Color Background', + }, + where: { + code: 'Id', + whereicon: 'Icon', + }, + col: { + label: 'Etichetta', + value: 'Valore', + type: 'Tipo', + }, + cal: { + num: 'Number', + booked: 'Booked', + booked_error: 'Reservation failed. Try again later', + sendmsg_error: 'Message not sent. Try again later', + sendmsg_sent: 'Message sent', + booking: 'Book the Event', + titlebooking: 'Reservation', + modifybooking: 'Modify Reservation', + cancelbooking: 'Cancel Reservation', + canceledbooking: 'Booking cancelled', + cancelederrorbooking: 'Cancellation unsuccessfully, try again later', + event: 'Event', + starttime: 'From', + nextevent: 'Next Event', + readall: 'Read All', + enddate: 'to', + endtime: 'to', + duration: 'Duration', + hours: 'Hours', + when: 'When', + where: 'Where', + teacher: 'Led by', + enterdate: 'Enter date', + details: 'Details', + infoextra: 'Extra Info DateTime', + alldayevent: 'All-Day myevent', + eventstartdatetime: 'Start', + enterEndDateTime: 'End', + selnumpeople: 'Participants', + selnumpeople_short: 'Num', + msgbooking: 'Message to send', + showpdf: 'Show PDF', + bookingtextdefault: 'I book for', + bookingtextdefault_of: 'of', + data: 'Date', + teachertitle: 'Teacher', + peoplebooked: 'Booked', + showlastschedule: 'See Full Schedule', + }, + msgs: { + message: 'Messaggio', + messages: 'Messaggi', + nomessage: 'Nessun Messaggio', + }, + event: { + _id: 'id', + typol: 'Typology', + short_tit: 'Short Title', + title: 'Title', + details: 'Details', + bodytext: 'Event Text', + dateTimeStart: 'Date Start', + dateTimeEnd: 'Date End', + bgcolor: 'Background color', + days: 'Days', + icon: 'Icon', + img: 'Nomefile Img', + img_small: 'Img Small', + where: 'Qhere', + contribtype: 'Contribute Type', + price: 'Price', + askinfo: 'Ask for Info', + showpage: 'Show Page', + infoafterprice: 'Info after Price', + teacher: 'Teacher', // teacherid + teacher2: 'Teacher2', // teacherid2 + infoextra: 'Extra Info', + linkpage: 'WebSite', + linkpdf: 'PDF Link', + nobookable: 'No Bookable', + news: 'News', + dupId: 'Id Duplicate', + canceled: 'Canceled', + deleted: 'Deleted', + duplicate: 'Duplicate', + notempty: 'Field cannot be empty', + modified: 'Modified', + showinhome: 'Show in Home', + showinnewsletter: 'Show in the Newsletter', + color: 'Title Color', + }, + disc: { + typol_code: 'Tipology Code', + order: 'Order', + }, + newsletter: { + title: 'Would you like to receive our Newsletter?', + name: 'Your name', + surname: 'Your surname', + namehint: 'Name', + surnamehint: 'Surname', + email: 'Your email', + submit: 'Subscribe', + reset: 'Reset', + typesomething: 'Please type something', + acceptlicense: 'I accept the license and terms', + license: 'You need to accept the license and terms first', + submitted: 'Subscribed', + menu: 'Newsletter1', + template: 'Template Email', + sendemail: 'Send', + check: 'Check', + sent: 'Already Sent', + mailinglist: 'Mailing List', + settings: 'Settings', + serversettings: 'Server', + others: 'Others', + templemail: 'Templates Email', + datetoSent: 'DateTime Send', + activate: 'Activate', + numemail_tot: 'Email Total', + numemail_sent: 'Email Sent', + datestartJob: 'Start Job', + datefinishJob: 'End Job', + lastemailsent_Job: 'Last Sent', + starting_job: 'Job started', + finish_job: 'Sent terminated', + processing_job: 'Work in progress', + error_job: 'Info Error', + statesub: 'Subscribed', + wrongerr: 'Invalid Email', + }, + privacy_policy: 'Privacy Policy', + cookies: 'Wir verwenden Cookies für eine bessere Webleistung.', + }, +}; + +export default msg_de; diff --git a/src/statics/lang.old/enUs.js b/src/statics/lang.old/enUs.js new file mode 100755 index 00000000..05ad5b0e --- /dev/null +++ b/src/statics/lang.old/enUs.js @@ -0,0 +1,625 @@ +const msg_enUs = { + enUs: { + words: { + da: 'from', + a: 'to', + }, + home: { + guida: 'Guide', + guida_passopasso: 'Step By Step Guide', + }, + grid: { + editvalues: 'Edit Values', + addrecord: 'Add Row', + showprevedit: 'Show Past Events', + nodata: 'No data', + columns: 'Columns', + tableslist: 'Tables', + }, + otherpages: { + sito_offline: 'Updating Website', + modifprof: 'Modify Profile', + biografia: 'Bio', + error404: 'error404', + error404def: 'error404def', + admin: { + menu: 'Administration', + eventlist: 'Your Booking', + usereventlist: 'Users Booking', + userlist: 'Users List', + tableslist: 'List of tables', + navi: 'Navi', + newsletter: 'Newsletter', + pages: 'Pages', + media: 'Medias', + }, + manage: { + menu: 'Manage', + manager: 'Manager', + nessuno: 'None', + }, + messages: { + menu: 'Your Messages', + }, + }, + sendmsg: { + write: 'write', + }, + stat: { + imbarcati: 'Boarded', + imbarcati_weekly: 'Boarded Settimanali', + imbarcati_in_attesa: 'Boarded on hold', + qualificati: 'Qualified with at least 2 guests', + requisiti: 'Users with the 7 Requirements', + zoom: 'Participated in Zoom', + modalita_pagamento: 'Payment Methods Inserted', + accepted: 'Accepted Guidelines + Video', + dream: 'They wrote the Dream', + email_not_verif: 'Email not Verified', + telegram_non_attivi: 'Inactive Telegram', + telegram_pendenti: 'Pending Telegram', + reg_daily: 'Daily Registrations', + reg_total: 'Total registrations', + }, + steps: { + nuovo_imbarco: 'Book another Trip', + vuoi_entrare_nuova_nave: 'Do you wish to help the Movement to advance and intend to enter another Ship?
By making a New Gift of 33€, you will be able to travel another journey and have another opportunity to become a Dreamer!
' + + 'If you confirm, you\'ll be added to the waiting list for the next boarding.', + vuoi_cancellare_imbarco: 'Are you sure you want to cancel this boarding on the AYNI ship?', + completed: 'Completed', + passi_su: '{passo} steps out of {totpassi}', + video_intro_1: '1. Welcome to {sitename}', + video_intro_2: '2. Birth of {sitename}', + read_guidelines: 'I have read and agreed to these terms and conditions written above', + saw_video_intro: 'I declare I\'ve seen the videos', + paymenttype: 'Methods of Payment (Revolut)', + paymenttype_long: 'Choose at least 2 Payment Methods, to exchange gifts.

The payment methods are:
  • Paypal (mandatory) because it is a very popular system throughout Europe (the transfer is free of charge) and you can connect prepaid cards, credit cards and bank account WITHOUT COMMISSIONS. In this way you won\'t have to share your card or c/c numbers but only the email you used during the registration on Paypal. Available the app for your mobile phone.
  • Revolut: the Revolut Prepaid Card with English IBAN (outside EU) completely free, more free and easy to use. Available the app for mobile.
  • ', + paymenttype_paypal: 'How to open a Paypal account (in 2 minutes)', + paymenttype_paypal_carta_conto: 'How to associate a Credit/Debit Card or Bank Account on PayPal', + paymenttype_paypal_link: 'Open Account with Paypal', + paymenttype_revolut: 'How to open the account with Revolut (in 2 minutes)', + paymenttype_revolut_link: 'Open Account with Revolut', + entra_zoom: 'Enter in Zoom', + linee_guida: 'I accept the guidelines', + video_intro: 'I see the videos', + zoom: 'I partecipate at least 1 Zoom', + zoom_si_partecipato: 'You have participated in at least 1 Zoom', + zoom_partecipa: 'Participated in at least 1 Zoom', + zoom_no_partecipato: 'You have not yet participated in a Zoom (it is a requirement to enter)', + zoom_long: 'You are required to participate in at least 1 Zoom, but it is recommended that you take part in the movement more actively.

    By participating in Zooms the Staff will record attendance and you will be enabled.', + zoom_what: 'Tutorial how to install Zoom Cloud Meeting', + // sharemovement_devi_invitare_almeno_2: 'You still haven\'t invited 2 people', + // sharemovement_hai_invitato: 'You invited at least 2 people', + sharemovement_invitati_attivi_si: 'You have at least 2 people invited Active', + sharemovement_invitati_attivi_no: 'Note:The people you invited, in order to be Active, must have completed all the first 7 Requirements (see your Lavagna to see what they are missing).', + sharemovement: 'Invitation at least 2 people', + sharemovement_long: 'Share the {sitename} Movement and invite them to participate in the Welcome Zooms to become part of this great Family 😄 .
    .', + inv_attivi_long: '', + enter_prog_completa_requisiti: 'Complete all the requirements to enter the boarding list.', + enter_prog_requisiti_ok: 'You have completed all 7 requirements to enter the boarding list.
    ', + enter_prog_msg: 'You will receive a message in the next few days as soon as your ship is ready!', + enter_prog_msg_2: '', + enter_nave_9req_ok: 'CONGRATULATIONS! You have completed ALL 9 steps guide! Thank you for helping {sitename} to Expand!
    You will be able to leave very soon with your Journey, making your gift and continuing towards the Dreamer.', + enter_nave_9req_ko: 'Remember that you can help the Movement grow and expand by sharing our journey with everyone!', + enter_prog: 'I\'m going in Programming', + enter_prog_long: 'Satisfied the requirements you will enter the Program, you will be added to the Ticket and the corresponding group chat.
    ', + collaborate: 'Collaboration', + collaborate_long: 'I continue to work with my companions to get to the day when my ship will sail.', + dream: 'I write my dream', + dream_long: 'Write here the Dream for which you entered {sitename} and which you wish to realize.
    It will be shared with all the others to dream together !', + dono: 'Gift', + dono_long: 'I make my gift on the departure date of my Ship', + support: 'Support the movement', + support_long: 'I support the movement by bringing energy, participating and organizing Zoom, helping and informing newcomers and continuing to spread {sitename}\'s vision.', + ricevo_dono: 'I receive my gift and CELEBRATE', + ricevo_dono_long: 'Hurray!!!!
    THIS MOVEMENT IS REAL AND POSSIBLE IF WE DO IT WORK ALL TOGETHER!!', + }, + + dialog: { + continue: 'Continue', + close: 'Close', + copyclipboard: 'Copied to clipboard', + ok: 'Ok', + yes: 'Yes', + no: 'No', + delete: 'Delete', + cancel: 'Cancel', + update: 'Update', + add: 'Add', + today: 'Today', + book: 'Book', + avanti: 'Continue', + indietro: 'Back', + finish: 'Finish', + sendmsg: 'Send Message', + sendonlymsg: 'Send only a Msg', + msg: { + titledeleteTask: 'Delete Task', + deleteTask: 'Delete Task {mytodo}?', + }, + }, + comp: { + Conta: 'Count', + }, + db: { + recupdated: 'Record Updated', + recfailed: 'Error during update Record', + reccanceled: 'Canceled Update. Restore previous value', + deleterecord: 'Delete Record', + deletetherecord: 'Delete the Record?', + deletedrecord: 'Record Deleted', + recdelfailed: 'Error during deletion of the Record', + duplicatedrecord: 'Duplicate Record', + recdupfailed: 'Error during record duplication', + }, + components: { + authentication: { + telegram: { + open: 'Click here to open the BOT Telegram and follow the instructions', + ifclose: 'Se non si apre Telegram cliccando sul bottone oppure l\'avevi eliminato, vai su Telegram e cerca \'{botname}\' dall\'icona della lente, poi premi Start e segui le istruzioni.', + openbot: 'Open BOT Telegram', + }, + login: { + facebook: 'Facebook', + }, + email_verification: { + title: 'Begin your registration', + introduce_email: 'Enter your email', + email: 'Email', + invalid_email: 'Your email is invalid', + verify_email: 'Verify your email', + go_login: 'Back to Login', + incorrect_input: 'Incorrect input.', + link_sent: 'Now read your email and confirm registration', + se_non_ricevo: 'If you do not receive the email, try checking in the spam, or contact us', + title_unsubscribe: 'Unsubscribe to the newsletter', + title_unsubscribe_done: 'Subscription completed successfully', + }, + }, + }, + fetch: { + errore_generico: 'Generic Error', + errore_server: 'Unable to access to the Server. Retry. Thank you.', + error_doppiologin: 'Signup again. Another access was made with another device.', + }, + user: { + notregistered: 'You need first to SignUp before storing data', + loggati: 'User not logged in', + }, + templemail: { + subject: 'Subject Email', + testoheadermail: 'Header Email', + content: 'Content', + img: 'Image 1', + img2: 'Image 2', + content2: 'Content 2', + options: 'Options', + }, + dashboard: { + data: 'Date', + data_rich: 'Date Req.', + ritorno: 'Return', + invitante: 'Invitante', + num_tessitura: 'Numero di Tessitura:', + attenzione: 'Attenzione', + downline: 'Guests', + downnotreg: 'Non-registered Guests', + notreg: 'Not Registered', + inv_attivi: 'Invited with the 7 Requirements', + numinvitati: 'At least 2 guests', + telefono_wa: 'Contact on Whatsapp', + sendnotification: 'Send Notification to the Recipient on Telegram BOT', + ricevuto_dono: '😍🎊 You received a Gift Invitation {invitato} from {mittente} !', + ricevuto_dono_invitante: '😍🎊 You received a Gift Inviting from {mittente} !', + nessun_invitante: 'No Inviting', + nessun_invitato: 'No_invited', + legenda_title: 'Click on the name of the guest to see the status of his Requirements.', + nave_in_partenza: 'on Departure on', + nave_in_chiusura: 'Closing Gift Chat', + nave_partita: 'departed on', + tutor: 'Tutor', + /* sonomediatore: 'When you become a Medalist you are contacted by a TUTOR, with him you must:
      ' + + '
    1. Open your Gift Chat (you as owner and the Tutor as administrator) with this name:
      {nomenave}
    2. ' + + '
    3. Click on the chat name at the top -> Edit -> Administrators -> "Add Administrator", select the Tutor in the list.
    4. ' + + '
    5. You have to configure the chat so that whoever enters also sees the previous posts (click on the chat name at the top, click on edit,' + + 'change "new members\' history" from hidden to visible.
    6. ' + + '
    7. To find the link to the newly created Chat: Click on the Chat name at the top, click on the Pencil -> "Group Type" -> "invite to group via link", click on "copy link" and paste it in the "Link Gift Chat"
    8. " + box below.' + + '
    9. Send the Gift Chat Link to all Donors by clicking on the button below.
    .', + */ + sonomediatore: 'When you are a MEDIATOR you will be contacted by TUTOR AYNI by message Chat AYNI BOT', + superchat: 'Note: ONLY if you have PAYMENT problems, or if you want to be REPLACED, two Tutors are waiting to help you on the Chat:
    Get into Gift Chat.', + sonodonatore: '
    1. When you are in this position, you will be invited (via a message on AYNI BOT) to make the Gift. You will no longer need to enter a Chat.
    2. ' + + '
    3. You will have 3 days to make the Gift (then you will be replaced), in the payment method that you will find written on the message in AYNI BOT.
    ', + sonodonatore_seconda_tessitura: '
    1. Here you are Mediator and also Donor, but being the second Weaving, you won\'t need to make your gift again.
    ', + controlla_donatori: 'Check Donor List', + link_chat: 'Gift Chat Telegram links', + tragitto: 'Route', + nave: 'Ship', + data_partenza: 'Departure
    Date', + doni_inviati: 'Gift
    Sent', + nome_dei_passaggi: 'Steps Name', + donatori: 'Donors', + donatore: 'Donor', + mediatore: 'Mediator', + sognatore: 'Dreamer', + sognatori: 'DREAMER', + intermedio: 'INTERMEDIATE', + pos2: 'Interm. 2', + pos3: 'Interm. 3', + pos5: 'Interm. 5', + pos6: 'Interm. 6', + gift_chat: 'To enter Gift Chat, click here', + quando_eff_il_tuo_dono: 'When to make the Gift', + entra_in_gift_chat: 'Enter Gift Chat', + invia_link_chat: 'Send Gift Chat Link to Donors', + inviare_msg_donatori: '5) Send message to Donors', + msg_donatori_ok: '', + metodi_disponibili: 'Available Methods', + importo: 'Amount', + effettua_il_dono: 'It\'s time to make your Gift to the Dreamer
    👉 {sognatore} 👈!
    ' + + 'Send via PayPal to: {email}
    ' + + 'WARNING: Choose the option
    "SENDING TO A FRIEND"

    (So as not to pay fees).', + paypal_me: '
    2) Simplified Method
    Click directly here
    ' + + 'will open PayPal with the amount and the recipient already set.
    ' + + 'Add as message: Gift
    ' + + 'WARNING: DO NOT select the box: Paypal shopping protection
    ' + + 'If you have any doubts, watch the video below to see how to:
    ' + + 'Finally click on "Send Money Now".', + qui_compariranno_le_info: 'On the day of departure of the Ship, the information of the Dreamer will appear', + commento_al_sognatore: 'Write here a comment for the Dreamer:', + posizione: 'Position', + come_inviare_regalo_con_paypal: 'How to send the gift via Paypal', + ho_effettuato_il_dono: 'I Sent the Gift', + clicca_conferma_dono: 'Click here to confirm that you have made your gift', + fatto_dono: 'You have confirmed that the gift has been sent', + confermi_dono: 'Confirm that you have sent your 33€ Gift', + dono_ricevuto: 'Your Gift has been Received!', + dono_ricevuto_2: 'Received', + dono_ricevuto_3: 'Arrived!', + confermi_dono_ricevuto: 'Confirm that you have received the 33€ Gift from {donatore}', + confermi_dono_ricevuto_msg: 'Confirmed that you have received the 33€ Gift from {donatore}', + msg_bot_conferma: '{donatore} has confirmed that he has sent his 33€ gift to {sognatore}. (Commento: {commento})', + ricevuto_dono_ok: 'You have confirmed the gift has been received', + entra_in_lavagna: 'Enter on your Dashboard to see the departing ships', + doni_ricevuti: 'Gifts Received', + doni_inviati_da_confermare: 'Gifts Sent (to be confirmed)', + doni_mancanti: 'Missing Gifts', + temporanea: 'Temporary', + nave_provvisoria: 'You have been assigned a TEMPORARY SHIP.
    It is normal that you will see a change the departure date, due to the updating of the passenger ranking.', + ritessitura: 'RETEXTURE', + }, + reg: { + volta: 'time', + volte: 'times', + registered: 'Registrato', + contacted: 'Contattato', + name_complete: 'Nome Completo', + num_invitati: 'Num.Invitati', + is_in_whatsapp: 'In Whatsapp', + is_in_telegram: 'In Telegram', + cell_complete: 'Cellulare', + failed: 'Fallito', + ind_order: 'Num', + ipaddr: 'IP', + verified_email: 'Email Verified', + reg_lista_prec: 'Please enter the First Name, Last Name and mobile phone number you left in the past when you signed up for the Chat!
    This way the system will recognize you and keep the position of the list', + nuove_registrazioni: 'If this is a NEW registration, you must contact the person who INVITED you, who will leave you the CORRECT LINK to do the Registration under him/her', + you: 'You', + cancella_invitato: 'Delete Invited', + regala_invitato: 'Give invited', + regala_invitante: 'Give inviting', + messaggio_invito: 'Invitation Message', + messaggio_invito_msg: 'Send this message to all those to whom you want to share this Movement !', + videointro: 'Introductory Video', + invitato_regalato: 'Invited Given', + invitante_regalato: 'Inviting Given', + legenda: 'Legend', + aportador_solidario: 'Solidarity Contributor', + aportador_solidario_nome_completo: 'A.S. Name', + aportador_solidario_ind_order: 'A.S.Ind', + reflink: 'Links to share to your friends:', + linkzoom: 'Link to enter in Zoom', + incorso: 'Registration please wait...', + made_gift: 'Donated', + note: 'Note', + richiesto: 'Field Required', + email: 'Email', + intcode_cell: 'International Code', + cell: 'Mobile Telegram', + cellreg: 'Cellulare con cui ti eri registrato', + nationality: 'Nationality', + email_paypal: 'Email Paypal', + revolut: 'Revolut', + link_payment: 'Paypal.me link', + note_payment: 'Additional notes', + country_pay: 'Country of Destination Payments', + username_telegram: 'Username Telegram', + telegram: 'Chat Telegram \'{botname}\'', + teleg_id: 'Telegram ID', + teleg_auth: 'Authorization Code', + click_per_copiare: 'Click on it to copy it to the clipboard', + copia_messaggio: 'Copy Message', + teleg_torna_sul_bot: '1) Copy the code by clicking on the button above
    2) go back to {botname} by clicking on 👇 and paste (or write) the code', + teleg_checkcode: 'Telegram code', + my_dream: 'My Dream', + saw_and_accepted: 'Condizioni', + saw_zoom_presentation: 'Ha visto Zoom', + manage_telegram: 'Gestori Telegram', + paymenttype: 'Available Payment Methods (Revolut)', + selected: 'Selezionati', + img: 'File Image', + date_reg: 'Reg. Date', + requirement: 'Requirements', + perm: 'Permissions', + username_login: 'Username or email', + username: 'Username (Pseudonym)', + username_short: 'Username', + name: 'Name', + surname: 'Surname', + password: 'Password', + repeatPassword: 'Repeat password', + terms: 'I agree with the terms and privacy', + onlyadult: "I confirm that I'm at least 18 years old", + submit: 'Submit', + title_verif_reg: 'Verify Registration', + reg_ok: 'Successful Registration', + verificato: 'Verified', + non_verificato: 'Not Verified', + forgetpassword: 'Forget Password?', + modificapassword: 'Modify Password', + err: { + required: 'is required', + email: 'must be a valid email', + errore_generico: 'Please review fields again', + atleast: 'must be at least', + complexity: 'must contains at least 1 lowercase letter, 1 uppercase letter, 1 digit', + notmore: 'must not be more than', + char: 'characters long', + terms: 'You need to agree with the terms & conditions.', + email_not_exist: 'Email is not present in the archive, check if it is correct', + duplicate_email: 'Email was already registered', + user_already_exist: 'Registration with these data (name, surname and mobile phone) has already been created. To access the site, click on the LOGIN button from the HomePage.', + user_extralist_not_found: 'User in archive not found, insert the Name, Surname and mobile phone sent previously', + user_not_this_aportador: 'Stai utilizzando un link di una persona diversa dal tuo invitato originale.', + duplicate_username: 'Username is already taken', + username_not_valid: 'Username not valid', + aportador_not_exist: 'The username of the person who invited you is not present. Contact us.', + aportador_regalare_not_exist: 'Inserire l\'Username della persona che si vuole regalare l\'invitato', + sameaspassword: 'Passwords must be identical', + }, + tips: { + email: 'inserisci la tua email', + username: 'username lunga almeno 6 caratteri', + password: 'deve contenere 1 minuscola, 1 maiuscola e 1 cifra', + repeatpassword: 'ripetere la password', + + }, + }, + op: { + qualification: 'Qualification', + usertelegram: 'Username Telegram', + disciplines: 'Disciplines', + certifications: 'Certifications', + intro: 'Introduction', + info: 'Biography', + webpage: 'Web Page', + days_working: 'Working Days', + facebook: 'Facebook Page', + }, + login: { + incorso: 'Login...', + enter: 'Login', + esci: 'Logout', + errato: 'Username or password wrong. Please retry again', + subaccount: 'This account has been merged with your Main Account. Login using the username (and email) of the FIRST account.', + completato: 'Login successfully!', + needlogin: 'You must login before continuing', + }, + reset: { + title_reset_pwd: 'Reset your Password', + send_reset_pwd: 'Send password request', + incorso: 'Request New Email...', + email_sent: 'Email sent', + check_email: 'Check your email for a message with a link to update your password. This link will expire in 4 hours for security reasons.', + token_scaduto: 'Il token è scaduto oppure è stato già usato. Ripetere la procedura di reset password', + title_update_pwd: 'Update your password', + update_password: 'Update Password', + }, + logout: { + uscito: 'Logout successfully', + }, + errors: { + graphql: { + undefined: 'undefined', + }, + }, + showbigmap: 'Show the largest map', + todo: { + titleprioritymenu: 'Priority:', + inserttop: 'Insert Task at the top', + insertbottom: 'Insert Task at the bottom', + edit: 'Task Description:', + completed: 'Lasts Completed', + usernotdefined: 'Attention, you need to be Signed In to add a new Task', + start_date: 'Start Date', + status: 'Status', + completed_at: 'Completition Date', + expiring_at: 'Expiring Date', + phase: 'Phase', + }, + notification: { + status: 'Status', + ask: 'Enable Notification', + waitingconfirm: 'Confirm the Request Notification', + confirmed: 'Notifications Enabled!', + denied: 'Notifications Disabled! Attention, you will not see your messages incoming. Reenable it for see it', + titlegranted: 'Notification Permission Granted!', + statusnot: 'status Notification', + titledenied: 'Notification Permission Denied!', + title_subscribed: 'Subscribed to FreePlanet.app!', + subscribed: 'You can now receive Notification and Messages.', + newVersionAvailable: 'Upgrade', + }, + connection: 'Conexión', + proj: { + newproj: 'Project Title', + newsubproj: 'SubProject Title', + insertbottom: 'Insert New Project', + longdescr: 'Description', + hoursplanned: 'Estimated Hours', + hoursleft: 'Left Hours', + hoursadded: 'Additional Hours', + hoursworked: 'Worked Hours', + begin_development: 'Start Dev', + begin_test: 'Start Test', + progresstask: 'Progression', + actualphase: 'Actual Phase', + hoursweeky_plannedtowork: 'Scheduled weekly hours', + endwork_estimate: 'Estimated completion date', + privacyread: 'Who can see it:', + privacywrite: 'Who can modify if:', + totalphases: 'Total Phase', + themecolor: 'Theme Color', + themebgcolor: 'Theme Color Background', + }, + where: { + code: 'Id', + whereicon: 'Icon', + }, + col: { + label: 'Etichetta', + value: 'Valore', + type: 'Tipo', + }, + cal: { + num: 'Number', + booked: 'Booked', + booked_error: 'Reservation failed. Try again later', + sendmsg_error: 'Message not sent. Try again later', + sendmsg_sent: 'Message sent', + booking: 'Book the Event', + titlebooking: 'Reservation', + modifybooking: 'Modify Reservation', + cancelbooking: 'Cancel Reservation', + canceledbooking: 'Booking cancelled', + cancelederrorbooking: 'Cancellation unsuccessfully, try again later', + cancelevent: 'Cancella Evento', + canceledevent: 'Evento Cancellato', + cancelederrorevent: 'Cancellazione Evento non effettuata, Riprovare', + event: 'Event', + starttime: 'From', + nextevent: 'Next Event', + readall: 'Read All', + enddate: 'to', + endtime: 'to', + duration: 'Duration', + hours: 'Hours', + when: 'When', + where: 'Where', + teacher: 'Led by', + enterdate: 'Enter date', + details: 'Details', + infoextra: 'Extra Info DateTime', + alldayevent: 'All-Day myevent', + eventstartdatetime: 'Start', + enterEndDateTime: 'End', + selnumpeople: 'Participants', + selnumpeople_short: 'Num', + msgbooking: 'Message to send', + showpdf: 'Show PDF', + bookingtextdefault: 'I book for', + bookingtextdefault_of: 'of', + data: 'Date', + teachertitle: 'Teacher', + peoplebooked: 'Booked', + showlastschedule: 'See Full Schedule', + }, + msgs: { + message: 'Messaggio', + messages: 'Messaggi', + nomessage: 'Nessun Messaggio', + }, + event: { + _id: 'id', + typol: 'Typology', + short_tit: 'Short Title', + title: 'Title', + details: 'Details', + bodytext: 'Event Text', + dateTimeStart: 'Date Start', + dateTimeEnd: 'Date End', + bgcolor: 'Background color', + days: 'Days', + icon: 'Icon', + img: 'Nomefile Img', + img_small: 'Img Small', + where: 'Qhere', + contribtype: 'Contribute Type', + price: 'Price', + askinfo: 'Ask for Info', + showpage: 'Show Page', + infoafterprice: 'Info after Price', + teacher: 'Teacher', // teacherid + teacher2: 'Teacher2', // teacherid2 + infoextra: 'Extra Info', + linkpage: 'WebSite', + linkpdf: 'PDF Link', + nobookable: 'No Bookable', + news: 'News', + dupId: 'Id Duplicate', + canceled: 'Canceled', + deleted: 'Deleted', + duplicate: 'Duplicate', + notempty: 'Field cannot be empty', + modified: 'Modified', + showinhome: 'Show in Home', + showinnewsletter: 'Show in the Newsletter', + color: 'Title Color', + }, + disc: { + typol_code: 'Tipology Code', + order: 'Order', + }, + newsletter: { + title: 'Would you like to receive our Newsletter?', + name: 'Your name', + surname: 'Your surname', + namehint: 'Name', + surnamehint: 'Surname', + email: 'Your email', + submit: 'Subscribe', + reset: 'Reset', + typesomething: 'Please type something', + acceptlicense: 'I accept the license and terms', + license: 'You need to accept the license and terms first', + submitted: 'Subscribed', + menu: 'Newsletter1', + template: 'Template Email', + sendemail: 'Send', + check: 'Check', + sent: 'Already Sent', + mailinglist: 'Mailing List', + settings: 'Settings', + serversettings: 'Server', + others: 'Others', + templemail: 'Templates Email', + datetoSent: 'DateTime Send', + activate: 'Activate', + numemail_tot: 'Email Total', + numemail_sent: 'Email Sent', + datestartJob: 'Start Job', + datefinishJob: 'End Job', + lastemailsent_Job: 'Last Sent', + starting_job: 'Job started', + finish_job: 'Work in progress', + processing_job: 'Lavoro in corso', + error_job: 'Info Error', + statesub: 'Subscribed', + wrongerr: 'Invalid Email', + }, + privacy_policy: 'Privacy Policy', + cookies: 'We use cookies for better web performance.', + }, +}; + +export default msg_enUs; diff --git a/src/statics/lang.old/es.js b/src/statics/lang.old/es.js new file mode 100755 index 00000000..f6bb0ee9 --- /dev/null +++ b/src/statics/lang.old/es.js @@ -0,0 +1,631 @@ +const msg_es = { + es: { + words: { + da: 'del', + a: 'al', + }, + home: { + guida: 'Guía', + guida_passopasso: 'Guía paso a paso', + }, + grid: { + editvalues: 'Cambiar valores', + addrecord: 'Agregar fila', + showprevedit: 'Mostrar eventos pasados', + nodata: 'Sin datos', + columns: 'Columnas', + tableslist: 'Tablas', + }, + otherpages: { + sito_offline: 'Sitio en actualización', + modifprof: 'Editar Perfil', + biografia: 'Biografia', + error404: 'error404', + error404def: 'error404def', + admin: { + menu: 'Administración', + eventlist: 'Sus Reservas', + usereventlist: 'Reserva Usuarios', + userlist: 'Lista de usuarios', + tableslist: 'Listado de tablas', + navi: 'Naves', + newsletter: 'Newsletter', + pages: 'Páginas', + media: 'Medios', + }, + manage: { + menu: 'Gestionar', + manager: 'Gerente', + nessuno: 'Nadie', + }, + messages: { + menu: 'Tus mensajes', + }, + }, + sendmsg: { + write: 'escribe', + }, + stat: { + imbarcati: 'Embarcados', + imbarcati_weekly: 'Embarcados Semanal', + imbarcati_in_attesa: 'Embarcados en Espera', + qualificati: 'Calificado con al menos 2 invitados', + requisiti: 'Los usuarios con los 7 requisitos', + zoom: 'Participó en Zoom', + modalita_pagamento: 'Métodos de pago insertados', + accepted: 'Guías aceptadas + Video', + dream: 'Escribieron el Sueño', + email_not_verif: 'Correo electrónico no verificado', + telegram_non_attivi: 'Telegrama no activo', + telegram_pendenti: 'Telegram Pendientes', + reg_daily: 'Registros diarios', + reg_weekly: 'Registros Semanales', + reg_total: 'Total de registros', + }, + steps: { + nuovo_imbarco: 'Reserva otro viaje', + vuoi_entrare_nuova_nave: '¿Desea ayudar al Movimiento a avanzar y tiene la intención de entrar en otra nave?
    Haciendo un nuevo regalo de 33 euros, podrá hacer otro viaje y tener otra oportunidad de convertirse en un Soñador!
    ' + + 'Si lo confirma, se le añadirá a la lista de espera para el próximo embarque.', + vuoi_cancellare_imbarco: '¿Está seguro de que quiere cancelar el embarque en el barco de AYNI?', + completed: 'Completado', + passi_su: '{passo} pasos de cada {totpassi}', + video_intro_1: '1. Bienvenido a {sitename}', + video_intro_2: '2. Nacimiento de {sitename}', + read_guidelines: 'He leído y estoy de acuerdo con estos términos escritos anteriormente', + saw_video_intro: 'Declaro que he visto los vídeos', + paymenttype: 'Métodos de pago (Revolut)', // (Obligatorio Paypal) + paymenttype_long: 'Elija al menos 2 métodos de pago, para intercambiar regalos.

    Los métodos de pago son:
    • Revolut: la Tarjeta Prepagada Revolut con IBAN inglés (fuera de la UE) completamente gratis, más gratis y fácil de usar. Disponible la aplicación para móvil.
    • Paypal porque es un sistema muy popular en toda Europa (la transferencia es gratuita) y se pueden conectar tarjetas de prepago, tarjetas de crédito y cuenta bancaria SIN COMISIONES. De esta manera no tendrás que compartir tu tarjeta o números de c/c, sino sólo el correo electrónico que usaste durante el registro en Paypal. Disponible la aplicación para tu teléfono móvil.
    ', + paymenttype_paypal: 'Cómo abrir una cuenta de Paypal (en 2 minutos)', + paymenttype_paypal_carta_conto: 'Cómo asociar una tarjeta de crédito/débito o una cuenta bancaria en PayPal', + paymenttype_paypal_link: 'Abrir una cuenta con Paypal', + paymenttype_revolut: 'Cómo abrir la cuenta con Revolut (en 2 minutos)', + paymenttype_revolut_link: 'Abrir cuenta con Revolución', + entra_zoom: 'Enter Zoom', + linee_guida: 'Acepto las directrices', + video_intro: 'Veo los videos', + zoom: 'Hacer 1 zoom de bienvenida
    (mira la home para fechas)', + zoom_si_partecipato: 'Vous avez participé à au moins 1 Zoom', + zoom_partecipa: 'Participó al menos 1 Zoom', + zoom_no_partecipato: 'Aún no ha participado en un Zoom (es un requisito para entrar)', + zoom_long: 'Se requiere que participe en al menos 1 Zoom, pero se recomienda participar en el movimiento de una manera más activa.

    Al participar en los Zooms el Staff registrará la asistencia y usted estará habilitado.', + zoom_what: 'Tutoriales de cómo instalar Zoom Cloud Meeting', + // sharemovement_devi_invitare_almeno_2: 'Todavía no has invitado a dos personas', + // sharemovement_hai_invitato: 'Invitaste al menos a dos personas', + sharemovement_invitati_attivi_si: 'Tienes al menos 2 personas invitadas Activo', + sharemovement_invitati_attivi_no: 'Nota:Las personas que invitaste, para ser Activo, deben haber completado todos los primeros 7 Requisitos (ver tu Lavagna para ver lo que les falta)', + sharemovement: 'Invitar al menos a 2 personas', + sharemovement_long: 'Continúo trabajando con mis compañeros para llegar al día en que mi barco zarpe.
    ', + inv_attivi_long: '', + enter_prog_completa_requisiti: 'Complete todos los requisitos para entrar en la lista de embarque.', + enter_prog_requisiti_ok: 'Ha completado los 7 requisitos para entrar en la lista de embarque.
    ', + enter_prog_msg: '¡Recibirá un mensaje en los próximos días tan pronto como su nave esté lista!', + enter_prog_msg_2: '', + enter_nave_9req_ok: '¡FELICIDADES! ¡Has completado los 9 pasos de la Guía! ¡Gracias por ayudar a {sitename} a expandirse!
    Podrás salir muy pronto con tu viaje, haciendo tu regalo y continuando hacia el Soñador.', + enter_nave_9req_ko: 'Recuerda que puedes ayudar a que el Movimiento crezca y se expanda compartiendo nuestro viaje con todos!', + enter_prog: 'Voy a entrar en Lista Programación', + enter_prog_long: 'Si se cumplen los requisitos, entrará en el Programa, se le añadirá al Ticket y al correspondiente chat de grupo.
    ', + collaborate: 'Colaboración', + collaborate_long: 'Sigo trabajando con mis compañeros para llegar al día de la programación donde mi boleto será activado.', + dream: 'Escribo mi sueño', + dream_long: 'Escribe aquí el sueño por el que entraste en {sitename} y que deseas realizar. ¡Será compartido con todos los demás para soñar juntos!', + dono: 'Regalo', + dono_long: 'Hago mi regalo en la fecha de salida de mi nave', + support: 'Apoyo el movimiento', + support_long: 'Apoyo el movimiento aportando energía, participando y organizando Zoom, ayudando e informando a los recién llegados y continuando difundiendo la visión de {sitename}.', + ricevo_dono: 'Recibo mi regalo y CELEBRO', + ricevo_dono_long: '¡Hurra!
    ¡Este movimiento es real y posible si lo hacemos funcionar todos juntos!', + }, + dialog: { + continue: 'Continuar', + close: 'Cerrar', + copyclipboard: 'Copiado al portapapeles', + ok: 'Vale', + yes: 'Sí', + no: 'No', + delete: 'Borrar', + cancel: 'Cancelar', + update: 'Actualiza', + add: 'Aggrega', + today: 'Hoy', + book: 'Reserva', + avanti: 'Adelante', + indietro: 'Regresar', + finish: 'Final', + sendmsg: 'Envia Mensaje', + sendonlymsg: 'Envia solo Mensaje', + msg: { + titledeleteTask: 'Borrar Tarea', + deleteTask: 'Quieres borrar {mytodo}?', + }, + }, + comp: { + Conta: 'Conta', + }, + db: { + recupdated: 'Registro Actualizado', + recfailed: 'Error durante el registro de actualización', + reccanceled: 'Actualización cancelada Restaurar valor anterior', + deleterecord: 'Eliminar registro', + deletetherecord: '¿Eliminar el registro?', + deletedrecord: 'Registro cancelado', + recdelfailed: 'Error durante la eliminación del registro', + duplicatedrecord: 'Registro Duplicado', + recdupfailed: 'Error durante la duplicación de registros', + }, + components: { + authentication: { + telegram: { + open: 'Haga clic aquí para abrir el BOT Telegram y siga las instrucciones.', + ifclose: 'Si no abre el Telegrama haciendo clic en el botón o lo ha borrado, vaya a Telegrama y busque "{botname}" en el icono de la lente, luego presione Start y siga las instrucciones.', + openbot: 'Abres BOT Telegram', + }, + login: { + facebook: 'Facebook', + }, + email_verification: { + title: 'Crea una cuenta', + introduce_email: 'ingrese su dirección de correo electrónico', + email: 'Email', + invalid_email: 'Tu correo electrónico no es válido', + verify_email: 'Revisa tu email', + go_login: 'Vuelve al Login', + incorrect_input: 'Entrada correcta.', + link_sent: 'Ahora lea su correo electrónico y confirme el registro', + se_non_ricevo: 'Si no recibes el correo electrónico, intenta comprobar el spam o ponte en contacto con nosotros.', + title_unsubscribe: 'Anular suscripción al boletín', + title_unsubscribe_done: 'Suscripción completada con éxito', + }, + }, + }, + fetch: { + errore_generico: 'Error genérico', + errore_server: 'No se puede acceder al Servidor. Inténtalo de nuevo, Gracias', + error_doppiologin: 'Vuelva a iniciar sesión. Acceso abierto por otro dispositivo.', + }, + user: { + notregistered: 'Debe registrarse en el servicio antes de poder almacenar los datos', + loggati: 'Usuario no ha iniciado sesión', + }, + templemail: { + subject: 'Objecto Email', + testoheadermail: 'Encabezamiento Email', + content: 'Contenido', + img: 'Imagen 1', + img2: 'Imagen 2', + content2: 'Contenuto 2', + options: 'Opciones', + }, + dashboard: { + data: 'Fecha', + data_rich: 'Fecha Pedido', + ritorno: 'Regreso', + invitante: 'Invitando', + num_tessitura: 'Numero di Tessitura:', + attenzione: 'Atención', + downline: 'Invitados', + downnotreg: 'Invitados no Registrados', + notreg: 'No Registrado', + inv_attivi: 'Invitado con los 7 requisitos', + numinvitati: 'Al menos 2 invitados', + telefono_wa: 'Contacto en Whatsapp', + sendnotification: 'Enviar notificación al destinatario del telegrama BOT', + ricevuto_dono: '😍🎊 Usted recibió una invitación de regalo de {invitato} de {mittente} !', + ricevuto_dono_invitante: '😍🎊 Usted recibió un invitando como regalo de {mittente} !', + nessun_invitante: 'No invitando', + nessun_invitato: 'No invitado', + legenda_title: 'Haga clic en el nombre del huésped para ver el estado de sus requisitos', + nave_in_partenza: 'que Sale el', + nave_in_chiusura: 'Cierre Gift Chat', + nave_partita: 'partió en', + tutor: 'Tutor', + traduttrici: 'Traduttrici', + /* Cuando te conviertes en Mediador vienes contactado por un TUTOR, con él debes:
      ' + + '
    1. Abrir tu Gift Chat (tu como propietario, y el Tutor ' + + 'como administrador) con este nombre:
      {nomenave}
    2. ' + + '
    3. Haz clic en tu nombre en la chat en la parte de arriba-> Modifica -> Administradores -> "Agregar Administrador", selecciona el Tutor en el elenco.
    4. ' + + '
    5. Debes configurar la chat en modo que quien entre vea también los post precedentes (haz clic en el nombre en la chat arriba, haz clic en modificar, ' + + 'cambia la "cronología para los nuevos miembros" de oculto a visible.
    6. ' + + '
    7. Para encontrar el link de la Chat recién creada: haz clic en el nombre de la chat en la parte de arriba, haz clic sobre el Lápiz-> "Tipo de Grupo" -> "invita al grupo tràmite link", haz clic en "copiar link" y pégalo aquí abajo, sobre la casilla "Link Gift Chat"
    8. ' + + '
    9. Envía el Link de la Gift Chat a todos los Donadores, haciendo clic en el botón aquí abajo.
    ', + */ + + sonomediatore: 'Cuando seas un MEDIADOR serás contactado por TUTOR AYNI a través de un mensaje en el Chat AYNI BOT.', + superchat: 'Nota: SOLO si tienes problemas de PAGO, o si quieres ser REEMPLAZADO, dos Tutores están esperando para ayudarte en el Chat:
    Entrar en el Chat de Regalos.', + sonodonatore: '
    1. Cuando estás en esta posición, vendrás invitado (desde un mensaje en el Chat AYNI BOT) para hacer tu regalo.
    2. ' + + '
    3. Tendrás 3 días para hacer tu regalo, en la modalidad de pago que encontrarás escrita en el mensaje.
    ', + sonodonatore_seconda_tessitura: '
    1. Aqui tu eres Mediador y también Donador, pero siendo tu segundo Tejido, no será necesario efectuar nuevamente tu regalo
    ', + controlla_donatori: 'Revise la lista de donantes', + link_chat: 'Enlaces del Gift Chat Telegram', + tragitto: 'Ruta', + nave: 'Nave', + data_partenza: 'Fecha
    Salida', + doni_inviati: 'Regalos
    enviados', + nome_dei_passaggi: 'Nombre de los pasajes', + donatori: 'Donantes', + donatore: 'Donante', + mediatore: 'Mediador', + sognatore: 'Soñador', + sognatori: 'SOÑADOR', + intermedio: 'INTERMEDIO', + pos2: 'Interm. 2', + pos3: 'Interm. 3', + pos5: 'Interm. 5', + pos6: 'Interm. 6', + gift_chat: 'Para entrar en el Gift Chat, haz clic aquí', + quando_eff_il_tuo_dono: 'Cuándo hacer el regalo', + entra_in_gift_chat: 'Entra en el Gift Chat', + invia_link_chat: 'Enviar enlace de chat de regalos a los donantes', + inviare_msg_donatori: '5) Enviar mensaje a los donantes', + msg_donatori_ok: 'Enviado mensaje a los donantes', + metodi_disponibili: 'Métodos disponibles', + importo: 'Cantidad', + effettua_il_dono: 'Es hora de hacer tu regalo al Soñador
    👉 {sognatore} 👈 !
    ' + + 'Enviar por medio de PayPal a: {email}
    ' + + 'ADVERTENCIA: Elija la opción "ENVIAR A un AMIGO")
    ', + paypal_me: '
    2) Método simplificado
    Click directamente aquí
    ' + + 'abrirá PayPal con el importe y el destinatario ya establecido.
    ' + + 'Añadir como mensaje: Regalo
    ' + + 'ADVERTENCIA: NO MARCAR LA CAJA
    : Protección de compras por Paypal
    ' + + 'Si tienes alguna duda, mira el video de abajo para ver cómo:
    ' + + 'Por último, haga clic en "Enviar dinero ahora"', + qui_compariranno_le_info: 'El día de la salida de la nave, la información del Soñador aparecerá', + commento_al_sognatore: 'Escribe aquí un comentario para el Soñador:', + posizione: 'Position', + come_inviare_regalo_con_paypal: 'Cómo enviar el regalo a través de Paypal', + ho_effettuato_il_dono: 'He realizado el Regalo', + clicca_conferma_dono: 'Haz clic aquí para confirmar que has hecho tu regalo', + fatto_dono: 'Ha confirmado que el regalo ha sido enviado', + confermi_dono: 'Confirme que ha enviado su regalo de 33 €', + dono_ricevuto: 'Tu regalo ha sido recibido!', + dono_ricevuto_2: 'Recibido', + dono_ricevuto_3: 'Ha llegado!', + confermi_dono_ricevuto: 'Confirme que ha recibido el regalo de 33 € de {donatore}', + confermi_dono_ricevuto_msg: 'Confermado que ha recibido el regalo de 33 € de {donatore}', + msg_bot_conferma: '{donatore} ha confirmado que ha enviado su regalo de 33€ a {sognatore} (Commento: {commento})', + ricevuto_dono_ok: 'Ha confirmado que el regalo ha sido recibido', + entra_in_lavagna: 'Entra en tu tablero para ver los barcos que salen', + doni_ricevuti: 'Regalos recibidos', + doni_inviati_da_confermare: 'Regalos enviados (a confirmar)', + doni_mancanti: 'Regalos que faltan', + temporanea: 'Temporal', + nave_provvisoria: 'Se le ha asignado un NAVE TEMPORAL.
    Es normal que vea un cambio en la fecha de salida, debido a la actualización del ranking de pasajeros.', + ritessitura: 'RETEJIDA', + }, + reg: { + volta: 'vez', + volte: 'veces', + registered: 'Registrado', + contacted: 'Contacto', + name_complete: 'Nombre Completo', + num_invitati: 'Num.Invitados', + is_in_whatsapp: 'En Whatsapp', + is_in_telegram: 'En Telegram', + cell_complete: 'Movíl', + failed: 'Fallido', + ind_order: 'Num', + ipaddr: 'IP', + verified_email: 'Correo electrónico verificado', + reg_lista_prec: 'Por favor, introduzca el nombre, apellido y número de teléfono móvil que dejó en el pasado cuando se registró en el Chat!
    De esta manera el sistema le reconocerá y mantendrá la posición de la lista.', + nuove_registrazioni: 'Si se trata de un NUEVO registro, debe ponerse en contacto con la persona que le ha INVITADO, que le dejará el LINK CORRECTO para hacer el registro bajo él/ella', + you: 'Tu', + cancella_invitato: 'Eliminar Invitado', + regala_invitato: 'Dar Invitado', + regala_invitante: 'Dar Invitando', + messaggio_invito: 'Mensaje de invitación', + messaggio_invito_msg: 'Copie el mensaje que aparece a continuación y compártalo con todos aquellos con los que desee compartir este Movimiento !', + videointro: 'Video Introduttivo', + invitato_regalato: 'Invitato Regalado', + invitante_regalato: 'Invitando Regalato', + legenda: 'Legenda', + aportador_solidario: 'Aportador Solidario', + username_regala_invitato: 'Nombre de usuario del destinatario del regalo', + aportador_solidario_nome_completo: 'A.S. Nombre', + aportador_solidario_ind_order: 'A.S.Ind', + reflink: 'Enlaces para compartir con tus amigos:', + linkzoom: 'Enlace para ingresar en Zoom', + page_title: 'Registro', + made_gift: 'Don', + note: 'Notas', + incorso: 'Registro en curso...', + richiesto: 'Campo requerido', + email: 'Email', + intcode_cell: 'Prefijo Int.', + cell: 'Móvil Telegram', + cellreg: 'Cellulare con cui ti eri registrato', + nationality: 'Nacionalidad', + email_paypal: 'Email Paypal', + revolut: 'Revolut', + link_payment: 'Enlaces Paypal.me', + note_payment: 'Notas adicionales', + country_pay: 'País del Pagos de destino', + username_telegram: 'Usuario Telegram', + telegram: 'Chat Telegram \'{botname}\'', + teleg_id: 'Telegram ID', + teleg_auth: 'Código de autorización', + click_per_copiare: 'Haz click en él para copiarlo al portapapeles', + copia_messaggio: 'Copiar mensaje', + teleg_torna_sul_bot: '1) Copiar el código haciendo clic en el botón de arriba
    2) volver a {botname} haciendo clic en 👇 y pegar (o escribir) el código', + teleg_checkcode: 'Código Telegram', + my_dream: 'Mi Sueño', + saw_and_accepted: 'Condizioni', + saw_zoom_presentation: 'Ha visto Zoom', + manage_telegram: 'Gestori Telegram', + paymenttype: 'Métodos de pago disponibles (Revolut)', + selected: 'seleccionado', + img: 'File image', + date_reg: 'Fecha Reg.', + deleted: 'Cancellato', + requirement: 'Requisitos', + perm: 'Permisos', + username: 'Username (Apodo)', + username_short: 'Username', + name: 'Nombre', + surname: 'Apellido', + username_login: 'Nombre usuario o email', + password: 'contraseña', + repeatPassword: 'Repetir contraseña', + terms: 'Acepto los términos por la privacidad', + onlyadult: 'Confirmo que soy mayor de edad', + submit: 'Registrarse', + title_verif_reg: 'Verifica registro', + reg_ok: 'Registro exitoso', + verificato: 'Verificado', + non_verificato: 'No Verificado', + forgetpassword: '¿Olvidaste tu contraseña?', + modificapassword: 'Cambiar la contraseña', + err: { + required: 'se requiere', + email: 'Debe ser una email válida.', + errore_generico: 'Por favor, rellene los campos correctamente', + atleast: 'debe ser al menos largo', + complexity: 'debe contener al menos 1 minúscula, 1 mayúscula, 1 dígito', + notmore: 'no tiene que ser más largo que', + char: 'caracteres', + terms: 'Debes aceptar las condiciones, para continuar..', + email_not_exist: 'El correo electrónico no está presente en el archivo, verifique si es correcto', + duplicate_email: 'La email ya ha sido registrada', + user_already_exist: 'El registro con estos datos (nombre, apellido y teléfono móvil) ya se ha llevado a cabo. Para acceder al sitio, haga clic en el botón INICIAR SESIÓN desde la Página de inicio.', + user_extralist_not_found: 'Usuario en el archivo no encontrado, inserte el nombre, apellido y número de teléfono enviado previamente', + user_not_this_aportador: 'Stai utilizzando un link di una persona diversa dal tuo invitato originale.', + duplicate_username: 'El nombre de usuario ya ha sido utilizado', + username_not_valid: 'Username not valid', + aportador_not_exist: 'El nombre de usuario de la persona que lo invitó no está presente. Contactanos.', + aportador_regalare_not_exist: 'Inserire l\'Username della persona che si vuole regalare l\'invitato', + sameaspassword: 'Las contraseñas deben ser idénticas', + }, + tips: { + email: 'inserisci la tua email', + username: 'username lunga almeno 6 caratteri', + password: 'deve contenere 1 minuscola, 1 maiuscola e 1 cifra', + repeatpassword: 'ripetere la password', + + }, + }, + op: { + qualification: 'Calificación', + usertelegram: 'Username Telegram', + disciplines: 'Disciplinas', + certifications: 'Certificaciones', + intro: 'Introducción', + info: 'Biografia', + webpage: 'Página web', + days_working: 'Días laborables', + facebook: 'Página de Facebook', + }, + login: { + page_title: 'Login', + incorso: 'Login en curso', + enter: 'Entra', + esci: 'Salir', + errato: 'Nombre de usuario, correo o contraseña incorrectos. inténtelo de nuevo', + subaccount: 'Esta cuenta ha sido fusionada con su inicial. Ingresa usando el nombre de usuario (y el correo electrónico) de tu PRIMERA cuenta.', + completato: 'Login realizado!', + needlogin: 'Debes iniciar sesión antes de continuar', + }, + reset: { + title_reset_pwd: 'Restablece tu contraseña', + send_reset_pwd: 'Enviar restablecer contraseña', + incorso: 'Solicitar nueva Email...', + email_sent: 'Email enviada', + check_email: 'Revise su correo electrónico, recibirá un mensaje con un enlace para restablecer su contraseña. Este enlace, por razones de seguridad, expirará después de 4 horas.', + title_update_pwd: 'Actualiza tu contraseña', + update_password: 'Actualizar contraseña', + }, + logout: { + uscito: 'Estás desconectado', + }, + errors: { + graphql: { + undefined: 'no definido', + }, + }, + showbigmap: 'Mostrar el mapa más grande', + todo: { + titleprioritymenu: 'Prioridad:', + inserttop: 'Ingrese una nueva Tarea arriba', + insertbottom: 'Ingrese una nueva Tarea abajo', + edit: 'Descripción Tarea:', + completed: 'Ultimos Completados', + usernotdefined: 'Atención, debes iniciar sesión para agregar una Tarea', + start_date: 'Fecha inicio', + status: 'Estado', + completed_at: 'Fecha de finalización', + expiring_at: 'Fecha de Caducidad', + phase: 'Fase', + }, + notification: { + status: 'Estado', + ask: 'Activar notificaciones', + waitingconfirm: 'Confirmar la solicitud de notificación.', + confirmed: 'Notificaciones activadas!', + denied: 'Notificaciones deshabilitadas! Ten cuidado, así no verás llegar los mensajes. Rehabilítalos para verlos.', + titlegranted: 'Notificaciones permitidas habilitadas!', + statusnot: 'Estado Notificaciones', + titledenied: 'Notificaciones permitidas deshabilitadas!', + title_subscribed: 'Suscripción a FreePlanet.app!', + subscribed: 'Ahora puedes recibir mensajes y notificaciones.', + newVersionAvailable: 'Actualiza', + }, + connection: 'Connection', + proj: { + newproj: 'Título Projecto', + newsubproj: 'Título Sub-Projecto', + insertbottom: 'Añadir nuevo Proyecto', + longdescr: 'Descripción', + hoursplanned: 'Horas Estimadas', + hoursleft: 'Horas Restantes', + hoursadded: 'Horas Adicional', + hoursworked: 'Horas Trabajadas', + begin_development: 'Comienzo desarrollo', + begin_test: 'Comienzo Prueba', + progresstask: 'Progresion', + actualphase: 'Fase Actual', + hoursweeky_plannedtowork: 'Horarios semanales programados', + endwork_estimate: 'Fecha estimada de finalización', + privacyread: 'Quien puede verlo:', + privacywrite: 'Quien puede modificarlo:', + totalphases: 'Fases totales', + themecolor: 'Tema Colores', + themebgcolor: 'Tema Colores Fondo', + }, + where: { + code: 'Id', + whereicon: 'Icono', + }, + col: { + label: 'Etichetta', + value: 'Valore', + type: 'Tipo', + }, + cal: { + num: 'Número', + booked: 'Reservado', + booked_error: 'Reserva fallida. Intenta nuevamente más tarde', + sendmsg_error: 'Mensaje no enviado Intenta nuevamente más tarde', + sendmsg_sent: 'Mensaje enviado', + booking: 'Reserva Evento', + titlebooking: 'Reserva', + modifybooking: 'Edita Reserva', + cancelbooking: 'Cancelar Reserva', + canceledbooking: 'Reserva Cancelada', + cancelederrorbooking: 'Cancelación no realizada, intente nuevamente más tarde', + cancelevent: 'Cancella Evento', + canceledevent: 'Evento Cancellato', + cancelederrorevent: 'Cancellazione Evento non effettuata, Riprovare', + event: 'Evento', + starttime: 'Inicio', + nextevent: 'Próximo evento', + readall: 'Lee todo', + enddate: 'a', + endtime: 'fin', + duration: 'Duración', + hours: 'Tiempo', + when: 'Cuando', + where: 'Donde', + teacher: 'Dirigido por', + enterdate: 'Ingresar la fecha', + details: 'Detalles', + infoextra: 'Fecha y Hora Extras:', + alldayevent: 'Todo el dia', + eventstartdatetime: 'Inicio', + enterEndDateTime: 'final', + selnumpeople: 'Partecipantes', + selnumpeople_short: 'Num', + msgbooking: 'Mensaje para enviar', + showpdf: 'Ver PDF', + bookingtextdefault: 'Reservo para', + bookingtextdefault_of: 'de', + data: 'Fecha', + teachertitle: 'Maestro', + peoplebooked: 'Reserv.', + showlastschedule: 'Ver todo el calendario', + }, + msgs: { + message: 'Mensaje', + messages: 'Mensajes', + nomessage: 'Sin Mensaje', + }, + event: { + _id: 'id', + typol: 'Typology', + short_tit: 'Título Corto', + title: 'Título', + details: 'Detalles', + bodytext: 'Texto del evento', + dateTimeStart: 'Fecha de Inicio', + dateTimeEnd: 'Fecha Final', + bgcolor: 'Color de fondo', + days: 'Días', + icon: 'Icono', + img: 'Nombre Imagen', + img_small: 'Imagen Pequeña', + where: 'Dónde', + contribtype: 'Tipo de Contribución', + price: 'Precio', + askinfo: 'Solicitar información', + showpage: 'Ver página', + infoafterprice: 'notas después del precio', + teacher: 'Profesor', // teacherid + teacher2: 'Profesor2', // teacherid2 + infoextra: 'InfoExtra', + linkpage: 'Sitio WEb', + linkpdf: 'Enlace ad un PDF', + nobookable: 'No Reservable', + news: 'Novedad', + dupId: 'Id Duplicado', + canceled: 'Cancelado', + deleted: 'Eliminado', + duplicate: 'Duplica', + notempty: 'El campo no puede estar vacío.', + modified: 'Modificado', + showinhome: 'Mostrar en la Home', + showinnewsletter: 'Mostrar en el boletín', + color: 'Titulo Color', + }, + disc: { + typol_code: 'Código Tipologìa', + order: 'Clasificación', + }, + newsletter: { + title: '¿Desea recibir nuestro boletín informativo?', + name: 'Tu Nombre', + surname: 'Tu Apellido', + namehint: 'Nombre', + surnamehint: 'Apellido', + email: 'tu correo', + submit: 'Subscribete', + reset: 'Reiniciar', + typesomething: 'Llenar el campo', + acceptlicense: 'Acepto la licencia y los términos', + license: 'Necesitas aceptar la licencia y los términos primero', + submitted: 'Subscrito', + menu: 'Newsletter1', + template: 'Plantillas de Email', + sendemail: 'Enviar', + check: 'Verificar', + sent: 'Ya eniado', + mailinglist: 'Lista de contactos', + settings: 'Configuración', + serversettings: 'Servidor', + others: 'Otro', + templemail: 'Plantilla de Email', + datetoSent: 'Fecha y Ora de Envio', + activate: 'Activado', + numemail_tot: 'Email Total', + numemail_sent: 'Email Enviados', + datestartJob: 'Inicio Envio', + datefinishJob: 'Fin Envio', + lastemailsent_Job: 'Ùltimo enviado', + starting_job: 'Comenzó a enviar', + finish_job: 'Envio terminado', + processing_job: 'En curso', + error_job: 'Info Error', + statesub: 'Subscribir', + wrongerr: 'Email invalide', + }, + privacy_policy: 'Política de privacidad', + cookies: 'Utilizamos cookies para un mejor rendimiento web.', + }, +}; + +export default msg_es; diff --git a/src/statics/lang.old/fr.js b/src/statics/lang.old/fr.js new file mode 100755 index 00000000..79c964da --- /dev/null +++ b/src/statics/lang.old/fr.js @@ -0,0 +1,626 @@ +const msg_fr = { + fr: { + words: { + da: 'du', + a: 'au', + }, + home: { + guida: 'Guide', + guida_passopasso: 'Guide pas-à-pas', + }, + grid: { + editvalues: 'Changer les valeurs', + addrecord: 'Ajouter une ligne', + showprevedit: 'Afficher les événements passés', + nodata: 'Pas de données', + columns: 'Colonnes', + tableslist: 'Tables', + }, + otherpages: { + sito_offline: 'Site en cours de mise à jour', + modifprof: 'Modifier le profil', + biografia: 'Biografia', + error404: 'error404', + error404def: 'error404def', + admin: { + menu: 'Administration', + eventlist: 'Vos réservations', + usereventlist: 'Réservation Utilisateur', + userlist: 'Liste d\'utilisateurs', + tableslist: 'Liste des tables', + navi: 'Navires', + newsletter: 'Newsletter', + pages: 'Pages', + media: 'Médias', + }, + manage: { + menu: 'Gérer', + manager: 'Directeur', + nessuno: 'Aucun', + }, + messages: { + menu: 'Vos messages', + }, + }, + sendmsg: { + write: 'écrit', + }, + stat: { + imbarcati: 'Embarqués', + imbarcati_weekly: 'Embarqués hebdomadaire', + imbarcati_in_attesa: 'Embarqués en attente', + qualificati: 'Qualifié avec au moins 2 invités', + requisiti: 'Utilisateurs ayant les 7 exigences', + zoom: 'Participer à Zoom', + modalita_pagamento: 'Insertion des modes de paiement', + accepted: 'Lignes directrices acceptées + vidéo', + dream: 'Ils ont écrit le Rêve', + email_not_verif: 'Courriel non vérifié', + telegram_non_attivi: 'Telegram non actif', + telegram_pendenti: 'Telegram Pendants', + reg_daily: 'Enregistrements quotidiennes', + reg_weekly: 'Enregistrements hebdomadaires', + reg_total: 'Total des enregistrements', + }, + steps: { + nuovo_imbarco: 'Réserver un autre voyage', + vuoi_entrare_nuova_nave: 'Vous souhaitez aider le Mouvement à avancer et avez l\'intention d\'entrer dans un autre navire ?
    En faisant un nouveau don de 33€, vous pourrez faire un autre voyage et avoir une autre opportunité de devenir un Rêveur !
    ' + + 'Si vous confirmez, vous serez ajouté à la liste d\'attente pour le prochain embarquement.', + vuoi_cancellare_imbarco: 'Êtes-vous sûr de vouloir annuler cet embarquement sur le navire AYNI ?', + completed: 'Complétée', + passi_su: '{passo} étapes sur {totpassi}', + video_intro_1: '1. Bienvenue à l\'{sitename}', + video_intro_2: '2. Naissance de l\'{sitename}', + read_guidelines: 'J\'ai lu et j\'accepte ces conditions écrites ci-dessus', + saw_video_intro: 'Je déclare avoir vu la vidéo', + paymenttype: 'Méthodes de paiement (Revolut)', + paymenttype_long: 'Choisissez au moins 2 modes de paiement, pour échanger des cadeaux.

    Les modes de paiement sont :
    • Revolut : la carte prépayée Revolut avec IBAN anglais (hors UE) complètement gratuite, plus gratuite et facile à utiliser. Disponible l\'application pour mobile.
    • Paypalcar c\'est un système très populaire dans toute l\'Europe (le transfert est gratuit) et vous pouvez connecter des cartes prépayées, des cartes de crédit et un compte bancaire SANS COMMISSIONS. De cette façon, vous n\'aurez pas à partager vos numéros de carte ou de c/c mais seulement l\'email que vous avez utilisé lors de l\'inscription sur Paypal. Disponible l\'application pour votre téléphone portable.
    ', + paymenttype_paypal: 'Comment ouvrir un compte Paypal (en 2 minutes)Comment ouvrir un compte Paypal (en 2 minutes)', + paymenttype_paypal_carta_conto: 'Comment associer une carte de crédit/débit ou un compte bancaire sur PayPal', + paymenttype_paypal_link: 'Ouverture d\'un compte avec Paypal', + paymenttype_revolut: 'Comment ouvrir un compte chez Revolut (en 2 minutes)', + paymenttype_revolut_link: 'Ouvrir un compte auprès de Revolut', + entra_zoom: 'Enter Zoom', + linee_guida: "J'accepte les lignes directrices", + video_intro: 'Je vois la vidéo', + zoom: 'A participé à au moins 1 Zoom', + zoom_si_partecipato: 'Vous avez participé à au moins 1 Zoom', + zoom_partecipa: 'A participé à au moins 1 Zoom', + zoom_no_partecipato: "Vous n'avez pas encore participé à un Zoom (il est obligatoire d'entrer)", + zoom_long: 'Vous devez participer à au moins un Zoom, mais il est recommandé de participer au mouvement de manière plus active.

    En participant aux Zooms, le personnel enregistrera votre présence et vous serez activé. ', + zoom_what: "Tutoriels d'installation de Zoom Cloud Meeting", + // sharemovement_devi_invitare_almeno_2: 'Vous n\'avez toujours pas invité 2 personnes', + // sharemovement_hai_invitato: 'Vous avez invité au moins deux personnes', + sharemovement_invitati_attivi_si: 'Vous avez au moins 2 personnes invitées Active', + sharemovement_invitati_attivi_no: 'Note:Les personnes que vous avez invitées, pour être Actif, doivent avoir complété les 7 premières exigences (voir votre Lavagna pour voir ce qu\'il leur manque)', + sharemovement: 'Invitation au moins 2 personnes', + sharemovement_long: 'Partagez le mouvement {sitename} et invitez-les à participer aux zooms de bienvenue pour faire partie de cette grande famille 😄 .
    .', + inv_attivi_long: '', + enter_prog_completa_requisiti: 'Remplissez toutes les conditions pour figurer sur la liste d\'embarquement.', + enter_prog_requisiti_ok: 'Vous avez rempli les 7 conditions pour figurer sur la liste d\'embarquement.
    ', + enter_prog_msg: 'Vous recevrez un message dans les prochains jours dès que votre bateau sera prêt !', + enter_prog_msg_2: '', + enter_nave_9req_ok: 'FÉLICITATIONS ! Vous avez suivi les 9 étapes du guide ! Merci d\'avoir aidé {sitename} à se développer !
    Vous pourrez bientôt partir avec votre Voyage, en faisant votre don et en continuant vers le Rêveur.', + enter_nave_9req_ko: 'N\'oubliez pas que vous pouvez aider le Mouvement à grandir et à s\'étendre en partageant notre voyage avec tout le monde !', + enter_prog: 'Je vais dans la Liste des Programmation', + enter_prog_long: 'Si vous remplissez les conditions requises pour entrer dans le programme, vous serez ajouté au billet et au chat de groupe correspondant
    ', + collaborate: 'Collaboration', + collaborate_long: 'Je continue à travailler avec mes compagnons pour arriver au jour où mon navire prendra la mer.', + dream: 'J\'écris mon rêve', + dream_long: 'Ecrivez ici le Rêve pour lequel vous êtes entré à {sitename} et que vous souhaitez réaliser.
    Il sera partagé avec tous les autres pour rêver ensemble !', + dono: 'Cadeau', + dono_long: 'Je fais mon cadeau à la date de départ de mon nef', + support: 'Je soutiens le mouvement', + support_long: 'Je soutiens le mouvement en apportant de l\'énergie, en participant et en organisant Zoom, en aidant et en informant les nouveaux arrivants et en continuant à diffuser la vision d\'{sitename}.', + ricevo_dono: 'Je reçois mon cadeau et je CÉLÈBRE', + ricevo_dono_long: 'Hourra ! !!!
    CE MOUVEMENT EST RÉEL ET POSSIBLE SI NOUS TRAVAILLONS TOUS ENSEMBLE !', + }, + dialog: { + continue: 'Continuer', + close: 'Fermer', + copyclipboard: 'Copié dans le presse-papiers', + ok: 'Bien', + yes: 'Oui', + no: 'Non', + delete: 'Supprimer', + update: 'mises à jour', + add: 'Ajouter', + cancel: 'annuler', + today: 'Aujourd\'hui', + book: 'Réserve', + avanti: 'Allez-y', + indietro: 'en arrière', + finish: 'Fin', + sendmsg: 'envoyer msg', + sendonlymsg: 'envoyer seul un msg', + msg: { + titledeleteTask: 'Supprimer la tâche', + deleteTask: 'Voulez-vous supprimer {mytodo}?', + }, + }, + comp: { + Conta: 'Conta', + }, + db: { + recupdated: 'Enregistrement mis à jour', + recfailed: 'Erreur lors de la mise à jour', + reccanceled: 'Mise à jour annulée. Restaurer la valeur précédente', + deleterecord: 'Supprimer l\'enregistrement', + deletetherecord: 'Supprimer l\'enregistrement?', + deletedrecord: 'Enregistrement annulé', + recdelfailed: 'Erreur lors de la suppression de l\'enregistrement', + duplicatedrecord: 'Enregistrement en double', + recdupfailed: 'Erreur lors de la duplication des enregistrements', + }, + components: { + authentication: { + telegram: { + open: 'Cliquez ici pour ouvrir le télégramme BOT et suivez les instructions', + openbot: 'Ouvre BOT Telegram', + }, + login: { + facebook: 'Facebook', + }, + email_verification: { + title: 'Créer un compte', + introduce_email: 'entrez votre adresse email', + email: 'Email', + invalid_email: 'Votre email n\'est pas valide', + verify_email: 'Vérifiez votre email', + go_login: 'Retour à la connexion', + incorrect_input: 'Entrée correcte.', + link_sent: 'Maintenant, lisez votre email et confirmez votre inscription', + se_non_ricevo: 'Si vous ne recevez pas le courriel, essayez de vérifier dans le spam, ou contactez nous', + title_unsubscribe: 'Se désabonner de la newsletter', + title_unsubscribe_done: 'Abonnement terminé avec succès', + }, + }, + }, + fetch: { + errore_generico: 'Erreur générique', + errore_server: 'Le serveur n\'est pas accessible. Essayez encore, Merci', + error_doppiologin: 'Re-connexion Accès ouvert par un autre appareil.', + }, + user: { + notregistered: 'Vous devez vous inscrire auprès du service avant de pouvoir stocker les données.', + loggati: 'L\'utilisateur n\'est pas connecté', + }, + templemail: { + subject: 'Objet Email', + testoheadermail: 'en-tête de courrier électronique', + content: 'Contenu', + img: 'Image 1', + img2: 'Image 2', + content2: 'Contenu 2', + options: 'Options', + }, + dashboard: { + data: 'Date', + data_rich: 'Date demandée', + ritorno: 'Retour', + invitante: 'Invitation', + num_tessitura: 'Numero di Tessitura:', + attenzione: 'Attention', + downline: 'invités', + downnotreg: 'Invités non enregistrés', + notreg: 'Non enregistré', + inv_attivi: 'Invité avec les 7 exigences', + numinvitati: 'Au moins 2 invités', + telefono_wa: 'Contact sur Whatsapp', + sendnotification: 'Envoyer la notification au destinataire par télégramme BOT', + ricevuto_dono: '😍🎊 Vous avez reçu une invitation-cadeau de {invitato} de {mittente} !', + ricevuto_dono_invitante: '😍🎊 Vous avez reçu une invitation-cadeau de {mittente} !', + nessun_invitante: 'Pas d\'invitation', + nessun_invitato: 'Non_invité', + legenda_title: 'Cliquez sur le nom de l\'invité pour voir l\'état de ses besoins', + nave_in_partenza: 'part le', + nave_in_chiusura: 'Clôture Gift Chat', + nave_partita: 'parti sur', + tutor: 'Tuteur', + /* Quand vous devenez Médiateur vous êtes contacté par un TUTEUR, avec lui vous devez:
      ' + + '
    1. Ouvrir votre Gift Chat (vous comme propriétaire et le Tuteur ' + + 'comme administrateur) avec ce nom:
      {nomenave}
    2. ' + + '
    3. Cliquez sur le nom du chat en haut -> Modifiez -> Administrateurs -> "Ajoutez Administrateur", sélectionner le Tuteur dans la liste.
    4. ' + + '
    5. Vous devez configurer le chat de façon que la personne qui entre puisse également voir les post précédents (cliquez sur le nom du chat en haut, cliquez sur modifiez, ' + + 'changez la "chronologie pour les nouveaux membres" de cachée à visibile.
    6. ' + + '
    7. Pour trouver le link du Chat à peine crée: cliquez sur le nom du chat en haut, cliquez sur le Crayon -> "Type de Groupe" -> "invitez dans le groupe à travers le link", cliquez sur "copiez link" et collez-le ci-dessous, dans la case "Link Gift Chat"
    8. ' + + '
    9. Envoyez le Link de la Gift Chat à tous les Donateurs, en cliquant sur le boutton ci-dessous .
    ', + */ + sonomediatore: 'Lorsque vous êtes un MEDIATEUR, vous serez contacté par TUTOR AYNI via un message sur le Chat AYNI BOT.', + superchat: 'Note : SEULEMENT si vous avez des problèmes de PAIEMENT, ou si vous voulez être REMPLACÉ, deux tuteurs vous attendent pour vous aider sur le Chat:
    Get into Gift Chat.', + sonodonatore: '
    1. Quand vous êtes dans cette position, vous serez invité pour faire votre cadeau
    2. ' + + '
    3. Vous aurez 3 jours pour faire votre cadeau.
    ', + sonodonatore_seconda_tessitura: '
    1. Ici vous êtes Médiateur et également Donateur, mais étant le deuxième Tissage, vous n’aurez pas besoin d’éffectuer de nouveau votre don
    ', + controlla_donatori: 'Vérifiez la liste des donateurs', + link_chat: 'Link de Gift Chat Telegram', + tragitto: 'Itinéraire', + nave: 'Navire', + data_partenza: 'Date
    de Départ', + doni_inviati: 'Regalo
    Envoyés', + nome_dei_passaggi: 'Nom
    des passagers', + donatori: 'Donateurs', + donatore: 'Donateur', + mediatore: 'Médiateur', + sognatore: 'Rêveur', + sognatori: 'RÊVEURS', + intermedio: 'INTERMEDIAIRE', + pos2: 'Interm. 2', + pos3: 'Interm. 3', + pos5: 'Interm. 5', + pos6: 'Interm. 6', + gift_chat: 'Pour entrer dans le Gift Chat, cliquez ici', + quando_eff_il_tuo_dono: 'Quand faire le Regalo', + entra_in_gift_chat: 'Entrez dans le "Gift Chat"', + invia_link_chat: 'Envoyer le lien du Chat de cadeaux aux donateurs', + inviare_msg_donatori: '5) Envoyer un message aux donateurs', + msg_donatori_ok: 'Message envoyé aux donateurs', + metodi_disponibili: 'Méthodes disponibles', + importo: 'Montant', + effettua_il_dono: 'Il est temps de faire votre propre regalo au Rêveur
    👉 {sognatore} 👈 ' + + 'Envoyez via PayPal à : {email}
    ' + + 'ATTENTION: Choisissez l\'option "SENDING TO A FRIEND"
    ', + paypal_me: '
    2) Méthode simplifiée
    Cliquez directement ici
    ' + + 'ouvrira PayPal avec le montant et le destinataire déjà définis.
    ' + + 'Ajouter comme message : Regalo
    ' + + 'WARNING: NE COCHEZ PAS LA BOITE : Protection des achats par Paypal
    ' + + 'Si vous avez des doutes, regardez la vidéo ci-dessous pour voir comment:
    ' + + 'Enfin, cliquez sur "Envoyer de l\'argent maintenant"', + qui_compariranno_le_info: 'Le jour du départ du navire, les informations du Dreamer apparaîtront', + commento_al_sognatore: 'Ecrivez ici un commentaire pour le Rêveur:', + posizione: 'Localisation', + come_inviare_regalo_con_paypal: 'Comment envoyer le regalo via Paypal', + ho_effettuato_il_dono: 'J\'ai effectué le Regalo', + clicca_conferma_dono: 'Cliquez ici pour confirmer que vous avez fait votre regalo', + fatto_dono: 'Vous avez confirmé que le Regalo a été envoyé', + confermi_dono: 'Confirmez que vous avez envoyé votre Regalo de 33€', + dono_ricevuto: 'Votre regalo a été reçu!', + dono_ricevuto_2: 'Reçu', + dono_ricevuto_3: 'Arrivé!', + confermi_dono_ricevuto: 'Confirmez que vous avez reçu le regalo de 33 $ de {donatore}', + confermi_dono_ricevuto_msg: 'Confirme la réception du regalo de 33€ de {donatore}', + msg_bot_conferma: '{donatore} a confirmé qu\'il avait envoyé son cadeau de 33 € a {sognatore} (Commento: {commento})', + ricevuto_dono_ok: 'Vous avez confirmé que le cadeau a été reçu', + entra_in_lavagna: 'Montez sur votre tableau noir pour voir les navires au départ', + doni_ricevuti: 'Regalo reçus', + doni_inviati_da_confermare: 'Regalo envoyés (à confirmer)', + doni_mancanti: 'Regalo manquants', + temporanea: 'Temporaire', + nave_provvisoria: 'On vous a attribué une NAVE TEMPORAIRE.
    Il est normal que vous constatiez un changement de date de départ, en raison de la mise à jour du classement des passagers.', + ritessitura: 'ÉCRITURE', + }, + reg: { + volta: 'fois', + volte: 'fois', + registered: 'Registrato', + contacted: 'Contattato', + name_complete: 'Nome Completo', + num_invitati: 'Num.Invitati', + is_in_whatsapp: 'In Whatsapp', + is_in_telegram: 'In Telegram', + cell_complete: 'Cellulare', + failed: 'Fallito', + ind_order: 'Num', + ipaddr: 'IP', + verified_email: 'Email Verified', + reg_lista_prec: 'Veuillez entrer le prénom, le nom et le numéro de téléphone portable que vous avez laissé lors de votre inscription à la Chat !
    De cette façon, le système vous reconnaîtra et conservera la position de la liste', + new_registrations: "S'il s'agit d'une NOUVELLE inscription, vous devez contacter la personne qui vous a INVITÉE, qui vous laissera le LIEN CORRECT pour effectuer l'inscription sous sa responsabilité", + you: 'Vous', + cancella_invitato: 'Supprimer invité', + regala_invitato: 'Invited_gift', + regala_invitante: 'présente invitant', + messaggio_invito: "Message d'invitation", + messaggio_invito_msg: 'Envoyez ce message à tous ceux à qui vous voulez partager ce Mouvement !', + videointro: "Vidéo d'introduction", + invitato_regalato: 'Cadeau invité', + invitante_regalato: 'Cadeau Invitè', + legenda: 'Légende', + aportador_solidario: 'Qui vous a invité', + username_regala_invitato: 'Nom d\'utilisateur du destinataire du cadeau', + aportador_solidario_nome_completo: 'A.S. Nom', + aportador_solidario_ind_order: 'A.S.Ind', + reflink: 'Des liens à partager avec vos invités :', + linkzoom: 'Lien pour entrer en Zoom', + made_gift: 'Doné', + note: 'Notes', + incorso: 'Registrazione in corso...', + richiesto: 'Champ obligatoire', + email: 'Email', + intcode_cell: 'Préfixe int.', + cell: 'Téléphone Telegram', + cellreg: 'Cellulare con cui ti eri registrato', + nationality: 'Nationalité', + email_paypal: 'Email Paypal', + revolut: 'Revolut', + link_payment: 'Liens Paypal.me', + note_payment: 'Notes complémentaires', + country_pay: 'Pays de destination Paiements', + username_telegram: 'Nom d\'utilisateur du Telegram', + telegram: 'Chat Telegram \'{botname}\'', + teleg_id: 'Telegram ID', + teleg_auth: 'Code d\'autorisation', + click_per_copiare: 'Cliquez dessus pour le copier dans le presse-papiers', + copia_messaggio: 'Copier le message', + teleg_torna_sul_bot: '1) Copiez le code en cliquant sur le bouton ci-dessus
    2) retournez à {botname} en cliquant sur 👇 et collez (ou écrivez) le code', + teleg_checkcode: 'Code du Telegram', + my_dream: 'Mon rêve', + saw_and_accepted: 'Condizioni', + saw_zoom_presentation: 'Ha visto Zoom', + manage_telegram: 'Gestori Telegram', + paymenttype: 'Méthodes de paiement disponibles (Revolut)', + selected: 'sélectionné', + img: 'Fichier image', + date_reg: 'Date Inscript.', + requirement: 'Exigences', + perm: 'Autorisations', + username: 'Username (Surnom)', + username_short: 'Username', + name: 'Nom', + surname: 'Prénom', + username_login: 'Nom d\'utilisateur ou email', + password: 'mot de passe', + repeatPassword: 'Répéter le mot de passe', + terms: "J'accepte les conditions de confidentialité", + onlyadult: 'Je confirme que je suis majeur', + submit: "S'inscrire", + title_verif_reg: "Vérifier l'inscription", + reg_ok: 'Enregistrement réussi', + verificato: 'Vérifié', + non_verificato: 'Non vérifié', + forgetpassword: 'Vous avez oublié votre mot de passe?', + modificapassword: 'Changer le mot de passe', + err: { + required: 'c\'est nécessaire', + email: 'Ce doit être un email valide.', + errore_generico: 'S\'il vous plaît remplir les champs correctement', + atleast: 'ça doit être au moins long', + complexity: 'doit contenir au moins 1 minuscule, 1 majuscule, 1 chiffre', + notmore: 'il ne doit pas être plus long que', + char: 'caractères', + terms: 'Vous devez accepter les conditions, pour continuer..', + email_not_exist: 'L\'email n\'est pas présent dans l\'archive, vérifiez s\'il est correct', + duplicate_email: 'L\'email a déjà été enregistré', + user_already_exist: 'L\'enregistrement avec ces données (nom, prénom et téléphone portable) a déjà été effectué. Pour accéder au site, cliquez sur le bouton CONNEXION de la page d\'accueil.', + user_extralist_not_found: 'Utilisateur dans les archives introuvable, insérez le nom, le prénom et le numéro de téléphone portable envoyés précédemment', + user_not_this_aportador: 'Stai utilizzando un link di una persona diversa dal tuo invitato originale.', + duplicate_username: 'Le nom d\'utilisateur a déjà été utilisé', + username_not_valid: 'Username not valid', + aportador_not_exist: 'Le nom d\'utilisateur de la personne qui vous a invité n\'est pas présent. Contactez-nous.', + aportador_regalare_not_exist: 'Inserire l\'Username della persona che si vuole regalare l\'invitato', + sameaspassword: 'Les mots de passe doivent être identiques', + }, + tips: { + email: 'inserisci la tua email', + username: 'username lunga almeno 6 caratteri', + password: 'deve contenere 1 minuscola, 1 maiuscola e 1 cifra', + repeatpassword: 'ripetere la password', + }, + }, + op: { + qualification: 'Qualification', + usertelegram: 'Username Telegram', + disciplines: 'Disciplines', + certifications: 'Certifications', + intro: 'Introduction', + info: 'Biographie', + webpage: 'Page Web', + days_working: 'Jours ouvrés', + facebook: 'Page Facebook', + }, + login: { + page_title: 'Login', + incorso: 'Connexion en cours', + enter: 'Entrez', + esci: 'Sortir', + errato: "Nom d'utilisateur, email ou mot de passe incorrect. réessayer", + subaccount: "Ce compte a été fusionné avec votre compte initial. Connectez-vous en utilisant le nom d'utilisateur (et l'adresse électronique) du compte FIRST.", + completato: 'Connexion faite!', + needlogin: 'Vous devez vous connecter avant de continuer', + }, + reset: { + title_reset_pwd: 'Réinitialiser votre mot de passe', + send_reset_pwd: 'Envoyer un mot de passe de réinitialisation', + incorso: 'Demander un nouvel email...', + email_sent: 'Email envoyé', + token_scaduto: 'Il token è scaduto oppure è stato già usato. Ripetere la procedura di reset password', + check_email: 'Vérifiez votre email, vous recevrez un message avec un lien pour réinitialiser votre mot de passe. Ce lien, pour des raisons de sécurité, expirera au bout de 4 heures.', + title_update_pwd: 'Mettez à jour votre mot de passe', + update_password: 'Mettre à jour le mot de passe', + }, + logout: { + uscito: 'Vous êtes déconnecté', + }, + errors: { + graphql: { + undefined: 'non défini', + }, + }, + showbigmap: 'Montrer la plus grande carte', + todo: { + titleprioritymenu: 'Prioridad:', + inserttop: 'Ingrese una nueva Tarea arriba', + insertbottom: 'Ingrese una nueva Tarea abajo', + edit: 'Descripción Tarea:', + completed: 'Ultimos Completados', + usernotdefined: 'Atención, debes iniciar sesión para agregar una Tarea', + start_date: 'Fecha inicio', + status: 'Estado', + completed_at: 'Fecha de finalización', + expiring_at: 'Fecha de Caducidad', + phase: 'Fase', + }, + notification: { + status: 'Etat', + ask: 'Activer les notifications', + waitingconfirm: 'Confirmer la demande de notification.', + confirmed: 'Notifications activées!', + denied: 'Notifications désactivées! Attention, vous ne verrez pas les messages arriver. Réhabilitez-les pour les voir.', + titlegranted: 'Notifications activées activées!', + statusnot: 'Notifications d\'état', + titledenied: 'Notifications autorisées désactivées!', + title_subscribed: 'Abonnement au Site Web!', + subscribed: 'Maintenant, vous pouvez recevoir des messages et des notifications.', + newVersionAvailable: 'Mise à jour', + }, + connection: 'Connexion', + proj: { + newproj: 'Título Projecto', + newsubproj: 'Título Sub-Projecto', + insertbottom: 'Añadir nuevo Proyecto', + longdescr: 'Descripción', + hoursplanned: 'Horas Estimadas', + hoursleft: 'Horas Restantes', + hoursadded: 'Horas Adicional', + hoursworked: 'Horas Trabajadas', + begin_development: 'Comienzo desarrollo', + begin_test: 'Comienzo Prueba', + progresstask: 'Progresion', + actualphase: 'Fase Actual', + hoursweeky_plannedtowork: 'Horarios semanales programados', + endwork_estimate: 'Fecha estimada de finalización', + privacyread: 'Quien puede verlo:', + privacywrite: 'Quien puede modificarlo:', + totalphases: 'Fases totales', + themecolor: 'Tema Colores', + themebgcolor: 'Tema Colores Fondo', + }, + where: { + code: 'Id', + whereicon: 'icône', + }, + col: { + label: 'Etichetta', + value: 'Valore', + type: 'Tipo', + }, + cal: { + num: 'Nombre', + booked: 'Réservé', + booked_error: 'La réservation a échoué. Réessayez plus tard', + sendmsg_error: 'Message non envoyé. Réessayez plus tard', + sendmsg_sent: 'Message envoyé', + booking: 'Réserver l\'événement', + titlebooking: 'Réservation', + modifybooking: 'changement de réservation', + cancelbooking: 'Annuler la réservation', + canceledbooking: 'Réservation annulée', + cancelederrorbooking: 'Annulation non effectuée, réessayez plus tard', + cancelevent: 'Cancella Evento', + canceledevent: 'Evento Cancellato', + cancelederrorevent: 'Cancellazione Evento non effettuata, Riprovare', + event: 'événement', + starttime: 'Accueil', + nextevent: 'Prochain événement', + readall: 'Tout lire', + enddate: 'au', + endtime: 'fin', + duration: 'Durée', + hours: 'Le temps', + when: 'Quand', + where: 'Où', + teacher: 'Dirigé par', + enterdate: 'Entrez la date', + details: 'Les détails', + infoextra: 'Extras Date et heure:', + alldayevent: 'Toute la journée', + eventstartdatetime: 'début', + enterEndDateTime: 'final', + selnumpeople: 'Participants', + selnumpeople_short: 'Num', + msgbooking: 'Message à envoyer', + showpdf: 'Voir PDF', + bookingtextdefault: 'Je réserve', + bookingtextdefault_of: 'du', + data: 'Date', + teachertitle: 'Professeur', + peoplebooked: 'Réserv.', + showlastschedule: 'Voir tout le calendrier', + }, + msgs: { + message: 'Message', + messages: 'Messages', + nomessage: 'Pas de message', + }, + event: { + _id: 'id', + typol: 'Typologie', + short_tit: 'Titre abrégé\'', + title: 'Titre', + details: 'Détails', + bodytext: 'texte de l\'événement', + dateTimeStart: 'Data Initiale', + dateTimeEnd: 'Date de fin', + bgcolor: 'Couleur de fond', + days: 'Journées', + icon: 'Icône', + img: 'Image du nom de fichier', + img_small: 'Image petite', + where: 'Où', + contribtype: 'Type de contribution', + price: 'Prix', + askinfo: 'Demander des infos', + showpage: 'Voir la page', + infoafterprice: 'Notes après le prix', + teacher: 'Enseignant', // teacherid + teacher2: 'Enseignant2', // teacherid2 + infoextra: 'Extra Info', + linkpage: 'Site Web', + linkpdf: 'Lien vers un PDF', + nobookable: 'non réservable', + news: 'Nouvelles', + dupId: 'Id Double', + canceled: 'Annulé', + deleted: 'Supprimé', + duplicate: 'Duplique', + notempty: 'Le champ ne peut pas être vide', + modified: 'modifié', + showinhome: 'Montrer à la Home', + showinnewsletter: 'Afficher dans la Newsletter', + color: 'Couleur du titre', + }, + disc: { + typol_code: 'Type de code', + order: 'Ordre', + }, + newsletter: { + title: 'Souhaitez-vous recevoir notre newsletter?', + name: 'Ton nom', + surname: 'Tu prénom', + namehint: 'Nom', + surnamehint: 'Prénom', + email: 'votre e-mail', + submit: 'S\'abonner', + reset: 'Redémarrer', + typesomething: 'Remplir le champ', + acceptlicense: 'J\'accepte la licence et les termes', + license: 'Vous devez d\'abord accepter la licence et les termes', + submitted: 'Abonné', + menu: 'Newsletter1', + template: 'Modeles Email', + sendemail: 'Envoyer', + check: 'Chèque', + sent: 'Dèjà envoyé', + mailinglist: 'Leste de contacts', + settings: 'Paramèters', + serversettings: 'Serveur', + others: 'Autres', + templemail: 'Model Email', + datetoSent: 'Date et heure d\'envoi', + activate: 'Activé', + numemail_tot: 'Total Email', + numemail_sent: 'Emails envoyés', + datestartJob: 'Inizio Invio', + datefinishJob: 'Fin envoi', + lastemailsent_Job: 'Dernier envoyé', + starting_job: 'Envoyé', + finish_job: 'Envoy Terminé', + processing_job: 'travaux en cours', + error_job: 'info d\'erreur', + statesub: 'Abonné', + wrongerr: 'Email inválido', + }, + privacy_policy: 'Politique de confidentialité', + cookies: 'Nous utilisons des cookies pour améliorer les performances Web.', + }, +}; + +export default msg_fr; diff --git a/src/statics/lang.old/it.js b/src/statics/lang.old/it.js new file mode 100755 index 00000000..b28dc558 --- /dev/null +++ b/src/statics/lang.old/it.js @@ -0,0 +1,663 @@ +const msg_it = { + it: { + words: { + da: 'dal', + a: 'al', + }, + home: { + guida: 'Guida', + guida_passopasso: 'Guida Passo Passo', + }, + grid: { + editvalues: 'Modifica Valori', + addrecord: 'Aggiungi Riga', + showprevedit: 'Mostra Eventi Passati', + columns: 'Colonne', + tableslist: 'Tabelle', + nodata: 'Nessun Dato', + }, + gallery: { + author_username: 'Utente', + title: 'Titolo', + directory: 'Directory', + list: 'Lista', + }, + profile: { + chisei: 'Chi Sei? Raccontaci di te:', + iltuoimpegno: 'Quale è stato il tuo impegno per salvare il pianeta ad oggi?', + come_aiutare: 'Cosa vorresti fare per aiutare il pianeta?', + }, + otherpages: { + sito_offline: 'Sito in Aggiornamento', + modifprof: 'Modifica Profilo', + biografia: 'Biografia', + update: 'Aggiornamento in Corso...', + error404: 'error404', + error404def: 'error404def', + admin: { + menu: 'Amministrazione', + eventlist: 'Le tue Prenotazioni', + usereventlist: 'Prenotazioni Utenti', + userlist: 'Lista Utenti', + zoomlist: 'Calendario Zoom', + extralist: 'Lista Extra', + dbop: 'Db Operations', + tableslist: 'Lista Tabelle', + navi: 'Navi', + listadoni_navi: 'Lista Doni Navi', + newsletter: 'Newsletter', + pages: 'Pagine', + media: 'Media', + gallery: 'Gallerie', + listaflotte: 'Flotte', + }, + manage: { + menu: 'Gestione', + manager: 'Gestore', + nessuno: 'Nessuno', + sendpushnotif: 'Invia Msg Push', + }, + messages: { + menu: 'I tuoi Messaggi', + }, + }, + sendmsg: { + write: 'scrive', + }, + stat: { + imbarcati: 'Imbarcati', + imbarcati_weekly: 'Imbarcati Settimanali', + imbarcati_in_attesa: 'Imbarcati in Attesa', + qualificati: 'Qualificati con almeno 2 invitati', + requisiti: 'Utenti con i 7 Requisiti', + zoom: 'Partecipato in Zoom', + modalita_pagamento: 'Modalità di Pagamento Inseriti', + accepted: 'Accettato Linee Guida + Video', + dream: 'Hanno scritto il Sogno', + email_not_verif: 'Email non Verificate', + telegram_non_attivi: 'Telegram Non Attivi', + telegram_pendenti: 'Telegram Pendenti', + reg_daily: 'Registrazioni Giornaliere', + reg_weekly: 'Registrazioni Settimanali', + reg_total: 'Registrazioni Totali', + }, + steps: { + nuovo_imbarco: 'Prenota un altro Viaggio', + vuoi_entrare_nuova_nave: 'Desideri aiutare il Movimento ad avanzare e intendi entrare in un\'altra Nave?
    Effettuando un Nuovo Dono di 33€, potrai percorrere un altro viaggio ed avere un\'altra opportunità di diventare Sognatore!
    ' + + 'Se confermi verrai aggiunto alla lista d\'attesa per i prossimi imbarchi.', + inserisci_invitante: 'Inserisci qui sotto l\'username della persona che vuoi aiutare, donandoti come suo Invitato:', + vuoi_cancellare_imbarco: 'Sicuro di voler cancellare questo imbarco in Nave AYNI?', + sei_stato_aggiunto: 'Sei stato aggiunto alla lista d\'imbarco! Nei prossimi giorni verrai aggiunto ad una Nuova Nave in partenza!', + completed: 'Completati', + passi_su: '{passo} passi su {totpassi}', + video_intro_1: '1. Benvenuti in {sitename}', + video_intro_2: '2. Nascita di {sitename}', + read_guidelines: 'Ho letto ed Accetto queste condizioni scritte qui sopra', + saw_video_intro: 'Dichiaro di aver visto i Video', + paymenttype: 'Modalità di Pagamento (Revolut)', + paymenttype_long: 'I metodi di Pagamento sono:
    • Revolut (ALTAMENTE CONSIGLIATA):
      la Carta Prepagata Revolut con IBAN Inglese, trasferimenti gratuiti, più libera e semplice da utilizzare. Disponibile l\'app per il cellulare.

    • Paypal perchè è un sistema molto diffuso in tutta Europa (il trasferimento e gratuito) e si possono collegare le carte prepagate, le carte di credito e il conto corrente SENZA COMMISSIONI. In questo modo non dovrai condividere i numeri delle tue carte o del c/c ma solo la mail che avrai usato in fase di iscrizione su Paypal. Disponibile l\'app per il cellulare.

      NOTA BENE: Ultimamente Paypal sta avendo problemi perchè tendono a bloccare i soldi sul conto del Sognatore per 6 mesi per controlli, quindi da utilizzare SOLO se impossiblitati ad aprire un conto con Revolut.
    ', + paymenttype_long2: 'Si consiglia di avere a disposizione almeno 2 Modalità di Pagamento, per scambiarsi i doni.', + paymenttype_paypal: 'Come Aprire un conto Paypal (in 2 minuti)', + paymenttype_paypal_carta_conto: 'Come associare una carta di Credito/Debito o un Conto Bancario su PayPal', + paymenttype_paypal_link: 'Apri il Conto con Paypal', + paymenttype_revolut: 'Come Aprire il conto con Revolut (in 2 minuti)', + paymenttype_revolut_link: 'Apri il Conto con Revolut', + entra_zoom: 'Entra in Zoom', + linee_guida: 'Accetto le Linee Guida', + video_intro: 'Vedo il Video', + zoom: 'Partecipo ad almeno 1 Video-Conferenza', + zoom_si_partecipato: 'Hai partecipato ad almeno 1 Video-Conferenza', + zoom_partecipa: 'Partecipato ad almeno 1 Zoom', + zoom_no_partecipato: 'Attualmente non hai ancora partecipato ad una Video-Conferenza (è un requisito per poter entrare)', + zoom_long: 'Si richiede di partecipare ad almeno 1 Video-Conferenza, ma se sentirai che questi icontri sono anche un modo per condividere e stare in compagnia, allora potrai partecipare tutte le volte che lo desideri.


    Partecipando alle Video-Conferenze di Benvenuto lo Staff registrerà la vostra presenza ENTRO 24 ORE.
    ', + zoom_what: 'Tutorial come installare Zoom Cloud Meeting', + // sharemovement_devi_invitare_almeno_2: 'Ancora non hai invitato 2 persone', + // sharemovement_hai_invitato: 'Hai invitato almeno 2 persone', + sharemovement_invitati_attivi_si: 'Hai almeno 2 persone invitate Attive', + sharemovement_invitati_attivi_no: 'Nota Bene:Le persone che hai invitato, per essere Attive, devono aver completato tutti i primi 7 Requisiti (vedi la tua Lavagna per capire cosa gli manca)', + sharemovement: 'Condivido il Movimento', + sharemovement_long: 'Condividi il Movimento {sitename} e invitali a partecipare agli Zoom di Benvenuto per entrare a far parte di questa grande Famiglia 😄 .
    ', + inv_attivi_long: '', + enter_prog_completa_requisiti: 'Completa tutti i requisiti richiesti, per poter entrare nella Lista d\'imbarco.', + enter_prog_requisiti_ok: 'Hai completato tutti i 7 requisiti per entrare nella Lista d\'Imbarco.
    ', + enter_prog_msg: 'Riceverai un messaggio nei prossimi giorni su AYNI BOT, appena la tua Nave sarà pronta!', + enter_prog_msg_2: 'Ricorda che più persone inviti e più sali di Posizione, per accedere alla prossima Nave!', + enter_nave_9req_ok: 'COMPLIMENTI! Hai Completato TUTTI i 9 Passi della Guida! Grazie per Aiutare {sitename} ad Espandersi!
    Potrai molto presto partire con il tuo Viaggio, facendo il tuo dono e proseguendo verso il Sognatore', + enter_nave_9req_ko: 'Ricorda che puoi Aiutare a far Crescere ed Espandere il Movimento, Condividendo con chiunque questo nostro viaggio!', + enter_prog: 'Entro nella Lista d\'Imbarco', + enter_prog_long: 'Ricorda che puoi Aiutare a far Crescere ed Espandere il Movimento, Condividendo con chiunque questo nostro viaggio!
    ', + collaborate: 'Collaborazione', + collaborate_long: 'Continuo a collaborare con i miei compagni per arrivare al giorno in cui salperà la mia Nave.', + dream: 'Scrivo il mio Sogno', + dream_long: 'Scrivi qui il Sogno per il quale sei entrato in {sitename} e che desideri realizzare.
    Sarà condiviso a quello di tutti gli altri per sognare insieme !', + dono: 'Dono', + dono_long: 'Faccio il mio dono nella data di partenza della mia Nave', + support: 'Sostengo il movimento', + support_long: 'Sostengo il movimento portando Energia, partecipando e organizzando Zoom, aiutando e informando i nuovi arrivati continuando a diffondere la visione di {sitename}', + ricevo_dono: 'Ricevo il mio dono e CELEBRO', + ricevo_dono_long: 'Evviva!!!
    QUESTO MOVIMENTO È REALE E POSSIBILE SE LO FACCIAMO FUNZIONARE TUTTI INSIEME !', + }, + dialog: { + continue: 'Continuare', + close: 'Chiudi', + copyclipboard: 'Copiato negli appunti', + ok: 'Ok', + yes: 'Si', + no: 'No', + delete: 'Elimina', + cancel: 'Annulla', + update: 'Aggiorna', + add: 'Aggiungi', + today: 'Oggi', + book: 'Prenota', + avanti: 'Avanti', + indietro: 'Indietro', + finish: 'Fine', + sendmsg: 'Invia Messaggio', + sendonlymsg: 'Invia solo un Msg', + msg: { + titledeleteTask: 'Elimina Task', + deleteTask: 'Vuoi Eliminare {mytodo}?', + }, + }, + comp: { + Conta: 'Conta', + }, + db: { + recupdated: 'Record Aggiornato', + recfailed: 'Errore durante aggiornamento Record', + reccanceled: 'Annullato Aggiornamento. Ripristinato valore precendente', + deleterecord: 'Elimina Record', + deletetherecord: 'Eliminare il Record?', + deletedrecord: 'Record Cancellato', + recdelfailed: 'Errore durante la cancellazione del Record', + duplicatedrecord: 'Record Duplicato', + recdupfailed: 'Errore durante la duplicazione del Record', + }, + components: { + authentication: { + telegram: { + open: 'Clicca qui per aprire il BOT Telegram e segui le istruzioni', + ifclose: 'Se non si apre Telegram cliccando sul bottone oppure l\'avevi eliminato, vai su Telegram e cerca \'{botname}\' dall\'icona della lente, poi premi Start e segui le istruzioni.', + openbot: 'Apri \'{botname}\' su Telegram', + }, + login: { + facebook: 'Facebook', + }, + email_verification: { + title: 'Inizia la tua registrazione', + introduce_email: 'inserisci la tua email', + email: 'Email', + invalid_email: 'La tua email è invalida', + verify_email: 'Verifica la tua email', + go_login: 'Torna al Login', + incorrect_input: 'Inserimento incorretto.', + link_sent: 'Apri la tua casella di posta, trova la email "Confermare la Registrazione: {sitename}" e clicca su "Verifica Registrazione"', + se_non_ricevo: 'Se non ricevi la email, prova a controllare nella spam, oppure contattaci', + title_unsubscribe: 'Disiscrizione alla newsletter', + title_unsubscribe_done: 'Disiscrizione completata correttamente', + }, + }, + }, + fetch: { + errore_generico: 'Errore Generico', + errore_server: 'Impossibile accedere al Server. Riprovare Grazie', + error_doppiologin: 'Rieseguire il Login. Accesso aperto da un altro dispositivo.', + }, + user: { + notregistered: 'Devi registrarti al servizio prima di porter memorizzare i dati', + loggati: 'Utente non loggato', + }, + templemail: { + subject: 'Oggetto Email', + testoheadermail: 'Intestazione Email', + content: 'Contenuto', + img: 'Immagine 1', + img2: 'Immagine 2', + content2: 'Contenuto 2', + options: 'Opzioni', + }, + dashboard: { + data: 'Data', + data_rich: 'Data Rich.', + ritorno: 'Ritorno', + invitante: 'Invitante', + dono_da_effettuare: 'Dono che dovrai effettuare', + num_tessitura: 'Numero di Tessitura:', + attenzione: 'Attenzione', + downline: 'Invitati', + downnotreg: 'Invitati non Registrati', + notreg: 'Non Registrato', + inv_attivi: 'Invitati con i 7 Requisiti', + numinvitati: 'Almeno 2 Invitati', + telefono_wa: 'Contatta su Whatsapp', + sendnotification: 'Invia Notifica al Destinatario su Telegram BOT', + ricevuto_dono: '😍🎊 Hai ricevuto in Regalo un Invitato {invitato} da parte di {mittente} !', + ricevuto_dono_invitante: '😍🎊 Hai ricevuto in Regalo un Invitante da parte di {mittente} !', + nessun_invitante: 'Nessun Invitante', + nessun_invitato: 'Nessun Invitato', + legenda_title: 'Clicca sul nome dell\'invitato per vedere lo stato dei suoi Requisiti.', + nave_in_partenza: 'La Nave salperà il', + nave_in_chiusura: 'Chiusura Gift Chat', + nave_partita: 'Partita il', + tutor: 'Tutor', + traduttrici: 'Traduttrici', + /* sonomediatore: 'Quando diventi Meditore vieni contattato da un TUTOR, con lui devi:
      ' + + '
    1. Aprire la tua Gift Chat (tu come proprietario e il Tutor ' + + 'come amministratore) con questo nome:
      {nomenave}
    2. ' + + '
    3. Clicca sul nome della chat in alto -> Modifica -> Amministratori -> "Aggiungi Amministratore", seleziona il Tutor nell’elenco.
    4. ' + + '
    5. Devi configurare la chat in modo che chi entra vede anche i post precedenti (clicca sul nome della chat in alto, clicca su modifica, ' + + 'cambia la "cronologia per i nuovi membri" da nascosta a visibile.
    6. ' + + '
    7. Per trovare il link della Chat appena creata: clicca sul nome della chat in alto, clicca sulla Matita -> "Tipo di Gruppo" -> "invita nel gruppo tramite link", clicca su "copia link" e incollalo qui sotto, sulla casella "Link Gift Chat"
    8. ' + + '
    9. Invia il Link della Gift Chat a tutti i Donatori, cliccando sul bottone qui sotto.
    ', +*/ + sonomediatore: 'Quando sei MEDIATORE verrai contattato dai TUTOR AYNI tramite un messaggio sulla Chat AYNI BOT !', + superchat: 'Nota Bene: Non inviarci la ricevuta, non ci occorre. Attendi il messaggio di conferma da parte del Sognatore (sulla Chat AYNI BOT).
    SOLO se hai problemi di PAGAMENTO, o ti manca la conferma del SOGNATORE (dopo aver atteso almeno 12 ore) o se vuoi essere SOSTITUITO, due Tutor ti aspettano per aiutarti sulla Chat:
    Entra nella Gift Chat', + sonodonatore: '
    1. Quando sei in questa posizione, verrai invitato (tramite un messaggio su AYNI BOT) ad effettuare il Dono. Non sarà più necessario entrare in una Chat.
    2. ' + + '
    3. Avrai tempo 3 giorni per fare il Regalo (poi verrai sostituito), nella modalità di pagamento che troverai scritto sul messaggio in AYNI BOT .
    ', + sonodonatore_seconda_tessitura: '
    1. Qui tu sei Mediatore e anche Donatore, ma essendo la seconda Tessitura (il Ritorno), non avrai bisogno di effettuare nuovamente il dono
    ', + controlla_donatori: 'Controlla Lista Donatori', + link_chat: 'Link della Gift Chat Telegram', + tragitto: 'Tragitto', + nave: 'Nave', + data_partenza: 'Data
    Partenza', + doni_inviati: 'Doni', + nome_dei_passaggi: 'Nome
    dei Passaggi', + donatori: 'Donatori', + donatore: 'Donatore', + mediatore: 'Mediatore', + sognatore: 'Sognatore', + sognatori: 'SOGNATORI', + intermedio: 'INTERMEDIO', + pos2: 'Interm. 2', + pos3: 'Interm. 3', + pos5: 'Interm. 5', + pos6: 'Interm. 6', + gift_chat: 'Per entrare nella Gift Chat, clicca qui', + quando_eff_il_tuo_dono: 'Quando effettuare il Regalo', + entra_in_gift_chat: 'Entra in Gift Chat', + invia_link_chat: 'Invia il Link della Gift Chat ai Donatori', + inviare_msg_donatori: '5) Inviare messaggio ai Donatori', + msg_donatori_ok: 'Inviato messaggio ai Donatori', + metodi_disponibili: 'Metodi Disponibili', + importo: 'Importo', + effettua_il_dono: 'E\' arrivato il momento di Effettuare il proprio Dono al Sognatore
    👉 {sognatore} 👈 !

    ' + + 'Inviare tramite PayPal a: {email}
    ' + + 'Aggiungere come messaggio la dicitura: Regalo
    ' + + 'ATTENZIONE IMPORTANTE: Scegliere l\'opzione
    "INVIO DI DENARO A UN AMICO"
    Cosi non pagherai delle commissioni extra!', + paypal_me: '
    2) Metodo Semplificato
    Cliccare direttamente qui
    ' + + 'si aprirà PayPal con l\'importo e il destinatario gia impostato.
    ' + + 'Aggiungere come messaggio la dicitura: Regalo
    ' + + 'ATTENZIONE IMPORTANTE: TOGLIERE LA SPUNTA SU: Devi pagare beni o servizi? ... (Protezione acquisti Paypal)
    Altrimenti pagherai inutilmente delle commissioni extra.
    ' + + 'Se hai dubbi, guarda il video qui sotto per vedere come fare:
    ' + + 'infine Clicca su “Invia Denaro ora”.', + commento_al_sognatore: 'Scrivi qui un commento per il Sognatore:', + qui_compariranno_le_info: 'Nel giorno della partenza della Nave, compariranno le informazioni del Sognatore', + posizione: 'Posizione', + come_inviare_regalo_con_paypal: 'Come Inviare il regalo tramite Paypal', + ho_effettuato_il_dono: 'Ho effettuato il Dono', + clicca_conferma_dono: 'Una volta inviato il Dono, lascia un commento al Sognatore e Clicca qui sotto per confermare che hai effettuato il tuo dono', + fatto_dono: 'Hai confermato che il dono è stato Inviato', + confermi_dono: 'Confermi che hai inviato il tuo Dono di 33€', + dono_ricevuto: 'Il tuo Dono è stato Ricevuto!', + dono_ricevuto_2: 'Ricevuto', + dono_ricevuto_3: 'Arrivato!', + confermi_dono_ricevuto: 'Confermi di aver ricevuto il Dono di 33€ da parte di {donatore}', + confermi_dono_ricevuto_msg: 'Confermato di aver ricevuto il Dono di 33€ da parte di {donatore}', + msg_bot_conferma: '{donatore} ha confermato di aver inviato il suo Dono di 33€ a {sognatore} (Commento: {commento})', + ricevuto_dono_ok: 'Hai confermato che il dono è stato Ricevuto', + entra_in_lavagna: 'Entra sulla Tua Lavagna per vedere le Navi in Partenza', + doni_ricevuti: 'Doni Ricevuti', + doni_inviati_da_confermare: 'Doni Inviati (da confermare)', + doni_mancanti: 'Doni Mancanti', + temporanea: 'Temporanea', + nave_provvisoria: 'Ti è stata assegnata una Nave TEMPORANEA.
    E\'normale che vedrai variare la data di partenza, dovuto all\'aggiornamento della graduatoria dei passeggeri.', + ritessitura: 'RITESSITURA', + }, + reg: { + volta: 'volta', + volte: 'volte', + registered: 'Registrato', + contacted: 'Contattato', + name_complete: 'Nome Completo', + num_invitati: 'Num.Invitati', + is_in_whatsapp: 'In Whatsapp', + is_in_telegram: 'In Telegram', + cell_complete: 'Cellulare', + failed: 'Fallito', + ind_order: 'Num', + ipaddr: 'IP', + verified_email: 'Email Verificata', + reg_lista_prec: 'Inserire il Nome, Cognome e numero di cellulare che avete lasciato in passato quando vi siete iscritti alla Chat!
    In questo modo il sistema vi riconosce e vi mantiene la posizione della lista.', + nuove_registrazioni: 'Se questa è una NUOVA registrazione, dovete contattare la persona che vi ha INVITATO, che vi lascerà il LINK CORRETTO per fare la Registrazione sotto di lui/lei', + you: 'Tu', + cancella_invitato: 'Elimina Invitato', + cancella_account: 'Elimina Profilo', + cancellami: 'Sei sicuro di voler Eliminare completamente la tua Registrazione su {sitename}, uscendo così dal movimento? Non potrai piu\' accedere al sito tramite i tuoi dati, Perderai la tua POSIZIONE e i Tuoi Invitati verranno REGALATI a chi ti ha invitato.', + cancellami_2: 'ULTIMO AVVISO! Vuoi uscire Definitivamente da {sitename} ?', + account_cancellato: 'Il tuo Profilo è stato cancellato correttamente', + regala_invitato: 'Regala Invitato', + regala_invitante: 'Imposta Invitante', + messaggio_invito: 'Messaggio di Invito', + messaggio_invito_msg: 'Invia questo messaggio a tutti coloro a cui vuoi condividere questo Movimento !', + videointro: 'Video Introduttivo', + invitato_regalato: 'Invitato Regalato', + invitante_regalato: 'Invitante Regalato', + legenda: 'Legenda', + aportador_solidario: 'Chi ti ha Invitato', + username_regala_invitato: 'Username del Destinatario del regalo', + aportador_solidario_nome_completo: 'Nominativo Invitante', + aportador_solidario_nome_completo_orig: 'Invitante Originario', + aportador_solidario_ind_order: 'Num Invitante', + reflink: 'Link da condividere ai tuoi invitati:', + linkzoom: 'Link per entrare in Zoom:', + page_title: 'Registrazione', + made_gift: 'Dono', + note: 'Note', + incorso: 'Registrazione in corso...', + richiesto: 'Campo Richiesto', + email: 'Email', + intcode_cell: 'Prefisso Int.', + cell: 'Cellulare Telegram', + cellreg: 'Cellulare con cui ti eri registrato', + nationality: 'Nazionalità', + email_paypal: 'Email Paypal', + revolut: 'Revolut', + link_payment: 'Link Paypal.me', + note_payment: 'Note Aggiuntive', + country_pay: 'Paese di Destinazione Pagamenti', + username_telegram: 'Username Telegram', + telegram: 'Chat Telegram \'{botname}\'', + teleg_id: 'Telegram ID', + teleg_id_old: 'OLD Tel ID', + teleg_auth: 'Codice Autorizzazione', + click_per_copiare: 'Cliccaci sopra per copiarlo sugli appunti', + copia_messaggio: 'Copia Messaggio', + teleg_torna_sul_bot: '1) Copia il codice cliccando sul bottone qui sopra
    2) torna su {botname} cliccando qui sotto 👇 ed incolla (o scrivi) il codice', + teleg_checkcode: 'Codice Telegram', + my_dream: 'Il mio Sogno', + saw_and_accepted: 'Condizioni', + saw_zoom_presentation: 'Ha visto Zoom', + manage_telegram: 'Gestori Telegram', + paymenttype: 'Modalità di Pagamenti Disponbili (Revolut)', + selected: 'Selezionati', + img: 'Immagine', + date_reg: 'Data Reg.', + requirement: 'Requisiti', + perm: 'Permessi', + elimina: 'Elimina', + deleted: 'Nascosto', + sospeso: 'Sospeso', + username: 'Username (Pseudonimo)', + username_short: 'Username', + name: 'Nome', + surname: 'Cognome', + username_login: 'Username o email', + password: 'Password', + repeatPassword: 'Ripeti password', + terms: 'Accetto i termini della privacy', + onlyadult: 'Confermo di essere Maggiorenne', + submit: 'Registrati', + title_verif_reg: 'Verifica Registrazione', + reg_ok: 'Registrazione Effettuata con Successo', + verificato: 'Verificato', + non_verificato: 'Non Verificato', + forgetpassword: 'Password dimenticata?', + modificapassword: 'Modifica Password', + err: { + required: 'è richiesto', + email: 'inserire una email valida', + errore_generico: 'Si prega di compilare correttamente i campi', + atleast: 'dev\'essere lungo almeno di', + complexity: 'deve contenere almeno 1 minuscola, 1 maiuscola, 1 cifra', + notmore: 'non dev\'essere lungo più di', + char: 'caratteri', + terms: 'Devi accettare le condizioni, per continuare.', + email_not_exist: 'l\'Email non è presente in archivio, verificare se è corretta', + duplicate_email: 'l\'Email è già stata registrata', + user_already_exist: 'La registrazione con questi dati (nome, cognome e cellulare) è stata già effettuata. Per accedere al sito, cliccare sul bottone LOGIN dalla HomePage.', + user_extralist_not_found: 'Utente in archivio non trovato, inserire il Nome, Cognome e numero di cellulare comunicato nella lista nel 2019. Se questa è una nuova registrazione, dovete registrarvi tramite il LINK di chi vi sta invitando.', + user_not_this_aportador: 'Stai utilizzando un link di una persona diversa dal tuo invitato originale.', + duplicate_username: 'L\'Username è stato già utilizzato', + username_not_valid: 'L\'Username non é valido', + aportador_not_exist: 'L\'Username di chi ti ha invitato non è presente. Contattaci.', + aportador_regalare_not_exist: 'Inserire l\'Username della persona che si vuole regalare l\'invitato', + invitante_username_not_exist: 'Inserire l\'Username della persona che fa da invitante', + sameaspassword: 'Le password devono essere identiche', + }, + tips: { + email: 'inserisci la tua email', + username: 'username lunga almeno 6 caratteri', + password: 'deve contenere 1 minuscola, 1 maiuscola e 1 cifra', + repeatpassword: 'ripetere la password', + + }, + }, + op: { + qualification: 'Qualifica', + usertelegram: 'Username Telegram', + disciplines: 'Discipline', + certifications: 'Certificazioni', + intro: 'Introduzione', + info: 'Biografia', + webpage: 'Pagina Web', + days_working: 'Giorni Lavorativi', + facebook: 'Pagina Facebook', + }, + login: { + page_title: 'Login', + incorso: 'Login in corso', + enter: 'Accedi', + esci: 'Esci', + errato: 'Username o password errata. Riprovare', + subaccount: "Questo account è stato accorpato con il vostro Principale. Eseguire l'accesso utilizzando l'username (o email) del PRIMO account.", + completato: 'Login effettuato!', + needlogin: 'E\' necessario effettuare il login prima di continuare', + }, + reset: { + title_reset_pwd: 'Reimposta la tua Password', + send_reset_pwd: 'Invia Reimposta la password', + incorso: 'Richiesta Nuova Email...', + email_sent: 'Email inviata', + check_email: 'Controlla la tua email, ti arriverà un messaggio con un link per reimpostare la tua password. Questo link, per sicurezza, scadrà dopo 4 ore.', + token_scaduto: 'Il token è scaduto oppure è stato già usato. Ripetere la procedura di reset password', + title_update_pwd: 'Aggiorna la tua password', + update_password: 'Aggiorna Password', + }, + logout: { + uscito: 'Sei Uscito', + }, + errors: { + graphql: { + undefined: 'non definito', + }, + }, + showbigmap: 'Mostra la mappa più grande', + todo: { + titleprioritymenu: 'Priorità:', + inserttop: 'Inserisci il Task in cima', + insertbottom: 'Inserisci il Task in basso', + edit: 'Descrizione Task:', + completed: 'Ultimi Completati', + usernotdefined: 'Attenzione, occorre essere Loggati per poter aggiungere un Todo', + start_date: 'Data Inizio', + status: 'Stato', + completed_at: 'Data Completamento', + expiring_at: 'Data Scadenza', + phase: 'Fase', + }, + notification: { + status: 'Stato', + ask: 'Attiva le Notifiche', + waitingconfirm: 'Conferma la richiesta di Notifica', + confirmed: 'Notifiche Attivate!', + denied: 'Notifiche Disabilitate! Attenzione così non vedrai arrivarti i messaggi. Riabilitali per vederli.', + titlegranted: 'Permesso Notifiche Abilitato!', + statusnot: 'Stato Notifiche', + titledenied: 'Permesso Notifiche Disabilitato!', + title_subscribed: 'Sottoscrizione a {sitename}!', + subscribed: 'Ora potrai ricevere i messaggi e le notifiche.', + newVersionAvailable: 'Aggiorna', + }, + connection: 'Connessione', + proj: { + newproj: 'Titolo Progetto', + newsubproj: 'Titolo Sotto-Progetto', + insertbottom: 'Inserisci Nuovo Project', + longdescr: 'Descrizione', + hoursplanned: 'Ore Preventivate', + hoursadded: 'Ore Aggiuntive', + hoursworked: 'Ore Lavorate', + begin_development: 'Inizio Sviluppo', + begin_test: 'Inizio Test', + progresstask: 'Progressione', + actualphase: 'Fase Attuale', + hoursweeky_plannedtowork: 'Ore settimanali previste', + endwork_estimate: 'Data fine lavori stimata', + privacyread: 'Chi lo puo vedere:', + privacywrite: 'Chi lo puo modificare:', + totalphases: 'Totale Fasi', + themecolor: 'Tema Colore', + themebgcolor: 'Tema Colore Sfondo', + }, + where: { + code: 'Id', + whereicon: 'Icona', + }, + col: { + label: 'Etichetta', + value: 'Valore', + type: 'Tipo', + }, + cal: { + num: 'Numero', + booked: 'Prenotato', + booked_error: 'Prenotazione non avvenuta. Riprovare più tardi', + sendmsg_error: 'Messaggio non inviato. Riprovare più tardi', + sendmsg_sent: 'Messaggio Inviato', + booking: 'Prenota Evento', + titlebooking: 'Prenotazione', + modifybooking: 'Modifica Prenotazione', + cancelbooking: 'Cancella Prenotazione', + canceledbooking: 'Prenotazione Cancellata', + cancelederrorbooking: 'Cancellazione non effettuata, Riprovare più tardi', + cancelevent: 'Cancella Evento', + canceledevent: 'Evento Cancellato', + cancelederrorevent: 'Cancellazione Evento non effettuata, Riprovare', + event: 'Evento', + starttime: 'Dalle', + nextevent: 'Prossimo Evento', + readall: 'Leggi tutto', + enddate: 'al', + endtime: 'alle', + duration: 'Durata', + hours: 'Orario', + when: 'Quando', + where: 'Dove', + teacher: 'Condotto da', + enterdate: 'Inserisci data', + details: 'Dettagli', + infoextra: 'Date e Ora Extra:', + alldayevent: 'Tutto il giorno', + eventstartdatetime: 'Inizio', + enterEndDateTime: 'Fine', + selnumpeople: 'Partecipanti', + selnumpeople_short: 'Num', + msgbooking: 'Messaggio da inviare', + showpdf: 'Vedi PDF', + bookingtextdefault: 'Prenoto per', + bookingtextdefault_of: 'di', + data: 'Data', + teachertitle: 'Insegnante', + peoplebooked: 'Prenotaz.', + showlastschedule: 'Vedi tutto il Calendario', + }, + msgs: { + message: 'Messaggio', + messages: 'Messaggi', + nomessage: 'Nessun Messaggio', + }, + event: { + _id: 'id', + typol: 'Typology', + short_tit: 'Titolo Breve', + title: 'Titolo', + details: 'Dettagli', + bodytext: 'Testo Evento', + dateTimeStart: 'Data Inizio', + dateTimeEnd: 'Data Fine', + bgcolor: 'Colore Sfondo', + days: 'Giorni', + icon: 'Icona', + img: 'Nomefile Immagine', + img_small: 'Img Piccola', + where: 'Dove', + contribtype: 'Tipo Contributo', + price: 'Contributo', + askinfo: 'Chiedi Info', + showpage: 'Vedi Pagina', + infoafterprice: 'Note dopo la Quota', + teacher: 'Insegnante', // teacherid + teacher2: 'Insegnante2', // teacherid2 + infoextra: 'InfoExtra', + linkpage: 'WebSite', + linkpdf: 'Link ad un PDF', + nobookable: 'Non Prenotabile', + news: 'Novità', + dupId: 'Id Duplicato', + canceled: 'Cancellato', + deleted: 'Eliminato', + duplicate: 'Duplica', + notempty: 'Il campo non può essere vuoto', + modified: 'Modificato', + showinhome: 'Mostra nella Home', + showinnewsletter: 'Mostra nella Newsletter', + color: 'Colore del titolo', + }, + disc: { + typol_code: 'Codice Tipologia', + order: 'Ordinamento', + }, + newsletter: { + title: 'Desideri ricevere la nostra Newsletter?', + name: 'Il tuo Nome', + surname: 'Il tuo Cognome', + namehint: 'Nome', + surnamehint: 'Cognome', + email: 'La tua Email', + submit: 'Iscriviti', + reset: 'Cancella', + typesomething: 'Compilare correttamente il campo', + acceptlicense: 'Accetto la licenza e i termini', + license: 'Devi prima accettare la licenza e i termini', + submitted: 'Iscritto', + menu: 'Newsletter1', + template: 'Modelli Email', + sendemail: 'Invia', + check: 'Controlla', + sent: 'Già Inviate', + mailinglist: 'Lista Contatti', + settings: 'Impostazioni', + serversettings: 'Server', + others: 'Altro', + templemail: 'Modello Email', + datetoSent: 'DataOra Invio', + activate: 'Attivato', + numemail_tot: 'Email Totali', + numemail_sent: 'Email Inviate', + datestartJob: 'Inizio Invio', + datefinishJob: 'Fine Invio', + lastemailsent_Job: 'Ultima Inviata', + starting_job: 'Invio Iniziato', + finish_job: 'Invio Terminato', + processing_job: 'Lavoro in corso', + error_job: 'Info Errori', + statesub: 'Sottoscritto', + wrongerr: 'Email non valida', + }, + privacy_policy: 'Privacy Policy', + cookies: 'Usiamo i Cookie per una migliore prestazione web.', + }, +}; + +export default msg_it; diff --git a/src/statics/lang.old/pt.js b/src/statics/lang.old/pt.js new file mode 100755 index 00000000..7b7a6f07 --- /dev/null +++ b/src/statics/lang.old/pt.js @@ -0,0 +1,638 @@ +const msg_pt = { + pt: { + words: { + da: 'od', + a: 'do', + }, + home: { + guida: 'Guia', + guida_passopasso: 'Guia Passo a Passo', + }, + grid: { + editvalues: 'Modifica Valori', + addrecord: 'Aggiungi Riga', + showprevedit: 'Mostra Eventi Passati', + columns: 'Colonne', + tableslist: 'Tabelle', + nodata: 'Sem Dados', + }, + gallery: { + author_username: 'Utente', + title: 'Titolo', + directory: 'Directory', + list: 'Lista', + }, + otherpages: { + sito_offline: 'Site em actualização', + modifprof: 'Editar Perfil', + biografia: 'Biografia', + error404: 'error404', + error404def: 'error404def', + admin: { + menu: 'Amministrazione', + eventlist: 'Le tue Prenotazioni', + usereventlist: 'Prenotazioni Utenti', + userlist: 'Lista Utenti', + zoomlist: 'Calendario Zoom', + extralist: 'Lista Extra', + dbop: 'Db Operations', + tableslist: 'Lista Tabelle', + navi: 'Navios', + newsletter: 'Newsletter', + pages: 'Pagine', + media: 'Media', + gallery: 'Gallerie', + }, + manage: { + menu: 'Gestione', + manager: 'Gestore', + nessuno: 'Nessuno', + }, + messages: { + menu: 'I tuoi Messaggi', + }, + }, + sendmsg: { + write: 'scrive', + }, + stat: { + imbarcati: 'Abordados', + imbarcati_weekly: 'Abordados semanalmente', + imbarcati_in_attesa: 'abordados em espera', + qualificati: 'Qualificado com pelo menos 2 convidados', + requisiti: 'Utilizadores com os 7 Requisitos', + zoom: 'Participar no Zoom', + Payment_Mode: 'Payment Methods INSERT', + accepted: 'Directrizes + Vídeo aceite', + dream: 'Eles escreveram o Sonho', + email_not_verif: 'Email não verificado', + telegram_non_attivi: 'Telegrama Não Activo', + telegram_pendenti: 'Telegram Pendants', + reg_daily: 'Inscrições diárias', + reg_weekly: 'Inscripciones semanales', + reg_total: 'Inscrições Total', + }, + steps: { + nuovo_imbarco: 'Reservar outra Viagem', + vuoi_entrare_nuova_nave: 'Deseja ajudar o Movimento a avançar e pretende entrar noutro Navio?
    Ao fazer um Novo Presente de 33 euros, poderá viajar outra viagem e ter outra oportunidade de se tornar um Sonhador!
    ' + + 'Se confirmar, será acrescentado à lista de espera para o próximo embarque.', + vuoi_cancellare_imbarco: 'Tem a certeza de que quer cancelar este embarque no navio AYNI?', + completed: 'Completado', + passi_su: '{passo} passos em {totpassi}', + video_intro_1: '1. Bem-vindo ao {sitename}', + video_intro_2: '2. Nascimento do {sitename}', + read_guidelines: 'Eu li e concordo com estes termos escritos acima', + saw_video_intro: 'Declaro ter visto o vídeo', + paymenttype: 'Formas de Pagamento (Revolut)', + paymenttype_long: 'Escolha pelo menos 2 Métodos de pagamento, para trocar presentes.
    As formas de pagamento são:
    • Revolut: o Revolut Prepaid Card com IBAN inglês (fora da UE) completamente gratuito, mais gratuito e fácil de usar. Disponível o aplicativo para mobile.
    • Paypal porque é um sistema muito popular em toda a Europa (a transferência é gratuita) e você pode conectar cartões pré-pagos, cartões de crédito e conta bancária SEM COMISSÕES. Desta forma não terá de partilhar o seu cartão ou números de c/c, mas apenas o e-mail que utilizou durante o registo no Paypal. Disponível o aplicativo para o seu celular.

    • ', + paymenttype_paypal: 'Como abrir uma conta Paypal (em 2 minutos)', + paymenttype_paypal_carta_conto: 'Como associar um cartão de crédito/débito ou conta bancária no PayPal', + paymenttype_paypal_link: 'Abra uma conta no Paypal', + paymenttype_revolut: 'Como abrir a conta com Revolut (em 2 minutos)', + paymenttype_revolut_link: 'Abrir conta com Revolut', + entra_zoom: 'Haz un Zoom', + linee_guida: 'Eu aceito as directrizes', + video_intro: 'Eu vejo o vídeo', + zoom: 'Tenho pelo menos 1 Zoom in', + zoom_si_partecipato: 'Você participou de pelo menos 1 Zoom', + zoom_partecipa: 'Participou em pelo menos 1 Zoom', + zoom_no_partecipato: 'Você ainda não participou de um Zoom (é um requisito para entrar)', + zoom_long: 'É necessário participar em pelo menos 1 Zoom, mas é recomendável participar mais activamente no movimento.

      Ao participar nos Zooms o Staff registará a assistência e você estará habilitado.', + zoom_what: 'Tutorial de como instalar o Zoom Cloud Meeting', + // sharemovement_devi_invitare_almeno_2: 'Você ainda não convidou 2 pessoas', + // sharemovement_hai_invitato: 'Você convidou pelo menos 2 pessoas', + sharemovement_invitati_attivi_si: 'Você tem pelo menos 2 pessoas convidadas Ativo', + sharemovement_invitati_attivi_no: 'Nota:As pessoas que convidaste, para serem Active, têm de ter concluído todos os primeiros 7 Requisitos (ver o teu Lavagna para ver o que lhes falta)', + sharemovement: 'Convite a pelo menos 2 pessoas', + sharemovement_long: 'Partilhe o Movimento {sitename} e convide-os a participar nos Zooms de Boas-vindas para fazer parte desta grande Família 😄 .
      ', + inv_attivi_long: '', + enter_prog_completa_requisiti: 'Preencher todos os requisitos para entrar na lista de embarque.', + enter_prog_requisiti_ok: 'O usuário completou todos os 7 requisitos para entrar na lista de embarque.
      ', + enter_prog_msg: 'Você receberá uma mensagem nos próximos dias, assim que o seu navio estiver pronto!', + enter_prog_msg_2: '', + enter_nave_9req_ok: 'PARABÉNS! Você completou TODOS os 9 passos do Guia! Obrigado por ajudar a {sitename} a Expandir!
      Você poderá partir muito em breve com a sua Jornada, fazendo o seu presente e continuando para o Sonhador.', + enter_nave_9req_ko: 'Lembre-se que você pode ajudar o Movimento a crescer e expandir, compartilhando nossa jornada com todos!', + enter_prog: 'Vou em Lista Programação', + enter_prog_long: 'Satisfeito os requisitos para entrar no Programa, você será adicionado ao Ticket e ao chat do grupo correspondente.
      ', + collaborate: 'Colaboração', + collaborate_long: 'Continuo a trabalhar com os meus companheiros para chegar ao dia em que o meu navio vai zarpar.', + dream: 'Eu escrevo o meu sonho', + dream_long: 'Escreva aqui o Sonho pelo qual você entrou no {sitename} e que deseja realizar.
      Será compartilhado com todos os outros para sonharem juntos !', + dono: 'Presente', + dono_long: 'Eu faço o meu presente na data de partida do meu navio', + support: 'Eu apoio o movimento', + support_long: 'Eu apoio o movimento trazendo energia, participando e organizando o Zoom, ajudando e informando os recém-chegados e continuando a espalhar a visão de {sitename}.', + ricevo_dono: 'Eu recebo meu presente e CELEBRATO', + ricevo_dono_long: 'Viva!!!!
      ESTE MOVIMENTO É REAL E POSSÍVEL SE FABRICARMOS TODOS JUNTOS!!', + }, + dialog: { + continue: 'Continuar', + close: 'Fechar', + copyclipboard: 'Copiado para a prancheta', + ok: 'Ok', + yes: 'Sim', + no: 'Não', + delete: 'Eliminar', + cancel: 'Cancelar', + update: 'Atualização', + add: 'Adicione', + today: 'Hoje', + book: 'Livro', + avanti: 'Avançar', + indietro: 'Voltar', + finish: 'Acabar', + sendmsg: 'Enviar mensagem', + sendonlymsg: 'Envie apenas uma Msg', + msg: { + titledeleteTask: 'Eliminar Tarefa', + deleteTask: 'Eliminar {mytodo}?', + }, + }, + comp: { + Conta: 'Conta', + }, + db: { + recupdated: 'Record Aggiornato', + recfailed: 'Errore durante aggiornamento Record', + reccanceled: 'Annullato Aggiornamento. Ripristinato valore precendente', + deleterecord: 'Elimina Record', + deletetherecord: 'Eliminare il Record?', + deletedrecord: 'Record Cancellato', + recdelfailed: 'Errore durante la cancellazione del Record', + duplicatedrecord: 'Record Duplicato', + recdupfailed: 'Errore durante la duplicazione del Record', + }, + components: { + authentication: { + telegram: { + open: 'Clique aqui para abrir o Telegrama BOT e siga as instruções', + ifclose: 'Se você não abrir o Telegrama clicando no botão ou o apagar, vá até Telegrama e procure {botname} BOTTOM no ícone da lente, então pressione Iniciar e siga as instruções', + openbot: 'Abra {botname} no Telegrama', + }, + login: { + facebook: 'Facebook', + }, + email_verification: { + title: 'Comece a sua gravação', + introduce_email: 'insira o seu e-mail', + email: 'Email', + invalid_email: 'O seu e-mail é inválido', + verify_email: 'Verifique o seu e-mail', + go_login: 'Back to Login', + incorrect_input: 'Incorrect_input.', + link_sent: 'Abra a sua caixa de entrada, encontre o e-mail "Confirmar Registo para {sitename}" e clique em "Verificar Registo"', + se_non_ricevo: 'Se você não receber o e-mail, tente checar spam, ou entre em contato conosco', + title_unsubscribe: 'Subscribe to the newsletter', + title_unsubscribe_done: 'Desregisto completado corretamente', + }, + }, + }, + fetch: { + errore_generico: 'Erro genérico', + errore_server: 'Não é possível aceder ao Servidor. Tente novamente Obrigado.', + error_doppiologin: 'Faça o login novamente. Acesso aberto a partir de outro dispositivo.', + }, + user: { + notregistered: 'Você tem que se registrar para o serviço antes de trazer os dados', + loggati: 'Usuário não logado', + }, + templemail: { + subject: 'Oggetto Email', + testoheadermail: 'Intestazione Email', + content: 'Contenuto', + img: 'Immagine 1', + img2: 'Immagine 2', + content2: 'Contenuto 2', + options: 'Opzioni', + }, + dashboard: { + data: 'Datum', + data_rich: 'Data Pedido', + ritorno: 'Regresso', + invitante: 'Convidados', + num_tessitura: 'Numero di Tessitura:', + attenzione: 'Atenção', + downline: 'Convidados', + downnotreg: 'Convidados não registados', + notreg: 'Não Registado', + inv_attivi: 'Convidado com os 7 Requisitos', + numinvitati: 'Pelo menos 2 convidados', + telefono_wa: 'Contato no Whatsapp', + sendnotification: 'Enviar Notificação ao Destinatário no Telegrama BOT', + ricevuto_dono: '😍🎊 Você recebeu um convite de presente {invitato} de {mittente} !', + ricevuto_dono_invitante: '😍🎊 Você recebeu um Convidados de presente de {mittente} !', + nessun_invitante: 'Sem Convite', + nessun_invitato: 'Sem Convidados', + legenda_title: 'Clique no nome do convidado para ver o status de seus Requisitos', + nave_in_partenza: 'em Partida em', + nave_in_chiusura: 'Encerramento Gift Chat', + nave_partita: 'que partiu em', + tutor: 'Tutor', + /* Quando você se torna um mediador, um TUTOR entra em contato com você, e deve:
      ' + + '
      1. Abrir seu bate-papo do presente (você como proprietário e o tutor como administrador) com este nome:
        {nomenave}
      2. ' + + '
      3. Clique no nome do bate-papo na parte superior - > Editar -> Administradores -> "Adicionar administrador", selecione o Tutor na lista.
      4. ' + + '
      5. Você deve configurar o bate-papo de forma que quem entra depois também veja as postagens anteriores (clique no nome do bate-papo na parte superior, clique em editar' + + ' altere o "histórico de novos membros" de oculto para visível.
      6. ' + + '
      7. Para encontrar o link Bate-papo Recém-criado: Clique no nome do bate-papo na parte superior, clique no lápis -> "Tipo de grupo" -> "Convidar grupo via link", clique em "Copiar link" e cole-o abaixo' + + ', na caixa "Link do bate-papo para presente"'+ + 'Envie o link do bate-papo para presente a todos os doadores, clicando no botão abaixo.
      ', + */ + sonomediatore: 'Quando você for um MEDIATOR será contactado por TUTOR AYNI através de uma mensagem no Chat AYNI BOT.', + superchat: 'Nota: SOMENTE se tiver problemas de PAGAMENTO, ou se quiser ser REPRESENTADO, dois Tutores estão à espera para o ajudar no Chat:
      a href="{link_superchat}" target="_blank">Entre no Gift Chat.', + sonodonatore: '
      1. Quando você estiver nessa posição, você será convidado (por meio de uma mensagem em AYNI BOT) a entrar em um bate-papo de presentes (Telegram) e aqui também encontrará os outros 7 doadores, o mediador, o sonhador e um representante da equipe.
      2. ' + + '
      3. Você terá 3 dias para entrar no bate-papo para fazer seu presente.
      ', + soydonante_secundo_tejido: '
      1. Aqui você é Mediador e também Doador, mas sendo o segundo Tecido, você não terá que fazer seu presente novamente
      ', + controlla_donatori: 'Verifique a Lista de Doadores', + link_chat: 'Links de telegramas para o Gift Chat', + tragitto: 'Rota', + nave: 'Navio', + data_partenza: 'Data
      de saída', + doni_inviati: 'Donativos
      enviados', + nome_dei_passaggi: 'Nomes
      de Passos', + donatori: 'Doadores', + donatore: 'Doadore', + mediatore: 'Ombudsman', + sognatore: 'Sonhador', + sognatori: 'Sonhadores', + intermedio: 'INTERMEDIAR', + pos2: 'Interm. 2', + pos3: 'Interm. 3', + pos5: 'Interm. 5', + pos6: 'Interm. 6', + gift_chat: 'Para entrar no Gift Chat, clique aqui', + quando_eff_il_tuo_dono: 'Quando dar o Presente', + entra_in_gift_chat: 'Entre no Gift Chat', + invia_link_chat: 'Enviar link para o Gift Chat aos Doadores', + inviare_msg_donatori: '5) Enviar mensagem aos doadores', + msg_donatori_ok: 'Mensagem enviada aos Doadores', + metodi_disponibili: 'Métodos disponíveis', + importo: 'Importo', + effettua_il_dono: 'Chegou o momento de fazer o seu Presente o Sonhador
      👉 {sognatore} 👈 !
      ' + + 'Enviar via PayPal para: {email}
      ' + + 'AVISO: Escolha a opção "SENDING TO A FRIEND".)
      ', + paypal_me: '
      2) Método Simplificado
      Click directamente aqui>br>' + + 'abrirá o PayPal com o montante e o destinatário já definidos.
      ' + + 'Adicionar como mensagem: Presente>br>' + + 'AVISO: NÃO SELECCIONAR A CAIXA: Protecção de compras Paypal
      ' + + 'Se tiver alguma dúvida, veja o vídeo abaixo para ver como:
      ' + + 'Finalmente clique em "Enviar dinheiro agora"', + qui_compariranno_le_info: 'No dia da partida do Navio, a informação do Sonhador aparecerá', + commento_al_sognatore: 'Escreva aqui um comentário para o Sonhador:', + posizione: 'Localização', + come_inviare_regalo_con_paypal: 'Como enviar o presente via Paypal', + ho_effettuato_il_dono: 'Eu fiz o Presente', + clicca_conferma_dono: 'Clique aqui para confirmar que você fez o seu presente', + fatto_dono: 'Você confirmou que o presente foi enviado', + confermi_dono: 'Confirme que você enviou o seu Presente de 33€', + dono_ricevuto: 'O seu Presente foi Recebido!', + dono_ricevuto_2: 'Recebido', + dono_ricevuto_3: 'Chegou!', + confermi_dono_ricevuto: 'Por favor, confirme que você recebeu o presente de 33€ de {donatore}', + confermi_dono_ricevuto_msg: 'Confirmado de que você recebeu o Presente de 33€ de {donatore}', + msg_bot_conferma: '{donatore} confirmou que ele enviou o seu Presente de 33€ a {sognatore} (Commento: {commento})', + ricevuto_dono_ok: 'Você confirmou que o presente foi recebido', + entra_in_lavagna: 'Entre no seu quadro negro para ver os navios que partem', + doni_ricevuti: 'Presentes Recebidos', + doni_inviati_da_confermare: 'Presentes enviados (a serem confirmados)', + doni_mancanti: 'Presentes em falta', + temporanea: 'Temporário', + nave_provvisoria: 'Foi-lhe atribuído um NAVIO TEMPORÁRIO.
      É normal que veja uma alteração na data de partida, devido à actualização da classificação dos passageiros', + ritessitura: 'ESCRITENDO', + }, + reg: { + volta: 'vez', + volte: 'vezes', + registered: 'Registrato', + contacted: 'Contattato', + name_complete: 'Nome Completo', + num_invitati: 'Num.Invitati', + is_in_whatsapp: 'In Whatsapp', + is_in_telegram: 'In Telegram', + cell_complete: 'Cellulare', + failed: 'Fallito', + ind_order: 'Num', + ipaddr: 'IP', + verified_email: 'E-mail verificado', + you: 'Tu', + cancella_invitato: 'Eliminar Convidado', + regala_invitato: 'Presente Convidado', + regala_invitante: 'Presente Convite', + messaggio_invito: 'Mensagem de Convite', + messaggio_invito_msg: 'Envie esta mensagem a todos aqueles para quem você quer compartilhar este Movimento !', + videointro: 'Vídeo Introdutório', + invitato_regalato: 'Presente Convidado', + invitante_regalato: 'Convite Convidado', + legenda: 'Lenda', + aportador_solidario: 'Quem o convidou', + username_regala_invitato: 'Nome de utilizador do destinatário do presente', + aportador_solidario_nome_completo: 'Nominativo Invitante', + aportador_solidario_nome_completo_orig: 'Invitante Originario', + aportador_solidario_ind_order: 'Num Invitante', + already_registered: '', + reflink: 'Links para partilhar com os seus convidados:', + linkzoom: 'Ligações para Zoom in:', + page_title: 'Inscrição', + made_gift: 'Presente', + note: 'Note', + incorso: 'Inscrição em curso...', + richiesto: 'Campo Requerido', + email: 'Email', + intcode_cell: 'Int. prefixo', + cell: 'Celular', + cellreg: 'Cellulare con cui ti eri registrato', + nationality: 'Nacionalidade', + email_paypal: 'Email Paypal', + revolut: 'Revolut', + link_payment: 'Ligações Paypal.me', + note_payment: 'Notas Adicionais', + country_pay: 'País de destino dos pagamentos', + username_telegram: 'Username Telegram', + telegram: 'Chat Telegram \'{botname}\'', + teleg_id: 'Telegram ID', + teleg_id_old: 'OLD Tel ID', + teleg_auth: 'Código de Autorização', + click_per_copiare: 'Clique sobre ele para copiá-lo para a área de transferência', + copia_messaggio: 'Copiar Mensagem', + teleg_torna_sul_bot: '1) Copie o código clicando no botão acima
      2) retorne ao {botname} clicando em 👇 e cole (ou escreva) o código', + teleg_checkcode: 'Código Telegram', + my_dream: 'O Meu Sonho', + saw_and_accepted: 'Condizioni', + saw_zoom_presentation: 'Ha visto Zoom', + manage_telegram: 'Gestori Telegram', + paymenttype: 'Formas de Pagamento disponíveis (Revolut)', + selected: 'Selezionati', + img: 'Immagine', + date_reg: 'Data Reg.', + requirement: 'Requisitos', + perm: 'Permissão', + username: 'Username (Pseudônimo)', + username_short: 'Username', + name: 'Nome', + surname: 'Apelido', + username_login: 'Username ou email', + password: 'Senha', + repeatPassword: 'Repita a senha', + terms: 'Eu aceito os termos de privacidade', + onlyadult: 'Confirmo que sou maior de idade', + submit: 'Registar', + title_verif_reg: 'Verificação de Registro', + reg_ok: 'Registo efectuado com sucesso', + verificato: 'Verificado', + non_verificato: 'Não verificado', + forgetpassword: 'Esqueceu sua senha?', + modificapassword: 'Alterar Palavra-passe', + err: { + required: 'é obrigatório', + email: 'digite um e-mail válido', + errore_generico: 'Por favor preencha os campos corretamente', + atleast: 'deve ser pelo menos', + complexity: 'deve conter pelo menos 1 letra minúscula, 1 capital, 1 dígito', + notmore: 'não deve ser maior do que', + char: 'caracteres', + terms: 'Você deve aceitar as condições, para continuar', + email_not_exist: 'o Email não está presente no arquivo, verifique se está correcto', + duplicate_email: 'o e-mail já foi registrado', + user_already_exist: 'O registo com estes dados (nome, apelido e telemóvel) já foi feito. Para acessar o site, clique no botão LOGIN da HomePage.', + user_extralist_not_found: 'Utilizador no arquivo não encontrado, introduza o Nome, Apelido e número de telemóvel comunicado na lista em 2019. Se este for um novo registo, deve registar-se através do LINK de quem o está a convidar.', + user_not_this_aportador: 'Estás a usar um link de alguém que não o teu convidado original', + duplicate_username: 'O nome de usuário já foi usado', + username_not_valid: 'Username not valid', + aportador_not_exist: 'O nome de usuário da pessoa que o convidou não está presente. Por favor, contacte-nos.', + aportador_regalare_not_exist: 'Digite o nome de usuário da pessoa que você quer dar ao convidado como presente', + sameaspassword: 'As senhas devem ser idênticas', + }, + tips: { + email: 'insira o seu e-mail', + username: 'nome de usuário com pelo menos 6 caracteres', + password: 'deve conter 1 letra minúscula, 1 capital e 1 dígito', + repeatpassword: 'senha de repetição', + }, + }, + op: { + qualification: 'Qualifica', + usertelegram: 'Username Telegram', + disciplines: 'Discipline', + certifications: 'Certificazioni', + intro: 'Introduzione', + info: 'Biografia', + webpage: 'Pagina Web', + days_working: 'Giorni Lavorativi', + facebook: 'Pagina Facebook', + }, + login: { + page_title: 'Login', + incorso: 'Iniciar Sessão', + enter: 'Entrar', + esci: 'Saia', + errato: 'Username ou senha errados". Por favor, tente novamente', + subaccount: 'Esta conta foi fundida com a sua conta inicial. Entre utilizando o nome de utilizador (e e-mail) da conta FIRST.', + completato: 'Login concluído!', + needlogin: 'Você deve fazer o login antes de continuar', + }, + reset: { + title_reset_pwd: 'Redefinir sua senha', + send_reset_pwd: 'Enviar senha de reinicialização', + incorso: 'pedido de um novo e-mail', + email_sent: 'Email enviado', + check_email: 'Verifique seu e-mail, você receberá uma mensagem com um link para redefinir sua senha. Esta ligação, por segurança, expirará após 4 horas.', + token_scaduto: 'O token expirou ou já foi usado. Repita o procedimento de redefinição de senha', + title_update_pwd: 'Atualize sua senha', + update_password: 'Actualizar Palavra-passe', + }, + logout: { + uscito: 'Você está fora', + }, + errors: { + graphql: { + undefined: 'non definito', + }, + }, + showbigmap: 'Mostra la mappa più grande', + todo: { + titleprioritymenu: 'Priorità:', + inserttop: 'Inserisci il Task in cima', + insertbottom: 'Inserisci il Task in basso', + edit: 'Descrizione Task:', + completed: 'Ultimi Completati', + usernotdefined: 'Attenzione, occorre essere Loggati per poter aggiungere un Todo', + start_date: 'Data Inizio', + status: 'Stato', + completed_at: 'Data Completamento', + expiring_at: 'Data Scadenza', + phase: 'Fase', + }, + notification: { + status: 'Stato', + ask: 'Attiva le Notifiche', + waitingconfirm: 'Conferma la richiesta di Notifica', + confirmed: 'Notifiche Attivate!', + denied: 'Notifiche Disabilitate! Attenzione così non vedrai arrivarti i messaggi. Riabilitali per vederli.', + titlegranted: 'Permesso Notifiche Abilitato!', + statusnot: 'Stato Notifiche', + titledenied: 'Permesso Notifiche Disabilitato!', + title_subscribed: 'Sottoscrizione a FreePlanet.app!', + subscribed: 'Ora potrai ricevere i messaggi e le notifiche.', + newVersionAvailable: 'Aggiorna', + }, + connection: 'Connessione', + proj: { + newproj: 'Titolo Progetto', + newsubproj: 'Titolo Sotto-Progetto', + insertbottom: 'Inserisci Nuovo Project', + longdescr: 'Descrizione', + hoursplanned: 'Ore Preventivate', + hoursadded: 'Ore Aggiuntive', + hoursworked: 'Ore Lavorate', + begin_development: 'Inizio Sviluppo', + begin_test: 'Inizio Test', + progresstask: 'Progressione', + actualphase: 'Fase Attuale', + hoursweeky_plannedtowork: 'Ore settimanali previste', + endwork_estimate: 'Data fine lavori stimata', + privacyread: 'Chi lo puo vedere:', + privacywrite: 'Chi lo puo modificare:', + totalphases: 'Totale Fasi', + themecolor: 'Tema Colore', + themebgcolor: 'Tema Colore Sfondo', + }, + where: { + code: 'Id', + whereicon: 'Icona', + }, + col: { + label: 'Etichetta', + value: 'Valore', + type: 'Tipo', + }, + cal: { + num: 'Numero', + booked: 'Prenotato', + booked_error: 'Prenotazione non avvenuta. Riprovare più tardi', + sendmsg_error: 'Messaggio non inviato. Riprovare più tardi', + sendmsg_sent: 'Messaggio Inviato', + booking: 'Prenota Evento', + titlebooking: 'Prenotazione', + modifybooking: 'Modifica Prenotazione', + cancelbooking: 'Cancella Prenotazione', + canceledbooking: 'Prenotazione Cancellata', + cancelederrorbooking: 'Cancellazione non effettuata, Riprovare più tardi', + cancelevent: 'Cancella Evento', + canceledevent: 'Evento Cancellato', + cancelederrorevent: 'Cancellazione Evento non effettuata, Riprovare', + event: 'Evento', + starttime: 'Dalle', + nextevent: 'Prossimo Evento', + readall: 'Leggi tutto', + enddate: 'al', + endtime: 'alle', + duration: 'Durata', + hours: 'Orario', + when: 'Quando', + where: 'Dove', + teacher: 'Condotto da', + enterdate: 'Inserisci data', + details: 'Dettagli', + infoextra: 'Date e Ora Extra:', + alldayevent: 'Tutto il giorno', + eventstartdatetime: 'Inizio', + enterEndDateTime: 'Fine', + selnumpeople: 'Partecipanti', + selnumpeople_short: 'Num', + msgbooking: 'Messaggio da inviare', + showpdf: 'Vedi PDF', + bookingtextdefault: 'Prenoto per', + bookingtextdefault_of: 'di', + data: 'Data', + teachertitle: 'Insegnante', + peoplebooked: 'Prenotaz.', + showlastschedule: 'Vedi tutto il Calendario', + }, + msgs: { + message: 'Messaggio', + messages: 'Messaggi', + nomessage: 'Nessun Messaggio', + }, + event: { + _id: 'id', + typol: 'Typology', + short_tit: 'Titolo Breve', + title: 'Titolo', + details: 'Dettagli', + bodytext: 'Testo Evento', + dateTimeStart: 'Data Inicial', + dateTimeEnd: 'Data Fine', + bgcolor: 'Colore Sfondo', + days: 'Giorni', + icon: 'Icona', + img: 'Nomefile Immagine', + img_small: 'Img Piccola', + where: 'Dove', + contribtype: 'Tipo Contributo', + price: 'Contributo', + askinfo: 'Chiedi Info', + showpage: 'Vedi Pagina', + infoafterprice: 'Note dopo la Quota', + teacher: 'Insegnante', // teacherid + teacher2: 'Insegnante2', // teacherid2 + infoextra: 'InfoExtra', + linkpage: 'WebSite', + linkpdf: 'Link ad un PDF', + nobookable: 'Non Prenotabile', + news: 'Novità', + dupId: 'Id Duplicato', + canceled: 'Cancellato', + deleted: 'Eliminato', + duplicate: 'Duplica', + notempty: 'Il campo non può essere vuoto', + modified: 'Modificato', + showinhome: 'Mostra nella Home', + showinnewsletter: 'Mostra nella Newsletter', + color: 'Colore del titolo', + }, + disc: { + typol_code: 'Codice Tipologia', + order: 'Ordinamento', + }, + newsletter: { + title: 'Desideri ricevere la nostra Newsletter?', + name: 'Il tuo Nome', + surname: 'Il tuo Cognome', + namehint: 'Nome', + surnamehint: 'Cognome', + email: 'La tua Email', + submit: 'Iscriviti', + reset: 'Cancella', + typesomething: 'Compilare correttamente il campo', + acceptlicense: 'Accetto la licenza e i termini', + license: 'Devi prima accettare la licenza e i termini', + submitted: 'Iscritto', + menu: 'Newsletter1', + template: 'Modelli Email', + sendemail: 'Invia', + check: 'Controlla', + sent: 'Già Inviate', + mailinglist: 'Lista Contatti', + settings: 'Impostazioni', + serversettings: 'Server', + others: 'Altro', + templemail: 'Modello Email', + datetoSent: 'DataOra Invio', + activate: 'Attivato', + numemail_tot: 'Email Totali', + numemail_sent: 'Email Inviate', + datestartJob: 'Inizio Invio', + datefinishJob: 'Fine Invio', + lastemailsent_Job: 'Ultima Inviata', + starting_job: 'Invio Iniziato', + finish_job: 'Invio Terminato', + processing_job: 'Lavoro in corso', + error_job: 'Info Errori', + statesub: 'Sottoscritto', + wrongerr: 'Email non valida', + }, + privacy_policy: 'Política de Privacidade', + cookies: 'Nós usamos Cookies para um melhor desempenho na web.', + }, +}; + +export default msg_pt; diff --git a/src/statics/lang.old/si.js b/src/statics/lang.old/si.js new file mode 100755 index 00000000..64d713f5 --- /dev/null +++ b/src/statics/lang.old/si.js @@ -0,0 +1,533 @@ +const msg_si = { + si: { + words: { + da: 'da', + a: 'a', + }, + home: { + guida: 'Vodnik', + guida_passopasso: 'Vodnik po korakih', + }, + grid: { + editvalues: 'Modifica Valori', + addrecord: 'Aggiungi Riga', + showprevedit: 'Pokaži pretekle dogodke', + columns: 'Vrstice', + tableslist: 'Tabele', + nodata: 'Noben podatek', + }, + gallery: { + author_username: 'Utente', + title: 'Naziv', + directory: 'Directory', + list: 'Lista', + }, + otherpages: { + sito_offline: 'Spletno mesto se posodablja', + modifprof: 'Uredi pProfil', + biografia: 'Biografia', + update: 'Posodobitev v teku...', + error404: 'error404', + error404def: 'error404def', + admin: { + menu: 'Administracija', + eventlist: 'Vaše rezervacije', + usereventlist: 'Uporabniške rezervacije', + userlist: 'Seznam uporabnikov', + zoomlist: 'Zoom koledar', + extralist: 'Dodatni seznam', + dbop: 'Operacije Db', + tableslist: 'Seznam tabel', + navi: 'Ladje', + listadoni_navi: 'Seznam daril ladjic', + newsletter: 'Novosti', + pages: 'Strani', + media: 'Mediji', + gallery: 'Galerije', + }, + manage: { + menu: 'Upravljanje', + manager: 'Upravitelj', + nessuno: 'Noben', + }, + messages: { + menu: 'Vaša sporočila', + }, + }, + sendmsg: { + write: 'napiši', + }, + stat: { + imbarcati: 'Vkrcavanje', + imbarcati_weekly: 'Vkrcavanje tedenske', + imbarcati_in_attesa: 'Vkrcavanje čaka', + qualificati: 'Kvalificirajte se z vsaj dvema gostoma', + requisiti: 'Uporabniki s 7 zahtevami', + zoom: 'Sodeloval pri Zoomu', + modalita_pagamento: 'Vneseni načini plačila', + accepted: 'Sprejete smernice + videoposnetki', + dream: 'Napisali svoje Sanje', + email_not_verif: 'Nepreverjena e-pošta', + telegram_non_attivi: 'Telegram ni aktiven', + telegram_pendenti: 'Čakajoči Telegram', + reg_daily: 'Dnevne registracije', + reg_weekly: 'Tedenske prijave', + reg_total: 'Skupne registracije', + }, + steps: { + nuovo_imbarco: 'Rezerviraj še eno potovanje', + vuoi_entrare_nuova_nave: 'Želis pomagati Gibanju, napredovati in vstopiti v še eno\novo Ladjico?
      Z novim vplačilom 33€, lahko pričneš novo potovanje in tako dobiš še eno priložnost, da postaneš Sanjač!
      ' + + 'Če potrdiš boš dodan na seznam čakajočih za vkrcavanje.', + vuoi_cancellare_imbarco: 'Ali ste prepričani, da želite izbrisati vaš vstop v Ladjo Ayni?', + completed: 'zaključen', + passi_su: '{passo} od {totpassi} koraki', + video_intro_1: '1. Dobrodošli v {sitename}', + video_intro_2: '2. Rojstvo {sitename}', + read_guidelines: 'Sem prebral in sprejel napisal zgornje pogoje', + saw_video_intro: 'Izjavljam, da sem pogledal videoposnetke', + paymenttype: 'Načini plačila (Revolut)', + paymenttype_long: ' Načini plačila so:
      • Revolut : predplačniška kartica Revolut z angleškim IBAN (zunaj EU) popolnoma brezplačna, svobodnejša in enostavnejša za uporabo. Na voljo je aplikacija za mobilne naprave.
      • Paypal ker gre za zelo pogost sistem po vsej Evropi (prenos je brezplačen ) kjer lahko povežete predplačniške kartice, kreditne kartice ali tekoči račun BREZ KOMISIJ . Na ta način vam ne bo treba deliti številk svojih kartic ali c / c, ampak samo e-pošto, ki ste jo uporabili pri prijavi na Paypal. Mobilna aplikacija je na voljo.
      ', + paymenttype_long2: 'Paypal je potreben
      Za izmenjavo daril priporočamo, da imate na voljo vsaj 2 načina plačila .', + paymenttype_paypal: 'Kako odpreti Paypal račun (v 2 minutah)', + paymenttype_paypal_carta_conto: 'Kako povezati kreditno / debetno kartico ali bančni račun na PayPal', + paymenttype_paypal_link: 'Odprite račun s Paypalom', + paymenttype_revolut: 'Kako odpreti račun z Revolutom (v 2 minutah)', + paymenttype_revolut_link: 'Odprite račun z Revolutom', + entra_zoom: 'Vstopi v Zoom', + linee_guida: 'Sprejemam smernice', + video_intro: 'Pogledam video', + zoom: 'Sodelujem pri vsaj 1 zoomu', + zoom_si_partecipato: 'Udeležili ste se vsaj 1-ga zooma', + zoom_partecipa: 'Sodeloval je v vsaj 1-em Zoomu', + zoom_no_partecipato: 'Še niste sodelovali pri zoomu (zahteva, da lahko vstopite)', + zoom_long: 'Potrebno je sodelovati pri vsaj enem zoomu, vendar je priporočljivo, da se v gibanje vključite bolj aktivno.

      \n' + + ' Osebje bo s sodelovanjem v zoomih beležilo udeležbe in vam bo omogočeno. ', + zoom_what: 'Navodila, kako namestiti Zoom Cloud Meeting', + // sharemovement_devi_invitare_almeno_2: 'Nisi še vpisal 2-eh oseb', + // sharemovement_hai_invitato: 'Si vpisaj vsaj 2 osebi', + sharemovement_invitati_attivi_si: 'Imate vsaj 2 aktivna povabljena', + sharemovement_invitati_attivi_no: ' Opomba: Osebe, ki ste jih povabili, da so aktivni , morajo imeti izpolnjene vseh prvih 7 zahtev (glejte Belo tablo če želite razumeti, kaj manjka)', + sharemovement: 'Delim gibanje', + sharemovement_long: 'Delite gibanje {sitename} in jih povabite, da sodelujejo v zoomih dobrodošlice, da postanejo del te velike družine 😄 .
      ', + inv_attivi_long: '', + enter_prog_completa_requisiti: 'Izpolnite vse potrebne zahteve, da lahko vstopite na seznam za vstop.', + enter_prog_requisiti_ok: 'Izpolnili ste vseh 7 zahtev za vpis na vstopni seznam.
      ', + enter_prog_msg: 'V naslednjih dneh boste takoj, ko bo vaša ladja pripravljena, prejeli sporočilo!', + enter_prog_msg_2: '', + enter_nave_9req_ok: 'ČESTITKE! Izpolnili ste VSE 9 korakov! Hvala, ker ste pomagali {sitename} pri razširitvi!
      Zelo kmalu boste lahko odšli na potovanje, si priskrbeli darilo in nadaljevali proti sanjaču ', + enter_nave_9req_ko: 'Ne pozabite, da lahko pomagate rasti in razširiti gibanje, tako da svoje potovanje delite z drugimi!', + enter_prog: 'Vpišem se na Seznam vkrcavanja', + enter_prog_long: 'Ne pozabite, da lahko pomagate rasti in razširiti gibanje, tako da svoje potovanje delite z drugimi!
      ', + collaborate: 'sodelovanje', + collaborate_long: 'Še naprej sodelujem s spremljevalci, da bi prišel do dneva, ko bo moja ladja priplula.', + dream: 'Pišem svoje sanje', + dream_long: 'Tu napišite sanje, zaradi katerih ste vstopili v {sitename} in jih želite izpolniti.
      Z drugimi bomo delili, da bomo sanjali skupaj !', + dono: 'Darilo', + dono_long: 'Darilo vročim na datum odhoda svoje ladje', + support: 'Podpiram gibanje', + support_long: 'Gibanje podpiram z vključevanjem energije, sodelovanjem in organiziranjem Zooma, pomaganjem in obveščam novincev z nadaljnjim širjenjem {sitename} vizije', + ricevo_dono: 'Prejmem svoje darilo in POČAS', + ricevo_dono_long: 'Ura !!!
      TO GIBANJE JE resnično in možno, če vsi delamo SKUPAJ!', + }, + dialog: { + continue: 'Naprej', + close: 'Zapri', + copyclipboard: 'Kopirano v odložišče', + ok: 'Ok', + yes: 'Da', + no: 'Ne', + delete: 'Izbriši', + cancel: 'Preklic', + update: 'Osveži', + add: 'Dodaj', + today: 'Danes', + book: 'Knjiga', + avanti: 'Naslednja', + indietro: 'Nazaj', + finish: 'konec', + sendmsg: 'Pošlji sporočilo', + sendonlymsg: 'Pošlji samo eno sporočilo', + msg: { + titledeleteTask: 'Izbriši nalogo', + deleteTask: 'Želite izbrisati {mytodo}?', + }, + }, + comp: { + Conta: 'CountPreštejte', + }, + db: { + recupdated: 'Posnetek posodobljen', + recfailed: 'Napaka pri posodabljanju zapisa', + reccanceled: 'Preklicana posodobitev. Obnovi prejšnjo vrednost', + deleterecord: 'Izbriši zapis', + deletetherecord: 'Želiš završti zapis?', + deletedrecord: 'Zapis je izbrisan', + recdelfailed: 'Napaka med brisanjem zapisa', + duplicatedrecord: 'Podvojen zapis', + recdupfailed: 'Napaka med podvajanjem zapisa', + }, + components: { + authentication: { + telegram: { + open: 'Kliknite tukaj, da odprete BOT Telegram in sledite navodilom', + ifclose: 'Če se Telegram ne odpre s klikom na gumb ali ste ga izbrisali, pojdite na Telegram in poiščite \'{botname}\' na ikoni leče, nato pritisnite Start in sledite navodilom.', + openbot: 'Odprite "{botname}" na Telegramu', + }, + login: { + facebook: 'Facebook', + }, + email_verification: { + title: 'tzačnite registracijo', + introduce_email: 'vnesite svoj e-poštni naslov', + email: 'E-pošta', + invalid_email: 'Vaša e-pošta ni veljavna', + verify_email: 'Preverite e-pošto', + go_login: 'Vrnitev v prijavo', + incorrect_input: 'Nepravilna vstavitev.', + link_sent: 'Odprite nabiralnik, poiščite e-poštno sporočilo "Potrdi prijavo {sitename}" in kliknite "Preveri registracijo"', + se_non_ricevo: 'Če ne prejmete e-pošte, poskusite preveriti v neželeni pošti ali nas kontaktirajte', + title_unsubscribe: 'Odjavite se iz glasila', + title_unsubscribe_done: 'Odjava se je uspešno zaključila', + }, + }, + }, + fetch: { + errore_generico: 'Splošna napaka', + errore_server: 'Do strežnika ni mogoče dostopati. Poskusite znova. Hvala', + error_doppiologin: 'Ponovno se prijavite. Dostop je bil odprt iz druge naprave.', + }, + user: { + notregistered: 'Preden lahko shranite svoje podatke, se morate registrirati za storitev', + loggati: 'Uporabnik ni prijavljen', + }, + dashboard: { + data: 'Datum', + data_rich: 'Zahtevani datum', + ritorno: 'Vrnitev', + invitante: 'povabljenca', + num_tessitura: 'Numero di Tessitura:', + attenzione: 'Pozornosti', + downline: 'povabljen', + downnotreg: 'Neregistrirani gostje', + notreg: 'Ni registrirano', + inv_attivi: 'Povabljeni s 7 zahtevami', + numinvitati: 'Z vsaj 2-emi povabljenici', + telefono_wa: 'Pišite na Whatsapp', + sendnotification: 'Obvestilo pošljite prejemniku na Telegram BOT', + ricevuto_dono: '😍🎊 Prejeli ste darilo {invitato} kot darilo od {mittente} !', + ricevuto_dono_invitante: '😍🎊 Prejeli ste povabljenca kot darilo od {mittente} !', + nessun_invitante: 'Nobenega povabljenega', + nessun_invitato: 'Ni gostov', + legenda_title: 'Kliknite na povabljeno ime, da si ogledate stanje njihovih zahtev.', + nave_in_partenza: 'ladja v odhodu', + nave_in_chiusura: 'Zapiranje Gift- Darilni klepet', + nave_partita: 'levo naprej', + tutor: 'Tutor', + /* Ko postaneš Mediator te kontaktira en TUTOR, z njim moraš:
        ' + + '
      1. Odpret svoj Gift- Darilni klepet (ti kot lastnik in Tutor ' + + 'kot administrator) s tem imenom:
        {nomenave}
      2. ' + + '
      3. Klikni na ime klepeta na vrhu-> Popravi -> Administratorji -> "Dodaj Administratorja", izberi Tutorja v imeniku.
      4. ' + + '
      5. Moraš nastaviti klepet na način, da vsak, ki vstopi vidi predhodne objave(klikni na ime klepeta na vrhu, klikni na popravi, ' + + 'spremeni "zgodovina za nove člane" iz skrite v vidno.
      6. ' + + '
      7. Da najdeš link pravkar ustvarjenega klepeta : klikni na ime klepeta na vrhu, klikni na svinčnik -> "Vrsta Skupine" -> "z linkom povabi v skupino", klikni na"kopiraj link" in prilepi tu spodaj, v okvir"Link Gift Klepet"
      8. ' + + '
      9. Pošlji Link Gift Klepeta vsem Donatorjem, tako, da klikneš na spodnji gumb.
      ', + */ + sonomediatore: 'Ko ste MEDIATOR, vas bo TUTOR AYNI poklical preko sporočila na klepetu AYNI BOT', + superchat: 'Pozorno preberi: SAMO če imaš težave s PLAČILOM, ali želiš biti ZAMENJAN, te dva Tutorja pričakujeta, da ti lahko pomagata v Klepetu:
      Vstopi v Super Klepet', + sonodonatore: '
      1. Ko si na tej poziciji, boš povabljen, da vstopiš v Gift Klepet (Telegram) in tam boš našel še ostalih 7 Donatorjev, Mediatorja, Sanjača in enega predstavnika Tima.
      2. ' + + '
      3. Imel boš 3 dni časa v za izpeljati vplačilo.
      ', + sonodonatore_seconda_tessitura: '
      1. Tu si istočasno Mediator in Donator. Ker je to tvoj avtomatičen vpis, ti ni sedaj potrebno vplačati!
      ', + controlla_donatori: 'Preverite seznam donatorjev', + link_chat: 'Povezava telegrama darilnega klepeta', + tragitto: 'Potovanje', + nave: 'Ladja', + data_partenza: 'Datum
      odhoda', + doni_inviati: 'Darila
      poslana', + nome_dei_passaggi: 'Ime
      prehodov', + donatori: 'Donator', + donatore: 'Donator', + mediatore: 'Mediator', + sognatore: 'Sanjač', + sognatori: 'Sanjači', + intermedio: 'POTNIK', + pos2: 'Interm. 2', + pos3: 'Interm. 3', + pos5: 'Interm. 5', + pos6: 'Interm. 6', + gift_chat: 'Za vstop v Gift Klepet,klikni tu', + quando_eff_il_tuo_dono: 'Ko izpelješ vplačilo', + entra_in_gift_chat: 'Vstopi v Gift Klepet', + invia_link_chat: 'Pošlji link Gift Klepeta Donatorjem', + inviare_msg_donatori: '5) Pošlji sporočilo Donatorjem', + msg_donatori_ok: 'Poslano sporočilo Donatorjem', + metodi_disponibili: 'Načini na Voljo', + importo: 'Uvoz', + effettua_il_dono: 'Je prišel trenutek da Vplačaš svoje darilo Sanjarju
      👉 {sognatore} 👈 !
      ' + + 'Vplačilo preko PayPal na: {email}
      ' + + 'V sporocilo dopiši: Darilo
      ' + + 'POZOR POMEMBNO: Zberi možnost
      "SENDING TO A FRIEND"

      ', + paypal_me: '
      2) Poenostavljena metoda
      Klikneš direktno na link
      ' + + 'odpre se ti si PayPal z že vpisanim zneskom in postavljenim emailom osebe, ki ji vplačuješ
      ' + + 'V sporočilo dopiši: Darilo
      ' + + 'POZOR POMEMBNO: ODMAKNI OZNAČBO NA : "Vplačujem storitve ali blago?" (Zaščita nakupa Paypal)
      ' + + 'Če imaš dvome, si oglej celoten postopek v spodnjem videu:
      ' + + 'Na koncu klikni “Pošlji denar -Vplačaj”', + qui_compariranno_le_info: 'Na dan odhoda Ladje, prejmete vse potrebne informacije s strani Sanjača', + commento_al_sognatore: 'Tu napišite komentar za Sanjač:', + posizione: 'Pozicija', + come_inviare_regalo_con_paypal: 'Kako vplačati preko', + ho_effettuato_il_dono: 'POTRJUJEM VPLAČILO', + clicca_conferma_dono: 'Klikni tu, da potrdiš izvedeno vplačilo', + fatto_dono: 'Potrdil si, da je vplačilo bilo izvedeno', + confermi_dono: 'Potrdi da si vplačal 33€', + dono_ricevuto: 'Tvoje vplačilo je prejeto!', + dono_ricevuto_2: 'Sprejeto', + dono_ricevuto_3: 'Prispelo!', + confermi_dono_ricevuto: 'Potrjujem, da sem sprejel darilo v znesku 33€ z strani {donatore}', + confermi_dono_ricevuto_msg: 'Potrjena da je prejel Darilo 33€ iz strani {donatore}', + msg_bot_conferma: '{donatore} je potrdil, da je poslal svoje Darilo v vrednosti 33€ {sognatore} (Commento: {commento})', + ricevuto_dono_ok: 'Potrdil si da si darilo Sprejel', + entra_in_lavagna: 'Vstopi v svojo Tablo, da pogledaš Ladje, ki bodo izplule', + doni_ricevuti: 'Sprejeta Darila', + doni_inviati_da_confermare: 'Poslana Darila (za potrditev)', + doni_mancanti: 'Manjkajoča Darila', + temporanea: 'Začasna', + nave_provvisoria: 'Dodeljena ti je bila ZAČASNA ladja.
      Normalno je, da boš zaradi posodobitve seznama potnikov videli spremenjen datum odhoda.', + ritessitura: 'Avtomatičen Vpis', + }, + reg: { + volta: 'krat', + volte: 'krat', + registered: 'Registriran', + contacted: 'Obveščen', + name_complete: 'Popolno ime', + num_invitati: 'Število povabljenih', + is_in_whatsapp: 'v Whatsapp-u', + is_in_telegram: 'V Telegram-u', + cell_complete: 'Telefon', + failed: 'Zgrešeno', + ind_order: 'Num', + ipaddr: 'IP', + verified_email: 'Email Potrjena', + reg_lista_prec: ' Vpiši Ime, Priimek in telefonsko številko, ki si vpisal prvič ob vstopu v Klepet!
      Na ta način te sistem prepozna in obdržite pozicijo na listi.', + nuove_registrazioni: 'Če je to NOVA registracija, moraš kontaktirati osebo, ki te je POVABILA, da ti posreduje PRAVILEN LINK za Registracijo pod njim/njo', + you: 'Ti', + cancella_invitato: 'Odstrani povabljenca', + cancella_account: 'Zbriši registracijo', + cancellami: 'Si siguren, da želiš popolnoma Izbrisati svojo Registracijo na {sitename} in tako izstopiti iz gibanja? Ne boš mogel več vstopiti na spletno stran s svojimi podatki, Izgubil Perderai boš svojo POZICIJO in tvoji povabljenci bodo PODARJENI osebi, ki te je povabila.', + cancellami_2: 'ZADNJE OBVESTILO! Bi rad Definitivno izstopil iz {sitename} ?', + account_cancellato: 'Tvoj profil je pravilno izbrisan', + regala_invitato: 'Podari povabljenca', + regala_invitante: 'Podari Povabljenega', + messaggio_invito: 'Povabilno sporočilo', + messaggio_invito_msg: 'Pošlji sporočilo vsem, s katerimi želiš deliti to Gibanje!', + videointro: 'Predstavitveni Video', + invitato_regalato: 'Povabljnec Podarjen', + invitante_regalato: 'Povabljenega Podarjen', + legenda: 'Zgodovina', + aportador_solidario: 'Kdo te je Povabil', + username_regala_invitato: 'Uporabniško ime Destinatorja darila', + aportador_solidario_nome_completo: 'Polno ime povabljenca', + aportador_solidario_nome_completo_orig: 'Originalen Povabljenec', + aportador_solidario_ind_order: 'Številka Povabljenca', + already_registered: 'Sem se že prijavil v klepet, pred 13 Januarjem', + reflink: 'Link, ki ga deliš med svojimi povabljenci:', + linkzoom: 'Link za vstop v Zoom:', + page_title: 'Registracija', + made_gift: 'Darilo', + note: 'Zapis', + incorso: 'Registracija v Teku...', + richiesto: 'Obvezno Polje', + email: 'Email', + intcode_cell: 'Klicna številka.', + cell: 'telefonska Telegram', + cellreg: 'Telefonska s katero si se registriral', + nationality: 'Nacionalnost', + email_paypal: 'Email Paypal', + revolut: 'Revolut', + link_payment: 'Povezava paypal.me', + note_payment: 'Dodatne opombe', + country_pay: 'Država destinacije Vplačil', + username_telegram: 'Uporabniško ime Telegram', + telegram: 'Klepet Telegram \'{botname}\'', + teleg_id: 'Telegram ID', + teleg_id_old: 'STAR Tel ID', + teleg_auth: 'Avtorizacijska koda', + click_per_copiare: 'KLikni zgoraj, da kopiraš v odložišče', + copia_messaggio: 'Kopiraj Sporočilo', + teleg_torna_sul_bot: '1) Kopiraj kodo tako da klikneš na zgornji gumb
      2) vrni se v {botname} s klikom tu spodaj 👇 in prilepi(ali napiši) kodo', + teleg_checkcode: 'Koda Telegram', + my_dream: 'Moje Sanje', + saw_and_accepted: 'Pogoji', + saw_zoom_presentation: 'Je bil prisoten na Zoom-u', + manage_telegram: 'Skrbniki Telegram', + paymenttype: 'Razpoložljivi načini Plačila (Revolut)', + selected: 'Izbrani', + img: 'Slika', + date_reg: 'Datum Reg.', + requirement: 'Zahteve', + perm: 'Dovoljenja', + username: 'Uporabniško ime (Pseudonimo)', + username_short: 'Up.ime', + name: 'Ime', + surname: 'Priimek', + username_login: 'Up. ime ali email', + password: 'Geslo', + repeatPassword: 'Ponovi geslo', + terms: 'Sprejemam pogoje poslovanja', + onlyadult: 'Potrjujem da sem Polnoleten', + submit: 'Registriraj se', + title_verif_reg: 'Preveri Registracijo', + reg_ok: 'Uspešno si Registriran', + verificato: 'Preverjeno', + non_verificato: 'Ni Preverjeno', + forgetpassword: 'Pozabljeno geslo?', + modificapassword: 'Spremenite geslo', + err: { + required: 'je zahtevano', + email: 'vpiši veljaven email', + errore_generico: 'Prosimo, da pravilno izpolnete vsa polja', + atleast: 'mora biti dolgo vsaj', + complexity: 'ora vsebobati vsaj 1 malo črko, 1 veliko črko, 1 številko', + notmore: 'ne sme biti dolgo več kot', + char: 'karakterji', + terms: 'Za nadaljevanje, moraš sprejeti pogoje poslovanja.', + email_not_exist: 'E-naslov ni prisotna v arhivu, preveri, če je pravilna', + duplicate_email: 'E-naslov je že bila registrirana', + user_already_exist: 'Registracija s temi podatki (ime,priimek, telefonska)je že uporabljena.Za vstop na spletno stran, klikni na gumb LOGIN na Začetni Strani.', + user_extralist_not_found: 'Uporabnik ni najden v arhivu, vpiši Ime,Priimek in telefonsko, ki si jo posredoval v listi leta 2019. Če je to nova registracija, se moraš prijaviti potom LINKA osebe, ki te vabi.', + user_not_this_aportador: 'Uporabljaš link druge osebe, različen od tvojega originalnega povabljenca.', + duplicate_username: 'To Uporabniško ime je že uporabljeno', + username_not_valid: 'Username not valid', + aportador_not_exist: 'To Uporabniško ime, ki te je povabilo, ni več prisotno.Kontaktiraj nas.', + aportador_regalare_not_exist: 'Vpiši Uporabniško ime osebe, ki jo želiš podariti povabljencu', + sameaspassword: 'Geslo mora biti enako', + }, + tips: { + email: 'vpiši svoj email', + username: 'Uporabniško ime dolgo vsaj 6 karakterjev', + password: 'mora vsebovati vsaj 1 majhno črko, 1 veliko črko in 1 številko', + repeatpassword: 'ponovi geslo', + + }, + }, + login: { + page_title: 'Vpis', + incorso: 'Vpis v teku', + enter: 'Vstopi', + esci: 'Izstopi', + errato: 'Uporabniško ime ali geslo napačna.Poskusi ponovno', + subaccount: 'Ta profil je bil združen z vašim prvim profilom. Izpelji dostop z vpisom uporabniskega imena(ali emaila) iz PRVEGA vpisa', + completato: 'Uspešen vpis!', + needlogin: 'Je potrebno izpeljati vpis preden nadaljuješ.', + }, + reset: { + title_reset_pwd: 'Ponastavi geslo', + send_reset_pwd: 'Pošlji ponastavitev gesla', + incorso: 'Zahteva Nova Email...', + email_sent: 'Email poslana', + check_email: 'Preveri svoje email, kjer boš prejel sporočilo z linkom za ponastaviti geslo.Zaradi varnostnih razlogov, bo ta link zapadel čez 4 ure.', + token_scaduto: 'Geslo je izsteklo ali je že bilo uporabljeno.Ponovi postopek za ponastavitev gesla', + title_update_pwd: 'Osveži svoje geslo', + update_password: 'osveži Geslo', + }, + logout: { + izhod: 'Si izstopil', + }, + errors: { + graphql: { + undefined: 'ne definiran', + }, + }, + showbigmap: 'Pokaži večjo mapo', + notification: { + status: 'Status', + ask: 'Aktiviraj Obveščanje', + waitingconfirm: 'Potrdi prošnjo za Obveščanje', + confirmed: 'Obveščanje Aktivirano!', + denied: 'Obvestila Onemogočena! Pozor tako ne boš videl prihajajočih sporočil. Omogoči, da jih vidiš.', + titlegranted: 'Dovoljenje Obveščanj Omogočeno!', + statusnot: 'Status Obveščanj', + titledenied: 'Dovoljenje Obveščanj Onemogočeno!', + title_subscribed: 'Pod vpisi na spletno stran!', + subscribed: 'Sedaj boš lahko sprejemal sporočila in obvestila.', + newVersionAvailable: 'Osveži', + }, + connection: 'Povezava', + cal: { + num: 'Število', + booked: 'Rezervirano', + booked_error: 'Rezervacija ni možna. Poskusi kasneje.', + sendmsg_error: 'Sporočilo ni bilo poslano. Poskusi kasneje.', + sendmsg_sent: 'Sporočilo Poslano', + booking: 'Rezerviraj Dogodek', + titlebooking: 'Rezervacija', + modifybooking: 'Popravilo rezervacije', + cancelbooking: 'Izbriši rezervacijo', + canceledbooking: 'Rezervacija izbrisana', + cancelederrorbooking: 'Brisanje ni izvedeno. Poskusi kasneje', + cancelevent: 'Izbriši dogodek', + canceledevent: 'Dogodek Izbrisan', + cancelederrorevent: 'Izbris dogodka ni izveden, poskusi kasneje', + event: 'Dogodek', + starttime: 'Od', + nextevent: 'Naslednji dogodek', + readall: 'Preberi vse', + enddate: 'v tem času', + endtime: 'ob', + duration: 'Trajanje', + hours: 'Urnik', + when: 'Kdaj', + where: 'Kje', + teacher: 'Vodi', + enterdate: 'Vpiši datum', + details: 'Podrobnosti', + infoextra: 'Extra datum in ura:', + alldayevent: 'Ves dan', + eventstartdatetime: 'Pričetek', + enterEndDateTime: 'Konec', + selnumpeople: 'Sodelujoči', + selnumpeople_short: 'Num', + msgbooking: 'Sporočilo za pošiljati', + showpdf: 'Poglej PDF', + bookingtextdefault: 'Rezerviram za', + bookingtextdefault_of: 'od', + teachertitle: 'Učitelj', + peoplebooked: 'Rezervacije.', + showlastschedule: 'Poglej v kolendarju', + }, + msgs: { + message: 'Sporočilo', + messages: 'Sporočila', + nomessage: 'Nobenega Sporočila', + }, + event: { + dateTimeStart: 'Datum pričetka', + dateTimeEnd: 'Datum zaključka', + contribtype: 'Vrsta Prispevka', + price: 'Prispevek', + askinfo: 'Vprašaj Info', + showpage: 'Poglej Stran', + infoafterprice: 'Pojasnila po Kvoti', + teacher: 'Učitelj', // teacherid + teacher2: 'Učitelj2', // teacherid2 + infoextra: 'InfoExtra', + linkpage: 'WebSite', + linkpdf: 'Link za en PDF', + nobookable: 'Ni možna rezervacija', + news: 'Novosti', + dupId: 'Id Podvojen', + canceled: 'Izbrisan', + deleted: 'Odstranjen', + duplicate: 'Podvoji', + notempty: 'Prostor ne sme biti prazen', + modified: 'Popravljeno', + showinhome: 'Pokaži na omači strani', + showinnewsletter: 'Pokaži v Novostih', + }, + privacy_policy: 'Pogoji Poslovanja', + cookies: 'Uporabljamo piškotke za boljše delovanje na netu.', + }, +}; + +export default msg_si; diff --git a/src/statics/lang/de.js b/src/statics/lang/de.js new file mode 100755 index 00000000..9eaf8fa7 --- /dev/null +++ b/src/statics/lang/de.js @@ -0,0 +1,429 @@ +const msg_de = { + de: { + words: { + da: 'from', + a: 'to', + }, + home: { + guida: 'Guide', + guida_passopasso: 'Step By Step Guide', + }, + grid: { + editvalues: 'Edit Values', + addrecord: 'Add Row', + showprevedit: 'Show Past Events', + nodata: 'No data', + columns: 'Columns', + tableslist: 'Tables', + }, + otherpages: { + sito_offline: 'Sito in Aggiornamento', + modifprof: 'Modify Profile', + biografia: 'Biografia', + admin: { + menu: 'Administration', + eventlist: 'Your Booking', + usereventlist: 'Users Booking', + userlist: 'Users List', + tableslist: 'List of tables', + newsletter: 'Newsletter', + pages: 'Pages', + media: 'Medias', + }, + manage: { + menu: 'Manage', + manager: 'Manager', + nessuno: 'None', + }, + messages: { + menu: 'Your Messages', + }, + }, + sendmsg: { + write: 'write', + }, + dialog: { + continue: 'Continue', + close: 'Close', + copyclipboard: 'Copied to clipboard', + ok: 'Ok', + yes: 'Yes', + no: 'No', + delete: 'Delete', + update: 'Update', + add: 'Add', + cancel: 'Cancel', + today: 'Today', + book: 'Book', + avanti: 'Avanti', + indietro: 'Indietro', + finish: 'Fine', + sendmsg: 'Send Message', + sendonlymsg: 'Send only a Msg', + msg: { + titledeleteTask: 'Delete Task', + deleteTask: 'Delete Task {mytodo}?', + }, + }, + comp: { + Conta: 'Count', + }, + db: { + recupdated: 'Record Updated', + recfailed: 'Error during update Record', + reccanceled: 'Canceled Update. Restore previous value', + deleterecord: 'Delete Record', + deletetherecord: 'Delete the Record?', + deletedrecord: 'Record Deleted', + recdelfailed: 'Error during deletion of the Record', + duplicatedrecord: 'Duplicate Record', + recdupfailed: 'Error during record duplication', + }, + components: { + authentication: { + telegram: { + open: 'Click here to open the BOT Telegram and follow the instructions', + openbot: 'Open BOT Telegram', + }, + login: { + facebook: 'Facebook', + }, + email_verification: { + title: 'Begin your registration', + introduce_email: 'Enter your email', + email: 'Email', + invalid_email: 'Your email is invalid', + verify_email: 'Verify your email', + go_login: 'Back to Login', + incorrect_input: 'Incorrect input.', + link_sent: 'Now read your email and confirm registration', + se_non_ricevo: 'If you do not receive the email, try checking in the spam, or contact us', + title_unsubscribe: 'Disiscrizione alla newsletter', + title_unsubscribe_done: 'Disiscrizione completata correttamente', + }, + }, + }, + fetch: { + errore_generico: 'Generic Error', + errore_server: 'Unable to access to the Server. Retry. Thank you.', + error_doppiologin: 'Signup again. Another access was made with another device.', + }, + user: { + notregistered: 'You need first to SignUp before storing data', + loggati: 'User not logged in', + }, + templemail: { + subject: 'Subject Email', + testoheadermail: 'Header Email', + content: 'Content', + img: 'Image 1', + img2: 'Image 2', + content2: 'Content 2', + options: 'Options', + }, + dashboard: { + downline: 'People you\'ve invited', + }, + reg: { + volte: 'time', + volta: 'times', + verified_email: 'Email Verified', + reg_lista_prec: 'Please enter the First Name, Last Name and mobile phone number you left in the past when you signed up for the Chat!
      This way the system will recognize you and keep the position of the list', + nuove_registrazioni: 'If this is a NEW registration, you must contact the person who INVITED you, who will leave you the CORRECT LINK to do the Registration under him/her', + you: 'You', + cancella_invitato: 'Delete Invited', + regala_invitato: 'Give invited', + messaggio_invito: 'Invitation Message', + messaggio_invito_msg: 'Copia il messaggio qui sotto e condividilo a tutti coloro a cui vuoi condividere questo Movimento !', + aportador_solidario: 'Solidarity Contributor', + aportador_solidario_nome_completo: 'A.S. Name', + aportador_solidario_ind_order: 'A.S.Ind', + reflink: 'Links to share to your friends:', + linkzoom: 'Link to enter in Zoom', + page_title: 'Registration', + made_gift: 'Donated', + note: 'Note', + incorso: 'Registration please wait...', + richiesto: 'Field Required', + email: 'Email', + intcode_cell: 'International Code', + cell: 'Mobile Telegram', + cellreg: 'Cellulare con cui ti eri registrato', + nationality: 'Nationality', + email_paypal: 'Email Paypal', + payeer_id: 'ID Payeer', + advcash_id: 'Advanced Cash Email', + revolut: 'Revolut', + country_pay: 'Country of Destination Payments', + username_telegram: 'Username Telegram', + telegram: 'Chat Telegram \'{botname}\'', + teleg_id: 'Telegram ID', + teleg_auth: 'Authorization Code', + paymenttype: 'Available Payment Methods', + selected: 'Selected', + teleg_checkcode: 'Codice Telegram', + my_dream: 'My Dream', + saw_zoom_presentation: 'Ha visto Zoom', + manage_telegram: 'Gestori Telegram', + img: 'File Image', + date_reg: 'Reg. Date', + requirement: 'Requirements', + perm: 'Permissions', + username_login: 'Username or email', + username: 'Username (Pseudonym)', + username_short: 'Username', + name: 'Name', + surname: 'Surname', + password: 'Password', + repeatPassword: 'Repeat password', + terms: 'I agree with the terms and privacy', + onlyadult: "I confirm that I'm at least 18 years old", + submit: 'Submit', + title_verif_reg: 'Verify Registration', + reg_ok: 'Successful Registration', + verificato: 'Verified', + non_verificato: 'Not Verified', + forgetpassword: 'Forget Password?', + modificapassword: 'Modify Password', + err: { + required: 'is required', + email: 'must be a valid email', + errore_generico: 'Please review fields again', + atleast: 'must be at least', + complexity: 'must contains at least 1 lowercase letter, 1 uppercase letter, 1 digit', + notmore: 'must not be more than', + char: 'characters long', + terms: 'You need to agree with the terms & conditions.', + email_not_exist: 'Email is not present in the archive, check if it is correct', + duplicate_email: 'Email was already registered', + user_already_exist: 'La registrazione con questi dati (nome, cognome e cellulare) è stata già effettuata. Per accedere al sito, cliccare sul bottone LOGIN dalla HomePage.', + user_extralist_not_found: 'User in archive not found, insert the Name, Surname and mobile phone sent previously', + duplicate_username: 'Username is already taken', + aportador_not_exist: 'The username of the person who invited you is not present in the archive. Verify that it is correct.', + sameaspassword: 'Passwords must be identical', + }, + }, + op: { + qualification: 'Qualification', + usertelegram: 'Username Telegram', + disciplines: 'Disciplines', + certifications: 'Certifications', + intro: 'Introduction', + info: 'Biography', + webpage: 'Web Page', + days_working: 'Working Days', + facebook: 'Facebook Page', + }, + login: { + page_title: 'Login', + incorso: 'Login...', + enter: 'Login', + esci: 'Logout', + errato: 'Username or password wrong. Please retry again', + completato: 'Login successfully!', + needlogin: 'You must login before continuing', + }, + reset: { + title_reset_pwd: 'Reset your Password', + send_reset_pwd: 'Send password request', + incorso: 'Request New Email...', + email_sent: 'Email sent', + check_email: 'Check your email for a message with a link to update your password. This link will expire in 4 hours for security reasons.', + title_update_pwd: 'Update your password', + update_password: 'Update Password', + }, + logout: { + uscito: 'Logout successfully', + }, + errors: { + graphql: { + undefined: 'undefined', + }, + }, + showbigmap: 'Show the largest map', + todo: { + titleprioritymenu: 'Priority:', + inserttop: 'Insert Task at the top', + insertbottom: 'Insert Task at the bottom', + edit: 'Task Description:', + completed: 'Lasts Completed', + usernotdefined: 'Attention, you need to be Signed In to add a new Task', + start_date: 'Start Date', + status: 'Status', + completed_at: 'Completition Date', + expiring_at: 'Expiring Date', + phase: 'Phase', + }, + notification: { + status: 'Status', + ask: 'Enable Notification', + waitingconfirm: 'Confirm the Request Notification', + confirmed: 'Notifications Enabled!', + denied: 'Notifications Disabled! Attention, you will not see your messages incoming. Reenable it for see it', + titlegranted: 'Notification Permission Granted!', + statusnot: 'status Notification', + titledenied: 'Notification Permission Denied!', + title_subscribed: 'Subscribed to FreePlanet.app!', + subscribed: 'You can now receive Notification and Messages.', + newVersionAvailable: 'Upgrade', + }, + connection: 'Conexión', + proj: { + newproj: 'Project Title', + newsubproj: 'SubProject Title', + insertbottom: 'Insert New Project', + longdescr: 'Description', + hoursplanned: 'Estimated Hours', + hoursleft: 'Left Hours', + hoursadded: 'Additional Hours', + hoursworked: 'Worked Hours', + begin_development: 'Start Dev', + begin_test: 'Start Test', + progresstask: 'Progression', + actualphase: 'Actual Phase', + hoursweeky_plannedtowork: 'Scheduled weekly hours', + endwork_estimate: 'Estimated completion date', + privacyread: 'Who can see it:', + privacywrite: 'Who can modify if:', + totalphases: 'Total Phase', + themecolor: 'Theme Color', + themebgcolor: 'Theme Color Background', + }, + where: { + code: 'Id', + whereicon: 'Icon', + }, + col: { + label: 'Etichetta', + value: 'Valore', + type: 'Tipo', + }, + cal: { + num: 'Number', + booked: 'Booked', + booked_error: 'Reservation failed. Try again later', + sendmsg_error: 'Message not sent. Try again later', + sendmsg_sent: 'Message sent', + booking: 'Book the Event', + titlebooking: 'Reservation', + modifybooking: 'Modify Reservation', + cancelbooking: 'Cancel Reservation', + canceledbooking: 'Booking cancelled', + cancelederrorbooking: 'Cancellation unsuccessfully, try again later', + event: 'Event', + starttime: 'From', + nextevent: 'Next Event', + readall: 'Read All', + enddate: 'to', + endtime: 'to', + duration: 'Duration', + hours: 'Hours', + when: 'When', + where: 'Where', + teacher: 'Led by', + enterdate: 'Enter date', + details: 'Details', + infoextra: 'Extra Info DateTime', + alldayevent: 'All-Day myevent', + eventstartdatetime: 'Start', + enterEndDateTime: 'End', + selnumpeople: 'Participants', + selnumpeople_short: 'Num', + msgbooking: 'Message to send', + showpdf: 'Show PDF', + bookingtextdefault: 'I book for', + bookingtextdefault_of: 'of', + data: 'Date', + teachertitle: 'Teacher', + peoplebooked: 'Booked', + showlastschedule: 'See Full Schedule', + }, + msgs: { + message: 'Messaggio', + messages: 'Messaggi', + nomessage: 'Nessun Messaggio', + }, + event: { + _id: 'id', + typol: 'Typology', + short_tit: 'Short Title', + title: 'Title', + details: 'Details', + bodytext: 'Event Text', + dateTimeStart: 'Date Start', + dateTimeEnd: 'Date End', + bgcolor: 'Background color', + days: 'Days', + icon: 'Icon', + img: 'Nomefile Img', + img_small: 'Img Small', + where: 'Qhere', + contribtype: 'Contribute Type', + price: 'Price', + askinfo: 'Ask for Info', + showpage: 'Show Page', + infoafterprice: 'Info after Price', + teacher: 'Teacher', // teacherid + teacher2: 'Teacher2', // teacherid2 + infoextra: 'Extra Info', + linkpage: 'WebSite', + linkpdf: 'PDF Link', + nobookable: 'No Bookable', + news: 'News', + dupId: 'Id Duplicate', + canceled: 'Canceled', + deleted: 'Deleted', + duplicate: 'Duplicate', + notempty: 'Field cannot be empty', + modified: 'Modified', + showinhome: 'Show in Home', + showinnewsletter: 'Show in the Newsletter', + color: 'Title Color', + }, + disc: { + typol_code: 'Tipology Code', + order: 'Order', + }, + newsletter: { + title: 'Would you like to receive our Newsletter?', + name: 'Your name', + surname: 'Your surname', + namehint: 'Name', + surnamehint: 'Surname', + email: 'Your email', + submit: 'Subscribe', + reset: 'Reset', + typesomething: 'Please type something', + acceptlicense: 'I accept the license and terms', + license: 'You need to accept the license and terms first', + submitted: 'Subscribed', + menu: 'Newsletter1', + template: 'Template Email', + sendemail: 'Send', + check: 'Check', + sent: 'Already Sent', + mailinglist: 'Mailing List', + settings: 'Settings', + serversettings: 'Server', + others: 'Others', + templemail: 'Templates Email', + datetoSent: 'DateTime Send', + activate: 'Activate', + numemail_tot: 'Email Total', + numemail_sent: 'Email Sent', + datestartJob: 'Start Job', + datefinishJob: 'End Job', + lastemailsent_Job: 'Last Sent', + starting_job: 'Job started', + finish_job: 'Sent terminated', + processing_job: 'Work in progress', + error_job: 'Info Error', + statesub: 'Subscribed', + wrongerr: 'Invalid Email', + }, + privacy_policy: 'Privacy Policy', + cookies: 'Wir verwenden Cookies für eine bessere Webleistung.', + }, +}; + +export default msg_de; diff --git a/src/statics/lang/enUs.js b/src/statics/lang/enUs.js new file mode 100755 index 00000000..09022eb1 --- /dev/null +++ b/src/statics/lang/enUs.js @@ -0,0 +1,629 @@ +const msg_enUs = { + enUs: { + words: { + da: 'from', + a: 'to', + }, + home: { + guida: 'Guide', + guida_passopasso: 'Step By Step Guide', + }, + grid: { + editvalues: 'Edit Values', + addrecord: 'Add Row', + showprevedit: 'Show Past Events', + nodata: 'No data', + columns: 'Columns', + tableslist: 'Tables', + }, + otherpages: { + sito_offline: 'Updating Website', + modifprof: 'Modify Profile', + biografia: 'Bio', + error404: 'error404', + error404def: 'error404def', + admin: { + menu: 'Administration', + eventlist: 'Your Booking', + usereventlist: 'Users Booking', + userlist: 'Users List', + tableslist: 'List of tables', + navi: 'Navi', + newsletter: 'Newsletter', + pages: 'Pages', + media: 'Medias', + }, + manage: { + menu: 'Manage', + manager: 'Manager', + nessuno: 'None', + }, + messages: { + menu: 'Your Messages', + }, + }, + sendmsg: { + write: 'write', + }, + stat: { + imbarcati: 'Boarded', + imbarcati_weekly: 'Boarded Settimanali', + imbarcati_in_attesa: 'Boarded on hold', + qualificati: 'Qualified with at least 2 guests', + requisiti: 'Users with the 7 Requirements', + zoom: 'Participated in Zoom', + modalita_pagamento: 'Payment Methods Inserted', + accepted: 'Accepted Guidelines + Video', + dream: 'They wrote the Dream', + email_not_verif: 'Email not Verified', + telegram_non_attivi: 'Inactive Telegram', + telegram_pendenti: 'Pending Telegram', + reg_daily: 'Daily Registrations', + reg_total: 'Total registrations', + }, + steps: { + nuovo_imbarco: 'Book another Trip', + vuoi_entrare_nuova_nave: 'Do you wish to help the Movement to advance and intend to enter another Ship?
      By making a New Gift of 33€, you will be able to travel another journey and have another opportunity to become a Dreamer!
      ' + + 'If you confirm, you\'ll be added to the waiting list for the next boarding.', + vuoi_cancellare_imbarco: 'Are you sure you want to cancel this boarding on the AYNI ship?', + completed: 'Completed', + passi_su: '{passo} steps out of {totpassi}', + video_intro_1: '1. Welcome to {sitename}', + video_intro_2: '2. Birth of {sitename}', + read_guidelines: 'I have read and agreed to these terms and conditions written above', + saw_video_intro: 'I declare I\'ve seen the videos', + paymenttype: 'Methods of Payment', + paymenttype_long: 'Choose at least 2 Payment Methods, to exchange gifts.

      The payment methods are:
      • Payeer
      • Revolut
      • ', + paymenttype_paypal: 'How to open a Paypal account (in 2 minutes)', + paymenttype_paypal_carta_conto: 'How to associate a Credit/Debit Card or Bank Account on PayPal', + paymenttype_paypal_link: 'Open Account with Paypal', + paymenttype_revolut: 'How to open the account with Revolut (in 2 minutes)', + paymenttype_revolut_link: 'Open Account with Revolut', + entra_zoom: 'Enter in Zoom', + linee_guida: 'I accept the guidelines', + video_intro: 'I see the videos', + zoom: 'I partecipate at least 1 Zoom', + zoom_si_partecipato: 'You have participated in at least 1 Zoom', + zoom_gia_partecipato: 'Hai gia partecipato alla Video-Conferenza di Benvenuto', + zoom_partecipa: 'Participated in at least 1 Zoom', + zoom_no_partecipato: 'You have not yet participated in a Zoom (it is a requirement to enter)', + zoom_long: 'You are required to participate in at least 1 Zoom, but it is recommended that you take part in the movement more actively.

        By participating in Zooms the Staff will record attendance and you will be enabled.', + zoom_what: 'Tutorial how to install Zoom Cloud Meeting', + // sharemovement_devi_invitare_almeno_2: 'You still haven\'t invited 2 people', + // sharemovement_hai_invitato: 'You invited at least 2 people', + sharemovement_invitati_attivi_si: 'You have at least 2 people invited Active', + sharemovement_invitati_attivi_no: 'Note:The people you invited, in order to be Active, must have completed all the first 7 Requirements (see your Lavagna to see what they are missing).', + sharemovement: 'Invitation at least 2 people', + sharemovement_long: 'Share the {sitename} Movement and invite them to participate in the Welcome Zooms to become part of this great Family 😄 .
        .', + inv_attivi_long: '', + enter_prog_completa_requisiti: 'Complete all the requirements to enter the boarding list.', + enter_prog_requisiti_ok: 'You have completed all 5 requirements to enter the boarding list.
        ', + enter_prog_msg: 'You will receive a message in the next few days as soon as your ship is ready!', + enter_prog_msg_2: '', + enter_nave_9req_ok: 'CONGRATULATIONS! You have completed ALL 7 steps guide! Thank you for helping {sitename} to Expand!
        You will be able to leave very soon with your Journey, making your gift and continuing towards the Dreamer.', + enter_nave_9req_ko: 'Remember that you can help the Movement grow and expand by sharing our journey with everyone!', + enter_prog: 'I\'m going in Programming', + enter_prog_long: 'Satisfied the requirements you will enter the Program, you will be added to the Ticket and the corresponding group chat.
        ', + collaborate: 'Collaboration', + collaborate_long: 'I continue to work with my companions to get to the day when my ship will sail.', + dream: 'I write my dream', + dream_long: 'Write here the Dream for which you entered {sitename} and which you wish to realize.
        It will be shared with all the others to dream together !', + dono: 'Gift', + dono_long: 'I make my gift on the departure date of my Ship', + support: 'Support the movement', + support_long: 'I support the movement by bringing energy, participating and organizing Zoom, helping and informing newcomers and continuing to spread {sitename}\'s vision.', + ricevo_dono: 'I receive my gift and CELEBRATE', + ricevo_dono_long: 'Hurray!!!!
        THIS MOVEMENT IS REAL AND POSSIBLE IF WE DO IT WORK ALL TOGETHER!!', + }, + + dialog: { + continue: 'Continue', + close: 'Close', + copyclipboard: 'Copied to clipboard', + ok: 'Ok', + yes: 'Yes', + no: 'No', + delete: 'Delete', + cancel: 'Cancel', + update: 'Update', + add: 'Add', + today: 'Today', + book: 'Book', + avanti: 'Continue', + indietro: 'Back', + finish: 'Finish', + sendmsg: 'Send Message', + sendonlymsg: 'Send only a Msg', + msg: { + titledeleteTask: 'Delete Task', + deleteTask: 'Delete Task {mytodo}?', + }, + }, + comp: { + Conta: 'Count', + }, + db: { + recupdated: 'Record Updated', + recfailed: 'Error during update Record', + reccanceled: 'Canceled Update. Restore previous value', + deleterecord: 'Delete Record', + deletetherecord: 'Delete the Record?', + deletedrecord: 'Record Deleted', + recdelfailed: 'Error during deletion of the Record', + duplicatedrecord: 'Duplicate Record', + recdupfailed: 'Error during record duplication', + }, + components: { + authentication: { + telegram: { + open: 'Click here to open the BOT Telegram and follow the instructions', + ifclose: 'Se non si apre Telegram cliccando sul bottone oppure l\'avevi eliminato, vai su Telegram e cerca \'{botname}\' dall\'icona della lente, poi premi Start e segui le istruzioni.', + openbot: 'Open BOT Telegram', + }, + login: { + facebook: 'Facebook', + }, + email_verification: { + title: 'Begin your registration', + introduce_email: 'Enter your email', + email: 'Email', + invalid_email: 'Your email is invalid', + verify_email: 'Verify your email', + go_login: 'Back to Login', + incorrect_input: 'Incorrect input.', + link_sent: 'Now read your email and confirm registration', + se_non_ricevo: 'If you do not receive the email, try checking in the spam, or contact us', + title_unsubscribe: 'Unsubscribe to the newsletter', + title_unsubscribe_done: 'Subscription completed successfully', + }, + }, + }, + fetch: { + errore_generico: 'Generic Error', + errore_server: 'Unable to access to the Server. Retry. Thank you.', + error_doppiologin: 'Signup again. Another access was made with another device.', + }, + user: { + notregistered: 'You need first to SignUp before storing data', + loggati: 'User not logged in', + }, + templemail: { + subject: 'Subject Email', + testoheadermail: 'Header Email', + content: 'Content', + img: 'Image 1', + img2: 'Image 2', + content2: 'Content 2', + options: 'Options', + }, + dashboard: { + data: 'Date', + data_rich: 'Date Req.', + ritorno: 'Return', + invitante: 'Invitante', + num_tessitura: 'Numero di Tessitura:', + attenzione: 'Attenzione', + downline: 'Guests', + downnotreg: 'Non-registered Guests', + notreg: 'Not Registered', + inv_attivi: 'Invited with the 5 Requirements', + numinvitati: 'At least 2 guests', + telefono_wa: 'Contact on Whatsapp', + sendnotification: 'Send Notification to the Recipient on Telegram BOT', + ricevuto_dono: '😍🎊 You received a Gift Invitation {invitato} from {mittente} !', + ricevuto_dono_invitante: '😍🎊 You received a Gift Inviting from {mittente} !', + nessun_invitante: 'No Inviting', + nessun_invitato: 'No_invited', + legenda_title: 'Click on the name of the guest to see the status of his Requirements.', + nave_in_partenza: 'on Departure on', + nave_in_chiusura: 'Closing Gift Chat', + nave_partita: 'departed on', + tutor: 'Tutor', + /* sonomediatore: 'When you become a Medalist you are contacted by a TUTOR, with him you must:
          ' + + '
        1. Open your Gift Chat (you as owner and the Tutor as administrator) with this name:
          {nomenave}
        2. ' + + '
        3. Click on the chat name at the top -> Edit -> Administrators -> "Add Administrator", select the Tutor in the list.
        4. ' + + '
        5. You have to configure the chat so that whoever enters also sees the previous posts (click on the chat name at the top, click on edit,' + + 'change "new members\' history" from hidden to visible.
        6. ' + + '
        7. To find the link to the newly created Chat: Click on the Chat name at the top, click on the Pencil -> "Group Type" -> "invite to group via link", click on "copy link" and paste it in the "Link Gift Chat"
        8. " + box below.' + + '
        9. Send the Gift Chat Link to all Donors by clicking on the button below.
        .', + */ + sonomediatore: 'When you are a MEDIATOR you will be contacted by TUTOR AYNI by message Chat AYNI BOT', + superchat: 'Note: ONLY if you have PAYMENT problems, or if you want to be REPLACED, two Tutors are waiting to help you on the Chat:
        Get into Gift Chat.', + sonodonatore: '
        1. When you are in this position, you will be invited (via a message on AYNI BOT) to make the Gift. You will no longer need to enter a Chat.
        2. ' + + '
        3. You will have 3 days to make the Gift (then you will be replaced), in the payment method that you will find written on the message in AYNI BOT.
        ', + sonodonatore_seconda_tessitura: '
        1. Here you are Mediator and also Donor, but being the second Weaving, you won\'t need to make your gift again.
        ', + controlla_donatori: 'Check Donor List', + link_chat: 'Gift Chat Telegram links', + tragitto: 'Route', + nave: 'Ship', + data_partenza: 'Departure
        Date', + doni_inviati: 'Gift
        Sent', + nome_dei_passaggi: 'Steps Name', + donatori: 'Donors', + donatore: 'Donor', + mediatore: 'Mediator', + sognatore: 'Dreamer', + sognatori: 'DREAMER', + intermedio: 'INTERMEDIATE', + pos2: 'Interm. 2', + pos3: 'Interm. 3', + pos5: 'Interm. 5', + pos6: 'Interm. 6', + gift_chat: 'To enter Gift Chat, click here', + quando_eff_il_tuo_dono: 'When to make the Gift', + entra_in_gift_chat: 'Enter Gift Chat', + invia_link_chat: 'Send Gift Chat Link to Donors', + inviare_msg_donatori: '5) Send message to Donors', + msg_donatori_ok: '', + metodi_disponibili: 'Available Methods', + importo: 'Amount', + effettua_il_dono: 'It\'s time to make your Gift to the Dreamer
        👉 {sognatore} 👈!
        ' + + 'Send via PayPal to: {email}
        ' + + 'WARNING: Choose the option
        "SENDING TO A FRIEND"

        (So as not to pay fees).', + paypal_me: '
        2) Simplified Method
        Click directly here
        ' + + 'will open PayPal with the amount and the recipient already set.
        ' + + 'Add as message: Gift
        ' + + 'WARNING: DO NOT select the box: Paypal shopping protection
        ' + + 'If you have any doubts, watch the video below to see how to:
        ' + + 'Finally click on "Send Money Now".', + qui_compariranno_le_info: 'On the day of departure of the Ship, the information of the Dreamer will appear', + commento_al_sognatore: 'Write here a comment for the Dreamer:', + posizione: 'Position', + come_inviare_regalo_con_paypal: 'How to send the gift via Paypal', + ho_effettuato_il_dono: 'I Sent the Gift', + clicca_conferma_dono: 'Click here to confirm that you have made your gift', + fatto_dono: 'You have confirmed that the gift has been sent', + confermi_dono: 'Confirm that you have sent your 33€ Gift', + dono_ricevuto: 'Your Gift has been Received!', + dono_ricevuto_2: 'Received', + dono_ricevuto_3: 'Arrived!', + confermi_dono_ricevuto: 'Confirm that you have received the 33€ Gift from {donatore}', + confermi_dono_ricevuto_msg: 'Confirmed that you have received the 33€ Gift from {donatore}', + msg_bot_conferma: '{donatore} has confirmed that he has sent his 33€ gift to {sognatore}. (Commento: {commento})', + ricevuto_dono_ok: 'You have confirmed the gift has been received', + entra_in_lavagna: 'Enter on your Dashboard to see the departing ships', + doni_ricevuti: 'Gifts Received', + doni_inviati_da_confermare: 'Gifts Sent (to be confirmed)', + doni_mancanti: 'Missing Gifts', + temporanea: 'Temporary', + nave_provvisoria: 'You have been assigned a TEMPORARY SHIP.
        It is normal that you will see a change the departure date, due to the updating of the passenger ranking.', + ritessitura: 'RETEXTURE', + }, + reg: { + volta: 'time', + volte: 'times', + registered: 'Registrato', + contacted: 'Contattato', + name_complete: 'Nome Completo', + num_invitati: 'Num.Invitati', + is_in_whatsapp: 'In Whatsapp', + is_in_telegram: 'In Telegram', + cell_complete: 'Cellulare', + failed: 'Fallito', + ind_order: 'Num', + ipaddr: 'IP', + verified_email: 'Email Verified', + reg_lista_prec: 'Please enter the First Name, Last Name and mobile phone number you left in the past when you signed up for the Chat!
        This way the system will recognize you and keep the position of the list', + nuove_registrazioni: 'If this is a NEW registration, you must contact the person who INVITED you, who will leave you the CORRECT LINK to do the Registration under him/her', + you: 'You', + cancella_invitato: 'Delete Invited', + regala_invitato: 'Give invited', + regala_invitante: 'Give inviting', + messaggio_invito: 'Invitation Message', + messaggio_invito_msg: 'Send this message to all those to whom you want to share this Movement !', + videointro: 'Introductory Video', + invitato_regalato: 'Invited Given', + invitante_regalato: 'Inviting Given', + legenda: 'Legend', + aportador_solidario: 'Solidarity Contributor', + aportador_solidario_nome_completo: 'A.S. Name', + aportador_solidario_ind_order: 'A.S.Ind', + reflink: 'Links to share to your friends:', + linkzoom: 'Link to enter in Zoom', + incorso: 'Registration please wait...', + made_gift: 'Donated', + note: 'Note', + richiesto: 'Field Required', + email: 'Email', + intcode_cell: 'International Code', + cell: 'Mobile Telegram', + cellreg: 'Cellulare con cui ti eri registrato', + nationality: 'Nationality', + email_paypal: 'Email Paypal', + payeer_id: 'Payeer ID', + advcash_id: 'Advanced Cash Email', + revolut: 'Revolut', + link_payment: 'MoneyBox Paypal link', + note_payment: 'Additional notes', + country_pay: 'Country of Destination Payments', + username_telegram: 'Username Telegram', + telegram: 'Chat Telegram \'{botname}\'', + teleg_id: 'Telegram ID', + teleg_auth: 'Authorization Code', + click_per_copiare: 'Click on it to copy it to the clipboard', + copia_messaggio: 'Copy Message', + teleg_torna_sul_bot: '1) Copy the code by clicking on the button above
        2) go back to {botname} by clicking on 👇 and paste (or write) the code', + teleg_checkcode: 'Telegram code', + my_dream: 'My Dream', + saw_and_accepted: 'Condizioni', + saw_zoom_presentation: 'Ha visto Zoom', + manage_telegram: 'Gestori Telegram', + paymenttype: 'Available Payment Methods', + selected: 'Selected', + select: 'Select', + img: 'File Image', + date_reg: 'Reg. Date', + requirement: 'Requirements', + perm: 'Permissions', + username_login: 'Username or email', + username: 'Username (Pseudonym)', + username_short: 'Username', + name: 'Name', + surname: 'Surname', + password: 'Password', + repeatPassword: 'Repeat password', + terms: 'I agree with the terms and privacy', + onlyadult: "I confirm that I'm at least 18 years old", + submit: 'Submit', + title_verif_reg: 'Verify Registration', + reg_ok: 'Successful Registration', + verificato: 'Verified', + non_verificato: 'Not Verified', + forgetpassword: 'Forget Password?', + modificapassword: 'Modify Password', + err: { + required: 'is required', + email: 'must be a valid email', + errore_generico: 'Please review fields again', + atleast: 'must be at least', + complexity: 'must contains at least 1 lowercase letter, 1 uppercase letter, 1 digit', + notmore: 'must not be more than', + char: 'characters long', + terms: 'You need to agree with the terms & conditions.', + email_not_exist: 'Email is not present in the archive, check if it is correct', + duplicate_email: 'Email was already registered', + user_already_exist: 'Registration with these data (name, surname and mobile phone) has already been created. To access the site, click on the LOGIN button from the HomePage.', + user_extralist_not_found: 'User in archive not found, insert the Name, Surname and mobile phone sent previously', + user_not_this_aportador: 'Stai utilizzando un link di una persona diversa dal tuo invitato originale.', + duplicate_username: 'Username is already taken', + username_not_valid: 'Username not valid', + aportador_not_exist: 'The username of the person who invited you is not present. Contact us.', + aportador_regalare_not_exist: 'Inserire l\'Username della persona che si vuole regalare l\'invitato', + sameaspassword: 'Passwords must be identical', + }, + tips: { + email: 'inserisci la tua email', + username: 'username lunga almeno 6 caratteri', + password: 'deve contenere 1 minuscola, 1 maiuscola e 1 cifra', + repeatpassword: 'ripetere la password', + + }, + }, + op: { + qualification: 'Qualification', + usertelegram: 'Username Telegram', + disciplines: 'Disciplines', + certifications: 'Certifications', + intro: 'Introduction', + info: 'Biography', + webpage: 'Web Page', + days_working: 'Working Days', + facebook: 'Facebook Page', + }, + login: { + incorso: 'Login...', + enter: 'Login', + esci: 'Logout', + errato: 'Username or password wrong. Please retry again', + subaccount: 'This account has been merged with your Main Account. Login using the username (and email) of the FIRST account.', + completato: 'Login successfully!', + needlogin: 'You must login before continuing', + }, + reset: { + title_reset_pwd: 'Reset your Password', + send_reset_pwd: 'Send password request', + incorso: 'Request New Email...', + email_sent: 'Email sent', + check_email: 'Check your email for a message with a link to update your password. This link will expire in 4 hours for security reasons.', + token_scaduto: 'Il token è scaduto oppure è stato già usato. Ripetere la procedura di reset password', + title_update_pwd: 'Update your password', + update_password: 'Update Password', + }, + logout: { + uscito: 'Logout successfully', + }, + errors: { + graphql: { + undefined: 'undefined', + }, + }, + showbigmap: 'Show the largest map', + todo: { + titleprioritymenu: 'Priority:', + inserttop: 'Insert Task at the top', + insertbottom: 'Insert Task at the bottom', + edit: 'Task Description:', + completed: 'Lasts Completed', + usernotdefined: 'Attention, you need to be Signed In to add a new Task', + start_date: 'Start Date', + status: 'Status', + completed_at: 'Completition Date', + expiring_at: 'Expiring Date', + phase: 'Phase', + }, + notification: { + status: 'Status', + ask: 'Enable Notification', + waitingconfirm: 'Confirm the Request Notification', + confirmed: 'Notifications Enabled!', + denied: 'Notifications Disabled! Attention, you will not see your messages incoming. Reenable it for see it', + titlegranted: 'Notification Permission Granted!', + statusnot: 'status Notification', + titledenied: 'Notification Permission Denied!', + title_subscribed: 'Subscribed to FreePlanet.app!', + subscribed: 'You can now receive Notification and Messages.', + newVersionAvailable: 'Upgrade', + }, + connection: 'Conexión', + proj: { + newproj: 'Project Title', + newsubproj: 'SubProject Title', + insertbottom: 'Insert New Project', + longdescr: 'Description', + hoursplanned: 'Estimated Hours', + hoursleft: 'Left Hours', + hoursadded: 'Additional Hours', + hoursworked: 'Worked Hours', + begin_development: 'Start Dev', + begin_test: 'Start Test', + progresstask: 'Progression', + actualphase: 'Actual Phase', + hoursweeky_plannedtowork: 'Scheduled weekly hours', + endwork_estimate: 'Estimated completion date', + privacyread: 'Who can see it:', + privacywrite: 'Who can modify if:', + totalphases: 'Total Phase', + themecolor: 'Theme Color', + themebgcolor: 'Theme Color Background', + }, + where: { + code: 'Id', + whereicon: 'Icon', + }, + col: { + label: 'Etichetta', + value: 'Valore', + type: 'Tipo', + }, + cal: { + num: 'Number', + booked: 'Booked', + booked_error: 'Reservation failed. Try again later', + sendmsg_error: 'Message not sent. Try again later', + sendmsg_sent: 'Message sent', + booking: 'Book the Event', + titlebooking: 'Reservation', + modifybooking: 'Modify Reservation', + cancelbooking: 'Cancel Reservation', + canceledbooking: 'Booking cancelled', + cancelederrorbooking: 'Cancellation unsuccessfully, try again later', + cancelevent: 'Cancella Evento', + canceledevent: 'Evento Cancellato', + cancelederrorevent: 'Cancellazione Evento non effettuata, Riprovare', + event: 'Event', + starttime: 'From', + nextevent: 'Next Event', + readall: 'Read All', + enddate: 'to', + endtime: 'to', + duration: 'Duration', + hours: 'Hours', + when: 'When', + where: 'Where', + teacher: 'Led by', + enterdate: 'Enter date', + details: 'Details', + infoextra: 'Extra Info DateTime', + alldayevent: 'All-Day myevent', + eventstartdatetime: 'Start', + enterEndDateTime: 'End', + selnumpeople: 'Participants', + selnumpeople_short: 'Num', + msgbooking: 'Message to send', + showpdf: 'Show PDF', + bookingtextdefault: 'I book for', + bookingtextdefault_of: 'of', + data: 'Date', + teachertitle: 'Teacher', + peoplebooked: 'Booked', + showlastschedule: 'See Full Schedule', + }, + msgs: { + message: 'Messaggio', + messages: 'Messaggi', + nomessage: 'Nessun Messaggio', + }, + event: { + _id: 'id', + typol: 'Typology', + short_tit: 'Short Title', + title: 'Title', + details: 'Details', + bodytext: 'Event Text', + dateTimeStart: 'Date Start', + dateTimeEnd: 'Date End', + bgcolor: 'Background color', + days: 'Days', + icon: 'Icon', + img: 'Nomefile Img', + img_small: 'Img Small', + where: 'Qhere', + contribtype: 'Contribute Type', + price: 'Price', + askinfo: 'Ask for Info', + showpage: 'Show Page', + infoafterprice: 'Info after Price', + teacher: 'Teacher', // teacherid + teacher2: 'Teacher2', // teacherid2 + infoextra: 'Extra Info', + linkpage: 'WebSite', + linkpdf: 'PDF Link', + nobookable: 'No Bookable', + news: 'News', + dupId: 'Id Duplicate', + canceled: 'Canceled', + deleted: 'Deleted', + duplicate: 'Duplicate', + notempty: 'Field cannot be empty', + modified: 'Modified', + showinhome: 'Show in Home', + showinnewsletter: 'Show in the Newsletter', + color: 'Title Color', + }, + disc: { + typol_code: 'Tipology Code', + order: 'Order', + }, + newsletter: { + title: 'Would you like to receive our Newsletter?', + name: 'Your name', + surname: 'Your surname', + namehint: 'Name', + surnamehint: 'Surname', + email: 'Your email', + submit: 'Subscribe', + reset: 'Reset', + typesomething: 'Please type something', + acceptlicense: 'I accept the license and terms', + license: 'You need to accept the license and terms first', + submitted: 'Subscribed', + menu: 'Newsletter1', + template: 'Template Email', + sendemail: 'Send', + check: 'Check', + sent: 'Already Sent', + mailinglist: 'Mailing List', + settings: 'Settings', + serversettings: 'Server', + others: 'Others', + templemail: 'Templates Email', + datetoSent: 'DateTime Send', + activate: 'Activate', + numemail_tot: 'Email Total', + numemail_sent: 'Email Sent', + datestartJob: 'Start Job', + datefinishJob: 'End Job', + lastemailsent_Job: 'Last Sent', + starting_job: 'Job started', + finish_job: 'Work in progress', + processing_job: 'Lavoro in corso', + error_job: 'Info Error', + statesub: 'Subscribed', + wrongerr: 'Invalid Email', + }, + privacy_policy: 'Privacy Policy', + cookies: 'We use cookies for better web performance.', + }, +}; + +export default msg_enUs; diff --git a/src/statics/lang/es.js b/src/statics/lang/es.js new file mode 100755 index 00000000..ba088ac1 --- /dev/null +++ b/src/statics/lang/es.js @@ -0,0 +1,633 @@ +const msg_es = { + es: { + words: { + da: 'del', + a: 'al', + }, + home: { + guida: 'Guía', + guida_passopasso: 'Guía paso a paso', + }, + grid: { + editvalues: 'Cambiar valores', + addrecord: 'Agregar fila', + showprevedit: 'Mostrar eventos pasados', + nodata: 'Sin datos', + columns: 'Columnas', + tableslist: 'Tablas', + }, + otherpages: { + sito_offline: 'Sitio en actualización', + modifprof: 'Editar Perfil', + biografia: 'Biografia', + error404: 'error404', + error404def: 'error404def', + admin: { + menu: 'Administración', + eventlist: 'Sus Reservas', + usereventlist: 'Reserva Usuarios', + userlist: 'Lista de usuarios', + tableslist: 'Listado de tablas', + navi: 'Naves', + newsletter: 'Newsletter', + pages: 'Páginas', + media: 'Medios', + }, + manage: { + menu: 'Gestionar', + manager: 'Gerente', + nessuno: 'Nadie', + }, + messages: { + menu: 'Tus mensajes', + }, + }, + sendmsg: { + write: 'escribe', + }, + stat: { + imbarcati: 'Embarcados', + imbarcati_weekly: 'Embarcados Semanal', + imbarcati_in_attesa: 'Embarcados en Espera', + qualificati: 'Calificado con al menos 2 invitados', + requisiti: 'Los usuarios con los 7 requisitos', + zoom: 'Participó en Zoom', + modalita_pagamento: 'Métodos de pago insertados', + accepted: 'Guías aceptadas + Video', + dream: 'Escribieron el Sueño', + email_not_verif: 'Correo electrónico no verificado', + telegram_non_attivi: 'Telegrama no activo', + telegram_pendenti: 'Telegram Pendientes', + reg_daily: 'Registros diarios', + reg_weekly: 'Registros Semanales', + reg_total: 'Total de registros', + }, + steps: { + nuovo_imbarco: 'Reserva otro viaje', + vuoi_entrare_nuova_nave: '¿Desea ayudar al Movimiento a avanzar y tiene la intención de entrar en otra nave?
        Haciendo un nuevo regalo de 33 euros, podrá hacer otro viaje y tener otra oportunidad de convertirse en un Soñador!
        ' + + 'Si lo confirma, se le añadirá a la lista de espera para el próximo embarque.', + vuoi_cancellare_imbarco: '¿Está seguro de que quiere cancelar el embarque en el barco de AYNI?', + completed: 'Completado', + passi_su: '{passo} pasos de cada {totpassi}', + video_intro_1: '1. Bienvenido a {sitename}', + video_intro_2: '2. Nacimiento de {sitename}', + read_guidelines: 'He leído y estoy de acuerdo con estos términos escritos anteriormente', + saw_video_intro: 'Declaro que he visto los vídeos', + paymenttype: 'Métodos de pago', // (Obligatorio Paypal) + paymenttype_long: 'Elija al menos 2 métodos de pago, para intercambiar regalos.

        Los métodos de pago son:
        • Revolut:
        • Payeer
        • Paypal
        ', + paymenttype_paypal: 'Cómo abrir una cuenta de Paypal (en 2 minutos)', + paymenttype_paypal_carta_conto: 'Cómo asociar una tarjeta de crédito/débito o una cuenta bancaria en PayPal', + paymenttype_paypal_link: 'Abrir una cuenta con Paypal', + paymenttype_revolut: 'Cómo abrir la cuenta con Revolut (en 2 minutos)', + paymenttype_revolut_link: 'Abrir cuenta con Revolución', + entra_zoom: 'Enter Zoom', + linee_guida: 'Acepto las directrices', + video_intro: 'Veo los videos', + zoom: 'Hacer 1 zoom de bienvenida
        (mira la home para fechas)', + zoom_si_partecipato: 'Vous avez participé à au moins 1 Zoom', + zoom_gia_partecipato: 'Hai gia partecipato alla Video-Conferenza di Benvenuto', + zoom_partecipa: 'Participó al menos 1 Zoom', + zoom_no_partecipato: 'Aún no ha participado en un Zoom (es un requisito para entrar)', + zoom_long: 'Se requiere que participe en al menos 1 Zoom, pero se recomienda participar en el movimiento de una manera más activa.

        Al participar en los Zooms el Staff registrará la asistencia y usted estará habilitado.', + zoom_what: 'Tutoriales de cómo instalar Zoom Cloud Meeting', + // sharemovement_devi_invitare_almeno_2: 'Todavía no has invitado a dos personas', + // sharemovement_hai_invitato: 'Invitaste al menos a dos personas', + sharemovement_invitati_attivi_si: 'Tienes al menos 2 personas invitadas Activo', + sharemovement_invitati_attivi_no: 'Nota:Las personas que invitaste, para ser Activo, deben haber completado todos los primeros 7 Requisitos (ver tu Lavagna para ver lo que les falta)', + sharemovement: 'Invitar al menos a 2 personas', + sharemovement_long: 'Continúo trabajando con mis compañeros para llegar al día en que mi barco zarpe.
        ', + inv_attivi_long: '', + enter_prog_completa_requisiti: 'Complete todos los requisitos para entrar en la lista de embarque.', + enter_prog_requisiti_ok: 'Ha completado los 7 requisitos para entrar en la lista de embarque.
        ', + enter_prog_msg: '¡Recibirá un mensaje en los próximos días tan pronto como su nave esté lista!', + enter_prog_msg_2: '', + enter_nave_9req_ok: '¡FELICIDADES! ¡Has completado los 7 pasos de la Guía! ¡Gracias por ayudar a {sitename} a expandirse!
        Podrás salir muy pronto con tu viaje, haciendo tu regalo y continuando hacia el Soñador.', + enter_nave_9req_ko: 'Recuerda que puedes ayudar a que el Movimiento crezca y se expanda compartiendo nuestro viaje con todos!', + enter_prog: 'Voy a entrar en Lista Programación', + enter_prog_long: 'Si se cumplen los requisitos, entrará en el Programa, se le añadirá al Ticket y al correspondiente chat de grupo.
        ', + collaborate: 'Colaboración', + collaborate_long: 'Sigo trabajando con mis compañeros para llegar al día de la programación donde mi boleto será activado.', + dream: 'Escribo mi sueño', + dream_long: 'Escribe aquí el sueño por el que entraste en {sitename} y que deseas realizar. ¡Será compartido con todos los demás para soñar juntos!', + dono: 'Regalo', + dono_long: 'Hago mi regalo en la fecha de salida de mi nave', + support: 'Apoyo el movimiento', + support_long: 'Apoyo el movimiento aportando energía, participando y organizando Zoom, ayudando e informando a los recién llegados y continuando difundiendo la visión de {sitename}.', + ricevo_dono: 'Recibo mi regalo y CELEBRO', + ricevo_dono_long: '¡Hurra!
        ¡Este movimiento es real y posible si lo hacemos funcionar todos juntos!', + }, + dialog: { + continue: 'Continuar', + close: 'Cerrar', + copyclipboard: 'Copiado al portapapeles', + ok: 'Vale', + yes: 'Sí', + no: 'No', + delete: 'Borrar', + cancel: 'Cancelar', + update: 'Actualiza', + add: 'Aggrega', + today: 'Hoy', + book: 'Reserva', + avanti: 'Adelante', + indietro: 'Regresar', + finish: 'Final', + sendmsg: 'Envia Mensaje', + sendonlymsg: 'Envia solo Mensaje', + msg: { + titledeleteTask: 'Borrar Tarea', + deleteTask: 'Quieres borrar {mytodo}?', + }, + }, + comp: { + Conta: 'Conta', + }, + db: { + recupdated: 'Registro Actualizado', + recfailed: 'Error durante el registro de actualización', + reccanceled: 'Actualización cancelada Restaurar valor anterior', + deleterecord: 'Eliminar registro', + deletetherecord: '¿Eliminar el registro?', + deletedrecord: 'Registro cancelado', + recdelfailed: 'Error durante la eliminación del registro', + duplicatedrecord: 'Registro Duplicado', + recdupfailed: 'Error durante la duplicación de registros', + }, + components: { + authentication: { + telegram: { + open: 'Haga clic aquí para abrir el BOT Telegram y siga las instrucciones.', + ifclose: 'Si no abre el Telegrama haciendo clic en el botón o lo ha borrado, vaya a Telegrama y busque "{botname}" en el icono de la lente, luego presione Start y siga las instrucciones.', + openbot: 'Abres BOT Telegram', + }, + login: { + facebook: 'Facebook', + }, + email_verification: { + title: 'Crea una cuenta', + introduce_email: 'ingrese su dirección de correo electrónico', + email: 'Email', + invalid_email: 'Tu correo electrónico no es válido', + verify_email: 'Revisa tu email', + go_login: 'Vuelve al Login', + incorrect_input: 'Entrada correcta.', + link_sent: 'Ahora lea su correo electrónico y confirme el registro', + se_non_ricevo: 'Si no recibes el correo electrónico, intenta comprobar el spam o ponte en contacto con nosotros.', + title_unsubscribe: 'Anular suscripción al boletín', + title_unsubscribe_done: 'Suscripción completada con éxito', + }, + }, + }, + fetch: { + errore_generico: 'Error genérico', + errore_server: 'No se puede acceder al Servidor. Inténtalo de nuevo, Gracias', + error_doppiologin: 'Vuelva a iniciar sesión. Acceso abierto por otro dispositivo.', + }, + user: { + notregistered: 'Debe registrarse en el servicio antes de poder almacenar los datos', + loggati: 'Usuario no ha iniciado sesión', + }, + templemail: { + subject: 'Objecto Email', + testoheadermail: 'Encabezamiento Email', + content: 'Contenido', + img: 'Imagen 1', + img2: 'Imagen 2', + content2: 'Contenuto 2', + options: 'Opciones', + }, + dashboard: { + data: 'Fecha', + data_rich: 'Fecha Pedido', + ritorno: 'Regreso', + invitante: 'Invitando', + num_tessitura: 'Numero di Tessitura:', + attenzione: 'Atención', + downline: 'Invitados', + downnotreg: 'Invitados no Registrados', + notreg: 'No Registrado', + inv_attivi: 'Invitado con los 5 requisitos', + numinvitati: 'Al menos 2 invitados', + telefono_wa: 'Contacto en Whatsapp', + sendnotification: 'Enviar notificación al destinatario del telegrama BOT', + ricevuto_dono: '😍🎊 Usted recibió una invitación de regalo de {invitato} de {mittente} !', + ricevuto_dono_invitante: '😍🎊 Usted recibió un invitando como regalo de {mittente} !', + nessun_invitante: 'No invitando', + nessun_invitato: 'No invitado', + legenda_title: 'Haga clic en el nombre del huésped para ver el estado de sus requisitos', + nave_in_partenza: 'que Sale el', + nave_in_chiusura: 'Cierre Gift Chat', + nave_partita: 'partió en', + tutor: 'Tutor', + Editor: 'Editor', + /* Cuando te conviertes en Mediador vienes contactado por un TUTOR, con él debes:
          ' + + '
        1. Abrir tu Gift Chat (tu como propietario, y el Tutor ' + + 'como administrador) con este nombre:
          {nomenave}
        2. ' + + '
        3. Haz clic en tu nombre en la chat en la parte de arriba-> Modifica -> Administradores -> "Agregar Administrador", selecciona el Tutor en el elenco.
        4. ' + + '
        5. Debes configurar la chat en modo que quien entre vea también los post precedentes (haz clic en el nombre en la chat arriba, haz clic en modificar, ' + + 'cambia la "cronología para los nuevos miembros" de oculto a visible.
        6. ' + + '
        7. Para encontrar el link de la Chat recién creada: haz clic en el nombre de la chat en la parte de arriba, haz clic sobre el Lápiz-> "Tipo de Grupo" -> "invita al grupo tràmite link", haz clic en "copiar link" y pégalo aquí abajo, sobre la casilla "Link Gift Chat"
        8. ' + + '
        9. Envía el Link de la Gift Chat a todos los Donadores, haciendo clic en el botón aquí abajo.
        ', + */ + + sonomediatore: 'Cuando seas un MEDIADOR serás contactado por TUTOR AYNI a través de un mensaje en el Chat AYNI BOT.', + superchat: 'Nota: SOLO si tienes problemas de PAGO, o si quieres ser REEMPLAZADO, dos Tutores están esperando para ayudarte en el Chat:
        Entrar en el Chat de Regalos.', + sonodonatore: '
        1. Cuando estás en esta posición, vendrás invitado (desde un mensaje en el Chat AYNI BOT) para hacer tu regalo.
        2. ' + + '
        3. Tendrás 3 días para hacer tu regalo, en la modalidad de pago que encontrarás escrita en el mensaje.
        ', + sonodonatore_seconda_tessitura: '
        1. Aqui tu eres Mediador y también Donador, pero siendo tu segundo Tejido, no será necesario efectuar nuevamente tu regalo
        ', + controlla_donatori: 'Revise la lista de donantes', + link_chat: 'Enlaces del Gift Chat Telegram', + tragitto: 'Ruta', + nave: 'Nave', + data_partenza: 'Fecha
        Salida', + doni_inviati: 'Regalos
        enviados', + nome_dei_passaggi: 'Nombre de los pasajes', + donatori: 'Donantes', + donatore: 'Donante', + mediatore: 'Mediador', + sognatore: 'Soñador', + sognatori: 'SOÑADOR', + intermedio: 'INTERMEDIO', + pos2: 'Interm. 2', + pos3: 'Interm. 3', + pos5: 'Interm. 5', + pos6: 'Interm. 6', + gift_chat: 'Para entrar en el Gift Chat, haz clic aquí', + quando_eff_il_tuo_dono: 'Cuándo hacer el regalo', + entra_in_gift_chat: 'Entra en el Gift Chat', + invia_link_chat: 'Enviar enlace de chat de regalos a los donantes', + inviare_msg_donatori: '5) Enviar mensaje a los donantes', + msg_donatori_ok: 'Enviado mensaje a los donantes', + metodi_disponibili: 'Métodos disponibles', + importo: 'Cantidad', + effettua_il_dono: 'Es hora de hacer tu regalo al Soñador
        👉 {sognatore} 👈 !
        ' + + 'Enviar por medio de PayPal a: {email}
        ' + + 'ADVERTENCIA: Elija la opción "ENVIAR A un AMIGO")
        ', + paypal_me: '
        2) Método simplificado
        Click directamente aquí
        ' + + 'abrirá PayPal con el importe y el destinatario ya establecido.
        ' + + 'Añadir como mensaje: Regalo
        ' + + 'ADVERTENCIA: NO MARCAR LA CAJA
        : Protección de compras por Paypal
        ' + + 'Si tienes alguna duda, mira el video de abajo para ver cómo:
        ' + + 'Por último, haga clic en "Enviar dinero ahora"', + qui_compariranno_le_info: 'El día de la salida de la nave, la información del Soñador aparecerá', + commento_al_sognatore: 'Escribe aquí un comentario para el Soñador:', + posizione: 'Position', + come_inviare_regalo_con_paypal: 'Cómo enviar el regalo a través de Paypal', + ho_effettuato_il_dono: 'He realizado el Regalo', + clicca_conferma_dono: 'Haz clic aquí para confirmar que has hecho tu regalo', + fatto_dono: 'Ha confirmado que el regalo ha sido enviado', + confermi_dono: 'Confirme que ha enviado su regalo de 33 €', + dono_ricevuto: 'Tu regalo ha sido recibido!', + dono_ricevuto_2: 'Recibido', + dono_ricevuto_3: 'Ha llegado!', + confermi_dono_ricevuto: 'Confirme que ha recibido el regalo de 33 € de {donatore}', + confermi_dono_ricevuto_msg: 'Confermado que ha recibido el regalo de 33 € de {donatore}', + msg_bot_conferma: '{donatore} ha confirmado que ha enviado su regalo de 33€ a {sognatore} (Commento: {commento})', + ricevuto_dono_ok: 'Ha confirmado que el regalo ha sido recibido', + entra_in_lavagna: 'Entra en tu tablero para ver los barcos que salen', + doni_ricevuti: 'Regalos recibidos', + doni_inviati_da_confermare: 'Regalos enviados (a confirmar)', + doni_mancanti: 'Regalos que faltan', + temporanea: 'Temporal', + nave_provvisoria: 'Se le ha asignado un NAVE TEMPORAL.
        Es normal que vea un cambio en la fecha de salida, debido a la actualización del ranking de pasajeros.', + ritessitura: 'RETEJIDA', + }, + reg: { + volta: 'vez', + volte: 'veces', + registered: 'Registrado', + contacted: 'Contacto', + name_complete: 'Nombre Completo', + num_invitati: 'Num.Invitados', + is_in_whatsapp: 'En Whatsapp', + is_in_telegram: 'En Telegram', + cell_complete: 'Movíl', + failed: 'Fallido', + ind_order: 'Num', + ipaddr: 'IP', + verified_email: 'Correo electrónico verificado', + reg_lista_prec: 'Por favor, introduzca el nombre, apellido y número de teléfono móvil que dejó en el pasado cuando se registró en el Chat!
        De esta manera el sistema le reconocerá y mantendrá la posición de la lista.', + nuove_registrazioni: 'Si se trata de un NUEVO registro, debe ponerse en contacto con la persona que le ha INVITADO, que le dejará el LINK CORRECTO para hacer el registro bajo él/ella', + you: 'Tu', + cancella_invitato: 'Eliminar Invitado', + regala_invitato: 'Dar Invitado', + regala_invitante: 'Dar Invitando', + messaggio_invito: 'Mensaje de invitación', + messaggio_invito_msg: 'Copie el mensaje que aparece a continuación y compártalo con todos aquellos con los que desee compartir este Movimiento !', + videointro: 'Video Introduttivo', + invitato_regalato: 'Invitato Regalado', + invitante_regalato: 'Invitando Regalato', + legenda: 'Legenda', + aportador_solidario: 'Aportador Solidario', + username_regala_invitato: 'Nombre de usuario del destinatario del regalo', + aportador_solidario_nome_completo: 'A.S. Nombre', + aportador_solidario_ind_order: 'A.S.Ind', + reflink: 'Enlaces para compartir con tus amigos:', + linkzoom: 'Enlace para ingresar en Zoom', + page_title: 'Registro', + made_gift: 'Don', + note: 'Notas', + incorso: 'Registro en curso...', + richiesto: 'Campo requerido', + email: 'Email', + intcode_cell: 'Prefijo Int.', + cell: 'Móvil Telegram', + cellreg: 'Cellulare con cui ti eri registrato', + nationality: 'Nacionalidad', + email_paypal: 'Email Paypal', + revolut: 'Revolut', + link_payment: 'Enlaces Paypal Moneybox', + note_payment: 'Notas adicionales', + country_pay: 'País del Pagos de destino', + username_telegram: 'Usuario Telegram', + telegram: 'Chat Telegram \'{botname}\'', + teleg_id: 'Telegram ID', + teleg_auth: 'Código de autorización', + click_per_copiare: 'Haz click en él para copiarlo al portapapeles', + copia_messaggio: 'Copiar mensaje', + teleg_torna_sul_bot: '1) Copiar el código haciendo clic en el botón de arriba
        2) volver a {botname} haciendo clic en 👇 y pegar (o escribir) el código', + teleg_checkcode: 'Código Telegram', + my_dream: 'Mi Sueño', + saw_and_accepted: 'Condizioni', + saw_zoom_presentation: 'Ha visto Zoom', + manage_telegram: 'Gestori Telegram', + paymenttype: 'Métodos de pago disponibles', + selected: 'seleccionado', + select: 'selecciona', + img: 'File image', + date_reg: 'Fecha Reg.', + deleted: 'Cancellato', + requirement: 'Requisitos', + perm: 'Permisos', + username: 'Username (Apodo)', + username_short: 'Username', + name: 'Nombre', + surname: 'Apellido', + username_login: 'Nombre usuario o email', + password: 'contraseña', + repeatPassword: 'Repetir contraseña', + terms: 'Acepto los términos por la privacidad', + onlyadult: 'Confirmo que soy mayor de edad', + submit: 'Registrarse', + title_verif_reg: 'Verifica registro', + reg_ok: 'Registro exitoso', + verificato: 'Verificado', + non_verificato: 'No Verificado', + forgetpassword: '¿Olvidaste tu contraseña?', + modificapassword: 'Cambiar la contraseña', + err: { + required: 'se requiere', + email: 'Debe ser una email válida.', + errore_generico: 'Por favor, rellene los campos correctamente', + atleast: 'debe ser al menos largo', + complexity: 'debe contener al menos 1 minúscula, 1 mayúscula, 1 dígito', + notmore: 'no tiene que ser más largo que', + char: 'caracteres', + terms: 'Debes aceptar las condiciones, para continuar..', + email_not_exist: 'El correo electrónico no está presente en el archivo, verifique si es correcto', + duplicate_email: 'La email ya ha sido registrada', + user_already_exist: 'El registro con estos datos (nombre, apellido y teléfono móvil) ya se ha llevado a cabo. Para acceder al sitio, haga clic en el botón INICIAR SESIÓN desde la Página de inicio.', + user_extralist_not_found: 'Usuario en el archivo no encontrado, inserte el nombre, apellido y número de teléfono enviado previamente', + user_not_this_aportador: 'Stai utilizzando un link di una persona diversa dal tuo invitato originale.', + duplicate_username: 'El nombre de usuario ya ha sido utilizado', + username_not_valid: 'Username not valid', + aportador_not_exist: 'El nombre de usuario de la persona que lo invitó no está presente. Contactanos.', + aportador_regalare_not_exist: 'Inserire l\'Username della persona che si vuole regalare l\'invitato', + sameaspassword: 'Las contraseñas deben ser idénticas', + }, + tips: { + email: 'inserisci la tua email', + username: 'username lunga almeno 6 caratteri', + password: 'deve contenere 1 minuscola, 1 maiuscola e 1 cifra', + repeatpassword: 'ripetere la password', + + }, + }, + op: { + qualification: 'Calificación', + usertelegram: 'Username Telegram', + disciplines: 'Disciplinas', + certifications: 'Certificaciones', + intro: 'Introducción', + info: 'Biografia', + webpage: 'Página web', + days_working: 'Días laborables', + facebook: 'Página de Facebook', + }, + login: { + page_title: 'Login', + incorso: 'Login en curso', + enter: 'Entra', + esci: 'Salir', + errato: 'Nombre de usuario, correo o contraseña incorrectos. inténtelo de nuevo', + subaccount: 'Esta cuenta ha sido fusionada con su inicial. Ingresa usando el nombre de usuario (y el correo electrónico) de tu PRIMERA cuenta.', + completato: 'Login realizado!', + needlogin: 'Debes iniciar sesión antes de continuar', + }, + reset: { + title_reset_pwd: 'Restablece tu contraseña', + send_reset_pwd: 'Enviar restablecer contraseña', + incorso: 'Solicitar nueva Email...', + email_sent: 'Email enviada', + check_email: 'Revise su correo electrónico, recibirá un mensaje con un enlace para restablecer su contraseña. Este enlace, por razones de seguridad, expirará después de 4 horas.', + title_update_pwd: 'Actualiza tu contraseña', + update_password: 'Actualizar contraseña', + }, + logout: { + uscito: 'Estás desconectado', + }, + errors: { + graphql: { + undefined: 'no definido', + }, + }, + showbigmap: 'Mostrar el mapa más grande', + todo: { + titleprioritymenu: 'Prioridad:', + inserttop: 'Ingrese una nueva Tarea arriba', + insertbottom: 'Ingrese una nueva Tarea abajo', + edit: 'Descripción Tarea:', + completed: 'Ultimos Completados', + usernotdefined: 'Atención, debes iniciar sesión para agregar una Tarea', + start_date: 'Fecha inicio', + status: 'Estado', + completed_at: 'Fecha de finalización', + expiring_at: 'Fecha de Caducidad', + phase: 'Fase', + }, + notification: { + status: 'Estado', + ask: 'Activar notificaciones', + waitingconfirm: 'Confirmar la solicitud de notificación.', + confirmed: 'Notificaciones activadas!', + denied: 'Notificaciones deshabilitadas! Ten cuidado, así no verás llegar los mensajes. Rehabilítalos para verlos.', + titlegranted: 'Notificaciones permitidas habilitadas!', + statusnot: 'Estado Notificaciones', + titledenied: 'Notificaciones permitidas deshabilitadas!', + title_subscribed: 'Suscripción a FreePlanet.app!', + subscribed: 'Ahora puedes recibir mensajes y notificaciones.', + newVersionAvailable: 'Actualiza', + }, + connection: 'Connection', + proj: { + newproj: 'Título Projecto', + newsubproj: 'Título Sub-Projecto', + insertbottom: 'Añadir nuevo Proyecto', + longdescr: 'Descripción', + hoursplanned: 'Horas Estimadas', + hoursleft: 'Horas Restantes', + hoursadded: 'Horas Adicional', + hoursworked: 'Horas Trabajadas', + begin_development: 'Comienzo desarrollo', + begin_test: 'Comienzo Prueba', + progresstask: 'Progresion', + actualphase: 'Fase Actual', + hoursweeky_plannedtowork: 'Horarios semanales programados', + endwork_estimate: 'Fecha estimada de finalización', + privacyread: 'Quien puede verlo:', + privacywrite: 'Quien puede modificarlo:', + totalphases: 'Fases totales', + themecolor: 'Tema Colores', + themebgcolor: 'Tema Colores Fondo', + }, + where: { + code: 'Id', + whereicon: 'Icono', + }, + col: { + label: 'Etichetta', + value: 'Valore', + type: 'Tipo', + }, + cal: { + num: 'Número', + booked: 'Reservado', + booked_error: 'Reserva fallida. Intenta nuevamente más tarde', + sendmsg_error: 'Mensaje no enviado Intenta nuevamente más tarde', + sendmsg_sent: 'Mensaje enviado', + booking: 'Reserva Evento', + titlebooking: 'Reserva', + modifybooking: 'Edita Reserva', + cancelbooking: 'Cancelar Reserva', + canceledbooking: 'Reserva Cancelada', + cancelederrorbooking: 'Cancelación no realizada, intente nuevamente más tarde', + cancelevent: 'Cancella Evento', + canceledevent: 'Evento Cancellato', + cancelederrorevent: 'Cancellazione Evento non effettuata, Riprovare', + event: 'Evento', + starttime: 'Inicio', + nextevent: 'Próximo evento', + readall: 'Lee todo', + enddate: 'a', + endtime: 'fin', + duration: 'Duración', + hours: 'Tiempo', + when: 'Cuando', + where: 'Donde', + teacher: 'Dirigido por', + enterdate: 'Ingresar la fecha', + details: 'Detalles', + infoextra: 'Fecha y Hora Extras:', + alldayevent: 'Todo el dia', + eventstartdatetime: 'Inicio', + enterEndDateTime: 'final', + selnumpeople: 'Partecipantes', + selnumpeople_short: 'Num', + msgbooking: 'Mensaje para enviar', + showpdf: 'Ver PDF', + bookingtextdefault: 'Reservo para', + bookingtextdefault_of: 'de', + data: 'Fecha', + teachertitle: 'Maestro', + peoplebooked: 'Reserv.', + showlastschedule: 'Ver todo el calendario', + }, + msgs: { + message: 'Mensaje', + messages: 'Mensajes', + nomessage: 'Sin Mensaje', + }, + event: { + _id: 'id', + typol: 'Typology', + short_tit: 'Título Corto', + title: 'Título', + details: 'Detalles', + bodytext: 'Texto del evento', + dateTimeStart: 'Fecha de Inicio', + dateTimeEnd: 'Fecha Final', + bgcolor: 'Color de fondo', + days: 'Días', + icon: 'Icono', + img: 'Nombre Imagen', + img_small: 'Imagen Pequeña', + where: 'Dónde', + contribtype: 'Tipo de Contribución', + price: 'Precio', + askinfo: 'Solicitar información', + showpage: 'Ver página', + infoafterprice: 'notas después del precio', + teacher: 'Profesor', // teacherid + teacher2: 'Profesor2', // teacherid2 + infoextra: 'InfoExtra', + linkpage: 'Sitio WEb', + linkpdf: 'Enlace ad un PDF', + nobookable: 'No Reservable', + news: 'Novedad', + dupId: 'Id Duplicado', + canceled: 'Cancelado', + deleted: 'Eliminado', + duplicate: 'Duplica', + notempty: 'El campo no puede estar vacío.', + modified: 'Modificado', + showinhome: 'Mostrar en la Home', + showinnewsletter: 'Mostrar en el boletín', + color: 'Titulo Color', + }, + disc: { + typol_code: 'Código Tipologìa', + order: 'Clasificación', + }, + newsletter: { + title: '¿Desea recibir nuestro boletín informativo?', + name: 'Tu Nombre', + surname: 'Tu Apellido', + namehint: 'Nombre', + surnamehint: 'Apellido', + email: 'tu correo', + submit: 'Subscribete', + reset: 'Reiniciar', + typesomething: 'Llenar el campo', + acceptlicense: 'Acepto la licencia y los términos', + license: 'Necesitas aceptar la licencia y los términos primero', + submitted: 'Subscrito', + menu: 'Newsletter1', + template: 'Plantillas de Email', + sendemail: 'Enviar', + check: 'Verificar', + sent: 'Ya eniado', + mailinglist: 'Lista de contactos', + settings: 'Configuración', + serversettings: 'Servidor', + others: 'Otro', + templemail: 'Plantilla de Email', + datetoSent: 'Fecha y Ora de Envio', + activate: 'Activado', + numemail_tot: 'Email Total', + numemail_sent: 'Email Enviados', + datestartJob: 'Inicio Envio', + datefinishJob: 'Fin Envio', + lastemailsent_Job: 'Ùltimo enviado', + starting_job: 'Comenzó a enviar', + finish_job: 'Envio terminado', + processing_job: 'En curso', + error_job: 'Info Error', + statesub: 'Subscribir', + wrongerr: 'Email invalide', + }, + privacy_policy: 'Política de privacidad', + cookies: 'Utilizamos cookies para un mejor rendimiento web.', + }, +}; + +export default msg_es; diff --git a/src/statics/lang/fr.js b/src/statics/lang/fr.js new file mode 100755 index 00000000..f3fbf663 --- /dev/null +++ b/src/statics/lang/fr.js @@ -0,0 +1,631 @@ +const msg_fr = { + fr: { + words: { + da: 'du', + a: 'au', + }, + home: { + guida: 'Guide', + guida_passopasso: 'Guide pas-à-pas', + }, + grid: { + editvalues: 'Changer les valeurs', + addrecord: 'Ajouter une ligne', + showprevedit: 'Afficher les événements passés', + nodata: 'Pas de données', + columns: 'Colonnes', + tableslist: 'Tables', + }, + otherpages: { + sito_offline: 'Site en cours de mise à jour', + modifprof: 'Modifier le profil', + biografia: 'Biografia', + error404: 'error404', + error404def: 'error404def', + admin: { + menu: 'Administration', + eventlist: 'Vos réservations', + usereventlist: 'Réservation Utilisateur', + userlist: 'Liste d\'utilisateurs', + tableslist: 'Liste des tables', + navi: 'Navires', + newsletter: 'Newsletter', + pages: 'Pages', + media: 'Médias', + }, + manage: { + menu: 'Gérer', + manager: 'Directeur', + nessuno: 'Aucun', + }, + messages: { + menu: 'Vos messages', + }, + }, + sendmsg: { + write: 'écrit', + }, + stat: { + imbarcati: 'Embarqués', + imbarcati_weekly: 'Embarqués hebdomadaire', + imbarcati_in_attesa: 'Embarqués en attente', + qualificati: 'Qualifié avec au moins 2 invités', + requisiti: 'Utilisateurs ayant les 7 exigences', + zoom: 'Participer à Zoom', + modalita_pagamento: 'Insertion des modes de paiement', + accepted: 'Lignes directrices acceptées + vidéo', + dream: 'Ils ont écrit le Rêve', + email_not_verif: 'Courriel non vérifié', + telegram_non_attivi: 'Telegram non actif', + telegram_pendenti: 'Telegram Pendants', + reg_daily: 'Enregistrements quotidiennes', + reg_weekly: 'Enregistrements hebdomadaires', + reg_total: 'Total des enregistrements', + }, + steps: { + nuovo_imbarco: 'Réserver un autre voyage', + vuoi_entrare_nuova_nave: 'Vous souhaitez aider le Mouvement à avancer et avez l\'intention d\'entrer dans un autre navire ?
        En faisant un nouveau don de 33€, vous pourrez faire un autre voyage et avoir une autre opportunité de devenir un Rêveur !
        ' + + 'Si vous confirmez, vous serez ajouté à la liste d\'attente pour le prochain embarquement.', + vuoi_cancellare_imbarco: 'Êtes-vous sûr de vouloir annuler cet embarquement sur le navire AYNI ?', + completed: 'Complétée', + passi_su: '{passo} étapes sur {totpassi}', + video_intro_1: '1. Bienvenue à l\'{sitename}', + video_intro_2: '2. Naissance de l\'{sitename}', + read_guidelines: 'J\'ai lu et j\'accepte ces conditions écrites ci-dessus', + saw_video_intro: 'Je déclare avoir vu la vidéo', + paymenttype: 'Méthodes de paiement', + paymenttype_long: 'Choisissez au moins 2 modes de paiement, pour échanger des cadeaux.

        Les modes de paiement sont :
        • Payeer
        • Revolut : la carte prépayée Revolut avec IBAN anglais (hors UE) complètement gratuite, plus gratuite et facile à utiliser. Disponible l\'application pour mobile.
        • Paypal MoneyBoxcar c\'est un système très populaire dans toute l\'Europe (le transfert est gratuit) et vous pouvez connecter des cartes prépayées, des cartes de crédit et un compte bancaire SANS COMMISSIONS. De cette façon, vous n\'aurez pas à partager vos numéros de carte ou de c/c mais seulement l\'email que vous avez utilisé lors de l\'inscription sur Paypal. Disponible l\'application pour votre téléphone portable.
        ', + paymenttype_paypal: 'Comment ouvrir un compte Paypal (en 2 minutes)Comment ouvrir un compte Paypal (en 2 minutes)', + paymenttype_paypal_carta_conto: 'Comment associer une carte de crédit/débit ou un compte bancaire sur PayPal', + paymenttype_paypal_link: 'Ouverture d\'un compte avec Paypal', + paymenttype_revolut: 'Comment ouvrir un compte chez Revolut (en 2 minutes)', + paymenttype_revolut_link: 'Ouvrir un compte auprès de Revolut', + entra_zoom: 'Enter Zoom', + linee_guida: "J'accepte les lignes directrices", + video_intro: 'Je vois la vidéo', + zoom: 'A participé à au moins 1 Zoom', + zoom_si_partecipato: 'Vous avez participé à au moins 1 Zoom', + zoom_gia_partecipato: 'Hai gia partecipato alla Video-Conferenza di Benvenuto', + zoom_partecipa: 'A participé à au moins 1 Zoom', + zoom_no_partecipato: "Vous n'avez pas encore participé à un Zoom (il est obligatoire d'entrer)", + zoom_long: 'Vous devez participer à au moins un Zoom, mais il est recommandé de participer au mouvement de manière plus active.

        En participant aux Zooms, le personnel enregistrera votre présence et vous serez activé. ', + zoom_what: "Tutoriels d'installation de Zoom Cloud Meeting", + // sharemovement_devi_invitare_almeno_2: 'Vous n\'avez toujours pas invité 2 personnes', + // sharemovement_hai_invitato: 'Vous avez invité au moins deux personnes', + sharemovement_invitati_attivi_si: 'Vous avez au moins 2 personnes invitées Active', + sharemovement_invitati_attivi_no: 'Note:Les personnes que vous avez invitées, pour être Actif, doivent avoir complété les 7 premières exigences (voir votre Lavagna pour voir ce qu\'il leur manque)', + sharemovement: 'Invitation au moins 2 personnes', + sharemovement_long: 'Partagez le mouvement {sitename} et invitez-les à participer aux zooms de bienvenue pour faire partie de cette grande famille 😄 .
        .', + inv_attivi_long: '', + enter_prog_completa_requisiti: 'Remplissez toutes les conditions pour figurer sur la liste d\'embarquement.', + enter_prog_requisiti_ok: 'Vous avez rempli les 5 conditions pour figurer sur la liste d\'embarquement.
        ', + enter_prog_msg: 'Vous recevrez un message dans les prochains jours dès que votre bateau sera prêt !', + enter_prog_msg_2: '', + enter_nave_9req_ok: 'FÉLICITATIONS ! Vous avez suivi les 7 étapes du guide ! Merci d\'avoir aidé {sitename} à se développer !
        Vous pourrez bientôt partir avec votre Voyage, en faisant votre don et en continuant vers le Rêveur.', + enter_nave_9req_ko: 'N\'oubliez pas que vous pouvez aider le Mouvement à grandir et à s\'étendre en partageant notre voyage avec tout le monde !', + enter_prog: 'Je vais dans la Liste des Programmation', + enter_prog_long: 'Si vous remplissez les conditions requises pour entrer dans le programme, vous serez ajouté au billet et au chat de groupe correspondant
        ', + collaborate: 'Collaboration', + collaborate_long: 'Je continue à travailler avec mes compagnons pour arriver au jour où mon navire prendra la mer.', + dream: 'J\'écris mon rêve', + dream_long: 'Ecrivez ici le Rêve pour lequel vous êtes entré à {sitename} et que vous souhaitez réaliser.
        Il sera partagé avec tous les autres pour rêver ensemble !', + dono: 'Cadeau', + dono_long: 'Je fais mon cadeau à la date de départ de mon nef', + support: 'Je soutiens le mouvement', + support_long: 'Je soutiens le mouvement en apportant de l\'énergie, en participant et en organisant Zoom, en aidant et en informant les nouveaux arrivants et en continuant à diffuser la vision d\'{sitename}.', + ricevo_dono: 'Je reçois mon cadeau et je CÉLÈBRE', + ricevo_dono_long: 'Hourra ! !!!
        CE MOUVEMENT EST RÉEL ET POSSIBLE SI NOUS TRAVAILLONS TOUS ENSEMBLE !', + }, + dialog: { + continue: 'Continuer', + close: 'Fermer', + copyclipboard: 'Copié dans le presse-papiers', + ok: 'Bien', + yes: 'Oui', + no: 'Non', + delete: 'Supprimer', + update: 'mises à jour', + add: 'Ajouter', + cancel: 'annuler', + today: 'Aujourd\'hui', + book: 'Réserve', + avanti: 'Allez-y', + indietro: 'en arrière', + finish: 'Fin', + sendmsg: 'envoyer msg', + sendonlymsg: 'envoyer seul un msg', + msg: { + titledeleteTask: 'Supprimer la tâche', + deleteTask: 'Voulez-vous supprimer {mytodo}?', + }, + }, + comp: { + Conta: 'Conta', + }, + db: { + recupdated: 'Enregistrement mis à jour', + recfailed: 'Erreur lors de la mise à jour', + reccanceled: 'Mise à jour annulée. Restaurer la valeur précédente', + deleterecord: 'Supprimer l\'enregistrement', + deletetherecord: 'Supprimer l\'enregistrement?', + deletedrecord: 'Enregistrement annulé', + recdelfailed: 'Erreur lors de la suppression de l\'enregistrement', + duplicatedrecord: 'Enregistrement en double', + recdupfailed: 'Erreur lors de la duplication des enregistrements', + }, + components: { + authentication: { + telegram: { + open: 'Cliquez ici pour ouvrir le télégramme BOT et suivez les instructions', + ifclose: 'Si vous n\'ouvrez pas Telegram en cliquant sur le bouton ou si vous l\'avez supprimé, allez à Telegram et cherchez "{botname}" dans l\'icône de l\'objectif, puis appuyez sur Start et suivez les instructions.', + openbot: 'Ouvre BOT Telegram', + }, + login: { + facebook: 'Facebook', + }, + email_verification: { + title: 'Créer un compte', + introduce_email: 'entrez votre adresse email', + email: 'Email', + invalid_email: 'Votre email n\'est pas valide', + verify_email: 'Vérifiez votre email', + go_login: 'Retour à la connexion', + incorrect_input: 'Entrée correcte.', + link_sent: 'Maintenant, lisez votre email et confirmez votre inscription', + se_non_ricevo: 'Si vous ne recevez pas le courriel, essayez de vérifier dans le spam, ou contactez nous', + title_unsubscribe: 'Se désabonner de la newsletter', + title_unsubscribe_done: 'Abonnement terminé avec succès', + }, + }, + }, + fetch: { + errore_generico: 'Erreur générique', + errore_server: 'Le serveur n\'est pas accessible. Essayez encore, Merci', + error_doppiologin: 'Re-connexion Accès ouvert par un autre appareil.', + }, + user: { + notregistered: 'Vous devez vous inscrire auprès du service avant de pouvoir stocker les données.', + loggati: 'L\'utilisateur n\'est pas connecté', + }, + templemail: { + subject: 'Objet Email', + testoheadermail: 'en-tête de courrier électronique', + content: 'Contenu', + img: 'Image 1', + img2: 'Image 2', + content2: 'Contenu 2', + options: 'Options', + }, + dashboard: { + data: 'Date', + data_rich: 'Date demandée', + ritorno: 'Retour', + invitante: 'Invitation', + num_tessitura: 'Numero di Tessitura:', + attenzione: 'Attention', + downline: 'invités', + downnotreg: 'Invités non enregistrés', + notreg: 'Non enregistré', + inv_attivi: 'Invité avec les 5 exigences', + numinvitati: 'Au moins 2 invités', + telefono_wa: 'Contact sur Whatsapp', + sendnotification: 'Envoyer la notification au destinataire par télégramme BOT', + ricevuto_dono: '😍🎊 Vous avez reçu une invitation-cadeau de {invitato} de {mittente} !', + ricevuto_dono_invitante: '😍🎊 Vous avez reçu une invitation-cadeau de {mittente} !', + nessun_invitante: 'Pas d\'invitation', + nessun_invitato: 'Non_invité', + legenda_title: 'Cliquez sur le nom de l\'invité pour voir l\'état de ses besoins', + nave_in_partenza: 'part le', + nave_in_chiusura: 'Clôture Gift Chat', + nave_partita: 'parti sur', + tutor: 'Tuteur', + /* Quand vous devenez Médiateur vous êtes contacté par un TUTEUR, avec lui vous devez:
          ' + + '
        1. Ouvrir votre Gift Chat (vous comme propriétaire et le Tuteur ' + + 'comme administrateur) avec ce nom:
          {nomenave}
        2. ' + + '
        3. Cliquez sur le nom du chat en haut -> Modifiez -> Administrateurs -> "Ajoutez Administrateur", sélectionner le Tuteur dans la liste.
        4. ' + + '
        5. Vous devez configurer le chat de façon que la personne qui entre puisse également voir les post précédents (cliquez sur le nom du chat en haut, cliquez sur modifiez, ' + + 'changez la "chronologie pour les nouveaux membres" de cachée à visibile.
        6. ' + + '
        7. Pour trouver le link du Chat à peine crée: cliquez sur le nom du chat en haut, cliquez sur le Crayon -> "Type de Groupe" -> "invitez dans le groupe à travers le link", cliquez sur "copiez link" et collez-le ci-dessous, dans la case "Link Gift Chat"
        8. ' + + '
        9. Envoyez le Link de la Gift Chat à tous les Donateurs, en cliquant sur le boutton ci-dessous .
        ', + */ + sonomediatore: 'Lorsque vous êtes un MEDIATEUR, vous serez contacté par TUTOR AYNI via un message sur le Chat AYNI BOT.', + superchat: 'Note : SEULEMENT si vous avez des problèmes de PAIEMENT, ou si vous voulez être REMPLACÉ, deux tuteurs vous attendent pour vous aider sur le Chat:
        Get into Gift Chat.', + sonodonatore: '
        1. Quand vous êtes dans cette position, vous serez invité pour faire votre cadeau
        2. ' + + '
        3. Vous aurez 3 jours pour faire votre cadeau.
        ', + sonodonatore_seconda_tessitura: '
        1. Ici vous êtes Médiateur et également Donateur, mais étant le deuxième Tissage, vous n’aurez pas besoin d’éffectuer de nouveau votre don
        ', + controlla_donatori: 'Vérifiez la liste des donateurs', + link_chat: 'Link de Gift Chat Telegram', + tragitto: 'Itinéraire', + nave: 'Navire', + data_partenza: 'Date
        de Départ', + doni_inviati: 'Regalo
        Envoyés', + nome_dei_passaggi: 'Nom
        des passagers', + donatori: 'Donateurs', + donatore: 'Donateur', + mediatore: 'Médiateur', + sognatore: 'Rêveur', + sognatori: 'RÊVEURS', + intermedio: 'INTERMEDIAIRE', + pos2: 'Interm. 2', + pos3: 'Interm. 3', + pos5: 'Interm. 5', + pos6: 'Interm. 6', + gift_chat: 'Pour entrer dans le Gift Chat, cliquez ici', + quando_eff_il_tuo_dono: 'Quand faire le Regalo', + entra_in_gift_chat: 'Entrez dans le "Gift Chat"', + invia_link_chat: 'Envoyer le lien du Chat de cadeaux aux donateurs', + inviare_msg_donatori: '5) Envoyer un message aux donateurs', + msg_donatori_ok: 'Message envoyé aux donateurs', + metodi_disponibili: 'Méthodes disponibles', + importo: 'Montant', + effettua_il_dono: 'Il est temps de faire votre propre regalo au Rêveur
        👉 {sognatore} 👈 ' + + 'Envoyez via PayPal à : {email}
        ' + + 'ATTENTION: Choisissez l\'option "SENDING TO A FRIEND"
        ', + paypal_me: '
        2) Méthode simplifiée
        Cliquez directement ici
        ' + + 'ouvrira PayPal avec le montant et le destinataire déjà définis.
        ' + + 'Ajouter comme message : Regalo
        ' + + 'WARNING: NE COCHEZ PAS LA BOITE : Protection des achats par Paypal
        ' + + 'Si vous avez des doutes, regardez la vidéo ci-dessous pour voir comment:
        ' + + 'Enfin, cliquez sur "Envoyer de l\'argent maintenant"', + qui_compariranno_le_info: 'Le jour du départ du navire, les informations du Dreamer apparaîtront', + commento_al_sognatore: 'Ecrivez ici un commentaire pour le Rêveur:', + posizione: 'Localisation', + come_inviare_regalo_con_paypal: 'Comment envoyer le regalo via Paypal', + ho_effettuato_il_dono: 'J\'ai effectué le Regalo', + clicca_conferma_dono: 'Cliquez ici pour confirmer que vous avez fait votre regalo', + fatto_dono: 'Vous avez confirmé que le Regalo a été envoyé', + confermi_dono: 'Confirmez que vous avez envoyé votre Regalo de 33€', + dono_ricevuto: 'Votre regalo a été reçu!', + dono_ricevuto_2: 'Reçu', + dono_ricevuto_3: 'Arrivé!', + confermi_dono_ricevuto: 'Confirmez que vous avez reçu le regalo de 33 $ de {donatore}', + confermi_dono_ricevuto_msg: 'Confirme la réception du regalo de 33€ de {donatore}', + msg_bot_conferma: '{donatore} a confirmé qu\'il avait envoyé son cadeau de 33 € a {sognatore} (Commento: {commento})', + ricevuto_dono_ok: 'Vous avez confirmé que le cadeau a été reçu', + entra_in_lavagna: 'Montez sur votre tableau noir pour voir les navires au départ', + doni_ricevuti: 'Regalo reçus', + doni_inviati_da_confermare: 'Regalo envoyés (à confirmer)', + doni_mancanti: 'Regalo manquants', + temporanea: 'Temporaire', + nave_provvisoria: 'On vous a attribué une NAVE TEMPORAIRE.
        Il est normal que vous constatiez un changement de date de départ, en raison de la mise à jour du classement des passagers.', + ritessitura: 'ÉCRITURE', + }, + reg: { + volta: 'fois', + volte: 'fois', + registered: 'Registrato', + contacted: 'Contattato', + name_complete: 'Nome Completo', + num_invitati: 'Num.Invitati', + is_in_whatsapp: 'In Whatsapp', + is_in_telegram: 'In Telegram', + cell_complete: 'Cellulare', + failed: 'Fallito', + ind_order: 'Num', + ipaddr: 'IP', + verified_email: 'Email Verified', + reg_lista_prec: 'Veuillez entrer le prénom, le nom et le numéro de téléphone portable que vous avez laissé lors de votre inscription à la Chat !
        De cette façon, le système vous reconnaîtra et conservera la position de la liste', + new_registrations: "S'il s'agit d'une NOUVELLE inscription, vous devez contacter la personne qui vous a INVITÉE, qui vous laissera le LIEN CORRECT pour effectuer l'inscription sous sa responsabilité", + you: 'Vous', + cancella_invitato: 'Supprimer invité', + regala_invitato: 'Invited_gift', + regala_invitante: 'présente invitant', + messaggio_invito: "Message d'invitation", + messaggio_invito_msg: 'Envoyez ce message à tous ceux à qui vous voulez partager ce Mouvement !', + videointro: "Vidéo d'introduction", + invitato_regalato: 'Cadeau invité', + invitante_regalato: 'Cadeau Invitè', + legenda: 'Légende', + aportador_solidario: 'Qui vous a invité', + username_regala_invitato: 'Nom d\'utilisateur du destinataire du cadeau', + aportador_solidario_nome_completo: 'A.S. Nom', + aportador_solidario_ind_order: 'A.S.Ind', + reflink: 'Des liens à partager avec vos invités :', + linkzoom: 'Lien pour entrer en Zoom', + made_gift: 'Doné', + note: 'Notes', + incorso: 'Registrazione in corso...', + richiesto: 'Champ obligatoire', + email: 'Email', + intcode_cell: 'Préfixe int.', + cell: 'Téléphone Telegram', + cellreg: 'Cellulare con cui ti eri registrato', + nationality: 'Nationalité', + email_paypal: 'Email Paypal', + payeer_id: 'Id Payeer', + advcash_id: 'Email Advanced Cash', + revolut: 'Revolut', + link_payment: 'Liens Paypal MoneyBox', + note_payment: 'Notes complémentaires', + country_pay: 'Pays de destination Paiements', + username_telegram: 'Nom d\'utilisateur du Telegram', + telegram: 'Chat Telegram \'{botname}\'', + teleg_id: 'Telegram ID', + teleg_auth: 'Code d\'autorisation', + click_per_copiare: 'Cliquez dessus pour le copier dans le presse-papiers', + copia_messaggio: 'Copier le message', + teleg_torna_sul_bot: '1) Copiez le code en cliquant sur le bouton ci-dessus
        2) retournez à {botname} en cliquant sur 👇 et collez (ou écrivez) le code', + teleg_checkcode: 'Code du Telegram', + my_dream: 'Mon rêve', + saw_and_accepted: 'Condizioni', + saw_zoom_presentation: 'Ha visto Zoom', + manage_telegram: 'Gestori Telegram', + paymenttype: 'Méthodes de paiement disponibles', + selected: 'sélectionné', + select: 'sélectionnez', + img: 'Fichier image', + date_reg: 'Date Inscript.', + requirement: 'Exigences', + perm: 'Autorisations', + username: 'Username (Surnom)', + username_short: 'Username', + name: 'Nom', + surname: 'Prénom', + username_login: 'Nom d\'utilisateur ou email', + password: 'mot de passe', + repeatPassword: 'Répéter le mot de passe', + terms: "J'accepte les conditions de confidentialité", + onlyadult: 'Je confirme que je suis majeur', + submit: "S'inscrire", + title_verif_reg: "Vérifier l'inscription", + reg_ok: 'Enregistrement réussi', + verificato: 'Vérifié', + non_verificato: 'Non vérifié', + forgetpassword: 'Vous avez oublié votre mot de passe?', + modificapassword: 'Changer le mot de passe', + err: { + required: 'c\'est nécessaire', + email: 'Ce doit être un email valide.', + errore_generico: 'S\'il vous plaît remplir les champs correctement', + atleast: 'ça doit être au moins long', + complexity: 'doit contenir au moins 1 minuscule, 1 majuscule, 1 chiffre', + notmore: 'il ne doit pas être plus long que', + char: 'caractères', + terms: 'Vous devez accepter les conditions, pour continuer..', + email_not_exist: 'L\'email n\'est pas présent dans l\'archive, vérifiez s\'il est correct', + duplicate_email: 'L\'email a déjà été enregistré', + user_already_exist: 'L\'enregistrement avec ces données (nom, prénom et téléphone portable) a déjà été effectué. Pour accéder au site, cliquez sur le bouton CONNEXION de la page d\'accueil.', + user_extralist_not_found: 'Utilisateur dans les archives introuvable, insérez le nom, le prénom et le numéro de téléphone portable envoyés précédemment', + user_not_this_aportador: 'Stai utilizzando un link di una persona diversa dal tuo invitato originale.', + duplicate_username: 'Le nom d\'utilisateur a déjà été utilisé', + username_not_valid: 'Username not valid', + aportador_not_exist: 'Le nom d\'utilisateur de la personne qui vous a invité n\'est pas présent. Contactez-nous.', + aportador_regalare_not_exist: 'Inserire l\'Username della persona che si vuole regalare l\'invitato', + sameaspassword: 'Les mots de passe doivent être identiques', + }, + tips: { + email: 'inserisci la tua email', + username: 'username lunga almeno 6 caratteri', + password: 'deve contenere 1 minuscola, 1 maiuscola e 1 cifra', + repeatpassword: 'ripetere la password', + }, + }, + op: { + qualification: 'Qualification', + usertelegram: 'Username Telegram', + disciplines: 'Disciplines', + certifications: 'Certifications', + intro: 'Introduction', + info: 'Biographie', + webpage: 'Page Web', + days_working: 'Jours ouvrés', + facebook: 'Page Facebook', + }, + login: { + page_title: 'Login', + incorso: 'Connexion en cours', + enter: 'Entrez', + esci: 'Sortir', + errato: "Nom d'utilisateur, email ou mot de passe incorrect. réessayer", + subaccount: "Ce compte a été fusionné avec votre compte initial. Connectez-vous en utilisant le nom d'utilisateur (et l'adresse électronique) du compte FIRST.", + completato: 'Connexion faite!', + needlogin: 'Vous devez vous connecter avant de continuer', + }, + reset: { + title_reset_pwd: 'Réinitialiser votre mot de passe', + send_reset_pwd: 'Envoyer un mot de passe de réinitialisation', + incorso: 'Demander un nouvel email...', + email_sent: 'Email envoyé', + token_scaduto: 'Il token è scaduto oppure è stato già usato. Ripetere la procedura di reset password', + check_email: 'Vérifiez votre email, vous recevrez un message avec un lien pour réinitialiser votre mot de passe. Ce lien, pour des raisons de sécurité, expirera au bout de 4 heures.', + title_update_pwd: 'Mettez à jour votre mot de passe', + update_password: 'Mettre à jour le mot de passe', + }, + logout: { + uscito: 'Vous êtes déconnecté', + }, + errors: { + graphql: { + undefined: 'non défini', + }, + }, + showbigmap: 'Montrer la plus grande carte', + todo: { + titleprioritymenu: 'Prioridad:', + inserttop: 'Ingrese una nueva Tarea arriba', + insertbottom: 'Ingrese una nueva Tarea abajo', + edit: 'Descripción Tarea:', + completed: 'Ultimos Completados', + usernotdefined: 'Atención, debes iniciar sesión para agregar una Tarea', + start_date: 'Fecha inicio', + status: 'Estado', + completed_at: 'Fecha de finalización', + expiring_at: 'Fecha de Caducidad', + phase: 'Fase', + }, + notification: { + status: 'Etat', + ask: 'Activer les notifications', + waitingconfirm: 'Confirmer la demande de notification.', + confirmed: 'Notifications activées!', + denied: 'Notifications désactivées! Attention, vous ne verrez pas les messages arriver. Réhabilitez-les pour les voir.', + titlegranted: 'Notifications activées activées!', + statusnot: 'Notifications d\'état', + titledenied: 'Notifications autorisées désactivées!', + title_subscribed: 'Abonnement au Site Web!', + subscribed: 'Maintenant, vous pouvez recevoir des messages et des notifications.', + newVersionAvailable: 'Mise à jour', + }, + connection: 'Connexion', + proj: { + newproj: 'Título Projecto', + newsubproj: 'Título Sub-Projecto', + insertbottom: 'Añadir nuevo Proyecto', + longdescr: 'Descripción', + hoursplanned: 'Horas Estimadas', + hoursleft: 'Horas Restantes', + hoursadded: 'Horas Adicional', + hoursworked: 'Horas Trabajadas', + begin_development: 'Comienzo desarrollo', + begin_test: 'Comienzo Prueba', + progresstask: 'Progresion', + actualphase: 'Fase Actual', + hoursweeky_plannedtowork: 'Horarios semanales programados', + endwork_estimate: 'Fecha estimada de finalización', + privacyread: 'Quien puede verlo:', + privacywrite: 'Quien puede modificarlo:', + totalphases: 'Fases totales', + themecolor: 'Tema Colores', + themebgcolor: 'Tema Colores Fondo', + }, + where: { + code: 'Id', + whereicon: 'icône', + }, + col: { + label: 'Etichetta', + value: 'Valore', + type: 'Tipo', + }, + cal: { + num: 'Nombre', + booked: 'Réservé', + booked_error: 'La réservation a échoué. Réessayez plus tard', + sendmsg_error: 'Message non envoyé. Réessayez plus tard', + sendmsg_sent: 'Message envoyé', + booking: 'Réserver l\'événement', + titlebooking: 'Réservation', + modifybooking: 'changement de réservation', + cancelbooking: 'Annuler la réservation', + canceledbooking: 'Réservation annulée', + cancelederrorbooking: 'Annulation non effectuée, réessayez plus tard', + cancelevent: 'Cancella Evento', + canceledevent: 'Evento Cancellato', + cancelederrorevent: 'Cancellazione Evento non effettuata, Riprovare', + event: 'événement', + starttime: 'Accueil', + nextevent: 'Prochain événement', + readall: 'Tout lire', + enddate: 'au', + endtime: 'fin', + duration: 'Durée', + hours: 'Le temps', + when: 'Quand', + where: 'Où', + teacher: 'Dirigé par', + enterdate: 'Entrez la date', + details: 'Les détails', + infoextra: 'Extras Date et heure:', + alldayevent: 'Toute la journée', + eventstartdatetime: 'début', + enterEndDateTime: 'final', + selnumpeople: 'Participants', + selnumpeople_short: 'Num', + msgbooking: 'Message à envoyer', + showpdf: 'Voir PDF', + bookingtextdefault: 'Je réserve', + bookingtextdefault_of: 'du', + data: 'Date', + teachertitle: 'Professeur', + peoplebooked: 'Réserv.', + showlastschedule: 'Voir tout le calendrier', + }, + msgs: { + message: 'Message', + messages: 'Messages', + nomessage: 'Pas de message', + }, + event: { + _id: 'id', + typol: 'Typologie', + short_tit: 'Titre abrégé\'', + title: 'Titre', + details: 'Détails', + bodytext: 'texte de l\'événement', + dateTimeStart: 'Data Initiale', + dateTimeEnd: 'Date de fin', + bgcolor: 'Couleur de fond', + days: 'Journées', + icon: 'Icône', + img: 'Image du nom de fichier', + img_small: 'Image petite', + where: 'Où', + contribtype: 'Type de contribution', + price: 'Prix', + askinfo: 'Demander des infos', + showpage: 'Voir la page', + infoafterprice: 'Notes après le prix', + teacher: 'Enseignant', // teacherid + teacher2: 'Enseignant2', // teacherid2 + infoextra: 'Extra Info', + linkpage: 'Site Web', + linkpdf: 'Lien vers un PDF', + nobookable: 'non réservable', + news: 'Nouvelles', + dupId: 'Id Double', + canceled: 'Annulé', + deleted: 'Supprimé', + duplicate: 'Duplique', + notempty: 'Le champ ne peut pas être vide', + modified: 'modifié', + showinhome: 'Montrer à la Home', + showinnewsletter: 'Afficher dans la Newsletter', + color: 'Couleur du titre', + }, + disc: { + typol_code: 'Type de code', + order: 'Ordre', + }, + newsletter: { + title: 'Souhaitez-vous recevoir notre newsletter?', + name: 'Ton nom', + surname: 'Tu prénom', + namehint: 'Nom', + surnamehint: 'Prénom', + email: 'votre e-mail', + submit: 'S\'abonner', + reset: 'Redémarrer', + typesomething: 'Remplir le champ', + acceptlicense: 'J\'accepte la licence et les termes', + license: 'Vous devez d\'abord accepter la licence et les termes', + submitted: 'Abonné', + menu: 'Newsletter1', + template: 'Modeles Email', + sendemail: 'Envoyer', + check: 'Chèque', + sent: 'Dèjà envoyé', + mailinglist: 'Leste de contacts', + settings: 'Paramèters', + serversettings: 'Serveur', + others: 'Autres', + templemail: 'Model Email', + datetoSent: 'Date et heure d\'envoi', + activate: 'Activé', + numemail_tot: 'Total Email', + numemail_sent: 'Emails envoyés', + datestartJob: 'Inizio Invio', + datefinishJob: 'Fin envoi', + lastemailsent_Job: 'Dernier envoyé', + starting_job: 'Envoyé', + finish_job: 'Envoy Terminé', + processing_job: 'travaux en cours', + error_job: 'info d\'erreur', + statesub: 'Abonné', + wrongerr: 'Email inválido', + }, + privacy_policy: 'Politique de confidentialité', + cookies: 'Nous utilisons des cookies pour améliorer les performances Web.', + }, +}; + +export default msg_fr; diff --git a/src/statics/lang/it.js b/src/statics/lang/it.js new file mode 100755 index 00000000..3993b6d2 --- /dev/null +++ b/src/statics/lang/it.js @@ -0,0 +1,752 @@ +const msg_it = { + it: { + words: { + da: 'dal', + a: 'al', + }, + home: { + guida: 'Guida', + guida_passopasso: 'Guida Passo Passo', + }, + grid: { + editvalues: 'Modifica Valori', + addrecord: 'Aggiungi Riga', + showprevedit: 'Mostra Eventi Passati', + columns: 'Colonne', + tableslist: 'Tabelle', + nodata: 'Nessun Dato', + }, + gallery: { + author_username: 'Utente', + title: 'Titolo', + directory: 'Directory', + list: 'Lista', + }, + profile: { + chisei: 'Chi Sei? Raccontaci di te:', + iltuoimpegno: 'Quale è stato il tuo impegno per salvare il pianeta ad oggi?', + come_aiutare: 'Cosa vorresti fare per aiutare il pianeta?', + }, + otherpages: { + product: 'Prodotto', + sito_offline: 'Sito in Aggiornamento', + modifprof: 'Modifica Profilo', + biografia: 'Biografia', + update: 'Aggiornamento in Corso...', + error404: 'error404', + error404def: 'error404def', + admin: { + menu: 'Amministrazione', + eventlist: 'Le tue Prenotazioni', + usereventlist: 'Prenotazioni Utenti', + userlist: 'Lista Utenti', + iscritticonacreis: 'Iscritti Conacreis', + zoomlist: 'Calendario Zoom', + extralist: 'Lista Extra', + dbop: 'Db Operations', + tableslist: 'Lista Tabelle', + navi: 'Navi', + listadoni_navi: 'Lista Doni Navi', + newsletter: 'Newsletter', + pages: 'Pagine', + media: 'Media', + gallery: 'Gallerie', + listaflotte: 'Flotte', + }, + manage: { + menu: 'Segreteria', + manager: 'Segreteria', + nessuno: 'Nessuno', + sendpushnotif: 'Invia Msg Push', + }, + messages: { + menu: 'I tuoi Messaggi', + }, + }, + sendmsg: { + write: 'scrive', + }, + stat: { + imbarcati: 'Imbarcati', + imbarcati_weekly: 'Imbarcati Settimanali', + imbarcati_in_attesa: 'Imbarcati in Attesa', + qualificati: 'Qualificati con almeno 2 invitati', + requisiti: 'Utenti con i 7 Requisiti', + zoom: 'Partecipato in Zoom', + modalita_pagamento: 'Modalità di Pagamento Inseriti', + accepted: 'Accettato Linee Guida + Video', + dream: 'Hanno scritto il Sogno', + email_not_verif: 'Email non Verificate', + telegram_non_attivi: 'Telegram Non Attivi', + telegram_pendenti: 'Telegram Pendenti', + reg_daily: 'Registrazioni Giornaliere', + reg_weekly: 'Registrazioni Settimanali', + reg_total: 'Registrazioni Totali', + }, + steps: { + nuovo_imbarco: 'Entra Effettuando il tuo Dono', + vuoi_entrare_nuova_nave: 'Scegli il metodo di pagamento che preferisci, inviando 33€ al Sognatore.
        Ricorda di mettere nei commenti/causale del pagamento: "Dono"', + inserisci_invitante: 'Facoltativo: Puoi inserire qui sotto l\'username della persona che vuoi aiutare, donandoti come suo Invitato:', + vuoi_cancellare_imbarco: 'Sicuro di voler cancellare questo imbarco in Nave AYNI?', + sei_stato_aggiunto: 'Sei stato aggiunto alla lista d\'imbarco! Nei prossimi giorni verrai aggiunto ad una Nuova Nave in partenza!', + completed: 'Completati', + passi_su: '{passo} passi su {totpassi}', + video_intro_1: '1. Benvenuti in {sitename}', + video_intro_2: '2. Nascita di {sitename}', + read_guidelines: 'Ho letto ed Accetto queste condizioni scritte qui sopra', + saw_video_intro: 'Dichiaro di aver visto i Video', + paymenttype: 'Modalità di Pagamento', + paymenttype_long: 'I metodi di Pagamento sono:
        • Payeer
          Molto Versatile. Viene utilizzata in oltre 30 paesi del mondo. E\' possibile acquistare anche criptovalute (Bitcoin, Ethereum).

        • Advanced Cash
          Per info Vedi la pagina "Metodi di Pagamento"

        • Revolut:
          la Carta Prepagata Revolut con IBAN Inglese, trasferimenti gratuiti, più libera e semplice da utilizzare. Disponibile l\'app per il cellulare.

        • Paypal con MoneyBox perchè è un sistema molto diffuso in tutta Europa (il trasferimento e gratuito) e si possono collegare le carte prepagate, le carte di credito e il conto corrente SENZA COMMISSIONI. In questo modo non dovrai condividere i numeri delle tue carte o del c/c ma solo la mail che avrai usato in fase di iscrizione su Paypal. Disponibile l\'app per il cellulare.
        ', + paymenttype_long2: 'Si consiglia di avere a disposizione almeno 2 Modalità di Pagamento, per scambiarsi i doni.', + paymenttype_paypal: 'Come Aprire un conto Paypal (in 2 minuti)', + paymenttype_paypal_carta_conto: 'Come associare una carta di Credito/Debito o un Conto Bancario su PayPal', + paymenttype_paypal_link: 'Apri il Conto con Paypal', + paymenttype_revolut: 'Come Aprire il conto con Revolut (in 2 minuti)', + paymenttype_revolut_link: 'Apri il Conto con Revolut', + entra_zoom: 'Entra in Zoom', + linee_guida: 'Accetto le Linee Guida', + video_intro: 'Vedo il Video', + zoom: 'Partecipo ad almeno 1 Video-Conferenza', + zoom_si_partecipato: 'Hai partecipato ad almeno 1 Video-Conferenza', + zoom_gia_partecipato: 'Hai gia partecipato alla Video-Conferenza di Benvenuto?', + zoom_richiesta_inviata: 'La tua richiesta di aver già partecipato ad una Video-Conferenza è stata inviata, verrà analizzata appena possibile. Riceverai un messaggio dal BOT quando verrá confermato.', + zoom_partecipa: 'Partecipato ad almeno 1 Zoom', + zoom_no_partecipato: 'Attualmente non hai ancora partecipato ad una Video-Conferenza (è un requisito per poter entrare)', + zoom_long: 'Si richiede di partecipare ad almeno 1 Video-Conferenza, ma se sentirai che questi incontri sono anche un modo per condividere e stare in compagnia, allora potrai partecipare tutte le volte che lo desideri.


        Partecipando alle Video-Conferenze di Benvenuto lo Staff registrerà la vostra presenza ENTRO 24 ORE.
        ', + zoom_what: 'Tutorial come installare Zoom Cloud Meeting', + // sharemovement_devi_invitare_almeno_2: 'Ancora non hai invitato 2 persone', + // sharemovement_hai_invitato: 'Hai invitato almeno 2 persone', + sharemovement_invitati_attivi_si: 'Hai almeno 2 persone invitate Attive', + sharemovement_invitati_attivi_no: 'Nota Bene:Le persone che hai invitato, per essere Attive, devono aver completato tutti i primi 7 Requisiti (vedi la tua Lavagna per capire cosa gli manca)', + sharemovement: 'Condivido il Movimento', + sharemovement_long: 'Condividi il Movimento {sitename} e invitali a partecipare agli Zoom di Benvenuto per entrare a far parte di questa grande Famiglia 😄 .
        ', + inv_attivi_long: '', + enter_prog_completa_requisiti: 'Completa tutti i requisiti richiesti, per poter entrare nella Lista d\'imbarco.', + enter_prog_requisiti_ok: 'Hai completato tutti i 5 requisiti per entrare nella Lista d\'Imbarco.
        ', + enter_prog_msg: 'Riceverai un messaggio nei prossimi giorni su AYNI BOT, appena la tua Nave sarà pronta!', + enter_prog_msg_2: 'Ricorda che più persone inviti e più sali di Posizione, per accedere alla prossima Nave!', + enter_nave_9req_ok: 'COMPLIMENTI! Hai Completato TUTTI i 7 Passi della Guida! Grazie per Aiutare {sitename} ad Espandersi !
        Ora puoi Iniziare il tuo Nuovo Viaggio, effettuando il tuo Dono e proseguendo verso il Sognatore', + enter_nave_9req_ko: 'Ricorda che puoi Aiutare a far Crescere ed Espandere il Movimento, Condividendo con chiunque questo nostro viaggio!', + enter_prog: 'Entro nella Lista d\'Imbarco', + enter_prog_long: 'Ricorda che puoi Aiutare a far Crescere ed Espandere il Movimento, Condividendo con chiunque questo nostro viaggio!
        ', + collaborate: 'Collaborazione', + collaborate_long: 'Continuo a collaborare con i miei compagni per arrivare al giorno in cui salperà la mia Nave.', + dream: 'Scrivo il mio Sogno', + dream_long: 'Scrivi qui il Sogno per il quale sei entrato in {sitename} e che desideri realizzare.
        Sarà condiviso a quello di tutti gli altri per sognare insieme !', + dono: 'Dono', + dono_long: 'Faccio il mio dono nella data di partenza della mia Nave', + support: 'Sostengo il movimento', + support_long: 'Sostengo il movimento portando Energia, partecipando e organizzando Zoom, aiutando e informando i nuovi arrivati continuando a diffondere la visione di {sitename}', + ricevo_dono: 'Ricevo il mio dono e CELEBRO', + ricevo_dono_long: 'Evviva!!!
        QUESTO MOVIMENTO È REALE E POSSIBILE SE LO FACCIAMO FUNZIONARE TUTTI INSIEME !', + }, + dialog: { + continue: 'Continuare', + close: 'Chiudi', + copyclipboard: 'Copiato negli appunti', + ok: 'Ok', + yes: 'Si', + no: 'No', + delete: 'Elimina', + cancel: 'Annulla', + update: 'Aggiorna', + add: 'Aggiungi', + today: 'Oggi', + book: 'Prenota', + avanti: 'Avanti', + indietro: 'Indietro', + finish: 'Fine', + sendmsg: 'Invia Messaggio', + sendonlymsg: 'Invia solo un Msg', + msg: { + titledeleteTask: 'Elimina Task', + deleteTask: 'Vuoi Eliminare {mytodo}?', + }, + }, + comp: { + Conta: 'Conta', + }, + db: { + recupdated: 'Record Aggiornato', + recfailed: 'Errore durante aggiornamento Record', + reccanceled: 'Annullato Aggiornamento. Ripristinato valore precendente', + deleterecord: 'Elimina Record', + deletetherecord: 'Eliminare il Record?', + deletedrecord: 'Record Cancellato', + recdelfailed: 'Errore durante la cancellazione del Record', + duplicatedrecord: 'Record Duplicato', + recdupfailed: 'Errore durante la duplicazione del Record', + }, + components: { + authentication: { + telegram: { + open: 'Clicca qui per aprire il BOT Telegram e segui le istruzioni', + ifclose: 'Se non si apre Telegram cliccando sul bottone oppure l\'avevi eliminato, vai su Telegram e cerca \'{botname}\' dall\'icona della lente, poi premi Start e segui le istruzioni.', + openbot: 'Apri \'{botname}\' su Telegram', + }, + login: { + facebook: 'Facebook', + }, + iscrizione_ok: 'Iscrizione Avvenuta Correttamente', + email_verification: { + title: 'Inizia la tua registrazione', + introduce_email: 'inserisci la tua email', + email: 'Email', + invalid_email: 'La tua email è invalida', + verify_email: 'Verifica la tua email', + go_login: 'Torna al Login', + incorrect_input: 'Inserimento incorretto.', + link_sent: 'Apri la tua casella di posta, trova la email "Confermare la Registrazione: {sitename}" e clicca su "Verifica Registrazione"', + se_non_ricevo: 'Se non ricevi la email, prova a controllare nella spam, oppure contattaci', + title_unsubscribe: 'Disiscrizione alla newsletter', + title_unsubscribe_done: 'Disiscrizione completata correttamente', + }, + }, + }, + fetch: { + errore_generico: 'Errore Generico', + errore_server: 'Impossibile accedere al Server. Riprovare Grazie', + error_doppiologin: 'Rieseguire il Login. Accesso aperto da un altro dispositivo.', + }, + user: { + notregistered: 'Devi registrarti al servizio prima di porter memorizzare i dati', + loggati: 'Utente non loggato', + }, + templemail: { + subject: 'Oggetto Email', + testoheadermail: 'Intestazione Email', + content: 'Contenuto', + img: 'Immagine 1', + img2: 'Immagine 2', + content2: 'Contenuto 2', + options: 'Opzioni', + }, + dashboard: { + info: 'Info', + commento: 'Commento', + azione: 'Azione', + inviato: 'Inviato', + data: 'Data', + data_rich: 'Data Rich.', + ritorno: 'Ritorno', + invitante: 'Invitante', + dono_da_effettuare: 'Dono che dovrai effettuare', + num_tessitura: 'Numero di Tessitura:', + attenzione: 'Attenzione', + downline: 'Invitati', + downnotreg: 'Invitati non Registrati', + notreg: 'Non Registrato', + inv_attivi: 'Invitati con i 5 Requisiti', + numinvitati: 'Almeno 2 Invitati', + telefono_wa: 'Contatta su Whatsapp', + sendnotification: 'Invia Notifica al Destinatario su Telegram BOT', + ricevuto_dono: '😍🎊 Hai ricevuto in Regalo un Invitato {invitato} da parte di {mittente} !', + ricevuto_dono_invitante: '😍🎊 Hai ricevuto in Regalo un Invitante da parte di {mittente} !', + nessun_invitante: 'Nessun Invitante', + nessun_invitato: 'Nessun Invitato', + legenda_title: 'Clicca sul nome dell\'invitato per vedere lo stato dei suoi Requisiti.', + nave_in_partenza: 'La Nave salperà il', + nave_in_chiusura: 'Chiusura Gift Chat', + nave_partita: 'Partita il', + tutor: 'Tutor', + Editor: 'Editor', + zoomeri: 'Zoomeri', + /* sonomediatore: 'Quando diventi Meditore vieni contattato da un TUTOR, con lui devi:
          ' + + '
        1. Aprire la tua Gift Chat (tu come proprietario e il Tutor ' + + 'come amministratore) con questo nome:
          {nomenave}
        2. ' + + '
        3. Clicca sul nome della chat in alto -> Modifica -> Amministratori -> "Aggiungi Amministratore", seleziona il Tutor nell’elenco.
        4. ' + + '
        5. Devi configurare la chat in modo che chi entra vede anche i post precedenti (clicca sul nome della chat in alto, clicca su modifica, ' + + 'cambia la "cronologia per i nuovi membri" da nascosta a visibile.
        6. ' + + '
        7. Per trovare il link della Chat appena creata: clicca sul nome della chat in alto, clicca sulla Matita -> "Tipo di Gruppo" -> "invita nel gruppo tramite link", clicca su "copia link" e incollalo qui sotto, sulla casella "Link Gift Chat"
        8. ' + + '
        9. Invia il Link della Gift Chat a tutti i Donatori, cliccando sul bottone qui sotto.
        ', +*/ + sonomediatore: 'Quando sei MEDIATORE verrai contattato dai TUTOR AYNI tramite un messaggio sulla Chat AYNI BOT !', + superchat: 'Nota Bene: Non inviarci la ricevuta, non ci occorre. Attendi il messaggio di conferma da parte del Sognatore (sulla Chat AYNI BOT).
        SOLO se hai problemi di PAGAMENTO, o ti manca la conferma del SOGNATORE (dopo aver atteso almeno 12 ore) o se vuoi essere SOSTITUITO, due Tutor ti aspettano per aiutarti sulla Chat:
        Entra nella Gift Chat', + sonodonatore: '
        1. Quando sei in questa posizione, verrai invitato (tramite un messaggio su AYNI BOT) ad effettuare il Dono. Non sarà più necessario entrare in una Chat.
        2. ' + + '
        3. Avrai tempo 3 giorni per fare il Regalo (poi verrai sostituito), nella modalità di pagamento che troverai scritto sul messaggio in AYNI BOT .
        ', + sonodonatore_seconda_tessitura: '
        1. Qui tu sei Mediatore e anche Donatore, ma essendo la seconda Tessitura (il Ritorno), non avrai bisogno di effettuare nuovamente il dono
        ', + controlla_donatori: 'Controlla Lista Donatori', + link_chat: 'Link della Gift Chat Telegram', + tragitto: 'Tragitto', + nave: 'Nave', + data_partenza: 'Data
        Partenza', + doni_inviati: 'Doni', + nome_dei_passaggi: 'Nome
        dei Passaggi', + donatori: 'Donatori', + donatore: 'Donatore', + mediatore: 'Mediatore', + sognatore: 'Sognatore', + sognatori: 'SOGNATORI', + intermedio: 'INTERMEDIO', + pos2: 'Interm. 2', + pos3: 'Interm. 3', + pos5: 'Interm. 5', + pos6: 'Interm. 6', + gift_chat: 'Per entrare nella Gift Chat, clicca qui', + quando_eff_il_tuo_dono: 'Quando effettuare il Regalo', + entra_in_gift_chat: 'Entra in Gift Chat', + invia_link_chat: 'Invia il Link della Gift Chat ai Donatori', + inviare_msg_donatori: '5) Inviare messaggio ai Donatori', + msg_donatori_ok: 'Inviato messaggio ai Donatori', + metodi_disponibili: 'Metodi Disponibili', + importo: 'Importo', + effettua_il_dono: 'E\' arrivato il momento di Effettuare il proprio Dono al Sognatore
        👉 {sognatore} 👈 !

        ' + + 'Inviare tramite PayPal a: {email}
        ' + + 'Aggiungere come messaggio la dicitura: Regalo
        ' + + 'ATTENZIONE IMPORTANTE: Scegliere l\'opzione
        "INVIO DI DENARO A UN AMICO"
        Cosi non pagherai delle commissioni extra!', + paypal_me: '
        2) Metodo Semplificato
        Cliccare direttamente qui
        ' + + 'si aprirà PayPal con l\'importo e il destinatario gia impostato.
        ' + + 'Aggiungere come messaggio la dicitura: Regalo
        ' + + 'ATTENZIONE IMPORTANTE: TOGLIERE LA SPUNTA SU: Devi pagare beni o servizi? ... (Protezione acquisti Paypal)
        Altrimenti pagherai inutilmente delle commissioni extra.
        ' + + 'Se hai dubbi, guarda il video qui sotto per vedere come fare:
        ' + + 'infine Clicca su “Invia Denaro ora”.', + commento_al_sognatore: 'Scrivi qui un commento per il Sognatore:', + qui_compariranno_le_info: 'Nel giorno della partenza della Nave, compariranno le informazioni del Sognatore', + posizione: 'Posizione', + come_inviare_regalo_con_paypal: 'Come Inviare il regalo tramite Paypal', + ho_effettuato_il_dono: 'Ho effettuato il Dono', + clicca_conferma_dono: 'Una volta inviato il Dono, lascia un commento al Sognatore e Clicca qui sotto per confermare che hai effettuato il tuo dono', + fatto_dono: 'Hai confermato che il dono è stato Inviato', + confermi_dono: 'Confermi che hai inviato il tuo Dono di 33€', + dono_ricevuto: 'Il tuo Dono è stato Ricevuto!', + dono_ricevuto_2: 'Ricevuto', + dono_ricevuto_3: 'Arrivato!', + confermi_dono_ricevuto: 'Confermi di aver ricevuto il Dono di 33€ da parte di {donatore}', + confermi_dono_ricevuto_msg: 'Confermato di aver ricevuto il Dono di 33€ da parte di {donatore}', + msg_bot_conferma: '{donatore} ha confermato di aver inviato il suo Dono di 33€ a {sognatore} (Commento: {commento})', + ricevuto_dono_ok: 'Hai confermato che il dono è stato Ricevuto', + entra_in_lavagna: 'Entra sulla Tua Lavagna per vedere le Navi in Partenza', + doni_ricevuti: 'Doni Ricevuti', + doni_inviati_da_confermare: 'Doni Inviati (da confermare)', + doni_mancanti: 'Doni Mancanti', + temporanea: 'Temporanea', + nave_provvisoria: 'Ti è stata assegnata una Nave TEMPORANEA.
        E\'normale che vedrai variare la data di partenza, dovuto all\'aggiornamento della graduatoria dei passeggeri.', + ritessitura: 'RITESSITURA', + }, + reg: { + socio: 'Socio', + socioresidente: 'Residente', + consiglio: 'Consiglio', + volta: 'volta', + volte: 'volte', + registered: 'Registrato', + contacted: 'Contattato', + name_complete: 'Nome Completo', + num_invitati: 'Num.Invitati', + is_in_whatsapp: 'In Whatsapp', + is_in_telegram: 'In Telegram', + cell_complete: 'Cellulare', + failed: 'Fallito', + ind_order: 'Num', + ipaddr: 'IP', + verified_email: 'Email Verificata', + reg_lista_prec: 'Inserire il Nome, Cognome e numero di cellulare che avete lasciato in passato quando vi siete iscritti alla Chat!
        In questo modo il sistema vi riconosce e vi mantiene la posizione della lista.', + nuove_registrazioni: 'Se questa è una NUOVA registrazione, dovete contattare la persona che vi ha INVITATO, che vi lascerà il LINK CORRETTO per fare la Registrazione sotto di lui/lei', + you: 'Tu', + cancella_invitato: 'Elimina Invitato', + cancella_account: 'Elimina Profilo', + cancellami: 'Sei sicuro di voler Eliminare completamente la tua Registrazione su {sitename}, uscendo così dal movimento? Non potrai piu\' accedere al sito tramite i tuoi dati, Perderai la tua POSIZIONE e i Tuoi Invitati verranno REGALATI a chi ti ha invitato.', + cancellami_2: 'ULTIMO AVVISO! Vuoi uscire Definitivamente da {sitename} ?', + account_cancellato: 'Il tuo Profilo è stato cancellato correttamente', + regala_invitato: 'Regala Invitato', + regala_invitante: 'Imposta Invitante', + messaggio_invito: 'Messaggio di Invito', + messaggio_invito_msg: 'Invia questo messaggio a tutti coloro a cui vuoi condividere questo Movimento !', + videointro: 'Video Introduttivo', + invitato_regalato: 'Invitato Regalato', + invitante_regalato: 'Invitante Regalato', + legenda: 'Legenda', + aportador_solidario: 'Chi ti ha Invitato', + username_regala_invitato: 'Username del Destinatario del regalo', + aportador_solidario_nome_completo: 'Nominativo Invitante', + aportador_solidario_nome_completo_orig: 'Invitante Originario', + aportador_solidario_ind_order: 'Num Invitante', + reflink: 'Link da condividere ai tuoi invitati:', + linkzoom: 'Link per entrare in Zoom:', + page_title: 'Registrazione', + made_gift: 'Dono', + note: 'Note', + incorso: 'Registrazione in corso...', + iscrizioneincorso: 'Iscrizione in corso...', + richiesto: 'Campo Richiesto', + email: 'Email', + intcode_cell: 'Prefisso Int.', + cell: 'Cellulare', + cellreg: 'Cellulare con cui ti eri registrato', + nationality: 'Nazionalità', + email_paypal: 'Email Paypal', + payeer_id: 'Id Payeer', + advcash_id: 'Email Advanced Cash', + revolut: 'Revolut', + link_payment: 'Link Paypal MoneyBox', + note_payment: 'Note Aggiuntive', + country_pay: 'Paese di Destinazione Pagamenti', + username_telegram: 'Username Telegram', + telegram: 'Chat Telegram \'{botname}\'', + teleg_id: 'Telegram ID', + teleg_id_old: 'OLD Tel ID', + teleg_auth: 'Codice Autorizzazione', + click_per_copiare: 'Cliccaci sopra per copiarlo sugli appunti', + copia_messaggio: 'Copia Messaggio', + teleg_torna_sul_bot: '1) Copia il codice cliccando sul bottone qui sopra
        2) torna su {botname} cliccando qui sotto 👇 ed incolla (o scrivi) il codice', + teleg_checkcode: 'Codice Telegram', + my_dream: 'Il mio Sogno', + saw_and_accepted: 'Condizioni', + saw_zoom_presentation: 'Ha visto Zoom', + ask_zoom_partecipato: 'dice di avere gia partecipato', + manage_telegram: 'Gestori Telegram', + paymenttype: 'Modalità di Pagamento Disponibili', + selected: 'Selezionati', + select: 'Selezionare', + img: 'Immagine', + date_reg: 'Data Reg.', + requirement: 'Requisiti', + perm: 'Permessi', + elimina: 'Elimina', + deleted: 'Nascosto', + sospeso: 'Sospeso', + username: 'Username (Pseudonimo)', + username_short: 'Username', + name: 'Nome', + surname: 'Cognome', + username_login: 'Username o email', + password: 'Password', + repeatPassword: 'Ripeti password', + terms: 'Accetto i termini della privacy', + metodopagamento: 'Metodo di Pagamento', + onlyadult: 'Confermo di essere Maggiorenne', + submit: 'Registrati', + title_verif_reg: 'Verifica Registrazione', + reg_ok: 'Registrazione Effettuata con Successo', + verificato: 'Verificato', + non_verificato: 'Non Verificato', + forgetpassword: 'Password dimenticata?', + modificapassword: 'Modifica Password', + resplist: 'Possibile Responsabile', + workerslist: 'Lavoratore Attivo', + resp: 'Responsabile', + viceResp: 'Vice Rrsponsabile', + userslist: 'Lista Persone', + fiscalcode: 'Codice Fiscale', + annoTesseramento: 'Anno', + numTesseraInterna: 'Tess', + codiceConacreis: 'Conacreis', + residency_address: 'Indirizzo di Residenza', + residency_city: 'Città di Residenza', + residency_province: 'Provincia', + residency_zipcode: 'CAP', + residency_country: 'Paese', + born_country: 'Paese Nascita', + cell_phone: 'Telefono', + dateofreg: 'Registrato', + dateofapproved: 'Approvato', + dateofbirth: 'Data di Nascita', + born_city: 'Città di Nascita', + born_province: 'Provincia di Nascita', + nationality_born: 'Paese di Nascita', + iscrizione_compilata: 'Iscritto', + metodo_pagamento: 'Pagam', + ha_pagato: 'Quota Versata', + newsletter_on: 'Aggiungimi alla Newsletter', + accetta_carta_costituzionale_on: 'Ho letto ed Approvo il Progetto', + iscriviti: 'Iscriviti', + motivazioni: 'Motivazioni sul perchè intendi iscriverti alla CNM:', + competenze_professionalita: 'Descrivi le tue competenze e professionalità', + cosa_potrei_offrire: 'Cosa potresti offrire?', + cosa_vorrei_ricevere: 'Cosa vorresti ricevere? (cosa ti aspetti?)', + altre_comunicazioni: 'Scrivi altre eventuali informazioni o comunicazioni:', + come_ci_hai_conosciuto: 'Come ci hai conosciuto?', + + err: { + required: 'è richiesto', + email: 'inserire una email valida', + errore_generico: 'Si prega di compilare correttamente i campi', + atleast: 'dev\'essere lungo almeno di', + complexity: 'deve contenere almeno 1 minuscola, 1 maiuscola, 1 cifra', + notmore: 'non dev\'essere lungo più di', + char: 'caratteri', + terms: 'Devi accettare le condizioni, per continuare.', + email_not_exist: 'l\'Email non è presente in archivio, verificare se è corretta', + duplicate_email: 'l\'Email è già stata registrata', + user_already_exist: 'La registrazione con questi dati (nome, cognome e cellulare) è stata già effettuata. Per accedere al sito, cliccare sul bottone LOGIN dalla HomePage.', + user_extralist_not_found: 'Utente in archivio non trovato, inserire il Nome, Cognome e numero di cellulare comunicato nella lista nel 2019. Se questa è una nuova registrazione, dovete registrarvi tramite il LINK di chi vi sta invitando.', + user_not_this_aportador: 'Stai utilizzando un link di una persona diversa dal tuo invitato originale.', + duplicate_username: 'L\'Username è stato già utilizzato', + username_not_valid: 'L\'Username non é valido', + aportador_not_exist: 'L\'Username di chi ti ha invitato non è presente. Contattaci.', + aportador_regalare_not_exist: 'Inserire l\'Username della persona che si vuole regalare l\'invitato', + invitante_username_not_exist: 'Inserire l\'Username della persona che fa da invitante', + sameaspassword: 'Le password devono essere identiche', + accetta_carta_costituzionale_on: 'Occorre accettare la sintesi della Carta Costituzionale', + }, + tips: { + email: 'inserisci la tua email', + username: 'username lunga almeno 6 caratteri', + password: 'deve contenere 1 minuscola, 1 maiuscola e 1 cifra', + repeatpassword: 'ripetere la password', + + }, + }, + op: { + qualification: 'Qualifica', + usertelegram: 'Username Telegram', + disciplines: 'Discipline', + certifications: 'Certificazioni', + intro: 'Introduzione', + info: 'Biografia', + webpage: 'Pagina Web', + days_working: 'Giorni Lavorativi', + facebook: 'Pagina Facebook', + }, + login: { + page_title: 'Login', + incorso: 'Login in corso', + enter: 'Accedi', + esci: 'Esci', + errato: 'Username o password errata. Riprovare', + subaccount: "Questo account è stato accorpato con il vostro Principale. Eseguire l'accesso utilizzando l'username (o email) del PRIMO account.", + completato: 'Login effettuato!', + needlogin: 'E\' necessario registrarsi al sito ed effettuare l\'Accesso con i propri dati', + }, + reset: { + title_reset_pwd: 'Reimposta la tua Password', + send_reset_pwd: 'Invia Reimposta la password', + incorso: 'Richiesta Nuova Email...', + email_sent: 'Email inviata', + check_email: 'Controlla la tua email, ti arriverà un messaggio con un link per reimpostare la tua password. Questo link, per sicurezza, scadrà dopo 4 ore.', + token_scaduto: 'Il token è scaduto oppure è stato già usato. Ripetere la procedura di reset password', + title_update_pwd: 'Aggiorna la tua password', + update_password: 'Aggiorna Password', + }, + logout: { + uscito: 'Sei Uscito', + }, + errors: { + graphql: { + undefined: 'non definito', + }, + }, + showbigmap: 'Mostra la mappa più grande', + todo: { + titleprioritymenu: 'Priorità:', + inserttop: 'Inserisci il Task in cima', + insertbottom: 'Inserisci quì una Nuova Attività', + edit: 'Descrizione Task:', + completed: 'Ultimi Completati', + usernotdefined: 'Attenzione, occorre essere Loggati per poter aggiungere un Todo', + start_date: 'Data Inizio', + status: 'Stato', + completed_at: 'Data Completamento', + expiring_at: 'Data Scadenza', + phase: 'Fase', + assigned_to_userId: 'Assegnato a', + workers: 'Partecipanti Attivi', + }, + notification: { + status: 'Stato', + ask: 'Attiva le Notifiche', + waitingconfirm: 'Conferma la richiesta di Notifica', + confirmed: 'Notifiche Attivate!', + denied: 'Notifiche Disabilitate! Attenzione così non vedrai arrivarti i messaggi. Riabilitali per vederli.', + titlegranted: 'Permesso Notifiche Abilitato!', + statusnot: 'Stato Notifiche', + titledenied: 'Permesso Notifiche Disabilitato!', + title_subscribed: 'Sottoscrizione a {sitename}!', + subscribed: 'Ora potrai ricevere i messaggi e le notifiche.', + newVersionAvailable: 'Aggiorna', + }, + connection: { + conn: 'Connessione', + online: 'Attiva', + offline: 'Disattiva', + }, + proj: { + newproj: 'Titolo Progetto', + newsubproj: 'Titolo Sotto-Progetto', + insertbottom: 'Inserisci Nuovo Project', + longdescr: 'Descrizione', + note: 'Note', + hoursplanned: 'Ore Preventivate', + hoursadded: 'Ore Aggiuntive', + hoursworked: 'Ore Lavorate', + begin_development: 'Inizio Sviluppo', + begin_test: 'Inizio Test', + progresstask: 'Progr', + actualphase: 'Fase Attuale', + hoursweeky_plannedtowork: 'Ore settimanali previste', + endwork_estimate: 'Data fine lavori stimata', + privacyread: 'Chi lo puo vedere:', + privacywrite: 'Chi lo puo modificare:', + createdby: 'Creato da:', + tipovisu: 'Visualizzazione:', + totalphases: 'Totale Fasi', + themecolor: 'Tema Colore', + themebgcolor: 'Tema Colore Sfondo', + group: 'Gruppo', + respUsername: 'Responsabile', + viceRespUsername: 'Vice Responsabile', + vice2RespUsername: 'Vice 2 Responsabile', + }, + where: { + code: 'Id', + whereicon: 'Icona', + }, + col: { + label: 'Etichetta', + value: 'Valore', + type: 'Tipo', + }, + cal: { + num: 'Numero', + booked: 'Prenotato', + booked_error: 'Prenotazione non avvenuta. Riprovare più tardi', + sendmsg_error: 'Messaggio non inviato. Riprovare più tardi', + sendmsg_sent: 'Messaggio Inviato', + booking: 'Prenota Evento', + titlebooking: 'Prenotazione', + modifybooking: 'Modifica Prenotazione', + cancelbooking: 'Cancella Prenotazione', + canceledbooking: 'Prenotazione Cancellata', + cancelederrorbooking: 'Cancellazione non effettuata, Riprovare più tardi', + cancelevent: 'Cancella Evento', + canceledevent: 'Evento Cancellato', + cancelederrorevent: 'Cancellazione Evento non effettuata, Riprovare', + event: 'Evento', + starttime: 'Dalle', + nextevent: 'Prossimo Evento', + readall: 'Leggi tutto', + enddate: 'al', + endtime: 'alle', + duration: 'Durata', + hours: 'Orario', + when: 'Quando', + where: 'Dove', + teacher: 'Condotto da', + enterdate: 'Inserisci data', + details: 'Dettagli', + infoextra: 'Date e Ora Extra:', + alldayevent: 'Tutto il giorno', + eventstartdatetime: 'Inizio', + enterEndDateTime: 'Fine', + selnumpeople: 'Partecipanti', + Lunch: 'Pranzo', + Dinner: 'Cena', + DinnerShared: 'Cena Condivisa', + selnumpeopleLunch: 'Prenotati per il Pranzo', + selnumpeopleDinner: 'Prenotati per la Cena', + selnumpeopleDinnerShared: 'Cena Condivisa', + selnumpeople_short: 'Num', + msgbooking: 'Messaggio da inviare', + writemsg: 'Scrivi qui se vuoi lasciare un messaggio', + showpdf: 'Vedi PDF', + bookingtextdefault: 'Prenoto per', + bookingtextdefault_of: 'di', + data: 'Data', + teachertitle: 'Relatore', + peoplebooked: 'Prenotaz.', + showlastschedule: 'Vedi tutto il Calendario', + }, + msgs: { + message: 'Messaggio', + messages: 'Messaggi', + nomessage: 'Nessun Messaggio', + }, + event: { + _id: 'id', + typol: 'Typology', + short_tit: 'Titolo Breve', + title: 'Titolo', + details: 'Dettagli', + bodytext: 'Testo Evento', + dateTimeStart: 'Data Inizio', + dateTimeEnd: 'Data Fine', + bgcolor: 'Colore Sfondo', + days: 'Giorni', + icon: 'Icona', + img: 'Nomefile Immagine', + img_small: 'Img Piccola', + where: 'Dove', + contribtype: 'Tipo Contributo', + price: 'Contributo', + askinfo: 'Chiedi Info', + openpage: 'Apri Pagina', + showpage: 'Vedi Pagina', + infoafterprice: 'Note dopo la Quota', + teacher: 'Insegnante', // teacherid + teacher2: 'Insegnante 2', // teacherid2 + teacher3: 'Insegnante 3', // teacherid2 + teacher4: 'Insegnante 4', // teacherid2 + infoextra: 'InfoExtra', + linkpage: 'WebSite', + facebook: 'Facebook', + pagefooter: 'Pagina di Footer', + pagefooter2: 'Pagina di Footer 2', + pagefooter3: 'Pagina di Footer 3', + linkpdf: 'Link ad un PDF', + nobookable: 'Non Prenotabile', + internal: 'Evento Interno', + lunchAvailable: 'Disponibilità di Pranzare', + dinnerAvailable: 'Disponibilità di Cenare', + dinnerSharedAvailable: 'Disponibilità di Cenare Condivisa', + lunchType: 'Tipo di Pranzo', + dinnerType: 'Tipo di Cena', + lunchPrezzo: 'Contributo Pranzo', + dinnerPrezzo: 'Contributo Cena', + news: 'Novità', + dupId: 'Id Duplicato', + canceled: 'Cancellato', + deleted: 'Eliminato', + duplicate: 'Duplica', + notempty: 'Il campo non può essere vuoto', + modified: 'Modificato', + showinhome: 'Mostra nella Home', + showinnewsletter: 'Mostra nella Newsletter', + color: 'Colore del titolo', + }, + disc: { + typol_code: 'Codice Tipologia', + order: 'Ordinamento', + }, + newsletter: { + title: 'Desideri ricevere la nostra Newsletter?', + name: 'Il tuo Nome', + surname: 'Il tuo Cognome', + namehint: 'Nome', + surnamehint: 'Cognome', + email: 'La tua Email', + submit: 'Iscriviti', + reset: 'Cancella', + typesomething: 'Compilare correttamente il campo', + acceptlicense: 'Accetto la licenza e i termini', + license: 'Devi prima accettare la licenza e i termini', + submitted: 'Iscritto', + menu: 'Newsletter1', + template: 'Modelli Email', + sendemail: 'Invia', + check: 'Controlla', + sent: 'Già Inviate', + mailinglist: 'Lista Contatti', + settings: 'Impostazioni', + serversettings: 'Server', + others: 'Altro', + templemail: 'Modello Email', + datetoSent: 'DataOra Invio', + activate: 'Attivato', + numemail_tot: 'Email Totali', + numemail_sent: 'Email Inviate', + datestartJob: 'Inizio Invio', + datefinishJob: 'Fine Invio', + lastemailsent_Job: 'Ultima Inviata', + starting_job: 'Invio Iniziato', + finish_job: 'Invio Terminato', + processing_job: 'Lavoro in corso', + error_job: 'Info Errori', + statesub: 'Sottoscritto', + wrongerr: 'Email non valida', + }, + privacy_policy: 'Privacy Policy', + cookies: 'Usiamo i Cookie per una migliore prestazione web.', + }, +}; + +export default msg_it; diff --git a/src/statics/lang/pt.js b/src/statics/lang/pt.js new file mode 100755 index 00000000..13adf875 --- /dev/null +++ b/src/statics/lang/pt.js @@ -0,0 +1,643 @@ +const msg_pt = { + pt: { + words: { + da: 'od', + a: 'do', + }, + home: { + guida: 'Guia', + guida_passopasso: 'Guia Passo a Passo', + }, + grid: { + editvalues: 'Modifica Valori', + addrecord: 'Aggiungi Riga', + showprevedit: 'Mostra Eventi Passati', + columns: 'Colonne', + tableslist: 'Tabelle', + nodata: 'Sem Dados', + }, + gallery: { + author_username: 'Utente', + title: 'Titolo', + directory: 'Directory', + list: 'Lista', + }, + otherpages: { + sito_offline: 'Site em actualização', + modifprof: 'Editar Perfil', + biografia: 'Biografia', + error404: 'error404', + error404def: 'error404def', + admin: { + menu: 'Amministrazione', + eventlist: 'Le tue Prenotazioni', + usereventlist: 'Prenotazioni Utenti', + userlist: 'Lista Utenti', + zoomlist: 'Calendario Zoom', + extralist: 'Lista Extra', + dbop: 'Db Operations', + tableslist: 'Lista Tabelle', + navi: 'Navios', + newsletter: 'Newsletter', + pages: 'Pagine', + media: 'Media', + gallery: 'Gallerie', + }, + manage: { + menu: 'Gestione', + manager: 'Gestore', + nessuno: 'Nessuno', + }, + messages: { + menu: 'I tuoi Messaggi', + }, + }, + sendmsg: { + write: 'scrive', + }, + stat: { + imbarcati: 'Abordados', + imbarcati_weekly: 'Abordados semanalmente', + imbarcati_in_attesa: 'abordados em espera', + qualificati: 'Qualificado com pelo menos 2 convidados', + requisiti: 'Utilizadores com os 7 Requisitos', + zoom: 'Participar no Zoom', + Payment_Mode: 'Payment Methods INSERT', + accepted: 'Directrizes + Vídeo aceite', + dream: 'Eles escreveram o Sonho', + email_not_verif: 'Email não verificado', + telegram_non_attivi: 'Telegrama Não Activo', + telegram_pendenti: 'Telegram Pendants', + reg_daily: 'Inscrições diárias', + reg_weekly: 'Inscripciones semanales', + reg_total: 'Inscrições Total', + }, + steps: { + nuovo_imbarco: 'Reservar outra Viagem', + vuoi_entrare_nuova_nave: 'Deseja ajudar o Movimento a avançar e pretende entrar noutro Navio?
        Ao fazer um Novo Presente de 33 euros, poderá viajar outra viagem e ter outra oportunidade de se tornar um Sonhador!
        ' + + 'Se confirmar, será acrescentado à lista de espera para o próximo embarque.', + vuoi_cancellare_imbarco: 'Tem a certeza de que quer cancelar este embarque no navio AYNI?', + completed: 'Completado', + passi_su: '{passo} passos em {totpassi}', + video_intro_1: '1. Bem-vindo ao {sitename}', + video_intro_2: '2. Nascimento do {sitename}', + read_guidelines: 'Eu li e concordo com estes termos escritos acima', + saw_video_intro: 'Declaro ter visto o vídeo', + paymenttype: 'Formas de Pagamento', + paymenttype_long: 'Escolha pelo menos 2 Métodos de pagamento, para trocar presentes.
        As formas de pagamento são:
        • Revolut: o Revolut Prepaid Card com IBAN inglês (fora da UE) completamente gratuito, mais gratuito e fácil de usar. Disponível o aplicativo para mobile.
        • Paypal porque é um sistema muito popular em toda a Europa (a transferência é gratuita) e você pode conectar cartões pré-pagos, cartões de crédito e conta bancária SEM COMISSÕES. Desta forma não terá de partilhar o seu cartão ou números de c/c, mas apenas o e-mail que utilizou durante o registo no Paypal. Disponível o aplicativo para o seu celular.

        • ', + paymenttype_paypal: 'Como abrir uma conta Paypal (em 2 minutos)', + paymenttype_paypal_carta_conto: 'Como associar um cartão de crédito/débito ou conta bancária no PayPal', + paymenttype_paypal_link: 'Abra uma conta no Paypal', + paymenttype_revolut: 'Como abrir a conta com Revolut (em 2 minutos)', + paymenttype_revolut_link: 'Abrir conta com Revolut', + entra_zoom: 'Haz un Zoom', + linee_guida: 'Eu aceito as directrizes', + video_intro: 'Eu vejo o vídeo', + zoom: 'Tenho pelo menos 1 Zoom in', + zoom_si_partecipato: 'Você participou de pelo menos 1 Zoom', + zoom_gia_partecipato: 'Hai gia partecipato alla Video-Conferenza di Benvenuto', + zoom_partecipa: 'Participou em pelo menos 1 Zoom', + zoom_no_partecipato: 'Você ainda não participou de um Zoom (é um requisito para entrar)', + zoom_long: 'É necessário participar em pelo menos 1 Zoom, mas é recomendável participar mais activamente no movimento.

          Ao participar nos Zooms o Staff registará a assistência e você estará habilitado.', + zoom_what: 'Tutorial de como instalar o Zoom Cloud Meeting', + // sharemovement_devi_invitare_almeno_2: 'Você ainda não convidou 2 pessoas', + // sharemovement_hai_invitato: 'Você convidou pelo menos 2 pessoas', + sharemovement_invitati_attivi_si: 'Você tem pelo menos 2 pessoas convidadas Ativo', + sharemovement_invitati_attivi_no: 'Nota:As pessoas que convidaste, para serem Active, têm de ter concluído todos os primeiros 7 Requisitos (ver o teu Lavagna para ver o que lhes falta)', + sharemovement: 'Convite a pelo menos 2 pessoas', + sharemovement_long: 'Partilhe o Movimento {sitename} e convide-os a participar nos Zooms de Boas-vindas para fazer parte desta grande Família 😄 .
          ', + inv_attivi_long: '', + enter_prog_completa_requisiti: 'Preencher todos os requisitos para entrar na lista de embarque.', + enter_prog_requisiti_ok: 'O usuário completou todos os 5 requisitos para entrar na lista de embarque.
          ', + enter_prog_msg: 'Você receberá uma mensagem nos próximos dias, assim que o seu navio estiver pronto!', + enter_prog_msg_2: '', + enter_nave_9req_ok: 'PARABÉNS! Você completou TODOS os 7 passos do Guia! Obrigado por ajudar a {sitename} a Expandir!
          Você poderá partir muito em breve com a sua Jornada, fazendo o seu presente e continuando para o Sonhador.', + enter_nave_9req_ko: 'Lembre-se que você pode ajudar o Movimento a crescer e expandir, compartilhando nossa jornada com todos!', + enter_prog: 'Vou em Lista Programação', + enter_prog_long: 'Satisfeito os requisitos para entrar no Programa, você será adicionado ao Ticket e ao chat do grupo correspondente.
          ', + collaborate: 'Colaboração', + collaborate_long: 'Continuo a trabalhar com os meus companheiros para chegar ao dia em que o meu navio vai zarpar.', + dream: 'Eu escrevo o meu sonho', + dream_long: 'Escreva aqui o Sonho pelo qual você entrou no {sitename} e que deseja realizar.
          Será compartilhado com todos os outros para sonharem juntos !', + dono: 'Presente', + dono_long: 'Eu faço o meu presente na data de partida do meu navio', + support: 'Eu apoio o movimento', + support_long: 'Eu apoio o movimento trazendo energia, participando e organizando o Zoom, ajudando e informando os recém-chegados e continuando a espalhar a visão de {sitename}.', + ricevo_dono: 'Eu recebo meu presente e CELEBRATO', + ricevo_dono_long: 'Viva!!!!
          ESTE MOVIMENTO É REAL E POSSÍVEL SE FABRICARMOS TODOS JUNTOS!!', + }, + dialog: { + continue: 'Continuar', + close: 'Fechar', + copyclipboard: 'Copiado para a prancheta', + ok: 'Ok', + yes: 'Sim', + no: 'Não', + delete: 'Eliminar', + cancel: 'Cancelar', + update: 'Atualização', + add: 'Adicione', + today: 'Hoje', + book: 'Livro', + avanti: 'Avançar', + indietro: 'Voltar', + finish: 'Acabar', + sendmsg: 'Enviar mensagem', + sendonlymsg: 'Envie apenas uma Msg', + msg: { + titledeleteTask: 'Eliminar Tarefa', + deleteTask: 'Eliminar {mytodo}?', + }, + }, + comp: { + Conta: 'Conta', + }, + db: { + recupdated: 'Record Aggiornato', + recfailed: 'Errore durante aggiornamento Record', + reccanceled: 'Annullato Aggiornamento. Ripristinato valore precendente', + deleterecord: 'Elimina Record', + deletetherecord: 'Eliminare il Record?', + deletedrecord: 'Record Cancellato', + recdelfailed: 'Errore durante la cancellazione del Record', + duplicatedrecord: 'Record Duplicato', + recdupfailed: 'Errore durante la duplicazione del Record', + }, + components: { + authentication: { + telegram: { + open: 'Clique aqui para abrir o Telegrama BOT e siga as instruções', + ifclose: 'Se você não abrir o Telegrama clicando no botão ou o apagar, vá até Telegrama e procure {botname} BOTTOM no ícone da lente, então pressione Iniciar e siga as instruções', + openbot: 'Abra {botname} no Telegrama', + }, + login: { + facebook: 'Facebook', + }, + email_verification: { + title: 'Comece a sua gravação', + introduce_email: 'insira o seu e-mail', + email: 'Email', + invalid_email: 'O seu e-mail é inválido', + verify_email: 'Verifique o seu e-mail', + go_login: 'Back to Login', + incorrect_input: 'Incorrect_input.', + link_sent: 'Abra a sua caixa de entrada, encontre o e-mail "Confirmar Registo para {sitename}" e clique em "Verificar Registo"', + se_non_ricevo: 'Se você não receber o e-mail, tente checar spam, ou entre em contato conosco', + title_unsubscribe: 'Subscribe to the newsletter', + title_unsubscribe_done: 'Desregisto completado corretamente', + }, + }, + }, + fetch: { + errore_generico: 'Erro genérico', + errore_server: 'Não é possível aceder ao Servidor. Tente novamente Obrigado.', + error_doppiologin: 'Faça o login novamente. Acesso aberto a partir de outro dispositivo.', + }, + user: { + notregistered: 'Você tem que se registrar para o serviço antes de trazer os dados', + loggati: 'Usuário não logado', + }, + templemail: { + subject: 'Oggetto Email', + testoheadermail: 'Intestazione Email', + content: 'Contenuto', + img: 'Immagine 1', + img2: 'Immagine 2', + content2: 'Contenuto 2', + options: 'Opzioni', + }, + dashboard: { + data: 'Datum', + data_rich: 'Data Pedido', + ritorno: 'Regresso', + invitante: 'Convidados', + num_tessitura: 'Numero di Tessitura:', + attenzione: 'Atenção', + downline: 'Convidados', + downnotreg: 'Convidados não registados', + notreg: 'Não Registado', + inv_attivi: 'Convidado com os 7 Requisitos', + numinvitati: 'Pelo menos 2 convidados', + telefono_wa: 'Contato no Whatsapp', + sendnotification: 'Enviar Notificação ao Destinatário no Telegrama BOT', + ricevuto_dono: '😍🎊 Você recebeu um convite de presente {invitato} de {mittente} !', + ricevuto_dono_invitante: '😍🎊 Você recebeu um Convidados de presente de {mittente} !', + nessun_invitante: 'Sem Convite', + nessun_invitato: 'Sem Convidados', + legenda_title: 'Clique no nome do convidado para ver o status de seus Requisitos', + nave_in_partenza: 'em Partida em', + nave_in_chiusura: 'Encerramento Gift Chat', + nave_partita: 'que partiu em', + tutor: 'Tutor', + /* Quando você se torna um mediador, um TUTOR entra em contato com você, e deve:
          ' + + '
          1. Abrir seu bate-papo do presente (você como proprietário e o tutor como administrador) com este nome:
            {nomenave}
          2. ' + + '
          3. Clique no nome do bate-papo na parte superior - > Editar -> Administradores -> "Adicionar administrador", selecione o Tutor na lista.
          4. ' + + '
          5. Você deve configurar o bate-papo de forma que quem entra depois também veja as postagens anteriores (clique no nome do bate-papo na parte superior, clique em editar' + + ' altere o "histórico de novos membros" de oculto para visível.
          6. ' + + '
          7. Para encontrar o link Bate-papo Recém-criado: Clique no nome do bate-papo na parte superior, clique no lápis -> "Tipo de grupo" -> "Convidar grupo via link", clique em "Copiar link" e cole-o abaixo' + + ', na caixa "Link do bate-papo para presente"'+ + 'Envie o link do bate-papo para presente a todos os doadores, clicando no botão abaixo.
          ', + */ + sonomediatore: 'Quando você for um MEDIATOR será contactado por TUTOR AYNI através de uma mensagem no Chat AYNI BOT.', + superchat: 'Nota: SOMENTE se tiver problemas de PAGAMENTO, ou se quiser ser REPRESENTADO, dois Tutores estão à espera para o ajudar no Chat:
          a href="{link_superchat}" target="_blank">Entre no Gift Chat.', + sonodonatore: '
          1. Quando você estiver nessa posição, você será convidado (por meio de uma mensagem em AYNI BOT) a entrar em um bate-papo de presentes (Telegram) e aqui também encontrará os outros 7 doadores, o mediador, o sonhador e um representante da equipe.
          2. ' + + '
          3. Você terá 3 dias para entrar no bate-papo para fazer seu presente.
          ', + soydonante_secundo_tejido: '
          1. Aqui você é Mediador e também Doador, mas sendo o segundo Tecido, você não terá que fazer seu presente novamente
          ', + controlla_donatori: 'Verifique a Lista de Doadores', + link_chat: 'Links de telegramas para o Gift Chat', + tragitto: 'Rota', + nave: 'Navio', + data_partenza: 'Data
          de saída', + doni_inviati: 'Donativos
          enviados', + nome_dei_passaggi: 'Nomes
          de Passos', + donatori: 'Doadores', + donatore: 'Doadore', + mediatore: 'Ombudsman', + sognatore: 'Sonhador', + sognatori: 'Sonhadores', + intermedio: 'INTERMEDIAR', + pos2: 'Interm. 2', + pos3: 'Interm. 3', + pos5: 'Interm. 5', + pos6: 'Interm. 6', + gift_chat: 'Para entrar no Gift Chat, clique aqui', + quando_eff_il_tuo_dono: 'Quando dar o Presente', + entra_in_gift_chat: 'Entre no Gift Chat', + invia_link_chat: 'Enviar link para o Gift Chat aos Doadores', + inviare_msg_donatori: '5) Enviar mensagem aos doadores', + msg_donatori_ok: 'Mensagem enviada aos Doadores', + metodi_disponibili: 'Métodos disponíveis', + importo: 'Importo', + effettua_il_dono: 'Chegou o momento de fazer o seu Presente o Sonhador
          👉 {sognatore} 👈 !
          ' + + 'Enviar via PayPal para: {email}
          ' + + 'AVISO: Escolha a opção "SENDING TO A FRIEND".)
          ', + paypal_me: '
          2) Método Simplificado
          Click directamente aqui>br>' + + 'abrirá o PayPal com o montante e o destinatário já definidos.
          ' + + 'Adicionar como mensagem: Presente>br>' + + 'AVISO: NÃO SELECCIONAR A CAIXA: Protecção de compras Paypal
          ' + + 'Se tiver alguma dúvida, veja o vídeo abaixo para ver como:
          ' + + 'Finalmente clique em "Enviar dinheiro agora"', + qui_compariranno_le_info: 'No dia da partida do Navio, a informação do Sonhador aparecerá', + commento_al_sognatore: 'Escreva aqui um comentário para o Sonhador:', + posizione: 'Localização', + come_inviare_regalo_con_paypal: 'Como enviar o presente via Paypal', + ho_effettuato_il_dono: 'Eu fiz o Presente', + clicca_conferma_dono: 'Clique aqui para confirmar que você fez o seu presente', + fatto_dono: 'Você confirmou que o presente foi enviado', + confermi_dono: 'Confirme que você enviou o seu Presente de 33€', + dono_ricevuto: 'O seu Presente foi Recebido!', + dono_ricevuto_2: 'Recebido', + dono_ricevuto_3: 'Chegou!', + confermi_dono_ricevuto: 'Por favor, confirme que você recebeu o presente de 33€ de {donatore}', + confermi_dono_ricevuto_msg: 'Confirmado de que você recebeu o Presente de 33€ de {donatore}', + msg_bot_conferma: '{donatore} confirmou que ele enviou o seu Presente de 33€ a {sognatore} (Commento: {commento})', + ricevuto_dono_ok: 'Você confirmou que o presente foi recebido', + entra_in_lavagna: 'Entre no seu quadro negro para ver os navios que partem', + doni_ricevuti: 'Presentes Recebidos', + doni_inviati_da_confermare: 'Presentes enviados (a serem confirmados)', + doni_mancanti: 'Presentes em falta', + temporanea: 'Temporário', + nave_provvisoria: 'Foi-lhe atribuído um NAVIO TEMPORÁRIO.
          É normal que veja uma alteração na data de partida, devido à actualização da classificação dos passageiros', + ritessitura: 'ESCRITENDO', + }, + reg: { + volta: 'vez', + volte: 'vezes', + registered: 'Registrato', + contacted: 'Contattato', + name_complete: 'Nome Completo', + num_invitati: 'Num.Invitati', + is_in_whatsapp: 'In Whatsapp', + is_in_telegram: 'In Telegram', + cell_complete: 'Cellulare', + failed: 'Fallito', + ind_order: 'Num', + ipaddr: 'IP', + verified_email: 'E-mail verificado', + you: 'Tu', + cancella_invitato: 'Eliminar Convidado', + regala_invitato: 'Presente Convidado', + regala_invitante: 'Presente Convite', + messaggio_invito: 'Mensagem de Convite', + messaggio_invito_msg: 'Envie esta mensagem a todos aqueles para quem você quer compartilhar este Movimento !', + videointro: 'Vídeo Introdutório', + invitato_regalato: 'Presente Convidado', + invitante_regalato: 'Convite Convidado', + legenda: 'Lenda', + aportador_solidario: 'Quem o convidou', + username_regala_invitato: 'Nome de utilizador do destinatário do presente', + aportador_solidario_nome_completo: 'Nominativo Invitante', + aportador_solidario_nome_completo_orig: 'Invitante Originario', + aportador_solidario_ind_order: 'Num Invitante', + already_registered: '', + reflink: 'Links para partilhar com os seus convidados:', + linkzoom: 'Ligações para Zoom in:', + page_title: 'Inscrição', + made_gift: 'Presente', + note: 'Note', + incorso: 'Inscrição em curso...', + richiesto: 'Campo Requerido', + email: 'Email', + intcode_cell: 'Int. prefixo', + cell: 'Celular', + cellreg: 'Cellulare con cui ti eri registrato', + nationality: 'Nacionalidade', + email_paypal: 'Email Paypal', + payeer_id: 'Id Payeer', + advcash_id: 'Email Advanced Cash', + revolut: 'Revolut', + link_payment: 'Ligações Paypal MoneyBox', + note_payment: 'Notas Adicionais', + country_pay: 'País de destino dos pagamentos', + username_telegram: 'Username Telegram', + telegram: 'Chat Telegram \'{botname}\'', + teleg_id: 'Telegram ID', + teleg_id_old: 'OLD Tel ID', + teleg_auth: 'Código de Autorização', + click_per_copiare: 'Clique sobre ele para copiá-lo para a área de transferência', + copia_messaggio: 'Copiar Mensagem', + teleg_torna_sul_bot: '1) Copie o código clicando no botão acima
          2) retorne ao {botname} clicando em 👇 e cole (ou escreva) o código', + teleg_checkcode: 'Código Telegram', + my_dream: 'O Meu Sonho', + saw_and_accepted: 'Condizioni', + saw_zoom_presentation: 'Ha visto Zoom', + manage_telegram: 'Gestori Telegram', + paymenttype: 'Formas de Pagamento disponíveis', + selected: 'Selezionati', + select: 'seleccionar', + img: 'Immagine', + date_reg: 'Data Reg.', + requirement: 'Requisitos', + perm: 'Permissão', + username: 'Username (Pseudônimo)', + username_short: 'Username', + name: 'Nome', + surname: 'Apelido', + username_login: 'Username ou email', + password: 'Senha', + repeatPassword: 'Repita a senha', + terms: 'Eu aceito os termos de privacidade', + onlyadult: 'Confirmo que sou maior de idade', + submit: 'Registar', + title_verif_reg: 'Verificação de Registro', + reg_ok: 'Registo efectuado com sucesso', + verificato: 'Verificado', + non_verificato: 'Não verificado', + forgetpassword: 'Esqueceu sua senha?', + modificapassword: 'Alterar Palavra-passe', + err: { + required: 'é obrigatório', + email: 'digite um e-mail válido', + errore_generico: 'Por favor preencha os campos corretamente', + atleast: 'deve ser pelo menos', + complexity: 'deve conter pelo menos 1 letra minúscula, 1 capital, 1 dígito', + notmore: 'não deve ser maior do que', + char: 'caracteres', + terms: 'Você deve aceitar as condições, para continuar', + email_not_exist: 'o Email não está presente no arquivo, verifique se está correcto', + duplicate_email: 'o e-mail já foi registrado', + user_already_exist: 'O registo com estes dados (nome, apelido e telemóvel) já foi feito. Para acessar o site, clique no botão LOGIN da HomePage.', + user_extralist_not_found: 'Utilizador no arquivo não encontrado, introduza o Nome, Apelido e número de telemóvel comunicado na lista em 2019. Se este for um novo registo, deve registar-se através do LINK de quem o está a convidar.', + user_not_this_aportador: 'Estás a usar um link de alguém que não o teu convidado original', + duplicate_username: 'O nome de usuário já foi usado', + username_not_valid: 'Username not valid', + aportador_not_exist: 'O nome de usuário da pessoa que o convidou não está presente. Por favor, contacte-nos.', + aportador_regalare_not_exist: 'Digite o nome de usuário da pessoa que você quer dar ao convidado como presente', + sameaspassword: 'As senhas devem ser idênticas', + }, + tips: { + email: 'insira o seu e-mail', + username: 'nome de usuário com pelo menos 6 caracteres', + password: 'deve conter 1 letra minúscula, 1 capital e 1 dígito', + repeatpassword: 'senha de repetição', + }, + }, + op: { + qualification: 'Qualifica', + usertelegram: 'Username Telegram', + disciplines: 'Discipline', + certifications: 'Certificazioni', + intro: 'Introduzione', + info: 'Biografia', + webpage: 'Pagina Web', + days_working: 'Giorni Lavorativi', + facebook: 'Pagina Facebook', + }, + login: { + page_title: 'Login', + incorso: 'Iniciar Sessão', + enter: 'Entrar', + esci: 'Saia', + errato: 'Username ou senha errados". Por favor, tente novamente', + subaccount: 'Esta conta foi fundida com a sua conta inicial. Entre utilizando o nome de utilizador (e e-mail) da conta FIRST.', + completato: 'Login concluído!', + needlogin: 'Você deve fazer o login antes de continuar', + }, + reset: { + title_reset_pwd: 'Redefinir sua senha', + send_reset_pwd: 'Enviar senha de reinicialização', + incorso: 'pedido de um novo e-mail', + email_sent: 'Email enviado', + check_email: 'Verifique seu e-mail, você receberá uma mensagem com um link para redefinir sua senha. Esta ligação, por segurança, expirará após 4 horas.', + token_scaduto: 'O token expirou ou já foi usado. Repita o procedimento de redefinição de senha', + title_update_pwd: 'Atualize sua senha', + update_password: 'Actualizar Palavra-passe', + }, + logout: { + uscito: 'Você está fora', + }, + errors: { + graphql: { + undefined: 'non definito', + }, + }, + showbigmap: 'Mostra la mappa più grande', + todo: { + titleprioritymenu: 'Priorità:', + inserttop: 'Inserisci il Task in cima', + insertbottom: 'Inserisci il Task in basso', + edit: 'Descrizione Task:', + completed: 'Ultimi Completati', + usernotdefined: 'Attenzione, occorre essere Loggati per poter aggiungere un Todo', + start_date: 'Data Inizio', + status: 'Stato', + completed_at: 'Data Completamento', + expiring_at: 'Data Scadenza', + phase: 'Fase', + }, + notification: { + status: 'Stato', + ask: 'Attiva le Notifiche', + waitingconfirm: 'Conferma la richiesta di Notifica', + confirmed: 'Notifiche Attivate!', + denied: 'Notifiche Disabilitate! Attenzione così non vedrai arrivarti i messaggi. Riabilitali per vederli.', + titlegranted: 'Permesso Notifiche Abilitato!', + statusnot: 'Stato Notifiche', + titledenied: 'Permesso Notifiche Disabilitato!', + title_subscribed: 'Sottoscrizione a FreePlanet.app!', + subscribed: 'Ora potrai ricevere i messaggi e le notifiche.', + newVersionAvailable: 'Aggiorna', + }, + connection: 'Connessione', + proj: { + newproj: 'Titolo Progetto', + newsubproj: 'Titolo Sotto-Progetto', + insertbottom: 'Inserisci Nuovo Project', + longdescr: 'Descrizione', + hoursplanned: 'Ore Preventivate', + hoursadded: 'Ore Aggiuntive', + hoursworked: 'Ore Lavorate', + begin_development: 'Inizio Sviluppo', + begin_test: 'Inizio Test', + progresstask: 'Progressione', + actualphase: 'Fase Attuale', + hoursweeky_plannedtowork: 'Ore settimanali previste', + endwork_estimate: 'Data fine lavori stimata', + privacyread: 'Chi lo puo vedere:', + privacywrite: 'Chi lo puo modificare:', + totalphases: 'Totale Fasi', + themecolor: 'Tema Colore', + themebgcolor: 'Tema Colore Sfondo', + }, + where: { + code: 'Id', + whereicon: 'Icona', + }, + col: { + label: 'Etichetta', + value: 'Valore', + type: 'Tipo', + }, + cal: { + num: 'Numero', + booked: 'Prenotato', + booked_error: 'Prenotazione non avvenuta. Riprovare più tardi', + sendmsg_error: 'Messaggio non inviato. Riprovare più tardi', + sendmsg_sent: 'Messaggio Inviato', + booking: 'Prenota Evento', + titlebooking: 'Prenotazione', + modifybooking: 'Modifica Prenotazione', + cancelbooking: 'Cancella Prenotazione', + canceledbooking: 'Prenotazione Cancellata', + cancelederrorbooking: 'Cancellazione non effettuata, Riprovare più tardi', + cancelevent: 'Cancella Evento', + canceledevent: 'Evento Cancellato', + cancelederrorevent: 'Cancellazione Evento non effettuata, Riprovare', + event: 'Evento', + starttime: 'Dalle', + nextevent: 'Prossimo Evento', + readall: 'Leggi tutto', + enddate: 'al', + endtime: 'alle', + duration: 'Durata', + hours: 'Orario', + when: 'Quando', + where: 'Dove', + teacher: 'Condotto da', + enterdate: 'Inserisci data', + details: 'Dettagli', + infoextra: 'Date e Ora Extra:', + alldayevent: 'Tutto il giorno', + eventstartdatetime: 'Inizio', + enterEndDateTime: 'Fine', + selnumpeople: 'Partecipanti', + selnumpeople_short: 'Num', + msgbooking: 'Messaggio da inviare', + showpdf: 'Vedi PDF', + bookingtextdefault: 'Prenoto per', + bookingtextdefault_of: 'di', + data: 'Data', + teachertitle: 'Insegnante', + peoplebooked: 'Prenotaz.', + showlastschedule: 'Vedi tutto il Calendario', + }, + msgs: { + message: 'Messaggio', + messages: 'Messaggi', + nomessage: 'Nessun Messaggio', + }, + event: { + _id: 'id', + typol: 'Typology', + short_tit: 'Titolo Breve', + title: 'Titolo', + details: 'Dettagli', + bodytext: 'Testo Evento', + dateTimeStart: 'Data Inicial', + dateTimeEnd: 'Data Fine', + bgcolor: 'Colore Sfondo', + days: 'Giorni', + icon: 'Icona', + img: 'Nomefile Immagine', + img_small: 'Img Piccola', + where: 'Dove', + contribtype: 'Tipo Contributo', + price: 'Contributo', + askinfo: 'Chiedi Info', + openpage: 'Apri Pagina', + showpage: 'Vedi Pagina', + infoafterprice: 'Note dopo la Quota', + teacher: 'Insegnante', // teacherid + teacher2: 'Insegnante2', // teacherid2 + infoextra: 'InfoExtra', + linkpage: 'WebSite', + linkpdf: 'Link ad un PDF', + nobookable: 'Non Prenotabile', + news: 'Novità', + dupId: 'Id Duplicato', + canceled: 'Cancellato', + deleted: 'Eliminato', + duplicate: 'Duplica', + notempty: 'Il campo non può essere vuoto', + modified: 'Modificato', + showinhome: 'Mostra nella Home', + showinnewsletter: 'Mostra nella Newsletter', + color: 'Colore del titolo', + }, + disc: { + typol_code: 'Codice Tipologia', + order: 'Ordinamento', + }, + newsletter: { + title: 'Desideri ricevere la nostra Newsletter?', + name: 'Il tuo Nome', + surname: 'Il tuo Cognome', + namehint: 'Nome', + surnamehint: 'Cognome', + email: 'La tua Email', + submit: 'Iscriviti', + reset: 'Cancella', + typesomething: 'Compilare correttamente il campo', + acceptlicense: 'Accetto la licenza e i termini', + license: 'Devi prima accettare la licenza e i termini', + submitted: 'Iscritto', + menu: 'Newsletter1', + template: 'Modelli Email', + sendemail: 'Invia', + check: 'Controlla', + sent: 'Già Inviate', + mailinglist: 'Lista Contatti', + settings: 'Impostazioni', + serversettings: 'Server', + others: 'Altro', + templemail: 'Modello Email', + datetoSent: 'DataOra Invio', + activate: 'Attivato', + numemail_tot: 'Email Totali', + numemail_sent: 'Email Inviate', + datestartJob: 'Inizio Invio', + datefinishJob: 'Fine Invio', + lastemailsent_Job: 'Ultima Inviata', + starting_job: 'Invio Iniziato', + finish_job: 'Invio Terminato', + processing_job: 'Lavoro in corso', + error_job: 'Info Errori', + statesub: 'Sottoscritto', + wrongerr: 'Email non valida', + }, + privacy_policy: 'Política de Privacidade', + cookies: 'Nós usamos Cookies para um melhor desempenho na web.', + }, +}; + +export default msg_pt; diff --git a/src/statics/lang/si.js b/src/statics/lang/si.js new file mode 100755 index 00000000..5441dc99 --- /dev/null +++ b/src/statics/lang/si.js @@ -0,0 +1,537 @@ +const msg_si = { + si: { + words: { + da: 'da', + a: 'a', + }, + home: { + guida: 'Vodnik', + guida_passopasso: 'Vodnik po korakih', + }, + grid: { + editvalues: 'Modifica Valori', + addrecord: 'Aggiungi Riga', + showprevedit: 'Pokaži pretekle dogodke', + columns: 'Vrstice', + tableslist: 'Tabele', + nodata: 'Noben podatek', + }, + gallery: { + author_username: 'Utente', + title: 'Naziv', + directory: 'Directory', + list: 'Lista', + }, + otherpages: { + sito_offline: 'Spletno mesto se posodablja', + modifprof: 'Uredi pProfil', + biografia: 'Biografia', + update: 'Posodobitev v teku...', + error404: 'error404', + error404def: 'error404def', + admin: { + menu: 'Administracija', + eventlist: 'Vaše rezervacije', + usereventlist: 'Uporabniške rezervacije', + userlist: 'Seznam uporabnikov', + zoomlist: 'Zoom koledar', + extralist: 'Dodatni seznam', + dbop: 'Operacije Db', + tableslist: 'Seznam tabel', + navi: 'Ladje', + listadoni_navi: 'Seznam daril ladjic', + newsletter: 'Novosti', + pages: 'Strani', + media: 'Mediji', + gallery: 'Galerije', + }, + manage: { + menu: 'Upravljanje', + manager: 'Upravitelj', + nessuno: 'Noben', + }, + messages: { + menu: 'Vaša sporočila', + }, + }, + sendmsg: { + write: 'napiši', + }, + stat: { + imbarcati: 'Vkrcavanje', + imbarcati_weekly: 'Vkrcavanje tedenske', + imbarcati_in_attesa: 'Vkrcavanje čaka', + qualificati: 'Kvalificirajte se z vsaj dvema gostoma', + requisiti: 'Uporabniki s 7 zahtevami', + zoom: 'Sodeloval pri Zoomu', + modalita_pagamento: 'Vneseni načini plačila', + accepted: 'Sprejete smernice + videoposnetki', + dream: 'Napisali svoje Sanje', + email_not_verif: 'Nepreverjena e-pošta', + telegram_non_attivi: 'Telegram ni aktiven', + telegram_pendenti: 'Čakajoči Telegram', + reg_daily: 'Dnevne registracije', + reg_weekly: 'Tedenske prijave', + reg_total: 'Skupne registracije', + }, + steps: { + nuovo_imbarco: 'Rezerviraj še eno potovanje', + vuoi_entrare_nuova_nave: 'Želis pomagati Gibanju, napredovati in vstopiti v še eno\novo Ladjico?
          Z novim vplačilom 33€, lahko pričneš novo potovanje in tako dobiš še eno priložnost, da postaneš Sanjač!
          ' + + 'Če potrdiš boš dodan na seznam čakajočih za vkrcavanje.', + vuoi_cancellare_imbarco: 'Ali ste prepričani, da želite izbrisati vaš vstop v Ladjo Ayni?', + completed: 'zaključen', + passi_su: '{passo} od {totpassi} koraki', + video_intro_1: '1. Dobrodošli v {sitename}', + video_intro_2: '2. Rojstvo {sitename}', + read_guidelines: 'Sem prebral in sprejel napisal zgornje pogoje', + saw_video_intro: 'Izjavljam, da sem pogledal videoposnetke', + paymenttype: 'Načini plačila', + paymenttype_long: ' Načini plačila so:
          • Revolut : predplačniška kartica Revolut z angleškim IBAN (zunaj EU) popolnoma brezplačna, svobodnejša in enostavnejša za uporabo. Na voljo je aplikacija za mobilne naprave.
          • Paypal ker gre za zelo pogost sistem po vsej Evropi (prenos je brezplačen ) kjer lahko povežete predplačniške kartice, kreditne kartice ali tekoči račun BREZ KOMISIJ . Na ta način vam ne bo treba deliti številk svojih kartic ali c / c, ampak samo e-pošto, ki ste jo uporabili pri prijavi na Paypal. Mobilna aplikacija je na voljo.
          ', + paymenttype_long2: 'Paypal je potreben
          Za izmenjavo daril priporočamo, da imate na voljo vsaj 2 načina plačila .', + paymenttype_paypal: 'Kako odpreti Paypal račun (v 2 minutah)', + paymenttype_paypal_carta_conto: 'Kako povezati kreditno / debetno kartico ali bančni račun na PayPal', + paymenttype_paypal_link: 'Odprite račun s Paypalom', + paymenttype_revolut: 'Kako odpreti račun z Revolutom (v 2 minutah)', + paymenttype_revolut_link: 'Odprite račun z Revolutom', + entra_zoom: 'Vstopi v Zoom', + linee_guida: 'Sprejemam smernice', + video_intro: 'Pogledam video', + zoom: 'Sodelujem pri vsaj 1 zoomu', + zoom_si_partecipato: 'Udeležili ste se vsaj 1-ga zooma', + zoom_gia_partecipato: 'Hai gia partecipato alla Video-Conferenza di Benvenuto', + zoom_partecipa: 'Sodeloval je v vsaj 1-em Zoomu', + zoom_no_partecipato: 'Še niste sodelovali pri zoomu (zahteva, da lahko vstopite)', + zoom_long: 'Potrebno je sodelovati pri vsaj enem zoomu, vendar je priporočljivo, da se v gibanje vključite bolj aktivno.

          \n' + + ' Osebje bo s sodelovanjem v zoomih beležilo udeležbe in vam bo omogočeno. ', + zoom_what: 'Navodila, kako namestiti Zoom Cloud Meeting', + // sharemovement_devi_invitare_almeno_2: 'Nisi še vpisal 2-eh oseb', + // sharemovement_hai_invitato: 'Si vpisaj vsaj 2 osebi', + sharemovement_invitati_attivi_si: 'Imate vsaj 2 aktivna povabljena', + sharemovement_invitati_attivi_no: ' Opomba: Osebe, ki ste jih povabili, da so aktivni , morajo imeti izpolnjene vseh prvih 7 zahtev (glejte Belo tablo če želite razumeti, kaj manjka)', + sharemovement: 'Delim gibanje', + sharemovement_long: 'Delite gibanje {sitename} in jih povabite, da sodelujejo v zoomih dobrodošlice, da postanejo del te velike družine 😄 .
          ', + inv_attivi_long: '', + enter_prog_completa_requisiti: 'Izpolnite vse potrebne zahteve, da lahko vstopite na seznam za vstop.', + enter_prog_requisiti_ok: 'Izpolnili ste vseh 5 zahtev za vpis na vstopni seznam.
          ', + enter_prog_msg: 'V naslednjih dneh boste takoj, ko bo vaša ladja pripravljena, prejeli sporočilo!', + enter_prog_msg_2: '', + enter_nave_9req_ok: 'ČESTITKE! Izpolnili ste VSE 7 korakov! Hvala, ker ste pomagali {sitename} pri razširitvi!
          Zelo kmalu boste lahko odšli na potovanje, si priskrbeli darilo in nadaljevali proti sanjaču ', + enter_nave_9req_ko: 'Ne pozabite, da lahko pomagate rasti in razširiti gibanje, tako da svoje potovanje delite z drugimi!', + enter_prog: 'Vpišem se na Seznam vkrcavanja', + enter_prog_long: 'Ne pozabite, da lahko pomagate rasti in razširiti gibanje, tako da svoje potovanje delite z drugimi!
          ', + collaborate: 'sodelovanje', + collaborate_long: 'Še naprej sodelujem s spremljevalci, da bi prišel do dneva, ko bo moja ladja priplula.', + dream: 'Pišem svoje sanje', + dream_long: 'Tu napišite sanje, zaradi katerih ste vstopili v {sitename} in jih želite izpolniti.
          Z drugimi bomo delili, da bomo sanjali skupaj !', + dono: 'Darilo', + dono_long: 'Darilo vročim na datum odhoda svoje ladje', + support: 'Podpiram gibanje', + support_long: 'Gibanje podpiram z vključevanjem energije, sodelovanjem in organiziranjem Zooma, pomaganjem in obveščam novincev z nadaljnjim širjenjem {sitename} vizije', + ricevo_dono: 'Prejmem svoje darilo in POČAS', + ricevo_dono_long: 'Ura !!!
          TO GIBANJE JE resnično in možno, če vsi delamo SKUPAJ!', + }, + dialog: { + continue: 'Naprej', + close: 'Zapri', + copyclipboard: 'Kopirano v odložišče', + ok: 'Ok', + yes: 'Da', + no: 'Ne', + delete: 'Izbriši', + cancel: 'Preklic', + update: 'Osveži', + add: 'Dodaj', + today: 'Danes', + book: 'Knjiga', + avanti: 'Naslednja', + indietro: 'Nazaj', + finish: 'konec', + sendmsg: 'Pošlji sporočilo', + sendonlymsg: 'Pošlji samo eno sporočilo', + msg: { + titledeleteTask: 'Izbriši nalogo', + deleteTask: 'Želite izbrisati {mytodo}?', + }, + }, + comp: { + Conta: 'CountPreštejte', + }, + db: { + recupdated: 'Posnetek posodobljen', + recfailed: 'Napaka pri posodabljanju zapisa', + reccanceled: 'Preklicana posodobitev. Obnovi prejšnjo vrednost', + deleterecord: 'Izbriši zapis', + deletetherecord: 'Želiš završti zapis?', + deletedrecord: 'Zapis je izbrisan', + recdelfailed: 'Napaka med brisanjem zapisa', + duplicatedrecord: 'Podvojen zapis', + recdupfailed: 'Napaka med podvajanjem zapisa', + }, + components: { + authentication: { + telegram: { + open: 'Kliknite tukaj, da odprete BOT Telegram in sledite navodilom', + ifclose: 'Če se Telegram ne odpre s klikom na gumb ali ste ga izbrisali, pojdite na Telegram in poiščite \'{botname}\' na ikoni leče, nato pritisnite Start in sledite navodilom.', + openbot: 'Odprite "{botname}" na Telegramu', + }, + login: { + facebook: 'Facebook', + }, + email_verification: { + title: 'tzačnite registracijo', + introduce_email: 'vnesite svoj e-poštni naslov', + email: 'E-pošta', + invalid_email: 'Vaša e-pošta ni veljavna', + verify_email: 'Preverite e-pošto', + go_login: 'Vrnitev v prijavo', + incorrect_input: 'Nepravilna vstavitev.', + link_sent: 'Odprite nabiralnik, poiščite e-poštno sporočilo "Potrdi prijavo {sitename}" in kliknite "Preveri registracijo"', + se_non_ricevo: 'Če ne prejmete e-pošte, poskusite preveriti v neželeni pošti ali nas kontaktirajte', + title_unsubscribe: 'Odjavite se iz glasila', + title_unsubscribe_done: 'Odjava se je uspešno zaključila', + }, + }, + }, + fetch: { + errore_generico: 'Splošna napaka', + errore_server: 'Do strežnika ni mogoče dostopati. Poskusite znova. Hvala', + error_doppiologin: 'Ponovno se prijavite. Dostop je bil odprt iz druge naprave.', + }, + user: { + notregistered: 'Preden lahko shranite svoje podatke, se morate registrirati za storitev', + loggati: 'Uporabnik ni prijavljen', + }, + dashboard: { + data: 'Datum', + data_rich: 'Zahtevani datum', + ritorno: 'Vrnitev', + invitante: 'povabljenca', + num_tessitura: 'Numero di Tessitura:', + attenzione: 'Pozornosti', + downline: 'povabljen', + downnotreg: 'Neregistrirani gostje', + notreg: 'Ni registrirano', + inv_attivi: 'Povabljeni s 5 zahtevami', + numinvitati: 'Z vsaj 2-emi povabljenici', + telefono_wa: 'Pišite na Whatsapp', + sendnotification: 'Obvestilo pošljite prejemniku na Telegram BOT', + ricevuto_dono: '😍🎊 Prejeli ste darilo {invitato} kot darilo od {mittente} !', + ricevuto_dono_invitante: '😍🎊 Prejeli ste povabljenca kot darilo od {mittente} !', + nessun_invitante: 'Nobenega povabljenega', + nessun_invitato: 'Ni gostov', + legenda_title: 'Kliknite na povabljeno ime, da si ogledate stanje njihovih zahtev.', + nave_in_partenza: 'ladja v odhodu', + nave_in_chiusura: 'Zapiranje Gift- Darilni klepet', + nave_partita: 'levo naprej', + tutor: 'Tutor', + /* Ko postaneš Mediator te kontaktira en TUTOR, z njim moraš:
            ' + + '
          1. Odpret svoj Gift- Darilni klepet (ti kot lastnik in Tutor ' + + 'kot administrator) s tem imenom:
            {nomenave}
          2. ' + + '
          3. Klikni na ime klepeta na vrhu-> Popravi -> Administratorji -> "Dodaj Administratorja", izberi Tutorja v imeniku.
          4. ' + + '
          5. Moraš nastaviti klepet na način, da vsak, ki vstopi vidi predhodne objave(klikni na ime klepeta na vrhu, klikni na popravi, ' + + 'spremeni "zgodovina za nove člane" iz skrite v vidno.
          6. ' + + '
          7. Da najdeš link pravkar ustvarjenega klepeta : klikni na ime klepeta na vrhu, klikni na svinčnik -> "Vrsta Skupine" -> "z linkom povabi v skupino", klikni na"kopiraj link" in prilepi tu spodaj, v okvir"Link Gift Klepet"
          8. ' + + '
          9. Pošlji Link Gift Klepeta vsem Donatorjem, tako, da klikneš na spodnji gumb.
          ', + */ + sonomediatore: 'Ko ste MEDIATOR, vas bo TUTOR AYNI poklical preko sporočila na klepetu AYNI BOT', + superchat: 'Pozorno preberi: SAMO če imaš težave s PLAČILOM, ali želiš biti ZAMENJAN, te dva Tutorja pričakujeta, da ti lahko pomagata v Klepetu:
          Vstopi v Super Klepet', + sonodonatore: '
          1. Ko si na tej poziciji, boš povabljen, da vstopiš v Gift Klepet (Telegram) in tam boš našel še ostalih 7 Donatorjev, Mediatorja, Sanjača in enega predstavnika Tima.
          2. ' + + '
          3. Imel boš 3 dni časa v za izpeljati vplačilo.
          ', + sonodonatore_seconda_tessitura: '
          1. Tu si istočasno Mediator in Donator. Ker je to tvoj avtomatičen vpis, ti ni sedaj potrebno vplačati!
          ', + controlla_donatori: 'Preverite seznam donatorjev', + link_chat: 'Povezava telegrama darilnega klepeta', + tragitto: 'Potovanje', + nave: 'Ladja', + data_partenza: 'Datum
          odhoda', + doni_inviati: 'Darila
          poslana', + nome_dei_passaggi: 'Ime
          prehodov', + donatori: 'Donator', + donatore: 'Donator', + mediatore: 'Mediator', + sognatore: 'Sanjač', + sognatori: 'Sanjači', + intermedio: 'POTNIK', + pos2: 'Interm. 2', + pos3: 'Interm. 3', + pos5: 'Interm. 5', + pos6: 'Interm. 6', + gift_chat: 'Za vstop v Gift Klepet,klikni tu', + quando_eff_il_tuo_dono: 'Ko izpelješ vplačilo', + entra_in_gift_chat: 'Vstopi v Gift Klepet', + invia_link_chat: 'Pošlji link Gift Klepeta Donatorjem', + inviare_msg_donatori: '5) Pošlji sporočilo Donatorjem', + msg_donatori_ok: 'Poslano sporočilo Donatorjem', + metodi_disponibili: 'Načini na Voljo', + importo: 'Uvoz', + effettua_il_dono: 'Je prišel trenutek da Vplačaš svoje darilo Sanjarju
          👉 {sognatore} 👈 !
          ' + + 'Vplačilo preko PayPal na: {email}
          ' + + 'V sporocilo dopiši: Darilo
          ' + + 'POZOR POMEMBNO: Zberi možnost
          "SENDING TO A FRIEND"

          ', + paypal_me: '
          2) Poenostavljena metoda
          Klikneš direktno na link
          ' + + 'odpre se ti si PayPal z že vpisanim zneskom in postavljenim emailom osebe, ki ji vplačuješ
          ' + + 'V sporočilo dopiši: Darilo
          ' + + 'POZOR POMEMBNO: ODMAKNI OZNAČBO NA : "Vplačujem storitve ali blago?" (Zaščita nakupa Paypal)
          ' + + 'Če imaš dvome, si oglej celoten postopek v spodnjem videu:
          ' + + 'Na koncu klikni “Pošlji denar -Vplačaj”', + qui_compariranno_le_info: 'Na dan odhoda Ladje, prejmete vse potrebne informacije s strani Sanjača', + commento_al_sognatore: 'Tu napišite komentar za Sanjač:', + posizione: 'Pozicija', + come_inviare_regalo_con_paypal: 'Kako vplačati preko', + ho_effettuato_il_dono: 'POTRJUJEM VPLAČILO', + clicca_conferma_dono: 'Klikni tu, da potrdiš izvedeno vplačilo', + fatto_dono: 'Potrdil si, da je vplačilo bilo izvedeno', + confermi_dono: 'Potrdi da si vplačal 33€', + dono_ricevuto: 'Tvoje vplačilo je prejeto!', + dono_ricevuto_2: 'Sprejeto', + dono_ricevuto_3: 'Prispelo!', + confermi_dono_ricevuto: 'Potrjujem, da sem sprejel darilo v znesku 33€ z strani {donatore}', + confermi_dono_ricevuto_msg: 'Potrjena da je prejel Darilo 33€ iz strani {donatore}', + msg_bot_conferma: '{donatore} je potrdil, da je poslal svoje Darilo v vrednosti 33€ {sognatore} (Commento: {commento})', + ricevuto_dono_ok: 'Potrdil si da si darilo Sprejel', + entra_in_lavagna: 'Vstopi v svojo Tablo, da pogledaš Ladje, ki bodo izplule', + doni_ricevuti: 'Sprejeta Darila', + doni_inviati_da_confermare: 'Poslana Darila (za potrditev)', + doni_mancanti: 'Manjkajoča Darila', + temporanea: 'Začasna', + nave_provvisoria: 'Dodeljena ti je bila ZAČASNA ladja.
          Normalno je, da boš zaradi posodobitve seznama potnikov videli spremenjen datum odhoda.', + ritessitura: 'Avtomatičen Vpis', + }, + reg: { + volta: 'krat', + volte: 'krat', + registered: 'Registriran', + contacted: 'Obveščen', + name_complete: 'Popolno ime', + num_invitati: 'Število povabljenih', + is_in_whatsapp: 'v Whatsapp-u', + is_in_telegram: 'V Telegram-u', + cell_complete: 'Telefon', + failed: 'Zgrešeno', + ind_order: 'Num', + ipaddr: 'IP', + verified_email: 'Email Potrjena', + reg_lista_prec: ' Vpiši Ime, Priimek in telefonsko številko, ki si vpisal prvič ob vstopu v Klepet!
          Na ta način te sistem prepozna in obdržite pozicijo na listi.', + nuove_registrazioni: 'Če je to NOVA registracija, moraš kontaktirati osebo, ki te je POVABILA, da ti posreduje PRAVILEN LINK za Registracijo pod njim/njo', + you: 'Ti', + cancella_invitato: 'Odstrani povabljenca', + cancella_account: 'Zbriši registracijo', + cancellami: 'Si siguren, da želiš popolnoma Izbrisati svojo Registracijo na {sitename} in tako izstopiti iz gibanja? Ne boš mogel več vstopiti na spletno stran s svojimi podatki, Izgubil Perderai boš svojo POZICIJO in tvoji povabljenci bodo PODARJENI osebi, ki te je povabila.', + cancellami_2: 'ZADNJE OBVESTILO! Bi rad Definitivno izstopil iz {sitename} ?', + account_cancellato: 'Tvoj profil je pravilno izbrisan', + regala_invitato: 'Podari povabljenca', + regala_invitante: 'Podari Povabljenega', + messaggio_invito: 'Povabilno sporočilo', + messaggio_invito_msg: 'Pošlji sporočilo vsem, s katerimi želiš deliti to Gibanje!', + videointro: 'Predstavitveni Video', + invitato_regalato: 'Povabljnec Podarjen', + invitante_regalato: 'Povabljenega Podarjen', + legenda: 'Zgodovina', + aportador_solidario: 'Kdo te je Povabil', + username_regala_invitato: 'Uporabniško ime Destinatorja darila', + aportador_solidario_nome_completo: 'Polno ime povabljenca', + aportador_solidario_nome_completo_orig: 'Originalen Povabljenec', + aportador_solidario_ind_order: 'Številka Povabljenca', + already_registered: 'Sem se že prijavil v klepet, pred 13 Januarjem', + reflink: 'Link, ki ga deliš med svojimi povabljenci:', + linkzoom: 'Link za vstop v Zoom:', + page_title: 'Registracija', + made_gift: 'Darilo', + note: 'Zapis', + incorso: 'Registracija v Teku...', + richiesto: 'Obvezno Polje', + email: 'Email', + intcode_cell: 'Klicna številka.', + cell: 'telefonska Telegram', + cellreg: 'Telefonska s katero si se registriral', + nationality: 'Nacionalnost', + email_paypal: 'Email Paypal', + payeer_id: 'Id Payeer', + advcash_id: 'Email Advanced Cash', + revolut: 'Revolut', + link_payment: 'Povezava paypal MoneyBox', + note_payment: 'Dodatne opombe', + country_pay: 'Država destinacije Vplačil', + username_telegram: 'Uporabniško ime Telegram', + telegram: 'Klepet Telegram \'{botname}\'', + teleg_id: 'Telegram ID', + teleg_id_old: 'STAR Tel ID', + teleg_auth: 'Avtorizacijska koda', + click_per_copiare: 'KLikni zgoraj, da kopiraš v odložišče', + copia_messaggio: 'Kopiraj Sporočilo', + teleg_torna_sul_bot: '1) Kopiraj kodo tako da klikneš na zgornji gumb
          2) vrni se v {botname} s klikom tu spodaj 👇 in prilepi(ali napiši) kodo', + teleg_checkcode: 'Koda Telegram', + my_dream: 'Moje Sanje', + saw_and_accepted: 'Pogoji', + saw_zoom_presentation: 'Je bil prisoten na Zoom-u', + manage_telegram: 'Skrbniki Telegram', + paymenttype: 'Razpoložljivi načini Plačila', + selected: 'Izbrani', + select: 'izbrati', + img: 'Slika', + date_reg: 'Datum Reg.', + requirement: 'Zahteve', + perm: 'Dovoljenja', + username: 'Uporabniško ime (Pseudonimo)', + username_short: 'Up.ime', + name: 'Ime', + surname: 'Priimek', + username_login: 'Up. ime ali email', + password: 'Geslo', + repeatPassword: 'Ponovi geslo', + terms: 'Sprejemam pogoje poslovanja', + onlyadult: 'Potrjujem da sem Polnoleten', + submit: 'Registriraj se', + title_verif_reg: 'Preveri Registracijo', + reg_ok: 'Uspešno si Registriran', + verificato: 'Preverjeno', + non_verificato: 'Ni Preverjeno', + forgetpassword: 'Pozabljeno geslo?', + modificapassword: 'Spremenite geslo', + err: { + required: 'je zahtevano', + email: 'vpiši veljaven email', + errore_generico: 'Prosimo, da pravilno izpolnete vsa polja', + atleast: 'mora biti dolgo vsaj', + complexity: 'ora vsebobati vsaj 1 malo črko, 1 veliko črko, 1 številko', + notmore: 'ne sme biti dolgo več kot', + char: 'karakterji', + terms: 'Za nadaljevanje, moraš sprejeti pogoje poslovanja.', + email_not_exist: 'E-naslov ni prisotna v arhivu, preveri, če je pravilna', + duplicate_email: 'E-naslov je že bila registrirana', + user_already_exist: 'Registracija s temi podatki (ime,priimek, telefonska)je že uporabljena.Za vstop na spletno stran, klikni na gumb LOGIN na Začetni Strani.', + user_extralist_not_found: 'Uporabnik ni najden v arhivu, vpiši Ime,Priimek in telefonsko, ki si jo posredoval v listi leta 2019. Če je to nova registracija, se moraš prijaviti potom LINKA osebe, ki te vabi.', + user_not_this_aportador: 'Uporabljaš link druge osebe, različen od tvojega originalnega povabljenca.', + duplicate_username: 'To Uporabniško ime je že uporabljeno', + username_not_valid: 'Username not valid', + aportador_not_exist: 'To Uporabniško ime, ki te je povabilo, ni več prisotno.Kontaktiraj nas.', + aportador_regalare_not_exist: 'Vpiši Uporabniško ime osebe, ki jo želiš podariti povabljencu', + sameaspassword: 'Geslo mora biti enako', + }, + tips: { + email: 'vpiši svoj email', + username: 'Uporabniško ime dolgo vsaj 6 karakterjev', + password: 'mora vsebovati vsaj 1 majhno črko, 1 veliko črko in 1 številko', + repeatpassword: 'ponovi geslo', + + }, + }, + login: { + page_title: 'Vpis', + incorso: 'Vpis v teku', + enter: 'Vstopi', + esci: 'Izstopi', + errato: 'Uporabniško ime ali geslo napačna.Poskusi ponovno', + subaccount: 'Ta profil je bil združen z vašim prvim profilom. Izpelji dostop z vpisom uporabniskega imena(ali emaila) iz PRVEGA vpisa', + completato: 'Uspešen vpis!', + needlogin: 'Je potrebno izpeljati vpis preden nadaljuješ.', + }, + reset: { + title_reset_pwd: 'Ponastavi geslo', + send_reset_pwd: 'Pošlji ponastavitev gesla', + incorso: 'Zahteva Nova Email...', + email_sent: 'Email poslana', + check_email: 'Preveri svoje email, kjer boš prejel sporočilo z linkom za ponastaviti geslo.Zaradi varnostnih razlogov, bo ta link zapadel čez 4 ure.', + token_scaduto: 'Geslo je izsteklo ali je že bilo uporabljeno.Ponovi postopek za ponastavitev gesla', + title_update_pwd: 'Osveži svoje geslo', + update_password: 'osveži Geslo', + }, + logout: { + izhod: 'Si izstopil', + }, + errors: { + graphql: { + undefined: 'ne definiran', + }, + }, + showbigmap: 'Pokaži večjo mapo', + notification: { + status: 'Status', + ask: 'Aktiviraj Obveščanje', + waitingconfirm: 'Potrdi prošnjo za Obveščanje', + confirmed: 'Obveščanje Aktivirano!', + denied: 'Obvestila Onemogočena! Pozor tako ne boš videl prihajajočih sporočil. Omogoči, da jih vidiš.', + titlegranted: 'Dovoljenje Obveščanj Omogočeno!', + statusnot: 'Status Obveščanj', + titledenied: 'Dovoljenje Obveščanj Onemogočeno!', + title_subscribed: 'Pod vpisi na spletno stran!', + subscribed: 'Sedaj boš lahko sprejemal sporočila in obvestila.', + newVersionAvailable: 'Osveži', + }, + connection: 'Povezava', + cal: { + num: 'Število', + booked: 'Rezervirano', + booked_error: 'Rezervacija ni možna. Poskusi kasneje.', + sendmsg_error: 'Sporočilo ni bilo poslano. Poskusi kasneje.', + sendmsg_sent: 'Sporočilo Poslano', + booking: 'Rezerviraj Dogodek', + titlebooking: 'Rezervacija', + modifybooking: 'Popravilo rezervacije', + cancelbooking: 'Izbriši rezervacijo', + canceledbooking: 'Rezervacija izbrisana', + cancelederrorbooking: 'Brisanje ni izvedeno. Poskusi kasneje', + cancelevent: 'Izbriši dogodek', + canceledevent: 'Dogodek Izbrisan', + cancelederrorevent: 'Izbris dogodka ni izveden, poskusi kasneje', + event: 'Dogodek', + starttime: 'Od', + nextevent: 'Naslednji dogodek', + readall: 'Preberi vse', + enddate: 'v tem času', + endtime: 'ob', + duration: 'Trajanje', + hours: 'Urnik', + when: 'Kdaj', + where: 'Kje', + teacher: 'Vodi', + enterdate: 'Vpiši datum', + details: 'Podrobnosti', + infoextra: 'Extra datum in ura:', + alldayevent: 'Ves dan', + eventstartdatetime: 'Pričetek', + enterEndDateTime: 'Konec', + selnumpeople: 'Sodelujoči', + selnumpeople_short: 'Num', + msgbooking: 'Sporočilo za pošiljati', + showpdf: 'Poglej PDF', + bookingtextdefault: 'Rezerviram za', + bookingtextdefault_of: 'od', + teachertitle: 'Učitelj', + peoplebooked: 'Rezervacije.', + showlastschedule: 'Poglej v kolendarju', + }, + msgs: { + message: 'Sporočilo', + messages: 'Sporočila', + nomessage: 'Nobenega Sporočila', + }, + event: { + dateTimeStart: 'Datum pričetka', + dateTimeEnd: 'Datum zaključka', + contribtype: 'Vrsta Prispevka', + price: 'Prispevek', + askinfo: 'Vprašaj Info', + showpage: 'Poglej Stran', + infoafterprice: 'Pojasnila po Kvoti', + teacher: 'Učitelj', // teacherid + teacher2: 'Učitelj2', // teacherid2 + infoextra: 'InfoExtra', + linkpage: 'WebSite', + linkpdf: 'Link za en PDF', + nobookable: 'Ni možna rezervacija', + news: 'Novosti', + dupId: 'Id Podvojen', + canceled: 'Izbrisan', + deleted: 'Odstranjen', + duplicate: 'Podvoji', + notempty: 'Prostor ne sme biti prazen', + modified: 'Popravljeno', + showinhome: 'Pokaži na omači strani', + showinnewsletter: 'Pokaži v Novostih', + }, + privacy_policy: 'Pogoji Poslovanja', + cookies: 'Uporabljamo piškotke za boljše delovanje na netu.', + }, +}; + +export default msg_si; diff --git a/src/store/Api/ApiRoutes.ts b/src/store/Api/ApiRoutes.ts new file mode 100755 index 00000000..ca7a132e --- /dev/null +++ b/src/store/Api/ApiRoutes.ts @@ -0,0 +1,16 @@ +const ServerRoutes = { + LOGIN: 'login_check', + TOKEN_REFRESH: 'token/refresh', + SIGNUP: 'register/', + MOVING_LIST: 'announcements', + MOVING_DETAIL: 'announcement/', + MOVING_CREATE: 'announcement', + MOVING_USER_INFOS: 'user/verify', + PARTICIPATION_CREATE: 'participations', + CREATE_NOTE: 'note_user', + MOVERS_LIST: 'movers', + NEW_MOVER: 'mover', + USERS: 'users', +} + +export default ServerRoutes diff --git a/src/store/Api/ApiTypes.ts b/src/store/Api/ApiTypes.ts new file mode 100755 index 00000000..3b1b5d36 --- /dev/null +++ b/src/store/Api/ApiTypes.ts @@ -0,0 +1,142 @@ +// import { NotificationsStore, LoginStore } from '@store' + +export class AxiosSuccess { + public success: any = true + + public status: number + + public data: any + + constructor(data: any, status: number) { + this.data = data + this.status = status + } +} + +export class AxiosError { + public success: boolean = false + + public status: number = 0 + + public data: any + + public code: any = 0 + + public msgerr: string = '' + + constructor(status: number, data?: any, code?: any, msgerr: string = '') { + this.status = status + this.data = data + this.code = code + this.msgerr = msgerr + if (status !== 401) { + // if (status == 0) message = 'Vérifiez votre connexion Internet'; + // NotificationsStore.actions.addNotification({ type: 'warning', message: message }) + } else if (data.error && data.error.message !== 'Bad credentials') { + // LoginStore.actions.disconnectRequest() + } + } + + public getMsgError() { + if (this.data && this.data.error) return this.data.error.message + + return this.msgerr + } + + public getMsg() { + try { + if (this.code === 0) { + if (this.data.code) { + return this.data.msg + } + } + } catch (e) { + return '' + } + + return '' + } + + public getCode() { + if (this.code === 0) { + if (this.data.code) { + return this.data.code + } + } + + return this.code + } +} + +// export class ApiResponse { +// public success: boolean = true; +// public message?: string; +// public data?: any; +// public type: string; +// constructor(fields: {message?: string, data?: any, type: any, success: boolean}) { +// this.message = fields.message; +// this.type = fields.type; +// this.data = fields.data ? fields.data : {}; +// this.success = fields.success; +// } + +// yes() { +// return Promise.resolve(this); +// } +// } + +export interface IApiResponse { + success: boolean + message?: string + data?: any + type: string +} + +export class ApiResponse { + public data?: any + + public message?: any + + constructor(fields: { message?: string, data?: any, type: any, success: boolean }) { + const returnData: any = {} + returnData.message = fields.message + returnData.type = fields.type + returnData.data = fields.data != null ? fields.data : {} + returnData.success = fields.success + if (fields.success) return Promise.resolve(returnData) + return Promise.reject(returnData) + } +} + +export class ApiSuccess extends ApiResponse { + constructor(fields: { message?: string, data?: any } = {}) { + super({ + success: true, + type: 'success', + message: fields.message, + data: fields.data, + }) + } +} + +export class ApiError extends ApiResponse { + constructor(fields: { message?: string, data?: any } = {}) { + super({ + success: false, + type: 'error', + message: fields.message, + data: fields.data, + }) + } +} + +export class ApiWarning extends ApiResponse { + constructor(fields: { message?: string, data?: any } = {}) { + super({ + success: false, + type: 'warning', + message: fields.message, + data: fields.data, + }) + } +} diff --git a/src/store/Api/Inst-Pao.ts b/src/store/Api/Inst-Pao.ts new file mode 100755 index 00000000..4dadbe35 --- /dev/null +++ b/src/store/Api/Inst-Pao.ts @@ -0,0 +1,22 @@ +import axios, { + AxiosInstance, AxiosPromise, AxiosResponse, AxiosInterceptorManager, +} from 'axios' +import Api from '@api' +import * as Types from '@src/store/Api/ApiTypes' + +async function sendRequest(url: string, method: string, mydata: any) { + if (!process.env.DEBUG) console.log('sendRequest', method, url) + + let request + if (method === 'GET') request = Api.get(url, mydata) + else if (method === 'POST') request = Api.post(url, mydata) + else if (method === 'DELETE') request = Api.Delete(url, mydata) + else if (method === 'PUT') request = Api.put(url, mydata) + else if (method === 'PATCH') request = Api.patch(url, mydata) + + // @ts-ignore + const req: Promise = request + return req +} + +export default sendRequest diff --git a/src/store/Api/Instance.ts b/src/store/Api/Instance.ts new file mode 100755 index 00000000..6d2615a5 --- /dev/null +++ b/src/store/Api/Instance.ts @@ -0,0 +1,157 @@ +import axios, { AxiosInstance, AxiosResponse } from 'axios' +// import LoginModule from '../Modules/Auth/LoginStore' +import router from '@router' +import { tools } from '@src/store/Modules/tools' +import { toolsext } from '@src/store/Modules/toolsext' +import { serv_constants } from '@src/store/Modules/serv_constants' +import { useGlobalStore } from '@store/globalStore' +import { useUserStore } from '@store/UserStore' +import * as Types from './ApiTypes' + +export const API_URL = process.env.MONGODB_HOST +export const axiosInstance: AxiosInstance = axios.create({ + baseURL: API_URL, + headers: { + Accept: 'application/json', + }, +}) + +axiosInstance.interceptors.response.use( + + (response) => { + if (process.env.DEBUG === '1') console.log(response) + return response + }, + (error) => { + const globalStore = useGlobalStore() + // console.log('error', error) + if (error.response) { + if (process.env.DEBUG === '1') console.log('Status = ', error.response.status) + console.log('Request Error: ', error.response) + if (error.response.status !== 0) { + globalStore.setStateConnection('online') + } else { + globalStore.setStateConnection('offline') + } + } else { + globalStore.setStateConnection('offline') + } + return Promise.reject(error) + }, +) + +export const addAuthHeaders = () => { + // axiosInstance.defaults.headers.Authorization = `Bearer ${LoginModule.userInfos.userToken}` +} + +export const removeAuthHeaders = () => { + delete axiosInstance.defaults.headers.Authorization +} + +async function Request(type: string, path: string, payload: any): Promise { + let ricevuto = false + const userStore = useUserStore() + const globalStore = useGlobalStore() + try { + if (tools.isDebug()) console.log('Axios Request', path, type, tools.notshowPwd(payload)) + let response: AxiosResponse + if (type === 'post' || type === 'put' || type === 'patch') { + response = await axiosInstance[type](path, payload, { + headers: { + 'Content-Type': 'application/json', + 'x-auth': userStore.x_auth_token, + }, + }) + ricevuto = true + // console.log('Request Response: ', response) + // console.log(new Types.AxiosSuccess(response.data, response.status)) + + const setAuthToken = (path === '/updatepwd') + + // console.log('--------- 0 ') + + if (response && (response.status === 200)) { + let x_auth_token = '' + try { + if (setAuthToken || (path === '/users/login')) { + x_auth_token = String(response.headers['x-auth']) + + if (x_auth_token === '') { + userStore.setServerCode(toolsext.ERR_AUTHENTICATION) + } + if (setAuthToken) { + userStore.UpdatePwd(x_auth_token) + localStorage.setItem(toolsext.localStorage.token, x_auth_token) + } + + userStore.setAuth(x_auth_token) + localStorage.setItem(toolsext.localStorage.token, x_auth_token) + } + + globalStore.setStateConnection(ricevuto ? 'online' : 'offline') + userStore.setServerCode(tools.OK) + } catch (e) { + if (setAuthToken) { + userStore.setServerCode(toolsext.ERR_AUTHENTICATION) + userStore.setAuth('') + } + globalStore.setStateConnection(ricevuto ? 'online' : 'offline') + return Promise.reject(new Types.AxiosError(serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN, null, toolsext.ERR_AUTHENTICATION)) + } + } + + return new Types.AxiosSuccess(response.data, response.status) + } if (type === 'get' || type === 'delete') { + // @ts-ignore + response = await axiosInstance[type](path, { + params: payload, + headers: { + 'Content-Type': 'application/json', + 'x-auth': userStore.x_auth_token, + }, + }) + ricevuto = true + return new Types.AxiosSuccess(response.data, response.status) + } if (type === 'postFormData') { + response = await axiosInstance.post(path, payload, { + headers: { + 'Content-Type': 'multipart/form-data', + 'x-auth': userStore.x_auth_token, + }, + }) + ricevuto = true + return new Types.AxiosSuccess(response.data, response.status) + } + } catch (error) { + setTimeout(() => { + globalStore.connData.uploading_server = (globalStore.connData.uploading_server === 1) ? -1 : globalStore.connData.uploading_server + globalStore.connData.downloading_server = (globalStore.connData.downloading_server === 1) ? -1 : globalStore.connData.downloading_server + }, 1000) + + if (process.env.DEV) { + console.log('ERROR using', path) + // console.log('Error received: ', error) + // console.log('ricevuto=', ricevuto) + console.log('error.response=', error.response) + } + let mycode = 0 + if (!ricevuto) { + mycode = toolsext.ERR_SERVERFETCH + userStore.setServerCode(toolsext.ERR_SERVERFETCH) + } else { + mycode = toolsext.ERR_GENERICO + userStore.setServerCode(toolsext.ERR_GENERICO) + } + + if (error.response) { + if (error.response.data && error.response.data.code) { + mycode = error.response.data.code + userStore.setServerCode(mycode) + } + return Promise.reject(new Types.AxiosError(error.response.status, error.response.data, error.response.data.code)) + } + return Promise.reject(new Types.AxiosError(0, null, mycode, error)) + } +} + +export default Request diff --git a/src/store/Api/index.ts b/src/store/Api/index.ts new file mode 100755 index 00000000..7430453a --- /dev/null +++ b/src/store/Api/index.ts @@ -0,0 +1,221 @@ +import { useRouter } from 'vue-router' +import { useGlobalStore } from '@store/globalStore' +import { useUserStore } from '@store/UserStore' + +export * from './ApiTypes' +import axios from 'axios' + +export { addAuthHeaders, removeAuthHeaders, API_URL } from './Instance' +// import {AlgoliaSearch} from './AlgoliaController' +import Paths from '@paths' +import { tools } from '@src/store/Modules/tools' +import { toolsext } from '@src/store/Modules/toolsext' + +import { serv_constants } from '@src/store/Modules/serv_constants' +import router from '@router' +import * as Types from '@src/store/Api/ApiTypes' +import { costanti } from '@src/store/Modules/costanti' +import * as ApiTables from '@src/store/Modules/ApiTables' +import sendRequest from './Inst-Pao' +import Request from './Instance' +import globalroutines from '../../globalroutines/index' + +function ReceiveResponsefromServer(tablesync: string, nametab: string, method: string, risdata: any) { + // console.log('ReceiveResponsefromServer', nametab, method, risdata) + if (risdata) { + // Updated somw data after Server arrived data. + if (method === 'PATCH') { + if (nametab === 'projects') { + if (risdata.projectris) { + const copyrec = tools.jsonCopy(risdata.projectris) + // +*Todo conv: Projects.updateProject({ objproj: copyrec }) + } + } + } + } +} + +// const algoliaApi = new AlgoliaSearch() +export namespace ApiTool { + export async function post(path: string, payload?: any) { + const globalStore = useGlobalStore() + globalStore.connData.downloading_server = 1 + globalStore.connData.uploading_server = 1 + return Request('post', path, payload) + } + + export async function postFormData(path: string, payload?: any) { + const globalStore = useGlobalStore() + globalStore.connData.uploading_server = 1 + globalStore.connData.downloading_server = 1 + return Request('postFormData', path, payload) + } + + export async function get(path: string, payload?: any) { + const globalStore = useGlobalStore() + globalStore.connData.downloading_server = 1 + globalStore.connData.uploading_server = 0 + return Request('get', path, payload) + } + + export async function put(path: string, payload?: any) { + const globalStore = useGlobalStore() + globalStore.connData.uploading_server = 1 + return Request('put', path, payload) + } + + export async function patch(path: string, payload?: any) { + const globalStore = useGlobalStore() + globalStore.connData.uploading_server = 1 + return Request('patch', path, payload) + } + + export async function Delete(path: string, payload: any) { + const globalStore = useGlobalStore() + globalStore.connData.uploading_server = 1 + return Request('delete', path, payload) + } + + export async function checkSession({ token, refresh_token }: any) { + return axios.post(process.env.API_URL + Paths.TOKEN_REFRESH, { + refresh_token, + }, { + headers: { + Authorization: `Bearer ${token}`, + }, + }) + } + + export async function SendReq(url: string, method: string, mydata: any, setAuthToken: boolean = false): Promise { + const mydataout = { + ...mydata, + keyappid: process.env.PAO_APP_ID, + idapp: process.env.APP_ID, + } + + // console.log('mydata', mydata) + + const userStore = useUserStore() + const globalStore = useGlobalStore() + const $router = useRouter() + + userStore.setServerCode(tools.EMPTY) + userStore.setResStatus(0) + return new Promise((resolve, reject) => sendRequest(url, method, mydataout) + .then((res) => { + // console.log('res', res) + + setTimeout(() => { + if (method === 'get') { + globalStore.connData.downloading_server = 0 + } else { + globalStore.connData.uploading_server = 0 + globalStore.connData.downloading_server = 0 + } + }, 1000) + + if (res.status) { + userStore.setResStatus(res.status) + if (res.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN) { + // Forbidden + // You probably is connectiong with other page... + userStore.setServerCode(toolsext.ERR_AUTHENTICATION) + userStore.setAuth('') + $router.push('/signin') + return reject({ code: toolsext.ERR_AUTHENTICATION }) + } + } + + return resolve(res) + }) + .catch((error) => { + setTimeout(() => { + if (method === 'get') { + globalStore.connData.downloading_server = -1 + } else { + globalStore.connData.uploading_server = -1 + globalStore.connData.downloading_server = -1 + } + }, 1000) + + console.log('error', error) + return reject(error) + })) + } + + export async function syncAlternative(mystrparam: string) { + // console.log('[ALTERNATIVE Background syncing', mystrparam) + + const multiparams = mystrparam.split('|') + if (multiparams) { + if (multiparams.length > 3) { + const cmd = multiparams[0] + const tablesync = multiparams[1] + const nametab = multiparams[2] + const method = multiparams[3] + // const token = multiparams[3] + + if (cmd === ApiTables.DB.CMD_SYNC) { + let errorfromserver = false + let lettoqualcosa = false + + // console.log('A1) INIZIO.............................................................') + return globalroutines(null, 'readall', tablesync, null) + .then((alldata) => { + if (alldata === undefined) { + console.log('alldata NON DEFINITA') + return true + } + const myrecs = [...alldata] + + const promises = myrecs.map((rec) => { + let link = `/${ApiTables.getLinkByTableName(nametab)}` + + if (method !== 'POST') { + link += `/${rec._id}` + } + + console.log('----------------------- LEGGO QUALCOSA ', link) + + // Insert/Delete/Update table to the server + return SendReq(link, method, rec) + .then((ris) => { + ReceiveResponsefromServer(tablesync, nametab, method, ris.data) + lettoqualcosa = true + return globalroutines(null, 'delete', tablesync, null, rec._id) + }) + .then(() => { + return globalroutines(null, 'delete', 'swmsg', null, mystrparam) + }).catch((err) => { + if (err.msgerr) { + if (err.msgerr.message.includes('Failed to fetch') || err.msgerr.message.includes('Network Error')) { + errorfromserver = true + } + } + console.log(' [Alternative] !!!!!!!!!!!!!!! Error while sending data', err, errorfromserver, 'lettoqualcosa', lettoqualcosa) + if (!errorfromserver) { + return globalroutines(null, 'delete', 'swmsg', null, mystrparam) + } + }) + }) + + // CALL ALL THE PROMISES + return Promise.all(promises).then(() => (errorfromserver && !lettoqualcosa)).catch((err) => (errorfromserver && !lettoqualcosa)) + }).catch((error) => { + console.log('¨¨¨¨¨¨¨¨¨¨¨¨¨¨ errorfromserver:', errorfromserver, error) + return (errorfromserver && !lettoqualcosa) + }) + .then((error) => { + const mystate = (error || errorfromserver) ? 'offline' : 'online' + + const globalStore = useGlobalStore() + globalStore.setStateConnection(mystate) + globalStore.saveConfig({ _id: costanti.CONFIG_ID_STATE_CONN, value: mystate }) + }) + } + } + } + return null + } +} +export default ApiTool diff --git a/src/store/Modules/ApiTables.ts b/src/store/Modules/ApiTables.ts new file mode 100755 index 00000000..3a1d99fc --- /dev/null +++ b/src/store/Modules/ApiTables.ts @@ -0,0 +1,492 @@ +import Api from '@api' +import { ITodo } from '@src/model' +import { tools } from '@src/store/Modules/tools' +import { toolsext } from '@src/store/Modules/toolsext' +import { useUserStore } from '@store/UserStore' +import { serv_constants } from '@store/Modules/serv_constants' +import { costanti } from '@store/Modules/costanti' +import { useGlobalStore } from '@store/globalStore' +import globalroutines from '../../globalroutines/index' + +export function getLinkByTableName(nametable: string) { + if (nametable === 'todos') { + return 'todos' + } + if (nametable === 'projects') { + return 'projects' + } + return '' +} + +export const DB = { + CMD_SYNC: 'sync', + CMD_SYNC_NEW: 'sync-new', + CMD_DELETE: 'sync-delete', + CMD_HIDE: 'sync-hide', + TABLE_SYNC_POST: 'sync_post_', + TABLE_SYNC_PATCH: 'sync_patch_', + TABLE_DELETE: 'delete_', + TABLE_HIDE: 'hide_', +} + +export function allTables() { + /* const myarr = OtherTables + for (const tab of costanti.MainTables) { + for (const method of costanti.allMethod) { + myarr.push(method + tab) + } + } */ + return costanti.OtherTables +} + +async function updatefromIndexedDbToState(nametab: string) { + await globalroutines(null, 'updatefromIndexedDbToState', nametab, null) + .then(() => { + console.log('updatefromIndexedDbToState! ') + return true + }) +} + +async function checkPendingMsg() { + // console.log('checkPendingMsg') + const globalStore = useGlobalStore() + + const config = await globalroutines(null, 'read', 'config', null, '1') + // console.log('config', config) + + try { + if (config) { + if (config[1].stateconn) { + console.log('config.stateconn', config[1].stateconn) + + if (config[1].stateconn !== globalStore.stateConnection) { + globalStore.setStateConnection(config[1].stateconn) + } + } + } + } catch (e) { + // ... + } + + return new Promise((resolve, reject) => globalroutines(null, 'count', 'swmsg') + .then((count) => { + if (count > 0) { + return resolve(true) + } + return resolve(false) + }).catch(() => reject())) +} + +function useServiceWorker() { + return false // return 'serviceWorker' in navigator +} + +// If something in the call of Service Worker went wrong (Network or Server Down), then retry ! +async function sendSwMsgIfAvailable() { + let something = false + + if (useServiceWorker()) { + console.log(' -------- sendSwMsgIfAvailable') + + const count = await checkPendingMsg() + if (count) { + return navigator.serviceWorker.ready + .then(() => globalroutines(null, 'readall', 'swmsg') + .then((arr_recmsg) => { + if (arr_recmsg.length > 0) { + // console.log('---------------------- 2) navigator (2) .serviceWorker.ready') + let promiseChain = Promise.resolve() + + for (const rec of arr_recmsg) { + // #Alternative to SyncManager + promiseChain = promiseChain.then(() => Api.syncAlternative(rec._id) + .then(() => { + //++Todo conv: something = true + })) + } + return promiseChain + } + return null + })) + } + } + + return new Promise((resolve, reject) => { + resolve(something) + }) +} + +export async function waitAndRefreshData() { + // ++Todo: conv + /* await Projects.actions.dbLoad({ checkPending: false, onlyiffirsttime: false }) + return await Todos.actions.dbLoad({ checkPending: false }) + */ + return null +} + +export async function waitAndcheckPendingMsg() { + // await aspettansec(1000) + const globalStore = useGlobalStore() + + return checkPendingMsg() + .then((ris) => { + if (ris) { + if (!globalStore.isOnline()) { // If is Offline, then check + + } + + return sendSwMsgIfAvailable() + .then((something) => { + if (something) { + if (process.env.DEBUG === '1') { + console.log('something') + } + // Refresh data + return waitAndRefreshData() + } + return null + }) + } + return null + }) +} + +async function dbInsertSave(call: string, item: any, method: string) { + let ret = true + const userStore = useUserStore() + if (!useServiceWorker()) { + console.log('dbInsertSave', item, method) + + if (userStore.isUserInvalid) { + return false + } // Login not made + + call = `/${call}` + if (method !== 'POST') { + call += `/${item._id}` + } + + console.log('SAVE: ', item) + + ret = await Api.SendReq(call, method, item) + .then((res: any) => { + console.log('dbInsertSave ', call, 'to the Server', res.data) + + return (res.status === 200) + }) + .catch((error: any) => { + userStore.setErrorCatch(error) + return false + }) + } + + return ret +} + +async function dbDeleteItem(call: string, item: any) { + let res = true + const userStore = useUserStore() + if (!useServiceWorker()) { + // console.log('dbdeleteItem', item) + if (userStore.isUserInvalid) { + return false + } // Login not made + + call = `/${call}` + + res = await Api.SendReq(`${call}/${item._id}`, 'DELETE', null) + .then((myres: any) => { + console.log('dbdeleteItem to the Server') + // tools.showPositiveNotif(this.$q, 'Riga cancellata') + return myres + }) + .catch((error: any) => { + userStore.setErrorCatch(error) + return userStore.getServerCode + }) + + return res + } + + return res +} + +async function dbHideItem(call: string, item: any) { + const userStore = useUserStore() + + if (!useServiceWorker()) { + // console.log('dbdeleteItem', item) + if (userStore.isUserInvalid) { + return false + } // Login not made + + item = { + ...item, + hide: true, + } + + console.log('dbHideItem', item) + + call = `/${call}` + + return Api.SendReq(`${call + item._id}/true`, 'DELETE', null) + .then((myres: any) => { + console.log('dbHideItem to the Server') + return myres + }) + .catch((error: any) => { + userStore.setErrorCatch(error) + return userStore.getServerCode + }) + } + return null +} + +async function Sync_Execute(cmd: string, tablesync: string, nametab: string, method: string, item: ITodo, id: string, msg: string) { + // Send to Server to Sync + + const userStore = useUserStore() + + console.log('Sync_Execute', cmd, tablesync, nametab, method, id, msg) + if (nametab === 'todos') { + console.log(' TODO: ', item.descr) + } + + let cmdSw = cmd + if ((cmd === DB.CMD_SYNC_NEW) || (cmd === DB.CMD_DELETE) || (cmd === DB.CMD_HIDE)) { + cmdSw = DB.CMD_SYNC + } + + // console.log('cmdSw', cmdSw) + + // if ('serviceWorker' in navigator) { + // console.log('serviceWorker PRESENTE') + // } else { + // console.log('serviceWorker NON PRESENTE !') + // } + // console.log('---------------------- navigator.serviceWorker.ready') + + if (useServiceWorker()) { + return navigator.serviceWorker.ready + .then((sw) => { + globalroutines(null, 'write', tablesync, item, id) + .then((ris) => { + console.log('ris write:', ris) + const sep = '|' + + const multiparams = cmdSw + sep + tablesync + sep + nametab + sep + method + sep + userStore.x_auth_token + sep + toolsext.getLocale() + const mymsgkey = { + _id: multiparams, + value: multiparams, + } + /* console.log('*** swmsg') + // if ('SyncManager' in window) { + // console.log(' SENDING... sw.sync.register', multiparams) + // return sw.sync.register(multiparams) + // } else { + */ + return globalroutines(null, 'write', 'swmsg', mymsgkey, multiparams) + .then((ris2) => Api.syncAlternative(multiparams)) + .then(() => { + let data = null + if (msg !== '') { + data = { message: msg, position: 'bottom', timeout: 3000 } + } + return data + }) + .catch((err) => { + console.error('Errore in globalroutines', tablesync, nametab, err) + }) + }) + .catch((err) => { + console.error('Errore catch in globalroutines write', tablesync, nametab, err) + }) + }) + } +} + +async function Sync_ExecuteCmd(cmd: string, nametab: string, method: string, item: ITodo, id: string, msg: string) { + // Send to Server to Sync + + let tablesync = '' + if (method === 'POST') { + tablesync = DB.TABLE_SYNC_POST + nametab + } else if (method === 'PATCH') { + tablesync = DB.TABLE_SYNC_PATCH + nametab + } else if (method === 'DELETE') { + tablesync = DB.TABLE_DELETE + nametab + } else if (method === 'HIDE') { + tablesync = DB.TABLE_HIDE + nametab + } + + const risdata = await Sync_Execute(cmd, tablesync, nametab, method, item, id, msg) + + let ris = false + if (cmd === DB.CMD_SYNC_NEW) { + if ((method === 'POST') || (method === 'PATCH')) { + ris = await dbInsertSave(nametab, item, method) + } + } else if (cmd === DB.CMD_DELETE) { + ris = await dbDeleteItem(nametab, item) + } else if (cmd === DB.CMD_HIDE) { + ris = await dbHideItem(nametab, item) + } + + return ris +} + +export async function Sync_SaveItem(nametab: string, method: string, item: any) { + return Sync_ExecuteCmd(DB.CMD_SYNC_NEW, nametab, method, item, '0', '') +} + +export function Sync_DeleteItem(nametab: string, item: any, id: string) { + Sync_ExecuteCmd(DB.CMD_DELETE, nametab, 'DELETE', item, id, '') +} + +export function Sync_HideItem(nametab: string, item: any, id: string) { + Sync_ExecuteCmd(DB.CMD_HIDE, nametab, 'HIDE', item, id, '') +} + +export async function aftercalling(ris: any, checkPending: boolean, nametabindex: string) { + const userStore = useUserStore() + if (ris.status !== 200) { + if (process.env.DEBUG === '1') { + console.log('ris.status', ris.status) + } + if (ris.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN) { + tools.consolelogpao('UNAUTHORIZING... TOKEN EXPIRED... !! ') + } else { + tools.consolelogpao('NETWORK UNREACHABLE ! (Error in fetch)', userStore.getServerCode, ris.status) + } + if (useServiceWorker()) { + // Read all data from IndexedDB Store into Memory + await updatefromIndexedDbToState(nametabindex) + } + } else if (ris.status === tools.OK && checkPending) { + waitAndcheckPendingMsg() + } +} + +export function removeitemfromarray(myarray: any, ind: any) { + // console.log('PRIMA todos', todos) + // Delete Item in to Array + if (ind >= 0) { + myarray.splice(ind, 1) + } + // console.log('DOPO todos', todos, 'ind', ind) +} + +/* +export async functionfunction testfunc() { + while (true) { + tools.consolelogpao('testfunc') + // console.log('Todos.todos_changed:', Todos.todos_changed) + await tools.aspettansec(5000) + } +} +*/ + +/* +sendMessageToSW(recdata, method) { + + navigator.serviceWorker.controller.postMessage({ + type: 'sync', + recdata, + method, + cmd: 'sync-new-todos', + token: userStore.idToken, + lang: userStore.lang + }) +} +*/ + +function setmodifiedIfchanged(recOut: any, recIn: any, field: string) { + if (String(recOut[field]) !== String(recIn[field])) { + console.log('*************** CAMPO ', field, 'MODIFICATO!', recOut[field], recIn[field]) + recOut.modified = true + recOut[field] = recIn[field] + return true + } + return false +} + +export async function table_ModifyRecord(nametable: string, myitem: any, listFieldsToChange: any, field: string) { + // console.log('table_ModifyRecord ... ', nametable) + if (myitem === null) { + return new Promise((resolve, reject) => { + resolve() + }) + } + + console.log('--> table_ModifyRecord', nametable, myitem) + + if ((field === 'status') && (nametable === 'todos') && (myitem.status === tools.Status.COMPLETED)) { + myitem.completed_at = tools.getDateNow() + } + + const myobjsaved = tools.jsonCopy(myitem) + + let miorec: any = null + if (useServiceWorker()) { + // get record from IndexedDb + miorec = await globalroutines(null, 'read', nametable, null, myobjsaved._id) + if (miorec === undefined) { + console.log('~~~~~~~~~~~~~~~~~~~~ !!!!!!!!!!!!!!!!!! Record not Found !!!!!! id=', myobjsaved._id) + + // Prova cmq a salvarlo sul server + return Sync_SaveItem(nametable, 'PATCH', miorec) + } + listFieldsToChange.forEach((myfield: any) => { + setmodifiedIfchanged(miorec, myobjsaved, myfield) + }) + } else { + miorec = myitem + miorec.modified = true + } + + console.log(' ... 4 ') + + if (miorec.modified) { + console.log(` ${nametable} MODIFICATO! `, miorec.descr, miorec.pos, 'SALVALO SULLA IndexedDB') + miorec.modify_at = tools.getDateNow() + miorec.modified = false + + // 1) Permit to Update the Views + tools.notifyarraychanged(miorec) + + if (useServiceWorker()) { + // 2) Modify on IndexedDb + console.log('// 2) Modify on IndexedDb', miorec) + return globalroutines(null, 'write', nametable, miorec) + .then((ris) => Sync_SaveItem(nametable, 'PATCH', miorec)) // 3) Modify on the Server (call) + } + return Sync_SaveItem(nametable, 'PATCH', miorec) + } + return null +} + +export function table_DeleteRecord(nametable: string, myobjtrov: any, id: any) { + const mymodule: any = tools.getModulesByTable(nametable) + + // 1) Delete from the Todos Array + mymodule.deletemyitem(myobjtrov) + + // 2) Delete from the IndexedDb + globalroutines(null, 'delete', nametable, null, id) + + // 3) Delete from the Server (call) + Sync_DeleteItem(nametable, myobjtrov, id) +} + +export function table_HideRecord(nametable: string, myobjtrov: any, id: any) { + const mymodule: any = tools.getModulesByTable(nametable) + + // 1) Delete from the Todos Array + mymodule.deletemyitem(myobjtrov) + + // 2) Delete from the IndexedDb + globalroutines(null, 'delete', nametable, null, id) + + // 3) Hide from the Server (call) + Sync_DeleteItem(nametable, myobjtrov, id) +} diff --git a/src/store/Modules/ProgressBar.ts b/src/store/Modules/ProgressBar.ts new file mode 100755 index 00000000..a90a8e4a --- /dev/null +++ b/src/store/Modules/ProgressBar.ts @@ -0,0 +1,79 @@ +import { defineStore } from 'pinia' + +import { nextTick } from 'vue' + +const css = require('@css') + +let TIMER: any = null +let TIMEOUT: any = null +let CUT: any = null + +export const useProgressBar = defineStore('ProgressBar', { + state: () => ({ + percent: 0, + show: false, + canSuccess: true, + duration: 3000, + height: '2px', + color: css.mainStyle, + failedColor: css.red1, + }), + getters: {}, + actions: { + start(): void { + if (!this.show) { + clearTimeout(TIMEOUT) + this.show = true + this.canSuccess = true + if (TIMER) { + clearInterval(TIMER) + this.percent = 0 + } + CUT = 20000 / Math.floor(this.duration) + TIMER = setInterval(() => { + this.increase(CUT * Math.random()) + if (this.percent > 80) { + this.pause() + } + }, 200) + } + }, + set(num: number): void { + this.show = true + this.canSuccess = true + this.percent = Math.floor(num) + }, + increase(num: number) { + this.percent += Math.floor(num) + }, + decrease(num: number) { + this.percent -= Math.floor(num) + }, + finish(): void { + this.percent = 100 + this.hide() + }, + pause() { + clearInterval(TIMER) + }, + hide() { + clearInterval(TIMER) + TIMER = null + TIMEOUT = setTimeout(() => { + this.show = false + this.percent = 0 + nextTick(() => { + setTimeout(() => { + this.percent = 0 + }, 200) + }) + }, 500) + }, + + fail() { + this.canSuccess = false + this.finish() + }, + + }, +}) diff --git a/src/store/Modules/costanti.ts b/src/store/Modules/costanti.ts new file mode 100755 index 00000000..41788358 --- /dev/null +++ b/src/store/Modules/costanti.ts @@ -0,0 +1,59 @@ +export const costanti = { + ShowTypeTask: { + SHOW_LAST_N_COMPLETED: 200, + SHOW_ONLY_TOCOMPLETE: 201, + SHOW_ALL: 202, + }, + CONFIG_ID_CFG: '1', + CONFIG_ID_STATE_CONN: '2', + CONFIG_ID_SHOW_TYPE_TODOS: '3', + + FuncDialog: { + CANCEL_BOOKING: 1, + }, + + DRAGULA: false, + + TABEVENTS: 'myevents', + + NOFIELD: 'nofield', + + MAX_PHASES: 5, + + OtherTables: ['config', 'swmsg'], + // export const MainTables = ['todos', 'projects'] + MainTables: [], + allMethod: ['sync_post_', 'sync_patch_', 'delete_', 'hide_'], + + FieldType: { + boolean: 1, + date: 2, + string: 4, + binary: 8, + html: 16, + select: 32, + number: 64, + typeinrec: 128, + multiselect: 256, + password: 512, + listimages: 1024, + exact: 2048, + image: 3000, + nationality: 4096, + intcode: 5000, + multioption: 6000, + onlydate: 7000, + hours: 8000, + }, + FieldTypeArr: [ + { label: 'Boolean', value: 1 }, + { label: 'Date', value: 2 }, + { label: 'String', value: 4 }, + { label: 'Binary', value: 8 }, + { label: 'Html', value: 16 }, + { label: 'Select', value: 32 }, + { label: 'Number', value: 64 }, + ], + + +} diff --git a/src/store/Modules/fieldsTable.ts b/src/store/Modules/fieldsTable.ts new file mode 100755 index 00000000..903d75e6 --- /dev/null +++ b/src/store/Modules/fieldsTable.ts @@ -0,0 +1,1310 @@ +import { IColGridTable } from '@model' +import { useUserStore } from '@store/UserStore' +import { lists } from './lists' +import { costanti } from './costanti' + +const DeleteRec = { + name: 'deleterec', + label_trans: 'reg.elimina', + align: 'right', + field: costanti.NOFIELD, + sortable: false, + icon: 'fas fa-trash-alt', + action: lists.MenuAction.DELETE_RECTABLE, + askaction: 'db.deletetherecord', + required: true, + visuonlyEditVal: true, +} + +const DuplicateRec = { + name: 'copyrec', + label_trans: 'event.duplicate', + align: 'right', + field: costanti.NOFIELD, + sortable: false, + icon: 'fas fa-copy', + action: lists.MenuAction.DUPLICATE_RECTABLE, + askaction: 'db.duplicatedrecord', + visuonlyEditVal: true, + visible: true, +} + +function AddCol(params: IColGridTable) { + return { + name: params.name, + required: (params.required === undefined) ? false : params.required, + label: (params.label === undefined) ? '' : params.label, + label_trans: (params.label_trans === undefined) ? '' : params.label_trans, + align: (params.align === undefined) ? 'left' : params.align, + field: (params.field === undefined) ? params.name : params.field, + subfield: (params.subfield === undefined) ? '' : params.subfield, + sortable: (params.sortable === undefined) ? true : params.sortable, + disable: (params.disable === undefined) ? false : params.disable, + titlepopupedit: (params.titlepopupedit === undefined) ? '' : params.titlepopupedit, + visible: (params.visible === undefined) ? true : params.visible, + icon: (params.icon === undefined) ? '' : params.icon, + action: (params.action === undefined) ? '' : params.action, + foredit: (params.foredit === undefined) ? true : params.foredit, + fieldtype: (params.fieldtype === undefined) ? costanti.FieldType.string : params.fieldtype, + visuonlyEditVal: (params.visuonlyEditVal === undefined) ? false : params.visuonlyEditVal, + askaction: (params.askaction === undefined) ? '' : params.askaction, + jointable: (params.jointable === undefined) ? '' : params.jointable, + notShowInNewRec: (params.notShowInNewRec === undefined) ? false : params.notShowInNewRec, + } +} + +export const colmailinglist = [ + AddCol({ name: 'name', label_trans: 'reg.name' }), + AddCol({ name: 'surname', label_trans: 'reg.surname' }), + AddCol({ name: 'email', label_trans: 'reg.email' }), + AddCol({ name: 'statesub', label_trans: 'newsletter.statesub', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'wrongerr', label_trans: 'newsletter.wrongerr', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'lastid_newstosent', label_trans: 'reg.lastid_newstosent', fieldtype: costanti.FieldType.string }), + AddCol(DeleteRec), +] + +export const colgallery = [ + AddCol({ name: 'author_username', label_trans: 'gallery.author_username' }), + AddCol({ name: 'title', label_trans: 'gallery.title' }), + AddCol({ name: 'directory', label_trans: 'gallery.directory' }), + AddCol({ + name: 'list', + label_trans: 'gallery.list', + fieldtype: costanti.FieldType.listimages, + jointable: '', + }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +export const colmsg_templates = [ + AddCol({ name: 'title', label_trans: 'pages.title' }), + AddCol({ name: 'typemsg', label_trans: 'TypeMsg', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'title_it', label_trans: 'Tit Ita', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'msg_it', label_trans: 'ITA', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'title_si', label_trans: 'Tit SLO', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'msg_si', label_trans: 'SLO', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'title_enUs', label_trans: 'Tit ENG', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'msg_enUs', label_trans: 'ENG', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'title_es', label_trans: 'Tit ESP', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'msg_es', label_trans: 'ESP', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'title_pt', label_trans: 'Tit POR', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'msg_pt', label_trans: 'POR', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'title_fr', label_trans: 'Tit FRA', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'msg_fr', label_trans: 'FRA', fieldtype: costanti.FieldType.html }), +] + +export const colmypage = [ + AddCol({ name: 'title', label_trans: 'pages.title' }), + AddCol({ name: 'path', label_trans: 'pages.path' }), + AddCol({ name: 'img1', label_trans: 'pages.img1' }), + AddCol({ name: 'content', label_trans: 'pages.contentfield', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'video1', label_trans: 'pages.video1' }), + AddCol({ name: 'ratio1', label_trans: 'pages.ratio1' }), + AddCol({ name: 'img2', label_trans: 'pages.img2' }), + AddCol({ name: 'content2', label_trans: 'pages.content2', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'video2', label_trans: 'pages.video2' }), + AddCol({ name: 'ratio2', label_trans: 'pages.ratio2' }), + AddCol({ name: 'img3', label_trans: 'pages.img3' }), + AddCol({ name: 'content3', label_trans: 'pages.content3', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'video3', label_trans: 'pages.video3' }), + AddCol({ name: 'ratio3', label_trans: 'pages.ratio3' }), + AddCol({ name: 'content4', label_trans: 'pages.content4', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'lang', label_trans: 'pages.lang' }), + AddCol({ name: 'icon', label_trans: 'pages.icon' }), + AddCol({ name: 'order', label_trans: 'pages.order', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'keywords', label_trans: 'pages.keywords' }), + AddCol({ name: 'description', label_trans: 'pages.description' }), + AddCol({ name: 'heightimg', label_trans: 'pages.heightimg', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'color', label_trans: 'pages.color', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'onlyif_logged', label_trans: 'pages.onlyif_logged', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'only_residenti', label_trans: 'pages.only_residenti', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'only_consiglio', label_trans: 'pages.only_consiglio', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'imgback', label_trans: 'pages.imgback', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'active', label_trans: 'pages.active', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'inmenu', label_trans: 'pages.inmenu', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'submenu', label_trans: 'pages.submenu', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'l_par', label_trans: 'pages.l_par', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'l_child', label_trans: 'pages.l_child', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'infooter', label_trans: 'pages.infooter', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'internalpage', label_trans: 'pages.internalpage', fieldtype: costanti.FieldType.boolean }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +export const colopzemail = [ + AddCol({ name: 'key', label_trans: 'col.key' }), + AddCol({ name: 'label_it', label_trans: 'col.label' }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +export const coltemplemail = [ + AddCol({ name: 'subject', label_trans: 'templemail.subject' }), + AddCol({ name: 'testoheadermail', label_trans: 'templemail.testoheadermail', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'content', label_trans: 'templemail.content', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'img', label_trans: 'templemail.img' }), + AddCol({ name: 'content2', label_trans: 'templemail.content2', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'img2', label_trans: 'templemail.img2' }), + AddCol({ + name: 'options', + label_trans: 'templemail.options', + fieldtype: costanti.FieldType.multiselect, + jointable: 'opzemail', + }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] +// SHOW_LAST_N_EV +export const colnewstosent = [ + AddCol({ name: 'label', label_trans: 'event.title' }), + AddCol({ name: 'templemail_str', label_trans: 'newsletter.templemail' }), + AddCol({ name: 'datetoSent', label_trans: 'newsletter.datetoSent', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'activate', label_trans: 'newsletter.activate', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'numemail_tot', label_trans: 'newsletter.numemail_tot', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'numemail_sent', label_trans: 'newsletter.numemail_sent', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'datestartJob', label_trans: 'newsletter.datestartJob', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'datefinishJob', label_trans: 'newsletter.datefinishJob', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'lastemailsent_Job', label_trans: 'newsletter.lastemailsent_Job', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'starting_job', label_trans: 'newsletter.starting_job', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'finish_job', label_trans: 'newsletter.finish_job', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'processing_job', label_trans: 'newsletter.processing_job', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'error_job', label_trans: 'newsletter.error_job', fieldtype: costanti.FieldType.string }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +const colTableWhere = [ + AddCol({ name: 'code', label_trans: 'where.code' }), + AddCol({ name: 'placename', label_trans: 'cal.where' }), + AddCol({ name: 'whereicon', label_trans: 'where.whereicon' }), + AddCol(DeleteRec), +] + +export const colTableProducer = [ + AddCol({ name: 'name', label_trans: 'producer.name' }), + AddCol({ name: 'description', label_trans: 'producer.description' }), + AddCol({ name: 'referent', label_trans: 'producer.referent' }), + AddCol({ name: 'username', label_trans: 'producer.username' }), + AddCol({ name: 'region', label_trans: 'producer.region' }), + AddCol({ name: 'city', label_trans: 'producer.city' }), + AddCol({ name: 'img', label_trans: 'producer.img' }), + AddCol({ name: 'website', label_trans: 'producer.website' }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +export const getcolorderscart = [ + AddCol({ name: 'numorder', label_trans: 'order.numorder' }), + AddCol({ name: 'created_at', label_trans: 'order.created_at', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'status', label_trans: 'order.status' }), + AddCol({ name: 'items', label_trans: 'order.items' }), + AddCol({ + name: 'userId', label_trans: 'order.users', fieldtype: costanti.FieldType.select, jointable: 'users', + }), + AddCol({ name: 'note', label_trans: 'order.note' }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +export const colTableShareWithUs = [ + AddCol({ name: 'description', label_trans: 'share.description' }), + AddCol({ name: 'numshared', label_trans: 'share.numshared', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'rating', label_trans: 'share.rating', fieldtype: costanti.FieldType.number }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +export const colTableHours = [ + // AddCol({ name: 'userId', label_trans: 'hours.userId' }), + // AddCol({ name: 'todoId', label_trans: 'hours.todoId' }), + AddCol({ name: 'date', label_trans: 'hours.date', fieldtype: costanti.FieldType.onlydate }), + AddCol({ name: 'hours', label_trans: 'hours.hours', fieldtype: costanti.FieldType.hours }), + // AddCol({ name: 'time_start', label_trans: 'hours.time_start', fieldtype: costanti.FieldType.number }), + // AddCol({ name: 'time_end', label_trans: 'hours.time_end', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'descr', label_trans: 'hours.note' }), + AddCol({ name: 'username', label_trans: 'reg.username_short', notShowInNewRec: true }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +export const colTablegroups = [ + AddCol({ name: 'descr', label_trans: 'proj.longdescr' }), + AddCol({ name: 'resp', label_trans: 'reg.resp' }), + AddCol({ name: 'viceResp', label_trans: 'reg.viceResp' }), + AddCol({ + name: 'assignedToUsers', + label_trans: 'reg.userslist', + fieldtype: costanti.FieldType.multiselect, + jointable: 'workers', + }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +export const colTabledepartments = [ + AddCol({ name: 'name', label_trans: 'store.name' }), + AddCol({ name: 'username', label_trans: 'store.username' }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +export const colTableStorehouse = [ + AddCol({ name: 'name', label_trans: 'store.name' }), + AddCol({ name: 'description', label_trans: 'store.description' }), + AddCol({ name: 'referent', label_trans: 'store.referent' }), + AddCol({ name: 'address', label_trans: 'store.address' }), + AddCol({ name: 'city', label_trans: 'store.city' }), + AddCol({ name: 'region', label_trans: 'store.region' }), + AddCol({ name: 'img', label_trans: 'store.img' }), + AddCol({ name: 'website', label_trans: 'store.website' }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +export const colTableSites = [ + AddCol({ name: 'active', label_trans: 'sites.active', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'idapp', label_trans: 'sites.idapp', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'name', label_trans: 'sites.name', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'adminemail', label_trans: 'sites.adminemail', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'manageremail', label_trans: 'sites.manageremail', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'replyTo', label_trans: 'sites.replyTo', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'host', label_trans: 'sites.host', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'portapp', label_trans: 'sites.portapp', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'dir', label_trans: 'sites.dir', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'email_from', label_trans: 'sites.email_from', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'email_pwd', label_trans: 'sites.email_pwd', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'telegram_key', label_trans: 'sites.telegram_key', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'telegram_bot_name', label_trans: 'sites.telegram_bot_name', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'pathreg_add', label_trans: 'sites.pathreg_add', fieldtype: costanti.FieldType.string }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +export const colTableIscrittiConacreis = [ + AddCol({ name: 'annoTesseramento', label_trans: 'reg.annoTesseramento', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'numTesseraInterna', label_trans: 'reg.numTesseraInterna', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'codiceConacreis', label_trans: 'reg.codiceConacreis', fieldtype: costanti.FieldType.string }), + AddCol({ + name: 'metodo_pagamento', + label_trans: 'reg.metodo_pagamento', + fieldtype: costanti.FieldType.select, + jointable: 'metodo_pagamento', + }), + AddCol({ name: 'ha_pagato', label_trans: 'reg.ha_pagato', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'name', label_trans: 'reg.name', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'surname', label_trans: 'reg.surname', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'dateofreg', label_trans: 'reg.dateofreg', fieldtype: costanti.FieldType.onlydate }), + AddCol({ name: 'dateofapproved', label_trans: 'reg.dateofapproved', fieldtype: costanti.FieldType.onlydate }), + AddCol({ name: 'email', label_trans: 'reg.email', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'fiscalcode', label_trans: 'reg.fiscalcode', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'residency_address', label_trans: 'reg.residency_address', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'residency_city', label_trans: 'reg.residency_city', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'residency_province', label_trans: 'reg.residency_province', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'residency_country', label_trans: 'reg.residency_country', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'residency_zipcode', label_trans: 'reg.residency_zipcode', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'dateofbirth', label_trans: 'reg.dateofbirth', fieldtype: costanti.FieldType.onlydate }), + AddCol({ name: 'born_city', label_trans: 'reg.born_city', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'born_province', label_trans: 'reg.born_province', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'born_country', label_trans: 'reg.born_country', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'cell_phone', label_trans: 'reg.cell_phone', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'iscrizione_compilata', label_trans: 'reg.iscrizione_compilata', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'motivazioni', label_trans: 'reg.motivazioni', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'newsletter_on', label_trans: 'reg.newsletter_on', fieldtype: costanti.FieldType.boolean }), + AddCol({ + name: 'competenze_professionalita', + label_trans: 'reg.competenze_professionalita', + fieldtype: costanti.FieldType.string, + }), + AddCol({ name: 'cosa_potrei_offrire', label_trans: 'reg.cosa_potrei_offrire', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'cosa_vorrei_ricevere', label_trans: 'reg.cosa_vorrei_ricevere', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'altre_comunicazioni', label_trans: 'reg.altre_comunicazioni', fieldtype: costanti.FieldType.string }), + AddCol({ + name: 'come_ci_hai_conosciuto', + label_trans: 'reg.come_ci_hai_conosciuto', + fieldtype: costanti.FieldType.string, + }), + AddCol({ name: 'note', label_trans: 'reg.note', fieldtype: costanti.FieldType.string }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +export const colTableProducts = [ + AddCol({ name: 'active', label_trans: 'products.active', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'code', label_trans: 'products.code' }), + AddCol({ name: 'name', label_trans: 'products.name' }), + AddCol({ name: 'description', label_trans: 'products.description', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'icon', label_trans: 'products.icon' }), + AddCol({ name: 'img', label_trans: 'products.img' }), + // AddCol({ name: 'idProducer', label_trans: 'products.idProducer' }), + AddCol({ + name: 'idProducer', + label_trans: 'products.producer', + fieldtype: costanti.FieldType.select, + jointable: 'producers', + }), + AddCol({ + name: 'idStorehouses', + label_trans: 'storehouses.name', + fieldtype: costanti.FieldType.multiselect, + jointable: 'storehouses', + }), + AddCol({ + name: 'department', + label_trans: 'products.department', + fieldtype: costanti.FieldType.select, + jointable: 'departments', + }), + // AddCol({ name: 'department', label_trans: 'products.department' }), + AddCol({ name: 'category', label_trans: 'products.category' }), + AddCol({ name: 'price', label_trans: 'products.price', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'after_price', label_trans: 'products.after_price' }), + AddCol({ name: 'color', label_trans: 'products.color' }), + AddCol({ name: 'size', label_trans: 'products.size' }), + AddCol({ name: 'quantityAvailable', label_trans: 'products.quantityAvailable', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'canBeShipped', label_trans: 'products.canBeShipped', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'canBeBuyOnline', label_trans: 'products.canBeBuyOnline', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'weight', label_trans: 'products.weight', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'stars', label_trans: 'products.stars', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'date', label_trans: 'products.date', fieldtype: costanti.FieldType.date }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +const colcontribtype = [ + AddCol({ name: 'label', label_trans: 'proj.longdescr' }), + AddCol({ name: 'showprice', label_trans: 'event.showprice', fieldtype: costanti.FieldType.boolean }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +const colpaymenttype = [ + AddCol({ name: '_id', label_trans: 'others.value' }), + AddCol({ name: 'key', label_trans: 'reg.key' }), + AddCol({ name: 'label', label_trans: 'proj.longdescr' }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +const colworkers = [ + AddCol({ name: '_id', label_trans: 'others.value' }), + AddCol({ name: 'username', label_trans: 'reg.username' }), + AddCol({ name: 'name', label_trans: 'reg.name' }), + AddCol({ name: 'surname', label_trans: 'reg.surname' }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +const colflotte = [ + AddCol({ name: 'index', label_trans: 'others.value' }), + AddCol({ name: 'riga', label_trans: 'reg.riga' }), + AddCol({ name: 'col_prima', label_trans: 'ColPrima' }), + AddCol({ name: 'col_ultima', label_trans: 'ColUltima' }), +] +const colnavi = [ + AddCol({ name: '_id', label_trans: 'others.value' }), + AddCol({ name: 'idListaIngresso', label_trans: 'idListaIngresso' }), + AddCol({ name: 'riga', label_trans: 'reg.riga' }), + AddCol({ name: 'col', label_trans: 'reg.col' }), + AddCol({ name: 'ind_order', label_trans: 'ind_order' }), + AddCol({ name: 'created', label_trans: 'cal.data', fieldtype: costanti.FieldType.date }), + // AddCol({ name: 'date_start', label_trans: 'date_start', fieldtype: costanti.FieldType.date }), + // AddCol({ name: 'date_gift_chat_open', label_trans: 'date_gift_chat_open', fieldtype: costanti.FieldType.date }), + // AddCol({ name: 'link_chat', label_trans: 'reg.link_chat' }), + AddCol({ name: 'parent_id', label_trans: 'parent_id' }), + AddCol({ + name: 'sent_msg_howto_make_gift', + label_trans: 'sent_msg_howto_make_gift', + fieldtype: costanti.FieldType.boolean, + }), + // AddCol({ name: 'provvisoria', label_trans: 'reg.provvisoria', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'made_gift', label_trans: 'reg.made_gift', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'received_gift', label_trans: 'reg.received_gift', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'date_made_gift', label_trans: 'date_made_gift', fieldtype: costanti.FieldType.date }), + // AddCol({ name: 'received_gift', label_trans: 'received_gift', fieldtype: costanti.FieldType.boolean }), + // AddCol({ name: 'date_received_gift', label_trans: 'date_received_gift', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'offerta_al_fondo', label_trans: 'offerta_al_fondo', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'num_tess', label_trans: 'num_tess', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'note', label_trans: 'note', fieldtype: costanti.FieldType.string }), + // AddCol({ name: 'note_interne', label_trans: 'note_interne', fieldtype: costanti.FieldType.string }), + // AddCol({ name: 'tutor', label_trans: 'tutor', fieldtype: costanti.FieldType.string }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] +const colnavepersistente = [ + AddCol({ name: '_id', label_trans: 'others.value' }), + AddCol({ name: 'riga', label_trans: 'reg.riga' }), + AddCol({ name: 'col', label_trans: 'reg.col' }), + AddCol({ name: 'date_gift_chat_open', label_trans: 'dashboard.nave_in_partenza', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'date_start', label_trans: 'dashboard.nave_in_chiusura', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'link_chat', label_trans: 'reg.link_chat' }), + AddCol({ name: 'provvisoria', label_trans: 'reg.provvisoria', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'DoniAttesaDiConferma', label_trans: 'note_bot', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'DoniMancanti', label_trans: 'note_bot', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'DoniConfermati', label_trans: 'note_bot', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'DoniConfermati', label_trans: 'note_bot', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'DoniTotali', label_trans: 'note_bot', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'note_interne', label_trans: 'note_interne', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'tutor', label_trans: 'tutor', fieldtype: costanti.FieldType.string }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +const collistaingresso = [ + AddCol({ name: '_id', label_trans: 'others.value' }), + AddCol({ name: 'ind_order', label_trans: 'ind_order' }), + AddCol({ name: 'username', label_trans: 'reg.username_short' }), + AddCol({ name: 'invitante_username', label_trans: 'reg.aportador_solidario' }), + AddCol({ name: 'date_added', label_trans: 'date_added', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'added', label_trans: 'Aggiunto', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'navestr', label_trans: 'Nave', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'num_tess', label_trans: 'num_tess', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'note', label_trans: 'reg.note', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: costanti.FieldType.boolean }), + AddCol(DuplicateRec), + AddCol(DeleteRec), +] + +const colgraduatoria = [ + AddCol({ name: 'index', label_trans: 'index' }), + AddCol({ name: 'punteggio', label_trans: 'Punt', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'ind_order', label_trans: 'ind_order' }), + AddCol({ name: 'num_tess', label_trans: 'num_tess', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'username', label_trans: 'reg.username_short' }), + AddCol({ name: 'name', label_trans: 'reg.name' }), + AddCol({ name: 'surname', label_trans: 'reg.surname' }), + AddCol({ name: 'numNaviEntrato', label_trans: 'Navi', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'indimbarco', label_trans: 'Imbarco', fieldtype: costanti.FieldType.number }), + // AddCol({ name: 'numinvitati', label_trans: 'Inv.', fieldtype: costanti.FieldType.number }), + // AddCol({ name: 'numinvitatiattivi', label_trans: 'Att.', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'numinvitatiTot', label_trans: 'Inv (Tot)', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'numinvitatiattiviTot', label_trans: 'Att. Tot', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'invitante_username', label_trans: 'reg.aportador_solidario' }), + AddCol({ name: 'navestr', label_trans: 'Nave', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'note', label_trans: 'note', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'date_added', label_trans: 'date_added', fieldtype: costanti.FieldType.date }), + AddCol(DuplicateRec), + AddCol(DeleteRec), +] + +const coldisciplines = [ + AddCol({ name: 'typol_code', label_trans: 'disc.typol_code' }), + AddCol({ name: 'order', label_trans: 'disc.order', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'label', label_trans: 'event.title' }), + AddCol({ name: 'description', label_trans: 'proj.longdescr' }), + AddCol({ name: 'linkpage', label_trans: 'event.linkpage' }), + AddCol({ name: 'color', label_trans: 'event.color' }), + AddCol({ name: 'icon', label_trans: 'event.icon' }), + AddCol({ name: 'img', label_trans: 'event.img' }), + AddCol({ name: 'img_small', label_trans: 'event.img_small' }), + AddCol({ name: 'showinhome', label_trans: 'event.showinhome', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'showinnewsletter', label_trans: 'event.showinnewsletter', fieldtype: costanti.FieldType.boolean }), + AddCol({ + name: 'teachers', + label_trans: 'event.teacher', + fieldtype: costanti.FieldType.multiselect, + jointable: 'operators', + }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +const colTablePermission = [ + AddCol({ name: '_id', label_trans: 'others.value' }), + AddCol({ name: 'label', label_trans: 'proj.longdescr' }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +const colTableOperator = [ + AddCol({ name: 'username', label_trans: 'reg.username_short' }), + AddCol({ name: 'name', label_trans: 'reg.name' }), + AddCol({ name: 'surname', label_trans: 'reg.surname' }), + AddCol({ name: 'email', label_trans: 'reg.email' }), + AddCol({ name: 'img', label_trans: 'event.img' }), + AddCol({ name: 'cell', label_trans: 'reg.cell' }), + AddCol({ name: 'usertelegram', label_trans: 'op.usertelegram' }), + AddCol({ name: 'qualification', label_trans: 'op.qualification' }), + AddCol({ name: 'disciplines', label_trans: 'op.disciplines' }), + AddCol({ name: 'certifications', label_trans: 'op.certifications' }), + AddCol({ name: 'intro', label_trans: 'op.intro', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'info', label_trans: 'op.info', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'webpage', label_trans: 'op.webpage' }), + AddCol({ name: 'days_working', label_trans: 'op.days_working' }), + AddCol({ name: 'facebook', label_trans: 'op.facebook' }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +const colTableEvents = [ + AddCol({ name: '_id', label_trans: 'event._id' }), + AddCol({ + name: 'typol', label_trans: 'event.typol', fieldtype: costanti.FieldType.select, jointable: 'disciplines', + }), + AddCol({ name: 'short_tit', label_trans: 'event.short_tit' }), + AddCol({ name: 'title', label_trans: 'event.title' }), + AddCol({ name: 'details', label_trans: 'event.details', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'bodytext', label_trans: 'event.bodytext', fieldtype: costanti.FieldType.html }), + AddCol({ name: 'dateTimeStart', label_trans: 'event.dateTimeStart', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'dateTimeEnd', label_trans: 'event.dateTimeEnd', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'bgcolor', label_trans: 'event.bgcolor' }), + AddCol({ name: 'icon', label_trans: 'event.icon' }), + AddCol({ name: 'img_small', label_trans: 'event.img_small' }), + AddCol({ name: 'img', label_trans: 'event.img' }), + AddCol({ + name: 'wherecode', label_trans: 'event.where', fieldtype: costanti.FieldType.select, jointable: 'wheres', + }), + AddCol({ + name: 'contribtype', + label_trans: 'event.contribtype', + fieldtype: costanti.FieldType.select, + jointable: 'contribtype', + }), + AddCol({ name: 'price', label_trans: 'event.price' }), + AddCol({ name: 'infoafterprice', label_trans: 'event.infoafterprice' }), + AddCol({ + name: 'teacher', label_trans: 'event.teacher', fieldtype: costanti.FieldType.select, jointable: 'operators', + }), + AddCol({ + name: 'teacher2', + label_trans: 'event.teacher2', + fieldtype: costanti.FieldType.select, + jointable: 'operators', + }), + AddCol({ + name: 'teacher3', + label_trans: 'event.teacher3', + fieldtype: costanti.FieldType.select, + jointable: 'operators', + }), + AddCol({ + name: 'teacher4', + label_trans: 'event.teacher4', + fieldtype: costanti.FieldType.select, + jointable: 'operators', + }), + AddCol({ name: 'infoextra', label_trans: 'event.infoextra' }), + AddCol({ name: 'linkpage', label_trans: 'event.linkpage' }), + AddCol({ name: 'facebook', label_trans: 'event.facebook' }), + AddCol({ name: 'linkpdf', label_trans: 'event.linkpdf' }), + AddCol({ name: 'note', label_trans: 'event.note' }), + AddCol({ name: 'nobookable', label_trans: 'event.nobookable', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'internal', label_trans: 'event.internal', fieldtype: costanti.FieldType.boolean }), + + AddCol({ + name: 'pagefooter', + label_trans: 'event.pagefooter', + fieldtype: costanti.FieldType.multiselect, + jointable: 'internalpage', + }), + + AddCol({ name: 'news', label_trans: 'event.news', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'canceled', label_trans: 'event.canceled', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'deleted', label_trans: 'event.deleted', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'dupId', label_trans: 'event.dupId' }), + AddCol({ name: 'modified', label_trans: 'event.modified', fieldtype: costanti.FieldType.boolean }), + AddCol(DeleteRec), + AddCol(DuplicateRec), +] + +export const fields = { + colSettings: [ + AddCol({ name: 'key', label_trans: 'col.label' }), + AddCol({ + name: 'type', label_trans: 'col.type', fieldtype: costanti.FieldType.select, jointable: 'fieldstype', + }), + AddCol({ name: 'value_str', label_trans: 'col.value', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'value_date', label_trans: 'cal.data', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'value_num', label_trans: 'cal.num', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'value_bool', label_trans: 'cal.bool', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'serv', label_trans: 'cal.serv', fieldtype: costanti.FieldType.boolean }), + AddCol(DeleteRec), + AddCol(DuplicateRec), + ], + +} + +export const fieldsTable = { + getrecTableList(mytable: string) { + return this.tablesList.find((rec) => rec.value === mytable) + }, + getKeyByTable(mytable: string): string { + const myrec = this.getrecTableList(mytable) + if (myrec) return ((myrec.colkey) ? myrec.colkey : '_id') + return '_id' + }, + getLabelByTable(mytable: string): string { + const myrec = this.getrecTableList(mytable) + if (myrec) { // @ts-ignore + return ((myrec.collabel) ? myrec.collabel : 'label') + } + return 'label' + }, + getTitleByTable(mytable: string): string { + const myrec = this.getrecTableList(mytable) + if (myrec) return myrec.label + return '' + }, + getIconByTable(mytable: string): string { + const myrec: any = this.getrecTableList(mytable) + if (myrec) return ((myrec.icon) ? myrec.icon : '') + return '' + }, + + colTableCalZoom: [ + // AddCol({ name: '_id', label_trans: 'reg.id' }), + AddCol({ name: 'title', label_trans: 'event.title' }), + AddCol({ name: 'lang', label_trans: 'pages.lang' }), + AddCol({ name: 'typeconf', label_trans: 'zoom.typeconf' }), + AddCol({ name: 'date_start', label_trans: 'event.dateTimeStart', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'date_end', label_trans: 'event.dateTimeEnd', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'benvenuto', label_trans: 'event.benvenuto', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'icon', label_trans: 'event.icon', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'color', label_trans: 'event.color', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'id_conf_zoom', label_trans: 'zoom.id_conf_zooom' }), + AddCol({ name: 'note', label_trans: 'zoom.note' }), + AddCol(DeleteRec), + AddCol(DuplicateRec), + ], + + colTableUsersBase: [ + AddCol({ name: 'index', label_trans: 'reg.index' }), + AddCol({ name: 'ind_order', label_trans: 'reg.ind_order' }), + AddCol({ name: 'sospeso', label_trans: 'reg.sospeso', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'username', label_trans: 'reg.username_short' }), + AddCol({ name: 'name', label_trans: 'reg.name' }), + AddCol({ name: 'surname', label_trans: 'reg.surname' }), + AddCol({ name: 'email', label_trans: 'reg.email' }), + AddCol({ name: 'verified_email', label_trans: 'reg.verified_email', fieldtype: costanti.FieldType.boolean }), + AddCol({ + name: 'profile.nationality', field: 'profile', subfield: 'nationality', label_trans: 'reg.nationality', + }), + AddCol({ + name: 'profile.cell', field: 'profile', subfield: 'cell', label_trans: 'reg.cell', + }), + AddCol({ + name: 'perm', label_trans: 'reg.perm', fieldtype: costanti.FieldType.binary, jointable: 'permissions', + }), + AddCol(DeleteRec), + AddCol(DuplicateRec), + ], + + // IColGridTable + colTableUsers: [ + // AddCol({ name: '_id', label_trans: 'reg.id' }), + AddCol({ name: 'index', label_trans: 'reg.index', fieldtype: costanti.FieldType.number }), + // AddCol({ name: 'ind_order', label_trans: 'reg.ind_order' }), + AddCol({ name: 'old_order', label_trans: 'old_order' }), + AddCol({ name: 'sospeso', label_trans: 'reg.sospeso', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'subaccount', label_trans: 'SubAccount', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'navinonpresenti', label_trans: 'Navi Non Presenti', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'non_voglio_imbarcarmi', label_trans: 'non_voglio_imbarcarmi', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'username', label_trans: 'reg.username_short' }), + AddCol({ name: 'name', label_trans: 'reg.name' }), + AddCol({ name: 'surname', label_trans: 'reg.surname' }), + AddCol({ name: 'email', label_trans: 'reg.email' }), + AddCol({ name: 'verified_email', label_trans: 'reg.verified_email', fieldtype: costanti.FieldType.boolean }), + AddCol({ + name: 'profile.resplist', + field: 'profile', + subfield: 'resplist', + label_trans: 'reg.resplist', + fieldtype: costanti.FieldType.boolean, + }), + AddCol({ + name: 'profile.workerslist', + field: 'profile', + subfield: 'workerslist', + label_trans: 'reg.workerslist', + fieldtype: costanti.FieldType.boolean, + }), + AddCol({ + name: 'profile.teleg_id', field: 'profile', subfield: 'teleg_id', label_trans: 'reg.teleg_id', + }), + AddCol({ + name: 'profile.saw_and_accepted', + field: 'profile', + subfield: 'saw_and_accepted', + label_trans: 'reg.saw_and_accepted', + fieldtype: costanti.FieldType.binary, + jointable: 'accepted', + }), + AddCol({ + name: 'profile.saw_zoom_presentation', + field: 'profile', + subfield: 'saw_zoom_presentation', + label_trans: 'reg.saw_zoom_presentation', + fieldtype: costanti.FieldType.boolean, + }), + AddCol({ + name: 'profile.ask_zoom_partecipato', + field: 'profile', + subfield: 'ask_zoom_partecipato', + label_trans: 'reg.ask_zoom_partecipato', + fieldtype: costanti.FieldType.boolean, + }), + AddCol({ + name: 'profile.qualified', + field: 'profile', + subfield: 'qualified', + label_trans: 'reg.qualified', + fieldtype: costanti.FieldType.boolean, + }), + AddCol({ + name: 'profile.qualified_2invitati', + field: 'profile', + subfield: 'qualified_2invitati', + label_trans: '2_Inv', + fieldtype: costanti.FieldType.boolean, + }), + AddCol({ + name: 'profile.my_dream', field: 'profile', subfield: 'my_dream', label_trans: 'reg.my_dream', + }), + AddCol({ + name: 'profile.email_paypal', + field: 'profile', + subfield: 'email_paypal', + label_trans: 'reg.email_paypal', + }), + AddCol({ + name: 'profile.payeer_id', + field: 'profile', + subfield: 'payeer_id', + label_trans: 'reg.payeer_id', + }), + AddCol({ + name: 'profile.advcash_id', + field: 'profile', + subfield: 'advcash_id', + label_trans: 'reg.advcash_id', + }), + AddCol({ + name: 'profile.revolut', + field: 'profile', + subfield: 'revolut', + label_trans: 'revolut', + }), + AddCol({ + name: 'profile.link_payment', + field: 'profile', + subfield: 'link_payment', + label_trans: 'reg.link_payment', + }), + AddCol({ + name: 'profile.note_payment', + field: 'profile', + subfield: 'note_payment', + label_trans: 'reg.note_payment', + }), + AddCol({ + name: 'profile.paymenttypes', + field: 'profile', + subfield: 'paymenttypes', + label_trans: 'reg.paymenttype', + fieldtype: costanti.FieldType.multiselect, + jointable: 'paymenttypes', + }), + // AddCol({ name: 'made_gift', label_trans: 'reg.made_gift', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'note', label_trans: 'reg.note' }), + // AddCol({ name: 'aportador_solidario_ind_order', label_trans: 'reg.aportador_solidario_ind_order' }), + // AddCol({ name: 'aportador_solidario_nome_completo', label_trans: 'reg.aportador_solidario_nome_completo' }), + AddCol({ name: 'aportador_solidario', label_trans: 'reg.aportador_solidario' }), + AddCol({ + name: 'profile.special_req', + field: 'profile', + subfield: 'special_req', + label_trans: 'reg.special_req', + fieldtype: costanti.FieldType.boolean, + }), + // AddCol({ name: 'profile.vuole_ritessersi', field: 'profile', subfield: 'vuole_ritessersi', label_trans: 'reg.vuole_ritessersi', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'lang', field: 'lang', label_trans: 'reg.lang' }), + AddCol({ + name: 'profile.nationality', field: 'profile', subfield: 'nationality', label_trans: 'reg.nationality', + }), + AddCol({ + name: 'profile.intcode_cell', + field: 'profile', + subfield: 'intcode_cell', + label_trans: 'reg.intcode_cell', + }), + AddCol({ + name: 'profile.iso2_cell', field: 'profile', subfield: 'iso2_cell', label_trans: 'reg.iso2_cell', + }), + AddCol({ + name: 'profile.cell', field: 'profile', subfield: 'cell', label_trans: 'reg.cell', + }), + AddCol({ + name: 'profile.country_pay', field: 'profile', subfield: 'country_pay', label_trans: 'reg.country_pay', + }), + AddCol({ + name: 'profile.teleg_id_old', + field: 'profile', + subfield: 'teleg_id_old', + label_trans: 'reg.teleg_id_old', + }), + AddCol({ + name: 'profile.teleg_checkcode', + field: 'profile', + subfield: 'teleg_checkcode', + label_trans: 'reg.teleg_checkcode', + }), + AddCol({ + name: 'profile.manage_telegram', + field: 'profile', + subfield: 'manage_telegram', + label_trans: 'reg.manage_telegram', + fieldtype: costanti.FieldType.boolean, + }), + AddCol({ + name: 'profile.myshares', + field: 'profile', + subfield: 'myshares', + label_trans: 'reg.myshares', + }), + AddCol({ + name: 'profile.img', field: 'profile', subfield: 'img', label_trans: 'reg.img', sortable: false, + }), + AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'lasttimeonline', label_trans: 'reg.lasttimeonline', fieldtype: costanti.FieldType.date }), + // AddCol({ name: 'idapp', label_trans: 'reg.idapp', fieldtype: costanti.FieldType.string }), + AddCol({ + name: 'perm', label_trans: 'reg.perm', fieldtype: costanti.FieldType.binary, jointable: 'permissions', + }), + AddCol({ name: 'ipaddr', label_trans: 'reg.ipaddr' }), + AddCol(DeleteRec), + AddCol(DuplicateRec), + ], + + colTableUsersCNM: [ + // AddCol({ name: '_id', label_trans: 'reg.id' }), + AddCol({ name: 'ind_order', label_trans: 'reg.ind_order' }), + // AddCol({ name: 'sospeso', label_trans: 'reg.sospeso', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'username', label_trans: 'reg.username_short' }), + AddCol({ name: 'name', label_trans: 'reg.name' }), + AddCol({ name: 'surname', label_trans: 'reg.surname' }), + AddCol({ name: 'email', label_trans: 'reg.email' }), + AddCol({ name: 'verified_email', label_trans: 'reg.verified_email', fieldtype: costanti.FieldType.boolean }), + // AddCol({ name: 'made_gift', label_trans: 'reg.made_gift', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'note', label_trans: 'reg.note' }), + // AddCol({ name: 'aportador_solidario', label_trans: 'reg.aportador_solidario' }), + AddCol({ + name: 'profile.resplist', + field: 'profile', + subfield: 'resplist', + label_trans: 'reg.resplist', + fieldtype: costanti.FieldType.boolean, + }), + AddCol({ + name: 'profile.workerslist', + field: 'profile', + subfield: 'workerslist', + label_trans: 'reg.workerslist', + fieldtype: costanti.FieldType.boolean, + }), + AddCol({ + name: 'profile.special_req', + field: 'profile', + subfield: 'special_req', + label_trans: 'reg.special_req', + fieldtype: costanti.FieldType.boolean, + }), + AddCol({ + name: 'profile.my_dream', field: 'profile', subfield: 'my_dream', label_trans: 'reg.my_dream', + }), + AddCol({ name: 'lang', field: 'lang', label_trans: 'reg.lang' }), + AddCol({ + name: 'profile.nationality', field: 'profile', subfield: 'nationality', label_trans: 'reg.nationality', + }), + AddCol({ + name: 'profile.cell', field: 'profile', subfield: 'cell', label_trans: 'reg.cell', + }), + AddCol({ + name: 'profile.email_paypal', + field: 'profile', + subfield: 'email_paypal', + label_trans: 'reg.email_paypal', + }), + /* AddCol({ + name: 'profile.payeer_id', + field: 'profile', + subfield: 'payeer_id', + label_trans: 'reg.payeer_id' + }), + AddCol({ + name: 'profile.advcash_id', + field: 'profile', + subfield: 'advcash_id', + label_trans: 'reg.advcash_id' + }), + AddCol({ + name: 'profile.revolut', + field: 'profile', + subfield: 'revolut', + label_trans: 'revolut' + }), */ + AddCol({ + name: 'profile.teleg_id', field: 'profile', subfield: 'teleg_id', label_trans: 'reg.teleg_id', + }), + + AddCol({ + name: 'profile.teleg_checkcode', + field: 'profile', + subfield: 'teleg_checkcode', + label_trans: 'reg.teleg_checkcode', + }), + AddCol({ + name: 'profile.manage_telegram', + field: 'profile', + subfield: 'manage_telegram', + label_trans: 'reg.manage_telegram', + fieldtype: costanti.FieldType.boolean, + }), + AddCol({ + name: 'profile.socio', + field: 'profile', + subfield: 'socio', + label_trans: 'reg.socio', + fieldtype: costanti.FieldType.boolean, + }), + AddCol({ + name: 'profile.socioresidente', + field: 'profile', + subfield: 'socioresidente', + label_trans: 'reg.socioresidente', + fieldtype: costanti.FieldType.boolean, + }), + AddCol({ + name: 'profile.consiglio', + field: 'profile', + subfield: 'consiglio', + label_trans: 'reg.consiglio', + fieldtype: costanti.FieldType.boolean, + }), + AddCol({ + name: 'profile.motivazioni', field: 'profile', subfield: 'motivazioni', label_trans: 'reg.motivazioni', + }), + AddCol({ + name: 'profile.competenze_professionalita', + field: 'profile', + subfield: 'competenze_professionalita', + label_trans: 'reg.competenze_professionalita', + }), + AddCol({ + name: 'profile.cosa_offrire', + field: 'profile', + subfield: 'cosa_offrire', + label_trans: 'reg.cosa_offrire', + }), + AddCol({ + name: 'profile.cosa_ricevere', + field: 'profile', + subfield: 'cosa_ricevere', + label_trans: 'reg.cosa_ricevere', + }), + AddCol({ + name: 'profile.altre_comunicazioni', + field: 'profile', + subfield: 'altre_comunicazioni', + label_trans: 'reg.altre_comunicazioni', + }), + AddCol({ + name: 'profile.come_ci_hai_conosciuto', + field: 'profile', + subfield: 'come_ci_hai_conosciuto', + label_trans: 'reg.come_ci_hai_conosciuto', + }), + AddCol({ + name: 'profile.come_aiutare', + field: 'profile', + subfield: 'come_aiutare', + label_trans: 'reg.come_aiutare', + }), + AddCol({ + name: 'profile.paymenttypes', + field: 'profile', + subfield: 'paymenttypes', + label_trans: 'reg.paymenttype', + fieldtype: costanti.FieldType.multiselect, + jointable: 'paymenttypes', + }), + AddCol({ + name: 'profile.img', field: 'profile', subfield: 'img', label_trans: 'reg.img', sortable: false, + }), + AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'lasttimeonline', label_trans: 'reg.lasttimeonline', fieldtype: costanti.FieldType.date }), + // AddCol({ name: 'idapp', label_trans: 'reg.idapp', fieldtype: costanti.FieldType.string }), + AddCol({ + name: 'perm', label_trans: 'reg.perm', fieldtype: costanti.FieldType.binary, jointable: 'permissions', + }), + AddCol({ name: 'ipaddr', label_trans: 'reg.ipaddr' }), + AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: costanti.FieldType.boolean }), + AddCol(DeleteRec), + AddCol(DuplicateRec), + ], + + colTableExtraList: [ + // AddCol({ name: '_id', label_trans: 'reg.id' }), + AddCol({ name: 'username', label_trans: 'reg.username_short' }), + AddCol({ name: 'registered', label_trans: 'reg.registered', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'ind_order', label_trans: 'reg.ind_order' }), + AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'name_complete', label_trans: 'reg.name_complete' }), + AddCol({ name: 'name', label_trans: 'reg.name' }), + AddCol({ name: 'surname', label_trans: 'reg.surname' }), + AddCol({ name: 'note', label_trans: 'reg.note' }), + AddCol({ name: 'contacted', label_trans: 'reg.contacted', fieldtype: costanti.FieldType.boolean }), + AddCol({ + name: 'saw_zoom_presentation', + label_trans: 'reg.saw_zoom_presentation', + fieldtype: costanti.FieldType.boolean, + }), + AddCol({ name: 'num_invitati', label_trans: 'reg.num_invitati', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'is_in_whatsapp', label_trans: 'reg.is_in_whatsapp', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'is_in_telegram', label_trans: 'reg.is_in_telegram', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'cell_complete', label_trans: 'reg.cell_complete' }), + AddCol({ name: 'nationality', label_trans: 'reg.nationality', fieldtype: costanti.FieldType.nationality }), + AddCol({ name: 'aportador_solidario_name_surname', label_trans: 'reg.aportador_solidario_nome_completo' }), + AddCol({ name: 'aportador_solidario_ind_order', label_trans: 'reg.aportador_solidario_ind_order' }), + AddCol({ + name: 'aportador_solidario_originale_name_surname', + label_trans: 'reg.aportador_solidario_nome_completo_orig', + }), + AddCol({ name: 'col_b', label_trans: 'reg.col_b', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'col_h', label_trans: 'reg.col_h', fieldtype: costanti.FieldType.number }), + AddCol(DeleteRec), + AddCol(DuplicateRec), + ], + + colTableCash: + [], + + colTableCashCategory: [ + AddCol({ name: 'descr', label_trans: 'pages.description' }), + AddCol({ name: 'notes', label_trans: 'reg.note' }), + ], + + colTableSubCashCategory: [ + AddCol({ + name: 'idCashCategory', + label_trans: 'Category.idCashCategory', + fieldtype: costanti.FieldType.select, + jointable: 'cashcategory', + }), + AddCol({ name: 'descr', label_trans: 'pages.description' }), + AddCol({ name: 'notes', label_trans: 'reg.note' }), + ], + + tablesList: [ + { + value: 'operators', + label: 'Insegnanti', + columns: colTableOperator, + colkey: 'username', + collabel: (rec: any) => `${rec.name} ${rec.surname}`, + }, + { + value: 'internalpages', + label: 'Pagine Interne', + columns: colmypage, + colkey: 'path', + collabel: 'title', + }, + { + value: 'products', + label: 'Prodotti', + columns: colTableProducts, + colkey: '_id', + collabel: 'name', + }, + { + value: 'producers', + label: 'Produttori', + columns: colTableProducer, + colkey: '_id', + collabel: 'name', + }, + { + value: 'departments', + label: 'Uffici', + columns: colTabledepartments, + colkey: 'username', + collabel: 'name', + }, + { + value: 'storehouses', + label: 'Magazzini', + columns: colTableStorehouse, + colkey: '_id', + collabel: (rec: any) => `${rec.name} (${rec.city})`, + }, + { + value: 'sharewithus', + label: 'Condividi con Noi', + columns: colTableShareWithUs, + colkey: '_id', + collabel: 'description', + }, + { + value: 'wheres', + label: 'Luoghi', + columns: colTableWhere, + colkey: 'code', + collabel: 'placename', + }, + { + value: costanti.TABEVENTS, + label: 'Eventi', + columns: colTableEvents, + colkey: '_id', + collabel: 'title', + }, + { + value: 'contribtype', + label: 'Tipi di Contributi', + columns: colcontribtype, + colkey: '_id', + collabel: 'label', + }, + { + value: 'paymenttypes', + label: 'Tipi di Pagamenti', + columns: colpaymenttype, + colkey: 'key', + collabel: 'label', + }, + { + value: 'workers', + label: 'Lavoratori Attivi', + columns: colworkers, + colkey: '_id', + collabel: (rec: any) => `${rec.name} ${rec.surname}`, + }, + { + value: 'navi', + label: 'Navi', + columns: colnavi, + colkey: '_id', + collabel: (rec: any) => `${rec.riga}.${rec.col}`, + }, + { + value: 'flotte', + label: 'Flotte', + columns: colflotte, + colkey: '_id', + collabel: (rec: any) => `${rec.riga}.${rec.col_prima} ${rec.riga}.${rec.col_ultima}`, + }, + { + value: 'navepersistente', + label: 'Navi Persistenti', + columns: colnavepersistente, + colkey: '_id', + collabel: (rec: any) => `${rec.riga}.${rec.col}`, + }, + { + value: 'listaingressos', + label: 'Lista Ingresso', + columns: collistaingresso, + colkey: '_id', + collabel: 'ind_order', + }, + { + value: 'graduatorias', + label: 'Graduatoria', + columns: colgraduatoria, + colkey: '_id', + collabel: 'index', + }, + { + value: 'disciplines', + label: 'Discipline', + columns: coldisciplines, + colkey: 'typol_code', + collabel: 'label', + }, + { + value: 'newstosent', + label: 'Newsletter da Inviare', + columns: colnewstosent, + colkey: '_id', + collabel: 'label', + onlyAdmin: true, + }, + { + value: 'gallery', + label: 'Gallerie', + columns: colgallery, + colkey: '_id', + collabel: 'title', + }, + { + value: 'templemail', + label: 'Template Email', + columns: coltemplemail, + colkey: '_id', + collabel: 'subject', + onlyAdmin: true, + }, + { + value: 'opzemail', + label: 'Opzioni Email', + columns: colopzemail, + colkey: 'key', + collabel: (rec: any) => rec.label_it, + onlyAdmin: true, + }, + { + value: 'mailinglist', + label: 'MailingList', + columns: colmailinglist, + colkey: '_id', + collabel: (rec: any) => `${rec.name} ${rec.surname}`, + }, + { + value: 'permissions', + label: 'Permessi', + columns: colTablePermission, + colkey: 'value', + collabel: 'label', + colicon: 'icon', + noshow: true, + }, + { + value: 'accepted', + label: 'Condizioni', + colkey: 'value', + collabel: 'label', + noshow: true, + }, + { + value: 'fieldstype', + label: 'Tipi di Campi', + colkey: 'value', + collabel: 'label', + noshow: true, + }, + { + value: 'metodo_pagamento', + label: 'Metodi di Pagamento', + colkey: 'value', + collabel: 'label', + noshow: true, + }, + { + value: 'settings', + label: 'Impostazioni', + columns: fields.colSettings, + colkey: 'key', + collabel: 'key', + }, + ], +} + +export const func = { + gettablesList() { + const userStore = useUserStore() + return fieldsTable.tablesList.filter((rec) => ((rec.onlyAdmin === userStore.isAdmin) || (!rec.onlyAdmin)) && (!rec.noshow)) + }, +} diff --git a/src/store/Modules/lists.ts b/src/store/Modules/lists.ts new file mode 100755 index 00000000..fb41cef8 --- /dev/null +++ b/src/store/Modules/lists.ts @@ -0,0 +1,180 @@ +export const lists = { + MenuAction: { + CUT: 71, + PASTE: 72, + DELETE: 100, + TOGGLE_EXPIRING: 101, + COMPLETED: 110, + PROGRESS_BAR: 120, + PRIORITY: 130, + SHOW_TASK: 150, + SHOW_POSIZ: 155, + EDIT: 160, + ADD_PROJECT: 200, + THEME: 210, + THEMEBG: 211, + + DELETE_RECTABLE: 300, + DUPLICATE_RECTABLE: 310, + DELETE_EVENT: 320, + DELETE_EXTRALIST: 330, + DELETE_USERLIST: 335, + REGALA_INVITATO: 340, + REGALA_INVITANTE: 342, + SOSTITUISCI: 345, + INVIA_MSG_A_DONATORI: 350, + INVIA_MSG_A_FLOTTA: 352, + INVIA_MSG_A_SINGOLO: 355, + DONO_INVIATO: 360, + DONO_RICEVUTO: 370, + AGGIUNGI_NUOVO_IMBARCO: 380, + CANCELLA_IMBARCO: 385, + DAMMI_PRIMO_UTENTE_LIBERO: 390, + + CAN_EDIT_TABLE: 400, + SHOW_PREV_REC: 401, + ZOOM_GIA_PARTECIPATO: 510, + }, + + selectTheme: [ + { + id: 1, + label: 'Theme 1', + value: 'red', + }, + { + id: 2, + label: 'Theme 2', + value: 'pink', + }, + { + id: 3, + label: 'Theme 3', + value: 'purple', + }, + { + id: 4, + label: 'Theme 4', + value: 'deep-purple', + }, + { + id: 5, + label: 'Theme 5', + value: 'indigo', + }, + { + id: 6, + label: 'Theme 6', + value: 'blue', + }, + { + id: 7, + label: 'Theme 7', + value: 'green', + }, + { + id: 8, + label: 'Theme 8', + value: 'orange', + }, + { + id: 9, + label: 'Theme 9', + value: 'brown', + }, + { + id: 10, + label: 'Theme 10', + value: 'black', + }, + { + id: 11, + label: 'Theme 11', + value: 'white', + }, + ], + + selectPriority: { + it: [ + { + id: 1, + label: 'Alta', + value: 2, + icon: 'expand_less', + }, + { + id: 2, + label: 'Normale', + value: 1, + icon: 'remove', + }, + { + id: 3, + label: 'Bassa', + value: 0, + icon: 'expand_more', + }], + es: + [ + { + id: 1, + label: 'Alta', + value: 2, + icon: 'expand_less', + }, + { + id: 2, + label: 'Normal', + value: 1, + icon: 'remove', + }, + { + id: 3, + label: 'Baja', + value: 0, + icon: 'expand_more', + }], + enUs: + [ + { + id: 1, + label: 'High', + value: 2, + icon: 'expand_less', + }, + { + id: 2, + label: 'Normal', + value: 1, + icon: 'remove', + }, + { + id: 3, + label: 'Low', + value: 0, + icon: 'expand_more', + }], + de: + [ + { + id: 1, + label: 'High', + value: 2, + icon: 'expand_less', + }, + { + id: 2, + label: 'Normal', + value: 1, + icon: 'remove', + }, + { + id: 3, + label: 'Low', + value: 0, + icon: 'expand_more', + }], + + }, + +} diff --git a/src/store/Modules/serv_constants.ts b/src/store/Modules/serv_constants.ts new file mode 100755 index 00000000..505a6977 --- /dev/null +++ b/src/store/Modules/serv_constants.ts @@ -0,0 +1,39 @@ +export const serv_constants = { + RIS_CODE_TODO_CREATING_NOTMYUSER: -1001, + RIS_CODE_NOT_MY_USERNAME: -1010, + + RIS_CODE_ERR: -99, + RIS_CODE_EMAIL_ALREADY_VERIFIED: -5, + RIS_CODE_EMAIL_VERIFIED: 1, + + RIS_CODE_USER_NOT_THIS_APORTADOR: -75, + RIS_CODE_USER_EXTRALIST_NOTFOUND: -70, + RIS_CODE_USERNAME_ALREADY_EXIST: -60, + RIS_CODE_USERNAME_NOT_VALID: -65, + RIS_CODE_EMAIL_ALREADY_EXIST: -50, + RIS_CODE_USER_ALREADY_EXIST: -48, + RIS_CODE_EMAIL_NOT_EXIST: -45, + RIS_CODE_EMAIL_NOT_SENT: -40, + RIS_CODE_ERR_UNAUTHORIZED: -30, + + RIS_CODE_LOGIN_ERR_GENERIC: -20, + RIS_CODE_LOGIN_ERR: -10, + RIS_CODE_LOGIN_ERR_SUBACCOUNT: -8, + + RIS_CODE_OK: 1, + RIS_CODE_LOGIN_OK: 1, + RIS_ISCRIZIONE_OK: 5, + RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN: 403, + + RIS_CODE_TOKEN_RESETPASSWORD_NOT_FOUND: -23, + + RIS_SUBSCRIBED_OK: 1, + RIS_SUBSCRIBED_ALREADYEXIST: 2, + RIS_SUBSCRIBED_ERR: -1, + RIS_SUBSCRIBED_STR: 'subscribed', + + RIS_UNSUBSCRIBED_OK: 5, + RIS_UNSUBSCRIBED_STR: 'unsubscribed', + RIS_UNSUBSCRIBED_NOT_EXIST: -5, + +} diff --git a/src/store/Modules/tools.ts b/src/store/Modules/tools.ts new file mode 100644 index 00000000..e55ea6cb --- /dev/null +++ b/src/store/Modules/tools.ts @@ -0,0 +1,1734 @@ +import { translation } from '@store/Modules/translation' +import { + IEvents, IPathFile, Privacy, TipoVisu, +} from '@model' + +import { lists } from '@store/Modules/lists' +import { costanti } from '@store/Modules/costanti' +import { date, Screen, useQuasar } from 'quasar' + +import { toolsext } from '@store/Modules/toolsext' +import { preloadedimages, static_data } from '@src/db/static_data' +import { useGlobalStore } from '@store/globalStore' +import globalroutines from '@src/boot/globalroutines' +import { useI18n } from '@src/boot/i18n' +import { RouteNames } from '@src/router/route-names' + +export interface INotify { + color?: string | 'primary' + textColor?: string + icon?: string | '' +} + +export const tools = { + CAN_EDIT: 'q-ce', + TABBED_DASHBOARD: 't-db', + TABBED_HOME: 't-home', + TABBED_NAVE: 't-nave', + + getprefCountries: ['it', 'es', 'us'], + + APORTADOR_NONE: '------', + + TYPECONF_ZOOM: 'zoom', + TYPECONF_JITSI: 'jitsi', + + APORTADOR_SOLIDARIO: 'apsol', + + IDAPP_AYNI: '7', + IDAPP_SIP: '9', + IDAPP_CNM: '10', + + TipoMsg: { + SEND_LINK_CHAT_DONATORI: 1, + SEND_MSG: 2, + SEND_MSG_SINGOLO: 3, + SEND_TO_ALL: 10, + SEND_MSG_EFFETTUA_IL_DONO: 1000, + SEND_MSG_SOLLECITO_DONATORI_NO_DONO: 1005, + SEND_MSG_A_MEDIATORI: 1010, + SEND_MSG_A_SOGNATORE: 1020, + SEND_MSG_A_UTENTE_SOSTITUITO: 1030, + SEND_MSG_DONO_RICEVUTO_CORRETTAMENTE: 1040, + }, + + listBestColor: [ + 'blue', + 'green', + 'purple', + 'deep-purple', + 'indigo', + 'light-blue', + 'cyan', + 'teal', + 'lime', + 'orange', + 'deeporange', + 'grey', + 'blue-gray', + 'yellow', + ], + + MAX_CHARACTERS: 60, + projects: 'projects', + todos: 'todos', + EMPTY: 0, + CALLING: 10, + OK: 20, + + TYPE_AUDIO: 1, + + NUMSEC_CHECKUPDATE: 20000, + + FIRST_PROJ: '5ca8f17fcd40dc5012f53346', + + WHAT_NOTHING: 0, + WHAT_TODO: 1, + WHAT_PROJECT: 2, + + languageid: 5, + + peopleWhere: { + participants: 1, + lunch: 2, + dinner: 3, + dinnerShared: 4, + }, + + Priority: { + PRIORITY_HIGH: 2, + PRIORITY_NORMAL: 1, + PRIORITY_LOW: 0, + }, + + Status: { + NONE: 0, + OPENED: 1, + COMPLETED: 10, + }, + + SelectHours: [ + { + id: 0, + label: '0', + value: 0, + }, + { + id: 5, + label: '0.5', + value: 0.5, + }, + { + id: 10, + label: '1', + value: 1, + }, + { + id: 15, + label: '1.5', + value: 1.5, + }, + { + id: 20, + label: '2', + value: 2, + }, + { + id: 25, + label: '2.5', + value: 2.5, + }, + { + id: 30, + label: '3', + value: 3, + }, + { + id: 35, + label: '3.5', + value: 3.5, + }, + { + id: 40, + label: '4', + value: 4, + }, + { + id: 45, + label: '4.5', + value: 4.5, + }, + { + id: 50, + label: '5', + value: 5, + }, + { + id: 60, + label: '6', + value: 6, + }, + { + id: 70, + label: '7', + value: 7, + }, + { + id: 80, + label: '8', + value: 8, + }, + { + id: 90, + label: '9', + value: 9, + }, + { + id: 100, + label: '10', + value: 10, + }, + { + id: 110, + label: '11', + value: 11, + }, + { + id: 120, + label: '12', + value: 12, + }, + ], + + SelectMetodiPagamento: [ + { + id: 0, + label: '[Nessuno]', + value: 0, + }, + { + id: 1, + label: 'Bonifico Bancario', + value: 1, + }, + { + id: 2, + label: 'Paypal', + value: 2, + }, + { + id: 3, + label: 'In Contanti alla CNM', + value: 3, + }, + ], + + SelectListNumPeople: [ + { + id: 0, + label: '0', + value: 0, + }, + { + id: 1, + label: '1', + value: 1, + }, + { + id: 2, + label: '2', + value: 2, + }, + { + id: 3, + label: '3', + value: 3, + }, + { + id: 4, + label: '4', + value: 4, + }, + { + id: 5, + label: '5', + value: 5, + }, + { + id: 6, + label: '6', + value: 6, + }, + { + id: 7, + label: '7', + value: 7, + }, + { + id: 8, + label: '8', + value: 8, + }, + { + id: 9, + label: '9', + value: 9, + }, + { + id: 10, + label: '10', + value: 10, + }, + ], + + selectPhase: { + it: [ + { + id: 1, + label: `${translation.it.fase} 0`, + value: 0, + }, + { + id: 2, + label: `${translation.it.fase} 1`, + value: 1, + }, + { + id: 3, + label: `${translation.it.fase} 2`, + value: 2, + }, + { + id: 4, + label: `${translation.it.fase} 3`, + value: 3, + }, + ], + es: [ + { + id: 1, + label: `${translation.es.fase} 0`, + value: 0, + }, + { + id: 2, + label: `${translation.es.fase} 1`, + value: 1, + }, + { + id: 3, + label: `${translation.es.fase} 2`, + value: 2, + }, + { + id: 4, + label: `${translation.es.fase} 3`, + value: 3, + }, + ], + enUs: [ + { + id: 1, + label: `${translation.enUs.fase} 0`, + value: 0, + }, + { + id: 2, + label: `${translation.enUs.fase} 1`, + value: 1, + }, + { + id: 3, + label: `${translation.enUs.fase} 2`, + value: 2, + }, + { + id: 4, + label: `${translation.enUs.fase} 3`, + value: 3, + }, + ], + }, + + selectPrivacy: { + it: [ + { + id: 1, + label: translation.it.privacy.all, + value: Privacy.all, + }, + { + id: 2, + label: translation.it.privacy.friends, + value: Privacy.friends, + }, + { + id: 3, + label: translation.it.privacy.mygroup, + value: Privacy.mygroup, + }, + { + id: 4, + label: translation.it.privacy.onlyme, + value: Privacy.onlyme, + }, + { + id: 5, + label: translation.it.privacy.inherited, + value: Privacy.inherited, + }, + ], + es: [ + { + id: 1, + label: translation.es.privacy.all, + value: Privacy.all, + }, + { + id: 2, + label: translation.es.privacy.friends, + value: Privacy.friends, + }, + { + id: 3, + label: translation.es.privacy.mygroup, + value: Privacy.mygroup, + }, + { + id: 4, + label: translation.es.privacy.onlyme, + value: Privacy.onlyme, + }, + { + id: 5, + label: translation.es.privacy.inherited, + value: Privacy.inherited, + }, + ], + enUs: [ + { + id: 1, + label: translation.enUs.privacy.all, + value: Privacy.all, + }, + { + id: 2, + label: translation.enUs.privacy.friends, + value: Privacy.friends, + }, + { + id: 3, + label: translation.enUs.privacy.mygroup, + value: Privacy.mygroup, + }, + { + id: 4, + label: translation.enUs.privacy.onlyme, + value: Privacy.onlyme, + }, + { + id: 5, + label: translation.enUs.privacy.inherited, + value: Privacy.inherited, + }, + ], + }, + + selectTipoVisu: { + it: [ + { + id: 1, + label: translation.it.privacy.inherited, + value: TipoVisu.inherited, + }, + { + id: 2, + label: translation.it.tipovisu.simplelist, + value: TipoVisu.simplelist, + }, + { + id: 3, + label: translation.it.tipovisu.taskProgress, + value: TipoVisu.taskProgress, + }, + { + id: 4, + label: translation.it.tipovisu.responsabili, + value: TipoVisu.responsabili, + }, + ], + }, + + selectStatus: { + it: [ + { + id: 1, + label: 'Nessuno', + value: 0, // Status.NONE + icon: 'expand_less', + }, + { + id: 2, + label: 'Aperto', + value: 1, // Status.OPENED + icon: 'expand_less', + }, + { + id: 3, + label: 'Completato', + value: 10, // Status.COMPLETED + icon: 'expand_less', + }, + ], + es: + [ + { + id: 1, + label: 'Ninguno', + value: 0, // Status.NONE + icon: 'expand_less', + }, + { + id: 2, + label: 'Abierto', + value: 1, // Status.OPENED + icon: 'expand_less', + }, + { + id: 3, + label: 'Completado', + value: 10, // Status.COMPLETED + icon: 'expand_less', + }, + ], + enUs: + [ + { + id: 1, + label: 'None', + value: 0, // Status.NONE + icon: 'expand_less', + }, + { + id: 2, + label: 'Opened', + value: 1, // Status.OPENED + icon: 'expand_less', + }, + { + id: 3, + label: 'Completed', + value: 10, // Status.COMPLETED + icon: 'expand_less', + }, + ], + + }, + + INDEX_MENU_DELETE: 4, + + menuPopupTodo: + { + it: [ + { + id: 5, + disable: false, + label: 'Taglia', + value: lists.MenuAction.CUT, + icon: 'undo', + }, + { + id: 10, + disable: false, + label: 'Modifica', + value: lists.MenuAction.EDIT, + icon: 'create', + }, + { + id: 11, + disable: false, + label: 'Elimina', + value: lists.MenuAction.DELETE, + icon: 'delete', + checked: false, + }, + { + id: 12, + disable: false, + label: '', + value: lists.MenuAction.PROGRESS_BAR, + icon: 'rowing', + checked: true, + }, + { + id: 20, + disable: false, + label: 'Imposta Priorità', + value: lists.MenuAction.PRIORITY, + icon: 'rowing', + checked: false, + arrlista: lists.selectPriority.it, + }, + { + id: 21, + disable: false, + label: translation.it.proj.themecolor, + value: lists.MenuAction.THEME, + icon: 'format_color_text', + checked: false, + arrlista: lists.selectTheme, + }, + { + id: 22, + disable: false, + label: translation.it.proj.themebgcolor, + value: lists.MenuAction.THEMEBG, + icon: 'format_color_fill', + checked: false, + arrlista: lists.selectTheme, + }, + { + id: 30, + disable: false, + label: 'Completato', + value: lists.MenuAction.COMPLETED, + icon: 'check_circle', + checked: true, + }, + { + id: 40, + disable: false, + label: 'Imposta Scadenza', + value: lists.MenuAction.TOGGLE_EXPIRING, + icon: 'date_range', + checked: true, + }, + ], + es: + [ + { + id: 5, + disable: false, + label: 'Cortar', + value: lists.MenuAction.CUT, + icon: 'undo', + }, + { + id: 7, + disable: false, + label: 'Editar', + value: lists.MenuAction.EDIT, + icon: 'create', + }, + { + id: 8, + disable: false, + label: 'Borrar', + value: lists.MenuAction.DELETE, + icon: 'delete', + checked: false, + }, + { + id: 10, + disable: false, + label: '', + value: lists.MenuAction.PROGRESS_BAR, + icon: 'rowing', + checked: true, + }, + { + id: 20, + disable: false, + label: 'Establecer Prioridad', + value: lists.MenuAction.PRIORITY, + icon: 'rowing', + checked: false, + arrlista: lists.selectPriority.es, + }, + { + id: 21, + disable: false, + label: translation.es.proj.themecolor, + value: lists.MenuAction.THEME, + icon: 'format_color_text', + checked: false, + arrlista: lists.selectTheme, + }, + { + id: 22, + disable: false, + label: translation.es.proj.themebgcolor, + value: lists.MenuAction.THEMEBG, + icon: 'format_color_fill', + checked: false, + arrlista: lists.selectTheme, + }, + { + id: 30, + disable: false, + label: 'Completado', + value: lists.MenuAction.COMPLETED, + icon: 'check_circle', + checked: true, + }, + { + id: 40, + disable: false, + label: 'Establecer expiración', + value: lists.MenuAction.TOGGLE_EXPIRING, + icon: 'date_range', + checked: true, + }, + ], + enUs: + [ + { + id: 5, + disable: false, + label: 'Cut', + value: lists.MenuAction.CUT, + icon: 'undo', + }, + { + id: 7, + disable: false, + label: 'Edit', + value: lists.MenuAction.EDIT, + icon: 'create', + }, + { + id: 8, + disable: false, + label: 'Delete', + value: lists.MenuAction.DELETE, + icon: 'trash', + checked: false, + }, + { + id: 10, + disable: false, + label: '', + value: lists.MenuAction.PROGRESS_BAR, + icon: 'check_circle', + checked: true, + }, + { + id: 20, + disable: false, + label: 'Set Priority', + value: lists.MenuAction.PRIORITY, + icon: 'high_priority', + checked: false, + arrlista: lists.selectPriority.enUs, + }, + { + id: 21, + disable: false, + label: translation.enUs.proj.themecolor, + value: lists.MenuAction.THEME, + icon: 'format_color_text', + checked: false, + arrlista: lists.selectTheme, + }, + { + id: 22, + disable: false, + label: translation.enUs.proj.themebgcolor, + value: lists.MenuAction.THEMEBG, + icon: 'format_color_fill', + checked: false, + arrlista: lists.selectTheme, + }, + { + id: 30, + disable: false, + label: 'Completed', + value: lists.MenuAction.COMPLETED, + icon: 'check_circle', + checked: true, + }, + { + id: 40, + disable: false, + label: 'Set Expiring', + value: lists.MenuAction.TOGGLE_EXPIRING, + icon: 'date_range', + checked: true, + }, + ], + }, + + menuPopupProj: { + it: [ + { + id: 5, + disable: false, + label: 'Taglia', + value: lists.MenuAction.CUT, + icon: 'undo', + }, + { + id: 10, + disable: false, + label: 'Modifica', + value: lists.MenuAction.EDIT, + icon: 'create', + }, + { + id: 11, + disable: false, + label: 'Elimina', + value: lists.MenuAction.DELETE, + icon: 'delete', + checked: false, + }, + { + id: 40, + disable: false, + label: 'Imposta Scadenza', + value: lists.MenuAction.TOGGLE_EXPIRING, + icon: 'date_range', + checked: true, + }, + { + id: 45, + disable: false, + label: translation.it.proj.themecolor, + value: lists.MenuAction.THEME, + icon: 'format_color_text', + checked: false, + arrlista: lists.selectTheme, + }, + { + id: 46, + disable: false, + label: translation.it.proj.themebgcolor, + value: lists.MenuAction.THEMEBG, + icon: 'format_color_fill', + checked: false, + arrlista: lists.selectTheme, + }, + ], + es: + [ + { + id: 5, + disable: false, + label: 'Cortar', + value: lists.MenuAction.CUT, + icon: 'undo', + }, + { + id: 10, + disable: false, + label: 'Editar', + value: lists.MenuAction.EDIT, + icon: 'create', + }, + { + id: 11, + disable: false, + label: 'Borrar', + value: 100, // DELETE + icon: 'delete', + checked: false, + }, + { + id: 40, + disable: false, + label: 'Establecer expiración', + value: lists.MenuAction.TOGGLE_EXPIRING, + icon: 'date_range', + checked: true, + }, + { + id: 45, + disable: false, + label: translation.es.proj.themecolor, + value: lists.MenuAction.THEME, + icon: 'format_color_text', + checked: false, + arrlista: lists.selectTheme, + }, + { + id: 46, + disable: false, + label: translation.es.proj.themebgcolor, + value: lists.MenuAction.THEMEBG, + icon: 'format_color_fill', + checked: false, + arrlista: lists.selectTheme, + }, + ], + enUs: + [ + { + id: 5, + disable: false, + label: 'Cut', + value: 71, // CUT + icon: 'undo', + }, + { + id: 10, + disable: false, + label: 'Edit', + value: lists.MenuAction.EDIT, + icon: 'create', + }, + { + id: 40, + disable: false, + label: 'Set Expiring', + value: 101, // TOGGLE_EXPIRING + icon: 'date_range', + checked: true, + }, + { + id: 45, + disable: false, + label: translation.enUs.proj.themecolor, + value: lists.MenuAction.THEME, + icon: 'format_color_text', + checked: false, + arrlista: lists.selectTheme, + }, + { + id: 46, + disable: false, + label: translation.enUs.proj.themebgcolor, + value: lists.MenuAction.THEMEBG, + icon: 'format_color_fill', + checked: false, + arrlista: lists.selectTheme, + }, + { + id: 50, + disable: false, + label: 'Delete', + value: 100, // DELETE + icon: 'trash', + checked: false, + }, + ], + }, + + menuPopupConfigTodo: { + it: [ + { + id: 10, + disable: false, + label: 'Mostra Task', + value: 150, // SHOW_TASK + icon: 'rowing', + }, + ], + es: + [ + { + id: 10, + disable: false, + label: 'Mostrar Tareas', + value: 150, + icon: 'rowing', + }, + ], + enUs: + [ + { + id: 10, + disable: false, + label: 'Show Task', + value: 150, + icon: 'rowing', + }, + ], + }, + + menuPopupConfigProject: { + it: [ + { + id: 3, + disable: false, + label: translation.it.action.paste, + value: 72, // Action.PASTE + icon: 'file_copy', + }, + { + id: 5, + disable: false, + label: translation.it.proj.newsubproj, + value: 200, // ADD_PROJECT + icon: 'next_week', + }, + { + id: 10, + disable: false, + label: translation.it.task.showtask, + value: 150, // SHOW_TASK + icon: 'rowing', + }, + { + id: 15, + disable: false, + label: translation.it.task.showposiz, + value: 155, // SHOW_POSIZ + icon: 'rowing', + }, + ], + es: + [ + { + id: 3, + disable: false, + label: translation.es.action.paste, + value: 72, // Action.PASTE + icon: 'file_copy', + }, + { + id: 5, + disable: false, + label: translation.es.proj.newsubproj, + value: 200, // ADD_PROJECT + icon: 'next_week', + }, + { + id: 10, + disable: false, + label: translation.es.task.showtask, + value: 150, + icon: 'rowing', + }, + ], + enUs: + [ + { + id: 3, + disable: false, + label: translation.enUs.action.paste, + value: 72, // Action.PASTE + icon: 'file_copy', + }, + { + id: 5, + disable: false, + label: translation.enUs.proj.newsubproj, + value: 200, // ADD_PROJECT + icon: 'next_week', + }, + { + id: 10, + disable: false, + label: translation.enUs.task.showtask, + value: 150, + icon: 'rowing', + }, + ], + }, + + menuPopupConfigMAINProject: { + it: [ + { + id: 3, + disable: false, + label: translation.it.action.paste, + value: 72, // Action.PASTE + icon: 'file_copy', + }, + { + id: 5, + disable: false, + label: translation.it.proj.newproj, + value: 200, // ADD_PROJECT + icon: 'next_week', + }, + ], + es: + [ + { + id: 3, + disable: false, + label: translation.es.action.paste, + value: 72, // Action.PASTE + icon: 'file_copy', + }, + { + id: 5, + disable: false, + label: translation.es.proj.newproj, + value: 200, // ADD_PROJECT + icon: 'next_week', + }, + ], + enUs: + [ + { + id: 3, + disable: false, + label: translation.enUs.action.paste, + value: 72, // Action.PASTE + icon: 'file_copy', + }, + { + id: 5, + disable: false, + label: translation.enUs.proj.newproj, + value: 200, // ADD_PROJECT + icon: 'next_week', + }, + ], + }, + + listOptionShowTask: { + it: [ + { + id: 10, + disable: false, + label: 'Mostra gli ultimi N completati', + value: costanti.ShowTypeTask.SHOW_LAST_N_COMPLETED, + icon: 'rowing', + checked: true, + }, + { + id: 20, + disable: false, + label: 'Compiti da Completare', + value: costanti.ShowTypeTask.SHOW_ONLY_TOCOMPLETE, + icon: 'rowing', + checked: false, + }, + { + id: 30, + disable: false, + label: 'Tutti i compiti', + value: costanti.ShowTypeTask.SHOW_ALL, + icon: 'check_circle', + checked: true, + }, + ], + es: + [ + { + id: 10, + disable: false, + label: 'Mostrar los ultimos N completados', + value: costanti.ShowTypeTask.SHOW_LAST_N_COMPLETED, + icon: 'rowing', + checked: true, + }, + { + id: 20, + disable: false, + label: 'Tareas para completar', + value: costanti.ShowTypeTask.SHOW_ONLY_TOCOMPLETE, + icon: 'rowing', + checked: false, + }, + { + id: 30, + disable: false, + label: 'Todos las Tareas', + value: costanti.ShowTypeTask.SHOW_ALL, + icon: 'check_circle', + checked: true, + }, + ], + enUs: + [ + { + id: 10, + disable: false, + label: 'Show last N Completed', + value: costanti.ShowTypeTask.SHOW_LAST_N_COMPLETED, + icon: 'rowing', + checked: true, + }, + { + id: 20, + disable: false, + label: 'Task to complete', + value: costanti.ShowTypeTask.SHOW_ONLY_TOCOMPLETE, + icon: 'rowing', + checked: false, + }, + { + id: 30, + disable: false, + label: 'All Tasks', + value: costanti.ShowTypeTask.SHOW_ALL, + icon: 'check_circle', + checked: true, + }, + ], + }, + + getTitlePriority(priority: number): string { + let cl = '' + + if (priority === this.Priority.PRIORITY_HIGH) { + cl = 'high_priority' + } else if (priority === this.Priority.PRIORITY_NORMAL) { + cl = 'medium_priority' + } else if (priority === this.Priority.PRIORITY_LOW) { + cl = 'low_priority' + } + + return `${cl} titlePriority` + }, + + getItemLS(item: any): any { + let ris = localStorage.getItem(item) + if ((ris == null) || (ris === '') || (ris === 'null') || !ris) { + ris = '' + } + + return ris + }, + + isLoggedToSystem(): boolean { + const tok = this.getItemLS(toolsext.localStorage.token) + return !!tok + }, + + + addDays(mydate: Date, days: number) { + return date.addToDate(mydate, { days }) + }, + + addMinutes(mydate: Date, minutes: number) { + return date.addToDate(mydate, { minutes }) + }, + + jsonCopy(src: any): any { + return JSON.parse(JSON.stringify(src)) + }, + + askfornotification($q: any) { + const { t } = useI18n(); + console.log('askfornotification', $q) + this.showNotif($q, t('notification.waitingconfirm'), { color: 'positive', icon: 'notifications' }) + + Notification.requestPermission((result) => { + console.log('User Choice', result) + if (result === 'granted') { + this.showNotif($q, t('notification.confirmed'), { color: 'positive', icon: 'notifications' }) + } else { + this.showNotif($q, t('notification.denied'), { color: 'negative', icon: 'notifications' }) + + // displayConfirmNotification(); + } + }) + }, + + isMobile(): boolean { + return (Screen.width < 450) + }, + + getimgbysize(dir: string, file: string): string { + const myimage = dir + file + // console.log('includes = ', static_data.preLoadImages.map((a) => a.imgname).includes(myimage), myimage) + let ris = '' + // @ts-ignore + if (this.isMobile() && (preloadedimages().map((a) => a.imgname).includes(myimage))) { + ris = `${dir}mobile/${file}` + } else { + ris = myimage + } + + // console.log('getimgbysize', ris) + + return ris + }, + + getaltimg(dir: string, file: string, alt?: string): string { + const myimage = dir + file + const myrec = static_data.preLoadImages.find((rec) => rec.imgname === myimage) + if (myrec) return (myrec) ? myrec.alt : 'my image' + return alt || '' + }, + + getimgFullpathbysize(fileimg: string): IPathFile { + if (!fileimg) return { path: '', file: fileimg } + const ind = fileimg.lastIndexOf('/') + if (ind > 0) { + return { path: fileimg.substring(0, ind + 1), file: fileimg.substring(ind + 1) } + } + return { path: '', file: fileimg } + }, + + showPositiveNotif(q: any, msg: string) { + this.showNotif(q, msg, { color: 'positive', icon: 'notifications' }) + }, + + showNegativeNotif(q: any, msg: string) { + this.showNotif(q, msg, { color: 'negative', icon: 'notifications' }, 10000) + }, + + showNeutralNotif(q: any, msg: string) { + this.showNotif(q, msg, { color: 'info', icon: 'notifications' }, 10000) + }, + + showNotif(q: any, msg: string, data ?: INotify | null, time?: number) { + let myicon = data ? data.icon : 'ion-add' + if (!myicon) { + myicon = 'ion-add' + } + let mycolor = data ? data.color : 'primary' + if (!mycolor) { + mycolor = 'primary' + } + q.notify({ + // group: '', + message: msg, + icon: myicon, + classes: 'my-notif-class', + color: mycolor, + timeout: time || 4000, + }) + }, + + isBitActive(bit: any, whattofind: any) { + if (whattofind > 0) { + return ((bit & whattofind) === whattofind) + } + return false + }, + + SetBit(myval: any, bit: any) { + // tslint:disable-next-line:no-bitwise + let myvalout = myval + myvalout |= bit + return myvalout + }, + + UnSetBit(myval: any, bit: any) { + // tslint:disable-next-line:no-bitwise + let myvalout = myval + myvalout &= ~bit + return myvalout + }, + + getUnique(arr: any, comp: any) { + const unique = arr + // @ts-ignore + .map(e => e[comp]) + + // store the keys of the unique objects + // @ts-ignore + .map((e, i, final) => final.indexOf(e) === i && i) + + // eliminate the dead keys & store unique objects + // @ts-ignore + .filter(e => arr[e]).map(e => arr[e]) + + return unique + }, + + async createNewRecord($q: any, table: string, data: any, withnotif = true) { + const mydata = { + table, + data, + } + + const globalStore = useGlobalStore() + const { t } = useI18n() + + return globalStore.saveTable(mydata) + .then((record) => { + if (withnotif) { + if (record) { + this.showPositiveNotif($q, t('db.recupdated')) + } else { + this.showNegativeNotif($q, t('db.recfailed')) + } + } + return record + }) + }, + + isObject(anything: any) { + // Object.create(null) instanceof Object → false + return Object(anything) === anything + }, + + isDebug() { + return process.env.DEV + }, + + isTest() { + return process.env.ISTEST === '1' + }, + + notshowPwd(payload: any) { + const mypay = { ...payload } + try { + if (mypay.password) { + mypay.password = '**********' + } + } catch (e) { + console.log('error', e) + } + return mypay + }, + + getstrDate(mytimestamp: Date | number | string | undefined) { + // console.log('getstrDate', mytimestamp) + if (mytimestamp) return date.formatDate(mytimestamp, 'DD/MM/YYYY') + return '' + }, + + getstrDateLong(mytimestamp: Date | number | string | undefined) { + // console.log('getstrDate', mytimestamp) + const dayofweek = this.getDayOfWeek(mytimestamp) + if (mytimestamp) return `${dayofweek} ${date.formatDate(mytimestamp, 'DD/MM/YYYY')}` + return '' + }, + + getstrshortDate(mytimestamp: Date | number | string | undefined) { + // console.log('getstrDate', mytimestamp) + if (mytimestamp) return date.formatDate(mytimestamp, 'DD/MM') + return '' + }, + + getstrshortDateTime(mytimestamp: Date | number | string | undefined) { + // console.log('getstrDate', mytimestamp) + if (mytimestamp) return date.formatDate(mytimestamp, 'DD/MM HH:mm') + return '' + }, + + getstrshortDayDateTime(mytimestamp: Date | number | string | undefined) { + // console.log('getstrDate', mytimestamp) + if (mytimestamp) return date.formatDate(mytimestamp, 'DD HH:mm') + return '' + }, + + getstrTime(mytimestamp: Date | number | string | undefined) { + // console.log('getstrDate', mytimestamp) + if (mytimestamp) return date.formatDate(mytimestamp, 'HH:mm') + return '' + }, + + getstrShortDate(mydate: Date | number | string | undefined) { + const DateFormatter = new Intl.DateTimeFormat(toolsext.getLocale() || void 0, { + weekday: 'long', + day: 'numeric', + month: 'short', + year: 'numeric', + // timeZone: 'UTC' + }) + try { + if (DateFormatter) { + // @ts-ignore + const date1 = new Date(mydate) + return DateFormatter.format(date1) + } + return mydate + } catch (e) { + return '' + } + }, + getstrVeryShortDate(mydate: Date | number | string | undefined) { + const DateFormatter = new Intl.DateTimeFormat(toolsext.getLocale() || void 0, { + weekday: 'short', + day: 'numeric', + month: 'short', + // timeZone: 'UTC' + }) + try { + if (DateFormatter) { + // @ts-ignore + const date1 = new Date(mydate) + return DateFormatter.format(date1) + } + return mydate + } catch (e) { + return '' + } + }, + + getstrVeryVeryShortDate(mydate: Date) { + const DateFormatter = new Intl.DateTimeFormat(toolsext.getLocale() || void 0, { + weekday: 'long', + day: 'numeric', + // timeZone: 'UTC' + }) + try { + if (DateFormatter) { + const date1 = new Date(mydate) + return DateFormatter.format(date1) + } + return mydate + } catch (e) { + return '' + } + }, + + getstrDateTimeEventShort(myevent: IEvents) { + let mystr = '' + // is same day? + if (this.getstrShortDate(myevent.dateTimeStart) === this.getstrShortDate(myevent.dateTimeEnd)) { + mystr = `${this.getstrVeryShortDate(myevent.dateTimeStart)} + h. ${this.getstrTime(myevent.dateTimeStart)}` + } else { + mystr = `${this.getstrVeryShortDate(myevent.dateTimeStart)} - ${this.getstrVeryShortDate(myevent.dateTimeEnd)}` + } + + return mystr + }, + + getstrDateTime(mytimestamp: Date | number | string | undefined) { + // console.log('getstrDate', mytimestamp) + if (mytimestamp) return date.formatDate(mytimestamp, 'DD/MM/YYYY HH:mm') + return '' + }, + + getstrDateTimeAll(mytimestamp: Date | number | string | undefined) { + // console.log('getstrDate', mytimestamp) + if (mytimestamp) return date.formatDate(mytimestamp, 'DD/MM/YYYY HH:mm:ss') + return '' + }, + + getstrTimeAll(mytimestamp: Date | number | string | undefined) { + // console.log('getstrDate', mytimestamp) + if (mytimestamp) return date.formatDate(mytimestamp, 'HH:mm:ss') + return '' + }, + + getstrDateTimeShort(mytimestamp: Date | number | string | undefined) { + // console.log('getstrDate', mytimestamp) + if (mytimestamp) return date.formatDate(mytimestamp, 'DD/MM HH:mm') + return '' + }, + + getstrDateMonthTimeShort(mytimestamp: Date | number | string | undefined) { + // console.log('getstrDate', mytimestamp) + if (mytimestamp) return date.formatDate(mytimestamp, 'DD MMM HH:mm') + return '' + }, + + getstrDateMonthWeekTimeShort(mytimestamp: Date | number | string | undefined) { + // console.log('getstrDate', mytimestamp) + if (mytimestamp) return `${this.getDayOfWeek(mytimestamp)} ${date.formatDate(mytimestamp, 'DD MMM - HH:mm')}` + return '' + }, + + getstrDateEmailTime(mytimestamp: Date | number | string | undefined) { + // console.log('getstrDate', mytimestamp) + const { t } = useI18n() + if (mytimestamp) return `${date.formatDate(mytimestamp, 'DD/MM/YYYY')} ${t('cal.starttime')} ${date.formatDate(mytimestamp, 'HH:mm')}` + return '' + }, + getstrMMMDate(mytimestamp: Date | number | string | undefined) { + // console.log('getstrDate', mytimestamp) + if (mytimestamp) return date.formatDate(mytimestamp, 'DD MMM YYYY') + return '' + }, + getstrYYMMDDDate(mytimestamp: Date | number | string | undefined) { + return date.formatDate(mytimestamp, 'YYYY-MM-DD') + }, + getstrYYMMDDDateTime(mytimestamp: Date | number | string | undefined) { + return date.formatDate(mytimestamp, 'YYYY-MM-DD HH:mm') + }, + + getstrYYMMDDDateTimeAll(mytimestamp: Date | number | string | undefined) { + return date.formatDate(mytimestamp, 'YYYY-MM-DD HH:mm:ss') + }, + + gettimestampstrDate(mydatestr: Date | number | string | undefined) { + if (mydatestr) { + const mydate = new Date(mydatestr) + if (mydate) return mydate.getTime() + } + return 0 + }, + + // mystrdate "26.04.2013" + convertstrtoDate(mystrdate: string) { + if (mystrdate.length < 10) { + return null + } + + console.log('mystrdate', mystrdate) + + const pattern = /(\d{2})\/(\d{2})\/(\d{4})/ + const strdate = mystrdate.replace(pattern, '$3-$2-$1') + let mydate = null + if (date.isValid(strdate)) { + mydate = new Date(strdate) + } else { + return null + } + // console.log('mystrdate', mystrdate, strdate, mydate) + return mydate + }, + + capitalize(value: any) { + if (!value) { + return '' + } + const myval = value.toString() + return myval.charAt(0).toUpperCase() + myval.slice(1) + }, + + firstchars(value: any, numchars = 200) { + if (!value) { + return '' + } + try { + let mycar = value.substring(0, numchars) + if (value.length > numchars) mycar += '...' + return mycar + } catch (e) { + return value + } + }, + + getDateNow() { + const mydate = new Date() + return mydate + }, + + isDateArrived(mydate: Date | number | string | undefined) { + const datenow = this.getDateNow() + const diff = date.getDateDiff(datenow, mydate) + // console.log('diff = ' + diff) + if (diff >= -1) { + return true + } + return false + }, + + getDayOfWeek(mydate: Date | number | string | undefined) { + // @ts-ignore + const dayOfWeek = new Date(mydate).getDay() + + const mylang = toolsext.getLocale() + + const myday: any = { + it: ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato'], + enUs: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + fr: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'], + es: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'], + pt: ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'], + de: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'], + si: ['Nedelja', 'Ponedeljek', 'Torek', 'Sreda', 'četrtek', 'Petek', 'Sobota'], + } + + return Number.isNaN(dayOfWeek) ? '' : myday[mylang][dayOfWeek].substring(0, 3) + }, + + isSunday(mydate: Date | number | string | undefined) { + // @ts-ignore + const dayOfWeek = new Date(mydate).getDay() + return dayOfWeek === 0 + }, + + getDateNowEvent() { + return this.addMinutes(this.getDateNow(), -60 * 4) + }, + getDateNull() { + return new Date(0) + }, + + getTimeNow() { + return new Date().getTime() + }, + getTimestampsNow() { + return new Date().valueOf() + }, + + gettimestampByDate(mydate: Date) { + return mydate.toString() + }, + + isMainProject(idproj: string) { + return idproj === process.env.PROJECT_ID_MAIN + }, + + getUrlByTipoProj(tipoproj: string, name ?: string) { + if (name) return `/${name}/` + return `/${tipoproj}/` + }, + + getprivacyreadbytipoproj(tipoproj: string) { + if (tipoproj === RouteNames.myprojects) return Privacy.inherited + return Privacy.all + }, + + getprivacywritebytipoproj(tipoproj: string) { + return Privacy.inherited + }, + + notifyarraychanged(array: any) { + if (array.length > 0) { + array.splice(array.length - 1, 1, array[array.length - 1]) + } + }, + + getModulesByTable(nametable: string) { + if (nametable === 'todos') { + // return Todos + } else if (nametable === 'projects') { + // return Projects + } + + return null + }, + + getlang() { + return toolsext.getLocale() + }, + + getappname(short: boolean) { + const { t } = useI18n() + if (short) { + return t('ws.siteshortname') + } + return t('ws.sitename') + }, + + getimglogo() { + return `images/${process.env.LOGO_REG}` + }, + + getproc() { + return 'Testo: ' + process.env.LOGO_REG + }, + + consolelogpao(strlog: string, strlog2: any = '', strlog3: any = '') { + // @ts-ignore + globalroutines(null, 'log', `${strlog} ${strlog2} ${strlog3}`, null) + }, + + addRoute(myarr: any, values: any) { + myarr.push(values) + }, + + getCellForWhatsapp(numbercell: string) { + if (!numbercell) return '' + let mynum = numbercell.replace(/-/g, '') + const globalStore = useGlobalStore() + const intcode = globalStore.getValueSettingsByKey('INT_CODE', false) + if (numbercell.substring(0, 1) !== '+') mynum = intcode + mynum + else mynum = mynum.substring(1) + + return mynum + }, + + getHttpForWhatsapp(numbercell: string) { + if (!numbercell) return '' + const mynum = this.getCellForWhatsapp(numbercell) + if (mynum) return `https://wa.me/${mynum}` + return '' + }, + + getHttpForTelegram(usertelegram: string) { + if (usertelegram) return `https://t.me/${usertelegram}` + return '' + }, + getsuffisso() { + if (this.isTest()) return 'TEST: ' + return '' + }, + +} diff --git a/src/store/Modules/toolsext.ts b/src/store/Modules/toolsext.ts new file mode 100755 index 00000000..b059bece --- /dev/null +++ b/src/store/Modules/toolsext.ts @@ -0,0 +1,256 @@ +import { date, useQuasar } from 'quasar' +import { useUserStore } from '@store/UserStore' +// import { useGlobalStore } from '@store/globalStore' +import { static_data } from '../../db/static_data' + +export const func_tools = { + getLocale(vero ?: boolean): string { + const userStore = useUserStore() + if (userStore) { + return userStore.lang + } + if (!vero) return process.env.LANG_DEFAULT ? process.env.LANG_DEFAULT : 'it' + return '' + }, + + getDateStr(mydate: any) { + const DateFormatter = new Intl.DateTimeFormat(func_tools.getLocale() || void 0, { + weekday: 'short', + day: 'numeric', + month: 'long', + year: 'numeric', + // timeZone: 'UTC' + }) + try { + // console.log('mydate', mydate, DateFormatter) + if (DateFormatter) { + const date1 = new Date(mydate) + return DateFormatter.format(date1) + } + return mydate + } catch (e) { + return '' + } + }, + + getMinutesDuration(mydatestart: any, mydateend: any) { + return date.getDateDiff(mydateend, mydatestart, 'minutes') + }, + + getDateTimeShortStr(mydate: any) { + const DateFormatter = new Intl.DateTimeFormat(func_tools.getLocale() || void 0, { + hour: 'numeric', + minute: 'numeric', + day: 'numeric', + month: 'short', + // timeZone: 'UTC' + }) + if (DateFormatter) { + const date1 = new Date(mydate) + return DateFormatter.format(date1) + } + return mydate + }, +} + +export const toolsext = { + TABUSER: 'users', + TABNAVI: 'navi', + TABLISTAINGRESSO: 'listaingressos', + TABGRADUATORIA: 'graduatorias', + TABEXTRALIST: 'extralist', + TABNEWSLETTER: 'newstosent', + TABGALLERY: 'gallery', + TABMAILINGLIST: 'mailinglist', + TABMYPAGE: 'mypage', + TABCALZOOM: 'calzoom', + TABGROUPS: 'groups', + TABTEMPLEMAIL: 'templemail', + TABOPZEMAIL: 'opzemail', + TABSHAREWITHUS: 'sharewithus', + SERVKEY_VERS: 'vers', + + ERR_GENERICO: -1, + ERR_SERVERFETCH: -2, + ERR_AUTHENTICATION: -5, + + localStorage: { + teleg_id: 'ti', + verified_email: 'vf', + made_gift: 'mg', + wasAlreadySubOnDb: 'sb', + categorySel: 'cs', + isLogged: 'ilog', + expirationDate: 'expdate', + leftDrawerOpen: 'ldo', + userId: 'uid', + token: 'tk', + username: 'uname', + name: 'nm', + surname: 'sn', + perm: 'pm', + lang: 'lg', + img: 'img', + }, + + getLocale(vero?: boolean): string { + const userStore = useUserStore() + if (userStore) { + return userStore.lang + } + return process.env.LANG_DEFAULT ? process.env.LANG_DEFAULT : 'it' + }, + isLang(whichlang: string): boolean { + const loc = func_tools.getLocale() + return (loc === whichlang) + }, + getlangforQuasar(mylang: string) { + if (mylang === 'enUs') return 'en-us' + return mylang + }, + setLangAtt(mylang: string) { + /** ++Todo: SISTEMARE + const globalStore = useGlobalStore() + + const $q = useQuasar() + + console.log('setLangAtt =', mylang) + // console.log('PRIMA this.$q.lang.isoName', this.$q.lang.isoName) + + // dynamic import, so loading on demand only + import(`quasar/lang/${this.getlangforQuasar(mylang)}`).then((lang) => { + console.log(' Import dinamically lang =', lang) + + $q.lang.set(this.getlangforQuasar(lang.default)) + import('../../public/i18n').then(() => { + console.log(' *** MY LANG DOPO=', $q.lang.isoName) + }) + }) + + globalStore.addDynamicPages() + + */ + + // this.$q.lang.set(mylang) + }, + + getValDb(keystr: string, serv: boolean, def?: any, table?: string, subkey?: string, id?: any, idmain?: any): any | undefined { + + /** ++Todo: SISTEMARE + const userStore = useUserStore() + const globalStore = useGlobalStore() + if (table === 'users') { + if (keystr === 'profile') { + if (subkey) { // @ts-ignore + return userStore.my.profile[subkey] + } + } else if (keystr) { // @ts-ignore + return userStore.my[keystr] + } + /* } else if (table === 'todos') { + // console.log('id', id, 'idmain', idmain) + const indcat = Todos.categories.indexOf(idmain) + console.log('indcat', indcat) + if (indcat >= 0) { + const myrec = Todos.todos[indcat].find((rec) => rec._id === id) + console.log('myrec', myrec) + let ris = null + if (myrec) { + ris = myrec[keystr] + } + console.log('ris', ris) + return ris + } + + return '' + + } else { + const ris = globalStore.getValueSettingsByKey(keystr, serv) + + if (ris === '') { + if (def !== undefined) return def + return '' + } + return ris + } + */ + return '' + + }, + + sito_online(pertutti: boolean): boolean { + const userStore = useUserStore() + + let ris = true + const online = this.getValDb('SITO_ONLINE', false, true) + ris = userStore.isAdmin && !pertutti ? true : online + // console.log('isadmin', userStore.isAdmin) + return ris + }, + + checkLangPassed(mylangprop: string) { + // console.log('checkLangPassed ', mylang) + + let mylang = mylangprop + + const $q = useQuasar() + + const userStore = useUserStore() + const mybrowserLang = $q.lang.isoName + + if (mylang !== '') { + if ((mylang.toLowerCase() === 'enus') || (mylang.toLowerCase() === 'en-us') || (mylang.toLowerCase() === 'uk') + || (mylang.toLowerCase() === 'uk-uk') || (mylang.toLowerCase() === 'en-uk') || (mylang.toLowerCase() === 'en-gb') + || (mylang.toLowerCase() === 'gb-gb')) { + mylang = 'enUs' + } + if ((mylang.toLowerCase() === 'es') || (mylang.toLowerCase() === 'es-es') || (mylang.toLowerCase() === 'eses')) { + mylang = 'es' + } + if ((mylang.toLowerCase() === 'pt') || (mylang.toLowerCase() === 'pt-pt') || (mylang.toLowerCase() === 'ptpt')) { + mylang = 'pt' + } + if ((mylang.toLowerCase() === 'fr') || (mylang.toLowerCase() === 'fr-fr') || (mylang.toLowerCase() === 'frfr')) { + mylang = 'fr' + } + if ((mylang.toLowerCase() === 'it') || (mylang.toLowerCase() === 'it-it') || (mylang.toLowerCase() === 'itit')) { + mylang = 'it' + } + if ((mylang.toLowerCase() === 'si') || (mylang.toLowerCase() === 'si-si') || (mylang.toLowerCase() === 'sisi')) { + mylang = 'si' + } + + if (!(static_data.arrLangUsed.includes(mylang))) { + // console.log('non incluso ', mylang) + // mylang = static_data.arrLangUsed[0] + mylang = 'it' + + // Metti come default + userStore.setlang(mylang) + } + } + + if (!mylang) { + if (process.env.LANG_DEFAULT) mylang = process.env.LANG_DEFAULT + console.log('LANG DEFAULT: ', mylang) + } + + if (this.getLocale(true) === '') { + userStore.setlang(mylang) + } + + // console.log('mylang calc : ', mylang) + + return mylang + }, +} + +// export const costanti_tools = { +// DateFormatter: new Intl.DateTimeFormat(func_this.getLocale() || void 0, { +// weekday: 'long', +// day: 'numeric', +// month: 'long', +// year: 'numeric' +// // timeZone: 'UTC' +// }) +// } diff --git a/src/store/Modules/translation.ts b/src/store/Modules/translation.ts new file mode 100755 index 00000000..a1ce17c2 --- /dev/null +++ b/src/store/Modules/translation.ts @@ -0,0 +1,77 @@ +export const translation = { + it: { + fase: 'Fase', + privacy: { + all: 'Tutti', + friends: 'Amici', + mygroup: 'Gruppo', + onlyme: 'Solo io', + inherited: 'Ereditato', + }, + tipovisu: { + simplelist: 'Lista Semplice', + taskProgress: 'Statistiche', + responsabili: 'Responsabili', + }, + proj: { + newproj: 'Nuovo Progetto', + newsubproj: 'Nuovo Sotto-Progetto', + themecolor: 'Tema Colore', + themebgcolor: 'Tema Colore Sfondo', + }, + task: { + showtask: 'Mostra Task', + showposiz: 'Mostra Ordine', + }, + action: { + paste: 'Incolla', + }, + end: '', + }, + es: { + fase: 'Fase', + privacy: { + all: 'Todos', + friends: 'Amigos', + mygroup: 'Grupos', + onlyme: 'Solo yo', + inherited: 'Ereditato', + }, + proj: { + newproj: 'Nuevo Projecto', + newsubproj: 'Nuevo Sub-Projecto', + themecolor: 'Tema Colores', + themebgcolor: 'Tema Colores Fondo', + }, + task: { + showtask: 'Mostrar Tarea', + }, + action: { + paste: 'Pegar', + }, + end: '', + }, + enUs: { + fase: 'Phase', + privacy: { + all: 'All', + friends: 'Friends', + mygroup: 'Group', + onlyme: 'Only me', + inherited: 'Inherited', + }, + proj: { + newproj: 'New Project', + newsubproj: 'New Sub-Project', + themecolor: 'Theme Color', + themebgcolor: 'Theme Background Color', + }, + task: { + showtask: 'Show Task', + }, + action: { + paste: 'Paste', + }, + end: '', + }, +} diff --git a/src/store/UserStore.ts b/src/store/UserStore.ts new file mode 100755 index 00000000..2380c57d --- /dev/null +++ b/src/store/UserStore.ts @@ -0,0 +1,510 @@ +import { defineStore } from 'pinia' + +import { + ISignupOptions, IUserFields, IUserProfile, IUserState, +} from '@src/model' +import { tools } from '@store/Modules/tools' +import translate from '@src/globalroutines/util' +import { ILinkReg, IToken } from '@model/other' + +import * as Types from '@src/store/Api/ApiTypes' +import { useGlobalStore } from '@store/globalStore' +import { useRouter } from 'vue-router' +import { serv_constants } from '@store/Modules/serv_constants' +import Api from './Api' +import { toolsext } from '@store/Modules/toolsext' + +export const DefaultUser: IUserFields = { + _id: '', + email: '', + username: '', + name: '', + surname: '', + password: '', + tokens: [], + verified_email: false, + aportador_solidario: '', + made_gift: false, + profile: { + img: '', + teleg_id: 0, + saw_zoom_presentation: false, + ask_zoom_partecipato: false, + saw_and_accepted: false, + qualified: false, + qualified_2invitati: false, + socio: false, + socioresidente: false, + myshares: [], + }, + cart: { + userId: '', + items: [], + totalPrice: 0, + department: '', + totalQty: 0, + note: '', + }, +} + +export const DefaultProfile: IUserProfile = { + img: '', + nationality: '', + intcode_cell: '', + cell: process.env.TEST_CELL || '', + dateofbirth: new Date(), + sex: 0, + country_pay: '', + email_paypal: '', + payeer_id: '', + advcash_id: '', + revolut: '', + link_payment: '', + note_payment: '', + username_telegram: '', + teleg_id: 0, + teleg_checkcode: 0, + my_dream: '', + manage_telegram: false, + saw_zoom_presentation: false, + ask_zoom_partecipato: false, + saw_and_accepted: false, + socio: false, + socioresidente: false, + myshares: [], + paymenttypes: [], + qualified: false, + qualified_2invitati: false, +} + +export const useUserStore = defineStore('UserStore', { + state: () => ({ + my: { ...DefaultUser }, + lang: process.env.LANG_DEFAULT ? process.env.LANG_DEFAULT : 'it', + repeatPassword: '', + categorySel: 'personal', + servercode: 0, + resStatus: 0, + x_auth_token: '', + isLogged: false, + isAdmin: false, + isManager: false, + isDepartment: false, + isTutor: false, + isZoomeri: false, + isTratuttrici: false, + isEditor: false, + usersList: [], + countusers: 0, + lastparamquery: {}, + }), + + getters: { + + getUserByUsername: (state: IUserState) => (username: string): IUserFields | null => { + // Check if is this User! + if (state.my.username === username) return state.my + + let trovato = null + if (state.usersList) trovato = state.usersList.find((item) => item.username === username) + + return (trovato) || null + }, + + getImgByUsername: (state: IUserState) => (username: string): string => { + if (username === '') return '' + // Check if is this User! + // @ts-ignore + const myrec = this.getUserByUsername(username) + // console.log('myrec', myrec) + if (myrec && myrec.profile && !!myrec.profile.img && myrec.profile.img !== '' && myrec.profile.img !== 'undefined') { + return myrec.profile.img + } + return '' + }, + + isServerError(): boolean { + return (this.servercode === toolsext.ERR_SERVERFETCH) + }, + + getServerCode: (state: IUserState): number => (state.servercode ? state.servercode : 0), + + getNameSurnameByUserId: (state: IUserState) => (userId: string): string => { + // @ts-ignore + const user = this.getUserByUserId(state, userId) + if (user) return `${user.name} ${user.surname}` + return `(${userId})` + }, + + getNameSurnameByUsername: (state: IUserState) => (username: string): string => { + // @ts-ignore + const user = this.getUserByUsername(state, username) + if (user) return `${user.name} ${user.surname}` + return `(${username})` + }, + + getUserByUserId: (state: IUserState) => (userId: string): IUserFields | null => { + // Check if is this User! + if (state.my._id === userId) return state.my + + let trovato = null + + if (state.usersList) trovato = state.usersList.find((item) => item._id === userId) + + return (trovato) || null + }, + + isUserInvalid: (state: IUserState): boolean => { + try { + return (state.my._id === undefined) || (state.my._id.trim() === '') + } catch (e) { + return true + } + }, + + getMsgError: (state: IUserState) => (err: number): string => { + let msgerrore = '' + if (err !== tools.OK) { + msgerrore = `Error [${state.servercode}]: ` + if (state.servercode === toolsext.ERR_SERVERFETCH) { + msgerrore = translate('fetch.errore_server') + } else { + msgerrore = translate('fetch.errore_generico') + } + + if (process.env.DEV) { + console.log('ERROREEEEEEEEE: ', msgerrore, ' (', err, ')') + } + } + + // return { code: this.servercode, msg: msgerrore } + return msgerrore + }, + + }, + + actions: { + clearAuthData() { + this.my = DefaultUser + // resetArrToken(mystate.my.tokens) + + this.categorySel = 'personal' + + this.servercode = 0 + this.resStatus = 0 + this.isLogged = false + this.x_auth_token = '' + + return true + }, + + setErrorCatch(axerr: Types.AxiosError) { + try { + if (this.servercode !== toolsext.ERR_SERVERFETCH) { + this.servercode = axerr.getCode() + } + // this.msg = axerr.getMsg() + console.log('Err catch: (servercode:', axerr.getCode(), axerr.getMsgError(), ')') + } catch (e) { + console.log('Err catch:', axerr) + } + }, + + async setLangServer() { + const mydata = { + username: this.my.username, + lang: this.lang, + } + + return Api.SendReq('/setlang', 'PATCH', { data: mydata }) + .then((res) => { + if (res) { + return (res.data.code === serv_constants.RIS_CODE_OK) + } return false + }) + .catch((error: any) => false) + }, + + async requestpwd(paramquery: any) { + const usertosend = { + email: paramquery.email, + } + console.log(usertosend) + + this.setServerCode(tools.CALLING) + + return Api.SendReq('/requestnewpwd', 'POST', usertosend) + .then((res) => ({ code: res.data.code, msg: res.data.msg })).catch((error) => { + this.setErrorCatch(error) + return this.getServerCode + }) + }, + + async vreg(paramquery: ILinkReg) { + const usertosend = { + idlink: paramquery.idlink, + } + console.log(usertosend) + + this.setServerCode(tools.CALLING) + + return Api.SendReq('/vreg', 'POST', usertosend) + .then((res) => { + // console.log("RITORNO 2 "); + // mutations.setServerCode(myres); + if (res.data.code === serv_constants.RIS_CODE_EMAIL_VERIFIED) { + console.log('VERIFICATO !!') + localStorage.setItem(toolsext.localStorage.verified_email, String(true)) + } else { + console.log('Risultato di vreg: ', res.data.code) + } + return { code: res.data.code, msg: res.data.msg } + }).catch((error) => { + this.setErrorCatch(error) + return this.getServerCode + }) + }, + + async unsubscribe(paramquery: any) { + return Api.SendReq('/news/unsubscribe', 'POST', paramquery) + .then((res) => { + // console.log("RITORNO 2 "); + // mutations.setServerCode(myres); + if (res.data.code === serv_constants.RIS_UNSUBSCRIBED_OK) { + console.log('DESOTTOSCRITTO ALLA NEWSLETTER !!') + } else { + console.log('Risultato di unsubscribe: ', res.data.code) + } + return { code: res.data.code, msg: res.data.msg } + }).catch((error) => this.getServerCode) + }, + + async importemail(paramquery: any) { + return Api.SendReq('/news/import', 'POST', paramquery) + .then((res) => res).catch((error) => ({ numtot: 0, numadded: 0, numalreadyexisted: 0 })) + }, + + authUser(data: IUserFields) { + this.my = { ...data } + if (!this.my.profile) { + this.my.profile = DefaultProfile + } + }, + + updateLocalStorage(myuser: IUserFields) { + const globalStore = useGlobalStore() + + const now = tools.getDateNow() + + // const expirationDate = new Date(now.getTime() + myres.data.expiresIn * 1000); + const expirationDate = new Date(now.getTime() * 1000) + localStorage.setItem(toolsext.localStorage.lang, this.lang) + localStorage.setItem(toolsext.localStorage.userId, myuser._id) + localStorage.setItem(toolsext.localStorage.username, myuser.username) + localStorage.setItem(toolsext.localStorage.name, myuser.name) + localStorage.setItem(toolsext.localStorage.surname, myuser.surname) + localStorage.setItem(toolsext.localStorage.perm, String(myuser.perm) || '') + if (myuser.profile !== undefined) localStorage.setItem(toolsext.localStorage.img, (myuser.profile.img) ? String(myuser.profile.img) || '' : '') + else localStorage.setItem(toolsext.localStorage.img, '') + localStorage.setItem(toolsext.localStorage.token, this.x_auth_token) + localStorage.setItem(toolsext.localStorage.expirationDate, expirationDate.toString()) + localStorage.setItem(toolsext.localStorage.isLogged, String(true)) + localStorage.setItem(toolsext.localStorage.verified_email, String(myuser.verified_email)) + localStorage.setItem(toolsext.localStorage.teleg_id, String(myuser.profile.teleg_id)) + localStorage.setItem(toolsext.localStorage.made_gift, String(myuser.made_gift)) + localStorage.setItem(toolsext.localStorage.wasAlreadySubOnDb, String(globalStore.wasAlreadySubOnDb)) + }, + + setusersList(usersList: IUserFields[]) { + // console.log('setusersList', usersList) + // @ts-ignore + this.usersList = [...usersList] + }, + + setlang(newstr: string) { + console.log('SETLANG', newstr) + this.lang = newstr + toolsext.setLangAtt(newstr) + localStorage.setItem(toolsext.localStorage.lang, this.lang) + }, + + async signup(authData: ISignupOptions) { + console.log('SIGNUP') + }, + + UpdatePwd(x_auth_token: string) { + this.x_auth_token = x_auth_token + if (!this.my.tokens) { + this.my.tokens = [] + } + this.my.tokens.push({ access: 'auth', token: x_auth_token, data_login: tools.getDateNow() }) + }, + + setServerCode(num: number) { + this.servercode = num + }, + + setResStatus(status: number) { + this.resStatus = status + }, + + setAuth(x_auth_token: string) { + this.x_auth_token = x_auth_token + }, + + resetArrToken(arrtokens: IToken[]) { + if (!arrtokens) { + arrtokens = [] + } + + // Take only the others access (from others Browser) + return arrtokens.filter((token: IToken) => token.access !== 'auth') + }, + + async logout() { + const globalStore = useGlobalStore() + const $router = useRouter() + + console.log('logout') + + localStorage.removeItem(toolsext.localStorage.expirationDate) + localStorage.removeItem(toolsext.localStorage.token) + localStorage.removeItem(toolsext.localStorage.userId) + localStorage.removeItem(toolsext.localStorage.username) + localStorage.removeItem(toolsext.localStorage.name) + localStorage.removeItem(toolsext.localStorage.surname) + localStorage.removeItem(toolsext.localStorage.img) + localStorage.removeItem(toolsext.localStorage.perm) + localStorage.removeItem(toolsext.localStorage.isLogged) + // localStorage.removeItem(rescodes.localStorage.leftDrawerOpen) + localStorage.removeItem(toolsext.localStorage.verified_email) + localStorage.removeItem(toolsext.localStorage.teleg_id) + localStorage.removeItem(toolsext.localStorage.made_gift) + localStorage.removeItem(toolsext.localStorage.categorySel) + localStorage.removeItem(toolsext.localStorage.wasAlreadySubOnDb) + + this.isLogged = false + this.my = { ...DefaultUser } + + await globalStore.clearDataAfterLogout() + + const riscall = await Api.SendReq('/users/me/token', 'DELETE', null) + .then((res) => { + console.log(res) + }).then(() => this.clearAuthData()).catch((error) => { + this.setErrorCatch(error) + return this.getServerCode + }) + + return riscall + + // $router.push('/signin') + }, + + async setGlobal(isLogged: boolean) { + // console.log('setGlobal', isLogged) + + const globalStore = useGlobalStore() + try { + // this.isLogged = true + if (isLogged) { + // console.log('this.isLogged', this.isLogged) + + globalStore.setleftDrawerOpen(localStorage.getItem(toolsext.localStorage.leftDrawerOpen) === 'true') + globalStore.setCategorySel(localStorage.getItem(toolsext.localStorage.categorySel)) + + globalStore.checkUpdates() + } + + const isok = await globalStore.loadAfterLogin() + + this.isLogged = isok && isLogged + + // ++Todo conv if (static_data.functionality.ENABLE_TODOS_LOADING) + // await Todos.dbLoad({ checkPending: true }) + + // if (static_data.functionality.ENABLE_PROJECTS_LOADING) + // await Projects.dbLoad({ checkPending: true, onlyiffirsttime: true }) + + // console.log('add routes') + + globalStore.addDynamicPages() + + globalStore.finishLoading = true + if (tools.isDebug()) console.log('finishLoading', globalStore.finishLoading) + + // document.dispatchEvent(new Event('custom-post-render-event')) + } catch (e) { + console.error('Error', e) + globalStore.finishLoading = true + } + + return true + // console.log('setGlobal: END') + }, + + async autologin_FromLocalStorage() { + try { + const globalStore = useGlobalStore() + + // console.log('*** autologin_FromLocalStorage ***') + // INIT + + let isLogged = false + + this.lang = tools.getItemLS(toolsext.localStorage.lang) + + const token = localStorage.getItem(toolsext.localStorage.token) + if (token) { + const expirationDateStr = localStorage.getItem(toolsext.localStorage.expirationDate) + const expirationDate = new Date(String(expirationDateStr)) + const now = tools.getDateNow() + if (now < expirationDate) { + const _id = String(localStorage.getItem(toolsext.localStorage.userId)) + const username = String(localStorage.getItem(toolsext.localStorage.username)) + const name = String(localStorage.getItem(toolsext.localStorage.name)) + const surname = String(localStorage.getItem(toolsext.localStorage.surname)) + const verified_email = localStorage.getItem(toolsext.localStorage.verified_email) === 'true' + const made_gift = localStorage.getItem(toolsext.localStorage.made_gift) === 'true' + const myperm = localStorage.getItem(toolsext.localStorage.perm) + let perm = 0 + if (myperm) perm = parseInt(myperm, 10) + const img = String(localStorage.getItem(toolsext.localStorage.img)) + let teleg_id = 0 + const telegid = localStorage.getItem(toolsext.localStorage.teleg_id) + if (telegid) teleg_id = parseInt(telegid, 10) + + globalStore.wasAlreadySubOnDb = localStorage.getItem(toolsext.localStorage.wasAlreadySubOnDb) === 'true' + + console.log('************* autologin _id', _id) + + this.setAuth(token) + + this.authUser({ + _id, + username, + name, + surname, + verified_email, + made_gift, + perm, + profile: { img, teleg_id }, + }) + + isLogged = true + } + } + + return await this.setGlobal(isLogged) + + // console.log('autologin _id STATE ', this._id) + + // return true + } catch (e) { + console.error('ERR autologin ', e.message) + return false + } + }, + + }, +}) diff --git a/src/store/globalStore.ts b/src/store/globalStore.ts new file mode 100644 index 00000000..df9e6f56 --- /dev/null +++ b/src/store/globalStore.ts @@ -0,0 +1,681 @@ +import { defineStore } from 'pinia' +import { + ICfgServer, IColGridTable, IConfig, IDataPass, IGlobalState, IListRoutes, ISettings, StateConnection, +} from '@model' +import { static_data } from '@src/db/static_data' +import * as Types from '@src/store/Api/ApiTypes' +import { useUserStore } from '@store/UserStore' +import { serv_constants } from '@store/Modules/serv_constants' +import * as ApiTables from '@src/store/Modules/ApiTables' +import globalroutines from '@src/boot/globalroutines' +import { useRouter } from 'vue-router' +import { cfgrouter } from '@src/router/route-config' +import Api from './Api' +import { toolsext } from '@store/Modules/toolsext' +import { costanti } from '@costanti' +import { fieldsTable } from '@store/Modules/fieldsTable' +import { tools } from '@store/Modules/tools' +import { shared_consts } from '@src/common/shared_vuejs' + +const stateConnDefault = 'online' + +export const useGlobalStore = defineStore('GlobalStore', { + // @ts-ignore + state: (): IGlobalState => ({ + finishLoading: false, + conta: 0, + wasAlreadySubscribed: false, + wasAlreadySubOnDb: false, + isLoginPage: false, + layoutNeeded: true, + mobileMode: false, + menuCollapse: true, + leftDrawerOpen: true, + rightDrawerOpen: false, + rightCartOpen: false, + stateConnection: stateConnDefault, + networkDataReceived: false, + clickcmd: '', + cfgServer: [], + testp1: { contatore: 0, mioarray: [] }, + category: 'personal', + posts: [], + menulinks: {}, + listatodo: [ + { nametranslate: 'personal', description: 'personal' }, + { nametranslate: 'work', description: 'work' }, + { nametranslate: 'shopping', description: 'shopping' }, + ], + connData: { + uploading_server: 0, + uploading_indexeddb: 0, + downloading_server: 0, + downloading_indexeddb: 0, + }, + arrConfig: [], + lastaction: { + table: '', + type: 0, + _id: 0, + }, + serv_settings: [], + templemail: [], + opzemail: [], + settings: [], + disciplines: [], + paymenttypes: [], + autoplaydisc: 8000, + newstosent: [], + gallery: [], + mailinglist: [], + mypage: [], + calzoom: [], + producers: [], + groups: [], + resps: [], + workers: [], + storehouses: [], + departments: [], + sharewithus: [], + TIMER: null, + TIMEOUT: null, + CUT: null, + TIMER_STATE: 0, + URL_RITORNA: '', + URL_RESTORE: '', + }), + + getters: { + + isNewVersionAvailable(state: IGlobalState) { + // console.log('cfgServer', cfgServer) + const serversrec = state.cfgServer.find((x) => (x.chiave === toolsext.SERVKEY_VERS) && (x.idapp === process.env.APP_ID)) + // console.log('Record ', serversrec) + if (serversrec) { + console.log('Vers Server ', serversrec.valore, 'Vers locale:', process.env.APP_VERSION) + return serversrec.valore !== process.env.APP_VERSION + } + return false + }, + + isMyLang: (state: IGlobalState) => (rec: any) => { + if (!rec.lang) return true + + return (rec.lang === toolsext.getLocale(false) || toolsext.getLocale() === '') + }, + + getPage: (state: IGlobalState) => (path: string) => state.mypage.find((page) => (`/${page.path}`) === path), + + getmenu: (state: IGlobalState): any => { + // console.log('getmenu', cfgrouter.getmenu()) + /* + const mystate = state + + mystate.menulinks = { + Dashboard: { + routes: cfgrouter.getmenu(), + show: true, + }, + } + */ + + // return mystate.menulinks + cfgrouter.getmenu() + }, + + getListByTable: (state: IGlobalState) => (table: string): any => { + /* if (table === costanti.TABEVENTS) + return CalendarStore.eventlist + else if (table === 'operators') + return CalendarStore.operators + else if (table === 'internalpages') + return CalendarStore.internalpages + else if (table === 'wheres') + return CalendarStore.wheres + else if (table === 'contribtype') + return CalendarStore.contribtype */ + + let ris = null + + if (table === 'disciplines') ris = state.disciplines + else if (table === toolsext.TABNEWSLETTER) ris = state.newstosent + else if (table === toolsext.TABGALLERY) ris = state.gallery + else if (table === toolsext.TABTEMPLEMAIL) ris = state.templemail + else if (table === toolsext.TABOPZEMAIL) ris = state.opzemail + else if (table === toolsext.TABMAILINGLIST) ris = state.mailinglist + else if (table === toolsext.TABMYPAGE) ris = state.mypage + else if (table === toolsext.TABCALZOOM) ris = state.calzoom + else if (table === 'producers') ris = state.producers + else if (table === 'storehouses') ris = state.storehouses + else if (table === 'groups') ris = state.groups + else if (table === 'resps') ris = state.resps + else if (table === 'workers') ris = state.workers + else if (table === 'departments') ris = state.departments + else if (table === 'sharewithus') ris = state.sharewithus + else if (table === 'paymenttypes') ris = state.paymenttypes + /* else if (table === 'bookings') + return CalendarStore.bookedevent + else if (table === 'users') + return userStore.usersList + else if (table === 'sendmsgs') + return MessageStore.last_msgs + else if (table === 'settings') + return userStore.settings */ + else return ris + + return ris || null + }, + + getrecSettingsByKey: (state: IGlobalState) => (key: any, serv: any): ISettings | undefined => { + if (serv) return state.serv_settings.find((rec) => rec.key === key) + return state.settings.find((rec) => rec.key === key) + }, + + getCmdClick: (state: IGlobalState): string => (state.clickcmd ? state.clickcmd : ''), + + getValueSettingsByKey: (state: IGlobalState) => (key: any, serv: any): any | undefined => { + // @ts-ignore + const myrec = getrecSettingsByKey(key, serv) + + if (myrec) { + if ((myrec.type === costanti.FieldType.date) || (myrec.type === costanti.FieldType.onlydate)) return myrec.value_date + if ((myrec.type === costanti.FieldType.number) || (myrec.type === costanti.FieldType.hours)) return myrec.value_num + if (myrec.type === costanti.FieldType.boolean) return myrec.value_bool + return myrec.value_str + } + return '' + }, + + // @ts-ignore + setValueSettingsByKey: (state: IGlobalState) => ({ key, value, serv }): any => { + // Update the Server + + // Update in Memory + let myrec = null + if (serv) myrec = state.serv_settings.find((rec: any) => rec.key === key) + else myrec = state.settings.find((rec: any) => rec.key === key) + + if (myrec) { + if ((myrec.type === costanti.FieldType.date) || (myrec.type === costanti.FieldType.onlydate)) myrec.value_date = value + else if ((myrec.type === costanti.FieldType.number) || (myrec.type === costanti.FieldType.hours)) myrec.value_num = value + else if (myrec.type === costanti.FieldType.boolean) myrec.value_bool = value + else myrec.value_str = value + + console.log('setValueSettingsByKey value', value, 'myrec', myrec) + } + }, + }, + + actions: { + changeCmdClick(value: string) { + console.log('changeCmdClick', value) + this.clickcmd = value + }, + + isOnline(): boolean { + return this.stateConnection === 'online' + }, + + async addDynamicPages() { + const arrpagesroute: IListRoutes[] = [] + + for (const page of this.mypage) { + if (page.active) { + // console.log('page', page.lang) + if (this.isMyLang(page)) { + // console.log('page', page.lang, 'OK') + arrpagesroute.push({ + active: true, + order: page.order ? page.order : 1000, + lang: page.lang, + path: `/${page.path}`, + name: '', + text: page.title, + materialIcon: page.icon, + component: () => import('@src/root/mypage/mypage.vue'), + inmenu: page.inmenu, + onlySocioResidente: page.only_residenti, + onlyConsiglio: page.only_consiglio, + color: page.color, + infooter: page.infooter, + onlyif_logged: page.onlyif_logged, + level_child: page.l_child, + level_parent: page.l_par, + submenu: page.submenu, + }) + } + } + } + + const last = { + active: true, + order: 10000, + path: '*', + materialIcon: 'fas fa-calendar-plus', + name: 'otherpages.error404def', + component: () => import('@src/root/My404page/My404page.vue'), + inmenu: false, + infooter: false, + } + + const sito_offline = { + active: true, + order: 20, + path: '/sito_offline', + materialIcon: 'home', + name: 'otherpages.sito_offline', + component: () => import('@src/rootgen/sito_offline/sito_offline.vue'), + inmenu: true, + infooter: true, + } + + if (!toolsext.sito_online(false)) { + static_data.routes = [sito_offline, last] + } else { + static_data.routes = [...static_data.baseroutes, ...arrpagesroute, last] + } + + // Sort array + static_data.routes = static_data.routes.sort((a, myb) => a.order - myb.order) + + /* + if (tools.sito_online(false)) { + router.addRoutes([...arrpagesroute, last]) + } else { + router.addRoutes([sito_offline, last]) + router.replace('/sito_offline') + } + + */ + }, + + async loadPage(path: string) { + const userStore = useUserStore() + + path = path.substring(1) + const mypage = this.getPage(`/${path}`) + + // Controlla se l'ho già caricato + if (!!mypage && !!mypage.content) { + return mypage + } + + console.log('loadPage', path) + + return Api.SendReq('/getpage', 'POST', { path }) + .then((res) => { + // console.table(res) + if (res) { + const index = this.mypage.findIndex((rec) => rec.path === path) + if (index >= 0) { + this.mypage[index] = res.data.mypage + } + return res.data.mypage + } + return null + }) + .catch((error) => { + console.log('error loadTable', error) + userStore.setErrorCatch(error) + return null + }) + }, + async saveTable(mydata: object) { + // console.log('saveTable', mydata) + const userStore = useUserStore() + + return Api.SendReq('/settable', 'POST', mydata) + .then((res) => res.data) + .catch((error) => { + console.log('error saveTable', error) + userStore.setErrorCatch(error) + return null + }) + }, + + async saveFieldValue(mydata: IDataPass) { + // const userStore = useUserStore() + return Api.SendReq('/chval', 'PATCH', { data: mydata }) + .then((res) => { + if (res) { + this.UpdateValuesInMemory(mydata) + return (res.data.code === serv_constants.RIS_CODE_OK) + } + return false + }) + .catch((error) => false) + }, + + setPaoArray_Delete(state: IGlobalState) { + state.testp1.mioarray.pop() + }, + + setConta(num: number) { + this.conta = num + }, + + setleftDrawerOpen(bool: boolean) { + this.leftDrawerOpen = bool + localStorage.setItem(toolsext.localStorage.leftDrawerOpen, bool.toString()) + }, + + setCategorySel(cat: string | null) { + this.category = cat || '' + }, + + setStateConnection(stateconn: StateConnection) { + if (this.stateConnection !== stateconn) { + console.log('INTERNET ', stateconn) + this.stateConnection = stateconn + } + }, + + saveConfig(data: IConfig) { + let dataout + // this.$set(dataout, data.value, {'value': 'default value'}) + // @ts-ignore + return globalroutines(null, 'write', 'config', { _id: data._id, value: data.value }) + }, + + UpdateValuesInMemory(mydata: IDataPass): void { + const { id } = mydata + const { table } = mydata + + try { + const mylist = this.getListByTable(table) + const mykey = fieldsTable.getKeyByTable(table) + + if (mylist) { + const myrec = mylist.find((event: any) => event[mykey] === id) + // console.log('myrec', myrec) + if (myrec) { + // console.log('key', value, myrec[key]) + for (const [key, value] of Object.entries(mydata.fieldsvalue)) { + myrec[key] = value + } + } + } + } catch (e) { + console.error(e) + } + }, + + async deleteSubscriptionToServer() { + console.log('DeleteSubscriptionToServer: ') + + return Api.SendReq('/subscribe/del', 'DELETE', null) + .then((res) => { + + }) + }, + + async clearDataAfterLogout() { + console.log('clearDataAfterLogout') + + // Clear all data from the IndexedDB + // for (const table of ApiTables.allTables()) { + // ++Todo conv: await globalroutines(null, 'clearalldata', table, null) + // } + + if (static_data.functionality.PWA) { + if ('serviceWorker' in navigator) { + // REMOVE ALL SUBSCRIPTION + console.log('REMOVE ALL SUBSCRIPTION...') + await navigator.serviceWorker.ready.then((reg) => { + console.log('... Ready') + reg.pushManager.getSubscription().then((subscription) => { + console.log(' Found Subscription...') + if (subscription) { + subscription.unsubscribe().then((successful) => { + // You've successfully unsubscribed + console.log('You\'ve successfully unsubscribed') + }).catch((e) => { + // Unsubscription failed + }) + } + }) + }) + } + } + + await this.deleteSubscriptionToServer() + }, + + async clearDataAfterLoginOnlyIfActiveConnection() { + const prova = 1 + return prova + }, + + async loadAfterLogin() { + // console.log('loadAfterLogin') + this.clearDataAfterLoginOnlyIfActiveConnection() + + let isok = false + + const $router = useRouter() + + if (!await this.loadSite()) { + $router.push('/signin') + } else { + isok = true + } + + // ++Todo conv: this.arrConfig = await globalroutines(null, 'readall', 'config', null) + + return isok + }, + + async saveCfgServerKey(dataval: ICfgServer) { + console.log('saveCfgServerKey dataval', dataval) + + const ris = await Api.SendReq('/admin/updateval', 'POST', { pairval: dataval }) + .then((res) => { + + }) + }, + + async checkUpdates() { + console.log('checkUpdates') + + const userStore = useUserStore() + + // if (userStore.my._id === '') + // return false // Login not made + + this.networkDataReceived = false + + const ris = await Api.SendReq('/checkupdates', 'GET', null) + .then((res) => { + this.networkDataReceived = true + + // console.log('******* checkUpdates RES :', res.data.cfgServer) + if (res.data.cfgServer) { + this.cfgServer = [...res.data.cfgServer] + // console.log('res.data.cfgServer', res.data.cfgServer) + } + + // console.log('res.data.userslist', res.data.usersList) + if (res.data.usersList) { + userStore.setusersList(res.data.usersList) + } + + if (res.data.last_msgs) { + // ++Todo conv: MessageStore.last_msgs = [...res.data.last_msgs] + } + + // console.log('MessageStore.last_msgs', MessageStore.last_msgs) + + // console.log('********** res', 'todos', todos, 'checkPending', checkPending) + // After Login will store into the indexedDb... + + return res + }) + .catch((error) => { + console.log('error checkUpdates', error) + userStore.setErrorCatch(error) + return error + }) + }, + + async loadSite() { + const userStore = useUserStore() + // console.log('CalendarStore: loadAfterLogin') + // Load local data + const showall = userStore.isAdmin || userStore.isManager ? '1' : '0' + + const myuserid = (userStore.my._id) ? userStore.my._id : '0' + + // CalendarStore.editable = false + + return Api.SendReq(`/loadsite/${myuserid}/${process.env.APP_ID}/${process.env.APP_VERSION}`, 'GET', null) + .then((res) => { + // console.log('____________________________ res', res) + if (res.status === 200) { + /* CalendarStore.bookedevent = (res.data.bookedevent) ? res.data.bookedevent : [] + CalendarStore.eventlist = (res.data.eventlist) ? res.data.eventlist : [] + CalendarStore.operators = (res.data.operators) ? res.data.operators : [] + CalendarStore.internalpages = (res.data.internalpages) ? res.data.internalpages : [] + CalendarStore.wheres = (res.data.wheres) ? res.data.wheres : [] + CalendarStore.contribtype = (res.data.contribtype) ? res.data.contribtype : [] + + */ + this.settings = (res.data.settings) ? [...res.data.settings] : [] + this.disciplines = (res.data.disciplines) ? [...res.data.disciplines] : [] + this.paymenttypes = (res.data.paymenttypes) ? [...res.data.paymenttypes] : [] + this.gallery = (res.data.gallery) ? [...res.data.gallery] : [] + this.calzoom = (res.data.calzoom) ? [...res.data.calzoom] : [] + this.producers = (res.data.producers) ? [...res.data.producers] : [] + this.storehouses = (res.data.storehouses) ? [...res.data.storehouses] : [] + this.groups = (res.data.groups) ? [...res.data.groups] : [] + this.resps = (res.data.resps) ? [...res.data.resps] : [] + this.workers = (res.data.workers) ? [...res.data.workers] : [] + // @ts-ignore + this.departments = (res.data.departments) ? [...res.data.departments] : [] + + // console.log('res.data.cart', res.data.cart) + + /* if (res.data.cart) + Products.cart = (res.data.cart) ? { ...res.data.cart } : {} + else + Products.cart = { items: [], totalPrice: 0, totalQty: 0, userId: '' } + + Products.orders = (res.data.orders) ? [...res.data.orders] : [] + */ + + if (showall) { + this.newstosent = (res.data.newstosent) ? [...res.data.newstosent] : [] + this.mailinglist = (res.data.mailinglist) ? [...res.data.mailinglist] : [] + this.mypage = (res.data.mypage) ? [...res.data.mypage] : [] + } + + // console.log('res.data.myuser', res.data.myuser) + if (res.data.myuser) { + userStore.authUser(res.data.myuser) + + userStore.updateLocalStorage(res.data.myuser) + } else { + // User not exist !! + + } + + const islogged = localStorage.getItem(toolsext.localStorage.username) + console.log('islogged', islogged) + + // CalendarStore.editable = userStore.isAdmin || userStore.isManager || userStore.isTutor + if (res.data.myuser === null) { + if (islogged) { + // Fai Logout + console.log('Fai Logout', 'islogged', islogged) + userStore.logout() + this.rightDrawerOpen = true + return false + } + } + } + + return true + }).then((res) => res).catch((error) => { + console.log('error dbLoad', error) + // userStore.setErrorCatch(error) + return new Types.AxiosError(serv_constants.RIS_CODE_ERR, null, toolsext.ERR_GENERICO, error) + }) + }, + + getArrStrByValueBinary(mythis: any, col: IColGridTable, val: any) { + const arr = this.getArrByValueBinary(mythis, col, val) + if (arr.length > 0) return arr.join(' - ') + return '[---]' + }, + + getArrByValueBinary(mythis: any, col: IColGridTable, val: any) { + if (col.jointable) { + const mylist = this.getTableJoinByName(col.jointable) + const key = fieldsTable.getKeyByTable(col.jointable) + const myres: any = [] + mylist.forEach((myrec: any) => { + if (tools.isBitActive(val, myrec[key])) myres.push(mythis.t(myrec.label)) + }) + + return myres + } + return [] + }, + + getValueByTable(col: IColGridTable, val: any) { + if (col.jointable) { + const mylist = this.getTableJoinByName(col.jointable) + const key = fieldsTable.getKeyByTable(col.jointable) + const collab = fieldsTable.getLabelByTable(col.jointable) + + // console.table(mylist) + let risultato = '' + + if (tools.isObject(collab)) { + risultato = mylist.filter((myrec: any) => myrec.username === val).map(collab) + } else { + const myris = mylist.find((myrec: any) => myrec[key] === val) + risultato = myris[collab] + } + + if (key === 'username') { + console.log('key=', key, 'collab', collab, 'val', val) + console.log('myris', risultato) + } + + return risultato + } + return '' + }, + + getMultiValueByTable(col: IColGridTable, arrval: any) { + // console.log('getMultiValueByTable') + if (col.jointable) { + const mylist = this.getTableJoinByName(col.jointable) + const key = fieldsTable.getKeyByTable(col.jointable) + const collab = fieldsTable.getLabelByTable(col.jointable) + + // console.table(mylist) + // console.log('key=', key, 'collab', collab, 'val', collab) + + const myris = mylist.filter((myrec: any) => arrval.includes(myrec[key])) + // console.log('myris', myris) + if (myris) { + console.log('collab', collab) + if (tools.isObject(collab)) return myris.map(collab) + return myris.map((rec: any) => rec[collab]) + } + return '' + } + return '' + }, + + getTableJoinByName(table: string) { + if (table === 'permissions') return [shared_consts.Permissions.Admin, shared_consts.Permissions.Manager, shared_consts.Permissions.Teacher, shared_consts.Permissions.Tutor, shared_consts.Permissions.Editor, shared_consts.Permissions.Zoomeri, shared_consts.Permissions.Department] + if (table === 'accepted') return [shared_consts.Accepted.CHECK_READ_GUIDELINES, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI] + if (table === 'fieldstype') return costanti.FieldTypeArr + if (table === 'metodo_pagamento') return tools.SelectMetodiPagamento + return this.getListByTable(table) + }, + + }, +}) diff --git a/src/store/index.ts b/src/store/index.ts new file mode 100755 index 00000000..ed7db632 --- /dev/null +++ b/src/store/index.ts @@ -0,0 +1,3 @@ +import { createPinia } from 'pinia'; + +export default createPinia(); diff --git a/src/store/store-flag.d.ts b/src/store/store-flag.d.ts new file mode 100755 index 00000000..af80dbec --- /dev/null +++ b/src/store/store-flag.d.ts @@ -0,0 +1,9 @@ +// THIS FEATURE-FLAG FILE IS AUTOGENERATED, +// REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING +import 'quasar/dist/types/feature-flag'; + +declare module 'quasar/dist/types/feature-flag' { + interface QuasarFeatureFlags { + store: true; + } +} diff --git a/src/store/testStore.ts b/src/store/testStore.ts new file mode 100644 index 00000000..45d526f9 --- /dev/null +++ b/src/store/testStore.ts @@ -0,0 +1,36 @@ +import { defineStore } from 'pinia' +import { tools } from '@store/Modules/tools' +import { toolsext } from '@store/Modules/toolsext' + +export interface ITest { + finishLoading: boolean +} + +export const useTestStore = defineStore({ + id: 'TestStore', + state: (): ITest => ({ + finishLoading: false, + }), + + getters: { + + isMyLang: (state: ITest) => (rec: { lang: string }): boolean => { + if (!rec.lang) return true + + return (rec.lang === toolsext.getLocale(false) || toolsext.getLocale() === '') + }, + + prova2(): boolean { + return this.finishLoading + }, + }, + + actions: { + async testProva() { + let arrpagesroute = null + + arrpagesroute = this.isMyLang({ lang: 'test' }) + }, + + }, +}) diff --git a/src/typings/ProgressBar.d.ts b/src/typings/ProgressBar.d.ts new file mode 100755 index 00000000..cc410da0 --- /dev/null +++ b/src/typings/ProgressBar.d.ts @@ -0,0 +1,9 @@ +export interface IProgressState { + percent: number, + show: boolean, + canSuccess: boolean, + duration: number, + height: string, + color: string, + failedColor: string, +} diff --git a/src/typings/index.ts b/src/typings/index.ts new file mode 100755 index 00000000..fc667d4f --- /dev/null +++ b/src/typings/index.ts @@ -0,0 +1,26 @@ +// export * from './LoginState'; + +// export * from './GlobalState.d' + +export * from './ProgressBar.d' + +export interface IResponse { + success?: boolean, + message?: string, + type: 'error' | 'warning' + data: T, +} + +export interface ITab { + title: string, + icon?: any, + condition?: boolean, + childs?: boolean, + badge?: number, + to: { + name: string, + params?: { + [x: string]: any + } + } +} diff --git a/src/typings/libs/ambient.d.ts b/src/typings/libs/ambient.d.ts new file mode 100755 index 00000000..1b94f641 --- /dev/null +++ b/src/typings/libs/ambient.d.ts @@ -0,0 +1 @@ +declare module 'vuedraggable' diff --git a/src/typings/libs/axios.d.ts b/src/typings/libs/axios.d.ts new file mode 100755 index 00000000..a9404d43 --- /dev/null +++ b/src/typings/libs/axios.d.ts @@ -0,0 +1,7 @@ +import { axios } from 'axios' + +declare module 'vue/types/vue' { + interface Vue { + $axios: axios + } +} diff --git a/src/typings/libs/dragula.d.ts b/src/typings/libs/dragula.d.ts new file mode 100755 index 00000000..f7dab5ef --- /dev/null +++ b/src/typings/libs/dragula.d.ts @@ -0,0 +1,7 @@ +import { dragula } from 'vue2-dragula' + +declare module 'vue/types/vue' { + interface Vue { + $dragula: dragula + } +} diff --git a/src/typings/libs/errorHandler.d.ts.off b/src/typings/libs/errorHandler.d.ts.off new file mode 100755 index 00000000..b63a644e --- /dev/null +++ b/src/typings/libs/errorHandler.d.ts.off @@ -0,0 +1,7 @@ +import { errorHandler } from '../../error-handler' + +declare module 'vue/types/vue' { + interface Vue { + $errorHandler: errorHandler + } +} diff --git a/src/typings/libs/globalroutines.d.ts.off b/src/typings/libs/globalroutines.d.ts.off new file mode 100755 index 00000000..321fd53d --- /dev/null +++ b/src/typings/libs/globalroutines.d.ts.off @@ -0,0 +1,7 @@ +import * as globalroutines from '../../globalroutines' + +declare module 'vue/types/vue' { + interface Vue { + $globalroutines: globalroutines + } +} diff --git a/src/typings/libs/google.d.ts.off b/src/typings/libs/google.d.ts.off new file mode 100755 index 00000000..ac92fc8d --- /dev/null +++ b/src/typings/libs/google.d.ts.off @@ -0,0 +1,7 @@ +import { google } from '../../googlemap' + +declare module 'vue/types/vue' { + interface Vue { + $google: google + } +} diff --git a/src/typings/libs/i18n.d.ts.off b/src/typings/libs/i18n.d.ts.off new file mode 100755 index 00000000..d9e97425 --- /dev/null +++ b/src/typings/libs/i18n.d.ts.off @@ -0,0 +1,7 @@ +import { VueI18n } from 'vue-i18n' + +declare module 'vue/types/vue' { + interface Vue { + $i18n: VueI18n + } +} diff --git a/src/typings/libs/myconfig.d.ts.off b/src/typings/libs/myconfig.d.ts.off new file mode 100755 index 00000000..6cdd4fef --- /dev/null +++ b/src/typings/libs/myconfig.d.ts.off @@ -0,0 +1,8 @@ +import { myconfig } from '../../myconfig' + +declare module 'vue/types/vue' { + interface Vue { + $myconfig: myconfig + } +} + diff --git a/src/typings/libs/track.d.ts.off b/src/typings/libs/track.d.ts.off new file mode 100755 index 00000000..5c3449e3 --- /dev/null +++ b/src/typings/libs/track.d.ts.off @@ -0,0 +1,8 @@ +import { track } from '../../track' + +declare module 'vue/types/vue' { + interface Vue { + $track: track + } +} + diff --git a/src/typings/libs/vue-idb.d.ts.off b/src/typings/libs/vue-idb.d.ts.off new file mode 100755 index 00000000..c6ffec75 --- /dev/null +++ b/src/typings/libs/vue-idb.d.ts.off @@ -0,0 +1,7 @@ +import { VueIdb } from 'vue-idb' + +declare module 'vue/types/vue' { + interface Vue { + $db: VueIdb + } +} diff --git a/src/typings/libs/vue.typescript.d.ts.off b/src/typings/libs/vue.typescript.d.ts.off new file mode 100755 index 00000000..2dfc8b2c --- /dev/null +++ b/src/typings/libs/vue.typescript.d.ts.off @@ -0,0 +1,5 @@ + +declare module '*.vue' { + import { Vue, Options } from "vue-class-component" + export default Vue +} diff --git a/src/typings/libs/vuelidate.d.ts.off b/src/typings/libs/vuelidate.d.ts.off new file mode 100755 index 00000000..1ce61340 --- /dev/null +++ b/src/typings/libs/vuelidate.d.ts.off @@ -0,0 +1,250 @@ +declare module 'vuelidate' { + + import _Vue = require('vue') + + /** + * @module augmentation to ComponentOptions defined by Vue.js + */ + module 'vue/types/options' { + + interface ComponentOptions { + validations?: ValidationRuleset<{}> + } + } + + module 'vue/types/vue' { + interface Vue { + $v: Vuelidate + } + } + + /** + * Represents an instance of validator class at runtime + */ + export interface IValidator { + /** + * Indicates the state of validation for given model. becomes true when any of it's child validators specified in options returns a falsy value. In case of validation groups, all grouped validators are considered. + */ + readonly $invalid: boolean + /** + * A flag representing if the field under validation was touched by the user at least once. Usually it is used to decide if the message is supposed to be displayed to the end user. Flag is managed manually. You have to use $touch and $reset methods to manipulate it. The $dirty flag is considered true if given model was $touched or all of it's children are $dirty. + */ + $dirty: boolean + /** + * Convenience flag to easily decide if a message should be displayed. It is a shorthand to $invalid && $dirty. + */ + readonly $error: boolean + /** + * Indicates if any child async validator is currently pending. Always false if all validators are synchronous. + */ + $pending: boolean + + $params: any + + /** + * Sets the $dirty flag of the model and all its children to true recursively. + */ + $touch(): void + /** + * Sets the $dirty flag of the model and all its children to false recursively. + */ + $reset(): void + $flattenParams(): void + } + + /** + * Builtin validators + */ + interface IDefaultValidators { + /** + * Accepts only alphabet characters. + */ + alpha?: boolean + /** + * Accepts only alphanumerics. + */ + alphaNum?: boolean + /** + * Checks if a number is in specified bounds. Min and max are both inclusive. + */ + between?: boolean + /** + * Accepts valid email addresses. Keep in mind you still have to carefully verify it on your server, as it is impossible to tell if the address is real without sending verification email. + */ + email?: boolean + /** + * Requires the input to have a maximum specified length, inclusive. Works with arrays. + */ + maxLength?: boolean + /** + * Requires the input to have a minimum specified length, inclusive. Works with arrays. + */ + minLength?: boolean + /** + * Requires non-empty data. Checks for empty arrays and strings containing only whitespaces. + */ + required?: boolean + /** + * Checks for equality with a given property. Locator might be either a sibling property nametranslate or a function, that will get your component as this and nested model which sibling properties under second parameter. + */ + sameAs?: boolean + /** + * Passes when at least one of provided validators passes. + */ + or?: boolean + /** + * Passes when all of provided validators passes. + */ + and?: boolean + } + + type EachByKey = { + [K in keyof T]: Validator + } + + /** + * Holds all validation models of collection validator. Always preserves the keys of original model, so it can be safely referenced in the v-for loop iterating over your data using the same index. + */ + type Each = + & { [key: number]: EachByKey } + & { $trackBy: string | Function } + & IValidator + + global { + interface Array { + /** + * Holds all validation models of collection validator. Always preserves the keys of original model, so it can be safely referenced in the v-for loop iterating over your data using the same index. + */ + $each: Each & Vuelidate + } + } + + /** + * Represents an instance of validator class at runtime + */ + type Validator = IValidator & IDefaultValidators & Each + + interface IPredicate { + (value: any, parentVm?: IValidationRule): boolean | Promise + } + + interface IPredicateGenerator { + (...args: any[]): IPredicate + } + + interface IValidationRule { + [key: string]: ValidationPredicate | IValidationRule | IValidationRule[] + } + + export type ValidationPredicate = IPredicateGenerator | IPredicate + + /** + * Represents mixin data exposed by Vuelidate instance + */ + export type Vuelidate = { + [K in keyof T]?: Vuelidate & Validator; + } + + /** + * Represents component options used by Vuelidate + */ + export type ValidationRuleset = { + [K in keyof T]?: ValidationPredicate | IValidationRule | IValidationRule[] | string[]; + } + + /** + * Represents Vuelidate mixin data extending a Vue component instance. Have your Vue component options implement this + * @param {Type} T - The interface or type being used to store model data requiring validation + * + * @example + * export class Foo implements IVuelidate { + * data() { + * return { bar: { length: 0 } }; + * } + * validations: { + * bar: { + * length: { + * between: between(1,5) + * } + * } + * } + * $v: Vuelidate; + * } + */ + export interface IVuelidate { + $v: Vuelidate + } + + /** + * Mixin object for supplying directly to components + */ + export const validationMixin: { + beforeCreate(): void; + } + + /** + * Vuelidate function that creates a validator directly, given a model, and a set of rules + */ + export const validateModel: { + (model: T, validations: ValidationRuleset): IVuelidate; + } + + /** + * Vue plugin object + */ + export function Validation(Vue: typeof _Vue): void + + export default Validation +} + + +declare module 'vuelidate/lib/validators' { + + import { ValidationPredicate } from 'vuelidate' + + /** + * Accepts only alphabet characters. + */ + function alpha(value: any): boolean + /** + * Accepts only alphanumerics. + */ + function alphaNum(value: any): boolean + /** + * Checks if a number is in specified bounds. Min and max are both inclusive. + */ + function between(min: number, max: number): (value: any) => boolean + /** + * Accepts valid email addresses. Keep in mind you still have to carefully verify it on your server, as it is impossible to tell if the address is real without sending verification email. + */ + function email(value: any): boolean + /** + * Requires the input to have a maximum specified length, inclusive. Works with arrays. + */ + function maxLength(max: number): (value: any) => boolean + /** + * Requires the input to have a minimum specified length, inclusive. Works with arrays. + */ + function minLength(min: number): (value: any) => boolean + /** + * Requires non-empty data. Checks for empty arrays and strings containing only whitespaces. + */ + function required(value: any): boolean + /** + * Checks for equality with a given property. Locator might be either a sibling property nametranslate or a function, that will get your component as this and nested model which sibling properties under second parameter. + */ + function sameAs(locator: any): (value: any, vm?: any) => boolean + /** + * Passes when at least one of provided validators passes. + */ + function or(...validators: ValidationPredicate[]): () => boolean + /** + * Passes when all of provided validators passes. + */ + function and(...validators: ValidationPredicate[]): () => boolean + + function numeric() + function minValue(value: number) + function maxValue(value: number) + +} diff --git a/src/typings/quasar/index.d.ts b/src/typings/quasar/index.d.ts new file mode 100755 index 00000000..fafc82d4 --- /dev/null +++ b/src/typings/quasar/index.d.ts @@ -0,0 +1,37 @@ +declare module 'quasar' +/* +declare module 'quasar' { + // import { PluginObject } from 'vue' + + export const Cookies: any + export const QItem: any + + export const Quasar: PluginObject<{}> + export default Quasar +} + +declare module 'quasar/types' { + import Vue, { ComponentOptions } from 'vue' + import VueRouter from 'vue-router' + import { Store } from 'vuex' + + export interface QuasarSsrContext { + req: { + headers: Object + }, + res: { + setHeader(name: string, value: string): void + } + } + + export interface QuasarPluginParams { + app: ComponentOptions, + // Vue: VueConstructor, + store: Store<{}> + // router: VueRouter, + ssrContext: QuasarSsrContext | null | undefined + } + + export type QuasarPlugin = (params: QuasarPluginParams) => void +} +*/ diff --git a/src/utils/auth.ts b/src/utils/auth.ts new file mode 100755 index 00000000..8d0e6d68 --- /dev/null +++ b/src/utils/auth.ts @@ -0,0 +1,15 @@ +import Cookies from 'js-cookie' + +const TokenKey = 'Admin-Token' + +export function getCookie() { + return Cookies.get(TokenKey) +} + +export function setCookie(token: string) { + return Cookies.set(TokenKey, token) +} + +export function removeCookie() { + return Cookies.remove(TokenKey) +} diff --git a/src/utils/config.ts b/src/utils/config.ts new file mode 100755 index 00000000..0f599c99 --- /dev/null +++ b/src/utils/config.ts @@ -0,0 +1,21 @@ +import dotenv from 'dotenv' + +dotenv.config() +let path +switch (process.env.NODE_ENV) { + case 'test': + path = `${__dirname}/../../.env.test` + break + case 'development': + path = `${__dirname}/../../.env.development` + break + default: + path = `${__dirname}/../../.env.production` +} +dotenv.config({ path }) + +console.log('path', path) +console.log('process.env.APP_ID', process.env.APP_ID) + +export const { APP_ID } = process.env +export const { LOG_LEVEL } = process.env diff --git a/src/utils/methods.ts b/src/utils/methods.ts new file mode 100755 index 00000000..99d01855 --- /dev/null +++ b/src/utils/methods.ts @@ -0,0 +1,11 @@ +export function timeout(duration: number): Promise<{}> { + return new Promise((resolve, reject) => { + setTimeout(() => { // @ts-ignore + resolve() + }, duration); + }) +} + +export function randomNumber(min: number, max: number) : number { + return Math.floor((Math.random() * max) + min); +} diff --git a/src/utils/validators.ts b/src/utils/validators.ts new file mode 100755 index 00000000..3545bcf9 --- /dev/null +++ b/src/utils/validators.ts @@ -0,0 +1,8 @@ +export namespace Validators { + const Regs = { + link: /(https?|ftp):\/\/(-\.)?([^\s/?#-]+\.?)+(\/[^\s]*)?@iS/, + } + + // @ts-ignore + export const LinkValidator = (value, component) => Regs.link.test(value) +} diff --git a/src/webpack.config.js.off b/src/webpack.config.js.off new file mode 100755 index 00000000..4e1a594a --- /dev/null +++ b/src/webpack.config.js.off @@ -0,0 +1 @@ +module.exports = require("./config/webpack.config.dev"); \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100755 index 00000000..05309215 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,41 @@ +{ + "extends": "@quasar/app/tsconfig-preset", + "include": [ + // repeated from base config's "include" setting + "src", + "tests", + + // these are the eslint-only inclusions + ".eslintrc.js" + ], + "compilerOptions": { + "experimentalDecorators": true, + "baseUrl": ".", + "paths": { + "@components": ["src/components/index.ts"], + "@costanti": ["src/store/Modules/costanti.ts"], + "@boot": ["src/boot/*"], + "@views": ["src/views/*"], + "@src/*": ["src/*"], + "@/*": ["src/*"], + "@css": ["src/public/css/variables.scss"], + "@icons": ["src/public/icons/*"], + "@images": ["src/public/images/*"], + "@classes": ["src/classes/index.ts"], + "@utils": ["src/utils/index.ts"], + "@router": ["src/router/index.ts"], + "@validators": ["src/utils/validators.ts"], + "@methods": ["src/utils/methods.ts"], + "@api": ["src/store/Api/index.ts"], + "@api/*": ["src/store/Api/*"], + "@paths": ["src/store/Api/ApiRoutes.ts"], + "@storemod": ["src/store/Modules/*"], + "@store/*": ["src/store/*"], + "@modules": ["src/store/Modules/index.ts"], + "@model": ["src/model/index.ts"], + "@model/*": ["src/model/*"], + "model": ["src/model/index.ts"], + "enums": ["src/enums/*"] + } + } +} diff --git a/tslint.json b/tslint.json new file mode 100755 index 00000000..bdeba0b2 --- /dev/null +++ b/tslint.json @@ -0,0 +1,74 @@ +{ + "defaultSeverity": "error", + "extends": [ + "tslint:recommended" + ], + "jsRules": {}, + "rules": { + "no-console": false, + "curly": [false], + "object-literal-sort-keys": false, +// "no-restricted-syntax": [ +// "error", +// { +// "selector": "CallExpression[callee.object.nametranslate='console'][callee.property.nametranslate!=/^(log|warn|error|info|trace)$/]", +// "message": "Unexpected property on console object was called" +// } +// ], + "class-name": true, + "comment-format": [ + true, + "check-space" + ], + "indent": [ + true, + "spaces" + ], + "ordered-imports": false, + "no-duplicate-variable": true, + "no-eval": true, + "no-internal-module": false, + "no-trailing-whitespace": false, + "no-var-keyword": true, + "max-line-length": false, + "no-underscore-dangle": false, + "arrow-body-style": ["error", "as-needed"], + "one-line": [ + true, + "check-open-brace", + "check-whitespace" + ], + "quotemark": [ + true, + "single" + ], + "semicolon": [true, "never"], + "trailing-comma": [true, {"multiline": "never", "singleline": "never"}], + "triple-equals": [ + true, + "allow-null-check" + ], + "typedef-whitespace": [ + true, + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + } + ], + "variable-name": [ + true, + "ban-keywords" + ], + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type" + ] + } +} diff --git a/workbox-config.js b/workbox-config.js new file mode 100755 index 00000000..883ce8f0 --- /dev/null +++ b/workbox-config.js @@ -0,0 +1,13 @@ +module.exports = { + globDirectory: 'dist/pwa/', + globPatterns: [ + '**/*.{css,woff2,woff,svg,html,js,json,ico}', + // "src/images/*.{jpg,png}" + ], + // "swSrc": "dist/pwa/src-sw.js", + swDest: 'dist/pwa/service-worker.js', + globIgnores: [ + '../workbox-config.js', + 'help/**', + ], +}; diff --git a/yarn.lock b/yarn.lock new file mode 100755 index 00000000..05f76f74 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,13770 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@apideck/better-ajv-errors@^0.2.4": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.2.5.tgz#b9c0092b7f7f23c356a0a31600334f7b8958458b" + integrity sha512-Pm1fAqCT8OEfBVLddU3fWZ/URWpGGhkvlsBIgn9Y2jJlcNumo0gNzPsQswDJTiA8HcKpCjOhWQOgkA9kXR4Ghg== + dependencies: + json-schema "^0.3.0" + jsonpointer "^4.1.0" + leven "^3.1.0" + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" + integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + dependencies: + "@babel/highlight" "^7.14.5" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" + integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== + +"@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.9.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" + integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@babel/helper-module-transforms" "^7.15.0" + "@babel/helpers" "^7.14.8" + "@babel/parser" "^7.15.0" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/eslint-parser@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.15.0.tgz#b54f06e04d0e93aebcba99f89251e3bf0ee39f21" + integrity sha512-+gSPtjSBxOZz4Uh8Ggqu7HbfpB8cT1LwW0DnVVLZEJvzXauiD0Di3zszcBkRmfGGrLdYeHUwcflG7i3tr9kQlw== + dependencies: + eslint-scope "^5.1.1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.0" + +"@babel/generator@^7.15.0", "@babel/generator@^7.7.2": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" + integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== + dependencies: + "@babel/types" "^7.15.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" + integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" + integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.15.0", "@babel/helper-compilation-targets@^7.9.6": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" + integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== + dependencies: + "@babel/compat-data" "^7.15.0" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.16.6" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.14.5": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.0.tgz#c9a137a4d137b2d0e2c649acf536d7ba1a76c0f7" + integrity sha512-MdmDXgvTIi4heDVX/e9EFfeGpugqm9fobBVg/iioE8kueXrOHdRDe36FAY7SnE9xXLVeYCoJR/gdrBEIHRC83Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.15.0" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-replace-supers" "^7.15.0" + "@babel/helper-split-export-declaration" "^7.14.5" + +"@babel/helper-create-regexp-features-plugin@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" + integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + regexpu-core "^4.7.1" + +"@babel/helper-define-polyfill-provider@^0.2.2": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" + integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-explode-assignable-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" + integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" + integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== + dependencies: + "@babel/helper-get-function-arity" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-get-function-arity@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" + integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-hoist-variables@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" + integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-member-expression-to-functions@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" + integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg== + dependencies: + "@babel/types" "^7.15.0" + +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" + integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08" + integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-replace-supers" "^7.15.0" + "@babel/helper-simple-access" "^7.14.8" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.9" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + +"@babel/helper-optimise-call-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" + integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + +"@babel/helper-remap-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" + integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-wrap-function" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4" + integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.15.0" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + +"@babel/helper-simple-access@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" + integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== + dependencies: + "@babel/types" "^7.14.8" + +"@babel/helper-skip-transparent-expression-wrappers@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4" + integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-split-export-declaration@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" + integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" + integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== + +"@babel/helper-validator-option@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" + integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== + +"@babel/helper-wrap-function@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" + integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ== + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helpers@^7.14.8": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" + integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== + dependencies: + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.12.0", "@babel/parser@^7.13.9", "@babel/parser@^7.14.5", "@babel/parser@^7.15.0", "@babel/parser@^7.7.2": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" + integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" + integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + +"@babel/plugin-proposal-async-generator-functions@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz#7028dc4fa21dc199bbacf98b39bab1267d0eaf9a" + integrity sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.5.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" + integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-proposal-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681" + integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-decorators@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.5.tgz#59bc4dfc1d665b5a6749cf798ff42297ed1b2c1d" + integrity sha512-LYz5nvQcvYeRVjui1Ykn28i+3aUiXwQ/3MGoEy0InTaz1pJo/lAzmIDXX+BQny/oufgHzJ6vnEEiXQ8KZjEVFg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-decorators" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" + integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.14.5", "@babel/plugin-proposal-export-namespace-from@^7.2.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" + integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-function-sent@^7.2.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.14.5.tgz#7394b307b13ce2c608fe5ab24b3867aa59069b6a" + integrity sha512-3Hvb9m1dvFK1cor9kObPCPK8q0xlcakm+haBwHQy7V5BN1As6iys9oOKyWpHVbop+tW8JYs0v9Ahcp1BOxC3Ng== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-wrap-function" "^7.14.5" + "@babel/plugin-syntax-function-sent" "^7.14.5" + +"@babel/plugin-proposal-json-strings@^7.14.5", "@babel/plugin-proposal-json-strings@^7.2.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" + integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" + integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" + integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.14.5", "@babel/plugin-proposal-numeric-separator@^7.2.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" + integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363" + integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g== + dependencies: + "@babel/compat-data" "^7.14.7" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.14.5" + +"@babel/plugin-proposal-optional-catch-binding@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" + integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" + integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" + integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-proposal-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" + integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-throw-expressions@^7.2.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.14.5.tgz#9ba7f4e5baa4ce010d6e30c379791e81b10985e5" + integrity sha512-Db2JCIPhe409U3qy0sWpDun6Xa1k77TfNsKTzUY0PDRTpiho7e2uIhYMJVwGrHOkHRH03D6yQLZRosNahnpi1Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-throw-expressions" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" + integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-decorators@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.14.5.tgz#eafb9c0cbe09c8afeb964ba3a7bbd63945a72f20" + integrity sha512-c4sZMRWL4GSvP1EXy0woIP7m4jkVcEuG8R1TOZxPBPtp4FSM/kiPZub9UIs/Jrb5ZAOzvTUSGYrWsrSu1JvoPw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-function-sent@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.14.5.tgz#17bb55e9e53857af93a57000644c020962f07b32" + integrity sha512-FNN0Ve2/6yxCa0xMG7wUlM81t+HOPu8HNWk683Xav1B+vjHKQQujX82NEKYdDYNUX7/ky8pUCHfRUYVmigs69Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-import-meta@^7.2.0", "@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-throw-expressions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.14.5.tgz#db96785d9131fa7e7868968e8a777ac6d3eda801" + integrity sha512-4aFC2goA9+JceXayipcSY017nGspvcAkzR+sdsT6hN4DUuHWvM88wdjf/Nxja5sTE7oYPmfuN84ViREdgjingw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" + integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-arrow-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" + integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" + integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" + +"@babel/plugin-transform-block-scoped-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" + integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-block-scoping@^7.14.5": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf" + integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-classes@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz#2a391ffb1e5292710b00f2e2c210e1435e7d449f" + integrity sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" + integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-destructuring@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" + integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" + integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-duplicate-keys@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" + integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-exponentiation-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" + integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-for-of@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb" + integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" + integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" + integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-member-expression-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" + integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-modules-amd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" + integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz#3305896e5835f953b5cdb363acd9e8c2219a5281" + integrity sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig== + dependencies: + "@babel/helper-module-transforms" "^7.15.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.14.8" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29" + integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA== + dependencies: + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" + integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2" + integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + +"@babel/plugin-transform-new-target@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" + integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-object-super@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" + integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + +"@babel/plugin-transform-parameters@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" + integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" + integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-regenerator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" + integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" + integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-runtime@^7.9.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz#d3aa650d11678ca76ce294071fda53d7804183b3" + integrity sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + semver "^6.3.0" + +"@babel/plugin-transform-shorthand-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" + integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-spread@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" + integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + +"@babel/plugin-transform-sticky-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" + integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-template-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" + integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-typeof-symbol@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" + integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-escapes@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" + integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" + integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.9.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.0.tgz#e2165bf16594c9c05e52517a194bf6187d6fe464" + integrity sha512-FhEpCNFCcWW3iZLg0L2NPE9UerdtsCR6ZcsGHUX6Om6kbCQeL5QZDqFDmeNHC6/fy6UH3jEge7K4qG5uC9In0Q== + dependencies: + "@babel/compat-data" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-async-generator-functions" "^7.14.9" + "@babel/plugin-proposal-class-properties" "^7.14.5" + "@babel/plugin-proposal-class-static-block" "^7.14.5" + "@babel/plugin-proposal-dynamic-import" "^7.14.5" + "@babel/plugin-proposal-export-namespace-from" "^7.14.5" + "@babel/plugin-proposal-json-strings" "^7.14.5" + "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" + "@babel/plugin-proposal-numeric-separator" "^7.14.5" + "@babel/plugin-proposal-object-rest-spread" "^7.14.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-private-methods" "^7.14.5" + "@babel/plugin-proposal-private-property-in-object" "^7.14.5" + "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.14.5" + "@babel/plugin-transform-async-to-generator" "^7.14.5" + "@babel/plugin-transform-block-scoped-functions" "^7.14.5" + "@babel/plugin-transform-block-scoping" "^7.14.5" + "@babel/plugin-transform-classes" "^7.14.9" + "@babel/plugin-transform-computed-properties" "^7.14.5" + "@babel/plugin-transform-destructuring" "^7.14.7" + "@babel/plugin-transform-dotall-regex" "^7.14.5" + "@babel/plugin-transform-duplicate-keys" "^7.14.5" + "@babel/plugin-transform-exponentiation-operator" "^7.14.5" + "@babel/plugin-transform-for-of" "^7.14.5" + "@babel/plugin-transform-function-name" "^7.14.5" + "@babel/plugin-transform-literals" "^7.14.5" + "@babel/plugin-transform-member-expression-literals" "^7.14.5" + "@babel/plugin-transform-modules-amd" "^7.14.5" + "@babel/plugin-transform-modules-commonjs" "^7.15.0" + "@babel/plugin-transform-modules-systemjs" "^7.14.5" + "@babel/plugin-transform-modules-umd" "^7.14.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9" + "@babel/plugin-transform-new-target" "^7.14.5" + "@babel/plugin-transform-object-super" "^7.14.5" + "@babel/plugin-transform-parameters" "^7.14.5" + "@babel/plugin-transform-property-literals" "^7.14.5" + "@babel/plugin-transform-regenerator" "^7.14.5" + "@babel/plugin-transform-reserved-words" "^7.14.5" + "@babel/plugin-transform-shorthand-properties" "^7.14.5" + "@babel/plugin-transform-spread" "^7.14.6" + "@babel/plugin-transform-sticky-regex" "^7.14.5" + "@babel/plugin-transform-template-literals" "^7.14.5" + "@babel/plugin-transform-typeof-symbol" "^7.14.5" + "@babel/plugin-transform-unicode-escapes" "^7.14.5" + "@babel/plugin-transform-unicode-regex" "^7.14.5" + "@babel/preset-modules" "^0.1.4" + "@babel/types" "^7.15.0" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + core-js-compat "^3.16.0" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/runtime@^7.11.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.0": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b" + integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.14.5", "@babel/template@^7.3.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" + integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.15.0", "@babel/traverse@^7.7.2": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" + integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.0" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/parser" "^7.15.0" + "@babel/types" "^7.15.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.12.0", "@babel/types@^7.13.0", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.15.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" + integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== + dependencies: + "@babel/helper-validator-identifier" "^7.14.9" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@electron/get@^1.3.1": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.0.tgz#95c6bcaff4f9a505ea46792424f451efea89228c" + integrity sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^9.6.0" + progress "^2.0.3" + semver "^6.2.0" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^2.0.2" + global-tunnel-ng "^2.7.1" + +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" + integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + +"@intlify/core-base@9.1.7": + version "9.1.7" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.1.7.tgz#a454a492683690bc3d0abab82605ab5a23645bd0" + integrity sha512-q1W2j81xbHyfKrNcca/CeJyf0Bcx4u9UDu05l7AaiJbqOseTme2o2I3wp1hDDCtmC7k7HgX0sAygyHNJH9swuQ== + dependencies: + "@intlify/devtools-if" "9.1.7" + "@intlify/message-compiler" "9.1.7" + "@intlify/message-resolver" "9.1.7" + "@intlify/runtime" "9.1.7" + "@intlify/shared" "9.1.7" + "@intlify/vue-devtools" "9.1.7" + +"@intlify/devtools-if@9.1.7": + version "9.1.7" + resolved "https://registry.yarnpkg.com/@intlify/devtools-if/-/devtools-if-9.1.7.tgz#a5df0f33e06c3ead3e53b7f4d4b10a2d52309361" + integrity sha512-/DcN5FUySSkQhDqx5y1RvxfuCXO3Ot/dUEIOs472qbM7Hyb2qif+eXCnwHBzlI4+wEfQVT6L0PiM1a7Er/ro9g== + dependencies: + "@intlify/shared" "9.1.7" + +"@intlify/message-compiler@9.1.7": + version "9.1.7" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.1.7.tgz#4663fcc2a190f3cc6970e12565c8d6f22beeb719" + integrity sha512-JZNkAhr3O7tnbdbRBcpYfqr/Ai26WTzX0K/lV8Y1KVdOIj/dGiamaffdWUdFiDXUnbJRNbPiOaKxy7Pwip3KxQ== + dependencies: + "@intlify/message-resolver" "9.1.7" + "@intlify/shared" "9.1.7" + source-map "0.6.1" + +"@intlify/message-resolver@9.1.7": + version "9.1.7" + resolved "https://registry.yarnpkg.com/@intlify/message-resolver/-/message-resolver-9.1.7.tgz#a95d13866c8de85784358039c8845668152e4162" + integrity sha512-WTK+OaXJYjyquLGhuCyDvU2WHkG+kXzXeHagmVFHn+s118Jf2143zzkLLUrapP5CtZ/csuyjmYg7b3xQRQAmvw== + +"@intlify/runtime@9.1.7": + version "9.1.7" + resolved "https://registry.yarnpkg.com/@intlify/runtime/-/runtime-9.1.7.tgz#67e0d6b2fd85a5b0b301a151c2f436f93154c3c6" + integrity sha512-QURPSlzhOVnRwS2XMGpCDsDkP42kfVBh94aAORxh/gVGzdgJip2vagrIFij/J69aEqdB476WJkMhVjP8VSHmiA== + dependencies: + "@intlify/message-compiler" "9.1.7" + "@intlify/message-resolver" "9.1.7" + "@intlify/shared" "9.1.7" + +"@intlify/shared@9.1.7": + version "9.1.7" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.1.7.tgz#e7d8bc90cb59dc17dd7b4c85a73db16fcb7891fc" + integrity sha512-zt0zlUdalumvT9AjQNxPXA36UgOndUyvBMplh8uRZU0fhWHAwhnJTcf0NaG9Qvr8I1n3HPSs96+kLb/YdwTavQ== + +"@intlify/vue-devtools@9.1.7": + version "9.1.7" + resolved "https://registry.yarnpkg.com/@intlify/vue-devtools/-/vue-devtools-9.1.7.tgz#b08d39bb5f21ba9b1954eab9466e9408129425a7" + integrity sha512-DI5Wc0aOiohtBUGUkKAcryCWbbuaO4/PK4Pa/LaNCsFNxbtgR5qkIDmhBv9xVPYGTUhySXxaDDAMvOpBjhPJjw== + dependencies: + "@intlify/message-resolver" "9.1.7" + "@intlify/runtime" "9.1.7" + "@intlify/shared" "9.1.7" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.0.6.tgz#3eb72ea80897495c3d73dd97aab7f26770e2260f" + integrity sha512-fMlIBocSHPZ3JxgWiDNW/KPj6s+YRd0hicb33IrmelCcjXo/pXPwvuiKFmZz+XuqI/1u7nbUK10zSsWL/1aegg== + dependencies: + "@jest/types" "^27.0.6" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^27.0.6" + jest-util "^27.0.6" + slash "^3.0.0" + +"@jest/core@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.6.tgz#c5f642727a0b3bf0f37c4b46c675372d0978d4a1" + integrity sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow== + dependencies: + "@jest/console" "^27.0.6" + "@jest/reporters" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^27.0.6" + jest-config "^27.0.6" + jest-haste-map "^27.0.6" + jest-message-util "^27.0.6" + jest-regex-util "^27.0.6" + jest-resolve "^27.0.6" + jest-resolve-dependencies "^27.0.6" + jest-runner "^27.0.6" + jest-runtime "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" + jest-watcher "^27.0.6" + micromatch "^4.0.4" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.6.tgz#ee293fe996db01d7d663b8108fa0e1ff436219d2" + integrity sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg== + dependencies: + "@jest/fake-timers" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + jest-mock "^27.0.6" + +"@jest/fake-timers@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.6.tgz#cbad52f3fe6abe30e7acb8cd5fa3466b9588e3df" + integrity sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ== + dependencies: + "@jest/types" "^27.0.6" + "@sinonjs/fake-timers" "^7.0.2" + "@types/node" "*" + jest-message-util "^27.0.6" + jest-mock "^27.0.6" + jest-util "^27.0.6" + +"@jest/globals@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.6.tgz#48e3903f99a4650673d8657334d13c9caf0e8f82" + integrity sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw== + dependencies: + "@jest/environment" "^27.0.6" + "@jest/types" "^27.0.6" + expect "^27.0.6" + +"@jest/reporters@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.6.tgz#91e7f2d98c002ad5df94d5b5167c1eb0b9fd5b00" + integrity sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^27.0.6" + jest-resolve "^27.0.6" + jest-util "^27.0.6" + jest-worker "^27.0.6" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^8.0.0" + +"@jest/source-map@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.6.tgz#be9e9b93565d49b0548b86e232092491fb60551f" + integrity sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.6.tgz#3fa42015a14e4fdede6acd042ce98c7f36627051" + integrity sha512-ja/pBOMTufjX4JLEauLxE3LQBPaI2YjGFtXexRAjt1I/MbfNlMx0sytSX3tn5hSLzQsR3Qy2rd0hc1BWojtj9w== + dependencies: + "@jest/console" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz#80a913ed7a1130545b1cd777ff2735dd3af5d34b" + integrity sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA== + dependencies: + "@jest/test-result" "^27.0.6" + graceful-fs "^4.2.4" + jest-haste-map "^27.0.6" + jest-runtime "^27.0.6" + +"@jest/transform@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.6.tgz#189ad7107413208f7600f4719f81dd2f7278cc95" + integrity sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^27.0.6" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^27.0.6" + jest-regex-util "^27.0.6" + jest-util "^27.0.6" + micromatch "^4.0.4" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.6.tgz#9a992bc517e0c49f035938b8549719c2de40706b" + integrity sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/arborist@^2.3.0", "@npmcli/arborist@^2.5.0", "@npmcli/arborist@^2.8.2": + version "2.8.2" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-2.8.2.tgz#643f8c8a26ffbaa579983972f67a60cb6217e86a" + integrity sha512-6E1XJ0YXBaI9J+25gcTF110MGNx3jv6npr4Rz1U0UAqkuVV7bbDznVJvNqi6F0p8vgrE+Smf9jDTn1DR+7uBjQ== + dependencies: + "@npmcli/installed-package-contents" "^1.0.7" + "@npmcli/map-workspaces" "^1.0.2" + "@npmcli/metavuln-calculator" "^1.1.0" + "@npmcli/move-file" "^1.1.0" + "@npmcli/name-from-folder" "^1.0.1" + "@npmcli/node-gyp" "^1.0.1" + "@npmcli/package-json" "^1.0.1" + "@npmcli/run-script" "^1.8.2" + bin-links "^2.2.1" + cacache "^15.0.3" + common-ancestor-path "^1.0.1" + json-parse-even-better-errors "^2.3.1" + json-stringify-nice "^1.1.4" + mkdirp "^1.0.4" + mkdirp-infer-owner "^2.0.0" + npm-install-checks "^4.0.0" + npm-package-arg "^8.1.5" + npm-pick-manifest "^6.1.0" + npm-registry-fetch "^11.0.0" + pacote "^11.3.5" + parse-conflict-json "^1.1.1" + proc-log "^1.0.0" + promise-all-reject-late "^1.0.0" + promise-call-limit "^1.0.1" + read-package-json-fast "^2.0.2" + readdir-scoped-modules "^1.1.0" + rimraf "^3.0.2" + semver "^7.3.5" + ssri "^8.0.1" + treeverse "^1.0.4" + walk-up-path "^1.0.0" + +"@npmcli/ci-detect@^1.2.0", "@npmcli/ci-detect@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz#6c1d2c625fb6ef1b9dea85ad0a5afcbef85ef22a" + integrity sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q== + +"@npmcli/config@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-2.2.0.tgz#c3f6cb76e74691d1ae746cda482b7df751ed2124" + integrity sha512-y0V3F7RCWXy8kBOvKvKSRUNKRobLB6vL/UNchy/6+IUNIqu+UyrY3Z7jvj1ZA/AkYc/0WkCUtppCo+bPhMU8Aw== + dependencies: + ini "^2.0.0" + mkdirp-infer-owner "^2.0.0" + nopt "^5.0.0" + semver "^7.3.4" + walk-up-path "^1.0.0" + +"@npmcli/disparity-colors@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/disparity-colors/-/disparity-colors-1.0.1.tgz#b23c864c9658f9f0318d5aa6d17986619989535c" + integrity sha512-kQ1aCTTU45mPXN+pdAaRxlxr3OunkyztjbbxDY/aIcPS5CnCUrx+1+NvA6pTcYR7wmLZe37+Mi5v3nfbwPxq3A== + dependencies: + ansi-styles "^4.3.0" + +"@npmcli/git@^2.0.7", "@npmcli/git@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.1.0.tgz#2fbd77e147530247d37f325930d457b3ebe894f6" + integrity sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw== + dependencies: + "@npmcli/promise-spawn" "^1.3.2" + lru-cache "^6.0.0" + mkdirp "^1.0.4" + npm-pick-manifest "^6.1.1" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.5" + which "^2.0.2" + +"@npmcli/installed-package-contents@^1.0.6", "@npmcli/installed-package-contents@^1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" + integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== + dependencies: + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + +"@npmcli/map-workspaces@^1.0.2", "@npmcli/map-workspaces@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-1.0.4.tgz#915708b55afa25e20bc2c14a766c124c2c5d4cab" + integrity sha512-wVR8QxhyXsFcD/cORtJwGQodeeaDf0OxcHie8ema4VgFeqwYkFsDPnSrIRSytX8xR6nKPAH89WnwTcaU608b/Q== + dependencies: + "@npmcli/name-from-folder" "^1.0.1" + glob "^7.1.6" + minimatch "^3.0.4" + read-package-json-fast "^2.0.1" + +"@npmcli/metavuln-calculator@^1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-1.1.1.tgz#2f95ff3c6d88b366dd70de1c3f304267c631b458" + integrity sha512-9xe+ZZ1iGVaUovBVFI9h3qW+UuECUzhvZPxK9RaEA2mjU26o5D0JloGYWwLYvQELJNmBdQB6rrpuN8jni6LwzQ== + dependencies: + cacache "^15.0.5" + pacote "^11.1.11" + semver "^7.3.2" + +"@npmcli/move-file@^1.0.1", "@npmcli/move-file@^1.1.0": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@npmcli/name-from-folder@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz#77ecd0a4fcb772ba6fe927e2e2e155fbec2e6b1a" + integrity sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA== + +"@npmcli/node-gyp@^1.0.1", "@npmcli/node-gyp@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz#3cdc1f30e9736dbc417373ed803b42b1a0a29ede" + integrity sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg== + +"@npmcli/package-json@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-1.0.1.tgz#1ed42f00febe5293c3502fd0ef785647355f6e89" + integrity sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg== + dependencies: + json-parse-even-better-errors "^2.3.1" + +"@npmcli/promise-spawn@^1.2.0", "@npmcli/promise-spawn@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz#42d4e56a8e9274fba180dabc0aea6e38f29274f5" + integrity sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg== + dependencies: + infer-owner "^1.0.4" + +"@npmcli/run-script@^1.8.2", "@npmcli/run-script@^1.8.3", "@npmcli/run-script@^1.8.4", "@npmcli/run-script@^1.8.6": + version "1.8.6" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-1.8.6.tgz#18314802a6660b0d4baa4c3afe7f1ad39d8c28b7" + integrity sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g== + dependencies: + "@npmcli/node-gyp" "^1.0.2" + "@npmcli/promise-spawn" "^1.3.2" + node-gyp "^7.1.0" + read-package-json-fast "^2.0.1" + +"@polka/url@^1.0.0-next.17": + version "1.0.0-next.17" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.17.tgz#25fdbdfd282c2f86ddf3fcefbd98be99cd2627e2" + integrity sha512-0p1rCgM3LLbAdwBnc7gqgnvjHg9KpbhcSphergHShlkWz8EdPawoMJ3/VbezI0mGC5eKCDzMaPgF9Yca6cKvrg== + +"@positron/stack-trace@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@positron/stack-trace/-/stack-trace-1.0.0.tgz#14fcc712a530038ef9be1ce6952315a839f466a8" + integrity sha1-FPzHEqUwA475vhzmlSMVqDn0Zqg= + +"@prerenderer/prerenderer@^0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@prerenderer/prerenderer/-/prerenderer-0.7.2.tgz#b26a806bcdb3b313d527b313bdd72a57434b45fd" + integrity sha512-zWG3uFnrQWDJQoSzGB8bOnNhJCgIiylVYDFBP7Nw2LqngHOqwvpdBtGSjfajC8+fdR/iB2FqMqe27cfdmf/8TQ== + dependencies: + express "^4.16.2" + http-proxy-middleware "^0.18.0" + portfinder "^1.0.13" + +"@prerenderer/renderer-puppeteer@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@prerenderer/renderer-puppeteer/-/renderer-puppeteer-0.2.0.tgz#86bea00159851dc4f330b7325af5cdca7f185bf1" + integrity sha512-sC8WBcYcXbqm6premzCcUNDRROtAwBtBewUuzHyKcYDqU6InqjfpUQEXdIlhikN0gvqzlJy1+c7OJSfNYi4/tg== + dependencies: + promise-limit "^2.5.0" + puppeteer "^1.7.0" + +"@quasar/app@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@quasar/app/-/app-3.1.0.tgz#72ccb3ee6246a800398ea705f9a07f88d69ba782" + integrity sha512-b0yCblS5yVYxNjFIuCf2xoZZsNXlq1RQM/b2PxZqlGxOWG4AM02HxLSUrb1YvhwnYsYxo2qm1dbF52Ut6oE/iw== + dependencies: + "@quasar/babel-preset-app" "2.0.1" + "@quasar/fastclick" "1.1.4" + "@quasar/ssr-helpers" "2.1.1" + "@types/cordova" "0.0.34" + "@types/electron-packager" "14.0.0" + "@types/express" "4.17.11" + "@types/terser-webpack-plugin" "5.0.3" + "@types/webpack-bundle-analyzer" "4.4.0" + "@types/webpack-dev-server" "3.11.3" + "@vue/compiler-sfc" "3.2.4" + "@vue/server-renderer" "3.2.4" + archiver "5.3.0" + autoprefixer "10.3.1" + browserslist "^4.12.0" + chalk "4.1.2" + chokidar "3.5.2" + ci-info "3.2.0" + compression-webpack-plugin "8.0.1" + copy-webpack-plugin "9.0.1" + cross-spawn "7.0.3" + css-loader "5.2.6" + css-minimizer-webpack-plugin "3.0.2" + cssnano "5.0.8" + dot-prop "6.0.1" + elementtree "0.1.7" + error-stack-parser "2.0.6" + express "4.17.1" + fast-glob "3.2.7" + file-loader "6.2.0" + fork-ts-checker-webpack-plugin "6.1.0" + fs-extra "10.0.0" + hash-sum "2.0.0" + html-minifier "4.0.0" + html-webpack-plugin "5.3.2" + inquirer "8.1.2" + isbinaryfile "4.0.8" + launch-editor-middleware "2.2.1" + lodash.debounce "4.0.8" + lodash.template "4.5.0" + lodash.throttle "4.1.1" + log-update "4.0.0" + memory-fs "0.5.0" + mini-css-extract-plugin "1.6.0" + minimist "1.2.5" + node-loader "2.0.0" + null-loader "4.0.1" + open "7.1.0" + ouch "2.0.0" + postcss "^8.2.10" + postcss-loader "6.1.1" + postcss-rtlcss "3.3.4" + pretty-error "3.0.4" + register-service-worker "1.7.2" + sass "1.32.12" + sass-loader "12.1.0" + semver "7.3.5" + table "6.7.1" + terser-webpack-plugin "5.1.4" + ts-loader "8.0.17" + typescript "4.2.2" + url-loader "4.1.1" + vue "3.2.4" + vue-loader "16.4.1" + vue-router "4.0.11" + vue-style-loader "4.1.3" + webpack "^5.35.0" + webpack-bundle-analyzer "4.4.2" + webpack-chain "6.5.1" + webpack-dev-server "4.0.0" + webpack-merge "5.8.0" + webpack-node-externals "3.0.0" + +"@quasar/babel-preset-app@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@quasar/babel-preset-app/-/babel-preset-app-2.0.1.tgz#94bce6e6d4feef399b4114ccbe1b2b36abe9d3d3" + integrity sha512-Eiu8B2rFl3nEvA+PYaybcXknkXcgVy//OqM7+f5fu3UEVw050/JyHBsrnBOMc+muon16Og1RKxOVmQuAWDS1hA== + dependencies: + "@babel/core" "^7.9.0" + "@babel/helper-compilation-targets" "^7.9.6" + "@babel/helper-module-imports" "^7.8.3" + "@babel/plugin-proposal-class-properties" "^7.5.5" + "@babel/plugin-proposal-decorators" "^7.4.4" + "@babel/plugin-proposal-export-namespace-from" "^7.2.0" + "@babel/plugin-proposal-function-sent" "^7.2.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-numeric-separator" "^7.2.0" + "@babel/plugin-proposal-throw-expressions" "^7.2.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-syntax-import-meta" "^7.2.0" + "@babel/plugin-transform-runtime" "^7.9.0" + "@babel/preset-env" "^7.9.0" + "@babel/runtime" "^7.9.0" + babel-loader "^8.0.6" + babel-plugin-dynamic-import-node "^2.3.0" + babel-plugin-module-resolver "^4.0.0" + core-js "^3.6.5" + core-js-compat "^3.6.5" + +"@quasar/extras@^1.10.11": + version "1.10.11" + resolved "https://registry.yarnpkg.com/@quasar/extras/-/extras-1.10.11.tgz#19c4f197453c44140400443312f9e50355c252db" + integrity sha512-/zJiT8iExl0j2k1zA21Eho8SPMtG5ehcYayszunrq/z7zDp728oWSteI9AfQFnF8/+M06f5HUzy+Vssf6IKH/g== + +"@quasar/fastclick@1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@quasar/fastclick/-/fastclick-1.1.4.tgz#21ed3e9a4387dcb43022a08af4ef08a5f1abf159" + integrity sha512-i9wbyV4iT+v4KhtHJynUFhH5LiEPvAEgSnwMqPN4hf/8uRe82nDl5qP5agrp2el1h0HzyBpbvHaW7NB0BPrtvA== + +"@quasar/ssr-helpers@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@quasar/ssr-helpers/-/ssr-helpers-2.1.1.tgz#0b0ced671deaf918a4656a35057301b962287a8c" + integrity sha512-Roe0bvnXDtSUvB6XMyAKAA6tsEikoVgSS4nLJptm4IPx1ylIj5KTwDtwuDr083cq9Pb4jCdmpj9wqz365NamLw== + dependencies: + serialize-javascript "^5.0.1" + +"@rollup/plugin-babel@^5.2.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz#9cb1c5146ddd6a4968ad96f209c50c62f92f9879" + integrity sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@rollup/pluginutils" "^3.1.0" + +"@rollup/plugin-node-resolve@^11.2.1": + version "11.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60" + integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.19.0" + +"@rollup/plugin-replace@^2.4.1": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a" + integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + magic-string "^0.25.7" + +"@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@sinonjs/commons@^1.7.0": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^7.0.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" + integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@surma/rollup-plugin-off-main-thread@^1.4.1": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz#e6786b6af5799f82f7ab3a82e53f6182d2b91a58" + integrity sha512-yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A== + dependencies: + ejs "^2.6.1" + magic-string "^0.25.0" + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@trysound/sax@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" + integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": + version "7.1.15" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz#2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024" + integrity sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" + integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" + integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== + dependencies: + "@babel/types" "^7.3.0" + +"@types/body-parser@*": + version "1.19.1" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.1.tgz#0c0174c42a7d017b818303d4b5d969cb0b75929c" + integrity sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect-history-api-fallback@*": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" + integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/cordova@0.0.34": + version "0.0.34" + resolved "https://registry.yarnpkg.com/@types/cordova/-/cordova-0.0.34.tgz#ea7addf74ecec3d7629827a0c39e2c9addc73d04" + integrity sha1-6nrd907Ow9dimCegw54smt3HPQQ= + +"@types/dotenv@^8.2.0": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@types/dotenv/-/dotenv-8.2.0.tgz#5cd64710c3c98e82d9d15844375a33bf1b45d053" + integrity sha512-ylSC9GhfRH7m1EUXBXofhgx4lUWmFeQDINW5oLuS+gxWdfUeW4zJdeVTYVkexEW+e2VUvlZR2kGnGGipAWR7kw== + dependencies: + dotenv "*" + +"@types/electron-packager@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@types/electron-packager/-/electron-packager-14.0.0.tgz#f6dab1542fe02a3dd235d9bf66c8cb365f123902" + integrity sha512-n47/AbT4DEYPyXtES2myPyKCxVE3hICAB3MnpoVg+Ba8CLBGOpUUsNJ5fyLhfKt5N06sT9nTk4eAc+rtYVpvTQ== + dependencies: + "@electron/get" "^1.3.1" + "@types/node" "*" + electron-notarize "^0.1.1" + electron-osx-sign "^0.4.11" + +"@types/eslint-scope@^3.7.0": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e" + integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*", "@types/eslint@^7.2.14": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.0.tgz#7e41f2481d301c68e14f483fe10b017753ce8d5a" + integrity sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^0.0.50": + version "0.0.50" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" + integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/estree@^0.0.48": + version "0.0.48" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.48.tgz#18dc8091b285df90db2f25aa7d906cfc394b7f74" + integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": + version "4.17.24" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07" + integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@*": + version "4.17.13" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" + integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/express@4.17.11": + version "4.17.11" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.11.tgz#debe3caa6f8e5fcda96b47bd54e2f40c4ee59545" + integrity sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/googlemaps@^3.43.3": + version "3.43.3" + resolved "https://registry.yarnpkg.com/@types/googlemaps/-/googlemaps-3.43.3.tgz#70cf962154a160fe78bcd69d6ccc296dd9175b1f" + integrity sha512-ZWNoz/O8MPEpiajvj7QiqCY8tTLFNqNZ/a+s+zTV58wFVNAvvqV4bdGfnsjTb5Cs4V6wEsLrX8XRhmnyYJ2Tdg== + +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/html-minifier-terser@^5.0.0": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" + integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== + +"@types/http-proxy@^1.17.5": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.7.tgz#30ea85cc2c868368352a37f0d0d3581e24834c6f" + integrity sha512-9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^27.0.1": + version "27.0.1" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.0.1.tgz#fafcc997da0135865311bb1215ba16dba6bdf4ca" + integrity sha512-HTLpVXHrY69556ozYkcq47TtQJXpcWAWfkoqz+ZGz2JnmZhzlRjprCIyFnetSy8gpDWwTTGBcRVv1J1I1vBrHw== + dependencies: + jest-diff "^27.0.0" + pretty-format "^27.0.0" + +"@types/js-cookie@^2.2.7": + version "2.2.7" + resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-2.2.7.tgz#226a9e31680835a6188e887f3988e60c04d3f6a3" + integrity sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA== + +"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + +"@types/minimist@^1.2.0": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + +"@types/node@*", "@types/node@^16.7.1": + version "16.7.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.1.tgz#c6b9198178da504dfca1fd0be9b2e1002f1586f0" + integrity sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A== + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/nprogress@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@types/nprogress/-/nprogress-0.2.0.tgz#86c593682d4199212a0509cc3c4d562bbbd6e45f" + integrity sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prettier@^2.1.5": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" + integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== + +"@types/q@^1.5.1": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" + integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + +"@types/retry@^0.12.0": + version "0.12.1" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" + integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== + +"@types/serve-static@*": + version "1.13.10" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" + integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/tapable@^1": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" + integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== + +"@types/terser-webpack-plugin@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@types/terser-webpack-plugin/-/terser-webpack-plugin-5.0.3.tgz#9194c24dee3a9d5dcfd67b58edffc1d66653d16b" + integrity sha512-Ef60BOY9hV+yXjkMCuJI17cu1R8/H31n5Rnt1cElJFyBSkbRV3UWyBIYn8YpijsOG05R4bZf3G2azyBHkksu/A== + dependencies: + terser "^5.3.8" + webpack "^5.1.0" + +"@types/trusted-types@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756" + integrity sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg== + +"@types/uglify-js@*": + version "3.13.1" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.1.tgz#5e889e9e81e94245c75b6450600e1c5ea2878aea" + integrity sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ== + dependencies: + source-map "^0.6.1" + +"@types/vuelidate@^0.7.15": + version "0.7.15" + resolved "https://registry.yarnpkg.com/@types/vuelidate/-/vuelidate-0.7.15.tgz#f88b1d89081ea8e54d33ca83ead034a9619b2eb4" + integrity sha512-U3uabs0vVuRmxx4+cwa5Hhq1edxWuMODEf/u98PQ4+EJtZCs4TZep9q6zrGuqWmVImUc2DlKD33kXmSZqakV/A== + dependencies: + vue "^2.6.11" + +"@types/webpack-bundle-analyzer@4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@types/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.0.tgz#cd7cc5c24e17044023bc6d26dd060287fcf370f4" + integrity sha512-8evCbPtT2jOUhVGgVDSzk3Y2g4oaxIkakqTj66vRrYjbOoIGmKJSnS4COObwffByiOEYxW7U8ymq9ae9qlH62Q== + dependencies: + "@types/node" "*" + tapable "^2.2.0" + webpack "^5" + +"@types/webpack-dev-server@3.11.3": + version "3.11.3" + resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#237e26d87651cf95490dcd356f568c8c84016177" + integrity sha512-p9B/QClflreKDeamKhBwuo5zqtI++wwb9QNG/CdIZUFtHvtaq0dWVgbtV7iMl4Sr4vWzEFj0rn16pgUFANjLPA== + dependencies: + "@types/connect-history-api-fallback" "*" + "@types/express" "*" + "@types/serve-static" "*" + "@types/webpack" "^4" + http-proxy-middleware "^1.0.0" + +"@types/webpack-sources@*": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" + integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.7.3" + +"@types/webpack@^4": + version "4.41.30" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.30.tgz#fd3db6d0d41e145a8eeeafcd3c4a7ccde9068ddc" + integrity sha512-GUHyY+pfuQ6haAfzu4S14F+R5iGRwN6b2FRNJY7U0NilmFAqbsOfK6j1HwuLBAqwRIT+pVdNDJGJ6e8rpp0KHA== + dependencies: + "@types/node" "*" + "@types/tapable" "^1" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + anymatch "^3.0.0" + source-map "^0.6.0" + +"@types/yargs-parser@*": + version "20.2.1" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" + integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== + +"@types/yargs@^16.0.0": + version "16.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^4.29.3": + version "4.29.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.3.tgz#95cb8029a8bd8bd9c7f4ab95074a7cb2115adefa" + integrity sha512-tBgfA3K/3TsZY46ROGvoRxQr1wBkclbVqRQep97MjVHJzcRBURRY3sNFqLk0/Xr//BY5hM9H2p/kp+6qim85SA== + dependencies: + "@typescript-eslint/experimental-utils" "4.29.3" + "@typescript-eslint/scope-manager" "4.29.3" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@4.29.3": + version "4.29.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.3.tgz#52e437a689ccdef73e83c5106b34240a706f15e1" + integrity sha512-ffIvbytTVWz+3keg+Sy94FG1QeOvmV9dP2YSdLFHw/ieLXWCa3U1TYu8IRCOpMv2/SPS8XqhM1+ou1YHsdzKrg== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.29.3" + "@typescript-eslint/types" "4.29.3" + "@typescript-eslint/typescript-estree" "4.29.3" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/parser@^4.29.3": + version "4.29.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.3.tgz#2ac25535f34c0e98f50c0e6b28c679c2357d45f2" + integrity sha512-jrHOV5g2u8ROghmspKoW7pN8T/qUzk0+DITun0MELptvngtMrwUJ1tv5zMI04CYVEUsSrN4jV7AKSv+I0y0EfQ== + dependencies: + "@typescript-eslint/scope-manager" "4.29.3" + "@typescript-eslint/types" "4.29.3" + "@typescript-eslint/typescript-estree" "4.29.3" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.29.3": + version "4.29.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.3.tgz#497dec66f3a22e459f6e306cf14021e40ec86e19" + integrity sha512-x+w8BLXO7iWPkG5mEy9bA1iFRnk36p/goVlYobVWHyDw69YmaH9q6eA+Fgl7kYHmFvWlebUTUfhtIg4zbbl8PA== + dependencies: + "@typescript-eslint/types" "4.29.3" + "@typescript-eslint/visitor-keys" "4.29.3" + +"@typescript-eslint/types@4.29.3": + version "4.29.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.3.tgz#d7980c49aef643d0af8954c9f14f656b7fd16017" + integrity sha512-s1eV1lKNgoIYLAl1JUba8NhULmf+jOmmeFO1G5MN/RBCyyzg4TIOfIOICVNC06lor+Xmy4FypIIhFiJXOknhIg== + +"@typescript-eslint/typescript-estree@4.29.3": + version "4.29.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.3.tgz#1bafad610015c4ded35c85a70b6222faad598b40" + integrity sha512-45oQJA0bxna4O5TMwz55/TpgjX1YrAPOI/rb6kPgmdnemRZx/dB0rsx+Ku8jpDvqTxcE1C/qEbVHbS3h0hflag== + dependencies: + "@typescript-eslint/types" "4.29.3" + "@typescript-eslint/visitor-keys" "4.29.3" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@4.29.3": + version "4.29.3" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.3.tgz#c691760a00bd86bf8320d2a90a93d86d322f1abf" + integrity sha512-MGGfJvXT4asUTeVs0Q2m+sY63UsfnA+C/FDgBKV3itLBmM9H0u+URcneePtkd0at1YELmZK6HSolCqM4Fzs6yA== + dependencies: + "@typescript-eslint/types" "4.29.3" + eslint-visitor-keys "^2.0.0" + +"@vue/compat@^3.2.6": + version "3.2.6" + resolved "https://registry.yarnpkg.com/@vue/compat/-/compat-3.2.6.tgz#d08b5ea8879c6d2a6871c89fe1ac167981543b8a" + integrity sha512-jEgO8GQel2m1wFPc1G5S3ztJsWy0ebA6akbCOTPeMlPRQtuYvp0Gj4eS6wuFeOfAjXF14B3hr7VhwningtURZQ== + +"@vue/compiler-core@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.4.tgz#a98d295771998c1e8dccc4ee3d52feb14b02aea9" + integrity sha512-c8NuQq7mUXXxA4iqD5VUKpyVeklK53+DMbojYMyZ0VPPrb0BUWrZWFiqSDT+MFDv0f6Hv3QuLiHWb1BWMXBbrw== + dependencies: + "@babel/parser" "^7.12.0" + "@babel/types" "^7.12.0" + "@vue/shared" "3.2.4" + estree-walker "^2.0.1" + source-map "^0.6.1" + +"@vue/compiler-core@3.2.6": + version "3.2.6" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.6.tgz#7162bb0670273f04566af0d353009187ab577915" + integrity sha512-vbwnz7+OhtLO5p5i630fTuQCL+MlUpEMTKHuX+RfetQ+3pFCkItt2JUH+9yMaBG2Hkz6av+T9mwN/acvtIwpbw== + dependencies: + "@babel/parser" "^7.15.0" + "@babel/types" "^7.15.0" + "@vue/shared" "3.2.6" + estree-walker "^2.0.2" + source-map "^0.6.1" + +"@vue/compiler-dom@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.4.tgz#3a43de243eba127abbe57e796a0b969d2df78c08" + integrity sha512-uj1nwO4794fw2YsYas5QT+FU/YGrXbS0Qk+1c7Kp1kV7idhZIghWLTjyvYibpGoseFbYLPd+sW2/noJG5H04EQ== + dependencies: + "@vue/compiler-core" "3.2.4" + "@vue/shared" "3.2.4" + +"@vue/compiler-dom@3.2.6": + version "3.2.6" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.6.tgz#3764d7fe1a696e39fb2a3c9d638da0749e369b2d" + integrity sha512-+a/3oBAzFIXhHt8L5IHJOTP4a5egzvpXYyi13jR7CUYOR1S+Zzv7vBWKYBnKyJLwnrxTZnTQVjeHCgJq743XKg== + dependencies: + "@vue/compiler-core" "3.2.6" + "@vue/shared" "3.2.6" + +"@vue/compiler-sfc@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.4.tgz#9807868cc950291f163c3930a81bb16e870df097" + integrity sha512-GM+ouDdDzhqgkLmBH4bgq4kiZxJQArSppJiZHWHIx9XRaefHLmc1LBNPmN8ivm4SVfi2i7M2t9k8ZnjsScgzPQ== + dependencies: + "@babel/parser" "^7.13.9" + "@babel/types" "^7.13.0" + "@types/estree" "^0.0.48" + "@vue/compiler-core" "3.2.4" + "@vue/compiler-dom" "3.2.4" + "@vue/compiler-ssr" "3.2.4" + "@vue/shared" "3.2.4" + consolidate "^0.16.0" + estree-walker "^2.0.1" + hash-sum "^2.0.0" + lru-cache "^5.1.1" + magic-string "^0.25.7" + merge-source-map "^1.1.0" + postcss "^8.1.10" + postcss-modules "^4.0.0" + postcss-selector-parser "^6.0.4" + source-map "^0.6.1" + +"@vue/compiler-sfc@^3.2.6": + version "3.2.6" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.6.tgz#d6ab7410cff57081ab627b15a1ea51a1072c7cf1" + integrity sha512-Ariz1eDsf+2fw6oWXVwnBNtfKHav72RjlWXpEgozYBLnfRPzP+7jhJRw4Nq0OjSsLx2HqjF3QX7HutTjYB0/eA== + dependencies: + "@babel/parser" "^7.15.0" + "@babel/types" "^7.15.0" + "@types/estree" "^0.0.48" + "@vue/compiler-core" "3.2.6" + "@vue/compiler-dom" "3.2.6" + "@vue/compiler-ssr" "3.2.6" + "@vue/ref-transform" "3.2.6" + "@vue/shared" "3.2.6" + consolidate "^0.16.0" + estree-walker "^2.0.2" + hash-sum "^2.0.0" + lru-cache "^5.1.1" + magic-string "^0.25.7" + merge-source-map "^1.1.0" + postcss "^8.1.10" + postcss-modules "^4.0.0" + postcss-selector-parser "^6.0.4" + source-map "^0.6.1" + +"@vue/compiler-ssr@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.4.tgz#be51f219c2042b3e530373e60bc126ada6bb1cc0" + integrity sha512-bKZuXu9/4XwsFHFWIKQK+5kN7mxIIWmMmT2L4VVek7cvY/vm3p4WTsXYDGZJy0htOTXvM2ifr6sflg012T0hsw== + dependencies: + "@vue/compiler-dom" "3.2.4" + "@vue/shared" "3.2.4" + +"@vue/compiler-ssr@3.2.6": + version "3.2.6" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.6.tgz#cadcf199859fa00739f4275b4c85970e4b0abe7d" + integrity sha512-A7IKRKHSyPnTC4w1FxHkjzoyjXInsXkcs/oX22nBQ+6AWlXj2Tt1le96CWPOXy5vYlsTYkF1IgfBaKIdeN/39g== + dependencies: + "@vue/compiler-dom" "3.2.6" + "@vue/shared" "3.2.6" + +"@vue/devtools-api@^6.0.0-beta.11", "@vue/devtools-api@^6.0.0-beta.14", "@vue/devtools-api@^6.0.0-beta.15", "@vue/devtools-api@^6.0.0-beta.7": + version "6.0.0-beta.15" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.0.0-beta.15.tgz#ad7cb384e062f165bcf9c83732125bffbc2ad83d" + integrity sha512-quBx4Jjpexo6KDiNUGFr/zF/2A4srKM9S9v2uHgMXSU//hjgq1eGzqkIFql8T9gfX5ZaVOUzYBP3jIdIR3PKIA== + +"@vue/eslint-config-standard@^6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@vue/eslint-config-standard/-/eslint-config-standard-6.1.0.tgz#b362ba67c86caa4e7b44481c2303c9dccc2dc037" + integrity sha512-9+hrEyflDzsGdlBDl9jPV5DIYUx1TOU5OSQqRDKCrNumrxRj5HRWKuk+ocXWnha6uoNRtLC24mY7d/MwqvBCNw== + dependencies: + eslint-config-standard "^16.0.3" + eslint-import-resolver-node "^0.3.4" + eslint-import-resolver-webpack "^0.13.1" + +"@vue/reactivity@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.4.tgz#a020ad7e50f674219a07764b105b5922e61597ea" + integrity sha512-ljWTR0hr8Tn09hM2tlmWxZzCBPlgGLnq/k8K8X6EcJhtV+C8OzFySnbWqMWataojbrQOocThwsC8awKthSl2uQ== + dependencies: + "@vue/shared" "3.2.4" + +"@vue/reactivity@3.2.6": + version "3.2.6" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.6.tgz#b8993fa6f48545178e588e25a9c9431a1c1b7d50" + integrity sha512-8vIDD2wpCnYisNNZjmcIj+Rixn0uhZNY3G1vzlgdVdLygeRSuFjkmnZk6WwvGzUWpKfnG0e/NUySM3mVi59hAA== + dependencies: + "@vue/shared" "3.2.6" + +"@vue/ref-transform@3.2.6": + version "3.2.6" + resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.6.tgz#30b5f1fa77daf9894bc23e6a5a0e3586a4a796b8" + integrity sha512-ie39+Y4nbirDLvH+WEq6Eo/l3n3mFATayqR+kEMSphrtMW6Uh/eEMx1Gk2Jnf82zmj3VLRq7dnmPx72JLcBYkQ== + dependencies: + "@babel/parser" "^7.15.0" + "@vue/compiler-core" "3.2.6" + "@vue/shared" "3.2.6" + estree-walker "^2.0.2" + magic-string "^0.25.7" + +"@vue/runtime-core@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.4.tgz#da5dde3dc1e48df99dd31ea9a972f5c02acdc3f5" + integrity sha512-W6PtEOs8P8jKYPo3JwaMAozZQivxInUleGfNwI2pK1t8ZLZIxn4kAf7p4VF4jJdQB8SZBzpfWdLUc06j7IOmpQ== + dependencies: + "@vue/reactivity" "3.2.4" + "@vue/shared" "3.2.4" + +"@vue/runtime-core@3.2.6": + version "3.2.6" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.6.tgz#376baeef7fe02a62377d46d0d0a8ab9510db1d8e" + integrity sha512-3mqtgpj/YSGFxtvTufSERRApo92B16JNNxz9p+5eG6PPuqTmuRJz214MqhKBEgLEAIQ6R6YCbd83ZDtjQnyw2g== + dependencies: + "@vue/reactivity" "3.2.6" + "@vue/shared" "3.2.6" + +"@vue/runtime-dom@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.4.tgz#1025595f2ae99a12fe0e1e6bce8df6761efec24b" + integrity sha512-HcVtLyn2SGwsf6BFPwkvDPDOhOqkOKcfHDpBp5R1coX+qMsOFrY8lJnGXIY+JnxqFjND00E9+u+lq5cs/W7ooA== + dependencies: + "@vue/runtime-core" "3.2.4" + "@vue/shared" "3.2.4" + csstype "^2.6.8" + +"@vue/runtime-dom@3.2.6": + version "3.2.6" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.6.tgz#0f74dbca84d56c222fbfbd53415b260386859a3b" + integrity sha512-fq33urnP0BNCGm2O3KCzkJlKIHI80C94HJ4qDZbjsTtxyOn5IHqwKSqXVN3RQvO6epcQH+sWS+JNwcNDPzoasg== + dependencies: + "@vue/runtime-core" "3.2.6" + "@vue/shared" "3.2.6" + csstype "^2.6.8" + +"@vue/server-renderer@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.4.tgz#7d465a0e3c8d4eefd45b21c4b968269880a02215" + integrity sha512-ai9WxJ78nnUDk+26vwZhlA1Quz3tA+90DgJX6iseen2Wwnndd91xicFW+6ROR/ZP0yFNuQ017eZJBw8OqoPL+w== + dependencies: + "@vue/compiler-ssr" "3.2.4" + "@vue/shared" "3.2.4" + +"@vue/shared@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.4.tgz#ba2a09527afff27b28d08f921b4a597e9504ca7a" + integrity sha512-j2j1MRmjalVKr3YBTxl/BClSIc8UQ8NnPpLYclxerK65JIowI4O7n8O8lElveEtEoHxy1d7BelPUDI0Q4bumqg== + +"@vue/shared@3.2.6": + version "3.2.6" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.6.tgz#2c22bae88fe2b7b59fa68a9c9c4cd60bae2c1794" + integrity sha512-uwX0Qs2e6kdF+WmxwuxJxOnKs/wEkMArtYpHSm7W+VY/23Tl8syMRyjnzEeXrNCAP0/8HZxEGkHJsjPEDNRuHw== + +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== + +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" + +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.3, abab@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +abbrev@1, abbrev@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-import-assertions@^1.7.6: + version "1.7.6" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78" + integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA== + +acorn-jsx@^5.2.0, acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn-walk@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.1.tgz#3ddab7f84e4a7e2313f6c414c5b7dac85f4e3ebc" + integrity sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w== + +acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.0.4, acorn@^8.2.4, acorn@^8.4.1: + version "8.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" + integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== + +agent-base@6, agent-base@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== + dependencies: + es6-promisify "^5.0.0" + +agentkeepalive@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.4.tgz#d928028a4862cb11718e55227872e842a44c945b" + integrity sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ== + dependencies: + debug "^4.1.0" + depd "^1.1.2" + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1, ajv@^8.6.0: + version "8.6.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" + integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-html@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-regex@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.0.tgz#ecc7f5933cbe5ac7b33e209a5ff409ab1669c6b2" + integrity sha512-tAaOSrWCHF+1Ear1Z4wnJCXA9GGox4K6Ic85a5qalES2aeEwQGr7UC93mwef49536PkCYjzkp0zIxfFvexJ6zQ== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansicolors@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + integrity sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk= + +ansistyles@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" + integrity sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk= + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +"aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +archiver-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" + integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== + dependencies: + glob "^7.1.4" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^2.0.0" + +archiver@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz#dd3e097624481741df626267564f7dd8640a45ba" + integrity sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg== + dependencies: + archiver-utils "^2.1.0" + async "^3.2.0" + buffer-crc32 "^0.2.1" + readable-stream "^3.6.0" + readdir-glob "^1.0.0" + tar-stream "^2.2.0" + zip-stream "^4.1.0" + +archy@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + +are-we-there-yet@^1.1.5, are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= + +array-find@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" + integrity sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-includes@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" + integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.1.1" + is-string "^1.0.5" + +array-slice@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +array.prototype.flat@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asap@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-done@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.2.tgz#5e15aa729962a4b07414f528a88cdf18e0b290a2" + integrity sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.2" + process-nextick-args "^2.0.0" + stream-exhaust "^1.0.1" + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-foreach@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async-validator@~1.8.1: + version "1.8.5" + resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0" + integrity sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA== + dependencies: + babel-runtime "6.x" + +async@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +async@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz#d3274ec66d107a47476a4c49136aacdb00665fc8" + integrity sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atoa@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/atoa/-/atoa-1.0.0.tgz#0cc0e91a480e738f923ebc103676471779b34a49" + integrity sha1-DMDpGkgOc4+SPrwQNnZHF3mzSkk= + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@10.3.1: + version "10.3.1" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.3.1.tgz#954214821d3aa06692406c6a0a9e9d401eafbed2" + integrity sha512-L8AmtKzdiRyYg7BUXJTzigmhbQRCXFKz6SA1Lqo0+AR2FBbQ4aTAPFSDlOutnFkjhiz8my4agGXog1xlMjPJ6A== + dependencies: + browserslist "^4.16.6" + caniuse-lite "^1.0.30001243" + colorette "^1.2.2" + fraction.js "^4.1.1" + normalize-range "^0.1.2" + postcss-value-parser "^4.1.0" + +autoprefixer@^10.3.2: + version "10.3.2" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.3.2.tgz#836e4b4f59eb6876c41012c1c937be74035f3ec8" + integrity sha512-RHKq0YCvhxAn9987n0Gl6lkzLd39UKwCkUPMFE0cHhxU0SvcTjBxWG/CtkZ4/HvbqK9U5V8j03nAcGBlX3er/Q== + dependencies: + browserslist "^4.16.8" + caniuse-lite "^1.0.30001251" + colorette "^1.3.0" + fraction.js "^4.1.1" + normalize-range "^0.1.2" + postcss-value-parser "^4.1.0" + +autoprefixer@^6.3.1: + version "6.7.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" + integrity sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ= + dependencies: + browserslist "^1.7.6" + caniuse-db "^1.0.30000634" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.16" + postcss-value-parser "^3.2.3" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +axios@^0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + dependencies: + follow-redirects "^1.10.0" + +babel-helper-vue-jsx-merge-props@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" + integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg== + +babel-jest@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.6.tgz#e99c6e0577da2655118e3608b68761a5a69bd0d8" + integrity sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA== + dependencies: + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^27.0.6" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-loader@^8.0.6: + version "8.2.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" + integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^1.4.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-dynamic-import-node@^2.3.0, babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz#f7c6b3d764af21cb4a2a1ab6870117dbde15b456" + integrity sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-module-resolver@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz#22a4f32f7441727ec1fbf4967b863e1e3e9f33e2" + integrity sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA== + dependencies: + find-babel-config "^1.2.0" + glob "^7.1.6" + pkg-up "^3.1.0" + reselect "^4.0.0" + resolve "^1.13.1" + +babel-plugin-polyfill-corejs2@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" + integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.2.2" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9" + integrity sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + core-js-compat "^3.14.0" + +babel-plugin-polyfill-regenerator@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" + integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz#909ef08e9f24a4679768be2f60a3df0856843f9d" + integrity sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw== + dependencies: + babel-plugin-jest-hoist "^27.0.6" + babel-preset-current-node-syntax "^1.0.0" + +babel-runtime@6.x, babel-runtime@6.x.x: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +balanced-match@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + integrity sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg= + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1, base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +bcrypt-nodejs@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/bcrypt-nodejs/-/bcrypt-nodejs-0.0.3.tgz#c60917f26dc235661566c681061c303c2b28842b" + integrity sha1-xgkX8m3CNWYVZsaBBhwwPCsohCs= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bcryptjs@^2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" + integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms= + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bin-links@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-2.2.1.tgz#347d9dbb48f7d60e6c11fe68b77a424bee14d61b" + integrity sha512-wFzVTqavpgCCYAh8SVBdnZdiQMxTkGR+T3b14CNpBXIBe2neJWaMGAZ55XWWHELJJ89dscuq0VCBqcVaIOgCMg== + dependencies: + cmd-shim "^4.0.1" + mkdirp "^1.0.3" + npm-normalize-package-bin "^1.0.0" + read-cmd-shim "^2.0.0" + rimraf "^3.0.0" + write-file-atomic "^3.0.3" + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0, binary-extensions@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bl@^4.0.3, bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird@^3.5.0, bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +boolean@^3.0.1: + version "3.1.4" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.4.tgz#f51a2fb5838a99e06f9b6ec1edb674de67026435" + integrity sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w== + +boxen@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" + integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^5.3.1" + chalk "^3.0.0" + cli-boxes "^2.2.0" + string-width "^4.1.0" + term-size "^2.1.0" + type-fest "^0.8.1" + widest-line "^3.1.0" + +boxen@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b" + integrity sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.0" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: + version "1.7.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + integrity sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk= + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.6, browserslist@^4.16.7, browserslist@^4.16.8: + version "4.16.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0" + integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== + dependencies: + caniuse-lite "^1.0.30001251" + colorette "^1.3.0" + electron-to-chromium "^1.3.811" + escalade "^3.1.1" + node-releases "^1.1.75" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + +builtin-modules@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" + integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^15.0.3, cacache@^15.0.5, cacache@^15.2.0: + version "15.2.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz#73af75f77c58e72d8c630a7a2858cb18ef523389" + integrity sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw== + dependencies: + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.1" + tar "^6.0.2" + unique-filename "^1.1.1" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@3.0.x, camel-case@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camel-case@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +caniuse-api@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" + integrity sha1-tTTnxzTE+B7F++isoq0kNUuWLGw= + dependencies: + browserslist "^1.3.6" + caniuse-db "^1.0.30000529" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: + version "1.0.30001251" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001251.tgz#ae1952b08980f916a8fa47a2a5207910c319e44d" + integrity sha512-qZcXjfDu3lwN6LJMpG0qI2Oz0IGpyXh5exkSeWOc3/I7dZBshplxOcRXGtcFIBTr6bCeBxvgQRxwkKTJOr6d1w== + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001243, caniuse-lite@^1.0.30001251: + version "1.0.30001251" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz#6853a606ec50893115db660f82c094d18f096d85" + integrity sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chokidar@3.5.2, "chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.2, chokidar@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chokidar@^2.0.0: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@3.2.0, ci-info@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" + integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cidr-regex@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-3.1.1.tgz#ba1972c57c66f61875f18fd7dd487469770b571d" + integrity sha512-RBqYd32aDwbCMFJRL6wHOlDNYJsPNTt8vC82ErHF5vKt8QQzxm1FrkW8s/R5pVrXMf17sba09Uoy91PKiddAsw== + dependencies: + ip-regex "^4.1.0" + +cint@^8.2.1: + version "8.2.1" + resolved "https://registry.yarnpkg.com/cint/-/cint-8.2.1.tgz#70386b1b48e2773d0d63166a55aff94ef4456a12" + integrity sha1-cDhrG0jidz0NYxZqVa/5TvRFahI= + +cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + +clap@^1.0.9: + version "1.2.3" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" + integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA== + dependencies: + chalk "^1.1.3" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@4.2.x, clean-css@^4.2.1, clean-css@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^2.2.0, cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +cli-columns@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-3.1.2.tgz#6732d972979efc2ae444a1f08e08fa139c96a18e" + integrity sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4= + dependencies: + string-width "^2.0.0" + strip-ansi "^3.0.1" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" + integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q== + +cli-table3@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" + integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== + dependencies: + object-assign "^4.1.0" + string-width "^4.2.0" + optionalDependencies: + colors "^1.1.2" + +cli-table@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.6.tgz#e9d6aa859c7fe636981fd3787378c2a20bce92fc" + integrity sha512-ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ== + dependencies: + colors "1.0.3" + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +cmd-shim@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-4.1.0.tgz#b3a904a6743e9fede4148c6f3800bf2a08135bdd" + integrity sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw== + dependencies: + mkdirp-infer-owner "^2.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +coa@~1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" + integrity sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0= + dependencies: + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.3.0, color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" + integrity sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE= + dependencies: + color-name "^1.0.0" + +color-support@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +color@^0.11.0: + version "0.11.4" + resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + integrity sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q= + dependencies: + clone "^1.0.2" + color-convert "^1.3.0" + color-string "^0.3.0" + +colord@^2.0.1, colord@^2.6: + version "2.7.0" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.7.0.tgz#706ea36fe0cd651b585eb142fe64b6480185270e" + integrity sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q== + +colorette@^1.2.2, colorette@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" + integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== + +colormin@^1.0.5: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" + integrity sha1-6i90IKcrlogaOKrlnsEkpvcpgTM= + dependencies: + color "^0.11.0" + css-color-names "0.0.4" + has "^1.0.1" + +colors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= + +colors@^1.1.2, colors@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +colors@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= + +columnify@~1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs= + dependencies: + strip-ansi "^3.0.0" + wcwidth "^1.0.0" + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@2.17.x: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +commander@^2.12.1, commander@^2.19.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^6.2.0, commander@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +commander@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + +common-ancestor-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" + integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== + +common-tags@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +compare-version@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" + integrity sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +compress-commons@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" + integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== + dependencies: + buffer-crc32 "^0.2.13" + crc32-stream "^4.0.2" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression-webpack-plugin@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-8.0.1.tgz#13b34403029760e66007f0bac8cf892a2009a3f4" + integrity sha512-VWDXcOgEafQDMFXEnoia0VBXJ+RMw81pmqe/EBiOIBnMfY8pG26eqwIS/ytGpzy1rozydltL0zL6KDH9XNWBxQ== + dependencies: + schema-utils "^3.0.0" + serialize-javascript "^6.0.0" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +confusing-browser-globals@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" + integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +consolidate@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.16.0.tgz#a11864768930f2f19431660a65906668f5fbdc16" + integrity sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ== + dependencies: + bluebird "^3.7.2" + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +contra@1.9.4: + version "1.9.4" + resolved "https://registry.yarnpkg.com/contra/-/contra-1.9.4.tgz#f53bde42d7e5b5985cae4d99a8d610526de8f28d" + integrity sha1-9TveQtfltZhcrk2ZqNYQUm3o8o0= + dependencies: + atoa "1.0.0" + ticky "1.0.1" + +convert-source-map@^1.2.0, convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copy-webpack-plugin@9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-9.0.1.tgz#b71d21991599f61a4ee00ba79087b8ba279bbb59" + integrity sha512-14gHKKdYIxF84jCEgPgYXCPpldbwpxxLbCmA7LReY7gvbaT555DgeBWBgBZM116tv/fO6RRJrsivBqRyRlukhw== + dependencies: + fast-glob "^3.2.5" + glob-parent "^6.0.0" + globby "^11.0.3" + normalize-path "^3.0.0" + p-limit "^3.1.0" + schema-utils "^3.0.0" + serialize-javascript "^6.0.0" + +core-js-compat@^3.14.0, core-js-compat@^3.16.0, core-js-compat@^3.6.5: + version "3.16.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.16.2.tgz#442ef1d933ca6fc80859bd5a1db7a3ba716aaf56" + integrity sha512-4lUshXtBXsdmp8cDWh6KKiHUg40AjiuPD3bOWkNVsr1xkAhpUqCjaZ8lB1bKx9Gb5fXcbRbFJ4f4qpRIRTuJqQ== + dependencies: + browserslist "^4.16.7" + semver "7.0.0" + +core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-js@^3.16.2, core-js@^3.6.5: + version "3.16.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.16.2.tgz#3f485822889c7fc48ef463e35be5cc2a4a01a1f4" + integrity sha512-P0KPukO6OjMpjBtHSceAZEWlDD1M2Cpzpg6dBbrjFqFhBHe/BwhxaP820xKOjRn/lZRQirrCusIpLS/n2sgXLQ== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +crc-32@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" + integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== + dependencies: + exit-on-epipe "~1.0.1" + printj "~1.1.0" + +crc32-stream@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" + integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== + dependencies: + crc-32 "^1.2.0" + readable-stream "^3.4.0" + +cross-spawn@7.0.3, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +crossvent@1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/crossvent/-/crossvent-1.5.4.tgz#da2c4f8f40c94782517bf2beec1044148194ab92" + integrity sha1-2ixPj0DJR4JRe/K+7BBEFIGUq5I= + dependencies: + custom-event "1.0.0" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +css-color-names@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-color-names@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-1.0.1.tgz#6ff7ee81a823ad46e020fa2fd6ab40a887e2ba67" + integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA== + +css-declaration-sorter@^6.0.3: + version "6.1.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.1.tgz#77b32b644ba374bc562c0fc6f4fdaba4dfb0b749" + integrity sha512-BZ1aOuif2Sb7tQYY1GeCjG7F++8ggnwUkH5Ictw0mrdpqpEd+zWmcPdstnH2TItlb74FqR0DrVEieon221T/1Q== + dependencies: + timsort "^0.3.0" + +css-loader@5.2.6: + version "5.2.6" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.6.tgz#c3c82ab77fea1f360e587d871a6811f4450cc8d1" + integrity sha512-0wyN5vXMQZu6BvjbrPdUJvkCzGEO24HC7IS7nW4llc6BBFC+zwR9CKtYGv63Puzsg10L/o12inMY5/2ByzfD6w== + dependencies: + icss-utils "^5.1.0" + loader-utils "^2.0.0" + postcss "^8.2.15" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^3.0.0" + semver "^7.3.5" + +css-minimizer-webpack-plugin@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.0.2.tgz#8fadbdf10128cb40227bff275a4bb47412534245" + integrity sha512-B3I5e17RwvKPJwsxjjWcdgpU/zqylzK1bPVghcmpFHRL48DXiBgrtqz1BJsn68+t/zzaLp9kYAaEDvQ7GyanFQ== + dependencies: + cssnano "^5.0.6" + jest-worker "^27.0.2" + p-limit "^3.0.2" + postcss "^8.3.5" + schema-utils "^3.0.0" + serialize-javascript "^6.0.0" + source-map "^0.6.1" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-select@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" + integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== + dependencies: + boolbase "^1.0.0" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" + nth-check "^2.0.0" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css-what@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" + integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.4.tgz#359943bf00c5c8e05489f12dd25f3006f2c1cbd2" + integrity sha512-sPpQNDQBI3R/QsYxQvfB4mXeEcWuw0wGtKtmS5eg8wudyStYMgKOQT39G07EbW1LB56AOYrinRS9f0ig4Y3MhQ== + dependencies: + css-declaration-sorter "^6.0.3" + cssnano-utils "^2.0.1" + postcss-calc "^8.0.0" + postcss-colormin "^5.2.0" + postcss-convert-values "^5.0.1" + postcss-discard-comments "^5.0.1" + postcss-discard-duplicates "^5.0.1" + postcss-discard-empty "^5.0.1" + postcss-discard-overridden "^5.0.1" + postcss-merge-longhand "^5.0.2" + postcss-merge-rules "^5.0.2" + postcss-minify-font-values "^5.0.1" + postcss-minify-gradients "^5.0.2" + postcss-minify-params "^5.0.1" + postcss-minify-selectors "^5.1.0" + postcss-normalize-charset "^5.0.1" + postcss-normalize-display-values "^5.0.1" + postcss-normalize-positions "^5.0.1" + postcss-normalize-repeat-style "^5.0.1" + postcss-normalize-string "^5.0.1" + postcss-normalize-timing-functions "^5.0.1" + postcss-normalize-unicode "^5.0.1" + postcss-normalize-url "^5.0.2" + postcss-normalize-whitespace "^5.0.1" + postcss-ordered-values "^5.0.2" + postcss-reduce-initial "^5.0.1" + postcss-reduce-transforms "^5.0.1" + postcss-svgo "^5.0.2" + postcss-unique-selectors "^5.0.1" + +cssnano-utils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" + integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== + +cssnano@5.0.8, cssnano@^5.0.2, cssnano@^5.0.6: + version "5.0.8" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.8.tgz#39ad166256980fcc64faa08c9bb18bb5789ecfa9" + integrity sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg== + dependencies: + cssnano-preset-default "^5.1.4" + is-resolvable "^1.1.0" + lilconfig "^2.0.3" + yaml "^1.10.2" + +cssnano@^3.3.2: + version "3.10.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" + integrity sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg= + dependencies: + autoprefixer "^6.3.1" + decamelize "^1.1.2" + defined "^1.0.0" + has "^1.0.1" + object-assign "^4.0.1" + postcss "^5.0.14" + postcss-calc "^5.2.0" + postcss-colormin "^2.1.8" + postcss-convert-values "^2.3.4" + postcss-discard-comments "^2.0.4" + postcss-discard-duplicates "^2.0.1" + postcss-discard-empty "^2.0.1" + postcss-discard-overridden "^0.1.1" + postcss-discard-unused "^2.2.1" + postcss-filter-plugins "^2.0.0" + postcss-merge-idents "^2.1.5" + postcss-merge-longhand "^2.0.1" + postcss-merge-rules "^2.0.3" + postcss-minify-font-values "^1.0.2" + postcss-minify-gradients "^1.0.1" + postcss-minify-params "^1.0.4" + postcss-minify-selectors "^2.0.4" + postcss-normalize-charset "^1.1.0" + postcss-normalize-url "^3.0.7" + postcss-ordered-values "^2.1.0" + postcss-reduce-idents "^2.2.2" + postcss-reduce-initial "^1.0.0" + postcss-reduce-transforms "^1.0.3" + postcss-svgo "^2.1.1" + postcss-unique-selectors "^2.0.2" + postcss-value-parser "^3.2.3" + postcss-zindex "^2.0.1" + +csso@^4.0.2, csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +csso@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" + integrity sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U= + dependencies: + clap "^1.0.9" + source-map "^0.5.3" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@^2.6.8: + version "2.6.17" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.17.tgz#4cf30eb87e1d1a005d8b6510f95292413f6a1c0e" + integrity sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A== + +custom-event@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.0.tgz#2e4628be19dc4b214b5c02630c5971e811618062" + integrity sha1-LkYovhncSyFLXAJjDFlx6BFhgGI= + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +date-fns@^2.23.0: + version "2.23.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.23.0.tgz#4e886c941659af0cf7b30fafdd1eaa37e88788a9" + integrity sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA== + +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +debug@^3.1.0, debug@^3.1.1, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= + +decamelize-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decimal.js@^10.2.1: + version "10.3.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" + integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^1.2.0, deepmerge@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" + integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +default-gateway@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + +del@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" + integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== + dependencies: + globby "^11.0.1" + graceful-fs "^4.2.4" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.2" + p-map "^4.0.0" + rimraf "^3.0.2" + slash "^3.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@^1.1.2, depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +dexie@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/dexie/-/dexie-2.0.4.tgz#6027a5e05879424e8f9979d8c14e7420f27e3a11" + integrity sha512-aQ/s1U2wHxwBKRrt2Z/mwFNHMQWhESerFsMYzE+5P5OsIe5o1kgpFMWkzKTtkvkyyEni6mWr/T4HUJuY9xIHLA== + +dezalgo@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= + dependencies: + asap "^2.0.0" + wrappy "1" + +diff-sequences@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" + integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diff@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" + integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +doctrine@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523" + integrity sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM= + dependencies: + esutils "^1.1.6" + isarray "0.0.1" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domelementtype@1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" + integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== + dependencies: + domelementtype "^2.2.0" + +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.5.2, domutils@^2.6.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" + integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv@*, dotenv@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== + +dragula@3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/dragula/-/dragula-3.7.2.tgz#4a35c9d3981ffac1a949c29ca7285058e87393ce" + integrity sha1-SjXJ05gf+sGpScKcpyhQWOhzk84= + dependencies: + contra "1.9.4" + crossvent "1.5.4" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs@^2.3.1, ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + +electron-notarize@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-0.1.1.tgz#c3563d70c5e7b3315f44e8495b30050a8c408b91" + integrity sha512-TpKfJcz4LXl5jiGvZTs5fbEx+wUFXV5u8voeG5WCHWfY/cdgdD8lDZIZRqLVOtR3VO+drgJ9aiSHIO9TYn/fKg== + dependencies: + debug "^4.1.1" + fs-extra "^8.0.1" + +electron-osx-sign@^0.4.11: + version "0.4.17" + resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.4.17.tgz#2727ca0c79e1e4e5ccd3861fb3da9c3c913b006c" + integrity sha512-wUJPmZJQCs1zgdlQgeIpRcvrf7M5/COQaOV68Va1J/SgmWx5KL2otgg+fAae7luw6qz9R8Gvu/Qpe9tAOu/3xQ== + dependencies: + bluebird "^3.5.0" + compare-version "^0.1.2" + debug "^2.6.8" + isbinaryfile "^3.0.2" + minimist "^1.2.0" + plist "^3.0.1" + +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.811: + version "1.3.816" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.816.tgz#ab6488b126de92670a6459fe3e746050e0c6276f" + integrity sha512-/AvJPIJldO0NkwkfpUD7u1e4YEGRFBQpFuvl9oGCcVgWOObsZB1loxVGeVUJB9kmvfsBUUChPYdgRzx6+AKNyg== + +element-ui@^2.15.5: + version "2.15.5" + resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.15.5.tgz#dfb376dc5cd60adab21c991bd4fac3e67e5300f4" + integrity sha512-B/YCdz2aRY2WnFXzbTRTHPKZHBD/2KV6u88EBnkaARC/Lyxnap+7vpvrcW5UNTyVwjItS5Fj1eQyRy6236lbXg== + dependencies: + async-validator "~1.8.1" + babel-helper-vue-jsx-merge-props "^2.0.0" + deepmerge "^1.2.0" + normalize-wheel "^1.0.1" + resize-observer-polyfill "^1.5.0" + throttle-debounce "^1.0.1" + +elementtree@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/elementtree/-/elementtree-0.1.7.tgz#9ac91be6e52fb6e6244c4e54a4ac3ed8ae8e29c0" + integrity sha1-mskb5uUvtuYkTE5UpKw+2K6OKcA= + dependencies: + sax "1.1.4" + +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@^1.0.2, encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +encoding@^0.1.12: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" + integrity sha1-TW5omzcl+GCQknzMhs2fFjW4ni4= + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.2.0" + tapable "^0.1.8" + +enhanced-resolve@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enhanced-resolve@^5.0.0, enhanced-resolve@^5.8.0: + version "5.8.2" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" + integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +errno@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" + integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== + dependencies: + stackframe "^1.1.1" + +es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: + version "1.18.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" + integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.11.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + +es-module-lexer@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.7.1.tgz#c2c8e0f46f2df06274cdaf0dd3f3b33e0a0b267d" + integrity sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw== + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + dependencies: + es6-promise "^4.0.3" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + +escape-html@^1.0.1, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-airbnb-base@^14.2.1: + version "14.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e" + integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== + dependencies: + confusing-browser-globals "^1.0.10" + object.assign "^4.1.2" + object.entries "^1.1.2" + +eslint-config-airbnb-typescript@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-14.0.0.tgz#fc22246973b99f0820e2ad1ab929fdd011dfa039" + integrity sha512-d2Nit2ByZARGRYK6tgSNl3nnmGZPyvsgbsKFcmm+nAhvT8VjVpifG5jI4tzObUUPb0sWw0E1oO/0pSpBD/pIuQ== + +eslint-config-standard@^16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz#6c8761e544e96c531ff92642eeb87842b8488516" + integrity sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg== + +eslint-import-resolver-node@^0.3.4, eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== + dependencies: + debug "^3.2.7" + resolve "^1.20.0" + +eslint-import-resolver-webpack@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.1.tgz#6d2fb928091daf2da46efa1e568055555b2de902" + integrity sha512-O/8mG6AHmaKYSMb4lWxiXPpaARxOJ4rMQEHJ8vTgjS1MXooJA3KPgBPPAdOPoV17v5ML5120qod5FBLM+DtgEw== + dependencies: + array-find "^1.0.0" + debug "^3.2.7" + enhanced-resolve "^0.9.1" + find-root "^1.1.0" + has "^1.0.3" + interpret "^1.4.0" + is-core-module "^2.4.0" + is-regex "^1.1.3" + lodash "^4.17.21" + resolve "^1.20.0" + semver "^5.7.1" + +eslint-module-utils@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz#94e5540dd15fe1522e8ffa3ec8db3b7fa7e7a534" + integrity sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q== + dependencies: + debug "^3.2.7" + pkg-dir "^2.0.0" + +eslint-plugin-import@^2.24.1: + version "2.24.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.1.tgz#64aba8b567a1ba9921d5465586e86c491b8e2135" + integrity sha512-KSFWhNxPH8OGJwpRJJs+Z7I0a13E2iFQZJIvSnCu6KUs4qmgAm3xN9GYBCSoiGWmwA7gERZPXqYQjcoCROnYhQ== + dependencies: + array-includes "^3.1.3" + array.prototype.flat "^1.2.4" + debug "^2.6.9" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.6.2" + find-up "^2.0.0" + has "^1.0.3" + is-core-module "^2.6.0" + minimatch "^3.0.4" + object.values "^1.1.4" + pkg-up "^2.0.0" + read-pkg-up "^3.0.0" + resolve "^1.20.0" + tsconfig-paths "^3.10.1" + +eslint-plugin-quasar@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-quasar/-/eslint-plugin-quasar-1.0.0.tgz#b9db43c04db1866525258f61ec015cf8d1bd1892" + integrity sha512-Q5dyIYfYmO54oai8yQV6Me+9uPLl/q9UhYqlGuXcLKHTAXt/JKdKOR3wQlNLDJ8lP01GL38SsSvz6yO/z8Z/9Q== + dependencies: + requireindex "~1.2.0" + semver-compare "^1.0.0" + +eslint-plugin-vue@^7.16.0: + version "7.16.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.16.0.tgz#7fe9fea039a190b108319c1380adf543ef57707d" + integrity sha512-0E2dVvVC7I2Xm1HXyx+ZwPj9CNX4NJjs4K4r+GVsHWyt5Pew3JLD4fI7A91b2jeL0TXE7LlszrwLSTJU9eqehw== + dependencies: + eslint-utils "^2.1.0" + natural-compare "^1.4.0" + semver "^6.3.0" + vue-eslint-parser "^7.10.0" + +eslint-scope@5.1.1, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-webpack-plugin@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.0.1.tgz#0990a80e9d5927e7e68365f93426cb340679e88c" + integrity sha512-PAHHDjCg2yWBNoiBPYLZWcv+M83urkslQKER7XvK84lo5YLcihJK6qwnCH2Fkt3eVdX+G1iyGZRlKsIhTiczHw== + dependencies: + "@types/eslint" "^7.2.14" + jest-worker "^27.0.6" + micromatch "^4.0.4" + normalize-path "^3.0.0" + schema-utils "^3.1.0" + +eslint@^7.32.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^2.6.0: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +estree-walker@^2.0.1, estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375" + integrity sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U= + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit-on-epipe@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" + integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.6.tgz#a4d74fbe27222c718fff68ef49d78e26a8fd4c05" + integrity sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw== + dependencies: + "@jest/types" "^27.0.6" + ansi-styles "^5.0.0" + jest-get-type "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-regex-util "^27.0.6" + +express@4.17.1, express@^4.16.2, express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-zip@^1.6.6: + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== + dependencies: + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@3.2.7, fast-glob@^3.1.1, fast-glob@^3.2.5: + version "3.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" + integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fast-memoize@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e" + integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw== + +fastest-levenshtein@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" + integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== + +fastq@^1.6.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" + integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-loader@6.2.0, file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-babel-config@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2" + integrity sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA== + dependencies: + json5 "^0.5.1" + path-exists "^3.0.0" + +find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@5.0.0, find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" + integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== + +flatten@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + +follow-redirects@^1.0.0, follow-redirects@^1.10.0: + version "1.14.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.2.tgz#cecb825047c00f5e66b142f90fed4f515dec789b" + integrity sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA== + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= + dependencies: + for-in "^1.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +fork-ts-checker-webpack-plugin@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.1.0.tgz#7581a6ccd7cbbed9ecce3de64fb1f599d7a2990b" + integrity sha512-xLNufWQ1dfQUdZe48TGQlER/0OkcMnUB6lfbN9Tt13wsYyo+2DwcCbnOaPBo1PoFow/WL8pJPktGIdbJaHxAnw== + dependencies: + "@babel/code-frame" "^7.8.3" + "@types/json-schema" "^7.0.5" + chalk "^4.1.0" + chokidar "^3.4.2" + cosmiconfig "^6.0.0" + deepmerge "^4.2.2" + fs-extra "^9.0.0" + memfs "^3.1.2" + minimatch "^3.0.4" + schema-utils "2.7.0" + semver "^7.3.2" + tapable "^1.0.0" + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fp-and-or@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/fp-and-or/-/fp-and-or-0.1.3.tgz#e6fba83872a5853a56b3ebdf8d3167f5dfca1882" + integrity sha512-wJaE62fLaB3jCYvY2ZHjZvmKK2iiLiiehX38rz5QZxtdN8fVPJDeZUiVvJrHStdTc+23LHlyZuSEKgFc0pxi2g== + +fraction.js@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.1.tgz#ac4e520473dae67012d618aab91eda09bcb400ff" + integrity sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^8.0.1, fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.0, fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0, fs-minipass@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-monkey@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" + integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== + +fs-plus@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fs-plus/-/fs-plus-3.1.1.tgz#02c085ba0a013084cff2f3e89b17c60c1d9b4ab5" + integrity sha512-Se2PJdOWXqos1qVTkvqqjb0CSnfBnwwD+pq+z4ksT+e97mEShod/hrNg0TRCCsXPbJzcIq+NuzQhigunMWMJUA== + dependencies: + async "^1.5.2" + mkdirp "^0.5.1" + rimraf "^2.5.2" + underscore-plus "1.x" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gauge@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.1.tgz#4bea07bcde3782f06dced8950e51307aa0f4a346" + integrity sha512-6STz6KdQgxO4S/ko+AbjlFGGdGcknluoqU+79GOFCDqqyYj5OanQf9AjxwN0jCidtT+ziPMmPSt9E4hfQ0CwIQ== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^1.0.1 || ^2.0.0" + strip-ansi "^3.0.1 || ^4.0.0" + wide-align "^1.1.2" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gaze@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== + dependencies: + globule "^1.0.0" + +generic-names@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" + integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== + dependencies: + loader-utils "^1.1.0" + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stdin@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.1.tgz#42054f685eb6a44e7a7d189a96efa40a54971aa7" + integrity sha512-kEVjS71mQazDBHKcsq4E9u/vUzaLcw1A8EtUeydawvIWQCJM0qQ08G1H7/XTjFUulla6XQiDOG6MXSaG0HDKog== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob-watcher@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.5.tgz#aa6bce648332924d9a8489be41e3e5c52d4186dc" + integrity sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw== + dependencies: + anymatch "^2.0.0" + async-done "^1.2.0" + chokidar "^2.0.0" + is-negated-glob "^1.0.0" + just-debounce "^1.0.0" + normalize-path "^3.0.0" + object.defaults "^1.1.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@~7.1.1: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-agent@^2.0.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz#566331b0646e6bf79429a16877685c4a1fbf76dc" + integrity sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg== + dependencies: + boolean "^3.0.1" + core-js "^3.6.5" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + +global-dirs@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" + integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== + dependencies: + ini "1.3.7" + +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + dependencies: + ini "2.0.0" + +global-tunnel-ng@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" + integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== + dependencies: + encodeurl "^1.0.2" + lodash "^4.17.10" + npm-conf "^1.1.3" + tunnel "^0.0.6" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.6.0, globals@^13.9.0: + version "13.11.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7" + integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" + integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== + dependencies: + define-properties "^1.1.3" + +globby@^11.0.1, globby@^11.0.3, globby@^11.0.4: + version "11.0.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +globule@^1.0.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.3.tgz#811919eeac1ab7344e905f2e3be80a13447973c2" + integrity sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg== + dependencies: + glob "~7.1.1" + lodash "~4.17.10" + minimatch "~3.0.2" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.8: + version "4.2.8" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== + +graphql-tag@^2.12.5: + version "2.12.5" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.5.tgz#5cff974a67b417747d05c8d9f5f3cb4495d0db8f" + integrity sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ== + dependencies: + tslib "^2.1.0" + +graphql@^15.5.1: + version "15.5.1" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.5.1.tgz#f2f84415d8985e7b84731e7f3536f8bb9d383aad" + integrity sha512-FeTRX67T3LoE3LWAxxOlW2K3Bz+rMYAC18rRguK4wgXaTZMiJwSUwDmPFo3UadAKbzirKIg5Qy+sNJXbpPRnQw== + +gsap@^3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/gsap/-/gsap-3.7.1.tgz#1c5857f4fbcbd3f5ca0b513ef7abf828fbaa20a8" + integrity sha512-4qxuaC2yFWRjMRof5tI/7c9/+L4xMsCoqHrZAmuh+IbOokTnZyoeF0VgvcVHq3uo+/VJZCs7PTvjrFasfGl+ww== + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-unicode@^2.0.0, has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-sum@2.0.0, hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== + +hash-sum@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" + integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= + +he@1.2.x, he@^1.1.0, he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^4.0.1, hosted-git-info@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" + integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== + dependencies: + lru-cache "^6.0.0" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-entities@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" + integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" + integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== + dependencies: + camel-case "^4.1.1" + clean-css "^4.2.3" + commander "^4.1.1" + he "^1.2.0" + param-case "^3.0.3" + relateurl "^0.2.7" + terser "^4.6.3" + +html-minifier@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-4.0.0.tgz#cca9aad8bce1175e02e17a8c33e46d8988889f56" + integrity sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig== + dependencies: + camel-case "^3.0.0" + clean-css "^4.2.1" + commander "^2.19.0" + he "^1.2.0" + param-case "^2.1.1" + relateurl "^0.2.7" + uglify-js "^3.5.1" + +html-minifier@^3.5.16: + version "3.5.21" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== + dependencies: + camel-case "3.0.x" + clean-css "4.2.x" + commander "2.17.x" + he "1.2.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.4.x" + +html-webpack-plugin@5.3.2, html-webpack-plugin@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.3.2.tgz#7b04bf80b1f6fe84a6d3f66c8b79d64739321b08" + integrity sha512-HvB33boVNCz2lTyBsSiMffsJ+m0YLIQ+pskblXgN9fnjS1BgEcuAfdInfXfGrkdXV406k9FiDi86eVCDBgJOyQ== + dependencies: + "@types/html-minifier-terser" "^5.0.0" + html-minifier-terser "^5.0.1" + lodash "^4.17.21" + pretty-error "^3.0.4" + tapable "^2.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-parser-js@>=0.5.1: + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http-proxy-middleware@^0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz#0987e6bb5a5606e5a69168d8f967a87f15dd8aab" + integrity sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q== + dependencies: + http-proxy "^1.16.2" + is-glob "^4.0.0" + lodash "^4.17.5" + micromatch "^3.1.9" + +http-proxy-middleware@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" + integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== + dependencies: + "@types/http-proxy" "^1.17.5" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy-middleware@^2.0.0, http-proxy-middleware@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.1.tgz#7ef3417a479fb7666a571e09966c66a39bd2c15f" + integrity sha512-cfaXRVoZxSed/BmkA7SwBVNI9Kj7HFltaE5rqYOub5kWzWZ+gofV2koVN1j2rMW7pEfSSlCHGJ31xmuyFyfLOg== + dependencies: + "@types/http-proxy" "^1.17.5" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.16.2, http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-proxy-agent@^2.2.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" + integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== + dependencies: + agent-base "^4.3.0" + debug "^3.1.0" + +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= + dependencies: + ms "^2.0.0" + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +idb@^6.0.0: + version "6.1.2" + resolved "https://registry.yarnpkg.com/idb/-/idb-6.1.2.tgz#82ef5c951b8e1f47875d36ccafa4bedafc62f2f1" + integrity sha512-1DNDVu3yDhAZkFDlJf0t7r+GLZ248F5pTAtA7V0oVG3yjmV125qZOx3g0XpAEkGZVYQiFDAsSOnGet2bhugc3w== + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-walk@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" + integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== + dependencies: + minimatch "^3.0.4" + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= + +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" + integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== + +ini@2.0.0, ini@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +init-package-json@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-2.0.4.tgz#9f9f66cd5934e6d5f645150e15013d384d0b90d2" + integrity sha512-gUACSdZYka+VvnF90TsQorC+1joAVWNI724vBNj3RD0LLMeDss2IuzaeiQs0T4YzKs76BPHtrp/z3sn2p+KDTw== + dependencies: + glob "^7.1.1" + npm-package-arg "^8.1.2" + promzard "^0.3.0" + read "~1.0.1" + read-package-json "^4.0.0" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + validate-npm-package-name "^3.0.0" + +inquirer@8.1.2: + version "8.1.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.1.2.tgz#65b204d2cd7fb63400edd925dfe428bafd422e3d" + integrity sha512-DHLKJwLPNgkfwNmsuEUKSejJFbkv0FMO9SMiQbjI3n5NQuCrSIBqP66ggqyz2a6t2qEolKrMjhQ3+W/xXgUQ+Q== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.3.0" + run-async "^2.4.0" + rxjs "^7.2.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +inquirer@^7.3.3: + version "7.3.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +internal-ip@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-6.2.0.tgz#d5541e79716e406b74ac6b07b856ef18dc1621c1" + integrity sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg== + dependencies: + default-gateway "^6.0.0" + ipaddr.js "^1.9.1" + is-ip "^3.1.0" + p-event "^4.2.0" + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +interpret@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +ip-regex@^4.0.0, ip-regex@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.1, ipaddr.js@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-ci@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" + integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== + dependencies: + ci-info "^3.1.1" + +is-cidr@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-4.0.2.tgz#94c7585e4c6c77ceabf920f8cde51b8c0fda8814" + integrity sha512-z4a1ENUajDbEl/Q6/pVBpTR1nBjjEE1X7qb7bmWYanNnPoKAvUCPFKeXV6Fe4mgTkWKBqiHIcwsI3SndiO5FeA== + dependencies: + cidr-regex "^3.1.1" + +is-core-module@^2.2.0, is-core-module@^2.4.0, is-core-module@^2.5.0, is-core-module@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" + integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-dom-node-list@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-dom-node-list/-/is-dom-node-list-1.2.1.tgz#141ded0c66de759d0976800d21370bb908f2950f" + integrity sha512-P1H071iT5TGG8pAHslhrLDo/tQLYc8tGuWABVqhGU4l2mm7aDNb9cx2myQ2AujEQO6B2cAujcW4a0/+6UfXInw== + dependencies: + is-dom-node "^1.0.4" + +is-dom-node@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-dom-node/-/is-dom-node-1.0.4.tgz#abb18af7133f1e687610cfeb274da1ced342f1c5" + integrity sha512-NEnTHKCeyGJTL0cKdzATF8SWzyTMYf5CbNKWBvsXvyMxZG32g+a09qkeCbrfQNLTD85CbPeHb4YjIJCjyzF0yA== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" + integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== + dependencies: + global-dirs "^2.0.1" + is-path-inside "^3.0.1" + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-ip@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" + integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== + dependencies: + ip-regex "^4.0.0" + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + +is-negated-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" + integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-npm@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" + integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== + +is-npm@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" + integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== + +is-number-object@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-inside@^3.0.1, is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-regex@^1.0.4, is-regex@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-resolvable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-svg@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" + integrity sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk= + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^2.1.1, is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isbinaryfile@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf" + integrity sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w== + +isbinaryfile@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" + integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== + dependencies: + buffer-alloc "^1.2.0" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +javascript-stringify@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz#27c76539be14d8bd128219a2d731b09337904e79" + integrity sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg== + +jest-changed-files@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.6.tgz#bed6183fcdea8a285482e3b50a9a7712d49a7a8b" + integrity sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA== + dependencies: + "@jest/types" "^27.0.6" + execa "^5.0.0" + throat "^6.0.1" + +jest-circus@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.6.tgz#dd4df17c4697db6a2c232aaad4e9cec666926668" + integrity sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q== + dependencies: + "@jest/environment" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.0.6" + is-generator-fn "^2.0.0" + jest-each "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-runtime "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + pretty-format "^27.0.6" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.6.tgz#d021e5f4d86d6a212450d4c7b86cb219f1e6864f" + integrity sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg== + dependencies: + "@jest/core" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + jest-config "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" + prompts "^2.0.1" + yargs "^16.0.3" + +jest-config@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.6.tgz#119fb10f149ba63d9c50621baa4f1f179500277f" + integrity sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^27.0.6" + "@jest/types" "^27.0.6" + babel-jest "^27.0.6" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + is-ci "^3.0.0" + jest-circus "^27.0.6" + jest-environment-jsdom "^27.0.6" + jest-environment-node "^27.0.6" + jest-get-type "^27.0.6" + jest-jasmine2 "^27.0.6" + jest-regex-util "^27.0.6" + jest-resolve "^27.0.6" + jest-runner "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" + micromatch "^4.0.4" + pretty-format "^27.0.6" + +jest-diff@^27.0.0, jest-diff@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.6.tgz#4a7a19ee6f04ad70e0e3388f35829394a44c7b5e" + integrity sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.0.6" + jest-get-type "^27.0.6" + pretty-format "^27.0.6" + +jest-docblock@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz#cc78266acf7fe693ca462cbbda0ea4e639e4e5f3" + integrity sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA== + dependencies: + detect-newline "^3.0.0" + +jest-each@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.6.tgz#cee117071b04060158dc8d9a66dc50ad40ef453b" + integrity sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA== + dependencies: + "@jest/types" "^27.0.6" + chalk "^4.0.0" + jest-get-type "^27.0.6" + jest-util "^27.0.6" + pretty-format "^27.0.6" + +jest-environment-jsdom@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz#f66426c4c9950807d0a9f209c590ce544f73291f" + integrity sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw== + dependencies: + "@jest/environment" "^27.0.6" + "@jest/fake-timers" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + jest-mock "^27.0.6" + jest-util "^27.0.6" + jsdom "^16.6.0" + +jest-environment-node@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.6.tgz#a6699b7ceb52e8d68138b9808b0c404e505f3e07" + integrity sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w== + dependencies: + "@jest/environment" "^27.0.6" + "@jest/fake-timers" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + jest-mock "^27.0.6" + jest-util "^27.0.6" + +jest-get-type@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" + integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== + +jest-haste-map@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.6.tgz#4683a4e68f6ecaa74231679dca237279562c8dc7" + integrity sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w== + dependencies: + "@jest/types" "^27.0.6" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^27.0.6" + jest-serializer "^27.0.6" + jest-util "^27.0.6" + jest-worker "^27.0.6" + micromatch "^4.0.4" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" + +jest-jasmine2@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz#fd509a9ed3d92bd6edb68a779f4738b100655b37" + integrity sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^27.0.6" + "@jest/source-map" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^27.0.6" + is-generator-fn "^2.0.0" + jest-each "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-runtime "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + pretty-format "^27.0.6" + throat "^6.0.1" + +jest-leak-detector@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz#545854275f85450d4ef4b8fe305ca2a26450450f" + integrity sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ== + dependencies: + jest-get-type "^27.0.6" + pretty-format "^27.0.6" + +jest-matcher-utils@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz#2a8da1e86c620b39459f4352eaa255f0d43e39a9" + integrity sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA== + dependencies: + chalk "^4.0.0" + jest-diff "^27.0.6" + jest-get-type "^27.0.6" + pretty-format "^27.0.6" + +jest-message-util@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.6.tgz#158bcdf4785706492d164a39abca6a14da5ab8b5" + integrity sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.0.6" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.4" + pretty-format "^27.0.6" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.6.tgz#0efdd40851398307ba16778728f6d34d583e3467" + integrity sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw== + dependencies: + "@jest/types" "^27.0.6" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" + integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== + +jest-resolve-dependencies@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz#3e619e0ef391c3ecfcf6ef4056207a3d2be3269f" + integrity sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA== + dependencies: + "@jest/types" "^27.0.6" + jest-regex-util "^27.0.6" + jest-snapshot "^27.0.6" + +jest-resolve@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.6.tgz#e90f436dd4f8fbf53f58a91c42344864f8e55bff" + integrity sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA== + dependencies: + "@jest/types" "^27.0.6" + chalk "^4.0.0" + escalade "^3.1.1" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^27.0.6" + jest-validate "^27.0.6" + resolve "^1.20.0" + slash "^3.0.0" + +jest-runner@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.6.tgz#1325f45055539222bbc7256a6976e993ad2f9520" + integrity sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ== + dependencies: + "@jest/console" "^27.0.6" + "@jest/environment" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-docblock "^27.0.6" + jest-environment-jsdom "^27.0.6" + jest-environment-node "^27.0.6" + jest-haste-map "^27.0.6" + jest-leak-detector "^27.0.6" + jest-message-util "^27.0.6" + jest-resolve "^27.0.6" + jest-runtime "^27.0.6" + jest-util "^27.0.6" + jest-worker "^27.0.6" + source-map-support "^0.5.6" + throat "^6.0.1" + +jest-runtime@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.6.tgz#45877cfcd386afdd4f317def551fc369794c27c9" + integrity sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q== + dependencies: + "@jest/console" "^27.0.6" + "@jest/environment" "^27.0.6" + "@jest/fake-timers" "^27.0.6" + "@jest/globals" "^27.0.6" + "@jest/source-map" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-haste-map "^27.0.6" + jest-message-util "^27.0.6" + jest-mock "^27.0.6" + jest-regex-util "^27.0.6" + jest-resolve "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^16.0.3" + +jest-serializer@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.6.tgz#93a6c74e0132b81a2d54623251c46c498bb5bec1" + integrity sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.6.tgz#f4e6b208bd2e92e888344d78f0f650bcff05a4bf" + integrity sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A== + dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/parser" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.0.0" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^27.0.6" + graceful-fs "^4.2.4" + jest-diff "^27.0.6" + jest-get-type "^27.0.6" + jest-haste-map "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-resolve "^27.0.6" + jest-util "^27.0.6" + natural-compare "^1.4.0" + pretty-format "^27.0.6" + semver "^7.3.2" + +jest-util@^27.0.0, jest-util@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.6.tgz#e8e04eec159de2f4d5f57f795df9cdc091e50297" + integrity sha512-1JjlaIh+C65H/F7D11GNkGDDZtDfMEM8EBXsvd+l/cxtgQ6QhxuloOaiayt89DxUvDarbVhqI98HhgrM1yliFQ== + dependencies: + "@jest/types" "^27.0.6" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^3.0.0" + picomatch "^2.2.3" + +jest-validate@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.6.tgz#930a527c7a951927df269f43b2dc23262457e2a6" + integrity sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA== + dependencies: + "@jest/types" "^27.0.6" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.0.6" + leven "^3.1.0" + pretty-format "^27.0.6" + +jest-watcher@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.6.tgz#89526f7f9edf1eac4e4be989bcb6dec6b8878d9c" + integrity sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ== + dependencies: + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^27.0.6" + string-length "^4.0.1" + +jest-worker@^26.2.1: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest-worker@^27.0.2, jest-worker@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" + integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.6.tgz#10517b2a628f0409087fbf473db44777d7a04505" + integrity sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA== + dependencies: + "@jest/core" "^27.0.6" + import-local "^3.0.2" + jest-cli "^27.0.6" + +jju@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" + integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo= + +jquery@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" + integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== + +js-base64@^2.1.8, js-base64@^2.1.9: + version "2.6.4" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" + integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== + +js-cookie@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.0.tgz#db1661d5459920ec95aaf186ccf74ceb4a495164" + integrity sha512-oUbbplKuH07/XX2YD2+Q+GMiPpnVXaRz8npE7suhBH9QEkJe2W7mQ6rwuMXHue3fpfcftQwzgyvGzIHyfCSngQ== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +js-yaml@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + integrity sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A= + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^16.6.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-loader@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-parse-helpfulerror@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz#13f14ce02eed4e981297b64eb9e3b932e2dd13dc" + integrity sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w= + dependencies: + jju "^1.1.0" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-schema@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.3.0.tgz#90a9c5054bd065422c00241851ce8d59475b701b" + integrity sha512-TYfxx36xfl52Rf1LU9HyWSLGPdYLL+SQ8/E/0yVyKG8wCCDaSrhPap0vEdlsZWRaS6tnKKLPGiEJGiREVC8kxQ== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-nice@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" + integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@2.x, json5@^2.1.2, json5@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonlines@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsonlines/-/jsonlines-0.1.1.tgz#4fcd246dc5d0e38691907c44ab002f782d1d94cc" + integrity sha1-T80kbcXQ44aRkHxEqwAveC0dlMw= + +jsonparse@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + +jsonpointer@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.1.0.tgz#501fb89986a2389765ba09e6053299ceb4f2c2cc" + integrity sha512-CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg== + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +just-debounce@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.1.0.tgz#2f81a3ad4121a76bc7cb45dbf704c0d76a8e5ddf" + integrity sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ== + +just-diff-apply@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-3.0.0.tgz#a77348d24f0694e378b57293dceb65bdf5a91c4f" + integrity sha512-K2MLc+ZC2DVxX4V61bIKPeMUUfj1YYZ3h0myhchDXOW1cKoPZMnjIoNCqv9bF2n5Oob1PFxuR2gVJxkxz4e58w== + +just-diff@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-3.1.1.tgz#d50c597c6fd4776495308c63bdee1b6839082647" + integrity sha512-sdMWKjRq8qWZEjDcVA6llnUT8RDEBIfOiGpYFPYa9u+2c39JCsejktSP7mj5eRid5EIvTzIpQ2kDOCw1Nq9BjQ== + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +klona@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + +last-call-webpack-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" + integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== + dependencies: + lodash "^4.17.5" + webpack-sources "^1.1.0" + +latest-version@^5.0.0, latest-version@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +launch-editor-middleware@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157" + integrity sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg== + dependencies: + launch-editor "^2.2.1" + +launch-editor@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca" + integrity sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw== + dependencies: + chalk "^2.3.0" + shell-quote "^1.6.1" + +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= + dependencies: + readable-stream "^2.0.5" + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +libnpmaccess@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-4.0.3.tgz#dfb0e5b0a53c315a2610d300e46b4ddeb66e7eec" + integrity sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ== + dependencies: + aproba "^2.0.0" + minipass "^3.1.1" + npm-package-arg "^8.1.2" + npm-registry-fetch "^11.0.0" + +libnpmconfig@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0" + integrity sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA== + dependencies: + figgy-pudding "^3.5.1" + find-up "^3.0.0" + ini "^1.3.5" + +libnpmdiff@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-2.0.4.tgz#bb1687992b1a97a8ea4a32f58ad7c7f92de53b74" + integrity sha512-q3zWePOJLHwsLEUjZw3Kyu/MJMYfl4tWCg78Vl6QGSfm4aXBUSVzMzjJ6jGiyarsT4d+1NH4B1gxfs62/+y9iQ== + dependencies: + "@npmcli/disparity-colors" "^1.0.1" + "@npmcli/installed-package-contents" "^1.0.7" + binary-extensions "^2.2.0" + diff "^5.0.0" + minimatch "^3.0.4" + npm-package-arg "^8.1.1" + pacote "^11.3.0" + tar "^6.1.0" + +libnpmexec@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-2.0.1.tgz#729ae3e15a3ba225964ccf248117a75d311eeb73" + integrity sha512-4SqBB7eJvJWmUKNF42Q5qTOn20DRjEE4TgvEh2yneKlAiRlwlhuS9MNR45juWwmoURJlf2K43bozlVt7OZiIOw== + dependencies: + "@npmcli/arborist" "^2.3.0" + "@npmcli/ci-detect" "^1.3.0" + "@npmcli/run-script" "^1.8.4" + chalk "^4.1.0" + mkdirp-infer-owner "^2.0.0" + npm-package-arg "^8.1.2" + pacote "^11.3.1" + proc-log "^1.0.0" + read "^1.0.7" + read-package-json-fast "^2.0.2" + walk-up-path "^1.0.0" + +libnpmfund@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-1.1.0.tgz#ee91313905b3194b900530efa339bc3f9fc4e5c4" + integrity sha512-Kfmh3pLS5/RGKG5WXEig8mjahPVOxkik6lsbH4iX0si1xxNi6eeUh/+nF1MD+2cgalsQif3O5qyr6mNz2ryJrQ== + dependencies: + "@npmcli/arborist" "^2.5.0" + +libnpmhook@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-6.0.3.tgz#1d7f0d7e6a7932fbf7ce0881fdb0ed8bf8748a30" + integrity sha512-3fmkZJibIybzmAvxJ65PeV3NzRc0m4xmYt6scui5msocThbEp4sKFT80FhgrCERYDjlUuFahU6zFNbJDHbQ++g== + dependencies: + aproba "^2.0.0" + npm-registry-fetch "^11.0.0" + +libnpmorg@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-2.0.3.tgz#4e605d4113dfa16792d75343824a0625c76703bc" + integrity sha512-JSGl3HFeiRFUZOUlGdiNcUZOsUqkSYrg6KMzvPZ1WVZ478i47OnKSS0vkPmX45Pai5mTKuwIqBMcGWG7O8HfdA== + dependencies: + aproba "^2.0.0" + npm-registry-fetch "^11.0.0" + +libnpmpack@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-2.0.1.tgz#d3eac25cc8612f4e7cdeed4730eee339ba51c643" + integrity sha512-He4/jxOwlaQ7YG7sIC1+yNeXeUDQt8RLBvpI68R3RzPMZPa4/VpxhlDo8GtBOBDYoU8eq6v1wKL38sq58u4ibQ== + dependencies: + "@npmcli/run-script" "^1.8.3" + npm-package-arg "^8.1.0" + pacote "^11.2.6" + +libnpmpublish@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-4.0.2.tgz#be77e8bf5956131bcb45e3caa6b96a842dec0794" + integrity sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw== + dependencies: + normalize-package-data "^3.0.2" + npm-package-arg "^8.1.2" + npm-registry-fetch "^11.0.0" + semver "^7.1.3" + ssri "^8.0.1" + +libnpmsearch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-3.1.2.tgz#aee81b9e4768750d842b627a3051abc89fdc15f3" + integrity sha512-BaQHBjMNnsPYk3Bl6AiOeVuFgp72jviShNBw5aHaHNKWqZxNi38iVNoXbo6bG/Ccc/m1To8s0GtMdtn6xZ1HAw== + dependencies: + npm-registry-fetch "^11.0.0" + +libnpmteam@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-2.0.4.tgz#9dbe2e18ae3cb97551ec07d2a2daf9944f3edc4c" + integrity sha512-FPrVJWv820FZFXaflAEVTLRWZrerCvfe7ZHSMzJ/62EBlho2KFlYKjyNEsPW3JiV7TLSXi3vo8u0gMwIkXSMTw== + dependencies: + aproba "^2.0.0" + npm-registry-fetch "^11.0.0" + +libnpmversion@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-1.2.1.tgz#689aa7fe0159939b3cbbf323741d34976f4289e9" + integrity sha512-AA7x5CFgBFN+L4/JWobnY5t4OAHjQuPbAwUYJ7/NtHuyLut5meb+ne/aj0n7PWNiTGCJcRw/W6Zd2LoLT7EZuQ== + dependencies: + "@npmcli/git" "^2.0.7" + "@npmcli/run-script" "^1.8.4" + json-parse-even-better-errors "^2.3.1" + semver "^7.3.5" + stringify-package "^1.0.1" + +lie@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" + integrity sha1-mkNrLMd0bKWd56QfpGmz77dr2H4= + dependencies: + immediate "~3.0.5" + +lilconfig@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.3.tgz#68f3005e921dafbd2a2afb48379986aa6d2579fd" + integrity sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg== + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +loader-runner@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" + integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== + +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +localforage@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.10.0.tgz#5c465dc5f62b2807c3a84c0c6a1b1b3212781dd4" + integrity sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg== + dependencies: + lie "3.1.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.debounce@4.0.8, lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= + +lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.template@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.throttle@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + +lodash.union@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@4.x, lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.7.0, lodash@~4.17.10: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log-update@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^4.0.0: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.25.0, magic-string@^0.25.7: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-error@1.x: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +make-fetch-happen@^9.0.1, make-fetch-happen@^9.0.5: + version "9.1.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" + integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== + dependencies: + agentkeepalive "^4.1.3" + cacache "^15.2.0" + http-cache-semantics "^4.1.0" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^6.0.0" + minipass "^3.1.3" + minipass-collect "^1.0.2" + minipass-fetch "^1.3.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.2" + promise-retry "^2.0.1" + socks-proxy-agent "^6.0.0" + ssri "^8.0.0" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +map-age-cleaner@^0.1.1, map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-obj@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7" + integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ== + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" + +math-expression-evaluator@^1.2.14: + version "1.3.8" + resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.3.8.tgz#320da3b2bc1512f4f50fc3020b2b1cd5c8e9d577" + integrity sha512-9FbRY3i6U+CbHgrdNbAUaisjWTozkm1ZfupYQJiZ87NtYHk2Zh9DvxMgp/fifxVhqTLpd5fCCLossUbpZxGeKw== + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +mem@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122" + integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^3.1.0" + +memfs@^3.1.2, memfs@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.2.2.tgz#5de461389d596e3f23d48bb7c2afb6161f4df40e" + integrity sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q== + dependencies: + fs-monkey "1.0.3" + +memory-fs@0.5.0, memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" + integrity sha1-8rslNovBIeORwlIN6Slpyu4KApA= + +meow@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-7.1.1.tgz#7c01595e3d337fcb0ec4e8eed1666ea95903d306" + integrity sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^2.5.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.13.1" + yargs-parser "^18.1.3" + +meow@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" + integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize "^1.2.0" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== + dependencies: + source-map "^0.6.1" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.9: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +mime-db@1.49.0, "mime-db@>= 1.43.0 < 2": + version "1.49.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" + integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.32" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" + integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== + dependencies: + mime-db "1.49.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.0.3, mime@^2.3.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + +mimic-fn@^2.0.0, mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +mini-css-extract-plugin@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.0.tgz#b4db2525af2624899ed64a23b0016e0036411893" + integrity sha512-nPFKI7NSy6uONUo9yn2hIfb9vyYvkFu95qki0e21DQ9uaqNKDP15DGpK0KnV6wDroWxPHtExrdEwx/yDQ8nVRw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@^3.0.4, minimatch@~3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist-options@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist@1.2.5, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: + version "1.3.4" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.4.tgz#63f5af868a38746ca7b33b03393ddf8c291244fe" + integrity sha512-TielGogIzbUEtd1LsjZFs47RWuHHfhl6TiCx1InVxApBAmQ8bL0dL5ilkLGcRvuyW/A9nE+Lvn855Ewz8S0PnQ== + dependencies: + minipass "^3.1.0" + minipass-sized "^1.0.3" + minizlib "^2.0.0" + optionalDependencies: + encoding "^0.1.12" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-json-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" + integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== + dependencies: + jsonparse "^1.3.1" + minipass "^3.0.0" + +minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== + dependencies: + yallist "^4.0.0" + +miniraf@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/miniraf/-/miniraf-1.0.0.tgz#5d88e108bbdcb55b4a2ff3da337f24a13a3377e1" + integrity sha512-XpvhtJYzVrpXe+JoAthrT9E40NIrSDDMcdHEYL2M+lR/OCas0nadetcBBq/MWYqlgV5aDWVQ3mfAqd+fG6Y/EQ== + +minizlib@^2.0.0, minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp-infer-owner@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316" + integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw== + dependencies: + chownr "^2.0.0" + infer-owner "^1.0.4" + mkdirp "^1.0.3" + +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.0.0, ms@^2.1.1, ms@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +mute-stream@0.0.8, mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +nan@^2.12.1, nan@^2.13.2: + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + +nanoid@^3.1.23: + version "3.1.25" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" + integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +negotiator@0.6.2, negotiator@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-gyp@^7.1.0, node-gyp@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae" + integrity sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.3" + nopt "^5.0.0" + npmlog "^4.1.2" + request "^2.88.2" + rimraf "^3.0.2" + semver "^7.3.2" + tar "^6.0.2" + which "^2.0.2" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-loader@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/node-loader/-/node-loader-2.0.0.tgz#9109a6d828703fd3e0aa03c1baec12a798071562" + integrity sha512-I5VN34NO4/5UYJaUBtkrODPWxbobrE4hgDqPrjB25yPkonFhCmZ146vTH+Zg417E9Iwoh1l/MbRs1apc5J295Q== + dependencies: + loader-utils "^2.0.0" + +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-releases@^1.1.75: + version "1.1.75" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" + integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== + +node-sass@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-6.0.1.tgz#cad1ccd0ce63e35c7181f545d8b986f3a9a887fe" + integrity sha512-f+Rbqt92Ful9gX0cGtdYwjTrWAaGURgaK5rZCWOgCNyGWusFYHhbqCCBoFBeat+HKETOU02AyTxNhJV0YZf2jQ== + dependencies: + async-foreach "^0.1.3" + chalk "^1.1.1" + cross-spawn "^7.0.3" + gaze "^1.0.0" + get-stdin "^4.0.1" + glob "^7.0.3" + lodash "^4.17.15" + meow "^9.0.0" + nan "^2.13.2" + node-gyp "^7.1.0" + npmlog "^4.0.0" + request "^2.88.0" + sass-graph "2.2.5" + stdout-stream "^1.4.0" + "true-case-path" "^1.0.2" + +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@^1.4.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +normalize-wheel@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45" + integrity sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU= + +normalize.css@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" + integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== + +npm-audit-report@^2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-2.1.5.tgz#a5b8850abe2e8452fce976c8960dd432981737b5" + integrity sha512-YB8qOoEmBhUH1UJgh1xFAv7Jg1d+xoNhsDYiFQlEFThEBui0W1vIz2ZK6FVg4WZjwEdl7uBQlm1jy3MUfyHeEw== + dependencies: + chalk "^4.0.0" + +npm-bundled@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-check-updates@^11.8.3: + version "11.8.3" + resolved "https://registry.yarnpkg.com/npm-check-updates/-/npm-check-updates-11.8.3.tgz#3c3541ad855bbc42b0d60e8eb293d3f6125c80e5" + integrity sha512-NslIB6Af7GagVrN+bvBkObLyawIZfOnDnl8n9MHE+dFt0aChRYtvR6T2BLJKzOPIepCLmmh0NRR/qha0ExAELQ== + dependencies: + chalk "^4.1.1" + cint "^8.2.1" + cli-table "^0.3.6" + commander "^6.2.1" + fast-memoize "^2.5.2" + find-up "5.0.0" + fp-and-or "^0.1.3" + get-stdin "^8.0.0" + globby "^11.0.4" + hosted-git-info "^4.0.2" + json-parse-helpfulerror "^1.0.3" + jsonlines "^0.1.1" + libnpmconfig "^1.2.1" + lodash "^4.17.21" + minimatch "^3.0.4" + p-map "^4.0.0" + pacote "^11.3.4" + parse-github-url "^1.0.2" + progress "^2.0.3" + prompts "^2.4.1" + rc-config-loader "^4.0.0" + remote-git-tags "^3.0.0" + rimraf "^3.0.2" + semver "^7.3.5" + semver-utils "^1.1.4" + spawn-please "^1.0.0" + update-notifier "^5.1.0" + +npm-conf@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + +npm-install-checks@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" + integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.0, npm-package-arg@^8.1.1, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: + version "8.1.5" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" + integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== + dependencies: + hosted-git-info "^4.0.1" + semver "^7.3.4" + validate-npm-package-name "^3.0.0" + +npm-packlist@^2.1.4: + version "2.2.2" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.2.2.tgz#076b97293fa620f632833186a7a8f65aaa6148c8" + integrity sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg== + dependencies: + glob "^7.1.6" + ignore-walk "^3.0.3" + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + +npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.0, npm-pick-manifest@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz#7b5484ca2c908565f43b7f27644f36bb816f5148" + integrity sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA== + dependencies: + npm-install-checks "^4.0.0" + npm-normalize-package-bin "^1.0.1" + npm-package-arg "^8.1.2" + semver "^7.3.4" + +npm-profile@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-5.0.4.tgz#73e5bd1d808edc2c382d7139049cc367ac43161b" + integrity sha512-OKtU7yoAEBOnc8zJ+/uo5E4ugPp09sopo+6y1njPp+W99P8DvQon3BJYmpvyK2Bf1+3YV5LN1bvgXRoZ1LUJBA== + dependencies: + npm-registry-fetch "^11.0.0" + +npm-registry-fetch@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz#68c1bb810c46542760d62a6a965f85a702d43a76" + integrity sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA== + dependencies: + make-fetch-happen "^9.0.1" + minipass "^3.1.3" + minipass-fetch "^1.3.0" + minipass-json-stream "^1.0.1" + minizlib "^2.0.0" + npm-package-arg "^8.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npm-user-validate@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.1.tgz#31428fc5475fe8416023f178c0ab47935ad8c561" + integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw== + +npm@^7.21.0: + version "7.21.0" + resolved "https://registry.yarnpkg.com/npm/-/npm-7.21.0.tgz#12af61f27ab6ece10af2b20ffb355fb2ae227fb6" + integrity sha512-OYSQykXItCDXYGb9U8o85Snhmbe0k/nwVK6CmUNmgtOcfPevVB5ZXwA44eWOCvM+WdWYQsJAJoA7eCHKImQt8g== + dependencies: + "@npmcli/arborist" "^2.8.2" + "@npmcli/ci-detect" "^1.2.0" + "@npmcli/config" "^2.2.0" + "@npmcli/map-workspaces" "^1.0.4" + "@npmcli/package-json" "^1.0.1" + "@npmcli/run-script" "^1.8.6" + abbrev "~1.1.1" + ansicolors "~0.3.2" + ansistyles "~0.1.3" + archy "~1.0.0" + cacache "^15.2.0" + chalk "^4.1.2" + chownr "^2.0.0" + cli-columns "^3.1.2" + cli-table3 "^0.6.0" + columnify "~1.5.4" + fastest-levenshtein "^1.0.12" + glob "^7.1.7" + graceful-fs "^4.2.8" + hosted-git-info "^4.0.2" + ini "^2.0.0" + init-package-json "^2.0.4" + is-cidr "^4.0.2" + json-parse-even-better-errors "^2.3.1" + libnpmaccess "^4.0.2" + libnpmdiff "^2.0.4" + libnpmexec "^2.0.1" + libnpmfund "^1.1.0" + libnpmhook "^6.0.2" + libnpmorg "^2.0.2" + libnpmpack "^2.0.1" + libnpmpublish "^4.0.1" + libnpmsearch "^3.1.1" + libnpmteam "^2.0.3" + libnpmversion "^1.2.1" + make-fetch-happen "^9.0.5" + minipass "^3.1.3" + minipass-pipeline "^1.2.4" + mkdirp "^1.0.4" + mkdirp-infer-owner "^2.0.0" + ms "^2.1.2" + node-gyp "^7.1.2" + nopt "^5.0.0" + npm-audit-report "^2.1.5" + npm-package-arg "^8.1.5" + npm-pick-manifest "^6.1.1" + npm-profile "^5.0.3" + npm-registry-fetch "^11.0.0" + npm-user-validate "^1.0.1" + npmlog "^5.0.0" + opener "^1.5.2" + pacote "^11.3.5" + parse-conflict-json "^1.1.1" + qrcode-terminal "^0.12.0" + read "~1.0.7" + read-package-json "^4.0.0" + read-package-json-fast "^2.0.3" + readdir-scoped-modules "^1.1.0" + rimraf "^3.0.2" + semver "^7.3.5" + ssri "^8.0.1" + tar "^6.1.10" + text-table "~0.2.0" + tiny-relative-date "^1.3.0" + treeverse "^1.0.4" + validate-npm-package-name "~3.0.0" + which "^2.0.2" + write-file-atomic "^3.0.3" + +npmlog@^4.0.0, npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +npmlog@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.0.tgz#e6a41b556e9b34cb29ea132294676c07acb30efb" + integrity sha512-ftpIiLjerL2tUg3dCqN8pOSoB90gqZlzv/gaZoxHaKjeLClrfJIEQ1Pdxi6qSzflz916Bljdy8dTWQ4J7hAFSQ== + dependencies: + are-we-there-yet "^1.1.5" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + dependencies: + boolbase "^1.0.0" + +null-loader@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-4.0.1.tgz#8e63bd3a2dd3c64236a4679428632edd0a6dbc6a" + integrity sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.11.0, object-inspect@^1.9.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" + integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + +object.entries@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd" + integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + +object.getownpropertydescriptors@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" + integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0, object.values@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/open/-/open-7.1.0.tgz#68865f7d3cb238520fa1225a63cf28bcf8368a1c" + integrity sha512-lLPI5KgOwEYCDKXf4np7y1PBEkj7HYIyP2DY8mVDRnx0VIIu6bNrRB0R66TuO7Mack6EnTNLm4uvcl1UoklTpA== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +open@^8.0.9: + version "8.2.1" + resolved "https://registry.yarnpkg.com/open/-/open-8.2.1.tgz#82de42da0ccbf429bc12d099dad2e0975e14e8af" + integrity sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +optimize-css-assets-webpack-plugin@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-6.0.1.tgz#7719bceabba1f3891ec3ae04efb81a1cc99cd793" + integrity sha512-BshV2UZPfggZLdUfN3zFBbG4sl/DynUI+YCB6fRRDWaqO2OiWN8GPcp4Y0/fEV6B3k9Hzyk3czve3V/8B/SzKQ== + dependencies: + cssnano "^5.0.2" + last-call-webpack-plugin "^3.0.0" + postcss "^8.2.1" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +ora@^5.0.0, ora@^5.3.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-locale@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +ouch@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ouch/-/ouch-2.0.0.tgz#2feab67569fe8037e91db6f6225bea066fc7e716" + integrity sha512-kaAZtzpV3iSDdGHQKz7/dRVWd7nXNO1OUNHNtZIW9ryoBvb6y8QtYfpWdcBUFgBzMbMYVA/PGPeoeJU95VHK7Q== + dependencies: + "@positron/stack-trace" "1.0.0" + ejs "^2.3.1" + escape-html "^1.0.1" + lodash "^4.17.10" + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + +p-event@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" + integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== + dependencies: + p-timeout "^3.1.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^4.5.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c" + integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA== + dependencies: + "@types/retry" "^0.12.0" + retry "^0.13.1" + +p-timeout@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +pacote@^11.1.11, pacote@^11.2.6, pacote@^11.3.0, pacote@^11.3.1, pacote@^11.3.4, pacote@^11.3.5: + version "11.3.5" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-11.3.5.tgz#73cf1fc3772b533f575e39efa96c50be8c3dc9d2" + integrity sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg== + dependencies: + "@npmcli/git" "^2.1.0" + "@npmcli/installed-package-contents" "^1.0.6" + "@npmcli/promise-spawn" "^1.2.0" + "@npmcli/run-script" "^1.8.2" + cacache "^15.0.5" + chownr "^2.0.0" + fs-minipass "^2.1.0" + infer-owner "^1.0.4" + minipass "^3.1.3" + mkdirp "^1.0.3" + npm-package-arg "^8.0.1" + npm-packlist "^2.1.4" + npm-pick-manifest "^6.0.0" + npm-registry-fetch "^11.0.0" + promise-retry "^2.0.1" + read-package-json-fast "^2.0.1" + rimraf "^3.0.2" + ssri "^8.0.1" + tar "^6.1.0" + +param-case@2.1.x, param-case@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +param-case@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-conflict-json@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz#54ec175bde0f2d70abf6be79e0e042290b86701b" + integrity sha512-4gySviBiW5TRl7XHvp1agcS7SOe0KZOjC//71dzZVWJrY9hCrgtvl5v3SyIxCZ4fZF47TxD9nfzmxcx76xmbUw== + dependencies: + json-parse-even-better-errors "^2.3.0" + just-diff "^3.0.1" + just-diff-apply "^3.0.0" + +parse-github-url@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395" + integrity sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw== + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pinia@^2.0.0-beta.5: + version "2.0.0-rc.6" + resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.0.0-rc.6.tgz#f83b7f2a62710715487574d6f442aa879961122b" + integrity sha512-IqArmLmWJB5wZzELZfFF42bMaulo6cjMvL1wgUjWfmzaGCt1HYOAXN86s6HrdAueeEWj9Ov6lNNOHB1DFQxthw== + dependencies: + "@vue/devtools-api" "^6.0.0-beta.15" + vue-demi "*" + +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +plist@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.3.tgz#007df34c7be0e2c3dcfcf460d623e6485457857d" + integrity sha512-ghdOKN99hh1oEmAlwBmPYo4L+tSQ7O3jRpkhWqOrMz86CWotpVzMevvQ+czo7oPDpOZyA6K06Ci7QVHpoh9gaA== + dependencies: + base64-js "^1.5.1" + xmlbuilder "^9.0.7" + xmldom "^0.6.0" + +portfinder@^1.0.13, portfinder@^1.0.28: + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-calc@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" + integrity sha1-d7rnypKK2FcW4v2kLyYb98HWW14= + dependencies: + postcss "^5.0.2" + postcss-message-helpers "^2.0.0" + reduce-css-calc "^1.2.6" + +postcss-calc@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" + integrity sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g== + dependencies: + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^2.1.8: + version "2.2.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" + integrity sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks= + dependencies: + colormin "^1.0.5" + postcss "^5.0.13" + postcss-value-parser "^3.2.3" + +postcss-colormin@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.0.tgz#2b620b88c0ff19683f3349f4cf9e24ebdafb2c88" + integrity sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + colord "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-convert-values@^2.3.4: + version "2.6.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" + integrity sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0= + dependencies: + postcss "^5.0.11" + postcss-value-parser "^3.1.2" + +postcss-convert-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz#4ec19d6016534e30e3102fdf414e753398645232" + integrity sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-discard-comments@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" + integrity sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0= + dependencies: + postcss "^5.0.14" + +postcss-discard-comments@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz#9eae4b747cf760d31f2447c27f0619d5718901fe" + integrity sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg== + +postcss-discard-duplicates@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" + integrity sha1-uavye4isGIFYpesSq8riAmO5GTI= + dependencies: + postcss "^5.0.4" + +postcss-discard-duplicates@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz#68f7cc6458fe6bab2e46c9f55ae52869f680e66d" + integrity sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA== + +postcss-discard-empty@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" + integrity sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU= + dependencies: + postcss "^5.0.14" + +postcss-discard-empty@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz#ee136c39e27d5d2ed4da0ee5ed02bc8a9f8bf6d8" + integrity sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw== + +postcss-discard-overridden@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" + integrity sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg= + dependencies: + postcss "^5.0.16" + +postcss-discard-overridden@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6" + integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== + +postcss-discard-unused@^2.2.1: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" + integrity sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM= + dependencies: + postcss "^5.0.14" + uniqs "^2.0.0" + +postcss-filter-plugins@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec" + integrity sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ== + dependencies: + postcss "^5.0.4" + +postcss-loader@6.1.1, postcss-loader@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.1.1.tgz#58dd0a3accd9bc87cc52eff75244db578d11301a" + integrity sha512-lBmJMvRh1D40dqpWKr9Rpygwxn8M74U9uaCSeYGNKLGInbk9mXBt1ultHf2dH9Ghk6Ue4UXlXWwGMH9QdUJ5ug== + dependencies: + cosmiconfig "^7.0.0" + klona "^2.0.4" + semver "^7.3.5" + +postcss-merge-idents@^2.1.5: + version "2.1.7" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" + integrity sha1-TFUwMTwI4dWzu/PSu8dH4njuonA= + dependencies: + has "^1.0.1" + postcss "^5.0.10" + postcss-value-parser "^3.1.1" + +postcss-merge-longhand@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" + integrity sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg= + dependencies: + postcss "^5.0.4" + +postcss-merge-longhand@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz#277ada51d9a7958e8ef8cf263103c9384b322a41" + integrity sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw== + dependencies: + css-color-names "^1.0.1" + postcss-value-parser "^4.1.0" + stylehacks "^5.0.1" + +postcss-merge-rules@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" + integrity sha1-0d9d+qexrMO+VT8OnhDofGG19yE= + dependencies: + browserslist "^1.5.2" + caniuse-api "^1.5.2" + postcss "^5.0.4" + postcss-selector-parser "^2.2.2" + vendors "^1.0.0" + +postcss-merge-rules@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz#d6e4d65018badbdb7dcc789c4f39b941305d410a" + integrity sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + cssnano-utils "^2.0.1" + postcss-selector-parser "^6.0.5" + vendors "^1.0.3" + +postcss-message-helpers@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + integrity sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4= + +postcss-minify-font-values@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" + integrity sha1-S1jttWZB66fIR0qzUmyv17vey2k= + dependencies: + object-assign "^4.0.1" + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-minify-font-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz#a90cefbfdaa075bd3dbaa1b33588bb4dc268addf" + integrity sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-minify-gradients@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" + integrity sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE= + dependencies: + postcss "^5.0.12" + postcss-value-parser "^3.3.0" + +postcss-minify-gradients@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.2.tgz#7c175c108f06a5629925d698b3c4cf7bd3864ee5" + integrity sha512-7Do9JP+wqSD6Prittitt2zDLrfzP9pqKs2EcLX7HJYxsxCOwrrcLt4x/ctQTsiOw+/8HYotAoqNkrzItL19SdQ== + dependencies: + colord "^2.6" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-minify-params@^1.0.4: + version "1.2.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" + integrity sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM= + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.2" + postcss-value-parser "^3.0.2" + uniqs "^2.0.0" + +postcss-minify-params@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz#371153ba164b9d8562842fdcd929c98abd9e5b6c" + integrity sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw== + dependencies: + alphanum-sort "^1.0.2" + browserslist "^4.16.0" + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^2.0.4: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" + integrity sha1-ssapjAByz5G5MtGkllCBFDEXNb8= + dependencies: + alphanum-sort "^1.0.2" + has "^1.0.1" + postcss "^5.0.14" + postcss-selector-parser "^2.0.0" + +postcss-minify-selectors@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz#4385c845d3979ff160291774523ffa54eafd5a54" + integrity sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og== + dependencies: + alphanum-sort "^1.0.2" + postcss-selector-parser "^6.0.5" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-modules@^4.0.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.2.2.tgz#5e7777c5a8964ea176919d90b2e54ef891321ce5" + integrity sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg== + dependencies: + generic-names "^2.0.1" + icss-replace-symbols "^1.1.0" + lodash.camelcase "^4.3.0" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + string-hash "^1.1.1" + +postcss-normalize-charset@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" + integrity sha1-757nEhLX/nWceO0WL2HtYrXLk/E= + dependencies: + postcss "^5.0.5" + +postcss-normalize-charset@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz#121559d1bebc55ac8d24af37f67bd4da9efd91d0" + integrity sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg== + +postcss-normalize-display-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz#62650b965981a955dffee83363453db82f6ad1fd" + integrity sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-positions@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz#868f6af1795fdfa86fbbe960dceb47e5f9492fe5" + integrity sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-normalize-repeat-style@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz#cbc0de1383b57f5bb61ddd6a84653b5e8665b2b5" + integrity sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-string@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz#d9eafaa4df78c7a3b973ae346ef0e47c554985b0" + integrity sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-normalize-timing-functions@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz#8ee41103b9130429c6cbba736932b75c5e2cb08c" + integrity sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-unicode@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz#82d672d648a411814aa5bf3ae565379ccd9f5e37" + integrity sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA== + dependencies: + browserslist "^4.16.0" + postcss-value-parser "^4.1.0" + +postcss-normalize-url@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" + integrity sha1-EI90s/L82viRov+j6kWSJ5/HgiI= + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^1.4.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + +postcss-normalize-url@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz#ddcdfb7cede1270740cf3e4dfc6008bd96abc763" + integrity sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ== + dependencies: + is-absolute-url "^3.0.3" + normalize-url "^6.0.1" + postcss-value-parser "^4.1.0" + +postcss-normalize-whitespace@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz#b0b40b5bcac83585ff07ead2daf2dcfbeeef8e9a" + integrity sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-ordered-values@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" + integrity sha1-7sbCpntsQSqNsgQud/6NpD+VwR0= + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.1" + +postcss-ordered-values@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz#1f351426977be00e0f765b3164ad753dac8ed044" + integrity sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-reduce-idents@^2.2.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" + integrity sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM= + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-reduce-initial@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" + integrity sha1-aPgGlfBF0IJjqHmtJA343WT2ROo= + dependencies: + postcss "^5.0.4" + +postcss-reduce-initial@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz#9d6369865b0f6f6f6b165a0ef5dc1a4856c7e946" + integrity sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw== + dependencies: + browserslist "^4.16.0" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" + integrity sha1-/3b02CEkN7McKYpC0uFEQCV3GuE= + dependencies: + has "^1.0.1" + postcss "^5.0.8" + postcss-value-parser "^3.0.1" + +postcss-reduce-transforms@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz#93c12f6a159474aa711d5269923e2383cedcf640" + integrity sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA== + dependencies: + cssnano-utils "^2.0.1" + postcss-value-parser "^4.1.0" + +postcss-rtlcss@3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/postcss-rtlcss/-/postcss-rtlcss-3.3.4.tgz#561548366562209ee6d40e6d6224e6dc1650b478" + integrity sha512-3UM3E1uJvtc5mR5UIXYX1bgUxZgupgUi8cfk0alOT0rwHQ5evoJPFDYbGsaUsj6PWLJpWuh3zCY3zYFtS2sHTw== + dependencies: + rtlcss "^3.2.0" + +postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + integrity sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A= + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^2.1.1: + version "2.1.6" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" + integrity sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0= + dependencies: + is-svg "^2.0.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + svgo "^0.7.0" + +postcss-svgo@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.2.tgz#bc73c4ea4c5a80fbd4b45e29042c34ceffb9257f" + integrity sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A== + dependencies: + postcss-value-parser "^4.1.0" + svgo "^2.3.0" + +postcss-unique-selectors@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" + integrity sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0= + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss-unique-selectors@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz#3be5c1d7363352eff838bd62b0b07a0abad43bfc" + integrity sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w== + dependencies: + alphanum-sort "^1.0.2" + postcss-selector-parser "^6.0.5" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss-zindex@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" + integrity sha1-0hCd3AVbka9n/EyzsCWUZjnSryI= + dependencies: + has "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.8, postcss@^5.2.16: + version "5.2.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^8.1.10, postcss@^8.2.1, postcss@^8.2.10, postcss@^8.2.15, postcss@^8.2.4, postcss@^8.3.5: + version "8.3.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" + integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== + dependencies: + colorette "^1.2.2" + nanoid "^3.1.23" + source-map-js "^0.6.2" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +prerender-spa-plugin@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/prerender-spa-plugin/-/prerender-spa-plugin-3.4.0.tgz#332f55e68e1bba68bcf176d8c8dfc8380c5dee8a" + integrity sha512-4Gtu7XIz5p0VBi1527c/ogu0NNcM5kJPG9q3F26SioeeURVbIJ11B6fuK8pxTmlPqffKPR/2TRRf4o020r4Fqw== + dependencies: + "@prerenderer/prerenderer" "^0.7.2" + "@prerenderer/renderer-puppeteer" "^0.2.0" + html-minifier "^3.5.16" + +pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-error@3.0.4, pretty-error@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-3.0.4.tgz#94b1d54f76c1ed95b9c604b9de2194838e5b574e" + integrity sha512-ytLFLfv1So4AO1UkoBF6GXQgJRaKbiSiGFICaOPNwQ3CMvBvXpLRubeQWyPGnsbV/t9ml9qto6IeCsho0aEvwQ== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.6" + +pretty-format@^27.0.0, pretty-format@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.6.tgz#ab770c47b2c6f893a21aefc57b75da63ef49a11f" + integrity sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ== + dependencies: + "@jest/types" "^27.0.6" + ansi-regex "^5.0.0" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +printj@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" + integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== + +proc-log@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-1.0.0.tgz#0d927307401f69ed79341e83a0b2c9a13395eb77" + integrity sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg== + +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.0, progress@^2.0.1, progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-all-reject-late@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" + integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw== + +promise-call-limit@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-1.0.1.tgz#4bdee03aeb85674385ca934da7114e9bcd3c6e24" + integrity sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise-limit@^2.5.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/promise-limit/-/promise-limit-2.7.0.tgz#eb5737c33342a030eaeaecea9b3d3a93cb592b26" + integrity sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +prompts@^2.0.1, prompts@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" + integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +promzard@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" + integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4= + dependencies: + read "1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +proxy-addr@~2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +proxy-from-env@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.28, psl@^1.1.33: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +pupa@^2.0.1, pupa@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + +puppeteer@^1.7.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.20.0.tgz#e3d267786f74e1d87cf2d15acc59177f471bbe38" + integrity sha512-bt48RDBy2eIwZPrkgbcwHtb51mj2nKvHOPMaSH2IsWiv7lOG9k9zhaRzpDZafrk05ajMc3cu+lSQYYOfH2DkVQ== + dependencies: + debug "^4.1.0" + extract-zip "^1.6.6" + https-proxy-agent "^2.2.1" + mime "^2.0.3" + progress "^2.0.1" + proxy-from-env "^1.0.0" + rimraf "^2.6.1" + ws "^6.1.0" + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qrcode-terminal@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" + integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +quasar-extras@^2.0.9: + version "2.0.9" + resolved "https://registry.yarnpkg.com/quasar-extras/-/quasar-extras-2.0.9.tgz#f3274f8cd8e054a76d0b52a2410ccf0cdfb197fd" + integrity sha512-ifwaaop0GNuxlcD7Ams0X3f7S49es+2NlR/fI4YAMAOW70ZxTkD4QkAFsVhk7dNPcpPodSOTKAWDOPaO+MqsBg== + +quasar@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/quasar/-/quasar-2.0.4.tgz#f25241bdcd313ad001ec2470d4a8ec286724fbe1" + integrity sha512-W53vn99KKeJI+xHT7ah1qOGCqEDG2+x7G47se8lf93wFTXQAyBw+O0TbuOdZqoKpguwT4T2yo4dTMz7WRmRqGA== + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc-config-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/rc-config-loader/-/rc-config-loader-4.0.0.tgz#144cf31961c9f8ebcf252bd9c263fd40d62bd387" + integrity sha512-//LRTblJEcqbmmro1GCmZ39qZXD+JqzuD8Y5/IZU3Dhp3A1Yr0Xn68ks8MQ6qKfKvYCWDveUmRDKDA40c+sCXw== + dependencies: + debug "^4.1.1" + js-yaml "^4.0.0" + json5 "^2.1.2" + require-from-string "^2.0.2" + +rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +read-cmd-shim@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz#4a50a71d6f0965364938e9038476f7eede3928d9" + integrity sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw== + +read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" + integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== + dependencies: + json-parse-even-better-errors "^2.3.0" + npm-normalize-package-bin "^1.0.1" + +read-package-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-4.0.0.tgz#b555a9f749bf5eb9b8f053806b32f17001914e90" + integrity sha512-EBQiek1udd0JKvUzaViAWHYVQRuQZ0IP0LWUOqVCJaZIX92ZO86dOpvsTOO3esRIQGgl7JhFBaGqW41VI57KvQ== + dependencies: + glob "^7.1.1" + json-parse-even-better-errors "^2.3.0" + normalize-package-data "^3.0.0" + npm-normalize-package-bin "^1.0.0" + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +read@1, read@^1.0.7, read@~1.0.1, read@~1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= + dependencies: + mute-stream "~0.0.4" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdir-glob@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz#f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4" + integrity sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA== + dependencies: + minimatch "^3.0.4" + +readdir-scoped-modules@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +reduce-css-calc@^1.2.6: + version "1.3.0" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + integrity sha1-dHyRTgSWFKTJz7umKYca0dKSdxY= + dependencies: + balanced-match "^0.4.2" + math-expression-evaluator "^1.2.14" + reduce-function-call "^1.0.1" + +reduce-function-call@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.3.tgz#60350f7fb252c0a67eb10fd4694d16909971300f" + integrity sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ== + dependencies: + balanced-match "^1.0.0" + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.4: + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp.prototype.flags@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + +register-service-worker@1.7.2, register-service-worker@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/register-service-worker/-/register-service-worker-1.7.2.tgz#6516983e1ef790a98c4225af1216bc80941a4bd2" + integrity sha512-CiD3ZSanZqcMPRhtfct5K9f7i3OLCcBBWsJjLh1gW9RO/nS94sVzY59iS+fgYBOBqaBpf4EzfqUF3j9IG+xo8A== + +registry-auth-token@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" + integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== + dependencies: + rc "^1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.6.4: + version "0.6.9" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" + integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x, relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +rematrix@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/rematrix/-/rematrix-0.3.0.tgz#4f3f9156aa80ded8a8ca23785f48c6012b6dea4a" + integrity sha512-xB/9ZvJIKaDgXX0qkvV9/pLD8zK23A6TVV6F8Vhsl+SrxbBeVYutz5uszxgC6Rt3RP9LZiH8OXaYjr+x6WXWmQ== + +remote-git-tags@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remote-git-tags/-/remote-git-tags-3.0.0.tgz#424f8ec2cdea00bb5af1784a49190f25e16983c3" + integrity sha512-C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.6: + version "2.0.7" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +request@^2.88.0, request@^2.88.2: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requireindex@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" + integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +reselect@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7" + integrity sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA== + +resize-observer-polyfill@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.10.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.3.2: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^2.4.4, rimraf@^2.5.2, rimraf@^2.6.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + dependencies: + boolean "^3.0.1" + detect-node "^2.0.4" + globalthis "^1.0.1" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + +rollup-plugin-terser@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== + dependencies: + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" + serialize-javascript "^4.0.0" + terser "^5.0.0" + +rollup@^2.43.1: + version "2.56.3" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.56.3.tgz#b63edadd9851b0d618a6d0e6af8201955a77aeff" + integrity sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg== + optionalDependencies: + fsevents "~2.3.2" + +rtlcss@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-3.3.0.tgz#fa9d29b071a863fe959704da6a93de3076aeeca4" + integrity sha512-XZ2KEatH2nU5yPlts1Wu8SGIuZ3ndN025HQX5MqtUCUiOn5WkCDbcpJ2VJWjpuFmM2cUTQ1xtH21fhMCSseI5A== + dependencies: + chalk "^4.1.0" + find-up "^5.0.0" + mkdirp "^1.0.4" + postcss "^8.2.4" + strip-json-comments "^3.1.1" + +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rxjs@^6.6.0: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +rxjs@^7.2.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.3.0.tgz#39fe4f3461dc1e50be1475b2b85a0a88c1e938c6" + integrity sha512-p2yuGIg9S1epc3vrjKf6iVb3RCaAYjYskkO+jHIaV0IjOPlJop4UnodOoFb2xeNwlguqLYvGw1b1McillYb5Gw== + dependencies: + tslib "~2.1.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sass-graph@2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" + integrity sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag== + dependencies: + glob "^7.0.0" + lodash "^4.0.0" + scss-tokenizer "^0.2.3" + yargs "^13.3.2" + +sass-loader@12.1.0, sass-loader@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.1.0.tgz#b73324622231009da6fba61ab76013256380d201" + integrity sha512-FVJZ9kxVRYNZTIe2xhw93n3xJNYZADr+q69/s98l9nTCrWASo+DR2Ot0s5xTKQDDEosUkatsGeHxcH4QBp5bSg== + dependencies: + klona "^2.0.4" + neo-async "^2.6.2" + +sass@1.32.12: + version "1.32.12" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.12.tgz#a2a47ad0f1c168222db5206444a30c12457abb9f" + integrity sha512-zmXn03k3hN0KaiVTjohgkg98C3UowhL1/VSGdj4/VAAiMKGQOE80PFPxFP2Kyq0OUskPKcY5lImkhBKEHlypJA== + dependencies: + chokidar ">=3.0.0 <4.0.0" + +sax@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.1.4.tgz#74b6d33c9ae1e001510f179a91168588f1aedaa9" + integrity sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk= + +sax@~1.2.1, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + +schema-utils@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0, schema-utils@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +scrollreveal@^4.0.2: + version "4.0.9" + resolved "https://registry.yarnpkg.com/scrollreveal/-/scrollreveal-4.0.9.tgz#47866e1967ff604e64bac28818fe0dcea44f2c8b" + integrity sha512-fefGvzVS8YbXbDK1+T0kvy2yqxaiBJZeGUhPeqajf+7sGqtX4xikbKGAlzQuPCpswAMswx94ZwhDjXKnRIqW1w== + dependencies: + miniraf "1.0.0" + rematrix "0.3.0" + tealight "0.3.6" + +scss-tokenizer@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" + integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= + dependencies: + js-base64 "^2.1.8" + source-map "^0.4.2" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selfsigned@^1.10.11: + version "1.10.11" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" + integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== + dependencies: + node-forge "^0.10.0" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +semver-utils@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/semver-utils/-/semver-utils-1.1.4.tgz#cf0405e669a57488913909fc1c3f29bf2a4871e2" + integrity sha512-EjnoLE5OGmDAVV/8YDoN5KiajNadjzIp9BAHOhYeQHt7j0UWxjmgsx4YD48wp4Ue1Qogq38F1GNUJNqF1kKKxA== + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@7.3.5, semver@7.x, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.6.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +sirv@^1.0.7: + version "1.0.14" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.14.tgz#b826343f573e12653c5b3c3080a3a2a6a06595cd" + integrity sha512-czTFDFjK9lXj0u9mJ3OmJoXFztoilYS+NdRPcJoT182w44wSEkHSiO7A2517GLJ8wKM4GjCm2OXE66Dhngbzjg== + dependencies: + "@polka/url" "^1.0.0-next.17" + mime "^2.3.1" + totalist "^1.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +smart-buffer@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs@^0.3.21: + version "0.3.21" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== + dependencies: + faye-websocket "^0.11.3" + uuid "^3.4.0" + websocket-driver "^0.7.4" + +socks-proxy-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.0.0.tgz#9f8749cdc05976505fa9f9a958b1818d0e60573b" + integrity sha512-FIgZbQWlnjVEQvMkylz64/rUggGtrKstPnx8OZyYFG0tAFR8CSBtpXxSwbFLHyeXFn/cunFL7MpuSOvDSOPo9g== + dependencies: + agent-base "^6.0.2" + debug "^4.3.1" + socks "^2.6.1" + +socks@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.1.tgz#989e6534a07cf337deb1b1c94aaa44296520d30e" + integrity sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA== + dependencies: + ip "^1.1.5" + smart-buffer "^4.1.0" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-js@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + integrity sha1-66T12pwNyZneaAMti092FzZSA2s= + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.7.3, source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +source-map@^0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" + integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + dependencies: + whatwg-url "^7.0.0" + +sourcemap-codec@^1.4.4: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spawn-please@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/spawn-please/-/spawn-please-1.0.0.tgz#51cf5831ba2bf418aa3ec2102d40b75cfd48b6f2" + integrity sha512-Kz33ip6NRNKuyTRo3aDWyWxeGeM0ORDO552Fs6E1nj4pLWPkl37SrRtTnq+MEopVaqgmaO6bAvVS+v64BJ5M/A== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.10" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" + integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^8.0.0, ssri@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + dependencies: + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + dependencies: + escape-string-regexp "^2.0.0" + +stackframe@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" + integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stdout-stream@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" + integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== + dependencies: + readable-stream "^2.0.1" + +stream-exhaust@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" + integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +string-hash@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.1 || ^2.0.0", "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +stringify-package@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85" + integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg== + +strip-ansi@=7.0.0, strip-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.0.tgz#1dc49b980c3a4100366617adac59327eefdefcb0" + integrity sha512-UhDTSnGF1dc0DRbUqr1aXwNoY3RgVkSWG8BrpnuFIxhP57IqbS7IRta2Gfiavds4yCxc5+fEAVVOgBZWnYkvzg== + dependencies: + ansi-regex "^6.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +"strip-ansi@^3.0.1 || ^4.0.0", strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-comments@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b" + integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +stylehacks@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.1.tgz#323ec554198520986806388c7fdaebc38d2c06fb" + integrity sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA== + dependencies: + browserslist "^4.16.0" + postcss-selector-parser "^6.0.4" + +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== + dependencies: + debug "^4.1.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +svgo@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" + integrity sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U= + dependencies: + coa "~1.0.1" + colors "~1.1.2" + csso "~2.3.1" + js-yaml "~3.7.0" + mkdirp "~0.5.1" + sax "~1.2.1" + whet.extend "~0.9.9" + +svgo@^1.0.5: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +svgo@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.4.0.tgz#0c42653101fd668692c0f69b55b8d7b182ef422b" + integrity sha512-W25S1UUm9Lm9VnE0TvCzL7aso/NCzDEaXLaElCUO/KaVitw0+IBicSVfM1L1c0YHK5TOFh73yQ2naCpVHEQ/OQ== + dependencies: + "@trysound/sax" "0.1.1" + colorette "^1.2.2" + commander "^7.1.0" + css-select "^4.1.3" + css-tree "^1.1.2" + csso "^4.2.0" + stable "^0.1.8" + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@6.7.1, table@^6.0.9: + version "6.7.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" + integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== + dependencies: + ajv "^8.0.1" + lodash.clonedeep "^4.5.0" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" + +tapable@^0.1.8: + version "0.1.10" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" + integrity sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q= + +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" + integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== + +tar-stream@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^6.0.2, tar@^6.1.0, tar@^6.1.10: + version "6.1.10" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.10.tgz#8a320a74475fba54398fa136cd9883aa8ad11175" + integrity sha512-kvvfiVvjGMxeUNB6MyYv5z7vhfFRwbwCXJAeL0/lnbrttBVqcMOnpHUf0X42LrPMR8mMpgapkJMchFH4FSHzNA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +tealight@0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/tealight/-/tealight-0.3.6.tgz#14c8071ce3c188972a5cb7d8a5668ca2820b4292" + integrity sha512-Dys3N8jFBThD9pNVpPCyUiu6DfWcTBdqWQJIvnAuVaFkGEdrPBJ43070vVbn6sTlLvn2IQK2zFW4FrVIrTo8eQ== + dependencies: + is-dom-node "^1.0.4" + is-dom-node-list "^1.2.1" + +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + +tempy@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3" + integrity sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw== + dependencies: + is-stream "^2.0.0" + temp-dir "^2.0.0" + type-fest "^0.16.0" + unique-string "^2.0.0" + +term-size@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" + integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@5.1.4, terser-webpack-plugin@^5.1.3: + version "5.1.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz#c369cf8a47aa9922bd0d8a94fe3d3da11a7678a1" + integrity sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA== + dependencies: + jest-worker "^27.0.2" + p-limit "^3.1.0" + schema-utils "^3.0.0" + serialize-javascript "^6.0.0" + source-map "^0.6.1" + terser "^5.7.0" + +terser@^4.6.3: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^5.0.0, terser@^5.3.8, terser@^5.7.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.2.tgz#d4d95ed4f8bf735cb933e802f2a1829abf545e3f" + integrity sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-table@^0.2.0, text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +throat@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" + integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== + +throttle-debounce@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz#51853da37be68a155cb6e827b3514a3c422e89cd" + integrity sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg== + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +ticky@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ticky/-/ticky-1.0.1.tgz#b7cfa71e768f1c9000c497b9151b30947c50e46d" + integrity sha1-t8+nHnaPHJAAxJe5FRswlHxQ5G0= + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tiny-relative-date@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" + integrity sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +totalist@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" + integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== + +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + +treeverse@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-1.0.4.tgz#a6b0ebf98a1bca6846ddc7ecbc900df08cb9cd5f" + integrity sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g== + +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + +"true-case-path@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" + integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== + dependencies: + glob "^7.1.2" + +ts-jest@^27.0.5: + version "27.0.5" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.5.tgz#0b0604e2271167ec43c12a69770f0bb65ad1b750" + integrity sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w== + dependencies: + bs-logger "0.x" + fast-json-stable-stringify "2.x" + jest-util "^27.0.0" + json5 "2.x" + lodash "4.x" + make-error "1.x" + semver "7.x" + yargs-parser "20.x" + +ts-loader@8.0.17: + version "8.0.17" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.0.17.tgz#98f2ccff9130074f4079fd89b946b4c637b1f2fc" + integrity sha512-OeVfSshx6ot/TCxRwpBHQ/4lRzfgyTkvi7ghDVrLXOHzTbSK413ROgu/xNqM72i3AFeAIJgQy78FwSMKmOW68w== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^4.0.0" + loader-utils "^2.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + +ts-loader@^9.2.5: + version "9.2.5" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.2.5.tgz#127733a5e9243bf6dafcb8aa3b8a266d8041dca9" + integrity sha512-al/ATFEffybdRMUIr5zMEWQdVnCGMUA9d3fXJ8dBVvBlzytPvIszoG9kZoR+94k6/i293RnVOXwMaWbXhNy9pQ== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + +tsconfig-paths@^3.10.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.10.1.tgz#79ae67a68c15289fdf5c51cb74f397522d795ed7" + integrity sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q== + dependencies: + json5 "^2.2.0" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tslib@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" + integrity sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ== + +tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.3, tslib@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + +tslib@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + +tslint-config-standard@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/tslint-config-standard/-/tslint-config-standard-9.0.0.tgz#349a94819d93d5f8d803e3c71cb58ef38eff88e0" + integrity sha512-CAw9J743RnPMemQV/XQ4YyNreC+A1NItACfkm+cBedrOkz6CQfwlnbKn8anUXBfoa4Zo4tjAhblRbsMNcSLfSw== + dependencies: + tslint-eslint-rules "^5.3.1" + +tslint-eslint-rules@^5.3.1: + version "5.4.0" + resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz#e488cc9181bf193fe5cd7bfca213a7695f1737b5" + integrity sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w== + dependencies: + doctrine "0.7.2" + tslib "1.9.0" + tsutils "^3.0.0" + +tslint-loader@^3.5.4: + version "3.5.4" + resolved "https://registry.yarnpkg.com/tslint-loader/-/tslint-loader-3.5.4.tgz#052af7f0772434451ea1b247bb55407f878a4c40" + integrity sha512-jBHNNppXut6SgZ7CsTBh+6oMwVum9n8azbmcYSeMlsABhWWoHwjq631vIFXef3VSd75cCdX3rc6kstsB7rSVVw== + dependencies: + loader-utils "^1.0.2" + mkdirp "^0.5.1" + object-assign "^4.1.1" + rimraf "^2.4.4" + semver "^5.3.0" + +tslint@^6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" + integrity sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg== + dependencies: + "@babel/code-frame" "^7.0.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^4.0.1" + glob "^7.1.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + mkdirp "^0.5.3" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.13.0" + tsutils "^2.29.0" + +tsutils@^2.29.0: + version "2.29.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== + dependencies: + tslib "^1.8.1" + +tsutils@^3.0.0, tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typescript@4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.2.tgz#1450f020618f872db0ea17317d16d8da8ddb8c4c" + integrity sha512-tbb+NVrLfnsJy3M59lsDgrzWIflR4d4TIUjz+heUnHZwdF7YsrMTKoRERiIvI2lvBG95dfpLxB21WZhys1bgaQ== + +typescript@^4.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" + integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== + +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== + dependencies: + commander "~2.19.0" + source-map "~0.6.1" + +uglify-js@^3.5.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.1.tgz#e2cb9fe34db9cb4cf7e35d1d26dfea28e09a7d06" + integrity sha512-JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g== + +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +underscore-plus@1.x: + version "1.7.0" + resolved "https://registry.yarnpkg.com/underscore-plus/-/underscore-plus-1.7.0.tgz#107f1900c520ac1fefe4edec6580a7ff08a99d0f" + integrity sha512-A3BEzkeicFLnr+U/Q3EyWwJAQPbA19mtZZ4h+lLq3ttm9kn8WC4R3YpuJZEXmWdLjYP47Zc8aLZm9kwdv+zzvA== + dependencies: + underscore "^1.9.1" + +underscore@^1.9.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1" + integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g== + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +universalify@^0.1.0, universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1, upath@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-notifier@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" + integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== + dependencies: + boxen "^4.2.0" + chalk "^3.0.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.3.1" + is-npm "^4.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.0.0" + pupa "^2.0.1" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + +update-notifier@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== + dependencies: + boxen "^5.0.0" + chalk "^4.1.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.4.0" + is-npm "^5.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.1.0" + pupa "^2.1.1" + semver "^7.3.4" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-loader@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.3.2, uuid@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +v8-to-istanbul@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c" + integrity sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + dependencies: + builtins "^1.0.3" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vee-validate@^3.4.11: + version "3.4.11" + resolved "https://registry.yarnpkg.com/vee-validate/-/vee-validate-3.4.11.tgz#2015f75a4aa33c615418e6aa6b03bd778ed173d1" + integrity sha512-508zDZkxqzlXgOo3Rb+djjA1HxQjkUJzM2FKzxWIiwlarzYPb3J9seMifJZ+AfaWXraErZ+L0/6ncUBP7MYx2A== + +vendors@^1.0.0, vendors@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vue-class-component@^8.0.0-rc.1: + version "8.0.0-rc.1" + resolved "https://registry.yarnpkg.com/vue-class-component/-/vue-class-component-8.0.0-rc.1.tgz#db692cd97656eb9a08206c03d0b7398cdb1d9420" + integrity sha512-w1nMzsT/UdbDAXKqhwTmSoyuJzUXKrxLE77PCFVuC6syr8acdFDAq116xgvZh9UCuV0h+rlCtxXolr3Hi3HyPQ== + +vue-cli-plugin-element-ui@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/vue-cli-plugin-element-ui/-/vue-cli-plugin-element-ui-1.1.4.tgz#8307640d85230ba61e15e926879f695ba8eeaedf" + integrity sha512-Q1/JFvdnKPpogSFvT3GfcUxftLFFrTU6ILXIp1/0PO22TlmwxVVr+1zLOQ1FABO34cooWR1+yoQMasVBA4sPQg== + +vue-demi@*: + version "0.11.3" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.11.3.tgz#dd7495b92b495ecfa35675bf024b1358a7add150" + integrity sha512-DpM0TTMpclRZDV6AIacgg837zrim/C9Zn+2ztXBs9hsESJN9vC83ztjTe4KC4HgJuVle8YUjPp7HTwWtwOHfmg== + +vue-eslint-parser@^7.10.0: + version "7.10.0" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.10.0.tgz#ea4e4b10fd10aa35c8a79ac783488d8abcd29be8" + integrity sha512-7tc/ewS9Vq9Bn741pvpg8op2fWJPH3k32aL+jcIcWGCTzh/zXSdh7pZ5FV3W2aJancP9+ftPAv292zY5T5IPCg== + dependencies: + debug "^4.1.1" + eslint-scope "^5.1.1" + eslint-visitor-keys "^1.1.0" + espree "^6.2.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^6.3.0" + +vue-hot-reload-api@^2.0.1: + version "2.3.4" + resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" + integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== + +vue-i18n@^9.1.7: + version "9.1.7" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.1.7.tgz#6f28dd2135197066508e2e65ab204a019750d773" + integrity sha512-ujuuDanoHqtEd4GejWrbG/fXE9nrP51ElsEGxp0WBHfv+/ki0/wyUqkO+4fLikki2obGtXdviTPH0VNpas5K6g== + dependencies: + "@intlify/core-base" "9.1.7" + "@intlify/shared" "9.1.7" + "@intlify/vue-devtools" "9.1.7" + "@vue/devtools-api" "^6.0.0-beta.7" + +vue-idb@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/vue-idb/-/vue-idb-0.2.0.tgz#32da9af8df19c46ff51d8a3cc496dfbe6e890d35" + integrity sha1-Mtqa+N8ZxG/1HYo8xJbfvm6JDTU= + dependencies: + dexie "^2.0.1" + lodash "^4.17.4" + vue "^2.5.3" + vuex "^3.0.1" + +vue-loader@16.4.1: + version "16.4.1" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.4.1.tgz#e09cfaa67b23a50021ecdb5c272203d2c87f161a" + integrity sha512-nL1bDhfMAZgTVmVkOXQaK/WJa9zFDLM9vKHbh5uGv6HeH1TmZrXMWUEVhUrACT38XPhXM4Awtjj25EvhChEgXw== + dependencies: + chalk "^4.1.0" + hash-sum "^2.0.0" + loader-utils "^2.0.0" + +vue-loader@^16.0.0: + version "16.5.0" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.5.0.tgz#09c4e0712466899e34b99a686524f19165fb2892" + integrity sha512-WXh+7AgFxGTgb5QAkQtFeUcHNIEq3PGVQ8WskY5ZiFbWBkOwcCPRs4w/2tVyTbh2q6TVRlO3xfvIukUtjsu62A== + dependencies: + chalk "^4.1.0" + hash-sum "^2.0.0" + loader-utils "^2.0.0" + +vue-property-decorator@^10.0.0-rc.3: + version "10.0.0-rc.3" + resolved "https://registry.yarnpkg.com/vue-property-decorator/-/vue-property-decorator-10.0.0-rc.3.tgz#bb0cb2c7c31dc41149eb432f2104fb82dc3d95be" + integrity sha512-EGqjf8Lq+kTausZzfLB1ynWOcyay8ZLAc5p2VlKGEX2q+BjYw84oZxr6IcdwuxGIdNmriZqPUX6AlAluBdnbEg== + +vue-router@4.0.11, vue-router@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.11.tgz#cd649a0941c635281763a20965b599643ddc68ed" + integrity sha512-sha6I8fx9HWtvTrFZfxZkiQQBpqSeT+UCwauYjkdOQYRvwsGwimlQQE2ayqUwuuXGzquFpCPoXzYKWlzL4OuXg== + dependencies: + "@vue/devtools-api" "^6.0.0-beta.14" + +vue-scroll-reveal@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/vue-scroll-reveal/-/vue-scroll-reveal-1.0.11.tgz#c2b0b78eff0d65381ba0bbce0d8801023aac649b" + integrity sha512-ZVxAxDO3GzPHLW4DvUxA8DD6lwJaVlH4JcqdVxE3D+6l+BAHv1kUnda2jCayBAN1x4u9x/qcONSnnCTrfUjoYg== + dependencies: + scrollreveal "^4.0.2" + +vue-style-loader@4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35" + integrity sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg== + dependencies: + hash-sum "^1.0.2" + loader-utils "^1.0.2" + +vue-svgicon@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/vue-svgicon/-/vue-svgicon-3.2.9.tgz#6c54b7ef5275619c13b571c2f682c3bfcc042d2f" + integrity sha512-3gNx1v77ok45ieF/gWIg1U35HqoxuA+4ukTWtBN6z4w1LycO9QrPC+MfdTlIztBjRnkruDbMg+Us0hOuep09/g== + dependencies: + camelcase "^5.2.0" + colors "^1.3.0" + fs-plus "^3.0.2" + glob "^7.1.2" + svgo "^1.0.5" + tslib "^1.9.3" + yargs "^12.0.1" + +vue-template-compiler@^2.0.0-alpha.8: + version "2.6.14" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763" + integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g== + dependencies: + de-indent "^1.0.2" + he "^1.1.0" + +vue-template-es2015-compiler@^1.2.2: + version "1.9.1" + resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" + integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== + +vue2-dragula@^2.5.5: + version "2.5.5" + resolved "https://registry.yarnpkg.com/vue2-dragula/-/vue2-dragula-2.5.5.tgz#a237fb6769b941b4658de2711c350fccd3f4c219" + integrity sha512-y+s2S1s6p11ds5ay6kWgAzxmXa4LwM8HBrQG+q8+rPehrmOlV/kvEyNidEYL+glskofL5vTGhno4xGYfg+wm3Q== + dependencies: + dragula "3.7.2" + +vue@3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.4.tgz#d94d88675e41c050d3a722d0848a7063b5e87a60" + integrity sha512-rNCFmoewm8IwmTK0nj3ysKq53iRpNEFKoBJ4inar6tIh7Oj7juubS39RI8UI+VE7x+Cs2z6PBsadtZu7z2qppg== + dependencies: + "@vue/compiler-dom" "3.2.4" + "@vue/runtime-dom" "3.2.4" + "@vue/shared" "3.2.4" + +vue@^2.5.3, vue@^2.6.11: + version "2.6.14" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235" + integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ== + +vue@^3.1.0: + version "3.2.6" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.6.tgz#c71445078751f458648fd8fb3a2da975507d03d2" + integrity sha512-Zlb3LMemQS3Xxa6xPsecu45bNjr1hxO8Bh5FUmE0Dr6Ot0znZBKiM47rK6O7FTcakxOnvVN+NTXWJF6u8ajpCQ== + dependencies: + "@vue/compiler-dom" "3.2.6" + "@vue/runtime-dom" "3.2.6" + "@vue/shared" "3.2.6" + +vueify@^9.4.1: + version "9.4.1" + resolved "https://registry.yarnpkg.com/vueify/-/vueify-9.4.1.tgz#d29a9775a33c4b8a8601e186a85da2ab800ca0d6" + integrity sha1-0pqXdaM8S4qGAeGGqF2iq4AMoNY= + dependencies: + chalk "^1.1.1" + convert-source-map "^1.2.0" + cssnano "^3.3.2" + hash-sum "^1.0.2" + json5 "^0.5.1" + lru-cache "^4.0.0" + object-assign "^4.0.1" + postcss "^5.0.10" + postcss-selector-parser "^2.0.0" + source-map "^0.5.6" + through "^2.3.6" + vue-hot-reload-api "^2.0.1" + vue-template-compiler "^2.0.0-alpha.8" + vue-template-es2015-compiler "^1.2.2" + +vuelidate@^0.7.6: + version "0.7.6" + resolved "https://registry.yarnpkg.com/vuelidate/-/vuelidate-0.7.6.tgz#84100c13b943470660d0416642845cd2a1edf4b2" + integrity sha512-suzIuet1jGcyZ4oUSW8J27R2tNrJ9cIfklAh63EbAkFjE380iv97BAiIeolRYoB9bF9usBXCu4BxftWN1Dkn3g== + +vuex-module-decorators@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vuex-module-decorators/-/vuex-module-decorators-1.0.1.tgz#d34dafb5428a3636f1c26d3d014c15fc9659ccd0" + integrity sha512-FLWZsXV5XAtl/bcKUyQFpnSBtpc3wK/7zSdy9oKbyp71mZd4ut5y2zSd219wWW9OG7WUOlVwac4rXFFDVnq7ug== + +vuex-router-sync@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/vuex-router-sync/-/vuex-router-sync-5.0.0.tgz#1a225c17a1dd9e2f74af0a1b2c62072e9492b305" + integrity sha512-Mry2sO4kiAG64714X1CFpTA/shUH1DmkZ26DFDtwoM/yyx6OtMrc+MxrU+7vvbNLO9LSpgwkiJ8W+rlmRtsM+w== + +vuex-typex@^3.1.9: + version "3.1.9" + resolved "https://registry.yarnpkg.com/vuex-typex/-/vuex-typex-3.1.9.tgz#5bf6760b7e4f7a48186500adf76734fe61b519a0" + integrity sha512-9IBtlQ7mRqMxpa/caTdE1SJf/FcRuYjT/0oJhfKsbUD2xWMcZEq43yz+LjbO1Q7HGS27q6GIq2P6WnhroBe9iA== + dependencies: + vuex "^3.0.1" + +vuex@^3.0.1: + version "3.6.2" + resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.6.2.tgz#236bc086a870c3ae79946f107f16de59d5895e71" + integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== + +vuex@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/vuex/-/vuex-4.0.2.tgz#f896dbd5bf2a0e963f00c67e9b610de749ccacc9" + integrity sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q== + dependencies: + "@vue/devtools-api" "^6.0.0-beta.11" + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walk-up-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e" + integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg== + +walker@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +watchpack@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" + integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.0, wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-bundle-analyzer@4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz#39898cf6200178240910d629705f0f3493f7d666" + integrity sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ== + dependencies: + acorn "^8.0.4" + acorn-walk "^8.0.0" + chalk "^4.1.0" + commander "^6.2.0" + gzip-size "^6.0.0" + lodash "^4.17.20" + opener "^1.5.2" + sirv "^1.0.7" + ws "^7.3.1" + +webpack-chain@6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-6.5.1.tgz#4f27284cbbb637e3c8fbdef43eef588d4d861206" + integrity sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA== + dependencies: + deepmerge "^1.5.2" + javascript-stringify "^2.0.1" + +webpack-dev-middleware@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.0.0.tgz#0abe825275720e0a339978aea5f0b03b140c1584" + integrity sha512-9zng2Z60pm6A98YoRcA0wSxw1EYn7B7y5owX/Tckyt9KGyULTkLtiavjaXlWqOMkM0YtqGgL3PvMOFgyFLq8vw== + dependencies: + colorette "^1.2.2" + mem "^8.1.1" + memfs "^3.2.2" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^3.0.0" + +webpack-dev-server@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.0.0.tgz#fb4906e91182154bba54a66e6e06f84c1e3c0a80" + integrity sha512-ya5cjoBSf3LqrshZn2HMaRZQx8YRNBE+tx+CQNFGaLLHrvs4Y1aik0sl5SFhLz2cW1O9/NtyaZhthc+8UiuvkQ== + dependencies: + ansi-html "^0.0.7" + bonjour "^3.5.0" + chokidar "^3.5.1" + colorette "^1.2.2" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + del "^6.0.0" + express "^4.17.1" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.0" + internal-ip "^6.2.0" + ipaddr.js "^2.0.1" + open "^8.0.9" + p-retry "^4.5.0" + portfinder "^1.0.28" + schema-utils "^3.1.0" + selfsigned "^1.10.11" + serve-index "^1.9.1" + sockjs "^0.3.21" + spdy "^4.0.2" + strip-ansi "^7.0.0" + url "^0.11.0" + webpack-dev-middleware "^5.0.0" + ws "^8.1.0" + +webpack-merge@5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" + integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-node-externals@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz#1a3407c158d547a9feb4229a9e3385b7b60c9917" + integrity sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ== + +webpack-sources@^1.1.0, webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-sources@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.0.tgz#b16973bcf844ebcdb3afde32eda1c04d0b90f89d" + integrity sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw== + +webpack@^5, webpack@^5.1.0, webpack@^5.35.0: + version "5.51.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.51.1.tgz#41bebf38dccab9a89487b16dbe95c22e147aac57" + integrity sha512-xsn3lwqEKoFvqn4JQggPSRxE4dhsRcysWTqYABAZlmavcoTmwlOb9b1N36Inbt/eIispSkuHa80/FJkDTPos1A== + dependencies: + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.50" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.4.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.8.0" + es-module-lexer "^0.7.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" + json-parse-better-errors "^1.0.2" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.2.0" + webpack-sources "^3.2.0" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +whet.extend@~0.9.9: + version "0.9.9" + resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + integrity sha1-+HfVv2SMl+WqVC+twW1qJZucEaE= + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0, wide-align@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +workbox-background-sync@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.2.4.tgz#1e5a4241f985d566a4cba8c67d3a1f4933a96444" + integrity sha512-uoGgm1PZU6THRzXKlMEntrdA4Xkp6SCfxI7re4heN+yGrtAZq6zMKYhZmsdeW+YGnXS3y5xj7WV03b5TDgLh6A== + dependencies: + idb "^6.0.0" + workbox-core "6.2.4" + +workbox-broadcast-update@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.2.4.tgz#4cae36f553e2ead833236df1b3c9b7cccaa3ae0c" + integrity sha512-0EpML2lbxNkiZUoap4BJDA0Hfz36MhtUd/rRhFvF6YWoRbTQ8tc6tMaRgM1EBIUmIN2OX9qQlkqe5SGGt4lfXQ== + dependencies: + workbox-core "6.2.4" + +workbox-build@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.2.4.tgz#454835fc63208da40d63290ae25a2e039e1d2ad6" + integrity sha512-01ZbY1BHi+yYvu4yDGZBw9xm1bWyZW0QGWPxiksvSPAsNH/z/NwgtWW14YEroFyG98mmXb7pufWlwl40zE1KTw== + dependencies: + "@apideck/better-ajv-errors" "^0.2.4" + "@babel/core" "^7.11.1" + "@babel/preset-env" "^7.11.0" + "@babel/runtime" "^7.11.2" + "@rollup/plugin-babel" "^5.2.0" + "@rollup/plugin-node-resolve" "^11.2.1" + "@rollup/plugin-replace" "^2.4.1" + "@surma/rollup-plugin-off-main-thread" "^1.4.1" + ajv "^8.6.0" + common-tags "^1.8.0" + fast-json-stable-stringify "^2.1.0" + fs-extra "^9.0.1" + glob "^7.1.6" + lodash "^4.17.20" + pretty-bytes "^5.3.0" + rollup "^2.43.1" + rollup-plugin-terser "^7.0.0" + source-map "^0.8.0-beta.0" + source-map-url "^0.4.0" + stringify-object "^3.3.0" + strip-comments "^2.0.1" + tempy "^0.6.0" + upath "^1.2.0" + workbox-background-sync "6.2.4" + workbox-broadcast-update "6.2.4" + workbox-cacheable-response "6.2.4" + workbox-core "6.2.4" + workbox-expiration "6.2.4" + workbox-google-analytics "6.2.4" + workbox-navigation-preload "6.2.4" + workbox-precaching "6.2.4" + workbox-range-requests "6.2.4" + workbox-recipes "6.2.4" + workbox-routing "6.2.4" + workbox-strategies "6.2.4" + workbox-streams "6.2.4" + workbox-sw "6.2.4" + workbox-window "6.2.4" + +workbox-cacheable-response@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.2.4.tgz#ea4cf588bbb16de9056ef968af878a275d739753" + integrity sha512-KZSzAOmgWsrk15Wu+geCUSGLIyyzHaORKjH5JnR6qcVZAsm0JXUu2m2OZGqjQ+/eyQwrGdXXqAMW+4wQvTXccg== + dependencies: + workbox-core "6.2.4" + +workbox-cli@^6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-cli/-/workbox-cli-6.2.4.tgz#5e70378e6fcb982f81a2afaaf1a25c80f31d5bdf" + integrity sha512-7B9j7T6RUbCM71533Q0xeBlYI2Nw6E4x1GUSH1407UXeEX9AAenFRWNmzQmCuSl2ndfQylkqe+JEh49F2FVjnw== + dependencies: + chalk "^4.1.0" + common-tags "^1.8.0" + fs-extra "^9.0.1" + glob "^7.1.6" + glob-watcher "^5.0.5" + inquirer "^7.3.3" + meow "^7.1.0" + ora "^5.0.0" + pretty-bytes "^5.3.0" + stringify-object "^3.3.0" + upath "^1.2.0" + update-notifier "^4.1.0" + workbox-build "6.2.4" + +workbox-core@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.2.4.tgz#0ffb4f0ce6d8e36f10bf4aabd96a6f55705ccd80" + integrity sha512-Nu8X4R4Is3g8uzEJ6qwbW2CGVpzntW/cSf8OfsQGIKQR0nt84FAKzP2cLDaNLp3L/iV9TuhZgCTZzkMiap5/OQ== + +workbox-expiration@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.2.4.tgz#80ff337795d5741ee0f84ae68eb25bcb6a54feb8" + integrity sha512-EdOBLunrE3+Ff50y7AYDbiwtiLDvB+oEIkL1Wd9G5d176YVqFfgPfMRzJQ7fN+Yy2NfmsFME0Bw+dQruYekWsQ== + dependencies: + idb "^6.0.0" + workbox-core "6.2.4" + +workbox-google-analytics@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.2.4.tgz#dbf8812d2cd10b568945569407b3e19686bf0e1d" + integrity sha512-+PWmTouoGGcDupaxM193F2NmgrF597Pyt9eHIDxfed+x+JSSeUkETlbAKwB8rnBHkAjs8JQcvStEP/IpueNKpQ== + dependencies: + workbox-background-sync "6.2.4" + workbox-core "6.2.4" + workbox-routing "6.2.4" + workbox-strategies "6.2.4" + +workbox-navigation-preload@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.2.4.tgz#0fdfdb51814296a5a2b52701881cdba08fb91cad" + integrity sha512-y2dOSsaSdEimqhCmBIFR6kBp+GZbtNtWCBaMFwfKxTAul2uyllKcTKBHnZ9IzxULue6o6voV+I2U8Y8tO8n+eA== + dependencies: + workbox-core "6.2.4" + +workbox-precaching@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.2.4.tgz#6e8a616b0817a92be01108d260f1e8626b0627b7" + integrity sha512-7POznbVc8EG/mkbXzeb94x3B1VJruPgXvXFgS0NJ3GRugkO4ULs/DpIIb+ycs7uJIKY9EzLS7VXvElr3rMSozQ== + dependencies: + workbox-core "6.2.4" + workbox-routing "6.2.4" + workbox-strategies "6.2.4" + +workbox-range-requests@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.2.4.tgz#f22b21a7e20d04a5532acb9dee5a1ae67613f3f3" + integrity sha512-q4jjTXD1QOKbrHnzV3nxdZtIpOiVoIP5QyVmjuJrybVnAZurtyKcqirTQcAcT/zlTvgwm07zcTTk9o/zIB6DmA== + dependencies: + workbox-core "6.2.4" + +workbox-recipes@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.2.4.tgz#fcbc7e3ece9568bf0ff6a8a7b77d9a04c4b4be6d" + integrity sha512-z7oECGrt940dw1Bv0xIDJEXY1xARiaxsIedeJOutZFkbgaC/yWG61VTr/hmkeJ8Nx6jnY6W7Rc0iOUvg4sePag== + dependencies: + workbox-cacheable-response "6.2.4" + workbox-core "6.2.4" + workbox-expiration "6.2.4" + workbox-precaching "6.2.4" + workbox-routing "6.2.4" + workbox-strategies "6.2.4" + +workbox-routing@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.2.4.tgz#ab169b3345a91119c0be262af385f4373589507f" + integrity sha512-jHnOmpeH4MOWR4eXv6l608npD2y6IFv7yFJ1bT9/RbB8wq2vXHXJQ0ExTZRTWGbVltSG22wEU+MQ8VebDDwDeg== + dependencies: + workbox-core "6.2.4" + +workbox-strategies@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.2.4.tgz#ccf28e91f5c00ab6d57b5080e46a0b840faa4e88" + integrity sha512-DKgGC3ruceDuu2o+Ae5qmJy0p0q21mFP+RrkdqKrjyf2u8cJvvtvt1eIt4nevKc5BESiKxmhC2h+TZpOSzUDvA== + dependencies: + workbox-core "6.2.4" + +workbox-streams@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.2.4.tgz#df235f877b82166b53a1421e0115ed99d3e697e1" + integrity sha512-yG6zV7S2NmYT6koyb7/DoPsyUAat9kD+rOmjP2SbBCtJdLu6ZIi1lgN4/rOkxEby/+Xb4OE4RmCSIZdMyjEmhQ== + dependencies: + workbox-core "6.2.4" + workbox-routing "6.2.4" + +workbox-sw@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.2.4.tgz#d7ae4cfc1c02ad6e47b7b9f7ac5be56b4715d928" + integrity sha512-OlWLHNNM+j44sN2OaVXnVcf2wwhJUzcHlXrTrbWDu1JWnrQJ/rLicdc/sbxkZoyE0EbQm7Xr1BXcOjsB7PNlXQ== + +workbox-webpack-plugin@^6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.2.4.tgz#50ceed32fc0e1f928feae6da45961deae0689775" + integrity sha512-G6yeOZDYEbtqgNasqwxHFnma0Vp237kMxpsf8JV/YIhvhUuMwnh1WKv4VnFeqmYaWW/ITx0qj92IEMWB/O1mAA== + dependencies: + fast-json-stable-stringify "^2.1.0" + pretty-bytes "^5.4.1" + source-map-url "^0.4.0" + upath "^1.2.0" + webpack-sources "^1.4.3" + workbox-build "6.2.4" + +workbox-window@6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.2.4.tgz#377e792158ec83670b6f810e0077a45c1a948d1b" + integrity sha512-9jD6THkwGEASj1YP56ZBHYJ147733FoGpJlMamYk38k/EBFE75oc6K3Vs2tGOBx5ZGq54+mHSStnlrtFG3IiOg== + dependencies: + "@types/trusted-types" "^2.0.2" + workbox-core "6.2.4" + +workbox@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/workbox/-/workbox-0.0.0.tgz#26f5e7834abf83178c7c454edc91bc61fef8d6c3" + integrity sha1-JvXng0q/gxeMfEVO3JG8Yf741sM= + dependencies: + babel-runtime "6.x.x" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^6.1.0: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + dependencies: + async-limiter "~1.0.0" + +ws@^7.3.1, ws@^7.4.6: + version "7.5.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" + integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== + +ws@^8.1.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.0.tgz#0b738cd484bfc9303421914b11bb4011e07615bb" + integrity sha512-uYhVJ/m9oXwEI04iIVmgLmugh2qrZihkywG9y5FfZV2ATeLIzHf93qs+tUNqlttbQK957/VX3mtwAS+UfIwA4g== + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlbuilder@^9.0.7: + version "9.0.7" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xmldom@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.6.0.tgz#43a96ecb8beece991cef382c08397d82d4d0c46f" + integrity sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg== + +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.3: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^12.0.1: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^16.0.3: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zip-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" + integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== + dependencies: + archiver-utils "^2.1.0" + compress-commons "^4.1.0" + readable-stream "^3.6.0"